aboutsummaryrefslogtreecommitdiff
BranchCommit messageAuthorAge
google-sorry-broken[Google "sorry" page] Add (non-working!) fixWojtek Kosior2 years
master[McDougall] complete the fix for drmcdougall.com; fix imagesWojtek Kosior2 years
 
Diffstat
-rw-r--r--LICENSES/0BSD.txt6
-rw-r--r--LICENSES/GPLv3.txt674
-rw-r--r--Makefile62
-rw-r--r--Makefile.config3
-rw-r--r--README.txt14
-rw-r--r--field_types.c21
-rw-r--r--hashtable.c517
-rw-r--r--hashtable.h106
-rw-r--r--libxml2-2.9.10/AUTHORS5
-rw-r--r--libxml2-2.9.10/ChangeLog19678
-rw-r--r--libxml2-2.9.10/Copyright23
-rw-r--r--libxml2-2.9.10/DOCBparser.c305
-rw-r--r--libxml2-2.9.10/HTMLparser.c7178
-rw-r--r--libxml2-2.9.10/HTMLtree.c1247
-rw-r--r--libxml2-2.9.10/INSTALL368
-rw-r--r--libxml2-2.9.10/Makefile.am1323
-rw-r--r--libxml2-2.9.10/Makefile.in3166
-rw-r--r--libxml2-2.9.10/Makefile.tests41
-rw-r--r--libxml2-2.9.10/NEWS3085
-rw-r--r--libxml2-2.9.10/README40
-rw-r--r--libxml2-2.9.10/README.tests39
-rw-r--r--libxml2-2.9.10/README.zOS212
-rw-r--r--libxml2-2.9.10/SAX.c180
-rw-r--r--libxml2-2.9.10/SAX2.c3064
-rw-r--r--libxml2-2.9.10/TODO278
-rw-r--r--libxml2-2.9.10/TODO_SCHEMAS31
-rw-r--r--libxml2-2.9.10/VxWorks/Makefile68
-rw-r--r--libxml2-2.9.10/VxWorks/README86
-rw-r--r--libxml2-2.9.10/VxWorks/build.sh85
-rw-r--r--libxml2-2.9.10/acinclude.m428
-rw-r--r--libxml2-2.9.10/aclocal.m41453
-rwxr-xr-xlibxml2-2.9.10/autogen.sh95
-rw-r--r--libxml2-2.9.10/autom4te.cache/output.018464
-rw-r--r--libxml2-2.9.10/autom4te.cache/output.118811
-rw-r--r--libxml2-2.9.10/autom4te.cache/output.218811
-rw-r--r--libxml2-2.9.10/autom4te.cache/requests538
-rw-r--r--libxml2-2.9.10/autom4te.cache/traces.03017
-rw-r--r--libxml2-2.9.10/autom4te.cache/traces.11305
-rw-r--r--libxml2-2.9.10/autom4te.cache/traces.23171
-rw-r--r--libxml2-2.9.10/bakefile/Bakefiles.bkgen15
-rw-r--r--libxml2-2.9.10/bakefile/Readme.txt92
-rw-r--r--libxml2-2.9.10/bakefile/libxml2.bkl745
-rw-r--r--libxml2-2.9.10/buf.c1345
-rw-r--r--libxml2-2.9.10/buf.h72
-rw-r--r--libxml2-2.9.10/c14n.c2234
-rw-r--r--libxml2-2.9.10/catalog.c3828
-rwxr-xr-xlibxml2-2.9.10/check-relaxng-test-suite.py394
-rwxr-xr-xlibxml2-2.9.10/check-relaxng-test-suite2.py418
-rwxr-xr-xlibxml2-2.9.10/check-xinclude-test-suite.py221
-rwxr-xr-xlibxml2-2.9.10/check-xml-test-suite.py409
-rwxr-xr-xlibxml2-2.9.10/check-xsddata-test-suite.py420
-rw-r--r--libxml2-2.9.10/chvalid.c336
-rwxr-xr-xlibxml2-2.9.10/compile348
-rwxr-xr-xlibxml2-2.9.10/config.guess1486
-rw-r--r--libxml2-2.9.10/config.h.in284
-rwxr-xr-xlibxml2-2.9.10/config.sub1790
-rwxr-xr-xlibxml2-2.9.10/configure18811
-rw-r--r--libxml2-2.9.10/configure.ac1712
-rwxr-xr-xlibxml2-2.9.10/dbgen.pl43
-rwxr-xr-xlibxml2-2.9.10/dbgenattr.pl42
-rw-r--r--libxml2-2.9.10/debugXML.c3423
-rwxr-xr-xlibxml2-2.9.10/depcomp791
-rw-r--r--libxml2-2.9.10/dict.c1298
-rw-r--r--libxml2-2.9.10/doc/APIchunk0.html301
-rw-r--r--libxml2-2.9.10/doc/APIchunk1.html382
-rw-r--r--libxml2-2.9.10/doc/APIchunk10.html674
-rw-r--r--libxml2-2.9.10/doc/APIchunk11.html338
-rw-r--r--libxml2-2.9.10/doc/APIchunk12.html923
-rw-r--r--libxml2-2.9.10/doc/APIchunk13.html649
-rw-r--r--libxml2-2.9.10/doc/APIchunk14.html467
-rw-r--r--libxml2-2.9.10/doc/APIchunk15.html455
-rw-r--r--libxml2-2.9.10/doc/APIchunk16.html375
-rw-r--r--libxml2-2.9.10/doc/APIchunk17.html576
-rw-r--r--libxml2-2.9.10/doc/APIchunk18.html459
-rw-r--r--libxml2-2.9.10/doc/APIchunk19.html373
-rw-r--r--libxml2-2.9.10/doc/APIchunk2.html415
-rw-r--r--libxml2-2.9.10/doc/APIchunk20.html329
-rw-r--r--libxml2-2.9.10/doc/APIchunk21.html398
-rw-r--r--libxml2-2.9.10/doc/APIchunk22.html595
-rw-r--r--libxml2-2.9.10/doc/APIchunk23.html670
-rw-r--r--libxml2-2.9.10/doc/APIchunk24.html996
-rw-r--r--libxml2-2.9.10/doc/APIchunk25.html447
-rw-r--r--libxml2-2.9.10/doc/APIchunk26.html315
-rw-r--r--libxml2-2.9.10/doc/APIchunk27.html347
-rw-r--r--libxml2-2.9.10/doc/APIchunk28.html568
-rw-r--r--libxml2-2.9.10/doc/APIchunk29.html131
-rw-r--r--libxml2-2.9.10/doc/APIchunk3.html361
-rw-r--r--libxml2-2.9.10/doc/APIchunk4.html350
-rw-r--r--libxml2-2.9.10/doc/APIchunk5.html293
-rw-r--r--libxml2-2.9.10/doc/APIchunk6.html295
-rw-r--r--libxml2-2.9.10/doc/APIchunk7.html329
-rw-r--r--libxml2-2.9.10/doc/APIchunk8.html307
-rw-r--r--libxml2-2.9.10/doc/APIchunk9.html273
-rw-r--r--libxml2-2.9.10/doc/APIconstructors.html595
-rw-r--r--libxml2-2.9.10/doc/APIfiles.html3594
-rw-r--r--libxml2-2.9.10/doc/APIfunctions.html2348
-rw-r--r--libxml2-2.9.10/doc/APIsymbols.html3590
-rw-r--r--libxml2-2.9.10/doc/ChangeLog.xsl117
-rw-r--r--libxml2-2.9.10/doc/DOM.gifbin0 -> 3166 bytes
-rw-r--r--libxml2-2.9.10/doc/DOM.html17
-rw-r--r--libxml2-2.9.10/doc/FAQ.html299
-rw-r--r--libxml2-2.9.10/doc/Libxml2-Logo-180x168.gifbin0 -> 8195 bytes
-rw-r--r--libxml2-2.9.10/doc/Libxml2-Logo-90x34.gifbin0 -> 3070 bytes
-rw-r--r--libxml2-2.9.10/doc/Makefile.am356
-rw-r--r--libxml2-2.9.10/doc/Makefile.in1170
-rw-r--r--libxml2-2.9.10/doc/README.docs24
-rw-r--r--libxml2-2.9.10/doc/XMLinfo.html35
-rw-r--r--libxml2-2.9.10/doc/XSLT.html13
-rw-r--r--libxml2-2.9.10/doc/api.xsl394
-rwxr-xr-xlibxml2-2.9.10/doc/apibuild.py2151
-rw-r--r--libxml2-2.9.10/doc/architecture.html24
-rw-r--r--libxml2-2.9.10/doc/bugs.html70
-rw-r--r--libxml2-2.9.10/doc/catalog.gifbin0 -> 6105 bytes
-rw-r--r--libxml2-2.9.10/doc/catalog.html261
-rw-r--r--libxml2-2.9.10/doc/checkapisym.xsl48
-rw-r--r--libxml2-2.9.10/doc/contribs.html41
-rw-r--r--libxml2-2.9.10/doc/devhelp/Makefile.am79
-rw-r--r--libxml2-2.9.10/doc/devhelp/Makefile.in689
-rw-r--r--libxml2-2.9.10/doc/devhelp/devhelp.xsl127
-rw-r--r--libxml2-2.9.10/doc/devhelp/general.html38
-rw-r--r--libxml2-2.9.10/doc/devhelp/home.pngbin0 -> 654 bytes
-rw-r--r--libxml2-2.9.10/doc/devhelp/html.xsl602
-rw-r--r--libxml2-2.9.10/doc/devhelp/index.html67
-rw-r--r--libxml2-2.9.10/doc/devhelp/left.pngbin0 -> 459 bytes
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-DOCBparser.html138
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-HTMLparser.html373
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-HTMLtree.html172
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-SAX.html243
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-SAX2.html247
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-c14n.html91
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-catalog.html278
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-chvalid.html241
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-debugXML.html225
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-dict.html134
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-encoding.html226
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-entities.html166
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-globals.html383
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-hash.html219
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-list.html226
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-nanoftp.html187
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-nanohttp.html142
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-parser.html766
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-parserInternals.html688
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-pattern.html166
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-relaxng.html278
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-schemasInternals.html860
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-schematron.html166
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-threads.html161
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-tree.html1598
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-uri.html154
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-valid.html528
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xinclude.html169
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xlink.html160
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlIO.html347
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlautomata.html176
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlerror.html953
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlexports.html82
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlmemory.html186
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlmodule.html97
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlreader.html565
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlregexp.html280
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlsave.html133
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlschemas.html314
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlschemastypes.html237
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlstring.html217
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlunicode.html887
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlversion.html292
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xmlwriter.html479
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xpath.html549
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xpathInternals.html787
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2-xpointer.html171
-rw-r--r--libxml2-2.9.10/doc/devhelp/libxml2.devhelp3577
-rw-r--r--libxml2-2.9.10/doc/devhelp/right.pngbin0 -> 472 bytes
-rw-r--r--libxml2-2.9.10/doc/devhelp/style.css66
-rw-r--r--libxml2-2.9.10/doc/devhelp/up.pngbin0 -> 406 bytes
-rw-r--r--libxml2-2.9.10/doc/docs.html34
-rw-r--r--libxml2-2.9.10/doc/downloads.html40
-rw-r--r--libxml2-2.9.10/doc/elfgcchack.xsl160
-rw-r--r--libxml2-2.9.10/doc/encoding.html217
-rw-r--r--libxml2-2.9.10/doc/entities.html64
-rw-r--r--libxml2-2.9.10/doc/example.html187
-rw-r--r--libxml2-2.9.10/doc/examples/Makefile.am136
-rw-r--r--libxml2-2.9.10/doc/examples/Makefile.in1026
-rw-r--r--libxml2-2.9.10/doc/examples/examples.xml751
-rw-r--r--libxml2-2.9.10/doc/examples/examples.xsl174
-rw-r--r--libxml2-2.9.10/doc/examples/index.html14
-rwxr-xr-xlibxml2-2.9.10/doc/examples/index.py315
-rw-r--r--libxml2-2.9.10/doc/examples/io1.c166
-rw-r--r--libxml2-2.9.10/doc/examples/io1.res5
-rw-r--r--libxml2-2.9.10/doc/examples/io2.c58
-rw-r--r--libxml2-2.9.10/doc/examples/io2.res2
-rw-r--r--libxml2-2.9.10/doc/examples/parse1.c56
-rw-r--r--libxml2-2.9.10/doc/examples/parse2.c72
-rw-r--r--libxml2-2.9.10/doc/examples/parse3.c60
-rw-r--r--libxml2-2.9.10/doc/examples/parse4.c143
-rw-r--r--libxml2-2.9.10/doc/examples/reader1.c107
-rw-r--r--libxml2-2.9.10/doc/examples/reader1.res14
-rw-r--r--libxml2-2.9.10/doc/examples/reader2.c122
-rw-r--r--libxml2-2.9.10/doc/examples/reader3.c120
-rw-r--r--libxml2-2.9.10/doc/examples/reader3.res13
-rw-r--r--libxml2-2.9.10/doc/examples/reader4.c122
-rw-r--r--libxml2-2.9.10/doc/examples/reader4.res3
-rw-r--r--libxml2-2.9.10/doc/examples/test1.xml1
-rw-r--r--libxml2-2.9.10/doc/examples/test2.xml13
-rw-r--r--libxml2-2.9.10/doc/examples/test3.xml39
-rw-r--r--libxml2-2.9.10/doc/examples/testWriter.c1198
-rw-r--r--libxml2-2.9.10/doc/examples/tree1.c94
-rw-r--r--libxml2-2.9.10/doc/examples/tree1.res4
-rw-r--r--libxml2-2.9.10/doc/examples/tree2.c117
-rw-r--r--libxml2-2.9.10/doc/examples/tree2.res18
-rw-r--r--libxml2-2.9.10/doc/examples/tst.xml7
-rw-r--r--libxml2-2.9.10/doc/examples/writer.xml2
-rw-r--r--libxml2-2.9.10/doc/examples/xpath1.c250
-rw-r--r--libxml2-2.9.10/doc/examples/xpath1.res5
-rw-r--r--libxml2-2.9.10/doc/examples/xpath2.c190
-rw-r--r--libxml2-2.9.10/doc/examples/xpath2.res30
-rw-r--r--libxml2-2.9.10/doc/guidelines.html374
-rw-r--r--libxml2-2.9.10/doc/help.html26
-rw-r--r--libxml2-2.9.10/doc/html/book1.html13
-rw-r--r--libxml2-2.9.10/doc/html/home.pngbin0 -> 654 bytes
-rw-r--r--libxml2-2.9.10/doc/html/index.html13
-rw-r--r--libxml2-2.9.10/doc/html/left.pngbin0 -> 459 bytes
-rw-r--r--libxml2-2.9.10/doc/html/libxml-DOCBparser.html51
-rw-r--r--libxml2-2.9.10/doc/html/libxml-HTMLparser.html184
-rw-r--r--libxml2-2.9.10/doc/html/libxml-HTMLtree.html73
-rw-r--r--libxml2-2.9.10/doc/html/libxml-SAX.html125
-rw-r--r--libxml2-2.9.10/doc/html/libxml-SAX2.html128
-rw-r--r--libxml2-2.9.10/doc/html/libxml-c14n.html38
-rw-r--r--libxml2-2.9.10/doc/html/libxml-catalog.html142
-rw-r--r--libxml2-2.9.10/doc/html/libxml-chvalid.html72
-rw-r--r--libxml2-2.9.10/doc/html/libxml-debugXML.html120
-rw-r--r--libxml2-2.9.10/doc/html/libxml-dict.html58
-rw-r--r--libxml2-2.9.10/doc/html/libxml-encoding.html128
-rw-r--r--libxml2-2.9.10/doc/html/libxml-entities.html79
-rw-r--r--libxml2-2.9.10/doc/html/libxml-globals.html152
-rw-r--r--libxml2-2.9.10/doc/html/libxml-hash.html119
-rw-r--r--libxml2-2.9.10/doc/html/libxml-lib.html13
-rw-r--r--libxml2-2.9.10/doc/html/libxml-list.html120
-rw-r--r--libxml2-2.9.10/doc/html/libxml-nanoftp.html94
-rw-r--r--libxml2-2.9.10/doc/html/libxml-nanohttp.html65
-rw-r--r--libxml2-2.9.10/doc/html/libxml-parser.html559
-rw-r--r--libxml2-2.9.10/doc/html/libxml-parserInternals.html322
-rw-r--r--libxml2-2.9.10/doc/html/libxml-pattern.html76
-rw-r--r--libxml2-2.9.10/doc/html/libxml-relaxng.html162
-rw-r--r--libxml2-2.9.10/doc/html/libxml-schemasInternals.html373
-rw-r--r--libxml2-2.9.10/doc/html/libxml-schematron.html81
-rw-r--r--libxml2-2.9.10/doc/html/libxml-threads.html72
-rw-r--r--libxml2-2.9.10/doc/html/libxml-tree.html991
-rw-r--r--libxml2-2.9.10/doc/html/libxml-uri.html73
-rw-r--r--libxml2-2.9.10/doc/html/libxml-valid.html289
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xinclude.html59
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xlink.html82
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlIO.html212
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlautomata.html85
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlerror.html865
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlexports.html19
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlmemory.html107
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlmodule.html38
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlreader.html330
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlregexp.html143
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlsave.html60
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlschemas.html185
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlschemastypes.html123
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlstring.html108
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlunicode.html512
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlversion.html63
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xmlwriter.html261
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xpath.html323
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xpathInternals.html394
-rw-r--r--libxml2-2.9.10/doc/html/libxml-xpointer.html83
-rw-r--r--libxml2-2.9.10/doc/html/right.pngbin0 -> 472 bytes
-rw-r--r--libxml2-2.9.10/doc/html/up.pngbin0 -> 406 bytes
-rw-r--r--libxml2-2.9.10/doc/index.html77
-rwxr-xr-xlibxml2-2.9.10/doc/index.py1258
-rw-r--r--libxml2-2.9.10/doc/interface.html59
-rw-r--r--libxml2-2.9.10/doc/intro.html32
-rw-r--r--libxml2-2.9.10/doc/library.html158
-rw-r--r--libxml2-2.9.10/doc/libxml.gifbin0 -> 7692 bytes
-rw-r--r--libxml2-2.9.10/doc/libxml2-api.xml18529
-rw-r--r--libxml2-2.9.10/doc/libxml2.xsa76
-rw-r--r--libxml2-2.9.10/doc/namespaces.html50
-rw-r--r--libxml2-2.9.10/doc/newapi.xsl766
-rw-r--r--libxml2-2.9.10/doc/news.html2961
-rw-r--r--libxml2-2.9.10/doc/news.xsl44
-rw-r--r--libxml2-2.9.10/doc/python.html254
-rw-r--r--libxml2-2.9.10/doc/redhat.gifbin0 -> 697 bytes
-rw-r--r--libxml2-2.9.10/doc/search.php477
-rw-r--r--libxml2-2.9.10/doc/searches.html61
-rw-r--r--libxml2-2.9.10/doc/searches.xsl97
-rw-r--r--libxml2-2.9.10/doc/site.xsl741
-rw-r--r--libxml2-2.9.10/doc/smallfootonly.gifbin0 -> 2772 bytes
-rw-r--r--libxml2-2.9.10/doc/structure.gifbin0 -> 5559 bytes
-rw-r--r--libxml2-2.9.10/doc/symbols.xml1771
-rw-r--r--libxml2-2.9.10/doc/syms.xsl99
-rw-r--r--libxml2-2.9.10/doc/threads.html30
-rw-r--r--libxml2-2.9.10/doc/tree.html53
-rw-r--r--libxml2-2.9.10/doc/tutorial/apa.html8
-rw-r--r--libxml2-2.9.10/doc/tutorial/apb.html14
-rw-r--r--libxml2-2.9.10/doc/tutorial/apc.html82
-rw-r--r--libxml2-2.9.10/doc/tutorial/apd.html76
-rw-r--r--libxml2-2.9.10/doc/tutorial/ape.html78
-rw-r--r--libxml2-2.9.10/doc/tutorial/apf.html67
-rw-r--r--libxml2-2.9.10/doc/tutorial/apg.html75
-rw-r--r--libxml2-2.9.10/doc/tutorial/aph.html76
-rw-r--r--libxml2-2.9.10/doc/tutorial/api.html4
-rw-r--r--libxml2-2.9.10/doc/tutorial/ar01s02.html14
-rw-r--r--libxml2-2.9.10/doc/tutorial/ar01s03.html47
-rw-r--r--libxml2-2.9.10/doc/tutorial/ar01s04.html54
-rw-r--r--libxml2-2.9.10/doc/tutorial/ar01s05.html55
-rw-r--r--libxml2-2.9.10/doc/tutorial/ar01s06.html35
-rw-r--r--libxml2-2.9.10/doc/tutorial/ar01s07.html30
-rw-r--r--libxml2-2.9.10/doc/tutorial/ar01s08.html38
-rw-r--r--libxml2-2.9.10/doc/tutorial/ar01s09.html63
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/blank.pngbin0 -> 374 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/callouts/1.pngbin0 -> 329 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/callouts/10.pngbin0 -> 361 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/callouts/2.pngbin0 -> 353 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/callouts/3.pngbin0 -> 350 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/callouts/4.pngbin0 -> 345 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/callouts/5.pngbin0 -> 348 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/callouts/6.pngbin0 -> 355 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/callouts/7.pngbin0 -> 344 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/callouts/8.pngbin0 -> 357 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/callouts/9.pngbin0 -> 357 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/caution.pngbin0 -> 1250 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/draft.pngbin0 -> 17454 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/home.pngbin0 -> 1156 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/important.pngbin0 -> 722 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/next.pngbin0 -> 1150 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/note.pngbin0 -> 490 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/prev.pngbin0 -> 1132 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/tip.pngbin0 -> 449 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/toc-blank.pngbin0 -> 318 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/toc-minus.pngbin0 -> 259 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/toc-plus.pngbin0 -> 264 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/up.pngbin0 -> 1111 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/images/warning.pngbin0 -> 1241 bytes
-rw-r--r--libxml2-2.9.10/doc/tutorial/includeaddattribute.c64
-rw-r--r--libxml2-2.9.10/doc/tutorial/includeaddkeyword.c75
-rw-r--r--libxml2-2.9.10/doc/tutorial/includeconvert.c73
-rw-r--r--libxml2-2.9.10/doc/tutorial/includegetattribute.c72
-rw-r--r--libxml2-2.9.10/doc/tutorial/includekeyword.c79
-rw-r--r--libxml2-2.9.10/doc/tutorial/includexpath.c74
-rw-r--r--libxml2-2.9.10/doc/tutorial/index.html14
-rw-r--r--libxml2-2.9.10/doc/tutorial/ix01.html1
-rw-r--r--libxml2-2.9.10/doc/tutorial/xmltutorial.pdf1336
-rw-r--r--libxml2-2.9.10/doc/upgrade.html112
-rw-r--r--libxml2-2.9.10/doc/w3c.pngbin0 -> 2028 bytes
-rw-r--r--libxml2-2.9.10/doc/wiki.xsl589
-rw-r--r--libxml2-2.9.10/doc/xml.html6605
-rw-r--r--libxml2-2.9.10/doc/xmlcatalog.1350
-rw-r--r--libxml2-2.9.10/doc/xmlcatalog_man.html140
-rw-r--r--libxml2-2.9.10/doc/xmlcatalog_man.xml465
-rw-r--r--libxml2-2.9.10/doc/xmldtd.html107
-rw-r--r--libxml2-2.9.10/doc/xmlio.html141
-rw-r--r--libxml2-2.9.10/doc/xmllint.1647
-rw-r--r--libxml2-2.9.10/doc/xmllint.html162
-rw-r--r--libxml2-2.9.10/doc/xmllint.xml930
-rw-r--r--libxml2-2.9.10/doc/xmlmem.html122
-rw-r--r--libxml2-2.9.10/doc/xmlreader.html475
-rw-r--r--libxml2-2.9.10/doc/xsa.xsl54
-rw-r--r--libxml2-2.9.10/elfgcchack.h17818
-rw-r--r--libxml2-2.9.10/enc.h32
-rw-r--r--libxml2-2.9.10/encoding.c3918
-rw-r--r--libxml2-2.9.10/entities.c1111
-rw-r--r--libxml2-2.9.10/error.c998
-rw-r--r--libxml2-2.9.10/example/Makefile.am7
-rw-r--r--libxml2-2.9.10/example/Makefile.in718
-rw-r--r--libxml2-2.9.10/example/gjobread.c309
-rw-r--r--libxml2-2.9.10/example/gjobs.xml57
-rwxr-xr-xlibxml2-2.9.10/genUnicode.py478
-rwxr-xr-xlibxml2-2.9.10/gentest.py989
-rw-r--r--libxml2-2.9.10/globals.c1126
-rw-r--r--libxml2-2.9.10/hash.c1146
-rw-r--r--libxml2-2.9.10/include/Makefile.am5
-rw-r--r--libxml2-2.9.10/include/Makefile.in739
-rw-r--r--libxml2-2.9.10/include/libxml/DOCBparser.h96
-rw-r--r--libxml2-2.9.10/include/libxml/HTMLparser.h306
-rw-r--r--libxml2-2.9.10/include/libxml/HTMLtree.h147
-rw-r--r--libxml2-2.9.10/include/libxml/Makefile.am54
-rw-r--r--libxml2-2.9.10/include/libxml/Makefile.in730
-rw-r--r--libxml2-2.9.10/include/libxml/SAX.h173
-rw-r--r--libxml2-2.9.10/include/libxml/SAX2.h178
-rw-r--r--libxml2-2.9.10/include/libxml/c14n.h126
-rw-r--r--libxml2-2.9.10/include/libxml/catalog.h182
-rw-r--r--libxml2-2.9.10/include/libxml/chvalid.h230
-rw-r--r--libxml2-2.9.10/include/libxml/debugXML.h217
-rw-r--r--libxml2-2.9.10/include/libxml/dict.h79
-rw-r--r--libxml2-2.9.10/include/libxml/encoding.h245
-rw-r--r--libxml2-2.9.10/include/libxml/entities.h151
-rw-r--r--libxml2-2.9.10/include/libxml/globals.h508
-rw-r--r--libxml2-2.9.10/include/libxml/hash.h236
-rw-r--r--libxml2-2.9.10/include/libxml/list.h137
-rw-r--r--libxml2-2.9.10/include/libxml/nanoftp.h163
-rw-r--r--libxml2-2.9.10/include/libxml/nanohttp.h81
-rw-r--r--libxml2-2.9.10/include/libxml/parser.h1241
-rw-r--r--libxml2-2.9.10/include/libxml/parserInternals.h644
-rw-r--r--libxml2-2.9.10/include/libxml/pattern.h100
-rw-r--r--libxml2-2.9.10/include/libxml/relaxng.h217
-rw-r--r--libxml2-2.9.10/include/libxml/schemasInternals.h958
-rw-r--r--libxml2-2.9.10/include/libxml/schematron.h142
-rw-r--r--libxml2-2.9.10/include/libxml/threads.h89
-rw-r--r--libxml2-2.9.10/include/libxml/tree.h1311
-rw-r--r--libxml2-2.9.10/include/libxml/uri.h94
-rw-r--r--libxml2-2.9.10/include/libxml/valid.h458
-rw-r--r--libxml2-2.9.10/include/libxml/xinclude.h129
-rw-r--r--libxml2-2.9.10/include/libxml/xlink.h189
-rw-r--r--libxml2-2.9.10/include/libxml/xmlIO.h366
-rw-r--r--libxml2-2.9.10/include/libxml/xmlautomata.h146
-rw-r--r--libxml2-2.9.10/include/libxml/xmlerror.h945
-rw-r--r--libxml2-2.9.10/include/libxml/xmlexports.h153
-rw-r--r--libxml2-2.9.10/include/libxml/xmlmemory.h224
-rw-r--r--libxml2-2.9.10/include/libxml/xmlmodule.h57
-rw-r--r--libxml2-2.9.10/include/libxml/xmlreader.h428
-rw-r--r--libxml2-2.9.10/include/libxml/xmlregexp.h222
-rw-r--r--libxml2-2.9.10/include/libxml/xmlsave.h88
-rw-r--r--libxml2-2.9.10/include/libxml/xmlschemas.h246
-rw-r--r--libxml2-2.9.10/include/libxml/xmlschemastypes.h151
-rw-r--r--libxml2-2.9.10/include/libxml/xmlstring.h140
-rw-r--r--libxml2-2.9.10/include/libxml/xmlunicode.h202
-rw-r--r--libxml2-2.9.10/include/libxml/xmlversion.h.in485
-rw-r--r--libxml2-2.9.10/include/libxml/xmlwriter.h488
-rw-r--r--libxml2-2.9.10/include/libxml/xpath.h566
-rw-r--r--libxml2-2.9.10/include/libxml/xpathInternals.h632
-rw-r--r--libxml2-2.9.10/include/libxml/xpointer.h114
-rw-r--r--libxml2-2.9.10/include/win32config.h122
-rw-r--r--libxml2-2.9.10/include/wsockcompat.h54
-rwxr-xr-xlibxml2-2.9.10/install-sh518
-rw-r--r--libxml2-2.9.10/legacy.c1343
-rw-r--r--libxml2-2.9.10/libxml-2.0-uninstalled.pc.in12
-rw-r--r--libxml2-2.9.10/libxml-2.0.pc.in13
-rw-r--r--libxml2-2.9.10/libxml.371
-rw-r--r--libxml2-2.9.10/libxml.h134
-rw-r--r--libxml2-2.9.10/libxml.m4188
-rw-r--r--libxml2-2.9.10/libxml.spec.in209
-rw-r--r--libxml2-2.9.10/libxml2-config.cmake.in50
-rw-r--r--libxml2-2.9.10/libxml2.syms2288
-rw-r--r--libxml2-2.9.10/list.c779
-rw-r--r--libxml2-2.9.10/ltmain.sh11149
-rw-r--r--libxml2-2.9.10/m4/libtool.m48372
-rw-r--r--libxml2-2.9.10/m4/ltoptions.m4437
-rw-r--r--libxml2-2.9.10/m4/ltsugar.m4124
-rw-r--r--libxml2-2.9.10/m4/ltversion.m423
-rw-r--r--libxml2-2.9.10/m4/lt~obsolete.m499
-rw-r--r--libxml2-2.9.10/macos/README8
-rw-r--r--libxml2-2.9.10/macos/libxml2.mcp.xml.sit.hqx1
-rw-r--r--libxml2-2.9.10/macos/src/XMLTestPrefix.h1
-rw-r--r--libxml2-2.9.10/macos/src/XMLTestPrefix2.h1
-rw-r--r--libxml2-2.9.10/macos/src/config-mac.h150
-rw-r--r--libxml2-2.9.10/macos/src/libxml2_GUSIConfig.cp1
-rw-r--r--libxml2-2.9.10/macos/src/macos_main.c1
-rwxr-xr-xlibxml2-2.9.10/missing215
-rw-r--r--libxml2-2.9.10/nanoftp.c2119
-rw-r--r--libxml2-2.9.10/nanohttp.c1899
-rw-r--r--libxml2-2.9.10/os400/README400226
-rw-r--r--libxml2-2.9.10/os400/config.h.in345
-rw-r--r--libxml2-2.9.10/os400/dlfcn/dlfcn.c1213
-rw-r--r--libxml2-2.9.10/os400/dlfcn/dlfcn.h32
-rw-r--r--libxml2-2.9.10/os400/iconv/README.iconv47
-rw-r--r--libxml2-2.9.10/os400/iconv/bldcsndfa/bldcsndfa.c1953
-rw-r--r--libxml2-2.9.10/os400/iconv/bldcsndfa/ccsid_mibenum.dtd15
-rw-r--r--libxml2-2.9.10/os400/iconv/bldcsndfa/ccsid_mibenum.xml270
-rw-r--r--libxml2-2.9.10/os400/iconv/bldcsndfa/character-sets.xhtml3077
-rw-r--r--libxml2-2.9.10/os400/iconv/ianatables.c4609
-rw-r--r--libxml2-2.9.10/os400/iconv/iconv.c154
-rw-r--r--libxml2-2.9.10/os400/iconv/iconv.h40
-rw-r--r--libxml2-2.9.10/os400/initscript.sh315
-rw-r--r--libxml2-2.9.10/os400/libxmlmain.c102
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/DOCBparser.rpgle120
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/HTMLparser.rpgle419
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/HTMLtree.rpgle176
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/SAX.rpgle213
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/SAX2.rpgle256
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/c14n.rpgle125
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/catalog.rpgle248
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/chvalid.rpgle107
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/debugXML.rpgle254
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/dict.rpgle85
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/encoding.rpgle284
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/entities.rpgle176
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/globals.rpgle581
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/hash.rpgle243
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/list.rpgle179
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/nanoftp.rpgle172
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/nanohttp.rpgle110
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/parser.rpgle1436
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/parserInternals.rpgle598
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/pattern.rpgle130
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/relaxng.rpgle310
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/schemasInternals.rpgle1142
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/schematron.rpgle204
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/threads.rpgle73
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/transcode.rpgle71
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/tree.rpgle1681
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/uri.rpgle103
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/valid.rpgle605
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xinclude.rpgle156
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xlink.rpgle169
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlIO.rpgle464
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlTypesC.rpgle26
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlautomata.rpgle183
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlerror.rpgle1686
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlexports.rpgle15
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlmemory.rpgle247
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlmodule.rpgle57
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlreader.rpgle668
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlregexp.rpgle262
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlsave.rpgle105
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlschemas.rpgle331
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlschemastypes.rpgle254
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlstdarg.rpgle35
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlstring.rpgle180
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlunicode.rpgle836
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlversion.rpgle.in353
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xmlwriter.rpgle801
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xpath.rpgle675
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xpathInternals.rpgle693
-rw-r--r--libxml2-2.9.10/os400/libxmlrpg/xpointer.rpgle158
-rw-r--r--libxml2-2.9.10/os400/make-bldcsndfa.sh43
-rw-r--r--libxml2-2.9.10/os400/make-include.sh81
-rw-r--r--libxml2-2.9.10/os400/make-rpg.sh100
-rw-r--r--libxml2-2.9.10/os400/make-src.sh355
-rw-r--r--libxml2-2.9.10/os400/make.sh84
-rw-r--r--libxml2-2.9.10/os400/os400config.h.in297
-rw-r--r--libxml2-2.9.10/os400/rpgsupport.c270
-rw-r--r--libxml2-2.9.10/os400/rpgsupport.h157
-rw-r--r--libxml2-2.9.10/os400/transcode.c268
-rw-r--r--libxml2-2.9.10/os400/transcode.h43
-rw-r--r--libxml2-2.9.10/os400/wrappers.c170
-rw-r--r--libxml2-2.9.10/os400/wrappers.h70
-rw-r--r--libxml2-2.9.10/os400/xmlcatalog.cmd112
-rw-r--r--libxml2-2.9.10/os400/xmlcatlgcl.c288
-rw-r--r--libxml2-2.9.10/os400/xmllint.cmd146
-rw-r--r--libxml2-2.9.10/os400/xmllintcl.c216
-rw-r--r--libxml2-2.9.10/parser.c15605
-rw-r--r--libxml2-2.9.10/parserInternals.c2165
-rw-r--r--libxml2-2.9.10/pattern.c2621
-rw-r--r--libxml2-2.9.10/python/Makefile.am54
-rw-r--r--libxml2-2.9.10/python/Makefile.in1002
-rw-r--r--libxml2-2.9.10/python/README34
-rw-r--r--libxml2-2.9.10/python/TODO57
-rw-r--r--libxml2-2.9.10/python/drv_libxml2.py379
-rwxr-xr-xlibxml2-2.9.10/python/generator.py1228
-rw-r--r--libxml2-2.9.10/python/libxml.c3934
-rw-r--r--libxml2-2.9.10/python/libxml.py788
-rw-r--r--libxml2-2.9.10/python/libxml2-export.c2063
-rw-r--r--libxml2-2.9.10/python/libxml2-py.c14789
-rw-r--r--libxml2-2.9.10/python/libxml2-py.h2063
-rw-r--r--libxml2-2.9.10/python/libxml2-python-api.xml350
-rw-r--r--libxml2-2.9.10/python/libxml2.py9327
-rw-r--r--libxml2-2.9.10/python/libxml2class.py8539
-rw-r--r--libxml2-2.9.10/python/libxml2class.txt1177
-rw-r--r--libxml2-2.9.10/python/libxml_wrap.h279
-rwxr-xr-xlibxml2-2.9.10/python/setup.py.in242
-rw-r--r--libxml2-2.9.10/python/tests/Makefile.am78
-rw-r--r--libxml2-2.9.10/python/tests/Makefile.in688
-rwxr-xr-xlibxml2-2.9.10/python/tests/attribs.py34
-rwxr-xr-xlibxml2-2.9.10/python/tests/build.py59
-rwxr-xr-xlibxml2-2.9.10/python/tests/compareNodes.py50
-rwxr-xr-xlibxml2-2.9.10/python/tests/ctxterror.py56
-rwxr-xr-xlibxml2-2.9.10/python/tests/cutnpaste.py48
-rwxr-xr-xlibxml2-2.9.10/python/tests/dtdvalid.py32
-rwxr-xr-xlibxml2-2.9.10/python/tests/error.py51
-rwxr-xr-xlibxml2-2.9.10/python/tests/inbuf.py30
-rwxr-xr-xlibxml2-2.9.10/python/tests/indexes.py113
-rwxr-xr-xlibxml2-2.9.10/python/tests/input_callback.py148
-rw-r--r--libxml2-2.9.10/python/tests/invalid.xml6
-rwxr-xr-xlibxml2-2.9.10/python/tests/nsdel.py62
-rwxr-xr-xlibxml2-2.9.10/python/tests/outbuf.py110
-rwxr-xr-xlibxml2-2.9.10/python/tests/push.py35
-rwxr-xr-xlibxml2-2.9.10/python/tests/pushSAX.py64
-rwxr-xr-xlibxml2-2.9.10/python/tests/pushSAXhtml.py65
-rwxr-xr-xlibxml2-2.9.10/python/tests/reader.py446
-rwxr-xr-xlibxml2-2.9.10/python/tests/reader2.py265
-rwxr-xr-xlibxml2-2.9.10/python/tests/reader3.py160
-rwxr-xr-xlibxml2-2.9.10/python/tests/reader4.py50
-rwxr-xr-xlibxml2-2.9.10/python/tests/reader5.py47
-rwxr-xr-xlibxml2-2.9.10/python/tests/reader6.py128
-rwxr-xr-xlibxml2-2.9.10/python/tests/reader7.py101
-rwxr-xr-xlibxml2-2.9.10/python/tests/reader8.py36
-rwxr-xr-xlibxml2-2.9.10/python/tests/readererr.py56
-rwxr-xr-xlibxml2-2.9.10/python/tests/readernext.py86
-rwxr-xr-xlibxml2-2.9.10/python/tests/regexp.py32
-rwxr-xr-xlibxml2-2.9.10/python/tests/relaxng.py48
-rwxr-xr-xlibxml2-2.9.10/python/tests/resolver.py44
-rwxr-xr-xlibxml2-2.9.10/python/tests/schema.py52
-rwxr-xr-xlibxml2-2.9.10/python/tests/serialize.py150
-rwxr-xr-xlibxml2-2.9.10/python/tests/sync.py138
-rw-r--r--libxml2-2.9.10/python/tests/test.dtd1
-rwxr-xr-xlibxml2-2.9.10/python/tests/thread2.py99
-rwxr-xr-xlibxml2-2.9.10/python/tests/tst.py28
-rw-r--r--libxml2-2.9.10/python/tests/tst.xml1
-rwxr-xr-xlibxml2-2.9.10/python/tests/tstLastError.py82
-rwxr-xr-xlibxml2-2.9.10/python/tests/tstURI.py41
-rwxr-xr-xlibxml2-2.9.10/python/tests/tstmem.py36
-rwxr-xr-xlibxml2-2.9.10/python/tests/tstxpath.py63
-rw-r--r--libxml2-2.9.10/python/tests/valid.xml4
-rwxr-xr-xlibxml2-2.9.10/python/tests/validDTD.py59
-rwxr-xr-xlibxml2-2.9.10/python/tests/validRNG.py76
-rwxr-xr-xlibxml2-2.9.10/python/tests/validSchemas.py83
-rwxr-xr-xlibxml2-2.9.10/python/tests/validate.py82
-rwxr-xr-xlibxml2-2.9.10/python/tests/walker.py144
-rwxr-xr-xlibxml2-2.9.10/python/tests/xpath.py51
-rwxr-xr-xlibxml2-2.9.10/python/tests/xpathext.py49
-rwxr-xr-xlibxml2-2.9.10/python/tests/xpathleak.py55
-rwxr-xr-xlibxml2-2.9.10/python/tests/xpathns.py29
-rwxr-xr-xlibxml2-2.9.10/python/tests/xpathret.py57
-rw-r--r--libxml2-2.9.10/python/types.c955
-rwxr-xr-xlibxml2-2.9.10/regressions.py350
-rw-r--r--libxml2-2.9.10/regressions.xml226
-rw-r--r--libxml2-2.9.10/relaxng.c11101
-rw-r--r--libxml2-2.9.10/runsuite.c1157
-rw-r--r--libxml2-2.9.10/runtest.c4600
-rw-r--r--libxml2-2.9.10/runxmlconf.c607
-rw-r--r--libxml2-2.9.10/save.h36
-rw-r--r--libxml2-2.9.10/schematron.c1787
-rw-r--r--libxml2-2.9.10/testAutomata.c309
-rw-r--r--libxml2-2.9.10/testC14N.c373
-rw-r--r--libxml2-2.9.10/testHTML.c880
-rw-r--r--libxml2-2.9.10/testModule.c82
-rw-r--r--libxml2-2.9.10/testReader.c145
-rw-r--r--libxml2-2.9.10/testRegexp.c402
-rw-r--r--libxml2-2.9.10/testRelax.c188
-rw-r--r--libxml2-2.9.10/testSAX.c1198
-rw-r--r--libxml2-2.9.10/testSchemas.c179
-rw-r--r--libxml2-2.9.10/testThreads.c275
-rw-r--r--libxml2-2.9.10/testURI.c135
-rw-r--r--libxml2-2.9.10/testXPath.c229
-rw-r--r--libxml2-2.9.10/testapi.c52348
-rw-r--r--libxml2-2.9.10/testchar.c617
-rw-r--r--libxml2-2.9.10/testdict.c444
-rw-r--r--libxml2-2.9.10/testdso.c12
-rw-r--r--libxml2-2.9.10/testlimits.c1638
-rw-r--r--libxml2-2.9.10/testrecurse.c965
-rw-r--r--libxml2-2.9.10/threads.c1048
-rw-r--r--libxml2-2.9.10/timsort.h601
-rw-r--r--libxml2-2.9.10/tree.c10148
-rw-r--r--libxml2-2.9.10/trio.c6895
-rw-r--r--libxml2-2.9.10/trio.h230
-rw-r--r--libxml2-2.9.10/triodef.h228
-rw-r--r--libxml2-2.9.10/trionan.c914
-rw-r--r--libxml2-2.9.10/trionan.h84
-rw-r--r--libxml2-2.9.10/triop.h150
-rw-r--r--libxml2-2.9.10/triostr.c2112
-rw-r--r--libxml2-2.9.10/triostr.h144
-rw-r--r--libxml2-2.9.10/uri.c2554
-rw-r--r--libxml2-2.9.10/valid.c7139
-rwxr-xr-xlibxml2-2.9.10/vms/build_libxml.com273
-rwxr-xr-xlibxml2-2.9.10/vms/config.vms171
-rw-r--r--libxml2-2.9.10/vms/diffs.vms192
-rw-r--r--libxml2-2.9.10/vms/readme.vms143
-rw-r--r--libxml2-2.9.10/win32/Makefile.bcb347
-rw-r--r--libxml2-2.9.10/win32/Makefile.mingw337
-rw-r--r--libxml2-2.9.10/win32/Makefile.msvc497
-rw-r--r--libxml2-2.9.10/win32/Readme.txt226
-rw-r--r--libxml2-2.9.10/win32/VC10/README.vc1027
-rw-r--r--libxml2-2.9.10/win32/VC10/RuleSet1.ruleset3
-rw-r--r--libxml2-2.9.10/win32/VC10/config.h121
-rw-r--r--libxml2-2.9.10/win32/VC10/libxml2-focus.vcxproj184
-rw-r--r--libxml2-2.9.10/win32/VC10/libxml2.sln49
-rw-r--r--libxml2-2.9.10/win32/VC10/libxml2.vcxproj137
-rw-r--r--libxml2-2.9.10/win32/VC10/libxml2.vcxproj.filters171
-rw-r--r--libxml2-2.9.10/win32/VC10/runsuite.vcxproj85
-rw-r--r--libxml2-2.9.10/win32/VC10/runsuite.vcxproj.filters22
-rw-r--r--libxml2-2.9.10/win32/configure.js720
-rw-r--r--libxml2-2.9.10/win32/defgen.xsl288
-rw-r--r--libxml2-2.9.10/win32/libxml2.def.src3191
-rw-r--r--libxml2-2.9.10/win32/libxml2.rc36
-rw-r--r--libxml2-2.9.10/win32/wince/libxml2.vcb1
-rw-r--r--libxml2-2.9.10/win32/wince/libxml2.vcl122
-rw-r--r--libxml2-2.9.10/win32/wince/libxml2.vco1
-rw-r--r--libxml2-2.9.10/win32/wince/libxml2.vcp5273
-rw-r--r--libxml2-2.9.10/win32/wince/libxml2.vcw41
-rw-r--r--libxml2-2.9.10/win32/wince/wincecompat.c68
-rw-r--r--libxml2-2.9.10/win32/wince/wincecompat.h50
-rw-r--r--libxml2-2.9.10/xinclude.c2636
-rw-r--r--libxml2-2.9.10/xlink.c183
-rw-r--r--libxml2-2.9.10/xml2-config.131
-rw-r--r--libxml2-2.9.10/xml2-config.in109
-rw-r--r--libxml2-2.9.10/xml2Conf.sh.in8
-rw-r--r--libxml2-2.9.10/xmlIO.c4108
-rw-r--r--libxml2-2.9.10/xmlcatalog.c624
-rw-r--r--libxml2-2.9.10/xmllint.c3770
-rw-r--r--libxml2-2.9.10/xmlmemory.c1163
-rw-r--r--libxml2-2.9.10/xmlmodule.c468
-rw-r--r--libxml2-2.9.10/xmlreader.c5981
-rw-r--r--libxml2-2.9.10/xmlregexp.c8193
-rw-r--r--libxml2-2.9.10/xmlsave.c2769
-rw-r--r--libxml2-2.9.10/xmlschemas.c28972
-rw-r--r--libxml2-2.9.10/xmlschemastypes.c6164
-rw-r--r--libxml2-2.9.10/xmlstring.c1047
-rw-r--r--libxml2-2.9.10/xmlunicode.c3179
-rw-r--r--libxml2-2.9.10/xmlwriter.c4738
-rw-r--r--libxml2-2.9.10/xpath.c14711
-rw-r--r--libxml2-2.9.10/xpointer.c2954
-rw-r--r--libxml2-2.9.10/xstc/Makefile.am132
-rw-r--r--libxml2-2.9.10/xstc/Makefile.in689
-rwxr-xr-xlibxml2-2.9.10/xstc/xstc-to-python.xsl114
-rwxr-xr-xlibxml2-2.9.10/xstc/xstc.py693
-rw-r--r--libxml2-2.9.10/xzlib.c815
-rw-r--r--libxml2-2.9.10/xzlib.h19
-rw-r--r--mariadb-connector-c-v_2.3.7/CMakeLists.txt352
-rw-r--r--mariadb-connector-c-v_2.3.7/COPYING.LIB502
-rw-r--r--mariadb-connector-c-v_2.3.7/README23
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/COPYING-CMAKE-SCRIPTS22
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/CheckFunctions.cmake116
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/CheckIncludeFiles.cmake80
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/CheckTypes.cmake114
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/ConnectorName.cmake30
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/FindIconv.cmake64
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/SearchLibrary.cmake31
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/WindowsCache.cmake399
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/install.cmake139
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/linux_x86_toolchain.cmake19
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/sign.cmake21
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/symlink.cmake37
-rw-r--r--mariadb-connector-c-v_2.3.7/cmake/version_info.cmake44
-rw-r--r--mariadb-connector-c-v_2.3.7/examples/CMakeLists.txt18
-rw-r--r--mariadb-connector-c-v_2.3.7/examples/mysql_affected_rows.c82
-rw-r--r--mariadb-connector-c-v_2.3.7/examples/mysql_debug.c40
-rw-r--r--mariadb-connector-c-v_2.3.7/examples/test_output.c72
-rw-r--r--mariadb-connector-c-v_2.3.7/include/CMakeLists.txt37
-rw-r--r--mariadb-connector-c-v_2.3.7/include/config-win.h277
-rw-r--r--mariadb-connector-c-v_2.3.7/include/dbug.h151
-rw-r--r--mariadb-connector-c-v_2.3.7/include/errmsg.h81
-rw-r--r--mariadb-connector-c-v_2.3.7/include/getopt.h135
-rw-r--r--mariadb-connector-c-v_2.3.7/include/hash.h70
-rw-r--r--mariadb-connector-c-v_2.3.7/include/m_ctype.h74
-rw-r--r--mariadb-connector-c-v_2.3.7/include/m_string.h240
-rw-r--r--mariadb-connector-c-v_2.3.7/include/ma_common.h58
-rw-r--r--mariadb-connector-c-v_2.3.7/include/ma_dyncol.h256
-rw-r--r--mariadb-connector-c-v_2.3.7/include/ma_secure.h45
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_alarm.h60
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_base.h287
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_config.h280
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_config.h.in280
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_context.h232
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_dir.h100
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_global.h1114
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_list.h47
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_net.h48
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_no_pthread.h32
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_pthread.h590
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_stmt.h254
-rw-r--r--mariadb-connector-c-v_2.3.7/include/my_sys.h619
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql.h648
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql/client_plugin.h206
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql/plugin_auth.h107
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql/plugin_auth_common.h109
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql_async.h41
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql_com.h405
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql_io.h31
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql_mm.h44
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql_priv.h4
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql_version.h29
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql_version.h.in29
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysql_wireprotocol.h295
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysqld_error.h772
-rw-r--r--mariadb-connector-c-v_2.3.7/include/mysys_err.h69
-rw-r--r--mariadb-connector-c-v_2.3.7/include/sha1.h41
-rw-r--r--mariadb-connector-c-v_2.3.7/include/thr_alarm.h112
-rw-r--r--mariadb-connector-c-v_2.3.7/include/violite.h167
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/CMakeLists.txt460
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/acinclude.m491
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/array.c175
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/bchange.c39
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/bmove.c80
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/bmove_upp.c51
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/charset.c78
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/client_plugin.c466
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/dbug.c2457
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/default.c433
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/errmsg.c152
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/errors.c96
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/get_password.c175
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/getopt.c746
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/getopt1.c170
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/hash.c644
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/int2str.c153
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/is_prefix.c34
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/libmariadb.c3728
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/list.c116
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/llstr.c36
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/longlong2str.c143
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/ma_dtoa.c1925
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/ma_dyncol.c4401
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/ma_secure.c700
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/ma_time.c65
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mf_dirname.c100
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mf_fn_ext.c46
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mf_format.c156
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mf_loadpath.c54
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mf_pack.c532
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mf_path.c120
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mf_unixpath.c33
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mf_wcomp.c68
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mulalloc.c53
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_alloc.c169
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_auth.c742
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_charset.c1466
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_compress.c89
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_context.c760
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_div.c31
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_error.c124
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_fopen.c178
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_fstream.c171
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_getwd.c202
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_init.c273
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_lib.c614
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_loaddata.c304
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_malloc.c101
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_messnc.c36
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_net.c44
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_once.c88
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_open.c126
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_port.c40
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_pthread.c555
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_read.c66
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_realloc.c65
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_seek.c58
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_static.c101
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_static.h70
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_stmt.c1921
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_stmt_codec.c1117
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_symlink.c138
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_thr_init.c246
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_vsnprintf.c119
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/my_write.c90
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mysql_async.c2000
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/mysys_priv.h32
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/net.c868
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/password.c234
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/sha1.c325
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/str2int.c202
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strcend.c48
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strcont.c46
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strend.c50
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strfill.c36
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/string.c127
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strinstr.c50
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strmake.c54
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strmov.c59
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strnlen.c36
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strnmov.c36
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strto.c209
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strtoll.c198
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strtoull.c26
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strxmov.c50
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/strxnmov.c48
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/thr_mutex.c231
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/typelib.c106
-rw-r--r--mariadb-connector-c-v_2.3.7/libmariadb/violite.c709
-rw-r--r--mariadb-connector-c-v_2.3.7/mariadb_config/CMakeLists.txt36
-rw-r--r--mariadb-connector-c-v_2.3.7/mariadb_config/mariadb_config.c.in112
-rw-r--r--mariadb-connector-c-v_2.3.7/mingw_cross_toolchain.cmake18
-rw-r--r--mariadb-connector-c-v_2.3.7/plugins/CMakeLists.txt6
-rw-r--r--mariadb-connector-c-v_2.3.7/plugins/auth/CMakeLists.txt44
-rw-r--r--mariadb-connector-c-v_2.3.7/plugins/auth/dialog.c215
-rw-r--r--mariadb-connector-c-v_2.3.7/plugins/auth/mariadb_cleartext.c69
-rw-r--r--mariadb-connector-c-v_2.3.7/plugins/plugin.def2
-rw-r--r--mariadb-connector-c-v_2.3.7/win-iconv/iconv.h14
-rw-r--r--mariadb-connector-c-v_2.3.7/win-iconv/mlang.h54
-rw-r--r--mariadb-connector-c-v_2.3.7/win-iconv/win_iconv.c2051
-rw-r--r--mariadb-connector-c-v_2.3.7/win/packaging/CMakeLists.txt81
-rw-r--r--mariadb-connector-c-v_2.3.7/win/packaging/WixUIBannerBmp.jpgbin0 -> 4855 bytes
-rw-r--r--mariadb-connector-c-v_2.3.7/win/packaging/WixUIDialogBmp.jpgbin0 -> 8800 bytes
-rw-r--r--mariadb-connector-c-v_2.3.7/win/packaging/license.rtf464
-rw-r--r--mariadb-connector-c-v_2.3.7/win/packaging/mariadb-connector-c.xml.in79
-rw-r--r--mariadb-connector-c-v_2.3.7/win/resource.rc.in34
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/CMakeLists.txt13
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/ChangeLog1208
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/FAQ366
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/INDEX65
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/README115
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/adler32.c169
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/compress.c80
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/crc32.c442
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/crc32.h441
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/deflate.c1834
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/deflate.h342
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/example.c565
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/gzclose.c25
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/gzguts.h135
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/gzlib.c537
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/gzread.c653
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/gzwrite.c531
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/infback.c632
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/inffast.c340
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/inffast.h11
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/inffixed.h94
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/inflate.c1480
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/inflate.h122
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/inftrees.c330
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/inftrees.h62
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/minigzip.c440
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/treebuild.xml116
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/trees.c1244
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/trees.h128
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/uncompr.c59
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/zconf.h428
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/zconf.h.cmakein430
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/zconf.h.in428
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/zlib.3151
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/zlib.3.pdfbin0 -> 8686 bytes
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/zlib.h1613
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/zlib.map68
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/zlib.pc.in13
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/zutil.c318
-rw-r--r--mariadb-connector-c-v_2.3.7/zlib/zutil.h274
-rw-r--r--restore.c1705
-rw-r--r--string_buf.c282
-rw-r--r--string_buf.h25
912 files changed, 721975 insertions, 0 deletions
diff --git a/LICENSES/0BSD.txt b/LICENSES/0BSD.txt
new file mode 100644
index 0000000..38874ac
--- /dev/null
+++ b/LICENSES/0BSD.txt
@@ -0,0 +1,6 @@
+Copyright (C) 2021 by Wojtek Kosior <echo a3dvanR1c0Bwcm90b25tYWlsLmNvbQo= | base64 -d>
+
+Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
diff --git a/LICENSES/GPLv3.txt b/LICENSES/GPLv3.txt
new file mode 100644
index 0000000..f288702
--- /dev/null
+++ b/LICENSES/GPLv3.txt
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..9dccbd2
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,62 @@
+include Makefile.config
+
+MARIADB_SRC = mariadb-connector-c-v_2.3.7/
+LIBMARIADB = $(MARIADB_SRC)/build/libmariadb/libmariadbclient.a
+
+XML2_SRC = libxml2-2.9.10/
+LIBXML2 = $(XML2_SRC)/.libs/libxml2.a
+
+CC = $(TARGET)-gcc
+OBJECTS = string_buf.o restore.o hashtable.o
+
+all : __executable
+
+$(OBJECTS) : Makefile.config Makefile
+
+ifeq ($(TARGET),x86_64-linux-gnu)
+SUFFIX =
+STATIC_LIBS =
+LINKFLAGS = -shared -lxml2 -lmariadbclient
+CFLAGS = -fPIC -I /usr/include/libxml2/
+else
+SUFFIX = .exe
+STATIC_LIBS = $(LIBMARIADB) $(LIBXML2)
+LINKFLAGS = -static -L $(dir $(LIBMARIADB)) -L $(dir $(LIBXML2)) \
+ -lxml2 -lmariadbclient -lkernel32 -lws2_32
+CFLAGS = -I $(XML2_SRC)/include/ -I $(MARIADB_SRC)/include/
+
+$(OBJECTS) : $(LIBMARIADB) $(LIBXML2)
+endif
+
+EXECUTABLE = restore$(SUFFIX)
+
+__executable : $(EXECUTABLE)
+$(EXECUTABLE) : $(OBJECTS)
+ $(TARGET)-gcc $^ $(LINKFLAGS) -o $@
+
+$(LIBXML2) : Makefile.config
+ -cd $(XML2_SRC) && make distclean 2> /dev/null
+ cd $(XML2_SRC) && ./configure \
+ --host=$(TARGET) \
+ --without-iconv \
+ --with-zlib \
+ --without-python \
+ --without-http \
+ --without-ftp \
+ --without-lzma
+ cd $(XML2_SRC) && make -j$$((`nproc` + 1))
+
+$(LIBMARIADB) : Makefile.config
+ rm -rf $(MARIADB_SRC)/build/
+ cd $(MARIADB_SRC) && cmake -B build/ \
+ -D CMAKE_TOOLCHAIN_FILE=./mingw_cross_toolchain.cmake \
+ -D WITH_EXTERNAL_ZLIB=ON \
+ -D GNU_HOST=$(TARGET)
+ cd $(MARIADB_SRC)build/ && make -j$$((`nproc` + 1)) mariadbclient
+
+clean :
+ -cd $(XML2_SRC) && make distclean 2> /dev/null
+ rm -rf $(MARIADB_SRC)/build/
+ rm -rf *.o restore restore.exe
+
+.PHONY : clean all __executable
diff --git a/Makefile.config b/Makefile.config
new file mode 100644
index 0000000..e4e5771
--- /dev/null
+++ b/Makefile.config
@@ -0,0 +1,3 @@
+#TARGET = x86_64-linux-gnu
+TARGET = x86_64-w64-mingw32
+#TARGET = i686-w64-mingw32
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..8f163c2
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,14 @@
+C program for populating a MySQL/MariaDB based on an xml backup from Django.
+
+This program is unlikely to be useful to you - it is only present in this
+repository to serve as part of my CV.
+
+This program builds for both Windows (with MinGW) and GNU/Linux.
+It utilizes libmariadbclient and libxml2 (included in this repository).
+Note that newer versions of mariadbclient use newer APIs and cannot be
+cross-compiled using current (as of 2021) MinGW.
+
+This program is Copyright by Wojtek Kosior, 2021, dual-licensed under:
+ - 0BSD license or
+ - GPLv3 (or, at your option, any later version)
+See into LICENSES/ for details.
diff --git a/field_types.c b/field_types.c
new file mode 100644
index 0000000..bb6e871
--- /dev/null
+++ b/field_types.c
@@ -0,0 +1,21 @@
+X(CHAR_FIELD, "CharField")
+X(FILE_FIELD, "FileField")
+X(TEXT_FIELD, "TextField")
+X(INT_FIELD, "IntegerField")
+X(SMALL_INT_FIELD, "SmallIntegerField")
+X(POSITIVE_INT_FIELD, "PositiveIntegerField")
+X(BIG_INT_FIELD, "BigIntegerField")
+X(DECIMAL_FIELD, "DecimalField")
+X(BOOL_FIELD, "BooleanField")
+X(TIME_FIELD, "TimeField")
+X(DATETIME_FIELD, "DateTimeField")
+X(DATE_FIELD, "DateField")
+X(ARRAY_FIELD, "ArrayField")
+X(JSON_FIELD, "JSONField")
+X(ONE_TO_ONE_REL, "OneToOneRel")
+X(MANY_TO_ONE_REL, "ManyToOneRel")
+X(MANY_TO_MANY_REL, "ManyToManyRel")
+Y(EMPTY_ARRAY_FIELD, "EMPTYArrayField")
+Y(BROKEN_TO_ONE_REL, "BROKENToOneRel")
+Y(BROKEN_TO_MANY_REL, "BROKENToManyRel")
+Y(UNKNOWN_FIELD, "UNKNOWNField")
diff --git a/hashtable.c b/hashtable.c
new file mode 100644
index 0000000..0209f71
--- /dev/null
+++ b/hashtable.c
@@ -0,0 +1,517 @@
+// https://libregit.org/koszko/C_hashtable
+// Note that this version might or might not be more up-to-date than
+// the one linked.
+
+// GENERAL INFO
+
+// You might want to read the beginning of hashtable.h first.
+
+// In some places "rehashing" and in other ones "resizing" seemed to
+// be the right word to use. They mean more or less the same.
+
+// Functions starting with ht_ are part of the API. Internal functions
+// are declared static. I also made some of them inline (either
+// because they were extremely short or only called from 1 place).
+
+// Hashtable size is always a power of 2.
+
+// When the hashtable is ¾ full, a new, 2x bigger table is allocated
+// and whenever one of 4 basic operations (adding, removing, setting,
+// getting) occurs, 4 slots are being rehashed from old table into 8
+// slots in new table. Similarly, when hashtable is ¼ full, a new,
+// 2x smaller table is allocated and each of subsequent operations
+// rehashes 8 entries from old table into 4 in new table.
+// This mechanism has been made lazier: getting and removing don't
+// trigger growing of ht even if it's 3/4 full. Similarly, getting,
+// setting and adding don't trigger shrinking.
+// Once resizing is triggered, however, any of the operations will
+// contribute to rehashing. Even if, for example, the operation is
+// ADD and the table is being shrinked.
+// This means, that if we have a hashtable of size n which is ¾ full
+// and growing is triggered, then each subsequent call to
+// ht_{add,rem,get,set}() rehashes some entries and, depending on
+// how frequently and how successfully each of these 4 funcs was
+// called, at the end of resizing we get a size 2n hashtable which is
+// between ¼ and ½ full. Similarly, if shrinking of a ¼ full
+// hashtable of size n is triggered, then after some operations we
+// get a size ½n hashtable, that is somewhere between ¼ and ¾ full.
+// One can see now, that we always keep the hashtable between ¼ and ¾
+// full (with the exception of a minimal size one, that can be empty).
+
+#include "hashtable.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdbool.h>
+
+// We won't shrink hashtable below this size. Newly created one will
+// be this big.
+#define MIN_SIZE 32
+
+// Special value of ht->rehashing_position.
+#define NOT_REHASHING ((ssize_t) -1)
+
+// Those are possible return values of do_resizing_related_stuff()
+// and rehash_some_entries() (which only returns the first 2).
+#define REHASHING_IN_PROGRESS 0
+#define REHASHING_NOT_IN_PROGRESS 1
+#define REHASHING_NO_MEM 2
+
+/* Struct used to store a pair. */
+struct ht_node
+{
+ const void *key;
+ const void *val;
+ struct ht_node *next;
+};
+
+enum op
+ {
+ GET,
+ ADD,
+ SET,
+ REM,
+ };
+
+int ht_init(hashtable_t *ht,
+ size_t (*hash)(const void *key),
+ int (*cmp)(const void *key1, const void *key2))
+{
+ if (!(ht->tab = calloc(MIN_SIZE, sizeof(struct ht_node**))))
+ return HT_NO_MEM;
+
+ ht->tab_size = MIN_SIZE;
+ ht->rehashing_position = NOT_REHASHING;
+ ht->entries = 0;
+ ht->hashfunc = hash;
+ ht->cmpfunc = cmp;
+
+ return HT_OK;
+}
+
+// First come some utilities :)
+
+static inline size_t min(size_t n1, size_t n2)
+{
+ return n1 < n2 ? n1 : n2;
+}
+
+static inline size_t hash2(size_t n)
+{
+ // I found this "hash improver" on the internet.
+ n ^= (n >> 20) ^ (n >> 12);
+ return n ^ (n >> 7) ^ (n >> 4);
+}
+
+// Below are 2 list-handling utility functions.
+static inline struct ht_node *join_lists(struct ht_node *l1,
+ struct ht_node *l2)
+{
+ if (!l1) return l2;
+ if (!l2) return l1;
+
+ struct ht_node *l1_last;
+
+ for (l1_last = l1; l1_last->next; l1_last = l1_last->next);
+
+ // Append l2 to the end of l1.
+ l1_last->next = l2;
+
+ // For convenience return the first element of the resulting list.
+ return l1;
+}
+
+
+static inline void push(struct ht_node *node, struct ht_node **list)
+{
+ node->next = *list;
+ *list = node;
+}
+
+// The following 2 rehash_* functions are helpers of
+// rehash_some_entries().
+// This func rehashes 1 chain of entries in tab[]
+// into 2 chains in newtab[].
+static inline void rehash_position_growing(hashtable_t *ht)
+{
+ // There are 2 possible new positions of an entry in a 2x bigger ht.
+ struct ht_node *list0 = NULL, *list1 = NULL;
+
+ size_t old_position = ht->rehashing_position,
+ new_position0 = old_position,
+ new_position1 = old_position | ht->tab_size;
+
+ struct ht_node *pair = ht->tab[old_position], *next_pair;
+
+ while (pair)
+ {
+ next_pair = pair->next;
+
+ size_t new_position = hash2(ht->hashfunc(pair->key))
+ & (ht->new_size - 1);
+
+ push(pair, new_position == new_position1 ? &list1 : &list0);
+
+ pair = next_pair;
+ }
+
+ ht->newtab[new_position0] = list0;
+ ht->newtab[new_position1] = list1;
+
+ ht->rehashing_position++;
+}
+
+// This func rehashes 2 chains of entries in tab[]
+// into 1 chain in newtab[].
+static inline void rehash_2positions_shrinking(hashtable_t *ht)
+{
+ size_t new_position = ht->rehashing_position,
+ old_position0 = new_position,
+ old_position1 = new_position | ht->new_size;
+
+ ht->newtab[new_position] = join_lists(ht->tab[old_position0],
+ ht->tab[old_position1]);
+
+ ht->rehashing_position++;
+}
+
+// Rehashes 4(8) positions from tab to newtab. If those were the last
+// enetries to rehash, the function takes care of everything
+// (like deallocating old tab) and returns REHASHING_NOT_IN_PROGRESS.
+// Otherwise, returns REHASHING_IN_PROGRESS.
+// Caller must make sure rehashing was started b4 calling this func.
+static int rehash_some_entries(hashtable_t *ht)
+{
+ int rehashes_left = 4;
+
+ if (ht->new_size > ht->tab_size) // growing ht
+ {
+ while(rehashes_left--) rehash_position_growing(ht);
+ if (ht->rehashing_position != ht->tab_size)
+ return REHASHING_IN_PROGRESS;
+ }
+ else // shrinking ht
+ {
+ while(rehashes_left--) rehash_2positions_shrinking(ht);
+ if (ht->rehashing_position != ht->new_size)
+ return REHASHING_IN_PROGRESS;
+ }
+
+ // rehashing finishes
+ ht->rehashing_position = NOT_REHASHING;
+ ht->tab_size = ht->new_size;
+ free(ht->tab);
+ ht->tab = ht->newtab;
+
+ return REHASHING_NOT_IN_PROGRESS;
+}
+
+static inline bool resizing_taking_place(hashtable_t *ht)
+{
+ return !(ht->rehashing_position == NOT_REHASHING);
+}
+
+void ht_finish_resizing(hashtable_t *ht)
+{
+ if (resizing_taking_place(ht))
+ while (rehash_some_entries(ht) == REHASHING_IN_PROGRESS);
+}
+
+static inline bool needs_growing(hashtable_t *ht)
+{
+ return ht->entries >= 3 * ht->tab_size / 4;
+}
+
+static inline bool needs_shrinking(hashtable_t *ht)
+{
+ return ht->tab_size > MIN_SIZE
+ && ht->entries <= ht->tab_size / 4;
+}
+
+// Each of hashtable operations (add, set, rem, get) should also
+// attempt to do part of resizing. This way resizing operation
+// which is O(n) is distributed among many hashtable accesses
+// each of them still being O(1). Without this the the amortized
+// complexity of ht accesses would still be O(1), but a single access
+// would sometimes be O(n).
+// Other function that adds, sets, gets or removes sth from ht uses
+// this one to do this "part of resizing" mentioned above.
+// This func returns REHASHING_NO_MEM on failed malloc (won't happen
+// for GET or REM operation) and REHASHING_[NOT_]IN_PROGRESS otherwise.
+static inline int
+do_resizing_related_stuff(hashtable_t *ht, const void *key, enum op op)
+{
+ bool resizing = resizing_taking_place(ht);
+
+ if (!resizing)
+ {
+ size_t new_size;
+
+ switch (op)
+ {
+ case GET:
+ goto dont_start_resizing;
+ case ADD:
+ case SET:
+ if (needs_growing(ht))
+ new_size = ht->tab_size * 2;
+ else
+ goto dont_start_resizing;
+ break;
+ default: // case REM
+ if (needs_shrinking(ht))
+ new_size = ht->tab_size / 2;
+ else
+ goto dont_start_resizing;
+ }
+
+ struct ht_node **newtab;
+ if (!(newtab = malloc(new_size * sizeof(struct ht_node*))))
+ return op == REM ? REHASHING_NOT_IN_PROGRESS : REHASHING_NO_MEM;
+
+ ht->newtab = newtab;
+ ht->new_size = new_size;
+ ht->rehashing_position = 0;
+
+ resizing = true;
+ }
+
+ dont_start_resizing:
+
+ return resizing ?
+ rehash_some_entries(ht) : REHASHING_NOT_IN_PROGRESS;
+}
+
+// This is a chaining hashtable, so each element in the array (table)
+// is actually a list of entries. All operations (adding, removing,
+// etc.) need to find the right list of entries (here called "bucket")
+// for a given key first, so it makes sense to do it in a separate
+// function. The bucket may be in tab or newtab if resizing is taking
+// place. Being informed by the caller if resizing is in progress,
+// this func does not need to check for it by itself.
+static inline struct ht_node **find_bucket(hashtable_t *ht, const void *key,
+ bool resizing_in_progress)
+{
+ size_t hash = hash2(ht->hashfunc(key)),
+ destination_tab_size, position;
+
+ struct ht_node **destination_tab;
+
+ if (resizing_in_progress)
+ // Here we must check whether our key's bucket is still
+ // in ht->tab or already rehashed to ht->newtab.
+ {
+ size_t smaller_tab_size = min(ht->tab_size, ht->new_size),
+ smaller_tab_position = hash & (smaller_tab_size - 1);
+
+ if (smaller_tab_position < ht->rehashing_position)
+ {
+ destination_tab = ht->newtab;
+ destination_tab_size = ht->new_size;
+ }
+ else
+ {
+ destination_tab = ht->tab;
+ destination_tab_size = ht->tab_size;
+ }
+ }
+ else
+ // In this case we know, we're working on ht->tab and not newtab.
+ {
+ destination_tab = ht->tab;
+ destination_tab_size = ht->tab_size;
+ }
+
+ position = hash & (destination_tab_size - 1);
+ return &destination_tab[position];
+}
+
+// Operations of adding, removing, etc. all work on list of entries
+// (bucket) to wchich key hashes and they have some common logic, so
+// it made sense to make a single function, that does the right
+// operation based on an enum passed to it.
+static inline int
+perform_operation_on_bucket(hashtable_t *ht, struct ht_node **bucket,
+ const void *key, const void *val,
+ void **keyptr, void **valptr,
+ enum op op)
+{
+ for (struct ht_node **pairptr = bucket, *pair = *pairptr;
+ pair;
+ pairptr = &pair->next, pair = pair->next)
+
+ if (!ht->cmpfunc(key, pair->key))
+ {
+ if (op == ADD)
+ return HT_KEY_PRESENT;
+
+ if (keyptr) *keyptr = (void*) pair->key;
+ if (valptr) *valptr = (void*) pair->val;
+
+ switch (op)
+ {
+ case GET:
+ {
+ return HT_OK;
+ }
+ case SET:
+ {
+ pair->key = key;
+ pair->val = val;
+ return HT_OK;
+ }
+ default: // case REM
+ {
+ *pairptr = pair->next;
+ free(pair);
+ ht->entries--;
+ return HT_OK;
+ }
+ }
+ }
+
+ if (op == GET || op == REM)
+ return HT_KEY_ABSENT;
+
+ // op == ADD || op == SET
+
+ struct ht_node *new_pair = malloc(sizeof(struct ht_node));
+ if (!new_pair)
+ return HT_NO_MEM;
+
+ *new_pair = (struct ht_node) {.key = key, .val = val};
+ push(new_pair, bucket);
+ ht->entries++;
+
+ return HT_OK;
+}
+
+// Generic function for performing of adding, removing, setting and
+// getting.
+static int perform_operation(hashtable_t *ht, const void *key, const void *val,
+ void **keyptr, void **valptr, enum op op)
+{
+ bool resizing_in_progress;
+
+ switch (do_resizing_related_stuff(ht, key, op))
+ {
+ case REHASHING_IN_PROGRESS:
+ resizing_in_progress = true;
+ break;
+ case REHASHING_NOT_IN_PROGRESS:
+ resizing_in_progress = false;
+ break;
+ default: // case REHASHING_NO_MEM
+ return HT_NO_MEM;
+ }
+
+ struct ht_node **bucket =
+ find_bucket(ht, key, resizing_in_progress);
+
+ return perform_operation_on_bucket(ht, bucket, key, val,
+ keyptr, valptr, op);
+}
+
+// The 4 functions below are the main part of the API.
+int ht_get(hashtable_t *ht, const void *key,
+ void **storedkey, void **val)
+{
+ return perform_operation(ht, key, NULL, storedkey, val, GET);
+}
+
+int ht_add(hashtable_t *ht, const void *key, const void *val)
+{
+ return perform_operation(ht, key, val, NULL, NULL, ADD);
+}
+
+int ht_set(hashtable_t *ht, const void *key, const void *val,
+ void **oldkey, void **oldval)
+{
+ return perform_operation(ht, key, val, oldkey, oldval, SET);
+}
+
+int ht_rem(hashtable_t *ht, const void *key,
+ void **storedkey, void **val)
+{
+ return perform_operation(ht, key, NULL, storedkey, val, REM);
+}
+
+// As mentioned in hashtable.h, this func does not deallocate keys
+// nor vals. One could use ht_map_destroy() if that is needed.
+void ht_destroy(hashtable_t *ht)
+{
+ if (!ht->entries)
+ return;
+
+ ht_finish_resizing(ht);
+
+ struct ht_node **tab = ht->tab;
+
+ for (ssize_t position = ht->tab_size - 1;
+ position >= 0; position--)
+ {
+ struct ht_node *pair = tab[position], *nextpair;
+
+ while (pair)
+ {
+ nextpair = pair->next;
+ free(pair);
+ pair = nextpair;
+ }
+ }
+
+ free(ht->tab);
+}
+
+void ht_map(hashtable_t *ht, void *arg,
+ void (*mapfunc)(const void *key, void *val, void *arg))
+{
+ if (!ht->entries)
+ return;
+
+ ht_finish_resizing(ht);
+
+ struct ht_node **tab = ht->tab;
+
+ for (ssize_t position = ht->tab_size - 1;
+ position >= 0; position--)
+
+ for (struct ht_node *pair = tab[position];
+ pair; pair = pair->next)
+
+ mapfunc(pair->key, (void*) pair->val, arg);
+}
+
+void ht_map_destroy(hashtable_t *ht, void *arg,
+ void (*mapfunc)(void *key, void *val, void *arg))
+{
+ // If mapfunc() deallocates keys, the following 2 lines make
+ // assumption on ht_destroy(), that it doesn't call ht->hashfunc()
+ // or ht->cmpfunc() on keys.
+ ht_map(ht, arg, (void (*)(const void*, void*, void*)) mapfunc);
+ ht_destroy(ht);
+}
+
+// These 2 functions are for easy making of hashtable with strings as
+// keys. Note that this hash is *not* secure against DoS attacks.
+size_t ht_string_hash(const char *key)
+{
+ size_t i = 0, hash = (size_t) 0xa1bad2dead3beef4;
+
+ do
+ {
+ char shift = ((unsigned char) key[i]) % sizeof(size_t);
+ hash += ((hash >> shift) | (hash << (sizeof(size_t) - shift)))
+ ^ key[i];
+ }
+ while (key[i++]);
+
+ return hash;
+}
+
+int ht_string_init(hashtable_t *ht)
+{
+ return ht_init(ht, (size_t (*)(const void*)) &ht_string_hash,
+ (int (*)(const void*, const void*)) &strcmp);
+}
diff --git a/hashtable.h b/hashtable.h
new file mode 100644
index 0000000..34456cc
--- /dev/null
+++ b/hashtable.h
@@ -0,0 +1,106 @@
+// https://libregit.org/koszko/C_hashtable
+// Note that this version might or might not be more up-to-date than
+// the one linked.
+
+// This is a separate chaining hashtable for general use. It's not
+// universal: it uses malloc() and free(), so it requires a standard
+// library to function and it's for single-threaded use only. It does,
+// however, have one advantage: it rehashes automatically, both when
+// it grows in size and when it shrinks, while retaining O(1) access
+// time. A normal hashtable with rehashing would have amortized O(1)
+// access time, but there would be single access with O(n) time
+// complexity for each rehashing. In this hashtable, rehashing is done
+// in parts. For example, a ht_add(), aside from adding an entry,
+// might also rehash 4 other entries from old table to the new one and
+// leave the rest unrehashed.
+// Of course, it is assumed that a good hash function is provided
+// by the programmer. If not, accesses may still degenerate to O(n).
+// Hence, this hashtable is not secure against DoS attacks.
+
+#include <sys/types.h> // for ssize_t
+
+// These are possible return values of some ht_ functions (see below).
+#define HT_OK 0
+#define HT_NO_MEM -1
+#define HT_KEY_PRESENT -2
+#define HT_KEY_ABSENT -3
+
+typedef struct
+{
+ // All members are considered implementation details, except for
+ // "entries", which can be read, but should not be modified by
+ // external code.
+ size_t entries;
+
+ // tab[] is where entries (chains of entries) are stored.
+ // When rehashing, newtab[] is also used.
+ struct ht_node **tab, **newtab;
+
+ // sizes of tab[] and newtab[], obviously
+ size_t tab_size, new_size;
+
+ size_t (*hashfunc)(const void* key);
+ int (*cmpfunc)(const void* key1, const void *key2);
+
+ // When no rehashing is taking place, rehashing_position is -1
+ // (#define'd as NOT_REHASHING in hashtable.c). At any other time,
+ // rehashing_position is the lowest not yet rehashed position in
+ // the smaller table.
+ ssize_t rehashing_position;
+} hashtable_t;
+
+// All int functions return 0 (#define'd as HT_OK) on success and in
+// case of failure they return error codes, as described below.
+
+// May fail with HT_NO_MEM.
+int ht_init(hashtable_t *ht,
+ size_t (*hash)(const void* key),
+ int (*cmp)(const void* key1, const void *key2));
+
+// May fail with HT_NO_MEM and HT_KEY_PRESENT.
+int ht_add(hashtable_t *ht, const void *key, const void *val);
+
+// May fail with HT_NO_MEM. If key was not yet present in hashtable,
+// *oldkey and *oldval are not modified. Otherwise, just-replaced pair
+// is stored in them.
+int ht_set(hashtable_t *ht, const void *key, const void *val,
+ void **oldkey, void **oldval);
+
+// If present, the looked for pair is stored in *storedkey and *val.
+// Otherwise, they're not modified and HT_KEY_ABSENT is returned.
+// storedkey and/or val can be NULL.
+int ht_get(hashtable_t *ht, const void *key, void **storedkey, void **val);
+
+// Works like the above but also removes the pair from ht if found.
+int ht_rem(hashtable_t *ht, const void *key, void **storedkey, void **val);
+
+// De-initializes the hashtable freeing all its structures.
+// The programmer is responsible for freeing keys and values if they
+// were allocated from the heap (see ht_map_destroy() below).
+void ht_destroy(hashtable_t *ht);
+
+// Calls ht_finish_resizing(), then maps through ht.
+void ht_map(hashtable_t *ht, void *arg,
+ void (*mapfunc)(const void *key, void *val, void *arg));
+
+// It might be tempting to use ht_map() to free() all keys and values
+// stored in ht and then call ht_destroy(). If you think about it,
+// ht_map() would leave hashtable in a broken state - with keys being
+// deallocated. Depending on the implementation, ht_destroy() could
+// cope with that, but we'd rather not guarrantee anything, so here's
+// another function just for that - mapping through entries and
+// destroying the hashtable immediately after, explicitly allowing
+// the mapping function to deallocate keys.
+void ht_map_destroy(hashtable_t *ht, void *arg,
+ void (*mapfunc)(void *key, void *val, void *arg));
+
+// If hashtable is in the process of being rehashed, this function
+// processes it to the end. Otherwise - it does nothing.
+void ht_finish_resizing(hashtable_t *ht);
+
+// Included, since strings are commonly used as keys
+size_t ht_string_hash(const char *key);
+
+// May fail with HT_NO_MEM. Initializes ht for use with string keys
+// (using ht_string_hash() and strcmp()).
+int ht_string_init(hashtable_t *ht);
diff --git a/libxml2-2.9.10/AUTHORS b/libxml2-2.9.10/AUTHORS
new file mode 100644
index 0000000..cf2e9a6
--- /dev/null
+++ b/libxml2-2.9.10/AUTHORS
@@ -0,0 +1,5 @@
+Daniel Veillard <daniel@veillard.com>
+Bjorn Reese <breese@users.sourceforge.net>
+William Brack <wbrack@mmm.com.hk>
+Igor Zlatkovic <igor@zlatkovic.com> for the Windows port
+Aleksey Sanin <aleksey@aleksey.com>
diff --git a/libxml2-2.9.10/ChangeLog b/libxml2-2.9.10/ChangeLog
new file mode 100644
index 0000000..b3f3fc1
--- /dev/null
+++ b/libxml2-2.9.10/ChangeLog
@@ -0,0 +1,19678 @@
+Fri Jul 10 16:11:34 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix a regression in entity parsing when using the reader
+ introduced because we were not reusing _private on entities parsing
+ context
+
+Thu Jul 9 10:21:00 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ Aleksey Sanin support for c14n 1.1
+ * c14n.c include/libxml/c14n.h: adds support for C14N 1.1,
+ new flags at the API level
+ * runtest.c Makefile.am testC14N.c xmllint.c: add support in CLI
+ tools and test binaries
+ * result/c14n/1-1-without-comments/* test/c14n/1-1-without-comments/*:
+ add a new batch of tests
+
+Thu Jul 9 08:52:35 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * config.h.in: update of libtool seems to have modified it
+ * python/libxml2class.txt: python update modified the order
+ of classes apparently
+
+Thu Jul 9 08:43:06 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: avoid calling xmlAddID with NULL values
+ * parser.c: add a few xmlInitParser in some entry points
+
+Fri Jun 19 19:51:08 CEST 2009 Rob Richards <rrichards@cdatazone.org>
+
+ * parser.c: use options from current parser context when creating
+ a parser context within xmlParseCtxtExternalEntity
+ * xmlwriter.c: fix error message when unable to create output file
+
+Thu Jun 4 11:17:23 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * c14n.c debugXML.c doc/examples/io2.c parser.c schematron.c
+ valid.c xmlschemas.c xmlwriter.c xpath.c: use %s to printf string
+ patch by Christian Persch, fixes #581612
+
+Thu Jun 4 11:06:07 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c threads.c: change the threading initialization sequence
+ as suggested by Igor Novoseltsev to avoid crash if xmlInitParser()
+ is called from a thread which is not the main one, should fix
+ #584605
+
+Fri May 15 17:54:48 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: make sure we keep line numbers fixes #580705
+ based Aaron Patterson patch
+
+Tue May 12 09:13:58 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: a broken HTML table attributes initialization,
+ fixes #581803, by Roland Steiner <rolandsteiner@google.com>
+
+Tue May 12 08:54:20 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * libxml2.doap: adding RDF dope file.
+
+Tue May 12 08:42:52 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: adapt the extra version detection code to git
+
+Wed Apr 29 16:09:38 CEST 2009 Rob Richards <rrichards@cdatazone.org>
+
+ * parser.c: do not set error code in xmlNsWarn
+
+Wed Apr 15 11:18:24 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parser.h include/libxml/xmlwriter.h
+ include/libxml/relaxng.h include/libxml/xmlversion.h.in
+ include/libxml/xmlwin32version.h.in include/libxml/valid.h
+ include/libxml/xmlschemas.h include/libxml/xmlerror.h: change
+ ATTRIBUTE_PRINTF into LIBXML_ATTR_FORMAT to avoid macro name
+ collisions with other packages and headers as reported by
+ Belgabor and Mike Hommey
+
+Thu Apr 2 13:57:15 CEST 2009 Daniel Veillard <daniel@veillard.com>
+
+ * error.c: fix structured error handling problems #564217
+
+Thu Mar 26 19:08:08 CET 2009 Rob Richards <rrichards@cdatazone.org>
+
+ * parser.c: use options from current parser context when creating
+ an entity parser context
+
+Wed Mar 25 11:40:34 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * doc/*: updated SVN URL for GNOME as pointed by Vincent Lefevre
+ and regenerated docs
+
+Wed Mar 25 11:21:26 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: hide the nbParse* variables used for debugging
+ as pointed by Mike Hommey
+
+Wed Mar 25 10:50:05 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * include/wsockcompat.h win32/Makefile.bcb xpath.c: fixes for
+ Borland/CodeGear/Embarcadero compilers by Eric Zurcher
+
+Wed Mar 25 10:43:07 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: xmlXPathRegisterNs should not allow enpty prefixes
+
+Mon Mar 23 20:27:15 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: add a missing check in xmlAddSibling, patch by Kris Breuker
+ * xmlIO.c: avoid xmlAllocOutputBuffer using XML_BUFFER_EXACT which
+ leads to performances problems especially on Windows.
+
+Tue Mar 3 14:30.28 HKT 2009 William Brack <wbrack@mmm.com.hk>
+
+ * trio.h: changed include of config.h to be surrounded by
+ quotation marks #570806
+
+Sat Feb 21 10:20:34 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c parser.c: more warnings about xmlCleanupThreads and
+ xmlCleanupParser to avoid troubles like #571409
+
+Fri Feb 20 09:40:04 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: cleanups and error reports when xmlTextWriterVSprintf
+ fails, by Jinmei Tatuya
+
+Fri Feb 20 09:18:56 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: remove a couple of leaks on errors reported by
+ Jinmei Tatuya
+
+Sun Jan 18 22:37:59 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/xml.html doc/*: preparing 0.7.3 release
+ * include/libxml/parserInternals.h SAX2.c: fix a typo in a name
+
+Sun Jan 18 21:48:28 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parser.h include/libxml/xmlwriter.h
+ include/libxml/relaxng.h include/libxml/xmlversion.h.in
+ include/libxml/xmlwin32version.h.in include/libxml/valid.h
+ include/libxml/xmlschemas.h include/libxml/xmlerror.h:
+ port patch from Marcus Meissner to add gcc checking for
+ printf like functions parameters, should fix #65068
+ * doc/apibuild.py doc/*: modified the script accordingly
+ and regenerated
+ * xpath.c xmlmemory.c threads.c: fix a few warnings
+
+Sun Jan 18 20:40:42 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlwin32version.h.in: windows header should
+ get the same define
+
+Sun Jan 18 18:22:33 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlversion.h.in include/libxml/xmlmemory.h:
+ apply patch from Marcus Meissner to add gcc attribute alloc_size
+ should fix #552505
+ * doc/apibuild.py doc/* testapi.c: regenerate the API
+ * include/libxml/parserInternals.h: fix a comment problem raised
+ by apibuild.py
+
+Sun Jan 18 16:39:01 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: also remove pthread key when stopping thread
+ support, patch based on Alex Ott one should fix #564723
+
+Sun Jan 18 15:55:18 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: patch from Daniel Zimmermann fixing a memory leak
+ in an edge case, solves #562230
+
+Sun Jan 18 15:06:05 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parserInternals.h SAX2.c: add a new define
+ XML_MAX_TEXT_LENGTH limiting the maximum size of a single text
+ node, the defaultis 10MB and can be removed with the HUGE
+ parsing option
+
+Mon Jan 05 18:28:41 CET 2009 Rob Richards <rrichards@cdatazone.org>
+
+ * include/libxml/parser.h parser.c: add XML_PARSE_OLDSAX parser
+ option to enable pre 2.7 SAX behavior.
+
+Wed Dec 31 23:11:37 CET 2008 Rob Richards <rrichards@cdatazone.org>
+
+ * tree.c: set doc on last child tree in xmlAddChildList for
+ bug #546772. Fix problem adding an attribute via with xmlAddChild
+ reported by Kris Breuker.
+
+Sun Dec 27 14:16:13 CET 2008 Rob Richards <rrichards@cdatazone.org>
+
+ * xmlwriter.c: fix indenting in xmlTextWriterFullEndElement for
+ bug# 554353.
+
+Thu Nov 27 16:24:52 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/tree.h tree.c python/generator.py: adds
+ element traversal support
+ * valid.c: avoid a warning
+ * doc/*: regenerated
+
+Mon Nov 17 16:56:18 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c parser.c: fix for CVE-2008-4226, a memory overflow
+ when building gigantic text nodes, and a bit of cleanup
+ to better handled out of memory problem in that code.
+ * tree.c: fix for CVE-2008-4225, lack of testing leads to
+ a busy loop test assuming one have enough core memory.
+
+Thu Nov 6 14:34:35 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: Matthias Kaehlcke reported a build problem when
+ not compiling HTML support in.
+
+Fri Oct 17 15:24:08 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/Makefile.am: patch from Adrian Bunk which
+ adds --disable-rebuild-docs to avoid rebuilding them
+
+Fri Oct 3 09:43:45 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/* NEWS: preparing the release of 2.7.2
+ * dict.c: fix the Solaris portability issue
+ * parser.c: additional cleanup on #554660 fix
+ * test/ent13 result/ent13* result/noent/ent13*: added the
+ example in the regression test suite.
+ * HTMLparser.c: handle leading BOM in htmlParseElement()
+
+Thu Oct 2 22:53:39 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix a nasty bug introduced when cleaning up
+ entities processing in 2.7.x , fixes #554660
+
+Thu Sep 25 18:04:20 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fix an HTML parsing error on large data sections
+ reported by Mike Day
+ * test/HTML/utf8bug.html result/HTML/utf8bug.html.err
+ result/HTML/utf8bug.html.sax result/HTML/utf8bug.html: add the
+ reproducer to the test suite
+
+Thu Sep 25 17:35:57 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * runxmlconf.c: fix compilation if XPath is not included
+
+Thu Sep 25 16:54:04 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: patch from Riccardo Scussat fixing custom error
+ handlers problems.
+
+Thu Sep 25 16:30:11 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlsave.h xmlsave.c: new options to serialize
+ as XML/HTML/XHTML and restore old entry point behaviours
+
+Mon Sep 1 16:49:05 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xml.html doc/news.html configure.in python/setup.py NEWS:
+ prepare release of 2.7.1
+
+Mon Sep 1 15:35:13 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * schematron.c xpath.c: applied a couple of patches from Martin
+ avoiding some leaks, fixinq QName checks in XPath, XPath debugging
+ and schematron code cleanups.
+ * python/tests/Makefile.am python/tests/xpathleak.py: add the
+ specific regression tests, just tweak it to avoid output by default
+
+Mon Sep 1 15:02:05 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * trionan.c: Borland C fix from Moritz Both
+ * testapi.c: regenerate, workaround a problem for buffer testing
+ * xmlIO.c HTMLtree.c: new internal entry point to hide even better
+ xmlAllocOutputBufferInternal
+ * tree.c: harden the code around buffer allocation schemes
+ * parser.c: restore the warning when namespace names are not absolute
+ URIs
+ * runxmlconf.c: continue regression tests if we get the expected
+ number of errors
+ * Makefile.am: run the python tests on make check
+ * xmlsave.c: handle the HTML documents and trees
+ * python/libxml.c: convert python serialization to the xmlSave APIs
+ and avoid some horrible hacks
+
+Sat Aug 30 16:58:40 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in, doc/*: preparing 2.7.0 release
+ * tree.c: remove some testing traces
+ * parser.c xmlIO.c xmlschemas.c: remove some warnings
+
+Sat Aug 30 14:50:16 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/tree.h tree.c: make a new kind of buffer where
+ shrinking and adding in head can avoid reallocation or full
+ buffer memmoves
+ * encoding.c xmlIO.c: use the new kind of buffers for output
+ buffers
+
+Sat Aug 30 10:18:13 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * doc/* testapi.c: regenerated
+
+Fri Aug 29 21:53:12 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/reader3.c: patch from Robert Schwebel , allows to
+ compile the example if configured without output support fixes
+ #545582
+ * Makefile.am: add testrecurse to the make check tests
+ * HTMLparser.c: if the parser got a encoding argument it should be
+ used over what the meta specifies, patch fixing #536346
+
+Fri Aug 29 14:41:38 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: a couple more fixes
+ * nanohttp.c nanoftp.c: patch from Andreas Färber to compile on Haiku
+ fixes #527880
+ * doc/examples/*: regenerated
+
+Thu Aug 28 17:31:46 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/parser.h: completely different fix for
+ the recursion detection based on entity density, big cleanups
+ in the entity parsing code too
+ * result/*.sax*: the parser should not ask for used defined versions
+ of the predefined entities
+ * testrecurse.c: automatic test for entity recursion checks
+ * Makefile.am: added testrecurse
+ * test/recurse/lol* test/recurse/good*: a first set of tests for
+ the recursion
+
+Wed Aug 27 21:55:34 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlerror.h parser.c: a bit of cleanup and
+ added checks based on the regression tests of the xmlconf suite
+
+Wed Aug 27 19:22:35 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: bug in parsing RFC 3986 uris with port numbers
+
+Wed Aug 27 17:30:48 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in Makefile.am: add an --with-coverage configure option
+ and a 'make cov' target based on gcc profiling and the lcov
+ tool. Currently at 68.9% coverage out of 'make check' and
+ runsuite executions.
+ * xmlreader.c: remove warnings due to C++ comments
+
+Wed Aug 27 15:00:54 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parserInternals.h parser.c: cleanup entity
+ pushing error handling based on a patch from Ashwin
+
+Wed Aug 27 13:41:26 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: fix a small initialization problem raised by Ashwin
+ * testapi.c gentest.py: increase testing especially for document
+ with an internal subset, and entities
+ * tree.c: fix a deallocation issue when unlinking entities from
+ a document.
+ * valid.c: fix a missing entry point test not found previously.
+ * doc/*: regenerated the APIs, docs etc.
+
+Tue Aug 26 15:02:58 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parser.h parser.c xmllint.c: strengthen some
+ of the internal parser limits, add an XML_PARSE_HUGE option
+ to bypass them all. More internal parser limits will still need
+ to be added.
+
+Tue Aug 26 09:42:08 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: add the testchar to 'make check'
+ * xmlschemas.c: Volker Grabsch pointed out a typo
+ * xmlregexp.c: production [19] from XML Schemas regexps were a
+ mistake removed in version REC-xmlschema-2-20041028, Volker Grabsch
+ provided a patch to remove it
+ * test/schemas/regexp-char-ref_0.xml test/schemas/regexp-char-ref_0.xsd
+ test/schemas/regexp-char-ref_1.xsd result/schemas/regexp-char-ref_0_0
+ result/schemas/regexp-char-ref_1_0: Volker Grabsch also provided
+ regession tests for this
+
+Tue Aug 26 09:25:39 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parser.h xinclude.c xmllint.c: patch based on
+ Wieant Nielander contribution to add the option of not doing
+ URI base fixup in XInclude
+
+Mon Aug 25 16:52:53 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: applied patch from Aswin to fix tree skipping
+ * include/libxml/entities.h entities.c: fixed a comment and
+ added a new xmlNewEntity() entry point
+ * runtest.c: be less verbose
+ * tree.c: space and tabs cleanups
+
+Mon Aug 25 10:56:30 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/entities.h entities.c SAX2.c parser.c: rework
+ the patch to avoid some ABI issue with people allocating
+ entities structure directly
+
+Wed Aug 20 19:02:01 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parser.h include/libxml/entities.h entities.c
+ parserInternals.c parser.c: fix for CVE-2008-3281
+
+Sun Aug 10 17:06:13 CEST 2008 Rob Richards <rrichards@ctindustries.net>
+
+ * dict.c: fix non GNUC builds.
+
+Fri Aug 8 14:13:06 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * makefile.am: adding a check-valgrind target
+
+Fri Aug 8 14:01:59 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am testdict.c: add the new test in 'make check' and
+ update it to check subdictionaries processing.
+
+Fri Aug 8 12:07:20 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * testdict.c: added a program to regression test the dictionary code
+ * dict.c: improve the lookup efficiency by caching the key.
+
+Thu Aug 7 18:30:55 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c: chased and found a couple of nasty issues
+
+Thu Aug 7 15:51:31 CEST 2008 Sven Herzberg <sven@imendio.com>
+
+ Bug 546629 – runtests doesn't pass on my mac
+ Reviewed by William M. Brack.
+
+ * runtest.c: use libpthread on Mac OS X as well
+
+Wed Aug 6 12:24:33 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: allow [ and ] in fragment identifiers, 3986 disallow them
+ but it's widely used for XPointer, and would break DocBook
+ processing among others
+
+Wed Aug 6 11:32:21 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c: change the big key algorithm to work properly with QName
+ too, fix a bug with dict size and sub dictionaries
+
+Mon Aug 4 17:27:27 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c include/libxml/uri.h: rewrite the URI parser to update to
+ rfc3986 (from 2396)
+ * test/errors/webdav.xml result/errors/webdav.xml*: removed the
+ error test, 'DAV:' is a correct URI under 3986
+ * Makefile.am: small cleanup in make check
+
+Thu Jul 31 21:49:45 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * runxmlconf.c: more progresses against the official regression tests
+ * runsuite.c: small cleanup for non-leak reports
+ * include/libxml/tree.h: parsing flags and other properties are
+ now added to the document node, this is generally useful and
+ allow to make Name and NmToken validations based on the parser
+ flags, more specifically the 5th edition of XML or not
+ * HTMLparser.c tree.c: small side effects for the previous changes
+ * parser.c SAX2.c valid.c: the bulk of the changes are here,
+ the parser and validation behaviour can be affected, parsing
+ flags need to be copied, lot of changes. Also fixing various
+ validation problems in the regression tests.
+
+Thu Jul 31 10:15:53 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * runxmlconf.c: added a skipped list, insert rmt-ns10-035
+ * Makefile.am: improve 'make check'
+ * include/libxml/xmlerror.h parser.c: clean up namespace errors
+ checking and reporting, errors when a document is labelled
+ as UTF-16 while it is parsed as UTF-8 and no encoding was given
+ explicitely.
+ * result/errors/webdav.xml.*: some warnings are no recategorized
+ as Namespace errors
+
+Wed Jul 30 14:55:54 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlmemory.h xmlmemory.c: add xmlMemDisplayLast to
+ help debug incremental memory leaks, and some cleanups
+ * runxmlconf.c: use that new call and avoid ever touching the
+ system catalog in the regression tests
+
+Wed Jul 30 14:33:33 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/xmlerror.h: an XML-1.0 document can't load
+ an 1.1 entity
+ * runxmlconf.c: when using entities make sure we load them
+
+Tue Jul 29 18:43:07 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix a bug not detecting cross entity comments probably
+ when comment parsing got optimized.
+ * Makefile.am: add make check
+ * runxmlconf.c: fix the log file name
+
+Tue Jul 29 18:09:26 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * runxmlconf.c Makefile.am: add a C program to run the W3C test
+ suite, work in progress
+ * xmllint.c: add a new option --oldxml10 to use the old parser
+ * parser.c: fix the XML_PARSE_OLD10 processing of the new option
+ and a bug in version parsing
+
+Tue Jul 29 11:12:40 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: space and tabs cleanup
+
+Tue Jul 29 10:59:36 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parser.h include/libxml/xmlerror.h parser.c:
+ implement XML-1.0 5th edition, add parser option XML_PARSE_OLD10
+ to stick to old behaviour
+ * testapi.c gentest.py: modified slightly and regenerated
+ * Makefile.am: add testchar
+
+Thu Jul 24 16:57:20 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am testchar.c Makefile.tests README.tests: add a
+ new regression test program for testing character ranges and
+ UTF8 encoding/decoding
+
+Wed Jul 23 15:32:39 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: fix the build root
+
+Wed Jul 16 22:28:48 PDT 2008 William Brack <wbrack@mmm.com.hk>
+
+ * pattern.c: fix problem with xmlStreamPop when pattern includes
+ a "." element (see discussion on libxslt list)
+
+Mon Jul 7 15:49:59 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c: fix line number on text nodes, problem raised by Ralf Junker
+
+Sun Jun 29 17:04:28 CEST 2008 Rob Richards <rrichards@ctindustries.net>
+ * xmlschemas.c: fix crash with invalid whitespace facet
+
+Wed Jun 11 10:13:02 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xml.html doc/FAQ.html: add a section in the FAQ about
+ multithread and xmlCleanupParser
+
+Tue Jun 10 16:52:17 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: apply a couple of fixes based on a Coverity report
+ forwarded by Derrick Price.
+ * VxWorks/README VxWorks/Makefile VxWorks/build.sh: instructions
+ Makefile, and shell script to build on VxWorks 6.4+ provided by
+ Jim Wert.
+
+Tue Jun 3 18:07:13 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/setup.py: apply patch from Martin fixing
+ python whitespaces
+ * NEWS: following previous commit rebuilt now in UTF-8
+
+Mon Jun 2 17:39:42 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * ChangeLog: patch from Hans de Goede to switch the file to UTF-8
+ * doc/news.xsl: switch to generate the NEWS file in UTF-8 instead of
+ ISO-8859-1
+
+Mon May 12 15:12:44 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: avoid a regexp crash, should fix #523738
+
+Mon May 12 14:56:06 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c runtest.c testapi.c include/libxml/xmlreader.h
+ python/types.c python/libxml_wrap.h python/libxml.c: fx compilation
+ when configured without the reader should fix #513110
+ * doc/*: regenerated
+
+Sat May 3 14:33:29 CEST 2008 Rob Richards <rrichards@ctindustries.net>
+
+ * dict.c: check for stdint.h and define types when using MSVC
+
+Mon Apr 28 20:06:12 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: applied patch from Ashwin to avoid a potential
+ double-free
+
+Thu Apr 24 13:56:53 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: applied patch from Ashwin fixing a number of realloc problems
+ * HTMLparser.c: improve handling for misplaced html/head/body
+
+Tue Apr 22 10:27:17 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c: improvement on the hashing of the dictionary, with visible
+ speed up as the number of strings in the hash increases, work from
+ Stefan Behnel
+
+Fri Apr 11 14:44:00 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlschemas.h xmlschemas.c: added new function
+ xmlSchemaValidCtxtGetParserCtxt based on Holger Kaelberer patch
+ * doc/apibuild.py doc/*: regenerated the doc, chased why the new
+ function didn't got any documentation, added more checking in the
+ generator
+ * include/libxml/relaxng.h include/libxml/schematron.h
+ include/libxml/xmlschemas.h include/libxml/c14n.h
+ include/libxml/xmlregexp.h include/libxml/globals.h
+ include/libxml/xmlreader.h threads.c xmlschemas.c: various changes
+ and cleanups following the new reports
+
+
+Thu Apr 10 10:07:00 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: extend the cleanup rule
+ * xmlschemas.c: space cleanup
+
+Wed Apr 9 19:43:25 CEST 2008 Rob Richards <rrichards@ctindustries.net>
+
+ * include/wsockcompat.h: support older win32 platforms when building
+ with newer versions of VS
+
+Tue Apr 8 16:56:07 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in NEWS doc/*: preparing release of 2.6.32
+
+Tue Apr 8 10:19:01 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fix a bug introduced when fixing #438208 and reported by
+ Ashwin
+ * python/generator.py: fix an infinite loop bug
+
+Mon Apr 7 14:44:51 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fix a link to XmlNodeType doc reported by Martijn Arts
+ * docs/*: rebuilt
+
+Fri Apr 4 18:09:50 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: improve the *Recover* functions documentation
+
+Thu Apr 3 14:57:15 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: patch from Mark Rowe fixing BOM or encoding detection
+ in external parsed entities, should fix #440415
+
+Thu Apr 3 13:16:01 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fix some problems with the *EatName functions when
+ running out of memory raised by Eric Schrock , should fix #438208
+
+Thu Apr 3 12:41:29 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: horror around the definition of the lexical
+ values for decimal and derived types, fixing to reject empty
+ values, should fix #503268
+
+Thu Apr 3 11:44:57 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: buffer may not be large enough to convert to
+ UCS4, patch from Christian Fruth , fixes #504015
+
+Thu Apr 3 11:02:02 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: apparently it's okay to forget the semicolumn after
+ entity refs in HTML, fixing char refs parsing accordingly based on
+ T. Manske patch, this should fix #517653
+
+Thu Apr 3 09:30:29 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * error.c: avoid a scary realloc() loop should fix #520383
+
+Thu Apr 3 08:22:52 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: more realloc problems pointed out by Ashwin
+
+Thu Apr 3 07:40:13 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xstc/Makefile.am: applied patch from Mike Hommey fixing distclean,
+ fixes #520387
+
+Thu Apr 3 06:52:32 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xpath.h: small doc improvement for xmlXPathContext
+ from Jack Jansen, fixes #524759
+ * doc/newapi.xsl doc/*: fixed a problem and regenerated the docs
+
+Tue Apr 1 09:59:22 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: two patches from Alvaro Herrera to avoid problem when
+ running out of memory in XPath evaluations.
+
+Mon Mar 31 11:23:19 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: lot of out of memory handling fixes from Ashwin
+ * elfgcchack.h doc/elfgcchack.xsl: work around a problem with xmlDllMain
+ * include/libxml/threads.h: indenting cleanups
+
+Mon Mar 31 10:25:37 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c docs/*: trying to clarify even more the xmlCleanupParser()
+ use and the memory documentation
+
+Wed Mar 26 18:39:58 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: changes based on Alex Khesin patch where xmlParseCharRef
+ seems to not be checked correctly, fixes #520198
+
+Wed Mar 26 15:03:49 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: patch from Ashwin to avoid a problem of attribute
+ redefinition in the DTD. Remove a warning too.
+
+Wed Mar 26 14:38:31 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fix a problem in externalSubsetSplit with a patch
+ from Ashwin
+
+Tue Mar 25 17:48:02 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix various attribute normalisation problems reported
+ by Ashwin
+ * result/c14n/without-comments/example-4
+ result/c14n/with-comments/example-4: this impacted the result of
+ two c14n tests :-\
+ * test/att9 test/att10 test/att11 result//att9* result//att10*
+ result//att11*: added 3 specific regression tests coming from the
+ XML spec revision and from Ashwin
+
+Tue Mar 25 14:20:49 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: fix saving for file:///X:/ URI embedding Windows file paths
+ should fix #524253
+
+Mon Mar 24 21:42:33 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix a problem reported by Ashwin for system parameter
+ entities referenced from entities in external subset, add a
+ specific loading routine.
+ * test/valid/dtds/external.ent test/valid/dtds/external2.ent
+ test/valid/t11.xml result/valid/t11.xml*: added the test to
+ the regression suite
+
+Mon Mar 24 15:04:54 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fix an XML Schemas crash raised by Stefan Behnel
+ when testing with W3C test suite
+
+Mon Mar 24 12:12:00 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: check some allocation with Ashwin patch
+
+Wed Mar 19 16:41:52 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * vms/build_libxml.com: update from Tycho Hilhorst, should fix #523378
+
+Tue Mar 18 09:23:05 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: check some malloc returns with Ashwin patch, add
+ error messages and reindent the module.
+
+Fri Mar 14 15:28:43 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: patch from Ashwin removing duplicate tests
+
+Fri Mar 14 13:44:29 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/schematron.h include/libxml/xmlerror.h schematron.c:
+ applied patch from Tobias Minich to allow plugin schematron error
+ reporting in the normal error system, should fix #513998
+
+Fri Mar 14 11:52:09 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c xinclude.c: patch from Vasily Chekalkin fixes memory
+ leaks, should fix 512647
+
+Thu Mar 13 08:17:58 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: found a nasty bug in regexp automata build,
+ reported by Ashwin and Bjorn Reese
+
+Wed Mar 12 18:56:22 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: patch from Arnold Hendriks improving parsing of
+ html within html bogus data, still not a complete fix though
+
+Wed Mar 12 10:22:01 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * python/types.c: fix a memory errro when using namespace nodes
+ returned from XPath queries, should fix #521699
+ * python/tests/Makefile.am python/tests/xpathns.py: add a specific
+ regression test for it
+
+Mon Mar 10 16:25:32 CET 2008 Rob Richards <rrichards@ctindustries.net>
+
+ * include/win32config.h: add ICONV_CONST define for win32 build
+ to satisfy encoding.c change in rev 3693
+
+Fri Mar 7 17:45:27 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c parser.c: fix handling of empty CDATA nodes as
+ reported and discussed around #514181 and associated patches
+ * test/emptycdata.xml result/emptycdata.xml*
+ result/noent/emptycdata.xml: added a specific test in the
+ regression suite.
+
+Thu Mar 6 15:23:10 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: poblem with encoding detection for UTF-16 reported by
+ Ashwin and found by Bill
+ * test/valid/dtds/utf16b.ent test/valid/dtds/utf16l.ent
+ test/valid/UTF16Entity.xml result/valid/UTF16Entity.xml*: added
+ the example to the regression tests
+
+Tue Mar 4 14:16:38 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: patch from Alex Khesin fixing CDATA output after
+ a text node.
+ * parser.c: fixed the comment for xmlParserCleanup
+ * globals.c: fixed indentation
+
+Mon Feb 25 16:42:19 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * testModule.c: patch from Florent Guiliani to fix build on
+ SCO OpenServer
+
+Thu Feb 21 22:46:08 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: made one of the changes suggested by Brian Krahmer
+ * testRegexp.c: allow to pass '--' on the command line to allow
+ regexps starting with the character '-'
+
+Tue Feb 19 08:49:32 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am python/tests/Makefile.am: applied cleanup
+ patches for cross compilation and MinGW from Roumen Petrov
+
+Sat Feb 16 11:06:54 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: fix output bug reported by Petr Pajas and analyzed by
+ Bill
+
+Fri Feb 15 09:32:11 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlerror.h tree.c: patch from Julien Charbon
+ to simplify the processing of xmlSetProp()
+
+Fri Feb 15 08:45:32 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * config.h.in configure.in encoding.c: patch from Roumen Petrov
+ to detect if iconv() needs a const for the second parameter
+
+Fri Feb 15 08:41:31 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * macos/src/XMLTestPrefix2.h win32/Makefile.msvc: EOL cleanups
+ from Florent Guiliani
+
+Wed Feb 13 10:56:38 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: applied patch from Alfred Mickautsch to flush the
+ output at the end of document.
+
+Fri Feb 8 11:57:03 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/examples.xml: regenerated, it was truncated.
+
+Fri Feb 8 11:47:18 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmodule.c: apply simple patch from Carlo Bramini to avoid
+ compilation problems with Mingw32
+
+Fri Feb 8 11:33:15 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: apply patch from Andrew Tosh to fix behaviour
+ when '.' is used in a posCharGroup
+ * test/schemas/poschargrp0_0.* result/schemas/poschargrp0_0_0*:
+ added the test to the regression suite
+
+Fri Feb 8 10:54:09 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c: applied patch from Florent Guilian to remove an
+ useless mutex in the xmlDict structure.
+
+Wed Feb 6 17:00:20 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c: another leak reported by Ashwin
+ * xinclude.c: fixed the behaviour when XIncluding a fragment
+ of the current document, patch from Chris Ryan
+
+Wed Feb 6 12:10:08 HKT 2008 William Brack <wbrack@mmm.com.hk>
+
+ * nanohttp.c: added space for port number (when not 80) in
+ xmlNanoHTTPMethodRedir, plus a few more comments. Should
+ fix #514521.
+
+Tue Feb 5 09:41:46 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * schemas.c: apply fix suggested by Ashwin correcting a cut-n-paste
+ error about the SAX callback in cdataBlockSplit when streaming
+ XSD validation
+
+Tue Feb 5 09:36:46 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: applied a patch based on Petr Sumbera one to avoid a
+ problem with paths starting with //
+
+Mon Feb 4 17:48:30 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xml.html doc/xmlmem.html: added a small section on returning
+ memory to the kernel by compacting the heap provided by Wolfram Sang
+
+Fri Jan 25 20:01:42 CET 2007 Rob Richards <rrichards@ctindustries.net>
+
+ * include/win32config.h win32/Makefile.msvc: fix build under VS 2008.
+ patch by David Wimsey
+
+Thu Jan 24 15:37:04 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix a memeory leak in internal subset parsing with
+ a fix from Ashwin
+ * test/errors/content1.xml result/errors/content1.xml*:
+ add test to regressions
+
+Fri Jan 11 09:00:09 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/*: preparing release of 2.6.31
+
+Fri Jan 11 08:58:49 CET 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: avoid a warning on 64bits introduced earlier
+ * parserInternals.c: make more checking on the UTF-8 input
+
+Fri Jan 11 15:37:05 CST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: avoid stopping parsing when encountering
+ out of range characters in an HTML file, report and
+ continue processing instead, should fix #472696
+
+Fri Jan 11 15:13:35 CST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * check-relaxng-test-suite2.py check-relaxng-test-suite.py
+ Makefile.am python/tests/Makefile.am python/Makefile.am
+ check-xsddata-test-suite.py: patches from John Carr to
+ start cleaning up 'make diskcheck' problems c.f. #506228
+
+Fri Jan 11 14:48:40 CST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: apply fix from Stefan Kost to avoid a crash
+ in xmllint, fixes 504284
+
+Fri Jan 11 14:39:03 CST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xml2-config.in: apply patch from Fred Crozat to avoid
+ outputting -L/usr/lib from xml2-config, fixes #497012
+
+Fri Jan 11 14:18:09 CST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fix definition for <embed> to avoid error
+ when saving back, patch from Stefan Behnel fixing 495213
+
+Fri Jan 11 14:06:09 CST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied patch from Christian Schmidt fixing a
+ column counter update problem, fixes #472696
+
+Fri Jan 11 13:22:14 CST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: handle a erroneous parsing of attributes in
+ case said attribute has been redeclared in the DTD with a
+ different type
+ * hash.c: fix the hash scanner to not crash if a first element
+ from the hash list is been removed in the callback
+
+Wed Jan 9 10:15:50 CST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: fix indentation in xmlTextWriterFullEndElement,
+ as raised by Felipe Pena, should fix #508156
+
+Tue Dec 6 11:07:42 CET 2007 Rob Richards <rrichards@ctindustries.net>
+
+ * pattern.c: fix crash from double free of name for bug #501760
+
+Fri Nov 23 11:47:48 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: remove unused variable in __xmlGlobalInitMutexLock
+ reported by Hannes Eder
+
+Mon Nov 19 18:39:26 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: remove a cut-and-paste copy error
+
+Fri Nov 16 11:55:36 CET 2007 Rob Richards <rrichards@ctindustries.net>
+
+ * globals.c threads.c include/libxml/threads.h:
+ __xmlGlobalInitMutexDestroy() will free global_init_lock on Win32.
+ Patch from Marc-Antoine Ruel.
+
+Tue Nov 13 21:26:27 CET 2007 Rob Richards <rrichards@ctindustries.net>
+
+ * schematron.c: fix crash/leaks from xmlSchematronParse due to improper
+ schema document ownership for bug #495215
+
+Tue Oct 30 21:24:55 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c: xmlFree(NULL) should not crash in debug mode
+ should fix #491651
+
+Tue Oct 16 13:58:41 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * testURI.c: add a debug option printing all the fields within
+ the parsed URI structure
+
+Wed Oct 10 10:25:52 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: fix to avoid a crash when dumping an attribute from
+ an XHTML document, patch contributed to fix #485298
+
+Tue Aug 28 19:32:28 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: another nasty regexp case fixed.
+ * test/regexp/ranges2 result/regexp/ranges2: added to regression
+ suite
+
+Fri Aug 24 10:58:58 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * nanohttp.c: Enhanced to include port number (if not == 80) on the
+ "Header:" URL (bug #469681).
+ * xmlregexp.c: Fixed a typo causing a warning message.
+
+Thu Aug 23 22:48:20 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * nanohttp.c: fix an open() call with creation without 3rd argument
+ hopefully that interface is never used.
+
+Thu Aug 23 17:00:49 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/*: preparing release of 2.6.30
+
+Thu Aug 23 20:58:28 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed xmlXPathCompOpEvalPositionalPredicate problem
+ with object caching (bug #469410)
+
+Thu Aug 23 11:28:38 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c test/schemas/*455953* result/schemas/bug455953*:
+ applied patch from Frank Gross fixing Schemas IDC import bug
+ #455953 and also add the test to the regression suite
+
+Wed Aug 22 18:29:42 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: try to fix for the nth time the automata generation
+ in case of complex ranges. I suppose that time it is actually okay
+
+Tue Aug 14 15:51:05 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: aligned xmlSAXUserParseMemory() to match
+ xmlSAXUserParseFile() logic based on Ashwin post, and ifdef
+ cleanup
+
+Tue Aug 14 11:42:27 CEST 2007 Rob Richards <rrichards@ctindustries.net>
+
+ * xmlIO.c: fixed windows path determination (patch from
+ Roland Schwarz, bug #462877)
+ * win32/Makefile.mingw win32/configure.js: fixed mingw build
+ (patch from Roland Schwarz, bug #462877)
+
+Wed Aug 1 09:50:12 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed a parser bug where invalid char in comment may
+ not be detected, reported by Ashwin Sinha
+ * test/errors/comment1.xml result/errors/comment1.xml*: added
+ the example to the regression suite
+
+Thu Jul 26 13:42:26 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: fixed problem reported on bug #460415
+
+Thu Jul 19 18:10:58 PDT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * uri.c: applied patch from from Patrik Fimml. Fixes bug #458268.
+
+Wed Jul 18 11:05:08 PDT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: applied patch from bug #454608 from Patrik Fimml.
+ Fixes bug #454608.
+
+Wed Jul 11 19:57:59 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: applied patch for xsi:nil from Frank Gross, this
+ should fix bug #358125
+
+Wed Jul 4 17:44:20 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: patch from Dodji Seketeli to avoid a leak on repeated
+ uses of xmlTextWriterStartDocument()
+
+Tue Jun 26 13:30:50 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fix a crash on solaris when a printf %s with a NULL
+ argument occurs, should fix #450936
+
+Wed Jun 13 13:33:38 PDT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed problem in previous fix to xmlXPathNodeSetSort
+
+Tue Jun 12 18:17:28 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * doc/* configure.in NEWS: release of libxml2 2.6.29
+ * valid.c: patch from Dagfinn I. Mannsåker for idness of name
+ in HTML, c.f. bug #305885.
+
+Tue Jun 12 17:14:08 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c: fixing bug #319964, parsing of HTML attribute really
+ should not have namespace processing.
+
+Tue Jun 12 16:42:14 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed the push mode when a big comment occurs before
+ an internal subset, should close bug #438835
+ * test/comment6.xml result//comment6.xml*: added a special
+ test in the regression suite
+
+Tue Jun 12 15:41:09 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix bug #414846 where invalid characters in attributes
+ would sometimes not be detected.
+ * test/errors/attr4.xml result/errors/attr4.xml*: added a specific
+ test case to the regression tests
+
+Tue Jun 12 14:23:24 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xstc/Makefile.am: apply patch from Ryan Hill to cope with changes
+ in GNU tar, should fix #396751
+
+Tue Jun 12 12:03:36 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * python/types.c: try to allow compilation on old python version
+ should fix #398125
+
+Tue Jun 12 11:48:15 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: htmlNodeDumpFormatOutput didn't handle XML_ATTRIBUTE_NODe
+ fixes bug #438390
+
+Tue Jun 12 11:37:55 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: workaround misgenerated file: URIs c.f. #437385
+
+Tue Jun 12 11:22:47 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed bug #407436 a crash in a specific case of
+ Relax-NG validation
+
+Tue Jun 12 11:12:50 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: fixed bug #383687, some case of recursion on next
+ were not caught in the catalog code.
+
+Tue Jun 12 10:37:42 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixed bug #381877, avoid reading over the end
+ of stream when generating an UTF-8 encoding error.
+
+Tue Jun 12 10:16:48 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed bug #366161, trivially added the check in
+ xmlCtxtReset()
+
+Fri Jun 8 21:48:21 CEST 2007 Rob Richards <rrichards@ctindustries.net>
+
+ * win32/configure.js win32/Makefile.msvc: add --vcmanifest flag (yes/no)
+ for VC8 build support to embed manifest within files. Under MS VC, build
+ libxml2_a_dll.lib by default (LIBXML_STATIC_FOR_DLL flag).
+
+Fri Jun 8 21:37:46 CEST 2007 Rob Richards <rrichards@ctindustries.net>
+
+ * threads.c include/libxml/threads.h: use specified calling convention
+ for xmlDllMain. Old SDKs (VC6) only support InterlockedCompareExchange.
+ add xmlDllMain to header for win32 when building for static dll
+
+Fri Jun 8 10:51:28 CEST 2007 Rob Richards <rrichards@ctindustries.net>
+
+ * xmlwriter.c: fixed problem with namespace declaration being
+ written more than once per element start tag
+
+Wed Jun 6 10:18:28 PDT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed problem with xmlXPathNodeSetSort;
+ fixed problem with xmlXPathNodeTrailingSorted (both bug#413451)
+
+Wed May 30 22:05:08 PDT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed problem with string value for PI node
+ (bug #442275)
+
+Mon May 28 16:14:50 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: fix bug reported by François Delyon
+
+Tue May 22 08:59:48 PDT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * encoding.c: Fixed typo in xmlCharEncFirstLine pointed out
+ by Mark Rowe (bug #440159)
+ * include/libxml/xmlversion.h.in: Added check for definition of
+ _POSIX_C_SOURCE to avoid warnings on Apple OS/X (patch from
+ Wendy Doyle and Mark Rowe, bug #346675)
+ * schematron.c, testapi.c, tree.c, xmlIO.c, xmlsave.c: minor
+ changes to fix compilation warnings - no change to logic.
+
+Tue May 15 22:18:08 PDT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * nanohttp.c: small enhancement to last fix, pointed out
+ by Alex Cornejo
+
+Tue May 15 12:38:38 PDT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * nanohttp.c: fixed problem on gzip streams (bug #438045)
+ * xpath.c: fixed minor spot of redundant code - no logic change.
+
+Fri May 11 22:45:18 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: enhanced the coding for xmlXPathCastNumberToString
+ in order to produce the required number of significant digits
+ (bug #437179)
+
+Thu May 10 01:52:42 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * list.c: applied patch to fix xmlListAppend() from
+ Georges-André SILBER
+ * valid.c: also fix the place wher it was called.
+
+Wed May 2 18:47:33 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: tried to fix an error problem on entity content failure
+ reported by Michael Day
+
+Wed May 2 18:23:35 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: typo patch from Bjorn Reese
+
+Wed May 2 18:12:58 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied patch from Michael Day to add support for
+ <embed>
+
+Thu Apr 26 10:58:50 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: Jean-Daniel Dupas pointed a couple of problems
+ in htmlCreateDocParserCtxt.
+
+Thu Apr 26 10:36:26 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c include/libxml/uri.h: patch from Richard Jones to save
+ the query part in raw form.
+ * libxml2-python-api.xml: also added accessor for the python bindings
+
+Wed Apr 25 15:57:32 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xstc/Makefile.am doc/examples/Makefile.am Makefile.am: applied
+ patch from Richard Jones to for the silent flag on valgrind
+ when doing "make valgrind"
+ * xmlregexp.c: raise a regexp error when '\' is misused to escape
+ a standard character.
+
+Tue Apr 24 20:15:14 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: Richard Jones reported xmlBufferAdd (buf, "", -1), fixing it
+
+Tue Apr 24 10:59:28 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: fix xmlURIUnescapeString comments which was confusing
+
+Wed Apr 18 09:52:25 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * include/win32config.h libxml.h: new patch from Andreas Stricke to
+ better integrate support for Windows CE
+
+Tue Apr 17 16:50:12 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * doc/* configure.in NEWS: release of libxml2 2.6.28
+
+Tue Apr 17 14:47:42 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c libxml.h win32/wince/wincecompat.h win32/wince/wincecompat.c
+ xmlIO.c nanohttp.c nanoftp.c trio.c triostr.c triostr.h: applied
+ patch from Andreas Stricke to ease the compilation on Windows CE
+
+Tue Apr 17 14:34:45 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c catalog.c: "xmllint unusable on win32" so applied
+ a libxml2 patch from Christian Ehrlicher
+
+Mon Apr 16 09:05:01 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: change the way script/style are parsed to
+ not try to detect comments, reported by Mike Day
+ * result/HTML/doc3.*: affects the result of that test
+
+Wed Apr 11 22:38:18 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xmlregexp.c: small enhancement for quantifier range with
+ min occurs of 0; fixes bug 425542.
+
+Fri Mar 30 14:41:57 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied change from Michael Day to avoid a problem when
+ compiled without zlib support.
+
+Wed Mar 21 17:58:13 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xpath.h: applied documentation patch from James Dennett
+
+Wed Mar 21 21:20:48 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xmlregexp.c: fixed problem with 0x2d in Char Range (bug #420596)
+ * test/regexp/bug420596, result/regexp/bug420596: added regression
+ test for this
+
+Wed Mar 21 14:23:08 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * HTMLparser.c: fixed memory access error on parsing of meta data
+ which had errors (bug #382206). Also cleaned up a few warnings
+ by adding some additional DECL macros.
+
+Tue Mar 20 09:58:13 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c: applied patch from Björn Wiberg to try to fix again
+ the silly __ss_family problem on various AIXes, should fix #420184
+
+Wed Mar 14 20:30:38 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * configure.in: corrected small error in last commit
+ * xmlreader.c: corrected small typo in last commit
+
+Wed Mar 14 19:35:28 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c: fixed problem with referenced attribute groups
+ (bug #417621)
+ * configure.in: re-ordered some includes for types.h / socket.h
+ (bug #416001)
+
+Fri Mar 9 17:54:40 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: applied patch from Julien Reichel cleaning up mode
+ and state internal flags mixups
+
+Wed Mar 7 16:18:18 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed xmlXPathCmpNodes for incorrect result on certain
+ cases when comparing identical nodes (bug #415567) with patch
+ from Oleg Paraschenko
+
+Fri Feb 16 09:13:38 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * python/libxml.py: fixed tab problem with patch from
+ Andreas Hanke (bug #408626)
+
+Thu Feb 15 12:43:28 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * doc/xml.html: Changed all references to libxml2 CVS over to
+ the corresponding SVN. A few other spelling/grammar/links
+ also changed.
+ * doc/libxml2-api.xml, doc/*.html: Regenerated all docs.
+
+Tue Feb 13 18:15:58 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: Fixed memory bug with invalid function reported by
+ Francois Delyon on mailing list
+
+Mon Feb 12 16:40:48 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: fixed problem with invalid char encountered
+ during text include (reported on xslt mailing list)
+
+Mon Feb 12 18:30:01 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: small cleanup to avoid packaging .svn
+ * libxml.h threads.c parser.c: applied patch to avoid a problem
+ in concurrent threaded initialization fix from Ted Phelps
+
+Thu Feb 08 15:35:18 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: added a GROW when parsing complex comments (bug #405666)
+ * gentest.py, testapi.c: added a hack to prevent destruction of any
+ param with 'destroy' in it's description (i.e. param destroyed by
+ the routine under test, so shouldn't be destroyed by testapi)
+ * xmlreader.c: added freeing of 'input' param even on error
+ (fixes leak detected by testapi)
+
+Wed Jan 31 10:25:38 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * testAutomata.c, testRegexp.c, testThreads.c, testThreadsWin32.c,
+ xmlwriter.c: repositioned #include for libxml.h to avoid
+ compilation error on some architectures (bug #398277)
+ * fixed screwed-up ChangeLog (deleted some duplicate entries)
+
+Fri Jan 26 00:05:18 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * implemented patch from Stéphane Bidoul for uri.c (bug #389767)
+
+Thu Jan 25 11:15:08 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: added checks for alloc fail on calls to
+ xmlXPathNewContext (libxslt bug #400242)
+
+Thu Jan 11 15:38:08 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * Re-generated the documentation (API chunks 27-29 were missing)
+ (also causes changes to testapi.c, elfgcchack.h and
+ win32/libxml2.def.src)
+
+Tue Jan 9 22:24:26 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: fix a memory leak in the python string handling
+ when SAX event are passed back to the python handlers
+
+Thu Jan 4 18:27:49 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fix xmlTextReaderSetup() description
+ * test/relaxng/empty1.rng test/relaxng/comps_0.xml
+ test/relaxng/empty1_0.xml test/relaxng/comps.rng
+ test/relaxng/empty0.rng test/relaxng/empty0_0.xml
+ test/relaxng/empty1_1.xml: tests which were apparently
+ never commited to CVS
+
+Wed Jan 3 16:05:21 PST 2007 Aleksey Sanin <aleksey@aleksey.com>
+
+ * xmlreader.c include/libxml/xmlreader.h win32/libxml2.def.src:
+ expose xmlTextReaderSetup() function
+
+Wed Jan 3 16:14:13 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: adapt the extra versioning code to SVN
+
+Thu Dec 14 16:52:34 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.py: apparently id() sometimes
+ generate negative values and %X outputs -XXXX :-(
+
+Mon Dec 4 10:30:25 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/tree.h: patch from Michael Day on standalone
+ and XML declaration detection, and associated documentation change
+
+Mon Dec 4 10:27:01 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: another XInclude user data propagation patch from
+ Michael Day
+
+Thu Nov 23 17:22:03 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied patch from Steven Rainwater to fix
+ UTF8ToHtml behaviour on code points which are not mappable to
+ predefined HTML entities, fixes #377544
+
+Thu Nov 23 17:11:23 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed a bug where the principal node type of an axis
+ wasn't tested on name check, fixes bug #377432
+
+Wed Nov 8 10:19:27 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: change htmlCtxtReset() following Michael Day bug
+ report and suggestion.
+
+Mon Nov 6 09:56:41 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: applied patch from Igor for path conversion on Windows
+
+Thu Nov 2 11:29:17 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: another small change on the algorithm for the
+ elimination of epsilon transitions, should help on #362989 too
+
+Wed Nov 1 16:33:10 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied documentation patches from Markus Keim
+ * xmlregexp.c: fixed one bug and added a couple of optimisations
+ while working on bug #362989
+
+Fri Oct 27 14:54:07 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied a reworked version of Usamah Malik patch
+ to avoid growing the parser stack in some autoclose cases, should
+ fix #361221
+
+Thu Oct 26 10:54:40 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: William spotted an obvious bug
+
+Wed Oct 25 18:04:50 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS configure.in testapi.c doc//*: preparing release of
+ libxml2-2.6.27
+ * include/libxml/tree.h: fix a small problem with preproc flags
+
+Fri Oct 20 14:55:47 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fix comment for xmlDocSetRootElement c.f. #351981
+ * xmllint.c: order XPath elements when using --shell
+
+Tue Oct 17 23:23:26 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: applied fix from Christopher Boumenot for bug
+ #362714 on regexps missing ']'
+
+Tue Oct 17 22:32:42 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: applied patch from Marius Konitzer to avoid
+ leaking in xmlNewInputFromFile() in case of HTTP redirection
+
+Tue Oct 17 22:19:02 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fix one problem found in htmlCtxtUseOptions()
+ and pointed in #340591
+
+Tue Oct 17 22:04:31 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixed the 2 stupid bugs affecting htmlReadDoc() and
+ htmlReadIO() this should fix #340322
+
+Tue Oct 17 21:39:23 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: applied patch from Olaf Walkowiak which should fix #334104
+
+Tue Oct 17 18:12:34 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixing HTML minimized attribute values to be generated
+ internally if not present, fixes bug #332124
+ * result/HTML/doc2.htm.sax result/HTML/doc3.htm.sax
+ result/HTML/wired.html.sax: this affects the SAX event strem for
+ a few test cases
+
+Tue Oct 17 17:56:31 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixing HTML entities in attributes parsing bug #362552
+ * result/HTML/entities2.html* test/HTML/entities2.html: added to
+ the regression suite
+
+Tue Oct 17 01:21:37 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: started to switch xmllint to use xmlSaveDoc to test
+ #342556
+ * xmlsave.c: fixed #342556 easy and a whole set of problems with
+ encodings, BOM and xmlSaveDoc()
+
+Mon Oct 16 15:14:53 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fix #348252 if the document clains to be in a
+ different encoding in the meta tag and it's obviously wrong,
+ don't screw up the end of the content.
+
+Mon Oct 16 11:32:09 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fix a chunking and script bug #347708
+
+Mon Oct 16 09:51:05 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: remove a warning
+ * encoding.c: check with uppercase for AIX iconv() should fix #352644
+ * doc/examples/Makefile.am: partially handle one bug report
+
+Sun Oct 15 22:31:42 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix the patch for unreproductable #343000 but
+ also fix a line/column keeping error
+ * result/errors/attr1.xml.err result/errors/attr2.xml.err
+ result/errors/name.xml.err result/errors/name2.xml.err
+ result/schemas/anyAttr-processContents-err1_0_0.err
+ result/schemas/bug312957_1_0.err: affected lines in error output
+ of the regression tests
+
+Sat Oct 14 10:46:46 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixing bug #344390 with xmlReconciliateNs
+
+Sat Oct 14 00:31:49 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: added --html --memory to test htmlReadMemory to
+ test #321632
+ * HTMLparser.c: added various initialization calls which may help
+ #321632 but not conclusive
+ * testapi.c tree.c include/libxml/tree.h: fixed compilation with
+ --with-minimum --with-sax1 and --with-minimum --with-schemas
+ fixing #326442
+
+Fri Oct 13 18:30:55 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fix a Relax-NG bug related to element content processing,
+ fixes bug #302836
+ * test/relaxng/302836.rng test/relaxng/302836_0.xml
+ result/relaxng/302836*: added to regression tests
+
+Fri Oct 13 14:42:44 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix a problem in xmlSplitQName resulting in bug #334669
+
+Fri Oct 13 12:27:22 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed xmlIOParseDTD handling of @input in error case,
+ Should fix #335085
+ * testapi.c: reset the http_proxy env variable to not waste time
+ on regression tests
+
+Thu Oct 12 23:07:43 CEST 2006 Rob Richards <rrichards@ctindustries.net>
+
+ * xmlIO.c: fix Windows compile - missing xmlWrapOpen.
+
+Thu Oct 12 18:21:18 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed the heuristic used when trying to detect mixed-content
+ elememts if the parser wants to treat ignorable whitespaces
+ in a non-standard way, should fix bug #300263
+
+Thu Oct 12 14:52:38 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix a first arg error in SAX callback pointed out by
+ Mike Hommey, and another one still hanging around. Should fix #342737
+
+Wed Oct 11 23:11:58 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlversion.h.in: fix comment on versions
+ * xmlmemory.c: do not spend too much time digging in dumped memory
+
+Wed Oct 11 18:40:00 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixed a weird error where validity context whould not
+ show up if warnings were disabled pointed out by Bob Stayton
+ * xmlIO.c doc/generator.py: cleanup and fix to regenerate the docs
+ * doc//* testapi.c: rebuilt the docs
+
+Wed Oct 11 14:32:00 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * libxml-2.0.pc.in: applied patch from Mikhail Zabaluev to separate
+ library flags for shared and static builds, fixes #344594. If this
+ bites you, use xml2-config.
+
+Wed Oct 11 11:27:37 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am: remove the build path recorded in the python
+ shared module as Peter Breitenlohner pointed out, should fix #346022
+
+Wed Oct 11 11:14:51 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied patch from Mikhail Zabaluev fixing the conditions
+ of unescaping from URL to filepath, should fix #344588.
+
+Wed Oct 11 10:24:58 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in xstc/Makefile.am: applied patch from Peter Breitenlohner
+ for wget detection and fix of a Python path problem, should fix
+ #340993
+
+Tue Oct 10 22:02:29 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/entities.h entities.c SAX2.c parser.c: trying to
+ fix entities behaviour when using SAX, had to extend entities
+ content and hack on the entities processing code, but that should
+ fix the long standing bug #159219
+
+Tue Oct 10 14:36:18 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c include/libxml/uri.h: add a new function xmlPathToUri()
+ to provide a clean conversion when setting up a base
+ * SAX2.c tree.c: use said function when setting up doc->URL
+ or using the xmlSetBase function. Should fix #346261
+
+Tue Oct 10 11:05:59 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied a portability patch from Emelyanov Alexey
+
+Tue Oct 10 10:52:01 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied and slightly modified a patch from Michael Day to
+ keep _private in the parser context when parsing external entities
+
+Tue Oct 10 10:33:43 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.py python/types.c: applied patch from Ross Reedstrom,
+ Brian West and Stefan Anca to add XPointer support to the Python bindings
+
+Fri Sep 29 11:13:59 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: fixed a comment
+ * xinclude.c include/libxml/xinclude.h: applied a patch from Michael Day
+ to add a new function providing the _private field for the generated
+ parser contexts xmlXIncludeProcessFlagsData()
+
+Thu Sep 21 10:36:11 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied patch from Michael Day doing some refactoring
+ for the catalog entity loaders.
+
+Thu Sep 21 08:53:06 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c include/libxml/HTMLparser.h: exports htmlNewParserCtxt()
+ as Michael Day pointed out this is needed to use htmlCtxtRead*()
+
+Tue Sep 19 14:42:59 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied patch from Ben Darnell on #321545, I could not
+ reproduce the problem but 1/ this is safe 2/ it's better to be safe.
+
+Sat Sep 16 16:02:23 CEST 2006 Rob Richards <rrichards@ctindustries.net>
+
+ * tree.c: xmlTextConcat works with comments and PI nodes (bug #355962).
+ * parser.c: fix resulting tree corruption when using XML namespace
+ with existing doc in xmlParseBalancedChunkMemoryRecover.
+
+Fri Sep 1 11:52:55 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: another patch from Emelyanov Alexey to clean up a few things
+ in the previous patch.
+
+Wed Aug 30 15:10:09 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied patch from Roland Schwingel to fix the problem
+ with file names in UTF-8 on Windows, and compat on older win9x
+ versions.
+
+Tue Aug 22 16:51:22 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixed a bug #203125 in Red hat bugzilla, crashing PHP4
+ on validation errors, the heuristic to guess is a vctxt user
+ pointer is the parsing context was insufficient.
+
+Mon Aug 21 10:40:10 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmlcatalog.1 doc/xmlcatalog_man.xml doc/xmllint.1 doc/xmllint.xml:
+ applied patch to man pages from Daniel Leidert and regenerated
+
+Thu Aug 17 00:48:31 CEST 2006 Rob Richards <rrichards@ctindustries.net>
+
+ * xmlwriter.c: Add a document to the xmlwriter structure and
+ pass document when writing attribute content for encoding support.
+
+Wed Aug 16 01:15:12 CEST 2006 Rob Richards <rrichards@ctindustries.net>
+
+ * HTMLtree.c xmlsave.c: Add linefeeds to error messages allowing
+ for consistant handling.
+
+Tue Aug 15 15:02:18 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Applied the proposed fix for the documentation
+ of xmlXPathCastToString(); see bug #346202.
+
+Tue Aug 15 14:49:18 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: While investigating bug #350247, I noticed
+ that xmlSchemaIDCMatcher structs are massively recreated
+ although only a maximum of 3 structs is used at the same
+ time; added a cache for those structures to the
+ validation context.
+
+Sat Aug 12 16:12:53 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: applied patch from Marton Illes to fix an allocation
+ bug in xmlSchemaXPathEvaluate should close #351032
+
+Mon Aug 7 13:08:46 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: applied patch from Bertrand Fritsch to fix a bug in
+ xmlSchemaClearValidCtxt
+
+Fri Aug 4 14:50:41 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py: fixed the conversion of long parameters
+
+Thu Jul 13 15:03:11 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlsave.c: Removed the automatic generation of CDATA sections
+ for the content of the "script" and "style" elements when
+ serializing XHTML. The issue was reported by Vincent Lefevre,
+ bug #345147.
+ * result/xhtml1 result/noent/xhtml1: Adjusted regression test
+ results due to the serialization change described above.
+
+Thu Jul 13 08:32:21 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in parser.c xmllint.c include/libxml/parser.h
+ include/libxml/xmlversion.h.in: applied patch from Andrew W. Nosenko
+ to expose if zlib support was compiled in, in the header, in the
+ feature API and in the xmllint --version output.
+
+Thu Jul 13 08:24:14 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c: refactor to use normal warnings for entities problem
+ and not straight SAX callbacks.
+
+Wed Jul 12 17:13:03 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed bug #347316, reported by David Belius:
+ The simple type, which was the content type definition
+ of a complex type, which in turn was the base type of a
+ extending complex type, was missed to be set on this
+ extending complex type in the derivation machinery.
+
+Mon Jul 3 13:36:43 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Changed xmlXPathCollectAndTest() to use
+ xmlXPathNodeSetAddNs() when adding a ns-node in case of
+ NODE_TEST_TYPE (the ns-node was previously added plainly
+ to the list). Since for NODE_TEST_ALL and NODE_TEST_NAME
+ this specialized ns-addition function was already used,
+ I assume it was missed to be used with NODE_TEST_TYPE.
+
+Mon Jul 3 10:57:33 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied const'ification of strings patch from
+ Matthias Clasen
+
+Thu Jun 29 13:51:12 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: patch from Andrew W. Nosenko, xmlFreeRMutex forgot to
+ destroy the condition associated to the mutex.
+
+Thu Jun 29 12:48:00 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Fixed a double-free in xmlXPathCompOpEvalToBoolean(),
+ revealed by a Libxslt regression test.
+
+Thu Jun 29 12:28:07 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Enhanced xmlXPathCompOpEvalToBoolean() to be also
+ usable outside predicate evaluation; the intention is to
+ use it via xmlXPathCompiledEvalToBoolean() for XSLT tests,
+ like in <xsl:if test="/foo">.
+
+Wed Jun 28 19:11:16 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Fix a memory leak which occurred when using
+ xmlXPathCompiledEvalToBoolean().
+
+Mon Jun 26 17:24:28 UTC 2006 William Brack <wbrack@mmm.com.hk>
+
+ * python/libxml.c, python/libxml.py, python/tests/compareNodes.py,
+ python/tests/Makefile.am:
+ Added code submitted by Andreas Pakulat to provide node
+ equality, inequality and hash functions, plus a single
+ test program to check the functions (bugs 345779 + 345961).
+
+Mon Jun 26 18:38:51 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Added xmlXPathCompiledEvalToBoolean() to the API and
+ adjusted/added xmlXPathRunEval(), xmlXPathRunStreamEval(),
+ xmlXPathCompOpEvalToBoolean(), xmlXPathNodeCollectAndTest()
+ to be aware of a boolean result request. The new function
+ is now used to evaluate predicates.
+
+Mon Jun 26 16:22:50 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Fixed an bug in xmlXPathCompExprAdd(): the newly
+ introduced field @rewriteType on xmlXPathStepOp was not
+ initialized to zero here; this could lead to the activation
+ of the axis rewrite code in xmlXPathNodeCollectAndTest() when
+ @rewriteType is randomly set to the value 1. A test
+ (hardcoding the intial value to 1) revealed that the
+ resulting incorrect behaviour is similar to the behaviour
+ as described by Arnold Hendriks on the mailing list; so I
+ hope that will fix the issue.
+
+Fri Jun 23 18:26:08 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Fixed an error in xmlXPathEvalExpr(), which
+ was introduced with the addition of the d-o-s rewrite
+ and made xpath.c unable to compile if XPATH_STREAMING
+ was not defined (reported by Kupriyanov Anatolij -
+ #345752). Fixed the check for d-o-s rewrite
+ to work on the correct XPath string, which is ctxt->base
+ and not comp->expr in this case.
+
+Mon Jun 19 12:23:41 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Added optimization for positional predicates
+ (only short-hand form "[n]"), which have a preceding
+ predicate: "/foo[descendant::bar][3]".
+
+Sun Jun 18 20:59:02 EDT 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: try to fix the crash raised by the parser in
+ recover mode as pointed by Ryan Phillips
+
+Sun Jun 18 18:44:56 EDT 2006 Daniel Veillard <daniel@veillard.com>
+
+ * python/types.c: patch from Nic Ferrier to provide a better type
+ mapping from XPath to python
+
+Sun Jun 18 18:35:50 EDT 2006 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: applied patch from Boz for VMS and reporting
+ Schemas errors.
+
+Sun Jun 18 18:22:25 EDT 2006 Daniel Veillard <daniel@veillard.com>
+
+ * testapi.c: applied patch from Felipe Contreras when compiling
+ with --with-minimum
+
+Fri Jun 16 21:37:44 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c include/libxml/tree.h: Fixed a bug in
+ xmlDOMWrapAdoptNode(); the tree traversal stopped if the
+ very first given node had an attribute node :-( This was due
+ to a missed check in the traversal mechanism.
+ Expanded the xmlDOMWrapCtxt: it now holds the namespace map
+ used in xmlDOMWrapAdoptNode() and xmlDOMWrapCloneNode() for
+ reusal; so the map-items don't need to be created for every
+ cloning/adoption. Added a callback function to it for
+ retrieval of xmlNsPtr to be set on node->ns; this is needed
+ for my custom handling of ns-references in my DOM wrapper.
+ Substituted code which created the XML namespace decl on
+ the doc for a call to xmlTreeEnsureXMLDecl(). Removed
+ those nastly "warnigns" from the docs of the clone/adopt
+ functions; they work fine on my side.
+
+Mon Jun 12 13:23:11 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * result/pattern/namespaces: Adjusted the result of a
+ regression test, since the fix of xmlGetNodePath() revealed a
+ bug in this test result.
+
+Mon Jun 12 13:06:03 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c: Got rid of a compiler warning in xmlGetNodePath().
+
+Mon Jun 12 12:54:25 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c: Fixed xmlGetNodePath() to generate the node test "*"
+ for elements in the default namespace, rather than generating
+ an unprefixed named node test and losing the namespace
+ information.
+
+Fri Jun 9 21:45:02 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * include/libxml/parser.h: Clarified in the docs that the tree
+ must not be tried to be modified if using the parser flag
+ XML_PARSE_COMPACT as suggested by Stefan Behnel
+ (#344390).
+
+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>
+
+ * xpath.c: Fixed self-invented a segfault in xmlXPathCtxtCompile(),
+ when the expression was not valid and @comp was NULL and I
+ tried to do the d-o-s rewrite.
+
+Tue Jun 6 15:19:57 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * configure.ini NEWS doc//* libxml.spec.in : preparing release of 2.6.25
+
+Tue Jun 6 11:28:15 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Enabled the compound traversal again; I added a
+ check to use this only if the have an expression starting
+ with the document node; so in the case of "//foo", we
+ already know at compilation-time, that there will be only
+ 1 initial context node. Added the rewrite also to
+ xmlXPathEvalExpr().
+
+Tue Jun 6 10:23:10 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: fix bug #343968, include='text' can't lead to a
+ recursion.
+
+Fri Jun 2 22:47:08 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Disabled the compound traversal for the release;
+ I need first to assure that this is done only if we have
+ 1 initial node.
+
+Wed May 31 13:53:41 PST 2006 Aleksey Sanin <aleksey@aleksey.com>
+
+ * xpath.c: fixed memory leak in xpath error reporting
+
+Wed May 31 15:30:16 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.h triodef.h: applied patch from Olli Savia for LynxOS
+
+Wed May 31 14:33:00 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c include/libxml/xpath.h runsuite.c:
+ Changed the name of the recently added public function
+ xmlXPathContextSetObjectCache() to
+ xmlXPathContextSetCache(); so a more generic one, in
+ case we decide to cache more things than only XPath
+ objects.
+
+Tue May 30 21:36:16 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Optimized xmlXPathNodeCollectAndTest() and
+ xmlXPathNodeCollectAndTestNth() to evaluate a compound
+ traversal of 2 axes when we have a "//foo" expression.
+ This is done with a rewrite of the XPath AST in
+ xmlXPathRewriteDOSExpression(); I added an additional field
+ to xmlXPathStepOp for this (but the field's name should be
+ changed). The mechanism: the embracing descendant-or-self
+ axis traversal (also optimized to return only nodes which
+ can hold elements), will produce context nodes for the
+ inner traversal of the child axis. This way we avoid a full
+ node-collecting traversal of the descendant-or-self axis.
+ Some tests indicate that this can reduce execution time of
+ "//foo" to 50%. Together with the XPath object cache this
+ all significantly speeds up libxslt.
+
+Tue May 30 11:38:47 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: A warning will now be reported in the value of
+ the XSD attribute 'schemaLocation' does not consist of tuples
+ (namespace-name, document-URI). A warning will be reported
+ if a schema document could not be found at the specified
+ location (via 'schemaLocation' or
+ 'noNamespaceSchemaLocation').
+ * include/libxml/xmlerror.h: Added XML_SCHEMAV_MISC to
+ xmlParserErrors.
+
+Tue May 30 11:21:34 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Enhanced xmlXPathNodeCollectAndTest() to avoid
+ recreation (if possible) of the node-set which is used to
+ collect the nodes in the current axis for the current context
+ node. Especially for "//foo" this will decrease dramatically
+ the number of created node-sets, since for each node in the
+ result node-set of the evaluation of descendant-or-self::node()
+ a new temporary node-set was created. Added node iterator
+ xmlXPathNextChildElement() as a tiny optimization for
+ child::foo.
+
+Mon May 29 18:06:17 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c include/libxml/xpath.h: Added an XPath object cache.
+ It sits on an xmlXPathContext and need to be explicitely
+ activated (or deactivated again) with
+ xmlXPathContextSetObjectCache(). The cache consists of 5
+ lists for node-set, string, number, boolean and misc XPath
+ objects. Internally the xpath.c module will use object-
+ deposition and -acquisition functions which will try to reuse
+ as many XPath objects as possible, and fallback to normal
+ free/create behaviour if no cache is available or if the cache
+ is full.
+ * runsuite.c: Adjusted to deactivate the cache for XML Schema
+ tests if a cache-creation is turned on by default for the whole
+ library, e.g. for testing purposes of the cache. It is
+ deactivated here in order to avoid confusion of the memory leak
+ detection in runsuite.c.
+
+Wed May 24 10:54:25 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Removed a memcpy if xmlXPathNodeSetMerge(); it
+ seems we really need to walk the whole list, since those
+ nastly namespace nodes need to be added with
+ xmlXPathNodeSetDupNs(); thus a pure memcpy is not possible.
+ A flag on the node-set indicating if namespace nodes are in
+ the set would help here; this is the 3rd flag which would
+ be useful with node-sets. The current flags I have in mind:
+ 1) Is a node-set already sorted?
+ This would allow for rebust and optimizable sorting
+ behaviour.
+ 2) Of what type are the nodes in the set (or of mixed type)?
+ This would allow for faster merging of node-sets.
+ 3) Are namespace nodes in the set?
+ This would allow to skipp all the namespace node specific
+ special handling. Faster node-set merging if the first
+ set is empty; just memcpy the set.
+
+Mon May 22 17:14:00 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Optimization of count(): eliminated sorting
+ (see bug #165547). Optimization of XPATH_OP_FILTER if the
+ predicate is a [1] (disable with XP_OPTIMIZED_FILTER_FIRST if
+ it produces trouble). Tiny opt in xmlXPathNodeSetMerge().
+
+Mon May 22 13:33:12 CEST 2006 Rob Richards <rrichards@ctindustries.net>
+
+ * tree.c: Revert behavior change in xmlSetProp to handle attributes
+ with colons in name and no namespace.
+
+Fri May 19 21:56:43 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Substituted all remaining calls to xmlXPathCmpNodes()
+ for xmlXPathCmpNodesExt(). Tiny further enhancement of
+ xmlXPathCmpNodesExt(). Added additional checks in various code
+ parts to avoid calling sorting or merging functions if the
+ node-set(s) don't need them; i.e., if they are empty or contain
+ just one node.
+
+Fri May 19 13:16:58 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Optimized the comparison for non-element nodes
+ in xmlXPathCmpNodesExt(); the comparison is used for sorting
+ of node-sets. This enhancement is related to bug #165547.
+ There are other places where the old comparison function
+ xmlXPathCmpNodes() is still called, but I currently don't
+ know exactly what those calls are for; thus if they can be
+ substituted (if it makes sense) for the new function.
+
+Tue May 16 16:55:13 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xpath.c: Applied patch from Rob Richards, fixing a potential
+ memory leak in xmlXPathTryStreamCompile(), when a list of
+ namespaces was assigned to the XPath compilation context;
+ here a new namespace list was created and passed to
+ xmlPatterncompile(); but this list was not freed afterwards.
+ Additionally we avoid now in xmlXPathTryStreamCompile() to
+ compile the expression, if it has a colon - indicating
+ prefixed name tests - and no namespace list was given. The
+ streaming XPath mechanism needs a namespace list at
+ compilation time (unlike normal XPath, where we can bind
+ namespace names to prefixes at execution time).
+ * pattern.c: Enhanced to use a string dict for local-names,
+ ns-prefixes and namespace-names.
+ Fixed xmlStreamPushInternal() not to use string-pointer
+ comparison if a dict is available; this won't work, since
+ one does not know it the given strings originate from the
+ same dict - and they normally don't do, since e.g.
+ namespaces are hold on xmlNs->href. I think this would be
+ worth an investigation: if we can add a @doc field to xmlNs
+ and put the @href in to a additionan namespace dict hold
+ in xmlDoc. Daniel will surely not like this idea :-) But
+ evaluation of tons of elements/attributes in namespaces
+ with xmlStrEqual() isn't the way we should go forever.
+
+Thu May 11 18:03:49 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed bug #341337, reported by David Grohmann.
+ The code expected a node (xmlNodePtr) on the info for a
+ non-existent default attribute, which clearly cannot be
+ expected, since the attribute does not exist. I can only
+ guess that this sneaked trying to eliminate the query
+ for the owner-element, which is unavoidable actually.
+ Note that creation of default attributes won't have an
+ effect if validating via SAX/XMLReader; i.e., the processor
+ won't fire additional start-attribute events (I'm not even
+ sure if Libxml2 has such a SAX-event; I think it hands them
+ all over in the start-element event).
+
+Tue May 9 21:47:58 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed bug #341150, reported by Michael Romer.
+ In xmlSchemaBuildContentModelForSubstGroup(),
+ xmlAutomataNewOnceTrans2() was incorrectly used instead of
+ xmlAutomataNewTransition2() to mimic a xs:choice for
+ substitution-groups.
+ * test/schemas/subst-group-1_1.xsd
+ test/schemas/subst-group-1_0.xml
+ result/schemas/subst-group-1_0_1
+ result/schemas/subst-group-1_0_1.err: Added regression test
+ supplied by Michael Romer for bug #341150.
+
+Sat May 6 11:05:24 HKT 2006 William M. Brack <wbrack@mmm.com.hk>
+
+ * relaxng.c: Fixed compilation error with patch supplied by
+ Graham Bennett.
+
+Thu May 4 19:14:03 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: We'll raise an internal error and stop
+ validation now when an entity is found in the instance
+ document, since we don't support automatic entity
+ substitution by the schema processor (yet?) -
+ see bug #340316, reported by Nick Wellnhofer.
+
+Wed May 3 15:16:00 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: applied another Python detection patch from Joseph Sacco
+ * libxml.spec.in: cleanup the changelog section, asciifies the spec file
+ too
+
+Tue May 2 22:34:54 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: fix a mix of code and declarations showing up on Windows
+ patch from Kjartan Maraas, fixing #340404
+
+Tue May 2 14:24:40 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: fixing bug #340398 xmlCharEncOutFunc writing to
+ input buffer
+
+Fri Apr 28 18:29:22 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS configure.in doc//*: preparing 2.6.24 release, fixed Python
+ paths at the last moment
+ * relaxng.c testapi.c tree.c: fix some comments
+
+Thu Apr 27 10:15:45 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied patch from Roland Schwingel to allow UTF-8
+ file paths on Windows
+
+Thu Apr 27 10:10:58 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: patch from Jason Viers for line breaks after EndPI
+
+Tue Apr 25 22:22:58 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fix compilation without tree
+
+Tue Apr 25 18:17:37 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: applied patch from Gary Coady to really make sure
+ xmllint --nonet would not reach the network, should fix #337483.
+
+Tue Apr 25 14:52:15 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: applied patch from Joseph Sacco changing slightly
+ the python detection scheme should fix bug #338526
+
+Mon Apr 24 10:50:19 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix the error message for invalid code point in content
+ c.f. bug #339311
+
+Wed Apr 19 13:16:23 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c test/schemas/restriction-enum-1*
+ result/schemas/restriction-enum-1*: Fixed incorrect
+ validation of restricted enumerations. Added related
+ regression tests.
+
+Thu Apr 13 09:47:25 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixing a deallocation problem in xmlSchemaAddSchemaDoc()
+ in case of errors, should fix bug #338303
+
+Thu Apr 13 09:31:45 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixing a deallocation problem in xmlRelaxNGParse()
+ in case of errors, should fix bug #338306
+
+Thu Apr 6 10:22:17 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmlcatalog.1 doc/xmlcatalog_man.xml doc/xmllint.1 doc/xmllint.xml:
+ applied man page improvements from Daniel Leidert
+
+Mon Mar 27 11:44:07 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: removed unused code or variables, from Stefan Kost
+ fixing #336163 and #336164
+
+Mon Mar 27 11:38:21 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: applied patch from Stefan Kost fixing #336160
+
+Mon Mar 27 11:23:39 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * chvalid.c genChRanges.py genUnicode.py xmlunicode.c
+ include/libxml/chvalid.h include/libxml/xmlunicode.h: applied
+ patches from Aivars Kalvans to make unicode tables const, fixes
+ bug #336096, this also updates to Unicode 4.01 final with a couple
+ of character ranges fixes.
+
+Mon Mar 27 00:51:40 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * chvalid.c genChRanges.py include/libxml/chvalid.h: fixed bug
+ #335603 and resync'ed genChRanges.py to the expected output.
+
+Wed Mar 22 00:14:34 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: applied patch from Youri Golovanov fixing bug
+ #316338 and adding a couple of optimizations in the regexp
+ compilation engine.
+ * test/regexp/bug316338 result/regexp/bug316338: added regression
+ tests based on the examples provided in the bug report.
+
+Fri Mar 10 08:40:55 EST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * c14n.c encoding.c xmlschemas.c xpath.c xpointer.c: fix a few
+ warning raised by gcc-4.1 and latest changes
+
+Fri Mar 10 01:34:42 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c schematron.c testAutomata.c tree.c valid.c xinclude.c
+ xmlcatalog.c xmlreader.c xmlregexp.c xpath.c: end of first
+ pass on coverity reports.
+
+Thu Mar 9 19:36:14 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c xmlschemas.c xmlschemastypes.c: more cleanups based
+ on coverity reports.
+
+Thu Mar 9 17:47:40 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c catalog.c encoding.c entities.c example/gjobread.c
+ python/libxml.c: more cleanups based on coverity reports.
+
+Thu Mar 9 15:12:19 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c parser.c parserInternals.c pattern.c uri.c: a bunch
+ of small cleanups based on coverity reports.
+
+Thu Mar 9 09:42:10 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * win32/Makefile.bcb: added schematron as pointed out by Eric Zurcher
+
+Tue Mar 7 09:50:09 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xml2-config.in: fix Red Hat bug #184170
+
+Mon Mar 6 14:21:08 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c: Simplified usage of the internal xmlNsMap. Added a
+ "strict" lookup for namespaces based on a prefix. Fixed a
+ namespace processing issue in the clone-node function, which
+ occurred if a @ctxt argument was given.
+
+Fri Mar 3 17:44:10 CET 2006 Rob Richards <rrichards@ctindustries.net>
+
+ * valid.c: fix HTML attribute ID checking for input element.
+ Maintain current attribute "name" behavior for now.
+
+Thu Mar 2 18:59:50 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c: Bundled lookup of attr-nodes and retrieving their
+ values into the functions xmlGetPropNodeInternal() and
+ xmlGetPropNodeValueInternal(). Changed relevant code
+ to use those functions.
+
+Mon Feb 27 20:42:04 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: workaround HP-UX compiler bug by Rick Jones
+
+Mon Feb 27 10:57:05 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml2.py: remove a tab, as pointed out on IRC
+
+Sat Feb 25 18:12:10 CET 2006 Rob Richards <rrichards@ctindustries.net>
+
+ * tree.c: Fix the add sibling functions when passing attributes.
+ Modify testing for ID in xmlSetProp.
+ No longer remove IDness when unlinking or replacing an attribute.
+
+Fri Feb 24 21:20:33 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: Martin Cole pointed out a bug in xmlCatalogAdd()
+ if /etc/xml/catalog doesn't exist.
+
+Thu Feb 23 23:06:18 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * doc//*: updated the Ruby bindings links, and regenerated the
+ docs.
+
+Thu Feb 23 09:12:27 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: improve catalog debugging message patch from Rick Jones
+
+Wed Feb 22 16:09:10 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * python/types.c: Nic Ferrier found debug statement left in the
+ XPath conversion code
+
+Tue Feb 21 20:23:14 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmllint.1 doc/xmllint.xml: small man page improvements from
+ Daniel Leidert
+
+Mon Feb 20 15:45:19 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed a side-effect of the previous XSI bugfix:
+ The constructor needs a bucket to be assigned during component
+ fixup.
+
+Mon Feb 20 14:32:36 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c xmlschemastypes.c: Fixed xs:boolean to reject
+ the empty string (reported by Bas Driessen on the mailing-list).
+ Fixed schema XSI-acquisition and construction: the schemata
+ (xmlSchema) didn't get the targetNamespace in some cases, thus
+ the component resolution mechanism failed to work. The XSI
+ stuff needs to be tested more intensively; think about how
+ to test this for regression.
+
+Mon Feb 20 09:57:41 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmllint.1 doc/xmllint.xml: more man page improvements from
+ Daniel Leidert
+
+Sun Feb 19 22:31:33 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmllint.1 doc/xmllint.xml: man page improvements from Daniel
+ Leidert, c.f. #331290
+
+Sun Feb 19 17:54:04 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: fix an error report when using --path and --valid
+ closes bug #331290
+
+Sun Feb 19 16:20:43 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: trying to fix #331062, this is again a problem
+ around interleave, there is no good fix unless reimplementing
+ but this works around some cases and allow to validate in that
+ case.
+
+Wed Feb 15 11:55:22 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c: Fixed bug #328896 reported by Liron. The path
+ for text- and CDATA-section-nodes was computed incorrectly
+ in xmlGetNodePath().
+
+Sun Feb 12 20:12:22 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: bug fixes for #327167 as well as some cleanups
+ and more thorough tests on atoms comparisons.
+
+Thu Feb 9 10:07:20 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * include/wsockcompat.h: patch from Eric Zurcher to compile with
+ Borland C++ 6
+
+Sun Feb 5 04:03:59 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: bill pointed out a missing block in xmlParseComment
+ trying to fill with a normal processing of the given character.
+
+Sun Feb 5 03:41:39 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed the comment streaming bug raised by Graham Bennett
+ * test/badcomment.xml result//badcomment.xml*: added to the regression
+ suite.
+
+Fri Feb 3 17:36:41 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * include/libxml/tree.h: Added the xmlDOMWrapCloneNode() to
+ the header file.
+
+Fri Feb 3 17:29:22 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c: Added an initial version of xmlDOMWrapCloneNode() to
+ the API. It will be used to reflect DOM's Node.cloneNode and
+ Document.importNode methods.
+ The pros: 1) non-recursive, 2) optimized ns-lookup
+ (mostly pointer comparison), 3) user defined ns-lookup,
+ 4) save ns-processing. The function is in an unfinished
+ and experimental state and should be only used to test it.
+
+Fri Feb 3 10:42:48 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: applied patch from Rob Richards fixing the URI regressions
+ tests on Windows which seems to indicate bad escaping.
+
+Thu Feb 2 13:11:26 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c: Fixed some bugs xmlDOMWrapReconcileNamespaces() wrt
+ the previous addition of the removal of redundant ns-decls.
+
+Wed Feb 1 17:32:25 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c: Enhanced xmlDOMWrapReconcileNamespaces() to remove
+ redundant ns-decls if the option XML_DOM_RECONNS_REMOVEREDUND
+ was given. Note that I haven't moved this option to the
+ header file yet; so just call this function with an @option
+ of 1 to test the behaviour.
+
+Wed Feb 1 12:21:08 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tapi.c win32/Makefile.*: Added changed as proposed on
+ the mailing list by venkat naidu in order to compile
+ testapi.c on windows.
+
+Thu Jan 19 09:57:28 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in xml2-config.in: trying to fix windows/configure
+ issues reported by Tim Van Holder
+
+Wed Jan 18 18:21:15 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c libxml.h parser.c: try to fix xmlParseInNodeContext
+ when operating on an HTML document.
+
+Mon Jan 9 17:27:15 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * relaxng.c include/libxml/relaxng.h: Added
+ xmlRelaxNGSetParserStructuredErrors() to the API.
+
+Mon Jan 9 15:33:16 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: reverted first patches for #319279 which led to #326295
+ and fixed the problem in xmlParseChunk() instead
+ * test/ent11 result//ent11*: added test for #326295 to the regression
+ suite
+
+Thu Jan 5 16:25:06 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS configure.in libxml.spec.in testapi.c doc/*: upated the news
+ regenerated the docs, preparing for release of 2.6.23
+ * pattern.c xmlschemas.c: fixed some comments
+
+Thu Jan 5 15:48:27 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/XPath/docs/nodes test/XPath/tests/nodespat
+ result/XPath/tests/nodespat: Added regression tests for
+ the latest XPath/pattern fixes.
+
+Thu Jan 5 15:43:38 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * pattern.c: Another fix to handle "foo//.": "foo" was not
+ included in the resulting node-set.
+
+Thu Jan 5 13:22:29 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * pattern.c xpath.c include/libxml/pattern.h:
+ Fixed bug #322928, reported by Erich Schubert: The bug was
+ in pattern.c, which is used for a tiny subset of xpath
+ expression which can be evaluated in an optimized way.
+ The doc-node was never considered when evaluating "//"
+ expressions. Additionally, we fixed resolution
+ to nodes of any type in pattern.c; i.e. a "//." didn't work
+ yet, as it did select only element-nodes. Due to this
+ issue the pushing of nodes in xpath.c needed to be adjusted
+ as well.
+
+Wed Jan 4 18:07:47 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: tiny refactoring patch from Bjorn Reese
+
+Wed Jan 4 15:00:51 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c: fix bug #324432 with <xml:foo/>
+ * test/ns7 resul//ns7*: added to the regression tests
+
+Wed Jan 4 10:53:56 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * include/wsockcompat.h: applied patch from Mark Junker, fixing a
+ MinGW compilation problem, should close bug #324943
+
+Tue Jan 3 11:49:54 CET 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Removed last dependency on the obsolete enum
+ xmlSchemaValidError.
+
+Mon Jan 2 11:20:00 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c include/libxml/xmlreader.h xmlschemas.c: compilation
+ and doc build fixes from Michael Day
+
+Wed Dec 28 22:12:34 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: bug in xmlRegExecPushString2() pointed out by
+ Sreeni Nair.
+
+Tue Dec 20 16:55:31 CET 2005 Rob Richards <rrichards@ctindustries.net>
+
+ * tree.c: fix bug #322136 in xmlNodeBufGetContent when entity ref is
+ a child of an element (fix by Oleksandr Kononenko).
+ * HTMLtree.c include/libxml/HTMLtree.h: Add htmlDocDumpMemoryFormat.
+
+Tue Dec 20 11:43:06 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c xmlstring.c: Fixed a segfault during
+ text concatenation when validating a node tree:
+ xmlStrncat was called with a @len of -1; but unlike
+ xmlStrncatNew, it does not calculate the length
+ automatically in such a case (reported by Judy Hay
+ on the mailing list).
+ Updated the descriptions of the involved string
+ functions to note this.
+
+Thu Dec 15 12:11:07 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * nanohttp.c: applied patch from Gary Coady to accept gzipped
+ http resources.
+
+Wed Dec 14 18:41:26 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * win32/configure.js: Added enable/disable of runtime
+ debugging (LIBXML_DEBUG_RUNTIME).
+
+Wed Dec 14 18:11:50 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * include/libxml/xmlversion.h.in: Fixed to define
+ LIBXML_DEBUG_RUNTIME on the basis of @WITH_RUN_DEBUG@.
+
+Tue Dec 13 12:49:23 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/bug321475* result/schemas/bug321475*:
+ Added regression test for bug #321475 (reported by
+ Gabor Nagy). Fixing of bug #323510 seemed to have
+ fixed this bug as well.
+
+Mon Dec 12 16:19:16 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/bug323510* result/schemas/bug323510*:
+ Added regression test for bug #323510.
+
+Mon Dec 12 16:11:13 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Workaround for bug #323510 (reported by
+ Jonathan Filiatrault): substituted the epsilon transition
+ for a labelled transition, in order to avoid a bug in
+ xmlregexp.c which eliminated the epsilon transition and
+ marked the initial state as final.
+
+Mon Dec 12 14:25:46 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: Gary Coady pointed a memory leak in
+ xmlTextReaderReadInnerXml() applied patch fixing #323864
+
+Sat Dec 10 12:08:28 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c configure.in parserInternals.c runsuite.c runtest.c
+ testapi.c xmlschemas.c xmlschemastypes.c xmlstring.c: fixed a number
+ of warnings shown by HP-UX compiler and reported by Rick Jones
+
+Fri Dec 9 18:57:31 CET 2005 Rob Richards <rrichards@ctindustries.net>
+
+ * xmlwriter.c: Insert space between pubid and sysid when both
+ passed to xmlTextWriterStartDTD and indenting not being used.
+ Remove no longer used Mem callbacks.
+
+Fri Dec 9 11:01:16 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * runsuite.c: Changed to instantly mark instance-tests as
+ failed if the corresponding schema was invalid. This
+ reflects the side of the Python code for the XML Schema test
+ suite. We now get the same number of failed tests on both
+ sides.
+
+Wed Dec 7 14:59:01 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlreader.c include/libxml/xmlreader.h: Added
+ xmlTextReaderSchemaValidateCtxt() to the API.
+
+Wed Dec 7 12:59:56 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed a segfault: the instance document was
+ still tried to be validated, if the schema, dynamically
+ acquired using XSI was invalid, thus mangled. The
+ validation will stop (or rather won't validate) now in
+ such a case. The schema parser error code will be set
+ on the validion context now; this is somehow not nice,
+ but it assures that the validation context indicates an
+ error in there was a parser error.
+
+Tue Dec 6 18:57:23 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: small doc patch from Aron Stansvik
+ * legacy.c: another doc patch for a deprecated API
+
+Mon Dec 5 16:23:49 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * Makefile.am: Tiny change for 'make tests': raised
+ the number of expected failures for James Clark's
+ XML Schema datatype tests from 10 to 11. The additional
+ reported error was agreed to be correct long time ago,
+ but we missed to adjust the message reported by
+ the testing script.
+
+Fri Dec 2 13:51:14 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * result/schemas/decimal* result/schemas/bug322411*:
+ Added missing regression test results for the latest IDC
+ and xs:decimal bugs.
+
+Wed Nov 30 12:22:23 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/decimal* test/schemas/bug322411*: Added
+ regression tests for the latest IDC and xs:decimal bugs.
+
+Wed Nov 30 11:57:35 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed bubbling of duplicate IDC nodes: the
+ parent's list of duplicates was filled with NULLs instead
+ of the nodes under certain conditions. This lead to a
+ segfault when the list's entries were accessed.
+
+Mon Nov 28 17:28:53 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Fixed parsing of xs:decimal to
+ allow/deny special lexical forms. Fixed the totalDigits
+ for values in the range (x < 1) && (x > -1) && (x != 0);
+ E.g "0.123" has now a totalDigits of 3 (was 4 previously).
+ Adjusted the comparison function for decimals due to this
+ change. As a side effect comparison against zeroes was
+ optimized.
+
+Mon Nov 28 13:25:11 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: An assignment to a local variable, which was
+ used to access the IDC node list, was missing after the
+ reallocation of the list (reported by Fabrice GUY
+ bug #322411). Renamed the define ENABLE_IDC_NODE_TABLES
+ to ENABLE_IDC_NODE_TABLES_TEST and *disabled* it, since
+ it is used to force bubbling of IDC node tables even
+ if not necessary; this was intended to be used for test
+ purposes, but I obviously missed to disable it (although
+ it apparently helped finding the bug).
+
+Wed Nov 23 17:34:52 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: In xmlSchemaAssembleByXSI() the return value
+ of xmlSchemaGetMetaAttrInfo() was not assigned to anything;
+ this caused XSI-driven-dynamic schema acquisition to fail
+ with @noNamespaceSchemaLocation (reported by Julien Lamy
+ on the mailing list).
+
+Tue Nov 22 18:31:34 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed a bug in xmlSchemaFindRedefCompInGraph()
+ which caused the search for components to stop at the
+ first encountered attribute group component.
+ Fixed error report in xmlSchemaCheckSRCRedefineFirst(): the
+ designation of a not-found component was not reported.
+
+Mon Nov 21 12:23:28 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: Albert Chin found another signed/unsigned problem
+ in the date and time code raised on IRIX 6.5
+
+Fri Nov 18 18:13:38 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/xmlschemas.h:
+ Added xmlSchemaSetParserStructuredErrors() to the API.
+ Fixed channeling of error relevant information to
+ subsequent parser/validation contexts.
+
+Thu Nov 17 14:11:43 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: removed unreachable code pointed out by
+ Oleksandr Kononenko, fixes bug #321695
+
+Thu Nov 17 08:24:31 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: use ctxt->standalone = -2 to indicate that the
+ XMLDecl was parsed but no standalone attribute was found,
+ suggested by Michael Day to detect if an XMLDecl was found.
+
+Tue Nov 15 09:49:24 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: Hisashi Fujinaka pointed that errors in Schemas tests
+ were not properly reported.
+
+Sun Nov 13 13:42:41 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied patch from Geert Jansen to remove xmlBufferClose()
+ which is not needed.
+
+Fri Nov 11 13:48:52 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Changed xmlSchemaFormatIDCKeySequence()
+ to use xmlSchemaGetCanonValueWhtspExt() in order to
+ correctly report values for xs:anySimpleType.
+ * test/schemas/idc-keyref-err1*
+ result/schemas/idc-keyref-err1*: Added a test for this change.
+
+Wed Nov 9 13:07:24 EST 2005 Rob Richards <rrichards@ctindustries.net>
+
+ * xmlIO.c xmlwriter.c: function consolidation when writing to xmlBuffer.
+ Return error condition not len if xmlwriter fails writing to buffer.
+
+Wed Nov 9 09:54:54 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c xmlIO.c include/libxml/xmlIO.h include/libxml/xmlsave.h:
+ applied patch from Geert Jansen to implement the save function to
+ a xmlBuffer, and a bit of cleanup.
+
+Mon Nov 7 14:58:39 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c xmlschemastypes.c: Fixed the type of the
+ totalDigits value to be positiveInteger.
+ Fixed crash in an error report function when we gave it
+ the document node; only element and attribute nodes are
+ processed now (reported by Rob Richards).
+
+Tue Nov 1 16:22:29 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: fix bug #319897, problem with counted atoms
+ when the transition itself is counted too
+ * result/regexp/hard test/regexp/hard: augmented the regression
+ tests with the problem exposed.
+
+Tue Nov 1 11:54:39 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * win32/Makefile.mingw include/win32config.h: applied patch from
+ Mark Junker to fix compilation with MinGW
+
+Fri Oct 28 18:36:08 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.3: tiny fix from Albert Chin
+ * runsuite.c runtest.c testapi.c: portability cleanup for arch
+ needing trio for *printf
+
+Fri Oct 28 12:21:39 EDT 2005 Rob Richards <rrichards@ctindustries.net>
+
+ * tree.c: add additional checks to prevent tree corruption. fix problem
+ copying attribute using xmlDocCopyNode from one document to another.
+
+Fri Oct 28 17:58:13 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * config.h.in configure.in vms/config.vms macos/src/config-mac.h:
+ cleanup from Albert Chin
+ * doc/Makefile.am: html/index.sgml doesn't exist anymore
+
+Fri Oct 28 16:53:51 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c xmlmodule.c: more portability patches from Albert Chin for
+ HP-UX and AIX
+
+Fri Oct 28 10:36:10 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmodule.c configure.in: applied 2 patches from Albert Chin for
+ module portability
+
+Fri Oct 28 10:24:39 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * error.c: fixing a portability problem on some old Unices with
+ patch from Albert Chin
+
+2005-10-27 Aleksey Sanin <aleksey@aleksey.com>
+
+ * c14n.c result/c14n/exc-without-comments/test-2
+ test/c14n/exc-without-comments/test-2.xml
+ test/c14n/exc-without-comments/test-2.xpath: fixing
+ bug in exc-c14n namespace visibility + test case (bug #319367)
+
+Thu Oct 27 16:10:31 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.py: remove warnings to stdout patch from Nic Ferrier
+
+Thu Oct 27 13:54:52 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c xmlregexp.c include/libxml/valid.h
+ include/libxml/xmlregexp.h: avoid function parameters names 'list'
+ as this seems to give troubles with VC6 and stl as reported by
+ Samuel Diaz Garcia.
+
+Wed Oct 26 10:59:21 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: fix a problem in some error case on Solaris
+ when passed a NULL filename, pointed by Albert Chin.
+
+Tue Oct 25 14:34:58 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: script HTML parser error fix, corrects bug #319715
+ * result/HTML/53867* test/HTML/53867.html: added test from Michael Day
+ to the regression suite
+
+Tue Oct 25 14:21:11 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: typo fix from Michael Day
+
+Mon Oct 24 20:16:23 EDT 2005 Rob Richards <rrichards@ctindustries.net>
+
+ * tree.c: fix issue adding non-namespaced attributes in xmlAddChild(),
+ xmlAddNextSibling() and xmlAddPrevSibling() (bug #319108) - part 1.
+
+Sat Oct 22 10:00:41 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: fixed second spot where CRLF split between chunks
+ could cause trouble (bug #319279)
+ * gentest.py, testapi.c: fixed two problems involved with
+ --with-minimum compilation (compilation errors with schematron
+ and formal expressions tests)
+
+Fri Oct 21 10:50:14 EDT 2005 Rob Richards <rrichards@ctindustries.net>
+
+ * xmlsave.c: prevent output of fragment tags when serializing XHTML.
+
+Wed Oct 19 16:53:47 BST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: commiting a some fixes and debug done yesterday in
+ the London airport.
+
+Thu Oct 20 12:54:23 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Removed creation of a temporary parser context
+ during validation when processing xsi:type; this previously
+ added a string to the dict of the schema - to assure thread
+ safety, we don't want to modify a given schema during
+ validation.
+
+Thu Oct 20 17:05:29 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xmlwriter.c: fixed problem in xmlTextWriterVSprintf caused by
+ misuse of vsnprintf
+ * configure.in, config.h.in: added a configuration check for
+ va_copy and added a define for VA_COPY for xmlwriter.c fix
+ * parser.c: fixed problem with CRLF split between chunks (bug
+ #319279) (fix provided by Brion Vibber)
+
+Wed Oct 19 18:49:52 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed a potential memory leak in
+ xmlSchemaCheckCSelectorXPath() when an internal error occurs.
+ Fixed setting of ctxt->err to the given error code in
+ the parsing error functions.
+ * pattern.c: Added internal xmlCompileIDCXPathPath() as a
+ starting point for IDC XPath compilation; this and some other
+ tiny changes fixes issues regarding whitespace in the
+ expressions and IDC selector/field relevant restrictions of
+ the subset of XPath. Fixed a missing blocking of attributes
+ in xmlStreamPushInternal().
+
+Mon Oct 17 15:06:05 EDT 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: removed the error message
+ * relaxng.c xmlschemas.c: removed 2 instability warnings from function
+ documentation
+ * include/libxml/schemasInternals.h: changed warning about API stability
+ * xmlregexp.c: trying to improve runtime execution of non-deterministic
+ regexps and automata. Not fully finished but should be way better.
+
+Mon Oct 17 16:12:02 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed a memory leak in
+ xmlSchemaContentModelDump(). Added output of local types
+ in xmlSchemaElementDump(). Tiny cosmetical changes to the
+ dump output.
+
+Mon Oct 17 14:29:08 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c pattern.c: Silenced intel compiler warnings (reported
+ by Kjartan Maraas, bug #318517).
+ * xmlschemas.c: The above changes in pattern.c revealed an
+ inconsistency wrt IDCs: we now _only_ pop XPath states, if
+ we really pushed them beforehand; this was previously not
+ checked for the case when we discover an element node to be
+ invalid wrt the content model.
+ Fixed segfault in xmlSchemaGetEffectiveValueConstraint().
+
+Fri Oct 14 16:40:18 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * result/schemas/*.err: Adapted regression test results.
+
+Fri Oct 14 16:21:22 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed some identity-constraint issues:
+ Restructured IDC node-tables
+ Allowed IDCs to resolve also to nodes of complex type with
+ simple content.
+ Added check for keyrefs with references to keyrefs.
+ IDC target-nodes were interferring with IDC node-tables,
+ since they used one list of entries only. I separated this
+ one big list into 3 lists: 1 for IDC node-table entries,
+ 1 for _duplicates_ of IDC node-table entries and 1 for
+ IDC target-nodes. More code, but cleaner and it works at last.
+ Keyrefs will fail to resolve to duplicate key/unique entries.
+ I thought this was already working this way, but it didn't.
+ The wording of the definition for [node table] in the spec
+ can lead to a scenario, where keyrefs resolve perfectly, even
+ if the relevant key-sequences of the referenced key/unique have
+ duplicates in the subtree. Currently only Saxon 8.5.1 is
+ dissallowing resolution to duplicate entries correctly - we
+ will follow Saxon here.
+ Removed some intel compiler warnings (reported by
+ Kjartan Maraas, bug #318517).
+ * pattern.c: Fixed an IDC-XPath problem when resolving to
+ attributes.
+
+Mon Oct 14 01:15:14 CEST 2005 Rob Richards <rrichards@ctindustries.net>
+ * nanohttp.c include/wsockcompat.h: applied patch from Kolja Nowak
+ to use getaddrinfo() if supported in Windows build (bug# 317431).
+
+Mon Oct 10 15:33:48 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * result/schemas/*: Adapted regression test results.
+
+Mon Oct 10 15:12:43 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/schemasInternals.h
+ include/libxml/xmlerror.h: Initial implementation for
+ redefinitions; this still misses checks for restrictions
+ of the content model of complex types.
+ Fixed default/fixed values for attributes (looks like they
+ did not work in the last releases).
+ Completed constraints for attribute uses.
+ Separated attribute derivation from attribute constraints.
+ Completed constraints for attribute group definitions.
+ Disallowing <import>s of schemas in no target namespace if the
+ importing schema is a chameleon schema. This contradicts
+ the way Saxon, Xerces-J, XSV and IBM's SQC works, but the
+ W3C XML Schema WG, thinks it is correct to disallow such
+ imports.
+ Added cos-all-limited constraints.
+ Restructured reference resolution to model groups and element
+ declarations.
+ Misc cleanup.
+
+Fri Oct 7 04:34:12 CEST 2005 Rob Richards <rrichards@ctindustries.net>
+
+ * schematron.c xmlregexp.c: remove warnings under Windows.
+
+Wed Sep 28 23:42:14 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied patch from Massimo Morara fixing bug #317447
+ about risk of invalid write in xmlStringLenDecodeEntities
+
+Tue Sep 27 11:20:57 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * error.c: Adrian Mouat pointed out redundancies in xmlReportError()
+
+Mon Sep 26 19:18:24 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: seems a test to avoid duplicate transition is
+ really needed at all times. Luka Por gave an example hitting
+ this. Changed back the internal API.
+
+Thu Sep 22 13:14:07 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fixing leak in xmlTextReaderReadString() #316924
+
+Thu Sep 15 16:12:44 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: more fixes to the behaviour of xmlBuildRelativeURI
+
+Thu Sep 15 15:08:21 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: detect combinatory explosion and return with
+ a runtime error in those case, c.f. #316338 though maybe we
+ should not see such an explosion with that specific regexp,
+ more checking needs to be done.
+
+Wed Sep 14 19:52:18 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * include/libxml/schemasInternals.h: Added some comments for the
+ struct fields.
+
+Wed Sep 14 13:24:27 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * uri.c: fixed problem when xmlBuildRelativeURI was given a
+ blank path (bug 316224)
+
+Mon Sep 12 23:41:40 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS configure.in doc//*: release of 2.6.22 updated doc and
+ rebuild.
+ * xmlsave.c include/libxml/xmlsave.h: added XML_SAVE_NO_XHTML
+ xmlSaveOption
+ * xmlschemas.c: minor cleanups
+
+Mon Sep 12 21:42:47 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/import1_0.xsd: And adapting another one.
+
+Mon Sep 12 21:29:35 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * result/schemas/derivation-ok-extension_0_0: Adapted result.
+
+Mon Sep 12 21:20:41 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * result/schemas/allsg_0_3.err result/schemas/allsg_0_4.err
+ result/schemas/changelog093_1_0.err
+ result/schemas/derivation-ok-extension_0_0.err
+ result/schemas/import1_0_0.err
+ result/schemas/derivation-ok-restriction-2-1-1_0_0.err:
+ Adapted regression results.
+
+Mon Sep 12 21:00:53 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/schemasInternals.h
+ include/libxml/xmlerror.h: Completion of the schema graph.
+ Centralisation, more robustness of the schema document
+ aquisition story. Centralised and restructured component fixup.
+ Fixed attribute derivation when 'prohibiting' attribute uses.
+ Added warnings: when schema documents cannot be localized
+ during imports; when we get duplicate and pointless attribute
+ prohibitions. Changed error reports for IDCs to report
+ the relevant IDC designation as well (requested by GUY Fabrice).
+ Misc code-cleanup.
+
+Mon Sep 12 16:02:12 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: applied second patch from David Madore to be less intrusive
+ when handling scripts and style elements in XHTML1 should fix #316041
+ * test/xhtml1 result//xhtml1\*: updated the test accordingly
+
+Mon Sep 12 15:09:09 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in doc/devhelp/*: finished the integration with
+ devhelp, completing the index and inserted into the gtk-doc
+ database at "make install" stage
+
+Mon Sep 12 14:14:12 CEST 2005 Rob Richards <rrichards@ctindustries.net>
+
+ * include/libxml/xmlsave.h xmlsave.c: add XML_SAVE_NO_EMPTY save option
+ and use option from xmlSaveCtxtPtr rather than global during output.
+ * xmlsave.c: fix some output formatting for meta element under XHTML.
+
+Mon Sep 12 11:12:03 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parser.h parser.c xmllint.c: damn XML_FEATURE_UNICODE
+ clashes with Expat headers rename to XML_WITH_ to fix bug #316053.
+ * doc/Makefile.am: build devhelp before the examples.
+ * doc/*: regenerated the API
+
+Mon Sep 12 02:03:12 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: fix bug #316034, where xmlElemDump() can crash if
+ given a document pointer instead of an element
+
+Mon Sep 12 01:26:16 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * doc/devhelp/devhelp.xsl: improvements on the html generation,
+ should be complete with navigation, what is left done is glueing
+
+Mon Sep 12 00:03:27 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/Makefile.am doc/apibuild.py doc/libxml2-api.xml
+ doc/devhelp/*: started work needed to generate devhelp content,
+ not too hard based on the existing format and extractor.
+
+Fri Sep 9 12:56:19 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixes bug #315617 when using push CDATA in some cases.
+
+Thu Sep 8 23:39:41 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: patch from Stéphane Bidoul to compile without schematron
+
+Wed Sep 7 00:16:27 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: patch from Oleg Paraschenko to fix xmlDebugDumpNode()
+ when handled a namespace node.
+
+Sun Sep 4 23:36:45 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS elfgcchack.h testapi.c doc/*: updated the docs and rebuild
+ releasing 2.6.21
+ * include/libxml/threads.h threads.c: removed xmlIsThreadsEnabled()
+ * threads.c include/libxml/threads.h xmllint.c: added the more
+ generic xmlHasFeature() as suggested by Bjorn Reese, xmllint uses it.
+
+Sun Sep 4 22:45:49 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/* configure.in: prepare for release
+ * xpath.c: work for #303289, fix a formatting bug for MIN_INT
+
+Sun Sep 4 15:48:57 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: real fix for #314881 and #314759 is was a bit more complex
+ than initially expected as ctxt->error == NULL had behaviour side
+ effects at the compilation level itself.
+
+Sun Sep 4 14:01:00 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c xpath.c include/libxml/pattern.h: fixing yet another
+ pattern induced XPath bug #314282
+ * relaxng.c: reverted back last change it was seriously broken
+
+Sat Sep 3 16:51:55 CEST 2005 Rob Richards <rrichards@ctindustries.net>
+
+ * xmlsave.c: check for NULL to prevent crash with meta elements
+
+Sat Sep 3 16:26:55 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: structured error reporting problem with Relax-NG
+ should fix #314881 and #314759
+
+Sat Sep 3 15:42:29 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c: fixes a portability problem raised by C370 on Z/OS
+
+Sat Sep 3 15:26:31 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c tree.c valid.c: fixing a number of issues raised by xml:id
+ but more generally related to attributes and ID handling, fixes
+ #314358 among other things
+
+Fri Sep 2 14:26:43 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c parserInternals.c: avoid passing a char[] as snprintf
+ first argument.
+ * threads.c include/libxml/threads.h: implemented xmlIsThreadsEnabled()
+ based on Andrew W. Nosenko idea.
+ * doc/* elfgcchack.h: regenerated the API
+
+Thu Sep 1 14:44:42 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: the use of AM_PATH_PYTHON is not portable enough
+ reverting back to AM_PATH_PROG
+
+Thu Sep 1 11:42:39 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: Applied the last patch from Gary Coady for #304637
+ changing the behaviour when text nodes are found in body
+ * result/HTML/*: this changes the output of some tests
+
+Thu Sep 1 11:22:37 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * doc/downloads.html doc/xml.html: adding reference to Bull AIX rpms
+ c.f. #160598
+
+Wed Aug 31 11:39:02 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xml2-config.in: removed the obsolete --libtool-libs option, c.f.
+ bug #314853
+
+Fri Aug 26 17:33:26 CEST 2005 Rob Richards <rrichards@ctindustries.net>
+
+ * xmlsave.c: move handling of meta element for http-equiv in XHTML docs
+ to serialization and no longer modify internal tree.
+
+Fri Aug 26 00:51:58 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: the profiling usually don't work, disabled
+ * doc/*: rebuilt
+
+Thu Aug 25 23:47:55 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: trying to fix the first part of #310033 by
+ detecting gcc <= 3.2
+
+Thu Aug 25 22:13:37 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * error.c: fixed bug #310033, the URI extraction code given a
+ node is a bit twisted and broke in the last months.
+
+Thu Aug 25 16:18:15 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c result/XPath/xptr/strrange2: uninitialized field and
+ fix on test.
+
+Thu Aug 25 16:03:05 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: change verbosity depending on API
+ * result/XPath/tests/* result/XPath/xptr/* result/xmlid/*: get back
+ to previous outputs
+
+Thu Aug 25 15:14:56 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c parser.c SAX2.c debugXML.c tree.c valid.c xmlreader.c
+ xmllint.c include/libxml/HTMLparser.h include/libxml/parser.h:
+ added a parser XML_PARSE_COMPACT option to allocate small
+ text nodes (less than 8 bytes on 32bits, less than 16bytes on 64bits)
+ directly within the node, various changes to cope with this.
+ * result/XPath/tests/* result/XPath/xptr/* result/xmlid/*: this
+ slightly change the output
+
+Thu Aug 25 12:16:26 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: patch from Andrew W. Nosenko, use se $GCC = 'yes'
+ instead of $CC = 'gcc' because GCC may have a different name
+
+Thu Aug 25 00:18:20 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: changes the way the python binary is found, should
+ also fix bug #308004
+
+Wed Aug 24 16:44:41 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: found another bug while looking at #309616 on missing
+ entities.
+ * result/ent2.sax* result/ent7.sax* result/xml2.sax*: this changed the
+ SAX stream in missing conditions for a few tests
+
+Wed Aug 24 16:19:00 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: applied the patch suggested #309565 which can avoid
+ looping in error conditions.
+
+Wed Aug 24 16:04:17 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c tree.c: line numbers are now carried by most nodes, fixing
+ xmlGetLineNo() c.f. bug #309205
+
+Wed Aug 24 14:43:34 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c error.c include/libxml/xmlerror.h: finally converted
+ the encoding module to the common error reporting mechanism
+ * doc/* doc/html/libxml-xmlerror.html: rebuilt
+
+Wed Aug 24 11:35:26 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: removed a potentially uninitialized variable error
+ * python/generator.py: fixed a deprecation warning
+ * python/tests/tstLastError.py: silent the damn test when Okay !
+
+Wed Aug 24 00:11:16 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c globals.c runtest.c testC14N.c testapi.c tree.c
+ include/libxml/SAX2.h include/libxml/xmlregexp.h: fixed compilation
+ when configured --without-sax1 and other cleanups fixes bug #172683
+ * doc/* elfgcchack.h: regenerated
+
+Tue Aug 23 20:05:05 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed bug #170489 reported by Jirka Kosek
+ * test/valid/objednavka.xml test/valid/dtds/objednavka.dtd
+ result/valid/objednavka*: added the test to the regression suite.
+
+Tue Aug 23 18:04:08 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c include/libxml/HTMLparser.h: added a recovery mode
+ for the HTML parser based on the suggestions of bug #169834 by
+ Paul Loberg
+
+Tue Aug 23 15:38:46 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * elfgcchack.h testapi.c doc/*: regenerated
+ * schematron.c: fixed a compilation problem
+ * xmlregexp.c include/libxml/xmlregexp.h: some cleanups and one bug fix
+ * result/expr/base: slightly changes the number of Cons.
+
+Mon Aug 22 23:19:50 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * elfgcchack.h testapi.c doc/*: rescanned code and rebuilt
+ * xmlregexp.c: small cleanup
+ * include/libxml/schematron.h include/libxml/xmlexports.h
+ include/libxml/xmlversion.h.in: cleanup problems from code scanner
+
+Mon Aug 22 18:00:18 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: applied patch from Kuba Nowakowski fixing bug
+ #313982
+ * result/schemas/bug313982* test/schemas/bug313982*: also added
+ the test case to the regression suite.
+
+Mon Aug 22 17:50:20 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * testRegexp.c: printed the wrong string
+
+Mon Aug 22 16:42:07 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * testRegexp.c xmlregexp.c include/libxml/xmlregexp.h: exported
+ xmlExpExpDerive(), added it to the testRegexp command line
+ tool when providing multiple expressions.
+
+Mon Aug 22 14:57:13 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am result/expr/base test/expr/base: added the first
+ regression test suite set for the new expression support
+
+Mon Aug 22 13:49:18 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixed an uninitialized variable
+ * xmlregexp.c include/libxml/xmlregexp.h: extended the API to
+ add the parser, serializer and some debugging
+ * include/libxml/xmlversion.h.in: made the new support compiled
+ by default if Schemas is included
+ * testRegexp.c: cleanup and integration of the first part of the
+ new code with a special switch
+ * xmllint.c: show up Expr in --version if compiled in
+ * include/libxml/tree.h: moved the xmlBuffer definition up
+
+Mon Aug 22 12:11:10 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Some preparation for the creation of a graph
+ of imported/included/redefined schemas; this is needed for
+ at least the redefinitions.
+ Centralized the creation of the parser context in one function.
+
+Mon Aug 22 02:19:33 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c include/libxml/xmlregexp.h: pushing the formal expression
+ handling code to have it in CVs from now. Not plugged, and misses
+ APIs it's not compiled in yet.
+
+Sat Aug 20 23:13:27 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: applied another patch from Rob Richards to fix
+ xmlTextReaderGetAttributeNs and xmlTextReaderMoveToAttributeNs
+
+Wed Aug 17 09:06:33 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: applied patch from Rob Richards to fix
+ xmlTextReaderGetAttribute behaviour with namespace declarations
+
+Fri Aug 12 14:12:56 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/xmlerror.h:
+ Changed output for keyref-match errors; the target-node will
+ be now reported rather than the scope-node of the keyref
+ definition - allowing easier chasing of instance errors.
+ This was reported by Guy Fabrice to the mailing list.
+ Some initial parsing code for schema redefinitions.
+ * result/schemas/bug303566_1_1.err
+ result/schemas/bug312957_1_0.err: Adapted test results due
+ to the keyref changes.
+
+Fri Aug 12 12:17:52 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: applied patch from Derek Poon fixing bug #310692
+
+Wed Aug 10 23:39:02 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fix for bug #312945 as pointed by Dean Hill, the
+ context type was not always properly initialized.
+
+Wed Aug 10 18:21:41 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed bug #307377 about validation of choices in
+ list values.
+ * test/relaxng/307377* result/relaxng/307377* Makefile.am runtest.c:
+ added examples to the regression tests, problem is that streaming
+ version gives slightly more informations.
+
+Wed Aug 10 15:25:53 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: fixed bug #302302, nasty but the fix is rather simple.
+
+Wed Aug 10 11:59:46 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * result/schemas/any6_1_0*: Added missing test results.
+
+Tue Aug 9 23:37:22 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: fixed a determinism detection problem exposed by
+ ##other tests commited by Kasimier, also added a small speedup
+ of determinism detection.
+ * test/results/any6_2_0* any8_1_0* any7_1_2* any7_2_2*: added
+ the results to the regression tests now
+
+Tue Aug 9 15:54:09 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/any7_2.xml test/schemas/any6_2.xsd
+ test/schemas/any8_1.xsd test/schemas/any8_0.xml:
+ Added some more tests for element wildcards.
+
+Tue Aug 9 14:22:47 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed #312957 reported by Carol Hunter:
+ streaming XPath states were not popped in every case,
+ thus failed to resolve correctly for subsequent input.
+ * test/schemas/bug312957* result/schemas/bug312957*:
+ Added the test submitted by Carol Hunter.
+
+Tue Aug 9 13:07:27 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c xmlschemas.c: trying to nail down the remaining
+ ##other issues
+ * result/schemas/any7* test/schemas/any7: completed the tests
+ and added the results
+ * result/schemas/any3_0_0.err result/schemas/any5_0_0.err
+ result/schemas/any5_1_0.err: this slightly chnages the output
+ from 3 existing tests
+
+Mon Aug 8 22:33:08 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c nanohttp.c xmlschemastypes.c: applied patch from
+ Marcus Boerger to remove warnings on Windows.
+
+Mon Aug 8 16:43:04 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c include/libxml/xmlsave.h: fixed #145092 by adding
+ an xmlSaveOption to omit XML declaration
+
+Mon Aug 8 15:44:54 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: fixed bug #310333 with a patch close to the provided
+ patch for HTML UTF-8 serialization
+ * result/HTML/script2.html: this changed the output of that test
+
+Mon Aug 8 15:01:51 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: fixed bug #310264, basically it's about reentrancy
+ of count based transition, when going though the counter must
+ be reset to 0
+ * test/schemas/bug310264* result/schemas/bug310264*: added the
+ regression test.
+
+Mon Aug 8 14:40:52 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed a memory leak: xmlSchemaFreeAnnot() was
+ only freeing the first annotation in the list.
+
+Mon Aug 8 09:44:34 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: applied patch from Rob Richards fixing
+ xmlTextReaderGetAttribute
+
+Mon Aug 8 01:41:53 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixed an uninitialized memory access spotted by
+ valgrind
+
+Sun Aug 7 12:39:35 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * test/relaxng/docbook_0.xml: get rid of the dependancy on a locally
+ installed DTD
+ * uri.c include/libxml/uri.h xmlIO.c nanoftp.c nanohttp.c: try to
+ cleanup the Path/URI conversion mess, needed fixing in various
+ layers and a new API to the uri module which also fixes #306861
+ * runtest.c: integrated a regression test specific to check the
+ URI conversions done before calling the I/O handlers.
+
+Sat Aug 6 11:06:24 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * doc/XSLT.html doc/xml.html: small doc fix for #312647
+
+Tue Aug 2 13:26:42 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * win32/configure.js: applied patch from Rob Richards to allow
+ disabling modules in win32, fixes #304071
+
+Mon Aug 1 07:18:53 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: applied fix from Jakub Piotr Clapa for
+ xmlAttr.parent(), closing #312181
+
+Sun Jul 31 18:48:55 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * schematron.c: report improvement
+ * test/schematron/zvon* result/schematron/zvon*: more tests
+
+Sun Jul 31 16:02:59 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * win32/Makefile.msvc win32/configure.js: applied patch from Rob
+ Richards to add schematron to the build on Windows
+ * test/schematron/zvon3* result/schematron/zvon3*: second test
+ * test/schematron/zvon10* result/schematron/zvon10*: this is the
+ real second test 10 and 2 are swapped.
+
+Sun Jul 31 15:42:31 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * schematron.c: more bug fixes, improve the error reporting.
+ * test/schematron/zvon2* result/schematron/zvon2*: second test
+
+Sun Jul 31 14:15:31 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * schematron.c xmllint.c: fixing the loop bug, fixing schematron
+ text error rendering
+ * Makefile.am result/schematron/* test/schematron/zvon1*.sct:
+ started integrating within "make tests"
+
+Sat Jul 30 17:26:58 EDT 2005 Daniel Veillard <daniel@veillard.com>
+
+ * test/schematron/*: a few first tests from Zvon unfortunately
+ with the old syntax
+
+Sat Jul 30 17:08:07 EDT 2005 Daniel Veillard <daniel@veillard.com>
+
+ * schematron.c xmllint.c include/libxml/schematron.h: commiting
+ work done on the plane last week-end
+
+Sat Jul 30 15:16:29 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: allows an extra argument to subset the tests
+ * xmlregexp.c: big speedup for validation, basically avoided
+ transition creation explosion when removing epsilon transition
+
+Sat Jul 30 00:00:46 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am globals.c parserInternals.c xmlreader.c xmlunicode.c
+ xmlwriter.c: more cleanups based on sparse reports, added
+ "make sparse"
+
+Fri Jul 29 12:11:25 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: don't output any message on failed resolver lookups,
+ better done by the python user provided resolver layer.
+
+Fri Jul 29 01:48:02 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c SAX2.c encoding.c globals.c parser.c relaxng.c
+ runsuite.c runtest.c schematron.c testHTML.c testReader.c
+ testRegexp.c testSAX.c testThreads.c valid.c xinclude.c xmlIO.c
+ xmllint.c xmlmodule.c xmlschemas.c xpath.c xpointer.c: a lot of
+ small cleanups based on Linus' sparse check output.
+
+Thu Jul 28 21:28:33 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/Makefile.am: added schematron.h, oops ...
+
+Thu Jul 28 02:38:21 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Added creation of the content type of
+ xs:anyType. This is needed when trying to extend xs:anyType
+ (although it makes no sense to extend it; IMHO the schema
+ people should have ruled this out). This was reported
+ by Yong Chen to the mailing list.
+ * xmlschemas.c: Fixed handling of xs:anyType in
+ xmlSchemaCheckCOSCTExtends() (reported by Young Chen). Tiny
+ adjustment to an error report output.
+ * test/schemas/extension2* result/schemas/extension2*:
+ Added a test case provided by Young Chen.
+
+Mon Jul 25 11:41:18 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * uri.c: enhanced xmlBuildRelativeURI to allow the URI and the
+ base to be in "relative" form
+
+Sun Jul 24 10:25:41 EDT 2005 Daniel Veillard <daniel@veillard.com>
+
+ * schematron.c xmllint.c: started adding schematron to the xmllint
+ tool, the report infrastructure is gonna be fun.
+
+Sat Jul 23 23:23:51 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/any6* test/schemas/any7*: Added regression tests
+ (they fail currently), but did not added results yet.
+
+Sat Jul 23 23:07:05 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Removed the workaround code in
+ xmlSchemaValidateElemWildcard() for the <any> wildcard
+ with namespace == ##other. Support for such wildcards was
+ implemented by Daniel at the automaton level recently, and
+ the workaround code iterfered with it.
+
+Sat Jul 23 10:55:50 EDT 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c include/libxml/pattern.h: changed xmlPatterncompile
+ signature to pass an int and not an enum since it can generate
+ ABI compat troubles.
+ * include/libxml/schematron.h schematron.c: adding the new
+ schematron code, work in progress lots to be left and needing
+ testing
+ * include/libxml/xmlversion.h.in include/libxml/xmlwin32version.h.in
+ Makefile.am configure.in: integration of schematron into the
+ build
+ * xpath.c include/libxml/xpath.h: adding flags to control compilation
+ options right now just XML_XPATH_CHECKNS.
+
+Sat Jul 23 16:39:35 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Removed an "internal error" message from
+ xmlSchemaBuildAContentModel() when an empty model group
+ definition is hit.
+
+Sat Jul 23 00:34:07 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * pattern.c: Changed xmlCompileStepPattern() and
+ xmlCompileAttributeTest() to handle the "xml" prefix without
+ caring if the XML namespace was supplied by the user.
+
+Fri Jul 22 00:08:43 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed xmlSchemaPSimpleTypeErr(), which did not
+ output the given string arguments correctly.
+
+Thu Jul 21 09:21:00 EDT 2005 Daniel Veillard <daniel@veillard.com>
+
+ * error.c globals.c parser.c runtest.c testHTML.c testSAX.c
+ threads.c valid.c xmllint.c xmlreader.c xmlschemas.c xmlstring.c
+ xmlwriter.c include/libxml/parser.h include/libxml/relaxng.h
+ include/libxml/valid.h include/libxml/xmlIO.h
+ include/libxml/xmlerror.h include/libxml/xmlexports.h
+ include/libxml/xmlschemas.h: applied a patch from Marcus Boerger
+ to fix problems with calling conventions on Windows this should
+ fix #309757
+
+Wed Jul 20 14:45:39 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: an optimization of the char data inner loop,
+ can gain up to 10% in pure SAX2 parsing speed
+ * xmlschemas.c: applied patch from Kupriyanov Anatolij fixing
+ a bug in XML Schemas facet comparison #310893
+
+Tue Jul 19 17:27:26 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c xmlschemas.c: fixed the error reporting for
+ not transitions
+ * result/schemas/any5_0_0* result/schemas/any5_0_2*
+ result/schemas/any5_1_0*: fixed output
+
+Tue Jul 19 15:34:12 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c xmlschemas.c include/libxml/xmlautomata.h: fixing
+ bug #172215 about foreign namespaces by adding support for
+ negated string transitions. Error messages still need to be
+ improved.
+ * test/schemas/any5* result/schemas/any5*: adding regression
+ tests for this.
+
+Tue Jul 19 12:33:31 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied patch from Alexander Pohoyda fixing xmlGetNodePath
+ on namespaced attributes #310417.
+
+Mon Jul 18 23:01:15 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmllint.1 doc/xmllint.html doc/xmllint.xml: --nonet was
+ ducplicated
+
+Mon Jul 18 20:49:28 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed xsd:all when used in conjunction with
+ substitution groups
+ * test/schemas/allsg_* result/schemas/allsg_*: adding specific
+ regression tests, strangely missing from NIST/Sun/Microsoft
+ testsuites
+
+Sun Jul 17 07:11:27 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed bug #307508, a bad automata was built but
+ this showed as an indeterminist result
+
+Thu Jul 14 17:53:02 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: found the last bug raised by NIST tests in
+ comparing base64 strings, result from runsuite:
+ ## NIST test suite for Schemas version NIST2004-01-14
+ Ran 23170 tests (3953 schemata), no errors
+
+Thu Jul 14 14:57:36 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * testRegexp.c: fixed where xmlMemoryDump() should be called.
+ * xmlregexp.c: fixed handling of {0}, \n, \r and \t, two bugs
+ affecting NIST regression tests
+
+Thu Jul 14 11:30:24 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: applied a patch from Gerrit P. Haase to add
+ module support on cygwin
+
+Thu Jul 14 10:56:42 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixed a potential buffer overrun error introduced
+ on last commit to htmlParseScript() c.f. #310229
+
+Thu Jul 14 23:48:17 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: Changed the behaviour of xmlXPathEqualNodeSetFloat to
+ return TRUE if a nodeset with a numeric value of NaN is compared
+ for inequality with any numeric value (bug 309914).
+
+Thu Jul 14 01:03:03 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * error.c relaxng.c xmlreader.c xmlschemas.c include/libxml/relaxng.h
+ include/libxml/xmlschemas.h: applied patch from Marcus Boerger
+ to route relaxng and schemas error messages when using the reader
+ through the structured interface if activated.
+ * elfgcchack.h doc/* testapi.c: rebuilt since this add new APIs
+ to test.
+
+Wed Jul 13 18:35:47 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied UTF-8 script parsing bug #310229 fix from
+ Jiri Netolicky
+ * result/HTML/script2.html* test/HTML/script2.html: added the test
+ case from the regression suite
+
+Tue Jul 12 17:08:11 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * nanohttp.c: fixed bug #310105 with http_proxy environments with
+ patch provided by Peter Breitenlohner
+
+Mon Jul 11 00:28:10 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am NEWS configure.in doc/*: preparing release 2.6.20
+ * xmllint.c: removed a compilation problem
+
+Sun Jul 10 23:33:41 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xstc/Makefile.am README README.tests Makefile.tests Makefile.am:
+ preparing to make testsuite releases along with code source releases
+ * gentest.py testapi.c: fixed a couple of problem introduced by
+ the new Schemas support for Readers
+ * xpath.c: fixed the XPath attribute:: bug #309580, #309864 in a crude
+ but simple way.
+ * xmlschemas.c include/libxml/tree.h: fixed a couple of problems
+ raised by the doc builder.
+ * doc/*: made rebuild
+
+Sun Jul 10 21:51:16 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed a bug introduced on last commit
+
+Sun Jul 10 21:00:54 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmllint.1 doc/xmllint.html doc/xmllint.xml: fixed a typo
+ pointed by Jeroen Ruigrok
+ * include/libxml/xmlreader.h include/libxml/xmlschemas.h: increased
+ the APIs for xmlReader schemas validation support
+ * xmllint.c xmlreader.c xmlschemas.c: xmlReader schemas validation
+ implementation and testing as xmllint --stream --schema ...
+
+Sun Jul 10 16:11:26 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlwin32version.h.in: try to avoid conflicts.
+
+Sat Jul 9 19:29:10 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix for #309761 from Dylan Shell
+ * xmlschemas.c include/libxml/xmlschemas.h: added xmlSchemaSAXPlug
+ and xmlSchemaSAXUnplug generic APIs for SAX Schemas validation.
+ * xmllint.c: couple of fixes plus added descriptions for --sax and
+ --sax1
+
+Fri Jul 8 23:35:00 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Added c-props-correct constraint to check
+ for equal cardinality of keyref/key.
+ * include/libxml/xmlerror.h: Added an error code.
+
+Fri Jul 8 21:56:04 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * pattern.c: Fixed evaluation of attributes. Actually only
+ attribute at the first level were evaluated (e.g. "@attr");
+ expression like "foo/@attr" always failed.
+
+Fri Jul 8 20:04:29 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: tiny fix in xmlSchemaValidateStream() if a
+ user-provided SAX handler is given.
+
+Fri Jul 8 19:25:26 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix some potential leaks in error cases.
+ * xmllint.c: added --sax, to allow testing of --schemas --sax and
+ various other combinations.
+ * xmlschemas.c: fix a couple of tiny problems in
+ xmlSchemaValidateStream()
+
+Fri Jul 8 18:34:22 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Changed xmlSchemaValidateFile() to use
+ xmlSchemaValidateStream() internally.
+
+Fri Jul 8 17:02:14 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * test/relaxng/docbook_0.xml: added the missing entity to the
+ document internal subset to avoid errors if the DocBook catalogs
+ are not there
+ * xmlschemas.c: first cut at implementing xmlSchemaValidateStream()
+ untested yet
+
+Wed Jul 6 15:45:48 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: fixed problem with free on dupl attribute in
+ dtd (bug309637).
+ * test/errors/attr3.xml, result/errors/attr3.*: added
+ regression test for this
+
+Wed Jul 6 13:11:35 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * win32/Makefile.msvc: try again to fix file format for Windows
+
+Wed Jul 6 12:20:13 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * win32/Makefile.msvc: removed spurious ^M
+ * runtest.c: added check for option O_BINARY
+ * test/schemas/bug309338*, result/schemas/bug309338*: changed
+ sticky tag to 'binary'
+
+Wed Jul 6 10:38:02 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * debugXML.c: excluded content string check for XML_ELEMENT_DECL
+ in xmlCtxtGenericNodeCheck
+ * runtest.c: changed "open" calls to include O_BINARY for Windows
+
+Wed Jul 6 17:14:03 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixing bug #166777 (and #169838), it was an heuristic
+ in areBlanks which failed.
+ * result/winblanks.xml* result/noent/winblanks.xml test/winblanks.xml:
+ added the input file to the regression tests
+
+Wed Jul 6 13:40:22 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Fixed bug #309338, reported by Kupriyanov
+ Anotolij.
+ * test/schemas/bug309338* result/schemas/bug309338*:
+ Added a regression test for the above bug.
+
+Tue Jul 5 16:03:05 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: first steps toward a testsuite dist
+ * SAX2.c include/libxml/xmlerror.h: fixed bug #307870
+
+Tue Jul 5 12:38:36 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * runsuite.c runtest.c: Tiny portability adjustment for win.
+ * win32/Makefile.*: Added runtest.exe and runsuite.exe to
+ be created.
+
+Mon Jul 4 17:44:26 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runsuite.c: first stb at unimplemnted detection
+ * runtest.c: fixing Windows code
+
+Mon Jul 4 17:19:31 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runsuite.c: fix on schemas error
+ * runtest.c: portability glob() on Windows
+
+Mon Jul 4 16:23:54 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runsuite.c runtest.c: cleanups, logfile and portability
+ * xmllint.c: fixed a memory leak
+
+Mon Jul 4 13:11:12 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed a bug failing to detect UTF-8 violations in
+ CData in push mode.
+ * result/errors/cdata.xml* test/errors/cdata.xml: added the test
+ to the regressions
+
+Mon Jul 4 11:26:57 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: added enhancement for #309057 in xmllint shell
+
+Mon Jul 4 00:58:44 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied patch from James Bursa fixing an html parsing
+ bug in push mode
+ * result/HTML/repeat.html* test/HTML/repeat.html: added the test to the
+ regression suite
+
+Sun Jul 3 23:42:31 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * testapi.c tree.c: fixing a leak detected by testapi in
+ xmlDOMWrapAdoptNode, and fixing another side effect in testapi
+ seems to pass tests fine now.
+ * include/libxml/parser.h parser.c: xmlStopParser() is no more limited
+ to push mode
+ * error.c: remove a warning
+ * runtest.c xmllint.c: avoid compilation errors if only some parts
+ of the library are compiled in.
+
+Mon Jul 4 00:39:35 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: fix a problem with previous patch to
+ testapi.c
+
+Sun Jul 3 22:59:28 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runsuite.c runtest.c tree.c: fixing compilations when
+ disabling parts of the library at configure time.
+
+Sun Jul 3 18:17:58 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: fix bug raised by zamez on IRC
+ * testapi.c: regenerated, seems to pop-up leaks in new tree functions
+ * tree.c: added comments missing.
+ * doc/*: regenerated
+
+Sun Jul 3 18:06:55 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * testapi.c runsuite.c runtest.c: fixing #307823 and a couple of
+ assorted bugs
+ * python/generator.py python/libxml2-python-api.xml: fixed
+ conditionals in generator too
+ * doc/apibuild.py doc/libxml2-api.xml doc/* elfgcchack.h: some
+ cleanups too and rebuilt
+
+Sun Jul 3 16:42:00 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: fixed bug #307503 misplaced #ifdef
+
+Sun Jul 3 16:34:47 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runsuite.c: expanded test
+ * xmlregexp.c: found and fixed the leak exposed by Microsoft regtests
+
+Sat Jul 2 23:38:24 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runsuite.c: a bit of progresses on xstc
+
+Sat Jul 2 09:30:13 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runsuite.c: completed the simple checks for Relax-NG suites
+ back to the same 11 errors as in the Python runs.
+
+Thu Jun 30 15:01:52 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: complete, checking on other platforms is needed
+ * README: updated
+ * debugXML.c: fix a bug raised by bill on IRC
+ * relaxng.c: fix a leak in weird circumstances
+ * runsuite.c Makefile.am: standalone test tool against
+ the regression suites, work in progress
+
+Tue Jun 28 08:30:26 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: adding URI tests
+
+Mon Jun 27 23:55:56 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: adding xml:id
+
+Mon Jun 27 23:29:36 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: finishing XPath, adding XPointer
+
+Mon Jun 27 17:39:27 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: adding more coverage, XInclude and starting XPath
+
+Mon Jun 27 17:02:14 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c include/libxml/tree.h: Added allocation/deallocation
+ functions for the DOM-wrapper context.
+
+Mon Jun 27 15:41:30 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c: Commented the new functions to be experimental.
+
+Mon Jun 27 14:41:14 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * error.c valid.c: working some weird error reporting problem for
+ DTD validation.
+ * runtest.c: augmented with DTD validation tests
+ * result/VC/OneID*: slight change in validation output.
+
+Mon Jun 27 13:44:41 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: added most HTML tests
+
+Mon Jun 27 14:06:10 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/namespaces/reconcile/tests.xml
+ test/namespaces/reconcile/tests-to-c.xsl: Added initial tests
+ for some new DOM-wrapper helping functions.
+
+Mon Jun 27 14:01:06 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xstc/xstc-to-python.xsl: Cleanup.
+ * xstc/sun-test-def.xml xstc/nist-test-def.xml xstc/ms-test-def.xml:
+ Removed, those are not needed anymore due to the new test suite.
+
+Mon Jun 27 11:39:50 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * result/*.sax2 MAkefile.am: added SAXv2 regression tests apparently
+ missing.
+ * runtest.c: added SAX1/SAX2 checks.
+
+Mon Jun 27 12:24:54 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c include/libxml/tree.h: Added
+ xmlDOMWrapReconcileNamespaces(), xmlDOMWrapAdoptNode() and
+ xmlDOMWrapRemoveNode() to the API. These are functions intended
+ to be used with DOM-wrappers.
+
+Mon Jun 27 10:14:57 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: continue to increase the tests
+
+Mon Jun 27 09:21:49 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: continue to increase the tests
+
+Mon Jun 27 01:01:32 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * runtest.c: continue to increase the tests
+
+Sun Jun 26 20:08:24 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/valid.h valid.c: avoid name glob in agruments as
+ it matches the glob() routine.
+ * runtest.c Makefile.am: first steps toward a C regression test
+ framework.
+
+Sat Jun 25 01:37:22 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * configure.in: fixed a problem with the detection of
+ ss_family for ipV6, as reported on the mailing list by
+ Doug Orleans.
+
+Tue Jun 21 10:44:34 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/empty-value* result/schemas/empty-value*:
+ Added regression tests (from Dhyanesh).
+
+Tue Jun 21 10:35:43 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed NULL values to be validated as empty
+ string values (reported by Dhyanesh to the mailing list).
+ Adjusted text concatenation of mixed content.
+
+Mon Jun 20 18:11:32 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c valid.c: applied patch from Rob Richards for removal
+ of ID (and xml:id)
+ * xmlreader.c: applied patch from James Wert implementing
+ xmlTextReaderReadInnerXml and xmlTextReaderReadOuterXml
+
+Thu Jun 16 14:38:22 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed SAX2 validation: grow of internal
+ namespace list, appending of element character content.
+ * xstc/xstc.py: Added "--sax" option for SAX2 validation.
+
+Wed Jun 15 15:34:52 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Added missing function descriptions.
+
+Wed Jun 15 15:26:14 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: if sax1 is used and input is a file use the old
+ API xmlParseFile()
+ * xmlschemas.c: cleanups
+ * doc/* testapi.c elfgcchack.h: rebuilt to add python bindings
+ for the new functions in Schemas.
+
+Wed Jun 15 14:50:48 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/xmlschemas.h: Added
+ xmlSchemaValidateFile() to the public API. This will use
+ SAX2-driven validation.
+
+Wed Jun 15 11:11:38 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * result/schemas/bug306806_1_0 result/schemas/bug306806_1_0.err:
+ Added schema test results (Tom Browder, bug #306806).
+
+Wed Jun 15 11:08:34 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/bug306806_1.xsd test/schemas/bug306806_0.xml:
+ Added schema tests submitted by Tom Browder (bug #306806).
+
+Tue Jun 14 15:03:22 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * pattern.c: adjusted last change to xmlCompilePathPattern,
+ fixed one compilation warning
+
+Tue Jun 14 21:19:16 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * pattern.c: Some changes/fixes to the streaming evaluation.
+ * xmlschemas.c: A bit of support for parsing the schema for
+ schema. Fixed attribute derivation when the use is
+ "prohibited" and was "optional". Fixed an attribute construction
+ bug, a left-over from the time, where <complexContent>,
+ <extension>, etc. where created as structs.
+
+Tue Jun 14 12:35:12 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * libxml-2.0.pc.in: removed a redundant include path
+
+Mon Jun 13 14:58:33 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xstc/Makefile.am: Some more adjustments.
+
+Mon Jun 13 14:35:59 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xstc/Makefile.am: Changed test extraction process, since some
+ boxes don't know about "tar --strip-path".
+
+Mon Jun 13 13:39:43 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed a bug exposed by Rob Richards in the mailing-list
+ * result//compare0* test//compare0*: added the regression test in
+ the suite as this went unnoticed !
+
+Wed Jun 9 11:07:42 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * pattern.c, xpath.c, include/libxml/pattern.h: Further
+ enhancement for XPath streaming, consolidated with
+ schemas usage of pattern.c. Added a new enum
+ xmlPatternFlags.
+ * doc/*, testapi.c, elfgcchack.h: updated to reflect new
+ enum.
+ * test/XPath/tests/mixedpat, test/XPath/docs/mixed,
+ result/XPath/mixedpat: added regression test for problems
+ reported in bug306348
+
+Thu Jun 9 16:51:31 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Changed non-prefixed QNames to be bound to a
+ default namespace if existent.
+
+Thu Jun 9 15:11:38 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Fixed a bug which I invented: hexBinary's string
+ values were not duplicated corrently when creating a computed value
+ in xmlSchemaValAtomicType.
+
+Thu Jun 9 13:20:57 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c result/schemas/include1_0_0.err:
+ Fixed an attribute fixed/default value constraint error.
+
+Thu Jun 9 12:51:23 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * result/schemas/*: Adapted regression test results.
+
+Thu Jun 9 12:22:45 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c xmlschemastypes.c include/libxml/schemasInternals.h
+ include/libxml/xmlschemastypes.h: Changed the validation process
+ to be able to work in streaming mode. Some datatype fixes,
+ especially for list and union types. Due to the changes the
+ error report output has changed in most cases. Initial migration to
+ functions usable by both, the parser and the validator. This should
+ ease a yet-to-come XS construction API in the long term as well.
+
+Thu Jun 9 10:16:11 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied patch from Malcolm Rowe to avoid namespace
+ troubles on rollback parsing of elements start #304761
+ * test/nsclean.xml result/noent/nsclean.xml result/nsclean.xml*:
+ added it to the regression tests.
+
+Thu Jun 9 00:33:50 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/xmlerror.h: applied patch from Rob Richards
+ for xml:space and xml:lang handling with SAX2 api.
+
+Wed Jun 8 19:41:38 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c: applied patch from Morten Welinder, closing bug #306901
+ on compiling subsets of the library
+
+Wed Jun 8 19:11:42 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xstc/Makefile.am xstc.py xstc-to-python.xsl: Adapted the
+ XS tests to use the new release of tests and test-definitions.
+
+2005-06-07 Aleksey Sanin <aleksey@aleksey.com>
+
+ * c14n.c: fix rendering of attributes when parent node
+ is not in the node set
+
+2005-06-06 Aleksey Sanin <aleksey@aleksey.com>
+
+ * c14n.c: fixed xml attributes processing bug in exc c14n
+ * xmllint.c: added --exc-c14n command line option
+
+Mon Jun 6 06:43:33 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c, pattern.c: Enhanced xmlXPathRunStreamEval, fixed
+ handling of depth/level for cases like union operator
+ (bug #306348 reported by Bob Stayton). Also enhanced
+ several comments throughout pattern.c.
+ * doc/apibuild.py: fixed problem in handling of
+ 'signed' declaration. Rebuilt the docs.
+
+Tue May 31 20:35:27 PDT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: Enhanced handling of xml:base for included
+ elements, fixing bugs 169209 and 302353.
+
+Wed May 25 18:59:53 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed facet errors to be channelled back for
+ union type members; facet-validation will stop now on the
+ first error. Reported by GUY Fabrice to the mailing-list.
+ * xmlschemastypes.c: Changed to ignore lengh-related facet
+ validation for QNames and NOTATIONs as proposed by the
+ schema people.
+ * test/schemas/union2* result/schemas/union2*: Added
+ regression tests for union types (by GUY Fabrice).
+
+Fri May 20 20:48:08 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: applied patch from Mark Vakoc fixing saving of
+ CDATA with NULL content.
+
+Thu May 12 15:14:26 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Changed the VALID_TZO macro to restrict
+ the timezone to -840 to 840.
+
+Thu May 12 15:05:11 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Applied patch from Steve Nairn (bug #303670)
+ for "signed int" of the date-time timezone field. Silenced
+ a warning.
+
+Wed May 11 20:04:09 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied patch for replaceNode from Brent Hendricks
+
+Tue May 10 17:27:52 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed bug #303682 of a leak reported by Malcolm Rowe
+
+Tue May 10 11:50:16 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * testapi.c: applied patch from Steve Nairn tof fix the compilation
+ problem exposed in bug #303640
+
+Tue May 10 11:11:26 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/bug303566_1* result/schemas/bug303566_1_1*:
+ Added regression a test provided by Heiko Oberdiek (bug #303566).
+
+Mon May 9 17:56:58 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * pattern.c: Changed the XPath "." to resolve only on the first
+ level for XML Schema IDCs (bug #303566 reported by Heiko Oberdiek).
+ This should not affect pattern-like resolution on every level.
+
+Sun May 8 13:35:39 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c: fixed #169630 segfault in xmlMemDisplay
+
+Fri May 6 13:40:03 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c: fixing bug #303068 increasing the nanoftp buffer.
+ * doc/apibuild.py: fixed __attribute() parsing problem
+ * doc/* testapi.c: regenerated the descriptions and docs.
+
+Wed May 4 11:16:00 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in threads.c: on linux/gcc use weak definitions
+ to avoid linking with pthread library on non-threaded environments.
+ * xpath.c: applied patch from Mark Vakoc w.r.t. a buggy namespace
+ list allocation.
+
+Fri Apr 29 11:27:37 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * parser.c: Fixed a test for duplicate attributes: Non-prefixed
+ attributes were treated as being bound to the default namespace.
+
+Tue Apr 19 17:51:32 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Fixed date-time related validation
+ (reported by David Crossley, bug #300576).
+
+Tue Apr 19 16:55:40 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c xmlregexp.c: Removed 5 unnecessary
+ dereferences (reported by Andriy, bug #301074).
+
+Tue Apr 19 22:33:18 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: Added some code to avoid integer overflow for
+ ceil, floor and round functions (bug 301162)
+
+Tue Apr 19 13:21:54 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Removed workaround for bug #172215, since it
+ does more harm in some scenarios. Added some of the
+ "Particle Restriction OK" constraints - not yet enabled.
+
+Mon Apr 18 13:02:55 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * result/schemas/changelog093*: Added test results.
+
+Mon Apr 18 12:42:14 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Added output of canonical values in
+ identity-constraint error messages.
+ * xmlschemastypes.c include/libxml/xmlschemastypes.h:
+ Added xmlSchemaGetCanonValueWhtsp() to the API.
+ Further enhancement of the canonical value
+ conversion.
+ * test/schemas/changelog093_0.*: Added test with an XSD
+ submitted by Randy J. Ray.
+
+Fri Apr 15 09:33:21 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * valid.c: Applied Daniel's fix for memory leak in dtd
+ prefix (bug 300550).
+ * xpath.c: minor change to comment only
+
+Thu Apr 14 20:52:41 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c: added the call to the breakpoint routine
+ when a monitored block is reallocated or freed
+
+Wed Apr 13 05:55:51 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * nanohttp.c: applied patch from Aron Stansvik for bug #172525
+ about HTTP query string parameter being lost
+
+Tue Apr 12 04:03:32 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c python/libxml.py: applied patch from Brent Hendricks
+ adding namespace removal at the python level #300209
+ * python/tests/Makefile.am python/tests/nsdel.py: added the regression
+ test
+
+Sun Apr 10 09:03:22 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed several places where memory cleanup was not
+ properly done after an error was detected (problem was
+ reported on the mailing list by Pawel Palucha)
+
+Fri Apr 8 21:58:04 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Added substitution group constraints; changed
+ the build of the pre-computed substitution groups. Channeled
+ errors during xsi assembling of schemas to the validation
+ context. Fixed a big memory leak, which occurred when using
+ IDCs: the precomputed value of attributes was not freed if
+ the attribute did not resolve to an IDC field (discovered
+ with the help of Randy J. Ray's schema, posted to the
+ xmlschema-dev maling list).
+
+Fri Apr 8 13:22:01 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Added "Particle correct 2" to parsing of model groups.
+ Added handling substitution groups inside <choice> and <sequence>;
+ for <all> this is not supported yet. Changed circular checks for
+ model groups definitions. "memberTypes" are processed at different
+ levels now: component resolution first, construction later; this
+ goes hand in hand with a global change to handle component
+ resolution in a distinct phase. Fixed invalid default values for
+ elements to mark the schema as invalid; this just resulted in an
+ error report previously, but the schema was handled as valid.
+ Separated the assignment of the model groups to referencing
+ model group definition references (i.e. particles); this was
+ needed to perform the circularity check for model group definitions.
+ Added "Element Declaration Properties Correct (e-props-correct)"
+ constraints. Separated component resolution for simple/complex
+ types.
+ * include/libxml/schemasInternals.h: Added a flag for substitution
+ group heads.
+
+Wed Apr 6 23:14:03 CEST 2005 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/Makefile.*: make install cleanup
+
+Wed Apr 6 22:42:23 CEST 2005 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/Makefile.mingw: fixed mingw compilation
+ * testModule.c: removed mingw warnings
+
+Wed Apr 6 21:59:11 CEST 2005 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * .cvsignore: added Eclipse project files to ignore list
+
+Wed Apr 6 16:08:10 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed the bug in lang() as raised by Elliotte Rusty Harold
+ * result/XPath/tests/langsimple test/XPath/tests/langsimple
+ test/XPath/docs/lang: added a regression test
+
+Tue Apr 5 23:48:35 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c: applied fix from Rob Richards to compile on Windows.
+
+Tue Apr 5 17:02:58 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Added "Type Derivation OK (Complex)" constraints
+ and anchored them in the "Element Locally Valid (Element)"
+ constraints. This restricts the type substitution via "xsi:type".
+
+Tue Apr 5 13:10:06 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: patch from Matthew Burgess to improve some schemas
+ facets validation messages.
+
+Sat Apr 2 12:48:41 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * doc/* configure.in NEWS: preparing release 2.6.19, updated docs and
+ rebuilding.
+
+Sat Apr 2 13:27:32 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xstc/Makefile.am: integrated fixup-tests.py
+
+Fri Apr 1 19:14:18 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: fixed a lack of comment and missing test for
+ a pointer in the API.
+
+Fri Apr 1 17:54:22 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xstc/fixup-tests.py: A tiny script to fixup some of the schema
+ files used for the tests.
+
+Fri Apr 1 17:33:50 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/schemasInternals.h
+ result/schemas/src-element2-*.err result/schemas/element-*.err:
+ Committing again, since the CVS server aborted.
+
+Fri Apr 1 15:29:27 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Corrected 'length' facet validation for
+ QNames and notations. Corrected xmlSchemaGetCanonValue: some
+ data types did not return a value if already in normalized
+ form.
+ * xmlschemas.c include/libxml/schemasInternals.h:
+ Eliminated creation of structs for <restriction>, <extension>,
+ <simpleContent>, <complexContent>, <list> and <union>: the
+ information is now set directly on the corresponding simple/
+ complex type. Added some more complex type constraints.
+ Added facet derivation constraints. Introduced "particle"
+ components, which seem to be really needed if applying
+ constraints. Corrected/change some of the parsing functions.
+ This is all a bit scary, since a significant change to the code.
+ * result/schemas/src-element2-*.err result/schemas/element-*.err:
+ Adapted regression test results.
+
+Fri Apr 1 16:07:59 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * doc/apibuild.py doc/elfgcchack.xsl: revamped the elfgcchack.h
+ format to cope with gcc4 change of aliasing allowed scopes, had
+ to add extra informations to doc/libxml2-api.xml to separate
+ the header from the c module source.
+ * *.c: updated all c library files to add a #define bottom_xxx
+ and reimport elfgcchack.h thereafter, and a bit of cleanups.
+ * doc//* testapi.c: regenerated when rebuilding the API
+
+Thu Mar 31 17:20:32 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: fixed bug reported by Petr Pajas, in the absence of
+ encoding UTF-8 should really be assumed. This may break if
+ the HTTP headers indicates for example ISO-8859-1 since this
+ then becomes a well formedness error.
+
+Thu Mar 31 16:57:18 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: fixed #172260 redundant assignment.
+ * parser.c include/libxml/parser.h: fixed xmlSAXParseDoc() and
+ xmlParseDoc() signatures #172257.
+
+Thu Mar 31 16:11:10 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix potential crash if ctxt->sax->ignorableWhitespace
+ is NULL as reported by bug #172255
+
+Thu Mar 31 15:36:52 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed a problem in Relax-NG validation #159968
+ * test/relaxng/list.* result/relaxng/list_*: added the test
+ to the regression suite
+
+Thu Mar 31 13:06:02 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: fixed bug #168504
+
+Thu Mar 31 12:22:54 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * config.h.in configure.in nanoftp.c nanohttp.c xmllint.c
+ macos/src/config-mac.h: use XML_SOCKLEN_T instead of SOCKLEN_T
+ since apparently IBM can't avoid breaking common defines #166922
+
+Thu Mar 31 10:41:45 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: fix unitinialized variable in not frequently used
+ code bug #172182
+
+Thu Mar 31 00:45:18 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.py: another patch from Brent
+ Hendricks to add new handlers with the various validity contexts
+ * python/tests/Makefile.am python/tests/validDTD.py
+ python/tests/validRNG.py python/tests/validSchemas.py: also
+ added the regression tests he provided
+
+Wed Mar 30 09:39:27 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c: applied patch from Brent
+ Hendricks to avoid leak in python bindings when using schemas
+ error handlers.
+
+Tue Mar 29 22:29:28 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: fixing bug 168196, <a name=""> must be URI escaped too
+
+Sun Mar 27 13:24:24 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: cleanup of the Prop related functions and xmlNewNodeEatName
+ by Rob Richards
+
+Thu Mar 24 19:01:22 PST 2005 William Brack <wbrack@mmm.com.hk>
+
+ * gentest.py, testapi.c: fixed problem with 'minimal library'
+ compilation (LIBXML_PATTERN_ENABLED not properly checked) reported
+ by Greg Morgan
+
+Thu Mar 24 12:01:30 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed call to a facet error report: the type of
+ the error was wrong, resulting in a segfault (bug #171220, reported
+ by GUY Fabrice).
+
+Mon Mar 21 22:58:37 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Removed a stupid bug in xmlSchemaValidateAttributes,
+ failing to build a linked list correctly (bug #169898, reported
+ by bing song, hmm...).
+
+Mon Mar 21 21:09:07 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed a segfault, which occurred during bubbling
+ of IDC nodes (bug #170779 and #170778, reported by GUY Fabrice):
+ a variable was missed to be reset in a loop. Deactivated bubbling,
+ if not referenced by a keyref.
+
+Sun Mar 20 11:13:02 PST 2005 Aleksey Sanin <aleksey@aleksey.com>
+
+ * c14n.c include/libxml/xmlerror.h: special case "DAV:" namespace
+ in c14n relative namespaces check and add structured error messages
+ to c14n code
+
+Thu Mar 17 12:55:23 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Removed inheritance of "mixed" content type for
+ short-hand restrictions of "anyType" (reported by Guy Fabrice
+ to the mailing list). Added the namespace conversion (chameleon
+ includes) for the base type reference of <restriction> and
+ <extension>.
+ * test/schemas/bug152470_1.xsd: Adapted due to the above change
+ of "mixed" inheritance.
+
+Thu Mar 17 11:03:59 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed a = -> == error pointed by GUY Fabrice
+
+Wed Mar 16 22:53:53 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: more debug messages from Matthew Burgess
+ * xmlschemastypes.c: xmlSchemaValidateLengthFacet API missing check.
+
+Wed Mar 16 17:37:04 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Aaaannnd putting back the previous changes done
+ by Daniel, which I overwrote with the previous commit.
+
+Wed Mar 16 17:20:25 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c xmlschemastypes.c include/libxml/xmlschemastypes.h:
+ Hopefully finished validation against facets to use the normalized
+ value of both, the facets and instance values. Added
+ xmlSchemaValidateLengthFacetWhtsp(), xmlSchemaValidateFacetWhtsp()
+ and xmlSchemaGetValType() to the schema API.
+
+Wed Mar 16 13:55:31 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: do not package .la files
+ * xmllint.c: applied patch from Gerry Murphy for xmllint return code
+ * xmlschemastypes.c: fixed a couple of missing tests of parameters
+ at public API entry points.
+
+Tue Mar 15 23:31:14 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemastypes.c: a couple of more changes to various
+ decimal-handling routines. Fixes python some problems
+ turned up by the python tests.
+ * Makefile.am: change SchemasPythonTests message to warn
+ that there are 10 'expected' errors (rather than 6) since
+ we now reject a '+' sign on an unsigned.
+
+Tue Mar 15 15:43:27 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c xmlschemastypes.h: In preparation to use
+ normalized values of facets during validation: changed the
+ arguments of some string comparison functions; added a static
+ xmlSchemaValidateFacetInternal() with more arguments to be
+ more flexible. Prepared XML_SCHEMA_FACET_ENUMERATION validation
+ to use the comparison functions. Fixed some assignments in
+ xmlSchemaValAtomicType(): total digit count, lo, mi, hi.
+
+Sun Mar 13 19:32:03 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS configure.in testapi.c doc/*: preparing release of 2.6.18
+ updated docs and rebuilt
+ * libxml.spec.in: reactivated gcc profiling for gcc >= 4.0.0
+
+Sat Mar 12 19:50:22 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: removed a static buffer in xmlByteConsumed(),
+ as pointed by Ben Maurer, fixes #170086
+ * xmlschemas.c: remove a potentially uninitialized pointer warning
+
+Fri Mar 11 23:53:13 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemastypes.c: enhanced the parsing of XML_SCHEMAS_DECIMAL
+ and much of the routine xmlSchemaCompareDecimals. The
+ changes were necessary to fix a problem reported on the
+ mailing list by John Hockaday.
+
+Fri Mar 11 13:22:52 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: The schema parser will stop if components could
+ not be resolved. This is not conforming to the spec but for now
+ will avoid internal errors during type fixup and content model
+ creation. Restructured inclusion/import of schemata: this avoids
+ duplicate, self and circular inclusion. Chameleon includes are
+ still workarounded. Added restriction to disallow references to
+ non-imported namespaces. Corrected parsing of <group>.
+ * result/schemas/bug167754_0_0*: Added a missing test result.
+
+Thu Mar 10 16:02:17 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xml.html doc/encoding.html: Enriched encoding.html with more
+ link and foreword warning to avoid problem with ignorant
+ programmers, c.f #169721
+
+Thu Mar 10 15:01:34 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/tests/Makefile.am python/tests/readernext.py: added
+ a regression test from Rob Richards for the previous bug
+
+Thu Mar 10 13:22:36 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: applied fix for xmlTextReaderNext() bug from
+ Rob Richards
+
+Thu Mar 10 11:35:57 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmodule.c: second patch from Rick Jones, portability fix for
+ HP-UX
+ * doc/examples/xpath1.c doc/examples/xpath2.c: first fix from Rick Jones
+ to avoid warnings.
+
+Thu Mar 10 10:20:23 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/hash.h libxml.h libxml.spec.in: some gcc4 portability
+ patches, including a serious aliasing bug exposed in s390
+ when trying to convert data pointer to code pointer.
+
+Mon Mar 7 18:34:00 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Tiny restructuring of the validation start-up
+ functions. Added cleanup of the validation context at the
+ end of validation. This takes care of the validation context
+ being reused.
+
+Mon Mar 7 12:12:01 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Tiny changes in the comparison functions
+ I forgot to commit last time.
+
+Fri Mar 4 22:51:42 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Added IDC validation of anySimpleType attribute
+ values; anyway the IDC key comparison is restricted to
+ anySimpleType <--> string based types. For other types we
+ would possibly need the canonical lexical representation of
+ them; this sounds not performant, since we would need to
+ build such a representation each time we want to compare against
+ anySimpleType. TODO: think about buffering the canonical values
+ somewhere. Fixed error reports for default attributes to work
+ without a node being specified. This all and the enabling of IDC
+ validation fixes bug #165346 (reported by Benoit Gr?goire - could
+ not read his last name correctly from bugzilla).
+
+Fri Mar 4 18:57:44 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Enabled IDC parsing and validation.
+ * xmlschemastypes.c include/libxml/xmlschemastypes.h:
+ Added xmlSchemaCopyValue to the API; this was done due to
+ validation of default attributes against IDCs: since IDC keys
+ consume the precomputed value, one needs a copy.
+ * pattern.c: Enabled IDC support; this is currently done
+ via calling xmlPatterncompile with a flag arg of 1.
+
+Wed Mar 2 11:45:18 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am doc/examples/Makefile.am python/tests/Makefile.am
+ xstc/Makefile.am: try to fix a problem with valgrind.
+ * python/generator.py python/libxml.c python/tests/Makefile.am
+ python/tests/tstmem.py: applied memory leak fix from Brent Hendricks
+ c.f. bug #165349
+
+Mon Feb 28 11:18:24 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * tree.c: Changed xmlSearchNsByHref to call xmlNsInScope with
+ the prefix instead of the namespace name.
+ * test/schemas/annot-err_0.xsd test/schemas/element-err_0.xsd:
+ Adapted invalid values of the "id" attribute, since they are
+ validated now.
+
+Fri Feb 25 08:31:16 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: new version with fixes from Rob Richards
+
+Thu Feb 24 16:37:51 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: applied patch from Rich Salz for multithreading on
+ Windows.
+
+Wed Feb 23 15:04:46 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: applied a patch from Rob Richards fixing a couple
+ of bugs in the writer
+
+Mon Feb 21 21:51:03 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xmlsave.c: fixed problem when XMLLINT_INDENT was empty (bug 168033).
+ * xpath.c: fixed compilation warning, no change to logic.
+ * xmlschemastypes.c: fixed compilation warning, no change to logic.
+
+Mon Feb 21 14:48:27 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: applied patch from Rob Richards to fix a problem with
+ xmlTextWriterStartAttributeNS
+
+Mon Feb 21 11:41:41 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c xpath.c: fixed remaining known bugs in the XPath streaming,
+ and switched XPath to use it by default when possible
+
+Sat Feb 19 19:25:14 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: a bit of cleanup
+ * elfgcchack.h testapi.c doc/*: rebuilt the API the tests and
+ the documentation as a result.
+
+Fri Feb 18 20:34:03 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c include/libxml/xmlreader.h: applied patch from
+ Aron Stansvik to add xmlTextReaderByteConsumed()
+ * testReader.c: added a test option
+ * xmlschemastypes.c: fix a lack of pointer checking in APIs
+
+Fri Feb 18 12:41:10 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/bug167754_0*: Added the regression test of Frans
+ Englich for bug #167754.
+
+Fri Feb 18 12:31:49 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Started support for IDC resolution to default
+ attributes. If building the content model for <all>: ensured
+ to put element declarations and not the particles into the
+ content model automaton (this was bug #167754, reported by
+ Frans Englich).
+
+Thu Feb 17 22:31:58 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * pattern.c pattern.h: Some experimental addition for parsing
+ of expressions and streamable validation.
+ Added xmlStreamPushAttr to the API.
+
+Thu Feb 17 19:57:35 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Added validation for the attribute "id" in the
+ schemata; doing this needed error report fixes for notations,
+ facets and group. Changed NOTATION validation to work with the
+ declared NOTATIONs in the schema; this does have no impact on
+ the validation via the relaxng module.
+ * xmlschemastypes.c include/libxml/xmlschemastypes.h:
+ Added xmlSchemaNewNOTATIONValue to the API to be able to do
+ the NOTATION validation described above.
+ * test/schemas/element-err_0.xsd test/schemas/annot-err_0.xsd:
+ Fixed the values of the "id" attributes, which were not validated
+ previously.
+
+Thu Feb 17 12:03:46 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed comparison for default/fixed attribute
+ values, if the type was 'xsd:string'. Changed the comparison
+ for IDCs to use the whitespace aware comparison function.
+ * xmlschemastypes.c include/libxml/xmlschemastypes.h:
+ Added xmlSchemaGetCanonValue, xmlSchemaNewStringValue and
+ xmlSchemaCompareValuesWhtsp to the API. Added functions
+ to compare strings with whitespace combinations of "preserve",
+ "replace" and "collapse".
+
+Wed Feb 16 13:24:35 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Further work on IDCs, especially evaluation for
+ attribute nodes.
+
+Wed Feb 16 01:19:27 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: fix the comment to describe the real return values
+ * pattern.c xpath.c include/libxml/pattern.h: lot of work on
+ the patterns, pluggin in the XPath default evaluation, but
+ disabled right now because it's not yet good enough for XSLT.
+ pattern.h streaming API are likely to be changed to handle
+ relative and absolute paths in the same expression.
+
+Tue Feb 15 15:33:32 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Added IDC evaluation for attribute nodes.
+ Made 'nil'ed elements work. Added a specific error message
+ for 'strict' attribute wildcards.
+ * include/libxml/xmlerror.h: Added an error code for
+ wildcards.
+ * result/schemas/anyAttr-processContents-err1_0_0.err: Adapted.
+
+Sun Feb 13 16:15:03 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ This change started out as a simple desire to speed up the
+ execution time of testapi.c, which was being delayed by
+ nameserver requests for non-existent URL's. From there it
+ just sort of grew, and grew....
+ * nanohttp.c, nanoftp.c: changed the processing of URL's
+ to use the uri.c routines instead of custom code.
+ * include/libxml/xmlerror.h: added code XML_FTP_URL_SYNTAX
+ * uri.c: added accepting ipV6 addresses, in accordance with
+ RFC's 2732 and 2373 (TODO: allow ipV4 within ipV6)
+ * gentest.py, testapi.c: fixed a few problems with the
+ testing of the nanoftp and nanohttp routines.
+ * include/libxml/xmlversion.h: minor change to fix a
+ warning on the docs generation
+ * regenerated the docs
+
+Sat Feb 12 09:07:11 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: fixed xmlXIncludeParseFile to prevent
+ overwriting XML_COMPLETE_ATTRS when setting pctxt->loadsubset
+ (bug 166199)
+ * Makefile.am, python/tests/Makefile.am, xstc/Makefile.am: added
+ code to add $(top_builddir)/.libs to LD_LIBRARY_PATH whenever
+ PYTHONPATH is set, to assure new libxml2 routines are used.
+
+Fri Feb 11 22:20:41 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: fixed problem when no initial "chunk" was
+ given to xmlCreatePushParser (bug 162613)
+
+Fri Feb 11 18:37:22 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * dict.c: fixed compilation warning
+ * parser.c: changed xmlWarningMsg so ctxt->errNo is not set
+ * xmllint.c: changed to return non-zero status if error
+ on xinclude processing
+ * xmlsave.c: minor deletion of a redundant condition statement
+
+Wed Feb 9 17:47:40 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied patch to xmlSetNsProp from Mike Hommey
+
+Sun Feb 6 00:17:57 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c xmllint.c: fixed implementation for |
+ * test/pattern/conj.* result/pattern/conj: added a specific regression
+ test
+
+Sat Feb 5 18:36:56 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c: first implementation for | support
+
+Sat Feb 5 14:58:46 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c: fixed the namespaces support
+ * tree.c: fixed xmlGetNodePath when namespaces are used
+ * result/pattern/multiple result/pattern/namespaces
+ test/pattern/multiple.* test/pattern/namespaces.*: added
+ more regression tests
+
+Fri Feb 4 18:26:43 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed one internal function
+ * doc/Makefile.am doc/wiki.xsl: applied patch from Joel Reed
+ * testapi.c doc/libxml2-api.xml doc/libxml2-refs.xml: regenerated
+
+Fri Feb 4 00:25:43 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: use the walker to test the patterns instead of
+ the normal reader
+ * pattern.c xmllint.c: bug fixes in the train including fixing the
+ stupid build break.
+
+Tue Feb 1 18:15:52 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c: more bug fixes for the XPath streaming code.
+
+Mon Jan 31 17:59:24 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Integrated the streaming pattern from the
+ pattern module. Fixed some IDC code bugs. Changed
+ fallback for attribute declaration addition to work like for
+ element declarations.
+
+Mon Jan 31 01:27:22 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c xmllint.c: bugfixes around the streaming patterns
+
+Sun Jan 30 23:35:19 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in result/pattern/simple
+ test/pattern/simple.*: added first test for the patterns
+ * pattern.c xmllint.c: a few fixes
+
+Sun Jan 30 19:27:23 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c include/libxml/pattern.h xmllint.c: added a
+ streaming pattern detector for a subset of XPath, should
+ help Kasimier for identity constraints
+ * python/generator.py: applied Stéphane Bidoul patch to find
+ paths without breaking.
+
+Fri Jan 28 18:53:40 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed an untested pointer dereference and a & vs &&
+
+Fri Jan 28 18:37:18 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: implementation of xmlTextReaderReadString by
+ Bjorn Reese
+
+Fri Jan 28 16:51:47 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Corrected an ambigious symbol-space for
+ local attribute declarations. IFDEFed more IDC code to
+ surpress compiler warnings.
+
+Fri Jan 28 00:57:04 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * bakefile/Readme.txt bakefile/Bakefiles.bkgen bakefile/libxml2.bkl:
+ files for the Bakefile generator for Makefiles from Francesco
+ Montorsi
+ * win32/configure.js: fixes for Windows compilation with non-default
+ flags by Joel Reed
+
+Thu Jan 27 18:23:50 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed xmlCopyDoc to also copy the doc->URL as pointed
+ by Martijn Faassen
+
+Thu Jan 27 13:39:04 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/schemasInternals.h:
+ Added an initial skeleton for indentity-constraints. This is all
+ defined out, since not complete, plus it needs support from other
+ modules.
+ Added machanism to store element information for the
+ ancestor-or-self axis; this is needed for identity-constraints
+ and should be helpful for a future streamable validation.
+ * include/libxml/xmlerror.h: Added an error code for
+ identity-constraints.
+
+Wed Jan 26 01:03:37 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: had to fix generation and rebuild.
+ * valid.c: the testapi found a bug in the last code of course !
+
+Wed Jan 26 00:43:05 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am testapi.c doc/Makefile.am: fixing the way testapi.c
+ is generated, fixes bug #161386
+ * dict.c: fix a comment typo
+ * elfgcchack.h doc/*: regenerated
+
+Tue Jan 25 22:39:33 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: found and fixed 2 problems in the internal subset scanning
+ code affecting the push parser (and the reader), fixes #165126
+ * test/intsubset2.xml result//intsubset2.xml*: added the test case
+ to the regression tests.
+
+Tue Jan 25 01:20:11 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * testdso.c xmlregexp.c: warning patches from Peter Breitenlohner
+ * include/libxml/valid.h valid.c parser.c: serious DTD parsing
+ speedups, start to deprecate 3 ElementDef related entry point
+ and replace them with better ones.
+
+Mon Jan 24 00:47:41 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: more hash dictionary interning changes
+
+Sun Jan 23 23:54:39 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * hash.c include/libxml/hash.h: added xmlHashCreateDict where
+ the hash reuses the dictionary for internal strings
+ * entities.c valid.c parser.c: reuse that new API, leads to a decent
+ speedup when parsing for example DocBook documents.
+
+Sun Jan 23 21:14:20 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: small speedup in skipping blanks characters
+ * entities.c: interning the entities strings
+
+Sun Jan 23 18:35:00 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: boosting common commnent parsing code, it was really
+ slow.
+ * test/comment[3-5].xml result//comment[3-5].xml*: added sprecific
+ regression tests
+
+Sun Jan 23 01:00:09 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: small optimization back.
+
+Sat Jan 22 00:40:31 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c parser.c include/libxml/dict.h: a single lock version
+ mostly avoid the cost penalty of the lock in case of low
+ parallelism, so applying that version instead.
+
+Fri Jan 21 17:54:06 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c: patch from Gary Coady to fix a race in dict reference
+ counting in multithreaded apps.
+
+Fri Jan 21 16:08:21 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed bug #164556 where non-fatal errors stopped
+ push parsing and xmlreader.
+ * Makefile.am: fixup
+ * test/errors/webdav.xml result/errors/webdav*: adding regression
+ test for this problem.
+
+Wed Jan 19 17:24:34 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Corrected targetNamespace in
+ xmlSchemaElementDump. Cosmetic changes to the dump output.
+
+Sun Jan 16 21:00:53 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in NEWS doc/*: preparing release of 2.6.17,
+ updated and rebuilt the docs
+
+Sun Jan 16 19:58:36 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: better fix for #151694 not killing c14n regression tests
+ * xmlschemastypes.c: fixing bug #157653
+
+Sun Jan 16 19:01:06 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixing bug #151694, line should always be set in the
+ elements.
+
+Sun Jan 16 01:04:18 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: trying to fix at least the message from
+ bug #158628
+ * include/libxml/xmlsave.h xmlsave.c: added first xmlsave option
+ for format, c.f. bug #159997
+
+Sat Jan 15 18:44:30 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.py: make __str__ call serialize() on nodes, c.f.
+ bug #157872
+
+Sat Jan 15 18:18:07 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c: applied patch from Dan McNichol for compilation on AIX
+
+Sat Jan 15 13:35:19 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed bug #157633 in relaxng choice optimization
+ * result/relaxng/choice0* test/relaxng/choice0*: added regression
+ tests about it.
+ * doc/*: rebuilt
+ * testdso.c: removed a warning due to a missing void in signature.
+
+Thu Jan 13 17:42:55 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * include/libxml/schemasInternals.h xmlschemas.c:
+ Exposed targetNamespace for simple/complex types, model groups,
+ attribute groups and notations (reported by Michael Hewarth
+ to the mailing list). Added targetNamespace to xmlSchemaType,
+ xmlSchemaAttributeGroup and xmlSchemaNotation.
+ Tiny cosmetic change to the content model error report output.
+ * result//all_*.err result//any3_0_0.err result//choice_*.err
+ result//list0_0_1.err result//list0_1_1.err: Adapted output
+ of regression tests.
+
+Thu Jan 13 13:20:51 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Put the fix of Daniel (from Tue Jan 11 14:41:47 CET)
+ back in, since I missed to update xmlschemas.c before doing
+ the previous commit.
+
+Thu Jan 13 12:59:25 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Integrated xmlRegExecErrInfo and xmlRegExecNextValues
+ from xmlregexp.c to report expected elements on content model errors.
+ * all_*.err any3_0_0.err choice_*.err list0_0_1.err list0_1_1.err:
+ Adapted output of regression tests.
+
+Thu Jan 13 12:24:09 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * config.h.in configure.in xmlmodule.c: trying to work around
+ the compilation problem on HP-UX
+
+Wed Jan 12 22:03:33 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c: fixed the fixed size array structure problem reported by
+ Patrick Streule
+
+Wed Jan 12 15:15:02 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * elfgcchack.h testapi.c doc/libxml2-api.xml doc/*: regenerated
+ the API description, rebuilt, improved navigation in documentation
+ a bit.
+
+Wed Jan 12 14:17:14 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlregexp.h xmlregexp.c: extended xmlRegExecErrInfo()
+ and xmlRegExecNextValues() to return error transition strings too,
+ and sink state detection and handling.
+
+Tue Jan 11 14:41:47 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed bug #163641 when the value passed for
+ an atomic list type is NULL.
+
+Tue Jan 11 10:14:33 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * Makefile.am configure.in: fixed dependency on python 2.3,
+ also small improvement for cygwin (bug 163273)
+
+Sun Jan 9 18:46:32 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: William noticed I forgot to add special
+ support for xmlmodules.c define
+ * xmlregexp.c include/libxml/xmlregexp.h: added terminal to
+ xmlRegExecErrInfo() API, adding new xmlRegExecNextValues()
+ entry point and refactored to use both code.
+
+Mon Jan 10 01:02:41 HKT 2006 William Brack <wbrack@mmm.com.hk>
+
+ * doc/xml.html, doc/FAQ.html: added an FAQ under Developer for
+ setting up a "private" library (after some list posts about
+ people having trouble doing it)
+
+Sat Jan 8 23:04:10 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: fixing behaviour for xmlRegExecErrInfo in case of
+ rollback
+
+Fri Jan 7 14:54:51 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * TODO: small update
+ * xmlregexp.c: trying to add an API to get useful error informations
+ back from a failing regexp context.
+
+Thu Jan 6 17:35:41 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed problem with xmlXPathErr when error number
+ subscript was out of range (bug 163055)
+
+Thu Jan 6 09:57:03 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * uri.c: fixed problem with xmlURIEscape when query part was
+ empty (actually fixed xmlURIEscapeStr to return an empty
+ string rather than NULL for empty string input) (bug 163079)
+
+Tue Jan 4 17:08:45 PST 2005 Aleksey Sanin <aleksey@aleksey.com>
+
+ * parser.c, parserInternal.c: fixed "col" calculation for
+ struct _xmlParserInput (based on patch from Rob Richards)
+ * include/libxml/xmlerror.h, error.c: propagated error column
+ number in the xmlError structure
+
+Tue Jan 4 22:47:22 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed namespace bug in push mode reported by
+ Rob Richards
+ * test/ns6 result//ns6*: added it to the regression tests
+ * xmlmodule.c testModule.c include/libxml/xmlmodule.h:
+ added an extra option argument to module opening and defined
+ a couple of flags to the API.
+
+Tue Jan 4 21:16:05 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmodule.c include/libxml/xmlmodule.h: applied patch from
+ Bjorn Reese, plus some cleanups
+ * elfgcchack.h doc/elfgcchack.xsl: fixed the stylesheet to
+ add the new header
+ * doc/* testapi.c: regenerated the API
+
+Tue Jan 4 18:47:19 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: making DSO support an option
+ * xmlmodule.c xmlreader.c include/libxml/xmlmodule.h: code
+ and documentation cleanups
+ * elfgcchack.h testapi.c doc/*: regenerated the docs and
+ checks for new module
+ * test/valid/REC-xml-19980210.xml: fix a small change introduced
+ previously
+
+Tue Jan 4 16:07:52 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am config.h.in configure.in error.c libxml-2.0.pc.in
+ testModule.c testdso.c xml2-config.in xmllint.c xmlmodule.c
+ include/libxml/Makefile.am include/libxml/xmlerror.h
+ include/libxml/xmlmodule.h include/libxml/xmlversion.h.in
+ include/libxml/xmlwin32version.h.in: applied DSO support
+ patch 2 from Joel Reed
+
+Tue Jan 4 15:30:15 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: applied patch from Marcin Konicki for BeOS
+
+Mon Jan 3 13:57:21 PST 2005 Aleksey Sanin <aleksey@aleksey.com>
+
+ * parser.c: added GetLineNumber and GetColumnNumber functions for xmlReader
+
+Sun Jan 2 17:51:18 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ Re-examined the problems of configuring a "minimal" library.
+ Synchronized the header files with the library code in order
+ to assure that all the various conditionals (LIBXML_xxxx_ENABLED)
+ were the same in both. Modified the API database content to more
+ accurately reflect the conditionals. Enhanced the generation
+ of that database. Although there was no substantial change to
+ any of the library code's logic, a large number of files were
+ modified to achieve the above, and the configuration script
+ was enhanced to do some automatic enabling of features (e.g.
+ --with-xinclude forces --with-xpath). Additionally, all the format
+ errors discovered by apibuild.py were corrected.
+ * configure.in: enhanced cross-checking of options
+ * doc/apibuild.py, doc/elfgcchack.xsl, doc/libxml2-refs.xml,
+ doc/libxml2-api.xml, gentest.py: changed the usage of the
+ <cond> element in module descriptions
+ * elfgcchack.h, testapi.c: regenerated with proper conditionals
+ * HTMLparser.c, SAX.c, globals.c, tree.c, xmlschemas.c, xpath.c,
+ testSAX.c: cleaned up conditionals
+ * include/libxml/[SAX.h, SAX2.h, debugXML.h, encoding.h, entities.h,
+ hash.h, parser.h, parserInternals.h, schemasInternals.h, tree.h,
+ valid.h, xlink.h, xmlIO.h, xmlautomata.h, xmlreader.h, xpath.h]:
+ synchronized the conditionals with the corresponding module code
+ * doc/examples/tree2.c, doc/examples/xpath1.c, doc/examples/xpath2.c:
+ added additional conditions required for compilation
+ * doc/*.html, doc/html/*.html: rebuilt the docs
+
+Sat Dec 25 18:10:02 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * parserInternals.c: fixed to skip (if necessary) the BOM for
+ encoding 'utf-16'. Completes the fix for bug #152286.
+ * tree.c, parser.c: minor warning cleanup, no change to logic
+
+Fri Dec 24 16:31:22 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * python/generator.py: added most required entires to
+ foreign encoding table, plus some additional logic to
+ assure only the 1st param uses the 't#' format. Fixes
+ bug #152286, but may still have some other UTF-16 problems.
+
+Thu Dec 23 23:44:08 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * Makefile.am, gentest.py: enhanced for enabling build in
+ a different directory. Added (optional) param to gentest.py
+ to specify the source directory (bug #155468)
+ * doc/Makefile.am: changed destination of NEWS from (top_srcdir)
+ to (top_builddir) (bug #155468)
+ * python/Makefile.am, python/generator.py: enhanced for enabling
+ build in a different directory(bug #155468). Added (optional)
+ param to generator.py to specify the source directory. Added
+ a new table of functions which have possible "foreign" encodings
+ (e.g. UTF16), and code to use python 't' format instead of
+ 'z' format (mostly solving bug #152286, but still need to
+ populate the table).
+
+Tue Dec 21 08:10:44 MST 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/site.xsl, doc/xml.html, plus rebuilt all the html pages
+ Change reference to new site for Solaris binaries, fixing bug
+ 160598
+
+
+Mon Dec 20 08:02:57 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: reset input->base within xmlStopParser
+ * xmlstring.c: removed call to xmlUTF8Strlen from within
+ xmlUTF8Strpos (Bill Moseley pointed out it was not
+ useful)
+
+Fri Dec 17 16:03:41 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * valid.c: changed xmlErrValidWarning to use ctxt->warning
+ instead of ctxt->error for its reports (bug #160662)
+
+Fri Dec 17 14:52:17 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * python/generator.py: modified to allow the ns and nsDefs
+ accessors to return None instead of error when no namespace
+ is present (bug #)
+
+Fri Dec 17 11:40:21 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * doc/Makefile.am: changed maintainer-clean dependency with
+ suggestion from Crispin Flowerday (bug #157634)
+ * debugXML.c: fixed crash when ATTRIBUTE or DOCUMENT nodes
+ were specified with debugDumpNode (bug #160621)
+
+Fri Dec 10 11:24:41 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixed ID deallocation problem based on patch from
+ Steve Shepard fixes bug #160893
+ * xmlmemory.c: improving comment.
+ * testapi.c: new test for xmlDictExists() is generated.
+
+Wed Dec 1 22:35:37 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * dict.c, xpath.c, include/libxml/hash.h: fixed up some gcc warnings,
+ no change to logic. New macro XML_CAST_FPTR to circumvent gcc
+ warnings on function pointer <-> object pointer (a hack).
+
+Mon Nov 29 14:07:18 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed a memory leak on errors in some circumstances #159812
+
+Fri Nov 26 23:20:48 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlIO.c: added a check within xmlOutputBufferWriteEscape to prevent
+ a dead loop on bad data (bug 159550)
+
+Fri Nov 26 13:09:04 CET 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed strict/lax element wildcards: the children
+ of elements for which a declaration existed were still processed
+ by the wildcard mechanism (reported by philippe ventrillon to the
+ mailing list).
+ Changed the import and include machanism to share dictionaries.
+
+Fri Nov 26 11:44:36 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c parser.c: make sure xmlCtxtReadFile and htmlCtxtReadFile
+ go through the catalog resolution.
+ * gentest.py testapi.c: fix a side effect wrning of the change
+
+Wed Nov 24 13:41:52 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c include/libxml/dict.h: added xmlDictExists() to the
+ dictionary interface.
+ * xmlreader.c: applying xmlTextReaderHasAttributes fix for namespaces
+ from Rob Richards
+
+Wed Nov 17 13:54:37 CET 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: tiny enhancement for content model error reports
+ (#157190, #143948). Removed abbreviations: CT, ST and WC
+ (#157190, reported by Frans Englich).
+ Initial: no report of local components.
+ * result/schemas/all* result/schemas/any3_0_0.err
+ result/schemas/choice*
+ result/schemas/cos-st-restricts-1-2-err_0_0.err
+ result/schemas/derivation-ok-extension-err_0_0.err
+ result/schemas/derivation-ok-extension_0_0.err
+ result/schemas/derivation-ok-restriction-2-1-1_0_0.err
+ result/schemas/derivation-ok-restriction-4-1-err_0_0.err
+ result/schemas/deter0_0_0.err result/schemas/extension1_0_2.err
+ result/schemas/facet-unionST-err1_0_0.err
+ result/schemas/hexbinary_0_1.err
+ result/schemas/list* result/schemas/restriction-attr1_0_0.err
+ result/schemas/vdv-first4_0_1.err result/schemas/vdv-first4_0_2.err:
+ Adapted output.
+
+Mon Nov 15 13:04:28 CET 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Moved execution of xmlSchemaCheckDefaults to
+ xmlSchemaTypeFixup; this ensures facets of inherited types to be
+ checked prior to facets of derived types - which caused a seg
+ fault otherwise (bug #158216, reported by Frans Englich).
+
+Sun Nov 14 22:23:18 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * gentest.py, testapi.c: further enhancement, now all
+ compilation warnings have been fixed.
+ * xmlschemastypes.c: added NULL check for one function
+
+Fri Nov 12 23:58:14 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: trivial change (changed CHECK_CONTEXT to CHECK_CTXT
+ on a couple of lines)
+ * gentest.py, testapi.c: enhanced to reduce compilation warnings
+
+Fri Nov 12 16:12:48 CET 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Un-commented a TODO in xmlSchemaParseElement.
+
+Fri Nov 12 14:55:36 CET 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Correct symbol space for 'all' and 'choice'.
+ * xmlschemastypes.c include/xmlschemastypes.h: Added 'replace'
+ normalization for 'normalizedString'.
+ Added xmlSchemaWhiteSpaceReplace to the API.
+
+Thu Nov 11 21:43:02 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: forgot a $(srcdir)
+ * encoding.c: stupid error wrong name #157976
+
+Wed Nov 10 15:35:25 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS configure.in doc/*: preparing release of libxml2-2.6.16
+
+Wed Nov 10 12:55:18 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/libxml2class.txt
+ python/libxml_wrap.h python/types.c: Applied patch from Brent
+ Hendricks adding support for late DTD validation.
+ * python/tests/Makefile.am python/tests/dtdvalid.py
+ python/tests/test.dtd: integrated the provided regression test
+
+Tue nov 9 19:24:31 CET 2004 Dodji Seketeli <dodji@seketeli.org>
+
+ * configure.in: detect when struct sockaddr_storage
+ has the __ss_family member instead of ss_family and
+ behave accordingly. We now can use ipv6 on aix.
+
+Tue Nov 9 17:15:46 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am gentest.py testapi.c: integrated in "make tests"
+ added -q option, and more conditional features fixes
+ * catalog.c debugXML.c parser.c testThreads.c xmllint.c
+ xmlschemastypes.c xmlwriter.cinclude/libxml/catalog.h
+ include/libxml/debugXML.h: various compilation and conditional
+ cleanups.
+ * doc/*: regenerated
+
+Tue Nov 9 15:59:50 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: better handling of conditional features
+ * HTMLparser.c SAX2.c parserInternals.c xmlwriter.c: more testing
+ on parser contexts closed leaks, error messages
+
+Tue Nov 9 10:21:37 GMT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed problem concerning XPath context corruption
+ during function argument evaluation (bug 157652)
+
+Mon Nov 8 18:54:52 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * testapi.c: more types.
+ * parserInternals.c xpath.c: more fixes
+
+Mon Nov 8 18:16:43 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: better parser options coverage
+ * SAX2.c xpath.c: more cleanups.
+
+Tue Nov 9 01:50:08 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * testapi.c: trying to fix some optional support brokenness
+
+Mon Nov 8 17:25:27 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more coverage
+ * debugXML.c parser.c xmlregexp.c xpath.c: more fixes
+
+Mon Nov 8 15:02:39 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more coverage
+ * SAX2.c parser.c parserInternals.c: more fixes
+
+Mon Nov 8 12:55:16 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c testapi.c xmlIO.c xmlstring.c: more fixes.
+
+Mon Nov 8 11:24:57 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more types, more coverage
+ * parser.c parserInternals.c relaxng.c valid.c xmlIO.c
+ xmlschemastypes.c: more problems fixed
+
+Mon Nov 8 10:24:28 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * gentest.py: fixed test file corruption problem
+
+Sun Nov 7 13:18:05 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: fixed typos and avoid Catalogs verbosity
+
+Sat Nov 6 23:25:16 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * testapi.c: augmented the number of types
+
+Sat Nov 6 20:24:07 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c tree.c xmlreader.c xmlwriter.c: a number of new
+ bug fixes and documentation updates.
+
+Sat Nov 6 15:50:11 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: augmented type autogeneration for enums
+ * xpath.c include/libxml/xpath.h: removed direct error reporting.
+
+Sat Nov 6 14:27:18 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: fixed a regression in iconv support.
+
+Fri Nov 5 18:19:23 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: autogenerate a minimal NULL value sequence
+ for unknown pointer types
+ * HTMLparser.c SAX2.c chvalid.c encoding.c entities.c parser.c
+ parserInternals.c relaxng.c valid.c xmlIO.c xmlreader.c
+ xmlsave.c xmlschemas.c xmlschemastypes.c xmlstring.c xpath.c
+ xpointer.c: This uncovered an impressive amount of entry points
+ not checking for NULL pointers when they ought to, closing all
+ the open gaps.
+
+Fri Nov 5 16:26:28 UTC 2004 William Brack <wbrack@mmm.com.hk>
+
+ * catalog.c: fixed problem with NULL entry (bug 157407)
+ * xpath.c: fixed a couple of warnings (no change to logic)
+
+Fri Nov 5 15:30:43 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more coverage
+ * xmlunicode.c: one fix
+
+Fri Nov 5 23:15:51 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c: fixed a compilation problem on a recent change
+
+Fri Nov 5 12:50:09 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more coverage
+ * nanoftp.c tree.c: more fixes
+
+Fri Nov 5 11:02:28 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: fixed the way the generator works,
+ extended the testing, especially with more real trees and nodes.
+ * HTMLtree.c tree.c valid.c xinclude.c xmlIO.c xmlsave.c: a bunch
+ of real problems found and fixed.
+ * entities.c: fix error reporting to go through the new handlers
+
+Thu Nov 4 18:44:56 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: dohh ... stupid change killing xmlParseDoc()
+
+Thu Nov 4 18:32:22 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: changing the way the .c is generated,
+ extending the tests coverage
+ * include/libxml/nanoftp.h nanoftp.c elfgcchack.h doc/*: fixing some
+ function signatures, regenerating stuff
+ * SAX2.c parser.c xmlIO.c: another set of bug fixes and API hardening
+
+Thu Nov 4 13:32:19 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: extending the tests coverage
+
+Thu Nov 4 11:52:28 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: gentest.py was missing from the EXTRA_DIST
+
+Thu Nov 4 11:48:47 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: extending the tests coverage
+ * HTMLtree.c tree.c xmlsave.c xpointer.c: more fixes and cleanups
+
+Thu Nov 4 00:25:36 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more fixes and extending the tests coverage
+ * nanoftp.c xmlIO.c: more fixes and hardening
+
+Wed Nov 3 20:16:24 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more fixes and extending the tests coverage
+ * valid.c: bunch of cleanups and 2 leaks removed
+
+Wed Nov 3 18:06:44 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more fixes and extending the tests coverage
+ * list.c tree.c: more fixes and hardening
+
+Wed Nov 3 15:19:22 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more fixes and extending the tests coverage
+ * relaxng.c include/libxml/relaxng.h: adding a type init interface
+ * include/libxml/xmlerror.h parser.c xmlreader.c xmlwriter.c: more
+ cleanups and bug fixes raised by the regression tests
+
+Wed Nov 3 12:49:30 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more fixes and extending the tests coverage
+ * xmlwriter.c list.c: more hardeing of APIs
+ * doc/apibuild.py: skip testapi.c when scanning the C files.
+
+Tue Nov 2 23:09:06 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more testing and coverage
+ * elfgcchack.h xmlstring.c include/libxml/xmlstring.h: more cleanups
+ * doc/*: rebuilt
+
+Tue Nov 2 19:44:32 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * gentest.py testapi.c: more developments on the API testing
+ * HTMLparser.c tree.c: more cleanups
+ * doc/*: rebuilt
+
+Tue Nov 2 15:49:34 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c include/libxml/xmlmemory.h: adding xmlMemBlocks()
+ * Makefile.am gentest.py testapi.c: work on generator of an
+ automatic API regression test tool.
+ * SAX2.c nanoftp.c parser.c parserInternals.c tree.c xmlIO.c
+ xmlstring.c: various API hardeing changes as a result of running
+ the first set of automatic API regression tests.
+ * test/slashdot16.xml: apparently missing from CVS, commited it
+
+Mon Nov 1 15:54:18 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed an UTF-8 parsing bug reported by Markus Bertheau
+ on #fedora-devel
+
+Sun Oct 31 22:03:38 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed a bug reported by Petr Pajas on the list and
+ affecting XML::Libxml
+
+Sun Oct 31 16:33:54 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c doc/examples/testWriter.c: Fixed bug #153937, making
+ sure the conversion functions return the number of byte written.
+ Had to fix one of the examples.
+
+Fri Oct 29 14:16:56 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmllint.1 doc/xmllint.xml: indicate - means stdin closing #156626
+
+Fri Oct 29 14:03:36 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: register xmlSchemaSetValidErrors, patch from
+ Brent Hendricks in the mailing-list
+ * include/libxml/valid.h HTMLparser.c SAX2.c valid.c
+ parserInternals.c: fix #156626 and more generally how to find out
+ if a validation contect is part of a parsing context or not. This
+ can probably be improved to make 100% sure that vctxt->userData
+ is the parser context too. It's a bit hairy because we can't
+ change the xmlValidCtxt structure without breaking the ABI since
+ this change xmlParserCtxt information indexes.
+
+Wed Oct 27 19:26:20 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * ChangeLog NEWS configure.in doc/*: preparing release 2.6.15
+ * debugXML.c nanoftp.c xmlschemas.c xmlschemastypes.c: cleanups
+
+Wed Oct 27 09:31:24 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * uri.c: fixed a stupid mistake in xmlBuildRelativeURI
+ (bug 156527)
+
+Wed Oct 27 11:44:35 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c nanohttp.c: second part of the security fix for
+ xmlNanoFTPConnect() and xmlNanoHTTPConnectHost().
+
+Tue Oct 26 23:57:02 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c: applied fixes for a couple of potential security problems
+ * tree.c valid.c xmllint.c: more fixes on the string interning checks
+
+Tue Oct 26 18:09:59 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c include/libxml/xmlerror.h: added checking for names
+ values and dictionaries generates a tons of errors
+ * SAX2.ccatalog.c parser.c relaxng.c tree.c xinclude.c xmlwriter.c
+ include/libxml/tree.h: fixing the errors in the regression tests
+
+Mon Oct 25 16:04:22 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: modified the handling of _private for entity
+ expansion (bug 155816)
+
+Mon Oct 25 17:11:37 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed the leak reported by Volker Roth on the list
+ * test/ent10 result//ent10*: added a specific test for the problem
+
+Sat Oct 23 11:07:41 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * valid.c: unlinked the internal subset within xmlValidateDtd
+ (bug 141827)
+ * configure.in: added -Wall to developer's flags
+ * doc/examples/reader4.res: added to CVS
+
+Fri Oct 22 16:36:50 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: added support for HTML PIs #156087
+ * test/HTML/python.html result/HTML/python.html*: added specific tests
+
+Fri Oct 22 15:20:23 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: fixed nasty bug #156087
+
+Fri Oct 22 21:04:20 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: fixed a problem occurring only in x86_64 when
+ very large error messages are raised to the Python handlers.
+
+Thu Oct 21 18:03:21 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed a memory bug
+ * doc/examples/reader4.c doc/examples/*: added test from Graham Bennett
+ and regenerated the directory
+
+Tue Oct 19 11:06:39 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlreader.h xmlreader.c: applied patch from
+ Graham Bennett adding 4 convenience functions to the reader API.
+
+Fri Oct 15 11:22:48 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * debugXML.c: excluded a few nodes (with no content) from the
+ string check routine.
+
+Fri Oct 15 10:48:30 EDT 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c include/libxml/xmlerror.h: added UTF-8 string checking,
+ raise a problem, need debug
+
+Wed Oct 13 02:17:36 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am: applied patch from Thomas Fitzsimmons fixing
+ #155240 building outside the source tree. but make tests fails.
+
+Mon Oct 11 16:26:51 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c include/libxml/xmlerror.h: added namespace checking
+
+Sat Oct 9 22:36:21 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: some framework preparation to add namespace checkings
+
+Thu Oct 7 15:12:58 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c include/libxml/debugXML.h include/libxml/xmlerror.h:
+ adding the tree debug mode
+ * parser.c relaxng.c tree.c xpath.c: fixing various problems reported
+ by the debug mode.
+ * SAX2.c: another tree fix from Rob Richards
+
+Wed Oct 6 10:50:03 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * catalog.c: small change to last fix, to get xml:base right
+
+Wed Oct 6 09:33:51 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * catalog.c: added code to handle <group>, including dumping
+ to output (bug 151924).
+ * xmlcatalog.c, xmlstring.c, parser.c: minor compiler warning
+ cleanup (no change to logic)
+
+Mon Oct 4 16:09:07 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in debugXML.c include/libxml/xmlversion.h.in
+ include/libxml/xmlwin32version.h.in: revamped the XML debugging
+ module and prepare for a new checking mode
+
+Mon Oct 4 13:53:24 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied patch from Malcolm Tredinnick fixing bug #152426
+
+Mon Oct 4 12:26:28 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/tests/outbuf.py:
+ applied patch from Malcolm Tredinnick fixing bug #154294
+ related to saving to python file objects.
+
+Sat Oct 2 21:08:51 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * tree.c: changed xmlHasNsProp to properly handle a request for
+ the default namespace (bug 153557)
+
+Sat Oct 2 18:18:27 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: fixed problem with dictionary handling within
+ xmlParseInNodeContext (bug 153175)
+
+Sat Oct 2 15:46:37 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * check-relaxng-test-suite.py, check-relaxng-test-suite2.py,
+ check-xinclude-test-suite.py, check-xml-test-suite.py,
+ check-xsddata-test-suite.py, doc/examples/index.py: changed
+ changed sys.path setting from 'append' to 'insert' (patch
+ supplied by Malcolm Tredinnick) (bug 153716)
+
+Sat Oct 2 15:03:14 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * include/libxml/parserInternals.h: added two new macros
+ IS_ASCII_LETTER and IS_ASCII_DIGIT used with (html)
+ parsing and xpath for testing data not necessarily
+ unicode.
+ * HTMLparser.c, xpath.c: changed use of IS_LETTER_CH and
+ IS_DIGIT_CH macros to ascii versions (bug 153936).
+
+Fri Oct 1 20:37:25 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * error.c: added some coding to attempt to display which file
+ contains an error when using XInclude (bug 152623)
+
+Thu Sep 30 11:19:17 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: stupid cut'n paste bug in xmllint detection
+
+Wed Sep 29 17:47:56 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/*: releasing 2.6.14, rebuilding the docs
+
+Wed Sep 29 15:00:11 CEST 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/xmlerror.h include/libxml/xmlschemas.h
+ include/libxml/schemasInternals.h: Parsing of <complexContent>
+ - handle attribute 'mixed', catch illegal attributes.
+ Parsing of <complexType> - handle attributes 'abstract',
+ 'final' and 'block', catch illegal attributes.
+ Validation of complex types - handle abstract types.
+ Added handling of default/fixed attributes and element values.
+ Per validation option attribute nodes/text nodes are created
+ on the instance.
+ Added the corresponding constraints for fixed/default.
+ Added xmlSchemaSetValidOptions, xmlSchemaGetValidOptions
+ to the external API.
+ Extended element declaration constraints.
+ Got rid of perseverative creation of temporery validation/parser
+ contexts.
+ Added handling of xsi:schemaLocation and
+ xsi:noNamespaceSchemaLocation.
+ Fixed xsi:type component resolution if using non-prefixed
+ QNames.
+ * xmlregexp.c xmlschemas.c include/libxml/xmlautomata.h:
+ Enabled namespace awareness of the content model if using the
+ model group "all".
+ * test/schemas/bug152470_1.xsd: Removed an "abstract" attribute,
+ which broke the test.
+ * xstc/xstc.py: Workaround to accomodate case insensitive
+ test definitions in ms-test.def.xml (was missing in a previous
+ commit).
+
+Wed Sep 29 11:03:10 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/drv_libxml2.py: another patch from Malcolm Tredinnick
+ adding option not to load dtd from the drv_libxml2.py module
+ #134633
+
+Tue Sep 28 14:30:22 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * acconfig.h config.h.in configure.in xmlIO.c xmlregexp.c xmlschemas.c
+ xmlschemastypes.c: another patch from Malcolm Tredinnick fixing
+ warning generated by the Nonstop Kernel Open System Services
+ compiler #151710
+
+Tue Sep 28 13:07:37 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.py: applied patch from Malcolm Tredinnick fixing
+ python exception hierarchy #139824
+
+Sun Sep 26 16:40:24 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c TODO: applied patch from Malcolm Tredinnick fixing errata
+ E20 concerning NMTOKENS and co. validation #153722
+ * result/VC/AttributeNmtokens test/VC/AttributeNmtokens
+ test/VCM/AttributeNmtokens.xml: also added tests from Malcolm
+
+Sun Sep 26 16:24:44 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xstc/xstc.py: applied patch from Malcolm Tredinnick fixing space/tabs
+ #153713
+ * xpath.c: fixed a realloc potential problem
+
+Fri Sep 24 16:14:12 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: fixed make valgrind xstc
+
+Thu Sep 23 18:23:46 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: fixing an out of bound addressing issue
+
+Thu Sep 23 15:14:12 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c parser.c relaxng.c xmlschemas.c: more memory related
+ code cleanups.
+
+Thu Sep 23 01:04:30 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed a bunch of errors when realloc failed.
+
+Wed Sep 22 23:56:05 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c uri.c: couple of memory fixes from Mark Vakoc reported
+ by Purify on Windows.
+
+Mon Sep 20 22:01:47 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: added --timing --copy timing for the copy
+ * vms/build_libxml.com: applied patch from Craig Berry
+ to build with recent releases
+
+Fri Sep 17 21:25:33 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * nanohttp.c, include/libxml/nanohttp.h: added the routine
+ xmlNanoHTTPContentLength to the external API (bug151968).
+ * parser.c: fixed unnecessary internal error message (bug152060);
+ also changed call to strncmp over to xmlStrncmp.
+ * encoding.c: fixed compilation warning (bug152307).
+ * tree.c: fixed segfault in xmlCopyPropList (bug152368); fixed
+ a couple of compilation warnings.
+ * HTMLtree.c, debugXML.c, xmlmemory.c: fixed a few compilation
+ warnings; no change to logic.
+
+Fri Sep 17 10:40:23 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: removed some extern before function code reported by
+ Kjartan Maraas on IRC
+ * legacy.c: fixed compiling when configuring out the HTML parser
+ * Makefile.am: added a declaration for CVS_EXTRA_DIST
+ * HTMLparser.c: beginning of an attempt at cleaning up the construction
+ of the HTML parser data structures, current data generate a huge
+ amount of ELF relocations at loading time.
+
+Fri Sep 17 10:36:23 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * ChangeLog: applied fix from Stepan Kasal to fix duplication
+ in the change log and cleanup of space/tabs issues.
+
+Thu Sep 16 13:24:27 CEST 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/schemasInternals.h
+ test/schemas/bug152470_1.* result/schemas/bug152470_1_1*:
+ Simpified attribute wildcard creation and assignment to get rid
+ of memory leaks.
+ Restructured the validation process.
+ Restructured and expanded parsing of <attributeGroup>.
+ Added initial handing of xsi:type.
+ Advanced handling of xsi:nil (should work now for simple types).
+ Added construction of schemata using xsi:schemaLocation and
+ xsi:noNamespaceSchemaLocation; this is not enabled, since
+ no corresponding API exists yet.
+ Moved the content model to complex type components.
+ Resolution of types for attributes will look for simple types
+ only (incl. all the built-in simple types).
+ Extended parsing of 'anyAttribute'.
+ Fixed content-type type for complex types if derived from
+ 'anyType' using the short-hand form (see bug # 152470,
+ submitted by Thilo Jeremias).
+ * include/libxml/xmlschematypes.h: Cleaned up some comments.
+ * xstc/xstc.py: Workaround to accomodate case insensitive
+ test definitions in ms-test.def.xml.
+ * result/schemas/deter0_0_0.err result/schemas/ns0_0_2.err
+ result/schemas/ns0_1_2.err: Adapted.
+
+Sat Sep 11 09:04:22 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlwriter.c: changed char array initialisation to avoid a
+ complaint from some compiler(s) (bug 152308)
+
+Thu Sep 9 07:22:11 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * encoding.c: applied fixes for the UTF8ToISO8859x transcoding
+ routine suggested by Mark Itzcovitz
+
+Wed Sep 8 22:50:27 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c xmlsave.c: fixed 2 problems raised by #152140, one
+ which is that notation not in the internal subset should
+ not be saved, and the second more nasty on an error saving
+ NOTATIONs, if there is a proof that nobody uses notations !
+
+Wed Sep 8 11:04:27 CEST 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/xmlschemas.h: Added the function
+ xmlSchemaValidateOneElement to the XML Schema validation API,
+ as proposed by Jeffrey Fink - see bug # 152073.
+
+Tue Sep 7 11:10:36 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/Makefile.am xstc/Makefile.am: some cleanup
+ checking for xmllint and xsltproc in configure.in, fixed
+ make dist w.r.t. the new xstc subdir.
+ * doc/*: rebuilt
+
+Mon Sep 6 16:42:59 CEST 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xstc/xstc.py: Changed to finally validate instance documents.
+
+Mon Sep 6 16:04:01 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xstc/Makefile.am Makefile.am: integrated to "make valgrind",
+ heavy ... weight 250MB of VM !
+
+Mon Sep 6 14:54:39 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xstc/Makefile.am xstc/xstc-to-python.xsl xstc/xstc.py Makefile.am:
+ more cleanup in integrating the xstc testsuite
+
+Mon Sep 6 13:56:28 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in xstc/.cvsignore xstc/Makefile.am:
+ starting to integrate the xstc suite in the normal regression
+ tests
+
+Mon Sep 6 13:14:11 CEST 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xstc/sun-test-def.xml: The "tsDir" attribute was not
+ set correctly.
+
+Mon Sep 6 11:52:50 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * check-xinclude-test-suite.py: when output and expected do not match
+ exactly run diff to put the differences in the log c.f. #148691
+
+Mon Sep 6 11:17:35 CEST 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xstc/xstc-to-python.xslt xstc/ms-test-def.xml xstc/nist-test-def.xml
+ xstc/sun-test-def.xml: Initial release of generation files to
+ create python test scripts, which will run the W3C XML Schema Test
+ Collection. The ms-test-def.xml and sun-test-def.xml files
+ were extracted from the online HTML XSTC results [1], since they did
+ not exist for the SUN tests, and only partially did exist for the
+ MS tests. The NIST definition file was created by concatenation
+ of the existing definition files for each single datatype.
+ The stylesheet "xstc-to-python.xslt" should be run against the
+ definition files to produce the python scripts.
+ [1] "http://www.w3.org/XML/2001/05/xmlschema-test-collection/
+ results-master.html"
+
+Fri Sep 3 20:29:59 CEST 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/schemasInternals.h
+ include/libxml/xmlerror.h: Fixed a seg fault in xmlGetQNameProp:
+ a format argument was missing.
+ Fixed wrong assignment of the owner of a wildcard in
+ xmlSchemaBuildAttributeValidation (in the shorthandform of
+ <complexType>; this caused a seg fault, due to a double-free
+ of the wildcard.
+ Added a check for circular attribute group references.
+ Added a check for circular model group definition references.
+ Fixed a duplicate xmlParserErrors enum value - see bug #151738.
+
+Fri Sep 3 10:08:13 PDT 2004 William Brack <wbrack@mmmm.com.hk>
+
+ * xmlstring.c: modified comments on xmlGetUTF8Char in
+ response to bug 151760 (no change to logic)
+
+Tue Aug 31 09:46:18 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlstring.c: fixed error reported on the list caused by
+ my last change
+
+Tue Aug 31 15:41:52 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS configure.in doc/*: release of libxml2-2.6.13
+
+Tue Aug 31 14:14:30 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: fixing #151456, an encoding error could generate
+ a serialization loop.
+
+Tue Aug 31 11:34:04 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: also produce a tar ball with just the sources
+ * xmllint.c: added --path option and --load-trace options to
+ xmllint, RFE #147740 based on xsltproc versions
+ * doc/xmllint.* doc/*: updated the man page and rebuilt
+
+Tue Aug 31 10:37:23 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: "" is a valid hexbinary string dixit xmlschema-dev
+ * result/schemas/hexbinary_0_1.err test/schemas/hexbinary_1.xml:
+ update the test.
+ * test/ns5 result//ns5*: added a test for the namespace bug fixed
+ in previous commit.
+ * Makefile.am: added a message in the regression tests
+
+Mon Aug 30 23:36:21 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * SAX2.c: fixed bug introduced during OOM fixup causing problems
+ with default namespace when a named prefix with the same href
+ was present (reported on the mailing list by Karl Eichwalder.
+ * xmlstring.c: modified xmlCheckUTF8 with suggested code from
+ Julius Mittenzwei.
+ * dict.c: added a typecast to try to avoid problem reported by
+ Pascal Rodes.
+
+Mon Aug 30 12:45:46 CEST 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed a bug in xmlSchemasCheckFacet, which did
+ not create a computed value on a facet and thus crashed during
+ validation of instances.
+ Expanded validity checks for min/maxOccurs attributes.
+ Expanded validity checks for the value of the attribute "form".
+
+Fri Aug 27 18:32:24 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlstring.c: fixed a problem with xmlCheckUTF8 reported on the
+ mailing list by Julius Mittenzwei
+
+Fri Aug 27 00:13:39 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: added BuildRequires: zlib-devel, fixes
+ Red Hat bug #124942
+
+Thu Aug 26 12:27:23 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: remove a warning on Solaris
+ * xmlschemastype.c: fix a crashing bug #151111
+
+Wed Aug 25 22:20:18 CEST 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * test/schemas/import-bad-1_0.imp: Added missing test file.
+ * xmlschemas.c include/libxml/xmlerror.h include/libxml/xmlschemas.h:
+ Substituted the obsolete xmlSchemaValidError(s) for xmlParserErrors
+ - see #150840.
+ Changed the import of schemas to allow failure of location
+ of a resource to be imported.
+ * result/schemas/all_* result/schemas/any3_0_0.err
+ result/schemas/choice_* result/schemas/import1_0_0.err
+ result/schemas/list0_0_1.err result/schemas/list0_1_0.err
+ result/schemas/list0_1_1.err result/schemas/ns0_0_2.err
+ result/schemas/ns0_1_2.err: Adapted regression test results.
+
+Tue Aug 24 20:49:15 MDT 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/xmltutorial.xml, xmltutorial.pdf, *.html
+ fix Xpath memory leak (thanks to sKaBoy and William Brack)
+
+Tue Aug 24 21:10:59 CEST 2004 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * parser.c: fixed path problem in DTD loading reported by
+ Sameer Abhinkar
+
+Tue Aug 24 16:40:51 CEST 2004 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/configure.js: added support for version extra
+ * win32/Makefile.*: upgraded to zlib 1.2.1
+
+Mon Aug 23 14:33:54 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: removing -O -g from default gcc flags #150828
+
+Sun Aug 22 16:26:46 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/* NEWS: preparing 2.6.12 release, updated and
+ and rebuilt the docs.
+
+Sun Aug 22 16:07:20 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: fix a problem on last commit
+
+Sun Aug 22 15:16:53 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c xpath.c include/libxml/xpath.h
+ include/libxml/xpathInternals.h python/libxml.c
+ python/libxml_wrap.h: trying to remove some warning when compiling
+ on Fedora Core 3 and 64bits
+
+Sat Aug 21 0:035:10 CET 2004 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: modified parsing of <list>, <union>, <restriction>,
+ <sequence>, <choice>, <include>, <import>.
+ Fixed schema defaults (elementFormDefault, etc.) for included
+ schemas.
+ Fixed a bug which reported attributes as invalid on
+ elements declarations with the built-in type 'anyType'.
+ Added "lax" validation of the content of elements of type
+ 'anyType'.
+ Fixed: element declarations with the same name were treated
+ as duplicate if located in the subtree of <choice> -> <sequence>.
+ (This was bug 150623, submitted by Roland Lezuo)
+ Fixed cleanup of error codes in xmlSchemaValidateDoc as proposed
+ by Igor Kapitanker. (This was bug 150647, submitted by Igor
+ Kapitanker)
+ * xmlschemastypes.c: Changed the type of anyType to
+ XML_SCHEMAS_ANYTYPE.
+ * include/libxml/xmlerror.h: Added schema parser errors.
+ * result/schemas/bug145246_0_0*
+ result/schemas/extension1_0_2.err: Changed test results.
+ * result/schemas/ct-sc-nobase_0_0*
+ result/schemas/facet-whiteSpace_0_0*
+ result/schemas/import1_0_0* result/schemas/import2_0_0*
+ result/schemas/include2_0_0* result/schemas/include3_0_0*
+ result/schemas/restriction-attr1_0_0*
+ result/schemas/seq-dubl-elem1_0_0*
+ result/schemas/xsd-list-itemType_0_0*: Added new rest results.
+ test/schemas/bug145246.xsd.imp test/schemas/ct-sc-nobase_0*
+ test/schemas/facet-whiteSpace_0* test/schemas/import1_0*
+ test/schemas/import2_0* test/schemas/include2_0*
+ test/schemas/include3_0* test/schemas/restriction-attr1_0*
+ test/schemas/seq-dubl-elem1_0* test/schemas/xml.xsd
+ test/schemas/xsd-list-itemType_0*: Added new tests and missing
+ files.
+
+Fri Aug 20 18:51:36 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in: a bit of cleanup and a extra variable for
+ CVS dist
+
+Thu Aug 19 07:44:07 MDT 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.xml, xmllint.1, xmllint.html:
+ Edit and rebuild the man pages with Daniel's C14 update
+
+Wed Aug 18 19:15:27 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: fixed missing line numbers on entity as reported
+ on the list by Steve Cheng
+
+Wed Aug 18 14:04:31 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * configure.in globals.c include/libxml/xmlversion.h.in
+ include/libxml/xmlwin32version.h.in: added some code to
+ include the CVS ChangeLog version in the xmlParserVersion
+ string (printed by xmllint with --version)
+
+Wed Aug 18 11:14:06 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c include/libxml/xmlschemas.h python/generator.py
+ python/libxml.c python/libxml_wrap.h python/types.c
+ python/tests/schema.py python/tests/Makefile.am: Applied patch
+ from Torkel Lyng to add Schemas support to the Python bindings
+ and extend the schemas error API, registered a new test.
+ * doc/* elfgcchack.h: rebuilt to regenerate the bindings
+
+Mon Aug 16 14:36:25 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: added help for new set shell command
+ * xinclude.c xmllint.c xmlreader.c include/libxml/parser.h:
+ added parser option to not generate XInclude start/end nodes,
+ added a specific option to xmllint to test it fixes #130769
+ * Makefile.am: regression test the new feature
+ * doc/xmllint.1 doc/xmllint.xml: updated man page to document option.
+
+Mon Aug 16 02:42:30 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: small typo pointed out by Mike Hommey
+ * doc/xmllint.xml, xmllint.html, xmllint.1: slightly improved
+ the --c14n description, c.f. #144675 .
+ * nanohttp.c nanoftp.c: applied a first simple patch from
+ Mike Hommey for $no_proxy, c.f. #133470
+ * parserInternals.c include/libxml/parserInternals.h
+ include/libxml/xmlerror.h: cleanup to avoid 'error' identifier
+ in includes #137414
+ * parser.c SAX2.c debugXML.c include/libxml/parser.h:
+ first version of the implementation of parsing within
+ the context of a node in the tree #142359, new function
+ xmlParseInNodeContext(), added support at the xmllint --shell
+ level as the "set" function
+ * test/scripts/set* result/scripts/* Makefile.am: extended
+ the script based regression tests to instrument the new function.
+
+Sat Aug 14 18:53:08 MDT 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.xml, xmllint.html, xmllint.1:
+ add c14n to man page (man, it's hard to keep up with
+ Daniel!)
+
+Sat Aug 14 18:45:38 MDT 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.xml, xmllint.html, xmllint.1:
+ add pattern, walker, maxmem, output and xmlout to man page
+ fixes #144675
+
+Sun Aug 15 00:41:12 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: added a --c14n option to canonicalize the output
+ should close the RFE #143226
+
+Sat Aug 14 23:50:10 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: Dodji pointed out a bug in xmlGetNodePath()
+ * xmlcatalog.c: applied patch from Albert Chin to add a
+ --no-super-update option to xmlcatalog see #145461
+ and another patch also from Albert Chin to not crash
+ on -sgml --del without args see #145462
+ * Makefile.am: applied another patch from Albert Chin to
+ fix a problem with diff on Solaris #145511
+ * xmlstring.c: fix xmlCheckUTF8() according to the suggestion
+ in bug #148115
+ * python/libxml.py: apply fix from Marc-Antoine Parent about
+ the errors in libxml(2).py on the node wrapper #135547
+
+Sat Aug 14 13:18:57 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: added a dumb rule to able to compile tst.c
+ when people submit a sample test program
+ * xmlschemas.c: applied small patch from Eric Haszlakiewicz
+ to document xmlSchemasSetValidErrors() limitations, #141827
+ * error.c: Add information in generic and structured error
+ setter functions that this need to be done per thread #144308
+ * xmlsave.c: fixed bug whith missing NOTATION(s) serialization
+ bug #144162
+ * doc/xmllint.xml: typo fix #144840
+
+Tue Aug 10 07:19:31 PDT 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in xmlregexp.c xmlschemas.c xmlschemastypes.c
+ include/libxml/schemasInternals.h include/libxml/xmlerror.h
+ include/libxml/xmlschemastypes.h: applied Schemas patches
+ from Kasimier Buchcik
+ * test/ result/ bug141333* annot-err* any[1-4]* bug145246*
+ element-err* element-minmax-err* include1* restrict-CT-attr-ref*:
+ lot of new tests for things fixed by the patch
+
+Fri Aug 6 09:22:34 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * valid.c: fixed my mis-handling of External ID on last
+ change.
+
+Wed Aug 4 23:40:21 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * valid.c: changed the parsing of a document's DTD to use
+ the proper base path (bug 144366)
+
+Wed Aug 4 16:58:08 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am config.h.in configure.in python/Makefile.am:
+ applied a patch from Gerrit P. Haase to get python bindings
+ on Cygwin
+
+Tue Aug 3 15:08:22 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * include/libxml/valid.h: elaborated on description of
+ xmlValidityWarningFunc and xmlValidityErrorFunc (bug
+ 144760)
+ * xmlIO.c, xmlschemastypes.c, include/libxml/schemasinternals.h:
+ minor fixes to comments for doc rebuilding errors.
+ * doc/*.html: rebuilt the docs
+
+Tue Aug 3 23:59:23 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/ChangeLog.xsl doc/downloads.html doc/xml.html doc/*:
+ fixes documentation glitches raised by Oliver Stoeneberg
+
+Tue Aug 3 09:42:31 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * tree.c: fixed problem with memory leak on text nodes in DTD
+ (bug 148965) with patch provided by Darrell Kindred
+
+Tue Aug 3 08:14:44 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * HTMLparser.c: fixed initialisation problem for htmlReadMemory
+ (bug 149041)
+
+Sat Jul 31 11:01:33 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * doc/buildDocBookCatalog: enhanced per bug 119876. Further
+ info posted to the mailing list.
+
+Sat Jul 31 09:12:44 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * SAX2.c, encoding.c, error.c, parser.c, tree.c, uri.c, xmlIO.c,
+ xmlreader.c, include/libxml/tree.h: many further little changes
+ for OOM problems. Now seems to be getting closer to "ok".
+ * testOOM.c: added code to intercept more errors, found more
+ problems with library. Changed method of flagging / counting
+ errors intercepted.
+
+Fri Jul 30 13:57:55 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied a couple of patch one from Oliver Stoeneberg
+ and another one from Rob Richards fixing #148448
+
+Thu Jul 29 13:20:28 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: 1 line patch, apparently htmlNewDoc() was not
+ setting doc->charset.
+
+Thu Jul 29 00:05:58 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * SAX2.c, tree.c, uri.c, xmlIO.c, xmlreader.c: further
+ fixes for out of memory condition, mostly from Olivier
+ Andrieu.
+ * testOOM.c: some further improvement by Olivier, with
+ a further small enhancement for easier debugging.
+
+Tue Jul 27 00:34:07 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * SAX2.c, error.c, parser.c, tree.c, xmlreader.c:
+ implemented patches supplied by Olivier Andrieu
+ (bug 148588), plus made some further enhancements, to
+ correct some problems with out of memory conditions.
+ * testOOM.c: improved with patches from Olivier Andrieu
+
+Mon Jul 26 11:03:18 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * tree.c: put in patch for Windows buffer re-allocation
+ submitted by Steve Hay (bug 146697)
+
+Sun Jul 25 17:18:39 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: added some code to check, when an include is
+ done, whether the requested URL gets mapped to some other
+ location (e.g. with a catalog entry) and, if so, take care
+ of the xml:base properly (bug 146988)
+
+Sun Jul 25 14:02:24 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * error.c: fixed to assure user data param is set correctly
+ when user structured error handler is called (bug 144823)
+
+Thu Jul 22 10:14:48 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlreader.c: fixed problem with reader state after
+ processing attributes (bug 147993)
+
+Wed Jul 21 17:04:27 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * configure.in, Makefile.am: put in an auto* check for the
+ path to perl (if it exists), and modified make Timingtests
+ to use that path instead of just executing the dbgenattr.pl
+ script (bug 148056)
+
+Fri Jul 16 18:36:33 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * python/generator.py: added a check on the argument for some
+ classes (e.g. xmlDoc and xmlNode) to prevent a segfault (as
+ reported on the list). Further enhancement should be done
+ to auto-create the appropriate object.
+ * python/libxml.c: minor fix for a warning message; added a
+ routine, currently not used, to report the description of a
+ PyCObject.
+ * python/libxml2class.txt: regenerated
+
+Fri Jul 16 11:01:40 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c test/catalogs/white* result/catalogs/white*:
+ applied patches from Peter Breitenlohner to fix handling
+ of white space normalization in public ids and add tests
+
+Tue Jul 13 17:24:13 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c: applied a small fix from Steve Hay
+
+Tue Jul 13 23:02:19 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: Added code to in PREDICATE/FILTER handling to reset
+ the xpath context document pointer (part of fix to libxslt
+ bug 147445)
+
+Tue Jul 13 00:14:08 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * python/libxml.py: ran 'expand' on the file to get rid of mixture
+ of tabs and spaces (bug 147424)
+
+Sun Jul 11 22:38:29 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * python/drv_libxml.py: added an encoding "special comment" to avoid
+ warning message in python2.3 (bug 146889)
+ * Makefile.am, python/Makefile.am, python/tests/Makefile.am: small
+ change to make "make tests" a little quieter (MAKEFLAGS+=--silent)
+ * xpath.c: enhanced to take advantage of current libxslt handling
+ of tmpRVT. Fixes bug 145547.
+
+Fri Jul 9 14:02:54 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.h uri.c: fixed a couple of problems in the new
+ elfgcchack.h trick pointed by Peter Breitenlohner
+
+Wed Jul 7 00:45:48 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * elfgcchack.h doc/apibuild.py doc/libxml2-api.xml: fixed a bug
+ which prevented building with --with-minimum
+
+Mon Jul 5 19:43:51 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/*: releasing 2.6.11, updated and regenerated the
+ docs
+
+Mon Jul 5 18:43:47 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: make the push interfaces synchronous
+ * python/tests/sync.py: added a specific test
+ * python/tests/Makefile.am doc/examples/Makefile.am
+ doc/examples/index.py: added the new test, cleaning up
+ "make tests" output
+
+Mon Jul 5 15:09:17 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: applied patch from Kasimier to fix some Relax-NG
+ datatype facet problem with recent changes.
+
+Sat Jul 3 11:31:02 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * python/libxml.c: Changed the number of XPath extension functions
+ allowed to be variable-length (patch supplied by Marc-Antoine
+ Parent, bug 143805). Added code to "unregister" the functions
+ when the parser cleanup takes place.
+
+Fri Jul 2 14:22:14 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c python/libxml.c python/libxml2-python-api.xml:
+ some updates with memory debugging facilities while messing
+ with libxslt python bindings
+
+Thu Jul 1 14:53:36 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c python/generator.py python/libxml.py
+ python/libxml2-python-api.xml python/libxml2class.txt:
+ applied patch from Stéphane Bidoul to fix some Python bindings
+ initialization, then had to change the parserCleanup()
+ to handle memory released there.
+ * xmlmemory.c: added more debugging comments.
+
+Thu Jul 1 13:18:02 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: seems the reader buffer could be used while not
+ allocated, fixes bug #145218
+
+Thu Jul 1 11:34:10 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py: do not provide functions used as destructor
+ of classes as public methods to avoid double-free problem like
+ in bug #145185
+
+Wed Jun 30 19:45:23 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c, xmlschemastypes.c: warning message cleanup.
+ Now compiles warning-free, all tests passed.
+ * SAX2.c: small change to comments for documentation.
+ No change to logic.
+
+Tue Jun 29 15:00:13 PDT 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: more fixes with Kasimier, looks far cleaner :-)
+
+Tue Jun 29 23:00:05 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: Kasimier Buchcik fixed the memory access and
+ allocation problem
+
+Tue Jun 29 19:00:32 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c xmlschemastypes.c include/libxml/xmlerror.h
+ include/libxml/schemasInternals.h include/libxml/xmlschemastypes.h:
+ applied Schemas patches from Kasimier Buchcik, there is still
+ one open issue about referencing freed memory.
+ * test/schemas/* result/schemas/*: updated with new tests from
+ Kasimier
+
+Tue Jun 29 14:52:18 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/globals.h include/libxml/xmlIO.h
+ doc/libxml2-api.xml doc/libxml2-refs.xml: moved some definitions
+ to globals.h to avoid some troubles pointed out by Rob Richards
+
+Mon Jun 28 11:25:31 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.m4: applied changes suggested by Mike Hommey, remove
+ libxml1 support and use CPPFLAGS instead of CFLAGS
+
+Sun Jun 27 14:17:15 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: another, more 'experimental' feature to
+ get compiler optimization based on gcc runtime profiling
+
+Sun Jun 27 14:02:36 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * elfgcchack.h doc/elfgcchack.xsl libxml.h: hack based on Arjan van de
+ Ven suggestion to reduce ELF footprint and generated code. Based on
+ aliasing of libraries function to generate direct call instead of
+ indirect ones
+ * doc/libxml2-api.xml doc/Makefile.am doc/apibuild.py: added automatic
+ generation of elfgcchack.h based on the API description, extended
+ the API description to show the conditionals configuration flags
+ required for symbols.
+ * nanohttp.c parser.c xmlsave.c include/libxml/*.h: lot of cleanup
+ * doc/*: regenerated the docs.
+
+Sun Jun 27 10:02:28 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * regressions.py, regressions.xml: new files for running
+ regression tests under Python. Not yet complete, but
+ should provide good testing under both Linux and Windows.
+ * testHTML.c, testSAX.c, xmllint.c: changed the 'fopen' used
+ for --push testing to include the 'rb' param when compiled
+ under Windows.
+
+Fri Jun 25 13:38:57 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * uri.c: fixed a problem when base path was "./xxx"
+ * result/XInclude/*: 5 test results changed by above.
+ * Makefile.am: fixed a couple of spots where a new
+ result file used different flags that the testing one.
+
+Thu Jun 24 16:27:44 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * valid.c: suppressed warnings from within xmlValidGetValidElements
+ (bug 144644)
+ * doc/examples/testWriter.c: corrected typo in comment for ISO-8859-1
+ (bug 144245)
+
+Thu Jun 24 10:17:31 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * valid.c: implemented bugfix from Massimo Morara for DTD
+ dumping problem.
+ * test/valid/t10.xml, result/valid/t10.*: added regression
+ for above
+ * configure.in: small change for my profile settings
+
+Wed Jun 23 20:18:19 MDT 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmlcatalog_man.xml, xmlcatalog.1
+ Docs patch from Ville Skytta, bugzilla #144841
+
+Sat Jun 19 18:34:11 MDT 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.xml, xmllint.html, xmllint.1
+ update man page to reflect William's newly disciplined return
+ code mojo
+
+Thu Jun 17 00:51:55 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/io2.c doc/examples/parse4.c: fixing a couple of
+ compilation errors when configured with --with-minimum
+
+Wed Jun 16 16:07:10 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: applied patch from Stefano Debenedetti to register
+ namespaces in the debug shell
+
+Mon Jun 14 21:56:31 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fix from Steve Ball and update of the comment.
+ * Makefile.am result/errors/*.str: William pointed out that
+ the streaming error checking part wasn't streaming, fixing
+
+Mon Jun 14 14:11:52 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: patch from Igor for the default catalog path on Windows
+
+Sat Jun 12 09:03:57 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * configure.in: apparently wasn't updated last time
+
+Thu Jun 10 20:57:48 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * configure.in, xmlmemory.c, globals.c: fixed problem when
+ configuring using --with-thread-alloc
+
+Wed Jun 9 16:31:24 CEST 2004 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/configure.js win32/Makefile.* minor changes for the new
+ layout of the Windows binary package
+
+Tue Jun 8 19:50:25 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c include/libxml/xmlerror.h: applied another patch
+ from Kasimier Buchcik for Schema Component Constraints
+ * test/schemas/* result/schemas/*: added the regression tests
+
+Tue Jun 8 21:27:03 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmllint.c: fixed missing error return code for schema
+ validation (bug 143880), also changed over to an enum for
+ defining the error return codes for all conditions.
+
+Tue Jun 8 14:01:14 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c xmlreader.c include/libxml/parser.h: fixed a serious
+ problem when substituing entities using the Reader, the entities
+ content might be freed and if rereferenced would crash
+ * Makefile.am test/* result/*: added a new test case and a new
+ test operation for the reader with substitution of entities.
+
+Tue Jun 8 12:14:16 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c xmlIO.c include/libxml/globals.h include/libxml/xmlIO.h:
+ applied patch from Rob Richards for the per thread I/O mappings
+
+Tue Jun 8 09:58:31 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: some further enhancement to take care of
+ xml:base for XPointer elements (bug 143886). Also fixed
+ a problem when xml:base was already specified on an
+ XInclude'd element.
+
+Mon Jun 7 22:14:58 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * relaxng.c: fixed a problem with internal cleanup of <DIV> element
+ (bug 143738).
+
+Mon Jun 7 16:57:43 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * uri.c, include/libxml/uri.h: added a new routine
+ xmlBuildRelativeURI needed for enhancement of xinclude.c
+ * xinclude.c: changed handling of xml:base (bug 135864)
+ * result/XInclude/*: results of 5 tests changed as a result
+ of the above change
+
+Fri Jun 4 11:27:37 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * test/schemas/* result/schemas/*: added a bunch of tests from
+ Kasimier Buchcik posted on May 11
+
+Thu Jun 3 17:58:25 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: new patch from Kasimier Buchcik for processContents
+ of wildcards attribute handling
+ * test/schemas/anyAttr-* result/schemas/anyAttr-*: added specific
+ regression tests
+
+Thu Jun 3 13:20:36 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed a bug where invalid charrefs may not be detected
+ sometimes as pointed by Morus Walter.
+ * test/errors/charref1.xm result/errors/charref1.xml*: added the
+ test in the regression suite.
+
+Thu Jun 3 18:38:27 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c: small change to xmlSchemaValidateAttributes,
+ also corrected typo on error code enum.
+ * include/libxml/xmlerror.h: corrected typo on schema error
+ code enum
+
+Thu Jun 3 10:12:38 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c: minor cosmetic changes, no change to logic.
+ * result/schemas/attruse_0_[12].err: regenerated
+ * globals.c: added a newline at end to make gcc happy
+
+Wed Jun 2 21:16:26 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c include/libxml/schemasInternals.h
+ include/libxml/xmlerror.h: applied a patch from Kasimier Buchcik
+ implementing attribute uses and wildcards.
+ * test/schemas/* result/schemas/*: added/fixed a bunch of tests
+
+Wed Jun 2 18:15:51 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c xmlIO.c include/libxml/globals.h: applied patch from
+ Rob Richards for custom I/O BufferCreateFilenane fixes bug
+ #143366
+
+Wed Jun 02 16:25:32 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed problem with predicate evaluation on an
+ empty nodeset (bug 143409)
+
+Wed Jun 02 11:26:41 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * testSAX.c: fixed problem with attribute listing (bug 142674)
+ and added macro LIBXML_TEST_VERSION to assure xmlInitParser
+ gets called (bug 142686)
+
+Sat May 29 21:35:52 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * test/schemas/date_0.xml xmlschemastypes.c: applied a patch from
+ Charles Bozeman fixing a side effect in date handling
+
+Thu May 27 19:47:48 MDT 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/xmltutorial.xml fix lack of cast in Xpath example
+ * doc/tutorial/*.html, xmltutorial.pdf rebuild html, pdf
+
+2004-05-25 Aleksey Sanin <aleksey@aleksey.com>
+
+ * c14n.c: fixed c14n bug with serializing attribute namespaces
+
+Mon May 24 08:22:48 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed to allow '+' in exponent of number
+ (bug 143005)
+ * SAX2.c: fixed typo in last commit
+
+Sat May 22 09:08:24 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * SAX2.c: skipped call to xmlValidateNCName when compiling
+ --with-minimum (bug 142917)
+
+Tue May 18 06:48:00 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: reverted the broken change.
+
+Mon May 17 23:07:15 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS doc/*: updated the docs for 2.6.10
+
+Mon May 17 05:52:03 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in : releasing 2.6.10
+
+Sun May 16 23:12:35 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: avoid returning default namespace when searching
+ from an attribute
+ * entities.c xmlwriter.c: reverse xmlEncodeSpecialChars() behaviour
+ back to escaping " since the normal serialization routines do not
+ use it anymore, should close bug #134477 . Tried to make
+ the writer avoid it too but it didn't work.
+
+Sun May 16 01:07:16 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/ChangeLog.awk doc/ChangeLog.xsl: fixed escaping
+ handling and added direct links to bugzilla report for
+ bug numbers.
+
+Sun May 16 11:11:13 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * error.c: modified to assure proper user data is sent to
+ structured error routine (bug 142598)
+
+Sun May 16 03:18:52 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: a couple of large static variable which should really
+ not be declared as such cluttered the .bss section.
+
+Sun May 16 03:06:31 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/ChangeLog.awk: fixed a couple of problems when parsing
+ libxslt ChangeLog
+
+Sat May 15 20:14:21 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/ChangeLog.awk doc/ChangeLog.xsl: first steps of a good
+ ChangeLog page generation. The awk shoudl escape characters
+ not okay in XML and the xslt should make links to functions
+ or variables or bug reported in the entries.
+
+Sat May 15 14:57:40 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c include/libxml/xmlsave.h: start adding API for
+ escaping customization.
+
+Sat May 15 12:38:17 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: more xmlSave cleanup, optimization and refactoring
+
+Fri May 14 17:51:48 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c xmlsave.c: third pass at the escaping refactoring.
+
+Fri May 14 12:37:24 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: enhanced the enhancement, fixed another couple of
+ special cases.
+
+Fri May 14 11:48:33 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: small enhancement to dtd handling of (a?)+ (bug 142487)
+
+Thu May 13 23:19:00 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c xmlsave.c include/libxml/xmlIO.h: second pass on escaping
+ handling, start to looks better, need to be completed and added
+ directly at the saving context level.
+
+Thu May 13 10:31:28 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c xmlsave.c include/libxml/xmlIO.h: first pass at refactoring
+ the escape on save routines for better performances (less malloc)
+ and more flexibility using the new saving context. Preliminary
+ work, interface will change.
+
+Wed May 12 22:34:03 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c: added code in xmlSchemaBuildAContentModel to handle
+ element reference within the xs:all construct (bug 139897)
+
+Wed May 12 17:27:18 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: a little further fixing of fallback processing, this
+ time for fallback with children (bug 139520).
+
+Wed May 12 08:21:33 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c: added code in xmlSchemaBuildContentModel to
+ allow ref in group definition (bug 134411). Also fixed
+ misc compilation warning messages.
+ * result/schema/group0_0_0, result/schema/group0_0_0.err:
+ regenerated (now no error reported).
+
+Tue May 11 11:55:59 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: fix to the fix for #141864 from Paul Elseth
+ * HTMLparser.c result/HTML/doc3.htm: apply fix from David Gatwood for
+ #141195 about text between comments.
+
+Tue May 11 23:04:47 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c, include/libxml/schemasInternals.h,
+ include/libxml/xmlerror.h: Applied patches supplied by
+ Kasimier Buchcik.
+ * test/schemas/po1_0.xml, test/schemas/po1_0.xsd:
+ changed test to account for above patch.
+
+Tue May 11 09:06:53 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/tests/tstLastError.py: better portability fix for f(*args),
+ use apply(f, args) as Stéphane Bidoul suggested
+
+Mon May 10 15:49:22 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlregexp.c: enhanced xmlRegStateAddTrans to check if transition
+ is already present and, if so, to ignore the request to add it.
+ This has a very dramatic effect on memory requirements as well
+ as efficiency. It also fixes bug 141762.
+
+Sun May 9 20:40:59 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am python/tests/Makefile.am python/tests/tstLastError.py:
+ applied patch from Ed Davis to allow "make tests" to work
+ with Python 1.5
+
+Sun May 9 19:46:13 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: apply fix for XHTML1 formatting from Nick Wellnhofer
+ fixes bug #141266
+ * test/xhtmlcomp result//xhtmlcomp*: added the specific regression
+ test
+
+Sun May 9 14:07:21 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: fix for a pedantic make check without make all request
+
+Sat May 8 22:56:22 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c xmlIO.c: fixing some problems in URI unescaping
+ and output buffer opening, this should fix #141864
+
+Fri May 7 22:31:54 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c include/libxml/valid.h: fixes the use of 'list' as a parameter
+ * xmlIO.c include/libxml/xmlIO.h: added xmlPopInputCallback for
+ Matt Sergeant
+
+Thu May 6 21:14:38 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlregexp.c: enhanced the handling of subexpression ranges
+ which have a minOccurs of 0 (bug 140478 again); cleaned up
+ comments throughout the module.
+
+Tue May 4 00:52:16 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: adding a --maxmem option to check memory used.
+
+Sat May 1 01:08:44 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c xmlsave.c python/generator.py python/libxml.c: Fixed
+ bug #141529 i.e. various problems when building with --without-html
+
+Fri Apr 30 18:12:31 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c xmlreader.c: fixing bug #141384 where the reader didn't
+ call the deregistering functions. Also added the check to
+ xmllint --stream --chkregister .
+
+Fri Apr 30 08:57:47 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * win32/Makefile.msvc: applied a second patch from Mark Vakoc for
+ regression tests on Windows
+
+Thu Apr 29 21:47:23 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: never commit without running make tests first !
+
+Thu Apr 29 20:15:20 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fix a nasty problem with reading over the end
+ * xmlsave.c: fix a reported memory leak apparently
+
+Thu Apr 29 17:05:00 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * win32/Makefile.msvc: patch from Mark Vakoc for regression tests
+ on Windows.
+ * xpath.c: the NaN problem also shows up on Borland
+
+Mon Apr 26 23:37:12 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlregexp.c: enhanced xmlFARegExec range evaluation for min
+ occurs 0 problems - fixes bug 140478.
+
+Thu Apr 22 09:12:47 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * rngparser.c: tiny path fixes the "xmlConvertCRNGFile" function name
+ from Kasimier Buchcik
+ * xmlschemas.c: recursive xs:extension fix from taihei goi
+
+Wed Apr 21 00:19:29 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: small buffer resizing improvement from Morten Welinder
+ closes #140629
+
+Tue Apr 20 23:40:14 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: last version of the fix for MSC version 1200
+
+Tue Apr 20 19:40:37 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: killing the strncmp vs. memcmp controversy and #140593
+
+Tue Apr 20 13:27:06 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/SAX2.h: Kasimier Buchcik pointed out some
+ inexistent functions, cleaned them out.
+
+Tue Apr 20 11:42:50 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * error.c: Johnson Cameron pointed out that
+ initGenericErrorDefaultFunc() was really wrong.
+ * xmlreader.c include/libxml/xmlreader.h: xmlTextReaderMode enum
+ must be made public, added some missing comments on the XMLReader
+ header.
+ * c14n.c: Alexsey fixed C14N bug with processing namespaces
+ from attributes
+
+Mon Apr 19 23:27:46 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed a stupid () error + Mark name.
+
+Sun Apr 18 23:45:46 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing 2.6.9 release
+ * doc/* News: updated and rebuilt the docs
+
+Sun Apr 18 22:51:43 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: relaxed id() to not check taht the name(s) passed
+ are actually NCName, decided this in agreement with Aleksey Sanin
+ since existing specs like Visa3D broke that conformance checking
+ and other tools seems to not implement it sigh...
+ * SAX2.c: check attribute decls for xml:id and the value is an
+ NCName.
+ * test/xmlid/id_err* result/xmlid/id_err*: added error testing
+
+Sun Apr 18 21:46:17 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: work around Microsoft compiler NaN bug raise reported
+ by Mark Vakoc
+ * xmlschemas.c include/libxml/schemasInternals.h
+ include/libxml/xmlerror.h: fixed a recusive extention schemas
+ compilation error raised by taihei goi
+
+Sun Apr 18 16:57:02 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: keep the ChangeLog compressed
+ * xmlreader.c: fix a segfault when using Close()
+ * python/tests/Makefile.am python/tests/reader8.py: test for
+ the Close() reader API.
+
+Sat Apr 17 22:42:13 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c, xmlwriter.c, doc/examples/parse4.c,
+ doc/examples/io2.c: minor warning cleanup (no change to logic)
+ * xinclude: fixed return value for internal function
+ xmlXIncludeLoadFallback (now always 0 or -1)
+
+Sat Apr 17 21:32:32 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * valid.c: small enhancement to fix bug 139791
+
+Fri Apr 16 18:44:47 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c include/libxml/schemasInternals.h
+ include/libxml/xmlerror.h: applied patches from Kasimier Buchcik
+ for the attribute use support
+ * test/schemas/attruse* result/schemas/attruse*: added the
+ tests to the regression suite.
+
+Fri Apr 16 18:22:25 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: move the TODO as comments as the function while not
+ finished are usable as-is
+ * xmlschemas.c include/libxml/xmlerror.h: patch from Kasimier Buchcik
+ implementing union
+ * test/schemas/union_0_0.x* result/schemas/union_0_0*: added example
+ * python/Makefile.am: applied fix from Mike Hommey
+
+Fri Apr 16 23:58:42 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: fixed problem with detecting external dtd
+ encoding (bug 135229).
+ * Makefile.am: minor change to test label
+
+Fri Apr 16 16:09:31 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: fixed problem causing duplicate fallback
+ execution (bug 139520)
+ * test/XInclude/docs/fallback2.xml result/XInclude/fallback2.*:
+ added testcase
+
+Fri Apr 9 23:49:37 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c include/libxml/tree.h: adding xml:id draft support
+ * Makefile.am test/xmlid/id_tst* result/xmlid/id_tst*: adding
+ 4 first regression tests
+
+Fri Apr 9 11:56:08 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: fixing Red Hat bug #120482 , libxml2-python
+ should depend on the version of python used to compile it.
+
+Mon Apr 5 09:07:24 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied patch from James Bursa, frameset should
+ close head.
+
+Fri Apr 2 22:02:24 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * relaxng.c: fixed problem in xmlRelaxNGCompareNameClasses
+ which was causing check-relaxng-test-suite.py test 351 to fail.
+
+Fri Apr 2 17:03:48 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * nanohttp.c: implemented fix for M$ IIS redirect provided
+ by Ian Hummel
+ * relaxng.c: fixed problem with notAllowed compilation
+ (bug 138793)
+
+Thu Apr 1 22:07:52 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: fix for xmlUriEscape on "http://user@somewhere.com"
+ from Mark Vakoc.
+
+2004-04-01 Johan Dahlin <johan@gnome.org>
+
+ * python/.cvsignore: Add generated files, to make cvs silent.
+
+Thu Apr 1 12:41:36 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: small signed-ness patch from Steve Little
+
+Wed Mar 31 17:47:28 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: patched a bug in parsing production 1 and 2 of
+ xmlschemas regexp that William pointed out while working on
+ #134120
+ * test/regexp/branch result/regexp/branch: added a specific
+ regression test
+
+Wed Mar 31 09:50:32 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * Makefile.am: added PYTHONPATH to python tests for Schemas
+ and RelaxNG
+ * test/xsdtest/xsdtestsuite.xml: added testfile for
+ SchemasPythonTests
+
+Mon Mar 29 16:56:49 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/examples.xsl doc/examples/index.html: added
+ information about compiling on Unix
+
+Mon Mar 29 14:18:12 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: fixes the comments for xmlCatalogDump and xmlDumpACatalog
+ * doc/*: rebuilt to update
+
+Sun Mar 28 18:11:41 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: optimize indentation based on the new context
+
+Sun Mar 28 14:17:10 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/xpath2.c doc/examples/xpath2.res: handle and explain
+ a very tricky problem when modifying the tree based on an XPath
+ result query.
+
+Sat Mar 27 09:56:14 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * relaxng.c: fixed problem with IS_COMPILABLE flag
+ (bug 130216)
+
+Fri Mar 26 18:28:32 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied patch from Dave Beckett to correct line number
+ errors when using push with CDATA
+
+Fri Mar 26 14:53:58 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/xpath1.c: added a test template
+ * doc/examples/xpath2.c doc/examples/xpath2.res doc/examples/*:
+ added a new example, and make valgrind target
+
+Fri Mar 26 11:47:29 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: apply fix for #136693
+
+Thu Mar 25 20:21:01 MST 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/examples/io2.c
+ * doc/examples/io2.res
+ add xmlDocDumpMemory example in response to mailing list FAQ
+ (rebuilt xml and html also)
+
+Thu Mar 25 10:33:05 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c testXPath.c xmllint.c xmlschemastypes.c: applied
+ patch from Mark Vakoc avoiding using xmlParse* option and use
+ xmlRead* instead
+ * win32/Makefile.bcb: patch to Borland C++ builder from Eric Zurcher
+ to avoid problems with some pathnames.
+
+Tue Mar 23 12:35:08 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/* News: preparing 2.6.8 release, updated and rebuilt
+ the docs.
+ * Makefile.am: use valgring fro the new Python based regression tests
+
+Mon Mar 22 20:07:27 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: remove a memory leak on schemas type facets.
+ * check-relaxng-test-suite.py check-relaxng-test-suite2.py
+ check-xsddata-test-suite.py: reduce verbosity
+ * configure.in Makefile.am: incorporated the Python regressions
+ tests for Relax-NG and Schemas Datatype to "make tests"
+
+Mon Mar 22 16:16:18 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c include/libxml/xmlwriter.h doc/* : applied patch from
+ Alfred Mickautsch for better DTD support.
+ * SAX2.c HTMLparser.c parser.c xinclude.c xmllint.c xmlreader.c
+ xmlschemas.c: fixed bug #137867 i.e. fixed properly the way
+ reference counting is handled in the XML parser which had the
+ side effect of removing a lot of hazardous cruft added to try
+ to fix the problems associated as they popped up.
+ * xmlIO.c: FILE * close fixup for stderr/stdout
+
+Sun Mar 21 19:19:41 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * relaxng.c: added an error message when an element is not
+ found within a <choice> (bug 126093)
+
+Sat Mar 20 22:25:18 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlregexp.c: enhanced the logic of parsing char groups to
+ better handle initial or ending '-' (bug 135972)
+
+Sat Mar 20 19:26:03 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * relaxng.c: added check for external reference in
+ xmlRelaxNGGetElements (bug 137718)
+ * test/relaxng/rngbug-001.*, result/relaxng/rngbug-001*: added
+ regression test for above
+
+Wed Mar 17 16:37:22 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * nanohttp.c: added a close for the local file descriptor
+ (bug 137474)
+
+Mon Mar 15 15:46:59 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: switched the output routines to use the new context.
+
+Mon Mar 15 10:37:18 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * relaxng.c: enhanced to ignore XML_XINCLUDE_START and XML_XINCLUDE_END
+ nodes (bug 137153)
+
+Sun Mar 14 13:19:20 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: applied patch from John Belmonte for anyURI.
+
+Wed Mar 10 17:22:48 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix bug reported by Holger Rauch
+ * test/att8 result/noent/att8 result/att8 result/att8.rdr
+ result/att8.sax: added the test to th regression suite
+
+Wed Mar 10 19:42:22 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * doc/search.php: Minor change for later verson of php requiring
+ $HTTP_GET_VARS.
+
+Wed Mar 10 00:12:31 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * tree.c: Changed the flag to xmlDocCopyNode (and similar routines),
+ previously used only for recursion, to use a value of '2' to
+ indicate copy properties & namespaces, but not children.
+ * xinclude.c: changed the handling of ranges to use the above new
+ facility. Fixes Bug 134268.
+
+Tue Mar 9 18:48:51 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * win32/Makefile.bcb, win32/Makefile.mingw, win32/Makefile.msvc:
+ added new module xmlsave with patch supplied by Eric Zurcher
+ (second attempt - don't know what happened to the first one!)
+
+Tue Mar 9 09:59:25 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c python/libxml.py: applied patch from Anthony Carrico
+ providing Python bindings for the Canonicalization C14N support.
+
+Mon Mar 8 11:12:23 CET 2004 Hagen Moebius <hagen.moebius@starschiffchen.de>
+
+ * .cvsignore and python/.cvsignore patched
+
+Mon Mar 8 22:33:14 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: enhanced to assure that if xpointer is called
+ for a document, the XML_PARSE_NOENT flag is set before parsing
+ the included document so that entities will automatically get
+ taken care of.
+ * xpointer.c: corrected code so that, if an XML_ENTITY_REF node
+ is encountered, it will log it and not crash (bug 135713)
+
+Sun Mar 7 19:03:48 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: modified to make sub-includes inherit the
+ parse flags from the parent document (bug 132597)
+
+Fri Mar 5 01:13:22 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: QName handling fixes for the XML Schemas
+ support from Adam Dickmeiss
+ * test/schemas/po1_0.xsd: also fix the schemas
+ * test/schemas/ns[12]* result/schemas/ns[12]*: added the specific
+ regression tests
+
+Thu Mar 4 23:03:02 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/Makefile.am include/libxml/Makefile.am:
+ paalied patch from Julio M. Merino Vidal fixing bug #134751
+ to fix --with-html-dir option.
+ * doc/*: rebuilt fully the docs
+ * doc/html/libxml-xmlsave.html: new file from new header.
+
+Thu Mar 4 16:57:50 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c testHTML.c tree.c doc/examples/*.c
+ include/libxml/xmlsave.h: fixing compilation bug with some options
+ disabled as well as --with-minimum should fix #134695
+
+Thu Mar 4 15:00:45 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlcatalog.c: allow fallback to URI lookup when SYSTEM fails,
+ should close #134092
+
+Thu Mar 4 14:39:38 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am tree.c xmlsave.c include/libxml/xmlsave.h: commiting
+ the new xmlsave module before the actuall big code change.
+
+Thu Mar 4 12:38:53 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: applied patch from Adam Dickmeiss for mixed content
+ * test/schemas/mixed* result/schemas/mixed*: added his regression
+ tests too.
+
+Mon Mar 1 15:22:06 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * testSAX.c: fix a compilation problem about a missing timb include
+
+Sat Feb 28 22:35:32 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * testSAX.c: small enhancement to prevent trying to print
+ strings with null pointers (caused "make tests" errors on
+ HP-UX)
+
+Thu Feb 26 20:19:40 MST 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.xml
+ * doc/xmllint.1
+ * doc/xmllint.html
+ * doc/xmlcatalog_man.xml
+ * doc/xmlcatalog.1
+ * doc/xmlcatalog_man.html
+ applying patch from Mike Hommey to clarify XML_CATALOG_FILES
+ use
+
+Thu Feb 26 23:47:43 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: patch for cross-compilation to Windows from
+ Christophe de VIENNE.
+
+Thu Feb 26 18:52:11 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * doc/*.html, doc/html/*.html: regenerated docs using older
+ version of xsltproc pending resolution of AVT problem
+
+Thu Feb 26 10:56:29 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: applied patch from Charles Bozeman to not use
+ the system xmllint.
+
+Wed Feb 25 18:07:05 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlexports.h: applied patch from Roland Schwingel
+ for MingW
+
+Wed Feb 25 13:57:25 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am catalog.c configure.in: applied a cleanup patch
+ from Peter Breitenlohner
+ * tree.c: removed a doc build warning by fixing a param comment
+ * doc/* : rebuilt the docs
+
+Wed Feb 25 13:33:07 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c HTMLparser.c: avoid ID error message if using
+ HTML_PARSE_NOERROR should fix #130762
+
+Wed Feb 25 12:50:53 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c relaxng.c valid.c xinclude.c xmllint.c xmlreader.c:
+ fixing compilation and link option when configuring with
+ --without-valid should fix #135309
+
+Wed Feb 25 11:36:06 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: fixed the main issues reported by Peter Breitenlohner
+ * parser.c: cleanup
+ * valid.c: speedup patch from Petr Pajas
+
+Wed Feb 25 16:07:14 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed a memory leak (xmlXPathLangFunction) reported
+ on the list by Mike Hommey
+
+Mon Feb 23 17:28:34 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/* NEWS configure.in: preparing 2.6.7 release, updated and
+ rebuilt the documentation.
+
+Mon Feb 23 11:52:12 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/tests/*.py: applied patch from Malcolm Tredinnick
+ to avoid tabs in python sources, should fix #135095
+
+Sun Feb 22 23:16:23 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * testSAX.c: add --timing option
+ * relaxng.c: use the psvi field of the nodes instead of _private
+ which may be used for other purposes.
+
+Sat Feb 21 16:57:48 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: small patch to try to fix a warning with Sun One compiler
+
+Sat Feb 21 16:22:35 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: small patch removing a warning with MS compiler.
+
+Sat Feb 21 13:52:30 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: added "relaxng" option to the debugging shell
+ * Makefile.am test/errors/* result/errors/*: some regression tests
+ for some error tests cases.
+
+Fri Feb 20 09:56:47 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: xmlAttrSerializeTxtContent don't segfault if NULL
+ is passed.
+ * test/att7 result//att7*: adding an old regression test
+ laying around on my laptop
+
+Thu Feb 19 17:33:36 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fixed xmllint --memory --stream memory consumption
+ on large file by using xmlParserInputBufferCreateStatic() with
+ the mmap'ed file
+
+Thu Feb 19 13:56:53 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: some clarification in xmlDocDumpMemory() documentation
+ * xmllint.c: fixed xmllint --stream --timing to get timings back
+
+Wed Feb 18 15:20:42 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed a problem in push mode when attribute contains
+ unescaped '>' characters, fixes bug #134566
+ * test/att6 result//att6*: added the test to the regression suite
+
+Tue Feb 17 17:26:31 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: removing a non-linear behaviour from ID/IDREF raised
+ by Petr Pajas. Call xmlListAppend instead of xmlListInsert in
+ xmlAddRef
+
+Tue Feb 17 13:27:27 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/tests/indexes.py python/tests/reader.py: indicated
+ encoding of the test file, needed for python 2.3
+
+Tue Feb 17 21:08:11 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed problem with numbers having > 19
+ fractional places (bug 133921)
+
+Tue Feb 17 12:47:20 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: applied optimization patch from Petr Pajas
+
+Tue Feb 17 12:39:08 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c include/libxml/xmlwriter.h: applied update
+ from Alfred Mickautsch and the added patch from Lucas Brasilino
+
+Sun Feb 15 12:01:30 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * benchmark.png index.html xml.html: updating the benchmark
+ graph and using a PNG instead of a GIF
+ * xmlreader.c: updated the TODO
+
+Sat Feb 14 18:55:40 MST 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/xmltutorial.xml
+ * doc/tutorial/xmltutorial.pdf
+ * doc/tutorial/*.html
+ Fix bug in XPath example in the tutorial, thanks to Carlos, whose
+ last name I don't know, for pointing this out
+
+Thu Feb 12 16:28:12 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS configure.in: preparing release of 2.6.6
+ * doc/*: updated the docs and rebuilt them
+
+Thu Feb 12 13:41:16 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: fixing bug #132930 with the provided patch, a bit
+ suspicious about it but this is fairly contained and regression
+ tests still passes.
+ * test/schemas/all1* result/schemas/all1*: added the test to
+ the regression suite.
+
+Thu Feb 12 12:54:26 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed bug #132575 about finding the end of the
+ internal subset in push mode.
+ * test/intsubset.xml result/intsubset.xml* result/noent/intsubset.xml:
+ added the test to the regression suite
+
+Wed Feb 11 14:19:31 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c xmlIO.c encoding.c include/libxml/parser.h
+ include/libxml/xmlIO.h: added xmlByteConsumed() interface
+ * doc/*: updated the benchmark rebuilt the docs
+ * python/tests/Makefile.am python/tests/indexes.py: added a
+ specific regression test for xmlByteConsumed()
+ * include/libxml/encoding.h rngparser.c tree.c: small cleanups
+
+Wed Feb 11 08:13:58 HKT 2004 William Brack <wbrack@mmm.com.hk
+
+ * tree.c: fixed missing output of internal DTD param entities when
+ nothing else present in DTD (bug 134052)
+
+Tue Feb 10 19:24:38 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * encoding.c: applied patch supplied by Christophe Dubach
+ to fix problem with --with-minimum configuration
+ (bug 133773)
+ * nanoftp.c: fixed potential buffer overflow problem,
+ similar to fix just applied to nanohttp.c.
+
+Mon Feb 9 18:40:21 CET 2004 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * nanohttp.c: fixed the fix for the buffer overflow, thanx
+ William :-)
+
+Mon Feb 9 22:37:14 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * acinclude.m4, configure.in: fixed problem concerning
+ determining SOCKLEN_T as pointed out by Daniel Richard G.
+ on the mailing list
+
+Mon Feb 9 15:31:24 CET 2004 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * nanohttp.c: fixed buffer overflow reported by Yuuichi Teranishi
+
+Mon Feb 9 13:45:59 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: small patch from Philip Ludlam to avoid warnings.
+
+Mon Feb 9 13:41:47 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: applied a small patch from Alfred Mickautsch
+ to avoid an out of bound error in isolat1ToUTF8()
+
+Mon Feb 9 13:35:50 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: remove the warning on the 2001 namespace
+ * parser.c parserInternals.c xpath.c: remove some warnings
+ when compiling with MSVC6
+ * nanohttp.c: applied a patch when using _WINSOCKAPI_
+
+Sun Feb 8 12:09:55 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: added a small hack to fix interference between
+ my fixes for bugs 132585 and 132588.
+ * python/libxml.c: fixed problem with serialization of namespace
+ reported on the mailing list by Anthony Carrico
+
+Sat Feb 7 16:53:11 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: fixed problem with function xmlXIncludeCopyRange
+ (bug 133686).
+
+Fri Feb 6 21:03:41 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlwriter.c: fixed problem with return value of
+ xmlTextWriterWriteIndent() (bug 133297)
+
+Fri Feb 6 19:07:04 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: changed coding to output good XIncludes when
+ one or more bad ones are present (bug 132588)
+
+Fri Feb 6 17:34:21 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: corrected handling of empty fallback condition
+ (bug 132585)
+
+Fri Feb 6 15:28:36 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * HTMLparser.c: added initialisation for ctxt->vctxt
+ in HTMLInitParser (bug 133127)
+ * valid.c: minor cosmetic change (removed ATTRIBUTE_UNUSED
+ from several function params)
+
+Tue Feb 3 16:48:57 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: fixed problem regarding freeing of dictionary
+ when there are errors within an XInclude file (bug 133106).
+ Thanks to Oleg Paraschenko for the assistance.
+
+Tue Feb 3 09:53:18 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemastypes.c: fixed validation of maxLength with no
+ content using patch submitted by Eric Haszlakiewicz
+ (bug 133259)
+
+Tue Feb 3 09:21:09 CET 2004 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * include/libxml/xmlreader.h include/libxml/xmlmemory.h: added
+ calling convention to the public function prototypes (rep by
+ Cameron Johnson)
+ * include/libxml/xmlexports.h: fixed mingw+msys compilation
+ (rep by Mikhail Grushinskiy)
+
+Mon Feb 2 20:22:18 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlwriter.c: enhanced output indenting (bug 133264)
+
+Mon Feb 2 16:13:33 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlreader.c, include/libxml/xmlreader.h: applied patch from
+ Steve Ball to provide structured error reports.
+
+Sun Feb 1 01:48:14 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * tree.c, include/libxml/tree.h: moved serialization of
+ attribute text data (xmlSerializeContent) into a separate
+ routine (xmlSerializeTxtContent) so it can be used by xmlwriter.c
+ * xmlwriter.c: changed handling of attribute string to use the
+ routine above (fixed bug 131548)
+
+Sat Jan 31 08:22:02 MST 2004 John Fleck <jfleck@inkstain.net
+
+ * doc/examples/reader1.c, reader2.c, reader3.c
+ * doc/examples/examples.xml
+ * doc/examples/*.html
+ add note that reader examples need libmxl2 > 2.6, rebuild
+ html - this time doing it correctly :-)
+
+Fri Jan 30 20:45:36 MST 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/examples/examples.xml
+ * doc/examples/*.html
+ add note that reader examples need libmxl2 > 2.6, rebuild
+ html
+
+Thu Jan 29 23:51:48 PST 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: added (void *) type override to prevent
+ warning on Solaris (Bug 132671)
+
+Wed Jan 28 07:20:37 MST 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/examples/Makefile.am
+ per Jan. 15 email to the list from oliverst, the index.html
+ file from this directory wasn't making it into the tarball
+
+Mon Jan 26 18:01:00 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * acinclude.m4: applied fix from Alexander Winston for a problem
+ related to automake-1.8 , c.f. #132513 and #129861
+
+Mon Jan 26 12:53:11 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/index.py: don't rely on . being on the path for
+ make tests, should keep Mr. Crozat quiet until next time...
+
+Sun Jan 25 21:45:03 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in NEWS doc/*: preparing release 2.6.5, rebuilt the
+ docs, checked rngparser stuff does not end up in the tarball
+
+Sun Jan 25 20:59:20 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: applied patch from Frederic Peters
+ fixing the wrong arg order in xpath callback in bug #130980
+
+Sun Jan 25 20:52:09 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: fixing #130453 XInclude element with no href attribute
+ * relaxng.c rngparser.c include/libxml2/relaxng.h: fully integrating
+ the compact syntax will require more work, postponed for the
+ 2.6.5 release.
+
+Sat Jan 24 09:30:22 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/schemasInternals.h xmlschemas.c: applied patch from
+ Steve Ball to avoid a double-free.
+
+Fri Jan 23 14:03:21 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/*: added io1.c an example ox xmlIO usage and io1.res
+ test result, fixed a awful lot of memory leaks showing up in
+ testWriter.c, changed the examples and the Makefiles to test
+ memory leaks.
+ * xmlwriter.c: fixed a memory leak
+ * Makefile.am: run the doc/examples regression tests as part of
+ make tests
+ * xpath.c include/libxml/xpath.h: added xmlXPathCtxtCompile() to
+ compile an XPath expression within a context, currently the goal
+ is to be able to reuse the XSLT stylesheet dictionary, but this
+ opens the door to others possible optimizations.
+ * dict.c include/libxml/dict.h: added xmlDictCreateSub() which allows
+ to build a new dictionary based on another read-only dictionary.
+ This is needed for XSLT to keep the stylesheet dictionary read-only
+ while being able to reuse the strings for the transformation
+ dictionary.
+ * xinclude.c: fixed a dictionary reference counting problem occurring
+ when document parsing failed.
+ * testSAX.c: adding option --repeat for timing 100times the parsing
+ * doc/* : rebuilt all the docs
+
+Thu Jan 22 14:17:05 2004 Aleksey Sanin <aleksey@aleksey.com>
+
+ * xmlmemory.c: make xmlReallocLoc() accept NULL pointer
+
+Thu Jan 22 08:26:20 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: applied patch from John Belmonte for
+ normalizedString datatype support.
+
+Thu Jan 22 10:43:22 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed problem with union when last() is used
+ in predicate (bug #131971)
+ * xpointer.c: minor change to comment for doc generation
+
+Wed Jan 21 17:03:17 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed bug #131745 raised by Shaun McCance with the
+ suggested patch
+
+Wed Jan 21 10:59:55 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: applied patch from Alfred Mickautsch fixing a memory
+ leak reported on the list.
+
+Thu Jan 15 00:48:46 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/tests/tstLastError.py: applied
+ patch from Stéphane Bidoul to add enums to the Python bindings.
+
+Tue Jan 13 21:50:05 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * testHTML.c: another small patch from Mark Vakoc
+
+Tue Jan 13 21:39:58 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c relaxng.c testRelax.c testSchemas.c: applied
+ patch from Mark Vakoc to not use SAX1 unless necessary.
+
+Mon Jan 12 17:22:57 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c parser.c xmlstring.c: some parser optimizations,
+ xmllint --memory --timing --repeat --stream ./db10000.xml
+ went down from 16.5 secs to 15.5 secs.
+
+Thu Jan 8 17:57:50 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: removed a memory leak remaining from the switch
+ to a dictionary for string allocations c.f. #130891
+
+Thu Jan 8 17:48:46 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fixing some problem if configured --without-xinclude
+ c.f. #130902
+
+Thu Jan 8 17:42:48 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: changed AC_OUTPUT() macro to avoid a cygwin problem
+ c.f. #130896
+
+Thu Jan 8 00:36:00 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * win32/Makefile.bcb win32/Makefile.mingw win32/Makefile.msvc:
+ applying patch from Mark Vakoc for Windows
+ * doc/catalog.html doc/encoding.html doc/xml.html: applied doc
+ fixes from Sven Zimmerman
+
+Tue Jan 6 23:51:46 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml2-python-api.xml python/libxml_wrap.h python/types.c
+ python/tests/Makefile.am python/tests/tstLastError.py: applied
+ patch from Stéphane Bidoul for structured error handling from
+ python, and the associated test
+
+Tue Jan 6 23:18:11 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * configure.in: fixed Bug130593
+ * xmlwriter.c: fixed compilation warning
+
+Tue Jan 6 15:15:23 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlstring.h: fixed the comment in the header
+ * doc/*: rebuilt the docs
+
+Tue Jan 6 19:40:04 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * encoding.c, parser.c, xmlstring.c, Makefile.am,
+ include/libxml/Makefile.am, include/libxml/catalog.c,
+ include/libxml/chvalid.h, include/libxml/encoding.h,
+ include/libxml/parser.h, include/libxml/relaxng.h,
+ include/libxml/tree.h, include/libxml/xmlwriter.h,
+ include/libxml/xmlstring.h:
+ moved string and UTF8 routines out of parser.c and encoding.c
+ into a new module xmlstring.c with include file
+ include/libxml/xmlstring.h mostly using patches from Reid
+ Spencer. Since xmlChar now defined in xmlstring.h, several
+ include files needed to have a #include added for safety.
+ * doc/apibuild.py: added some additional sorting for various
+ references displayed in the APIxxx.html files. Rebuilt the
+ docs, and also added new file for xmlstring module.
+ * configure.in: small addition to help my testing; no effect on
+ normal usage.
+ * doc/search.php: added $_GET[query] so that persistent globals
+ can be disabled (for recent versions of PHP)
+
+Mon Jan 5 20:47:07 MST 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/customfo.xsl
+ * doc/tutorial/customhtml.xsl
+ update custom tutorial-building stylesheets in preparation
+ for tutorial update
+
+Tue Jan 6 00:10:33 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * rngparser.c: commiting the compact relax ng parser. It's not
+ completely finished, it's not integrated but I want to save the
+ current state
+
+Mon Jan 5 22:22:48 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * doc/apibuild.py, doc/APIconstructors.html, doc/libxml2-refs.xml,
+ win32/libxml2.def.src: fixed apibuild.py's generation of
+ "constructors" to be in alphabetical order (instead of previous
+ random sequence); regenerated resulting files.
+
+Mon Jan 5 14:03:59 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: applied patch from Lucas Brasilino fixing an indent
+ problem.
+
+Sun Jan 4 18:54:29 MST 2004 John Fleck <jfleck@inkstain.net>
+
+ * doc/newapi.xsl: change background color of function
+ declaration to improve readability
+ * doc/*: rebuild docs with new stylesheet
+
+Sun Jan 4 22:45:14 HKT 2004 William Brack <wbarck@mmm.com.hk>
+
+ * parser.c, include/libxml/parser.h: added a routine
+ xmlStrncatNew to create a new string from 2 frags.
+ * tree.c: added code to check if node content is from
+ dictionary before trying to change or concatenate.
+
+Sun Jan 4 08:57:51 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xmlmemory.c: applied suggestion from Miloslav Trmac (see
+ Bug 130419) and eliminated xmlInitMemoryDone. More
+ improvement needed.
+ * xml2-config.in: added an additional flag (--exec-prefix) to
+ allow library directory to be different from include directory
+ (Bug 129558).
+
+Fri Jan 2 21:22:18 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * error.c: applied patch from Stéphane Bidoul for structured error
+ reporting.
+
+Fri Jan 2 21:03:17 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlwriter.h xmlwriter.c: applied the patch from
+ Lucas Brasilino to add indentation support to xmlWriter
+
+Fri Jan 2 22:58:29 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: fixed problem with "recursive" include (fallback
+ contains another include - Bug 129969)
+
+Fri Jan 2 11:40:06 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c: found and fixed a bug misallocating some non
+ blank text node strings from the dictionary.
+ * xmlmemory.c: fixed a problem with the memory debug mutex
+ release.
+
+Wed Dec 31 22:02:37 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: fixed problem caused by wrong dictionary
+ reference count, reported on the list by Christopher
+ Grayce.
+
+Wed Dec 31 15:55:55 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * python/generator.py, python/libxml2class.txt: fixed problem
+ pointed out by Stéphane Bidoul on the list.
+ * xinclude.c, xpointer.c, xpath.c, include/libxml/xpointer.h:
+ completed modifications required to fix Bug 129967 (at last!).
+ Now wait to see how long before further trouble...
+
+Tue Dec 30 16:26:13 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c, xmlmemory.c, include/libxml/xmlmemory.h: Fixed
+ memory leak reported by Dave Beckett
+ * xmlschemas.c: Removed spurious comment reported on the mailing
+ list
+ * xinclude.c, xpath.c, xpointer.c, libxml/include/xpointer.h:
+ Further work on Bug 129967 concerning xpointer range handling
+ and range-to function; much better, but still not complete
+
+Mon Dec 29 18:08:05 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: xmlValidateElement could crash for element holding a
+ namespace declaration but not in a namespace. Oliver Fischer
+ provided the example.
+
+Mon Dec 29 11:29:31 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: issue validation status on stderr, not stdout as suggested
+ by Pawel Palucha
+ * result/relaxng/*: this change slightly all the output from RNG
+ regressions.
+
+Mon Dec 28 10:47:32 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c: edited a couple of comments in accordance with
+ posting on the mailing list (no logic change)
+ * xpointer.c: working on Bug 129967, added check for NULL
+ nodeset to prevent crash. Further work required.
+ * xpath.c: working on Bug 129967, added code to handle
+ XPATH_LOCATIONSET in RANGETO code, also added code to
+ handle it in xmlXPathEvaluatePredicateResult. Further
+ work required.
+
+Sat Dec 27 12:32:58 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c: added tests for xs:all to assure minOccurs
+ and maxOccurs <= 1 (Bug 130020)
+
+Sat Dec 27 09:53:06 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xmlregexp.c: fixed xmlFAParseCharRange for Unicode ranges
+ with patch from Charles Bozeman.
+
+Fri Dec 26 14:03:41 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xmlregexp.c: fixed problem causing segfault on validation error
+ condition (reported on mailing list)
+
+Thu Dec 25 21:16:22 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c: fixed missing dictionaries for Memory and Doc
+ parser contexts (problem reported on mailing list)
+ * doc/apibuild.py: small change to prevent duplicate lines
+ on API functions list. It will take effect the next time
+ the docs are rebuilt.
+
+Wed Dec 24 12:54:25 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in NEWS doc/*: updated the docs and prepared a new
+ release 2.6.4
+
+Wed Dec 24 12:07:52 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * legacy.c: remove deprecated warning on startElement()
+
+Wed Dec 24 12:04:35 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c result/XInclude/nodes2.*: XInclude xpointer support
+ was broken with the new namespace. Fixes #129932
+
+Wed Dec 24 00:29:30 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c include/libxml/schemasInternals.h: types might be
+ redefined in includes, quick fix to allow this but lacks the
+ equality of the redefinition test.
+
+Tue Dec 23 15:14:37 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * valid.c: fixed bug concerning validation using external
+ dtd of element with mutiple namespace declarations
+ (Bug 129821)
+
+Tue Dec 23 11:41:42 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * tree.c: inhibited production of "(null):" in xmlGetNodePath
+ when node has default namespace (Bug 129710)
+
+Tue Dec 23 09:29:14 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: small enhancement to xmlXPathCmpNodes to assure
+ document order for attributes is retained (Bug 129331)
+
+Mon Dec 22 19:06:16 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c xmlreader.c: change xmlReadFd() xmlCtxtReadFd()
+ xmlReaderNewFd() xmlReaderForFd(), change those to not close
+ the file descriptor. Updated the comment, should close #129683
+
+Mon Dec 22 00:34:09 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: fixed a serious problem in XInclude #129021
+
+Sun Dec 21 13:59:54 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed bug #129489, propagation of parsing flags
+ in entities.
+ * parser.c xmlreader.c: improved the comments of parsing options
+
+Sun Dec 21 18:14:04 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * python/Makefile.am, python/tests/Makefile.am,
+ doc/Makefile.am: applied fixes to allow build from
+ 'outside' directory (Bug 129172)
+
+Sat Dec 20 16:42:07 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * tree.c - add explanation of namespace inheritance when
+ ns is NULL to xmlNewChild and xmlNewTextChild API doc
+
+Sat Dec 20 18:17:28 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * include/libxml/xpathInternals.h: undid last change (my
+ bad). Put necessary fix in libxslt/libexslt instead.
+ * include/libxml/DOCBparser.h: put test for __GCC__ on
+ warning directive (Bug 129105)
+
+Sat Dec 20 10:48:37 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * include/libxml/xpathInternals.h: fixed xmlXPathReturnString
+ to cater for NULL pointer (bug 129561)
+ * globals.c: added comment to suppress documentation warning
+ * doc/apibuild.py: fixed problem which caused last APIchunkxx.html
+ to be lost. Rebuilt doc/* (including adding APIchunk26.html)
+
+Fri Dec 19 18:24:02 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: trying to fix #129692 xmlTextReaderExpand() when
+ using an xmlReaderWalker()
+
+Thu Dec 18 20:10:34 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * tree.c: fix misc. typos in doc comments
+ * include/libxml/tree.h: elaborate on macro define doc comments
+ * doc/*: rebuild docs
+
+Wed Dec 17 16:07:33 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/*: don't call the result files .out but .res as
+ the Makefiles tend to try generating binaries for .out targets...
+
+Tue Dec 16 20:53:54 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/html/libxml-pattern.html: - cvs add API docs for new
+ pattern stuff
+
+Tue Dec 16 20:40:40 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * tree.c
+ * doc/*:
+ Elaborate in documentation discussion of xmlNewChild
+ and xmlNewTextChild. Thanks to Steve Lenti for pointing
+ out the usefulness of a more explicit explanation of the
+ reserved character escaping issue.
+
+Fri Dec 12 15:55:15 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlcatalog.c: applied patch from Stefan Kost
+
+Thu Dec 11 15:15:31 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/testWriter.c: applied small fix from Lucas Brasilino
+
+Thu Dec 11 14:55:22 CET 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/Makefile.* win32/configure.js: Added pattern support
+
+Wed Dec 10 14:11:20 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/* libxml.spec.in: preparing release of
+ libxml2-2.6.3, updated and regenerated the docs.
+
+Wed Dec 10 11:43:33 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c pattern.c: removed some compilation warnings
+
+Wed Dec 10 11:16:29 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: fixing bug #119264 xmllint failing to report
+ serialization errors in some cases.
+
+Tue Dec 9 23:50:23 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c: fixed an XML entities content serialization
+ potentially triggered by XInclude, see #126817
+
+Tue Dec 9 16:12:50 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: applied the patch to xmlTextWriterStartPI()
+ suggested by Daniel Schulman in #128313
+
+Tue Dec 9 15:18:32 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in Makefile.am: another patch from Kenneth Haley
+ for Mingw, c.f. #128787
+
+Tue Dec 9 15:07:09 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlexports.h: applied patch from Kenneth Haley
+ for compiling on Mingw see #128786
+
+Tue Dec 9 14:52:59 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: some flags were not passed down correctly as
+ parsing options. Fixes #126806
+
+Tue Dec 9 12:29:26 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c xmllint.c xmlreader.c include/libxml/xinclude.h
+ include/libxml/xmlerror.h: augmented the XInclude API
+ to be able to pass XML parser flags down to the Inclusion
+ process. Also resynchronized with the Last Call W3C Working
+ Draft 10 November 2003 for the xpointer attribute.
+ * Makefile.am test/XInclude/docs/nodes[23].xml
+ result/XInclude/*: augmented the tests for the new namespace and
+ testing the xpointer attribute, changed the way error messages
+ are tested
+ * doc/*: regenerated the documentation
+
+Mon Dec 8 18:38:26 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * error.c: filter warning messages if the global setting blocks them
+ * xinclude.c xmlreader.c include/libxml/xinclude.h
+ include/libxml/xmlerror.h: updated the change of namespace at
+ the XInclude level, raise a warning if the old one is found,
+ and some cleanup
+
+Mon Dec 8 13:09:39 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: tentative fix for #126117 character reference in
+ attributes output problem in some cornercase.
+
+Mon Dec 8 11:08:45 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.py: tried to fix the problems reported in
+ bug #126735
+ * xpath.c SAX2.c error.c parser.c valid.c include/libxml/xmlerror.h:
+ fixed again some problem trying to use the structured error
+ handlers, c.f. bug #126735
+ * result/VC/ElementValid: tiny change due to the fix
+
+Sun Dec 7 22:27:31 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * error.c: fixed __xmlRaiseError to use structured error handlers
+ defined by xmlSetStructuredErrorFunc(), fixes bug #126211
+
+Sun Dec 7 20:30:53 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: attempt to fix #126211 ...
+
+Fri Dec 5 17:07:29 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c xmlreader.c xmllint.c include/libxml/pattern.h
+ include/libxml/xmlreader.h: fixed the pattern interfaces
+ but not yet the parser to handle the namespaces.
+ * doc/examples/reader3.c doc/*: fixed the example, rebuilt the docs.
+
+Fri Dec 5 15:49:44 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c xmlwriter.c doc/apibuild.py include/libxml/globals.h
+ include/libxml/pattern.h include/libxml/schemasInternals.h
+ include/libxml/xmlexports.h include/libxml/xmlwriter.h: cleanup
+ the make rebuild in doc, this include new directive to stop
+ documentation warnings
+ * doc/* doc/html/*: rebuilt the docs
+ * pattern.c xmlreader.c include/libxml/pattern.h
+ include/libxml/xmlreader.h: adding xmlTextReaderPreservePattern()
+ to save nodes while scanning the tree with the reader, cleanup
+ the way element were freed, and xmlTextReaderPreserve()
+ implementation, the API might change for namespace binding support
+ when compiling patterns.
+ * doc/examples/*: added reader3.c exposing the xmlTextReaderPreserve()
+
+Thu Dec 4 15:10:57 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.py: oops forgot to modify/commit the new code.
+
+Thu Dec 4 13:29:19 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/libxml_wrap.h:
+ cleanup the output buffer support to at least get the basic
+ to work
+ * python/tests/outbuf.py python/tests/serialize.py: fixes and
+ cleanup.
+ * include/libxml/xmlwriter.h: cleanup
+
+Wed Dec 3 21:38:56 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * include/libxml/xmlversion.h.in
+ * doc/*: add WITH_TRIO comment so it shows up in the docs, rebuild
+ docs
+
+Wed Dec 3 13:10:08 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * config.h.in configure.in xmlregexp.c: fix bug #128401 affecting
+ regexp quantifiers
+
+Tue Dec 2 23:29:56 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * pattern.c include/libxml/pattern.h: adding the pattern node
+ selection code. Inheried in part from libxslt but smaller.
+ * Makefile.am configure.in include/libxml/xmlversion.h.in:
+ integrated the pattern module, made it a configure time option
+ * xmllint.c: added --pattern to test when doing --stream
+
+Tue Dec 2 11:25:25 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fixed a problem in xmlreader validation when
+ streaming exposed by reader2 example.
+
+Mon Dec 1 20:40:51 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/xml.html
+ * doc/docs.html:
+ add reference to the Code Examples page to docs.html list
+ of resources
+
+Mon Dec 1 12:30:28 CET 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/Makefile.bcb win32/configure.js: Applied the BCB patch
+ from Eric
+
+Sun Nov 30 21:33:37 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * include/libxml/xinclude.h
+ * doc/*: Add comments for macro definitions in xinclude.h and
+ rebuild the docs
+
+Sun Nov 30 21:06:29 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/docdescr.doc
+ Updating William's explanation of how to build docs,
+ reflecting Daniel's new docs build system
+
+Sat Nov 29 18:38:22 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xmlmemory.c: enhanced by adding mutex to protect global
+ structures in a multi-threading environment. This fixed
+ some random errors on the Threads regression tests.
+
+Fri Nov 28 21:39:49 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/xml.html doc/python.html: fix tst.py text, which didn't
+ import sys
+
+Fri Nov 28 17:28:47 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * encoding.c, include/libxml/encoding.h: Enhanced the handling of
+ UTF-16, UTF-16LE and UTF-16BE encodings. Now UTF-16 output is
+ handled internally by default, with proper BOM and UTF-16LE
+ encoding. Native UTF-16LE and UTF-16BE encoding will not generate
+ BOM on output, and will be automatically recognized on input.
+ * test/utf16lebom.xml, test/utf16bebom.xml, result/utf16?ebom*:
+ added regression tests for above.
+
+Thu Nov 27 19:25:10 CET 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/Makefile.* win32/configure.js: Modified to allow coexistent
+ build with all compilers. Added C-Runtime option for MSVC. Included
+ xmlWriter.
+ * xmlwriter.c: Added IN_LIBXML macro
+
+Wed Nov 26 21:54:01 CET 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/Makefile.bcb: applied patch from Eric
+
+Wed Nov 26 21:33:14 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/tree.h: stefan on IRC pointed out that XML_GET_LINE
+ is broken on 2.6.x
+
+Tue Nov 25 18:39:44 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c: fixed #127877, never output &quot; in element content
+ * result/isolat3 result/slashdot16.xml result/noent/isolat3
+ result/noent/slashdot16.xml result/valid/REC-xml-19980210.xml
+ result/valid/index.xml result/valid/xlink.xml: this changes the
+ output of a few tests
+
+Tue Nov 25 16:36:21 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/schemasInternals.h include/libxml/xmlerror.h
+ testSchemas.c xmlschemas.c: added xsd:include support, fixed
+ testSchemas behaviour when a schemas failed to parse.
+ * test/schemas/vdv-* result/schemas/vdv-first5_0_0*: added one
+ test for xsd:include from Eric Van der Vlist
+
+Tue Nov 25 08:18:12 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: swapped the attribute defaulting and attribute checking
+ parts of parsing a new element start, fixes bug #127772
+ * result/valid/127772.* test/valid/127772.xml
+ test/valid/dtds/127772.dtd: added the example in the regression tests
+
+Tue Nov 25 08:00:15 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: moved xmlCleanupThreads() to the end of xmlCleanupParser()
+ to avoid bug #127851
+
+Mon Nov 24 15:26:21 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: fixing some Negative Character Group and
+ Character Class Subtraction handling.
+
+Mon Nov 24 14:01:57 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c xmlschemas.c: more XML Schemas fixes based
+ on Eric van der Vlist examples
+ * result/schemas/vdv-first4* test/schemas/vdv-first4*:
+ added regression tests
+ * doc/examples/Makefile.am doc/examples/index.py: do not
+ regenerate the index on make all target, but only on
+ make rebuild to avoid troubles.
+
+Sat Nov 22 21:35:42 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c xmlschemastypes.c include/libxml/xmlerror.h
+ include/libxml/schemasInternals.h: lot of bug fixes, cleanup,
+ starting to add proper namespace support too.
+ * test/schemas/* result/schemas/*: added a number of tests
+ fixed the result from some regression tests too.
+
+Fri Nov 21 20:50:59 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/xml.html, docs.html: remove reference to gtk-doc now that
+ Daniel has removed it, fix link to George's IBM article, other
+ minor edits
+
+Fri Nov 21 01:26:00 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: applied patch from Robert Stepanek to start
+ import os schemas support, cleaned up stuff and the patch.
+ * test/schemas/import0_0.* result/schemas/import0_0_0*: added test
+ to regression, fixed a few regressions too.
+
+Thu Nov 20 22:58:00 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied two parsing fixes from James Bursa
+
+Thu Nov 20 19:20:46 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/*: added two xmlReader examples
+ * xmlreader.c: cleaned up some bugs in the process
+
+Thu Nov 20 12:54:30 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c include/libxml/xmlwriter.h: applied patch from
+ Alfred Mickautsch, bugfixes and comments
+ * doc/examples/*: added his test as the xmlWriter example
+ * doc/html/ doc/*.html: this resulted in some improvements
+ * include/libxml/hash.h: fixed an inclusion problem when
+ <libxml/hash.h> wasn't preceeded by <xml/parser.h>
+
+Wed Nov 19 17:19:35 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: fix an error message
+ * doc/examples/*: added tree2 example from Lucas Brasilino
+
+Wed Nov 19 17:50:47 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/newapi.xsl: improve the sort sequence for page content
+ * doc/html/*.html: regenerate the web pages
+
+Wed Nov 19 00:48:56 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: do not package cvs versioning temp files.
+ * doc/apibuild.py doc/libxml2-api.xml doc/newapi.xsl: more cleanup,
+ slightly improved the API xml format, fixed a lot of small
+ rendering problems
+ * doc/html/libxml*.html: rebuilt
+
+Tue Nov 18 21:51:15 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/*.h include/libxml/*.h.in: modified the file
+ header to add more informations, painful...
+ * genChRanges.py genUnicode.py: updated to generate said changes
+ in headers
+ * doc/apibuild.py: extract headers, add them to libxml2-api.xml
+ * *.html *.xsl *.xml: updated the stylesheets to flag geprecated
+ APIs modules. Updated the stylesheets, some cleanups, regenerated
+ * doc/html/*.html: regenerated added back book1 and libxml-lib.html
+
+Tue Nov 18 14:43:16 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/Makefile.am doc/*.xsl doc/*.html doc/apibuild.py: cleaned up
+ the build process to remove all remains from the old gtk-doc
+ inherited, libxml2-refs.xml is now generated by apibuild.py, the
+ stylesheets have been improved, and the API*html now generated
+ are XHTML1 valid too
+
+Tue Nov 18 14:28:32 HKT 2003 William Brack <mmm.com.hk>
+
+ * genChRanges.py, chvalid.c, include/libxml/chvalid.h: minor
+ enhancement to prevent comment with unreferenced variable.
+ * threads.c xmlreader.c xmlwriter.c: edited some comments to
+ improve auto-generation of documentation
+ * apibuild.py: minor change to an error message
+
+Mon Nov 17 17:55:51 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/apibuild.py doc/libxml2-api.xml doc/newapi.xsl: more cleanup,
+ improving navigation
+ * doc/html/*.html: updated the result
+
+Mon Nov 17 14:54:38 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/Makefile.am doc/apibuild.py doc/libxml2-api.xml doc/newapi.xsl:
+ improvement of the stylesheets, fixed a API generation problem,
+ switched the stylesheet and Makefile to build the HTML output.
+ * doc/html/*.html: complete update, ditched some old files, might
+ introduce some breakage...
+
+Mon Nov 17 12:50:28 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/newapi.xsl: lot of improvements, this starts looking good
+ enough to be usable.
+
+Mon Nov 17 00:58:09 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/newapi.xsl: stylesheet to build HTML pages from the
+ API XML description, Work in Progress
+
+Sun Nov 16 16:03:24 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed bug 126976 (string != empty nodeset
+ should be false)
+
+Sun Nov 16 14:00:08 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/html/*.html: Finally - found the problem with the
+ page generation (XMLPUBFUN not recognized by gtkdoc).
+ Re-created the pages using a temporary version of
+ include/libxml/*.h.
+ * testOOMlib.c,include/libxml/encoding.h,
+ include/libxml/schemasInternals.h,include/libxml/valid.h,
+ include/libxml/xlink.h,include/libxml/xmlwin32version.h,
+ include/libxml/xmlwin32version.h.in,
+ include/libxml/xpathInternals.h: minor edit of comments
+ to help automatic documentation generation
+ * doc/docdescr.doc: small elaboration
+ * doc/examples/test1.c,doc/examples/Makefile.am: re-commit
+ (messed up on last try)
+ * xmlreader.c: minor change to clear warning.
+
+Sat Nov 15 19:20:32 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Copyright: fixed some wording
+ * libxml.spec.in: make sure doc/examples is packaged
+ * include/libxml/tree.h valid.c xmlreader.c: fixed the really
+ annoying problem about xmlRemoveID and xmlReader streaming.
+ Thing looks fixed now, had to add a doc reference to the
+ xmlID structure though...
+
+Sat Nov 15 09:53:36 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/docdescr.doc: added description of man page building
+
+Sat Nov 15 19:08:22 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/html/libxml-chvalid.html, doc/html/libxml-dict.html,
+ doc/html/libxml-list.html, doc/html/libxml-testOOMlib.html,
+ doc/html/libxml-wincecompat, doc/html/winsockcompat.html,
+ doc/html/libxml-xmlexports.html, doc/html/libxml-xmlversion.html,
+ doc/html/libxml-xmlwin32version.html, doc/html/libxml-xmlwriter.html:
+ added missing pages for the website.
+
+Sat Nov 15 18:23:48 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/Makefile.am doc/*.html doc/html/*.html: rebuilt the
+ generated pages (again), manually restored doc/html/index.html
+ and manually edited generated file doc/gnome-xml.xml to put
+ in appropriate headings.
+ * doc/docdescr.doc: new file to describe details of the
+ document generation (helps my memory for the next time)
+ * genChRanges.py,chvalid.c,include/libxml/chvalid.h: minor
+ enhancement to please the automatic documentation generation.
+
+Fri Nov 14 23:47:31 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * catalog.c,relaxng.c,testAutomata.c,xpointer.c,genChRanges.py,
+ chvalid.c,include/libxml/chvalid.h,doc/examples/test1.c:
+ minor error cleanup for gcc-3.3.[12] compilation warnings.
+
+Fri Nov 14 15:08:13 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * tree.c: minor changes to some comments
+ * doc/*.html: rebuilt the generated HTML pages for changes
+ from jfleck (bug 126945)
+
+Thu Nov 13 12:44:14 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/*: added Dodji's example, added output handling
+
+Thu Nov 13 11:35:35 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/examples/*: added Aleksey XPath example, fixed bugs
+ in the indexer
+
+Wed Nov 12 23:48:26 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/*: integrating the examples in the navigation menus
+ * doc/examples/*: added make tests, updated the navigation,
+ added a new test, cleanups, updates.
+
+Wed Nov 12 17:50:36 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/*.html: rebuilt the generated HTML pages
+ * doc/examples/*: updated the stylesheets, added a synopsis,
+ Makefile.am is now generated by index.py
+
+Wed Nov 12 01:38:16 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/site.xsl doc/examples/Makefile.am doc/examples/index.html:
+ added autogeneration of a web page for the examples
+ * doc/examples/example1.c doc/examples/.cvsignore
+ doc/examples/examples.xml doc/examples/index.py: updated the
+ informations extracted, improved the format and indexing.
+
+Tue Nov 11 22:08:59 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * check-xinclude-test-suite.py: less verbose on difference
+ * libxml.spec.in: cleanup
+ * parser.c: fixed xmlCleanupParser() doc
+ * doc/Makefile.am doc/apibuild.py doc/libxml2-api.xml
+ doc/examples/Makefile.am doc/examples/example1.c
+ doc/examples/examples.xml doc/examples/index.py
+ doc/examples/test1.xml: work on adding C examples and
+ generating automated information about those. examples.xml
+ is autogenerated describing the examples.
+ * example/Makefile.am: cleanup
+
+Mon Nov 10 23:47:03 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * genUnicode.py, xmlunicode.c, include/libxml/xmlunicode.h:
+ fixed missing '-' in block names, enhanced the hack for
+ ABI aliasing.
+
+Sun Nov 9 20:28:21 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * genUnicode.py, xmlunicode.c, include/libxml/xmlunicode.h,
+ python/libxml2class.txt: enhanced for range checking,
+ updated to Unicode version 4.0.1 (API docs also updated)
+ * python/generator.py: minor change to fix a warning
+
+Wed Nov 5 23:46:36 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: apply fix from Karl Eichwalder for script path
+
+Wed Nov 5 10:49:20 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * win32/configure.js: applied patch from Mark Vakoc to simplify
+ his work from CVS checkouts.
+
+Tue Nov 4 21:16:47 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmlreader.html: minor cleanups
+
+Tue Nov 4 15:52:28 PST 2003 William Brack <wbrack@mmm.com.hk>
+
+ * include/libxml/xmlversion.h.in: changed macro ATTRIBUTE_UNUSED
+ for gcc so that, if undefined, it's defined as
+ __attribute__((unused))
+
+Tue Nov 4 15:28:07 PST 2003 William Brack <wbrack@mmm.com.hk>
+
+ * python/generator.py: small enhancement to assure ATTRIBUTE_UNUSED
+ appears after the variable declaration.
+ * valid.c: trivial change to eliminate a warning message
+
+Tue Nov 4 11:24:04 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in NEWS doc/*: preparing release 2.6.2, updated and
+ rebuilt the docs
+
+Tue Nov 4 09:38:46 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: change --html to make sure we use the HTML serialization
+ rule by default when HTML parser is used, add --xmlout to allow to
+ force the XML serializer on HTML.
+ * HTMLtree.c: ugly tweak to fix the output on <p> element and
+ solve #125093
+ * result/HTML/*: this changes the output of some tests
+
+Mon Nov 3 17:51:28 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: fixed bug #125812, about XPointer in XInclude
+ failing but not returning an error.
+
+Mon Nov 3 17:18:22 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixed bug #125811 related to DTD post validation
+ where the DTD doesn't pertain to a document.
+
+Mon Nov 3 15:25:58 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c xmlIO.c include/libxml/parserInternals.h: implemented
+ the XML_PARSE_NONET parser option.
+ * xmllint.c: converted xmllint.c to use the option instead of
+ relying on the global resolver variable.
+
+Mon Nov 3 13:26:32 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c xmlreader.c include/libxml/xinclude.h: adding XInclude
+ support to the reader interface. Lot of testing of the walker,
+ various bug fixes.
+ * xmllint.c: added --walker and made sure --xinclude --stream --debug
+ works as expected
+ * Makefile.am result/dtd11.rdr result/ent6.rdr test/dtd11 test/ent6
+ result/XInclude/*.rdr: added regression tests for the walker and
+ XInclude xmlReader support, had to slightly change a couple of tests
+ because the walker can't distinguish <foo/> from <foo></foo>
+
+Sat Nov 1 17:42:27 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c nanohttp.c threads.c: second BeOS patch from
+ Marcin 'Shard' Konicki
+
+Fri Oct 31 15:35:20 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: always generate line numbers
+
+Fri Oct 31 11:53:46 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed another regression introduced in fixing #125823
+
+Fri Oct 31 11:33:18 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: previous fix for #124044 was broken, correct
+ fix provided.
+ * HTMLparser.c parser.c parserInternals.c xmlIO.c: fix xmlStopParser()
+ and the error handlers to address #125877
+
+Thu Oct 30 23:10:46 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: side effect of #123105 patch, namespace resolution
+ would fail when defined in internal entities, fixes #125823
+
+Thu Oct 30 14:10:42 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: be more defensive in the xmlReader python bindings
+ fixing bug #124044
+
+Thu Oct 30 11:14:31 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: the a-posteriori DTD validation code was not validating
+ the namespace declarations, this fixes #124110
+
+Wed Oct 29 14:13:03 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xmlIO.c: enhanced to bypass compression detection code
+ when input file is stdin (bug 125801)
+
+Wed Oct 29 18:21:00 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: fix needed when HTTP is not compiled in by Mark Vakoc
+
+Wed Oct 29 18:05:53 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: more fixes about unregistering objects
+ * include/libxml/relaxng.h: applied patch from Mark Vakoc
+ missing _cplusplus processing clause
+
+Wed Oct 29 07:49:52 2003 Aleksey Sanin <aleksey@aleksey.com>
+
+ * include/libxml/parser.h parser.c: added xmlStrVPrintf function
+
+Wed Oct 29 14:37:40 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c nanohttp.c testThreads.c threads.c: applied patch from
+ Marcin 'Shard' Konicki to provide BeOS thread support.
+
+Wed Oct 29 14:20:14 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c include/libxml/xmlschemas.h: applied patch
+ from Steve Ball to make a schema parser from a preparsed document.
+
+Wed Oct 29 13:52:25 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied a couple of patches from Mark Lilback about text
+ nodes coalescing
+
+Wed Oct 29 12:16:52 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: change suggested by Anthony Carrico when unregistering
+ a namespace prefix to a context
+ * hash.c: be more careful about calling callbacks with NULL payloads.
+
+Wed Oct 29 00:04:26 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in NEWS doc/*: preparing release 2.6.1, updated and
+ regenerated docs and APIs
+ * parser.c: cleanup and last change to fix #123105
+
+Tue Oct 28 23:02:29 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: Fix #124907 by simply backporting the same
+ fix as for the XML parser
+ * result/HTML/doc3.htm.err: change to ID detecting modified one
+ test result.
+
+Tue Oct 28 22:28:50 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/parser.h: included a new function
+ to reuse a Push parser context, based on Graham Bennett original
+ code
+ * valid.c: in HTML, a name in an input is not an ID
+ * TODO: bug list update
+
+Tue Oct 28 19:54:37 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: applied patch from nico@xtradyne.com for #125030
+
+Tue Oct 28 16:42:16 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: cleanup
+ * error.c valid.c include/libxml/xmlerror.h: fixing bug #125653
+ sometimes the error handlers can get a parser context on DTD
+ errors, and sometime they don't. So be very careful when trying
+ to grab those informations.
+
+Tue Oct 28 15:26:18 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied patch from Kasimier Buchcik which fixes a
+ problem in xmlSearchNs introduced in 2.6.0
+
+Tue Oct 28 14:57:03 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed #123263, the encoding is mandatory in a textdecl.
+
+Tue Oct 28 13:48:52 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fix bug #125047 about serializing when finding a
+ document fragment node.
+
+Mon Oct 27 11:11:29 EST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * testSAX.c: fix bug #125592 need a NULL check
+ * include/libxml/chvalid.h: rename a parameter
+
+Mon Oct 27 09:43:48 EST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied patch from #123105 about defaulted attributes
+ from element coming from an entity
+
+Mon Oct 27 21:12:27 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xmllint.c: fixed warning message from IRIX (bug 125182)
+ * python/libxml.py: removed tabs, replaced with spaces
+ (bug 125572)
+
+Mon Oct 27 06:17:30 EST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.h parserInternals.c xmlIO.c: make sure we report errors
+ if xmlNewInputFromFile() fails.
+ * xmlreader.c: avoid using _private for the node or document
+ elements.
+
+Sat Oct 25 17:33:59 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/configure.js: added declaration for verMicroSuffix
+
+Fri Oct 24 23:08:17 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.m4: applied patch from Patrick Welche provided in
+ bug #125432 , future proofing the .m4 file.
+ * parser.c: resetting the context should also reset the error
+ * TODO: problem of conformance w.r.t. E20 was raised in the
+ XML Core telconf and libxml2 isn't conformant there.
+
+Wed Oct 22 14:33:05 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlwriter.c: applied patch from Alfred Mickautsch fixing #125180
+
+Wed Oct 22 10:50:31 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * chvalid.c genChRanges.py: Stéphane Bidoul pointed out another
+ small glitch missing a const
+
+Wed Oct 22 10:43:21 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * chvalid.c genChRanges.py: Stéphane Bidoul pointed out that
+ it doesn't define IN_LIBXML
+
+Tue Oct 21 21:14:55 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * win32/Makefile.mingw: typo pointed out by Stéphane Bidoul
+
+Tue Oct 21 11:26:36 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * win32/Makefile.bcb win32/Makefile.mingw win32/Makefile.msvc
+ win32/configure.js: set of Win32 patches for 2.6.0 by Joachim Bauch
+
+Tue Oct 21 02:07:22 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: last minute patch from Eric Zurcher making it into 2.6.0
+
+Tue Oct 21 02:03:03 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in NEWS doc/libxml2.xsa: preparing libxml2-2.6.0
+ * doc/*: updated and regenerated the docs and API
+
+Tue Oct 21 01:01:55 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c error.c tree.c: moved the line number to their proper
+ field in elements now.
+
+Tue Oct 21 00:28:20 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in xmlwriter.c Makefile.am include/libxml/xmlwriter.h
+ include/libxml/Makefile.am include/libxml/xmlversion.h.in:
+ added the xmlWriter module contributed by Alfred Mickautsch
+ * include/libxml/tree.h: added room for line and extra information
+ * xmlreader.c python/tests/reader6.py: bugfixing some problem some
+ of them introduced in September
+ * win32/libxml2.def.src doc/libxml2-api.xml: regenerated the API
+
+Mon Oct 20 19:02:53 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in xmldwalk.c xmlreader.c
+ include/libxml/Makefile.am include/libxml/xmldwalk.h
+ include/libxml/xmlversion.h.in: removing xmldwalk module
+ since it got merged with the xmlreader.
+ * parser.c: cleanup
+ * win32/libxml2.def.src python/libxml2class.txt doc/libxml2-api.xml:
+ rebuilt the API
+ * python/tests/Makefile.am python/tests/reader7.py
+ python/tests/walker.py: adding regression testing for the
+ new xmlreader APIs, new APIs for reader creation, including
+ makeing reader "walker" operating on preparsed document trees.
+
+Sun Oct 20 22:37:03 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * entities.c, valid.c: fixed problem reported on the mailing
+ list by Melvyn Sopacua - wrong argument order on functions
+ called through xmlHashScan.
+
+Sun Oct 19 23:57:45 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c xmlIO.c: fixes for compiling using --with-minimum
+
+Sun Oct 19 23:46:04 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: cleanup xmlNodeGetContent() reusing xmlNodeBufGetContent(),
+ tested it through the xslt regression suite.
+
+Sun Oct 19 22:42:16 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c include/libxml/tree.h: adding xmlNodeBufGetContent()
+ allowing to grab the content without forcing allocations.
+ * python/libxml2class.txt doc/libxml2-api.xml: rebuilt the API
+ * xpath.c xmldwalk.c: removed a couple of comment errors.
+
+Sun Oct 19 16:39:36 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied patch from Chris Anderson to change back
+ memcmp with CMPx()
+
+Sun Oct 19 16:24:19 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixed to not send NULL to %s printing
+ * python/tests/error.py result/HTML/doc3.htm.err
+ result/HTML/test3.html.err result/HTML/wired.html.err
+ result/valid/t8.xml.err result/valid/t8a.xml.err: cleaning
+ up some of the regression tests error
+
+Sun Oct 19 15:31:43 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/nanohttp.h include/libxml/parserInternals.h
+ include/libxml/xmlIO.h nanohttp.c parserInternals.c xmlIO.c:
+ Fixed the HTTP<->parser interraction, which should fix 2 long
+ standing bugs #104790 and #124054 , this also fix the fact that
+ HTTP error code (> 400) should not generate data, we usually
+ don't want to parse the HTML error information instead of the
+ resource looked at.
+
+Sun Oct 19 19:20:48 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/Makefile.am: enhanced the installation of tutorial files
+ to avoid installing CVS subdirectories (bug 122943)
+
+Sun Oct 19 17:33:27 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xmlIO.c: fixed segfault when input file not present
+ * tree.c: changed output formatting of XML_CDATA_SECTION
+ (bug 120917)
+
+Sun Oct 19 00:15:38 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * include/libxml/parserInternals.h HTMLparser.c HTMLtree.c
+ SAX2.c catalog.c debugXML.c entities.c parser.c relaxng.c
+ testSAX.c tree.c valid.c xmlschemas.c xmlschemastypes.c
+ xpath.c: Changed all (?) occurrences where validation macros
+ (IS_xxx) had single-byte arguments to use IS_xxx_CH instead
+ (e.g. IS_BLANK changed to IS_BLANK_CH). This gets rid of
+ many warning messages on certain platforms, and also high-
+ lights places in the library which may need to be enhanced
+ for proper UTF8 handling.
+
+Sat Oct 18 20:34:18 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * genChRanges.py, chvalid.c, include/libxml/chvalid.h,
+ doc/apibuild.py: enhanced to include enough comments to
+ make the api doc generation happy.
+
+Sat Oct 18 07:28:25 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * nanohttp.c xmlIO.c include/libxml/nanohttp.h: starting work
+ to fix the HTTP/XML parser integration.
+
+Sat Oct 18 11:04:32 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c include/libxml/xmlreader.h: added new APIs
+ for creating reader from sources or reusing a reader with
+ a new source, like the xmlReadxx and xmlCtxtReadxxx
+ * win32/libxml2.def.src doc/libxml2-api.xml doc/apibuild.py
+ doc/Makefile.am: regenerated the APIs
+ * doc/xml.html: applied a patch from Stefan Kost for namespace docs
+
+Sat Oct 18 12:46:02 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * genChRanges.py, chvalid.c, include/libxml/chvalid.h,
+ include/libxml/parserInternals.h: enhanced macros to avoid
+ breaking ABI from previous versions.
+ * catalog.c, parser.c, tree.c: modified to use IS_* macros
+ defined in parserInternals.h. Makes maintenance much easier.
+ * testHTML.c, testSAX.c, python/libxml.c: minor fixes to avoid
+ compilation warnings
+ * configuration.in: fixed pushHTML test error; enhanced for
+ better devel (me) testing
+
+Fri Oct 17 14:38:54 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * legacy.c: remove the warning for startDocument(), as it is used by
+ glade (or glade-python)
+ * parser.c relaxng.c xmlschemastypes.c: fixed an assorted set of
+ invalid accesses found by running some Python based regression
+ tests under valgrind. There is still a few leaks reported by the
+ relaxng regressions which need some attention.
+ * doc/Makefile.am: fixed a make install problem c.f. #124539
+ * include/libxml/parserInternals.h: addition of xmlParserMaxDepth
+ patch from crutcher
+
+Wed Oct 15 12:47:33 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: Marc Liyanage pointed out that xmlCleanupParser()
+ was missing xmlCleanupInputCallbacks and xmlCleanupOutputCallbacks
+ calls.
+
+Wed Oct 15 10:16:47 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * vms/build_libxml.com trionan.c: VMS patch from Craig A. Berry
+
+Mon Oct 13 21:46:25 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: small fix from Bjorn Reese
+
+Mon Oct 13 15:59:25 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fix a call missing arguments
+
+Sun Oct 12 18:42:18 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * genChRanges.py, chvalid.c, include/libxml/chvalid.h: fixed
+ a bug in the range search; enhanced range generation (inline code
+ if a small number of intervals); enhanced the readability of the
+ output files.
+
+Sun Oct 12 00:52:14 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * chvalid.def chvalid.c include/libxml/chvalid.h: rebuilt
+ chvalid.def from scratch based on XML 2nd edition REC
+ and regenerated the code.
+
+Sat Oct 11 22:54:13 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * check-xml-test-suite.py: removed some annoying warnings
+ * chvalid.def chvalid.c include/libxml/chvalid.h: fixed a bug
+ in the PubidChars definition, regenerated, there is still
+ a bug left somewhere
+ * genChRanges.py: save the header directly in include/libxml/
+ * configure.in: I generated a 2.6.0beta6 earlier today
+
+Sat Oct 11 23:32:47 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * fixed small error on previous commit (chvalid.h in
+ base dir instead of include directory)
+
+Sat Oct 11 23:11:22 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * genChRange.py, chvalid.def, chvalid.c, include/libxml/chvalid.h:
+ new files for a different method for doing range validation
+ of character data.
+ * Makefile.am, parserInternals.c, include/libxml/Makefile.am,
+ include/libxml/parserInternals.h: modified for new range method.
+ * catalog.c: small enhance for warning message (using one
+ of the new range routines)
+
+Sat Oct 11 13:24:57 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c include/libxml/valid.h: adding an serror field to
+ the validation context breaks the ABI for the xmlParserCtxt
+ structure since it's embedded by content and not by reference
+
+Sat Oct 11 12:46:49 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: patch from Mike Hommey
+ * threads.c: applied Windows patch from Jesse Pelton and Stephane
+ Bidoul
+ * parser.c: fix the potentially nasty access to ctxt->serror
+ without checking first that the SAX block is version 2
+
+Fri Oct 10 21:34:01 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c: fixed a nasty bug with interning some text strings
+ * configure.in: prepare for beta5 of 2.6.0
+ * libxml.h nanoftp.c nanohttp.c xmlIO.c include/libxml/xmlerror.h:
+ better error handling for I/O and converted FTP and HTTP
+ * parser.c: fixed another bug
+
+Fri Oct 10 16:45:20 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c: fixed uninitialized new field.
+ * result/VC/OneID2 result/relaxng/*.err: fixed a typo updating
+ all messages
+
+Fri Oct 10 16:19:17 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/tree.h: make room in Doc, Element, Attributes
+ for PSVI type informations.
+
+Fri Oct 10 16:08:02 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c c14n.c catalog.c error.c globals.c parser.c
+ parserInternals.c relaxng.c valid.c xinclude.c xmlIO.c xmlregexp.c
+ xmlschemas.c xpath.c xpointer.c include/libxml/globals.h
+ include/libxml/parser.h include/libxml/valid.h
+ include/libxml/xmlerror.h: Setting up the framework for structured
+ error reporting, touches a lot of modules, but little code now
+ the error handling trail has been cleaned up.
+
+Fri Oct 10 14:29:42 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * c14n.c include/libxml/xmlerror.h: converted the C14N module too
+
+Fri Oct 10 13:40:51 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: cleanup
+ * xpointer.c include/libxml/xmlerror.h: migrated XPointer module
+ to the new error mechanism
+
+Fri Oct 10 12:49:53 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * error.c xmlschemas.c: a bit of cleanup
+ * result/schemas/*.err: updated with the new result strings
+
+Fri Oct 10 03:58:39 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed bug 124061
+
+Fri Oct 10 02:47:22 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: cleanup
+ * encoding.c: fix a funny typo
+ * error.c xmlschemas.c xmlschemastypes.c include/libxml/xmlerror.h:
+ converted the Schemas code to the new error handling. PITA,
+ still need to check output from regression tests.
+
+Thu Oct 9 15:13:53 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c include/libxml/xmlerror.h: converted too
+ * tree.c: small cleanup
+
+Thu Oct 9 13:44:57 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: comment fix
+ * catalog.c include/libxml/xmlerror.h: migrating the catalog code
+ to the new infrastructure
+
+Thu Oct 9 00:36:03 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: final error handling cleanup
+ * xinclude.c error.c: converted XInclude to the new error handling
+ * include/libxml/xmlerror.h: added XInclude errors
+
+Wed Oct 8 23:31:23 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: bug in compression saving was crashing galeon
+ reported by teuf
+
+Wed Oct 8 21:18:12 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * error.c tree.c xmlIO.c xmllint.c: more cleanup through the
+ I/O error path
+
+Wed Oct 8 20:57:27 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: better handling of error cases
+
+Wed Oct 8 13:51:14 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c xmllint.c include/libxml/xmlerror.h: first pass at
+ cleaning up error handling in the I/O module.
+
+Wed Oct 8 10:52:05 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c include/libxml/xmlerror.h: error handling
+ cleanup of the Regexp module.
+
+Wed Oct 8 01:09:05 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: converting the tree module too
+ * error.c include/libxml/xmlerror.h: created a simpler internal
+ error reporting function.
+
+Tue Oct 7 23:19:39 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * error.c include/libxml/xmlerror.h include/libxml/xpath.h
+ include/libxml/xpathInternals.h xpath.c: cleaning up XPath
+ error reporting that time.
+ * threads.c: applied the two patches for TLS threads
+ on Windows from Jesse Pelton
+ * parser.c: tiny safety patch for xmlStrPrintf() make sure the
+ return is always zero terminated. Should also help detecting
+ passing wrong buffer size easily.
+ * result/VC/* result/valid/rss.xml.err result/valid/xlink.xml.err:
+ updated the results to follow the errors string generated by
+ last commit.
+
+Tue Oct 7 14:16:45 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c include/libxml/xmlerror.h: last cleanup of error
+ handling in the Relax-NG module.
+
+Tue Oct 7 13:30:39 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * error.c relaxng.c include/libxml/xmlerror.h: switched Relax-NG
+ module to the new error reporting. Better default report, adds
+ the element associated if found, context and node are included
+ in the xmlError
+ * python/tests/reader2.py: the error messages changed.
+ * result/relaxng/*: error message changed too.
+
+Mon Oct 6 10:46:35 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * win32/Makefile.bcb win32/Makefile.mingw win32/Makefile.msvc
+ win32/configure.js: applied patch from Stéphane Bidoul to
+ fix the compilation of 2.6.0 code on Win32
+
+Mon Oct 6 10:16:30 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * check-xml-test-suite.py: fixing the script
+ * parser.c: replace sequences of RAW && NXT(.) == '.' with
+ memcmp calls, seems to not break conformance, slightly inflate
+ the size of the gcc generated code though.
+
+Sun Oct 5 23:30:48 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c parser.c valid.c include/libxml/parserInternals.h:
+ more cleanup of error handling in parserInternals, sharing the
+ routine for memory errors.
+
+Sun Oct 5 15:49:14 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c Makefile.am legacy.c parser.c parserInternals.c
+ include/libxml/xmlerror.h: more code cleanup, especially around
+ error messages, the HTML parser has now been upgraded to the new
+ handling.
+ * result/HTML/*: a few changes in the resulting error messages
+
+Sat Oct 4 23:06:41 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/xmlerror.h: more error/warning
+ handling cleanups, the XML parser module should be okay now.
+
+Sat Oct 4 01:58:27 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in xmldwalk.c include/libxml/Makefile.am
+ include/libxml/xmldwalk.h include/libxml/xmlversion.h.in:
+ integrated the xmlDocWalker API given by Alfred Mickautsch,
+ and providing an xmlReader like API but working on a xmlDocPtr.
+
+Sat Oct 4 00:18:29 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: more cleanup in make tests
+ * error.c valid.c parser.c include/libxml/xmlerror.h: more work
+ in the transition to the new error reporting strategy.
+ * python/tests/reader2.py result/VC/* result/valid/*:
+ few changes in the strings generated by the validation output
+
+Fri Oct 3 00:19:02 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: changed 'make tests' to use a concise output,
+ scrolling to see where thing broke wasn't pleasant
+ * configure.in: some beta4 preparation, but not ready yet
+ * error.c globals.c include/libxml/globals.h include/libxml/xmlerror.h:
+ new error handling code, last error informations are stored
+ in the parsing context or a global variable, new APIs to
+ handle the xmlErrorPtr type.
+ * parser.c parserInternals.c valid.c : started migrating to the
+ new error handling code, it's a royal pain.
+ * include/libxml/parser.h include/libxml/parserInternals.h:
+ moved the definition of xmlNewParserCtxt()
+ * parser.c: small potential buffer access problem in push code
+ provided by Justin Fletcher
+ * result/*.sax result/VC/PENesting* result/namespaces/*
+ result/valid/*.err: some error messages were sligthly changed.
+
+Thu Oct 2 13:01:13 2003 Aleksey Sanin <aleksey@aleksey.com>
+
+ * include/libxml/parser.h parser.c: introduced xmlStrPrintf
+ function (wrapper around snprintf)
+
+Wed Oct 1 21:12:06 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c: Fix error on output of high codepoint charref like
+ &#x10FFFF; , reported by Eric Hanchrow
+
+Wed Oct 1 14:20:10 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c include/libxml/DOCBparser.h: let's see how much
+ of a pain murrayc is really gonna be.
+
+Wed Oct 1 11:03:40 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: Applied fix for bug #123481 reported by Peter Derr
+
+Tue Sep 30 15:34:31 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c legacy.c parser.c: made the predefined entities
+ static predefined structures to avoid the work, memory and
+ hazards associated to initialization/cleanup.
+
+Tue Sep 30 14:30:47 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c Makefile.am configure.in legacy.c parser.c
+ parserInternals.c testHTML.c xmllint.c include/libxml/HTMLparser.h
+ include/libxml/parser.h include/libxml/parserInternals.h
+ include/libxml/xmlversion.h.in: added a new configure
+ option --with-push, some cleanups, chased code size anomalies.
+ Now a library configured --with-minimum is around 150KB,
+ sounds good enough.
+
+Tue Sep 30 12:31:00 AEST 2003 Malcolm Tredinnick <malcolm@commsecure.com.au>
+
+ * libxml-2.0-uninstalled.pc.in: New file for building against
+ uninstalled libxml2 builds.
+ * configure.in, Makefile.am: Support the *-uninstalled.pc file.
+ * .cvsignore: Ignore the new generated *.pc file.
+
+Tue Sep 30 02:38:16 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am SAX.c SAX2.c configure.in globals.c parser.c
+ parserInternals.c testReader.c testSAX.c xmlIO.c xmllint.c
+ xmlreader.c example/gjobread.c include/libxml/xmlversion.h.in:
+ added 2 new configure option: --with-reader --with-sax1
+ to allow removing the reader or non-xmlReadxxx() interfaces.
+
+Mon Sep 29 19:58:26 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in entities.c tree.c valid.c xmllint.c
+ include/libxml/tree.h include/libxml/xmlversion.h.in:
+ Adding a configure option to remove tree manipulation
+ code which is not strictly needed by the parser.
+
+Mon Sep 29 15:23:41 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c nanohttp.c: last finishing touch to the BeOS
+ patch from Marcin 'Shard' Konicki
+
+Mon Sep 29 15:15:08 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c SAX2.c c14n.c catalog.c configure.in debugXML.c
+ encoding.c entities.c nanoftp.c nanohttp.c parser.c relaxng.c
+ testAutomata.c testC14N.c testHTML.c testRegexp.c testRelax.c
+ testSchemas.c testXPath.c threads.c tree.c valid.c xmlIO.c
+ xmlcatalog.c xmllint.c xmlmemory.c xmlreader.c xmlschemas.c
+ example/gjobread.c include/libxml/HTMLtree.h include/libxml/c14n.h
+ include/libxml/catalog.h include/libxml/debugXML.h
+ include/libxml/entities.h include/libxml/nanohttp.h
+ include/libxml/relaxng.h include/libxml/tree.h
+ include/libxml/valid.h include/libxml/xmlIO.h
+ include/libxml/xmlschemas.h include/libxml/xmlversion.h.in
+ include/libxml/xpathInternals.h python/libxml.c:
+ Okay this is scary but it is just adding a configure option
+ to disable output, this touches most of the files.
+
+Mon Sep 29 12:53:56 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c: better fix, avoids breaking the python bindings
+
+Mon Sep 29 11:21:33 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c: fix a compilation problem when configuring
+ with debug but without mem-debug
+
+Sun Sep 28 20:53:17 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: cleanup, creating a new legacy.c module,
+ made sure make tests ran in reduced conditions
+ * SAX.c SAX2.c configure.in entities.c globals.c parser.c
+ parserInternals.c tree.c valid.c xlink.c xmlIO.c xmlcatalog.c
+ xmlmemory.c xpath.c xmlmemory.c include/libxml/xmlversion.h.in:
+ increased the modularization, allow to configure out
+ validation code and legacy code, added a configuration
+ option --with-minimum compiling only the mandatory code
+ which then shrink to 200KB.
+
+Sun Sep 28 02:15:07 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix a bug raised by the Mips compiler.
+ * include/libxml/SAX.h include/libxml/parser.h: move the
+ SAXv1 block definitions to parser.h fixes bug #123380
+ * xmlreader.c include/libxml/xmlreader.h: reinstanciate
+ the attribute and element pool borken 2 commits ago.
+ Start playing with an entry point to preserve a subtree.
+ * entities.c: remove a warning.
+
+Sat Sep 27 12:19:38 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * encoding.c, parser.c, relaxng.c: further (final?) minor
+ changes for compilation warnings. No change to logic.
+
+Fri Sep 26 18:03:42 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: fixed small problem with missing entities (test/ent2)
+
+Sat Sep 27 01:25:39 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: William's change allowed to spot a nasty bug in xmlDoRead
+ if the result is not well formed that ctxt->myDoc is not NULL
+ and uses the context dictionary.
+
+Fri Sep 26 21:09:34 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: other patches from William Brack to avoid
+ compilation warnings on AIX.
+
+Fri Sep 26 11:03:08 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * HTMLparser.c, entities.c, xmlreader.c: minor change to
+ avoid compilation warnings on some (e.g. AIX) systems
+
+Fri Sep 26 16:49:25 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: fixed a backward compatibility problem
+ when formatting "deprecated SAXv1 function ignorableWhitespace"
+ could be reproduced by xmllint --format
+
+Fri Sep 26 15:50:44 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/libxml2-api.xml: rebuilt the API
+ * xmllint.c doc/xmllint.1 doc/xmllint.xml: added the new options
+ --nocdata and --nsclean to remove CDATA section and surperfluous
+ namespace declarations
+ * parser.c SAX2.c: implementation of the 2 new options
+
+Fri Sep 26 14:41:53 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c testHTML.c xmllint.c include/libxml/HTMLparser.h:
+ added the same htmlRead APIs than their XML counterparts
+ * include/libxml/parser.h: new parser options, not yet implemented,
+ added an options field to the context.
+ * tree.c: patch from Shaun McCance to fix bug #123238 when ]]>
+ is found within a cdata section.
+ * result/noent/cdata2 result/cdata2 result/cdata2.rdr
+ result/cdata2.sax test/cdata2: add one more cdata test
+
+Thu Sep 25 23:03:23 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c xmllint.c doc/libxml2-api.xml include/libxml/parser.h:
+ Changed the new xmlRead/xmlCtxtRead APIs to have an extra
+ base URL parameter when not loading from a file or URL.
+
+Thu Sep 25 16:23:58 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing a beta3 solving the ABI problems
+ * globals.c parser.c parserInternals.c testHTML.c HTMLparser.c SAX.c
+ include/libxml/globals.h include/libxml/SAX.h: make sure the
+ global variables for the default SAX handler are V1 ones to
+ avoid ABI compat problems.
+ * xmlreader.c: cleanup of uneeded code
+ * hash.c: fix a comment
+
+Thu Sep 25 14:16:51 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c hash.c parser.c include/libxml/xmlexports.h
+ include/libxml/xmlmemory.h include/libxml/xmlversion.h.in:
+ fixing some comments to avoid warnings from apibuild.py
+
+Wed Sep 24 23:42:08 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * win32/configure.js: patch from Stéphane Bidoul for configuring
+ the beta2 version #123104
+
+Wed Sep 24 23:17:59 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: adding repeated parsing and validating tests
+ * SAX2.c parser.c tree.c include/libxml/parser.h: make the new
+ DOM tree building interfaces use the dictionary from the
+ parsing context to build the element and attributes names
+ as well as formatting spaces and short text nodes
+ * include/libxml/dict.h dict.c: added some reference counting
+ for xmlDictPtr because they can be shared by documents and
+ a parser context.
+ * xmlreader.c: a bit of cleanup, remove the specific tree freeing
+ functions and use the standard ones now.
+ * xmllint.c: add --nodict
+ * python/libxml.c: fix a stupid bug so that ns() works on
+ attribute nodes.
+
+Tue Sep 23 23:07:45 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/parser.h: adding a new set of
+ API for parsing xmlReadDoc() xmlReadFile() ... xmlReadIO()
+ and xmlCtxtReadDoc() ... xmlCtxtReadIO(). That with
+ a clear define of xmlParserOption, xmlCtxtUseOptions()
+ should simplify custom parsing without being tempted to
+ use global variables, and xmlCtxtReset() should allow reuse
+ of a context for multiple parsing.
+ * xmllint.c: switched to use xmlReadXXX, allow options to
+ be used simultaneously with less troubles.
+ * tree.c: simple warning removal
+ * doc/apibuild.py: small fix
+ * doc/libxml2-api.xml win32/libxml2.def.src: updated
+
+Tue Sep 23 11:15:23 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: revert xmlCreateDocParserCtxt() since this break
+ the parseDoc() python bindings
+
+Tue Sep 23 11:00:18 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: make sure xmlDetectSAX2() is called only at
+ parsing time to avoid breaking apps changing the SAX
+ callbacks after context allocation, change xmlCreateDocParserCtxt()
+ to use an immutable buffer instead of a copy
+
+Tue Sep 23 09:40:33 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied patch from Markus Keim fixing a problem
+ with I/O callback registration.
+ * include/libxml/xmlerror.h: fixed #122994 comment numbering
+ for xmlParserErrors
+
+Mon Sep 22 12:21:11 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c include/libxml/tree.h: the uri arg to xmlNodeSetBase is
+ really a const xmlChar*
+ * xmlreader.c include/libxml/xmlreader.h: addin the
+ xmlTextReaderConstString() to get an interned string from
+ the reader
+
+Sun Sep 20 17:22:20 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * error.c: fixed a warning message (trivial)
+ * doc/search.php: removed incorrect warning message when word
+ search not found in last of multiple tables (bug 119535)
+
+Fri Sep 19 14:26:28 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing a 2.6.0-beta2 release
+ * xmlIO.c: avoid a warning
+ * tree.c: avoid duplicate code in xmlReplaceNode as pointed out
+ by Chris Ryland
+ * include/libxml/dict.h: add a QName access lookup to the
+ dictionary.
+ * xmlreader.c include/libxml/xmlreader.h: adding const access
+ based on the dictionary interface for string read from the
+ reader, the node content access is still TODO, it's too different
+
+Fri Sep 19 00:01:08 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c: fixing namespace DTD validations
+ * result/valid/ns2.xml result/valid/ns.xml: the output of defaulted
+ namespaces is slightly different now.
+ * Makefile.am: report the memory used in Timingtests (as well as time)
+
+Thu Sep 18 15:29:46 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: add streaming on memory regression tests, found
+ bad bugs in the reader interface
+ * xmlreader.c: fixing bugs w.r.t. very large names, and special
+ condition in end of file.
+ * xmlIO.c tree.c include/libxml/tree.h include/libxml/xmlIO.h:
+ adding immutable buffers, and parser input based on those,
+ but this should not be used (yet) for general parsing
+ * parser.c: added a comment about using immutable buffers for
+ general parsing.
+ * result/bigname.xml.rdr result/bigname2.xml.rdr: fixing the
+ output of the regression tests
+ * xmllint.c: using the immutable buffers when streaming on
+ mmaped file (--stream --memory)
+
+Thu Sep 18 12:04:50 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c: the last patch broke unicity of returned strings, removed
+
+Thu Sep 18 00:31:02 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: add a Timingtests target to check bad behaviour
+ from the streaming engine
+ * dbgen.pl dbgenattr.pl: perl script to generate big instances
+ * xmlreader.c: fix a bad behaviour on large buffer inputs
+
+Wed Sep 17 23:25:47 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c xmlreader.c: two small improvements
+
+Wed Sep 17 22:53:32 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: avoid a leak with previous patch
+
+Wed Sep 17 22:06:11 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: use stderr and not stdout for default errors
+ in python environment bug #122552
+
+Wed Sep 17 21:33:57 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: small fix from Rob Richards for input filename
+ * xmllint.c: fixes for --repeat and --memory/--stream for speed tests
+ * xmlIO: adding a guard in one function
+
+Wed Sep 17 15:57:44 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c xmlreader.c include/libxml/parser.h: more performance hunting
+ reducing memory allocation and free and avoiding expensive routines
+
+Wed Sep 17 12:23:41 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c parser.c parserInternals.c xmlreader.c: started messing
+ seriously with per-document dict and element and attribute nodes
+ reuse in the xmlReader. This seems to lead to an interesting
+ speedup of the xmlReader already.
+
+Wed Sep 17 01:07:56 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c include/libxml/dict.h: do string allocations in large
+ pools, allowing to find if a string pertain to a dict quickly
+ * xmllint.c: fix --stream --repeat --timing
+ * Makefile.am: the testThreads run output should be seen.
+
+Mon Sep 15 16:46:28 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c include/libxml/parser.h: starting work on reusing the
+ parser dictionary for the element and attribute tag names.
+ Add pools for Element and Attributes in the parser context,
+ which should help speeding up the reader.
+ * Makefile.am result/*.rdr : adding non-python reader regression
+ tests.
+
+Mon Sep 15 14:54:42 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c parser.c valid.c: starting to cleanup some of the
+ problems exposed by the W3C/NIST regression suite.
+ * result/ent7.sax result/xml2.sax: small fixes.
+
+Mon Sep 15 11:46:47 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: more parser error factoring
+
+Sun Sep 14 21:53:39 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * HTMLtree.c: Fixed bug 121394 - missing ns on attributes
+
+Sun Sep 14 21:43:32 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/xmlerror.h: factoring of more
+ error handling code, serious size reduction and more lisibility
+ of the resulting code.
+ * parserInternals.c parser.c include/libxml/parserInternals.h
+ include/libxml/parser.h: changing the way VC:Proper Group/PE Nesting
+ checks are done, use a counter for entities. Entities where freed and
+ reallocated at the same address failing the check.
+ * tree.c: avoid a warning
+ * result/valid/* result/VC/*: this slightly changes some validation
+ error messages.
+
+Sun Sep 14 11:03:27 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * valid.c: fixed bug 121759 - early declaration of
+ attribute-list in external DTD
+
+Sat Sep 13 14:42:11 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/xmlerror.h: starting cleaning up
+ error handling, factorize error processing
+ * doc/xmllint.html: update of the page, remove --sgml
+
+Sat Sep 13 02:13:50 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am DOCBparser.c parserInternals.c testDocbook.c
+ xmllint.c doc/xmllint.xml doc/xmllint.1: removing the
+ broken pseudo SGML DocBook parser code.
+
+Fri Sep 12 17:24:11 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fix a problem with strcpy() in xmlXPathFormatNumber()
+ valgrind pointed out the strings overlapped. cleanup .
+
+Fri Sep 12 11:43:12 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied speedup to xmlSearchNs() as suggested by
+ Luca Padovani. Cleaned up xmlSearchNsByHref() in the process
+ applying the same trick.
+
+Fri Sep 12 01:36:20 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c parserInternals.c tree.c include/libxml/parser.h
+ include/libxml/xmlerror.h: adding namespace checkings
+ while making sure they still parse as wellformed documents.
+ Add an nsWellFormed status report to the context, and
+ provide new appropriate error codes.
+ * Makefile.am result/namespaces/* test/namespaces/*: add
+ specific regression testing for the new namespace support
+ * test/att5 result/noent/att5 result/att5 result/att5.sax:
+ add more coverage for the attribute parsing and normalization
+ code.
+
+Fri Sep 12 01:34:19 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: backport of a thread bugfix from 2_5_X branch
+
+Thu Sep 11 18:29:18 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed a bug in one corner case of attribute parsing.
+
+Thu Sep 11 16:21:53 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/* : 2.6.0beta1 changes
+ * SAX2.c hash.c parser.c parserInternals.c: Fixing attribute
+ normalization, might not be totally fixed but this should
+ make sure SAX event provide the right strings for attributes
+ except entities for which libxml2 is different by default
+ This should fix #109564
+ * result/attrib.xml.sax result/ent3.sax result/p3p.sax: minor changes
+ in attribute callback values
+ * result/c14n/with-comments/example-4
+ result/c14n/without-comments/example-4: this also fixes a subtle
+ bug in the canonicalization tests.
+
+Wed Sep 10 12:38:44 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ Time to commit 3 days of work rewriting the parser internal,
+ fixing bugs and migrating to SAX2 interface by default. There
+ is some work letf TODO, like namespace validation and attributes
+ normalization (this break C14N right now)
+ * Makefile.am: fixed the test rules
+ * include/libxml/SAX2.h include/libxml/parser.h
+ include/libxml/parserInternals.h SAX2.c parser.c
+ parserInternals.c: changing the parser, migrating to SAX2,
+ adding new interface to switch back to SAX1 or initialize a
+ SAX block for v1 or v2. Most of the namespace work is done
+ below SAX, as well as attribute defaulting
+ * globals.c: changed initialization of the default SAX handlers
+ * hash.c tree.c include/libxml/hash.h: added QName specific handling
+ * xmlIO.c: small fix
+ * xmllint.c testSAX.c: provide a --sax1 switch to test the old
+ version code path
+ * result/p3p result/p3p.sax result/noent/p3p test/p3p: the new code
+ pointed out a typo in a very old test namespace
+
+Sun Sep 7 19:58:33 PTD 2003 William Brack <wbrack@mmm.com.hk>
+
+ * xmlIO.c include/libxml/xmlIO.h parser.c: Implemented detection
+ of compressed files, setting doc->compressed appropriately
+ (bug #120503).
+
+Sun Sep 7 22:53:06 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: try to cope with the fact that apps may still
+ have allocated smaller SAX callbak block
+
+Sun Sep 7 11:11:45 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c: allow to give -1 for undefined length in lookups
+ * include/libxml/parser.h parser.c parserInternals.c testSAX.c:
+ first round of work on the new SAX2 interfaces, the API
+ will change but commiting before changing for historical
+ reference.
+
+Sat Sep 6 10:55:01 PTD 2003 William Brack <wbrack@mmm.com.hk>
+
+ * SAX2.c, xmlIO.c: fixed bug #121210 (callback to sax->error,
+ sax->warning with wrong params).
+
+Fri Sep 5 10:33:42 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/globals.h: patch from Stéphane Bidoul to export
+ globals entry points to the python bindings
+
+Wed Sep 3 15:24:41 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: when creating a DOCTYPE use "html" lowercase
+ by default instead of "HTML"
+ * parser.c xmlreader.c: optimization, gain a few % parsing speed by
+ avoiding calls to "areBlanks" when not needed.
+ * include/libxml/parser.h include/libxml/tree.h: some structure
+ extensions for future work on using per-document dictionaries.
+
+Wed Sep 3 15:08:06 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am results/*.sax SAXResult/*: removing the SAXresults
+ tree, keeping result in the same tree, added SAXtests to the
+ default "make tests"
+
+Tue Sep 2 15:59:04 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * include/libxml/xmlexports.h: defined additional macros which
+ affect exports and added mingw section
+
+Mon Sep 1 15:15:18 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/index.py: fixed problem parsing xhtml docs
+ * doc/xmlreader.html,doc/guidelines.html: small modification
+ to avoid problem in python parsing.
+ * doc/search.php: fixed upper case filename problem for XSLT docs
+
+Mon Sep 1 22:55:09 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: patch from Mark Vakoc that allows compiling
+ with XInclude but without XPointer support.
+
+Mon Sep 1 22:31:38 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in xml2-config.in: Applied a patch from Kevin P. Fleming
+ to add --libtool-libs option to xml2-config script.
+
+Sun Aug 31 21:52:12 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/README.docs, doc/Makefile.am: new file added,
+ giving some description of the documentation generation process
+ * doc/search.php: fixed problem with upper case on filenames
+
+Fri Aug 29 12:25:01 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/Makefile.bcb: updates by Eric Zurcher
+
+Thu Aug 28 22:58:38 PDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/apibuild.py, doc/libxml2-api.xml: enhanced code
+ to compensate for pollution from Igor's header taint
+ (quick before Daniel notices)
+
+Thu Aug 28 23:01:36 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX2.c: fixed a namespace error on attribute reporting bug
+ pointed out by Tobias Reif
+ * test/p3p result/p3p result/noent/p3p: this test case was wrong
+ using xmlsn instead of xmlns...
+
+Thu Aug 28 18:25:07 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * include/libxml/globals.h include/libxml/xmlexports.h: fixed
+ typos reported by Mark Vakoc
+
+Thu Aug 28 08:59:51 MDT 2003 John Fleck <jfleck@inkstain.net>
+
+ add:
+ * doc/tutorial/api.html
+ * doc/tutorial/ar01s09.html
+ * doc/tutorial/includexpath.c
+ updated
+ * doc/tutorial/*.html
+ fix my bad - forgot to check in new files when I last
+ updated
+
+Thu Aug 28 14:31:13 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/Makefile.bcb: new file, support for Borland C++
+ * xmllint.c: fixed time inclusion for various compilers
+
+Thu Aug 28 12:32:59 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * parser.c parserInternals.c DOCBparser.c HTMLparser.c: added
+ few casts to shut the compiler warnings
+
+Thu Aug 28 12:23:51 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/Makefile.* win32/configure.js: fixed for mingw
+
+Thu Aug 28 10:01:44 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c threads.c: fixing bug #120870 try to avoid problem
+ with uninitialized mutexes
+
+Wed Aug 27 16:12:41 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed an error reporting bug in Relax-NG when we end
+ up with multiple states, select the "best" one. Fix #120682
+ * result/relaxng/tutor11_2_3.err: small change resulting
+
+Wed Aug 27 11:25:25 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: applied base64 support patch from Anthony Carrico
+
+Wed Aug 27 10:58:51 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * include/libxml/[threads-xpointer].h: realigned parameters
+ after taint
+
+Wed Aug 27 09:59:54 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * include/libxml/xmlexports.h: fixed defs for Borland compiler,
+ as reported by Eric Zurcher
+
+Tue Aug 26 15:54:04 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed bug #120386 again a problem introduced when
+ trying to reuse automata for content validation. Fix a bug report
+ problem on zeroOrMore
+ * result/relaxng/tutor3_7_err: change slightly error reporting.
+
+Mon Aug 25 13:24:57 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/Makefile.am: make sure the new header will
+ be included when generating a new distribution.
+
+Mon Aug 25 12:37:05 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed a couple of stupid bugs in the state allocation
+ routines which led to bug #120040 and the ones reported by
+ Martijn Faassen
+
+Mon Aug 25 12:37:23 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * include/libxml/parserInternals.h include/libxml/relaxng.h
+ include/libxml/SAX.h include/libxml/SAX2.h: realigned the
+ parameters after taint.
+
+Mon Aug 25 11:16:01 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * include/libxml/xmlversion.h.in: moved export defs to a separate
+ file for consistency.
+ * include/libxml/xmlexports.h: new file, contains export defs.
+
+Mon Aug 25 11:01:49 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * include/libxml/*.h genUnicode.py: exportability taint
+ of the headers.
+
+Thu Aug 21 12:37:46 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: make the deprecated interfaces log an error message
+ to be sure it won't get used.
+
+Thu Aug 21 00:50:32 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am SAX2.c include/libxml/Makefile.am include/libxml/SAX2.h:
+ Adding new version of the SAX interface, it's not there yet,
+ currently just preparing the work
+ * globals.c parser.c SAX.c include/libxml/SAX.h
+ include/libxml/globals.h include/libxml/parser.h: doing some
+ refactoring of the SAXv1 interfaces, obsoleting a bunch of them
+ while keeping functionalities, preparing SAX2 integration.
+ * dict.c: small cleanup.
+
+Wed Aug 20 00:20:01 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixes a small bug introduced in last commit and detected
+ by valgrind.
+
+Tue Aug 19 16:54:18 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c hash.c: optimization when freeing hash tables.
+ * parser.c xmlIO.c include/libxml/tree.h: some tuning of buffer
+ allocations
+ * parser.c parserInternals.c include/libxml/parser.h: keep a
+ single allocated block for all the attributes callbacks,
+ avoid useless malloc()/free()
+ * tree.c: do not realloc() when growing a buffer if the buffer
+ ain't full, malloc/memcpy/free avoid copying memory.
+
+Mon Aug 18 18:37:01 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c doc/xmllint.xml doc/xmllint.1: added option
+ --dtdvalidfpi for Tobias Reif
+
+Mon Aug 18 14:03:03 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * dict.c include/libxml/dict.h Makefile.am include/libxml/Makefile.am:
+ new dictionary module to keep a single instance of the names used
+ by the parser
+ * DOCBparser.c HTMLparser.c parser.c parserInternals.c valid.c:
+ switched all parsers to use the dictionary internally
+ * include/libxml/HTMLparser.h include/libxml/parser.h
+ include/libxml/parserInternals.h include/libxml/valid.h:
+ Some of the interfaces changed as a result to receive or return
+ "const xmlChar *" instead of "xmlChar *", this is either
+ insignificant from an user point of view or when the returning
+ value changed, those function are really parser internal methods
+ that no user code should really change
+ * doc/libxml2-api.xml doc/html/*: the API interface changed and
+ the docs were regenerated
+
+Sun Aug 17 23:05:38 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied patch to xmlCleanupParser from Dave Beckett
+
+Sat Aug 16 22:53:42 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/parsedecl.py, doc/libxml2-refs.xml, doc/API*.html:
+ fixed part (2) of bug 119535 (wrong alpha case on filenames)
+
+Sat Aug 16 20:35:28 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/API*.html, doc/html/*: regenerated API documentation
+ for xmlsoft.org (part of Bug 119535)
+
+Fri Aug 15 14:58:37 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * encoding.c, threads.c, include/libxml/HTMLparser.h,
+ doc/libxml2-api.xml: Minor changes to comments, etc. for
+ improving documentation generation
+ * doc/Makefile.am: further adjustment to auto-generation of
+ win32/libxml2.def.src
+
+Fri Aug 15 02:24:20 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * News configure.in: preparing libxml2-2.5.10 release
+ * doc/* : updated the doc and rebuilt
+
+Fri Aug 15 01:55:53 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixing the xmlSAXParseDTD bug #119536 raised by
+ Malcolm Tredinnick with the patch he suggested.
+
+Fri Aug 15 01:37:10 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: allocation error #119784 raised by Oliver Stoeneberg
+
+Fri Aug 15 00:41:58 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: fixing an use of strcpy() where both strings overlap
+ pointed out by valgrind.
+
+Thu Aug 14 17:10:39 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c globals.c include/libxml/xmlmemory.h: get rid of
+ some compilation warnings.
+ * xinclude.c: fix the performance problem reported by Kevin Ruscoe
+ plus some cleanup and better error reporting.
+
+Thu Aug 14 14:13:43 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: applied UTF-16 encoding handling patch provided by
+ Mark Itzcovitz
+ * encoding.c parser.c: more cleanup and fixes for UTF-16 when
+ not having iconv support.
+
+Thu Aug 14 03:19:08 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in example/Makefile.am libxml.h nanoftp.c
+ nanohttp.c xmllint.c: Applied patch from Mikhail Grushinskiy for
+ mingw compiler on Windows.
+
+Thu Aug 14 02:28:36 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed the serious CPU usage problem reported by
+ Grant Goodale
+ * HTMLparser.c: applied patch from Oliver Stoeneberg about a free
+ missing in htmlSAXParseDoc
+
+Tue Aug 12 22:48:10 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * doc/Makefile.am: Removed dependency from libxml2.def.src
+
+Tue Aug 12 18:55:08 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * autogen.sh: took away the requirement for automake-1.4,
+ changed the messages for getting auto* tools to current
+ gnu pages.
+ * configure.in: added check for Linux Dec alpha requiring
+ -ieee flag, fixed test for ipv6
+ * trionan.c: fixed problem for compiling on Linux Dec alpha
+ using native compiler
+ * doc/Makefile.am: implemented regeneration of win32/libxml2.def.src
+ whenever libxml2-api.xml is changed.
+
+Mon Aug 11 17:02:23 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: cleaning up a problem when parsing UTF-16 and libiconv
+ is not used.
+
+Sun Aug 10 08:13:22 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * win32/libxml2.def.src: renerated with fixed libxml2-api.xml
+
+Sun Aug 10 00:22:55 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * News configure.in: preparing libxml2-2.5.9 release
+ * doc/* : updated the doc and rebuilt
+
+Sat Aug 9 20:00:13 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlreader.h doc/libxml2-api.xml: changing an enum
+ definition to get a correct API XML description. This was apparently
+ breaking Windows build.
+
+Sat Aug 9 13:41:21 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixed a nasty bug #119387, bad heuristic from
+ the progressive HTML parser front-end on large character data
+ island leading to an erroneous end of data detection by the
+ parser. Some cleanup too to get closer from the XML progressive
+ parser.
+
+Sat Aug 9 00:42:47 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * win32/configure.js: Added in support for the ISO8859X
+ module (patch provided by Jesse Pelton)
+
+Fri Aug 8 15:56:32 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c tree.c threads.c: hum try to avoid some troubles
+ when the library is not initialized and one try to save, the
+ locks in threaded env might not been initialized, playing safe
+ * xmlschemastypes.c: apply patch for hexBinary from Charles Bozeman
+ * test/schemas/hexbinary_* result/schemas/hexbinary_*: also added
+ his tests to the regression suite.
+
+Fri Aug 8 18:47:38 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * win32/defgen.xsl, win32/libxml2.def.src: Bug 119343
+ (with apologies to Igor) - Enhanced handling of docb and
+ nanohttp.
+
+Thu Aug 7 21:13:22 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * encoding.c: further small changes for warnings when
+ configured with --with-iconv=no
+
+Wed Aug 6 12:32:11 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * error.c trionan.[ch] testThreads.c python/generator.py:
+ further small changes to elminate most of the remaining
+ warnings.
+
+Tue Aug 5 23:51:21 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * error.c HTMLparser.c testC14N.c testHTML.c testURI.c
+ xmlcatalog.c xmlmemory.c xmlreader.c xmlschemastypes.c
+ python/libxml.c include/libxml/xmlmemory.h: small changes
+ to syntax to get rid of compiler warnings. No changes
+ to logic.
+
+Mon Aug 4 22:40:54 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/libxml2-api.xml doc/html/*: rebuilt the API and docs.
+
+Mon Aug 4 21:40:34 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed a small problem in the patch for #118763
+ * result/HTML/doc3.htm*: this reverts back to the previous result
+
+Sun Aug 3 21:41:49 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/FAQ.html doc/xml.html: applied doc patch to xml.html
+ and rebuilt, apparently some C++ wrappers are not available,
+ c.f. bug #118943
+
+Sun Aug 3 21:30:31 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixing HTML attribute serialization bug #118763
+ applying a modified version of the patch from Bacek
+ * result/HTML/doc3.htm*: this modifies the output from one test
+
+Sun Aug 3 21:02:30 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c include/libxml/tree.h: added a new API to split a
+ QName without generating any memory allocation
+ * valid.c: fixed another problem with namespaces on element
+ in mixed content case
+ * python/tests/reader2.py: updated the testcase with
+ Bjorn Reese fix to reader for unsignificant white space
+ * parser.c HTMLparser.c: cleanup.
+
+Sun Aug 3 20:55:40 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: trying to fix #118754 of possible recursion in the
+ catalogs. Not fantastically happy about the current fix since
+ it's likely to break under very thread intensive concurrent
+ access to the catalog. Better solution might to keep the depth
+ an extra argument to the resolution functions.
+
+Sun Aug 3 18:56:54 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixed bug #118712 about mixed content, and namespaced
+ element names.
+ * test/valid/mixed_ns.xml result/valid/mixed_ns*: added a check
+ in the regression tests
+
+Fri Aug 1 23:55:23 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ Coninuing work on bug 118559
+ * DOCBparser.c: removed 2 unsed vars
+ * xmlregexp.c: changed some numeric const to their enum symbols
+ * xmlreader.c: changed one var define from int to enum
+ (a little more to be done, awaiting co-ordination)
+ * relaxng.c: deleted one unused var
+ * xmllint.c: deleted some unused vars, changed one arg
+ val from int to enum
+ * testHTML.c, testDocbook.c: changed some arg vals to enum const
+ * xmlIO.c: fixed typo from last night (small warning msg)
+
+Thu Jul 31 22:44:33 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ Working on bug 118559
+ * error.c: deleted unused variable
+ * parserInternals.c: deleted unneeded 'const' qualifier
+ * parser.c: changed variable type for enum temp storage
+ * xmlIO.c: changed debugging var to be inside #ifdef
+ * valid.c: removed unused variable
+ * HTMLparser.c: removed some unneeded 'const' qualifiers
+ * xpath.c: added some type casts, removed some unused vars
+ * xinclude.c: added one type cast
+ * nanohttp.c: repositioned some #ifdef to avoid unused var
+ * nanoftp.c: removed unused var
+
+Wed Jul 30 14:57:55 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied a patch from William Brack about
+ the problem of parsing very large HTML instance with comments
+ as raised by Nick Kew
+
+Wed Jul 30 12:29:38 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c include/libxml/xmlreader.h: applying cleanup
+ patch from Bjorn Reese for xmlTextReaderNodeType() and
+ significant whitespace. There is an enum for node type
+ values now.
+
+Wed Jul 30 11:08:21 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: applying patch from Peter Jacobi to added
+ ISO-8859-x encoding support when iconv is not available
+ * configure.in include/libxml/xmlversion.h.in
+ include/libxml/xmlwin32version.h.in: added the glue needed
+ at the configure level and made it the default for Windows
+
+Tue Jul 29 16:43:48 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/libxml2class.txt:
+ patch from Joachim Bauch + cleanup for Relax NG error callbacks
+ in python
+
+Tue Jul 29 12:46:08 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c parserInternals.c tree.c: applied Peter Jacobi encoding
+ cleanup patch, and also avoided a possible memory leak
+
+Tue Jul 29 09:28:09 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: fix the previous commit
+
+Tue Jul 29 12:28:17 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * HTMLparser.c: fixed problem with comments reported by Nick Kew
+ * encoding.c: added routines xmlUTF8Size and xmlUTF8Charcmp for
+ some future cleanup of UTF8 handling
+
+Mon Jul 28 16:39:14 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: applied a change suggested by Sean Griffin in bug
+ #118494 about a memory leak in EXSLT
+
+Sun Jul 27 14:30:56 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed a Relax-NG compilation/streaming bug introduced
+ when fixing the previous Relax-NG bugs
+ * result/relaxng/*: This slightly changes the output messages of
+ some regression tests.
+ * configure.in: added support of -with-fexceptions for nested C++
+ support.
+
+Thu Jul 24 15:46:02 MDT 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/apa.html
+ * doc/tutorial/apb.html
+ * doc/tutorial/apc.html
+ * doc/tutorial/apd.html
+ * doc/tutorial/ape.html
+ * doc/tutorial/apf.html
+ * doc/tutorial/apg.html
+ * doc/tutorial/aph.html
+ * doc/tutorial/ar01s02.html
+ * doc/tutorial/ar01s03.html
+ * doc/tutorial/ar01s04.html
+ * doc/tutorial/ar01s05.html
+ * doc/tutorial/ar01s06.html
+ * doc/tutorial/ar01s07.html
+ * doc/tutorial/ar01s08.html
+ * doc/tutorial/index.html
+ * doc/tutorial/ix01.html
+ * doc/tutorial/xmltutorial.pdf
+ * doc/tutorial/xmltutorial.xml
+ update tutorial with XPath example
+
+Thu Jul 24 17:07:06 IST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c parser.c: fixing a bug about a special case of namespace
+ handling, this closes bug #116841
+
+Wed Jul 23 20:52:36 IST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c result/relaxng/*: checked and fixed the compilation
+ of RNG schemas, fixes a couple of bugs #117097 and #117001 .
+ This slightly changes the output messages of some regression tests.
+
+Wed Jul 23 15:15:08 IST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fixed an out of bound error #118052 , the good
+ part if that base64 code was not in use yet ...
+
+Tue Jul 22 19:42:15 MDT 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.html
+ include html version of the xmllint man page, so an
+ up-to-date version is visible on the Web
+
+Mon Jul 21 21:53:43 IST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c include/libxml/xinclude.h: added a new API
+ xmlXIncludeProcessTree() to process XInclude only on a subtree
+ this should fix bug #115385
+
+Fri Jul 18 17:11:42 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c include/libxml/relaxng.h: adding Get interface for
+ the error callback and parameters of parsing and validation
+ contexts
+ * xmlreader.c: patch to fix bug #117702 about incomplete Read()
+ on text nodes.
+
+Wed Jul 16 23:15:53 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: patch from Dodji Seketeli about UTF16 BOM
+ when using the push XML parser.
+ * result/utf16bom.xml result/noent/utf16bom.xml test/utf16bom.xml:
+ added the test to the regression suite.
+
+Tue Jul 15 22:03:13 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c: add xmlThrDefMutex = NULL in xmlCleanupGlobals()
+ as suggested by Rob Richards
+
+Tue Jul 15 15:30:55 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c HTMLparser.c entities.c parser.c relaxng.c
+ xmlschemas.c xpath.c: removed some warnings by casting xmlChar
+ to unsigned int and a couple of others.
+
+Fri Jul 11 16:44:22 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: fixes a segfault on empty hexBinary strings
+
+Thu Jul 10 16:02:47 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c nanohttp.c: cleanup patches from Peter Breitenlohner
+
+Tue Jul 8 16:02:19 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c threads.c: fixes some problem when freeing unititialized
+ mutexes
+
+Tue Jul 8 14:15:07 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c nanohttp.c: the modules should not import <config.h>
+ directly, some cleanups
+ * xmlschemas.c: Peter Sobisch found a nasty bug in the Schemas
+ validation code.
+
+Mon Jul 7 18:00:51 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * win32/configure.js: Jesse Pelton pointed out a problem in the
+ javascript code.
+
+Mon Jul 7 16:39:31 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS doc/*: regenerated
+ * nanoftp.c nanohttp.c: might fix includes problems with the
+ Ipv6 support on solaris
+ * tree.c: patch from Markus Keim about xmlHasNsProp() on attributes
+ defined as #IMPLIED
+
+Sun Jul 6 23:09:13 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/*: preparing release 2.5.8
+ * nanohttp.c: changed some preprocessor block
+ * xmlschemastypes.c: applied patch from Charles Bozeman adding
+ hexBinary schema datatype and adding support for totalDigits and
+ fractionDigits facets.
+
+Sun Jul 6 19:56:18 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c xpath.c: fixed 2 bugs pointed in #116448
+
+Sun Jul 6 19:34:17 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: fixed bug #116095 removing the error message when
+ reapplying XInclude to a document.
+
+Sat Jul 5 22:40:23 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied small changes to portability layer for
+ compilation on DJGPP Ms-DOS compiler.
+
+Sat Jul 5 22:30:25 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c HTMLparser.c: use the character() SAX callback
+ if the cdataBlock ain't defined.
+ * xpath.c: fix bug #115349 allowing compilation when configured
+ with --without-xpath since the Schemas code needs NAN and co.
+
+Sat Jul 5 00:51:30 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ Fixed problem with multi-threading, shown by the test program
+ testThreads. After fix, ran mutiple tests on various speed
+ machines (single and dual processor X86), which all seem okay.
+
+ * catalog.c: added missing xmlRMutexUnlock in xmlLoadCatalog
+
+ * threads.c: added missing initialisation for condition variable
+ in xmlNewRMutex.
+
+Sat Jun 21 16:10:24 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ Applying IPv6 patch from Archana Shah <archana.shah@wipro.com>
+ closing bug #114837
+
+ * configure.in: Added checks for IPv6 support and getaddrinfo().
+
+ * acconfig.h: Defined HAVE_GETADDRINFO and SUPPORT_IP6.
+
+ * config.h.in: Defined HAVE_GETADDRINFO and SUPPORT_IP6.
+
+ * nanoftp.c: Structure xmlNanoFTPCtxt contains either sockaddr_storage
+ field or sockaddr_in field, depending upon the availability of IPv6
+ support.
+ have_ipv6(): Added to check for run-time IPv6 support.
+ (xmlNanoFTPScanURL), (xmlNanoFTPUpdateURL), (xmlNanoFTPScanProxy):
+ Modified to parse a URI with IPv6 address given in [].
+ (xmlNanoFTPConnect): Changed to use getaddrinfo for address
+ resolution, if it is available on the system, as gethostbyname
+ does not return IPv6 addresses on some platforms.
+ (xmlNanoFTPGetConnection): Modified type of dataAddr variable to
+ sockaddr_storage or sockaddr_in depending upon the IPv6 support.
+ Sending EPSV, EPRT or PASV, PORT depending upon the type of address
+ we are dealing with.
+
+ * nanohttp.c: (have_ipv6): Added to check for run-time IPv6 support.
+ (xmlNanoHTTPScanURL), (xmlNanoHTTPScanProxy): Modified to parse
+ a URI with IPv6 address given in [].
+ (xmlNanoHTTPConnectHost): Modified to use getaddrinfo if it is
+ available on the system. Also IPv6 addresses will be resolved by
+ gethostbyname only if IPv6 run-time support is available.
+ (xmlNanoHTTPConnectAttempt): Modified to deal with IPv6 address.
+
+Sat Jun 14 18:46:51 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/configure.js include/win32config.h
+ include/libxml/xmlversion.h.in: Applied the patch for BCB
+ by Eric Zurcher.
+
+Fri Jun 13 14:27:19 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/Makefile.am doc/html/*: reverted back patch for #113521,
+ due to #115104 and while fixing #115101 . HTML URLs must not
+ be version dependent.
+
+Fri Jun 13 12:03:30 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c: do not generate &quot; for " outside of attributes
+ * result//*: this changes the output of some tests
+
+Mon Jun 9 12:28:58 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c xmlIO.c: trying to fix #114277 about when file
+ remapping and escaping should really be attempted.
+
+Mon Jun 9 11:06:09 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/*: applied a patch from Gman for building docs
+ * valid.c xmllint.c include/libxml/valid.h: applied a patch from
+ Gary Pennington to provide an allocator for xmlValidCtxt
+ * xmlreader.c: applied patch from Jacek Konieczny fixing bug
+ #113580 about data not being passed immediately.
+
+Thu Jun 5 11:31:02 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied a couple of patches from Mark Itzcovitz
+ to handle saving back "UTF-16" documents.
+
+Mon Jun 2 21:56:15 MVT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c xmlschemas.c include/libxml/schemasInternals.h: commiting
+ some work done while in the Maldives (hence the timezone on the
+ laptop !)
+ * result/schemas/length3* test/schemas/deter0_*
+ test/schemas/group0_*: some tests added too
+
+Mon Jun 2 15:34:17 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: small fix
+ * xmlIO.c: fixed an error message
+
+Tue May 20 14:21:23 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: fixing Red Hat bug #91013 where xmllint was
+ accepting an improper UTF8 sequence
+
+Sat May 17 12:53:11 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * threads.c: applied the patch from Stéphane Bidoul for getting
+ rid of extra threads in a dynamic library.
+ * win32/configure.js: threads default to 'native' now.
+
+Fri May 16 13:17:52 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: fixing bug #112904: html output method escaped
+ plus sign character in URI attribute.
+
+Thu May 15 18:06:18 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * build_glob.py global.data globals.c parser.c
+ include/libxml/globals.h: patch from Stéphane Bidoul for setting
+ up threads global defaults.
+ * doc/libxml2-api.xml: this extends the API with new functions
+ * python/tests/Makefile.am python/tests/reader2.py
+ python/tests/thread2.py: integrated the associated testcase and
+ fixed the error string used in reader2
+
+Wed May 14 14:56:46 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in libxml.spec.in python/Makefile.am: trying
+ to conciliate --with-python= requirements and RPM builds,
+ a PITA really...
+
+Tue May 13 18:30:34 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: oops last commit introduced a memory leak.
+
+Tue May 13 18:10:38 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c doc/xmllint.xml: added --nonet option
+ * doc/Makefile.am: fixing #112803 by adding --nonet when calling
+ xsltproc or xmllint
+ * doc/xmllint.xml doc/xmllint.1: also added --schema doc and
+ rebuilt
+ * HTMLparser.c: cleaned up the HTML parser context build when
+ using an URL
+
+Tue May 13 16:35:04 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: added a comment about bug #112902
+
+Mon May 12 21:58:00 EDT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * minor cleanup of configure '--help' display
+ * error.c: enhanced xmlParserPrintFileContext to fix bug #109942
+
+Mon May 12 17:53:30 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: PI nodes in external subset were not freed :-\
+ fixes bug #112842
+
+Mon May 12 11:23:27 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: added --schema option to run WXS schema validation
+ * xmlschemas.c xmlschemastypes.c include/libxml/schemasInternals.h:
+ tried to improve error reporting in the Schema code, some cleanup
+ too.
+
+Sun May 11 16:13:20 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed some problems in the handling of errors,
+ and attributes addressed by references.
+ * test/schemas/* result/schemas/*: dropped the verbosity level
+ and added a couple of new tests
+
+Sat May 10 16:01:21 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: Stéphane Bidoul found an off by one addressing
+ error on the error handling.
+
+Fri May 9 19:08:20 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: trying to fix #112673
+
+Fri May 9 18:14:16 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c catalog.c parser.c relaxng.c: removed multiple
+ warning, this fixed a bug and should close #111574
+
+Fri May 9 15:34:32 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixing bug #104081 with xs:all with an element
+ holding minOccurs="0"
+ * test/schemas/all_* result/schemas/all_*: added some regression
+ tests for that bug
+ * xmllint.c xmlreader.c: patches from Joerg Schmitz-Linneweber and
+ Garry Pennington to compile without schemas support.
+
+Thu May 1 10:02:35 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed a problem with xmlUnlinkNode() for DTDs.
+
+Wed Apr 30 14:16:08 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xml2-config.in: try to fix Red hat bug #89957, do not
+ output -L/usr/lib64
+ * xmlreader.c: fixed a typo in a comment
+
+Tue Apr 29 07:32:02 MDT 2003 John Fleck <jfleck@inkstain.ent>
+
+ * doc/tutorial/aph.html, ix01.html
+ forgot to cvs add the new files. Thanks to Roland van Laar
+ for pointing this out
+
+Tue Apr 29 14:36:49 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c doc/libxml2-api.xml: fixing a function comment
+ * doc/Makefile.am doc/apibuild.py doc/gnome-xml.sgml: switching
+ to the XML/XSLT doc generation closing #111799
+ * doc/html/*: complete update of the HTML results
+
+Mon Apr 28 14:51:41 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/defgen.xsl: fixed the conditional for unicode map,
+ removed hardcoded schema entries
+
+Mon Apr 28 02:19:00 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/defgen.xsl: new file, stylesheet for generating
+ win32/libxml2.def.src from doc/libxml2-api.xml
+ * win32/libxml2.def.src: is autogenerated from now on, changes
+ to this file will not appear here anymore
+
+Mon Apr 28 00:12:11 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * win32/configure.js python/setup.py.in: applied patch
+ from Stéphane Bidoul for the Python bindings on the new
+ release.
+
+Sun Apr 27 17:56:21 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * debugXML.c: included libxml/uri.h for xmlCanonicPath
+ declaration
+ * win32/configure.js: thread-enabled build is now default
+ * win32/libxml2.def.src: added more exports
+
+Sun Apr 27 00:23:05 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS doc/*.xsl doc/*.html: updated the web site separated
+ developers from common pages, made the transition to XHTML1,
+ added validity checking to the makefile rules.
+
+Sat Apr 26 23:17:51 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix for xmlIOParseDTD same as previous and reported
+ by Petr Pajas
+
+Sat Apr 26 15:26:04 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied fix to xmlSAXParseDTD from Malcolm Tredinnick
+ closing #111638
+
+Sat Apr 26 14:00:58 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py: fixed a problem in the generator where
+ the way functions are remapped as methods on classes was
+ not symmetric and dependent on python internal hash order,
+ as reported by Stéphane Bidoul
+
+Fri Apr 25 21:52:33 MDT 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial:
+ xmltutorial.xml
+ xmltutorial.pdf
+ *.html
+ add appendix on generating compiler flags, more indexing
+
+Sat Apr 26 01:10:48 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * triodef.h vms/build_libxml.com: applied patch from Craig A. Berry
+ to get libxml-2.5.7 to compile on OpenVMS
+
+Fri Apr 25 18:42:35 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixing an xmlParseDTD bug raised by Petr Pajas
+
+Fri Apr 25 15:20:29 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/Makefile.am doc/xmlcatalog.1 doc/xmlcatalog_man.xml
+ doc/xmllint.1 doc/xmllint.xml: automated the generation of the
+ man page based on xsltproc and a stylesheet PI in the XML.
+
+Fri Apr 25 12:37:33 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmllint.*: trying to fix #110541 where &nbsp; generated
+ character preventing rendering by the man command.
+
+Fri Apr 25 01:09:23 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS configure.in: preparing release 2.5.7
+ * doc/*: updated and rebuilt the docs
+ * doc/apibuild.py: fixed the script
+
+Thu Apr 24 19:11:12 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am doc/apibuild.py: make sure the OOM code don't
+ get in the way of the builds
+ * doc/libxml2-api.xml python/libxml2class.txt: automatic update
+
+Thu Apr 24 18:01:46 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am testOOM.c testOOMlib.[ch] : integrated the Out Of
+ Memory test from Havoc Pennington #109368
+ * SAX.c parser.c parserInternals.c tree.c uri.c valid.c
+ xmlmemory.c xmlreader.c xmlregexp.c include/libxml/tree.h
+ include/libxml/parser.h: a lot of memory allocation cleanups
+ based on the results of the OOM testing
+ * check-relaxng-test-suite2.py: seems I forgot to commit the
+ script.
+
+Wed Apr 23 17:16:41 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: trivial fix for 109774 removing a warning
+
+Wed Apr 23 15:49:32 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c SAX.c catalog.c debugXML.c parser.c: try to find
+ more places where xmlCanonicPath() must be used to convert
+ filenames to URLs, trying to fix #111088
+
+Wed Apr 23 09:35:12 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c python/libxml.py: applied patch from
+ Brent M Hendricks adding binding for xmlCatalogAddLocal
+
+Tue Apr 22 15:18:01 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: tried to fix #98879 again in a more solid
+ way.
+
+Tue Apr 22 13:58:43 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/libxml2.def.src: added more exports from the relaxng and
+ xmlreader clan
+
+Tue Apr 22 10:35:13 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c test/valid/ns* test/result/ns*: applied the patch
+ provided by Brent Hendricks fixing #105992 and integrated the
+ examples in the testsuite.
+
+Tue Apr 22 01:06:09 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * TODO: updated a bit
+ * configure.in: fixed the comment, threads now default to on
+ * parserInternals.c: fixed an erroneous xmlMallocAtomic() call
+
+Mon Apr 21 23:33:38 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c libxml.h parser.c parserInternals.c tree.c xmllint.c
+ xmlreader.c include/libxml/parser.h: a lot of performance work
+ especially the speed of streaming through the reader and push
+ interface. Some thread related optimizations. Nearly doubled the
+ speed of parsing through the reader.
+
+Sun Apr 20 10:36:05 MDT 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.xml
+ * doc/xmllint.1
+ update man page to explain use of --stream
+
+Sat Apr 19 02:03:24 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c HTMLparser.c c14n.c catalog.c encoding.c globals.c
+ nanohttp.c parser.c parserInternals.c relaxng.c tree.c uri.c
+ xmlmemory.c xmlreader.c xmlregexp.c xpath.c xpointer.c
+ include/libxml/globals.h include/libxml/xmlmemory.h: added
+ xmlMallocAtomic() to be used when allocating blocks which
+ do not contains pointers, add xmlGcMemSetup() and xmlGcMemGet()
+ to allow registering the full set of functions needed by
+ a garbage collecting allocator like libgc, ref #109944
+
+Fri Apr 18 16:37:41 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: switched to have thread support enabled by default,
+ didn't got troubles with ABI compatibility on Linux, hope it
+ won't break on strange OSes, if yes, report the system ID
+ * doc/libxml2-api.xml: just rebuilt the API
+
+Fri Apr 18 14:31:15 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.h include/libxml/parser.h parser.c xmlIO.c DOCBparser.c:
+ added support for large file, tested with a 3+GB instance,
+ and some cleanup.
+ * catalog.c: added a TODO
+ * Makefile.am: added some "make tests" comments
+
+Thu Apr 17 14:51:57 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: some cleanups
+ * doc/xmlreader.html: extended the document to cover RelaxNG and
+ tree operations
+ * python/tests/Makefile.am python/tests/reader[46].py: added some
+ xmlReader example/regression tests
+ * result/relaxng/tutor*.err: updated the output of a number of tests
+
+Thu Apr 17 11:35:37 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: valgrind pointed out an uninitialized variable error.
+
+Thu Apr 17 11:06:28 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/relaxng.h relaxng.c include/libxml/xmlreader.h
+ xmlreader.c: augnemting the APIs, cleanups.
+ * parser.c: cleanup bug #111005
+ * xmlIO.c: added some missing comments
+
+Wed Apr 16 17:46:50 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c xmllint.c: more work on RelaxNG streaming validation
+ trying to improve the subset compiled, and more testing.
+ * doc/downloads.html doc/xml.html doc/xmlmem.html: some updates on the
+ documentation
+ * test/relaxng/tutor11_1_3.xml: fixes the DTD path
+ * result/relaxng/*.err: fix some of the outputs
+
+Wed Apr 16 01:28:15 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c xmlreader.c xmllint.c include/libxml/relaxng.h
+ include/libxml/xmlreader.h: implemented streaming of
+ RelaxNG (when possible) on top of the xmlReader interface,
+ provided it as xmllint --stream --relaxng .rng .xml
+ This seems to mostly work.
+ * Makefile.am: updated to test RelaxNG streaming
+
+Mon Apr 14 18:08:33 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c include/libxml/relaxng.h: integrated the regexp
+ based validity checking of fragments of the document for
+ which the RNG can be compiled to regexps. Works on all regression
+ tests, only fix needed is related to error messages.
+
+Sun Apr 13 21:51:00 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c xmlregexp.c include/libxml/xmlautomata.h
+ include/libxml/xmlregexp.h: Starting work precompiling
+ parts of RelaxNG schemas. Not plugged onto validity checking
+ yet, just the regexp building part. Needed to extend some
+ of the automata and regexp APIs.
+
+Fri Apr 11 21:36:21 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c xmlreader.c include/libxml/xmlreader.h: make sure
+ xmllint --stream and xmllint --stream --valid returns errors
+ code appropriately
+
+Fri Apr 11 10:59:24 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c include/libxml/xmlreader.h: Added the Expand()
+ and Next() operation to work on subtrees within the reader
+ framework.
+ * doc/libxml2-api.xml python/libxml2class.txt: resulting updates
+ * python/tests/reader5.py: added an example for those new
+ functions of the reader.
+
+Thu Apr 10 23:38:13 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: patch from Vasily Tchekalkin to fix #109865
+
+Thu Apr 10 15:32:44 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fixing HasValue for namespace as raised by
+ Denys Duchier
+
+Wed Apr 9 14:07:18 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c include/libxml/HTMLparser.h: exported
+ htmlCreateMemoryParserCtxt() it was static
+
+Wed Apr 9 13:21:48 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c xmlschemastypes.c include/libxml/xmlschemas.h:
+ update from Charles Bozeman for date and duration types
+ * test/schemas/date_0.* test/schemas/dur_0.*
+ result/schemas/date_0.* result/schemas/dur_0.*: updated too
+
+Mon Apr 7 12:19:26 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c valid.c xpath.c include/libxml/tree.h include/libxml/valid.h:
+ fixing bug #107129, removing excessive allocation and calls
+ to *printf in the code to build QName strings.
+
+Sat Apr 5 11:41:36 CEST 2003 Igoe Zlatkovic <igor@zlatkovic.com>
+
+ * win32/libxml2.def.src: fixed conditional exports, reported by
+ Luke Murray.
+
+Fri Apr 4 18:08:00 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed a possible problem with xmlRecoverMemory()
+
+Thu Apr 3 17:24:44 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * trio.c trio.h triodef.h trionan.c trionan.h triop.h triostr.c
+ triostr.h: Bjorn sent an update for the TRIO portability layer.
+
+Tue Apr 1 21:57:26 CEST 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/libxml2.def.src: exported new functions
+
+Tue Apr 1 13:09:46 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in NEWS: preparing release 2.5.6
+ * doc/*: updated and rebuilt the docs
+
+Tue Apr 1 11:52:15 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: fixed an uninitialized memory access pointed by valgrind
+ on C14Ntests
+
+Tue Apr 1 00:12:28 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: one more fixup of error message reporting
+
+Mon Mar 31 18:36:32 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: more work on bug #109225, and fixed an uninitialized
+ variable pointed out by valgrind
+
+Mon Mar 31 18:05:22 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: try to work on bug #109225 and provide better
+ error reports.
+ * result/relaxng/* : this change the output of a number of tests
+ * xinclude.c: fixing the parsed entity redefinition problem
+ raised on the list.
+ * test/schemas/date_0.xsd: updated the date test c.f. E2-12
+
+Mon Mar 31 13:19:04 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: fixed date comparison to handle the tzo
+ The only failures left are disagreements on Notations and
+ '+1' not being allowed for ulong, uint, ushort and ubyte.
+
+Mon Mar 31 12:11:47 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: fixed gMonth parsing routine accordingly
+ to the XML Schemas errata
+ http://www.w3.org/2001/05/xmlschema-errata#e2-12
+
+Sun Mar 30 23:04:18 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c xmlschemastypes.c: more work on XML Schemas datatypes
+ and facets support. Currently only schemas with binHex or
+ base64 don't compile. A few error left in the test suite:
+ found 1035 test instances: 919 success 23 failures
+ most are gdate or gdateyear failing check, and a few cases where
+ James clark tests results are strange.
+ * valid.c: allow to reuse the Notation checking routine without
+ having a validation context.
+ * SAX.c: removed a #if 0
+
+Sat Mar 29 17:35:05 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: forgot to apply one check from #106931 patch
+ * xmlschemastypes.c: more work on XML Schemas datatypes
+
+Sat Mar 29 11:49:25 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c include/libxml/relaxng.h xmlschemastypes.c: more work
+ on cleaning up XML Schemas datatypes based on James Clark tests
+ test/xsdtest/xsdtest.xml
+
+Fri Mar 28 14:24:08 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: implemented comparisons for Schemas values.
+ * xmlschemastypes.c include/libxml/xmlschemastypes.h: fixed
+ some bugs in duration handling, comparisons for durations
+ and decimals, removed all memory leaks pointed out by James
+ testsuite. Current status is now
+ found 238 test schemas: 197 success 41 failures
+ found 1035 test instances: 803 success 130 failures
+
+Fri Mar 28 00:41:55 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c include/libxml/xmlschemas.h: fixed bugs and memory
+ leaks in the W3C XML Schemas code
+ * xmlschemastypes.c: implemented nonPositiveInteger
+ * test/schemas/length2_0.xsd result/schemas/length2_0_0.err:
+ fixed the test and result.
+
+Thu Mar 27 22:23:07 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c tree.c: two patches from James Bursa on the HTML
+ parser and a typo
+ * xmlschemastypes.c: reindenting, fixing a memory access
+ problem with dates.
+
+Thu Mar 27 15:53:35 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixing #109227 providing more context in case of
+ start/end tag mismatch
+ * python/tests/ctxterror.py python/tests/readererr.py: update the
+ tests accordingly
+
+Thu Mar 27 15:22:41 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: should fix #109327 errors on memory accesses
+
+Thu Mar 27 15:06:13 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: Fixed reopening of #78662 <form action="...">
+ is an URI reference
+
+Wed Mar 26 22:38:39 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed bug #109160 on non-ASCII IDs
+
+Wed Mar 26 17:30:37 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: Norm suggested a nicer error message for xml:space values
+ errors
+
+Wed Mar 26 01:34:19 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c include/libxml/xpath.h: first part of the fix to
+ performance bug #108905, adds xmlXPathOrderDocElems() providing
+ document order for nodes.
+ * python/libxml.c: Python may require TRIO as Albert Chin pointed out
+
+Tue Mar 25 16:07:00 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: removing a warning with Sun compiler
+ bug #109154
+
+Tue Mar 25 07:02:56 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.xml
+ * doc/xmllint.1
+ update xmllint man page with --relaxng option
+
+Tue Mar 25 12:07:03 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/setup.py.in : was missing "drv_libxml2.py"
+
+Mon Mar 24 19:38:05 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c xpath.c: some changes related to the new way of
+ handling Result Value Tree, before 2.5.5
+
+Mon Mar 24 16:36:23 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in NEWS: preparing release 2.5.5
+ * doc/* : updated the documentation and regenerated it.
+
+Mon Mar 24 14:56:01 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed some problems related to #75813 about handling
+ of Result Value Trees
+
+Sun Mar 23 22:57:20 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: applied a set of patches from Lorenzo Viali correcting
+ URI parsing errors.
+
+Sun Mar 23 22:00:14 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: validity status was not passed back when validating in
+ entities, but raised by Oliver Fischer
+
+Sun Mar 23 21:30:50 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: avoid escaping ',' in URIs
+
+Sun Mar 23 12:57:00 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixing bug #108976 get the ID/REFs to reference
+ the ID in the document content and not in the entity copy
+ * SAX.c include/libxml/parser.h: more checking of the ID/REF
+ stuff, better solution for #107208
+ * xmlregexp.c: removed a direct printf, dohhh
+ * xmlreader.c: fixed a bug on streaming validation of empty
+ elements in entities
+ * result/VC/ElementValid8 test/VCM/v20.xml result/valid/xhtml1.xhtml:
+ cleanup of the validation tests
+ * test/valid/id* test/valid/dtds/destfoo.ent result/valid/id*:
+ added more ID/IDREF tests to the suite
+
+Sat Mar 22 23:38:08 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fixed #107043 removing 2 warnings with Sun One
+ compiler.
+
+Sat Mar 22 18:50:45 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: valgrind'ed and cleaned up a couple of memory issues.
+
+Sat Mar 22 16:15:50 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: fix bug #107208 avoid false duplicates when ID/REFs are
+ defined in entities content
+
+Sat Mar 22 15:53:27 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: Fixed validation bug #108858 on namespace names using
+ entities and reported by Brent Hendricks
+ * xmllint.c: report xmlTextReaderHasValue() result in --stream
+ --debug output.
+
+Sat Mar 22 13:32:39 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fixed bug #108801 reported by Malcolm Tredinnick
+ about the DocType node not being reported sometimes.
+ * python/tests/reader.py: added to test to the regression checks
+
+Sat Mar 22 01:57:40 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fixed bug #108546 on long CDATA (or text nodes)
+ reported by Edd Dumbill
+
+Sat Mar 23 01:00:24 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c parser.c parserInternals.c: patch from
+ johan@evenhuis.nl for #107937 fixing some line counting
+ problems, and some other cleanups.
+ * result/HTML/: this result in some line number changes
+
+Fri Mar 21 22:19:14 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in Makefile.am: fixed Red Hat bug #86118 use libxml2.spec
+ instead of libxml.spec
+ * relaxng.c: fixed some of the error reporting excessive
+ verbosity
+ * catalog.c debugXML.c valid.c xmlreader.c xmlschemas.c xpath.c
+ xmlschemastypes.c: removed some warnings from gcc
+ * doc/libxml2-api.xml: rebuilt
+
+Fri Mar 21 17:25:23 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: another optimization, for choice this time
+ * result/relaxng/spec1* result/relaxng/tutor12_1*
+ result/relaxng/tutor3_7: cleanups.
+
+Fri Mar 21 13:41:23 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed xmlRelaxNGNodeMatchesList
+ * test/relaxng/testsuite.xml: augmented the test suite
+ * result/relaxng/spec1* result/relaxng/tutor12_1*: this fixes
+ some schemas validation tests in the presence of foreign
+ namespaces.
+
+Fri Mar 21 02:23:34 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: added another interleave speedup.
+
+Thu Mar 20 17:22:00 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: added integer and fixed one of the
+ IDREFS regression tests pbm
+ * result/relaxng/docbook_0.err: updated
+
+Wed Mar 19 21:58:47 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c xmlschemastypes.c: attempt to cope with ID/IDREF(S)
+ declared both in the DTD and in the Schemas <grin/>
+ * relaxng.c: more debug, added a big optimization for <mixed>
+ * test/relaxng/testsuite.xml: augmented the testsuite
+ * test/relaxng/ result/relaxng: added the RelaxNG spec and a
+ DocBook example to the regression tests
+
+Wed Mar 19 11:34:10 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * check-xsddata-test-suite.py: cosmetic change for output
+ * relaxng.c: try to minimize calls to malloc/free for states.
+
+Tue Mar 18 17:50:31 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: removed a warning
+ * xmlschemastypes.c: more cleanup, added ENTITY and ENTITIES
+ support
+ * check-relaxng-test-suite.py check-xsddata-test-suite.py:
+ cleanup/improvements of the regression tests batch
+ * test/relaxng/testsuite.xml: augmented libxml2 own testsuite
+
+Tue Mar 18 12:36:22 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed error msg cleanup deallocation
+ * xmlschemastypes.c: added a function to handle lists of
+ atomic types, added support for IDREFS
+
+Tue Mar 18 01:28:15 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c valid.c xmlschemastypes.c: added Datatype ID
+ and IDREF, usable from RelaxNG now
+ * include/libxml/xmlschemastypes.h: need to add a new interface
+ because the validation modifies the infoset
+ * test/relaxng/testsuite.xml: extended the testsuite
+
+Mon Mar 17 16:34:07 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed the last core RelaxNG bug known #107083,
+ schemas datatype ID/IDREF support still missing though.
+ * xmlreader.c: fix a crashing bug with prefix raised by
+ Merijn Broeren
+ * test/relaxng/testsuite.xml: augmented the testsuite with
+ complex inheritance tests
+
+Sun Mar 16 18:45:50 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: switched back to the previous Relax-NG code base,
+ the derivation algorithm need severe constraining code to avoid
+ combinatorial explosion. Fixed the problem with Sebastian Rahtz
+ TEI based example and other bugs
+ * result/relaxng/*err: updated the results
+ * test/relaxng/testsuite.xml: started a new test suite
+
+Sat Mar 15 22:26:46 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c include/libxml/relaxng.h: After coming to the conclusion
+ that the original RelaxNG validation code was un-fixeable, it got
+ rewritten to use the derivation algorithm from James Clark and
+ redebugged it (nearly) from scratch:
+ found 373 test schemas: 372 success 1 failures
+ found 529 test instances: 529 success 0 failures
+
+Tue Mar 11 12:08:23 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c parser.c: fix some recursion problems introduced in the
+ last release.
+ * relaxng.c: more debugging of the RNG validation engine, still
+ problems though.
+
+Mon Mar 10 14:10:47 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: stop generating wrong result file with * in name
+ * relaxng.c: fixing the include bug raised by Sebastian Rahtz
+ * result/relaxng/demo* test/relaxng/demo: added the tests from
+ Sebastian reproducing the problem.
+
+Sun Mar 9 18:02:31 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.1: regenerating man page from xmllint.xml to pick
+ up Aleksey's change
+
+Sun Mar 9 13:53:16 2003 Aleksey Sanin <aleksey@aleksey.com>
+
+ * xmllint.c doc/xmllint.xml: use $XMLLINT_INDENT environment
+ variable to control the indentation for the xmllint "--format"
+ option
+
+Sat Mar 8 14:27:43 CET 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * encoding.c: applied Gennady's patch against buffer overrun
+
+Fri Mar 7 19:29:40 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * test/xsdtest/xsdtest.xml uri.c: after and exchange with James
+ Clark it appeared I had bug in URI parsing code ...
+ * relaxng.c include/libxml/relaxng.h: completely revamped error
+ reporting to not lose message from optional parts.
+ * xmllint.c: added timing for RNG validation steps
+ * result/relaxng/*: updated the result, all error messages changed
+
+Fri Mar 7 15:18:32 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fix bug #107804, the algorithm used for document order
+ computation was failing on attributes.
+
+Thu Mar 6 22:35:50 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fix bug #107764 , possibility of buffer overflow
+ in xmlValidDebug()
+
+Wed Mar 5 17:41:37 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c include/libxml/nanoftp.h: adding xmlNanoFTPDele()
+ from Philipp Dunkel
+
+Wed Mar 5 10:57:09 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastype.c: made powten array static it should not be exported
+ * HTMLparser.c: fix bug #107361 by reusing the code from the XML
+ parser function.
+ * testHTML.c: get rid of valgrind messages on the HTML SAX tests
+
+Fri Feb 28 00:23:00 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed a node dump crash on attributes
+ * test/xsdtest/xsdtest.xml test/xsdtest/xsdtest.xsl: fixed
+ an URI test bug and get better output.
+
+Thu Feb 27 22:28:40 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * check-xsddata-test-suite.py: give more infos
+ * relaxng.c: fix a bug reported by Sebastian Rahtz and
+ REF->DEF in attribute values.
+
+Thu Feb 27 21:09:32 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * check-xsddata-test-suite.py test/xsdtest/xsdtest.xml
+ test/xsdtest/xsdtest.xsl: import of the XSD Datatype
+ regression tests from James Clark.
+
+Thu Feb 27 18:40:04 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c xmlschemas.c xmlschemastypes.c
+ include/libxml/xmlschemastypes.h: added param support for relaxng
+ type checking, started to increment the pool of simple types
+ registered, still much work to be done on simple types and
+ facets checkings.
+
+Wed Feb 26 16:45:39 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c: fixes again one of the problem raised by
+ James Clark in #106788
+
+Wed Feb 26 15:46:48 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: Fixed a couple of problem raised by James Clark
+ in bug #107083, the support for ID/IDREF/IDREFS at the WXS
+ datatype level still not fixed though.
+
+Mon Feb 24 21:09:19 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing release 2.5.4
+ * doc/*: updated and rebuilt the docs
+ * relaxng.c: removed warnings
+ * result/relaxng/*: updated the results
+
+Mon Feb 24 20:53:17 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixes a DTD regexp generation problem.
+
+Mon Feb 24 20:12:57 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixes bug #105998 about false detection of
+ attribute consumption loop.
+
+Mon Feb 24 19:14:57 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: Fixes bug #106931 in XInclude entities merging.
+
+Mon Feb 24 18:50:35 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: fixed bug #105992
+
+Mon Feb 24 18:14:16 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed xmlSetProp and al. when the node passed is not an
+ element.
+ * relaxng.c: fixed bugs 7.3 (though not complete) and memory leaks
+ found 373 test schemas: 369 success 4 failures
+ found 529 test instances: 525 success 4 failures
+ * check-relaxng-test-suite.py: added memory debug reporting
+
+Mon Feb 24 12:41:54 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c parser.c: some warning removal on Igor's patch
+ * tree.c: seems I messed up with #106788 fix
+ * python/libxml.c: fixed some base problems when Python provides
+ the resolver.
+ * relaxng.c: fixed the interleave algorithm
+ found 373 test schemas: 364 success 9 failures
+ found 529 test instances: 525 success 4 failures
+ the resulting failures are bug in the algorithm from 7.3 and
+ lack of support for params
+
+Sun Feb 23 14:49:39 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: another fix for nodeinfo in entities problem
+ * tree.c entities.c: fixed bug #106788 from James Clark
+ some spaces need to be serialized as character references.
+
+Sat Feb 22 18:28:16 CET 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * parser.c uri.c: fixed the bug I introduced in the path
+ handling, reported by Sebastian Bergmann
+
+Sat Feb 22 00:19:48 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixing some nodeinfo in entities problem raised
+ by Glenn W. Bach
+ * relaxng.c: implemented the first section 7.3 check
+ * result/relaxng/*: updated the results
+
+Fri Feb 21 18:12:19 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed some problems in the previous commit
+ and finished implementing 4.16 rules checking
+ found 373 test schemas: 353 success 20 failures
+ found 529 test instances: 519 success 6 failures
+ * result/relaxng/*: updated the results
+
+Fri Feb 21 16:37:39 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: implemented checks from section 7.2
+
+Thu Feb 20 16:00:31 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: implemented the checks from section 7.1, fixed
+ some of the 4.20 and 4.21 problems.
+ found 373 test schemas: 338 success 35 failures
+ found 529 test instances: 519 success 6 failures
+ * result/relaxng/*: updated the results
+
+Thu Feb 20 01:09:24 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: implemented the 4.20 and 4.21 simplification rules.
+ * result/relaxng/*: updated the results
+
+Wed Feb 19 18:30:30 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: more bugfixes
+ * result/relaxng/*: updated the results
+
+Wed Feb 19 15:39:56 CET 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * DOCBparser.c: obsoleted xmlNormalizeWindowsPath
+ * HTMLparser.c: obsoleted xmlNormalizeWindowsPath
+ * SAX.c: ensured xmlDoc.URL is always canonic
+ * parser.c: obsoleted xmlNormalizeWindowsPath
+ * uri.c include/libxml/uri.h: introduced xmlCanonicPath
+ * xmlIO.c include/libxml/xmlIO.h: obsoleted xmlNormalizeWindowsPath
+ * win32/libxml2.def.src: added few exports
+
+Wed Feb 19 14:26:51 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in: patched to have shared libraries
+ for Python regression tests and static binaries for gdb debug
+ in my development environment
+ * relaxng.c: more bugfixes
+ found 373 test schemas: 296 success 77 failures
+ found 529 test instances: 516 success 8 failures
+ * result/relaxng/*: updated the results
+
+Wed Feb 19 01:17:48 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: guess what ! Relax-NG bugfixing, what a surprize...
+
+Tue Feb 18 22:09:50 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: float/double check bugfix
+ * tree.c include/libxml/tree.h: exported a function for NMTOKEN
+ validation
+ * xmlreader.c: add a TODO for Jody
+ * relaxng.c: bugfix bugfix bugfix
+ found 373 test schemas: 300 success 73 failures
+ found 529 test instances: 507 success 10 failures
+ * result/relaxng/*: updated the results
+
+Tue Feb 18 00:33:17 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c check-relaxng-test-suite.py: more RelaxNG bug hunting
+
+Mon Feb 17 18:23:32 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c check-relaxng-test-suite.py: more work on the
+ RelaxNG implementation conformance testing.
+ found 373 test schemas: 284 success 89 failures
+ found 529 test instances: 448 success 47 failures
+ * result/relaxng/*: updated the results
+
+Sun Feb 16 16:48:38 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * ChangeLog tree.c doc/libxml-doc.el doc/libxml2-api.xml: applied
+ a patch from Kjartan Maraas to fix some typos
+
+Sun Feb 16 16:40:52 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: more bug-hunting
+ * testRelax.c include/libxml/relaxng.h: added --tree to dump the
+ intermediate rng tree
+ * python/generator.py: patch from Stéphane Bidoul to fix the generator
+ on python < 2.2
+
+Fri Feb 14 17:49:26 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * check-relaxng-test-suite.py relaxng.c: more testing on the
+ Relax-NG front, cleaning up the regression tests failures
+ current state and I forgot support for "mixed":
+ found 373 test schemas: 280 success 93 failures
+ found 529 test instances: 401 success 68 failures
+ * tree.c include/libxml/tree.h xmlschemastypes.c: finished and
+ moved the Name, NCName and QName validation routine in tree.c
+ * uri.c: fixed handling of URI ending up with #, i.e. having
+ an empty fragment ID.
+ * result/relaxng/*: updated the results
+
+Thu Feb 13 16:49:24 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * check-xinclude-test-suite.py: improved the script accordingly
+ to the XInclude regression tests updates
+ * xpointer.c: Implemented XPointer element() Scheme W3C PR of 13
+ November 2002
+ * result/XPath/xptr/chapterschildseq result/XPath/xptr/vidchildseq
+ test/XPath/xptr/chapterschildseq test/XPath/xptr/vidchildseq:
+ augmented the Xpointer testsuite for the element() scheme
+
+Thu Feb 13 12:00:30 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: added TODO for the DTD compatibility spec
+ * xinclude.c: more bug fixes driven by the testsuite
+
+Tue Feb 11 19:01:02 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * check-xinclude-test-suite.py xinclude.c: Work on the W3C/NIST
+ regression tests for XInclude, improved the script, improving
+ XInclude error reporting mechanism
+
+Mon Feb 10 17:19:14 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS doc/* configure.in: preparing release 2.5.3
+
+Mon Feb 10 17:11:22 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: trying to fix #104934 about some XHTML1 serialization
+ issues.
+
+Mon Feb 10 16:41:13 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c xmlIO.c: fixing bug #104646 about iconv based
+ encoding conversion when the input buffer stops in the
+ middle of a multibyte char
+
+Mon Feb 10 15:24:47 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * test/relaxng/OASIS/spectest.xml: OASIS RelaxNG testsuite
+ * check-relaxng-test-suite.py: python script to run regression
+ against OASIS RelaxNG testsuite
+ * relaxng.c: some cleanup tweaks
+ * HTMLparser.c globals.c: cleanups in comments
+ * doc/libxml2-api.xml: updated the API
+ * result/relaxng/*: errors moved files, so large diffs but
+ no changes at the semantic level.
+
+Mon Feb 10 01:00:31 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixing #105678 problem when dumping a namespace node.
+
+Mon Feb 10 00:30:01 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed doc comment problems
+ * python/generator.py python/libxml_wrap.h python/types.c: adding
+ RelaxNG wrappers
+ * python/tests/Makefile.am python/tests/relaxng.py: added a specific
+ test of those early Python RelaxNG bindings
+
+Sun Feb 9 15:18:43 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: fixes a libtool problem on AMD 64bits builds
+ * relaxng.c: found the validation problem I had with interleave
+ when not covering all remaining siblings
+ * Makefile.am test.relaxng/* result/relaxng/*: augmented the
+ testsuite and check the RNG schemas against the RNG schemas
+ given in appendix A
+
+Sat Feb 8 18:55:43 CET 2003 Igor Zlatkovic <igor@zlatkovic.com>
+
+ * win32/Makefile.msvc: updates for RelaxNG
+ * win32/Makefile.mingw: updates for RelaxNG
+ * win32/libxml2.def.src: added RelaxNG exports
+
+Fri Feb 7 14:00:53 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: applied another bug fix from Sean Chittenden
+
+Fri Feb 7 13:34:08 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in xmllint.c: I f...ed up the default configuration
+ of schemas and --relaxng option display in xmllint, pointed by
+ Morus Walter.
+ * xlink.c: Sean Chittenden pointed a couple of errors in the XLink
+ detection module, fixes bug #105374.
+
+Fri Feb 7 01:43:38 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: added the boolean base type.
+
+Thu Feb 6 10:23:52 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: started implementing some of the missing
+ default simple types
+ * result/relaxng/*: updated the results
+
+Wed Feb 5 15:28:04 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS doc/*: updated the docs, ready for 2.5.2 release
+
+Wed Feb 5 14:15:59 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c tree.c xmlIO.c: comments cleanups
+ * Makefile.am: use xmllint for doing the RelaxNG tests
+ * configure.in: preparing 2.5.2 made schemas support default to
+ on instead of off
+ * relaxng.c: removed the verbosity
+ * xmllint.c: added --relaxng option
+ * python/generator.py python/libxml_wrap.h: prepared the integration
+ of the new RelaxNG module and schemas
+ * result/relaxng/*: less verbose output
+
+Wed Feb 5 12:00:36 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: do not run content model validation if the
+ content is not determinist
+
+Wed Feb 5 11:43:58 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: added the redefinition of namespaced attribute
+ check that was missing as Fabrice Desré pointed out.
+
+Wed Feb 5 11:09:29 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c include/libxml/HTMLparser.h: applied HTML
+ improvements from Nick Kew, allowing to do more checking
+ to HTML elements and attributes.
+
+Tue Feb 4 23:47:06 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: fixing bug #105137 about entities declaration
+ needing to be copied to the including document.
+
+Tue Feb 4 20:26:22 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: fixed bug #104817 with delegateURI
+ * xpath.c: fixing bugs #104123 and #104125
+
+Tue Feb 4 17:12:56 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in valid.c xmlreader.c python/libxml_wrap.h
+ python/types.c: fixing #104096 to compile without regexps
+
+Tue Feb 4 16:31:55 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixing bug #103969 forgot to add an epsilon transition
+ when building the automata for elem*
+
+Tue Feb 4 16:21:07 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied patch from Arne de Bruijn fixing
+ bug #103827
+
+Tue Feb 4 16:17:09 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: updating a comment, fixing #103776
+
+Tue Feb 4 16:05:53 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixing bug 105049 for validity checking of content
+ within recursive entities.
+
+Tue Feb 4 15:40:54 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: try to fix # 105049
+ * relaxng.c xmlschemastypes.c: a couple of changes and extensions
+ * tree.c: updated a function comment
+
+Tue Feb 4 00:20:58 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng: more work on grammars and refs/defs
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Mon Feb 3 14:16:59 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng: more work on name classes, except support
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Mon Feb 3 11:56:05 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng: more work on name classes, the "validate all" schemas
+ seems to work now.
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Mon Feb 3 09:50:26 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: removed an unprotedted debug message Aleksi Suhonen
+ * parser.c: put a guard against infinite document depth, basically
+ trying to avoid another kind of DoS attack.
+ * relaxng.c: some code w.r.t. nameClasses
+
+Sun Feb 2 17:01:43 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * test/relaxng/* result/relaxng/*: check all the namespace support
+ was actually correct based on tutorial section 10.
+
+Sun Feb 2 15:33:38 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng: include seems to work okay now
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Sat Feb 1 19:44:58 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: a bit of work done in the train back.
+ * test/relaxng/*: added one of the include tests
+
+Thu Jan 30 14:06:55 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng: more work done in the train
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Wed Jan 29 23:44:58 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: debugging of externalRef
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Wed Jan 29 22:06:04 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: more work on Relax-NG, implementing externalRef
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+ * Makefile.am: cleanup to Relaxtests target
+
+Wed Jan 29 00:08:38 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: more work on Relax-NG, implementing interleave
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Tue Jan 28 21:56:49 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: more work on Relax-NG, implementing interleave
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Mon Jan 27 07:35:29 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/customfo.xsl
+ * doc/tutorial/customhtml.xsl
+ adding stylesheet customizations used to generate fo
+ for pdf and html
+
+Mon Jan 27 13:29:43 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: more work on Relax-NG
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+ * xmlschemastypes.c: added a number of base type definition but not
+ the associated checks, those are still TODOs
+
+Sun Jan 26 17:37:06 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ in docs/tutorial:
+ * apa.html
+ * apb.html
+ * apc.html
+ * apd.html
+ * ape.html
+ * apf.html
+ * apg.html
+ * ar01s02.html
+ * ar01s03.html
+ * ar01s04.html
+ * ar01s05.html
+ * ar01s06.html
+ * ar01s07.html
+ * ar01s08.html
+ * index.html
+ * xmltutorial.pdf
+ * xmltutorial.xml
+ add index to tutorial
+
+Sun Jan 26 17:02:29 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmlcatalog.1
+ * doc/xmlcatalog_man.html
+ * doc/xmlcatalog_man.xml
+ belatedly fixing bug #93622 (adds rewriteURI type to
+ "--add" option in xmlcatalog man page
+
+Sun Jan 26 20:47:26 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlcatalog.c xmllint.c: applied patch for NetBSD by
+ Julio Merino, closing #104475
+
+Sun Jan 26 20:38:43 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: more work on Relax-NG
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Sun Jan 26 01:49:58 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: more work on Relax-NG
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Sat Jan 25 18:59:54 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * README: updated the policy on private mail answers
+ * relaxng.c: more work on Relax-NG
+ * test/relaxng/* result/relaxng/*: augmented/updated the
+ regression tests
+
+Fri Jan 24 15:12:44 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * error.c parser.c tree.c: applied a documentation patch from
+ Stefan Kost
+
+Fri Jan 24 02:00:50 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: more work on Relax-NG
+ * doc/*: regenerated the docs
+ * test/relaxng/* result/relaxng/*: updated and augmented the
+ Relax-NG regression tests and results
+
+Thu Jan 23 19:26:20 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in relaxng.c include/libxml/relaxng.h:
+ First commit of the new Relax-NG validation code, not generally
+ useful yet.
+ * test/relaxng/* result/relaxng/*: current state of the regression
+ tests
+
+Thu Jan 23 19:22:54 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: minimized the memory allocated for GetContent
+ and a bit of cleanup.
+
+Thu Jan 23 17:41:37 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py: seems there is no good reasons to
+ not generate bindings for XPointer
+
+Tue Jan 21 13:19:35 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c doc/apibuild.py: applied a new patch from
+ Stéphane Bidoul for cleanups
+ * doc/libxml2-api.xml: rebuilt the API description with
+ new entry points
+
+Mon Jan 20 23:25:00 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/drv_libxml2.py python/generator.py
+ python/libxml.c python/libxml.py python/libxml_wrap.h
+ python/types.c: patch from Stéphane Bidoul for better per
+ context error message APIs
+ * python/tests/ctxterror.py python/tests/readererr.py:
+ update of the tests
+
+Sun Jan 19 17:09:28 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/guidelines.html
+ grammar and spelling cleanup
+
+Fri Jan 17 00:31:30 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c include/libxml/xmlreader.h python/generator.py
+ python/libxml.c python/libxml.py win32/libxml2.def.src: applied
+ a patch from Stéphane Bidoul to allow per XMLtextReader error
+ and warning handling
+ * python/tests/Makefile.am python/tests/readererr.py: adding the
+ specific regression test
+
+Tue Jan 14 17:00:08 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: Alexey Efimov pointed out that concat('a', 'b', )
+ should raise a syntax error
+
+Tue Jan 14 15:39:14 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: cleanup patch from Stéphane Bidoul
+
+Tue Jan 14 14:41:18 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: fixing bug #103100 with a dummy UTF8ToUTF8 copy
+
+Tue Jan 14 12:40:29 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/libxml.py
+ python/libxml_wrap.h python/types.c: applied and fixed a patch
+ from Stéphane Bidoul to provide per parser error handlers at the
+ Python level.
+ * python/tests/Makefile.am python/tests/ctxterror.py: added a
+ regression test for it.
+
+Tue Jan 14 01:15:04 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fixed the streaming property of the reader,
+ it was generating tree faster than consuming it. Pointed out
+ by Nate Myers
+ * tree.c: fixed a bug in xmlSaveFormatFileEnc if passed a NULL doc
+
+Sun Jan 12 22:18:02 CET 2003 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/libxml2.def.src: added more xmlreader and other exports
+
+Fri Jan 10 18:04:32 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fix to the XPath implementation for parent and
+ ancestors axis when operating on a Result Value Tree.
+ Fixes bug #100271
+
+Fri Jan 10 17:07:01 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c nanohttp.c xmlIO.c: patch from Stefano Zacchiroli
+ to fix some URI/file escaping problems
+
+Fri Jan 10 16:20:34 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py: fixed a bug raised by Raymond Wiker,
+ docSetRootElement() should not raise an exception if the
+ return is None
+
+Fri Jan 10 14:13:03 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.py python/libxml.c python/libxml2-python-api.xml:
+ fixed bug #102181 by applying the suggested change and fixing
+ the generation/registration problem.
+
+Fri Jan 10 13:47:55 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixed bug #102960 by reusing the XML name parsing
+ routines.
+
+Fri Jan 10 00:16:49 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: one more IsEmptyElement craziness, that time in
+ external parsed entities if substitution is asked.
+ * python/tests/reader3.py: added a specific test.
+
+Thu Jan 9 22:35:31 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/drv_libxml2.py: update from Stéphane Bidoul: python 2.1
+ support and improved error handler registration
+
+Thu Jan 9 14:16:38 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c tree.c: fixes #102920 about namespace handling in
+ HTML output and section 16.2 "HTML Output Method" of XSLT-1.0
+ * README: fixed a link
+
+Wed Jan 8 18:32:25 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in doc/* NEWS: preparing 2.5.1 release
+ * SAX.c parser.c: fixing XmlTextReader bug
+
+Wed Jan 8 00:13:01 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: fuck, I introduced a memory leak on external parsed
+ entities in 2.5.0 :-(
+
+Tue Jan 7 12:12:45 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: another fix needed as pointed by Christophe Merlet
+ for --stream --debug if compiled without debug support.
+
+Mon Jan 6 20:53:08 MST 2003 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.xml
+ * doc/xmllint.1:
+ update man page with --stream and --chkregister
+
+Tue Jan 7 01:17:26 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c: fixed --with-threads compile
+ * xmllint.c: fixed --without-debug compile
+ * include/libxml/globals.h: cleanup
+ * include/libxml/schemasInternals.h: add a missing include
+
+Mon Jan 6 14:06:07 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in NEWS: preparing 2.5.0 release
+ * SAX.c: only warn in pedantic mode about namespace name
+ brokeness
+ * globals.c: fix a doc generation problem
+ * uri.c: fix #101520
+ * doc/*: updated and rebuilt the doc for the release, includuding
+ stylesheet update
+ * python/Makefile.am: fix a filename bug
+
+Mon Jan 6 12:05:12 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/tutorial/* : fixed #101894 if doc == NULL xmlFreeDoc
+ should not be called.
+
+Mon Jan 6 11:59:09 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * libxml-2.0.pc.in: applied the patch to fix #101894
+
+Sun Jan 5 23:35:47 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c : applied patch from Lukas Schroeder for register callbacks
+ * valid.c: modified patch from Lukas Schroeder to test
+ register callbacks with --chkregister
+
+Sun Jan 5 02:23:20 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: seriously changed the way data are pushed to
+ the underlying parser, go by block of 512 bytes instead of
+ tryng to detect tag boundaries at that level. Changed the
+ way empty element are detected and tagged.
+ * python/tests/reader.py python/tests/reader2.py
+ python/tests/reader3.py: small changes mostly due to context
+ reporting being different and DTD node being reported. Some
+ errors previously undetected are now caught and fixed.
+ * doc/xmlreader.html: flagged last section as TODO
+
+Sat Jan 4 20:40:28 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.py: integrated the Python 2.2 optimizations
+ from Hannu Krosing, while maintaining compatibility with
+ 1.5 and 2.1
+
+Sat Jan 4 17:33:17 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: a bit of cleanup
+ * xmlreader.c: small fix
+ * doc/xmlreader.html: more work on the XmlTextReader tutorial
+ * python/libxml.py: a few fixes pointed out by Hannu Krosing
+
+Sat Jan 4 13:46:14 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * python/setup.py.in: patch from Stéphane Bidoul to include
+ drv_libxml2.py in setup.py
+
+Sat Jan 4 01:43:06 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmlreader.html: starting documenting the new XmlTextReader
+ interface.
+
+Fri Jan 3 17:18:32 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: added the --stream flag to use the TextReader API
+ * xmlreader.c: small performance tweak
+
+Fri Jan 3 13:50:55 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/tests/reader2py: okay the DTD validation
+ code on top of the XMLTextParser API should be solid now.
+
+Fri Jan 3 02:17:18 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/tests/reader2py: Fixing some more mess
+ with validation and recursive entities while using the
+ reader interface, it's getting a bit messy...
+
+Thu Jan 2 15:15:26 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/tests/reader.py: another couple of problem
+ related to IsEmptyElement reported by Stéphane Bidoul needed
+ some fixes.
+
+Thu Jan 2 13:57:07 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in python/Makefile.am python/drv_libxml2.py:
+ integrated drv_libxml2.py Python xml.sax driver from Stéphane Bidoul
+ based on the python XmlTextReader interface.
+
+Wed Jan 1 22:05:40 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: backing out one change in the last patch which broke the
+ regression tests
+
+Wed Jan 1 21:57:28 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * global.data globals.c tree.c include/libxml/globals.h: applied
+ an old patch from Lukas Schroeder to track node creation and
+ destruction. Probably missing a lot of references at the moment
+ and not usable reliably.
+
+Wed Jan 1 20:12:07 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS doc/Makefile.am doc/news.xsl: generate the NEWS file
+ from doc/news.html and a stylesheet
+
+Wed Jan 1 16:09:57 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/tests/reader.py: fixed another couple of
+ xmlreader bugs reported by Stéphane Bidoul and added tests.
+
+Wed Jan 1 15:42:54 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/tests/reader2.py: fixed another validity
+ checking in external parsed entities raised by Stéphane Bidoul
+ and added a specific regression test.
+ * python/tests/reader3.py: cleanup
+
+Tue Dec 31 15:44:02 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/tests/reader2.py: fixed a problem with
+ validation within entities pointed by Stéphane Bidoul, augmented
+ the tests to catch those.
+
+Tue Dec 31 12:15:37 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py: modified the generator to allow keeping
+ class references when creating new classes, needed to fix a bug
+ pointed by Stéphane Bidoul where the input buffer of the
+ xmlTextReader instance gets destroyed if the python wrapper for
+ the input is not referenced anymore.
+
+Mon Dec 30 19:39:36 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/tests/reader.py: fixed another pair of problem
+ pointed by Stéphane Bidoul: depth start at 0 and a parse problem.
+
+Mon Dec 30 13:36:50 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/tests/reader.py: fixed another problem
+ pointed by Stéphane Bidoul
+
+Mon Dec 30 12:39:55 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/tests/reader.py: fixed a limit case problem
+ with "<a/>"
+
+Mon Dec 30 11:53:44 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: warn on xmlns:prefix="foo"
+ * xmlreader.c python/tests/reader.py: fixed a couple of problem
+ for namespace attributes handling.
+
+Mon Dec 30 00:59:07 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c parser.c tree.c include/libxml/entities.h: Fixed
+ a really nasty problem raised by a DocBook XSLT transform
+ provided by Sebastian Bergmann
+
+Sun Dec 29 12:13:18 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c python/tests/reader.py: fixed a bug pointed out
+ by Stéphane Bidoul and integrated it into the tests
+
+Sat Dec 28 23:49:12 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c include/libxml/xmlreader.h doc/libxml2-api.xml:
+ extended the XmlTextReader API a bit, addding accessors for
+ the current doc and node, and an entity substitution mode for
+ the parser.
+ * python/libxml.py python/libxml2class.txt: related updates
+ * python/tests/Makefile.am python/tests/reader.py
+ python/tests/reader2.py python/tests/reader3.py: updated a bit
+ the old tests and added a new one to test the entities handling
+
+Sat Dec 28 22:11:57 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml2class.txt
+ python/tests/reader.py python/tests/reader2.py: changed the
+ generator to provide casing for the XmlTextReader similar to
+ C# so that examples and documentation are more directly transposable.
+ Fixed the couple of tests in the suite.
+
+Sat Dec 28 15:55:32 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/guidelines.html: added a document on guildeline for
+ publishing and deploying XML
+
+Fri Dec 27 20:35:15 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c xmlreader.c: final touch running DTD validation
+ on the XmlTextReader
+ * python/tests/Makefile.am python/tests/reader2.py: added a
+ specific run based on the examples from test/valid/*.xml
+
+Fri Dec 27 15:17:20 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.py: added a few predefined xmlTextReader parser
+ configuration values.
+
+Fri Dec 27 12:57:22 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml_wrap.h: trying to fix #102037
+
+Fri Dec 27 12:18:14 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: fixing bug #95296, when the predefined entities
+ are redefined in the DTD the default one must be used
+ instead anyway.
+
+Wed Dec 25 19:22:06 MST 2002 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.xml
+ * doc/xmllint.1
+ Add discussion of XML_DEBUG_CATALOG to xmllint man
+ page - bug #100907
+
+Mon Dec 23 16:54:22 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: Fixed the empty node detection to avoid reporting
+ an nonexistent close tag.
+
+Mon Dec 23 15:42:24 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c python/setup.py.in: patch from Stéphane Bidoul
+ for Python 2.1
+
+Sun Dec 22 11:24:06 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * testC14N.c vms/config.vms: applied Craig A. Berry patches for VMS
+
+Fri Dec 20 11:27:49 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/libxml2-api.xml python/tests/reader.py: one really need
+ to provide the base URI information when creating a reader parser
+ from an input stream. Updated the API and the example using it.
+
+Fri Dec 20 01:11:30 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * testReader.c xmlreader.c valid.c include/libxml/tree.h
+ include/libxml/valid.h include/libxml/xmlreader.h: working on
+ DTD validation on top of xml reader interfaces. Allows to
+ validate arbitrary large instances. This required some extensions
+ to the valid module interface and augmenting the size of xmlID
+ and xmlRef structs a bit.
+ * uri.c xmlregexp.c: simple cleanup.
+
+Wed Dec 18 15:51:22 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c include/libxml/xmlreader.h doc/libxml2-api.xml: more
+ work on the xml reader interfaces.
+ * AUTHORS MAINTAINERS doc/* win32/*: updated Igor's mail and the
+ Web page for the Windows binaries.
+
+Tue Dec 17 19:31:07 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied a patch for VMS following the report by
+ Nigel Hall
+
+Tue Dec 17 11:29:41 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: the parseStartTag bug fix wasn't complete.
+
+Mon Dec 16 23:00:05 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: Vyacheslav Pindyura managed to trigger a bug in
+ parseStartTag, fixing it.
+ * test/att4 result/att4 result/noent/att4: adding the test
+ * xmlreader.c include/libxml/xmlreader.h doc/libxml2-api.xml: added
+ more methods to XmlTextReader.
+
+Mon Dec 16 19:31:16 CET 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/libxml2.def.src: added more xml reader exports
+ * win32/Makefile.msvc win32/Makefile.mingw: added xml reader interface
+ to the build
+
+Mon Dec 16 06:36:54 MST 2002 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/xmltutorial.xml
+ plus generated html and pdf
+ Updating tutorial again based on further comments from Niraj
+ Tolia on the last iteration
+
+Sun Dec 15 21:27:30 MST 2002 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/xmltutorial.xml
+ * doc/tutorial/includekeyword.c
+ * doc/tutorial/includegetattribute.c
+ plus generated html and pdf
+ Adding fix from Niraj Tolia to tutorial to properly free memory.
+
+Mon Dec 16 00:34:25 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c include/libxml/xmlreader.h doc/libxml2-api.xml: added
+ more methods of XmlTextReader.
+ * python/libxml2class.txt python/tests/reader.py: this increased the
+ methods in the bndings, augmented the test to check those new
+ functions.
+
+Sat Dec 14 23:57:39 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c doc/libxml2-api.xml: added the close and getattribute
+ methods of XmlTextReader.
+ * python/generator.py python/libxml_wrap.h python/types.c
+ python/libxml2class.txt: added the reader to the Python bindings
+ * python/tests/Makefile.am python/tests/reader.py: added a specific
+ test for the Python bindings of the Reader APIs
+ * parser.c: small cleanup.
+
+Fri Dec 13 11:39:44 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: fallback was only copying the first child not the
+ full child list of the fallback element, closes #89684 as reopened
+ by Bernd Kuemmerlen
+
+Thu Dec 12 13:34:59 CET 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/libxml2.def.src: exported htmlNodeDumpOutput
+
+Thu Dec 12 10:59:11 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing release of 2.4.30
+ * doc/apibuild.py doc/libxml2-api.xml: fixups to the api builder,
+ gives enum values, fix functype return type, put back fields in
+ structs
+ * doc/*: updated the docs rebuilt
+
+Thu Dec 12 01:09:34 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c include/libxml/HTMLtree.h: patch from Mark Vakoc
+ about htmlNodeDumpOutput location.
+ * xpath.c: removed an undefined function signature
+ * doc/apibuild.py doc/libxml2-api.xml: the script was exporting
+ too many symbols in the API breaking the python bindings.
+ Updated with the libxslt/libexslt changes.
+
+Wed Dec 11 20:26:15 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing release of 2.4.29
+ * doc/*: rebuilt the docs and API
+ * xmlreader.c: a few more fixes for the XmlTextReader API
+
+Wed Dec 11 18:01:15 CET 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * include/win32config.h: applied mingw patch from Magnus Henoch
+
+Wed Dec 11 16:58:48 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c doc/libxml2-api.xml: a bit more cleanup
+
+Wed Dec 11 14:54:47 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/apibuild.py doc/libxml2-api.xml doc/Makefile.am: new API
+ building Python script, does the C parsing directly, generates
+ a better API description including structure fieds defs and
+ enums. Still a couple of bugs, but good enough for the python
+ wrappers now.
+ * DOCBparser.c SAX.c nanohttp.c parser.c parserInternals.c tree.c
+ valid.c xmlIO.c xmlmemory.c xmlreader.c xmlregexp.c xmlschemas.c
+ include/libxml/schemasInternals.h include/libxml/tree.h: more
+ cleanup based on the python analysis script reports.
+ * libxml.spec.in: make sure the API XML description is part of the
+ devel package.
+
+Tue Dec 10 16:16:34 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c HTMLparser.c c14n.c debugXML.c encoding.c hash.c
+ nanoftp.c nanohttp.c parser.c parserInternals.c testC14N.c
+ testDocbook.c threads.c tree.c valid.c xmlIO.c xmllint.c xmlmemory.c
+ xmlreader.c xmlregexp.c xmlschemas.c xmlschemastypes.c xpath.c:
+ code cleanup, especially the function comments.
+ * tree.c: fixed a small bug when freeing nodes which are XInclude ones.
+
+Mon Dec 9 15:08:17 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am xmlreader.c include/libxml/Makefile.am
+ include/libxml/xmlreader.h: Adding a new set of APIs based on
+ the C# TextXmlReader API but converted to C. Allow to parse
+ in constant memory usage, far simpler to program and explain
+ than the SAX like APIs, unfinished but working.
+ * testReader.c: test program
+
+Sun Dec 8 18:36:01 CET 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/libxml2.def.src: applied YALDSP from Mark Vakoc
+
+Wed Dec 4 16:08:49 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: Chip turner indicated that XHTML1 serialization
+ rule for style actually break on both IE and Mozilla,
+ try to avoid the rule if escaping ain't necessary
+
+Wed Dec 4 12:43:28 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * nanhttp.c: handle HTTP URL escaping, problem reported by
+ Glen Nakamura and Stefano Zacchiroli
+
+Sat Nov 30 12:19:17 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c HTMLparser.c parser.c valid.c xpath.c: code cleanup
+
+Thu Nov 28 12:53:22 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: Johann Richard pointed out some XPointer problems for
+ URN based URI references in XInclude. Modified the URI parsing
+ and saving routines to allow correct parsing and saving of
+ XPointers, especially when attached to "opaque" scheme accordingly
+ to RFC 2396
+
+Wed Nov 27 20:36:08 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c include/libxml/HTMLtree.h: applied the same kind
+ of refactoring to the HTML saving code.
+ * doc/libxml2-*.xml doc/API*.html: slight API changes got reflected
+ in the doc.
+
+Wed Nov 27 12:40:16 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c include/libxml/tree.h: refactored the XML dump of a node
+ to a buffer API to reuse the generic dump to an OutputIO layer,
+ this reduces code, fixes xmlNodeDump() for XHTML, also made
+ xmlNodeDump() now return the number of byte written.
+
+Wed Nov 27 09:00:00 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/setup.py.in: another patch from Stéphane Bidoul for
+ Python bindings on Windows
+ * doc/parsedecl.py: small cleanup
+
+Mon Nov 25 17:28:53 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in configure.in: add a line in %changelog for releases
+
+Mon Nov 25 14:18:27 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: patch from Marcus Clarke fixing a problem in entities
+ parsing that was detected in KDe documentations environment.
+
+Mon Nov 24 14:13:21 CET 2002 ERDI Gergo <cactus@cactus.rulez.org>
+
+ * python/libxml.c (libxml_prev): Return the previous as opposed to
+ the next node (I guess this is the result of some cut & paste programming:)
+
+Sat Nov 23 17:22:22 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/Makefile.am: Jan Rafaj pointed a bug in the Makefile.
+
+Sat Nov 23 12:21:24 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/setup.py.in: trying
+ to fix the Python bindings build on Windows (Stéphane Bidoul)
+
+Fri Nov 22 22:41:34 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/configure.js: added option for python bindings
+ * win32/libxml2.def.src: added more exports
+
+Fri Nov 22 18:50:34 CET 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/Makefile.mingw: fixed unresolved symbols when linking with
+ pthreads
+ * win32/wince/*: applied updates to Windows CE port from Javier
+
+Fri Nov 22 15:51:22 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing 2.4.28
+ * libxml.spec.in doc/Makefile.am: some cleanup
+ * doc/*: updated the news and regenerated.
+
+Fri Nov 22 14:15:14 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: final touch at closing #87235 </p> end tags
+ need to be generated.
+ * result/HTML/cf_128.html result/HTML/test2.html result/HTML/test3.html:
+ this change slightly the output of a few tests
+ * doc/*: regenerated
+
+Fri Nov 22 13:26:19 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: fixing bug #99190 when UTF8 document are
+ parsed using the progressive parser and the end of the chunk
+ is in the middle of an UTF8 multibyte character.
+
+Fri Nov 22 13:13:00 HKT 2002 William Brack <wbrack@mmm.com.hk>
+
+ * threads.c: fixed initialization problem in xmlNewGlobalState
+ which was causing crash.
+ * globals.c: removed duplicate call to initxmlDefaultSAXHandler
+ in xmlInitializeGlobalState.
+ * parserInternals.c: cleaned up ctxt->sax initialisation.
+
+Thu Nov 21 15:05:45 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c include/libxml/tree.h: modified the existing APIs
+ to handle XHTML1 serialization rules automatically, also add
+ xmlIsXHTML() to libxml2 API. Some tweaking to make sure
+ libxslt serialization uses it when needed without changing
+ the library API.
+ * test/xhtml1 result/noent/xhtml1 result/valid/xhtml1.xhtml
+ result/xhtml1: added a new test specifically for xhtml1 output
+ and updated the result of one XHTML1 test
+
+Wed Nov 20 14:24:56 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c parserInternals.c encoding.c: fixed #99082
+ for xi:include encoding="..." support on text includes.
+ * result/XInclude/tstencoding.xml test/XInclude/docs/tstencoding.xml
+ test/XInclude/ents/isolatin.txt : added a specific regression test
+ * python/generator.py python/libxml2class.txt: fixed the generator
+ the new set of comments generated for doc/libxml2-api.xml were
+ breaking the python generation.
+
+Tue Nov 19 23:25:47 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/Makefile.am: repair some problem if gtk-doc fail or such
+ * configure.in: patch for Solaris on new autoconf closes #98880
+ * doc/parsedecl.py: repair the frigging API building script,
+ did I say that python xmllib sucks ?
+ * doc/libxml2-api.xml doc/libxml2-refs.xml: regenerated, reordering
+ and some comment are no more truncated.
+
+Tue Nov 19 09:09:04 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: Martin Stoilov pointed out a potential leak in
+ xmlCreateMemoryParserCtxt
+
+Mon Nov 18 16:05:51 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixed bug #98879 a corner case when 0 is
+ included in HTML documents and using the push parser.
+
+Mon Nov 18 00:11:24 CET 2002 ERDI Gergo <cactus@cactus.rulez.org>
+
+ * configure.in (PYTHON_SITE_PACKAGES): If --with-python is
+ specified, look for the Python interpreter not just in the
+ specified root but also in the specified location. Fixes #98825
+
+Sun Nov 17 23:36:06 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: fixing bug #98792 , node may have no doc
+ and dereferencing without checking ain't good ...
+
+Sun Nov 17 10:25:43 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing release 2.4.27
+ * doc/* : updated and rebuilt the docs
+ * doc/Makefile.am libxml.spec.in: try to make sure the tutorial
+ and all the docs are actually packaged and in the final RPMs
+ * parser.c parserInternals.c include/libxml/parser.h: restore
+ xmllint --recover feature.
+
+Sat Nov 16 16:30:25 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c xpath.c: fixing #96925 wich was also dependent on the
+ processing of parsed entities, and XPath computation on sustitued
+ entities.
+ * testXPath.c: make sure entities are substituted.
+
+Fri Nov 15 16:22:54 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed #96594, which was totally dependent on the
+ processing of internal parsed entities, which had to be changed.
+
+Fri Nov 15 12:16:07 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am python/Makefile.am python/tests/Makefile.am:
+ trying to fix bug #98517 about building outside the source tree
+ * doc/xml.html doc/FAQ.html: fixed the link to libiconv #94585
+
+Thu Nov 14 18:41:55 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * include/win32config.h: cleanup
+ * win32/Makefile.mingw: integrated mingw in JScript configure
+ * win32/Makefile.msvc: modified to allow mingw coexistence
+ * win32/configure.js: integrated mingw
+ * win32/Readme.txt: cleanup
+
+Tue Nov 12 22:06:45 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: strengthen the guard in the Pop macros,
+ like in the XML parser, closes bug #97315
+
+Tue Nov 12 21:56:39 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parser.h: fixed bug #98338 , fatalError SAX
+ callback is never used.
+
+Tue Nov 12 13:32:50 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: fixed the initialization of the SAX structure
+ which was breaking xsltproc
+ * xpath.c: patch from Petr Pajas for CDATA nodes
+ * tree.c: patch from Petr Pajas improving xmlGetNodePath()
+ * parser.c include/libxml/parser.h: patch from Peter Jones
+ removing a leak in xmlSAXParseMemory() and adding the
+ function xmlSAXParseMemoryWithData()
+
+Mon Nov 11 20:47:03 MST 2002 John Fleck <jfleck@inkstain.net>
+
+ adding pdf of tutorial, changing web page to link to it
+ * doc/tutorial/xmltutorial.pdf
+ * doc/xml.html
+ * doc/docs.html
+
+Sun Nov 10 20:48:57 MST 2002 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/ar01s08.html
+ adding file what I forgot for tutorial
+
+Sun Nov 10 20:33:13 MST 2002 John Fleck <jfleck@inkstain.net>
+
+ Adding encoding discussion to tutorial
+ Added:
+ * doc/tutorial/images/*.png: DocBook admonition image files
+ * doc/tutorial/apf.html, apg.html: new generated html
+ * doc/tutorial/includeconvert.c: conversion code entity file
+ changed:
+ * doc/tutorial/xmltutorial.xml: DocBook original
+ * doc/tutorial/*.html: generated html
+
+Fri Nov 8 17:59:32 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * include/libxml/*.h: retired xmlwin32version.h
+ * doc/Makefile.am: retired xmlwin32version.h
+ * win32/configure.js: retired xmlwin32version.h
+
+Fri Nov 8 16:55:47 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/libxml2.def.src: exported additional symbols
+ * include/libxml/xmlmemory.h: exported the rest of the xmlMem*
+ sisterhood
+
+Fri Nov 8 16:08:13 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c: fixed a typo pointed out by Igor
+ * xpath.c: try to speed up node compare using line numbers
+ if available.
+
+Thu Nov 7 15:16:02 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: make xmlFreeNode() handle attributes correctly.
+
+Wed Nov 6 23:51:11 CET 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * catalog.c: completed the #96963 fix, as reported by Karl
+ Eichwalder
+
+Wed Nov 6 16:48:44 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpointer.c: tried to fix bug #97852 reported by Nicolas Noffke
+
+Sun Nov 3 10:43:44 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: switched the order of a couple of includes
+ to fix bugs #97100
+
+Thu Oct 31 17:11:46 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * catalog.c: fixed bug #96963, reverted to the old behaviour of
+ xmlLoadCatalogs that used to separate directories with a ':'.
+
+Thu Oct 31 16:55:21 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * threads.c: improvements to the Windows-side of thread handling
+ * testThreads.c: conditionally excluded unistd.h
+ * testThradsWin32.c: broke overlong lines
+ * include/win32config.h: adapted thread-related macros to the new
+ scheme and for pthreads on Windows
+ * win32/Makefile.msvc: introduced a more flexible thread build,
+ added testThreads[Win32].c to the build
+ * win32/configure.js: introduced a more flexible thread config
+
+2002-10-31 John Fleck <jfleck@inkstain.net>
+
+ * doc/xml.html (and, by implication, FAQ.html)
+ added UTF-8 conversaion FAQ from Marcus Labib Iskander
+
+Tue Oct 29 18:32:33 CET 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * configure.in: removed xmlwin32version.h
+ * include/libxml/Makefile.am: removed xmlwin32version.h
+
+Mon Oct 28 14:01:29 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied patch from Brian Stafford to fix a bug
+ in xmlReconciliateNs()
+
+Mon Oct 28 13:51:55 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied patch from Christian Glahn to allow
+ xmlNewChild() on document fragment nodes
+
+Sat Oct 26 15:27:00 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: Christian Glahn found a problem with a recent
+ patch to xmlParseBalancedChunkMemoryRecover()
+ * xmlschemas.c: Charles Bozeman fixed some Schemas validation
+ problems
+ * result/schemas/elem* result/schemas/seq* test/schemas.elem*
+ test/schemas/seq*: added the test cases from Charles
+
+Wed Oct 23 16:42:29 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am config.h.in libxml.spec.in doc/Makefile.am:
+ serious cleanup of the spec file and associated changes
+ in the Makefiles.
+ * valid.c: try to remove some warnings on x86_64
+
+Wed Oct 23 10:53:42 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/Makefile.am: added winsockcompat.h to EXTRA_DIST to
+ fix bug #96586
+
+Tue Oct 22 21:13:06 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: Mikhail Sogrine pointed out a bug in HTML
+ parsing, applied his patch
+ * result/HTML/attrents.html result/HTML/attrents.html.err
+ result/HTML/attrents.html.sax test/HTML/attrents.html:
+ added the test and result case provided by Mikhail Sogrine
+
+Tue Oct 22 19:33:20 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * vms/build_libxml.com vms/config.vms vms/readme.vms
+ include/libxml/parser.h include/libxml/parserInternals.h
+ include/libxml/tree.h include/libxml/xmlIO.h
+ HTMLparser.c catalog.c debugXML.c parser.c parserInternals.c
+ tree.c triodef.h trionan.c uri.c xmlIO.c xpath.c:
+ Applied the VMS update patch from Craig A. Berry
+ * doc/*.html: update
+
+Tue Oct 22 16:27:31 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/encoding.h encoding.c: made xmlGetUTF8Char public
+
+Tue Oct 22 16:25:18 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: adding a grep command to --shell in xmllint
+ for T.V. Raman
+
+Tue Oct 22 16:23:57 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlcatalog.c: tried to fix some of the problem with --sgml
+
+Mon Oct 21 09:57:10 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: tried to fix bug #91500 where doc->children may
+ be overridden by a call to xmlParseBalancedChunkMemory()
+
+Mon Oct 21 09:04:32 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: tried to fix bug #90945 w.r.t. parsing of system
+ identifiers in SGML catalogs containing '&'
+
+Sun Oct 20 23:31:47 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/types.c: fixed bugs when passing result value tree
+ to Python functions.
+
+Fri Oct 18 13:18:53 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing the release of 2.4.26
+ * doc/*: updated and rebuilt the documentation
+
+Wed Oct 16 20:01:46 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed a XML Namespace compliance bug reported by
+ Alexander Grimalovsky
+
+Wed Oct 16 17:18:42 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: fixed serialization of script and style when
+ they are not lowercase (i.e. added using the API to the tree).
+
+Wed Oct 16 16:31:05 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: make xmlValidateDocument emit a warning msg if there
+ is no DTD, pointed by Christian Glahn
+
+Wed Oct 16 16:05:38 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c xmlschemas.c: fixed the validation of sequences
+ content model when some of the blocks have min or max, and a couple
+ of bugs found in the process.
+ * result/schemas/list0* test/schemas/list0*: added some specific
+ regression tests
+
+Tue Oct 15 12:41:01 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * README: updated the contact informations
+
+Tue Oct 15 10:35:57 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: use test -f instead of test -e since Solaris /bin/sh
+ misses it, reported by Peter Bray.
+
+Mon Oct 14 17:37:32 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: investigating xmlNodeGetContent() on namespace nodes
+ and removed a few warnings
+
+Mon Oct 14 13:12:55 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: Christian Glahn found a small bug in the push parser.
+ * xmlIO.c include/libxml/xmlIO.h: cleaned up and made xmlCheckFilename
+ public
+
+Wed Oct 9 23:11:02 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c include/libxml/xmlschemas.h: added
+ xmlSchemaNewMemParserCtxt to parse a schemas from a memory area
+ * testSchemas.c: added --memory to test the new interface
+
+Wed Oct 9 16:22:54 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/index.py doc/search.php: integrated the XSLT indexing,
+ a few fixed in the indexer, added a scope selection at the
+ search level.
+
+Wed Oct 9 12:18:37 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: Joe Marcus Clarke reported a segfault on FBsd
+ this was due to uninitialized parts of the validation context
+
+Tue Oct 8 23:24:20 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: applied patch from Mark Vakoc except the API
+ change, preserved it.
+ * doc/*: updated the docs to point to the search engine for
+ information lookup or before bug/help reports.
+
+Tue Oct 8 18:53:31 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/index.py doc/search.php: added mailing-list archives
+ indexing and lookup
+
+Tue Oct 8 10:25:07 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: patch from Mark Vakoc to fix xmlNodeGetPath()
+
+Mon Oct 7 13:12:03 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/index.py: improved HTML indexing
+ * doc/search.php: make the queries also lookup the HTML based indexes
+
+Sun Oct 6 23:50:29 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/index.py: added HTML page indexing
+
+Fri Oct 4 15:33:55 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * xmlIO.c: extended Windows path normalisation to fix the base
+ problem in libxslt.
+ * catalog.c: fixed list handling in XML_CATALOG_FILES
+
+Fri Oct 4 13:43:02 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: typo/bug found by Christian Glahn
+
+Sun Sep 29 19:44:10 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * xmlIO.c: applied Windows CE patch from Javier.
+ * win32/wince: new directory, contains support for the PocketPC
+ with Windows CE from Javier.
+ * include/win32config.h: reorganised, removed duplicate
+ definitions and applied WinCE patch from Javier.
+ * include/wsockcompat.h: new file, now contains WinSock
+ compatibility macros.
+ * win32/Makefile.msvc: introduced double-run compilation.
+
+Thu Sep 26 19:48:06 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in include/libxml/xmlwin32version.h: preparing release
+ of 2.4.25
+ * doc/*: updated and regenerated the docs and web pages.
+
+Thu Sep 26 17:33:46 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c valid.c include/libxml/valid.h: fixed bug #92518 validation
+ error were not covering namespace declarations.
+ * result/valid/dia.xml test/valid/dia.xml: the test wasn't valid,
+ it was missing the attribute declaration for the namespace
+ * result/VC/NS3: the fix now report breakages in that test
+
+Thu Sep 26 14:39:07 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: fixing bug #94241 on HTML boolean attributes
+
+Thu Sep 26 14:25:33 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/*: added the 3 new modules xmlregexp xmlautomata and xmlunicode
+ and regenerated the docs and web site
+
+Thu Sep 26 11:45:42 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c xmlschemas.c xmlschemastypes.c xpath.c: make sure
+ ATTRIBUTE_UNUSED is always put after the attribute declaration,
+ not before
+
+Thu Sep 26 11:33:28 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml2class.txt: fixed a stupid error
+ breaking the python API
+
+Thu Sep 26 00:31:46 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * trio.c trio.h triodef.h trionan.c trionan.h triop.h
+ triostr.c triostr.h: applied a trio update patch from
+ Bjorn Reese which should work with MinGW
+
+Thu Sep 26 00:21:18 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: improving some documentation comments
+ * xmlregexp.c: found and fixed a mem leak with python regression tests
+ * doc/*: rebuilt the doc and the API XML file including the
+ xmlregexp.h xmlautomata.h and xmlunicode.h headers
+ * python/generator.py python/libxml2class.txt python/libxml_wrap.h
+ python/types.c: added access to the XML Schemas regexps from
+ python
+ * python/tests/Makefile.am python/tests/regexp.py: added a
+ simple regexp bindings test
+
+Tue Sep 24 08:10:48 MDT 2002 John Fleck <jfleck@inkstain.net>
+
+ * doc/xml.html:
+ fixing ftp links - thanks to Vitaly Ostanin
+
+Tue Sep 24 16:08:17 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: fixed the data callback on transition functionality
+ which was broken when using the compact form
+ * result/schemas/*: updated the results, less verbose, all tests
+ pass like before
+ * DOCBparser.c testAutomata.c testC14N.c testSchemas.c testThreads.c
+ testXPath.c valid.c xinclude.c xmllint.c xmlregexp.c xmlschemas.c
+ xmlschemastypes.c xpath.c python/libxml.c: removed a bunch of
+ annoying warnings
+ * xpath.c: try to provide better error report when possible
+
+Sat Sep 21 14:56:37 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: fixed a breakage raised by Jacob
+
+Fri Sep 20 20:08:18 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * include/win32config.h: added HAVE_ERRNO_H definition for parts
+ which don't use sockets
+
+Fri Sep 20 18:40:50 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/Makefile.msvc: applied zlib patch from Daniel Gehriger
+ * win32/configure.js: applied zlib patch from Daniel Gehriger
+
+Fri Sep 20 15:40:14 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/configure.js: applied the patch from Mark Vakoc for
+ regexp support
+ * win32/libxml2.def.src: applied the patch from Mark Vakoc
+ for regexp support
+
+Fri Sep 20 15:35:33 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: as pointed by Igor Float and Double
+ parsing ain't finished yet
+
+Fri Sep 20 14:00:16 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in: trying to fix #88412 by bypassing
+ all the python subdir if python ain't detected
+
+Thu Sep 19 21:46:53 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in include/libxml/xmlversion.h.in:
+ made configuring with regexps/automata/unicode the default
+ but without schemas ATM
+ * testRegexp.c valid.c xmlregexp.c include/libxml/xmlregexp.h:
+ fixed the regexp based DTD validation performance and memory
+ problem by switching to a compact form for determinist regexps
+ and detecting the determinism property in the process. Seems
+ as fast as the old DTD validation specific engine :-) despite
+ the regexp built and compaction process.
+
+Wed Sep 18 18:27:26 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: determinism is debugged, new DTD checking code now works
+ but xmlFAComputesDeterminism takes far too much CPU and the whole
+ set usues too much memory to be really usable as-is
+
+Wed Sep 18 00:54:30 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed another stupid bug in xmlGetNodePath()
+ * xmllint.c: --version now report the options compiled in
+
+Tue Sep 17 23:48:07 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: small cleanup
+ * valid.c xmlregexp.c: switched DTD validation to use only regexp
+ when configured with them. A bit of debugging around the determinism
+ checks is still needed
+
+Tue Sep 17 21:22:25 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml_wrap.h: stupid bug found by mattam@netcourrier.com
+
+Tue Sep 17 19:58:26 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: small portability glitch fixed.
+
+Mon Sep 17 12:38:08 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: incomplete steps for real/double support
+ * testAutomata.c include/libxml/xmlautomata.h
+ include/libxml/xmlregexp.h: avoiding a compilation problem
+ * valid.c include/libxml/valid.h: starting the work toward using
+ the regexps for actual DTD validation
+
+Fri Sep 13 16:46:14 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * hash.c: cosmetic cleanup
+ * valid.c include/libxml/tree.h include/libxml/valid.h: started
+ integrating a DTD validation layer based on the regexps
+
+Thu Sep 12 18:01:29 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c xmlschemas.c: fixed a bug reported by Jeff Goff,
+ the determinism was tested before eliminating the epsilon
+ transitions :-(
+
+Thu Sep 12 16:57:45 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/libxml.py
+ python/libxml2-python-api.xml python/libxml2class.txt
+ python/libxml_wrap.h python/types.c: updated the python
+ bindings, added code for easier File I/O, and the ability to
+ define a resolver from Python fixing bug #91635
+ * python/tests/Makefile.am python/tests/inbuf.py
+ python/tests/outbuf.py python/tests/pushSAXhtml.py
+ python/tests/resolver.py python/tests/serialize.py: updated
+ and augmented the set of Python tests.
+
+Tue Sep 10 21:05:28 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/configure.js: added more readme info for the binary
+ package.
+
+Tue Sep 10 14:15:18 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: fixed a stupid out of bound array error
+
+Tue Sep 10 13:09:14 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlIO.h xmlIO.c parser.c HTMLparser.c DOCBparser.c:
+ messing around with support for Windows path, cleanups,
+ trying to identify and fix the various code path to the
+ filename access. Added xmlNormalizeWindowsPath()
+
+Thu Sep 5 16:19:18 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * error.c valid.c: working on better error reporting of validity
+ errors, especially providing an accurate context.
+ * result/valid/xlink.xml.err result/valid/rss.xml.err: better
+ error reports in those cases.
+
+Thu Sep 5 13:29:47 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c HTMLparser.c c14n.c entities.c list.c
+ parser.c parserInternals.c xmlIO.c: get rid of all the
+ perror() calls made in the library execution paths. This
+ should fix both #92059 and #92385
+
+Thu Sep 5 13:13:17 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: memory leak reporting was broken after a change
+ of the preprocessor symbol used to activate it.
+
+Thu Sep 5 13:10:57 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: try to make the copy function work for node of
+ type XML_DOCUMENT_FRAG_NODE, they are only created by the
+ DOM layers though, not libxml2 itself.
+
+Thu Sep 5 12:57:38 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: try to provide file and line informations, not all
+ messages are covered, but it's a (good) start
+
+Thu Sep 5 12:49:35 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: reimplemented a large part of the XInclude
+ processor, trying to minimize resources used, James Henstridge
+ provided a huge test case which was exhibiting severe memory
+ consumption problems.
+
+Thu Sep 5 10:07:13 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am: applied patch from Christophe Merlet to
+ reestablish DESTDIR
+
+Wed Sep 4 14:13:34 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: fixes library path for x86_64 AMD
+
+Tue Sep 3 21:14:19 MDT 2002 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/includekeyword.c
+ * doc/tutorial/xmltutorial.xml:
+ (plus resulting generated html files)
+ fixing one spot I missed in the tutorial where I hadn't freed
+ memory properly
+
+Sat Aug 31 19:31:17 MDT 2002 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/includeaddattribute.c
+ * doc/tutorial/includeaddkeyword.c
+ * doc/tutorial/includegetattribute.c
+ * doc/tutorial/includekeyword.c
+ * doc/tutorial/xmltutorial.xml
+ * doc/tutorial/*.html:
+ update tutorial to properly free memory (thanks to Christopher
+ R. Harris for pointing out that this needs to be done)
+ * doc/tutorial/images/callouts/*.png:
+ added image files so the callouts are graphical, making it
+ easier to read ( use "--param callout.graphics 1" to generate
+ html with graphical callouts)
+
+Wed Aug 28 13:44:54 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/Libxml2-Logo-180x168.gif doc/Libxml2-Logo-90x34.gif:
+ nice logos generated by Marc Liyanage
+ * doc/site.xsl *.html: changed the stylesheet to show the new
+ logo and regenerated the pages
+
+Sun Aug 25 16:38:05 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: handle Windows sepecific file://localhost/ semantic ...
+
+Thu Aug 22 22:03:19 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: possible mem leak patch from Jason Adams
+
+Thu Aug 22 17:27:30 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: integrated xf:escape-uri() from Wesley Terpstra
+ in the XQuery namespace
+ * configure.in: preparing 2.4.24
+ * doc/*.html: updated the web pages
+
+Thu Aug 22 16:19:42 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py: closing bug #85258 by generating conditional
+ compile check to avoid linking to routines not configured in.
+
+2002-08-22 Havoc Pennington <hp@pobox.com>
+
+ * autogen.sh: update error message for missing automake
+
+Thu Aug 22 11:45:50 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am: typo in target name resulted in libxml2.py
+ to not be rebuilt. fixed DESTDIR similarly to the libxslt one.
+
+Thu Aug 22 09:15:00 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * win32/win32/Makefile.mingw: updated with version from
+ Elizabeth Barham at http://soggytrousers.net/repository/
+
+Tue Aug 20 16:40:48 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/Makefile.msvc: added the prefix location to the include
+ and lib search path.
+
+2002-08-18 Havoc Pennington <hp@pobox.com>
+
+ * autogen.sh: hardcode aclocal-1.4/automake-1.4 so that users with
+ both automake 1.6 and 1.4 installed get the right automake. Means
+ compilation from CVS will now require the latest automake 1.4
+ release, or manually creating symlinks called "automake-1.4" and
+ "aclocal-1.4"
+
+Wed Aug 14 18:54:19 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in python/Makefile.am: more AMD 64 induced changes from
+ Frederic Crozat
+
+Wed Aug 14 16:43:53 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: oops I was missing the xml:base fixup too
+ * result/XInclude/*.xml: this adds xml:base attributes to most
+ results of the tests
+
+Wed Aug 14 16:05:37 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: quick but apparently working implementation of
+ xi:fallback, should close bug #89684
+ * Makefile.am test/XInclude/docs/fallback.xml
+ result/XInclude/fallback.xml: added a basic test for fallback,
+ and run with --nowarning to avoid a spurious warning
+ * configure.in: applied patch from Frederic Crozat for python
+ bindings on AMD 64bits machines.
+
+Wed Aug 14 10:47:46 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: xmlSAXUserParseMemory() really ought to fail if
+ the caller don't pass a SAX callback block.
+
+Wed Aug 14 10:29:02 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied the same fix for the XML-1.0 namespace to
+ xmlSearchNsByHref() as was done for xmlSearchNs()
+
+Mon Aug 12 16:52:08 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.3: small cleanup of the man page
+ * HTMLtree.c: fixed a potential problem raised by Petr Vandrovec
+ when serializing HREF attributes generated by XSLT.
+
+Mon Aug 12 15:24:05 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c include/libxml/HTMLtree.h: integrated a cleaned up
+ version of Marc Liyanage' patch for boolean attributes in HTML
+ output
+
+Mon Aug 12 14:11:59 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/tests/serialize.py: fixed the test results, indenting
+ behaviour changed slightly
+
+Thu Aug 8 11:00:26 2002 Aleksey Sanin <aleksey@aleksey.com>
+
+ * win32/dsp/libxml2.def.src win32/libxml2.def.src: added
+ new c14n function to Windows def files
+
+Fri Aug 2 16:46:46 2002 Aleksey Sanin <aleksey@aleksey.com>
+
+ * c14n.c: fixed a memory leak in c14n code
+
+Sat Aug 3 00:15:06 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/parser.h: adding a new API for Christian
+ Glahn: xmlParseBalancedChunkMemoryRecover
+ * valid.c: patch from Rick Jones for some grammar cleanup in
+ validation messages
+ * result/VC/* result/valid/*: this slightly change some of the
+ regression tests outputs
+
+Thu Aug 1 14:50:28 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: trying to fix a problem in namespaced attribute handling
+ raised by Christian Glahn
+
+Thu Aug 1 12:17:30 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c include/libxml/encoding.h: Opening the interface
+ xmlNewCharEncodingHandler as requested in #89415
+ * python/generator.py python/setup.py.in: applied cleanup
+ patches from Marc-Andre Lemburg
+ * tree.c: fixing bug #89332 on a specific case of losing
+ the XML-1.0 namespace on xml:xxx attributes
+
+Wed Jul 31 23:27:42 2002 Aleksey Sanin <aleksey@aleksey.com>
+
+ * c14n.c include/libxml/c14n.h: fixed one more c14n + namespaces
+ corner case from new Merlin's test suite and added a callback
+ that will be used to improve xmlsec performance
+
+Mon Jul 29 18:22:00 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: trying to fix the <style> escaping problem in
+ HTML serialization bug #89342
+
+Thu Jul 25 01:33:47 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xml.html doc/*.html: applied syntax patch from Rick Jones
+ and rebuilt the web site.
+
+Mon Jul 22 11:04:48 PDT 2002 Aleksey Sanin <aleksey@aleksey.com>
+
+ * include/libxml/tree.h: added _private member to xmlNs struct
+
+Sun Jul 21 17:48:47 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixing bug #84876 based on the xml working
+ code.
+
+Sun Jul 21 19:15:00 HKT 2002 William Brack <wbrack@mmm.com.hk>
+
+ * python/Makefile.am: enhanced to fix bug 72012 (errors
+ when using '-jX' make parameter)
+
+Fri Jul 19 16:35:00 HKT 2002 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: small additional enhancement for booleans
+ compared to nodesets
+
+Wed Jul 17 19:48:14 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: changed the order of the encoding declaration
+ attributes in the meta tags due to a bug in IE/Mac
+
+Fri Jul 12 08:45:00 HKT 2002 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: enhanced handling of booleans (especially '='
+ and '!=' for nodesets) - fixes bug 85256. Added new
+ routine xmlXPathNotEqualValues for more proper handling
+ of '!=' when nodesets are involved.
+
+Thu Jul 11 21:45:52 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/Makefile.am: fixing Red Hat bug #68614 by adding the
+ doc/xmlcatalog_man.xml to the source distribution
+
+Wed Jul 10 21:26:13 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/Makefile.msvc: Added a copy *.pdb to install, few have
+ asked for this.
+
+Sat Jul 6 21:55:59 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing 2.4.23
+ * doc/*: rebuilt the docs
+
+Sat Jul 6 21:11:20 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixing bug #84169 by fixing the
+ comment of xmlCreatePushParserCtxt to describe the
+ encoding detection parameters better.
+
+Sat Jul 6 19:44:56 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixing bug #79331 in one path the lookup for
+ ID attributes on a namespaced node wasn't handled correctly :-\
+
+Fri Jul 5 20:07:43 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: trying to fix 87235 about discarded white
+ spaces in the HTML parser.
+ * result/HTML/*: this changes the output of a number of HTML
+ regression tests
+
+Mon Jul 1 23:23:41 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: applied patch from Richard Jinks for the namespace
+ axis + fixed a memory error.
+ * parser.c parserInternals.c: applied patches from Peter Jacobi
+ removing ctxt->token for good.
+ * xmlschemas.c xmlschemastypes.c: fixed a few memory leaks
+ popped out by the regression tests.
+ * Makefile.am: patch for threads makefile from Gary Pennington
+
+Fri Jun 28 19:38:00 HKT 2002 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: enhanced behaviour of position() after usage of
+ expressions involving preceding-sibling (et al).
+
+Tue Jun 18 09:58:48 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * hash.c: applied a patch from Peter Jacobi to solve a problem
+ when compiling with the Watcom C on Win32
+ * result/schemas/*.err: the change of hashing algo generated
+ permutations in the output
+
+Mon Jun 17 19:02:49 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * hash.c: applied patch from Sander Vesik improving the quality of
+ the hash function.
+
+2002-06-14 Aleksey Sanin <aleksey@aleksey.com>
+
+ * DOCBparser.c HTMLparser.c debugXML.c encoding.c
+ nanoftp.c nanohttp.c parser.c tree.c uri.c xmlIO.c
+ xmllint.c xpath.c: replaced sprintf() with snprintf()
+ to prevent possible buffer overflow (the bug was pointed
+ out by Anju Premachandran)
+
+Thu Jun 13 17:30:25 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: removed an uninitialized data error popped by valgrind
+ on PE references
+
+Wed Jun 12 21:38:46 MDT 2002 John Fleck <jfleck@inkstain.net>
+
+ * doc/xml.html
+ adding tutorial reference to the web page
+
+Wed Jun 12 21:26:08 MDT 2002 John Fleck <jfleck@inkstain.net>
+
+ * doc/tutorial/xmltutorial.xml
+ * doc/tutorial/ar01s07.html
+ * doc/tutorial/ape.html
+ * doc/tutorial/includegetattribute.c
+ adding section to tutorial about retrieving an attribute
+ value
+
+Tue Jun 11 12:07:04 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: applied a couple of patches from Peter Jacobi to start
+ to get rid of ctxt->token, with a possible significant speed
+ improvement to be gained once done. Better compliance with PE
+ references constructs in DTDs too.
+ * test/valid/t[0-9]* result/valid/t[0-9]*: added a set of tests
+ from Peter too
+
+Tue Jun 11 09:25:12 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: Babak Vahedipour-Kunze reported that openTag in
+ xmlParseElement was likely to have been deallocated at the
+ time of the report, possibly leading to segfault. Just report
+ the tag name now.
+
+Mon Jun 10 18:00:02 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: patch from Richard Jinks for XPath substring() function
+ * result/XPath/expr/strings test/XPath/expr/strings: new set of tests
+
+2002-06-06 Aleksey Sanin <aleksey@aleksey.com>
+
+ * xmlIO.c: patch from Rachel Hestilow to fix bug #84340
+
+Wed Jun 5 19:14:49 MDT 2002 John Fleck <jfleck@inkstain.net>
+
+ *doc/FAQ.html
+ fixing typos in FAQ, thanks to Robert Funnell for the
+ editing help
+
+Wed Jun 5 14:50:24 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS: got complaints from rpmlint that it was empty
+
+Tue Jun 4 09:09:18 MDT 2002 John Fleck <jfleck@inkstain.net>
+
+ * added doc/tutorial, including:
+ apa.html
+ apb.html
+ apc.html
+ apd.html
+ ar01s02.html
+ ar01s03.html
+ ar01s04.html
+ ar01s05.html
+ ar01s06.html
+ includeaddattribute.c
+ includeaddkeyword.c
+ includekeyword.c
+ includestory.xml
+ index.html
+ xmltutorial.xml
+ libxml tutorial, including generated html
+
+Mon Jun 3 21:21:26 2002 Aleksey Sanin <aleksey@aleksey.com>
+
+ * result/c14n/exc-without-comments/merlin-c14n-two-*
+ result/c14n/without-comments/merlin-c14n-two-*
+ test/c14n/exc-without-comments/merlin-c14n-two-*
+ test/c14n/without-comments/merlin-c14n-two-*
+ testC14N.c Makefile.am: added merlin-c14n-two.tar.gz tests for
+ c14n/exc-c14n and slightly modified test script to handle
+ these test cases
+ * c14n.c: fixed bugs for complicated nodes set (namespace
+ without node and others from merlin-c14n-two.tar.gz)
+ * include/libxml/xpathInternals.h win32/dsp/libxml2.def.src
+ win32/libxml2.def.src: "opened" xmlXPathNodeSetFreeNs() function
+ for xmlsec performance patch
+ * xpath.c: fixed self::node() for namespaces and attributes
+
+Mon Jun 03 00:04:21 2002 Chema Celorio <chema@ximian.com>
+
+ * tree.h: added xmlDocFormatDump which is just as xmlDocDump
+ but with the format parameter
+ * tree.c: made xmlDocDump a wrapper arround xmlDocFormatDump
+
+Fri May 31 12:16:48 2002 Aleksey Sanin <aleksey@aleksey.com>
+
+ * Makefile.am: updated c14n tests suite
+ * c14n.c: performance improvement for previous c14n patch
+
+Fri May 31 11:47:12 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: another peroformance patch from Peter Jacobi, that
+ time on parsing attribute values.
+
+Thu May 30 23:34:27 2002 Aleksey Sanin <aleksey@aleksey.com>
+
+ * Makefile.am result/c14n/* test/c14n/*: C14N tests integrated
+ into LibXML2 test suite
+
+Thu May 30 21:23:06 2002 Aleksey Sanin <aleksey@aleksey.com>
+
+ * c14n.c: propagating xpath ancesstors node fix to c14n
+ plus small performance improvement to reduce number of
+ mallocs
+ * xpath.c: fixed ancestors axis processing for namespace nodes
+
+Wed May 29 10:21:39 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c parser.c tree.c include/libxml/tree.h: performance patch from
+ Peter Jacobi
+
+Mon May 27 23:18:33 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing 2.4.22
+
+Mon May 27 16:44:04 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c win32/libxml2.def.src win32/dsp/libxml2.def.src
+ include/libxml/HTMLparser.h: fixing #79334 making htmlParseDocument
+ a public entry point.
+ * doc/*: rebuilt the API and docs
+
+Mon May 27 14:16:28 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: patch from Richard Jinks to fix a problem introduced
+ in the previous patch and pointed by Norm
+
+Fri May 24 13:10:22 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: fixing bug #81112
+
+Fri May 24 13:03:24 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: fixing bug #82848
+
+Fri May 24 09:54:49 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * result/catalogs/mycatalog.full: Aleksey's commit changed the
+ output of one catalog test
+
+Fri 24 May 2002 12:17:45 AM PDT Aleksey Sanin <aleksey@aleksey.com>
+
+ * global.data globals.c tree.c include/libxml/globals.h
+ win32/libxml2.def.src win32/dsp/libxml2.def.src: changed
+ default value for global parameter xmlIndentTreeOutput to 1 and
+ introduced new global parameter xmlTreeIndentString (the string
+ used to do one-level indent) with default value " " (as it was
+ in tree.c)
+
+Thu May 23 13:55:57 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: Merijn Broeren pointed out a problem when compiling
+ with trio and schemas.
+
+Wed May 22 11:57:49 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: patch from Richard Jinks to fix the problem raised in
+ http://mail.gnome.org/archives/xml/2002-April/msg00246.htm
+
+Wed May 22 08:38:19 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: a bit of work on import.
+ * xmlschemastypes.c: Charles Bozeman provided a compare function
+ for date/time types so min/max facet restrictions should work,
+ indeterminate comparisons return an error instead of equal.
+ * test/schemas/date_0* result/schemas/date_0_0: specific test
+ from Charles Bozeman too
+
+Sat May 18 09:54:12 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.3 doc/buildDocBookCatalog: apply a couple of patches
+ from Christian Cornelssen fixing the man pages and the Catalog
+ building script.
+ * xmlschemas.c include/libxml/schemasInternals.h: nothing new yet
+ next step is <xs:import> I now have a reasonable understanding
+ of how it works.
+
+Thu May 16 10:43:26 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied a small buffer performance patch from Gary Pennington
+
+Wed May 15 00:25:34 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/libxml2.def.src: exported xmlXPathNodeSetAddNs()
+
+Tue May 14 13:00:48 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixing an XPath function evalutation bug pointed out
+ by Alexey Efimov where the context was lost when evaluating
+ the function arguments
+
+Mon 13 May 2002 11:37:39 PM PDT Aleksey Sanin <aleksey@aleksey.com>
+
+ * xpath.c include/libxml/xpathInternals.h: maked xmlXPathNodeSetAddNs()
+ function public for XMLSec performance optimizations
+
+Mon May 13 12:32:22 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml2class.txt : fixed a problem
+ with the HTML parser pointed by Gary Benson
+ * python/tests/Makefile.am python/tests/pushSAXhtml.py: sdding the
+ example
+
+Thu 09 May 2002 11:19:00 AM PDT Aleksey Sanin <aleksey@aleksey.com>
+ * parser.c: fixed bug #81159 (memory growth in SAX)
+
+Tue 07 May 2002 09:20:21 AM PDT Aleksey Sanin <aleksey@aleksey.com>
+ * xpath.c: fixed bug #78858 (the real fix)
+
+Sat 04 May 2002 11:56:31 PM PDT Aleksey Sanin <aleksey@aleksey.com>
+ * xpath.c: fixed bug #78858 (quick and durty fix to hide the problem)
+
+Sun May 5 08:57:08 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: modified xmlNodeSetBase to allow changing the
+ base of a document.
+
+Fri May 3 09:20:41 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: patch Charles Bozeman for validation of
+ all the date, time, and duration types
+ * test/schemas/dur_0* result/schemas/dur_0*: associated tests
+ * configure.in: fixed an error pointed by an user
+ * xml2-config.in: fixed an error pointed by an user
+
+Wed 01 May 2002 11:29:27 AM PDT Aleksey Sanin <aleksey@aleksey.com>
+
+ * include/libxml/xmlIO.h win32/dsp/libxml2.def.src
+ win32/libxml2.def.src xmlIO.c: exported default
+ 'file:', 'http:' and 'ftp:' protocols input handlers
+ and maked protocols comparisson case insensitive
+
+Tue Apr 30 16:29:05 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: Neven Has detected a typo
+
+Tue Apr 30 08:48:11 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * AUTHORS HACKING: added Aleksey Sanin <aleksey@aleksey.com>
+ as one of the persons allowed to commit directly to the
+ module.
+
+Mon Apr 29 17:48:26 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in include/libxml/xmlwin32version.h: preparing 2.4.21
+ * valid.c: raised a too low limit
+ * doc/*: rebuilt the docs
+
+Wed Apr 24 13:41:03 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * test/XPath/expr/floats test/XPath/expr/functions
+ result/XPath/expr/floats result/XPath/expr/functions
+ xpath.c: another XPath conformance patch from Richard Jinks
+
+Tue Apr 23 19:50:40 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed validation of attribute groups.
+ * test/schemas result/schemas: added an example from the primer
+
+Tue Apr 23 09:11:37 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am xmlschemas.c xmlschemastypes.c: more work on Schemas
+ * test/schemas result/schemas: updated the test list
+
+Mon Apr 22 17:59:14 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * TODO: updated a bit
+ * parser.c: made a comment more specific
+ * xmlregexp.c xmlschemas.c xmlschemastypes.c: more work on the
+ Schemas conformance.
+ * test/schemas result/schemas: updated the test list
+
+Sat Apr 20 19:36:39 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c xmlschemas.c include/libxml/xmlautomata.h:
+ implementing xs:all with minOccurs = 0
+ * tes/schemas/* result/schemas/*: added more tests covering
+ xs:all
+
+Sat Apr 20 09:22:50 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: first implementation of the all particle, this
+ may need to be revisited for case where not all transitions
+ must be crossed.
+
+Fri Apr 19 18:26:04 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: another entity processing update from Markus Henke
+
+Fri Apr 19 17:14:24 CEST 2002 Bjorn Reese <breese@users.sourceforge.net>
+
+ * trionan.c: fixed crash on OSF/1
+
+Fri Apr 19 09:00:56 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: more Schemas work
+ * test/schemas/* result/schemas/*: added more tests coming
+ from the spec.
+
+Thu Apr 18 23:00:02 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * c14n.c: patch from Aleksey Sanin reflecting a change in the
+ ExcC14N specification
+
+Thu Apr 18 18:38:30 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: patch from Markus Henke, fix for recursive entities.
+
+Thu Apr 18 17:49:24 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fix a problem with string() on a document node.
+
+Thu Apr 18 16:40:42 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am xmlschemas.c: more Schemas work
+ * test/schemas/* result/schemas/*: added more tests coming
+ from the spec.
+
+Thu Apr 18 13:52:52 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: fixed & serialization bug introduced in 2.4.20
+ * result/HTML/*: this changes a few things in the results
+
+Wed Apr 17 20:34:37 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * include/libxml/tree.h: eliminated 'declaration different than
+ prototype' warning
+ * include/win32config.h: "resolved" conflicts with errno.h
+
+Wed Apr 17 18:26:07 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c xmlschemas.c include/libxml/xmlautomata.h: more work
+ on the automata interfaces and debug of counted choices
+ * test/schemas/* result/schemas/*: added a number of tests
+
+Wed Apr 17 11:03:03 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c xmlschemastypes.c include/libxml/xmlschemas.h:
+ a bit of work on Schemas
+ * testSchemas.c: try to make it more useful
+ * test/schemas/* result/schemas/* Makefile.am: changed the
+ Schemas regression test procedure, started adding a few samples
+
+Tue Apr 16 19:52:01 CEST 2002 Igor Zlatkovic <izlatkovic@stud.fh-frankfurt.de>
+
+ * include/libxml/encoding.h: Patch for the Borland C++ builder
+ * include/libxml/tree.h: Patch for the Borland C++ builder
+ * threads.c: Patch for the Borland C++ builder
+ * win32/bcb5: New directory for the Borland C++ builder
+ project files
+
+Tue Apr 16 19:46:55 CEST 2002 Igor Zlatkovic <izlatkovic@stud.fh-frankfurt.de>
+
+ * win32/Makefile.msvc: Update for XML Schema support
+ * win32/configure.js: Update for XML Schema support
+ * win32/libxml2.def.src: Update for XML Schema support
+
+Tue Apr 16 17:46:43 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am TODO_SCHEMAS configure.in genUnicode.py testAutomata.c
+ testRegexp.c testSchemas.c xmlregexp.c xmlschemas.c xmlschemastypes.c
+ xmlunicode.c include/libxml/Makefile.am
+ include/libxml/schemasInternals.h include/libxml/xmlautomata.h
+ include/libxml/xmlregexp.h include/libxml/xmlschemas.h
+ include/libxml/xmlschemastypes.h include/libxml/xmlunicode.h
+ include/libxml/xmlversion.h.in : merged the current state of
+ XML Schemas implementation, it is not configured in by default,
+ a specific --schemas configure option has been added.
+ * test/automata test/regexp test/schemas Makefile.am
+ result/automata result/regexp result/schemas:
+ merged automata/regexp/schemas regression tests
+
+Tue Apr 16 09:48:44 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: Gary found a compile time problem, fixes #78823
+
+Mon Apr 15 19:11:36 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: release of 2.4.20
+ * doc/*: updated and rebuilt the docs
+
+Mon Apr 15 14:55:53 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am: patch from Cristian Gafton to build on
+ Red Hat 6.2, should also fix #75779
+
+Mon Apr 15 12:14:49 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: first part of fixing #78729
+
+Sun Apr 14 23:44:58 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c uri.c: fixing bug #78662 i.e. add proper
+ escaping of URI when saving HTML files.
+ * result/HTML/*: this impacted some tests
+
+Sun Apr 14 14:55:15 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: trying to fix #77441
+
+Fri Apr 12 23:02:16 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlIO.h: Hallski complained it could not be
+ included by itself.
+
+Thu Apr 11 10:23:36 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: applied an IEEE flag patch for OSF/1 #77825
+
+Wed Apr 10 23:31:34 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+ * win32/configure.js: patch from Nilo for the c14n option
+ * win32/Makefile.msvc: fixed libxml2.def generation with threads
+
+Wed Apr 10 21:24:16 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c include/libxml/xmlwin32version.h.in: Silvan Minghetti
+ pointed erroneous use of LIBXML_THREADS_ENABLED instead of
+ LIBXML_THREAD_ENABLED
+
+Wed Apr 10 18:12:52 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: another patch from Richard Jinks for substring conformance
+ * test/XPath/expr/floats test/XPath/expr/strings
+ result/XPath/expr/floats result/XPath/expr/strings: update of the
+ test suite to check those.
+
+Wed Apr 10 13:29:49 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: patch from Richard Jinks for .x float parsing.
+
+Tue Apr 9 18:09:31 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: patch from Markus Henke when an encoding ain't recognized
+
+Tue Apr 9 15:47:14 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.m4: got a report that #include <string.h> was needed
+
+Tue Apr 9 11:51:25 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: applied a fix from Anthony Jones for -o /--output
+
+Tue Apr 2 20:27:11 MST 2002 John Fleck <jfleck@inkstain.net>
+
+ * doc/example.html: fixing typo
+
+Mon Apr 1 10:02:57 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed a bug in the nodeset to boolean comparison code
+ pointed out by Melvyn Sopacua.
+
+Fri Mar 29 23:41:53 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.m4: Frédéric Crozat gave a patch related to the change
+ of Include paths breaking the libxml.m4
+
+Fri Mar 29 18:25:54 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: Fix bug #76927 forgot to save some context
+ when evaluating binary expressions
+
+Thu Mar 28 19:22:48 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: fixed configure for MPE/iX from Markus Henke
+ * xmlmemory.c: fixed initialization problems
+ * xpath.c: another set of patches from Richard Jinks this
+ fixes "make XPathtests" on linux
+
+Wed Mar 27 17:09:43 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * trionan.c trionan.h xpath.c: more patches from Richard Jinks
+ * test/XPath/expr/compare test/XPath/expr/equality
+ test/XPath/expr/floats test/XPath/expr/functions
+ test/XPath/expr/strings result/XPath/expr/compare
+ result/XPath/expr/equality result/XPath/expr/floats
+ result/XPath/expr/functions result/XPath/expr/strings: Updated
+ tests though they show a divergence on Linux
+
+Wed Mar 27 10:06:53 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c trionan.c: previous commit also included patches
+ from Richard Jinks on some IEEE support corner case
+
+Wed Mar 27 10:03:11 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * AUTHORS HACKING: Added Igor Zlatkovic as official maintainer
+ * python/Makefile.am python/tests/Makefile.am: Albert Chin pointed
+ that $(datadir) should be used for docs
+
+Tue Mar 26 13:43:16 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: Thomas Steinborn pointed out #76404 that libxml2
+ could leak filedescriptors
+
+Tue Mar 26 08:55:53 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in nanohttp.c: applied patch from Allan Clark for
+ UnixWare/OpenServer
+
+Mon Mar 25 17:45:44 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing 2.4.19
+ * doc/*: rebuilt the docs
+
+Mon Mar 25 17:34:06 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * nanohttp.c: fixing #76043, got fed up with non-portability
+ of that piece of code.
+
+Mon Mar 25 13:08:21 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c SAX.c: Never commit without running "make tests" :-(
+ fix a couple of stupidities in the previous commit
+ * result/*: a few changes in some attribute order result of previous
+ commit.
+
+Mon Mar 25 11:46:05 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c SAX.c: fixed bug #76168, attribute redeclared in
+ the internal subset should not raise duplicate ID errors,
+ also there was a small bug in conjunction to namespace
+ declarations defaulted and xml:xxx attributes DTD definitions.
+
+Fri Mar 22 15:13:49 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: Richard Jinks also raised some rounding problems
+ this tries to fix them
+
+Fri Mar 22 13:22:09 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: Richard Jinks spotted an incoherent memory allocation
+ behaviour in xmlXPathCastToString()
+
+Thu Mar 21 14:25:29 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: fixed a bug in the ISO-Latin 1 to UTF8 encoder
+ raised by Morus Walter
+
+Thu Mar 21 14:07:13 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlcatalog.c include/libxml/xmlversion.h.in: applied 2 fixups
+ from Igor
+
+Thu Mar 21 13:30:06 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixing #75619, related to a problem when trying
+ to evaluate condition when the current node set resulting
+ from that sub-step evaluation is empty. Also fixes 2 potential
+ problem with previous-sibling and next-siblings axis.
+
+Thu Mar 21 09:03:59 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * c14n.c: patch from Mark Vakoc to build C14N if DocBook and
+ HTML support is not configured in.
+
+Wed Mar 20 22:42:42 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c error.c parser.c parserInternals.c tree.c xmlIO.c
+ include/libxml/tree.h: dohh I really didn't intended to commit
+ this test version :-(
+
+Wed Mar 20 20:20:57 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * testSAX.c: I wanted to see the real speed at the SAX interface
+ after a little too many Ximianer started complaining about the
+ parser speed.
+ added a --quiet option:
+ paphio:~/XML -> ls -l db100000.xml
+ -rw-rw-r-- 1 veillard www 20182040 Mar 20 10:30 db100000.xml
+ paphio:~/XML -> time ./testSAX --quiet db100000.xml
+ 3200006 callbacks generated
+ real 0m1.270s
+ Which means 16MBytes/s and 3Mcallback/s
+
+Tue Mar 19 19:33:57 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: valgrind spotted another error that time when running
+ on libxslt regression tests
+
+Tue Mar 19 15:24:49 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: adding "make valgrind" running the full regression
+ tests (except python ones) under Valgrind (using valgrind -q
+ which was kindly added by the author).
+ * valid.c: stupid bug pinpointed by Valgrind, the regression tests
+ passes cleanly now except an obcure floating point initialization
+ raised in log10() in one XPath regression test ???
+ * tree.c: edited some comments to close #75244
+
+Tue Mar 19 12:15:20 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: pretty insane thing, the xmlXPathFormatNumber()
+ was not serializing 1 as "1" if LC_ALL=sv_SE :-( and in the
+ context of ScrollKeeper, made sure that if the number is
+ an integer, the serialization follows the description at
+ http://www.w3.org/TR/xpath#section-String-Functions
+
+Mon Mar 18 19:18:13 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing 2.4.18
+ * doc/*: updated and rebuilt the web site
+ * *.c libxml.h: implement the new IN_LIBXML scheme discussed with
+ the Windows and Cygwin maintainers.
+ * parser.c: humm, changed the way the SAX parser work when
+ xmlSubstituteEntitiesDefault(1) is set, it will then
+ do the entity registration and loading by itself in case the
+ user provided SAX getEntity() returns NULL.
+ * testSAX.c: added --noent to test the behaviour.
+
+Mon Mar 18 12:44:23 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: Wilfried Teiken provided a hackish but working
+ way to get context reported back on entities when parsing
+ with SAX and without breaking the DOM build.
+
+Sun Mar 17 11:31:55 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * c14n.c: applied a new patch from Aleksey Sanin
+ * doc/site.xsl doc/xml.html doc/*.html: updated the documentation
+ to reference Aleksey implementation of XML digital Signatures
+
+Sat Mar 16 23:01:42 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: small fix to avoid potential problem due to
+ ordering of freeing data
+ * python/Makefile.am: people were complaining about
+ the generated file in python dir not being built
+
+Fri Mar 15 23:21:40 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in python/Makefile.am python/tests/Makefile.am
+ python/generator.py python/libxml.c python/types.c: Cleanup
+ of the python Makefiles based on Jacob and James feedback,
+ fixed the spec file accordingly, fixed the number of warning
+ that passing my pedantic CFLAGS was generating. Conclusion
+ is that Python includes are real crap.
+
+Fri Mar 15 19:41:25 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure,in: it was reported quite a few times that
+ xml2-config --cflags should not output
+ -I$includeprefix/libxml2/libxml because libxml2 header names
+ clashes with existing names like list.h from C++ stl.
+ Includes should be #include<libxml/xxx.h> so ...
+
+Fri Mar 15 10:41:50 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * c14n.c: another patch from Aleksey Sanin
+
+Fri Mar 15 08:55:55 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * c14n.c: applied patch from Aleksey Sanin fixing a problem in the
+ canonicalization algorithm
+ * doc/xml.html doc/index.html: added the C14N references on the
+ index page.
+
+2002-03-13 jacob berkman <jacob@ximian.com>
+
+ * python/Makefile.am: remove LDADD and CFLAGS as this is broken
+ usage, redundant, and gcc specific
+
+Wed Mar 13 11:00:59 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: speedup some node selection operations, this can
+ have a significant impact on DocBook Norm's stylesheets
+ * nanohttp.c: someone reported that SOCKLEN_T may not be defined
+ make sure it's always the case
+ * debugXML.c: distinguish CDATA and comments in ls operations
+
+Tue Mar 12 19:45:24 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/*.h: Heiko W. Rupp fixed a lot of comments
+ to generate better API descriptions etc...
+
+Mon Mar 11 10:10:30 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * c14n.c: Fixing #74186, made sure all boolean expressions
+ get fully parenthesized, ran indent on the output
+ * configure.in HTMLtree.c SAX.c c14n.c debugXML.c tree.c xpointer.c
+ include/libxml/tree.h: also #74186 related, removed the
+ --with-buffers option, and all the preprocessor conditional
+ sections that were resulting from it.
+
+Sun Mar 10 17:47:58 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: applied patch from Dodji Seketeli fixing an
+ uninitailized variable in xmlValidGetValidElements()
+
+Sat Mar 9 15:10:49 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * c14n.c: fixed a few comments
+ * doc/*.html doc/*/*.html: regenerated the docs and added
+ the C14N API
+ * doc/api.xsl doc/gnome-xml.sgml: fixups and added IDs
+
+Sat Mar 9 11:16:11 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * check-xml-test-suite.py: fix to adapt varaiations in the
+ bindings
+ * configure.in python/setup.py python/setup.py.in: fixed to
+ have the version of the python scripts automatically updated
+
+Fri Mar 8 16:45:55 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed a bug newly introduced and pointed by Uwe Fechner
+ in xmlCopyProp()
+
+Fri Mar 8 15:49:10 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing 2.4.17 release
+ * doc/*: updated and rebuilt the docs
+ * xpath.c: fixed a comment
+ * python/libxml.c: fixed a possible reentrancy problem
+
+Thu Mar 7 23:19:28 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c python/tests/Makefile.am python/tests/attribs.py:
+ fixed xmlHasNsProp() bugs for defaulted from DTD attribs,
+ added a specific regression test
+ * python/generator.py: xmlHasNsProp() and xmlHasProp() shall
+ not raise exceptions when failing to find the attribute.
+
+Thu Mar 7 16:11:35 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in xmllint.c: owen pointed out a problem with the
+ ftme fix, gettimeofday() was not detected by configure and
+ the ftime header wasn't included, dohhh
+
+Thu Mar 7 12:19:36 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in xmllint.c: trying to fix #71457 for timing
+ precision when gettimeofday() is not available but ftime() is
+
+Thu Mar 7 11:24:02 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in doc/Makefile.am: Fixed #73408 missing images
+ are now copied on install and part of the -devel RPM
+
+Thu Mar 7 09:34:16 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: trying to avoid bug #72150 which was apparently
+ caused by a gcc bug (or a processor problem) as detailed
+ at http://veillard.com/gcc.bug
+
+Thu Mar 7 01:02:37 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c python/tests/Makefile.am python/tests/cutnpaste.py:
+ fixed xmlReconciliateNs(), added a Python test/example for
+ inter-document cut'n paste
+ * python/libxml.py: fixed node.doc on document nodes and added
+ xpathEval() onto node objects
+
+Wed Mar 6 22:38:03 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: fixed some htmlSetMetaEncoding() problems
+ * python/libxml.c python/tests/Makefile.am python/tests/serialize.py:
+ fixup and integrated tests for the serialization stuff
+
+Wed Mar 6 19:40:57 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am libxml.3 libxml.4 libxml.spec.in: Fixed bug #72570
+ moved the libxml man page to section 3
+
+Wed Mar 6 18:34:07 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fix bug #72490
+ * python/libxml.c python/libxml.py: added methods serialize()
+ and saveTo() to all node elements.
+
+Tue Mar 5 21:27:03 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: closed #73430, don't read from an input source
+ which indicated an end-of-file or an error.
+
+Tue Mar 5 16:33:42 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: make sure SAX endDocument is always called as
+ this could result in a Python memory leak otherwise (it's
+ used to decrement ref-counting)
+ * python/generator.py python/libxml.c python/libxml.py
+ python/libxml2-python-api.xml python/libxml2class.txt
+ python/tests/error.py python/tests/xpath.py: implemented
+ the suggestions made by Gary Benson and extended the tests
+ to match it.
+
+Tue Mar 5 10:35:24 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py: applied patch fixing #73450
+
+Mon Mar 4 17:59:29 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixing #61290 "namespace nodes have no parent"
+ long standing divergence from the XPath REC. NodeSets
+ simply hold a copy of namespace nodes and those node ->next
+ points to the parent (which may not be the node carrying the
+ definition).
+ * include/libxml/xpath.h: flagged but didn't added a possible
+ speedup
+ * DOCBparser.c HTMLparser.c: removed some warnings from push
+ parser due to new state being added.
+ * tree.c: new fix from Boris Erdmann
+ * configure.in c14n.c include/libxml/c14n.h testC14N.c: added
+ the XML Canonalization support from Aleksey Sanin
+
+Sun Mar 3 15:12:42 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: patch from Boris Erdmann fixing some namespace odities
+ with xmlCopyNode()
+
+Sat Mar 2 10:33:04 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: fix bug #72706 when loading a NULL entity
+
+Fri Mar 1 17:14:42 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: Fixed #72346, about handling of xmlns:foo="", this could
+ actually change in a future XML Namespace revision.
+
+Fri Mar 1 17:12:15 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/types.c python/tests/Makefile.am python/tests/xpathret.py:
+ added the possibility of returning nodesets from XPath extension
+ functions written in Python
+
+Fri Mar 1 13:56:12 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/*: commiting some Python bindings work done while travelling
+
+Fri Mar 1 10:11:15 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: close #72663 and #72658, don't memdump unless compiled
+ explicitely with memory debugging switched on
+
+Sat Feb 23 11:08:09 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/libxml2-python-api.xml
+ python/libxml2class.txt python/libxml_wrap.h python/types.c:
+ Added wrapper for the xmlURIPtr type, provided accessors, fixed
+ the accessor generator for strings
+ * python/tests/Makefile.am python/tests/tstURI.py: added a specific
+ regression test.
+
+Fri Feb 22 23:44:57 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/README python/generator.py python/libxml.c python/setup.py:
+ added the 'usual' setup.py to allow building a libxml2-python
+ module based on the same code. The initialization is however
+ different the 2 .so files fo libxml2 and libxslt are identical and
+ they entry point initialize both libraries. this is done to avoid
+ some possible nasty problem since the Python don't merge the maps
+ of all shared modules.
+
+Wed Feb 20 23:16:08 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed a push/encoding bug reported by Michael
+ on librsvg
+
+Wed Feb 20 19:54:05 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parserInternals.h: fixes a misplaced #endif
+
+Wed Feb 20 17:47:55 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c valid.c: found and fixed a couple of allocation bugs
+
+Wed Feb 20 15:36:03 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xml.html doc/python.html doc/*: added a Python and binding
+ page describing the current state of the Python bindings and
+ giving pointers to the other languages wrappers.
+
+Wed Feb 20 11:16:15 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in include/libxml/xmlwin32version.h: preparing 2.4.16
+ * doc/* python/libxml2class.txt: updated and rebuilt the docs,
+ rebuilt the API and web site
+ * xpath.c: fixed #71978 portability bugs
+
+Tue Feb 19 22:49:36 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: oops broke automatic defaulting of namespaces attributes.
+
+Tue Feb 19 22:01:35 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parserInternals.h parser.c: had to change
+ 2 internal parsing API when processing document content
+ to check the start and end of element content are defined
+ in the same entity
+ * valid.c include/libxml/valid.h: attribute normalization can
+ generate a validity error added xmlValidCtxtNormalizeAttributeValue()
+ with the context to report it.
+ * SAX.c: fixed the last known bugs, crazy validation constraints
+ when a document is standalone seems correctly handled. There
+ is a couple of open issues left which need consideration especially
+ PE93 on external unparsed entities and standalone status.
+ Ran 1819 tests: 1817 succeeded, 2 failed and 0 generated an error in 8.26 s.
+ The 2 tests left failing are actually in error. Cleanup done.
+
+Tue Feb 19 15:17:02 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: implemented E59 spaces in CDATA does not match the
+ nonterminal S
+
+Tue Feb 19 14:44:53 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c parser.c valid.c: more validation test fixups
+ * check-xml-test-suite.py: added duration info for the tests
+
+Mon Feb 18 23:25:08 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c valid.c: a couple of errors were reported but not
+ saved back as such in the parsing context. Down to 1% failure rate
+ Ran 1819 tests: 1801 succeeded, 18 failed and 0 generated an error
+
+Mon Feb 18 20:16:15 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlInternald.c: isExtender was missing a char
+ * parser.c include/libxml/parser.h: % are acceptable in the
+ internal subset if within a PUBLIC ID
+
+Mon Feb 18 19:27:32 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c parserInternals.c valid.c: more work on the conformance
+ suite. Took the step to finally block documents with encoding
+ errors. It's a fatal error per the spec, people should have fixed
+ their documents by now.
+
+Mon Feb 18 15:30:14 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * check-xml-test-suite.py: fixed the test script after some discussion
+ on the semantic of TYPE="error"
+ * Makefile.am: added the script to the distrib
+
+Mon Feb 18 12:17:41 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c entities.c: fixed a couple of conformances issues deep
+ into the validation code (standalone and undeclared Notations)
+
+Mon Feb 18 00:17:24 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed #71741 supid typo an a bug about encoding parsing
+ stayed there for years !
+
+Mon Feb 18 00:06:42 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c SAX.c: fixed #71740 NotationDecl with a required field
+ missing
+
+Sun Feb 17 23:45:40 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * check-xml-test-suite.py: improved the behaviour a bit as
+ well as the logs
+ * parser.c valid.c SAX.c: fixed a few more bugs
+ "Ran 1819 tests: 1778 succeeded, 41 failed, and 0 generated an error"
+
+Sun Feb 17 20:41:37 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * check-xml-test-suite.py: python script to run regression tests
+ against the XML Test suite of W3C/OASis
+ * SAX.c: fixed a validation bug
+ * parser.c: fixed 3 errors pointed by the test suite
+ * doc/buildDocBookCatalog: fixed a typo pointed by drake
+ * python/Makefile.am: fixed a dependendy
+
+Fri Feb 15 21:47:13 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c: avoid a warning bug #71594
+
+Wed Feb 13 22:13:33 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c: Jesse Perry provided a patch to remove a few
+ warning on alpha/Tru64
+
+Wed Feb 13 14:30:49 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/entities.h: fixing a comment
+ * valid.c: fixing some troubles with validity check on namespaces
+ * result/VC/NS3 test/VC/NS3: added a specific regression test
+
+Wed Feb 13 14:05:24 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: Fixing #71342 serializing '\n' in attribute values
+ * result/noent/att3 result/att3 test/att3: added a specific
+ test.
+
+Tue Feb 12 14:45:32 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: couple of bug fixes
+
+Mon Feb 11 19:41:29 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/*.py: removed tabs and used spaces.
+
+Mon Feb 11 19:25:44 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in include/libxml/xmlwin32version.h: preparing 2.4.15
+ * doc/news.html doc/xml.html doc/xmlio.html: rebuilt some docs
+
+Mon Feb 11 14:53:24 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmlcatalog_man.xml: trying to close Red Hat bug #58707
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=58707
+
+Mon Feb 11 09:53:02 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/encoding.h include/libxml/entities.h
+ include/libxml/globals.h include/libxml/parser.h
+ include/libxml/threads.h include/libxml/tree.h
+ include/libxml/xmlmemory.h: trying to fix the include mess
+
+Mon Feb 11 08:53:33 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlmemory.h: reverted part of the previous
+ attempt to provide #69655, this was breaking the build.
+
+Sun Feb 10 14:13:34 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c Makefile.am build_glob.py configure.in debugXML.c
+ globals.c parser.c threads.c tree.c valid.c xmlmemory.c
+ xpath.c xpointer.c include/libxml/globals.h include/libxml/parser.h
+ include/libxml/parserInternals.h include/libxml/tree.h
+ include/libxml/xmlmemory.h include/libxml/xpathInternals.h:
+ Tentatively fixed #69655 , make compiling with -Wredundant-decls
+ clean.
+ * python/libxml.c: fixed a warning.
+
+Sun Feb 10 12:02:59 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c valid.c xinclude.c: fix #68882, cleanup the XInclude
+ copying of node, merge back IDs in the target document.
+ * result/XInclude/docids.xml test/XInclude/docs/docids.xml
+ test/XInclude/ents/ids.xml: test case
+ * result/VC/ElementValid4: output changed due to a typo fix
+
+Sat Feb 9 23:15:04 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am: seems some version of automake didn't
+ generate the dependencies right as Jacob found out. Add
+ an extra dependency rule.
+
+Sat Feb 9 18:59:23 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c valid.c: Justin Fletcher found some parts
+ of the code needing cleanup
+ * libxml.spec.in python/Makefile.am python/generator.py
+ python/libxml.c python/libxml.py: Fixed the python Makefiles
+ corrected a bug showing up on ia64, changed the name of the
+ python internal module too
+
+Fri Feb 8 15:19:28 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: applied patch from Andris Pavenis for binary
+ name suffixes
+
+Fri Feb 8 14:43:17 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c win32/win32config.h: fixing #68748
+
+Fri Feb 8 14:37:05 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixing #70166
+
+Fri Feb 8 14:31:24 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixing #70077
+
+Fri Feb 8 14:24:02 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Copyright Makefile.am README configure.in libxml.spec.in:
+ Changed to the MIT Licence
+ * doc/FAQ.html doc/catalog.html doc/intro.html doc/xml.html
+ doc/xmlio.html: updated the doc accordingly
+ * include/libxml/xmlwin32version.h configure.in: preparing
+ 2.4.14 release
+ * python/generator.py python/libxml.c python/libxml2-python-api.xml
+ python/libxml2class.txt python/libxml_wrap.h python/types.c:
+ fixed the const xmlChar * wrapper and generator, XPath extension
+ functions now use the context as first argument
+ * python/tests/tstxpath.py python/tests/xpath.py
+ python/tests/xpathext.py: Updated the tests accordingly
+ * tree.c: fixed bug #70067
+
+Thu Feb 7 17:33:58 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: cleanup
+ * debugXML.c: always use stdout if output is NULL
+ * xmlIO.c: don't close filedescriptors passed to outputBuffers
+ * python/Makefile.am python/generator.py python/libxml2class.txt
+ python/libxml_wrap.h python/types.c: augmented the number of bindings
+ handling FILE * and XPath contexts
+ * python/tests/Makefile.am: avoid a stupid problem due to the
+ use of TEST.
+
+Wed Feb 6 23:37:07 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: fixed stupid bug #70738 found by alfons hoogervorst
+
+Wed Feb 6 17:04:51 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/TODO python/libxml.c: cleanup the extension function lookup
+ * xmlmemory.c include/libxml/xmlmemory.h: always compile the list
+
+Tue Feb 5 17:33:30 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in python/Makefile.am: do not install outside
+ of prefix
+
+Mon Feb 4 15:05:55 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/TODO python/libxml.c: started adding SAX interfaces
+ * python/tests/Makefile.am python/tests/pushSAX.py: added a basic
+ SAX test
+
+Mon Feb 4 01:12:42 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: hardened the addChild function
+ * python/generator.py python/libxml.c python/libxml2-python-api.xml
+ python/libxml2class.txt python/libxml_wrap.h python/TODO:
+ added accessors needed for xmlNode, a bit more testing and
+ extension of interfaces
+ * python/tests/Makefile.am python/tests/build.py: added a test
+ build from scratch/save/load/check
+
+Sun Feb 3 21:10:39 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: change a small bit in the way valididy
+ error messages get initialized
+ * python/TODO python/libxml.c python/libxml2-python-api.xml
+ python/libxml2class.txt python/libxml_wrap.h python/types.c:
+ added some memory debugging to track leaks at the libxml2 level
+ * python/tests/*.py: changed all tests to check for leaks,
+ there is just one left in XPath extension registrations.
+
+Sun Feb 3 17:50:46 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/TODO python/generator.py python/libxml2-python-api.xml
+ python/libxml2class.txt: more accessor classes for the parser
+ context, allow to switch on and check validity
+ * python/tests/Makefile.am python/tests/error.py
+ python/tests/invalid.xml python/tests/valid.xml
+ python/tests/validate.py: added more test and added error.py
+ which I forgot to commit in the last step
+
+Sun Feb 3 16:03:55 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am python/types.c: cleanup
+ * python/libxml.c python/libxml.py python/libxml_wrap.h
+ python/generator.py python/libxml2-python-api.xml
+ python/libxml2class.txt: added class for parser context, added
+ first cut for push mode support. Added a framework to generate
+ accessors functions.
+ * python/tests/Makefile.am python/tests/push.py: added a push
+ test
+
+Sun Feb 3 00:17:26 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am python/TODO python/libxml.py: fixed a small
+ bug a bit of cleanup.
+
+Sat Feb 2 22:47:10 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am python/libxml.c python/libxml2-python-api.xml
+ python/libxml2class.txt: adding error redirections and preformat
+ to a python handler
+ * python/tests/Makefile.am python/tests/*.py: cleanup made all
+ tests self checking
+
+Sat Feb 2 13:18:54 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c python/libxml.py: fixed a stupid bug when renaming
+ a function
+
+Sat Feb 2 11:25:51 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in python/Makefile.am python/TODO python/generator.py
+ python/libxml.c python/libxml2-python-api.xml
+ python/libxml2class.txt: Progressing through the TODOs, class
+ description output, extra XML API, RPM now builds the wrappers
+ for all python installed versions
+
+Sat Feb 2 10:13:52 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in libxml.spec.in python/Makefile.am python/TODO
+ python/generator.py python/libxml2class.txt: added more informations
+ in the libxml2-python package including docs. Slightly changed
+ the class hierarchy
+ * python/tests/*: added basic regression tests infrastructure too
+
+Fri Feb 1 23:11:58 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in libxml.spec.in example/Makefile.am python/Makefile.am:
+ added libxml2-python as part of the packages installed
+
+Fri Feb 1 18:48:19 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am python/generator.py python/libxml.c
+ python/libxml.py: more work, now able to extend the
+ XPath interpreter with functions written in python.
+
+Fri Feb 1 10:28:51 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am: Jacob sent a patch to allow building from
+ tarfile.
+
+Fri Feb 1 00:40:48 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/Makefile.am python/libxml.c configure.in Makefile.am:
+ inserted the python wrappers build, I hope this won't be too
+ unportable
+
+Thu Jan 31 21:27:37 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: minor optimization
+ * python/generator.py python/libxml.c python/libxml.py
+ python/libxml_wrap.h: more work on the python bindings,
+ they now support XPath and there is no evident leak
+
+Thu Jan 31 00:48:06 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/libxml.py:
+ more work on the python bindings generator.
+
+Wed Jan 30 21:51:26 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/libxml_wrap.h:
+ more work on the python bindings.
+
+Wed Jan 30 17:35:33 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c python/libxml.py
+ python/libxml_wrap.h: commited early version of a python binding
+ for private use only ATM
+
+Sat Jan 26 22:41:13 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c tree.c include/libxml/entities.h: applied patch
+ from Anthony Jones to implement copy of DTD subtree too. Had
+ just to keep 2 function private which really ought to become
+ public ones.
+
+Fri Jan 25 15:14:55 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: added pointers to the web pages in the usage()
+
+Thu Jan 24 17:04:04 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: more fixes from Petr Kozelka for attribute handling
+ in the tree API to align the semantic with DOM.
+
+Thu Jan 24 16:00:53 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c tree.c entities.c: another set of patches from
+ Anthony Jones for copy operations cleanup and robustness
+
+Wed Jan 23 18:53:55 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/APIchunk*.html doc/parsedecl.py doc/api.xsl: generated
+ an alphabetic index based on comments content
+ * doc/*: rebuilt the web site with the new references
+
+Wed Jan 23 15:14:22 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.h: Greg Sjaardema suggested to use an
+ exponential buffer growth policy in xmlParserAddNodeInfo()
+
+Wed Jan 23 13:32:40 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/api.xsl doc/APIconstructors.html doc/APIfiles.html
+ doc/APIfunctions.html doc/APIsymbols.html doc/libxml2-refs.xml
+ doc/parsedecl.py doc/Makefile.am: updated the python extractor
+ to generate cross-references, and added/updated the stylesheets
+ to generate and link API indexes. The generic keyword index
+ is not done yet.
+ * doc/*.html: regenerated all the usual docs too
+
+Tue Jan 22 23:11:26 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: added an xpath function to the shell for T. V. Raman
+
+Tue Jan 22 22:42:23 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: patch from Anthony Jones to catch NULL nodes in
+ debug routines.
+
+Tue Jan 22 22:38:42 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: apply an patch from Petr Kozelka for unlink and replace
+ support of attribute nodes
+
+Tue Jan 22 19:12:06 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/libxml2-api.xml doc/parsedecl.py: Build a new version
+ hopefully near complete and fully documented of the API in XML
+ * HTMLtree.c SAX.c debugXML.c error.c globals.c parser.c tree.c
+ xmlIO.c xmlmemory.c include/libxml/catalog.h include/libxml/hash.h
+ include/libxml/list.h include/libxml/parser.h include/libxml/tree.h
+ include/libxml/parserInternals.h include/libxml/valid.hi
+ include/libxml/xmlIO.h include/libxml/xmlerror.hi
+ include/libxml/xmlmemory.h include/libxml/xmlversion.h.ini
+ include/libxml/xpath.h include/libxml/xpathInternals.h:
+ Cleaned up the doc comments a lot in the process, the interface
+ coverage is now 100%
+
+Tue Jan 22 00:12:58 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/libxml2-api.xml doc/parsedecl.py: improved the script to
+ extracts comments from the gtk-doc DocBook output (a bit
+ convoluted but seems to work).
+
+Mon Jan 21 18:29:19 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am doc/Makefile.am doc/libxml2-api.xml doc/parsedecl.py:
+ added an XML description of the API, moved the script generating
+ it here. Added a "make api" target
+
+Mon Jan 21 14:34:37 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: Adam Lounds pointed out a bug in xmlSearchNs()
+
+Mon Jan 21 09:55:21 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c include/libxml/xpathInternals.h: the change made to
+ xmlXPathFuncLookupFunc was incompatible roll it back
+
+Sun Jan 20 23:03:41 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: cleanup patch from Anthony Jones
+ * doc/Makefile.am: fix the headers to avoid in make scan
+ * parserInternals.c xpath.c include/libxml/*.h: cleanup of the
+ includes, * vs Ptr and general cleanup
+ * parsedecl.py: first version of a script to extract the
+ module interfaces, the goal will be to provide .decl or XML
+ specification of the interfaces to build wrappers.
+
+Sun Jan 20 13:38:22 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/xmlcatalog_man.xml xmlcatalog.c: Fixed bug #68830, xmlcatalog
+ now provides return codes in case of errors
+
+Sat Jan 19 16:36:21 CET 2002 Bjorn Reese <breese@users.sourceforge.net>
+
+ * trio.h trio.c triodef.h triop.h trionan.h trionan.c Makefile.am:
+ Upgraded to trio baseline 1.6
+ * strio.h strio.c: Replaced by triostr.h and triostr.c
+
+Fri Jan 18 17:22:50 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c xmlIO.c xmlcatalog.c: removed the last occurrences
+ of strdup usage in the code
+
+Fri Jan 18 12:47:15 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c error.c: Keith Isdale complained rightly that
+ xmlInitParser() did not preserve value set by xmlSetGenericErrorFunc
+
+Thu Jan 17 09:44:44 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed the funxtion to set the xml: attributes
+ * debugXML.c: added "setbase" to test it.
+
+Wed Jan 16 16:36:08 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: update xmlNodeSetContent() and xmlNodeSetContentLen()
+ to allow updating an attribute content
+
+Tue Jan 15 18:09:23 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.h: try to avoid problems when compiling on Windows
+
+Mon Jan 14 18:56:25 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * hash.c: patch from Anthony Jones for hash.c allocation size
+ * Makefile.am: trying to work around Yet Another Libtool Madness
+ and build the 2.4.13 release finally ...
+
+Mon Jan 14 18:27:19 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in include/libxml/xmlwin32version.h: updated to 2.4.13
+ * doc/* : update of the documentation
+
+Mon Jan 14 17:53:41 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c tree.c: some cleanup after an unsuccessful attempt
+ at fixing #61290 :-(
+
+Sun Jan 13 21:30:54 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed xmlSaveFormatFileEnc() when encoding == NULL
+ Fixes bug #67229
+
+Sun Jan 13 17:14:06 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: trying to avoid troubles when a subtree is copied
+ and coalesced in part with the target tree. Should fix
+ bug #67407
+
+Sun Jan 13 16:37:15 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixed validation of attributes content of type
+ NAME NAMES NMTOKEN and NMTOKENS to accept internationalized
+ values, very old bug. Fixes #67671
+
+Sun Jan 13 15:07:49 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/parserInternals.h tree.c: integrated
+ a couple of fixes and a new API function xmlSetEntityReferenceFunc()
+ from Keith Isdale and dedicated to xsldbg the XSLT debugger.
+
+Sun Jan 13 14:23:21 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: applied Serguei Narojnyi's patch to add native
+ thread support on the Win32 platform
+ * testThreadsWin32.c Makefile.am: added the test program also
+ from Serguei, Win32 specific
+ * include/win32config.h include/libxml/xmlwin32version.h.in:
+ added patch from Igor for the Windows thread specific defines.
+
+Wed Jan 9 12:50:39 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c: Anthony Jones pointed a bug in xmlCopyEntity()
+
+Tue Jan 8 14:23:22 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/*.html doc/site.xsl doc/Makefile: renamed XML.html
+ output page into XMLinfo.html. Close bug #66951 and
+ raised by Robert Collins too.
+
+Tue Jan 8 14:13:18 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: Paul Keogh pointed out a possibility of segfault
+ on repeted xmlAddEncodingAlias() / xmlCleanupEncodingAlias().
+ Closes bug # 68238
+
+Tue Jan 8 12:48:27 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/*.html: updated the Gdome2 links
+
+Tue Jan 8 11:32:30 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.h: Applied following patches from Robert Collins
+ and make sure IN_LIBXML is defined when compiling it
+ -------
+ * include/libxml/xmlversion.h.in (LIBXML_DLL_IMPORT): Use on Cygwin
+ as well as Visual C.
+ * parser.c (XML_DIR_SEP): Don't use '\\' for Cygwin.
+ * parserInternals.c (XML_DIR_SEP): Don't use '\\' for Cygwin.
+ * strio.c (PLATFORM_UNIX): Define for Cygwin.
+ * triodef.h (TRIO_PLATFORM_UNIX): Define for Cygwin.
+ * xmlIO.c (xmlFileOpen): Use unix behaviour for Cygwin.
+ Use binary mode opens for Cygwin (xmlFileOpenW xmlParserGetDirectory
+ xmlSysIDExists xmlNoNetExists).
+ * xmllint.c: Don't include winsock2.h for Cygwin.
+
+Mon Jan 7 17:52:48 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: Jirka Kosek pointer out a bug in xmlParseTextDecl()
+ when the version info is not present.
+
+Mon Jan 7 00:03:58 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: Anthony Jones pointed out a problem in
+ xmlStringGetNodeList() and provided a fix for it
+
+Sun Jan 6 13:45:49 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: patch from Frank J Franklin to remove a bug in
+ xmlCreatePushParserCtxt() when the initial buffer passed
+ is large.
+
+Sat Jan 5 19:24:23 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * win32/*: big cleanup of the Windows/MSVC project files
+ from Igor Zlatkovic
+
+Wed Jan 2 14:11:35 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * doc/Makefile.am: should fix #67674 and avoid troubles if
+ xsltproc is not available or fails in the prefix provided
+
+Tue Jan 1 17:48:56 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+ * xmlmemory.c: one more doc patch from Charlie Bozeman.
+
+Mon Dec 31 17:35:40 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c parser.c valid.c include/libxml/parserInternals.h
+ include/libxml/xmlerror.h include/libxml/xpathInternals.h:
+ Fixed a few other problems raised by Charlie Bozeman.
+ * result/VC/ElementValid[5-7]: fixed the output
+
+Mon Dec 31 17:13:34 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * *.c include/libxml/*.h doc/html/*: applied 42 documentation
+ patches from Charlie Bozeman. Regenerated the HTML docs.
+
+Thu Dec 20 14:59:52 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/debugXML.h win32/dsp/libxml2.def.src: fixes
+ for Windows from Igor
+
+Tue Dec 18 12:13:33 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: applied Justin Fletcher patch for --output or -o
+
+Tue Dec 18 08:52:32 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * win32/libxml2/libxml2.def.src: close #67019
+
+Tue Dec 18 08:08:51 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: applied Justin Fletcher generic timing patch
+ similar to the one already applied to xsltproc.
+
+Mon Dec 17 16:29:08 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/tree.h tree.c: applied documentation patches
+ from Charlie Bozeman
+
+Thu Dec 13 21:24:16 MST 2001 John Fleck <jfleck@inkstain.net>
+
+ *doc/xmllint.xml, xmllint.1 - document --dropdtd
+
+Thu Dec 13 23:19:50 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fix the xmlStrdup() used in the previous patch.
+ * valid.c: added --dropdtd
+ * tree.c: fixed xmlUnlinkNode so it also removes the references
+ from the document if the node is a DTD
+
+Thu Dec 13 15:54:35 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c valid.c: cleanup some static declarations
+
+Thu Dec 13 15:23:04 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: removed another strdup()
+ * doc/FAQ: removed the HP/UX entry
+
+Thu Dec 13 09:44:58 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fix bug #66816 when validating.
+ * xmllint.c: don't use sys/time.h if configure did not found it
+
+Mon Dec 10 21:39:55 MST 2001 John Fleck <jfleck@inkstain.net>
+
+ * docs/xmllint.1, xmllint.xml, xmlcatalog.1, xmlcatalog_man.html,
+ xmlcatalog_man.xml
+
+Mon Dec 10 22:06:16 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlmemory.h: Hietaniemi Jarkko pointed out that
+ xmlInitMemory() was declared twice
+
+Sun Dec 9 14:59:23 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c: do not reference strdup() !
+ * configure.in libxml-2.0.pc.in: trying to fix the libs
+ of the various config extraction modules
+
+Fri Dec 7 15:21:33 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in : preparing 2.4.12
+ * doc/* : updated and rebuilt the docs
+
+Fri Dec 7 12:32:00 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: closed bug #66159
+ * testURI.c: added --escape option
+ * configure.in: some cleanup for xml2-config --cflags
+
+Thu Dec 6 15:31:30 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c testThreads.c: removed some misplaced includes
+ of xmlversion.h
+
+Thu Dec 6 09:06:08 EST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * threads.c: patch from Gary Pennington fixing a possible
+ problem at initialization time.
+
+Wed Dec 5 13:01:37 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in libxml.h parser.c testThreads.c macos/: integrated
+ Eric Lavigne contribution to build libxml2 on MacOS using
+ CodeWarrior.
+
+Tue Dec 4 14:13:44 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: applied Geert Kloosterman's patch to fix
+ --repeat --timing output
+
+Thu Nov 29 17:10:22 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: Robin Berjon <robin@knowscape.com> found a case
+ where non-wellformed XML declaractions were not detected.
+
+Wed Nov 28 15:41:40 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xpointer.c: fixed a compilation bug pointed by Danny Jamshy
+
+Wed Nov 28 10:09:51 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: as robert pointed again, xmlInputCallbackInitialized
+ gets reset by xmlCleanupInputCallbacks() and this makes the
+ function useless. Same for output.
+
+Tue Nov 27 17:22:36 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: robert pointed out a loop error in callback cleanups
+
+Mon Nov 26 16:56:00 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c debugXML.c include/libxml/tree.h include/libxml/debugXML.h:
+ moved xmlGetLineNo() and xmlGetNodePath() into the main tree module,
+ they are not really tied to debugging
+
+Mon Nov 26 11:31:36 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in include/libxml/xmlwin32version.h: preparing 2.4.11
+ * xmllint.c: better --catalogs description
+
+Sun Nov 25 11:34:24 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: fixed a couple of problems in xmlSetProp()
+
+Thu Nov 22 19:19:10 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c tree.c xmlIO.c xmlmemory.c: some cleanups when chasing
+ unappropriate stdout output.
+
+Thu Nov 22 13:58:14 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/tree.h: Fixed a couple of macro errors pointed out
+ by Denis Beurive, closes #65111
+
+Tue Nov 20 10:34:01 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: in case of content model validity error, don't
+ print it if validity warnings were not requested.
+
+Tue Nov 20 09:30:02 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c: applied a couple of patches from Brian D Ripley.
+ * parserInternals.c: removed the last exit() call. Print an
+ unmaskable error on stderr instead (library mismatch detection)
+
+Sat Nov 17 17:16:51 MST 2001 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmllint.xml, doc/xmllint.1 - update xmllint man page with
+ shell instructions from Heiko Rupp
+
+Thu Nov 15 14:53:42 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: use the URL notation file:// for default catalog paths
+
+Wed Nov 14 16:03:02 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/tree.h: better comments for _private fields
+ * tree.c: removed a problem when copying an entity reference.
+
+Tue Nov 13 16:23:04 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * vms/*: updated instructions and diffs from John A Fotheringham
+
+Mon Nov 12 23:43:22 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlerror.h: avoid an include problem if
+ #include <libxml/xmlerror.h> happens first in code
+ seems to be the case in KDE libs
+
+Mon Nov 12 22:32:41 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * win32/dsp/* include/libxml/xmlwin32version.h.in: update
+ from Igor for Windows
+
+Mon Nov 12 10:19:41 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: Gary Pennington pointed out a missing prefix
+
+Sat Nov 10 12:55:42 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in include/libxml/xmlwin32version.h: preparing 2.4.10
+ * doc/*: upgraded and rebuilt the docs
+
+Sat Nov 10 12:33:38 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fix comment in scripts element parsing.
+ * result/HTML/doc3*: updated the results.
+
+Sat Nov 10 11:18:18 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: another URI bug fix #63336, using Joel Young patch.
+
+Sat Nov 10 11:07:26 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c include/libxml/debugXML.h: add xmlGetNodePath()
+ a cleaned up version of the Pwd shell string generation.
+
+Fri Nov 9 00:34:13 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c include/libxml/tree.h: trying to fix namespaces +
+ validation problems for good, closing #63619 in the process
+ * result/valid/dia.xml test/valid/dia.xml: the Dia test was
+ wrong in this respect, fixed it.
+
+Thu Nov 8 18:31:40 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: Morus Walter patch to allow --format and --encode
+
+Thu Nov 8 14:52:18 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: Stefan Kost provided an help command for the shell
+
+Wed Nov 7 14:32:55 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: Heiko Rupp pointed that the shell would crash
+ on empty nodesets returns.
+
+Wed Nov 7 13:52:36 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: Weiqi Gao pointed out that xmlcatalog
+ migh need the history libraries
+
+Tue Nov 6 23:49:09 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c test/HTML/lt.html result/HTML/lt.html*:
+ handle the case of < in quoted attributes, Bastian Kleineidam
+
+Tue Nov 6 16:21:33 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in include/libxml/xmlwin32version.h: releasing 2.4.9
+ fixing catalog breakages
+ * Makefile.am catalog.c result/catalogs/catal
+ result/catalogs/mycatalog.* test/catalogs/catal*:
+ fixed more problems in catalog support, added more regression tests
+ for both XML and SGML catalog handling
+
+Mon Nov 5 20:26:41 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c: applied an improvement to xmlGetLineNo() from
+ Keith Isdale
+
+Mon Nov 5 15:20:16 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: dohhhh XML catalog add and remove ops were broken too.
+ Side effect of the progressive catalog loading
+
+Mon Nov 5 12:40:54 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: confexecdir and confexec_DATA were defined twice
+ pointed out by Karl Eichwalder
+
+Sun Nov 4 23:18:34 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmlcatalog.c: avoid unlink() and use remove() instead.
+
+Sun Nov 4 23:12:38 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: cleanup
+ * include/libxml/xmlwin32version.h: updated with 2.4.8
+
+Sun Nov 4 21:17:24 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c global.data globals.c testThreads.c: fix bug #63752
+ of compiling libxml with a non standard set of options
+
+Sun Nov 4 13:11:41 MST 2001 John Fleck <jfleck@inkstain.net
+
+ * doc/xmllint.xml, xmllint.1 - updating xmllint man page to
+ document --sgml option, fixing gnome bugzilla #63382
+
+Sun Nov 4 20:56:53 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/catalog.h catalog.c: Fixed SGML catalogs
+ breakage of 2.4.7, added a couple of really needed APIs
+ like xmlCatalogIsEmpty() and xmlNewCatalog()
+ * xmlcatalog.c: updated --sgml --noout to be a suitable replacement
+ for install-catalog
+ * configure.in: preparing 2.4.8
+
+Thu Nov 1 15:29:31 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c tree.c include/libxml/HTMLtree.h
+ include/libxml/tree.h include/libxml/xmlIO.h: more include
+ cleanups, export cleanly one html output + format function.
+
+Thu Nov 1 14:12:12 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: removed initGenericErrorDefaultFunc call from
+ xmlInitParser() since it could destroy previous calls to
+ xsltSetGenericErrorFunc() effects
+
+Thu Nov 1 09:37:13 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * debugXML.c include/libxml/debugXML.h: bool can be a reserved
+ keyword.
+
+Wed Oct 31 18:50:08 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: cleanup
+ * threads.c: cleanup too
+ * xmlIO.c include/libxml/xmlIO.h: added xmlNoNetExternalEntityLoader()
+ from xsltproc
+ * include/libxml/tree.h include/libxml/parser.h: trying to break a
+ dependency loop.
+
+Tue Oct 30 18:38:53 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: Justin Fletcher pointed out that xmlParseXMLCatalog
+ was not used anymore !
+
+Tue Oct 30 13:33:13 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing 2.4.7
+ * Makefile.am doc/Makefile.am: switched to the latest xmllint
+ manual page from John
+ * doc/*: updated the doc and rebuilt the generated pages
+
+Tue Oct 30 11:31:19 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: closing bug #62711, the library should never
+ close stdin or stdout.
+
+Tue Oct 30 10:46:12 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: second pass at fixing #63336, using Joel Young
+ final patch. looks okay.
+
+Tue Oct 30 00:56:05 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c include/libxml/uri.h: trying to clear #63336
+ allowing the escaping routine to parse unconformant
+ URI-References.
+
+Mon Oct 29 19:09:46 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * vms/readme.vms vms/build_libxml.com nanoftp.c
+ include/libxml/xmlversion.h.in: a few VMS updates from
+ John A Fotheringham
+ * include/libxml/xmlIO.h xmlIO.c: added xmlCleanupInputCallbacks()
+ and xmlCleanupOutputCallbacks() for the Perl binding people.
+
+Mon Oct 29 12:44:17 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c globals.c DOCBparser.c HTMLparser.c error.c:
+ apply fixes to close #63271 and avoid segfaults when
+ the error routine gets callbed before xmlInitParser()
+ get called.
+ * nanoftp.c error.c: Applied patches from Justin Fletcher
+ correcting some xmlGenericError misuses.
+
+Sat Oct 27 14:04:45 MDT 2001 John Fleck <jfleck@inkstain.net>
+
+ *doc/xmllint.xml, doc/xmllint.1
+ New and improved man page for xmllint - .xml is the original, .1
+ is the generated man page
+
+Wed Oct 24 14:34:25 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * doc/site.xsl doc/*.html doc/Makefile.am: now autogenerate
+ the web site from the main HTML document.
+
+Tue Oct 23 14:32:04 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fixed an erroneous validation bug when PE refs
+ occurs in external parsed entities referenced from the
+ internals subset
+ * test/valid/index.xml test/valid/dtds/nitf-2-5.dtd
+ test/valid/dtds/NewsMLv1.0.dtd result/valid/index.xml*:
+ added the associated testcase, it's a nice one.
+ * HTMLparser.c: generate the DTD node as HTML still ...
+ * HTMLtree.c: fixed errors in Set/GetMetaEncoding
+
+Mon Oct 22 14:20:17 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: fixed a bug in htmlNewDoc()
+
+Mon Oct 22 11:32:36 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * test/threads/*: added entities testing to the Thread test
+ * testThreads.c: make the test reasonable
+ * DOCBparser.c: fix the DTD public and system ID
+ * xmllint.c: added --sgml for SGML DocBook importing
+ * Makefile.am: added Docbtests target
+
+Fri Oct 19 11:47:13 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c: use only "anonymous@" string for anonymous passwds
+ * testThreads.c: removed bogus include
+
+Thu Oct 18 16:56:23 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c valid.c result/valid/rss.xml result/valid/rss.xml.err:
+ fixed a very serious (looping) validation bug
+
+Wed Oct 17 11:56:25 EDT 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/globals.h include/libxml/threads.h threads.c
+ testThreads.c: far more testing, cleaning up bugs
+ * *.c : make sure globals.h is always included.
+
+Wed Oct 17 17:41:41 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: try to get rid of parser loops for good.
+
+Wed Oct 17 13:29:02 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: fixed some bugs in CFLAGS passing.
+ * test/threads Makefile.am testThreads.c: added a specific
+ threaded test case (really nasty, guaranteed).
+
+Tue Oct 16 23:01:49 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: serious cleanup on the management of the
+ XML catalog tree, more tests done, especially with
+ the catalog PI.
+
+Tue Oct 16 08:43:43 EDT 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: avoid a problem in catalog cleanup on SMP if
+ catalogs were not initialized.
+
+Tue Oct 16 14:33:19 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c xpath.c: trying to cleanup the not thread safe
+ parts of the library.
+
+Mon Oct 15 14:30:11 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/globals.h configure.in global.data: make
+ the allocation be per-thread a configure option
+ * encoding.c include/libxml/parser.h: fixed compilation
+ errors
+
+Mon Oct 15 12:45:03 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/parser.h: Norm reported that a few lines
+ added were breaking libxslt compile, removed them for now
+
+Sun Oct 14 05:55:01 EDT 2001 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c parserInternals.c threads.c: debugged and fixed
+ initialization problems which were giving troubles on SMP
+ boxes.
+
+Sat Oct 13 16:17:13 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/Makefile.am: missing globals.h
+
+Sat Oct 13 14:15:00 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * globals.c: added a couple of standard includes.
+
+Sat Oct 13 11:08:20 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/SAX.h include/libxml/globals.h include/libxml/parser.h
+ include/libxml/parserInternals.h include/libxml/tree.h
+ include/libxml/xmlerror.h HTMLparser.c SAX.c error.c globals.c
+ nanoftp.c nanohttp.c parser.c parserInternals.c testDocbook.c
+ testHTML.c testSAX.c tree.c uri.c xlink.c xmlmemory.c:
+ Applied the last patches from Gary, cleanup, activated threading
+ all user accessible global variables are now handled in globals.[ch]
+ Still a bit rought but make tests passes with either
+ --with-threads defined at configure time or not.
+ * Makefile.am example/Makefile.am: added globals.[ch] and threads
+ linking options
+
+Fri Oct 12 19:25:55 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am include/libxml/Makefile.am
+ include/libxml/globals.h globals.c include/libxml/threads.h
+ threads.c build_glob.py global.data xmlcatalog.c acconfig.h
+ configure.in: started integrating the core of the thread support
+ not activated yet but half integrated. The code should still
+ compile and work anyway.
+
+Fri Oct 12 00:53:03 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c catalog.c debugXML.c entities.c nanoftp.c
+ parser.c valid.c xmlmemory.c xpath.c xpointer.c: started
+ integrating the non-controversial parts of Gary Pennington
+ multithread patches
+ * catalog.c: corrected a small bug introduced
+
+Thu Oct 11 20:58:15 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c include/libxml/catalog.h: very serious cleanup,
+ isolating unportable code and as much as possible the accesses
+ to the global shared catalog. May need more testing !
+
+Thu Oct 11 11:10:31 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/debugXML.h debugXML.c tree.c: integrating
+ Keith Isdale patches for the XSLT debugger interfaces. Some
+ cleanup
+
+Thu Oct 11 08:44:01 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * win32/Makefile.mingw: update from Tobias Peters for 2.4.5
+ * DOCBparser.c: generate line nubers in elements
+
+Wed Oct 10 11:35:45 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing 2.4.6 release
+ * doc/xml.html doc/html/*: updated and rebuilt the docs
+ * include/libxml/*.h *.c: fixed a number of teh/the widht/width typos
+
+Mon Oct 8 20:38:27 MDT 2001 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmlcatalog_man.xml, xmlcatalog.1, xmlcatalog_man.html
+ adding documentation for DV's supercatalog support
+
+Mon Oct 8 17:00:16 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/catalog.h catalog.c xmlcatalog.c: adding SGML
+ super catalog support adding one API and one flag --sgml to
+ xmlcatalog
+
+Sun Oct 7 16:43:57 MDT 2001 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmlcatalog_man.xml, xmlcatalog.1
+ One more crack at
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=54392
+
+Sun Oct 7 18:47:02 CEST 2001 Thomas Broyer <tbroyer@ltgt.net>
+
+ * xpath.c: implemented xmlXPathObjectCopy for external objects
+ * include/libxml/xpathInternals.h: added xmlXPathStackIsExternal
+
+Sat Oct 6 16:25:52 MDT 2001 John Fleck <jfleck@inkstain.net>
+
+ *doc/xmlcatalog_man.xml, xmlcatalog_man.html, xmlcatalog.1
+ finishing up fix to
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=54392, making
+ the xmlcatalog man page display more elegantly
+
+Sat Oct 6 15:27:12 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: closing bug #61832
+ * HTMLparser.c: removed a warning
+
+Sat Oct 6 15:07:14 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixing #61673 part I, do not lose doc information
+ when copying result value trees.
+
+Sat Oct 6 11:58:58 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: trying to harden the XPath interpreter
+
+Fri Oct 5 20:37:51 MDT 2001 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmlcatalog.1 updated using a new stylesheet to address, in
+ part, https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=54392
+
+Fri Oct 5 23:35:00 HKT 2001 William Brack <wbrack@mmm.com.hk>
+
+ * HTMLparser: repaired another loop problem
+
+Fri Oct 5 11:16:21 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: applied fix from Mathias Hasselmann about a bug in URI
+ parsing.
+ * xpath.c: fix bug #61291 the default XML namespace node is
+ missing from the namespace axis.
+ * tree.c: refuse to create namespaces nodes with prefix "xml"
+
+Thu Oct 4 16:47:44 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: ouch a non-defined namespace could lead to a crash,
+ fixed #61215
+
+Thu Oct 4 16:24:26 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: closed bug #61054
+
+Wed Oct 3 15:19:04 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/Makefile.am: closing #60708
+
+Tue Oct 2 15:52:05 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * win32/dsp/libxml2.def.src include/libxml/parser.h parser.c:
+ adding xmlSAXParseFileWithData following Marco Stipek suggestion
+
+Tue Oct 2 11:27:58 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: close bug #61550 when xml: wasn't considered a namespace
+
+Tue Oct 2 11:18:32 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * win32/dsp/libxml2.def.src: Igor Zlatkovic patches
+ * DOCBparser.c HTMLparser.c parser.c: fixed typos
+
+Mon Oct 1 09:34:51 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: Justin Fletcher provided cleaup code in case
+ HAVE_STAT is not defined
+ * include/win32config.h: Igor Zlatkovic suggested to have
+ HAVE_STAT defined there
+
+Sat Sep 29 00:15:00 HKT 2001 William Brack <wbrack@mmm.com.hk>
+
+ * catalog.c - fixed typing error reported by M. Barros
+
+Sun Sep 23 21:02:39 MDT 2001 John Fleck <jfleck@inkstain.net>
+
+ * xmllint.c - fixing typo
+
+Sat Sep 22 10:00:00 HKT 2001 William Brack <wbrack@mmm.com.hk>
+
+ * HTMLparser.c: small enhancement to prevent loop on
+ unrecognizable data
+
+Fri Sep 21 11:45:53 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * parserInternals.c: applying patch from bug #60757 this
+ should close it
+
+Thu Sep 20 15:54:29 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c xmlcatalog.c: removed a couple of warning
+ * xpath.c: try to solve the linking problem on platforms
+ needing trio to compile
+
+Wed Sep 19 10:01:37 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am libxml.spec.in: backing up non-documented changes
+ commited without review or aproval by Jens Finke <jens@gnome.org>
+ * HACKING: made 100% clear that no commit should be done directly
+
+Mon Sep 17 18:52:37 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: Joe Orton provided a patch fixing a problem
+ when iconv is specified to be in a non-standard directory
+ but wasn't exported in xml2-config --cflags
+
+Fri Sep 14 19:32:43 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: let's ship 2.4.5 before getting too much
+ troubles with 2.4.4 errors.
+
+Fri Sep 14 12:26:58 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c entities.c: do not output hexadecimal charrefs
+ when serializing HTML since some version of Netscape can't
+ grok it, generate decimal ones.
+ * result/HTML/doc3.htm: output changed due to previous test
+ * parserInternals.c: repair xmlKeepBlanksDefault() broken in 2.4.4
+
+Thu Sep 13 13:34:27 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * libxml-2.0.pc.in: dohh generated the wrong include path :-(
+ * doc/Makefile.am libxml.spec.in: re-dohh forgot the new manpage :-(
+
+Wed Sep 12 22:14:55 CEST 2001 Daniel Veillard <daniel@veillard.com>
+ Released 2.4.4
+
+ * config.h.in configure.in libxml.spec.in include/libxml/Makefile.am
+ libxml-2.0.pc.in: moved includes to includedir/libxml2/libxml,
+ updated the configuration scripts systems accordingly
+
+Wed Sep 12 20:49:32 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing for 2.4.4
+ * doc/xml.html doc/html/*: updated and rebuilt the docs
+
+Wed Sep 12 16:58:16 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * win32/dsp/libxml2.def.src: tried to incorporate comments
+ from bug #59220
+
+Tue Sep 11 11:25:36 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c result/noent/wml.xml: fixed bug #59981 related
+ to handling of '&' in attributes when entities are substituted
+
+Mon Sep 10 22:14:42 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.h include/libxml/xmlversion.h.in
+ include/libxml/xmlwin32version.h include/libxml/xmlwin32version.h.in:
+ Tried to close bug #60131
+
+Mon Sep 10 20:46:03 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: fixed a bug in the HTML parser introduced Sep 9
+
+Mon Sep 10 20:13:09 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: fixing bug #59946 on xmlns=""
+
+Mon Sep 10 16:39:42 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xmlerror.h SAX.c: fixing bug 59732, simple
+ but allocates a new error code.
+
+Sun Sep 9 10:33:15 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: John Fleck fixed typos in the options output
+ * parser.c SAX.c: fix ignorable white space SAX selection
+
+Sat Sep 8 11:43:53 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * entities.c: Steve Underwood found the possibility of an
+ ininite loop in case of error.
+
+Fri Sep 7 11:35:00 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: Need $(ICONV_LIBS) in libxml2_la_LIBADD
+
+Wed Sep 5 17:47:43 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: warn if version is not 1.0 but it's not
+ strictly speaking an error after analyzing the spec
+
+Mon Sep 3 10:07:03 MDT 2001 John Fleck <jfleck@inkstain.net>
+
+ *doc/catalog.html - add link to the html version of the
+ man page, other linguistic cleanups
+
+Mon Sep 3 09:10:08 MDT 2001 John Fleck <jfleck@inkstain.net>
+
+ * doc/xmlcatalog_man.xml, xmlcatalog_man.html, xmlcatalog.1
+ adding documentation for xmlcatalog. Note: xmlcatalog.1, the man
+ file, has not yet been included in the build.
+
+Sat Sep 1 18:17:47 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: removed a duplicate affectation Justin Fletcher
+
+Fri Aug 31 22:02:10 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: Armin Sander pointed a possible text coalescing
+ problem, completed his patch.
+
+Fri Aug 31 18:30:28 CEST 2001 Bjorn Reese <breese@users.sourceforge.net>
+
+ * trionan.c: Fixed const and volatile re-definition problem
+
+Fri Aug 31 16:51:28 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.4 parser.c: doc updates from Heiko Rupp
+ * parserInternals.c: 2 sanity checks from Heiko Rupp
+
+Tue Aug 28 22:38:45 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied patch from Armin Sander to make some pointers
+ const in xmlCopyNode()
+ * include/libxml/tree.h: added fix to the header
+
+Mon Aug 27 16:24:47 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: hum, restrict the integer usage gcc bug workaround
+ to only gcc compilers so that other architecture don't get
+ penalized by this limitation.
+ * include/libxml/xpath.h: small typo fix from Heiko W. Rupp
+
+Sun Aug 26 20:45:04 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * valid.c: fixed a Windows compiler warning (Chris Poblete)
+ * xpath.c: fix for mod when dividend is 0 (Chris Poblete)
+
+Sat Aug 25 15:30:17 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/catalog.h catalog.c xmlcatalog.c: added a
+ --convert option to xmlcatalog to convert SGML ones to
+ the XML syntax.
+ * xmllint.c: small cleanup for $SGML_CATALOG_FILES support.
+
+ 2.4.3 got released at that point
+Thu Aug 23 23:16:32 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c xmlIO.c: started some serious testing and fixed
+ a few bug and optmization needs.
+
+Thu Aug 23 17:26:58 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am configure.in include/libxml/xmlwin32version.h:
+ preparing for a 2.4.3 release even if it may not be ready yet
+ * catalog.c parser.c xmlIO.c include/libxml/catalog.h: redirected
+ all file parsing lookup to go through the entity resolver, add
+ to add an API to bypass it (needed to load catalogs themselves),
+ some cleanup on the catalog code too.
+ * nanoftp.c: small cleanup
+ * doc/catalog.html: small update
+
+Thu Aug 23 12:22:26 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: fixed bugi #59406 in SGML catalog parsing reported by
+ Jun Kuriyama
+
+Thu Aug 23 02:51:29 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * doc/catalog.html: finished the catalog documentation
+
+Thu Aug 23 01:38:42 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * doc/catalog.html doc/xml.html: added documentation about
+ Catalog support, misses an API description
+ * doc/html/*: reextracted the API pages
+
+Wed Aug 22 18:27:47 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/catalog.h catalog.c xmlIO.c HTMLparser.c:
+ Added the part about section 7.2 on URI resolution,
+ fixed a side effect in the HTML parser, look complete
+ and ready to rock except the URI/SystemID part!
+
+Wed Aug 22 16:27:03 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/catalog.h include/libxml/parser.h
+ include/libxml/xmlerror.h catalog.c parser.c parserInternals.c
+ xmlIO.c: added support and APIs needed for the catalog PI
+ * include/libxml/xmlIO.h: cleanup
+
+Wed Aug 22 02:03:31 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c parser.c xmlIO.c xmlcatalog.c xmllint.c
+ include/libxml/catalog.h: starts to look okay, really
+ plugged the new framework, cleaned a lot of stuff,
+ added some APIs, except the PI's support missing this
+ should be mostly complete
+ * result/catalogs/* test/catalogs/*: added new test, enriched
+ the existing one with URN ID tests
+
+Tue Aug 21 14:56:18 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c: fixed nextCatalog
+ * result/catalogs/docbook test/catalogs/*: started adding
+ a small regression test
+
+Tue Aug 21 12:52:38 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am catalog.c xmlcatalog.c include/libxml/catalog.h:
+ more work on the XML catalog support.
+ * parser.c include/libxml/parser.h: small cleanup seems using
+ list as a public parameter name can give portability troubles
+ * trionan.c trionan.h xpath.c include/libxml/trionan.h
+ include/libxml/xpath.h include/libxml/Makefile.am: removed
+ trionan from the libxml API, added xmlXPathIsInf and xmlXPathIsNaN
+ wrappers
+
+Tue Aug 21 11:18:45 CEST 2001 Bjorn Reese <breese@users.sourceforge.net>
+
+ * Makefile.am trio.c triodef.h trionan.c xpath.c
+ include/libxml/Makefile.am include/libxml/trionan.h:
+ Re-worked Not-A-Number and Infinity support.
+ * xmlcatalog.c: added readline include files
+
+Mon Aug 20 02:04:13 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am xmlcatalog.c libxml.spec.in: renaming
+ testCatalog as xmlcatalog, making it an installed app
+ adding a shell, and preparing it to be a /etc/xml/catalog
+ management tool, though not ready yet
+ * catalog.c include/libxml/catalog.h: adding support for
+ XML Catalogs http://www.oasis-open.org/committees/entity/
+ not finished, there is some interesting tradeoffs and a
+ few open questions left.
+
+Sun Aug 19 14:59:56 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: fixed a line formatting problem
+
+Fri Aug 17 11:35:31 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: removed a couple of unused variable (Albert Chin)
+
+Fri Aug 17 01:25:21 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c HTMLtree.c include/libxml/HTMLparser.h:
+ trying to fix some troubles w.r.t. function returning
+ const xxxPtr.
+
+Thu Aug 16 21:33:20 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * win32/dsp/libxml2.def.src: another set of symbols conditionally
+ defined
+
+Thu Aug 16 21:31:14 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xpointer.c: removed unused var
+
+Thu Aug 16 18:26:40 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * testXPath.c: another small cleanup closing bug #59110
+
+Thu Aug 16 17:59:18 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * win32/dsp/libxml2.def.src: small cleanup closing bug
+ #59108
+
+Wed Aug 15 22:46:01 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * example/gjobread.c: add xmlCleanupParser() before leaving
+
+Wed Aug 15 14:57:08 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * config.h.in configure.in include/libxml/xmlwin32version.h:
+ released 2.4.2
+
+Wed Aug 15 13:56:22 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/valid.h debugXML.c valid.c: deprecate
+ the non-boundchecking Sprintf functions, add Snprintf
+ this should close bug #57984
+
+Wed Aug 15 10:46:07 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: xmlOutputBufferCreateFilename() didn't unescaped
+ URIs before doing the lookups (pointed by Mark Vakoc)
+
+Tue Aug 14 18:37:23 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: serious changes on Result Value Trees and NodeSets
+ w.r.t. deallocation and collect operations. Probably not
+ 100% clean (merge of allocated trees smells like a problem).
+ Seems sufficient to close #58943
+
+Tue Aug 14 16:12:00 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c: adding a --format option
+
+Tue Aug 14 14:16:24 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: count() was broken on Result Value Tree
+ * xmlIO.c: fixed file:/// accesses on _WIN32
+
+Mon Aug 13 13:22:53 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.m4: s/LIBXML_VERSION_NUMBER/LIBXML_VERSION/ seems the
+ macro was renamed, this should close bug #58683
+
+Mon Aug 13 12:33:40 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: small fix fixing bug #58539 reported by coolo, in
+ entity substitution mode text at the end of the entity might
+ be added due to text coalescing.
+ * nanoftp.c parser.c: small cleanup
+
+Wed Aug 8 22:57:05 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * HACKING: added John Fleck right to commit in the doc subdir
+
+Tue Aug 7 03:05:58 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c testXPath.c valid.c xmllint.c include/libxml/valid.h:
+ allow to inherit attributes from the DTD directly in the
+ tree, this is needed for XPath and can be a useful feature.
+ Inherited namespaces are always provided at the tree level now
+ * test/defattr* result/defattr* result/noent/defattr*: added a couple
+ of tests for this feature (XSLT being the prime user).
+
+Fri Aug 3 14:02:20 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * DOCBparser.c Makefile.am nanohttp.c parser.c testHTML.c
+ testSAX.c xmlIO.c xmllint.c include/win32config.h
+ include/libxml/xmlversion.h.in include/libxml/xmlwin32version.h
+ include/libxml/xmlwin32version.h.in win32/README.MSDev
+ win32/dsp/*: applied Win32 Facelift No.2 patches from
+ Igor Zlatkovic for Windows/MSC
+
+Wed Aug 1 23:21:06 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: unparsedEntityDecl() the URI computation of the
+ entity wasn't done breaking XSLT unparsed-entity-uri()
+
+Wed Aug 1 17:44:57 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed a bug when walking the descendants and
+ the current node has no children
+ * debugXML.c: show up when a text node is supposed to not be escaped
+
+Wed Aug 1 01:33:35 CEST 2001 Thomas Broyer <tbroyer@ltgt.net>
+
+ * xpath.c: fixed a bug in xmlXPathNodeTrailingSorted (for now it
+ worked like the set:leading() function)
+ * include/libxml/xpathInternals.h: added xmlXPathNodeSetContains
+
+Tue Jul 31 18:24:34 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * nanohttp.c: protected an use of EAGAIN, Brian Stafford
+
+Tue Jul 31 17:48:44 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/libxml/xmlIO.h: apply change to close #58141
+ * win32/libxml2/*: update of the MSC projects from Igor Zlatkovic
+
+Tue Jul 31 17:09:31 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: when the internal subset uses a PE, then the
+ included entity can use conditional sections.
+
+Mon Jul 30 12:58:39 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c include/libxml/xpath.h: fixed a serious memory problen
+ when walking the namespace axis showing up in
+ libxst/tests/general/bug-12
+ * xmlmemory.c: added the possibility to trace a given block
+ defined by its address
+
+Sun Jul 29 07:18:53 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: don't override existing encoding specified before
+ starting xmlParseDocument()
+
+Sat Jul 28 13:33:10 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/libxml/xmlwin32version.h: reinserted, needed for
+ Windows users of CVS
+
+2001-07-27 Darin Adler <darin@bentspoon.com>
+
+ * encoding.c: (xmlIconvWrapper): Add cast to fix warning.
+ * testCatalog.c: Add include of <libxml/parser.h>.
+
+2001-07-27 Darin Adler <darin@bentspoon.com>
+
+ * include/libxml/.cvsignore:
+ * include/libxml/xmlwin32version.h:
+ Remove this file from CVS because it's generated.
+
+Fri Jul 27 10:03:56 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c include/libxml/parser.h: applied const patches from
+ Tom Moog #58002
+
+Thu Jul 26 18:55:52 CEST 2001 Thomas Broyer <tbroyer@ltgt.net>
+
+ * xpath.c include/libxml/xpath{,Internals}.h: added a function
+ lookup framework
+
+Fri Jul 27 01:50:20 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: fixed xmlCopyNode() for documents
+
+Thu Jul 26 12:40:35 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: fixed bugs #58073 reported by Greg Shtilman
+
+Thu Jul 26 11:38:37 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: fixes bug #57652 reported by Morus Walter
+
+Thu Jul 26 10:24:34 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * nanohttp.c: John Kroll provided a small fix to xmlNanoHTTPSave
+
+Thu Jul 26 07:16:04 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c parserInternals.c: fixed the xmlLineNumbersDefault()
+ errors, lesson don't add new functions at 1am before a release
+ * xpath.c: integrated fix from Bjorn to avoid divide by zero
+ from XPath initialization when possible.
+
+Tue Jul 24 15:39:11 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * result/scripts/base*: removing history/readline changed
+ this slightly
+ * include/libxml/parser.h SAX.c parser.c parserInternals.c
+ xmllint.c: make element content line number generation
+ optionnal to avoid breaking old apps added interface to switch
+
+Tue Jul 24 15:06:58 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: get rid of the readline and libhistory
+ dependencies by default, release 2.4.1 with IA64 fix
+ * nanohttp.c tree.c xmlIO.c include/libxml/nanohttp.h
+ include/libxml/tree.h include/libxml/xmlIO.h: incorporated
+ John Kroll fixes to allow saving to HTTP via PUT (or
+ POST of needed).
+ * doc/html/*.html: regenerated the docs
+
+Sun Jul 22 05:56:16 CEST 2001 Thomas Broyer <tbroyer@ltgt.net>
+
+ * hash.c include/libxml/hash.h: added xmlHashScannerFull,
+ xmlHashScanFull and xmlHashScannFull3 to get passed the
+ three keys as arguments to the callback function
+
+Thu Jul 19 15:29:26 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in Makefile.am: removed libxml softlink for good
+ * include/libxml/*.h *.c doc/Makefile.am: cleanup to get
+ 100% coverage by gtk-doc
+
+Tue Jul 17 17:36:46 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlmemory.c include/libxml/xmlmemory.h: debugging on IA64,
+ fixed serious troubles due to size_t vs. int mismatch
+
+Tue Jul 17 16:04:36 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * SAX.c xmlIO.c: cleaned up some warning on the Alpha
+
+Mon Jul 16 06:32:44 CEST 2001 Thomas Broyer <tbroyer@ltgt.net>
+
+ * include/libxml/xpath{,Internals}.h xpath.c: added a more
+ convenient extension API for value and context managing
+ Now handles external objects through xmlXPathPopExternal,
+ xmlXPathWrapExternal and xmlXPathReturnExternal.
+ Added functions for sets operations (intersection, etc.)
+
+Mon Jul 16 20:05:27 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/libxml/parserInternals.h include/libxml/HTMLparser.h
+ xmlIO.c tree.c parserInternals.c entities.c encoding.c
+ HTMLparser.c: cleanup of global variables, marking some
+ const or private.
+
+Mon Jul 16 00:17:15 CEST 2001 Thomas Broyer <tbroyer@ltgt.net>
+
+ * include/libxml/xpath.h: exported xmlXPath{NAN,PINF,NINF}
+ fixed xmlXPathNodeSetItem when passing index=0
+
+Sun Jul 15 17:58:44 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/libxml/xmlwin32version.h.in: added xmlCheckVersion()
+
+Sat Jul 14 19:31:21 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmllint.c: fixed compilation under Cygwin #57503
+ * TODO: update
+
+2001-07-13 Peter Williams <peterw@ximian.com>
+
+ * config.h.in: add #undef HAVE_DLFCN_H
+
+ * example/Makefile.am (INCLUDES): Compile fix when srcdir !=
+ builddir.
+
+Fri Jul 13 11:09:56 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * win32/libxml2/libxml2.def.src: added a couple of exported entries
+ raised by #57348 and #57381
+
+Thu Jul 12 21:20:17 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * DOCBparser.c HTMLparser.c HTMLtree.c SAX.c debugXML.c parser.c
+ tree.c xpointer.c: store the line numbder in element->content,
+ may break some software, need a configuration mechanism
+
+2001-07-10 Darin Adler <darin@bentspoon.com>
+
+ * .cvsignore:
+ * example/.cvsignore:
+ * include/.cvsignore:
+ * include/libxml/.cvsignore:
+ Various things that are generated and should be ignored.
+
+Tue Jul 10 17:47:09 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in include/libxml/xmlwin32version.h: release of 2.4.0
+ * doc/xml.html doc/html/*: updated the docs
+
+Mon Jul 9 22:06:53 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: fixed "Internal: MIXED struct bad" when #CDATA elements
+ validation occurred on content with element child
+
+Mon Jul 9 17:59:08 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: fixed XML Base computation which was broken
+ * debugXML.c: added a base function to the shell
+ * Makefile.am result/scripts/* test/scripts/*: added scripts
+ based regression tests, and adding 2 XML Base tests
+
+Mon Jul 9 12:31:05 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: set properties doc and call xmlSetListDoc for properties
+ content when grafting them in a different tree.
+ * aclocal.m4: remove from CVS
+
+Sun Jul 8 23:09:07 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * win32/libxml2/libxml2.def.src: added some missing entry point
+ for XPath (Mark Vakoc)
+
+Sun Jul 8 20:34:35 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlIO.c: fixed an old bug raised by Bernhard Zwisch, the I/O
+ layer should URI-Unescape before trying to open resources.
+
+Sun Jul 8 16:26:00 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fix the name() bug for elements in the default
+ namespace reported by Charlie Bozeman
+
+Sun Jul 8 15:11:05 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * SAX.c parser.c testXPath.c xpath.c: trying to fix #56948, this
+ led to an XPath fix, improvements of SAX initialization, and
+ an added option --nocdata to testXPath
+
+Sat Jul 7 21:09:55 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/libxml-doc.el: Felix Natter provided anew version working
+ with XEmacs too
+
+Sat Jul 7 02:16:00 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/libxml/xpath.h: small cleanup
+ * doc/xml.html: update
+
+Fri Jul 6 01:40:23 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am configure.in include/libxml/xmlwin32version.h:
+ released 2.3.14
+
+Fri Jul 6 00:47:41 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/html/*: rebuilt the docs for the release
+ * doc/xml.html: added 2.3.14 release.
+
+Thu Jul 5 22:01:31 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: a bug reported by Stephan Kulow empty nodesets
+ were not equal to empty strings
+
+Thu Jul 5 00:52:25 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * SAX.c: fixed a URI-Reference computation problem when validating
+ * xmlIO.c: small cleanup
+
+Thu Jul 5 00:04:58 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: improved the description of a couple of interfaces
+ upon Larry Stamper suggestion
+
+Wed Jul 4 21:42:24 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * SAX.c entities.c parser.c: changed completely the way entities
+ are handled when running the parser in entity substitution mode.
+ This fixes a bug reported by Stephan Kulow and nearly divides
+ by 3 the amount of memory required by libxslt to load and process
+ DocBook TDG.
+
+Wed Jul 4 18:02:58 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c: fixing a too early root closing problem raised
+ byt Prashanth Naidu
+
+Wed Jul 4 01:42:01 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed a missing copy in xmlXPathVariableLookupNS()
+ raised by Mark Vakoc.
+
+Tue Jul 3 18:35:48 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * example/Makefile.am: fixed the include path to add srcdir/include
+ * Makefile.am configure.in: fix from Albert Chin for iconv detection
+ and some cleanup
+
+Tue Jul 3 10:12:03 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c include/libxml/xpath.h include/libxml/xpathInternals.h:
+ lot of optimization work, results in significant improvements
+ when handling really complex XPath queries. Add a small optimizer
+ for unions, improve [n] and [last()], avoid some costly ops.
+
+Fri Jun 29 23:26:54 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/libxml/parser.h parser.c: xmlStrstr args are both const
+ * xpath.c: small cleanup
+ * xmlGetNsList: reformated, fixed problems if used on Entities
+
+Thu Jun 28 18:19:44 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/xml.html: added 1.8.14 and 2.3.13 releases
+
+Thu Jun 28 18:16:28 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in include/libxml/xmlwin32version.h: released 2.3.13
+ * Makefile.am example/Makefile.am: workaround automake generating
+ erroneous deps
+
+Thu Jun 28 15:08:22 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/win32config.h: bug #56801 Yon Derek provided a patch
+ to the windows config file.
+
+Thu Jun 28 14:51:44 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpointer.c include/win32config.h win32/libxml2/libxml2.def.src
+ libxml.h : Yon Derek provided a set of changes to compile from
+ CVS on Windows/MSC
+
+Thu Jun 28 14:11:28 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: fixed UTF8 BOM support in push mode
+ * test/utf8bom.xml result/utf8bom.xml result/noent/utf8bom.xml:
+ added a specific testcase
+
+Wed Jun 27 18:33:13 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am: added --push regression tests
+ * parserInternals.c: the XML parser segfaulted in --push mode
+
+Wed Jun 27 13:09:51 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: moved the symlinks detection within a CVS
+ check, this is not portable and will be removed soon.
+ * xpath.c: small cleanup/speedup
+
+Tue Jun 26 18:05:26 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in doc/xml.html include/libxml/xmlwin32version.h:
+ release of 2.3.12
+ * parser.c: make an error message if unknown entities in all cases
+
+Tue Jun 26 09:46:29 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * uri.c: fixed 2 uri normalization bugs on '//' reduction
+
+Mon Jun 25 18:06:23 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/libxml/Makefile.am: Laszlo Peter pointed out that
+ includes were installed in the wrong dir
+
+Mon Jun 25 17:07:37 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/html.xml: warn against sending code to exhibit bugs.
+
+Sun Jun 24 23:31:56 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: patch to xmlXPathFormatNumber for the optimizer on
+ Tru64 from Thomas Leitner
+
+Sun Jun 24 14:05:54 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * AUTHORS: added William and Bjorn
+ * include/libxml/*.h *.c README doc/*.html etc.: changed old email to
+ daniel@veillard.com hopefully I won't have to do this again
+ * doc/Makefile.am doc/html/*.html: cleanup makefile, checked that
+ docs can be rebuilt cleanly now
+ * include/libxml/xml*version.h*: removed include/libxml/xmlversion.h
+ from CVs it's generated, added include/libxml/xmlwin32version.h
+ also generated but which should change far less frequently.
+ * catalog.c nanoftp.c: made sure to include libxml.h not
+ libxml/xmlversion.h directly
+ * include/libxml/*.h: include xmlwin32version.h instead of xmlversion.h
+ when compiling on WIN32 and MSC
+
+Sat Jun 23 23:54:12 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/Makefile.am include/libxml/Makefile.am configure.in:
+ fixed make distcheck and rebuilding the rpms
+
+Sat Jun 23 20:50:53 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: should finish the migration of exported includes
+ into a real include/libxml in CVS, at least for CVS users.
+ * removed the exported headers, added in include/libxml (as well
+ as xmlversion.h.in).
+
+Sat Jun 23 20:37:19 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: fixed the way to detect symlink
+
+Sat Jun 23 20:30:11 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: updated, include/libxml is now a real CVS dir
+
+Sat Jun 23 19:36:31 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/libxml-doc.el: a new version of libxml-doc.el. This new
+ version works with both libxml1 and libxml2 (it autodetects
+ the prefix of the html-files) from Felix Natter.
+ * doc/xml.html: updated doc accordingly
+
+Sat Jun 23 18:30:28 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed the bug generating a template loop in libxslt
+ when using docbook-xsl-1.4, * should filter out document nodes
+ * HACKING: added William
+ * TODO: updated
+
+Fri Jun 22 18:02:37 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/FAQ.html: added a warning about gcc-3.0
+ * doc/xml.html: added reference to gdome2 and removed a confusing
+ sentence
+
+Fri Jun 22 17:02:16 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlversion.h: okay this is a generated file, but Windows
+ users need it and they can't generate it, and I want CVS
+ Windows users ...
+ * win32/libxml2/libxml2_so.dsp: Windows project file for
+ the shared lib version of libxml2
+ * win32/libxml2/libxml2.def.src: bug #56527 set of exported
+ resources needed for libxslt/xsltproc by Yon Derek
+
+Fri Jun 22 16:39:36 CEST 2001 Bjorn Reese <breese@users.sourceforge.net>
+
+ * trio.c: MSVC fix (provided by Igor Zlatkovic)
+
+Fri Jun 22 12:42:16 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/win32config.h: another small fix for ATTRIBUTE_UNUSED
+
+Fri Jun 22 12:42:16 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * include/win32config.h: Yon Derek provided a first fix
+ to be able to compile libxslt/xsltproc on Windows
+
+Fri Jun 22 00:04:36 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: attempt to work around what seemed a gcc optimizer
+ bug when handling floats on i386 http://veillard.com/gcc.bug
+ * tree.c entities.c encoding.c: doing some cleanups while
+ chasing it
+
+Thu Jun 21 13:13:36 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am: cleanup when --without-debug is specified
+ * xinclude.c xpath.c xpathInternals.h xpointer.c: cleanup
+ w.r.t. --without-debug and other include points
+ * catalog.h testCatalog.c: a bit of cleanup and prepare for XML
+ Catalogs
+ * configure.in entities.h tree.h HTMLparser.c: removed
+ --without-corba, made the _private field mandatory
+
+Wed Jun 20 19:37:25 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c parserInternals.c encoding.c: Since Notepad on Win2k
+ outputs a BOM in UTF8, an errata has been issued to avoid the
+ problem, that was the most reasonable solution... Add support
+ for a leading UTF8 BOM in entities.
+
+Wed Jun 20 15:38:59 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: fixed a bug found when post validating an entity ref
+ * xmllint.c: added --loaddtd and sligly changed --postvalid to
+ activate it too
+
+Tue Jun 19 20:03:40 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c xinclude.c xpointer.c: bug #56402 exposed a number of
+ weakness in the node copy the XPointer and the XInclude
+ implementations. Serious cleanup.
+
+Tue Jun 19 14:50:18 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am: Kjartan Maraas provided a small patch to
+ add xml2-config.in to EXTRA_DIST
+
+Tue Jun 19 13:04:10 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c tree.c parserInternals.c parser.c: Stephan Kulow
+ provided another failing case found in KDE, the way the
+ ctxt->vctxt.nodeTab was allocated and freed changed over
+ time but it wasn't completely cleaned up. This should fix it.
+
+Sun Jun 17 19:56:33 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: Stephan Kulow also raised the fact that line number
+ could get miscounted making debug harder, fixed the problem
+ in xmlParseCharData()
+
+Sun Jun 17 19:17:26 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: Stephan Kulow pointed out a problem when validating
+ and using an empty entity, forgot a 'break' in a case.
+
+Sun Jun 17 16:47:40 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: fixed xmlHasNsProp() accordingly to bug #55683
+ * doc/xml.html: updated with 2.3.11
+
+Sun Jun 17 12:24:11 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * TODO: updated adding cleanup of generated doc
+ * configure.in: prepared to release 2.3.11
+ * xmllint.c: added --version for bug reporting
+ * doc/html/*.html: rebuilt the doc
+
+Sat Jun 16 23:23:33 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: first part of the work on selecting namespace to
+ fix bug #56115
+
+Sat Jun 16 00:20:46 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am example/Makefile.am: Laszlo PETER provided a fix
+ when using -liconv
+ * TODO: updated
+
+Fri Jun 15 07:08:57 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.[ch]: more work on the HTML serialization routnes,
+ cleanup, encoding support.
+
+Thu Jun 14 10:31:17 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: Thomas Broyer suggested a better patch for the / arg
+
+Thu Jun 14 01:01:30 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: bug detected by Ankh when / is used as a function arg
+
+Wed Jun 13 23:08:46 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.[ch] HTMLtree.c: stored the inline/block property
+ of element and use it to avoid outputting formatting spaces at
+ the wrong place. Implemented the format parameter for HTML save.
+ * result/HTML/doc2.htm result/HTML/doc3.htm result/HTML/fp40.htm
+ result/HTML/script.html result/HTML/test2.html result/HTML/test3.html
+ result/HTML/wired.html: of course this impact the result of a
+ number of HTML tests
+
+Thu Jun 14 09:49:09 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.[ch]: started augmenting the HTML save API with
+ encoding and formatting parameters
+
+Wed Jun 13 09:44:15 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.h: cleanup and started evaluating the work needed on
+ revamping the HTML output code
+
+Mon Jun 11 19:29:40 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * DOCBparser.c: handling of PIs and <?sgml-declaration in entities.
+
+Tue Jun 12 08:46:28 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: fixed bug #56049, forgot one check in the
+ validation routine
+
+Tue Jun 12 08:09:46 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.[ch]: grrr ... namespace is a C++ reserved keyword
+
+Tue Jun 12 06:29:39 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * libxml.h: fixed an error in last commit
+ * doc/FAQ.html: added an entry for compilation from CVS
+
+Mon Jun 11 10:07:29 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlversion.h.in libxml.h: Cygwin patches
+ * tree.c: xmlFreeNodeList patch similar to xmlFreeNode one
+ * tree.h: cleanup
+
+Sat Jun 9 19:16:00 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: patched xmlFreeNode() to avoid freeing() a static
+ memory block in a strange case where libxml is linked twice
+ in the binary.
+
+Sat Jun 9 18:39:03 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: (a? , b? , c? , ... , z?) was storing/restauring
+ state far too often, simple fix used to avoid it.
+
+Sat Jun 9 16:10:36 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xinclude.c: Raphael Hertzog had a trouble with DTD nodes
+ being processed, applied his patch
+ * tree.c: fixed a bug raised in xmlStaticCopyNodeList()
+
+Sat Jun 9 15:50:11 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * nanoftp.c nanohttp.c uri.c include/win32config.h: Igor Zlatkovic
+ provided fixes to compile on MSCC again
+ * win32/libxml2/libxml2.def.src win32/libxml2/libxml2*.dsp: he
+ also provided an update for the project files.
+
+Thu Jun 7 21:52:10 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: applied Steve Tinney patch to xmlNewNsProp to fix
+ bug #55810
+
+Thu Jun 7 21:29:39 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: fixed xmlGetNsProp() to close bug #55683
+ Note this requires libxslt to use it's own function instead.
+
+Thu Jun 7 18:06:34 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.c: when in a pre element no formatting space should
+ be added.
+ * test/HTML/pre.html result/HTML/pre.html*: added a regression test
+
+Thu Jun 7 17:29:38 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: added tests for signal() and signal.h
+
+Fri Jun 8 10:17:15 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: robert pointed out xmlXPathNINF was not initialized
+
+Fri Jun 8 10:01:45 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/libxml-doc.el: Felix Natter provided a new version for
+ libxml2
+
+Fri Jun 8 07:20:46 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.c: when in a pre element no formatting space should
+ be added.
+
+Wed Jun 6 18:07:36 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: add -mieee to CFLAGS when compiling on Linux/alpha
+
+Thu Jun 7 06:44:01 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * DOCBparser.c: implemented the <?sgml-declaration encoding="xxx"?>
+ hack
+ * tree.[ch]: added xmlHasNsProp as suggested in bug report #55653
+ * uri.c: fixed a warning
+
+Tue Jun 5 22:54:21 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.c: trying to close bug #55772 escaping in script
+ elements
+ * doc/xml.html: suggest to send mail to the list
+
+Tue Jun 5 19:11:02 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * error.c: attempt to fix the xmlGetVarStr breakage once and for
+ good. Use a macro and based on the solution provided in
+ vsnprintf manual page from GNU.
+
+Tue Jun 5 14:46:10 CEST 2001 Bjorn Reese <breese@users.sourceforge.net>
+
+ * error.c: Workaround for non-preserving variadic list.
+ * trio.c trio.h triop.h strio.c strio.h: Upgraded to trio baseline 1.4
+
+Sat Jun 2 06:12:33 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/xml.html: added 2.3.10 release
+
+Fri Jun 1 11:27:11 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: releasing 2.3.10
+
+Thu May 31 20:42:39 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlIO.c: Gary Pennington spotted a few troubles with file:///
+
+Thu May 31 20:18:59 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * encoding.c: Robert Collins provided a patch to add the
+ "US-ASCII" encoding alias
+
+Wed May 30 21:12:45 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c encoding.[ch]: William M. Brack provided a set of UTF8
+ string oriented functions and started cleaning the related areas
+ in xpath.c which needed fixing in this respect
+
+Wed May 30 20:30:47 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.c: applied patch from Jaroslaw Kolakowski to close bug
+ #55380
+ * tree.c: patch to xmlNodeGetContent() to get CDATA section content
+
+Mon May 28 12:56:29 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * TODO: updated
+ * nanohttp.[ch] : started adding APIs to get the redirected URL
+ when this occurs (needed for further base computation
+ * tree.h: cleanup
+ * encoding.c: cleanup
+ * SAX.c: minor change around ctxt->loadsubset
+
+Fri May 25 09:36:26 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am include/Makefile.am: small change to have
+ include/libxml rebuilt if working from CVS.
+ * uri.c: applied another patch from Carl Douglas for URI escaping,
+ this should close bug #51876
+
+Wed May 23 15:40:27 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xinclude.c: fixed XInclude recursive behaviour bug #54678
+ * result/XInclude/recursive.xml test/XInclude/docs/recursive.xml
+ test/XInclude/ents/inc.txt test/XInclude/ents/sub-inc.ent:
+ added specific regression test
+ * parser.h: preparing for the XSLT mode where DTD inherited
+ attributes are added to the tree.
+
+Wed May 23 13:59:19 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xinclude.[ch]: Updated the namespace for the Last Call version
+ * result/XInclude/include test/XInclude/include: updated the
+ testsuite accordingly
+
+Wed May 23 12:27:44 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * uri.[ch]: applied a patch from Carl Douglas for URI escaping,
+ related to bug #51876
+
+Tue May 22 18:46:56 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: fixed a gross mistake in base computation, xml:base is
+ not completely correct yet (need cascade).
+ * xpath.[ch]: added the few things needed to find a function name
+ and URI from the XPath context when it is called.
+
+Tue May 22 17:00:36 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * catalog.[ch]: fixes and add xmlLoadCatalogs()
+ * DOCBparser.c: small cleanup
+ * xmllint.c: added a --catalogs option to load catalogs from
+ $SGML_CATALOG_FILES
+ * tree.c: cleanup
+ * configure.in: iconv library fixup, ICONV_LIBS
+
+Mon May 21 16:05:22 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * catalog.c: handling of CATALOG entries. detection of recursion,
+ and a few bugfixes
+ * xpath.c: fixing bug #54951 QNAME with no prefix should not match
+ against the default namespace
+
+Mon May 21 10:14:07 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: Joe Orton reported a bug found with IRIx compiler.
+
+Sun May 20 15:15:46 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: fixed propagation context info when parsing an
+ external entity.
+ * doc/html/*.html: regenerated a couple of docs
+
+Sat May 19 17:11:15 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/xml.html: update with 2.3.9 informations
+
+Sat May 19 16:50:47 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.h debugXML.h parserInternals.h tree.h valid.c
+ xmlversion.h.in xpathInternals.h xpath.h: some cleanup for gtk-doc
+ * doc/html/* : rebuilt the docs
+ * valid.c: small patch which may improve some case when
+ validating.
+
+Sat May 19 15:20:03 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c: Closed bug #54891
+ * result/HTML/cf_128.html* test/HTML/cf_128.html: added the test
+ to the suite
+
+Thu May 17 14:15:07 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * encoding.h hash.c nanoftp.h parser.h tree.h uri.h xlink.h xpointer.c:
+ applied a documentation patch from LotR and filled in a few missing
+ descriptions
+
+Wed May 16 23:02:41 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c tree.c parser.c: speed optimizations at the parser level
+ document tree freeing and xpath evaluation
+
+Wed May 16 12:55:48 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c parser.h parserInternals.h: fixed a couple of
+ interfaces for handling memory buffer input to const char *
+ upon suggestion of JamesH.
+
+Tue May 15 17:22:27 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: LoTR sent a patch fixing the previous commit
+
+Tue May 15 14:40:04 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: trying to deal again with the stoopid -R linking
+ flag of Solaris
+
+Tue May 15 12:49:50 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.h: two nodeset access macros from Thomas Broyer
+
+Tue May 15 11:42:39 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c xpath.h xpathInternals.h: apply an XPath API cleanup
+ patch from Thomas Broyer
+
+Tue May 15 10:52:19 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c test/VCM/v2[34].xml: Fixed bug #54631 added specific test
+ case
+ * INSTALL: was empty added stuff from the FAQ
+
+Fri May 11 19:37:30 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.[ch]: fixing bug #54446, by cleaning some bugs in the
+ attributes handling and #54433 by adding xmlUnsetProp()
+ and xmlUnsetNsProp()
+
+Fri May 11 16:07:13 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c: Patch from Jonas Borgström
+ (htmlGetEndPriority): New function, returns
+ the priority of a certain element.
+ (htmlAutoCloseOnClose): Only close inline elements if they
+ all have lower or equal priority.
+ * result/HTML: this of course changed a number of tests results.
+
+Thu May 10 17:30:22 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlIO.c catalog.c: plugged in the default catalog resolution
+ * doc/gnome-xml.sgml: linked in the Docbook parser and catalog
+ documentations
+ * doc/html/libxml-*.html: rebuild added the missing ones to CVS
+
+Thu May 10 16:14:36 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am xmlversion.h.in configure.in include/Makefile.am:
+ integrating catalogs
+ * catalog.[ch] testCatalog.c: adding a small catalo API
+ (only SGML catalog support).
+ * parser.c: restaured xmlKeepBlanksDefault(0) API
+
+Wed May 9 12:50:15 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: zb@bisp.com reported an error in xmlNodeGetLang()
+
+Tue May 8 12:31:40 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: added xmlParseExternalEntityPrivate() to allow
+ propagation of ctxt->_private when parsing external entities
+
+Tue May 8 10:26:22 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.c: fixed the bug reported by Bjorn in htmlNodeDump
+
+Tue May 8 09:30:12 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: fixed a small portability problem with AM_CONDITIONAL
+
+Mon May 7 22:44:45 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: warn when indeterminist content model is detected
+ * result/VC/ElementValid8: this adds a message
+ * Makefile.am: add --novalid for VCM tests
+ * parserInternals.c: added a call to Init memory
+
+Fri May 4 19:51:15 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c: fixed htmlNewDoc SYSTEM and PUBLIC ID inversion
+ when both parameters are NULL.
+
+Fri May 4 17:19:39 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: applied small patch from Gary Pennington, reindented
+ some part of the code.
+
+Thu May 3 13:10:43 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in doc/xml.html doc/html/*: preparing for 2.3.8
+ release, updated and regenerated the docs
+
+Thu May 3 12:47:46 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c result/XPath/expr/floats : clarified and cleanup
+ printing of abnormal floats in tests.
+
+Thu May 3 10:25:19 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c: trying to fix the problem reported by Jonas Borgström
+ * results/HTML/ : a few changes in the output of the HTML tests as
+ a result.
+ * configure.in: tying to fix -liconv where needed
+
+Wed May 2 19:10:26 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am: fixed a stupid error
+
+Wed May 2 18:39:39 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in Makefile.am: make the inclusion of the trio
+ modules in the library conditional
+
+Wed May 2 14:39:57 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * DOCBparser.c: patche from László Kovács, fixed entities refs
+ in attributes handling
+
+Wed May 2 12:56:04 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlIO.c: Bjorn Reese provided a fix for a problem on buffer
+ flushing
+
+Mon Apr 30 22:29:34 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fix of an XSLT namespace bug reported on the list
+ general/bug-8-
+
+Mon Apr 30 19:42:58 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * strio.h trio.c: Dan McNichol suggested a couple of small
+ fixes for AIX 4.3.3 using Visual Age 5.0.2 compiler
+
+Mon Apr 30 13:44:48 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c parser.c encoding.c: spent a bit more time looking
+ at the parsing speed and DOM handling. Added a few more
+ speedups.
+
+Sun Apr 29 21:53:47 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: small but effective parsing speed improvement
+
+Sun Apr 29 19:02:13 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: default on the DocBook parser inclusion (for Gnome)
+ * DOCBparser.h: fixed a header reference
+
+Sat Apr 28 19:00:39 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in xpath.c: applied Bjorn patches for FPE on the
+ alpha
+
+Sat Apr 28 18:54:28 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.[ch] xmlIO.h: applied patch from Joe McAlerney to add
+ xmlSaveFormatFileTo()
+
+Sat Apr 28 16:33:05 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: simple and efficient optimization, XPath functions
+ aways bind to the same code, cache this
+ * TODO: updated (by saying some is obsolete)
+
+Sat Apr 28 14:23:30 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: more cleanup work on XPath name parsing routines
+
+Fri Apr 27 19:06:13 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parserInternals.c xpath.[ch]: some UTF8 cleanup on
+ xmlXPathParseName
+ * xpath.c: Igor Zlatkovic suggested a change for NAN and MSC
+ * debugXML.c: avoid compilation problems if compiling without
+ HTML support, Igor Zlatkovic
+ * win32/libxml2/libxml2.def.src: being able to compile without
+ XPath on Windows
+
+Thu Apr 26 22:53:03 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * libxml.m4: yet another patch from Toshio Kuratomi
+
+Thu Apr 26 21:27:43 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * libxml.m4 libxml2-spec.in: new patches from Toshio Kuratomi
+
+Thu Apr 26 20:53:48 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.[ch]: added xmlSaveFormatFile interface for saving
+ and indenting a file.
+
+Thu Apr 26 16:35:53 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed bug #53689 related to processing-instruction()
+
+Thu Apr 26 12:57:58 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * DOCBparser.c: patche from László Kovács
+
+Thu Apr 26 11:31:54 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: applied fixes from Christian Glahn bug report #53391
+
+Thu Apr 26 11:14:56 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * error.c: Jean François Lecomte provided a complete description
+ and a fix to bug #53537
+
+Thu Apr 26 09:42:58 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * libxml.m4: added AM_PATH_XML2 provided by Toshio Kuratomi
+
+Wed Apr 25 21:05:31 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * DOCBparser.c SAX.c: a bit more work on entities processing.
+ Still Need to cleanup XML output and references in attributes
+
+Wed Apr 25 17:52:27 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * DOCBparser.c include/Makefile.am: two patches from László Kovács
+
+Wed Apr 25 14:56:26 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: trying to fix #53574, not completely complete,
+ I would like xmllint --copy --debug test/ent1 and
+ xmllint --debug test/ent1 to show the same result.
+ * xpath.c: fix a bug when trying to sort namespace nodes
+
+Wed Apr 25 12:28:57 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.c: real fix for #53402
+
+Tue Apr 24 17:36:35 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.c HTMLtree.h : closing #53402 i.e. output of
+ PIs when using xsl:output
+ * valid.c: closing #53537 some case generate segfaults if there
+ is validity errors
+
+Tue Apr 24 15:19:53 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * SAX.c testDocbook.c DOCBparser.c: more work on the support
+ of external parsed entities, added --noent to testDocbook
+ * valid.c: Garry Pennington found an uninitialized variable
+ access in xmlValidateElementContent()
+
+Tue Apr 24 14:41:25 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c : HTML parsing still sucks ... trying to deal
+ with madness
+ * result/HTML/ : this modified the result of the regression tests
+ a lot.
+
+Tue Apr 24 14:10:38 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * entities.c: xmlEncodeEntitiesReentrant fixed a few accesses
+ to doc where it wasn't checked against NULL reported by
+ Jens Laas
+
+Tue Apr 24 13:21:36 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c: Jonas Borgström patch, the <td>, and <th> elements
+ now means the end of any open <span>,<font>,<a>,<b>,<i>,<u>.
+
+Mon Apr 23 15:40:04 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * DOCBparser.c DOCBparser.h testDocbook.c configure.in Makefile.am
+ xmlversion.h.in: started (re)integrating the DocBook SGML parser.
+ * SAX.[ch]: cleanup and updates for DocBook
+ * debugXML.c parser.h tree.[ch] valid.c xpath.c: small macro or
+ ex SGML identifier changes
+ * valid.c: removed a static unused function.
+
+Mon Apr 23 11:05:56 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLtree.c: applied change for Paul Sponagl on script saving
+ * Makefile.am: the warning about entity title.xml are normal.
+
+Sun Apr 22 22:09:35 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: release of 2.3.7
+ * Makefile.am: fixing make distcheck
+
+Sun Apr 22 21:29:52 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/html/* doc/xml.html: updated and regenerated the docs
+
+Sun Apr 22 21:11:45 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed the XPointer problem introduced in 2.3.6
+
+Sun Apr 22 14:11:58 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: fixed #53388 with the provided patch
+
+Sun Apr 22 12:34:41 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: Bjorn detected an invalid memory access. Fixed
+ vstateVPush()
+
+Sun Apr 22 10:49:23 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed xmlXPathCompile to detected unproperly ended expr
+
+Sat Apr 21 18:27:51 CEST 2001 Bjorn Reese <breese@users.sourceforge.net>
+
+ * libxml.h: new header used only for the compilation of libxml
+ * HTMLparser.c HTMLtree.c SAX.c debugXML.c encoding.c entities.c
+ error.c hash.c list.c nanoftp.c nanohttp.c parser.c
+ parserInternals.c testHTML.c testSAX.c testURI.c testXPath.c
+ tree.c uri.c valid.c xinclude.c xlink.c xmlIO.c xmllint.c
+ xmlmemory.c xpath.c xpointer.c: libxml.h integration
+ * trio.[ch] triop.h strio.[ch]: upgraded to the latest trio
+ baseline (version 1.2 plus a single patch).
+ * xpath.c result/XPath/expr/floats test/XPath/expr/floats: parses
+ scientific notation for numbers. Tests added.
+ * xpath.c: formatting of numbers changed to use sprintf
+ (contribution from William Brack)
+
+Sat Apr 21 16:12:59 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: cleanup, more useful debugging
+ * parserInternals.c: cleanup vctxt.nodeTab (de)allocation
+ * xmlIO.c: entity loading is printed as an error when validating
+
+Sat Apr 21 12:25:49 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: fixed to validate within entities
+ * test/VCM/v22.xml: added a specific testcase
+
+Fri Apr 20 17:45:47 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: forgot an epsilon transition in for ()+
+ * test/VCM/v21.xml : added a specific test case
+
+Fri Apr 20 15:46:04 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: removed a state explosion exhibited by RSS
+ * test/valid/rss.xml result/valid/rss.xml*: added the testcase
+ from bug #51872
+
+Fri Apr 20 14:52:44 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.[ch] tree.h: worked *hard* to get non-determinist content
+ validation without using an ugly NFA -> DFA algo in the source.
+ Made a specific algorithm easier to maintain, using a single
+ stack and without recursion.
+ * Makefile.am test/VCM/*.xml: added more tests to "make Validtests"
+ * hash.c: made the growing routine static
+ * tree.h parser.c: added the parent information to an
+ xmlElementContent node.
+
+Wed Apr 18 23:33:11 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * SAX.c parser.c xpath.c: generating IDs when not validating
+ from an external parsed entity was poisoning the ID has table
+ with removed values. This was killing XSLT on the KDE help
+ browser.
+
+Wed Apr 18 17:09:15 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * entities.h: andrew@ugh.net.au detected a double declaration
+
+Wed Apr 18 15:06:30 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * debugXML.c hash.c tree.h valid.c : some changes related to
+ the validation support to improve speed with DocBook
+ * result/VC/OneID2 result/VC/OneID3 : this slightly changes
+ the way validation errors get reported
+
+Wed Apr 18 11:42:47 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c HTMLtree.c: applied part of the patches provided
+ by P C Chow and William M. Brack for XSLT HTML output
+
+Mon Apr 16 19:44:36 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlversion.h.in win32config.h win32/libxml2/*: applied
+ Igor Zlatkovic patches for MSC compilation and added his
+ updates
+
+Tue Apr 17 10:08:19 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed xmlXPathNodeCollectAndTest() to do proper
+ prefix lookup.
+ * parserInternals.c: fixed the bug reported by Morus Walter
+ due to an off by one typo in xmlStringCurrentChar()
+
+Thu Apr 12 17:41:09 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c result/HTML/*: revamped the way the HTML
+ parser handles end of tags or end of input
+
+Thu Apr 12 10:50:34 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.[ch] : added xmlDocCopyNode for gdome2 support
+
+Wed Apr 11 16:37:50 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.h: include xmlmemory.h this seems to havoid a nasty glibc
+ bug where the linktime verions of free() won't work ...
+
+Wed Apr 11 14:21:31 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * config.h.in configure.in xmlversion.h.in: added ansidecl.h test
+
+Wed Apr 11 13:50:42 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/xml.html: added 2.3.6 release
+
+Wed Apr 11 13:26:34 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: fixed xmlStringGetNodeList() to handle charrefs
+ * result/wml.xml: resulted in a small output change
+
+Wed Apr 11 09:47:55 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: xmlNewDoc was missing the charset initialization
+ * xmllint.c: added --auto to autogenerate a doc, allow to
+ reproduce the problem fixed on xmlNewDoc
+
+Tue Apr 10 18:13:10 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: trying to get 52979 solved
+ * tree.c result/ result/noent/: trying to get 52712 solved, this
+ also made me clean up the fact that XML output in general should
+ not add formatting blanks by default, this changed the output of
+ a few tests
+
+Tue Apr 10 16:30:20 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: Bill Brack pointer an error in detecting a null nodeset
+
+Sun Apr 8 15:07:16 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: finally released 2.3.6
+
+Sun Apr 8 11:39:21 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: checking for null pointer generated by new code
+
+Fri Apr 6 12:53:05 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed a [] evaluation problem reported
+ * test/XPath/tests/simpleaddr: extended test
+ * result/XPath/simpleaddr: updated result
+
+Wed Apr 4 02:07:53 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmllint.c: Dan Timis reported a portability problem
+ on Macs without mmap, fixed it.
+
+Tue Apr 3 20:20:51 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * testXPath.c : added a --tree option allowing to display the
+ tree dump of the XPath expression
+
+Mon Apr 2 17:13:51 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed a memleak when comparing nodesets
+ * HTMLtree.c: don't invent the HTML doctype if not available (XSLT)
+ * tree.c: added a TODO
+
+Tue Mar 27 14:32:06 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in Makefile.am config.h.in xmlversion.h.in: detect if
+ we need string functions
+ * trio.[ch] strio.[ch]: embedded the Trio-0.23 string functions
+ to be able to use them where needed. Applied some changes
+ to reduce name linking pollution and compile in only what's
+ needed.
+ * HTMLtree.c debugXML.c entities.c error.c nanoftp.c valid.c
+ xlink.c xmlversion.h.in xpath.c: got rid of the #ifdef
+ for the string manipulation functions
+ * xmlmemory.[ch]: removed DEBUG_MEMORY_FREED and added it automatically
+ to the free() function of xmlmemory.c
+ * entities.c HTMLtree.c parserInternals.c tree.c uri.c valid.c
+ xinclude.c xmlIO.c xpath.c xpointer.c: removed the MEM_CLEANUP
+ usage.
+
+Tue Mar 27 02:30:23 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * error.c: applied the context output patch of the error
+ handling submitted by Chuck Griffith
+ * error/VC/*: this slightly change some error logs
+
+Tue Mar 27 00:51:27 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: fixed line number reporting on error
+
+Mon Mar 26 23:21:41 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: Sullivan and Darin found a parser bug,
+ applied the patch.
+
+Mon Mar 26 18:24:52 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c HTMLtree.c SAX.c debugXML.c error.c parserInternals.c
+ testHTML.c testSAX.c tree.c valid.c xmlIO.c xmlmemory.c
+ xmlversion.h.in xpointer.c: of course the way I defined
+ UNUSED breaks on old gcc version. Try to be smart and
+ also define it directly in xmlversion.h
+ * configure.in: removed -ansi flag from the pedantic set
+
+Sat Mar 24 17:45:36 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+ Huge cleanup, I switched to compile with
+ -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit
+ -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat
+ -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow
+ -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return
+ -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline
+ * HTMLparser.[ch] HTMLtree.c SAX.c debugXML.c encoding.[ch]
+ encoding.h entities.c error.c list.[ch] nanoftp.c
+ nanohttp.c parser.[ch] parserInternals.[ch] testHTML.c
+ testSAX.c testURI.c testXPath.c tree.[ch] uri.c
+ valid.[ch] xinclude.c xmlIO.[ch] xmllint.c xmlmemory.c
+ xpath.c xpathInternals.h xpointer.[ch] example/gjobread.c:
+ Cleanup, staticfied a number of non-exported functions,
+ detected and cleaned up a dozen of problem found this way,
+ avoided a lot of public function name/typedef/system names clashes
+ * doc/xml.html: updated
+ * configure.in: switched private flags to the really pedantic ones.
+
+Thu Mar 22 22:44:15 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: 2.3.5
+ * doc/html/*: rebuilt the docs
+
+Thu Mar 22 15:36:45 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: fixed a reported bug in NOTATION parsing
+ * uri.c: accepted but not fixed bug 51876, added TODO
+ * Makefile.am: fixed bug 51876
+
+Thu Mar 22 13:41:22 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * config.h.in configure.in error.c: fix a compilation problem
+ on platforms without vsnprintf (xml@thewrittenword.com)
+
+Wed Mar 21 19:04:34 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: fixed a function name header typo
+ * SAX.c: notations can also occur in external subset.
+
+Tue Mar 20 14:21:28 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * error.c: removed a C++ like comment
+
+Tue Mar 20 12:22:36 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: fixing bug 52299 strange condition leading
+ to a parser crash due to a buffer overflow
+ * result/noent/attrib.xml result/attrib.xml test/attrib.xml:
+ added the specific test case
+
+Mon Mar 19 16:50:52 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.[ch]: still a lot of cleanup based on XSLT, added
+ xmlXPathConvert{String,Number,Boolean} to be able to make
+ type casts without a context stack, fixed some implementation
+ problems related to the absence of context at parse-time,
+ added xmlXPathEvalPredicate() and xmlXPathFreeCompExpr()
+ in the public API too
+ * xpointer.c xpathInternals.h: we need to know at parse time
+ whether we are compiling an XPointer
+
+Mon Mar 19 11:54:31 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.[ch] xpointer.c: restaured the Binary and API compatibility
+ cleaned up the parser internals, refactored XPath code, added
+ new compilation based APIs and cleanly separated public and
+ private APIs.
+
+Mon Mar 19 00:59:25 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.h: the comp field must be added at the end to avoid
+ killing binary compat.
+
+Mon Mar 19 00:11:18 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am: detect XPath memleaks in regreson tests
+ * error.c: fixed and error w.r.t. error reporting still using
+ stderr
+ * hash.c: added new line at end of file
+ * tree.h: minor cleanup
+ * xpath.[ch] xpointer.[ch]: Major changes ! Separated XPath
+ expression parsing from evaluation, resulted in a number of
+ changes internally, and in XPointer. Likely to break stuff
+ using xpathInternals.h but should remain binary compatible,
+ new interfaces will be added.
+
+Wed Mar 14 20:34:02 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: fixed a couple of problems reported by
+ okiddle@yahoo.co.uk and allanc@chickenandporn.com when compiling
+ without gcc on non linux platforms.
+
+Wed Mar 14 20:13:54 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/Makefile.am configure.in: yearke@eng.buffalo.edu suggested
+ a fix for --with-html-dir= configure support. I hope it won't
+ break rpm generation
+
+Wed Mar 14 17:28:49 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlIO.c: one function comment cleanup.
+
+Wed Mar 14 14:55:46 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * SAX.c: external subset notations were improperly registered
+ in the internal subset.
+
+Tue Mar 13 10:28:49 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * README.cvs-commits: added, pointing to HACKING
+ * HACKING: updated
+
+Mon Mar 12 22:09:40 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: and Matt Sergeant found one in the XML push
+ parser (erroneous check I forgot to remove when I fixed the
+ main parser).
+
+Mon Mar 12 19:19:04 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: ptittom found a small bug in UnaryExpr
+
+Sat Mar 10 13:09:53 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: bumped to 2.3.4
+ * error.c: fixed bug #51860
+ * tree.c: fixed bug #51861
+ * valid.c: cleanup, more debug, failed to fix one bug crap ...
+ * tree.[ch] : added xmlDefaultBufferSize
+ * nanoftp.c: typo in function name header block
+ * doc/xml.html : updated, added link to XML::LibXSLT
+ * doc/html/* : rebuilt the docs
+
+Wed Mar 7 20:43:47 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c SAX.c: the new content parsing code raised an
+ ugly bug in the characters() SAX callback. Found it
+ just because of strangeness in XSLT XML Rec output :-(
+
+Wed Mar 7 16:50:22 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am: Martin Baulig suggested to add -lm
+ * tree.c: found another bug in xmlNodeGetContent()
+
+Tue Mar 6 09:21:30 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: Bjorn found the error related to strictness of comparison.
+
+Mon Mar 5 21:47:31 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: trying to fix the Dtd parsing problem reported
+ by Gary, side effect of last week speed optimizations.
+
+Sat Mar 3 19:45:59 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xml2Conf.sh.in: fixes pointed out by Fredrik Hallenberg
+ * parserInternals.c: removed unneeded test raised by Stric
+
+Sat Mar 3 13:04:37 CET 2001 Bjorn Reese <breese@users.sourceforge.net>
+
+ * xpath.c: Fixed xmlXPathNodeCollectAndTest (problem reported
+ and fixed by William Brack). Added xmlXPathFormatNumber.
+ Changed the sorting slightly.
+ * configure.in Makefile.am example/Makefile.am: Added -lm.
+ Please note that applications linking with libxml2, must
+ also like with the math library from now on.
+
+Sat Mar 3 07:38:58 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c: fixed loop reported by Marc Sanfacon
+
+Sat Mar 3 02:10:24 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: one must report spaces even if the Dtd element
+ content proves that this is not part of the element content.
+ * result/valid/*.xml: this changed the ouptu slightly
+
+Thu Mar 1 17:53:39 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: bumped to 2.3.3
+ * doc/xml.html: updated
+
+Wed Feb 28 00:43:58 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: minor doc fix
+ * xpath.c: deallocation issues when a result tree has been
+ converted to a node-set
+
+Mon Feb 26 22:09:45 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/xml.html: oops corrected dates s/2000/2001
+
+Mon Feb 26 12:48:35 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: new patch from Gary Pennington
+
+Mon Feb 26 09:30:23 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/xml.html: applied patch from Ankh
+
+Mon Feb 26 03:34:43 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xinclude.c: fixed a problem building on Mac
+
+Sun Feb 25 21:52:30 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: more work on increasing parsing ferformances
+
+Sun Feb 25 18:03:42 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlmemory.h HTMLparser.c HTMLtree.c entities.c parser.c
+ xpath.c xpointer.c tree.c uri.c valid.c xinclude.c xmlIO.c:
+ avoiding memcpy in production builds MEM_CLEANUP macro use
+ * parser.[ch] parserInternals.c: optimizations of the tightest
+ internal loops inside the parser. Better checking of I/O
+ flushing/loading conditions
+ * xmllint.c : added --timing
+
+Sun Feb 25 05:48:51 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: bumped to 2.3.2
+ * doc/xml.html: updated for release
+
+Sat Feb 24 14:07:52 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: found a memleak and fixed a nasty bug
+
+Sat Feb 24 03:35:48 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmllint.[c1] : added return code errors for xmllint
+ * xpath.c: specific debug dump function for result value trees
+
+Thu Feb 22 07:52:27 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: finally implemented xmlXPathCompareNodeSets
+ * test/XPath/expr/floats results/XPath/expr/floats: added
+ a test for float expressions
+
+Tue Feb 20 18:57:54 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: fixed xmlNodeGetContent, it was not recursing on child
+ * parserInternals.[ch]: trying to speed up parsing
+ * xpath.c : speeded up node set equality op
+
+Mon Feb 19 19:01:57 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am valid.c list.[ch]: Gary Pennington provided a
+ better handling of ID/IDREF and the list modules associated
+ * configure.in: small CFLAGS cleanup
+
+Mon Feb 19 16:13:22 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: fixed iconv detection on AIX (stric)
+
+Mon Feb 19 10:59:41 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed "*" (unbelievable !) and a couple of warnings
+
+Sun Feb 18 17:52:37 MET 2001 Bjorn Reese <breese@users.sourceforge.net>
+
+ * xpath.c: fixed whitespace handling in xmlXPathStringEvalNumber,
+ and optimized xmlXPathNodeSetSort
+
+Sat Feb 17 14:18:42 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: bug fix when context size is 0
+ * parser.c: I like Norm's Dtd because they still manage to break
+ the parser occasionally
+
+Fri Feb 16 14:20:35 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: xmlXPathEqualNodeSetFloat the arg is really a double now
+
+Fri Feb 16 01:10:06 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.[ch] parser.c xpath.c: fixed the problem of addressing
+ attributes within the XML-1.0 namespace
+
+Thu Feb 15 16:53:20 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpathInternals.h: exported a few axis functions
+ * doc/xml.html: updated the doc
+
+Thu Feb 15 15:57:14 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: applied patch from Daniel van Balen for OpenBSD
+ and bumped version to 2.3.1
+ * HTMLtree.c result/HTML/doc3.htm result/HTML/wired.html: the
+ attempt to find autoclosing was simply broken, removed it,
+ updated the examples, this is better
+
+Wed Feb 14 11:35:39 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * hash.[ch]: added Paolo Casarini patch to provide Delete from
+ hash functionnalities.
+ * doc/html/* : rebuild the doc
+
+Tue Feb 13 18:01:48 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c result/XPath/tests/chaptersprefol: bugfixes on order and
+ on predicate
+ * HTMLparser.[ch] HTMLtree.c result/HTML/doc3.htm.err
+ result/HTML/doc3.htm.sax result/HTML/wired.html: sometimes one
+ really want to have tags closed on output even if we accept
+ unclosed ones on input
+
+Mon Feb 12 18:33:20 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: ouch don't free NULL, rare case fixed
+ * tree.c: don't coalesce text nodes if they don't have the
+ same behaviour wrt escaping on output
+
+Sun Feb 11 21:15:41 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: small fixup
+ * SAX.c: don't warn on empty namespaces.
+
+Thu Feb 8 11:28:58 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * README: a bit of cleanup
+ * configure.in: preparing for 2.3.0 release
+
+Thu Feb 8 10:37:00 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * hash.[ch]: added a first version of xmlHashSize()
+ * valid.c: another bug fix from Gary Pennington
+
+Wed Feb 7 19:22:37 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * valid.c: couple of bug fixes pointed by Gary Pennington
+ * HTMLtree.c: #if 0 cleanup
+
+Tue Feb 6 14:02:56 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: started profiling XSLT, added xmlXPathNodeSetAddUnique()
+ which removes a time consuming check of xmlXPathNodeSetAdd()
+ and use it in places where we are sure to not break unicity
+
+Mon Feb 5 18:51:36 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: bug fixes found from XSLT
+ * tree.c: preserve node->name special values when copying nodes.
+ * parserInternals.[ch] parser.[ch] SAX.c : added a mode where
+ external subset are fetched when available but without full
+ validation. Added xmlLoadExtDtdDefaultValue, need a function.
+ * HTMLtree.c: add support for xmlStringTextNoenc for XSLt HTML
+ output with encoding disabled.
+
+Sat Feb 3 09:50:29 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmliO.c: Harry Blundell pointed out that xmlCheckFilename
+ xmlCheckFilename should not be called from xmlFileOpenW
+ and xmlGzfileOpenW
+
+Fri Feb 2 18:04:35 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * uri.c: rewrite of xmlNormalizeURIPath from Paul D. Smith
+ * test/URI/smith.uri result/URI/smith.uri Makefile.am:
+ added the new tests for URI normalization
+ * testURI.c: fixed stoopid bugs
+ * result/VC/OneID3 result/VC/UniqueElementTypeDeclaration:
+ the URI in the error messages are now properly normalized
+
+Fri Feb 2 09:18:53 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * uri.c: applied Marc Sanfacon's patch for xmlNormalizeURIPath
+
+Thu Feb 1 05:28:55 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed a number of problems in XPATH_XSLT_TREE processing
+
+Wed Jan 31 21:45:37 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed mod operator
+
+Wed Jan 31 16:50:42 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c: fixed xmlStrcat doc
+ * tree.c: 2 fixes form Anders Carlson for copying nodes and
+ trees.
+
+Wed Jan 31 14:19:16 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c result/XPath/tests/chaptersbase
+ result/XPath/tests/simplebase: fixed XPath node()
+ * tree.c: small fix in xmlNewNs()
+ * Makefile.am: removed extraneous xml2Conf.sh rule
+
+Sun Jan 28 08:37:03 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am configure.in libxml.spec.in example/Makefile.am:
+ Changed the library name, in order to get libxml-devel and
+ libxml2-devel to coexist on a single system
+ * xml-config.1 xml-config.in xmlConf.sh.in: renamed
+ * xml2-config.1 xml2-config.in xml2Conf.sh.in: new files
+
+Sat Jan 27 19:58:22 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am configure.in libxml-2.0.pc.in: started working on getting
+ libxml2-devel installable in // as libxml-devel.
+
+Sat Jan 27 18:49:02 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/Makefile.am: fixed make rebuild in doc
+ * doc/html/*.html: rebuilt the docs
+
+Fri Jan 26 10:30:58 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: patch from Bjorn Reese on xmlBufferCCat
+
+Thu Jan 25 19:22:25 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am doc/Makefile.am libxml.spec.in: painful work to get
+ the HTML doc to go into the -devel RPM ...
+ * aclocal.m4 config.h.in: some updates due to auto* magic
+
+Thu Jan 25 19:11:49 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.h: added a hook in the context structure allowing to
+ link to extra support, needed for XSLT
+
+Thu Jan 25 13:34:11 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.[ch] xpointer.c: added xmlXPathCmpNodes, changed
+ xmlXPtrCmpPoints to use it.
+ * propagated the following patch from Alejandro Forero
+ * include/win32config.h xmlIO.c: applied further suggestions
+ from Igor Zlatkovic <igorz@dialup.nacamar.de> and cleanup
+ * example/gjobread.c: fixed warnings, now that it builds
+
+Wed Jan 24 20:27:28 COT 2001 Alejandro Forero <bachue@bachue.com>
+
+ * xmlIO.c (xmlFileOpen, xmlFileOpenW): Removed unnecesary checks.
+
+ * xmlIO.c (xmlCheckFilename): Function added to know whether a given
+ filename points to a valid file (not a directory).
+ * xmlIO.c (xmlFileOpen, xmlFileOpenW, xmlGzfileOpen, xmlGzfileOpenW):
+ Added calls to xmlCheckFilenameDir.
+
+ * xmlIO.c (xmlGzfileOpen, xmlGzfileOpenW, xmlFdOpen, xmlFdOpenW): Pass
+ `path' (rather than `filename') as the parameter to gzopen and open.
+
+Tue Jan 23 16:26:30 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am: fixed a problem with EXTRA_DIST
+
+Mon Jan 22 23:42:17 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am example/Makefile.am: finally found the trick
+ to build the example, i.e. add "." in SUBDIRS before example
+ in the list <grin/>
+
+Mon Jan 22 16:30:37 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * doc/xml.html: updated with an XSLT section, removed pointer to
+ W3C CVS base.
+
+Mon Jan 22 11:43:21 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: when copying a XSLT tree object the tree need to be copied
+ too, and deallocation need to occur the same way.
+
+Mon Jan 22 10:35:40 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpathInternals.h xpath.[ch] debugXML.c: added the XPATH_XSLT_TREE
+ type corresponding to an XSLT result tree fragment. Share most
+ of the data format with node set, as well as operators.
+ * HTMLtree.c: added a newline at the end of the doctype output
+ whe this one is not present initially.
+ * tree.c: make sure taht the parent and doc pointers are properly
+ set when copying attributes (lists).
+
+Sun Jan 21 10:47:38 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * htmlTree.[ch] xmlIO.h: exported htmlDocContentDumpOutput
+
+Fri Jan 19 18:15:50 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: seems I finally killed that ugly path evaluation
+ context bug (tagged 9999 in case is is wrong)
+
+Fri Jan 19 06:30:38 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.[ch] xpathInternals.h: added xmlXPathRegisterVariableLookup()
+ for XSLT
+
+Thu Jan 18 16:19:47 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlIO.c: Gary Pennington <Gary.Pennington@uk.sun.com> fix
+ for xmlGzfileOpen() bug
+
+Thu Jan 18 13:11:50 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: removed an error found by XSLT usage
+ * tree.c parserInternals.h: use a predefined static string
+ for text and comment nodes, avoid freeing them in xmlFreeNode,
+ exported the string name in parserInternals.h and added
+ another value to disable encoding at output (for XSLT),
+ gain memory, time.
+
+Wed Jan 17 09:15:16 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * win32/README.MSDev win32/libxml2/libxml2_a.dsp
+ win32/libxml2/libxml2_so.dsp: new makefiles and update
+ provided by Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+Tue Jan 16 18:24:46 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c : xmlSaveFile, xmlSaveFileEnc, applied patch from
+ Gary Pennington
+
+Mon Jan 15 20:24:18 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xpath.c: fixed the comaprision of values and nodelists,
+ need to compare nodelist still ...
+ * debugXML.c: avoided a possible core dump
+ * HTMLparser.c: cleanup
+ * nanohttp.c: contributed fix.
+ * tree.c: fixes in properties handling added xmlSetNsProp
+ needed by libxslt
+ * xpathInternals.h: exported xmlXPathBooleanFunction, added a
+ comment
+ * TODO: updated
+
+Sat Jan 6 22:05:09 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * parser.c parserInternals.c: applied Bjorn Reese optimization
+ patch
+
+Sat Jan 6 19:13:27 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * Makefile.am: applied patch fro make check from Martin Vidner
+
+Thu Jan 4 19:07:49 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in: preparing 2.2.11
+ * doc/html/*: rebuild the HTML files
+ * doc/xml.html : updated
+
+Thu Jan 4 14:09:58 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * tree.c: fixed a stupid bug
+ * valid.c: applied "Paul D. Smith" <pausmith@nortelnetworks.com>
+ patches related to validation of an XInclude processing result
+ * TODO: updated
+
+Thu Jan 4 11:46:40 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * encoding.c xmlIO.c: Fixing the problem reported by Marc Sanfacon
+ on large files
+
+Wed Jan 3 21:51:13 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmlIO.c: fixed xmlParserInputBufferCreateMem doc
+
+Wed Jan 3 18:56:00 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * HTMLparser.c: htmlCheckParagraph to check htmlOmittedDefaultValue,
+ reported by Jonas Borgström
+ * nanohttp.c: Applied Bjorn Reese' IPV6 first patch
+
+Wed Jan 3 16:19:39 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * testXPath.c xpath.c: fixing the XPath union expressions problem
+ reported by Martin Vidner <martin@artax.karlin.mff.cuni.cz>
+
+Wed Jan 3 14:22:33 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * xmllint.c: Made is so if the file name is "-" is will read form
+ standard input. Sven Heinicke <sven@zen.org>
+ * tree.c: fixed a problem when growing buffer
+ * tree.h: fixed the comment of the node types following andersca
+ comment
+ * TODO: updated
+
+Wed Dec 27 12:35:49 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.[ch]: added a way to avoid adding automatically
+ omitted tags. htmlHandleOmittedElem() allows to change the
+ default handling.
+ * tree.[ch] xmllint.c: added xmlDocDumpFormatMemory() and
+ xmlDocDumpFormatMemoryEnc(), uses memory functions for output
+ of xmllint too when using --memory flag, added a memory test
+ suite at the Makefile level.
+ * xpathInternals.h xpath.[ch] xpointer.c: fixed problems
+ with namespace use when encountering QNames in XPath evalation,
+ added xmlns() scheme in XPointer.
+ * nanoftp.c : incorporated a fix
+ * parser.c xmlIO.c: fixed problems raised with encoding when using
+ the memory I/O
+ * parserInternals.c: closed bug 25934 reported by
+ torsten.landschoff@innominate.de
+ * TODO: updated
+
+Sat Nov 25 11:46:27 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in doc/html/* doc/xml.html: made a 2.2.9 release
+ on a non-updated tree :-(, made a 2.2.10 release to correct the
+ situation
+
+Sat Nov 25 10:41:37 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanohttp.c parser.[ch] tree.[ch] xmlIO.[ch] xmllint.c xpath.c
+ parserInternals.h vms/build_libxml.com vms/config.vms Makefile.am:
+ integrated a set of OpenVMS changes from Howard Taylor
+ <Howard.Taylor@pacoast.com>
+
+Sat Nov 25 01:21:01 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch] xmlIO.c: added xmlDocDumpMemoryEnc() from John Kroll
+ * error.c: applied fix suggested by "Leo Davidson" <leo@ox.compsoc.net>
+
+Sat Nov 25 00:24:49 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c: some fixes on auto-open of html/head/body
+ * encoding.c: fixed a compilation error on some gcc env
+ * xpath.c xpointer.[ch] xpathInternals.h: improved the
+ XPointer implementation
+ * test/XPath/xptr/strpoint test/XPath/xptr/strrange3: added
+ related XPointer tests and associated results
+
+Fri Nov 24 14:01:44 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xmldtd.html doc/xml.html: following a short step by step
+ guidance on IRC to help maciej with DTDs I started a small
+ page on the subject.
+
+Fri Nov 17 17:28:06 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c: fixed handling of broken charrefs
+ * xmlmemory.h libxml2.dsp include/win32config.h: reporting Windows
+ patches
+
+Mon Nov 13 19:17:20 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xml.html doc/html/* : rebuilt the docs after adding
+ xinclude and updated page for 2.2.7 and 2.2.8
+ * configure.in: releasing 2.2.8
+
+Mon Nov 13 12:39:38 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.[ch] parserInternals.c: applied the conditional
+ section processing fix from Jonathan P Springer
+ <jonathan.springer2@gte.net>
+ * xmlversion.h.in win32/libxml2/libxml2.dsp : Updated MS
+ project file, fixed iconv default non support
+ * xpath.c: fixed the problem of evaluating relative expressions
+ when a node context is provided.
+
+Sun Nov 12 16:31:19 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.c: fixed gcc 2.95 new warnings
+ * SAX.c: fixed a stupid bug
+ * tree.c: fixed a formatting problem when round-tripping
+ from/to memory
+ * xinclude.c: chased memleak, fixed a base problem
+ * xpointer.c: added xmlXPtrBuildRangeNodeList(), finished ?
+ xmlXPtrBuildNodeList()
+ * TODO: updated
+ * Makefile.am test/XInclude/docs test/XInclude/ents result/XInclude:
+ adding a first small set of regression tests for XInclude
+
+Tue Nov 7 15:11:34 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanohttp.[ch]: applied Wayne Davison patches to access
+ the WWW-Authorization header.
+ * parser.c: Closed Bug#30847: Problems when switching encoding
+ in short files by applying Simon Berg's patch.
+ * valid.c: fixed a validation problem
+ * hash.c parser.h parserInternals.h testHTML.c testSAX.c tree.h
+ xmlerror.h xmlmemory.h xmlversion.h.in: applied a DLL patch from
+ Wayne Davison
+ * xpointer.[ch]: added first version of xmlXPtrBuildNodeList()
+ need to be extended to non full nodes selections.
+ * xinclude.c: starts to work decently
+
+Mon Nov 6 17:22:46 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch] xinclude.[ch] xmllint.c configure.in valid.c
+ debugXML.c xmlversion.h.in: Started adding XInclude support,
+ this is a new xmllint option
+ * tree.c xpath.c: applied TOM patches for XPath
+ * xpointer.c: fixed a couple of errors.
+ * uri.c: added an escaping function needed for xinclude
+ * testXPath.c hash.c HTMLtree.c: minor cleanups raised by
+ new warning from RH70 gcc's version
+
+Tue Oct 31 14:14:13 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c: fixed loop on invalid char in scripts
+ * parser.c: update to description of xmlIOParseDTD()
+ * libxml.m4 xmlversion.h.in: changes contributed by
+ Michael Schmeing <m.schmeing@internet-factory.de>
+ * configure.in: preparing for 2.2.7
+ * Makefile.am: trying to avoid config.h and acconfig.h
+ being included in the distrib
+ * configure.in: released 2.2.7
+
+Mon Oct 30 17:08:10 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch] debugXML.c parserInternals.c xpath.c: Deprecated Pi's
+ like namespaces for good. Unified xmlNs and xmlNode somewhat.
+
+Mon Oct 30 16:26:49 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.[ch]: added xmlIOParseDTD()
+ * xpointer.c: added support for the 2 extra parameters of
+ string-range, fixed a stoopid error when '0' was present
+ in XPointer expressions
+ * test/XPath/xptr/strrange2 result/XPath/xptr/strrange2: added
+ testsuite for the above
+
+Mon Oct 30 10:26:43 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * libxml.spec.in: improved package descriptions
+
+Sun Oct 29 19:03:11 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.c xpathInternals.h: applied a large cleaning patch
+ from TOM <ptittom@free.fr>, it also add namespace support
+ for function and variables registration.
+
+Sun Oct 29 18:51:46 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * uri.c: Wayne Davison's patch fixing xmlBuildURI()
+ * Makefile.mingw: Wayne Davison's update adding hash.c
+
+Sun Oct 29 18:38:12 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.c: fixed the root evaluation problems
+ * HTMLparser.c result/HTML/doc3.htm: fixed the problem of non
+ ignorable spaces with <b> <bold> <em>
+ * tree.c: fixed a loop in xmlSearchNsByHref()
+
+Fri Oct 27 18:57:32 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.c: applied another XPath patch from TOM
+ * xpath.c include/makefile.am: applied another patch from
+ china@thewrittenword.com (cleanup on IRIX).
+
+Fri Oct 27 13:45:28 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xml-config.1: received a fixed version from Fredrik Hallenberg
+ <hallon@lysator.liu.se>
+
+Thu Oct 26 16:05:25 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.c textXPath.c xpathInternals.h: applied TOM <ptittom@free.fr>
+ cleanup patch for XPath
+
+Wed Oct 25 21:31:10 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * patched to redirrect all "out of context" error messages to
+ a reconfigurable routine. The changes are:
+ * xmlerror.h : added the export of an error context type (void *)
+ an error handler type xmlGenericErrorFunc there is an interface
+ xmlSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler);
+ to reset the error handling routine and its argument
+ (by default it's equivalent to respectively fprintf and stderr.
+ * all the c files: all wild accesses to stderr or stdout within
+ the library have been replaced to calls to the handler.
+
+Wed Oct 25 15:27:19 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: release 2.2.6
+ * xpath.[ch] xpointer.c xpathInternals.h: added xpathInternals.h
+ exporting the inner functions of xpath for extension modules
+ * doc/*: updated and rebuilt the doc
+
+Wed Oct 25 12:48:55 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanohttp.c : applied Wayne HTTP cleanup patch
+ * tree.[ch]: applied TOM <ptittom@free.fr> for xmlNodeSetBase()
+ and xmlNodeSetSpacePreserve()
+
+Wed Oct 25 12:11:03 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.c: closing bug #29260
+
+Tue Oct 24 18:49:34 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * hash.[ch] debugXML.c: expanded/enhanced the API, added
+ multikey tuples, made hash structure opaque
+ * valid.[ch]: moved elements, attributes, notations decalarations
+ as well as ID and refs to hash tables.
+ * entities.c: hash cleanup
+ * xmlmemory.c: fixed a dump problem in debug mode
+ * include/Makefile.am: problem passing in DESTDIR= values patch
+ from Marc Christensen <marc@calderasystems.com>
+ * nanohttp.c: removed debugging remains
+ * HTMLparser.c: the bogus tag should be ignored (Wayne)
+ * HTMLparser.c parser.c: fixing a number of problems with the
+ macros in the *parser.c files (Wayne).
+ * HTMLparser.c: close the previous option when opening a new one
+ (Marc Sanfacon).
+ * result/HTML/*: updated the HTML results accordingly
+
+Sun Oct 22 18:39:19 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * entities.[ch] xpath.[ch] hash.[ch] debugXML.c tree.h: added/hacked
+ hash tables from Bjorn Reese <breese@mail1.stofanet.dk>. Switched
+ XPath functions and XML entities table to them. More to come...
+ * xmlIO.c: fixed libxml closing FILEs it didn't open.
+
+Sun Oct 22 13:59:50 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c: coalesce adjacent text nodes
+ * valid.c: handling of blank nodes in DTd validation (raised
+ by problems with a posteriori validation).
+ * nanohttp.c: changing behaviour on HTTP write stuff.
+ * HTMLtree.c: forced body and html to be explicitely closed.
+ * xpath.h: exported more XPath functions.
+
+Sun Oct 15 22:28:32 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Release of 2.2.5
+ * xpointer.c: range() range-inside and other helper functions
+ * parserInternals.c: fixed perf problem raised by rolf@pointsman.de
+
+Sun Oct 15 16:21:27 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * SAX.c: HTML attributes need normalization too (Bjorn Reese)
+ * HTMLparser.[ch]: added htmlIsScriptAttribute()
+
+Sun Oct 15 13:18:36 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/*: rebuilt docs preparing for 2.2.5 release, added URI
+ and XPointer modules
+
+Sun Oct 15 12:13:30 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * SAX.h: closed #25107
+
+Sun Oct 15 12:06:16 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * testSAX.c: fixed problem with cdata reporting
+ * SAXresult/* : updated
+
+Sun Oct 15 12:00:24 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c test/wap.xml result/noent/wap.xml result/wap.xml:
+ Closed bug #27499, added to regression tests
+ * TODO: updated
+
+Sun Oct 15 01:34:37 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c HTMLtree.[ch] SAX.c testHTML.c tree.c: fixed HTML
+ support for SCRIPT and STYLE with help from Bjorn Reese
+ * test/HTML/* result/HTML/*: added simple testcase and updated
+ the existing ones.
+
+Fri Oct 13 18:24:31 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.c xpointer.c: XPointer reorder of ranges start/end and
+ string-range for empty strings
+ * test/XPath/docs/str test/XPath/xptr/chaptersrange
+ test/XPath/xptr/strrange: augmented the XPointer testsuite
+
+Fri Oct 13 12:21:48 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xml.html doc/xmlmem.html: added a module describing memory
+ interfaces and use, updated the main page.
+
+Fri Oct 13 01:23:48 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.c nanohttp.c xmlIO.c: Wayne Davison Win32 patch
+ nanoftp code work on Windows too now
+
+Fri Oct 13 00:54:37 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * testXPath.c xpath.[ch]: moved some debug functions to xpath core
+ * xpointer.c: implemented string-range() at least a good first version
+ * test/XPath/docs/str test/XPath/xptr/strrange
+ result/XPath/xptr/strrange: the string-range() tests
+
+Thu Oct 12 10:02:59 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Makefile.am include/Makefile.am include/win32config.h
+ win32/Makefile.mingw: fixed problems reported by Wayne Davison
+ and make distcheck
+
+Thu Oct 12 01:44:08 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanohttp.c: added xmlNanoHTTPTimeout(int delay), removed a bug
+ xmlNanoHTTPMethod on input MimeType Tony Lam <Tony.Lam@eng.sun.com>
+ * xpointer.c: slight extension of xmlXPtrLocationSetMerge
+
+Thu Oct 12 01:37:53 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * config.h.in configure.in nanoftp.c nanohttp.c xmlversion.h.in :
+ patch for socklen_t detection by
+ Albert Chin-A-Young <china@thewrittenword.com>
+
+Wed Oct 11 17:53:57 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c valid.c xmllint.c: Fixed a few postvalidation bugs
+ and added a --dtdvalid option to xmllint used to test it
+
+Wed Oct 11 15:01:29 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xml-config.1 Makefile.am libxml.spec.in: adding a man page for
+ xml-config by Fredrik Hallenberg <hallon@lysator.liu.se>
+
+Wed Oct 11 12:41:30 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.[ch] xpointer.[ch]: worked on XPath functions and variable
+ handlings (registration, lookup, cleanup)
+
+Wed Oct 11 01:46:44 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in Makefile.am include/makefile.am: adding XPointer
+ and XPtrtests target
+ * xpointer.[ch] : new files for XPointer support
+ * test/XPath/xptr result/XPath/xptr: added XPointer testsuite and
+ more XPath tests
+
+Wed Oct 11 01:23:25 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: fixed, very broken, make distcheck works again
+
+Wed Oct 11 02:53:10 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * More work toward 2.2.5, integrated a number of patches
+ * configure.in Makefile.am win32config.h.in: trying to cleanup
+ make distcheck .... huh ...
+ * include/Makefile.am include/win32config.h: new directory
+ for includes
+ * win32/Makefile.mingw win32/README.MSDev win32/libxml2/libxml2.dsp
+ updated the makefiles and instructions for WIN32
+ * xpath.c: small fixes
+ * test/XPath/ results/XPath: updated the testcases and results
+ * HTMLparser.c nanohttp.c testXPath.c: incorporated provided or
+ suggested patches
+ * valid.c: fixed an ID bug
+
+Mon Oct 9 14:28:56 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * moved xml-error.h to xmlerror.h: seems this allowed to bypass
+ the automake bug where wrong dependencies were generated.
+ * xpath.[ch]: worked on XPointer
+
+Fri Oct 6 12:58:04 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in Makefile.am: 2.2.5, ship the include in an
+ include/libxml subdirectory, use symlinks when using CVS
+ * testSAX.c: fixed small bug
+ * testXPath.c: changed the way testfiles are parsed
+ * debugXML.c: same kind of cleanup when parsing an argument expression
+ XPath/XPointers can have blanks embedded
+ * xpath.[ch]: more cleanup, reorgs for XPointer work
+ * parserInternals.c parser.c HTMLparser.c: fixed wrong include
+ * win32/README.MSDev win32/libxml2/libxml2.dsp: Windows stuff
+
+Thu Oct 5 18:13:15 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * debugXML.c testXPath.c xpath.[ch]: got pissed by some nastyness
+ in the XPath engine, rewrote large parts of it, now it's far
+ cleaner and in sync with the REC not an old WD. Fixed a parsing
+ problem in the interactive XML shell found when testing XPath.
+
+Wed Oct 4 15:25:53 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * debugXML.c testXPath.c xpath.[ch]: More work on XPath/Xpointer,
+ incorporated "(TOM)" <ptittom@free.fr> patches rebuilt the XPath
+ examples with the extra test
+
+Wed Oct 4 14:39:01 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c xmlIO.c xmlIO.h: fixed bug 26650, and improved
+ the global init function.
+
+Tue Oct 3 11:28:52 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c: Doohhh, attribute name parsing was still case
+ sensitive ! Fixed this ...
+ * result/HTML/* : updated the tests results accordingly
+
+Mon Oct 2 23:47:32 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.[ch] debugXML.c testXPath.c: fixed the XPath evaluation
+ engine, should be far more stable, incorporated a new version of
+ preceding/following axis, need testing
+ * uri.c: fixed file:///c:/a/b/c problem
+ * test/XPath/tests/idsimple: augmented the XPath tests
+
+Sun Oct 1 22:33:00 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/* rebuilding docs for 2.2.4 release
+
+Sun Oct 1 22:16:33 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: releasing 2.2.4
+ * parser.[ch]: added xmlStrEqual()
+ * HTMLparser.c HTMLtree.c SAX.c debugXML.c entities.c parser.c
+ tree.c valid.c xlink.c xpath.c: converted all !xmlStrcmp to
+ use xmlStrEqual instead
+ * TODO: updated
+ * added an XPath test
+
+Sun Oct 1 20:19:39 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c: fixed htmlStartCloseIndexinitialized init
+ * entities.h: exported xmlInitializePredefinedEntities
+ * parser.[ch] : added xmlInitParser()
+ * parserInternals.h : had to export htmlInitAutoClose()
+
+Sun Oct 1 16:28:22 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.[ch] : fixed some serious XPath Predicate evaluation
+ problems
+ * Makefile.am : added XPath regression tests to normal tests
+ * uri.c: fixed a problem with local paths, cleanup
+ * parser.c: fixed a problem with large CData sections
+
+Sat Sep 30 16:35:54 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in xml-config.in: patch from "Ben Taylor"
+ <sol7x86@hotmail.com> for solaris shared libs lookup
+
+2000-09-30 Martin Baulig <baulig@suse.de>
+
+ * libxml-2.0.pc.in: Provide pkg-config script.
+
+ * configure.in: Create the libxml-2.0.pc script from the
+ libxml-2.0.pc.in templates.
+ * Makefile.am (pkgconfig_DATA): Install the libxml-2.0.pc
+ script in `$(libdir)/pkgconfig'.
+
+Mon Sep 25 16:23:41 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c parser.c tree.c tree.h: Avoiding a few warning
+ when compiling with MSC
+
+Sun Sep 24 20:32:52 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.c: patch for normalize-string() substring-before(),
+ substring-after() and translate() functions from Bjorn Reese
+ <breese@mail1.stofanet.dk>
+ * libxml.m4 Makefile.am: added libxml.m4 from Debian ?
+ Fredrik Hallenberg <hallon@lysator.liu.se>
+ * TODO: updated
+
+Sun Sep 24 10:00:49 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlversion.h.in nanoftp.c nanohttp.c: traying to work out the
+ problem of socklen_t being undefined on a number of platforms
+ * debugXML.c: fixed a compilation problem when without snprintf
+
+Sat Sep 23 12:19:45 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c uri.c: Another patch from Wayne Davison, correcting
+ an URI bug and a fix for the control-character-induced infinite loop
+ * nanohttp.c: preventive fix for compiling on WIN32
+
+Fri Sep 22 18:06:08 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlint.c: closing bug #25000
+
+Fri Sep 22 14:17:53 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlIO.h tree.h: made xmlNodeDump() and xmlNodeDumpOutput() public
+ * parser.[ch] nanohttp.c HTMLtree.c HTMLparser.c tree.c: applied and
+ modified slightly Wayne Davison patch adding xmlStrcasecmp and
+ related function, fixing xmlStrncmp(), and associated cleanup
+ * result/HTML/entities.html.sax: updating result
+
+Tue Sep 19 14:20:10 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * uri.c: applied patch for URI escaping from Wayne Davison
+ <wayned@blorf.net>
+ * tree.c parserInternals.c HTMLparser.c: memset checks patches
+ from Denis Barbier <barbier@imacs.polytechnique.fr>
+ * HTMLparser.c: UTF8 characters in HTML tag-attribute values
+ patch from Wayne Davison
+
+Sun Sep 17 18:37:03 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xml.html : updated with new releases, adding "how to help"
+
+Sun Sep 17 17:58:37 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * SAX.c debugXML.c parser.c parserInternals.c tree.c valid.c xpath.c:
+ removed a few warnings in pedantic mode ...
+ * parserInternals.c parser.c: moved encoding switching function
+ to parserInternals.c
+ * configure.in, doc/Makefile.am libxml.spec.in: released 2.2.3
+
+Sat Sep 16 20:12:41 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c parser.c: set ctxt->errNo before calling the
+ error or warning handlers
+
+Wed Sep 13 22:03:18 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parserInternals.c parserInternals.h parser.c Makefile.am:
+ created a new module parserInternals.c, moved most of the
+ code shared by the various parsers there, as well as
+ deprecated code from parser.c. More cleanup of parser.c
+ * uri.c: fixed a problem when URI is NULL
+ * valid.c: speedup when looking for an attribute declaration
+
+Sun Sep 10 17:53:48 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * uri.c tree.c SAX.c parser.c entities.c debugXML.c: finished
+ the cleanup of the computation of URI references when seeking
+ external entities. The URI reference string and the resulting
+ URI are both stored now.
+ * parser.c HTMLparser.c valid.c nanoftp.c nanohttp.c xpath.c:
+ large s(n)printf checks and cleanup from Denis Barbier
+ <barbier@imacs.polytechnique.fr>
+ * xmlversion.h.in tree.h: couple of SGML declarations for a
+ possible docbook module.
+ * result/VC/ : a couple of test output changed due to the change
+ of the entities URI
+
+Sun Sep 10 15:59:58 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.h: added a _private field for linking user's data
+
+Sun Sep 10 15:14:43 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c parserInternals.h: demacroified most of the IS_XXX
+ the gain in size is significant so ...
+
+Fri Sep 8 20:48:29 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * entities.c: cases where looking up entities with doc==NULL
+ covered
+
+Tue Sep 5 12:41:15 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * uri.c: applied Wayne Davison patch
+ * Makefile.in test/URI/uri.data result/URI/uri.data: updated URI tests
+
+Mon Sep 4 13:01:45 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * uri.c testUri.c: applied Wayne Davison patches
+ * test/URI/uri.data result/URI/uri.data: first set of tests/results
+ * Makefile.in: added URItest and included thenin "make tests"
+
+Sun Sep 3 19:19:29 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlversion.h.in: closed bug 22941
+
+Thu Aug 31 16:55:55 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xmlio.html: added doc and example for entity loader
+ redefinition.
+
+Thu Aug 31 14:59:28 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xmlio.html doc/xml.html: added a doc on the I/O mechanism
+ used by libxml
+
+Tue Aug 29 20:22:53 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: Fixed bug on invalid ontent characters and when using
+ push.
+ * xmllint.c: fixed xmllint endling of errors in push mode
+
+Tue Aug 29 11:24:48 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c testHTML.c: applied two new patches from
+ Wayne Davison <wayned@users.sourceforge.net>
+ * result/HTML/*.sax: regenerated HTML SAX output
+ * parser.c: more cleanup.
+
+Mon Aug 28 11:58:12 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.[ch] testHTML.c: applied the second set of
+ patches from Wayne Davison <wayned@users.sourceforge.net>,
+ adding htmlEncodeEntities()
+ * HTMLparser.c: fixed an ignorable white space detection bug
+ occurring when parsing with SAX only
+ * result/HTML/*.sax: updated since the output is now HTML
+ encoded...
+
+Mon Aug 28 00:38:31 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.[ch]: applied some of Wayne Davison
+ <wayned@users.sourceforge.net> patches
+
+Sun Aug 27 22:14:01 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * SAX.c tree.c debugXML.c: fixed bogus behaviour when an
+ undeclared namespace prefix was used, added a warning.
+ Cleaned up support w.r.t. entities, spilling out a warning
+ and being pedantic on lookups.
+ * test/warning/ent9 : added testcase for previous example.
+ * TODO: updated
+ * parserInternals.h parser.c: changed the way names are parsed
+ now allow infinite size and decrease penalty for normal use
+ * parser.c: Started a big cleanup/check of the parser code,
+ fixed some of the most tortuous entity code, spotted code
+ unused anymore
+ * test/*: added tests for very long names and related nasty
+ things.
+
+Sat Aug 26 23:31:04 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/encoding.html: added encoding aliases doc
+ * doc/xml.html: updates
+ * encoding.[ch]: added EncodingAliases functions
+ * entities.[ch] valid.[ch] debugXML.c: removed two serious
+ bottleneck affecting large DTDs like Docbook
+ * parser.[ch] xmllint.c: added a pedantic option, will be
+ useful
+ * SAX.c: redefinition of entities is reported in pedantic mode
+ * testHTML.c: uninitialized warning from gcc
+ * uri.c: fixed a couple of bugs
+ * TODO: added issue raised by Michael
+
+Wed Aug 23 01:50:51 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/encoding.html: propagated Martin Duerst suggestions
+
+Wed Aug 23 00:23:41 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: Fixed Bug#21552: libxml fails to decode &amp;
+ * uri.c testUri.c patches, by Marc Sanfacon (1 left)
+ * parser.c HTMLparser.c: HTML/encoding push problems reportedi
+ by Wayne Davison
+
+Sun Aug 20 17:03:38 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.c nanohttp.c: small cleanup
+ * TODO: updated
+
+Sat Aug 19 22:57:02 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * added an old VC testcase and updated title.xml entity
+
+Sat Aug 19 21:02:08 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c SAX.c tree.c HTMLtree.h result/HTML/*: work
+ done on auto-opening of <p> tags and cleanup of SAX output
+
+Sat Aug 19 18:45:40 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * libxml.4 xmllint.1 Makefile.am libxml.spec.in: added man pages
+
+Sat Aug 19 18:38:53 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xml.html libxml.* structure.*: updated the doc a bit
+
+Thu Aug 17 15:50:00 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * testSAX.c testHTML.c result/HTML/: cleanup of the output
+ of SAX tests
+
+Mon Aug 14 13:56:33 EDT 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Patch from Albert Chin-A-Young <china@thewrittenword.com>:
+ * xmllint.c: workaround a MAP_FAILEd definition bug in DU-4.0
+
+Mon Aug 14 11:10:20 EDT 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Patch from Dave Yearke <yearke@eng.buffalo.edu>:
+ * testHTML.c: fix core dump on Solaris 2.x systems
+ * HTMLparser.c: fix segfault if ctxt->sax->characters() is NULL
+ * result/HTML/*.sax: previous bug fix lead to new results
+
+Mon Aug 14 10:26:09 EDT 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Patch from Albert Chin-A-Young <china@thewrittenword.com>:
+ * configure.in: added --with-readline=DIR to accept alternate
+ path for readline include/library
+ * configure.in: added AM_C_PROTOTYPES to add -Aa -D_HPUX_SOURCE
+ for ANSI under HP-UX
+ * config.in: Removed @LIBS@ from xml-config because @XML_LIBS@
+ includes @LIBS@
+
+Sat Aug 12 23:19:42 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/* : rebuilt the docs
+ * getting ready for 2.2.2 release
+
+Sat Aug 12 16:42:37 EDT 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.[ch]: added xmlGetFeaturesList() xmlGetFeature()
+ and xmlAddFeature()
+ * tree.[ch]: added xmlAddChildList()
+ * xmllint.c: MAP_FAILED macro test
+ * parser.h: added xmlParseCtxtExternalEntity()
+ * valid.c: applied bug fixes removed warning
+ * tree.c: added CDATA block to elements content
+ * testSAX.c: cleanup of output
+ * testHTML.c: added SAX testing
+ * encoding.c: better error recovery
+ * SAX.c, parser.c: fixed one of the external entity processing
+ of the OASis testsuite
+ * Makefile.am: added HTML SAX regression tests
+ * configure.in: bumped to 2.2.2
+ * test/HTML/ result/HTML: added a few of HTML tests, and added the
+ SAX results
+
+Fri Aug 4 11:21:50 PDT 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: patch for HP compiler
+
+2000-08-04 Sven Heinicke <sven@zen.org>
+
+ * xmllint.c: Was coredumping sometimes when the file given didn't
+ exist.
+
+Sat Jul 22 05:59:05 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c xmlIO.[ch]: fixed the problem of encoding support
+
+ when using in memory parsing. Need some cleanup.
+ * xmllint.c configure.in: added a --memory flag to test memory
+ parsing
+
+Fri Jul 21 17:09:57 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanohttp.c: fixed socklen_t replacement to unsigned int
+ * parser.c: fixed a space handdling missing at the end of
+ production 28 DOCTYPE.
+ * xmlmemory.c: fixed a stupid bug on the routine to override
+ allocation functions
+ * TODO: updated
+
+Fri Jul 14 17:01:14 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/ regenerated the docs
+
+Fri Jul 14 16:12:20 MEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/encoding.html doc/xml.html: added I18N doc
+ * encoding.[ch] HTMLtree.[ch] parser.c HTMLparser.c: I18N encoding
+ improvements, both parser and filters, added ASCII & HTML,
+ fixed the ISO-Latin-1 one
+ * xmllint.c testHTML.c: added/made visible --encode
+ * debugXML.c : cleanup
+ * most .c files: applied patches due to warning on Windows and
+ when using Sun Pro cc compiler
+ * xpath.c : cleanup memleaks
+ * nanoftp.c : added a TESTING preprocessor flag for standalong
+ compile so that people can report bugs more easily
+ * nanohttp.c : ditched socklen_t which was a portability mess
+ and replaced it with unsigned int.
+ * tree.[ch]: added xmlHasProp()
+ * TODO: updated
+ * test/ : added more test for entities, NS, encoding, HTML, wap
+ * configure.in: preparing for 2.2.0 release
+
+Mon Jul 10 16:17:18 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.c: fixed the way the control connection is handled
+ * libxml.spec.in: fixed the dependencies and cleanup
+
+Mon Jul 3 14:37:07 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xml.html: changed the xmlsoft.org structure, updated the
+ examples w.r.t. root and childs
+
+Sun Jul 2 20:51:43 MEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * libxml.spec.in: fixed bug #7419, dependencies fouled for libxml-devel
+
+Sun Jul 2 09:52:45 MEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c: Work on character encoding support for the HTML parser
+ * HTMLparser.c: Fixed some autoopen/autoclose probs for the HTML parser
+ * encoding.c: Fixed a potential memleak in the encoding stuff
+
+Sat Jul 1 13:44:22 MEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/FAQ.html doc/Makefile.am : added a FAQ
+
+Fri Jun 30 20:29:08 MEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c HTMLtree.c SAX.c valid.c tree.h : more cleanup
+ of the HTML parser to force it to not bypass SAX
+
+Fri Jun 30 11:19:59 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * win32config.h.in: updated
+ * xmlversion.h.in: crap forgot to update this, this mean 2.1.0
+ lacks iconv support :-( need to release 2.1.1
+ * configure.in: release 2.1.1
+ * HTMLparser: fixed bug #14784
+ * xpath.c HTMLparser.c encoding.c parser.c: fix warning raised
+ by Windows compiler
+ * HTMLparser.c SAX.c HTMLtree.h tree.h: create HTML document in
+ the SAX startDocument() callback.
+ * TODO: updated
+
+Thu Jun 29 12:06:48 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * added xmlStopParser()
+
+Wed Jun 28 23:10:26 MEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: 2.1.0 prerelease
+ * Large resync between W3C and Gnome tree
+ * nanoftp, nanohttp.c: fixed stalled connections probs
+ * HTMLtree.c SAX.c : support for attribute without values in
+ HTML for andersca
+ * valid.c: Fixed most validation + namespace problems
+ * HTMLparser.c: start document callback for andersca
+ * debugXML.c xpath.c: lots of XPath fixups from Picdar Technology
+ * parser.h, SAX.c: serious speed improvement for large
+ CDATA blocks
+ * encoding.[ch] xmlIO.[ch]: Improved seriously saving to
+ different encoding
+ * example/Makefile.am example/gjobread.c tree.h: work on
+ libxml1 libxml2 convergence.
+ * config.h.in parser.c xmllint.c: added xmlCheckVersion()
+ and the LIBXML_TEST_VERSION macro
+
+Fri Jun 23 22:26:07 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xml.html: various patches and improvements typo fixed by
+ Felix Natter
+ * doc/libxml-doc.el: Emacs module to lookup the libxml documentation
+ from Felix Natter <fnatter@gmx.net>
+
+Sat May 6 10:09:45 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/upgrade.html: updated with instructions for support of both
+ libxml-1.x and libxml-2.x
+ * doc/gjobread.c : applied Todd Dukes <tdukes@ibmoto.com> patch
+ for 2.x support and also fixed includes
+
+Wed May 3 14:21:25 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * encoding.[ch], xmlIO.[ch], parser.c, configure.in : revamped
+ the encoding support, added iconv support, so now libxml if
+ compiled with iconv automatically support japanese encodings
+ among others. Work based on initial patch from Yuan-Chen Cheng
+ I may have broken binary compat in the encoding handler
+ registration scheme, but that was so utterly broken I don't
+ expect anybody to have used this feature until now.
+ * parserInternals.h: fixup on the CHAR range macro
+ * xml-error.h, parser.c: catch URL/URI errors using the uri.c
+ code.
+ * tree.[ch]: added xmlBufferGrow(), was needed for iconv
+ * uri.c: added xmlParseURI() I can't believe I forgot to
+ implement this one in 2.0 !!!
+ * SAX.c: moved doc->encoding update in the endDocument() call.
+ * TODO: updated.
+
+Mon Apr 24 13:30:13 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.h: removed extraneous xmlRemoveProp definition
+ * TODO: added item about --disable-corba configure switch
+ * tree.c parser.c: fixed problems for xmlCopyDoc and postvalidation
+ * nanoftp.c: fixed include problems giving troubles on AIX and
+ slowlaris
+ * xmlIO.[ch] valid.h tree.[ch] xlink.c xmlmemory.c uri.c
+ parser.c nanoftp.c nanohttp.c SAX.c testSAX.c :
+ comment and headers changes to lower gtk-doc number of warnings
+ * doc/html/*: rebuilt docs
+
+Sun Apr 16 11:23:29 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HACKING: documented the tag for 1.x and instructions
+
+Wed Apr 12 15:47:22 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlIO.[ch] parser.[ch]: More interfaces for new I/O functions
+ xmlNewIOInputStream, xmlParserInputBufferCreateIO,
+ xmlCreateIOParserCtxt
+ * parser.c parserInternals.h: speedup of IS_CHAR like macros,
+ significant overall improvement
+ * xmllint.c: added I/O test to xmllint
+ * testSAX.c: added a speed test
+ * doc/* : updated/regenerated
+
+Sat Apr 8 14:54:54 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.c uri.h parserInternals.h: cosmetic changes from
+ "Timur I. Bakeyev" <timur@bat.ru>, including making
+ xmlCreateURI() public
+
+Fri Apr 7 18:35:02 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlIO.[ch] parser.c: cleane up the xmlParserInputBuffer mess
+ and the code at the same time. Added a clean mechanism for
+ overload or added input methods: xmlRegisterInputCallbacks()
+ * tree.c: fixed xmlPrevSibling and xmlNextSibling per
+ Christophe Le Gal (Christophe.Le-Gal@imag.fr) input
+ * TODO: updated
+ * doc/* : updated/regenerated
+ * doc/Makefile.am: tweaks to avoid problem with libxml link in the
+ source dir
+
+Wed Apr 5 21:11:35 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * testURI.c: yet another forgotten commit, I should get some sleep !
+
+Wed Apr 5 20:36:46 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmllint.c: forgot to commit this too ?
+
+Wed Apr 5 16:22:44 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlversion.h.in : forgot to commit this previously
+
+Mon Apr 3 21:47:10 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: preparing libxml-2.0.0 version looks Ok so far
+ * README TODO: updated for release
+ * uri.c uri.h: added authority parsing/saving
+ * uri.c testURI.c Makefile.am: moved the testing code to testURI.c
+ * xmlversion.h.in configure.in nanoftp.[ch] nanohttp.[ch] encoding.h
+ debugXML.[ch] xpath.[ch] xmlIO.c tester.c testXPath.c testHTML.c
+ tree.c HTMLtree.c HTMLparser.c tree.c tree.h parser.c
+ Makefile.am : added compile-time customization of libxml
+ --with-ftp --with-http --with-html --with-xpath --with-debug
+ --with-mem-debug
+ * *.[ch] autoconf.sh : moved to an absolute addressing of includes :
+ #include <libxml/xxx.h> I hope it won't break too much stuff
+ and will be manageable in the future...
+ * xmllint.c Makefile.am libxml.spec.in : renamed tester.c to xmllint.c
+ and added xmllint to the installed programs
+ * uri.h: added xmlFreeURI()
+
+Fri Mar 24 14:35:21 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * uri.c uri.h: finished the escaping handling, the base support
+ and the URI path normalization. Looks good just lacks the
+ authority content parsing code.
+ * Makefile.am: added instructions to generate testURI
+ * TODO: updated
+ * doc/xml.html, doc/smallfootonly.gif doc/w3c.png: updated,
+ added links and icons for W3C and Gnome
+
+Mon Mar 20 14:05:26 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlmemory.[ch] : seems I forgot to actually update the files in
+ the last commit :-)
+ * doc/xml.html doc/html/* : updated and uploaded the docs
+
+Mon Mar 20 12:33:51 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * test/valid/dtds/xhtml*: removed RCS infos (pain with CVS)
+ * TODO: updated
+ * xmlmemory.[ch] : added xmlMemSetup() and xmlMemGet() to override
+ libxml default allocation function with another set (like gmalloc/
+ gfree).
+ * Makefile.am, uri.c, uri.h: added a set of functions to do
+ exact (literally copied from the RFC 2396 productions) parsing
+ and handling of URI. Will be needed for XLink, one XML WFC,
+ XML Base and reused in the nano[ftp/http] modules. Still work
+ to be done.
+
+Tue Mar 14 20:52:35 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in, libxml.spec.in : libxml2
+ * doc/* : updated the doc page, rebuilt the docs
+
+Tue Mar 14 19:11:29 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * all: tagged LIB_XML_1_X
+ * *.c *.h : updated from W3C CVS tree
+ * configure.in : 2.0.0-beta
+ * libxml.spec.in : libxml2 package nam
+ * result/* : new version of the tests output
+
+Mon Mar 6 09:34:52 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xml.html, doc/update.html: updated docs, 1.8.7
+
+Sat Mar 4 16:14:42 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/* : rebuilt the docs
+ * parser.c: final patch on #6766
+ * valid.c: small patch on validity checks.
+
+Sat Mar 4 12:38:41 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/upgrade.html: instruction on how to upgrade from 1.x to 2.x
+ added
+ * parser.c: adding xmlKeepBlanksDefault() as a way to manage
+ compatibility w.r.t. XML spec and existing code.
+
+Thu Mar 2 04:45:15 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: seems a better solution to <a> </a> exists,
+ will try it for a while
+
+Thu Mar 2 02:26:13 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: tried to remove the <a> </a> generating <a/>
+ this is hard. Left a flag for that purpose. Fixed bug #6766
+ * configure.in: prepared 1.8.7 not released, due to previous
+ problem
+
+Thu Mar 2 03:03:50 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xml.html : applied second patch from Paul DuBois
+
+Tue Feb 29 23:55:13 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xml.html : applied patch from Paul DuBois
+
+Thu Feb 3 16:36:39 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c HTMLparser.c: do a bit of bufferization in push mode.
+
+Thu Feb 3 15:59:37 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.c nanohttp.c tree.c HTMLtree.[ch] debugXML.c xpath.c: Fixed
+ compilation warnings on various platforms.
+ * parser.c: Fixed #5281 validity error callbacks are now deactivated
+ by default if not validating.
+
+Thu Feb 3 13:46:14 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.c, win32config.h.in: patches to compile on WIN32
+
+Wed Feb 2 22:51:16 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.c: snprintf/sprintf patch courtesy George Katsirelos
+ <gkatsi@cs.toronto.edu>
+
+Mon Jan 31 18:58:21 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.c nanohttp.c: Fixed '#' and '?' stripping when
+ processing URLs
+
+Mon Jan 31 14:25:57 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.[ch]: cleanup, bug fixes, integration in rpmfind, added
+ xmlNanoFTPUpdateURL for persistent control connections.
+ * configure.in: 1.8.6
+
+Thu Jan 27 17:52:29 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanohttp.[ch], nanoftp.[ch]: cleanup, added proxy support
+ * tree.[ch] : added xmlSaveNoEmptyTags
+
+2000-01-29 James Henstridge <james@daa.com.au>
+
+ * nanoftp.c: include <netinet/in.h> for IPPROTO_TCP.
+
+ * Makefile.am: added nanoftp.[ch] to the build.
+
+Wed Jan 26 18:14:55 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.[ch]: cleanup, comments, API
+ * debugXML.c : fixed a bug in the cat command
+ * doc/*: regenerated the docs
+
+Wed Jan 26 16:52:50 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanoftp.[ch] parser.c xmlIO.[ch]: added a Nano FTP implementation
+ * debugXML.c : fixed a bug in the cat command
+ * valid.c: fixing some small probs
+ * libxml.spec.in: get rid of the SNAP suffix
+ * doc/xml.html: updated the status
+
+Mon Jan 24 14:31:09 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xml-config.in: xml-config --version to just return the
+ version number
+ * xpath.c: some cleanup w.r.t. axis when the current node is
+ an attribute.
+ * TODO: updated
+
+Tue Jan 18 18:46:06 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: prepared for libxml-1.8.5
+ * doc/* recompiled the documentation
+
+2000-01-17 Jody Goldberg <jgoldberg@home.com>
+
+ * configure.in : WARNING autoconf subtlety alert :
+ Use AC_CHECK_HEADERS rather than AC_CHECK_HEADER
+ when looking for zlib.h so that HAVE_ZLIB_H is defined.
+ * config.h.in : Have a #undef for HAVE_ZLIB_H so that it will
+ get defined by AC_CHECK_HEADERS.
+
+Mon Jan 17 17:04:12 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c: fixed a hideous bug in xmlGetProp() thanks to
+ Rune.Djurhuus@fast.no
+
+Sat Jan 15 15:09:06 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * TODO: updated
+ * tree.c, parser.c: made sure that only memory alloc problems
+ and internal parser errors are allowed to write to stdout or
+ stderr.
+
+Thu Jan 13 11:49:11 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c : restored xmlNewGlobalNs since this seems used by
+ a lot of existing code :-(, fixed a bug in xmlNewNs
+ * nanohttp.c: fixed a problem with INCLUDE_WINSOCK
+ * HTMLparser.c, parser.c, entities.c, valid.c : removed all calls
+ to exit() from the library code.
+ * xpath.c, parser.c: removed bugs or unused code detected by
+ Windows compilers
+ * parser.c: started adding interfaces for parsing well balanced
+ XML fragments
+ * configure.in: releasing 1.8.4
+ * doc/* : rebuilt the docs
+
+Sun Jan 9 23:03:20 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch] : added xmlNewDocFragment() for DOM
+ * testHTML.c: uninitialized variable.
+
+Wed Jan 5 17:29:17 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/* : rebuild the docs
+
+Wed Jan 5 17:08:43 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * acconfig.h: readline and history patch
+ * valid.[ch]: added xmlRemoveID() and xmlRemoveRef()
+ * tree.c: added check and handling when possibly removing an ID
+ * tree.c, HTMLparser.h, HTMLtree.h: fixed entities parsing
+ and saving.
+ * test/HTML/entities.html result/HTML/entities.html* : test for
+ various entities reference cases
+ * result/HTML/* : as a result output of some testcase have
+ changed
+ * HTMLparser.c, parser.c: fixed a bug in the push mode triggered
+ by previous example. added xmlParseTryOrFinish().
+ * xpath.h tree.h parser.h valid.h xmlIO.h xlink.h encoding.h
+ entities.h debugXML.h HTMLparser.h: changed the way struct are
+ declared to allow gtk-doc to expose those
+ * parser.c: closed bug #4960
+ * Makefile.am configure.in: Applied patch from
+ Albert Chin-A-Young <china@thewrittenword.com> for better zlib
+ and math/socket libs detection
+
+Mon Jan 3 18:29:43 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in, Makefile.am: link tester against readline
+ * doc/xml.html doc/*/*: updated and rebuilt the documentation pages
+
+Mon Jan 3 11:58:05 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch]: added xmlRemoveProp
+ * win32config.h.in nanohttp.c: avoid including the Windows
+ socket stuff in every C files
+ * parser.c: removed an indetermination xmLDecl/PI(xml...) in
+ the XmL parser(s)
+ * test/ns4 result/ns4 etc...: added test case for previous prob
+ * tree.c: xmlNewNs wasn't checking for double definition
+ * Makefile.in: fixed a problem with dist-hook duplicates
+ * parser.[hc], xmlIO.c: fixed the loading of external entities
+ APIs, now xmlLoadExternalEntity() is used everywhere and
+ setting up an app specific front-end using the
+ * SAX.c parser.c: some fixes, now the xhtml spec validates
+ with the xhtml DTD.
+ * error.c: fixed crashes in case of no input stream
+ * test/valid/[dtds/]/xhtml* : added the xhtml spec and dtds
+ to the validation tests and results
+
+Wed Dec 29 15:29:52 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.[ch] testHTML.c: added push mode for the HTML parser
+ too htmlCreatePushParserCtxt() and htmlParseChunk()
+ * parser.c: a bit of cleanup.
+ * SAX.c, HTMLparser.c: some attributes may not have values (contrary
+ to XML) removed the last mem leak known
+ * HTMLtree.c: output message cleanup
+ * xmlmemory.c: display content info about memory blocks
+ * result/HTML/wired.* : missing att value warning change
+
+Tue Dec 28 17:42:41 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/* : rebuilt the documentation
+
+Tue Dec 28 18:44:22 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.[ch] parserInternals.h: Push parser for XML,
+ seems to work fine now
+ * tester.c debugXML.[ch]: Added an XML shell debug facility and
+ --push for push testing
+ * xpath.[ch] : cleaned up for Shell usage, added missing APIs
+ * testSAX.c: added --push
+ * HTMLtree.[ch] tree.[ch]: new functions for dumping parts of the
+ subtree
+ * xmlIO.[ch] : enriched API + fixes for push mode
+ * entities.[ch]: added the entity content length to the struct.
+ * xmlmemory.[ch]: new API to show the last entries for the shell
+ * valid.c: added required attribute testing
+ * SAX.c: the cdata callback now merge contiguous fragments
+ * HTMLparser.c: cleanup of some macros
+
+Wed Dec 22 12:20:53 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: fix for PIs name starting with xml
+ * tree.c: fixed a potential problem with || and && ops
+ * *.c, configure.in win32config.h.in : generate win32config.h for
+ those on the Other Side !
+
+Tue Dec 21 17:22:17 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: fixed a stupid = vs. == bug :-(
+ * doc/gnome-xml.sgml: s/glade/xml/
+
+Tue Dec 21 14:29:34 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in, doc/xml.html : bug fix release 1.8.2
+ * debugXML.h nanohttp.h xml-error.h xmlmemory.h xpath.h :
+ Hopefully the end of that silly C++ include problem
+ * tree.[ch]: Added a few functions: xmlReplaceNode, xmlAddPrevSibling,
+ xmlAddNextSibling, xmlNodeSetName and xmlDocSetRootElement
+ * HTMLparser.c HTMLparser.h HTMLtree.c: When saving HTML try to avoid
+ troubles with autoclosed elements when the stree shape doesn't
+ follow the DtD specs. Added htmlIsAutoClosed() and
+ htmlAutoCloseTag()
+ * result/HTML/*.htm*: Updated the HTML examples regression tests output
+ * SAX.c tree.c: fixed bug on defaulting namespaces on attributes
+ * debugXML.c: fixed a bug on printing default namespaces.
+ * HTMLtree.c: fixed a problem when outputing XML parsed docs as HTML
+
+Mon Dec 20 16:20:55 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * result/HTML/*.htm[l] : updated the HTML regression tests according
+ to the new output
+ * xpath.h xml-error.h valid.h tree.h parser.h entities.h SAX.h
+ HTMLtree.h tree.c entities.c: headers tweakings to avoid a nasty
+ problem due to intermix of extern "C" { ... } declarations for C++
+ and recursive includes in the headers
+
+1999-12-20 Chris Lahey <clahey@umich.edu>
+
+ * HTMLtree.c: Made it so that html nodes with a single child do
+ not insert a carriage return before or after the child node.
+
+Sat Dec 18 16:07:03 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in, doc/xml.html : bug fix release 1.8.1
+ * parser.c: fixed bug #4344
+ * xpath.h xml-error.h xlink.h nanohttp.h debugXML.h SAX.h HTMLparser.h
+ added the glue to avoid C++ problems
+ * doc/* : regenerated the documentation
+
+Thu Dec 16 16:19:29 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c: fixed a bug introduced in 1.8.0 and breaking default
+ namespace recognition, and Dia as a resul :-(
+ * encoding.c: closed bug #3950
+
+Wed Dec 15 19:22:23 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * valid.c: debugging a posteriori validation, except URI expansion
+ stuff this should be fixed now
+ * parserInternals.h: fixed a bug in IS_BASECHAR reported by
+ Carl Nygard <cnygard@bellatlantic.net>
+ * tester.c: added --postvalid, cleaning of the code
+ * tree.[ch]: added xmlDocGetRootElement()
+
+Tue Dec 14 20:30:34 PST 1999 Ramiro Estrugo <ramiro@eazel.com>
+
+ * SAX.h, tree.h : changed 'namespace' to 'nameSpace' to workaround
+ c++ losage.
+
+Sun Dec 12 13:08:15 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in, doc/xml.html : bumped to 1.8.0
+ * xlink.[ch], Makefile.am : added framework for link detection
+ * parser.h: added nbChars to parser context, needed for cleanup.
+ * xmlmemory.c: removed a nasty bug when out of mem
+ * valid.[ch]: adding namespace support for attribute decl
+ * tester.c: added --debugent option
+ * debugXML.[ch]: added xmlDebugDumpEntities()
+ * parser.c: cleanup, avoiding use of CUR_PTR like plague, using
+ buffers instead, this was really needed, validation was breaking
+ in strange ways due to that. Added xmlParseStringPEReference()
+ and other parsing from strings functions. Entities processing
+ modified again, but PERef are still not handled correcly but
+ unless you're Eve Maller you won't notice :-)
+ * HTMLparser.c: large changes toward reliability, and switched to
+ lowercase internal tags, XHTML is lowercase, so it will help
+ that output is closer to next version.
+ * doc/* : regenerated the documentation, it is now hosted at
+ http://xmlsoft.org/ (same bits I just bought the domain :-)
+
+Fri Dec 3 13:46:32 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * SAX.h, SAX.c, makefile.am: added SAX.h mostly useful for the
+ doc generation
+ * parser.c: fixed bugs #3908 and #3937 and a memory leak
+ in the SAX API
+ * doc/*: rebuilt the doc making sure everything appears in the
+ HTML files
+
+Wed Dec 1 10:27:47 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch] HTMLtree.c, debugXML.c, configure.in, xml-config.in:
+ added the patch from Carl Nygard <cnygard@bellatlantic.net>
+ which allow impressive speed improvement on dataset with
+ large text pieces, but at the cost of broken binary
+ compatibility and slightly bigger memory usage.
+ Configure with --with-buffers to activate them, they
+ are protected with XML_USE_BUFFER_CONTENT define.
+ * entities.[ch], parser.c: added xmlCleanupPredefinedEntities(),
+ goal is 0 memory left allocated once parser is no more used
+ * testDAV.c, testHTML.c, testSAX.c, testXPath.c: make sure we
+ call xmlCleanupParser() and xmlMemoryDump()
+
+Wed Nov 24 19:00:06 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch] xmlIO.[ch] parser.c valid.c: code cleanup with -pedantic
+ * parser.[ch] encoding.[ch]: added memory cleanup routines
+ * parser.c: closing bug #3788
+ * doc/*: rebuilt the doc
+
+Tue Nov 23 11:23:55 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch]: closing bug 3748, added xmlNewDocRawNode(),
+ xmlNewTextChild() and xmlSetCompressMode() behaviour.
+ * tester.c: added --compress option
+ * doc/*: rebuilt the documentation
+
+Fri Nov 19 18:41:28 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c: bugfixing, the damn thing MUST not crash even
+ if given /proc/kcore as input !
+ * doc/xml.html doc/*: updated and rebuilt the documentation
+
+Thu Nov 18 14:57:18 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: Fixed some wrongly space collapsing code due to
+ a misreading of the spec.
+ * result/*: fixed the output accordingly
+
+Wed Nov 17 18:28:06 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * encoding.c: bug fix and typos
+ * xmlIO.[ch] parser.c: first bits toward real progressive parsing
+ * parser.c: added attribute normalization closing bug #3597
+ * test/att* result/att* SAXresult/att*: testcase for attribute
+ normalization
+
+Mon Nov 15 18:50:56 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: closing bug #3163 by adding extra flags for the
+ cc compiler on HP-UX
+
+Fri Nov 12 17:41:20 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * valid.[ch] : removed a typo and an enumerated type bug in the
+ xmlAddElementDecl() function
+ * tree.c : I changed xmlSetProp() and xmlNewProp() to do the
+ call to xmlEncodeEntitiesReentrant() so that the functions
+ New, Set and Get are at the same level.
+ * parser.c HTMLparser.c: extra memory allocation bug for
+ attributes detected by someone using libxml in embedded systems :-)
+
+Thu Oct 28 17:49:26 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlmemory.h: turned off mem debug :-\
+
+Mon Oct 25 12:13:25 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: closed bug #2784 a one line fix, but worth pushing
+ a new release out
+ * HTMLparser.c: fixed auto-close bugs on list items, zeroing
+ some structures, comments before and after the
+ main element, and other nastyness
+ * HTMLtree.c tree.c: accomodate the extended HTML supported
+ * configure.in: pushing 1.7.4
+ * test/ent8 and related outputs : added a new test for bug #2784
+ * test/HTML/wired.html and related output: a nasty HTML example
+ * Makefile.am: improved the test scripts
+ * docs/* : reran the documentation extractor, updated xml.html
+
+Thu Oct 14 10:29:56 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c, HTMLtree.c, tree.h: completely revamped the
+ HTMLparser and debugged the HTML related code. HTML documents
+ now have their own type
+ * entities.c: do not dump &apos; for HTML output
+ * xmlmemory.c: improvement, breakpoint mechanism
+ * testHTML.c: added --sax --repeat ...
+ * Makefile.am: improved the HTML tests
+ * valid.[ch]: added xmlValidGetValidElements and
+ xmlValidGetPotentialChildren
+ * tester.c: added --insert to test the 2 new functions
+ * test//* result//* SAXresult//* : regression test cleanup
+ and extension.
+ * doc/html : added doc for new modules gnome-xml-xmlmemory.html and
+ gnome-xml-nanohttp.html
+
+Mon Oct 11 14:31:58 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c: fixed problems with some autoclose tags
+ * tree.c: fixed XML output problems.
+ * result/* SAXresult/*: update of the tests output
+
+Sat Oct 9 11:02:57 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Makefile.am: Arturo patch for xmlConf.sh version info
+ * parser.c: Tim Josling patch for single quoted items
+ * tester.c: Tim Josling patch for tester options usage
+ * tree.h: indent cleanup
+
+Fri Oct 8 16:35:37 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c parser.h : Fixed problems with HTML parsing
+ reported by Kristian Hogsberg Kristensen <hogsberg@daimi.au.dk>
+
+Fri Oct 8 11:37:11 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c : Raph patch for initialization of CORBA fields
+ * parser.c, xpath.c, ...: modification of doc comments
+ * xpath.c : allow spaces in xpath expressions
+
+Mon Sep 27 10:16:43 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlmemory.h: turning off memory debug :-(
+
+Sun Sep 26 13:16:54 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.[ch] : added xmlSAXUserParseFile() and xmlSAXUserParseMemory()
+ better SAX interfaces.
+ * testSAX.c: uses the new SAX routine, avoid fetching any remote
+ entity.
+ * configure.in: 1.7.2
+
+Fri Sep 24 16:01:01 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * libxml.spec.in: fixed the URL
+ * doc/xml.html: improved the documentation front-end
+
+Fri Sep 24 01:06:36 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * nanohttp.c: conditionned references to snprintf with HAVE_SNPRINTF
+
+Fri Sep 24 00:15:58 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * libxml.spec.in: fixed the alpha compile problem
+ * parser.[ch]: changed errno to errNo in the parser context :-(
+ * *.[ch]: changed CHAR to xmlChar to avoid problem on WIN32
+ * doc/xml.html: changed CHAR to xmlChar
+ * doc/html/*: recompiled the documentation
+ * configure.in: 1.7.1
+
+Wed Sep 22 11:40:31 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.h: modified the parser context struct to regain 1.4.0
+ binary compatibility
+ * parser.c, xml-error.h: added errno to the context and defined
+ a set of errors values with update of errno
+ * nanohttp.[ch]: minimalist HTTP front-end for fetching remote
+ DTDs and entities
+ * *.h, *.c: complete cleanup of the use of config.h and include
+ protection depending on the current setup.
+ * overalll debugging, maintenance and bug-fixing on all modules
+ * updated the documentation
+ * ready for 1.7.0
+
+Wed Sep 8 22:46:14 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c : cleanup
+ * SAX.c valid.c valid.h: added ID/IDREF checking
+ * tree.c tree.h: extended doc structure for refs
+ * configure.in: 1.6.2
+ * parser.c: patched bug in SAX user arg call
+ * parserInternals.h: patched missing close in C++ wrapping
+ * testXPath.c xpath.c xpath.h: prepared for extensibility,
+ especially upcoming XPointer implementation.
+ * doc/xml.html: augmented, typo
+
+Sat Sep 4 22:48:05 CEST 1999 Timur Bakeyev <mc@bat.ru>
+
+ * doc/Makefile.am: replaced "install -d " with "mkinstalldirs" -
+ not all invocations of install understand -d.
+
+Sat Sep 4 22:20:07 CEST 1999 Timur Bakeyev <mc@bat.ru>
+
+ * Makefile.am: prepend all the test* calls with $(top_builddir) -
+ to make 'check' works, when builddir != srcdir.
+
+Sat Sep 4 20:25:46 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * doc/xml.html : updated the documentation
+
+Fri Sep 3 00:01:08 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xmlmemory.[ch] Makefile.am :added a memory wrapper to chase
+ not deallocated memory blocks
+ * *.c : replaces all calls to malloc() free() and realloc() to
+ the wrapper functions/macros
+ * tree.c : removed memory leaks dues to calling xmlFreeNode()
+ instead of xmlFreeNodeList()
+
+Wed Sep 1 14:15:09 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c: corrected a stupid bug leading to core dump at
+ tree deallocation. Removed warnings indicated by
+ Stephane.Conversy@lri.fr
+ * entities.c: Fixes Yet Another Stupid Bug, entities were not
+ looked for in the external subset
+
+Mon Aug 30 13:22:26 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c valid.[ch] xpath.c: patched compilation warnings reported
+ on SGI by Stephane.Conversy@lri.fr
+
+Sun Aug 29 22:27:29 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * all .h : changed the prototype declaration indent as in gtk
+ * most .c : working on reducing the TODOs in the code
+ * most .c : cleanup though -pedantic and Insure++
+ * improvements on validation ID checkings.
+ * tree.[ch] SAX.c: added support for namespace on attributes #2022
+ * xml-config.in: closed #1810
+
+Mon Aug 16 03:27:38 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.h, valid.c, valid.h: more work on validity, IDs
+ * xpath.c: added/fixed comparidon and equlity, added a new isinf
+ definition for AIX
+
+Sun Aug 15 21:15:17 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Makefile.am libxml.spec.in: corrected missing xmlConf.sh in
+ the distribution due to a cut'n paste error at last commit
+
+Tue Aug 10 20:28:09 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: upgraded to version 1.4.0
+ * valid.[ch], SAX.c, parser.[ch] parserInternals.h ...
+ Big update, added a large part of the validation process,
+ it should be usable, but some parts are missing
+ * xpath.c: improved the implementation w.r.t. root.
+ * Makefile.am: added more tests
+ * test and result trees: added a lot of tests
+ * libxml.spec.in: export libxml.so.0 and libxml.so.1
+
+Tue Aug 10 11:33:41 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Added an HACKING file
+
+Tue Jul 27 21:43:00 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xpath.[ch] : improvements and debug of the XPath implementation
+ * parser.c, HTMLparser.c : modified the parsers to be progressive
+ * tree.[ch] : extended the Buffer promitives
+ * xmlIO.[ch] : added basic I/O routines providing progressive
+ parsing and ready for I18N conversion plugins
+ * SAXresult/* : the SAX callback sequence maybe slightly different
+ now
+ * test*.c : improved/updated the tests programs
+ * doc/* : recompiled the docs.
+
+1999-07-26 Michael Meeks <michael@edenproject.org>
+
+ * tree.h: Add const to 'content' in xmlNewDocNode, xmlNewChild
+
+ * tree.c: Ditto.
+
+Thu Jul 15 16:17:16 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: upgraded to version 1.4.0
+ * xpath.c, xpath.h, testXPath.c, makefile.am: added code for the XPath
+ draft from W3C. Will be used by XPointer, Xlink, XSL, and possibly
+ XML query language, see http://www.w3.org/TR/xpath for more details.
+ * parser.c, parser.h: added CHAR* related string functions for XPath
+ * HTMLparser.[ch], HTMLtree.c: a bit of cleanup on entities.
+ * doc/gnome-xml.sgml, doc/html/* : added XPath and HTML documentation,
+ rebuild the docs.
+ * Makefile.am, test/XPath/*, result/XPath/*: added an XPathtests target
+ and regression testing capabilities for XPath.
+
+Mon Jul 12 12:36:39 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c, HTMLparser.c: applied patch from John Ellson <ellson@lucent.com>
+ closing bug #1646
+
+Mon Jul 12 11:04:44 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Makefile.am, example/Makefile.am: closed bug #1683
+
+Sun Jul 11 18:16:34 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * example/Makefile.am, configure.in: added the makefile for the
+ gjobread example
+
+Sat Jul 10 14:19:11 CEST 1999 Tomasz KÅ‚oczko <kloczek@pld.org.pl>
+
+ * doc/Makefile.am:
+ - fix which allow "make install DESTDIR=</install/prefix>".
+
+Fri Jul 9 12:10:24 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.c parser.c: applied patch from John Ellson <ellson@lucent.com>
+ which fixed a problem on the file reading-code.
+
+Wed Jul 7 09:28:43 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * HTMLparser.[ch], HTMLtree.[ch]: more work for HTML parsing and
+ output.
+ * Makefile.am, test/HTML/*, result/HTML/*: added HTMLtests targetestHTMLt
+
+Wed Jul 7 00:25:42 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.h : Oops removed the binary compatibility problem
+ * HTMLparser.[ch], HTMLtree.h : More work on the HTML parse/dump
+ * parser.c, HTMLparser.c: applied patches for reading from stdin
+
+Mon Jul 5 18:45:31 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c, entities.c, valid.c: cleanup bug #1591
+ * configure.in: cleanup bug #1592
+ * HTMLparser.[ch], testHTML.c: started adding an HTML parser using
+ the same tree back-end. Hence gdome will be available for it.
+ * doc/Makefile.am: close bug #617
+
+Sat Jun 26 23:36:38 EDT 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: alloctate a per parser context SAX interface block
+
+Tue Jun 22 23:46:32 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * released 1.3.0 with xmlEncodeEntities restoring old behaviour
+ and xmlEncodeEntitiesReentrant with the correct one :-\
+
+Mon Jun 21 14:07:53 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * commit of my internal XML base changes, quite a lot of
+ changes, cleanups, better entities support, framework for
+ new I/O and charset detection and handling
+ * Fixed the configure/Makefile stuff to generate shared libs
+ with the proper version info, so we jumped on rev from
+ 0.0.0 to 1.2.0 ! The binary interfaces have been broken,
+ xmlEncodeEntities() result need to be freed now, and a string
+ xmlParserVersion provide the current library version.
+
+Tue Jun 15 14:24:19 1999 Raph Levien <raph@acm.org>
+
+ * parser.c: fixed a buffer overrun for when you have a very long
+ attribute with no entities in it.
+
+Mon Jun 14 00:17:50 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * added example directory
+ * added example/gjobs.xml gjobread.c, still need a Makefile.in
+
+Wed Jun 2 19:40:58 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Release of libxml-1.1, nearly everything has been touched for
+ this.
+ * Added more regression tests
+ * Updated the documentation
+
+Sat May 29 13:34:42 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch]: unified the XML_NO_CORBA defines.
+ * parser.c encoding.[ch]: started plugging in char encoding detection
+
+Fri May 28 22:58:42 EDT 1999 Manish Vachharajani <mvachhar@vger.rutgers.edu>
+
+ * tree.c: (xmlSaveFile) - removed double call of xmlContentDump.
+ Also freed allocated buffer.
+
+Wed Apr 21 22:07:35 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+ * parser.[ch] tree.[ch] entities.[ch] valid.[ch] : removed the main
+ reentrancy problem at printing. One is left in entities.c, to
+ remove ASAP
+ * testSAX.c : added a test example showing the use of the SAX
+ interface if one doesn't want to build the DOM tree.
+ * html/gnome-xml-*.html html/index.sgml: regenerated the documentation
+
+Mon Apr 5 14:14:40 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.[ch] tree.[ch] SAX.c, parserInternals.h valid.[ch]:
+ large revamping of the parser to use SAX callbacks
+ http://www.megginson.com/SAX/ (or at least a C like interface
+ a la Expat). It's now possible to set up your own callbacks
+ and the parser will not build a DOM tree.
+ * test/* result/*: updated the test suite, I finally removed
+ the old Namespace draft support (PI based).
+
+Fri Apr 2 17:57:32 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Makefile.am: added test result to EXTRA_DIST for make tests
+
+Wed Mar 24 21:37:02 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c, parserInternals.h: moved the chars macro definitions
+ to parserInternals.h
+ * parser.c, error.c: applied patches from "Knut Ã…kesson"
+ <ka@s2.chalmers.se> for clean compilation under MSVC 6 :-o
+
+Tue Mar 23 11:10:15 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xml-config.in : applied patch to make --version work
+
+1999-03-05 Raja R Harinath <harinath@cs.umn.edu>
+
+ * Makefile.am (check-local): Alias for `tests' target. This will
+ cause `make check' to do the right thing.
+ (tests): Don't run tests in srcdir. Also, replaced calls to
+ basename with a `sed' "equivalent".
+
+Fri Mar 5 07:23:53 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Renamed error.h to xml-error.h, corrected Makefile.am to list
+ it in the header and not the sources, updated the doc.
+ Thanks to Tim Mooney <mooney@dogbert.cc.ndsu.nodak.edu> for
+ pointing this out.
+
+Mon Mar 1 13:27:17 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c, parser.h, parserInternals.h: memory leak hunting,
+ exported the inputStream routines.
+ * doc/html/* : updated accordingly
+
+Sun Feb 28 22:51:33 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c, parser.h, parserInternals.h: added a few extra
+ internal calls to allocate and free parser contexts ...
+ * doc/html/* : updated accordingly
+
+Thu Feb 25 11:52:24 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in, Makefile.am, doc/makefile.am : General changes for
+ 1.0.0 release and including the generated HTML documentation.
+
+Thu Feb 25 09:44:52 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * makefile.am : added parserInternals.h, oops.
+
+Mon Feb 22 11:24:56 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parserInternals.h: added this header giving access to the parser
+ internal functions.
+ * doc/Makefile.am : added a rebuild target which rebuilds the full
+ set of documentations
+ * parser.[ch] tree.[ch] valid.[ch]: serious updates w.r.t. parsing
+ the internal subset.
+ * *.c *.h: modifications needed to generate the documentation using
+ gtk-doc, cleanup of functions blocks, reorganisation of struct
+ declarations.
+
+Tue Feb 16 17:27:29 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * Makefile.am, spec, doc/Makefile.am : upgrading to 0.99.8, fixing
+ the tar and spec file to include the beginning of the doc.
+
+1999-02-13 Nuno Ferreira <nmrf@rnl.ist.utl.pt>
+
+ * doc/.cvsignore: Added this file.
+
+Mon Feb 8 19:27:56 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c: fixed xmlGetProp to return "" when the attribute
+ exists, even if the node-list is NULL.
+
+Mon Feb 8 16:10:15 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c: patched an error outputting empty attribute values.
+ * Makefile.am and doc/makefile.am: have been updated during the
+ week-end. Sorry for an empty CVS log, I got a shell problem.
+
+Mon Feb 1 12:10:13 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.h: cleaned up using enums instead of defines
+ * parser.c, valid.[ch]: more work on parsing/output of element
+ declarations
+
+Sun Jan 31 22:06:48 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * valid.[ch], tree.c, parser.c : more work toward full parsing
+ of XML DTDs.
+ * README: added informations about mailing-list and on-line
+ documentation
+
+1999-01-27 Raja R Harinath <harinath@cs.umn.edu>
+
+ * configure.in (XML_INCLUDEDIR): Use -I not -L for includes.
+
+Sun Jan 17 20:06:36 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c, tree.[ch] : more work toward conformance testing,
+ added a last element to accelerate parsing of very flat structures
+ started working on internal subset Element content declaration.
+ * valid.[ch] : first cut at adding code toward validation.
+ * previous changes had also small impact on most files, especially
+ the conformance testing using James Clark test suite.
+
+Sun Jan 17 14:45:06 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * test/* : updated the examples, most of them were not well
+ formed (humm), and added rdf2.
+ * result/* : resulting changes in the output.
+
+Sun Dec 6 13:06:58 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c: changed the behaviour of xmlGetProp on NULL values.
+
+Sat Dec 5 12:25:09 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c: patched a bug in the generation of empty attributes
+
+Fri Nov 27 01:36:54 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * entities.[ch], tree.[ch], tester.c: added copy interfaces
+ for node/trees/documents/... Biggest problem is namespace
+ support when copying subtrees.
+
+Sun Nov 15 19:59:47 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c, entities.c: improve entities and char ref encoding,
+ and cleanups of error messages.
+
+Fri Nov 13 13:03:10 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c, entities.c: simple bug hunting done during rpm2html and
+ rpmfind integration.
+
+Sun Nov 8 13:11:07 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.[ch]: Added interfaces allowing to specify a SAX
+ handler before parsing.
+
+Sun Nov 8 09:39:17 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: redirrect all errors reporting through the SAX
+ error function
+
+Wed Nov 4 14:21:54 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * entities.c: rather use HAVE_SNPRINTF and not depend on glib
+ * libtool, tlmain ...: update of the libtool files
+
+1998-11-04 Miguel de Icaza <miguel@nuclecu.unam.mx>
+
+ * entities.c: Use g_snprintf insteda of snprintf.
+
+Sun Nov 1 14:31:06 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * entities.c, parser.c: debug and cleanup of CharRef handling/saving.
+ added ent5 test for this purpose.
+ * parser.c, parser.h: formatting, comments and UTF-8 planning.
+
+Fri Oct 30 01:36:52 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: fixed? a strange error due to compression on a GWP
+ document.
+
+Thu Oct 29 00:48:45 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch]: bug fixing
+ * entities.[ch]: defined a specific type for predefined entities
+ * doc/xml.html: more documentation on the library, how to use it,
+ overview of the interfaces.
+
+Wed Oct 28 17:56:35 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.[ch]: more cleanup on the API, made the tree mor conformant.
+
+Tue Oct 27 17:54:00 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c: corrected a small bug
+ * doc/xml.html: continuing writing documentation.
+
+Tue Oct 27 17:54:00 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * debugXML.h debugXML.c: added debugging utilities.
+ * tester.c: added --debug switch.
+ * tree.c: patched an incorrect node->type assignment.
+ * parser.c: formatting, ensure that node->doc != NULL in attributes
+
+Tue Oct 27 01:15:39 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.[ch] SAX.c tree.[ch]: large amount of changes to improve
+ entity support and provide an internal representation close to
+ DOM one (entity ref nodes, and attribute value as tree). I tried
+ to preserve the interface but this will surely break some apps
+ (I have to change rpm2html/rpmfind for example). I had to change
+ two interfaces, and the generated tree is somewhat different.
+ * doc/* : started documenting the XML library, the tree and
+ DOM/Corba. This is a first step.
+
+Sat Oct 24 14:23:51 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: Set up the functions comment block, boring but useful.
+ * parser.h, SAX.c, parser.c: now attributes are processed through
+ the SAX interface. The problem is that my SAX interface diverged
+ quite a bit from the original one, well this is not an official
+ spec, and translating it from Java to C is hairy anyway...
+
+Tue Oct 20 02:11:21 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * SAX.c, entities.c, tree.c, encoding.c, error.c: Set up the
+ functions comment block, boring but useful.
+
+Sun Oct 18 20:40:58 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * encoding.[ch], Makefile.am: Added the UTF-8, UTF-16 and ISO Latin 1
+ conversion routines. However they are not yet used to convert the
+ inputs. The core will run with UTF-8.
+
+Sun Oct 18 15:08:19 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c : make sure that the type id is properly set-up when
+ a new object is allocated, needed for DOM.
+
+Sat Oct 17 02:43:21 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.h, tree.c: Ok, the main objects in the tree will be native
+ corba objects, it costs 8 bytes per Node, Attribute and Document
+ but it simplifies the Corba integration a lot (no extra interface
+ objects to allocate/free).
+
+Tue Oct 13 21:46:57 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.h, tree.c, parser.c: added prev and doc pointers to Node,
+ and changed NODEs contants for conformity with DOM Level 1
+
+Wed Oct 7 23:42:46 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * added hooks to keep track of servants when creating objects
+ xmlDoc and xmlNode (for Corba export).
+
+Sun Oct 4 03:18:09 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * added xml-config script.
+
+Thu Oct 1 16:22:37 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * autogen.sh : applied patch from Frederic Devernay <devernay@istar.fr>
+ to autoupdate libtool and automake conf files.
+
+1998-09-30 Miguel de Icaza <miguel@nuclecu.unam.mx>
+
+ * Makefile.am: Use '?' to separate the sed
+ commands as ',' is used when people pass -Wl,something.
+
+Thu Sep 24 15:13:29 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * tree.c, tree.h: added a per-document compression interface.
+
+Tue Sep 22 20:47:38 EDT 1998
+
+ * tree.c, tree.h: added saving with compression and added interfaces
+ to control the compression level (xmlGetCompressMode,
+ xmlSetCompressMode) and a new save to filename function (xmlSaveFile).
+
+Mon Sep 21 20:11:13 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * parser.c: corrected a loop for files of size 0
+
+1998-08-20 Raja R Harinath <harinath@cs.umn.edu>
+
+ * error.h: New file. Contains prototyes from `error.c'.
+
+Thu Aug 13 19:02:34 1998 Tom Tromey <tromey@cygnus.com>
+
+ * Makefile.am (xmlincdir): New macro.
+ (xmlinc_HEADERS): Renamed from include_HEADERS.
+
+Thu Aug 13 00:40:14 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * applied small patch on numeric entities from
+ Christopher Blizzard <blizzard@appliedtheory.com>
+
+Wed Aug 12 23:12:58 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * New release 0.2, removed the old xml_* files so that it's
+ coherent with the other CVS base (W3C), far better conformance
+ to standard, new namespaces, decent entities support, beginning
+ of a SAX-like interface. Nearly nothing left intact, even the
+ test examples ...
+
+1998-07-30 Christopher Blizzard <blizzard@appliedtheory.com>
+
+ * .cvsignore: Add .deps dir
+
+Sun Jul 26 17:29:52 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * xml_tree: changed the memory allocation scheme for name in xmlNewNode
+
+Sun Jul 26 00:17:51 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: added test for CPP
+ * AUTHORS, Changelog: the original ones didn't get commited but the
+ glib ones instead, fixed.
+ * Makefile.am: corrected an error in library naming
+
+Fri Jul 24 16:47:14 1998 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * integrated code developped at W3C
+ * changed the original Copyright
+ * migrated to automake
+ * prefixed the filenames by xml_ to avoid filename clashes
+
+#
+# vim: set enc=utf-8
+#
diff --git a/libxml2-2.9.10/Copyright b/libxml2-2.9.10/Copyright
new file mode 100644
index 0000000..d613185
--- /dev/null
+++ b/libxml2-2.9.10/Copyright
@@ -0,0 +1,23 @@
+Except where otherwise noted in the source code (e.g. the files hash.c,
+list.c and the trio files, which are covered by a similar licence but
+with different Copyright notices) all the files are:
+
+ Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/libxml2-2.9.10/DOCBparser.c b/libxml2-2.9.10/DOCBparser.c
new file mode 100644
index 0000000..f12511b
--- /dev/null
+++ b/libxml2-2.9.10/DOCBparser.c
@@ -0,0 +1,305 @@
+/*
+ * DOCBparser.c : an attempt to parse SGML Docbook documents
+ *
+ * This is deprecated !!!
+ * Code removed with release 2.6.0 it was broken.
+ * The doc are expect to be migrated to XML DocBook
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel@veillard.com
+ */
+
+#define IN_LIBXML
+#include "libxml.h"
+#ifdef LIBXML_DOCB_ENABLED
+
+#include <libxml/xmlerror.h>
+#include <libxml/DOCBparser.h>
+
+/**
+ * docbEncodeEntities:
+ * @out: a pointer to an array of bytes to store the result
+ * @outlen: the length of @out
+ * @in: a pointer to an array of UTF-8 chars
+ * @inlen: the length of @in
+ * @quoteChar: the quote character to escape (' or ") or zero.
+ *
+ * Take a block of UTF-8 chars in and try to convert it to an ASCII
+ * plus SGML entities block of chars out.
+ *
+ * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
+ * The value of @inlen after return is the number of octets consumed
+ * as the return value is positive, else unpredictable.
+ * The value of @outlen after return is the number of octets consumed.
+ */
+int
+docbEncodeEntities(unsigned char *out ATTRIBUTE_UNUSED,
+ int *outlen ATTRIBUTE_UNUSED,
+ const unsigned char *in ATTRIBUTE_UNUSED,
+ int *inlen ATTRIBUTE_UNUSED,
+ int quoteChar ATTRIBUTE_UNUSED)
+{
+ static int deprecated = 0;
+
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "docbEncodeEntities() deprecated function reached\n");
+ deprecated = 1;
+ }
+ return(-1);
+}
+
+/**
+ * docbParseDocument:
+ * @ctxt: an SGML parser context
+ *
+ * parse an SGML document (and build a tree if using the standard SAX
+ * interface).
+ *
+ * Returns 0, -1 in case of error. the parser context is augmented
+ * as a result of the parsing.
+ */
+
+int
+docbParseDocument(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)
+{
+ static int deprecated = 0;
+
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "docbParseDocument() deprecated function reached\n");
+ deprecated = 1;
+ }
+ return (xmlParseDocument(ctxt));
+}
+
+/**
+ * docbFreeParserCtxt:
+ * @ctxt: an SGML parser context
+ *
+ * Free all the memory used by a parser context. However the parsed
+ * document in ctxt->myDoc is not freed.
+ */
+
+void
+docbFreeParserCtxt(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)
+{
+ static int deprecated = 0;
+
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "docbFreeParserCtxt() deprecated function reached\n");
+ deprecated = 1;
+ }
+ xmlFreeParserCtxt(ctxt);
+}
+
+/**
+ * docbParseChunk:
+ * @ctxt: an XML parser context
+ * @chunk: an char array
+ * @size: the size in byte of the chunk
+ * @terminate: last chunk indicator
+ *
+ * Parse a Chunk of memory
+ *
+ * Returns zero if no error, the xmlParserErrors otherwise.
+ */
+int
+docbParseChunk(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED,
+ const char *chunk ATTRIBUTE_UNUSED,
+ int size ATTRIBUTE_UNUSED,
+ int terminate ATTRIBUTE_UNUSED)
+{
+ static int deprecated = 0;
+
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "docbParseChunk() deprecated function reached\n");
+ deprecated = 1;
+ }
+
+ return (xmlParseChunk(ctxt, chunk, size, terminate));
+}
+
+/**
+ * docbCreatePushParserCtxt:
+ * @sax: a SAX handler
+ * @user_data: The user data returned on SAX callbacks
+ * @chunk: a pointer to an array of chars
+ * @size: number of chars in the array
+ * @filename: an optional file name or URI
+ * @enc: an optional encoding
+ *
+ * Create a parser context for using the DocBook SGML parser in push mode
+ * To allow content encoding detection, @size should be >= 4
+ * The value of @filename is used for fetching external entities
+ * and error/warning reports.
+ *
+ * Returns the new parser context or NULL
+ */
+docbParserCtxtPtr
+docbCreatePushParserCtxt(docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
+ void *user_data ATTRIBUTE_UNUSED,
+ const char *chunk ATTRIBUTE_UNUSED,
+ int size ATTRIBUTE_UNUSED,
+ const char *filename ATTRIBUTE_UNUSED,
+ xmlCharEncoding enc ATTRIBUTE_UNUSED)
+{
+ static int deprecated = 0;
+
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "docbParseChunk() deprecated function reached\n");
+ deprecated = 1;
+ }
+
+ return(xmlCreatePushParserCtxt(sax, user_data, chunk, size, filename));
+}
+
+/**
+ * docbSAXParseDoc:
+ * @cur: a pointer to an array of xmlChar
+ * @encoding: a free form C string describing the SGML document encoding, or NULL
+ * @sax: the SAX handler block
+ * @userData: if using SAX, this pointer will be provided on callbacks.
+ *
+ * parse an SGML in-memory document and build a tree.
+ * It use the given SAX function block to handle the parsing callback.
+ * If sax is NULL, fallback to the default DOM tree building routines.
+ *
+ * Returns the resulting document tree
+ */
+
+docbDocPtr
+docbSAXParseDoc(xmlChar * cur ATTRIBUTE_UNUSED,
+ const char *encoding ATTRIBUTE_UNUSED,
+ docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
+ void *userData ATTRIBUTE_UNUSED)
+{
+ static int deprecated = 0;
+
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "docbParseChunk() deprecated function reached\n");
+ deprecated = 1;
+ }
+
+ return (xmlSAXParseMemoryWithData(sax, (const char *)cur,
+ xmlStrlen((const xmlChar *) cur), 0, userData));
+}
+
+/**
+ * docbParseDoc:
+ * @cur: a pointer to an array of xmlChar
+ * @encoding: a free form C string describing the SGML document encoding, or NULL
+ *
+ * parse an SGML in-memory document and build a tree.
+ *
+ * Returns the resulting document tree
+ */
+
+docbDocPtr
+docbParseDoc(xmlChar * cur ATTRIBUTE_UNUSED,
+ const char *encoding ATTRIBUTE_UNUSED)
+{
+ static int deprecated = 0;
+
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "docbParseChunk() deprecated function reached\n");
+ deprecated = 1;
+ }
+
+ return (xmlParseDoc(cur));
+}
+
+
+/**
+ * docbCreateFileParserCtxt:
+ * @filename: the filename
+ * @encoding: the SGML document encoding, or NULL
+ *
+ * Create a parser context for a file content.
+ * Automatic support for ZLIB/Compress compressed document is provided
+ * by default if found at compile-time.
+ *
+ * Returns the new parser context or NULL
+ */
+docbParserCtxtPtr
+docbCreateFileParserCtxt(const char *filename ATTRIBUTE_UNUSED,
+ const char *encoding ATTRIBUTE_UNUSED)
+{
+ static int deprecated = 0;
+
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "docbCreateFileParserCtxt() deprecated function reached\n");
+ deprecated = 1;
+ }
+
+ return (xmlCreateFileParserCtxt(filename));
+}
+
+/**
+ * docbSAXParseFile:
+ * @filename: the filename
+ * @encoding: a free form C string describing the SGML document encoding, or NULL
+ * @sax: the SAX handler block
+ * @userData: if using SAX, this pointer will be provided on callbacks.
+ *
+ * parse an SGML file and build a tree. Automatic support for ZLIB/Compress
+ * compressed document is provided by default if found at compile-time.
+ * It use the given SAX function block to handle the parsing callback.
+ * If sax is NULL, fallback to the default DOM tree building routines.
+ *
+ * Returns the resulting document tree
+ */
+
+docbDocPtr
+docbSAXParseFile(const char *filename ATTRIBUTE_UNUSED,
+ const char *encoding ATTRIBUTE_UNUSED,
+ docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
+ void *userData ATTRIBUTE_UNUSED)
+{
+ static int deprecated = 0;
+
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "docbSAXParseFile() deprecated function reached\n");
+ deprecated = 1;
+ }
+
+ return (xmlSAXParseFileWithData(sax, filename, 0, userData));
+}
+
+/**
+ * docbParseFile:
+ * @filename: the filename
+ * @encoding: a free form C string describing document encoding, or NULL
+ *
+ * parse a Docbook SGML file and build a tree. Automatic support for
+ * ZLIB/Compress compressed document is provided by default if found
+ * at compile-time.
+ *
+ * Returns the resulting document tree
+ */
+
+docbDocPtr
+docbParseFile(const char *filename ATTRIBUTE_UNUSED,
+ const char *encoding ATTRIBUTE_UNUSED)
+{
+ static int deprecated = 0;
+
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "docbParseFile() deprecated function reached\n");
+ deprecated = 1;
+ }
+
+ return (xmlParseFile(filename));
+}
+#define bottom_DOCBparser
+#include "elfgcchack.h"
+#endif /* LIBXML_DOCB_ENABLED */
diff --git a/libxml2-2.9.10/HTMLparser.c b/libxml2-2.9.10/HTMLparser.c
new file mode 100644
index 0000000..7b6d689
--- /dev/null
+++ b/libxml2-2.9.10/HTMLparser.c
@@ -0,0 +1,7178 @@
+/*
+ * HTMLparser.c : an HTML 4.0 non-verifying parser
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel@veillard.com
+ */
+
+#define IN_LIBXML
+#include "libxml.h"
+#ifdef LIBXML_HTML_ENABLED
+
+#include <string.h>
+#ifdef HAVE_CTYPE_H
+#include <ctype.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef LIBXML_ZLIB_ENABLED
+#include <zlib.h>
+#endif
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
+#include <libxml/xmlerror.h>
+#include <libxml/HTMLparser.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/entities.h>
+#include <libxml/encoding.h>
+#include <libxml/valid.h>
+#include <libxml/xmlIO.h>
+#include <libxml/globals.h>
+#include <libxml/uri.h>
+
+#include "buf.h"
+#include "enc.h"
+
+#define HTML_MAX_NAMELEN 1000
+#define HTML_PARSER_BIG_BUFFER_SIZE 1000
+#define HTML_PARSER_BUFFER_SIZE 100
+
+/* #define DEBUG */
+/* #define DEBUG_PUSH */
+
+static int htmlOmittedDefaultValue = 1;
+
+xmlChar * htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len,
+ xmlChar end, xmlChar end2, xmlChar end3);
+static void htmlParseComment(htmlParserCtxtPtr ctxt);
+
+/************************************************************************
+ * *
+ * Some factorized error routines *
+ * *
+ ************************************************************************/
+
+/**
+ * htmlErrMemory:
+ * @ctxt: an HTML parser context
+ * @extra: extra informations
+ *
+ * Handle a redefinition of attribute error
+ */
+static void
+htmlErrMemory(xmlParserCtxtPtr ctxt, const char *extra)
+{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
+ if (ctxt != NULL) {
+ ctxt->errNo = XML_ERR_NO_MEMORY;
+ ctxt->instate = XML_PARSER_EOF;
+ ctxt->disableSAX = 1;
+ }
+ if (extra)
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER,
+ XML_ERR_NO_MEMORY, XML_ERR_FATAL, NULL, 0, extra,
+ NULL, NULL, 0, 0,
+ "Memory allocation failed : %s\n", extra);
+ else
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER,
+ XML_ERR_NO_MEMORY, XML_ERR_FATAL, NULL, 0, NULL,
+ NULL, NULL, 0, 0, "Memory allocation failed\n");
+}
+
+/**
+ * htmlParseErr:
+ * @ctxt: an HTML parser context
+ * @error: the error number
+ * @msg: the error message
+ * @str1: string infor
+ * @str2: string infor
+ *
+ * Handle a fatal parser error, i.e. violating Well-Formedness constraints
+ */
+static void LIBXML_ATTR_FORMAT(3,0)
+htmlParseErr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
+ const char *msg, const xmlChar *str1, const xmlChar *str2)
+{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
+ if (ctxt != NULL)
+ ctxt->errNo = error;
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_HTML, error,
+ XML_ERR_ERROR, NULL, 0,
+ (const char *) str1, (const char *) str2,
+ NULL, 0, 0,
+ msg, str1, str2);
+ if (ctxt != NULL)
+ ctxt->wellFormed = 0;
+}
+
+/**
+ * htmlParseErrInt:
+ * @ctxt: an HTML parser context
+ * @error: the error number
+ * @msg: the error message
+ * @val: integer info
+ *
+ * Handle a fatal parser error, i.e. violating Well-Formedness constraints
+ */
+static void LIBXML_ATTR_FORMAT(3,0)
+htmlParseErrInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
+ const char *msg, int val)
+{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
+ if (ctxt != NULL)
+ ctxt->errNo = error;
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_HTML, error,
+ XML_ERR_ERROR, NULL, 0, NULL, NULL,
+ NULL, val, 0, msg, val);
+ if (ctxt != NULL)
+ ctxt->wellFormed = 0;
+}
+
+/************************************************************************
+ * *
+ * Parser stacks related functions and macros *
+ * *
+ ************************************************************************/
+
+/**
+ * htmlnamePush:
+ * @ctxt: an HTML parser context
+ * @value: the element name
+ *
+ * Pushes a new element name on top of the name stack
+ *
+ * Returns 0 in case of error, the index in the stack otherwise
+ */
+static int
+htmlnamePush(htmlParserCtxtPtr ctxt, const xmlChar * value)
+{
+ if ((ctxt->html < 3) && (xmlStrEqual(value, BAD_CAST "head")))
+ ctxt->html = 3;
+ if ((ctxt->html < 10) && (xmlStrEqual(value, BAD_CAST "body")))
+ ctxt->html = 10;
+ if (ctxt->nameNr >= ctxt->nameMax) {
+ ctxt->nameMax *= 2;
+ ctxt->nameTab = (const xmlChar * *)
+ xmlRealloc((xmlChar * *)ctxt->nameTab,
+ ctxt->nameMax *
+ sizeof(ctxt->nameTab[0]));
+ if (ctxt->nameTab == NULL) {
+ htmlErrMemory(ctxt, NULL);
+ return (0);
+ }
+ }
+ ctxt->nameTab[ctxt->nameNr] = value;
+ ctxt->name = value;
+ return (ctxt->nameNr++);
+}
+/**
+ * htmlnamePop:
+ * @ctxt: an HTML parser context
+ *
+ * Pops the top element name from the name stack
+ *
+ * Returns the name just removed
+ */
+static const xmlChar *
+htmlnamePop(htmlParserCtxtPtr ctxt)
+{
+ const xmlChar *ret;
+
+ if (ctxt->nameNr <= 0)
+ return (NULL);
+ ctxt->nameNr--;
+ if (ctxt->nameNr < 0)
+ return (NULL);
+ if (ctxt->nameNr > 0)
+ ctxt->name = ctxt->nameTab[ctxt->nameNr - 1];
+ else
+ ctxt->name = NULL;
+ ret = ctxt->nameTab[ctxt->nameNr];
+ ctxt->nameTab[ctxt->nameNr] = NULL;
+ return (ret);
+}
+
+/**
+ * htmlNodeInfoPush:
+ * @ctxt: an HTML parser context
+ * @value: the node info
+ *
+ * Pushes a new element name on top of the node info stack
+ *
+ * Returns 0 in case of error, the index in the stack otherwise
+ */
+static int
+htmlNodeInfoPush(htmlParserCtxtPtr ctxt, htmlParserNodeInfo *value)
+{
+ if (ctxt->nodeInfoNr >= ctxt->nodeInfoMax) {
+ if (ctxt->nodeInfoMax == 0)
+ ctxt->nodeInfoMax = 5;
+ ctxt->nodeInfoMax *= 2;
+ ctxt->nodeInfoTab = (htmlParserNodeInfo *)
+ xmlRealloc((htmlParserNodeInfo *)ctxt->nodeInfoTab,
+ ctxt->nodeInfoMax *
+ sizeof(ctxt->nodeInfoTab[0]));
+ if (ctxt->nodeInfoTab == NULL) {
+ htmlErrMemory(ctxt, NULL);
+ return (0);
+ }
+ }
+ ctxt->nodeInfoTab[ctxt->nodeInfoNr] = *value;
+ ctxt->nodeInfo = &ctxt->nodeInfoTab[ctxt->nodeInfoNr];
+ return (ctxt->nodeInfoNr++);
+}
+
+/**
+ * htmlNodeInfoPop:
+ * @ctxt: an HTML parser context
+ *
+ * Pops the top element name from the node info stack
+ *
+ * Returns 0 in case of error, the pointer to NodeInfo otherwise
+ */
+static htmlParserNodeInfo *
+htmlNodeInfoPop(htmlParserCtxtPtr ctxt)
+{
+ if (ctxt->nodeInfoNr <= 0)
+ return (NULL);
+ ctxt->nodeInfoNr--;
+ if (ctxt->nodeInfoNr < 0)
+ return (NULL);
+ if (ctxt->nodeInfoNr > 0)
+ ctxt->nodeInfo = &ctxt->nodeInfoTab[ctxt->nodeInfoNr - 1];
+ else
+ ctxt->nodeInfo = NULL;
+ return &ctxt->nodeInfoTab[ctxt->nodeInfoNr];
+}
+
+/*
+ * Macros for accessing the content. Those should be used only by the parser,
+ * and not exported.
+ *
+ * Dirty macros, i.e. one need to make assumption on the context to use them
+ *
+ * CUR_PTR return the current pointer to the xmlChar to be parsed.
+ * CUR returns the current xmlChar value, i.e. a 8 bit value if compiled
+ * in ISO-Latin or UTF-8, and the current 16 bit value if compiled
+ * in UNICODE mode. This should be used internally by the parser
+ * only to compare to ASCII values otherwise it would break when
+ * running with UTF-8 encoding.
+ * NXT(n) returns the n'th next xmlChar. Same as CUR is should be used only
+ * to compare on ASCII based substring.
+ * UPP(n) returns the n'th next xmlChar converted to uppercase. Same as CUR
+ * it should be used only to compare on ASCII based substring.
+ * SKIP(n) Skip n xmlChar, and must also be used only to skip ASCII defined
+ * strings without newlines within the parser.
+ *
+ * Clean macros, not dependent of an ASCII context, expect UTF-8 encoding
+ *
+ * CURRENT Returns the current char value, with the full decoding of
+ * UTF-8 if we are using this mode. It returns an int.
+ * NEXT Skip to the next character, this does the proper decoding
+ * in UTF-8 mode. It also pop-up unfinished entities on the fly.
+ * NEXTL(l) Skip the current unicode character of l xmlChars long.
+ * COPY(to) copy one char to *to, increment CUR_PTR and to accordingly
+ */
+
+#define UPPER (toupper(*ctxt->input->cur))
+
+#define SKIP(val) ctxt->nbChars += (val),ctxt->input->cur += (val),ctxt->input->col+=(val)
+
+#define NXT(val) ctxt->input->cur[(val)]
+
+#define UPP(val) (toupper(ctxt->input->cur[(val)]))
+
+#define CUR_PTR ctxt->input->cur
+#define BASE_PTR ctxt->input->base
+
+#define SHRINK if ((ctxt->input->cur - ctxt->input->base > 2 * INPUT_CHUNK) && \
+ (ctxt->input->end - ctxt->input->cur < 2 * INPUT_CHUNK)) \
+ xmlParserInputShrink(ctxt->input)
+
+#define GROW if ((ctxt->progressive == 0) && \
+ (ctxt->input->end - ctxt->input->cur < INPUT_CHUNK)) \
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK)
+
+#define CURRENT ((int) (*ctxt->input->cur))
+
+#define SKIP_BLANKS htmlSkipBlankChars(ctxt)
+
+/* Imported from XML */
+
+/* #define CUR (ctxt->token ? ctxt->token : (int) (*ctxt->input->cur)) */
+#define CUR ((int) (*ctxt->input->cur))
+#define NEXT xmlNextChar(ctxt)
+
+#define RAW (ctxt->token ? -1 : (*ctxt->input->cur))
+
+
+#define NEXTL(l) do { \
+ if (*(ctxt->input->cur) == '\n') { \
+ ctxt->input->line++; ctxt->input->col = 1; \
+ } else ctxt->input->col++; \
+ ctxt->token = 0; ctxt->input->cur += l; ctxt->nbChars++; \
+ } while (0)
+
+/************
+ \
+ if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \
+ if (*ctxt->input->cur == '&') xmlParserHandleReference(ctxt);
+ ************/
+
+#define CUR_CHAR(l) htmlCurrentChar(ctxt, &l)
+#define CUR_SCHAR(s, l) xmlStringCurrentChar(ctxt, s, &l)
+
+#define COPY_BUF(l,b,i,v) \
+ if (l == 1) b[i++] = (xmlChar) v; \
+ else i += xmlCopyChar(l,&b[i],v)
+
+/**
+ * htmlFindEncoding:
+ * @the HTML parser context
+ *
+ * Ty to find and encoding in the current data available in the input
+ * buffer this is needed to try to switch to the proper encoding when
+ * one face a character error.
+ * That's an heuristic, since it's operating outside of parsing it could
+ * try to use a meta which had been commented out, that's the reason it
+ * should only be used in case of error, not as a default.
+ *
+ * Returns an encoding string or NULL if not found, the string need to
+ * be freed
+ */
+static xmlChar *
+htmlFindEncoding(xmlParserCtxtPtr ctxt) {
+ const xmlChar *start, *cur, *end;
+
+ if ((ctxt == NULL) || (ctxt->input == NULL) ||
+ (ctxt->input->encoding != NULL) || (ctxt->input->buf == NULL) ||
+ (ctxt->input->buf->encoder != NULL))
+ return(NULL);
+ if ((ctxt->input->cur == NULL) || (ctxt->input->end == NULL))
+ return(NULL);
+
+ start = ctxt->input->cur;
+ end = ctxt->input->end;
+ /* we also expect the input buffer to be zero terminated */
+ if (*end != 0)
+ return(NULL);
+
+ cur = xmlStrcasestr(start, BAD_CAST "HTTP-EQUIV");
+ if (cur == NULL)
+ return(NULL);
+ cur = xmlStrcasestr(cur, BAD_CAST "CONTENT");
+ if (cur == NULL)
+ return(NULL);
+ cur = xmlStrcasestr(cur, BAD_CAST "CHARSET=");
+ if (cur == NULL)
+ return(NULL);
+ cur += 8;
+ start = cur;
+ while (((*cur >= 'A') && (*cur <= 'Z')) ||
+ ((*cur >= 'a') && (*cur <= 'z')) ||
+ ((*cur >= '0') && (*cur <= '9')) ||
+ (*cur == '-') || (*cur == '_') || (*cur == ':') || (*cur == '/'))
+ cur++;
+ if (cur == start)
+ return(NULL);
+ return(xmlStrndup(start, cur - start));
+}
+
+/**
+ * htmlCurrentChar:
+ * @ctxt: the HTML parser context
+ * @len: pointer to the length of the char read
+ *
+ * The current char value, if using UTF-8 this may actually span multiple
+ * bytes in the input buffer. Implement the end of line normalization:
+ * 2.11 End-of-Line Handling
+ * If the encoding is unspecified, in the case we find an ISO-Latin-1
+ * char, then the encoding converter is plugged in automatically.
+ *
+ * Returns the current char value and its length
+ */
+
+static int
+htmlCurrentChar(xmlParserCtxtPtr ctxt, int *len) {
+ if (ctxt->instate == XML_PARSER_EOF)
+ return(0);
+
+ if (ctxt->token != 0) {
+ *len = 0;
+ return(ctxt->token);
+ }
+ if (ctxt->charset == XML_CHAR_ENCODING_UTF8) {
+ /*
+ * We are supposed to handle UTF8, check it's valid
+ * From rfc2044: encoding of the Unicode values on UTF-8:
+ *
+ * UCS-4 range (hex.) UTF-8 octet sequence (binary)
+ * 0000 0000-0000 007F 0xxxxxxx
+ * 0000 0080-0000 07FF 110xxxxx 10xxxxxx
+ * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
+ *
+ * Check for the 0x110000 limit too
+ */
+ const unsigned char *cur = ctxt->input->cur;
+ unsigned char c;
+ unsigned int val;
+
+ c = *cur;
+ if (c & 0x80) {
+ if (cur[1] == 0) {
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+ cur = ctxt->input->cur;
+ }
+ if ((cur[1] & 0xc0) != 0x80)
+ goto encoding_error;
+ if ((c & 0xe0) == 0xe0) {
+
+ if (cur[2] == 0) {
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+ cur = ctxt->input->cur;
+ }
+ if ((cur[2] & 0xc0) != 0x80)
+ goto encoding_error;
+ if ((c & 0xf0) == 0xf0) {
+ if (cur[3] == 0) {
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+ cur = ctxt->input->cur;
+ }
+ if (((c & 0xf8) != 0xf0) ||
+ ((cur[3] & 0xc0) != 0x80))
+ goto encoding_error;
+ /* 4-byte code */
+ *len = 4;
+ val = (cur[0] & 0x7) << 18;
+ val |= (cur[1] & 0x3f) << 12;
+ val |= (cur[2] & 0x3f) << 6;
+ val |= cur[3] & 0x3f;
+ } else {
+ /* 3-byte code */
+ *len = 3;
+ val = (cur[0] & 0xf) << 12;
+ val |= (cur[1] & 0x3f) << 6;
+ val |= cur[2] & 0x3f;
+ }
+ } else {
+ /* 2-byte code */
+ *len = 2;
+ val = (cur[0] & 0x1f) << 6;
+ val |= cur[1] & 0x3f;
+ }
+ if (!IS_CHAR(val)) {
+ htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
+ "Char 0x%X out of allowed range\n", val);
+ }
+ return(val);
+ } else {
+ if ((*ctxt->input->cur == 0) &&
+ (ctxt->input->cur < ctxt->input->end)) {
+ htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
+ "Char 0x%X out of allowed range\n", 0);
+ *len = 1;
+ return(' ');
+ }
+ /* 1-byte code */
+ *len = 1;
+ return((int) *ctxt->input->cur);
+ }
+ }
+ /*
+ * Assume it's a fixed length encoding (1) with
+ * a compatible encoding for the ASCII set, since
+ * XML constructs only use < 128 chars
+ */
+ *len = 1;
+ if ((int) *ctxt->input->cur < 0x80)
+ return((int) *ctxt->input->cur);
+
+ /*
+ * Humm this is bad, do an automatic flow conversion
+ */
+ {
+ xmlChar * guess;
+ xmlCharEncodingHandlerPtr handler;
+
+ guess = htmlFindEncoding(ctxt);
+ if (guess == NULL) {
+ xmlSwitchEncoding(ctxt, XML_CHAR_ENCODING_8859_1);
+ } else {
+ if (ctxt->input->encoding != NULL)
+ xmlFree((xmlChar *) ctxt->input->encoding);
+ ctxt->input->encoding = guess;
+ handler = xmlFindCharEncodingHandler((const char *) guess);
+ if (handler != NULL) {
+ xmlSwitchToEncoding(ctxt, handler);
+ } else {
+ htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
+ "Unsupported encoding %s", guess, NULL);
+ }
+ }
+ ctxt->charset = XML_CHAR_ENCODING_UTF8;
+ }
+
+ return(xmlCurrentChar(ctxt, len));
+
+encoding_error:
+ /*
+ * If we detect an UTF8 error that probably mean that the
+ * input encoding didn't get properly advertised in the
+ * declaration header. Report the error and switch the encoding
+ * to ISO-Latin-1 (if you don't like this policy, just declare the
+ * encoding !)
+ */
+ {
+ char buffer[150];
+
+ if (ctxt->input->end - ctxt->input->cur >= 4) {
+ snprintf(buffer, 149, "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
+ ctxt->input->cur[0], ctxt->input->cur[1],
+ ctxt->input->cur[2], ctxt->input->cur[3]);
+ } else {
+ snprintf(buffer, 149, "Bytes: 0x%02X\n", ctxt->input->cur[0]);
+ }
+ htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
+ "Input is not proper UTF-8, indicate encoding !\n",
+ BAD_CAST buffer, NULL);
+ }
+
+ ctxt->charset = XML_CHAR_ENCODING_8859_1;
+ *len = 1;
+ return((int) *ctxt->input->cur);
+}
+
+/**
+ * htmlSkipBlankChars:
+ * @ctxt: the HTML parser context
+ *
+ * skip all blanks character found at that point in the input streams.
+ *
+ * Returns the number of space chars skipped
+ */
+
+static int
+htmlSkipBlankChars(xmlParserCtxtPtr ctxt) {
+ int res = 0;
+
+ while (IS_BLANK_CH(*(ctxt->input->cur))) {
+ if ((*ctxt->input->cur == 0) &&
+ (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) {
+ xmlPopInput(ctxt);
+ } else {
+ if (*(ctxt->input->cur) == '\n') {
+ ctxt->input->line++; ctxt->input->col = 1;
+ } else ctxt->input->col++;
+ ctxt->input->cur++;
+ ctxt->nbChars++;
+ if (*ctxt->input->cur == 0)
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+ }
+ res++;
+ }
+ return(res);
+}
+
+
+
+/************************************************************************
+ * *
+ * The list of HTML elements and their properties *
+ * *
+ ************************************************************************/
+
+/*
+ * Start Tag: 1 means the start tag can be omitted
+ * End Tag: 1 means the end tag can be omitted
+ * 2 means it's forbidden (empty elements)
+ * 3 means the tag is stylistic and should be closed easily
+ * Depr: this element is deprecated
+ * DTD: 1 means that this element is valid only in the Loose DTD
+ * 2 means that this element is valid only in the Frameset DTD
+ *
+ * Name,Start Tag,End Tag,Save End,Empty,Deprecated,DTD,inline,Description
+ , subElements , impliedsubelt , Attributes, userdata
+ */
+
+/* Definitions and a couple of vars for HTML Elements */
+
+#define FONTSTYLE "tt", "i", "b", "u", "s", "strike", "big", "small"
+#define NB_FONTSTYLE 8
+#define PHRASE "em", "strong", "dfn", "code", "samp", "kbd", "var", "cite", "abbr", "acronym"
+#define NB_PHRASE 10
+#define SPECIAL "a", "img", "applet", "embed", "object", "font", "basefont", "br", "script", "map", "q", "sub", "sup", "span", "bdo", "iframe"
+#define NB_SPECIAL 16
+#define INLINE FONTSTYLE, PHRASE, SPECIAL, FORMCTRL
+#define NB_INLINE NB_PCDATA + NB_FONTSTYLE + NB_PHRASE + NB_SPECIAL + NB_FORMCTRL
+#define BLOCK HEADING, LIST, "pre", "p", "dl", "div", "center", "noscript", "noframes", "blockquote", "form", "isindex", "hr", "table", "fieldset", "address"
+#define NB_BLOCK NB_HEADING + NB_LIST + 14
+#define FORMCTRL "input", "select", "textarea", "label", "button"
+#define NB_FORMCTRL 5
+#define PCDATA
+#define NB_PCDATA 0
+#define HEADING "h1", "h2", "h3", "h4", "h5", "h6"
+#define NB_HEADING 6
+#define LIST "ul", "ol", "dir", "menu"
+#define NB_LIST 4
+#define MODIFIER
+#define NB_MODIFIER 0
+#define FLOW BLOCK,INLINE
+#define NB_FLOW NB_BLOCK + NB_INLINE
+#define EMPTY NULL
+
+
+static const char* const html_flow[] = { FLOW, NULL } ;
+static const char* const html_inline[] = { INLINE, NULL } ;
+
+/* placeholders: elts with content but no subelements */
+static const char* const html_pcdata[] = { NULL } ;
+#define html_cdata html_pcdata
+
+
+/* ... and for HTML Attributes */
+
+#define COREATTRS "id", "class", "style", "title"
+#define NB_COREATTRS 4
+#define I18N "lang", "dir"
+#define NB_I18N 2
+#define EVENTS "onclick", "ondblclick", "onmousedown", "onmouseup", "onmouseover", "onmouseout", "onkeypress", "onkeydown", "onkeyup"
+#define NB_EVENTS 9
+#define ATTRS COREATTRS,I18N,EVENTS
+#define NB_ATTRS NB_NB_COREATTRS + NB_I18N + NB_EVENTS
+#define CELLHALIGN "align", "char", "charoff"
+#define NB_CELLHALIGN 3
+#define CELLVALIGN "valign"
+#define NB_CELLVALIGN 1
+
+static const char* const html_attrs[] = { ATTRS, NULL } ;
+static const char* const core_i18n_attrs[] = { COREATTRS, I18N, NULL } ;
+static const char* const core_attrs[] = { COREATTRS, NULL } ;
+static const char* const i18n_attrs[] = { I18N, NULL } ;
+
+
+/* Other declarations that should go inline ... */
+static const char* const a_attrs[] = { ATTRS, "charset", "type", "name",
+ "href", "hreflang", "rel", "rev", "accesskey", "shape", "coords",
+ "tabindex", "onfocus", "onblur", NULL } ;
+static const char* const target_attr[] = { "target", NULL } ;
+static const char* const rows_cols_attr[] = { "rows", "cols", NULL } ;
+static const char* const alt_attr[] = { "alt", NULL } ;
+static const char* const src_alt_attrs[] = { "src", "alt", NULL } ;
+static const char* const href_attrs[] = { "href", NULL } ;
+static const char* const clear_attrs[] = { "clear", NULL } ;
+static const char* const inline_p[] = { INLINE, "p", NULL } ;
+
+static const char* const flow_param[] = { FLOW, "param", NULL } ;
+static const char* const applet_attrs[] = { COREATTRS , "codebase",
+ "archive", "alt", "name", "height", "width", "align",
+ "hspace", "vspace", NULL } ;
+static const char* const area_attrs[] = { "shape", "coords", "href", "nohref",
+ "tabindex", "accesskey", "onfocus", "onblur", NULL } ;
+static const char* const basefont_attrs[] =
+ { "id", "size", "color", "face", NULL } ;
+static const char* const quote_attrs[] = { ATTRS, "cite", NULL } ;
+static const char* const body_contents[] = { FLOW, "ins", "del", NULL } ;
+static const char* const body_attrs[] = { ATTRS, "onload", "onunload", NULL } ;
+static const char* const body_depr[] = { "background", "bgcolor", "text",
+ "link", "vlink", "alink", NULL } ;
+static const char* const button_attrs[] = { ATTRS, "name", "value", "type",
+ "disabled", "tabindex", "accesskey", "onfocus", "onblur", NULL } ;
+
+
+static const char* const col_attrs[] = { ATTRS, "span", "width", CELLHALIGN, CELLVALIGN, NULL } ;
+static const char* const col_elt[] = { "col", NULL } ;
+static const char* const edit_attrs[] = { ATTRS, "datetime", "cite", NULL } ;
+static const char* const compact_attrs[] = { ATTRS, "compact", NULL } ;
+static const char* const dl_contents[] = { "dt", "dd", NULL } ;
+static const char* const compact_attr[] = { "compact", NULL } ;
+static const char* const label_attr[] = { "label", NULL } ;
+static const char* const fieldset_contents[] = { FLOW, "legend" } ;
+static const char* const font_attrs[] = { COREATTRS, I18N, "size", "color", "face" , NULL } ;
+static const char* const form_contents[] = { HEADING, LIST, INLINE, "pre", "p", "div", "center", "noscript", "noframes", "blockquote", "isindex", "hr", "table", "fieldset", "address", NULL } ;
+static const char* const form_attrs[] = { ATTRS, "method", "enctype", "accept", "name", "onsubmit", "onreset", "accept-charset", NULL } ;
+static const char* const frame_attrs[] = { COREATTRS, "longdesc", "name", "src", "frameborder", "marginwidth", "marginheight", "noresize", "scrolling" , NULL } ;
+static const char* const frameset_attrs[] = { COREATTRS, "rows", "cols", "onload", "onunload", NULL } ;
+static const char* const frameset_contents[] = { "frameset", "frame", "noframes", NULL } ;
+static const char* const head_attrs[] = { I18N, "profile", NULL } ;
+static const char* const head_contents[] = { "title", "isindex", "base", "script", "style", "meta", "link", "object", NULL } ;
+static const char* const hr_depr[] = { "align", "noshade", "size", "width", NULL } ;
+static const char* const version_attr[] = { "version", NULL } ;
+static const char* const html_content[] = { "head", "body", "frameset", NULL } ;
+static const char* const iframe_attrs[] = { COREATTRS, "longdesc", "name", "src", "frameborder", "marginwidth", "marginheight", "scrolling", "align", "height", "width", NULL } ;
+static const char* const img_attrs[] = { ATTRS, "longdesc", "name", "height", "width", "usemap", "ismap", NULL } ;
+static const char* const embed_attrs[] = { COREATTRS, "align", "alt", "border", "code", "codebase", "frameborder", "height", "hidden", "hspace", "name", "palette", "pluginspace", "pluginurl", "src", "type", "units", "vspace", "width", NULL } ;
+static const char* const input_attrs[] = { ATTRS, "type", "name", "value", "checked", "disabled", "readonly", "size", "maxlength", "src", "alt", "usemap", "ismap", "tabindex", "accesskey", "onfocus", "onblur", "onselect", "onchange", "accept", NULL } ;
+static const char* const prompt_attrs[] = { COREATTRS, I18N, "prompt", NULL } ;
+static const char* const label_attrs[] = { ATTRS, "for", "accesskey", "onfocus", "onblur", NULL } ;
+static const char* const legend_attrs[] = { ATTRS, "accesskey", NULL } ;
+static const char* const align_attr[] = { "align", NULL } ;
+static const char* const link_attrs[] = { ATTRS, "charset", "href", "hreflang", "type", "rel", "rev", "media", NULL } ;
+static const char* const map_contents[] = { BLOCK, "area", NULL } ;
+static const char* const name_attr[] = { "name", NULL } ;
+static const char* const action_attr[] = { "action", NULL } ;
+static const char* const blockli_elt[] = { BLOCK, "li", NULL } ;
+static const char* const meta_attrs[] = { I18N, "http-equiv", "name", "scheme", "charset", NULL } ;
+static const char* const content_attr[] = { "content", NULL } ;
+static const char* const type_attr[] = { "type", NULL } ;
+static const char* const noframes_content[] = { "body", FLOW MODIFIER, NULL } ;
+static const char* const object_contents[] = { FLOW, "param", NULL } ;
+static const char* const object_attrs[] = { ATTRS, "declare", "classid", "codebase", "data", "type", "codetype", "archive", "standby", "height", "width", "usemap", "name", "tabindex", NULL } ;
+static const char* const object_depr[] = { "align", "border", "hspace", "vspace", NULL } ;
+static const char* const ol_attrs[] = { "type", "compact", "start", NULL} ;
+static const char* const option_elt[] = { "option", NULL } ;
+static const char* const optgroup_attrs[] = { ATTRS, "disabled", NULL } ;
+static const char* const option_attrs[] = { ATTRS, "disabled", "label", "selected", "value", NULL } ;
+static const char* const param_attrs[] = { "id", "value", "valuetype", "type", NULL } ;
+static const char* const width_attr[] = { "width", NULL } ;
+static const char* const pre_content[] = { PHRASE, "tt", "i", "b", "u", "s", "strike", "a", "br", "script", "map", "q", "span", "bdo", "iframe", NULL } ;
+static const char* const script_attrs[] = { "charset", "src", "defer", "event", "for", NULL } ;
+static const char* const language_attr[] = { "language", NULL } ;
+static const char* const select_content[] = { "optgroup", "option", NULL } ;
+static const char* const select_attrs[] = { ATTRS, "name", "size", "multiple", "disabled", "tabindex", "onfocus", "onblur", "onchange", NULL } ;
+static const char* const style_attrs[] = { I18N, "media", "title", NULL } ;
+static const char* const table_attrs[] = { ATTRS, "summary", "width", "border", "frame", "rules", "cellspacing", "cellpadding", "datapagesize", NULL } ;
+static const char* const table_depr[] = { "align", "bgcolor", NULL } ;
+static const char* const table_contents[] = { "caption", "col", "colgroup", "thead", "tfoot", "tbody", "tr", NULL} ;
+static const char* const tr_elt[] = { "tr", NULL } ;
+static const char* const talign_attrs[] = { ATTRS, CELLHALIGN, CELLVALIGN, NULL} ;
+static const char* const th_td_depr[] = { "nowrap", "bgcolor", "width", "height", NULL } ;
+static const char* const th_td_attr[] = { ATTRS, "abbr", "axis", "headers", "scope", "rowspan", "colspan", CELLHALIGN, CELLVALIGN, NULL } ;
+static const char* const textarea_attrs[] = { ATTRS, "name", "disabled", "readonly", "tabindex", "accesskey", "onfocus", "onblur", "onselect", "onchange", NULL } ;
+static const char* const tr_contents[] = { "th", "td", NULL } ;
+static const char* const bgcolor_attr[] = { "bgcolor", NULL } ;
+static const char* const li_elt[] = { "li", NULL } ;
+static const char* const ul_depr[] = { "type", "compact", NULL} ;
+static const char* const dir_attr[] = { "dir", NULL} ;
+
+#define DECL (const char**)
+
+static const htmlElemDesc
+html40ElementTable[] = {
+{ "a", 0, 0, 0, 0, 0, 0, 1, "anchor ",
+ DECL html_inline , NULL , DECL a_attrs , DECL target_attr, NULL
+},
+{ "abbr", 0, 0, 0, 0, 0, 0, 1, "abbreviated form",
+ DECL html_inline , NULL , DECL html_attrs, NULL, NULL
+},
+{ "acronym", 0, 0, 0, 0, 0, 0, 1, "",
+ DECL html_inline , NULL , DECL html_attrs, NULL, NULL
+},
+{ "address", 0, 0, 0, 0, 0, 0, 0, "information on author ",
+ DECL inline_p , NULL , DECL html_attrs, NULL, NULL
+},
+{ "applet", 0, 0, 0, 0, 1, 1, 2, "java applet ",
+ DECL flow_param , NULL , NULL , DECL applet_attrs, NULL
+},
+{ "area", 0, 2, 2, 1, 0, 0, 0, "client-side image map area ",
+ EMPTY , NULL , DECL area_attrs , DECL target_attr, DECL alt_attr
+},
+{ "b", 0, 3, 0, 0, 0, 0, 1, "bold text style",
+ DECL html_inline , NULL , DECL html_attrs, NULL, NULL
+},
+{ "base", 0, 2, 2, 1, 0, 0, 0, "document base uri ",
+ EMPTY , NULL , NULL , DECL target_attr, DECL href_attrs
+},
+{ "basefont", 0, 2, 2, 1, 1, 1, 1, "base font size " ,
+ EMPTY , NULL , NULL, DECL basefont_attrs, NULL
+},
+{ "bdo", 0, 0, 0, 0, 0, 0, 1, "i18n bidi over-ride ",
+ DECL html_inline , NULL , DECL core_i18n_attrs, NULL, DECL dir_attr
+},
+{ "big", 0, 3, 0, 0, 0, 0, 1, "large text style",
+ DECL html_inline , NULL , DECL html_attrs, NULL, NULL
+},
+{ "blockquote", 0, 0, 0, 0, 0, 0, 0, "long quotation ",
+ DECL html_flow , NULL , DECL quote_attrs , NULL, NULL
+},
+{ "body", 1, 1, 0, 0, 0, 0, 0, "document body ",
+ DECL body_contents , "div" , DECL body_attrs, DECL body_depr, NULL
+},
+{ "br", 0, 2, 2, 1, 0, 0, 1, "forced line break ",
+ EMPTY , NULL , DECL core_attrs, DECL clear_attrs , NULL
+},
+{ "button", 0, 0, 0, 0, 0, 0, 2, "push button ",
+ DECL html_flow MODIFIER , NULL , DECL button_attrs, NULL, NULL
+},
+{ "caption", 0, 0, 0, 0, 0, 0, 0, "table caption ",
+ DECL html_inline , NULL , DECL html_attrs, NULL, NULL
+},
+{ "center", 0, 3, 0, 0, 1, 1, 0, "shorthand for div align=center ",
+ DECL html_flow , NULL , NULL, DECL html_attrs, NULL
+},
+{ "cite", 0, 0, 0, 0, 0, 0, 1, "citation",
+ DECL html_inline , NULL , DECL html_attrs, NULL, NULL
+},
+{ "code", 0, 0, 0, 0, 0, 0, 1, "computer code fragment",
+ DECL html_inline , NULL , DECL html_attrs, NULL, NULL
+},
+{ "col", 0, 2, 2, 1, 0, 0, 0, "table column ",
+ EMPTY , NULL , DECL col_attrs , NULL, NULL
+},
+{ "colgroup", 0, 1, 0, 0, 0, 0, 0, "table column group ",
+ DECL col_elt , "col" , DECL col_attrs , NULL, NULL
+},
+{ "dd", 0, 1, 0, 0, 0, 0, 0, "definition description ",
+ DECL html_flow , NULL , DECL html_attrs, NULL, NULL
+},
+{ "del", 0, 0, 0, 0, 0, 0, 2, "deleted text ",
+ DECL html_flow , NULL , DECL edit_attrs , NULL, NULL
+},
+{ "dfn", 0, 0, 0, 0, 0, 0, 1, "instance definition",
+ DECL html_inline , NULL , DECL html_attrs, NULL, NULL
+},
+{ "dir", 0, 0, 0, 0, 1, 1, 0, "directory list",
+ DECL blockli_elt, "li" , NULL, DECL compact_attrs, NULL
+},
+{ "div", 0, 0, 0, 0, 0, 0, 0, "generic language/style container",
+ DECL html_flow, NULL, DECL html_attrs, DECL align_attr, NULL
+},
+{ "dl", 0, 0, 0, 0, 0, 0, 0, "definition list ",
+ DECL dl_contents , "dd" , DECL html_attrs, DECL compact_attr, NULL
+},
+{ "dt", 0, 1, 0, 0, 0, 0, 0, "definition term ",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "em", 0, 3, 0, 0, 0, 0, 1, "emphasis",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "embed", 0, 1, 0, 0, 1, 1, 1, "generic embedded object ",
+ EMPTY, NULL, DECL embed_attrs, NULL, NULL
+},
+{ "fieldset", 0, 0, 0, 0, 0, 0, 0, "form control group ",
+ DECL fieldset_contents , NULL, DECL html_attrs, NULL, NULL
+},
+{ "font", 0, 3, 0, 0, 1, 1, 1, "local change to font ",
+ DECL html_inline, NULL, NULL, DECL font_attrs, NULL
+},
+{ "form", 0, 0, 0, 0, 0, 0, 0, "interactive form ",
+ DECL form_contents, "fieldset", DECL form_attrs , DECL target_attr, DECL action_attr
+},
+{ "frame", 0, 2, 2, 1, 0, 2, 0, "subwindow " ,
+ EMPTY, NULL, NULL, DECL frame_attrs, NULL
+},
+{ "frameset", 0, 0, 0, 0, 0, 2, 0, "window subdivision" ,
+ DECL frameset_contents, "noframes" , NULL , DECL frameset_attrs, NULL
+},
+{ "h1", 0, 0, 0, 0, 0, 0, 0, "heading ",
+ DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
+},
+{ "h2", 0, 0, 0, 0, 0, 0, 0, "heading ",
+ DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
+},
+{ "h3", 0, 0, 0, 0, 0, 0, 0, "heading ",
+ DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
+},
+{ "h4", 0, 0, 0, 0, 0, 0, 0, "heading ",
+ DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
+},
+{ "h5", 0, 0, 0, 0, 0, 0, 0, "heading ",
+ DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
+},
+{ "h6", 0, 0, 0, 0, 0, 0, 0, "heading ",
+ DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
+},
+{ "head", 1, 1, 0, 0, 0, 0, 0, "document head ",
+ DECL head_contents, NULL, DECL head_attrs, NULL, NULL
+},
+{ "hr", 0, 2, 2, 1, 0, 0, 0, "horizontal rule " ,
+ EMPTY, NULL, DECL html_attrs, DECL hr_depr, NULL
+},
+{ "html", 1, 1, 0, 0, 0, 0, 0, "document root element ",
+ DECL html_content , NULL , DECL i18n_attrs, DECL version_attr, NULL
+},
+{ "i", 0, 3, 0, 0, 0, 0, 1, "italic text style",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "iframe", 0, 0, 0, 0, 0, 1, 2, "inline subwindow ",
+ DECL html_flow, NULL, NULL, DECL iframe_attrs, NULL
+},
+{ "img", 0, 2, 2, 1, 0, 0, 1, "embedded image ",
+ EMPTY, NULL, DECL img_attrs, DECL align_attr, DECL src_alt_attrs
+},
+{ "input", 0, 2, 2, 1, 0, 0, 1, "form control ",
+ EMPTY, NULL, DECL input_attrs , DECL align_attr, NULL
+},
+{ "ins", 0, 0, 0, 0, 0, 0, 2, "inserted text",
+ DECL html_flow, NULL, DECL edit_attrs, NULL, NULL
+},
+{ "isindex", 0, 2, 2, 1, 1, 1, 0, "single line prompt ",
+ EMPTY, NULL, NULL, DECL prompt_attrs, NULL
+},
+{ "kbd", 0, 0, 0, 0, 0, 0, 1, "text to be entered by the user",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "label", 0, 0, 0, 0, 0, 0, 1, "form field label text ",
+ DECL html_inline MODIFIER, NULL, DECL label_attrs , NULL, NULL
+},
+{ "legend", 0, 0, 0, 0, 0, 0, 0, "fieldset legend ",
+ DECL html_inline, NULL, DECL legend_attrs , DECL align_attr, NULL
+},
+{ "li", 0, 1, 1, 0, 0, 0, 0, "list item ",
+ DECL html_flow, NULL, DECL html_attrs, NULL, NULL
+},
+{ "link", 0, 2, 2, 1, 0, 0, 0, "a media-independent link ",
+ EMPTY, NULL, DECL link_attrs, DECL target_attr, NULL
+},
+{ "map", 0, 0, 0, 0, 0, 0, 2, "client-side image map ",
+ DECL map_contents , NULL, DECL html_attrs , NULL, DECL name_attr
+},
+{ "menu", 0, 0, 0, 0, 1, 1, 0, "menu list ",
+ DECL blockli_elt , NULL, NULL, DECL compact_attrs, NULL
+},
+{ "meta", 0, 2, 2, 1, 0, 0, 0, "generic metainformation ",
+ EMPTY, NULL, DECL meta_attrs , NULL , DECL content_attr
+},
+{ "noframes", 0, 0, 0, 0, 0, 2, 0, "alternate content container for non frame-based rendering ",
+ DECL noframes_content, "body" , DECL html_attrs, NULL, NULL
+},
+{ "noscript", 0, 0, 0, 0, 0, 0, 0, "alternate content container for non script-based rendering ",
+ DECL html_flow, "div", DECL html_attrs, NULL, NULL
+},
+{ "object", 0, 0, 0, 0, 0, 0, 2, "generic embedded object ",
+ DECL object_contents , "div" , DECL object_attrs, DECL object_depr, NULL
+},
+{ "ol", 0, 0, 0, 0, 0, 0, 0, "ordered list ",
+ DECL li_elt , "li" , DECL html_attrs, DECL ol_attrs, NULL
+},
+{ "optgroup", 0, 0, 0, 0, 0, 0, 0, "option group ",
+ DECL option_elt , "option", DECL optgroup_attrs, NULL, DECL label_attr
+},
+{ "option", 0, 1, 0, 0, 0, 0, 0, "selectable choice " ,
+ DECL html_pcdata, NULL, DECL option_attrs, NULL, NULL
+},
+{ "p", 0, 1, 0, 0, 0, 0, 0, "paragraph ",
+ DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
+},
+{ "param", 0, 2, 2, 1, 0, 0, 0, "named property value ",
+ EMPTY, NULL, DECL param_attrs, NULL, DECL name_attr
+},
+{ "pre", 0, 0, 0, 0, 0, 0, 0, "preformatted text ",
+ DECL pre_content, NULL, DECL html_attrs, DECL width_attr, NULL
+},
+{ "q", 0, 0, 0, 0, 0, 0, 1, "short inline quotation ",
+ DECL html_inline, NULL, DECL quote_attrs, NULL, NULL
+},
+{ "s", 0, 3, 0, 0, 1, 1, 1, "strike-through text style",
+ DECL html_inline, NULL, NULL, DECL html_attrs, NULL
+},
+{ "samp", 0, 0, 0, 0, 0, 0, 1, "sample program output, scripts, etc.",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "script", 0, 0, 0, 0, 0, 0, 2, "script statements ",
+ DECL html_cdata, NULL, DECL script_attrs, DECL language_attr, DECL type_attr
+},
+{ "select", 0, 0, 0, 0, 0, 0, 1, "option selector ",
+ DECL select_content, NULL, DECL select_attrs, NULL, NULL
+},
+{ "small", 0, 3, 0, 0, 0, 0, 1, "small text style",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "span", 0, 0, 0, 0, 0, 0, 1, "generic language/style container ",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "strike", 0, 3, 0, 0, 1, 1, 1, "strike-through text",
+ DECL html_inline, NULL, NULL, DECL html_attrs, NULL
+},
+{ "strong", 0, 3, 0, 0, 0, 0, 1, "strong emphasis",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "style", 0, 0, 0, 0, 0, 0, 0, "style info ",
+ DECL html_cdata, NULL, DECL style_attrs, NULL, DECL type_attr
+},
+{ "sub", 0, 3, 0, 0, 0, 0, 1, "subscript",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "sup", 0, 3, 0, 0, 0, 0, 1, "superscript ",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "table", 0, 0, 0, 0, 0, 0, 0, "",
+ DECL table_contents , "tr" , DECL table_attrs , DECL table_depr, NULL
+},
+{ "tbody", 1, 0, 0, 0, 0, 0, 0, "table body ",
+ DECL tr_elt , "tr" , DECL talign_attrs, NULL, NULL
+},
+{ "td", 0, 0, 0, 0, 0, 0, 0, "table data cell",
+ DECL html_flow, NULL, DECL th_td_attr, DECL th_td_depr, NULL
+},
+{ "textarea", 0, 0, 0, 0, 0, 0, 1, "multi-line text field ",
+ DECL html_pcdata, NULL, DECL textarea_attrs, NULL, DECL rows_cols_attr
+},
+{ "tfoot", 0, 1, 0, 0, 0, 0, 0, "table footer ",
+ DECL tr_elt , "tr" , DECL talign_attrs, NULL, NULL
+},
+{ "th", 0, 1, 0, 0, 0, 0, 0, "table header cell",
+ DECL html_flow, NULL, DECL th_td_attr, DECL th_td_depr, NULL
+},
+{ "thead", 0, 1, 0, 0, 0, 0, 0, "table header ",
+ DECL tr_elt , "tr" , DECL talign_attrs, NULL, NULL
+},
+{ "title", 0, 0, 0, 0, 0, 0, 0, "document title ",
+ DECL html_pcdata, NULL, DECL i18n_attrs, NULL, NULL
+},
+{ "tr", 0, 0, 0, 0, 0, 0, 0, "table row ",
+ DECL tr_contents , "td" , DECL talign_attrs, DECL bgcolor_attr, NULL
+},
+{ "tt", 0, 3, 0, 0, 0, 0, 1, "teletype or monospaced text style",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+},
+{ "u", 0, 3, 0, 0, 1, 1, 1, "underlined text style",
+ DECL html_inline, NULL, NULL, DECL html_attrs, NULL
+},
+{ "ul", 0, 0, 0, 0, 0, 0, 0, "unordered list ",
+ DECL li_elt , "li" , DECL html_attrs, DECL ul_depr, NULL
+},
+{ "var", 0, 0, 0, 0, 0, 0, 1, "instance of a variable or program argument",
+ DECL html_inline, NULL, DECL html_attrs, NULL, NULL
+}
+};
+
+/*
+ * start tags that imply the end of current element
+ */
+static const char * const htmlStartClose[] = {
+"form", "form", "p", "hr", "h1", "h2", "h3", "h4", "h5", "h6",
+ "dl", "ul", "ol", "menu", "dir", "address", "pre",
+ "listing", "xmp", "head", NULL,
+"head", "p", NULL,
+"title", "p", NULL,
+"body", "head", "style", "link", "title", "p", NULL,
+"frameset", "head", "style", "link", "title", "p", NULL,
+"li", "p", "h1", "h2", "h3", "h4", "h5", "h6", "dl", "address",
+ "pre", "listing", "xmp", "head", "li", NULL,
+"hr", "p", "head", NULL,
+"h1", "p", "head", NULL,
+"h2", "p", "head", NULL,
+"h3", "p", "head", NULL,
+"h4", "p", "head", NULL,
+"h5", "p", "head", NULL,
+"h6", "p", "head", NULL,
+"dir", "p", "head", NULL,
+"address", "p", "head", "ul", NULL,
+"pre", "p", "head", "ul", NULL,
+"listing", "p", "head", NULL,
+"xmp", "p", "head", NULL,
+"blockquote", "p", "head", NULL,
+"dl", "p", "dt", "menu", "dir", "address", "pre", "listing",
+ "xmp", "head", NULL,
+"dt", "p", "menu", "dir", "address", "pre", "listing", "xmp",
+ "head", "dd", NULL,
+"dd", "p", "menu", "dir", "address", "pre", "listing", "xmp",
+ "head", "dt", NULL,
+"ul", "p", "head", "ol", "menu", "dir", "address", "pre",
+ "listing", "xmp", NULL,
+"ol", "p", "head", "ul", NULL,
+"menu", "p", "head", "ul", NULL,
+"p", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6", FONTSTYLE, NULL,
+"div", "p", "head", NULL,
+"noscript", "script", NULL,
+"center", "font", "b", "i", "p", "head", NULL,
+"a", "a", "head", NULL,
+"caption", "p", NULL,
+"colgroup", "caption", "colgroup", "col", "p", NULL,
+"col", "caption", "col", "p", NULL,
+"table", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6", "pre",
+ "listing", "xmp", "a", NULL,
+"th", "th", "td", "p", "span", "font", "a", "b", "i", "u", NULL,
+"td", "th", "td", "p", "span", "font", "a", "b", "i", "u", NULL,
+"tr", "th", "td", "tr", "caption", "col", "colgroup", "p", NULL,
+"thead", "caption", "col", "colgroup", NULL,
+"tfoot", "th", "td", "tr", "caption", "col", "colgroup", "thead",
+ "tbody", "p", NULL,
+"tbody", "th", "td", "tr", "caption", "col", "colgroup", "thead",
+ "tfoot", "tbody", "p", NULL,
+"optgroup", "option", NULL,
+"option", "option", NULL,
+"fieldset", "legend", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6",
+ "pre", "listing", "xmp", "a", NULL,
+/* most tags in in FONTSTYLE, PHRASE and SPECIAL should close <head> */
+"tt", "head", NULL,
+"i", "head", NULL,
+"b", "head", NULL,
+"u", "head", NULL,
+"s", "head", NULL,
+"strike", "head", NULL,
+"big", "head", NULL,
+"small", "head", NULL,
+
+"em", "head", NULL,
+"strong", "head", NULL,
+"dfn", "head", NULL,
+"code", "head", NULL,
+"samp", "head", NULL,
+"kbd", "head", NULL,
+"var", "head", NULL,
+"cite", "head", NULL,
+"abbr", "head", NULL,
+"acronym", "head", NULL,
+
+/* "a" */
+"img", "head", NULL,
+/* "applet" */
+/* "embed" */
+/* "object" */
+"font", "head", NULL,
+/* "basefont" */
+"br", "head", NULL,
+/* "script" */
+"map", "head", NULL,
+"q", "head", NULL,
+"sub", "head", NULL,
+"sup", "head", NULL,
+"span", "head", NULL,
+"bdo", "head", NULL,
+"iframe", "head", NULL,
+NULL
+};
+
+/*
+ * The list of HTML elements which are supposed not to have
+ * CDATA content and where a p element will be implied
+ *
+ * TODO: extend that list by reading the HTML SGML DTD on
+ * implied paragraph
+ */
+static const char *const htmlNoContentElements[] = {
+ "html",
+ "head",
+ NULL
+};
+
+/*
+ * The list of HTML attributes which are of content %Script;
+ * NOTE: when adding ones, check htmlIsScriptAttribute() since
+ * it assumes the name starts with 'on'
+ */
+static const char *const htmlScriptAttributes[] = {
+ "onclick",
+ "ondblclick",
+ "onmousedown",
+ "onmouseup",
+ "onmouseover",
+ "onmousemove",
+ "onmouseout",
+ "onkeypress",
+ "onkeydown",
+ "onkeyup",
+ "onload",
+ "onunload",
+ "onfocus",
+ "onblur",
+ "onsubmit",
+ "onreset",
+ "onchange",
+ "onselect"
+};
+
+/*
+ * This table is used by the htmlparser to know what to do with
+ * broken html pages. By assigning different priorities to different
+ * elements the parser can decide how to handle extra endtags.
+ * Endtags are only allowed to close elements with lower or equal
+ * priority.
+ */
+
+typedef struct {
+ const char *name;
+ int priority;
+} elementPriority;
+
+static const elementPriority htmlEndPriority[] = {
+ {"div", 150},
+ {"td", 160},
+ {"th", 160},
+ {"tr", 170},
+ {"thead", 180},
+ {"tbody", 180},
+ {"tfoot", 180},
+ {"table", 190},
+ {"head", 200},
+ {"body", 200},
+ {"html", 220},
+ {NULL, 100} /* Default priority */
+};
+
+static const char** htmlStartCloseIndex[100];
+static int htmlStartCloseIndexinitialized = 0;
+
+/************************************************************************
+ * *
+ * functions to handle HTML specific data *
+ * *
+ ************************************************************************/
+
+/**
+ * htmlInitAutoClose:
+ *
+ * Initialize the htmlStartCloseIndex for fast lookup of closing tags names.
+ * This is not reentrant. Call xmlInitParser() once before processing in
+ * case of use in multithreaded programs.
+ */
+void
+htmlInitAutoClose(void) {
+ int indx, i = 0;
+
+ if (htmlStartCloseIndexinitialized) return;
+
+ for (indx = 0;indx < 100;indx ++) htmlStartCloseIndex[indx] = NULL;
+ indx = 0;
+ while ((htmlStartClose[i] != NULL) && (indx < 100 - 1)) {
+ htmlStartCloseIndex[indx++] = (const char**) &htmlStartClose[i];
+ while (htmlStartClose[i] != NULL) i++;
+ i++;
+ }
+ htmlStartCloseIndexinitialized = 1;
+}
+
+/**
+ * htmlTagLookup:
+ * @tag: The tag name in lowercase
+ *
+ * Lookup the HTML tag in the ElementTable
+ *
+ * Returns the related htmlElemDescPtr or NULL if not found.
+ */
+const htmlElemDesc *
+htmlTagLookup(const xmlChar *tag) {
+ unsigned int i;
+
+ for (i = 0; i < (sizeof(html40ElementTable) /
+ sizeof(html40ElementTable[0]));i++) {
+ if (!xmlStrcasecmp(tag, BAD_CAST html40ElementTable[i].name))
+ return((htmlElemDescPtr) &html40ElementTable[i]);
+ }
+ return(NULL);
+}
+
+/**
+ * htmlGetEndPriority:
+ * @name: The name of the element to look up the priority for.
+ *
+ * Return value: The "endtag" priority.
+ **/
+static int
+htmlGetEndPriority (const xmlChar *name) {
+ int i = 0;
+
+ while ((htmlEndPriority[i].name != NULL) &&
+ (!xmlStrEqual((const xmlChar *)htmlEndPriority[i].name, name)))
+ i++;
+
+ return(htmlEndPriority[i].priority);
+}
+
+
+/**
+ * htmlCheckAutoClose:
+ * @newtag: The new tag name
+ * @oldtag: The old tag name
+ *
+ * Checks whether the new tag is one of the registered valid tags for
+ * closing old.
+ * Initialize the htmlStartCloseIndex for fast lookup of closing tags names.
+ *
+ * Returns 0 if no, 1 if yes.
+ */
+static int
+htmlCheckAutoClose(const xmlChar * newtag, const xmlChar * oldtag)
+{
+ int i, indx;
+ const char **closed = NULL;
+
+ if (htmlStartCloseIndexinitialized == 0)
+ htmlInitAutoClose();
+
+ /* inefficient, but not a big deal */
+ for (indx = 0; indx < 100; indx++) {
+ closed = htmlStartCloseIndex[indx];
+ if (closed == NULL)
+ return (0);
+ if (xmlStrEqual(BAD_CAST * closed, newtag))
+ break;
+ }
+
+ i = closed - htmlStartClose;
+ i++;
+ while (htmlStartClose[i] != NULL) {
+ if (xmlStrEqual(BAD_CAST htmlStartClose[i], oldtag)) {
+ return (1);
+ }
+ i++;
+ }
+ return (0);
+}
+
+/**
+ * htmlAutoCloseOnClose:
+ * @ctxt: an HTML parser context
+ * @newtag: The new tag name
+ * @force: force the tag closure
+ *
+ * The HTML DTD allows an ending tag to implicitly close other tags.
+ */
+static void
+htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const xmlChar * newtag)
+{
+ const htmlElemDesc *info;
+ int i, priority;
+
+ priority = htmlGetEndPriority(newtag);
+
+ for (i = (ctxt->nameNr - 1); i >= 0; i--) {
+
+ if (xmlStrEqual(newtag, ctxt->nameTab[i]))
+ break;
+ /*
+ * A misplaced endtag can only close elements with lower
+ * or equal priority, so if we find an element with higher
+ * priority before we find an element with
+ * matching name, we just ignore this endtag
+ */
+ if (htmlGetEndPriority(ctxt->nameTab[i]) > priority)
+ return;
+ }
+ if (i < 0)
+ return;
+
+ while (!xmlStrEqual(newtag, ctxt->name)) {
+ info = htmlTagLookup(ctxt->name);
+ if ((info != NULL) && (info->endTag == 3)) {
+ htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
+ "Opening and ending tag mismatch: %s and %s\n",
+ newtag, ctxt->name);
+ }
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, ctxt->name);
+ htmlnamePop(ctxt);
+ }
+}
+
+/**
+ * htmlAutoCloseOnEnd:
+ * @ctxt: an HTML parser context
+ *
+ * Close all remaining tags at the end of the stream
+ */
+static void
+htmlAutoCloseOnEnd(htmlParserCtxtPtr ctxt)
+{
+ int i;
+
+ if (ctxt->nameNr == 0)
+ return;
+ for (i = (ctxt->nameNr - 1); i >= 0; i--) {
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, ctxt->name);
+ htmlnamePop(ctxt);
+ }
+}
+
+/**
+ * htmlAutoClose:
+ * @ctxt: an HTML parser context
+ * @newtag: The new tag name or NULL
+ *
+ * The HTML DTD allows a tag to implicitly close other tags.
+ * The list is kept in htmlStartClose array. This function is
+ * called when a new tag has been detected and generates the
+ * appropriates closes if possible/needed.
+ * If newtag is NULL this mean we are at the end of the resource
+ * and we should check
+ */
+static void
+htmlAutoClose(htmlParserCtxtPtr ctxt, const xmlChar * newtag)
+{
+ while ((newtag != NULL) && (ctxt->name != NULL) &&
+ (htmlCheckAutoClose(newtag, ctxt->name))) {
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, ctxt->name);
+ htmlnamePop(ctxt);
+ }
+ if (newtag == NULL) {
+ htmlAutoCloseOnEnd(ctxt);
+ return;
+ }
+ while ((newtag == NULL) && (ctxt->name != NULL) &&
+ ((xmlStrEqual(ctxt->name, BAD_CAST "head")) ||
+ (xmlStrEqual(ctxt->name, BAD_CAST "body")) ||
+ (xmlStrEqual(ctxt->name, BAD_CAST "html")))) {
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, ctxt->name);
+ htmlnamePop(ctxt);
+ }
+}
+
+/**
+ * htmlAutoCloseTag:
+ * @doc: the HTML document
+ * @name: The tag name
+ * @elem: the HTML element
+ *
+ * The HTML DTD allows a tag to implicitly close other tags.
+ * The list is kept in htmlStartClose array. This function checks
+ * if the element or one of it's children would autoclose the
+ * given tag.
+ *
+ * Returns 1 if autoclose, 0 otherwise
+ */
+int
+htmlAutoCloseTag(htmlDocPtr doc, const xmlChar *name, htmlNodePtr elem) {
+ htmlNodePtr child;
+
+ if (elem == NULL) return(1);
+ if (xmlStrEqual(name, elem->name)) return(0);
+ if (htmlCheckAutoClose(elem->name, name)) return(1);
+ child = elem->children;
+ while (child != NULL) {
+ if (htmlAutoCloseTag(doc, name, child)) return(1);
+ child = child->next;
+ }
+ return(0);
+}
+
+/**
+ * htmlIsAutoClosed:
+ * @doc: the HTML document
+ * @elem: the HTML element
+ *
+ * The HTML DTD allows a tag to implicitly close other tags.
+ * The list is kept in htmlStartClose array. This function checks
+ * if a tag is autoclosed by one of it's child
+ *
+ * Returns 1 if autoclosed, 0 otherwise
+ */
+int
+htmlIsAutoClosed(htmlDocPtr doc, htmlNodePtr elem) {
+ htmlNodePtr child;
+
+ if (elem == NULL) return(1);
+ child = elem->children;
+ while (child != NULL) {
+ if (htmlAutoCloseTag(doc, elem->name, child)) return(1);
+ child = child->next;
+ }
+ return(0);
+}
+
+/**
+ * htmlCheckImplied:
+ * @ctxt: an HTML parser context
+ * @newtag: The new tag name
+ *
+ * The HTML DTD allows a tag to exists only implicitly
+ * called when a new tag has been detected and generates the
+ * appropriates implicit tags if missing
+ */
+static void
+htmlCheckImplied(htmlParserCtxtPtr ctxt, const xmlChar *newtag) {
+ int i;
+
+ if (ctxt->options & HTML_PARSE_NOIMPLIED)
+ return;
+ if (!htmlOmittedDefaultValue)
+ return;
+ if (xmlStrEqual(newtag, BAD_CAST"html"))
+ return;
+ if (ctxt->nameNr <= 0) {
+ htmlnamePush(ctxt, BAD_CAST"html");
+ if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
+ ctxt->sax->startElement(ctxt->userData, BAD_CAST"html", NULL);
+ }
+ if ((xmlStrEqual(newtag, BAD_CAST"body")) || (xmlStrEqual(newtag, BAD_CAST"head")))
+ return;
+ if ((ctxt->nameNr <= 1) &&
+ ((xmlStrEqual(newtag, BAD_CAST"script")) ||
+ (xmlStrEqual(newtag, BAD_CAST"style")) ||
+ (xmlStrEqual(newtag, BAD_CAST"meta")) ||
+ (xmlStrEqual(newtag, BAD_CAST"link")) ||
+ (xmlStrEqual(newtag, BAD_CAST"title")) ||
+ (xmlStrEqual(newtag, BAD_CAST"base")))) {
+ if (ctxt->html >= 3) {
+ /* we already saw or generated an <head> before */
+ return;
+ }
+ /*
+ * dropped OBJECT ... i you put it first BODY will be
+ * assumed !
+ */
+ htmlnamePush(ctxt, BAD_CAST"head");
+ if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
+ ctxt->sax->startElement(ctxt->userData, BAD_CAST"head", NULL);
+ } else if ((!xmlStrEqual(newtag, BAD_CAST"noframes")) &&
+ (!xmlStrEqual(newtag, BAD_CAST"frame")) &&
+ (!xmlStrEqual(newtag, BAD_CAST"frameset"))) {
+ if (ctxt->html >= 10) {
+ /* we already saw or generated a <body> before */
+ return;
+ }
+ for (i = 0;i < ctxt->nameNr;i++) {
+ if (xmlStrEqual(ctxt->nameTab[i], BAD_CAST"body")) {
+ return;
+ }
+ if (xmlStrEqual(ctxt->nameTab[i], BAD_CAST"head")) {
+ return;
+ }
+ }
+
+ htmlnamePush(ctxt, BAD_CAST"body");
+ if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
+ ctxt->sax->startElement(ctxt->userData, BAD_CAST"body", NULL);
+ }
+}
+
+/**
+ * htmlCheckParagraph
+ * @ctxt: an HTML parser context
+ *
+ * Check whether a p element need to be implied before inserting
+ * characters in the current element.
+ *
+ * Returns 1 if a paragraph has been inserted, 0 if not and -1
+ * in case of error.
+ */
+
+static int
+htmlCheckParagraph(htmlParserCtxtPtr ctxt) {
+ const xmlChar *tag;
+ int i;
+
+ if (ctxt == NULL)
+ return(-1);
+ tag = ctxt->name;
+ if (tag == NULL) {
+ htmlAutoClose(ctxt, BAD_CAST"p");
+ htmlCheckImplied(ctxt, BAD_CAST"p");
+ htmlnamePush(ctxt, BAD_CAST"p");
+ if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
+ ctxt->sax->startElement(ctxt->userData, BAD_CAST"p", NULL);
+ return(1);
+ }
+ if (!htmlOmittedDefaultValue)
+ return(0);
+ for (i = 0; htmlNoContentElements[i] != NULL; i++) {
+ if (xmlStrEqual(tag, BAD_CAST htmlNoContentElements[i])) {
+ htmlAutoClose(ctxt, BAD_CAST"p");
+ htmlCheckImplied(ctxt, BAD_CAST"p");
+ htmlnamePush(ctxt, BAD_CAST"p");
+ if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
+ ctxt->sax->startElement(ctxt->userData, BAD_CAST"p", NULL);
+ return(1);
+ }
+ }
+ return(0);
+}
+
+/**
+ * htmlIsScriptAttribute:
+ * @name: an attribute name
+ *
+ * Check if an attribute is of content type Script
+ *
+ * Returns 1 is the attribute is a script 0 otherwise
+ */
+int
+htmlIsScriptAttribute(const xmlChar *name) {
+ unsigned int i;
+
+ if (name == NULL)
+ return(0);
+ /*
+ * all script attributes start with 'on'
+ */
+ if ((name[0] != 'o') || (name[1] != 'n'))
+ return(0);
+ for (i = 0;
+ i < sizeof(htmlScriptAttributes)/sizeof(htmlScriptAttributes[0]);
+ i++) {
+ if (xmlStrEqual(name, (const xmlChar *) htmlScriptAttributes[i]))
+ return(1);
+ }
+ return(0);
+}
+
+/************************************************************************
+ * *
+ * The list of HTML predefined entities *
+ * *
+ ************************************************************************/
+
+
+static const htmlEntityDesc html40EntitiesTable[] = {
+/*
+ * the 4 absolute ones, plus apostrophe.
+ */
+{ 34, "quot", "quotation mark = APL quote, U+0022 ISOnum" },
+{ 38, "amp", "ampersand, U+0026 ISOnum" },
+{ 39, "apos", "single quote" },
+{ 60, "lt", "less-than sign, U+003C ISOnum" },
+{ 62, "gt", "greater-than sign, U+003E ISOnum" },
+
+/*
+ * A bunch still in the 128-255 range
+ * Replacing them depend really on the charset used.
+ */
+{ 160, "nbsp", "no-break space = non-breaking space, U+00A0 ISOnum" },
+{ 161, "iexcl","inverted exclamation mark, U+00A1 ISOnum" },
+{ 162, "cent", "cent sign, U+00A2 ISOnum" },
+{ 163, "pound","pound sign, U+00A3 ISOnum" },
+{ 164, "curren","currency sign, U+00A4 ISOnum" },
+{ 165, "yen", "yen sign = yuan sign, U+00A5 ISOnum" },
+{ 166, "brvbar","broken bar = broken vertical bar, U+00A6 ISOnum" },
+{ 167, "sect", "section sign, U+00A7 ISOnum" },
+{ 168, "uml", "diaeresis = spacing diaeresis, U+00A8 ISOdia" },
+{ 169, "copy", "copyright sign, U+00A9 ISOnum" },
+{ 170, "ordf", "feminine ordinal indicator, U+00AA ISOnum" },
+{ 171, "laquo","left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum" },
+{ 172, "not", "not sign, U+00AC ISOnum" },
+{ 173, "shy", "soft hyphen = discretionary hyphen, U+00AD ISOnum" },
+{ 174, "reg", "registered sign = registered trade mark sign, U+00AE ISOnum" },
+{ 175, "macr", "macron = spacing macron = overline = APL overbar, U+00AF ISOdia" },
+{ 176, "deg", "degree sign, U+00B0 ISOnum" },
+{ 177, "plusmn","plus-minus sign = plus-or-minus sign, U+00B1 ISOnum" },
+{ 178, "sup2", "superscript two = superscript digit two = squared, U+00B2 ISOnum" },
+{ 179, "sup3", "superscript three = superscript digit three = cubed, U+00B3 ISOnum" },
+{ 180, "acute","acute accent = spacing acute, U+00B4 ISOdia" },
+{ 181, "micro","micro sign, U+00B5 ISOnum" },
+{ 182, "para", "pilcrow sign = paragraph sign, U+00B6 ISOnum" },
+{ 183, "middot","middle dot = Georgian comma Greek middle dot, U+00B7 ISOnum" },
+{ 184, "cedil","cedilla = spacing cedilla, U+00B8 ISOdia" },
+{ 185, "sup1", "superscript one = superscript digit one, U+00B9 ISOnum" },
+{ 186, "ordm", "masculine ordinal indicator, U+00BA ISOnum" },
+{ 187, "raquo","right-pointing double angle quotation mark right pointing guillemet, U+00BB ISOnum" },
+{ 188, "frac14","vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum" },
+{ 189, "frac12","vulgar fraction one half = fraction one half, U+00BD ISOnum" },
+{ 190, "frac34","vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum" },
+{ 191, "iquest","inverted question mark = turned question mark, U+00BF ISOnum" },
+{ 192, "Agrave","latin capital letter A with grave = latin capital letter A grave, U+00C0 ISOlat1" },
+{ 193, "Aacute","latin capital letter A with acute, U+00C1 ISOlat1" },
+{ 194, "Acirc","latin capital letter A with circumflex, U+00C2 ISOlat1" },
+{ 195, "Atilde","latin capital letter A with tilde, U+00C3 ISOlat1" },
+{ 196, "Auml", "latin capital letter A with diaeresis, U+00C4 ISOlat1" },
+{ 197, "Aring","latin capital letter A with ring above = latin capital letter A ring, U+00C5 ISOlat1" },
+{ 198, "AElig","latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1" },
+{ 199, "Ccedil","latin capital letter C with cedilla, U+00C7 ISOlat1" },
+{ 200, "Egrave","latin capital letter E with grave, U+00C8 ISOlat1" },
+{ 201, "Eacute","latin capital letter E with acute, U+00C9 ISOlat1" },
+{ 202, "Ecirc","latin capital letter E with circumflex, U+00CA ISOlat1" },
+{ 203, "Euml", "latin capital letter E with diaeresis, U+00CB ISOlat1" },
+{ 204, "Igrave","latin capital letter I with grave, U+00CC ISOlat1" },
+{ 205, "Iacute","latin capital letter I with acute, U+00CD ISOlat1" },
+{ 206, "Icirc","latin capital letter I with circumflex, U+00CE ISOlat1" },
+{ 207, "Iuml", "latin capital letter I with diaeresis, U+00CF ISOlat1" },
+{ 208, "ETH", "latin capital letter ETH, U+00D0 ISOlat1" },
+{ 209, "Ntilde","latin capital letter N with tilde, U+00D1 ISOlat1" },
+{ 210, "Ograve","latin capital letter O with grave, U+00D2 ISOlat1" },
+{ 211, "Oacute","latin capital letter O with acute, U+00D3 ISOlat1" },
+{ 212, "Ocirc","latin capital letter O with circumflex, U+00D4 ISOlat1" },
+{ 213, "Otilde","latin capital letter O with tilde, U+00D5 ISOlat1" },
+{ 214, "Ouml", "latin capital letter O with diaeresis, U+00D6 ISOlat1" },
+{ 215, "times","multiplication sign, U+00D7 ISOnum" },
+{ 216, "Oslash","latin capital letter O with stroke latin capital letter O slash, U+00D8 ISOlat1" },
+{ 217, "Ugrave","latin capital letter U with grave, U+00D9 ISOlat1" },
+{ 218, "Uacute","latin capital letter U with acute, U+00DA ISOlat1" },
+{ 219, "Ucirc","latin capital letter U with circumflex, U+00DB ISOlat1" },
+{ 220, "Uuml", "latin capital letter U with diaeresis, U+00DC ISOlat1" },
+{ 221, "Yacute","latin capital letter Y with acute, U+00DD ISOlat1" },
+{ 222, "THORN","latin capital letter THORN, U+00DE ISOlat1" },
+{ 223, "szlig","latin small letter sharp s = ess-zed, U+00DF ISOlat1" },
+{ 224, "agrave","latin small letter a with grave = latin small letter a grave, U+00E0 ISOlat1" },
+{ 225, "aacute","latin small letter a with acute, U+00E1 ISOlat1" },
+{ 226, "acirc","latin small letter a with circumflex, U+00E2 ISOlat1" },
+{ 227, "atilde","latin small letter a with tilde, U+00E3 ISOlat1" },
+{ 228, "auml", "latin small letter a with diaeresis, U+00E4 ISOlat1" },
+{ 229, "aring","latin small letter a with ring above = latin small letter a ring, U+00E5 ISOlat1" },
+{ 230, "aelig","latin small letter ae = latin small ligature ae, U+00E6 ISOlat1" },
+{ 231, "ccedil","latin small letter c with cedilla, U+00E7 ISOlat1" },
+{ 232, "egrave","latin small letter e with grave, U+00E8 ISOlat1" },
+{ 233, "eacute","latin small letter e with acute, U+00E9 ISOlat1" },
+{ 234, "ecirc","latin small letter e with circumflex, U+00EA ISOlat1" },
+{ 235, "euml", "latin small letter e with diaeresis, U+00EB ISOlat1" },
+{ 236, "igrave","latin small letter i with grave, U+00EC ISOlat1" },
+{ 237, "iacute","latin small letter i with acute, U+00ED ISOlat1" },
+{ 238, "icirc","latin small letter i with circumflex, U+00EE ISOlat1" },
+{ 239, "iuml", "latin small letter i with diaeresis, U+00EF ISOlat1" },
+{ 240, "eth", "latin small letter eth, U+00F0 ISOlat1" },
+{ 241, "ntilde","latin small letter n with tilde, U+00F1 ISOlat1" },
+{ 242, "ograve","latin small letter o with grave, U+00F2 ISOlat1" },
+{ 243, "oacute","latin small letter o with acute, U+00F3 ISOlat1" },
+{ 244, "ocirc","latin small letter o with circumflex, U+00F4 ISOlat1" },
+{ 245, "otilde","latin small letter o with tilde, U+00F5 ISOlat1" },
+{ 246, "ouml", "latin small letter o with diaeresis, U+00F6 ISOlat1" },
+{ 247, "divide","division sign, U+00F7 ISOnum" },
+{ 248, "oslash","latin small letter o with stroke, = latin small letter o slash, U+00F8 ISOlat1" },
+{ 249, "ugrave","latin small letter u with grave, U+00F9 ISOlat1" },
+{ 250, "uacute","latin small letter u with acute, U+00FA ISOlat1" },
+{ 251, "ucirc","latin small letter u with circumflex, U+00FB ISOlat1" },
+{ 252, "uuml", "latin small letter u with diaeresis, U+00FC ISOlat1" },
+{ 253, "yacute","latin small letter y with acute, U+00FD ISOlat1" },
+{ 254, "thorn","latin small letter thorn with, U+00FE ISOlat1" },
+{ 255, "yuml", "latin small letter y with diaeresis, U+00FF ISOlat1" },
+
+{ 338, "OElig","latin capital ligature OE, U+0152 ISOlat2" },
+{ 339, "oelig","latin small ligature oe, U+0153 ISOlat2" },
+{ 352, "Scaron","latin capital letter S with caron, U+0160 ISOlat2" },
+{ 353, "scaron","latin small letter s with caron, U+0161 ISOlat2" },
+{ 376, "Yuml", "latin capital letter Y with diaeresis, U+0178 ISOlat2" },
+
+/*
+ * Anything below should really be kept as entities references
+ */
+{ 402, "fnof", "latin small f with hook = function = florin, U+0192 ISOtech" },
+
+{ 710, "circ", "modifier letter circumflex accent, U+02C6 ISOpub" },
+{ 732, "tilde","small tilde, U+02DC ISOdia" },
+
+{ 913, "Alpha","greek capital letter alpha, U+0391" },
+{ 914, "Beta", "greek capital letter beta, U+0392" },
+{ 915, "Gamma","greek capital letter gamma, U+0393 ISOgrk3" },
+{ 916, "Delta","greek capital letter delta, U+0394 ISOgrk3" },
+{ 917, "Epsilon","greek capital letter epsilon, U+0395" },
+{ 918, "Zeta", "greek capital letter zeta, U+0396" },
+{ 919, "Eta", "greek capital letter eta, U+0397" },
+{ 920, "Theta","greek capital letter theta, U+0398 ISOgrk3" },
+{ 921, "Iota", "greek capital letter iota, U+0399" },
+{ 922, "Kappa","greek capital letter kappa, U+039A" },
+{ 923, "Lambda", "greek capital letter lambda, U+039B ISOgrk3" },
+{ 924, "Mu", "greek capital letter mu, U+039C" },
+{ 925, "Nu", "greek capital letter nu, U+039D" },
+{ 926, "Xi", "greek capital letter xi, U+039E ISOgrk3" },
+{ 927, "Omicron","greek capital letter omicron, U+039F" },
+{ 928, "Pi", "greek capital letter pi, U+03A0 ISOgrk3" },
+{ 929, "Rho", "greek capital letter rho, U+03A1" },
+{ 931, "Sigma","greek capital letter sigma, U+03A3 ISOgrk3" },
+{ 932, "Tau", "greek capital letter tau, U+03A4" },
+{ 933, "Upsilon","greek capital letter upsilon, U+03A5 ISOgrk3" },
+{ 934, "Phi", "greek capital letter phi, U+03A6 ISOgrk3" },
+{ 935, "Chi", "greek capital letter chi, U+03A7" },
+{ 936, "Psi", "greek capital letter psi, U+03A8 ISOgrk3" },
+{ 937, "Omega","greek capital letter omega, U+03A9 ISOgrk3" },
+
+{ 945, "alpha","greek small letter alpha, U+03B1 ISOgrk3" },
+{ 946, "beta", "greek small letter beta, U+03B2 ISOgrk3" },
+{ 947, "gamma","greek small letter gamma, U+03B3 ISOgrk3" },
+{ 948, "delta","greek small letter delta, U+03B4 ISOgrk3" },
+{ 949, "epsilon","greek small letter epsilon, U+03B5 ISOgrk3" },
+{ 950, "zeta", "greek small letter zeta, U+03B6 ISOgrk3" },
+{ 951, "eta", "greek small letter eta, U+03B7 ISOgrk3" },
+{ 952, "theta","greek small letter theta, U+03B8 ISOgrk3" },
+{ 953, "iota", "greek small letter iota, U+03B9 ISOgrk3" },
+{ 954, "kappa","greek small letter kappa, U+03BA ISOgrk3" },
+{ 955, "lambda","greek small letter lambda, U+03BB ISOgrk3" },
+{ 956, "mu", "greek small letter mu, U+03BC ISOgrk3" },
+{ 957, "nu", "greek small letter nu, U+03BD ISOgrk3" },
+{ 958, "xi", "greek small letter xi, U+03BE ISOgrk3" },
+{ 959, "omicron","greek small letter omicron, U+03BF NEW" },
+{ 960, "pi", "greek small letter pi, U+03C0 ISOgrk3" },
+{ 961, "rho", "greek small letter rho, U+03C1 ISOgrk3" },
+{ 962, "sigmaf","greek small letter final sigma, U+03C2 ISOgrk3" },
+{ 963, "sigma","greek small letter sigma, U+03C3 ISOgrk3" },
+{ 964, "tau", "greek small letter tau, U+03C4 ISOgrk3" },
+{ 965, "upsilon","greek small letter upsilon, U+03C5 ISOgrk3" },
+{ 966, "phi", "greek small letter phi, U+03C6 ISOgrk3" },
+{ 967, "chi", "greek small letter chi, U+03C7 ISOgrk3" },
+{ 968, "psi", "greek small letter psi, U+03C8 ISOgrk3" },
+{ 969, "omega","greek small letter omega, U+03C9 ISOgrk3" },
+{ 977, "thetasym","greek small letter theta symbol, U+03D1 NEW" },
+{ 978, "upsih","greek upsilon with hook symbol, U+03D2 NEW" },
+{ 982, "piv", "greek pi symbol, U+03D6 ISOgrk3" },
+
+{ 8194, "ensp", "en space, U+2002 ISOpub" },
+{ 8195, "emsp", "em space, U+2003 ISOpub" },
+{ 8201, "thinsp","thin space, U+2009 ISOpub" },
+{ 8204, "zwnj", "zero width non-joiner, U+200C NEW RFC 2070" },
+{ 8205, "zwj", "zero width joiner, U+200D NEW RFC 2070" },
+{ 8206, "lrm", "left-to-right mark, U+200E NEW RFC 2070" },
+{ 8207, "rlm", "right-to-left mark, U+200F NEW RFC 2070" },
+{ 8211, "ndash","en dash, U+2013 ISOpub" },
+{ 8212, "mdash","em dash, U+2014 ISOpub" },
+{ 8216, "lsquo","left single quotation mark, U+2018 ISOnum" },
+{ 8217, "rsquo","right single quotation mark, U+2019 ISOnum" },
+{ 8218, "sbquo","single low-9 quotation mark, U+201A NEW" },
+{ 8220, "ldquo","left double quotation mark, U+201C ISOnum" },
+{ 8221, "rdquo","right double quotation mark, U+201D ISOnum" },
+{ 8222, "bdquo","double low-9 quotation mark, U+201E NEW" },
+{ 8224, "dagger","dagger, U+2020 ISOpub" },
+{ 8225, "Dagger","double dagger, U+2021 ISOpub" },
+
+{ 8226, "bull", "bullet = black small circle, U+2022 ISOpub" },
+{ 8230, "hellip","horizontal ellipsis = three dot leader, U+2026 ISOpub" },
+
+{ 8240, "permil","per mille sign, U+2030 ISOtech" },
+
+{ 8242, "prime","prime = minutes = feet, U+2032 ISOtech" },
+{ 8243, "Prime","double prime = seconds = inches, U+2033 ISOtech" },
+
+{ 8249, "lsaquo","single left-pointing angle quotation mark, U+2039 ISO proposed" },
+{ 8250, "rsaquo","single right-pointing angle quotation mark, U+203A ISO proposed" },
+
+{ 8254, "oline","overline = spacing overscore, U+203E NEW" },
+{ 8260, "frasl","fraction slash, U+2044 NEW" },
+
+{ 8364, "euro", "euro sign, U+20AC NEW" },
+
+{ 8465, "image","blackletter capital I = imaginary part, U+2111 ISOamso" },
+{ 8472, "weierp","script capital P = power set = Weierstrass p, U+2118 ISOamso" },
+{ 8476, "real", "blackletter capital R = real part symbol, U+211C ISOamso" },
+{ 8482, "trade","trade mark sign, U+2122 ISOnum" },
+{ 8501, "alefsym","alef symbol = first transfinite cardinal, U+2135 NEW" },
+{ 8592, "larr", "leftwards arrow, U+2190 ISOnum" },
+{ 8593, "uarr", "upwards arrow, U+2191 ISOnum" },
+{ 8594, "rarr", "rightwards arrow, U+2192 ISOnum" },
+{ 8595, "darr", "downwards arrow, U+2193 ISOnum" },
+{ 8596, "harr", "left right arrow, U+2194 ISOamsa" },
+{ 8629, "crarr","downwards arrow with corner leftwards = carriage return, U+21B5 NEW" },
+{ 8656, "lArr", "leftwards double arrow, U+21D0 ISOtech" },
+{ 8657, "uArr", "upwards double arrow, U+21D1 ISOamsa" },
+{ 8658, "rArr", "rightwards double arrow, U+21D2 ISOtech" },
+{ 8659, "dArr", "downwards double arrow, U+21D3 ISOamsa" },
+{ 8660, "hArr", "left right double arrow, U+21D4 ISOamsa" },
+
+{ 8704, "forall","for all, U+2200 ISOtech" },
+{ 8706, "part", "partial differential, U+2202 ISOtech" },
+{ 8707, "exist","there exists, U+2203 ISOtech" },
+{ 8709, "empty","empty set = null set = diameter, U+2205 ISOamso" },
+{ 8711, "nabla","nabla = backward difference, U+2207 ISOtech" },
+{ 8712, "isin", "element of, U+2208 ISOtech" },
+{ 8713, "notin","not an element of, U+2209 ISOtech" },
+{ 8715, "ni", "contains as member, U+220B ISOtech" },
+{ 8719, "prod", "n-ary product = product sign, U+220F ISOamsb" },
+{ 8721, "sum", "n-ary summation, U+2211 ISOamsb" },
+{ 8722, "minus","minus sign, U+2212 ISOtech" },
+{ 8727, "lowast","asterisk operator, U+2217 ISOtech" },
+{ 8730, "radic","square root = radical sign, U+221A ISOtech" },
+{ 8733, "prop", "proportional to, U+221D ISOtech" },
+{ 8734, "infin","infinity, U+221E ISOtech" },
+{ 8736, "ang", "angle, U+2220 ISOamso" },
+{ 8743, "and", "logical and = wedge, U+2227 ISOtech" },
+{ 8744, "or", "logical or = vee, U+2228 ISOtech" },
+{ 8745, "cap", "intersection = cap, U+2229 ISOtech" },
+{ 8746, "cup", "union = cup, U+222A ISOtech" },
+{ 8747, "int", "integral, U+222B ISOtech" },
+{ 8756, "there4","therefore, U+2234 ISOtech" },
+{ 8764, "sim", "tilde operator = varies with = similar to, U+223C ISOtech" },
+{ 8773, "cong", "approximately equal to, U+2245 ISOtech" },
+{ 8776, "asymp","almost equal to = asymptotic to, U+2248 ISOamsr" },
+{ 8800, "ne", "not equal to, U+2260 ISOtech" },
+{ 8801, "equiv","identical to, U+2261 ISOtech" },
+{ 8804, "le", "less-than or equal to, U+2264 ISOtech" },
+{ 8805, "ge", "greater-than or equal to, U+2265 ISOtech" },
+{ 8834, "sub", "subset of, U+2282 ISOtech" },
+{ 8835, "sup", "superset of, U+2283 ISOtech" },
+{ 8836, "nsub", "not a subset of, U+2284 ISOamsn" },
+{ 8838, "sube", "subset of or equal to, U+2286 ISOtech" },
+{ 8839, "supe", "superset of or equal to, U+2287 ISOtech" },
+{ 8853, "oplus","circled plus = direct sum, U+2295 ISOamsb" },
+{ 8855, "otimes","circled times = vector product, U+2297 ISOamsb" },
+{ 8869, "perp", "up tack = orthogonal to = perpendicular, U+22A5 ISOtech" },
+{ 8901, "sdot", "dot operator, U+22C5 ISOamsb" },
+{ 8968, "lceil","left ceiling = apl upstile, U+2308 ISOamsc" },
+{ 8969, "rceil","right ceiling, U+2309 ISOamsc" },
+{ 8970, "lfloor","left floor = apl downstile, U+230A ISOamsc" },
+{ 8971, "rfloor","right floor, U+230B ISOamsc" },
+{ 9001, "lang", "left-pointing angle bracket = bra, U+2329 ISOtech" },
+{ 9002, "rang", "right-pointing angle bracket = ket, U+232A ISOtech" },
+{ 9674, "loz", "lozenge, U+25CA ISOpub" },
+
+{ 9824, "spades","black spade suit, U+2660 ISOpub" },
+{ 9827, "clubs","black club suit = shamrock, U+2663 ISOpub" },
+{ 9829, "hearts","black heart suit = valentine, U+2665 ISOpub" },
+{ 9830, "diams","black diamond suit, U+2666 ISOpub" },
+
+};
+
+/************************************************************************
+ * *
+ * Commodity functions to handle entities *
+ * *
+ ************************************************************************/
+
+/*
+ * Macro used to grow the current buffer.
+ */
+#define growBuffer(buffer) { \
+ xmlChar *tmp; \
+ buffer##_size *= 2; \
+ tmp = (xmlChar *) xmlRealloc(buffer, buffer##_size * sizeof(xmlChar)); \
+ if (tmp == NULL) { \
+ htmlErrMemory(ctxt, "growing buffer\n"); \
+ xmlFree(buffer); \
+ return(NULL); \
+ } \
+ buffer = tmp; \
+}
+
+/**
+ * htmlEntityLookup:
+ * @name: the entity name
+ *
+ * Lookup the given entity in EntitiesTable
+ *
+ * TODO: the linear scan is really ugly, an hash table is really needed.
+ *
+ * Returns the associated htmlEntityDescPtr if found, NULL otherwise.
+ */
+const htmlEntityDesc *
+htmlEntityLookup(const xmlChar *name) {
+ unsigned int i;
+
+ for (i = 0;i < (sizeof(html40EntitiesTable)/
+ sizeof(html40EntitiesTable[0]));i++) {
+ if (xmlStrEqual(name, BAD_CAST html40EntitiesTable[i].name)) {
+ return((htmlEntityDescPtr) &html40EntitiesTable[i]);
+ }
+ }
+ return(NULL);
+}
+
+/**
+ * htmlEntityValueLookup:
+ * @value: the entity's unicode value
+ *
+ * Lookup the given entity in EntitiesTable
+ *
+ * TODO: the linear scan is really ugly, an hash table is really needed.
+ *
+ * Returns the associated htmlEntityDescPtr if found, NULL otherwise.
+ */
+const htmlEntityDesc *
+htmlEntityValueLookup(unsigned int value) {
+ unsigned int i;
+
+ for (i = 0;i < (sizeof(html40EntitiesTable)/
+ sizeof(html40EntitiesTable[0]));i++) {
+ if (html40EntitiesTable[i].value >= value) {
+ if (html40EntitiesTable[i].value > value)
+ break;
+ return((htmlEntityDescPtr) &html40EntitiesTable[i]);
+ }
+ }
+ return(NULL);
+}
+
+/**
+ * UTF8ToHtml:
+ * @out: a pointer to an array of bytes to store the result
+ * @outlen: the length of @out
+ * @in: a pointer to an array of UTF-8 chars
+ * @inlen: the length of @in
+ *
+ * Take a block of UTF-8 chars in and try to convert it to an ASCII
+ * plus HTML entities block of chars out.
+ *
+ * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
+ * The value of @inlen after return is the number of octets consumed
+ * as the return value is positive, else unpredictable.
+ * The value of @outlen after return is the number of octets consumed.
+ */
+int
+UTF8ToHtml(unsigned char* out, int *outlen,
+ const unsigned char* in, int *inlen) {
+ const unsigned char* processed = in;
+ const unsigned char* outend;
+ const unsigned char* outstart = out;
+ const unsigned char* instart = in;
+ const unsigned char* inend;
+ unsigned int c, d;
+ int trailing;
+
+ if ((out == NULL) || (outlen == NULL) || (inlen == NULL)) return(-1);
+ if (in == NULL) {
+ /*
+ * initialization nothing to do
+ */
+ *outlen = 0;
+ *inlen = 0;
+ return(0);
+ }
+ inend = in + (*inlen);
+ outend = out + (*outlen);
+ while (in < inend) {
+ d = *in++;
+ if (d < 0x80) { c= d; trailing= 0; }
+ else if (d < 0xC0) {
+ /* trailing byte in leading position */
+ *outlen = out - outstart;
+ *inlen = processed - instart;
+ return(-2);
+ } else if (d < 0xE0) { c= d & 0x1F; trailing= 1; }
+ else if (d < 0xF0) { c= d & 0x0F; trailing= 2; }
+ else if (d < 0xF8) { c= d & 0x07; trailing= 3; }
+ else {
+ /* no chance for this in Ascii */
+ *outlen = out - outstart;
+ *inlen = processed - instart;
+ return(-2);
+ }
+
+ if (inend - in < trailing) {
+ break;
+ }
+
+ for ( ; trailing; trailing--) {
+ if ((in >= inend) || (((d= *in++) & 0xC0) != 0x80))
+ break;
+ c <<= 6;
+ c |= d & 0x3F;
+ }
+
+ /* assertion: c is a single UTF-4 value */
+ if (c < 0x80) {
+ if (out + 1 >= outend)
+ break;
+ *out++ = c;
+ } else {
+ int len;
+ const htmlEntityDesc * ent;
+ const char *cp;
+ char nbuf[16];
+
+ /*
+ * Try to lookup a predefined HTML entity for it
+ */
+
+ ent = htmlEntityValueLookup(c);
+ if (ent == NULL) {
+ snprintf(nbuf, sizeof(nbuf), "#%u", c);
+ cp = nbuf;
+ }
+ else
+ cp = ent->name;
+ len = strlen(cp);
+ if (out + 2 + len >= outend)
+ break;
+ *out++ = '&';
+ memcpy(out, cp, len);
+ out += len;
+ *out++ = ';';
+ }
+ processed = in;
+ }
+ *outlen = out - outstart;
+ *inlen = processed - instart;
+ return(0);
+}
+
+/**
+ * htmlEncodeEntities:
+ * @out: a pointer to an array of bytes to store the result
+ * @outlen: the length of @out
+ * @in: a pointer to an array of UTF-8 chars
+ * @inlen: the length of @in
+ * @quoteChar: the quote character to escape (' or ") or zero.
+ *
+ * Take a block of UTF-8 chars in and try to convert it to an ASCII
+ * plus HTML entities block of chars out.
+ *
+ * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
+ * The value of @inlen after return is the number of octets consumed
+ * as the return value is positive, else unpredictable.
+ * The value of @outlen after return is the number of octets consumed.
+ */
+int
+htmlEncodeEntities(unsigned char* out, int *outlen,
+ const unsigned char* in, int *inlen, int quoteChar) {
+ const unsigned char* processed = in;
+ const unsigned char* outend;
+ const unsigned char* outstart = out;
+ const unsigned char* instart = in;
+ const unsigned char* inend;
+ unsigned int c, d;
+ int trailing;
+
+ if ((out == NULL) || (outlen == NULL) || (inlen == NULL) || (in == NULL))
+ return(-1);
+ outend = out + (*outlen);
+ inend = in + (*inlen);
+ while (in < inend) {
+ d = *in++;
+ if (d < 0x80) { c= d; trailing= 0; }
+ else if (d < 0xC0) {
+ /* trailing byte in leading position */
+ *outlen = out - outstart;
+ *inlen = processed - instart;
+ return(-2);
+ } else if (d < 0xE0) { c= d & 0x1F; trailing= 1; }
+ else if (d < 0xF0) { c= d & 0x0F; trailing= 2; }
+ else if (d < 0xF8) { c= d & 0x07; trailing= 3; }
+ else {
+ /* no chance for this in Ascii */
+ *outlen = out - outstart;
+ *inlen = processed - instart;
+ return(-2);
+ }
+
+ if (inend - in < trailing)
+ break;
+
+ while (trailing--) {
+ if (((d= *in++) & 0xC0) != 0x80) {
+ *outlen = out - outstart;
+ *inlen = processed - instart;
+ return(-2);
+ }
+ c <<= 6;
+ c |= d & 0x3F;
+ }
+
+ /* assertion: c is a single UTF-4 value */
+ if ((c < 0x80) && (c != (unsigned int) quoteChar) &&
+ (c != '&') && (c != '<') && (c != '>')) {
+ if (out >= outend)
+ break;
+ *out++ = c;
+ } else {
+ const htmlEntityDesc * ent;
+ const char *cp;
+ char nbuf[16];
+ int len;
+
+ /*
+ * Try to lookup a predefined HTML entity for it
+ */
+ ent = htmlEntityValueLookup(c);
+ if (ent == NULL) {
+ snprintf(nbuf, sizeof(nbuf), "#%u", c);
+ cp = nbuf;
+ }
+ else
+ cp = ent->name;
+ len = strlen(cp);
+ if (out + 2 + len > outend)
+ break;
+ *out++ = '&';
+ memcpy(out, cp, len);
+ out += len;
+ *out++ = ';';
+ }
+ processed = in;
+ }
+ *outlen = out - outstart;
+ *inlen = processed - instart;
+ return(0);
+}
+
+/************************************************************************
+ * *
+ * Commodity functions to handle streams *
+ * *
+ ************************************************************************/
+
+#ifdef LIBXML_PUSH_ENABLED
+/**
+ * htmlNewInputStream:
+ * @ctxt: an HTML parser context
+ *
+ * Create a new input stream structure
+ * Returns the new input stream or NULL
+ */
+static htmlParserInputPtr
+htmlNewInputStream(htmlParserCtxtPtr ctxt) {
+ htmlParserInputPtr input;
+
+ input = (xmlParserInputPtr) xmlMalloc(sizeof(htmlParserInput));
+ if (input == NULL) {
+ htmlErrMemory(ctxt, "couldn't allocate a new input stream\n");
+ return(NULL);
+ }
+ memset(input, 0, sizeof(htmlParserInput));
+ input->filename = NULL;
+ input->directory = NULL;
+ input->base = NULL;
+ input->cur = NULL;
+ input->buf = NULL;
+ input->line = 1;
+ input->col = 1;
+ input->buf = NULL;
+ input->free = NULL;
+ input->version = NULL;
+ input->consumed = 0;
+ input->length = 0;
+ return(input);
+}
+#endif
+
+
+/************************************************************************
+ * *
+ * Commodity functions, cleanup needed ? *
+ * *
+ ************************************************************************/
+/*
+ * all tags allowing pc data from the html 4.01 loose dtd
+ * NOTE: it might be more appropriate to integrate this information
+ * into the html40ElementTable array but I don't want to risk any
+ * binary incompatibility
+ */
+static const char *allowPCData[] = {
+ "a", "abbr", "acronym", "address", "applet", "b", "bdo", "big",
+ "blockquote", "body", "button", "caption", "center", "cite", "code",
+ "dd", "del", "dfn", "div", "dt", "em", "font", "form", "h1", "h2",
+ "h3", "h4", "h5", "h6", "i", "iframe", "ins", "kbd", "label", "legend",
+ "li", "noframes", "noscript", "object", "p", "pre", "q", "s", "samp",
+ "small", "span", "strike", "strong", "td", "th", "tt", "u", "var"
+};
+
+/**
+ * areBlanks:
+ * @ctxt: an HTML parser context
+ * @str: a xmlChar *
+ * @len: the size of @str
+ *
+ * Is this a sequence of blank chars that one can ignore ?
+ *
+ * Returns 1 if ignorable 0 otherwise.
+ */
+
+static int areBlanks(htmlParserCtxtPtr ctxt, const xmlChar *str, int len) {
+ unsigned int i;
+ int j;
+ xmlNodePtr lastChild;
+ xmlDtdPtr dtd;
+
+ for (j = 0;j < len;j++)
+ if (!(IS_BLANK_CH(str[j]))) return(0);
+
+ if (CUR == 0) return(1);
+ if (CUR != '<') return(0);
+ if (ctxt->name == NULL)
+ return(1);
+ if (xmlStrEqual(ctxt->name, BAD_CAST"html"))
+ return(1);
+ if (xmlStrEqual(ctxt->name, BAD_CAST"head"))
+ return(1);
+
+ /* Only strip CDATA children of the body tag for strict HTML DTDs */
+ if (xmlStrEqual(ctxt->name, BAD_CAST "body") && ctxt->myDoc != NULL) {
+ dtd = xmlGetIntSubset(ctxt->myDoc);
+ if (dtd != NULL && dtd->ExternalID != NULL) {
+ if (!xmlStrcasecmp(dtd->ExternalID, BAD_CAST "-//W3C//DTD HTML 4.01//EN") ||
+ !xmlStrcasecmp(dtd->ExternalID, BAD_CAST "-//W3C//DTD HTML 4//EN"))
+ return(1);
+ }
+ }
+
+ if (ctxt->node == NULL) return(0);
+ lastChild = xmlGetLastChild(ctxt->node);
+ while ((lastChild) && (lastChild->type == XML_COMMENT_NODE))
+ lastChild = lastChild->prev;
+ if (lastChild == NULL) {
+ if ((ctxt->node->type != XML_ELEMENT_NODE) &&
+ (ctxt->node->content != NULL)) return(0);
+ /* keep ws in constructs like ...<b> </b>...
+ for all tags "b" allowing PCDATA */
+ for ( i = 0; i < sizeof(allowPCData)/sizeof(allowPCData[0]); i++ ) {
+ if ( xmlStrEqual(ctxt->name, BAD_CAST allowPCData[i]) ) {
+ return(0);
+ }
+ }
+ } else if (xmlNodeIsText(lastChild)) {
+ return(0);
+ } else {
+ /* keep ws in constructs like <p><b>xy</b> <i>z</i><p>
+ for all tags "p" allowing PCDATA */
+ for ( i = 0; i < sizeof(allowPCData)/sizeof(allowPCData[0]); i++ ) {
+ if ( xmlStrEqual(lastChild->name, BAD_CAST allowPCData[i]) ) {
+ return(0);
+ }
+ }
+ }
+ return(1);
+}
+
+/**
+ * htmlNewDocNoDtD:
+ * @URI: URI for the dtd, or NULL
+ * @ExternalID: the external ID of the DTD, or NULL
+ *
+ * Creates a new HTML document without a DTD node if @URI and @ExternalID
+ * are NULL
+ *
+ * Returns a new document, do not initialize the DTD if not provided
+ */
+htmlDocPtr
+htmlNewDocNoDtD(const xmlChar *URI, const xmlChar *ExternalID) {
+ xmlDocPtr cur;
+
+ /*
+ * Allocate a new document and fill the fields.
+ */
+ cur = (xmlDocPtr) xmlMalloc(sizeof(xmlDoc));
+ if (cur == NULL) {
+ htmlErrMemory(NULL, "HTML document creation failed\n");
+ return(NULL);
+ }
+ memset(cur, 0, sizeof(xmlDoc));
+
+ cur->type = XML_HTML_DOCUMENT_NODE;
+ cur->version = NULL;
+ cur->intSubset = NULL;
+ cur->doc = cur;
+ cur->name = NULL;
+ cur->children = NULL;
+ cur->extSubset = NULL;
+ cur->oldNs = NULL;
+ cur->encoding = NULL;
+ cur->standalone = 1;
+ cur->compression = 0;
+ cur->ids = NULL;
+ cur->refs = NULL;
+ cur->_private = NULL;
+ cur->charset = XML_CHAR_ENCODING_UTF8;
+ cur->properties = XML_DOC_HTML | XML_DOC_USERBUILT;
+ if ((ExternalID != NULL) ||
+ (URI != NULL))
+ xmlCreateIntSubset(cur, BAD_CAST "html", ExternalID, URI);
+ return(cur);
+}
+
+/**
+ * htmlNewDoc:
+ * @URI: URI for the dtd, or NULL
+ * @ExternalID: the external ID of the DTD, or NULL
+ *
+ * Creates a new HTML document
+ *
+ * Returns a new document
+ */
+htmlDocPtr
+htmlNewDoc(const xmlChar *URI, const xmlChar *ExternalID) {
+ if ((URI == NULL) && (ExternalID == NULL))
+ return(htmlNewDocNoDtD(
+ BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd",
+ BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN"));
+
+ return(htmlNewDocNoDtD(URI, ExternalID));
+}
+
+
+/************************************************************************
+ * *
+ * The parser itself *
+ * Relates to http://www.w3.org/TR/html40 *
+ * *
+ ************************************************************************/
+
+/************************************************************************
+ * *
+ * The parser itself *
+ * *
+ ************************************************************************/
+
+static const xmlChar * htmlParseNameComplex(xmlParserCtxtPtr ctxt);
+
+/**
+ * htmlParseHTMLName:
+ * @ctxt: an HTML parser context
+ *
+ * parse an HTML tag or attribute name, note that we convert it to lowercase
+ * since HTML names are not case-sensitive.
+ *
+ * Returns the Tag Name parsed or NULL
+ */
+
+static const xmlChar *
+htmlParseHTMLName(htmlParserCtxtPtr ctxt) {
+ int i = 0;
+ xmlChar loc[HTML_PARSER_BUFFER_SIZE];
+
+ if (!IS_ASCII_LETTER(CUR) && (CUR != '_') &&
+ (CUR != ':') && (CUR != '.')) return(NULL);
+
+ while ((i < HTML_PARSER_BUFFER_SIZE) &&
+ ((IS_ASCII_LETTER(CUR)) || (IS_ASCII_DIGIT(CUR)) ||
+ (CUR == ':') || (CUR == '-') || (CUR == '_') ||
+ (CUR == '.'))) {
+ if ((CUR >= 'A') && (CUR <= 'Z')) loc[i] = CUR + 0x20;
+ else loc[i] = CUR;
+ i++;
+
+ NEXT;
+ }
+
+ return(xmlDictLookup(ctxt->dict, loc, i));
+}
+
+
+/**
+ * htmlParseHTMLName_nonInvasive:
+ * @ctxt: an HTML parser context
+ *
+ * parse an HTML tag or attribute name, note that we convert it to lowercase
+ * since HTML names are not case-sensitive, this doesn't consume the data
+ * from the stream, it's a look-ahead
+ *
+ * Returns the Tag Name parsed or NULL
+ */
+
+static const xmlChar *
+htmlParseHTMLName_nonInvasive(htmlParserCtxtPtr ctxt) {
+ int i = 0;
+ xmlChar loc[HTML_PARSER_BUFFER_SIZE];
+
+ if (!IS_ASCII_LETTER(NXT(1)) && (NXT(1) != '_') &&
+ (NXT(1) != ':')) return(NULL);
+
+ while ((i < HTML_PARSER_BUFFER_SIZE) &&
+ ((IS_ASCII_LETTER(NXT(1+i))) || (IS_ASCII_DIGIT(NXT(1+i))) ||
+ (NXT(1+i) == ':') || (NXT(1+i) == '-') || (NXT(1+i) == '_'))) {
+ if ((NXT(1+i) >= 'A') && (NXT(1+i) <= 'Z')) loc[i] = NXT(1+i) + 0x20;
+ else loc[i] = NXT(1+i);
+ i++;
+ }
+
+ return(xmlDictLookup(ctxt->dict, loc, i));
+}
+
+
+/**
+ * htmlParseName:
+ * @ctxt: an HTML parser context
+ *
+ * parse an HTML name, this routine is case sensitive.
+ *
+ * Returns the Name parsed or NULL
+ */
+
+static const xmlChar *
+htmlParseName(htmlParserCtxtPtr ctxt) {
+ const xmlChar *in;
+ const xmlChar *ret;
+ int count = 0;
+
+ GROW;
+
+ /*
+ * Accelerator for simple ASCII names
+ */
+ in = ctxt->input->cur;
+ if (((*in >= 0x61) && (*in <= 0x7A)) ||
+ ((*in >= 0x41) && (*in <= 0x5A)) ||
+ (*in == '_') || (*in == ':')) {
+ in++;
+ while (((*in >= 0x61) && (*in <= 0x7A)) ||
+ ((*in >= 0x41) && (*in <= 0x5A)) ||
+ ((*in >= 0x30) && (*in <= 0x39)) ||
+ (*in == '_') || (*in == '-') ||
+ (*in == ':') || (*in == '.'))
+ in++;
+
+ if (in == ctxt->input->end)
+ return(NULL);
+
+ if ((*in > 0) && (*in < 0x80)) {
+ count = in - ctxt->input->cur;
+ ret = xmlDictLookup(ctxt->dict, ctxt->input->cur, count);
+ ctxt->input->cur = in;
+ ctxt->nbChars += count;
+ ctxt->input->col += count;
+ return(ret);
+ }
+ }
+ return(htmlParseNameComplex(ctxt));
+}
+
+static const xmlChar *
+htmlParseNameComplex(xmlParserCtxtPtr ctxt) {
+ int len = 0, l;
+ int c;
+ int count = 0;
+ const xmlChar *base = ctxt->input->base;
+
+ /*
+ * Handler for more complex cases
+ */
+ GROW;
+ c = CUR_CHAR(l);
+ if ((c == ' ') || (c == '>') || (c == '/') || /* accelerators */
+ (!IS_LETTER(c) && (c != '_') &&
+ (c != ':'))) {
+ return(NULL);
+ }
+
+ while ((c != ' ') && (c != '>') && (c != '/') && /* test bigname.xml */
+ ((IS_LETTER(c)) || (IS_DIGIT(c)) ||
+ (c == '.') || (c == '-') ||
+ (c == '_') || (c == ':') ||
+ (IS_COMBINING(c)) ||
+ (IS_EXTENDER(c)))) {
+ if (count++ > 100) {
+ count = 0;
+ GROW;
+ }
+ len += l;
+ NEXTL(l);
+ c = CUR_CHAR(l);
+ if (ctxt->input->base != base) {
+ /*
+ * We changed encoding from an unknown encoding
+ * Input buffer changed location, so we better start again
+ */
+ return(htmlParseNameComplex(ctxt));
+ }
+ }
+
+ if (ctxt->input->cur - ctxt->input->base < len) {
+ /* Sanity check */
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "unexpected change of input buffer", NULL, NULL);
+ return (NULL);
+ }
+
+ return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len));
+}
+
+
+/**
+ * htmlParseHTMLAttribute:
+ * @ctxt: an HTML parser context
+ * @stop: a char stop value
+ *
+ * parse an HTML attribute value till the stop (quote), if
+ * stop is 0 then it stops at the first space
+ *
+ * Returns the attribute parsed or NULL
+ */
+
+static xmlChar *
+htmlParseHTMLAttribute(htmlParserCtxtPtr ctxt, const xmlChar stop) {
+ xmlChar *buffer = NULL;
+ int buffer_size = 0;
+ xmlChar *out = NULL;
+ const xmlChar *name = NULL;
+ const xmlChar *cur = NULL;
+ const htmlEntityDesc * ent;
+
+ /*
+ * allocate a translation buffer.
+ */
+ buffer_size = HTML_PARSER_BUFFER_SIZE;
+ buffer = (xmlChar *) xmlMallocAtomic(buffer_size * sizeof(xmlChar));
+ if (buffer == NULL) {
+ htmlErrMemory(ctxt, "buffer allocation failed\n");
+ return(NULL);
+ }
+ out = buffer;
+
+ /*
+ * Ok loop until we reach one of the ending chars
+ */
+ while ((CUR != 0) && (CUR != stop)) {
+ if ((stop == 0) && (CUR == '>')) break;
+ if ((stop == 0) && (IS_BLANK_CH(CUR))) break;
+ if (CUR == '&') {
+ if (NXT(1) == '#') {
+ unsigned int c;
+ int bits;
+
+ c = htmlParseCharRef(ctxt);
+ if (c < 0x80)
+ { *out++ = c; bits= -6; }
+ else if (c < 0x800)
+ { *out++ =((c >> 6) & 0x1F) | 0xC0; bits= 0; }
+ else if (c < 0x10000)
+ { *out++ =((c >> 12) & 0x0F) | 0xE0; bits= 6; }
+ else
+ { *out++ =((c >> 18) & 0x07) | 0xF0; bits= 12; }
+
+ for ( ; bits >= 0; bits-= 6) {
+ *out++ = ((c >> bits) & 0x3F) | 0x80;
+ }
+
+ if (out - buffer > buffer_size - 100) {
+ int indx = out - buffer;
+
+ growBuffer(buffer);
+ out = &buffer[indx];
+ }
+ } else {
+ ent = htmlParseEntityRef(ctxt, &name);
+ if (name == NULL) {
+ *out++ = '&';
+ if (out - buffer > buffer_size - 100) {
+ int indx = out - buffer;
+
+ growBuffer(buffer);
+ out = &buffer[indx];
+ }
+ } else if (ent == NULL) {
+ *out++ = '&';
+ cur = name;
+ while (*cur != 0) {
+ if (out - buffer > buffer_size - 100) {
+ int indx = out - buffer;
+
+ growBuffer(buffer);
+ out = &buffer[indx];
+ }
+ *out++ = *cur++;
+ }
+ } else {
+ unsigned int c;
+ int bits;
+
+ if (out - buffer > buffer_size - 100) {
+ int indx = out - buffer;
+
+ growBuffer(buffer);
+ out = &buffer[indx];
+ }
+ c = ent->value;
+ if (c < 0x80)
+ { *out++ = c; bits= -6; }
+ else if (c < 0x800)
+ { *out++ =((c >> 6) & 0x1F) | 0xC0; bits= 0; }
+ else if (c < 0x10000)
+ { *out++ =((c >> 12) & 0x0F) | 0xE0; bits= 6; }
+ else
+ { *out++ =((c >> 18) & 0x07) | 0xF0; bits= 12; }
+
+ for ( ; bits >= 0; bits-= 6) {
+ *out++ = ((c >> bits) & 0x3F) | 0x80;
+ }
+ }
+ }
+ } else {
+ unsigned int c;
+ int bits, l;
+
+ if (out - buffer > buffer_size - 100) {
+ int indx = out - buffer;
+
+ growBuffer(buffer);
+ out = &buffer[indx];
+ }
+ c = CUR_CHAR(l);
+ if (c < 0x80)
+ { *out++ = c; bits= -6; }
+ else if (c < 0x800)
+ { *out++ =((c >> 6) & 0x1F) | 0xC0; bits= 0; }
+ else if (c < 0x10000)
+ { *out++ =((c >> 12) & 0x0F) | 0xE0; bits= 6; }
+ else
+ { *out++ =((c >> 18) & 0x07) | 0xF0; bits= 12; }
+
+ for ( ; bits >= 0; bits-= 6) {
+ *out++ = ((c >> bits) & 0x3F) | 0x80;
+ }
+ NEXT;
+ }
+ }
+ *out = 0;
+ return(buffer);
+}
+
+/**
+ * htmlParseEntityRef:
+ * @ctxt: an HTML parser context
+ * @str: location to store the entity name
+ *
+ * parse an HTML ENTITY references
+ *
+ * [68] EntityRef ::= '&' Name ';'
+ *
+ * Returns the associated htmlEntityDescPtr if found, or NULL otherwise,
+ * if non-NULL *str will have to be freed by the caller.
+ */
+const htmlEntityDesc *
+htmlParseEntityRef(htmlParserCtxtPtr ctxt, const xmlChar **str) {
+ const xmlChar *name;
+ const htmlEntityDesc * ent = NULL;
+
+ if (str != NULL) *str = NULL;
+ if ((ctxt == NULL) || (ctxt->input == NULL)) return(NULL);
+
+ if (CUR == '&') {
+ NEXT;
+ name = htmlParseName(ctxt);
+ if (name == NULL) {
+ htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
+ "htmlParseEntityRef: no name\n", NULL, NULL);
+ } else {
+ GROW;
+ if (CUR == ';') {
+ if (str != NULL)
+ *str = name;
+
+ /*
+ * Lookup the entity in the table.
+ */
+ ent = htmlEntityLookup(name);
+ if (ent != NULL) /* OK that's ugly !!! */
+ NEXT;
+ } else {
+ htmlParseErr(ctxt, XML_ERR_ENTITYREF_SEMICOL_MISSING,
+ "htmlParseEntityRef: expecting ';'\n",
+ NULL, NULL);
+ if (str != NULL)
+ *str = name;
+ }
+ }
+ }
+ return(ent);
+}
+
+/**
+ * htmlParseAttValue:
+ * @ctxt: an HTML parser context
+ *
+ * parse a value for an attribute
+ * Note: the parser won't do substitution of entities here, this
+ * will be handled later in xmlStringGetNodeList, unless it was
+ * asked for ctxt->replaceEntities != 0
+ *
+ * Returns the AttValue parsed or NULL.
+ */
+
+static xmlChar *
+htmlParseAttValue(htmlParserCtxtPtr ctxt) {
+ xmlChar *ret = NULL;
+
+ if (CUR == '"') {
+ NEXT;
+ ret = htmlParseHTMLAttribute(ctxt, '"');
+ if (CUR != '"') {
+ htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED,
+ "AttValue: \" expected\n", NULL, NULL);
+ } else
+ NEXT;
+ } else if (CUR == '\'') {
+ NEXT;
+ ret = htmlParseHTMLAttribute(ctxt, '\'');
+ if (CUR != '\'') {
+ htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED,
+ "AttValue: ' expected\n", NULL, NULL);
+ } else
+ NEXT;
+ } else {
+ /*
+ * That's an HTMLism, the attribute value may not be quoted
+ */
+ ret = htmlParseHTMLAttribute(ctxt, 0);
+ if (ret == NULL) {
+ htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_WITHOUT_VALUE,
+ "AttValue: no value found\n", NULL, NULL);
+ }
+ }
+ return(ret);
+}
+
+/**
+ * htmlParseSystemLiteral:
+ * @ctxt: an HTML parser context
+ *
+ * parse an HTML Literal
+ *
+ * [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")
+ *
+ * Returns the SystemLiteral parsed or NULL
+ */
+
+static xmlChar *
+htmlParseSystemLiteral(htmlParserCtxtPtr ctxt) {
+ size_t len = 0, startPosition = 0;
+ xmlChar *ret = NULL;
+
+ if (CUR == '"') {
+ NEXT;
+
+ if (CUR_PTR < BASE_PTR)
+ return(ret);
+ startPosition = CUR_PTR - BASE_PTR;
+
+ while ((IS_CHAR_CH(CUR)) && (CUR != '"')) {
+ NEXT;
+ len++;
+ }
+ if (!IS_CHAR_CH(CUR)) {
+ htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
+ "Unfinished SystemLiteral\n", NULL, NULL);
+ } else {
+ ret = xmlStrndup((BASE_PTR+startPosition), len);
+ NEXT;
+ }
+ } else if (CUR == '\'') {
+ NEXT;
+
+ if (CUR_PTR < BASE_PTR)
+ return(ret);
+ startPosition = CUR_PTR - BASE_PTR;
+
+ while ((IS_CHAR_CH(CUR)) && (CUR != '\'')) {
+ NEXT;
+ len++;
+ }
+ if (!IS_CHAR_CH(CUR)) {
+ htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
+ "Unfinished SystemLiteral\n", NULL, NULL);
+ } else {
+ ret = xmlStrndup((BASE_PTR+startPosition), len);
+ NEXT;
+ }
+ } else {
+ htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_STARTED,
+ " or ' expected\n", NULL, NULL);
+ }
+
+ return(ret);
+}
+
+/**
+ * htmlParsePubidLiteral:
+ * @ctxt: an HTML parser context
+ *
+ * parse an HTML public literal
+ *
+ * [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"
+ *
+ * Returns the PubidLiteral parsed or NULL.
+ */
+
+static xmlChar *
+htmlParsePubidLiteral(htmlParserCtxtPtr ctxt) {
+ size_t len = 0, startPosition = 0;
+ xmlChar *ret = NULL;
+ /*
+ * Name ::= (Letter | '_') (NameChar)*
+ */
+ if (CUR == '"') {
+ NEXT;
+
+ if (CUR_PTR < BASE_PTR)
+ return(ret);
+ startPosition = CUR_PTR - BASE_PTR;
+
+ while (IS_PUBIDCHAR_CH(CUR)) {
+ len++;
+ NEXT;
+ }
+
+ if (CUR != '"') {
+ htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
+ "Unfinished PubidLiteral\n", NULL, NULL);
+ } else {
+ ret = xmlStrndup((BASE_PTR + startPosition), len);
+ NEXT;
+ }
+ } else if (CUR == '\'') {
+ NEXT;
+
+ if (CUR_PTR < BASE_PTR)
+ return(ret);
+ startPosition = CUR_PTR - BASE_PTR;
+
+ while ((IS_PUBIDCHAR_CH(CUR)) && (CUR != '\'')){
+ len++;
+ NEXT;
+ }
+
+ if (CUR != '\'') {
+ htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
+ "Unfinished PubidLiteral\n", NULL, NULL);
+ } else {
+ ret = xmlStrndup((BASE_PTR + startPosition), len);
+ NEXT;
+ }
+ } else {
+ htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_STARTED,
+ "PubidLiteral \" or ' expected\n", NULL, NULL);
+ }
+
+ return(ret);
+}
+
+/**
+ * htmlParseScript:
+ * @ctxt: an HTML parser context
+ *
+ * parse the content of an HTML SCRIPT or STYLE element
+ * http://www.w3.org/TR/html4/sgml/dtd.html#Script
+ * http://www.w3.org/TR/html4/sgml/dtd.html#StyleSheet
+ * http://www.w3.org/TR/html4/types.html#type-script
+ * http://www.w3.org/TR/html4/types.html#h-6.15
+ * http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.2.1
+ *
+ * Script data ( %Script; in the DTD) can be the content of the SCRIPT
+ * element and the value of intrinsic event attributes. User agents must
+ * not evaluate script data as HTML markup but instead must pass it on as
+ * data to a script engine.
+ * NOTES:
+ * - The content is passed like CDATA
+ * - the attributes for style and scripting "onXXX" are also described
+ * as CDATA but SGML allows entities references in attributes so their
+ * processing is identical as other attributes
+ */
+static void
+htmlParseScript(htmlParserCtxtPtr ctxt) {
+ xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 5];
+ int nbchar = 0;
+ int cur,l;
+
+ SHRINK;
+ cur = CUR_CHAR(l);
+ while (IS_CHAR_CH(cur)) {
+ if ((cur == '<') && (NXT(1) == '/')) {
+ /*
+ * One should break here, the specification is clear:
+ * Authors should therefore escape "</" within the content.
+ * Escape mechanisms are specific to each scripting or
+ * style sheet language.
+ *
+ * In recovery mode, only break if end tag match the
+ * current tag, effectively ignoring all tags inside the
+ * script/style block and treating the entire block as
+ * CDATA.
+ */
+ if (ctxt->recovery) {
+ if (xmlStrncasecmp(ctxt->name, ctxt->input->cur+2,
+ xmlStrlen(ctxt->name)) == 0)
+ {
+ break; /* while */
+ } else {
+ htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
+ "Element %s embeds close tag\n",
+ ctxt->name, NULL);
+ }
+ } else {
+ if (((NXT(2) >= 'A') && (NXT(2) <= 'Z')) ||
+ ((NXT(2) >= 'a') && (NXT(2) <= 'z')))
+ {
+ break; /* while */
+ }
+ }
+ }
+ COPY_BUF(l,buf,nbchar,cur);
+ if (nbchar >= HTML_PARSER_BIG_BUFFER_SIZE) {
+ buf[nbchar] = 0;
+ if (ctxt->sax->cdataBlock!= NULL) {
+ /*
+ * Insert as CDATA, which is the same as HTML_PRESERVE_NODE
+ */
+ ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar);
+ } else if (ctxt->sax->characters != NULL) {
+ ctxt->sax->characters(ctxt->userData, buf, nbchar);
+ }
+ nbchar = 0;
+ }
+ GROW;
+ NEXTL(l);
+ cur = CUR_CHAR(l);
+ }
+
+ if ((!(IS_CHAR_CH(cur))) && (!((cur == 0) && (ctxt->progressive)))) {
+ htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
+ "Invalid char in CDATA 0x%X\n", cur);
+ if (ctxt->input->cur < ctxt->input->end) {
+ NEXT;
+ }
+ }
+
+ if ((nbchar != 0) && (ctxt->sax != NULL) && (!ctxt->disableSAX)) {
+ buf[nbchar] = 0;
+ if (ctxt->sax->cdataBlock!= NULL) {
+ /*
+ * Insert as CDATA, which is the same as HTML_PRESERVE_NODE
+ */
+ ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar);
+ } else if (ctxt->sax->characters != NULL) {
+ ctxt->sax->characters(ctxt->userData, buf, nbchar);
+ }
+ }
+}
+
+
+/**
+ * htmlParseCharDataInternal:
+ * @ctxt: an HTML parser context
+ * @readahead: optional read ahead character in ascii range
+ *
+ * parse a CharData section.
+ * if we are within a CDATA section ']]>' marks an end of section.
+ *
+ * [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
+ */
+
+static void
+htmlParseCharDataInternal(htmlParserCtxtPtr ctxt, int readahead) {
+ xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 6];
+ int nbchar = 0;
+ int cur, l;
+ int chunk = 0;
+
+ if (readahead)
+ buf[nbchar++] = readahead;
+
+ SHRINK;
+ cur = CUR_CHAR(l);
+ while (((cur != '<') || (ctxt->token == '<')) &&
+ ((cur != '&') || (ctxt->token == '&')) &&
+ (cur != 0)) {
+ if (!(IS_CHAR(cur))) {
+ htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
+ "Invalid char in CDATA 0x%X\n", cur);
+ } else {
+ COPY_BUF(l,buf,nbchar,cur);
+ }
+ if (nbchar >= HTML_PARSER_BIG_BUFFER_SIZE) {
+ buf[nbchar] = 0;
+
+ /*
+ * Ok the segment is to be consumed as chars.
+ */
+ if ((ctxt->sax != NULL) && (!ctxt->disableSAX)) {
+ if (areBlanks(ctxt, buf, nbchar)) {
+ if (ctxt->keepBlanks) {
+ if (ctxt->sax->characters != NULL)
+ ctxt->sax->characters(ctxt->userData, buf, nbchar);
+ } else {
+ if (ctxt->sax->ignorableWhitespace != NULL)
+ ctxt->sax->ignorableWhitespace(ctxt->userData,
+ buf, nbchar);
+ }
+ } else {
+ htmlCheckParagraph(ctxt);
+ if (ctxt->sax->characters != NULL)
+ ctxt->sax->characters(ctxt->userData, buf, nbchar);
+ }
+ }
+ nbchar = 0;
+ }
+ NEXTL(l);
+ chunk++;
+ if (chunk > HTML_PARSER_BUFFER_SIZE) {
+ chunk = 0;
+ SHRINK;
+ GROW;
+ }
+ cur = CUR_CHAR(l);
+ if (cur == 0) {
+ SHRINK;
+ GROW;
+ cur = CUR_CHAR(l);
+ }
+ }
+ if (nbchar != 0) {
+ buf[nbchar] = 0;
+
+ /*
+ * Ok the segment is to be consumed as chars.
+ */
+ if ((ctxt->sax != NULL) && (!ctxt->disableSAX)) {
+ if (areBlanks(ctxt, buf, nbchar)) {
+ if (ctxt->keepBlanks) {
+ if (ctxt->sax->characters != NULL)
+ ctxt->sax->characters(ctxt->userData, buf, nbchar);
+ } else {
+ if (ctxt->sax->ignorableWhitespace != NULL)
+ ctxt->sax->ignorableWhitespace(ctxt->userData,
+ buf, nbchar);
+ }
+ } else {
+ htmlCheckParagraph(ctxt);
+ if (ctxt->sax->characters != NULL)
+ ctxt->sax->characters(ctxt->userData, buf, nbchar);
+ }
+ }
+ } else {
+ /*
+ * Loop detection
+ */
+ if (cur == 0)
+ ctxt->instate = XML_PARSER_EOF;
+ }
+}
+
+/**
+ * htmlParseCharData:
+ * @ctxt: an HTML parser context
+ *
+ * parse a CharData section.
+ * if we are within a CDATA section ']]>' marks an end of section.
+ *
+ * [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
+ */
+
+static void
+htmlParseCharData(htmlParserCtxtPtr ctxt) {
+ htmlParseCharDataInternal(ctxt, 0);
+}
+
+/**
+ * htmlParseExternalID:
+ * @ctxt: an HTML parser context
+ * @publicID: a xmlChar** receiving PubidLiteral
+ *
+ * Parse an External ID or a Public ID
+ *
+ * [75] ExternalID ::= 'SYSTEM' S SystemLiteral
+ * | 'PUBLIC' S PubidLiteral S SystemLiteral
+ *
+ * [83] PublicID ::= 'PUBLIC' S PubidLiteral
+ *
+ * Returns the function returns SystemLiteral and in the second
+ * case publicID receives PubidLiteral, is strict is off
+ * it is possible to return NULL and have publicID set.
+ */
+
+static xmlChar *
+htmlParseExternalID(htmlParserCtxtPtr ctxt, xmlChar **publicID) {
+ xmlChar *URI = NULL;
+
+ if ((UPPER == 'S') && (UPP(1) == 'Y') &&
+ (UPP(2) == 'S') && (UPP(3) == 'T') &&
+ (UPP(4) == 'E') && (UPP(5) == 'M')) {
+ SKIP(6);
+ if (!IS_BLANK_CH(CUR)) {
+ htmlParseErr(ctxt, XML_ERR_SPACE_REQUIRED,
+ "Space required after 'SYSTEM'\n", NULL, NULL);
+ }
+ SKIP_BLANKS;
+ URI = htmlParseSystemLiteral(ctxt);
+ if (URI == NULL) {
+ htmlParseErr(ctxt, XML_ERR_URI_REQUIRED,
+ "htmlParseExternalID: SYSTEM, no URI\n", NULL, NULL);
+ }
+ } else if ((UPPER == 'P') && (UPP(1) == 'U') &&
+ (UPP(2) == 'B') && (UPP(3) == 'L') &&
+ (UPP(4) == 'I') && (UPP(5) == 'C')) {
+ SKIP(6);
+ if (!IS_BLANK_CH(CUR)) {
+ htmlParseErr(ctxt, XML_ERR_SPACE_REQUIRED,
+ "Space required after 'PUBLIC'\n", NULL, NULL);
+ }
+ SKIP_BLANKS;
+ *publicID = htmlParsePubidLiteral(ctxt);
+ if (*publicID == NULL) {
+ htmlParseErr(ctxt, XML_ERR_PUBID_REQUIRED,
+ "htmlParseExternalID: PUBLIC, no Public Identifier\n",
+ NULL, NULL);
+ }
+ SKIP_BLANKS;
+ if ((CUR == '"') || (CUR == '\'')) {
+ URI = htmlParseSystemLiteral(ctxt);
+ }
+ }
+ return(URI);
+}
+
+/**
+ * xmlParsePI:
+ * @ctxt: an XML parser context
+ *
+ * parse an XML Processing Instruction.
+ *
+ * [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
+ */
+static void
+htmlParsePI(htmlParserCtxtPtr ctxt) {
+ xmlChar *buf = NULL;
+ int len = 0;
+ int size = HTML_PARSER_BUFFER_SIZE;
+ int cur, l;
+ const xmlChar *target;
+ xmlParserInputState state;
+ int count = 0;
+
+ if ((RAW == '<') && (NXT(1) == '?')) {
+ state = ctxt->instate;
+ ctxt->instate = XML_PARSER_PI;
+ /*
+ * this is a Processing Instruction.
+ */
+ SKIP(2);
+ SHRINK;
+
+ /*
+ * Parse the target name and check for special support like
+ * namespace.
+ */
+ target = htmlParseName(ctxt);
+ if (target != NULL) {
+ if (RAW == '>') {
+ SKIP(1);
+
+ /*
+ * SAX: PI detected.
+ */
+ if ((ctxt->sax) && (!ctxt->disableSAX) &&
+ (ctxt->sax->processingInstruction != NULL))
+ ctxt->sax->processingInstruction(ctxt->userData,
+ target, NULL);
+ ctxt->instate = state;
+ return;
+ }
+ buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar));
+ if (buf == NULL) {
+ htmlErrMemory(ctxt, NULL);
+ ctxt->instate = state;
+ return;
+ }
+ cur = CUR;
+ if (!IS_BLANK(cur)) {
+ htmlParseErr(ctxt, XML_ERR_SPACE_REQUIRED,
+ "ParsePI: PI %s space expected\n", target, NULL);
+ }
+ SKIP_BLANKS;
+ cur = CUR_CHAR(l);
+ while (IS_CHAR(cur) && (cur != '>')) {
+ if (len + 5 >= size) {
+ xmlChar *tmp;
+
+ size *= 2;
+ tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar));
+ if (tmp == NULL) {
+ htmlErrMemory(ctxt, NULL);
+ xmlFree(buf);
+ ctxt->instate = state;
+ return;
+ }
+ buf = tmp;
+ }
+ count++;
+ if (count > 50) {
+ GROW;
+ count = 0;
+ }
+ COPY_BUF(l,buf,len,cur);
+ NEXTL(l);
+ cur = CUR_CHAR(l);
+ if (cur == 0) {
+ SHRINK;
+ GROW;
+ cur = CUR_CHAR(l);
+ }
+ }
+ buf[len] = 0;
+ if (cur != '>') {
+ htmlParseErr(ctxt, XML_ERR_PI_NOT_FINISHED,
+ "ParsePI: PI %s never end ...\n", target, NULL);
+ } else {
+ SKIP(1);
+
+ /*
+ * SAX: PI detected.
+ */
+ if ((ctxt->sax) && (!ctxt->disableSAX) &&
+ (ctxt->sax->processingInstruction != NULL))
+ ctxt->sax->processingInstruction(ctxt->userData,
+ target, buf);
+ }
+ xmlFree(buf);
+ } else {
+ htmlParseErr(ctxt, XML_ERR_PI_NOT_STARTED,
+ "PI is not started correctly", NULL, NULL);
+ }
+ ctxt->instate = state;
+ }
+}
+
+/**
+ * htmlParseComment:
+ * @ctxt: an HTML parser context
+ *
+ * Parse an XML (SGML) comment <!-- .... -->
+ *
+ * [15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
+ */
+static void
+htmlParseComment(htmlParserCtxtPtr ctxt) {
+ xmlChar *buf = NULL;
+ int len;
+ int size = HTML_PARSER_BUFFER_SIZE;
+ int q, ql;
+ int r, rl;
+ int cur, l;
+ xmlParserInputState state;
+
+ /*
+ * Check that there is a comment right here.
+ */
+ if ((RAW != '<') || (NXT(1) != '!') ||
+ (NXT(2) != '-') || (NXT(3) != '-')) return;
+
+ state = ctxt->instate;
+ ctxt->instate = XML_PARSER_COMMENT;
+ SHRINK;
+ SKIP(4);
+ buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar));
+ if (buf == NULL) {
+ htmlErrMemory(ctxt, "buffer allocation failed\n");
+ ctxt->instate = state;
+ return;
+ }
+ len = 0;
+ buf[len] = 0;
+ q = CUR_CHAR(ql);
+ if (!IS_CHAR(q))
+ goto unfinished;
+ NEXTL(ql);
+ r = CUR_CHAR(rl);
+ if (!IS_CHAR(r))
+ goto unfinished;
+ NEXTL(rl);
+ cur = CUR_CHAR(l);
+ while (IS_CHAR(cur) &&
+ ((cur != '>') ||
+ (r != '-') || (q != '-'))) {
+ if (len + 5 >= size) {
+ xmlChar *tmp;
+
+ size *= 2;
+ tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar));
+ if (tmp == NULL) {
+ xmlFree(buf);
+ htmlErrMemory(ctxt, "growing buffer failed\n");
+ ctxt->instate = state;
+ return;
+ }
+ buf = tmp;
+ }
+ COPY_BUF(ql,buf,len,q);
+ q = r;
+ ql = rl;
+ r = cur;
+ rl = l;
+ NEXTL(l);
+ cur = CUR_CHAR(l);
+ if (cur == 0) {
+ SHRINK;
+ GROW;
+ cur = CUR_CHAR(l);
+ }
+ }
+ buf[len] = 0;
+ if (IS_CHAR(cur)) {
+ NEXT;
+ if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL) &&
+ (!ctxt->disableSAX))
+ ctxt->sax->comment(ctxt->userData, buf);
+ xmlFree(buf);
+ ctxt->instate = state;
+ return;
+ }
+
+unfinished:
+ htmlParseErr(ctxt, XML_ERR_COMMENT_NOT_FINISHED,
+ "Comment not terminated \n<!--%.50s\n", buf, NULL);
+ xmlFree(buf);
+}
+
+/**
+ * htmlParseCharRef:
+ * @ctxt: an HTML parser context
+ *
+ * parse Reference declarations
+ *
+ * [66] CharRef ::= '&#' [0-9]+ ';' |
+ * '&#x' [0-9a-fA-F]+ ';'
+ *
+ * Returns the value parsed (as an int)
+ */
+int
+htmlParseCharRef(htmlParserCtxtPtr ctxt) {
+ int val = 0;
+
+ if ((ctxt == NULL) || (ctxt->input == NULL)) {
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "htmlParseCharRef: context error\n",
+ NULL, NULL);
+ return(0);
+ }
+ if ((CUR == '&') && (NXT(1) == '#') &&
+ ((NXT(2) == 'x') || NXT(2) == 'X')) {
+ SKIP(3);
+ while (CUR != ';') {
+ if ((CUR >= '0') && (CUR <= '9'))
+ val = val * 16 + (CUR - '0');
+ else if ((CUR >= 'a') && (CUR <= 'f'))
+ val = val * 16 + (CUR - 'a') + 10;
+ else if ((CUR >= 'A') && (CUR <= 'F'))
+ val = val * 16 + (CUR - 'A') + 10;
+ else {
+ htmlParseErr(ctxt, XML_ERR_INVALID_HEX_CHARREF,
+ "htmlParseCharRef: missing semicolon\n",
+ NULL, NULL);
+ break;
+ }
+ NEXT;
+ }
+ if (CUR == ';')
+ NEXT;
+ } else if ((CUR == '&') && (NXT(1) == '#')) {
+ SKIP(2);
+ while (CUR != ';') {
+ if ((CUR >= '0') && (CUR <= '9'))
+ val = val * 10 + (CUR - '0');
+ else {
+ htmlParseErr(ctxt, XML_ERR_INVALID_DEC_CHARREF,
+ "htmlParseCharRef: missing semicolon\n",
+ NULL, NULL);
+ break;
+ }
+ NEXT;
+ }
+ if (CUR == ';')
+ NEXT;
+ } else {
+ htmlParseErr(ctxt, XML_ERR_INVALID_CHARREF,
+ "htmlParseCharRef: invalid value\n", NULL, NULL);
+ }
+ /*
+ * Check the value IS_CHAR ...
+ */
+ if (IS_CHAR(val)) {
+ return(val);
+ } else {
+ htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
+ "htmlParseCharRef: invalid xmlChar value %d\n",
+ val);
+ }
+ return(0);
+}
+
+
+/**
+ * htmlParseDocTypeDecl:
+ * @ctxt: an HTML parser context
+ *
+ * parse a DOCTYPE declaration
+ *
+ * [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S?
+ * ('[' (markupdecl | PEReference | S)* ']' S?)? '>'
+ */
+
+static void
+htmlParseDocTypeDecl(htmlParserCtxtPtr ctxt) {
+ const xmlChar *name;
+ xmlChar *ExternalID = NULL;
+ xmlChar *URI = NULL;
+
+ /*
+ * We know that '<!DOCTYPE' has been detected.
+ */
+ SKIP(9);
+
+ SKIP_BLANKS;
+
+ /*
+ * Parse the DOCTYPE name.
+ */
+ name = htmlParseName(ctxt);
+ if (name == NULL) {
+ htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
+ "htmlParseDocTypeDecl : no DOCTYPE name !\n",
+ NULL, NULL);
+ }
+ /*
+ * Check that upper(name) == "HTML" !!!!!!!!!!!!!
+ */
+
+ SKIP_BLANKS;
+
+ /*
+ * Check for SystemID and ExternalID
+ */
+ URI = htmlParseExternalID(ctxt, &ExternalID);
+ SKIP_BLANKS;
+
+ /*
+ * We should be at the end of the DOCTYPE declaration.
+ */
+ if (CUR != '>') {
+ htmlParseErr(ctxt, XML_ERR_DOCTYPE_NOT_FINISHED,
+ "DOCTYPE improperly terminated\n", NULL, NULL);
+ /* We shouldn't try to resynchronize ... */
+ }
+ NEXT;
+
+ /*
+ * Create or update the document accordingly to the DOCTYPE
+ */
+ if ((ctxt->sax != NULL) && (ctxt->sax->internalSubset != NULL) &&
+ (!ctxt->disableSAX))
+ ctxt->sax->internalSubset(ctxt->userData, name, ExternalID, URI);
+
+ /*
+ * Cleanup, since we don't use all those identifiers
+ */
+ if (URI != NULL) xmlFree(URI);
+ if (ExternalID != NULL) xmlFree(ExternalID);
+}
+
+/**
+ * htmlParseAttribute:
+ * @ctxt: an HTML parser context
+ * @value: a xmlChar ** used to store the value of the attribute
+ *
+ * parse an attribute
+ *
+ * [41] Attribute ::= Name Eq AttValue
+ *
+ * [25] Eq ::= S? '=' S?
+ *
+ * With namespace:
+ *
+ * [NS 11] Attribute ::= QName Eq AttValue
+ *
+ * Also the case QName == xmlns:??? is handled independently as a namespace
+ * definition.
+ *
+ * Returns the attribute name, and the value in *value.
+ */
+
+static const xmlChar *
+htmlParseAttribute(htmlParserCtxtPtr ctxt, xmlChar **value) {
+ const xmlChar *name;
+ xmlChar *val = NULL;
+
+ *value = NULL;
+ name = htmlParseHTMLName(ctxt);
+ if (name == NULL) {
+ htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
+ "error parsing attribute name\n", NULL, NULL);
+ return(NULL);
+ }
+
+ /*
+ * read the value
+ */
+ SKIP_BLANKS;
+ if (CUR == '=') {
+ NEXT;
+ SKIP_BLANKS;
+ val = htmlParseAttValue(ctxt);
+ }
+
+ *value = val;
+ return(name);
+}
+
+/**
+ * htmlCheckEncodingDirect:
+ * @ctxt: an HTML parser context
+ * @attvalue: the attribute value
+ *
+ * Checks an attribute value to detect
+ * the encoding
+ * If a new encoding is detected the parser is switched to decode
+ * it and pass UTF8
+ */
+static void
+htmlCheckEncodingDirect(htmlParserCtxtPtr ctxt, const xmlChar *encoding) {
+
+ if ((ctxt == NULL) || (encoding == NULL) ||
+ (ctxt->options & HTML_PARSE_IGNORE_ENC))
+ return;
+
+ /* do not change encoding */
+ if (ctxt->input->encoding != NULL)
+ return;
+
+ if (encoding != NULL) {
+ xmlCharEncoding enc;
+ xmlCharEncodingHandlerPtr handler;
+
+ while ((*encoding == ' ') || (*encoding == '\t')) encoding++;
+
+ if (ctxt->input->encoding != NULL)
+ xmlFree((xmlChar *) ctxt->input->encoding);
+ ctxt->input->encoding = xmlStrdup(encoding);
+
+ enc = xmlParseCharEncoding((const char *) encoding);
+ /*
+ * registered set of known encodings
+ */
+ if (enc != XML_CHAR_ENCODING_ERROR) {
+ if (((enc == XML_CHAR_ENCODING_UTF16LE) ||
+ (enc == XML_CHAR_ENCODING_UTF16BE) ||
+ (enc == XML_CHAR_ENCODING_UCS4LE) ||
+ (enc == XML_CHAR_ENCODING_UCS4BE)) &&
+ (ctxt->input->buf != NULL) &&
+ (ctxt->input->buf->encoder == NULL)) {
+ htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
+ "htmlCheckEncoding: wrong encoding meta\n",
+ NULL, NULL);
+ } else {
+ xmlSwitchEncoding(ctxt, enc);
+ }
+ ctxt->charset = XML_CHAR_ENCODING_UTF8;
+ } else {
+ /*
+ * fallback for unknown encodings
+ */
+ handler = xmlFindCharEncodingHandler((const char *) encoding);
+ if (handler != NULL) {
+ xmlSwitchToEncoding(ctxt, handler);
+ ctxt->charset = XML_CHAR_ENCODING_UTF8;
+ } else {
+ htmlParseErr(ctxt, XML_ERR_UNSUPPORTED_ENCODING,
+ "htmlCheckEncoding: unknown encoding %s\n",
+ encoding, NULL);
+ }
+ }
+
+ if ((ctxt->input->buf != NULL) &&
+ (ctxt->input->buf->encoder != NULL) &&
+ (ctxt->input->buf->raw != NULL) &&
+ (ctxt->input->buf->buffer != NULL)) {
+ int nbchars;
+ int processed;
+
+ /*
+ * convert as much as possible to the parser reading buffer.
+ */
+ processed = ctxt->input->cur - ctxt->input->base;
+ xmlBufShrink(ctxt->input->buf->buffer, processed);
+ nbchars = xmlCharEncInput(ctxt->input->buf, 1);
+ xmlBufResetInput(ctxt->input->buf->buffer, ctxt->input);
+ if (nbchars < 0) {
+ htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
+ "htmlCheckEncoding: encoder error\n",
+ NULL, NULL);
+ }
+ }
+ }
+}
+
+/**
+ * htmlCheckEncoding:
+ * @ctxt: an HTML parser context
+ * @attvalue: the attribute value
+ *
+ * Checks an http-equiv attribute from a Meta tag to detect
+ * the encoding
+ * If a new encoding is detected the parser is switched to decode
+ * it and pass UTF8
+ */
+static void
+htmlCheckEncoding(htmlParserCtxtPtr ctxt, const xmlChar *attvalue) {
+ const xmlChar *encoding;
+
+ if (!attvalue)
+ return;
+
+ encoding = xmlStrcasestr(attvalue, BAD_CAST"charset");
+ if (encoding != NULL) {
+ encoding += 7;
+ }
+ /*
+ * skip blank
+ */
+ if (encoding && IS_BLANK_CH(*encoding))
+ encoding = xmlStrcasestr(attvalue, BAD_CAST"=");
+ if (encoding && *encoding == '=') {
+ encoding ++;
+ htmlCheckEncodingDirect(ctxt, encoding);
+ }
+}
+
+/**
+ * htmlCheckMeta:
+ * @ctxt: an HTML parser context
+ * @atts: the attributes values
+ *
+ * Checks an attributes from a Meta tag
+ */
+static void
+htmlCheckMeta(htmlParserCtxtPtr ctxt, const xmlChar **atts) {
+ int i;
+ const xmlChar *att, *value;
+ int http = 0;
+ const xmlChar *content = NULL;
+
+ if ((ctxt == NULL) || (atts == NULL))
+ return;
+
+ i = 0;
+ att = atts[i++];
+ while (att != NULL) {
+ value = atts[i++];
+ if ((value != NULL) && (!xmlStrcasecmp(att, BAD_CAST"http-equiv"))
+ && (!xmlStrcasecmp(value, BAD_CAST"Content-Type")))
+ http = 1;
+ else if ((value != NULL) && (!xmlStrcasecmp(att, BAD_CAST"charset")))
+ htmlCheckEncodingDirect(ctxt, value);
+ else if ((value != NULL) && (!xmlStrcasecmp(att, BAD_CAST"content")))
+ content = value;
+ att = atts[i++];
+ }
+ if ((http) && (content != NULL))
+ htmlCheckEncoding(ctxt, content);
+
+}
+
+/**
+ * htmlParseStartTag:
+ * @ctxt: an HTML parser context
+ *
+ * parse a start of tag either for rule element or
+ * EmptyElement. In both case we don't parse the tag closing chars.
+ *
+ * [40] STag ::= '<' Name (S Attribute)* S? '>'
+ *
+ * [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
+ *
+ * With namespace:
+ *
+ * [NS 8] STag ::= '<' QName (S Attribute)* S? '>'
+ *
+ * [NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>'
+ *
+ * Returns 0 in case of success, -1 in case of error and 1 if discarded
+ */
+
+static int
+htmlParseStartTag(htmlParserCtxtPtr ctxt) {
+ const xmlChar *name;
+ const xmlChar *attname;
+ xmlChar *attvalue;
+ const xmlChar **atts;
+ int nbatts = 0;
+ int maxatts;
+ int meta = 0;
+ int i;
+ int discardtag = 0;
+
+ if ((ctxt == NULL) || (ctxt->input == NULL)) {
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "htmlParseStartTag: context error\n", NULL, NULL);
+ return -1;
+ }
+ if (ctxt->instate == XML_PARSER_EOF)
+ return(-1);
+ if (CUR != '<') return -1;
+ NEXT;
+
+ atts = ctxt->atts;
+ maxatts = ctxt->maxatts;
+
+ GROW;
+ name = htmlParseHTMLName(ctxt);
+ if (name == NULL) {
+ htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
+ "htmlParseStartTag: invalid element name\n",
+ NULL, NULL);
+ /* if recover preserve text on classic misconstructs */
+ if ((ctxt->recovery) && ((IS_BLANK_CH(CUR)) || (CUR == '<') ||
+ (CUR == '=') || (CUR == '>') || (((CUR >= '0') && (CUR <= '9'))))) {
+ htmlParseCharDataInternal(ctxt, '<');
+ return(-1);
+ }
+
+
+ /* Dump the bogus tag like browsers do */
+ while ((IS_CHAR_CH(CUR)) && (CUR != '>') &&
+ (ctxt->instate != XML_PARSER_EOF))
+ NEXT;
+ return -1;
+ }
+ if (xmlStrEqual(name, BAD_CAST"meta"))
+ meta = 1;
+
+ /*
+ * Check for auto-closure of HTML elements.
+ */
+ htmlAutoClose(ctxt, name);
+
+ /*
+ * Check for implied HTML elements.
+ */
+ htmlCheckImplied(ctxt, name);
+
+ /*
+ * Avoid html at any level > 0, head at any level != 1
+ * or any attempt to recurse body
+ */
+ if ((ctxt->nameNr > 0) && (xmlStrEqual(name, BAD_CAST"html"))) {
+ htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
+ "htmlParseStartTag: misplaced <html> tag\n",
+ name, NULL);
+ discardtag = 1;
+ ctxt->depth++;
+ }
+ if ((ctxt->nameNr != 1) &&
+ (xmlStrEqual(name, BAD_CAST"head"))) {
+ htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
+ "htmlParseStartTag: misplaced <head> tag\n",
+ name, NULL);
+ discardtag = 1;
+ ctxt->depth++;
+ }
+ if (xmlStrEqual(name, BAD_CAST"body")) {
+ int indx;
+ for (indx = 0;indx < ctxt->nameNr;indx++) {
+ if (xmlStrEqual(ctxt->nameTab[indx], BAD_CAST"body")) {
+ htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
+ "htmlParseStartTag: misplaced <body> tag\n",
+ name, NULL);
+ discardtag = 1;
+ ctxt->depth++;
+ }
+ }
+ }
+
+ /*
+ * Now parse the attributes, it ends up with the ending
+ *
+ * (S Attribute)* S?
+ */
+ SKIP_BLANKS;
+ while ((IS_CHAR_CH(CUR)) &&
+ (CUR != '>') &&
+ ((CUR != '/') || (NXT(1) != '>'))) {
+ long cons = ctxt->nbChars;
+
+ GROW;
+ attname = htmlParseAttribute(ctxt, &attvalue);
+ if (attname != NULL) {
+
+ /*
+ * Well formedness requires at most one declaration of an attribute
+ */
+ for (i = 0; i < nbatts;i += 2) {
+ if (xmlStrEqual(atts[i], attname)) {
+ htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_REDEFINED,
+ "Attribute %s redefined\n", attname, NULL);
+ if (attvalue != NULL)
+ xmlFree(attvalue);
+ goto failed;
+ }
+ }
+
+ /*
+ * Add the pair to atts
+ */
+ if (atts == NULL) {
+ maxatts = 22; /* allow for 10 attrs by default */
+ atts = (const xmlChar **)
+ xmlMalloc(maxatts * sizeof(xmlChar *));
+ if (atts == NULL) {
+ htmlErrMemory(ctxt, NULL);
+ if (attvalue != NULL)
+ xmlFree(attvalue);
+ goto failed;
+ }
+ ctxt->atts = atts;
+ ctxt->maxatts = maxatts;
+ } else if (nbatts + 4 > maxatts) {
+ const xmlChar **n;
+
+ maxatts *= 2;
+ n = (const xmlChar **) xmlRealloc((void *) atts,
+ maxatts * sizeof(const xmlChar *));
+ if (n == NULL) {
+ htmlErrMemory(ctxt, NULL);
+ if (attvalue != NULL)
+ xmlFree(attvalue);
+ goto failed;
+ }
+ atts = n;
+ ctxt->atts = atts;
+ ctxt->maxatts = maxatts;
+ }
+ atts[nbatts++] = attname;
+ atts[nbatts++] = attvalue;
+ atts[nbatts] = NULL;
+ atts[nbatts + 1] = NULL;
+ }
+ else {
+ if (attvalue != NULL)
+ xmlFree(attvalue);
+ /* Dump the bogus attribute string up to the next blank or
+ * the end of the tag. */
+ while ((IS_CHAR_CH(CUR)) &&
+ !(IS_BLANK_CH(CUR)) && (CUR != '>') &&
+ ((CUR != '/') || (NXT(1) != '>')))
+ NEXT;
+ }
+
+failed:
+ SKIP_BLANKS;
+ if (cons == ctxt->nbChars) {
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "htmlParseStartTag: problem parsing attributes\n",
+ NULL, NULL);
+ break;
+ }
+ }
+
+ /*
+ * Handle specific association to the META tag
+ */
+ if (meta && (nbatts != 0))
+ htmlCheckMeta(ctxt, atts);
+
+ /*
+ * SAX: Start of Element !
+ */
+ if (!discardtag) {
+ htmlnamePush(ctxt, name);
+ if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL)) {
+ if (nbatts != 0)
+ ctxt->sax->startElement(ctxt->userData, name, atts);
+ else
+ ctxt->sax->startElement(ctxt->userData, name, NULL);
+ }
+ }
+
+ if (atts != NULL) {
+ for (i = 1;i < nbatts;i += 2) {
+ if (atts[i] != NULL)
+ xmlFree((xmlChar *) atts[i]);
+ }
+ }
+
+ return(discardtag);
+}
+
+/**
+ * htmlParseEndTag:
+ * @ctxt: an HTML parser context
+ *
+ * parse an end of tag
+ *
+ * [42] ETag ::= '</' Name S? '>'
+ *
+ * With namespace
+ *
+ * [NS 9] ETag ::= '</' QName S? '>'
+ *
+ * Returns 1 if the current level should be closed.
+ */
+
+static int
+htmlParseEndTag(htmlParserCtxtPtr ctxt)
+{
+ const xmlChar *name;
+ const xmlChar *oldname;
+ int i, ret;
+
+ if ((CUR != '<') || (NXT(1) != '/')) {
+ htmlParseErr(ctxt, XML_ERR_LTSLASH_REQUIRED,
+ "htmlParseEndTag: '</' not found\n", NULL, NULL);
+ return (0);
+ }
+ SKIP(2);
+
+ name = htmlParseHTMLName(ctxt);
+ if (name == NULL)
+ return (0);
+ /*
+ * We should definitely be at the ending "S? '>'" part
+ */
+ SKIP_BLANKS;
+ if ((!IS_CHAR_CH(CUR)) || (CUR != '>')) {
+ htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
+ "End tag : expected '>'\n", NULL, NULL);
+ if (ctxt->recovery) {
+ /*
+ * We're not at the ending > !!
+ * Error, unless in recover mode where we search forwards
+ * until we find a >
+ */
+ while (CUR != '\0' && CUR != '>') NEXT;
+ NEXT;
+ }
+ } else
+ NEXT;
+
+ /*
+ * if we ignored misplaced tags in htmlParseStartTag don't pop them
+ * out now.
+ */
+ if ((ctxt->depth > 0) &&
+ (xmlStrEqual(name, BAD_CAST "html") ||
+ xmlStrEqual(name, BAD_CAST "body") ||
+ xmlStrEqual(name, BAD_CAST "head"))) {
+ ctxt->depth--;
+ return (0);
+ }
+
+ /*
+ * If the name read is not one of the element in the parsing stack
+ * then return, it's just an error.
+ */
+ for (i = (ctxt->nameNr - 1); i >= 0; i--) {
+ if (xmlStrEqual(name, ctxt->nameTab[i]))
+ break;
+ }
+ if (i < 0) {
+ htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
+ "Unexpected end tag : %s\n", name, NULL);
+ return (0);
+ }
+
+
+ /*
+ * Check for auto-closure of HTML elements.
+ */
+
+ htmlAutoCloseOnClose(ctxt, name);
+
+ /*
+ * Well formedness constraints, opening and closing must match.
+ * With the exception that the autoclose may have popped stuff out
+ * of the stack.
+ */
+ if (!xmlStrEqual(name, ctxt->name)) {
+ if ((ctxt->name != NULL) && (!xmlStrEqual(ctxt->name, name))) {
+ htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
+ "Opening and ending tag mismatch: %s and %s\n",
+ name, ctxt->name);
+ }
+ }
+
+ /*
+ * SAX: End of Tag
+ */
+ oldname = ctxt->name;
+ if ((oldname != NULL) && (xmlStrEqual(oldname, name))) {
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, name);
+ htmlNodeInfoPop(ctxt);
+ htmlnamePop(ctxt);
+ ret = 1;
+ } else {
+ ret = 0;
+ }
+
+ return (ret);
+}
+
+
+/**
+ * htmlParseReference:
+ * @ctxt: an HTML parser context
+ *
+ * parse and handle entity references in content,
+ * this will end-up in a call to character() since this is either a
+ * CharRef, or a predefined entity.
+ */
+static void
+htmlParseReference(htmlParserCtxtPtr ctxt) {
+ const htmlEntityDesc * ent;
+ xmlChar out[6];
+ const xmlChar *name;
+ if (CUR != '&') return;
+
+ if (NXT(1) == '#') {
+ unsigned int c;
+ int bits, i = 0;
+
+ c = htmlParseCharRef(ctxt);
+ if (c == 0)
+ return;
+
+ if (c < 0x80) { out[i++]= c; bits= -6; }
+ else if (c < 0x800) { out[i++]=((c >> 6) & 0x1F) | 0xC0; bits= 0; }
+ else if (c < 0x10000) { out[i++]=((c >> 12) & 0x0F) | 0xE0; bits= 6; }
+ else { out[i++]=((c >> 18) & 0x07) | 0xF0; bits= 12; }
+
+ for ( ; bits >= 0; bits-= 6) {
+ out[i++]= ((c >> bits) & 0x3F) | 0x80;
+ }
+ out[i] = 0;
+
+ htmlCheckParagraph(ctxt);
+ if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
+ ctxt->sax->characters(ctxt->userData, out, i);
+ } else {
+ ent = htmlParseEntityRef(ctxt, &name);
+ if (name == NULL) {
+ htmlCheckParagraph(ctxt);
+ if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
+ ctxt->sax->characters(ctxt->userData, BAD_CAST "&", 1);
+ return;
+ }
+ if ((ent == NULL) || !(ent->value > 0)) {
+ htmlCheckParagraph(ctxt);
+ if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL)) {
+ ctxt->sax->characters(ctxt->userData, BAD_CAST "&", 1);
+ ctxt->sax->characters(ctxt->userData, name, xmlStrlen(name));
+ /* ctxt->sax->characters(ctxt->userData, BAD_CAST ";", 1); */
+ }
+ } else {
+ unsigned int c;
+ int bits, i = 0;
+
+ c = ent->value;
+ if (c < 0x80)
+ { out[i++]= c; bits= -6; }
+ else if (c < 0x800)
+ { out[i++]=((c >> 6) & 0x1F) | 0xC0; bits= 0; }
+ else if (c < 0x10000)
+ { out[i++]=((c >> 12) & 0x0F) | 0xE0; bits= 6; }
+ else
+ { out[i++]=((c >> 18) & 0x07) | 0xF0; bits= 12; }
+
+ for ( ; bits >= 0; bits-= 6) {
+ out[i++]= ((c >> bits) & 0x3F) | 0x80;
+ }
+ out[i] = 0;
+
+ htmlCheckParagraph(ctxt);
+ if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
+ ctxt->sax->characters(ctxt->userData, out, i);
+ }
+ }
+}
+
+/**
+ * htmlParseContent:
+ * @ctxt: an HTML parser context
+ *
+ * Parse a content: comment, sub-element, reference or text.
+ * Kept for compatibility with old code
+ */
+
+static void
+htmlParseContent(htmlParserCtxtPtr ctxt) {
+ xmlChar *currentNode;
+ int depth;
+ const xmlChar *name;
+
+ currentNode = xmlStrdup(ctxt->name);
+ depth = ctxt->nameNr;
+ while (1) {
+ long cons = ctxt->nbChars;
+
+ GROW;
+
+ if (ctxt->instate == XML_PARSER_EOF)
+ break;
+
+ /*
+ * Our tag or one of it's parent or children is ending.
+ */
+ if ((CUR == '<') && (NXT(1) == '/')) {
+ if (htmlParseEndTag(ctxt) &&
+ ((currentNode != NULL) || (ctxt->nameNr == 0))) {
+ if (currentNode != NULL)
+ xmlFree(currentNode);
+ return;
+ }
+ continue; /* while */
+ }
+
+ else if ((CUR == '<') &&
+ ((IS_ASCII_LETTER(NXT(1))) ||
+ (NXT(1) == '_') || (NXT(1) == ':'))) {
+ name = htmlParseHTMLName_nonInvasive(ctxt);
+ if (name == NULL) {
+ htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
+ "htmlParseStartTag: invalid element name\n",
+ NULL, NULL);
+ /* Dump the bogus tag like browsers do */
+ while ((IS_CHAR_CH(CUR)) && (CUR != '>'))
+ NEXT;
+
+ if (currentNode != NULL)
+ xmlFree(currentNode);
+ return;
+ }
+
+ if (ctxt->name != NULL) {
+ if (htmlCheckAutoClose(name, ctxt->name) == 1) {
+ htmlAutoClose(ctxt, name);
+ continue;
+ }
+ }
+ }
+
+ /*
+ * Has this node been popped out during parsing of
+ * the next element
+ */
+ if ((ctxt->nameNr > 0) && (depth >= ctxt->nameNr) &&
+ (!xmlStrEqual(currentNode, ctxt->name)))
+ {
+ if (currentNode != NULL) xmlFree(currentNode);
+ return;
+ }
+
+ if ((CUR != 0) && ((xmlStrEqual(currentNode, BAD_CAST"script")) ||
+ (xmlStrEqual(currentNode, BAD_CAST"style")))) {
+ /*
+ * Handle SCRIPT/STYLE separately
+ */
+ htmlParseScript(ctxt);
+ } else {
+ /*
+ * Sometimes DOCTYPE arrives in the middle of the document
+ */
+ if ((CUR == '<') && (NXT(1) == '!') &&
+ (UPP(2) == 'D') && (UPP(3) == 'O') &&
+ (UPP(4) == 'C') && (UPP(5) == 'T') &&
+ (UPP(6) == 'Y') && (UPP(7) == 'P') &&
+ (UPP(8) == 'E')) {
+ htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
+ "Misplaced DOCTYPE declaration\n",
+ BAD_CAST "DOCTYPE" , NULL);
+ htmlParseDocTypeDecl(ctxt);
+ }
+
+ /*
+ * First case : a comment
+ */
+ if ((CUR == '<') && (NXT(1) == '!') &&
+ (NXT(2) == '-') && (NXT(3) == '-')) {
+ htmlParseComment(ctxt);
+ }
+
+ /*
+ * Second case : a Processing Instruction.
+ */
+ else if ((CUR == '<') && (NXT(1) == '?')) {
+ htmlParsePI(ctxt);
+ }
+
+ /*
+ * Third case : a sub-element.
+ */
+ else if (CUR == '<') {
+ htmlParseElement(ctxt);
+ }
+
+ /*
+ * Fourth case : a reference. If if has not been resolved,
+ * parsing returns it's Name, create the node
+ */
+ else if (CUR == '&') {
+ htmlParseReference(ctxt);
+ }
+
+ /*
+ * Fifth case : end of the resource
+ */
+ else if (CUR == 0) {
+ htmlAutoCloseOnEnd(ctxt);
+ break;
+ }
+
+ /*
+ * Last case, text. Note that References are handled directly.
+ */
+ else {
+ htmlParseCharData(ctxt);
+ }
+
+ if (cons == ctxt->nbChars) {
+ if (ctxt->node != NULL) {
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "detected an error in element content\n",
+ NULL, NULL);
+ }
+ break;
+ }
+ }
+ GROW;
+ }
+ if (currentNode != NULL) xmlFree(currentNode);
+}
+
+/**
+ * htmlParseElement:
+ * @ctxt: an HTML parser context
+ *
+ * parse an HTML element, this is highly recursive
+ * this is kept for compatibility with previous code versions
+ *
+ * [39] element ::= EmptyElemTag | STag content ETag
+ *
+ * [41] Attribute ::= Name Eq AttValue
+ */
+
+void
+htmlParseElement(htmlParserCtxtPtr ctxt) {
+ const xmlChar *name;
+ xmlChar *currentNode = NULL;
+ const htmlElemDesc * info;
+ htmlParserNodeInfo node_info;
+ int failed;
+ int depth;
+ const xmlChar *oldptr;
+
+ if ((ctxt == NULL) || (ctxt->input == NULL)) {
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "htmlParseElement: context error\n", NULL, NULL);
+ return;
+ }
+
+ if (ctxt->instate == XML_PARSER_EOF)
+ return;
+
+ /* Capture start position */
+ if (ctxt->record_info) {
+ node_info.begin_pos = ctxt->input->consumed +
+ (CUR_PTR - ctxt->input->base);
+ node_info.begin_line = ctxt->input->line;
+ }
+
+ failed = htmlParseStartTag(ctxt);
+ name = ctxt->name;
+ if ((failed == -1) || (name == NULL)) {
+ if (CUR == '>')
+ NEXT;
+ return;
+ }
+
+ /*
+ * Lookup the info for that element.
+ */
+ info = htmlTagLookup(name);
+ if (info == NULL) {
+ htmlParseErr(ctxt, XML_HTML_UNKNOWN_TAG,
+ "Tag %s invalid\n", name, NULL);
+ }
+
+ /*
+ * Check for an Empty Element labeled the XML/SGML way
+ */
+ if ((CUR == '/') && (NXT(1) == '>')) {
+ SKIP(2);
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, name);
+ htmlnamePop(ctxt);
+ return;
+ }
+
+ if (CUR == '>') {
+ NEXT;
+ } else {
+ htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
+ "Couldn't find end of Start Tag %s\n", name, NULL);
+
+ /*
+ * end of parsing of this node.
+ */
+ if (xmlStrEqual(name, ctxt->name)) {
+ nodePop(ctxt);
+ htmlnamePop(ctxt);
+ }
+
+ /*
+ * Capture end position and add node
+ */
+ if (ctxt->record_info) {
+ node_info.end_pos = ctxt->input->consumed +
+ (CUR_PTR - ctxt->input->base);
+ node_info.end_line = ctxt->input->line;
+ node_info.node = ctxt->node;
+ xmlParserAddNodeInfo(ctxt, &node_info);
+ }
+ return;
+ }
+
+ /*
+ * Check for an Empty Element from DTD definition
+ */
+ if ((info != NULL) && (info->empty)) {
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, name);
+ htmlnamePop(ctxt);
+ return;
+ }
+
+ /*
+ * Parse the content of the element:
+ */
+ currentNode = xmlStrdup(ctxt->name);
+ depth = ctxt->nameNr;
+ while (IS_CHAR_CH(CUR)) {
+ oldptr = ctxt->input->cur;
+ htmlParseContent(ctxt);
+ if (oldptr==ctxt->input->cur) break;
+ if (ctxt->nameNr < depth) break;
+ }
+
+ /*
+ * Capture end position and add node
+ */
+ if ( currentNode != NULL && ctxt->record_info ) {
+ node_info.end_pos = ctxt->input->consumed +
+ (CUR_PTR - ctxt->input->base);
+ node_info.end_line = ctxt->input->line;
+ node_info.node = ctxt->node;
+ xmlParserAddNodeInfo(ctxt, &node_info);
+ }
+ if (!IS_CHAR_CH(CUR)) {
+ htmlAutoCloseOnEnd(ctxt);
+ }
+
+ if (currentNode != NULL)
+ xmlFree(currentNode);
+}
+
+static void
+htmlParserFinishElementParsing(htmlParserCtxtPtr ctxt) {
+ /*
+ * Capture end position and add node
+ */
+ if ( ctxt->node != NULL && ctxt->record_info ) {
+ ctxt->nodeInfo->end_pos = ctxt->input->consumed +
+ (CUR_PTR - ctxt->input->base);
+ ctxt->nodeInfo->end_line = ctxt->input->line;
+ ctxt->nodeInfo->node = ctxt->node;
+ xmlParserAddNodeInfo(ctxt, ctxt->nodeInfo);
+ htmlNodeInfoPop(ctxt);
+ }
+ if (!IS_CHAR_CH(CUR)) {
+ htmlAutoCloseOnEnd(ctxt);
+ }
+}
+
+/**
+ * htmlParseElementInternal:
+ * @ctxt: an HTML parser context
+ *
+ * parse an HTML element, new version, non recursive
+ *
+ * [39] element ::= EmptyElemTag | STag content ETag
+ *
+ * [41] Attribute ::= Name Eq AttValue
+ */
+
+static void
+htmlParseElementInternal(htmlParserCtxtPtr ctxt) {
+ const xmlChar *name;
+ const htmlElemDesc * info;
+ htmlParserNodeInfo node_info = { NULL, 0, 0, 0, 0 };
+ int failed;
+
+ if ((ctxt == NULL) || (ctxt->input == NULL)) {
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "htmlParseElementInternal: context error\n", NULL, NULL);
+ return;
+ }
+
+ if (ctxt->instate == XML_PARSER_EOF)
+ return;
+
+ /* Capture start position */
+ if (ctxt->record_info) {
+ node_info.begin_pos = ctxt->input->consumed +
+ (CUR_PTR - ctxt->input->base);
+ node_info.begin_line = ctxt->input->line;
+ }
+
+ failed = htmlParseStartTag(ctxt);
+ name = ctxt->name;
+ if ((failed == -1) || (name == NULL)) {
+ if (CUR == '>')
+ NEXT;
+ return;
+ }
+
+ /*
+ * Lookup the info for that element.
+ */
+ info = htmlTagLookup(name);
+ if (info == NULL) {
+ htmlParseErr(ctxt, XML_HTML_UNKNOWN_TAG,
+ "Tag %s invalid\n", name, NULL);
+ }
+
+ /*
+ * Check for an Empty Element labeled the XML/SGML way
+ */
+ if ((CUR == '/') && (NXT(1) == '>')) {
+ SKIP(2);
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, name);
+ htmlnamePop(ctxt);
+ return;
+ }
+
+ if (CUR == '>') {
+ NEXT;
+ } else {
+ htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
+ "Couldn't find end of Start Tag %s\n", name, NULL);
+
+ /*
+ * end of parsing of this node.
+ */
+ if (xmlStrEqual(name, ctxt->name)) {
+ nodePop(ctxt);
+ htmlnamePop(ctxt);
+ }
+
+ if (ctxt->record_info)
+ htmlNodeInfoPush(ctxt, &node_info);
+ htmlParserFinishElementParsing(ctxt);
+ return;
+ }
+
+ /*
+ * Check for an Empty Element from DTD definition
+ */
+ if ((info != NULL) && (info->empty)) {
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, name);
+ htmlnamePop(ctxt);
+ return;
+ }
+
+ if (ctxt->record_info)
+ htmlNodeInfoPush(ctxt, &node_info);
+}
+
+/**
+ * htmlParseContentInternal:
+ * @ctxt: an HTML parser context
+ *
+ * Parse a content: comment, sub-element, reference or text.
+ * New version for non recursive htmlParseElementInternal
+ */
+
+static void
+htmlParseContentInternal(htmlParserCtxtPtr ctxt) {
+ xmlChar *currentNode;
+ int depth;
+ const xmlChar *name;
+
+ currentNode = xmlStrdup(ctxt->name);
+ depth = ctxt->nameNr;
+ while (1) {
+ long cons = ctxt->nbChars;
+
+ GROW;
+
+ if (ctxt->instate == XML_PARSER_EOF)
+ break;
+
+ /*
+ * Our tag or one of it's parent or children is ending.
+ */
+ if ((CUR == '<') && (NXT(1) == '/')) {
+ if (htmlParseEndTag(ctxt) &&
+ ((currentNode != NULL) || (ctxt->nameNr == 0))) {
+ if (currentNode != NULL)
+ xmlFree(currentNode);
+
+ currentNode = xmlStrdup(ctxt->name);
+ depth = ctxt->nameNr;
+ }
+ continue; /* while */
+ }
+
+ else if ((CUR == '<') &&
+ ((IS_ASCII_LETTER(NXT(1))) ||
+ (NXT(1) == '_') || (NXT(1) == ':'))) {
+ name = htmlParseHTMLName_nonInvasive(ctxt);
+ if (name == NULL) {
+ htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
+ "htmlParseStartTag: invalid element name\n",
+ NULL, NULL);
+ /* Dump the bogus tag like browsers do */
+ while ((IS_CHAR_CH(CUR)) && (CUR != '>'))
+ NEXT;
+
+ htmlParserFinishElementParsing(ctxt);
+ if (currentNode != NULL)
+ xmlFree(currentNode);
+
+ currentNode = xmlStrdup(ctxt->name);
+ depth = ctxt->nameNr;
+ continue;
+ }
+
+ if (ctxt->name != NULL) {
+ if (htmlCheckAutoClose(name, ctxt->name) == 1) {
+ htmlAutoClose(ctxt, name);
+ continue;
+ }
+ }
+ }
+
+ /*
+ * Has this node been popped out during parsing of
+ * the next element
+ */
+ if ((ctxt->nameNr > 0) && (depth >= ctxt->nameNr) &&
+ (!xmlStrEqual(currentNode, ctxt->name)))
+ {
+ htmlParserFinishElementParsing(ctxt);
+ if (currentNode != NULL) xmlFree(currentNode);
+
+ currentNode = xmlStrdup(ctxt->name);
+ depth = ctxt->nameNr;
+ continue;
+ }
+
+ if ((CUR != 0) && ((xmlStrEqual(currentNode, BAD_CAST"script")) ||
+ (xmlStrEqual(currentNode, BAD_CAST"style")))) {
+ /*
+ * Handle SCRIPT/STYLE separately
+ */
+ htmlParseScript(ctxt);
+ } else {
+ /*
+ * Sometimes DOCTYPE arrives in the middle of the document
+ */
+ if ((CUR == '<') && (NXT(1) == '!') &&
+ (UPP(2) == 'D') && (UPP(3) == 'O') &&
+ (UPP(4) == 'C') && (UPP(5) == 'T') &&
+ (UPP(6) == 'Y') && (UPP(7) == 'P') &&
+ (UPP(8) == 'E')) {
+ htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
+ "Misplaced DOCTYPE declaration\n",
+ BAD_CAST "DOCTYPE" , NULL);
+ htmlParseDocTypeDecl(ctxt);
+ }
+
+ /*
+ * First case : a comment
+ */
+ if ((CUR == '<') && (NXT(1) == '!') &&
+ (NXT(2) == '-') && (NXT(3) == '-')) {
+ htmlParseComment(ctxt);
+ }
+
+ /*
+ * Second case : a Processing Instruction.
+ */
+ else if ((CUR == '<') && (NXT(1) == '?')) {
+ htmlParsePI(ctxt);
+ }
+
+ /*
+ * Third case : a sub-element.
+ */
+ else if (CUR == '<') {
+ htmlParseElementInternal(ctxt);
+ if (currentNode != NULL) xmlFree(currentNode);
+
+ currentNode = xmlStrdup(ctxt->name);
+ depth = ctxt->nameNr;
+ }
+
+ /*
+ * Fourth case : a reference. If if has not been resolved,
+ * parsing returns it's Name, create the node
+ */
+ else if (CUR == '&') {
+ htmlParseReference(ctxt);
+ }
+
+ /*
+ * Fifth case : end of the resource
+ */
+ else if (CUR == 0) {
+ htmlAutoCloseOnEnd(ctxt);
+ break;
+ }
+
+ /*
+ * Last case, text. Note that References are handled directly.
+ */
+ else {
+ htmlParseCharData(ctxt);
+ }
+
+ if (cons == ctxt->nbChars) {
+ if (ctxt->node != NULL) {
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "detected an error in element content\n",
+ NULL, NULL);
+ }
+ break;
+ }
+ }
+ GROW;
+ }
+ if (currentNode != NULL) xmlFree(currentNode);
+}
+
+/**
+ * htmlParseContent:
+ * @ctxt: an HTML parser context
+ *
+ * Parse a content: comment, sub-element, reference or text.
+ * This is the entry point when called from parser.c
+ */
+
+void
+__htmlParseContent(void *ctxt) {
+ if (ctxt != NULL)
+ htmlParseContentInternal((htmlParserCtxtPtr) ctxt);
+}
+
+/**
+ * htmlParseDocument:
+ * @ctxt: an HTML parser context
+ *
+ * parse an HTML document (and build a tree if using the standard SAX
+ * interface).
+ *
+ * Returns 0, -1 in case of error. the parser context is augmented
+ * as a result of the parsing.
+ */
+
+int
+htmlParseDocument(htmlParserCtxtPtr ctxt) {
+ xmlChar start[4];
+ xmlCharEncoding enc;
+ xmlDtdPtr dtd;
+
+ xmlInitParser();
+
+ htmlDefaultSAXHandlerInit();
+
+ if ((ctxt == NULL) || (ctxt->input == NULL)) {
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "htmlParseDocument: context error\n", NULL, NULL);
+ return(XML_ERR_INTERNAL_ERROR);
+ }
+ ctxt->html = 1;
+ ctxt->linenumbers = 1;
+ GROW;
+ /*
+ * SAX: beginning of the document processing.
+ */
+ if ((ctxt->sax) && (ctxt->sax->setDocumentLocator))
+ ctxt->sax->setDocumentLocator(ctxt->userData, &xmlDefaultSAXLocator);
+
+ if ((ctxt->encoding == (const xmlChar *)XML_CHAR_ENCODING_NONE) &&
+ ((ctxt->input->end - ctxt->input->cur) >= 4)) {
+ /*
+ * Get the 4 first bytes and decode the charset
+ * if enc != XML_CHAR_ENCODING_NONE
+ * plug some encoding conversion routines.
+ */
+ start[0] = RAW;
+ start[1] = NXT(1);
+ start[2] = NXT(2);
+ start[3] = NXT(3);
+ enc = xmlDetectCharEncoding(&start[0], 4);
+ if (enc != XML_CHAR_ENCODING_NONE) {
+ xmlSwitchEncoding(ctxt, enc);
+ }
+ }
+
+ /*
+ * Wipe out everything which is before the first '<'
+ */
+ SKIP_BLANKS;
+ if (CUR == 0) {
+ htmlParseErr(ctxt, XML_ERR_DOCUMENT_EMPTY,
+ "Document is empty\n", NULL, NULL);
+ }
+
+ if ((ctxt->sax) && (ctxt->sax->startDocument) && (!ctxt->disableSAX))
+ ctxt->sax->startDocument(ctxt->userData);
+
+
+ /*
+ * Parse possible comments and PIs before any content
+ */
+ while (((CUR == '<') && (NXT(1) == '!') &&
+ (NXT(2) == '-') && (NXT(3) == '-')) ||
+ ((CUR == '<') && (NXT(1) == '?'))) {
+ htmlParseComment(ctxt);
+ htmlParsePI(ctxt);
+ SKIP_BLANKS;
+ }
+
+
+ /*
+ * Then possibly doc type declaration(s) and more Misc
+ * (doctypedecl Misc*)?
+ */
+ if ((CUR == '<') && (NXT(1) == '!') &&
+ (UPP(2) == 'D') && (UPP(3) == 'O') &&
+ (UPP(4) == 'C') && (UPP(5) == 'T') &&
+ (UPP(6) == 'Y') && (UPP(7) == 'P') &&
+ (UPP(8) == 'E')) {
+ htmlParseDocTypeDecl(ctxt);
+ }
+ SKIP_BLANKS;
+
+ /*
+ * Parse possible comments and PIs before any content
+ */
+ while (((CUR == '<') && (NXT(1) == '!') &&
+ (NXT(2) == '-') && (NXT(3) == '-')) ||
+ ((CUR == '<') && (NXT(1) == '?'))) {
+ htmlParseComment(ctxt);
+ htmlParsePI(ctxt);
+ SKIP_BLANKS;
+ }
+
+ /*
+ * Time to start parsing the tree itself
+ */
+ htmlParseContentInternal(ctxt);
+
+ /*
+ * autoclose
+ */
+ if (CUR == 0)
+ htmlAutoCloseOnEnd(ctxt);
+
+
+ /*
+ * SAX: end of the document processing.
+ */
+ if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
+ ctxt->sax->endDocument(ctxt->userData);
+
+ if ((!(ctxt->options & HTML_PARSE_NODEFDTD)) && (ctxt->myDoc != NULL)) {
+ dtd = xmlGetIntSubset(ctxt->myDoc);
+ if (dtd == NULL)
+ ctxt->myDoc->intSubset =
+ xmlCreateIntSubset(ctxt->myDoc, BAD_CAST "html",
+ BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN",
+ BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd");
+ }
+ if (! ctxt->wellFormed) return(-1);
+ return(0);
+}
+
+
+/************************************************************************
+ * *
+ * Parser contexts handling *
+ * *
+ ************************************************************************/
+
+/**
+ * htmlInitParserCtxt:
+ * @ctxt: an HTML parser context
+ *
+ * Initialize a parser context
+ *
+ * Returns 0 in case of success and -1 in case of error
+ */
+
+static int
+htmlInitParserCtxt(htmlParserCtxtPtr ctxt)
+{
+ htmlSAXHandler *sax;
+
+ if (ctxt == NULL) return(-1);
+ memset(ctxt, 0, sizeof(htmlParserCtxt));
+
+ ctxt->dict = xmlDictCreate();
+ if (ctxt->dict == NULL) {
+ htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
+ return(-1);
+ }
+ sax = (htmlSAXHandler *) xmlMalloc(sizeof(htmlSAXHandler));
+ if (sax == NULL) {
+ htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
+ return(-1);
+ }
+ else
+ memset(sax, 0, sizeof(htmlSAXHandler));
+
+ /* Allocate the Input stack */
+ ctxt->inputTab = (htmlParserInputPtr *)
+ xmlMalloc(5 * sizeof(htmlParserInputPtr));
+ if (ctxt->inputTab == NULL) {
+ htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
+ ctxt->inputNr = 0;
+ ctxt->inputMax = 0;
+ ctxt->input = NULL;
+ return(-1);
+ }
+ ctxt->inputNr = 0;
+ ctxt->inputMax = 5;
+ ctxt->input = NULL;
+ ctxt->version = NULL;
+ ctxt->encoding = NULL;
+ ctxt->standalone = -1;
+ ctxt->instate = XML_PARSER_START;
+
+ /* Allocate the Node stack */
+ ctxt->nodeTab = (htmlNodePtr *) xmlMalloc(10 * sizeof(htmlNodePtr));
+ if (ctxt->nodeTab == NULL) {
+ htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
+ ctxt->nodeNr = 0;
+ ctxt->nodeMax = 0;
+ ctxt->node = NULL;
+ ctxt->inputNr = 0;
+ ctxt->inputMax = 0;
+ ctxt->input = NULL;
+ return(-1);
+ }
+ ctxt->nodeNr = 0;
+ ctxt->nodeMax = 10;
+ ctxt->node = NULL;
+
+ /* Allocate the Name stack */
+ ctxt->nameTab = (const xmlChar **) xmlMalloc(10 * sizeof(xmlChar *));
+ if (ctxt->nameTab == NULL) {
+ htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
+ ctxt->nameNr = 0;
+ ctxt->nameMax = 0;
+ ctxt->name = NULL;
+ ctxt->nodeNr = 0;
+ ctxt->nodeMax = 0;
+ ctxt->node = NULL;
+ ctxt->inputNr = 0;
+ ctxt->inputMax = 0;
+ ctxt->input = NULL;
+ return(-1);
+ }
+ ctxt->nameNr = 0;
+ ctxt->nameMax = 10;
+ ctxt->name = NULL;
+
+ ctxt->nodeInfoTab = NULL;
+ ctxt->nodeInfoNr = 0;
+ ctxt->nodeInfoMax = 0;
+
+ if (sax == NULL) ctxt->sax = (xmlSAXHandlerPtr) &htmlDefaultSAXHandler;
+ else {
+ ctxt->sax = sax;
+ memcpy(sax, &htmlDefaultSAXHandler, sizeof(xmlSAXHandlerV1));
+ }
+ ctxt->userData = ctxt;
+ ctxt->myDoc = NULL;
+ ctxt->wellFormed = 1;
+ ctxt->replaceEntities = 0;
+ ctxt->linenumbers = xmlLineNumbersDefaultValue;
+ ctxt->keepBlanks = xmlKeepBlanksDefaultValue;
+ ctxt->html = 1;
+ ctxt->vctxt.finishDtd = XML_CTXT_FINISH_DTD_0;
+ ctxt->vctxt.userData = ctxt;
+ ctxt->vctxt.error = xmlParserValidityError;
+ ctxt->vctxt.warning = xmlParserValidityWarning;
+ ctxt->record_info = 0;
+ ctxt->validate = 0;
+ ctxt->nbChars = 0;
+ ctxt->checkIndex = 0;
+ ctxt->catalogs = NULL;
+ xmlInitNodeInfoSeq(&ctxt->node_seq);
+ return(0);
+}
+
+/**
+ * htmlFreeParserCtxt:
+ * @ctxt: an HTML parser context
+ *
+ * Free all the memory used by a parser context. However the parsed
+ * document in ctxt->myDoc is not freed.
+ */
+
+void
+htmlFreeParserCtxt(htmlParserCtxtPtr ctxt)
+{
+ xmlFreeParserCtxt(ctxt);
+}
+
+/**
+ * htmlNewParserCtxt:
+ *
+ * Allocate and initialize a new parser context.
+ *
+ * Returns the htmlParserCtxtPtr or NULL in case of allocation error
+ */
+
+htmlParserCtxtPtr
+htmlNewParserCtxt(void)
+{
+ xmlParserCtxtPtr ctxt;
+
+ ctxt = (xmlParserCtxtPtr) xmlMalloc(sizeof(xmlParserCtxt));
+ if (ctxt == NULL) {
+ htmlErrMemory(NULL, "NewParserCtxt: out of memory\n");
+ return(NULL);
+ }
+ memset(ctxt, 0, sizeof(xmlParserCtxt));
+ if (htmlInitParserCtxt(ctxt) < 0) {
+ htmlFreeParserCtxt(ctxt);
+ return(NULL);
+ }
+ return(ctxt);
+}
+
+/**
+ * htmlCreateMemoryParserCtxt:
+ * @buffer: a pointer to a char array
+ * @size: the size of the array
+ *
+ * Create a parser context for an HTML in-memory document.
+ *
+ * Returns the new parser context or NULL
+ */
+htmlParserCtxtPtr
+htmlCreateMemoryParserCtxt(const char *buffer, int size) {
+ xmlParserCtxtPtr ctxt;
+ xmlParserInputPtr input;
+ xmlParserInputBufferPtr buf;
+
+ if (buffer == NULL)
+ return(NULL);
+ if (size <= 0)
+ return(NULL);
+
+ ctxt = htmlNewParserCtxt();
+ if (ctxt == NULL)
+ return(NULL);
+
+ buf = xmlParserInputBufferCreateMem(buffer, size, XML_CHAR_ENCODING_NONE);
+ if (buf == NULL) return(NULL);
+
+ input = xmlNewInputStream(ctxt);
+ if (input == NULL) {
+ xmlFreeParserCtxt(ctxt);
+ return(NULL);
+ }
+
+ input->filename = NULL;
+ input->buf = buf;
+ xmlBufResetInput(buf->buffer, input);
+
+ inputPush(ctxt, input);
+ return(ctxt);
+}
+
+/**
+ * htmlCreateDocParserCtxt:
+ * @cur: a pointer to an array of xmlChar
+ * @encoding: a free form C string describing the HTML document encoding, or NULL
+ *
+ * Create a parser context for an HTML document.
+ *
+ * TODO: check the need to add encoding handling there
+ *
+ * Returns the new parser context or NULL
+ */
+static htmlParserCtxtPtr
+htmlCreateDocParserCtxt(const xmlChar *cur, const char *encoding) {
+ int len;
+ htmlParserCtxtPtr ctxt;
+
+ if (cur == NULL)
+ return(NULL);
+ len = xmlStrlen(cur);
+ ctxt = htmlCreateMemoryParserCtxt((char *)cur, len);
+ if (ctxt == NULL)
+ return(NULL);
+
+ if (encoding != NULL) {
+ xmlCharEncoding enc;
+ xmlCharEncodingHandlerPtr handler;
+
+ if (ctxt->input->encoding != NULL)
+ xmlFree((xmlChar *) ctxt->input->encoding);
+ ctxt->input->encoding = xmlStrdup((const xmlChar *) encoding);
+
+ enc = xmlParseCharEncoding(encoding);
+ /*
+ * registered set of known encodings
+ */
+ if (enc != XML_CHAR_ENCODING_ERROR) {
+ xmlSwitchEncoding(ctxt, enc);
+ if (ctxt->errNo == XML_ERR_UNSUPPORTED_ENCODING) {
+ htmlParseErr(ctxt, XML_ERR_UNSUPPORTED_ENCODING,
+ "Unsupported encoding %s\n",
+ (const xmlChar *) encoding, NULL);
+ }
+ } else {
+ /*
+ * fallback for unknown encodings
+ */
+ handler = xmlFindCharEncodingHandler((const char *) encoding);
+ if (handler != NULL) {
+ xmlSwitchToEncoding(ctxt, handler);
+ } else {
+ htmlParseErr(ctxt, XML_ERR_UNSUPPORTED_ENCODING,
+ "Unsupported encoding %s\n",
+ (const xmlChar *) encoding, NULL);
+ }
+ }
+ }
+ return(ctxt);
+}
+
+#ifdef LIBXML_PUSH_ENABLED
+/************************************************************************
+ * *
+ * Progressive parsing interfaces *
+ * *
+ ************************************************************************/
+
+/**
+ * htmlParseLookupSequence:
+ * @ctxt: an HTML parser context
+ * @first: the first char to lookup
+ * @next: the next char to lookup or zero
+ * @third: the next char to lookup or zero
+ * @comment: flag to force checking inside comments
+ *
+ * Try to find if a sequence (first, next, third) or just (first next) or
+ * (first) is available in the input stream.
+ * This function has a side effect of (possibly) incrementing ctxt->checkIndex
+ * to avoid rescanning sequences of bytes, it DOES change the state of the
+ * parser, do not use liberally.
+ * This is basically similar to xmlParseLookupSequence()
+ *
+ * Returns the index to the current parsing point if the full sequence
+ * is available, -1 otherwise.
+ */
+static int
+htmlParseLookupSequence(htmlParserCtxtPtr ctxt, xmlChar first,
+ xmlChar next, xmlChar third, int iscomment,
+ int ignoreattrval)
+{
+ int base, len;
+ htmlParserInputPtr in;
+ const xmlChar *buf;
+ int incomment = 0;
+ int invalue = 0;
+ char valdellim = 0x0;
+
+ in = ctxt->input;
+ if (in == NULL)
+ return (-1);
+
+ base = in->cur - in->base;
+ if (base < 0)
+ return (-1);
+
+ if (ctxt->checkIndex > base)
+ base = ctxt->checkIndex;
+
+ if (in->buf == NULL) {
+ buf = in->base;
+ len = in->length;
+ } else {
+ buf = xmlBufContent(in->buf->buffer);
+ len = xmlBufUse(in->buf->buffer);
+ }
+
+ /* take into account the sequence length */
+ if (third)
+ len -= 2;
+ else if (next)
+ len--;
+ for (; base < len; base++) {
+ if ((!incomment) && (base + 4 < len) && (!iscomment)) {
+ if ((buf[base] == '<') && (buf[base + 1] == '!') &&
+ (buf[base + 2] == '-') && (buf[base + 3] == '-')) {
+ incomment = 1;
+ /* do not increment past <! - some people use <!--> */
+ base += 2;
+ }
+ }
+ if (ignoreattrval) {
+ if (buf[base] == '"' || buf[base] == '\'') {
+ if (invalue) {
+ if (buf[base] == valdellim) {
+ invalue = 0;
+ continue;
+ }
+ } else {
+ valdellim = buf[base];
+ invalue = 1;
+ continue;
+ }
+ } else if (invalue) {
+ continue;
+ }
+ }
+ if (incomment) {
+ if (base + 3 > len)
+ return (-1);
+ if ((buf[base] == '-') && (buf[base + 1] == '-') &&
+ (buf[base + 2] == '>')) {
+ incomment = 0;
+ base += 2;
+ }
+ continue;
+ }
+ if (buf[base] == first) {
+ if (third != 0) {
+ if ((buf[base + 1] != next) || (buf[base + 2] != third))
+ continue;
+ } else if (next != 0) {
+ if (buf[base + 1] != next)
+ continue;
+ }
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ if (next == 0)
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: lookup '%c' found at %d\n",
+ first, base);
+ else if (third == 0)
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: lookup '%c%c' found at %d\n",
+ first, next, base);
+ else
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: lookup '%c%c%c' found at %d\n",
+ first, next, third, base);
+#endif
+ return (base - (in->cur - in->base));
+ }
+ }
+ if ((!incomment) && (!invalue))
+ ctxt->checkIndex = base;
+#ifdef DEBUG_PUSH
+ if (next == 0)
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: lookup '%c' failed\n", first);
+ else if (third == 0)
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: lookup '%c%c' failed\n", first, next);
+ else
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: lookup '%c%c%c' failed\n", first, next,
+ third);
+#endif
+ return (-1);
+}
+
+/**
+ * htmlParseLookupChars:
+ * @ctxt: an HTML parser context
+ * @stop: Array of chars, which stop the lookup.
+ * @stopLen: Length of stop-Array
+ *
+ * Try to find if any char of the stop-Array is available in the input
+ * stream.
+ * This function has a side effect of (possibly) incrementing ctxt->checkIndex
+ * to avoid rescanning sequences of bytes, it DOES change the state of the
+ * parser, do not use liberally.
+ *
+ * Returns the index to the current parsing point if a stopChar
+ * is available, -1 otherwise.
+ */
+static int
+htmlParseLookupChars(htmlParserCtxtPtr ctxt, const xmlChar * stop,
+ int stopLen)
+{
+ int base, len;
+ htmlParserInputPtr in;
+ const xmlChar *buf;
+ int incomment = 0;
+ int i;
+
+ in = ctxt->input;
+ if (in == NULL)
+ return (-1);
+
+ base = in->cur - in->base;
+ if (base < 0)
+ return (-1);
+
+ if (ctxt->checkIndex > base)
+ base = ctxt->checkIndex;
+
+ if (in->buf == NULL) {
+ buf = in->base;
+ len = in->length;
+ } else {
+ buf = xmlBufContent(in->buf->buffer);
+ len = xmlBufUse(in->buf->buffer);
+ }
+
+ for (; base < len; base++) {
+ if (!incomment && (base + 4 < len)) {
+ if ((buf[base] == '<') && (buf[base + 1] == '!') &&
+ (buf[base + 2] == '-') && (buf[base + 3] == '-')) {
+ incomment = 1;
+ /* do not increment past <! - some people use <!--> */
+ base += 2;
+ }
+ }
+ if (incomment) {
+ if (base + 3 > len)
+ return (-1);
+ if ((buf[base] == '-') && (buf[base + 1] == '-') &&
+ (buf[base + 2] == '>')) {
+ incomment = 0;
+ base += 2;
+ }
+ continue;
+ }
+ for (i = 0; i < stopLen; ++i) {
+ if (buf[base] == stop[i]) {
+ ctxt->checkIndex = 0;
+ return (base - (in->cur - in->base));
+ }
+ }
+ }
+ ctxt->checkIndex = base;
+ return (-1);
+}
+
+/**
+ * htmlParseTryOrFinish:
+ * @ctxt: an HTML parser context
+ * @terminate: last chunk indicator
+ *
+ * Try to progress on parsing
+ *
+ * Returns zero if no parsing was possible
+ */
+static int
+htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
+ int ret = 0;
+ htmlParserInputPtr in;
+ int avail = 0;
+ xmlChar cur, next;
+
+ htmlParserNodeInfo node_info;
+
+#ifdef DEBUG_PUSH
+ switch (ctxt->instate) {
+ case XML_PARSER_EOF:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try EOF\n"); break;
+ case XML_PARSER_START:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try START\n"); break;
+ case XML_PARSER_MISC:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try MISC\n");break;
+ case XML_PARSER_COMMENT:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try COMMENT\n");break;
+ case XML_PARSER_PROLOG:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try PROLOG\n");break;
+ case XML_PARSER_START_TAG:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try START_TAG\n");break;
+ case XML_PARSER_CONTENT:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try CONTENT\n");break;
+ case XML_PARSER_CDATA_SECTION:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try CDATA_SECTION\n");break;
+ case XML_PARSER_END_TAG:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try END_TAG\n");break;
+ case XML_PARSER_ENTITY_DECL:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try ENTITY_DECL\n");break;
+ case XML_PARSER_ENTITY_VALUE:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try ENTITY_VALUE\n");break;
+ case XML_PARSER_ATTRIBUTE_VALUE:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try ATTRIBUTE_VALUE\n");break;
+ case XML_PARSER_DTD:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try DTD\n");break;
+ case XML_PARSER_EPILOG:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try EPILOG\n");break;
+ case XML_PARSER_PI:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try PI\n");break;
+ case XML_PARSER_SYSTEM_LITERAL:
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: try SYSTEM_LITERAL\n");break;
+ }
+#endif
+
+ while (1) {
+
+ in = ctxt->input;
+ if (in == NULL) break;
+ if (in->buf == NULL)
+ avail = in->length - (in->cur - in->base);
+ else
+ avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
+ if ((avail == 0) && (terminate)) {
+ htmlAutoCloseOnEnd(ctxt);
+ if ((ctxt->nameNr == 0) && (ctxt->instate != XML_PARSER_EOF)) {
+ /*
+ * SAX: end of the document processing.
+ */
+ ctxt->instate = XML_PARSER_EOF;
+ if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
+ ctxt->sax->endDocument(ctxt->userData);
+ }
+ }
+ if (avail < 1)
+ goto done;
+ cur = in->cur[0];
+ if (cur == 0) {
+ SKIP(1);
+ continue;
+ }
+
+ switch (ctxt->instate) {
+ case XML_PARSER_EOF:
+ /*
+ * Document parsing is done !
+ */
+ goto done;
+ case XML_PARSER_START:
+ /*
+ * Very first chars read from the document flow.
+ */
+ cur = in->cur[0];
+ if (IS_BLANK_CH(cur)) {
+ SKIP_BLANKS;
+ if (in->buf == NULL)
+ avail = in->length - (in->cur - in->base);
+ else
+ avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
+ }
+ if ((ctxt->sax) && (ctxt->sax->setDocumentLocator))
+ ctxt->sax->setDocumentLocator(ctxt->userData,
+ &xmlDefaultSAXLocator);
+ if ((ctxt->sax) && (ctxt->sax->startDocument) &&
+ (!ctxt->disableSAX))
+ ctxt->sax->startDocument(ctxt->userData);
+
+ cur = in->cur[0];
+ next = in->cur[1];
+ if ((cur == '<') && (next == '!') &&
+ (UPP(2) == 'D') && (UPP(3) == 'O') &&
+ (UPP(4) == 'C') && (UPP(5) == 'T') &&
+ (UPP(6) == 'Y') && (UPP(7) == 'P') &&
+ (UPP(8) == 'E')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing internal subset\n");
+#endif
+ htmlParseDocTypeDecl(ctxt);
+ ctxt->instate = XML_PARSER_PROLOG;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering PROLOG\n");
+#endif
+ } else {
+ ctxt->instate = XML_PARSER_MISC;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering MISC\n");
+#endif
+ }
+ break;
+ case XML_PARSER_MISC:
+ SKIP_BLANKS;
+ if (in->buf == NULL)
+ avail = in->length - (in->cur - in->base);
+ else
+ avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
+ /*
+ * no chars in buffer
+ */
+ if (avail < 1)
+ goto done;
+ /*
+ * not enouth chars in buffer
+ */
+ if (avail < 2) {
+ if (!terminate)
+ goto done;
+ else
+ next = ' ';
+ } else {
+ next = in->cur[1];
+ }
+ cur = in->cur[0];
+ if ((cur == '<') && (next == '!') &&
+ (in->cur[2] == '-') && (in->cur[3] == '-')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing Comment\n");
+#endif
+ htmlParseComment(ctxt);
+ ctxt->instate = XML_PARSER_MISC;
+ } else if ((cur == '<') && (next == '?')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing PI\n");
+#endif
+ htmlParsePI(ctxt);
+ ctxt->instate = XML_PARSER_MISC;
+ } else if ((cur == '<') && (next == '!') &&
+ (UPP(2) == 'D') && (UPP(3) == 'O') &&
+ (UPP(4) == 'C') && (UPP(5) == 'T') &&
+ (UPP(6) == 'Y') && (UPP(7) == 'P') &&
+ (UPP(8) == 'E')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing internal subset\n");
+#endif
+ htmlParseDocTypeDecl(ctxt);
+ ctxt->instate = XML_PARSER_PROLOG;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering PROLOG\n");
+#endif
+ } else if ((cur == '<') && (next == '!') &&
+ (avail < 9)) {
+ goto done;
+ } else {
+ ctxt->instate = XML_PARSER_START_TAG;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering START_TAG\n");
+#endif
+ }
+ break;
+ case XML_PARSER_PROLOG:
+ SKIP_BLANKS;
+ if (in->buf == NULL)
+ avail = in->length - (in->cur - in->base);
+ else
+ avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
+ if (avail < 2)
+ goto done;
+ cur = in->cur[0];
+ next = in->cur[1];
+ if ((cur == '<') && (next == '!') &&
+ (in->cur[2] == '-') && (in->cur[3] == '-')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing Comment\n");
+#endif
+ htmlParseComment(ctxt);
+ ctxt->instate = XML_PARSER_PROLOG;
+ } else if ((cur == '<') && (next == '?')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing PI\n");
+#endif
+ htmlParsePI(ctxt);
+ ctxt->instate = XML_PARSER_PROLOG;
+ } else if ((cur == '<') && (next == '!') &&
+ (avail < 4)) {
+ goto done;
+ } else {
+ ctxt->instate = XML_PARSER_START_TAG;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering START_TAG\n");
+#endif
+ }
+ break;
+ case XML_PARSER_EPILOG:
+ if (in->buf == NULL)
+ avail = in->length - (in->cur - in->base);
+ else
+ avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
+ if (avail < 1)
+ goto done;
+ cur = in->cur[0];
+ if (IS_BLANK_CH(cur)) {
+ htmlParseCharData(ctxt);
+ goto done;
+ }
+ if (avail < 2)
+ goto done;
+ next = in->cur[1];
+ if ((cur == '<') && (next == '!') &&
+ (in->cur[2] == '-') && (in->cur[3] == '-')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing Comment\n");
+#endif
+ htmlParseComment(ctxt);
+ ctxt->instate = XML_PARSER_EPILOG;
+ } else if ((cur == '<') && (next == '?')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing PI\n");
+#endif
+ htmlParsePI(ctxt);
+ ctxt->instate = XML_PARSER_EPILOG;
+ } else if ((cur == '<') && (next == '!') &&
+ (avail < 4)) {
+ goto done;
+ } else {
+ ctxt->errNo = XML_ERR_DOCUMENT_END;
+ ctxt->wellFormed = 0;
+ ctxt->instate = XML_PARSER_EOF;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering EOF\n");
+#endif
+ if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
+ ctxt->sax->endDocument(ctxt->userData);
+ goto done;
+ }
+ break;
+ case XML_PARSER_START_TAG: {
+ const xmlChar *name;
+ int failed;
+ const htmlElemDesc * info;
+
+ /*
+ * no chars in buffer
+ */
+ if (avail < 1)
+ goto done;
+ /*
+ * not enouth chars in buffer
+ */
+ if (avail < 2) {
+ if (!terminate)
+ goto done;
+ else
+ next = ' ';
+ } else {
+ next = in->cur[1];
+ }
+ cur = in->cur[0];
+ if (cur != '<') {
+ ctxt->instate = XML_PARSER_CONTENT;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ }
+ if (next == '/') {
+ ctxt->instate = XML_PARSER_END_TAG;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering END_TAG\n");
+#endif
+ break;
+ }
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
+ goto done;
+
+ /* Capture start position */
+ if (ctxt->record_info) {
+ node_info.begin_pos = ctxt->input->consumed +
+ (CUR_PTR - ctxt->input->base);
+ node_info.begin_line = ctxt->input->line;
+ }
+
+
+ failed = htmlParseStartTag(ctxt);
+ name = ctxt->name;
+ if ((failed == -1) ||
+ (name == NULL)) {
+ if (CUR == '>')
+ NEXT;
+ break;
+ }
+
+ /*
+ * Lookup the info for that element.
+ */
+ info = htmlTagLookup(name);
+ if (info == NULL) {
+ htmlParseErr(ctxt, XML_HTML_UNKNOWN_TAG,
+ "Tag %s invalid\n", name, NULL);
+ }
+
+ /*
+ * Check for an Empty Element labeled the XML/SGML way
+ */
+ if ((CUR == '/') && (NXT(1) == '>')) {
+ SKIP(2);
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, name);
+ htmlnamePop(ctxt);
+ ctxt->instate = XML_PARSER_CONTENT;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ }
+
+ if (CUR == '>') {
+ NEXT;
+ } else {
+ htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
+ "Couldn't find end of Start Tag %s\n",
+ name, NULL);
+
+ /*
+ * end of parsing of this node.
+ */
+ if (xmlStrEqual(name, ctxt->name)) {
+ nodePop(ctxt);
+ htmlnamePop(ctxt);
+ }
+
+ if (ctxt->record_info)
+ htmlNodeInfoPush(ctxt, &node_info);
+
+ ctxt->instate = XML_PARSER_CONTENT;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ }
+
+ /*
+ * Check for an Empty Element from DTD definition
+ */
+ if ((info != NULL) && (info->empty)) {
+ if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
+ ctxt->sax->endElement(ctxt->userData, name);
+ htmlnamePop(ctxt);
+ }
+
+ if (ctxt->record_info)
+ htmlNodeInfoPush(ctxt, &node_info);
+
+ ctxt->instate = XML_PARSER_CONTENT;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ }
+ case XML_PARSER_CONTENT: {
+ xmlChar chr[2] = { 0, 0 };
+ long cons;
+
+ /*
+ * Handle preparsed entities and charRef
+ */
+ if (ctxt->token != 0) {
+ chr[0] = (xmlChar) ctxt->token;
+ htmlCheckParagraph(ctxt);
+ if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
+ ctxt->sax->characters(ctxt->userData, chr, 1);
+ ctxt->token = 0;
+ ctxt->checkIndex = 0;
+ }
+ if ((avail == 1) && (terminate)) {
+ cur = in->cur[0];
+ if ((cur != '<') && (cur != '&')) {
+ if (ctxt->sax != NULL) {
+ chr[0] = cur;
+ if (IS_BLANK_CH(cur)) {
+ if (ctxt->keepBlanks) {
+ if (ctxt->sax->characters != NULL)
+ ctxt->sax->characters(
+ ctxt->userData, chr, 1);
+ } else {
+ if (ctxt->sax->ignorableWhitespace != NULL)
+ ctxt->sax->ignorableWhitespace(
+ ctxt->userData, chr, 1);
+ }
+ } else {
+ htmlCheckParagraph(ctxt);
+ if (ctxt->sax->characters != NULL)
+ ctxt->sax->characters(
+ ctxt->userData, chr, 1);
+ }
+ }
+ ctxt->token = 0;
+ ctxt->checkIndex = 0;
+ in->cur++;
+ break;
+ }
+ }
+ if (avail < 2)
+ goto done;
+ cur = in->cur[0];
+ next = in->cur[1];
+ cons = ctxt->nbChars;
+ if ((xmlStrEqual(ctxt->name, BAD_CAST"script")) ||
+ (xmlStrEqual(ctxt->name, BAD_CAST"style"))) {
+ /*
+ * Handle SCRIPT/STYLE separately
+ */
+ if (!terminate) {
+ int idx;
+ xmlChar val;
+
+ idx = htmlParseLookupSequence(ctxt, '<', '/', 0, 0, 0);
+ if (idx < 0)
+ goto done;
+ val = in->cur[idx + 2];
+ if (val == 0) /* bad cut of input */
+ goto done;
+ }
+ htmlParseScript(ctxt);
+ if ((cur == '<') && (next == '/')) {
+ ctxt->instate = XML_PARSER_END_TAG;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering END_TAG\n");
+#endif
+ break;
+ }
+ } else {
+ /*
+ * Sometimes DOCTYPE arrives in the middle of the document
+ */
+ if ((cur == '<') && (next == '!') &&
+ (UPP(2) == 'D') && (UPP(3) == 'O') &&
+ (UPP(4) == 'C') && (UPP(5) == 'T') &&
+ (UPP(6) == 'Y') && (UPP(7) == 'P') &&
+ (UPP(8) == 'E')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
+ goto done;
+ htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
+ "Misplaced DOCTYPE declaration\n",
+ BAD_CAST "DOCTYPE" , NULL);
+ htmlParseDocTypeDecl(ctxt);
+ } else if ((cur == '<') && (next == '!') &&
+ (in->cur[2] == '-') && (in->cur[3] == '-')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(
+ ctxt, '-', '-', '>', 1, 1) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing Comment\n");
+#endif
+ htmlParseComment(ctxt);
+ ctxt->instate = XML_PARSER_CONTENT;
+ } else if ((cur == '<') && (next == '?')) {
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing PI\n");
+#endif
+ htmlParsePI(ctxt);
+ ctxt->instate = XML_PARSER_CONTENT;
+ } else if ((cur == '<') && (next == '!') && (avail < 4)) {
+ goto done;
+ } else if ((cur == '<') && (next == '/')) {
+ ctxt->instate = XML_PARSER_END_TAG;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering END_TAG\n");
+#endif
+ break;
+ } else if (cur == '<') {
+ ctxt->instate = XML_PARSER_START_TAG;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering START_TAG\n");
+#endif
+ break;
+ } else if (cur == '&') {
+ if ((!terminate) &&
+ (htmlParseLookupChars(ctxt,
+ BAD_CAST "; >/", 4) < 0))
+ goto done;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing Reference\n");
+#endif
+ /* TODO: check generation of subtrees if noent !!! */
+ htmlParseReference(ctxt);
+ } else {
+ /*
+ * check that the text sequence is complete
+ * before handing out the data to the parser
+ * to avoid problems with erroneous end of
+ * data detection.
+ */
+ if ((!terminate) &&
+ (htmlParseLookupChars(ctxt, BAD_CAST "<&", 2) < 0))
+ goto done;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: Parsing char data\n");
+#endif
+ htmlParseCharData(ctxt);
+ }
+ }
+ if (cons == ctxt->nbChars) {
+ if (ctxt->node != NULL) {
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "detected an error in element content\n",
+ NULL, NULL);
+ }
+ NEXT;
+ break;
+ }
+
+ break;
+ }
+ case XML_PARSER_END_TAG:
+ if (avail < 2)
+ goto done;
+ if ((!terminate) &&
+ (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
+ goto done;
+ htmlParseEndTag(ctxt);
+ if (ctxt->nameNr == 0) {
+ ctxt->instate = XML_PARSER_EPILOG;
+ } else {
+ ctxt->instate = XML_PARSER_CONTENT;
+ }
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ case XML_PARSER_CDATA_SECTION:
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "HPP: internal error, state == CDATA\n",
+ NULL, NULL);
+ ctxt->instate = XML_PARSER_CONTENT;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ case XML_PARSER_DTD:
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "HPP: internal error, state == DTD\n",
+ NULL, NULL);
+ ctxt->instate = XML_PARSER_CONTENT;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ case XML_PARSER_COMMENT:
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "HPP: internal error, state == COMMENT\n",
+ NULL, NULL);
+ ctxt->instate = XML_PARSER_CONTENT;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ case XML_PARSER_PI:
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "HPP: internal error, state == PI\n",
+ NULL, NULL);
+ ctxt->instate = XML_PARSER_CONTENT;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ case XML_PARSER_ENTITY_DECL:
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "HPP: internal error, state == ENTITY_DECL\n",
+ NULL, NULL);
+ ctxt->instate = XML_PARSER_CONTENT;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ case XML_PARSER_ENTITY_VALUE:
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "HPP: internal error, state == ENTITY_VALUE\n",
+ NULL, NULL);
+ ctxt->instate = XML_PARSER_CONTENT;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering DTD\n");
+#endif
+ break;
+ case XML_PARSER_ATTRIBUTE_VALUE:
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "HPP: internal error, state == ATTRIBUTE_VALUE\n",
+ NULL, NULL);
+ ctxt->instate = XML_PARSER_START_TAG;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering START_TAG\n");
+#endif
+ break;
+ case XML_PARSER_SYSTEM_LITERAL:
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "HPP: internal error, state == XML_PARSER_SYSTEM_LITERAL\n",
+ NULL, NULL);
+ ctxt->instate = XML_PARSER_CONTENT;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ case XML_PARSER_IGNORE:
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "HPP: internal error, state == XML_PARSER_IGNORE\n",
+ NULL, NULL);
+ ctxt->instate = XML_PARSER_CONTENT;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+ case XML_PARSER_PUBLIC_LITERAL:
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "HPP: internal error, state == XML_PARSER_LITERAL\n",
+ NULL, NULL);
+ ctxt->instate = XML_PARSER_CONTENT;
+ ctxt->checkIndex = 0;
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext,
+ "HPP: entering CONTENT\n");
+#endif
+ break;
+
+ }
+ }
+done:
+ if ((avail == 0) && (terminate)) {
+ htmlAutoCloseOnEnd(ctxt);
+ if ((ctxt->nameNr == 0) && (ctxt->instate != XML_PARSER_EOF)) {
+ /*
+ * SAX: end of the document processing.
+ */
+ ctxt->instate = XML_PARSER_EOF;
+ if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
+ ctxt->sax->endDocument(ctxt->userData);
+ }
+ }
+ if ((!(ctxt->options & HTML_PARSE_NODEFDTD)) && (ctxt->myDoc != NULL) &&
+ ((terminate) || (ctxt->instate == XML_PARSER_EOF) ||
+ (ctxt->instate == XML_PARSER_EPILOG))) {
+ xmlDtdPtr dtd;
+ dtd = xmlGetIntSubset(ctxt->myDoc);
+ if (dtd == NULL)
+ ctxt->myDoc->intSubset =
+ xmlCreateIntSubset(ctxt->myDoc, BAD_CAST "html",
+ BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN",
+ BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd");
+ }
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext, "HPP: done %d\n", ret);
+#endif
+ return(ret);
+}
+
+/**
+ * htmlParseChunk:
+ * @ctxt: an HTML parser context
+ * @chunk: an char array
+ * @size: the size in byte of the chunk
+ * @terminate: last chunk indicator
+ *
+ * Parse a Chunk of memory
+ *
+ * Returns zero if no error, the xmlParserErrors otherwise.
+ */
+int
+htmlParseChunk(htmlParserCtxtPtr ctxt, const char *chunk, int size,
+ int terminate) {
+ if ((ctxt == NULL) || (ctxt->input == NULL)) {
+ htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "htmlParseChunk: context error\n", NULL, NULL);
+ return(XML_ERR_INTERNAL_ERROR);
+ }
+ if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) &&
+ (ctxt->input->buf != NULL) && (ctxt->instate != XML_PARSER_EOF)) {
+ size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input);
+ size_t cur = ctxt->input->cur - ctxt->input->base;
+ int res;
+
+ res = xmlParserInputBufferPush(ctxt->input->buf, size, chunk);
+ if (res < 0) {
+ ctxt->errNo = XML_PARSER_EOF;
+ ctxt->disableSAX = 1;
+ return (XML_PARSER_EOF);
+ }
+ xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur);
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size);
+#endif
+
+#if 0
+ if ((terminate) || (ctxt->input->buf->buffer->use > 80))
+ htmlParseTryOrFinish(ctxt, terminate);
+#endif
+ } else if (ctxt->instate != XML_PARSER_EOF) {
+ if ((ctxt->input != NULL) && ctxt->input->buf != NULL) {
+ xmlParserInputBufferPtr in = ctxt->input->buf;
+ if ((in->encoder != NULL) && (in->buffer != NULL) &&
+ (in->raw != NULL)) {
+ int nbchars;
+ size_t base = xmlBufGetInputBase(in->buffer, ctxt->input);
+ size_t current = ctxt->input->cur - ctxt->input->base;
+
+ nbchars = xmlCharEncInput(in, terminate);
+ if (nbchars < 0) {
+ htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
+ "encoder error\n", NULL, NULL);
+ return(XML_ERR_INVALID_ENCODING);
+ }
+ xmlBufSetInputBaseCur(in->buffer, ctxt->input, base, current);
+ }
+ }
+ }
+ htmlParseTryOrFinish(ctxt, terminate);
+ if (terminate) {
+ if ((ctxt->instate != XML_PARSER_EOF) &&
+ (ctxt->instate != XML_PARSER_EPILOG) &&
+ (ctxt->instate != XML_PARSER_MISC)) {
+ ctxt->errNo = XML_ERR_DOCUMENT_END;
+ ctxt->wellFormed = 0;
+ }
+ if (ctxt->instate != XML_PARSER_EOF) {
+ if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
+ ctxt->sax->endDocument(ctxt->userData);
+ }
+ ctxt->instate = XML_PARSER_EOF;
+ }
+ return((xmlParserErrors) ctxt->errNo);
+}
+
+/************************************************************************
+ * *
+ * User entry points *
+ * *
+ ************************************************************************/
+
+/**
+ * htmlCreatePushParserCtxt:
+ * @sax: a SAX handler
+ * @user_data: The user data returned on SAX callbacks
+ * @chunk: a pointer to an array of chars
+ * @size: number of chars in the array
+ * @filename: an optional file name or URI
+ * @enc: an optional encoding
+ *
+ * Create a parser context for using the HTML parser in push mode
+ * The value of @filename is used for fetching external entities
+ * and error/warning reports.
+ *
+ * Returns the new parser context or NULL
+ */
+htmlParserCtxtPtr
+htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax, void *user_data,
+ const char *chunk, int size, const char *filename,
+ xmlCharEncoding enc) {
+ htmlParserCtxtPtr ctxt;
+ htmlParserInputPtr inputStream;
+ xmlParserInputBufferPtr buf;
+
+ xmlInitParser();
+
+ buf = xmlAllocParserInputBuffer(enc);
+ if (buf == NULL) return(NULL);
+
+ ctxt = htmlNewParserCtxt();
+ if (ctxt == NULL) {
+ xmlFreeParserInputBuffer(buf);
+ return(NULL);
+ }
+ if(enc==XML_CHAR_ENCODING_UTF8 || buf->encoder)
+ ctxt->charset=XML_CHAR_ENCODING_UTF8;
+ if (sax != NULL) {
+ if (ctxt->sax != (xmlSAXHandlerPtr) &htmlDefaultSAXHandler)
+ xmlFree(ctxt->sax);
+ ctxt->sax = (htmlSAXHandlerPtr) xmlMalloc(sizeof(htmlSAXHandler));
+ if (ctxt->sax == NULL) {
+ xmlFree(buf);
+ xmlFree(ctxt);
+ return(NULL);
+ }
+ memcpy(ctxt->sax, sax, sizeof(htmlSAXHandler));
+ if (user_data != NULL)
+ ctxt->userData = user_data;
+ }
+ if (filename == NULL) {
+ ctxt->directory = NULL;
+ } else {
+ ctxt->directory = xmlParserGetDirectory(filename);
+ }
+
+ inputStream = htmlNewInputStream(ctxt);
+ if (inputStream == NULL) {
+ xmlFreeParserCtxt(ctxt);
+ xmlFree(buf);
+ return(NULL);
+ }
+
+ if (filename == NULL)
+ inputStream->filename = NULL;
+ else
+ inputStream->filename = (char *)
+ xmlCanonicPath((const xmlChar *) filename);
+ inputStream->buf = buf;
+ xmlBufResetInput(buf->buffer, inputStream);
+
+ inputPush(ctxt, inputStream);
+
+ if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) &&
+ (ctxt->input->buf != NULL)) {
+ size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input);
+ size_t cur = ctxt->input->cur - ctxt->input->base;
+
+ xmlParserInputBufferPush(ctxt->input->buf, size, chunk);
+
+ xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur);
+#ifdef DEBUG_PUSH
+ xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size);
+#endif
+ }
+ ctxt->progressive = 1;
+
+ return(ctxt);
+}
+#endif /* LIBXML_PUSH_ENABLED */
+
+/**
+ * htmlSAXParseDoc:
+ * @cur: a pointer to an array of xmlChar
+ * @encoding: a free form C string describing the HTML document encoding, or NULL
+ * @sax: the SAX handler block
+ * @userData: if using SAX, this pointer will be provided on callbacks.
+ *
+ * Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks
+ * to handle parse events. If sax is NULL, fallback to the default DOM
+ * behavior and return a tree.
+ *
+ * Returns the resulting document tree unless SAX is NULL or the document is
+ * not well formed.
+ */
+
+htmlDocPtr
+htmlSAXParseDoc(const xmlChar *cur, const char *encoding,
+ htmlSAXHandlerPtr sax, void *userData) {
+ htmlDocPtr ret;
+ htmlParserCtxtPtr ctxt;
+
+ xmlInitParser();
+
+ if (cur == NULL) return(NULL);
+
+
+ ctxt = htmlCreateDocParserCtxt(cur, encoding);
+ if (ctxt == NULL) return(NULL);
+ if (sax != NULL) {
+ if (ctxt->sax != NULL) xmlFree (ctxt->sax);
+ ctxt->sax = sax;
+ ctxt->userData = userData;
+ }
+
+ htmlParseDocument(ctxt);
+ ret = ctxt->myDoc;
+ if (sax != NULL) {
+ ctxt->sax = NULL;
+ ctxt->userData = NULL;
+ }
+ htmlFreeParserCtxt(ctxt);
+
+ return(ret);
+}
+
+/**
+ * htmlParseDoc:
+ * @cur: a pointer to an array of xmlChar
+ * @encoding: a free form C string describing the HTML document encoding, or NULL
+ *
+ * parse an HTML in-memory document and build a tree.
+ *
+ * Returns the resulting document tree
+ */
+
+htmlDocPtr
+htmlParseDoc(const xmlChar *cur, const char *encoding) {
+ return(htmlSAXParseDoc(cur, encoding, NULL, NULL));
+}
+
+
+/**
+ * htmlCreateFileParserCtxt:
+ * @filename: the filename
+ * @encoding: a free form C string describing the HTML document encoding, or NULL
+ *
+ * Create a parser context for a file content.
+ * Automatic support for ZLIB/Compress compressed document is provided
+ * by default if found at compile-time.
+ *
+ * Returns the new parser context or NULL
+ */
+htmlParserCtxtPtr
+htmlCreateFileParserCtxt(const char *filename, const char *encoding)
+{
+ htmlParserCtxtPtr ctxt;
+ htmlParserInputPtr inputStream;
+ char *canonicFilename;
+ /* htmlCharEncoding enc; */
+ xmlChar *content, *content_line = (xmlChar *) "charset=";
+
+ if (filename == NULL)
+ return(NULL);
+
+ ctxt = htmlNewParserCtxt();
+ if (ctxt == NULL) {
+ return(NULL);
+ }
+ canonicFilename = (char *) xmlCanonicPath((const xmlChar *) filename);
+ if (canonicFilename == NULL) {
+#ifdef LIBXML_SAX1_ENABLED
+ if (xmlDefaultSAXHandler.error != NULL) {
+ xmlDefaultSAXHandler.error(NULL, "out of memory\n");
+ }
+#endif
+ xmlFreeParserCtxt(ctxt);
+ return(NULL);
+ }
+
+ inputStream = xmlLoadExternalEntity(canonicFilename, NULL, ctxt);
+ xmlFree(canonicFilename);
+ if (inputStream == NULL) {
+ xmlFreeParserCtxt(ctxt);
+ return(NULL);
+ }
+
+ inputPush(ctxt, inputStream);
+
+ /* set encoding */
+ if (encoding) {
+ size_t l = strlen(encoding);
+
+ if (l < 1000) {
+ content = xmlMallocAtomic (xmlStrlen(content_line) + l + 1);
+ if (content) {
+ strcpy ((char *)content, (char *)content_line);
+ strcat ((char *)content, (char *)encoding);
+ htmlCheckEncoding (ctxt, content);
+ xmlFree (content);
+ }
+ }
+ }
+
+ return(ctxt);
+}
+
+/**
+ * htmlSAXParseFile:
+ * @filename: the filename
+ * @encoding: a free form C string describing the HTML document encoding, or NULL
+ * @sax: the SAX handler block
+ * @userData: if using SAX, this pointer will be provided on callbacks.
+ *
+ * parse an HTML file and build a tree. Automatic support for ZLIB/Compress
+ * compressed document is provided by default if found at compile-time.
+ * It use the given SAX function block to handle the parsing callback.
+ * If sax is NULL, fallback to the default DOM tree building routines.
+ *
+ * Returns the resulting document tree unless SAX is NULL or the document is
+ * not well formed.
+ */
+
+htmlDocPtr
+htmlSAXParseFile(const char *filename, const char *encoding, htmlSAXHandlerPtr sax,
+ void *userData) {
+ htmlDocPtr ret;
+ htmlParserCtxtPtr ctxt;
+ htmlSAXHandlerPtr oldsax = NULL;
+
+ xmlInitParser();
+
+ ctxt = htmlCreateFileParserCtxt(filename, encoding);
+ if (ctxt == NULL) return(NULL);
+ if (sax != NULL) {
+ oldsax = ctxt->sax;
+ ctxt->sax = sax;
+ ctxt->userData = userData;
+ }
+
+ htmlParseDocument(ctxt);
+
+ ret = ctxt->myDoc;
+ if (sax != NULL) {
+ ctxt->sax = oldsax;
+ ctxt->userData = NULL;
+ }
+ htmlFreeParserCtxt(ctxt);
+
+ return(ret);
+}
+
+/**
+ * htmlParseFile:
+ * @filename: the filename
+ * @encoding: a free form C string describing the HTML document encoding, or NULL
+ *
+ * parse an HTML file and build a tree. Automatic support for ZLIB/Compress
+ * compressed document is provided by default if found at compile-time.
+ *
+ * Returns the resulting document tree
+ */
+
+htmlDocPtr
+htmlParseFile(const char *filename, const char *encoding) {
+ return(htmlSAXParseFile(filename, encoding, NULL, NULL));
+}
+
+/**
+ * htmlHandleOmittedElem:
+ * @val: int 0 or 1
+ *
+ * Set and return the previous value for handling HTML omitted tags.
+ *
+ * Returns the last value for 0 for no handling, 1 for auto insertion.
+ */
+
+int
+htmlHandleOmittedElem(int val) {
+ int old = htmlOmittedDefaultValue;
+
+ htmlOmittedDefaultValue = val;
+ return(old);
+}
+
+/**
+ * htmlElementAllowedHere:
+ * @parent: HTML parent element
+ * @elt: HTML element
+ *
+ * Checks whether an HTML element may be a direct child of a parent element.
+ * Note - doesn't check for deprecated elements
+ *
+ * Returns 1 if allowed; 0 otherwise.
+ */
+int
+htmlElementAllowedHere(const htmlElemDesc* parent, const xmlChar* elt) {
+ const char** p ;
+
+ if ( ! elt || ! parent || ! parent->subelts )
+ return 0 ;
+
+ for ( p = parent->subelts; *p; ++p )
+ if ( !xmlStrcmp((const xmlChar *)*p, elt) )
+ return 1 ;
+
+ return 0 ;
+}
+/**
+ * htmlElementStatusHere:
+ * @parent: HTML parent element
+ * @elt: HTML element
+ *
+ * Checks whether an HTML element may be a direct child of a parent element.
+ * and if so whether it is valid or deprecated.
+ *
+ * Returns one of HTML_VALID, HTML_DEPRECATED, HTML_INVALID
+ */
+htmlStatus
+htmlElementStatusHere(const htmlElemDesc* parent, const htmlElemDesc* elt) {
+ if ( ! parent || ! elt )
+ return HTML_INVALID ;
+ if ( ! htmlElementAllowedHere(parent, (const xmlChar*) elt->name ) )
+ return HTML_INVALID ;
+
+ return ( elt->dtd == 0 ) ? HTML_VALID : HTML_DEPRECATED ;
+}
+/**
+ * htmlAttrAllowed:
+ * @elt: HTML element
+ * @attr: HTML attribute
+ * @legacy: whether to allow deprecated attributes
+ *
+ * Checks whether an attribute is valid for an element
+ * Has full knowledge of Required and Deprecated attributes
+ *
+ * Returns one of HTML_REQUIRED, HTML_VALID, HTML_DEPRECATED, HTML_INVALID
+ */
+htmlStatus
+htmlAttrAllowed(const htmlElemDesc* elt, const xmlChar* attr, int legacy) {
+ const char** p ;
+
+ if ( !elt || ! attr )
+ return HTML_INVALID ;
+
+ if ( elt->attrs_req )
+ for ( p = elt->attrs_req; *p; ++p)
+ if ( !xmlStrcmp((const xmlChar*)*p, attr) )
+ return HTML_REQUIRED ;
+
+ if ( elt->attrs_opt )
+ for ( p = elt->attrs_opt; *p; ++p)
+ if ( !xmlStrcmp((const xmlChar*)*p, attr) )
+ return HTML_VALID ;
+
+ if ( legacy && elt->attrs_depr )
+ for ( p = elt->attrs_depr; *p; ++p)
+ if ( !xmlStrcmp((const xmlChar*)*p, attr) )
+ return HTML_DEPRECATED ;
+
+ return HTML_INVALID ;
+}
+/**
+ * htmlNodeStatus:
+ * @node: an htmlNodePtr in a tree
+ * @legacy: whether to allow deprecated elements (YES is faster here
+ * for Element nodes)
+ *
+ * Checks whether the tree node is valid. Experimental (the author
+ * only uses the HTML enhancements in a SAX parser)
+ *
+ * Return: for Element nodes, a return from htmlElementAllowedHere (if
+ * legacy allowed) or htmlElementStatusHere (otherwise).
+ * for Attribute nodes, a return from htmlAttrAllowed
+ * for other nodes, HTML_NA (no checks performed)
+ */
+htmlStatus
+htmlNodeStatus(const htmlNodePtr node, int legacy) {
+ if ( ! node )
+ return HTML_INVALID ;
+
+ switch ( node->type ) {
+ case XML_ELEMENT_NODE:
+ return legacy
+ ? ( htmlElementAllowedHere (
+ htmlTagLookup(node->parent->name) , node->name
+ ) ? HTML_VALID : HTML_INVALID )
+ : htmlElementStatusHere(
+ htmlTagLookup(node->parent->name) ,
+ htmlTagLookup(node->name) )
+ ;
+ case XML_ATTRIBUTE_NODE:
+ return htmlAttrAllowed(
+ htmlTagLookup(node->parent->name) , node->name, legacy) ;
+ default: return HTML_NA ;
+ }
+}
+/************************************************************************
+ * *
+ * New set (2.6.0) of simpler and more flexible APIs *
+ * *
+ ************************************************************************/
+/**
+ * DICT_FREE:
+ * @str: a string
+ *
+ * Free a string if it is not owned by the "dict" dictionary in the
+ * current scope
+ */
+#define DICT_FREE(str) \
+ if ((str) && ((!dict) || \
+ (xmlDictOwns(dict, (const xmlChar *)(str)) == 0))) \
+ xmlFree((char *)(str));
+
+/**
+ * htmlCtxtReset:
+ * @ctxt: an HTML parser context
+ *
+ * Reset a parser context
+ */
+void
+htmlCtxtReset(htmlParserCtxtPtr ctxt)
+{
+ xmlParserInputPtr input;
+ xmlDictPtr dict;
+
+ if (ctxt == NULL)
+ return;
+
+ xmlInitParser();
+ dict = ctxt->dict;
+
+ while ((input = inputPop(ctxt)) != NULL) { /* Non consuming */
+ xmlFreeInputStream(input);
+ }
+ ctxt->inputNr = 0;
+ ctxt->input = NULL;
+
+ ctxt->spaceNr = 0;
+ if (ctxt->spaceTab != NULL) {
+ ctxt->spaceTab[0] = -1;
+ ctxt->space = &ctxt->spaceTab[0];
+ } else {
+ ctxt->space = NULL;
+ }
+
+
+ ctxt->nodeNr = 0;
+ ctxt->node = NULL;
+
+ ctxt->nameNr = 0;
+ ctxt->name = NULL;
+
+ DICT_FREE(ctxt->version);
+ ctxt->version = NULL;
+ DICT_FREE(ctxt->encoding);
+ ctxt->encoding = NULL;
+ DICT_FREE(ctxt->directory);
+ ctxt->directory = NULL;
+ DICT_FREE(ctxt->extSubURI);
+ ctxt->extSubURI = NULL;
+ DICT_FREE(ctxt->extSubSystem);
+ ctxt->extSubSystem = NULL;
+ if (ctxt->myDoc != NULL)
+ xmlFreeDoc(ctxt->myDoc);
+ ctxt->myDoc = NULL;
+
+ ctxt->standalone = -1;
+ ctxt->hasExternalSubset = 0;
+ ctxt->hasPErefs = 0;
+ ctxt->html = 1;
+ ctxt->external = 0;
+ ctxt->instate = XML_PARSER_START;
+ ctxt->token = 0;
+
+ ctxt->wellFormed = 1;
+ ctxt->nsWellFormed = 1;
+ ctxt->disableSAX = 0;
+ ctxt->valid = 1;
+ ctxt->vctxt.userData = ctxt;
+ ctxt->vctxt.error = xmlParserValidityError;
+ ctxt->vctxt.warning = xmlParserValidityWarning;
+ ctxt->record_info = 0;
+ ctxt->nbChars = 0;
+ ctxt->checkIndex = 0;
+ ctxt->inSubset = 0;
+ ctxt->errNo = XML_ERR_OK;
+ ctxt->depth = 0;
+ ctxt->charset = XML_CHAR_ENCODING_NONE;
+ ctxt->catalogs = NULL;
+ xmlInitNodeInfoSeq(&ctxt->node_seq);
+
+ if (ctxt->attsDefault != NULL) {
+ xmlHashFree(ctxt->attsDefault, xmlHashDefaultDeallocator);
+ ctxt->attsDefault = NULL;
+ }
+ if (ctxt->attsSpecial != NULL) {
+ xmlHashFree(ctxt->attsSpecial, NULL);
+ ctxt->attsSpecial = NULL;
+ }
+}
+
+/**
+ * htmlCtxtUseOptions:
+ * @ctxt: an HTML parser context
+ * @options: a combination of htmlParserOption(s)
+ *
+ * Applies the options to the parser context
+ *
+ * Returns 0 in case of success, the set of unknown or unimplemented options
+ * in case of error.
+ */
+int
+htmlCtxtUseOptions(htmlParserCtxtPtr ctxt, int options)
+{
+ if (ctxt == NULL)
+ return(-1);
+
+ if (options & HTML_PARSE_NOWARNING) {
+ ctxt->sax->warning = NULL;
+ ctxt->vctxt.warning = NULL;
+ options -= XML_PARSE_NOWARNING;
+ ctxt->options |= XML_PARSE_NOWARNING;
+ }
+ if (options & HTML_PARSE_NOERROR) {
+ ctxt->sax->error = NULL;
+ ctxt->vctxt.error = NULL;
+ ctxt->sax->fatalError = NULL;
+ options -= XML_PARSE_NOERROR;
+ ctxt->options |= XML_PARSE_NOERROR;
+ }
+ if (options & HTML_PARSE_PEDANTIC) {
+ ctxt->pedantic = 1;
+ options -= XML_PARSE_PEDANTIC;
+ ctxt->options |= XML_PARSE_PEDANTIC;
+ } else
+ ctxt->pedantic = 0;
+ if (options & XML_PARSE_NOBLANKS) {
+ ctxt->keepBlanks = 0;
+ ctxt->sax->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
+ options -= XML_PARSE_NOBLANKS;
+ ctxt->options |= XML_PARSE_NOBLANKS;
+ } else
+ ctxt->keepBlanks = 1;
+ if (options & HTML_PARSE_RECOVER) {
+ ctxt->recovery = 1;
+ options -= HTML_PARSE_RECOVER;
+ } else
+ ctxt->recovery = 0;
+ if (options & HTML_PARSE_COMPACT) {
+ ctxt->options |= HTML_PARSE_COMPACT;
+ options -= HTML_PARSE_COMPACT;
+ }
+ if (options & XML_PARSE_HUGE) {
+ ctxt->options |= XML_PARSE_HUGE;
+ options -= XML_PARSE_HUGE;
+ }
+ if (options & HTML_PARSE_NODEFDTD) {
+ ctxt->options |= HTML_PARSE_NODEFDTD;
+ options -= HTML_PARSE_NODEFDTD;
+ }
+ if (options & HTML_PARSE_IGNORE_ENC) {
+ ctxt->options |= HTML_PARSE_IGNORE_ENC;
+ options -= HTML_PARSE_IGNORE_ENC;
+ }
+ if (options & HTML_PARSE_NOIMPLIED) {
+ ctxt->options |= HTML_PARSE_NOIMPLIED;
+ options -= HTML_PARSE_NOIMPLIED;
+ }
+ ctxt->dictNames = 0;
+ return (options);
+}
+
+/**
+ * htmlDoRead:
+ * @ctxt: an HTML parser context
+ * @URL: the base URL to use for the document
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ * @reuse: keep the context for reuse
+ *
+ * Common front-end for the htmlRead functions
+ *
+ * Returns the resulting document tree or NULL
+ */
+static htmlDocPtr
+htmlDoRead(htmlParserCtxtPtr ctxt, const char *URL, const char *encoding,
+ int options, int reuse)
+{
+ htmlDocPtr ret;
+
+ htmlCtxtUseOptions(ctxt, options);
+ ctxt->html = 1;
+ if (encoding != NULL) {
+ xmlCharEncodingHandlerPtr hdlr;
+
+ hdlr = xmlFindCharEncodingHandler(encoding);
+ if (hdlr != NULL) {
+ xmlSwitchToEncoding(ctxt, hdlr);
+ if (ctxt->input->encoding != NULL)
+ xmlFree((xmlChar *) ctxt->input->encoding);
+ ctxt->input->encoding = xmlStrdup((xmlChar *)encoding);
+ }
+ }
+ if ((URL != NULL) && (ctxt->input != NULL) &&
+ (ctxt->input->filename == NULL))
+ ctxt->input->filename = (char *) xmlStrdup((const xmlChar *) URL);
+ htmlParseDocument(ctxt);
+ ret = ctxt->myDoc;
+ ctxt->myDoc = NULL;
+ if (!reuse) {
+ if ((ctxt->dictNames) &&
+ (ret != NULL) &&
+ (ret->dict == ctxt->dict))
+ ctxt->dict = NULL;
+ xmlFreeParserCtxt(ctxt);
+ }
+ return (ret);
+}
+
+/**
+ * htmlReadDoc:
+ * @cur: a pointer to a zero terminated string
+ * @URL: the base URL to use for the document
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ *
+ * parse an XML in-memory document and build a tree.
+ *
+ * Returns the resulting document tree
+ */
+htmlDocPtr
+htmlReadDoc(const xmlChar * cur, const char *URL, const char *encoding, int options)
+{
+ htmlParserCtxtPtr ctxt;
+
+ if (cur == NULL)
+ return (NULL);
+
+ xmlInitParser();
+ ctxt = htmlCreateDocParserCtxt(cur, NULL);
+ if (ctxt == NULL)
+ return (NULL);
+ return (htmlDoRead(ctxt, URL, encoding, options, 0));
+}
+
+/**
+ * htmlReadFile:
+ * @filename: a file or URL
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ *
+ * parse an XML file from the filesystem or the network.
+ *
+ * Returns the resulting document tree
+ */
+htmlDocPtr
+htmlReadFile(const char *filename, const char *encoding, int options)
+{
+ htmlParserCtxtPtr ctxt;
+
+ xmlInitParser();
+ ctxt = htmlCreateFileParserCtxt(filename, encoding);
+ if (ctxt == NULL)
+ return (NULL);
+ return (htmlDoRead(ctxt, NULL, NULL, options, 0));
+}
+
+/**
+ * htmlReadMemory:
+ * @buffer: a pointer to a char array
+ * @size: the size of the array
+ * @URL: the base URL to use for the document
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ *
+ * parse an XML in-memory document and build a tree.
+ *
+ * Returns the resulting document tree
+ */
+htmlDocPtr
+htmlReadMemory(const char *buffer, int size, const char *URL, const char *encoding, int options)
+{
+ htmlParserCtxtPtr ctxt;
+
+ xmlInitParser();
+ ctxt = xmlCreateMemoryParserCtxt(buffer, size);
+ if (ctxt == NULL)
+ return (NULL);
+ htmlDefaultSAXHandlerInit();
+ if (ctxt->sax != NULL)
+ memcpy(ctxt->sax, &htmlDefaultSAXHandler, sizeof(xmlSAXHandlerV1));
+ return (htmlDoRead(ctxt, URL, encoding, options, 0));
+}
+
+/**
+ * htmlReadFd:
+ * @fd: an open file descriptor
+ * @URL: the base URL to use for the document
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ *
+ * parse an XML from a file descriptor and build a tree.
+ *
+ * Returns the resulting document tree
+ */
+htmlDocPtr
+htmlReadFd(int fd, const char *URL, const char *encoding, int options)
+{
+ htmlParserCtxtPtr ctxt;
+ xmlParserInputBufferPtr input;
+ xmlParserInputPtr stream;
+
+ if (fd < 0)
+ return (NULL);
+ xmlInitParser();
+
+ xmlInitParser();
+ input = xmlParserInputBufferCreateFd(fd, XML_CHAR_ENCODING_NONE);
+ if (input == NULL)
+ return (NULL);
+ ctxt = xmlNewParserCtxt();
+ if (ctxt == NULL) {
+ xmlFreeParserInputBuffer(input);
+ return (NULL);
+ }
+ stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
+ if (stream == NULL) {
+ xmlFreeParserInputBuffer(input);
+ xmlFreeParserCtxt(ctxt);
+ return (NULL);
+ }
+ inputPush(ctxt, stream);
+ return (htmlDoRead(ctxt, URL, encoding, options, 0));
+}
+
+/**
+ * htmlReadIO:
+ * @ioread: an I/O read function
+ * @ioclose: an I/O close function
+ * @ioctx: an I/O handler
+ * @URL: the base URL to use for the document
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ *
+ * parse an HTML document from I/O functions and source and build a tree.
+ *
+ * Returns the resulting document tree
+ */
+htmlDocPtr
+htmlReadIO(xmlInputReadCallback ioread, xmlInputCloseCallback ioclose,
+ void *ioctx, const char *URL, const char *encoding, int options)
+{
+ htmlParserCtxtPtr ctxt;
+ xmlParserInputBufferPtr input;
+ xmlParserInputPtr stream;
+
+ if (ioread == NULL)
+ return (NULL);
+ xmlInitParser();
+
+ input = xmlParserInputBufferCreateIO(ioread, ioclose, ioctx,
+ XML_CHAR_ENCODING_NONE);
+ if (input == NULL) {
+ if (ioclose != NULL)
+ ioclose(ioctx);
+ return (NULL);
+ }
+ ctxt = htmlNewParserCtxt();
+ if (ctxt == NULL) {
+ xmlFreeParserInputBuffer(input);
+ return (NULL);
+ }
+ stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
+ if (stream == NULL) {
+ xmlFreeParserInputBuffer(input);
+ xmlFreeParserCtxt(ctxt);
+ return (NULL);
+ }
+ inputPush(ctxt, stream);
+ return (htmlDoRead(ctxt, URL, encoding, options, 0));
+}
+
+/**
+ * htmlCtxtReadDoc:
+ * @ctxt: an HTML parser context
+ * @cur: a pointer to a zero terminated string
+ * @URL: the base URL to use for the document
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ *
+ * parse an XML in-memory document and build a tree.
+ * This reuses the existing @ctxt parser context
+ *
+ * Returns the resulting document tree
+ */
+htmlDocPtr
+htmlCtxtReadDoc(htmlParserCtxtPtr ctxt, const xmlChar * cur,
+ const char *URL, const char *encoding, int options)
+{
+ xmlParserInputPtr stream;
+
+ if (cur == NULL)
+ return (NULL);
+ if (ctxt == NULL)
+ return (NULL);
+ xmlInitParser();
+
+ htmlCtxtReset(ctxt);
+
+ stream = xmlNewStringInputStream(ctxt, cur);
+ if (stream == NULL) {
+ return (NULL);
+ }
+ inputPush(ctxt, stream);
+ return (htmlDoRead(ctxt, URL, encoding, options, 1));
+}
+
+/**
+ * htmlCtxtReadFile:
+ * @ctxt: an HTML parser context
+ * @filename: a file or URL
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ *
+ * parse an XML file from the filesystem or the network.
+ * This reuses the existing @ctxt parser context
+ *
+ * Returns the resulting document tree
+ */
+htmlDocPtr
+htmlCtxtReadFile(htmlParserCtxtPtr ctxt, const char *filename,
+ const char *encoding, int options)
+{
+ xmlParserInputPtr stream;
+
+ if (filename == NULL)
+ return (NULL);
+ if (ctxt == NULL)
+ return (NULL);
+ xmlInitParser();
+
+ htmlCtxtReset(ctxt);
+
+ stream = xmlLoadExternalEntity(filename, NULL, ctxt);
+ if (stream == NULL) {
+ return (NULL);
+ }
+ inputPush(ctxt, stream);
+ return (htmlDoRead(ctxt, NULL, encoding, options, 1));
+}
+
+/**
+ * htmlCtxtReadMemory:
+ * @ctxt: an HTML parser context
+ * @buffer: a pointer to a char array
+ * @size: the size of the array
+ * @URL: the base URL to use for the document
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ *
+ * parse an XML in-memory document and build a tree.
+ * This reuses the existing @ctxt parser context
+ *
+ * Returns the resulting document tree
+ */
+htmlDocPtr
+htmlCtxtReadMemory(htmlParserCtxtPtr ctxt, const char *buffer, int size,
+ const char *URL, const char *encoding, int options)
+{
+ xmlParserInputBufferPtr input;
+ xmlParserInputPtr stream;
+
+ if (ctxt == NULL)
+ return (NULL);
+ if (buffer == NULL)
+ return (NULL);
+ xmlInitParser();
+
+ htmlCtxtReset(ctxt);
+
+ input = xmlParserInputBufferCreateMem(buffer, size, XML_CHAR_ENCODING_NONE);
+ if (input == NULL) {
+ return(NULL);
+ }
+
+ stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
+ if (stream == NULL) {
+ xmlFreeParserInputBuffer(input);
+ return(NULL);
+ }
+
+ inputPush(ctxt, stream);
+ return (htmlDoRead(ctxt, URL, encoding, options, 1));
+}
+
+/**
+ * htmlCtxtReadFd:
+ * @ctxt: an HTML parser context
+ * @fd: an open file descriptor
+ * @URL: the base URL to use for the document
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ *
+ * parse an XML from a file descriptor and build a tree.
+ * This reuses the existing @ctxt parser context
+ *
+ * Returns the resulting document tree
+ */
+htmlDocPtr
+htmlCtxtReadFd(htmlParserCtxtPtr ctxt, int fd,
+ const char *URL, const char *encoding, int options)
+{
+ xmlParserInputBufferPtr input;
+ xmlParserInputPtr stream;
+
+ if (fd < 0)
+ return (NULL);
+ if (ctxt == NULL)
+ return (NULL);
+ xmlInitParser();
+
+ htmlCtxtReset(ctxt);
+
+
+ input = xmlParserInputBufferCreateFd(fd, XML_CHAR_ENCODING_NONE);
+ if (input == NULL)
+ return (NULL);
+ stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
+ if (stream == NULL) {
+ xmlFreeParserInputBuffer(input);
+ return (NULL);
+ }
+ inputPush(ctxt, stream);
+ return (htmlDoRead(ctxt, URL, encoding, options, 1));
+}
+
+/**
+ * htmlCtxtReadIO:
+ * @ctxt: an HTML parser context
+ * @ioread: an I/O read function
+ * @ioclose: an I/O close function
+ * @ioctx: an I/O handler
+ * @URL: the base URL to use for the document
+ * @encoding: the document encoding, or NULL
+ * @options: a combination of htmlParserOption(s)
+ *
+ * parse an HTML document from I/O functions and source and build a tree.
+ * This reuses the existing @ctxt parser context
+ *
+ * Returns the resulting document tree
+ */
+htmlDocPtr
+htmlCtxtReadIO(htmlParserCtxtPtr ctxt, xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose, void *ioctx,
+ const char *URL,
+ const char *encoding, int options)
+{
+ xmlParserInputBufferPtr input;
+ xmlParserInputPtr stream;
+
+ if (ioread == NULL)
+ return (NULL);
+ if (ctxt == NULL)
+ return (NULL);
+ xmlInitParser();
+
+ htmlCtxtReset(ctxt);
+
+ input = xmlParserInputBufferCreateIO(ioread, ioclose, ioctx,
+ XML_CHAR_ENCODING_NONE);
+ if (input == NULL) {
+ if (ioclose != NULL)
+ ioclose(ioctx);
+ return (NULL);
+ }
+ stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
+ if (stream == NULL) {
+ xmlFreeParserInputBuffer(input);
+ return (NULL);
+ }
+ inputPush(ctxt, stream);
+ return (htmlDoRead(ctxt, URL, encoding, options, 1));
+}
+
+#define bottom_HTMLparser
+#include "elfgcchack.h"
+#endif /* LIBXML_HTML_ENABLED */
diff --git a/libxml2-2.9.10/HTMLtree.c b/libxml2-2.9.10/HTMLtree.c
new file mode 100644
index 0000000..db63b37
--- /dev/null
+++ b/libxml2-2.9.10/HTMLtree.c
@@ -0,0 +1,1247 @@
+/*
+ * HTMLtree.c : implementation of access function for an HTML tree.
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel@veillard.com
+ */
+
+
+#define IN_LIBXML
+#include "libxml.h"
+#ifdef LIBXML_HTML_ENABLED
+
+#include <string.h> /* for memset() only ! */
+
+#ifdef HAVE_CTYPE_H
+#include <ctype.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include <libxml/xmlmemory.h>
+#include <libxml/HTMLparser.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/entities.h>
+#include <libxml/valid.h>
+#include <libxml/xmlerror.h>
+#include <libxml/parserInternals.h>
+#include <libxml/globals.h>
+#include <libxml/uri.h>
+
+#include "buf.h"
+
+/************************************************************************
+ * *
+ * Getting/Setting encoding meta tags *
+ * *
+ ************************************************************************/
+
+/**
+ * htmlGetMetaEncoding:
+ * @doc: the document
+ *
+ * Encoding definition lookup in the Meta tags
+ *
+ * Returns the current encoding as flagged in the HTML source
+ */
+const xmlChar *
+htmlGetMetaEncoding(htmlDocPtr doc) {
+ htmlNodePtr cur;
+ const xmlChar *content;
+ const xmlChar *encoding;
+
+ if (doc == NULL)
+ return(NULL);
+ cur = doc->children;
+
+ /*
+ * Search the html
+ */
+ while (cur != NULL) {
+ if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
+ if (xmlStrEqual(cur->name, BAD_CAST"html"))
+ break;
+ if (xmlStrEqual(cur->name, BAD_CAST"head"))
+ goto found_head;
+ if (xmlStrEqual(cur->name, BAD_CAST"meta"))
+ goto found_meta;
+ }
+ cur = cur->next;
+ }
+ if (cur == NULL)
+ return(NULL);
+ cur = cur->children;
+
+ /*
+ * Search the head
+ */
+ while (cur != NULL) {
+ if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
+ if (xmlStrEqual(cur->name, BAD_CAST"head"))
+ break;
+ if (xmlStrEqual(cur->name, BAD_CAST"meta"))
+ goto found_meta;
+ }
+ cur = cur->next;
+ }
+ if (cur == NULL)
+ return(NULL);
+found_head:
+ cur = cur->children;
+
+ /*
+ * Search the meta elements
+ */
+found_meta:
+ while (cur != NULL) {
+ if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
+ if (xmlStrEqual(cur->name, BAD_CAST"meta")) {
+ xmlAttrPtr attr = cur->properties;
+ int http;
+ const xmlChar *value;
+
+ content = NULL;
+ http = 0;
+ while (attr != NULL) {
+ if ((attr->children != NULL) &&
+ (attr->children->type == XML_TEXT_NODE) &&
+ (attr->children->next == NULL)) {
+ value = attr->children->content;
+ if ((!xmlStrcasecmp(attr->name, BAD_CAST"http-equiv"))
+ && (!xmlStrcasecmp(value, BAD_CAST"Content-Type")))
+ http = 1;
+ else if ((value != NULL)
+ && (!xmlStrcasecmp(attr->name, BAD_CAST"content")))
+ content = value;
+ if ((http != 0) && (content != NULL))
+ goto found_content;
+ }
+ attr = attr->next;
+ }
+ }
+ }
+ cur = cur->next;
+ }
+ return(NULL);
+
+found_content:
+ encoding = xmlStrstr(content, BAD_CAST"charset=");
+ if (encoding == NULL)
+ encoding = xmlStrstr(content, BAD_CAST"Charset=");
+ if (encoding == NULL)
+ encoding = xmlStrstr(content, BAD_CAST"CHARSET=");
+ if (encoding != NULL) {
+ encoding += 8;
+ } else {
+ encoding = xmlStrstr(content, BAD_CAST"charset =");
+ if (encoding == NULL)
+ encoding = xmlStrstr(content, BAD_CAST"Charset =");
+ if (encoding == NULL)
+ encoding = xmlStrstr(content, BAD_CAST"CHARSET =");
+ if (encoding != NULL)
+ encoding += 9;
+ }
+ if (encoding != NULL) {
+ while ((*encoding == ' ') || (*encoding == '\t')) encoding++;
+ }
+ return(encoding);
+}
+
+/**
+ * htmlSetMetaEncoding:
+ * @doc: the document
+ * @encoding: the encoding string
+ *
+ * Sets the current encoding in the Meta tags
+ * NOTE: this will not change the document content encoding, just
+ * the META flag associated.
+ *
+ * Returns 0 in case of success and -1 in case of error
+ */
+int
+htmlSetMetaEncoding(htmlDocPtr doc, const xmlChar *encoding) {
+ htmlNodePtr cur, meta = NULL, head = NULL;
+ const xmlChar *content = NULL;
+ char newcontent[100];
+
+ newcontent[0] = 0;
+
+ if (doc == NULL)
+ return(-1);
+
+ /* html isn't a real encoding it's just libxml2 way to get entities */
+ if (!xmlStrcasecmp(encoding, BAD_CAST "html"))
+ return(-1);
+
+ if (encoding != NULL) {
+ snprintf(newcontent, sizeof(newcontent), "text/html; charset=%s",
+ (char *)encoding);
+ newcontent[sizeof(newcontent) - 1] = 0;
+ }
+
+ cur = doc->children;
+
+ /*
+ * Search the html
+ */
+ while (cur != NULL) {
+ if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
+ if (xmlStrcasecmp(cur->name, BAD_CAST"html") == 0)
+ break;
+ if (xmlStrcasecmp(cur->name, BAD_CAST"head") == 0)
+ goto found_head;
+ if (xmlStrcasecmp(cur->name, BAD_CAST"meta") == 0)
+ goto found_meta;
+ }
+ cur = cur->next;
+ }
+ if (cur == NULL)
+ return(-1);
+ cur = cur->children;
+
+ /*
+ * Search the head
+ */
+ while (cur != NULL) {
+ if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
+ if (xmlStrcasecmp(cur->name, BAD_CAST"head") == 0)
+ break;
+ if (xmlStrcasecmp(cur->name, BAD_CAST"meta") == 0) {
+ head = cur->parent;
+ goto found_meta;
+ }
+ }
+ cur = cur->next;
+ }
+ if (cur == NULL)
+ return(-1);
+found_head:
+ head = cur;
+ if (cur->children == NULL)
+ goto create;
+ cur = cur->children;
+
+found_meta:
+ /*
+ * Search and update all the remaining the meta elements carrying
+ * encoding informations
+ */
+ while (cur != NULL) {
+ if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
+ if (xmlStrcasecmp(cur->name, BAD_CAST"meta") == 0) {
+ xmlAttrPtr attr = cur->properties;
+ int http;
+ const xmlChar *value;
+
+ content = NULL;
+ http = 0;
+ while (attr != NULL) {
+ if ((attr->children != NULL) &&
+ (attr->children->type == XML_TEXT_NODE) &&
+ (attr->children->next == NULL)) {
+ value = attr->children->content;
+ if ((!xmlStrcasecmp(attr->name, BAD_CAST"http-equiv"))
+ && (!xmlStrcasecmp(value, BAD_CAST"Content-Type")))
+ http = 1;
+ else
+ {
+ if ((value != NULL) &&
+ (!xmlStrcasecmp(attr->name, BAD_CAST"content")))
+ content = value;
+ }
+ if ((http != 0) && (content != NULL))
+ break;
+ }
+ attr = attr->next;
+ }
+ if ((http != 0) && (content != NULL)) {
+ meta = cur;
+ break;
+ }
+
+ }
+ }
+ cur = cur->next;
+ }
+create:
+ if (meta == NULL) {
+ if ((encoding != NULL) && (head != NULL)) {
+ /*
+ * Create a new Meta element with the right attributes
+ */
+
+ meta = xmlNewDocNode(doc, NULL, BAD_CAST"meta", NULL);
+ if (head->children == NULL)
+ xmlAddChild(head, meta);
+ else
+ xmlAddPrevSibling(head->children, meta);
+ xmlNewProp(meta, BAD_CAST"http-equiv", BAD_CAST"Content-Type");
+ xmlNewProp(meta, BAD_CAST"content", BAD_CAST newcontent);
+ }
+ } else {
+ /* remove the meta tag if NULL is passed */
+ if (encoding == NULL) {
+ xmlUnlinkNode(meta);
+ xmlFreeNode(meta);
+ }
+ /* change the document only if there is a real encoding change */
+ else if (xmlStrcasestr(content, encoding) == NULL) {
+ xmlSetProp(meta, BAD_CAST"content", BAD_CAST newcontent);
+ }
+ }
+
+
+ return(0);
+}
+
+/**
+ * booleanHTMLAttrs:
+ *
+ * These are the HTML attributes which will be output
+ * in minimized form, i.e. <option selected="selected"> will be
+ * output as <option selected>, as per XSLT 1.0 16.2 "HTML Output Method"
+ *
+ */
+static const char* htmlBooleanAttrs[] = {
+ "checked", "compact", "declare", "defer", "disabled", "ismap",
+ "multiple", "nohref", "noresize", "noshade", "nowrap", "readonly",
+ "selected", NULL
+};
+
+
+/**
+ * htmlIsBooleanAttr:
+ * @name: the name of the attribute to check
+ *
+ * Determine if a given attribute is a boolean attribute.
+ *
+ * returns: false if the attribute is not boolean, true otherwise.
+ */
+int
+htmlIsBooleanAttr(const xmlChar *name)
+{
+ int i = 0;
+
+ while (htmlBooleanAttrs[i] != NULL) {
+ if (xmlStrcasecmp((const xmlChar *)htmlBooleanAttrs[i], name) == 0)
+ return 1;
+ i++;
+ }
+ return 0;
+}
+
+#ifdef LIBXML_OUTPUT_ENABLED
+/*
+ * private routine exported from xmlIO.c
+ */
+xmlOutputBufferPtr
+xmlAllocOutputBufferInternal(xmlCharEncodingHandlerPtr encoder);
+/************************************************************************
+ * *
+ * Output error handlers *
+ * *
+ ************************************************************************/
+/**
+ * htmlSaveErrMemory:
+ * @extra: extra informations
+ *
+ * Handle an out of memory condition
+ */
+static void
+htmlSaveErrMemory(const char *extra)
+{
+ __xmlSimpleError(XML_FROM_OUTPUT, XML_ERR_NO_MEMORY, NULL, NULL, extra);
+}
+
+/**
+ * htmlSaveErr:
+ * @code: the error number
+ * @node: the location of the error.
+ * @extra: extra informations
+ *
+ * Handle an out of memory condition
+ */
+static void
+htmlSaveErr(int code, xmlNodePtr node, const char *extra)
+{
+ const char *msg = NULL;
+
+ switch(code) {
+ case XML_SAVE_NOT_UTF8:
+ msg = "string is not in UTF-8\n";
+ break;
+ case XML_SAVE_CHAR_INVALID:
+ msg = "invalid character value\n";
+ break;
+ case XML_SAVE_UNKNOWN_ENCODING:
+ msg = "unknown encoding %s\n";
+ break;
+ case XML_SAVE_NO_DOCTYPE:
+ msg = "HTML has no DOCTYPE\n";
+ break;
+ default:
+ msg = "unexpected error number\n";
+ }
+ __xmlSimpleError(XML_FROM_OUTPUT, code, node, msg, extra);
+}
+
+/************************************************************************
+ * *
+ * Dumping HTML tree content to a simple buffer *
+ * *
+ ************************************************************************/
+
+/**
+ * htmlBufNodeDumpFormat:
+ * @buf: the xmlBufPtr output
+ * @doc: the document
+ * @cur: the current node
+ * @format: should formatting spaces been added
+ *
+ * Dump an HTML node, recursive behaviour,children are printed too.
+ *
+ * Returns the number of byte written or -1 in case of error
+ */
+static size_t
+htmlBufNodeDumpFormat(xmlBufPtr buf, xmlDocPtr doc, xmlNodePtr cur,
+ int format) {
+ size_t use;
+ int ret;
+ xmlOutputBufferPtr outbuf;
+
+ if (cur == NULL) {
+ return (-1);
+ }
+ if (buf == NULL) {
+ return (-1);
+ }
+ outbuf = (xmlOutputBufferPtr) xmlMalloc(sizeof(xmlOutputBuffer));
+ if (outbuf == NULL) {
+ htmlSaveErrMemory("allocating HTML output buffer");
+ return (-1);
+ }
+ memset(outbuf, 0, (size_t) sizeof(xmlOutputBuffer));
+ outbuf->buffer = buf;
+ outbuf->encoder = NULL;
+ outbuf->writecallback = NULL;
+ outbuf->closecallback = NULL;
+ outbuf->context = NULL;
+ outbuf->written = 0;
+
+ use = xmlBufUse(buf);
+ htmlNodeDumpFormatOutput(outbuf, doc, cur, NULL, format);
+ xmlFree(outbuf);
+ ret = xmlBufUse(buf) - use;
+ return (ret);
+}
+
+/**
+ * htmlNodeDump:
+ * @buf: the HTML buffer output
+ * @doc: the document
+ * @cur: the current node
+ *
+ * Dump an HTML node, recursive behaviour,children are printed too,
+ * and formatting returns are added.
+ *
+ * Returns the number of byte written or -1 in case of error
+ */
+int
+htmlNodeDump(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur) {
+ xmlBufPtr buffer;
+ size_t ret;
+
+ if ((buf == NULL) || (cur == NULL))
+ return(-1);
+
+ xmlInitParser();
+ buffer = xmlBufFromBuffer(buf);
+ if (buffer == NULL)
+ return(-1);
+
+ ret = htmlBufNodeDumpFormat(buffer, doc, cur, 1);
+
+ xmlBufBackToBuffer(buffer);
+
+ if (ret > INT_MAX)
+ return(-1);
+ return((int) ret);
+}
+
+/**
+ * htmlNodeDumpFileFormat:
+ * @out: the FILE pointer
+ * @doc: the document
+ * @cur: the current node
+ * @encoding: the document encoding
+ * @format: should formatting spaces been added
+ *
+ * Dump an HTML node, recursive behaviour,children are printed too.
+ *
+ * TODO: if encoding == NULL try to save in the doc encoding
+ *
+ * returns: the number of byte written or -1 in case of failure.
+ */
+int
+htmlNodeDumpFileFormat(FILE *out, xmlDocPtr doc,
+ xmlNodePtr cur, const char *encoding, int format) {
+ xmlOutputBufferPtr buf;
+ xmlCharEncodingHandlerPtr handler = NULL;
+ int ret;
+
+ xmlInitParser();
+
+ if (encoding != NULL) {
+ xmlCharEncoding enc;
+
+ enc = xmlParseCharEncoding(encoding);
+ if (enc != XML_CHAR_ENCODING_UTF8) {
+ handler = xmlFindCharEncodingHandler(encoding);
+ if (handler == NULL)
+ htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
+ }
+ } else {
+ /*
+ * Fallback to HTML or ASCII when the encoding is unspecified
+ */
+ if (handler == NULL)
+ handler = xmlFindCharEncodingHandler("HTML");
+ if (handler == NULL)
+ handler = xmlFindCharEncodingHandler("ascii");
+ }
+
+ /*
+ * save the content to a temp buffer.
+ */
+ buf = xmlOutputBufferCreateFile(out, handler);
+ if (buf == NULL) return(0);
+
+ htmlNodeDumpFormatOutput(buf, doc, cur, encoding, format);
+
+ ret = xmlOutputBufferClose(buf);
+ return(ret);
+}
+
+/**
+ * htmlNodeDumpFile:
+ * @out: the FILE pointer
+ * @doc: the document
+ * @cur: the current node
+ *
+ * Dump an HTML node, recursive behaviour,children are printed too,
+ * and formatting returns are added.
+ */
+void
+htmlNodeDumpFile(FILE *out, xmlDocPtr doc, xmlNodePtr cur) {
+ htmlNodeDumpFileFormat(out, doc, cur, NULL, 1);
+}
+
+/**
+ * htmlDocDumpMemoryFormat:
+ * @cur: the document
+ * @mem: OUT: the memory pointer
+ * @size: OUT: the memory length
+ * @format: should formatting spaces been added
+ *
+ * Dump an HTML document in memory and return the xmlChar * and it's size.
+ * It's up to the caller to free the memory.
+ */
+void
+htmlDocDumpMemoryFormat(xmlDocPtr cur, xmlChar**mem, int *size, int format) {
+ xmlOutputBufferPtr buf;
+ xmlCharEncodingHandlerPtr handler = NULL;
+ const char *encoding;
+
+ xmlInitParser();
+
+ if ((mem == NULL) || (size == NULL))
+ return;
+ if (cur == NULL) {
+ *mem = NULL;
+ *size = 0;
+ return;
+ }
+
+ encoding = (const char *) htmlGetMetaEncoding(cur);
+
+ if (encoding != NULL) {
+ xmlCharEncoding enc;
+
+ enc = xmlParseCharEncoding(encoding);
+ if (enc != XML_CHAR_ENCODING_UTF8) {
+ handler = xmlFindCharEncodingHandler(encoding);
+ if (handler == NULL)
+ htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
+
+ }
+ } else {
+ /*
+ * Fallback to HTML or ASCII when the encoding is unspecified
+ */
+ if (handler == NULL)
+ handler = xmlFindCharEncodingHandler("HTML");
+ if (handler == NULL)
+ handler = xmlFindCharEncodingHandler("ascii");
+ }
+
+ buf = xmlAllocOutputBufferInternal(handler);
+ if (buf == NULL) {
+ *mem = NULL;
+ *size = 0;
+ return;
+ }
+
+ htmlDocContentDumpFormatOutput(buf, cur, NULL, format);
+
+ xmlOutputBufferFlush(buf);
+ if (buf->conv != NULL) {
+ *size = xmlBufUse(buf->conv);
+ *mem = xmlStrndup(xmlBufContent(buf->conv), *size);
+ } else {
+ *size = xmlBufUse(buf->buffer);
+ *mem = xmlStrndup(xmlBufContent(buf->buffer), *size);
+ }
+ (void)xmlOutputBufferClose(buf);
+}
+
+/**
+ * htmlDocDumpMemory:
+ * @cur: the document
+ * @mem: OUT: the memory pointer
+ * @size: OUT: the memory length
+ *
+ * Dump an HTML document in memory and return the xmlChar * and it's size.
+ * It's up to the caller to free the memory.
+ */
+void
+htmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int *size) {
+ htmlDocDumpMemoryFormat(cur, mem, size, 1);
+}
+
+
+/************************************************************************
+ * *
+ * Dumping HTML tree content to an I/O output buffer *
+ * *
+ ************************************************************************/
+
+void xmlNsListDumpOutput(xmlOutputBufferPtr buf, xmlNsPtr cur);
+
+/**
+ * htmlDtdDumpOutput:
+ * @buf: the HTML buffer output
+ * @doc: the document
+ * @encoding: the encoding string
+ *
+ * TODO: check whether encoding is needed
+ *
+ * Dump the HTML document DTD, if any.
+ */
+static void
+htmlDtdDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
+ const char *encoding ATTRIBUTE_UNUSED) {
+ xmlDtdPtr cur = doc->intSubset;
+
+ if (cur == NULL) {
+ htmlSaveErr(XML_SAVE_NO_DOCTYPE, (xmlNodePtr) doc, NULL);
+ return;
+ }
+ xmlOutputBufferWriteString(buf, "<!DOCTYPE ");
+ xmlOutputBufferWriteString(buf, (const char *)cur->name);
+ if (cur->ExternalID != NULL) {
+ xmlOutputBufferWriteString(buf, " PUBLIC ");
+ xmlBufWriteQuotedString(buf->buffer, cur->ExternalID);
+ if (cur->SystemID != NULL) {
+ xmlOutputBufferWriteString(buf, " ");
+ xmlBufWriteQuotedString(buf->buffer, cur->SystemID);
+ }
+ } else if (cur->SystemID != NULL &&
+ xmlStrcmp(cur->SystemID, BAD_CAST "about:legacy-compat")) {
+ xmlOutputBufferWriteString(buf, " SYSTEM ");
+ xmlBufWriteQuotedString(buf->buffer, cur->SystemID);
+ }
+ xmlOutputBufferWriteString(buf, ">\n");
+}
+
+/**
+ * htmlAttrDumpOutput:
+ * @buf: the HTML buffer output
+ * @doc: the document
+ * @cur: the attribute pointer
+ * @encoding: the encoding string
+ *
+ * Dump an HTML attribute
+ */
+static void
+htmlAttrDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur,
+ const char *encoding ATTRIBUTE_UNUSED) {
+ xmlChar *value;
+
+ /*
+ * The html output method should not escape a & character
+ * occurring in an attribute value immediately followed by
+ * a { character (see Section B.7.1 of the HTML 4.0 Recommendation).
+ * This is implemented in xmlEncodeEntitiesReentrant
+ */
+
+ if (cur == NULL) {
+ return;
+ }
+ xmlOutputBufferWriteString(buf, " ");
+ if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
+ xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
+ xmlOutputBufferWriteString(buf, ":");
+ }
+ xmlOutputBufferWriteString(buf, (const char *)cur->name);
+ if ((cur->children != NULL) && (!htmlIsBooleanAttr(cur->name))) {
+ value = xmlNodeListGetString(doc, cur->children, 0);
+ if (value) {
+ xmlOutputBufferWriteString(buf, "=");
+ if ((cur->ns == NULL) && (cur->parent != NULL) &&
+ (cur->parent->ns == NULL) &&
+ ((!xmlStrcasecmp(cur->name, BAD_CAST "href")) ||
+ (!xmlStrcasecmp(cur->name, BAD_CAST "action")) ||
+ (!xmlStrcasecmp(cur->name, BAD_CAST "src")) ||
+ ((!xmlStrcasecmp(cur->name, BAD_CAST "name")) &&
+ (!xmlStrcasecmp(cur->parent->name, BAD_CAST "a"))))) {
+ xmlChar *tmp = value;
+ /* xmlURIEscapeStr() escapes '"' so it can be safely used. */
+ xmlBufCCat(buf->buffer, "\"");
+
+ while (IS_BLANK_CH(*tmp)) tmp++;
+
+ /* URI Escape everything, except server side includes. */
+ for ( ; ; ) {
+ xmlChar *escaped;
+ xmlChar endChar;
+ xmlChar *end = NULL;
+ xmlChar *start = (xmlChar *)xmlStrstr(tmp, BAD_CAST "<!--");
+ if (start != NULL) {
+ end = (xmlChar *)xmlStrstr(tmp, BAD_CAST "-->");
+ if (end != NULL) {
+ *start = '\0';
+ }
+ }
+
+ /* Escape the whole string, or until start (set to '\0'). */
+ escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+");
+ if (escaped != NULL) {
+ xmlBufCat(buf->buffer, escaped);
+ xmlFree(escaped);
+ } else {
+ xmlBufCat(buf->buffer, tmp);
+ }
+
+ if (end == NULL) { /* Everything has been written. */
+ break;
+ }
+
+ /* Do not escape anything within server side includes. */
+ *start = '<'; /* Restore the first character of "<!--". */
+ end += 3; /* strlen("-->") */
+ endChar = *end;
+ *end = '\0';
+ xmlBufCat(buf->buffer, start);
+ *end = endChar;
+ tmp = end;
+ }
+
+ xmlBufCCat(buf->buffer, "\"");
+ } else {
+ xmlBufWriteQuotedString(buf->buffer, value);
+ }
+ xmlFree(value);
+ } else {
+ xmlOutputBufferWriteString(buf, "=\"\"");
+ }
+ }
+}
+
+/**
+ * htmlAttrListDumpOutput:
+ * @buf: the HTML buffer output
+ * @doc: the document
+ * @cur: the first attribute pointer
+ * @encoding: the encoding string
+ *
+ * Dump a list of HTML attributes
+ */
+static void
+htmlAttrListDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur, const char *encoding) {
+ if (cur == NULL) {
+ return;
+ }
+ while (cur != NULL) {
+ htmlAttrDumpOutput(buf, doc, cur, encoding);
+ cur = cur->next;
+ }
+}
+
+
+
+/**
+ * htmlNodeListDumpOutput:
+ * @buf: the HTML buffer output
+ * @doc: the document
+ * @cur: the first node
+ * @encoding: the encoding string
+ * @format: should formatting spaces been added
+ *
+ * Dump an HTML node list, recursive behaviour,children are printed too.
+ */
+static void
+htmlNodeListDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
+ xmlNodePtr cur, const char *encoding, int format) {
+ if (cur == NULL) {
+ return;
+ }
+ while (cur != NULL) {
+ htmlNodeDumpFormatOutput(buf, doc, cur, encoding, format);
+ cur = cur->next;
+ }
+}
+
+/**
+ * htmlNodeDumpFormatOutput:
+ * @buf: the HTML buffer output
+ * @doc: the document
+ * @cur: the current node
+ * @encoding: the encoding string
+ * @format: should formatting spaces been added
+ *
+ * Dump an HTML node, recursive behaviour,children are printed too.
+ */
+void
+htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
+ xmlNodePtr cur, const char *encoding, int format) {
+ const htmlElemDesc * info;
+
+ xmlInitParser();
+
+ if ((cur == NULL) || (buf == NULL)) {
+ return;
+ }
+ /*
+ * Special cases.
+ */
+ if (cur->type == XML_DTD_NODE)
+ return;
+ if ((cur->type == XML_HTML_DOCUMENT_NODE) ||
+ (cur->type == XML_DOCUMENT_NODE)){
+ htmlDocContentDumpOutput(buf, (xmlDocPtr) cur, encoding);
+ return;
+ }
+ if (cur->type == XML_ATTRIBUTE_NODE) {
+ htmlAttrDumpOutput(buf, doc, (xmlAttrPtr) cur, encoding);
+ return;
+ }
+ if (cur->type == HTML_TEXT_NODE) {
+ if (cur->content != NULL) {
+ if (((cur->name == (const xmlChar *)xmlStringText) ||
+ (cur->name != (const xmlChar *)xmlStringTextNoenc)) &&
+ ((cur->parent == NULL) ||
+ ((xmlStrcasecmp(cur->parent->name, BAD_CAST "script")) &&
+ (xmlStrcasecmp(cur->parent->name, BAD_CAST "style"))))) {
+ xmlChar *buffer;
+
+ buffer = xmlEncodeEntitiesReentrant(doc, cur->content);
+ if (buffer != NULL) {
+ xmlOutputBufferWriteString(buf, (const char *)buffer);
+ xmlFree(buffer);
+ }
+ } else {
+ xmlOutputBufferWriteString(buf, (const char *)cur->content);
+ }
+ }
+ return;
+ }
+ if (cur->type == HTML_COMMENT_NODE) {
+ if (cur->content != NULL) {
+ xmlOutputBufferWriteString(buf, "<!--");
+ xmlOutputBufferWriteString(buf, (const char *)cur->content);
+ xmlOutputBufferWriteString(buf, "-->");
+ }
+ return;
+ }
+ if (cur->type == HTML_PI_NODE) {
+ if (cur->name == NULL)
+ return;
+ xmlOutputBufferWriteString(buf, "<?");
+ xmlOutputBufferWriteString(buf, (const char *)cur->name);
+ if (cur->content != NULL) {
+ xmlOutputBufferWriteString(buf, " ");
+ xmlOutputBufferWriteString(buf, (const char *)cur->content);
+ }
+ xmlOutputBufferWriteString(buf, ">");
+ return;
+ }
+ if (cur->type == HTML_ENTITY_REF_NODE) {
+ xmlOutputBufferWriteString(buf, "&");
+ xmlOutputBufferWriteString(buf, (const char *)cur->name);
+ xmlOutputBufferWriteString(buf, ";");
+ return;
+ }
+ if (cur->type == HTML_PRESERVE_NODE) {
+ if (cur->content != NULL) {
+ xmlOutputBufferWriteString(buf, (const char *)cur->content);
+ }
+ return;
+ }
+
+ /*
+ * Get specific HTML info for that node.
+ */
+ if (cur->ns == NULL)
+ info = htmlTagLookup(cur->name);
+ else
+ info = NULL;
+
+ xmlOutputBufferWriteString(buf, "<");
+ if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
+ xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
+ xmlOutputBufferWriteString(buf, ":");
+ }
+ xmlOutputBufferWriteString(buf, (const char *)cur->name);
+ if (cur->nsDef)
+ xmlNsListDumpOutput(buf, cur->nsDef);
+ if (cur->properties != NULL)
+ htmlAttrListDumpOutput(buf, doc, cur->properties, encoding);
+
+ if ((info != NULL) && (info->empty)) {
+ xmlOutputBufferWriteString(buf, ">");
+ if ((format) && (!info->isinline) && (cur->next != NULL)) {
+ if ((cur->next->type != HTML_TEXT_NODE) &&
+ (cur->next->type != HTML_ENTITY_REF_NODE) &&
+ (cur->parent != NULL) &&
+ (cur->parent->name != NULL) &&
+ (cur->parent->name[0] != 'p')) /* p, pre, param */
+ xmlOutputBufferWriteString(buf, "\n");
+ }
+ return;
+ }
+ if (((cur->type == XML_ELEMENT_NODE) || (cur->content == NULL)) &&
+ (cur->children == NULL)) {
+ if ((info != NULL) && (info->saveEndTag != 0) &&
+ (xmlStrcmp(BAD_CAST info->name, BAD_CAST "html")) &&
+ (xmlStrcmp(BAD_CAST info->name, BAD_CAST "body"))) {
+ xmlOutputBufferWriteString(buf, ">");
+ } else {
+ xmlOutputBufferWriteString(buf, "></");
+ if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
+ xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
+ xmlOutputBufferWriteString(buf, ":");
+ }
+ xmlOutputBufferWriteString(buf, (const char *)cur->name);
+ xmlOutputBufferWriteString(buf, ">");
+ }
+ if ((format) && (cur->next != NULL) &&
+ (info != NULL) && (!info->isinline)) {
+ if ((cur->next->type != HTML_TEXT_NODE) &&
+ (cur->next->type != HTML_ENTITY_REF_NODE) &&
+ (cur->parent != NULL) &&
+ (cur->parent->name != NULL) &&
+ (cur->parent->name[0] != 'p')) /* p, pre, param */
+ xmlOutputBufferWriteString(buf, "\n");
+ }
+ return;
+ }
+ xmlOutputBufferWriteString(buf, ">");
+ if ((cur->type != XML_ELEMENT_NODE) &&
+ (cur->content != NULL)) {
+ /*
+ * Uses the OutputBuffer property to automatically convert
+ * invalids to charrefs
+ */
+
+ xmlOutputBufferWriteString(buf, (const char *) cur->content);
+ }
+ if (cur->children != NULL) {
+ if ((format) && (info != NULL) && (!info->isinline) &&
+ (cur->children->type != HTML_TEXT_NODE) &&
+ (cur->children->type != HTML_ENTITY_REF_NODE) &&
+ (cur->children != cur->last) &&
+ (cur->name != NULL) &&
+ (cur->name[0] != 'p')) /* p, pre, param */
+ xmlOutputBufferWriteString(buf, "\n");
+ htmlNodeListDumpOutput(buf, doc, cur->children, encoding, format);
+ if ((format) && (info != NULL) && (!info->isinline) &&
+ (cur->last->type != HTML_TEXT_NODE) &&
+ (cur->last->type != HTML_ENTITY_REF_NODE) &&
+ (cur->children != cur->last) &&
+ (cur->name != NULL) &&
+ (cur->name[0] != 'p')) /* p, pre, param */
+ xmlOutputBufferWriteString(buf, "\n");
+ }
+ xmlOutputBufferWriteString(buf, "</");
+ if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
+ xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
+ xmlOutputBufferWriteString(buf, ":");
+ }
+ xmlOutputBufferWriteString(buf, (const char *)cur->name);
+ xmlOutputBufferWriteString(buf, ">");
+ if ((format) && (info != NULL) && (!info->isinline) &&
+ (cur->next != NULL)) {
+ if ((cur->next->type != HTML_TEXT_NODE) &&
+ (cur->next->type != HTML_ENTITY_REF_NODE) &&
+ (cur->parent != NULL) &&
+ (cur->parent->name != NULL) &&
+ (cur->parent->name[0] != 'p')) /* p, pre, param */
+ xmlOutputBufferWriteString(buf, "\n");
+ }
+}
+
+/**
+ * htmlNodeDumpOutput:
+ * @buf: the HTML buffer output
+ * @doc: the document
+ * @cur: the current node
+ * @encoding: the encoding string
+ *
+ * Dump an HTML node, recursive behaviour,children are printed too,
+ * and formatting returns/spaces are added.
+ */
+void
+htmlNodeDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
+ xmlNodePtr cur, const char *encoding) {
+ htmlNodeDumpFormatOutput(buf, doc, cur, encoding, 1);
+}
+
+/**
+ * htmlDocContentDumpFormatOutput:
+ * @buf: the HTML buffer output
+ * @cur: the document
+ * @encoding: the encoding string
+ * @format: should formatting spaces been added
+ *
+ * Dump an HTML document.
+ */
+void
+htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr cur,
+ const char *encoding, int format) {
+ int type;
+
+ xmlInitParser();
+
+ if ((buf == NULL) || (cur == NULL))
+ return;
+
+ /*
+ * force to output the stuff as HTML, especially for entities
+ */
+ type = cur->type;
+ cur->type = XML_HTML_DOCUMENT_NODE;
+ if (cur->intSubset != NULL) {
+ htmlDtdDumpOutput(buf, cur, NULL);
+ }
+ if (cur->children != NULL) {
+ htmlNodeListDumpOutput(buf, cur, cur->children, encoding, format);
+ }
+ xmlOutputBufferWriteString(buf, "\n");
+ cur->type = (xmlElementType) type;
+}
+
+/**
+ * htmlDocContentDumpOutput:
+ * @buf: the HTML buffer output
+ * @cur: the document
+ * @encoding: the encoding string
+ *
+ * Dump an HTML document. Formatting return/spaces are added.
+ */
+void
+htmlDocContentDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr cur,
+ const char *encoding) {
+ htmlDocContentDumpFormatOutput(buf, cur, encoding, 1);
+}
+
+/************************************************************************
+ * *
+ * Saving functions front-ends *
+ * *
+ ************************************************************************/
+
+/**
+ * htmlDocDump:
+ * @f: the FILE*
+ * @cur: the document
+ *
+ * Dump an HTML document to an open FILE.
+ *
+ * returns: the number of byte written or -1 in case of failure.
+ */
+int
+htmlDocDump(FILE *f, xmlDocPtr cur) {
+ xmlOutputBufferPtr buf;
+ xmlCharEncodingHandlerPtr handler = NULL;
+ const char *encoding;
+ int ret;
+
+ xmlInitParser();
+
+ if ((cur == NULL) || (f == NULL)) {
+ return(-1);
+ }
+
+ encoding = (const char *) htmlGetMetaEncoding(cur);
+
+ if (encoding != NULL) {
+ xmlCharEncoding enc;
+
+ enc = xmlParseCharEncoding(encoding);
+ if (enc != XML_CHAR_ENCODING_UTF8) {
+ handler = xmlFindCharEncodingHandler(encoding);
+ if (handler == NULL)
+ htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
+ }
+ } else {
+ /*
+ * Fallback to HTML or ASCII when the encoding is unspecified
+ */
+ if (handler == NULL)
+ handler = xmlFindCharEncodingHandler("HTML");
+ if (handler == NULL)
+ handler = xmlFindCharEncodingHandler("ascii");
+ }
+
+ buf = xmlOutputBufferCreateFile(f, handler);
+ if (buf == NULL) return(-1);
+ htmlDocContentDumpOutput(buf, cur, NULL);
+
+ ret = xmlOutputBufferClose(buf);
+ return(ret);
+}
+
+/**
+ * htmlSaveFile:
+ * @filename: the filename (or URL)
+ * @cur: the document
+ *
+ * Dump an HTML document to a file. If @filename is "-" the stdout file is
+ * used.
+ * returns: the number of byte written or -1 in case of failure.
+ */
+int
+htmlSaveFile(const char *filename, xmlDocPtr cur) {
+ xmlOutputBufferPtr buf;
+ xmlCharEncodingHandlerPtr handler = NULL;
+ const char *encoding;
+ int ret;
+
+ if ((cur == NULL) || (filename == NULL))
+ return(-1);
+
+ xmlInitParser();
+
+ encoding = (const char *) htmlGetMetaEncoding(cur);
+
+ if (encoding != NULL) {
+ xmlCharEncoding enc;
+
+ enc = xmlParseCharEncoding(encoding);
+ if (enc != XML_CHAR_ENCODING_UTF8) {
+ handler = xmlFindCharEncodingHandler(encoding);
+ if (handler == NULL)
+ htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
+ }
+ } else {
+ /*
+ * Fallback to HTML or ASCII when the encoding is unspecified
+ */
+ if (handler == NULL)
+ handler = xmlFindCharEncodingHandler("HTML");
+ if (handler == NULL)
+ handler = xmlFindCharEncodingHandler("ascii");
+ }
+
+ /*
+ * save the content to a temp buffer.
+ */
+ buf = xmlOutputBufferCreateFilename(filename, handler, cur->compression);
+ if (buf == NULL) return(0);
+
+ htmlDocContentDumpOutput(buf, cur, NULL);
+
+ ret = xmlOutputBufferClose(buf);
+ return(ret);
+}
+
+/**
+ * htmlSaveFileFormat:
+ * @filename: the filename
+ * @cur: the document
+ * @format: should formatting spaces been added
+ * @encoding: the document encoding
+ *
+ * Dump an HTML document to a file using a given encoding.
+ *
+ * returns: the number of byte written or -1 in case of failure.
+ */
+int
+htmlSaveFileFormat(const char *filename, xmlDocPtr cur,
+ const char *encoding, int format) {
+ xmlOutputBufferPtr buf;
+ xmlCharEncodingHandlerPtr handler = NULL;
+ int ret;
+
+ if ((cur == NULL) || (filename == NULL))
+ return(-1);
+
+ xmlInitParser();
+
+ if (encoding != NULL) {
+ xmlCharEncoding enc;
+
+ enc = xmlParseCharEncoding(encoding);
+ if (enc != XML_CHAR_ENCODING_UTF8) {
+ handler = xmlFindCharEncodingHandler(encoding);
+ if (handler == NULL)
+ htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
+ }
+ htmlSetMetaEncoding(cur, (const xmlChar *) encoding);
+ } else {
+ htmlSetMetaEncoding(cur, (const xmlChar *) "UTF-8");
+
+ /*
+ * Fallback to HTML or ASCII when the encoding is unspecified
+ */
+ if (handler == NULL)
+ handler = xmlFindCharEncodingHandler("HTML");
+ if (handler == NULL)
+ handler = xmlFindCharEncodingHandler("ascii");
+ }
+
+ /*
+ * save the content to a temp buffer.
+ */
+ buf = xmlOutputBufferCreateFilename(filename, handler, 0);
+ if (buf == NULL) return(0);
+
+ htmlDocContentDumpFormatOutput(buf, cur, encoding, format);
+
+ ret = xmlOutputBufferClose(buf);
+ return(ret);
+}
+
+/**
+ * htmlSaveFileEnc:
+ * @filename: the filename
+ * @cur: the document
+ * @encoding: the document encoding
+ *
+ * Dump an HTML document to a file using a given encoding
+ * and formatting returns/spaces are added.
+ *
+ * returns: the number of byte written or -1 in case of failure.
+ */
+int
+htmlSaveFileEnc(const char *filename, xmlDocPtr cur, const char *encoding) {
+ return(htmlSaveFileFormat(filename, cur, encoding, 1));
+}
+
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+#define bottom_HTMLtree
+#include "elfgcchack.h"
+#endif /* LIBXML_HTML_ENABLED */
diff --git a/libxml2-2.9.10/INSTALL b/libxml2-2.9.10/INSTALL
new file mode 100644
index 0000000..8865734
--- /dev/null
+++ b/libxml2-2.9.10/INSTALL
@@ -0,0 +1,368 @@
+Installation Instructions
+*************************
+
+ Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
+Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved. This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+ Briefly, the shell command './configure && make && make install'
+should configure, build, and install this package. The following
+more-detailed instructions are generic; see the 'README' file for
+instructions specific to this package. Some packages provide this
+'INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+ The 'configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a 'Makefile' in each directory of the package.
+It may also create one or more '.h' files containing system-dependent
+definitions. Finally, it creates a shell script 'config.status' that
+you can run in the future to recreate the current configuration, and a
+file 'config.log' containing compiler output (useful mainly for
+debugging 'configure').
+
+ It can also use an optional file (typically called 'config.cache' and
+enabled with '--cache-file=config.cache' or simply '-C') that saves the
+results of its tests to speed up reconfiguring. Caching is disabled by
+default to prevent problems with accidental use of stale cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how 'configure' could check whether to do them, and mail
+diffs or instructions to the address given in the 'README' so they can
+be considered for the next release. If you are using the cache, and at
+some point 'config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file 'configure.ac' (or 'configure.in') is used to create
+'configure' by a program called 'autoconf'. You need 'configure.ac' if
+you want to change it or regenerate 'configure' using a newer version of
+'autoconf'.
+
+ The simplest way to compile this package is:
+
+ 1. 'cd' to the directory containing the package's source code and type
+ './configure' to configure the package for your system.
+
+ Running 'configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type 'make' to compile the package.
+
+ 3. Optionally, type 'make check' to run any self-tests that come with
+ the package, generally using the just-built uninstalled binaries.
+
+ 4. Type 'make install' to install the programs and any data files and
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the 'make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type 'make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior 'make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
+ source code directory by typing 'make clean'. To also remove the
+ files that 'configure' created (so you can compile the package for
+ a different kind of computer), type 'make distclean'. There is
+ also a 'make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 7. Often, you can also type 'make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide 'make
+ distcheck', which can by used by developers to test that all other
+ targets like 'make install' and 'make uninstall' work correctly.
+ This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the 'configure' script does not know about. Run './configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give 'configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here is
+an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU 'make'. 'cd' to the
+directory where you want the object files and executables to go and run
+the 'configure' script. 'configure' automatically checks for the source
+code in the directory that 'configure' is in and in '..'. This is known
+as a "VPATH" build.
+
+ With a non-GNU 'make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use 'make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple '-arch' options to the
+compiler but only a single '-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the 'lipo' tool if you have problems.
+
+Installation Names
+==================
+
+ By default, 'make install' installs the package's commands under
+'/usr/local/bin', include files under '/usr/local/include', etc. You
+can specify an installation prefix other than '/usr/local' by giving
+'configure' the option '--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like '--bindir=DIR' to specify different values for particular
+kinds of files. Run 'configure --help' for a list of the directories
+you can set and what kinds of files go in them. In general, the default
+for these options is expressed in terms of '${prefix}', so that
+specifying just '--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to 'configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+'make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, 'make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+'${prefix}'. Any directories that were specified during 'configure',
+but not in terms of '${prefix}', must each be overridden at install time
+for the entire installation to be relocated. The approach of makefile
+variable overrides for each directory variable is required by the GNU
+Coding Standards, and ideally causes no recompilation. However, some
+platforms have known limitations with the semantics of shared libraries
+that end up requiring recompilation when using this method, particularly
+noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the 'DESTDIR' variable. For
+example, 'make install DESTDIR=/alternate/directory' will prepend
+'/alternate/directory' before all installation names. The approach of
+'DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of '${prefix}'
+at 'configure' time.
+
+Optional Features
+=================
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving 'configure' the
+option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
+
+ Some packages pay attention to '--enable-FEATURE' options to
+'configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to '--with-PACKAGE' options, where PACKAGE
+is something like 'gnu-as' or 'x' (for the X Window System). The
+'README' should mention any '--enable-' and '--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, 'configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the 'configure' options '--x-includes=DIR' and
+'--x-libraries=DIR' to specify their locations.
+
+ Some packages offer the ability to configure how verbose the
+execution of 'make' will be. For these packages, running './configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with 'make V=1'; while running './configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with 'make V=0'.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
+is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ HP-UX 'make' updates targets which have the same time stamps as their
+prerequisites, which makes it generally unusable when shipped generated
+files such as 'configure' are involved. Use GNU 'make' instead.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
+workaround. If GNU CC is not installed, it is therefore recommended to
+try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
+in your 'PATH', put it _after_ '/usr/bin'.
+
+ On Haiku, software installed for all users goes in '/boot/common',
+not '/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+ There may be some features 'configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, 'configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+'--build=TYPE' option. TYPE can either be a short name for the system
+type, such as 'sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS
+ KERNEL-OS
+
+ See the file 'config.sub' for the possible values of each field. If
+'config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option '--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with '--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for 'configure' scripts to share,
+you can create a site shell script called 'config.site' that gives
+default values for variables like 'CC', 'cache_file', and 'prefix'.
+'configure' looks for 'PREFIX/share/config.site' if it exists, then
+'PREFIX/etc/config.site' if it exists. Or, you can set the
+'CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all 'configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to 'configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the 'configure' command line, using 'VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified 'gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
+Autoconf limitation. Until the limitation is lifted, you can use this
+workaround:
+
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+'configure' Invocation
+======================
+
+ 'configure' recognizes the following options to control how it
+operates.
+
+'--help'
+'-h'
+ Print a summary of all of the options to 'configure', and exit.
+
+'--help=short'
+'--help=recursive'
+ Print a summary of the options unique to this package's
+ 'configure', and exit. The 'short' variant lists options used only
+ in the top level, while the 'recursive' variant lists options also
+ present in any nested packages.
+
+'--version'
+'-V'
+ Print the version of Autoconf used to generate the 'configure'
+ script, and exit.
+
+'--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally 'config.cache'. FILE defaults to '/dev/null' to
+ disable caching.
+
+'--config-cache'
+'-C'
+ Alias for '--cache-file=config.cache'.
+
+'--quiet'
+'--silent'
+'-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to '/dev/null' (any error
+ messages will still be shown).
+
+'--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ 'configure' can determine that directory automatically.
+
+'--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names:: for
+ more details, including other options available for fine-tuning the
+ installation locations.
+
+'--no-create'
+'-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+'configure' also accepts some other, not widely useful, options. Run
+'configure --help' for more details.
diff --git a/libxml2-2.9.10/Makefile.am b/libxml2-2.9.10/Makefile.am
new file mode 100644
index 0000000..05d1671
--- /dev/null
+++ b/libxml2-2.9.10/Makefile.am
@@ -0,0 +1,1323 @@
+## Process this file with automake to produce Makefile.in
+
+ACLOCAL_AMFLAGS = -I m4
+
+SUBDIRS = include . doc example xstc $(PYTHON_SUBDIR)
+
+DIST_SUBDIRS = include . doc example python xstc
+
+AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include
+
+AM_CFLAGS = $(EXTRA_CFLAGS) $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS)
+
+check_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
+ testThreads testC14N testAutomata testRegexp \
+ testReader testapi testModule runtest runsuite testchar \
+ testdict runxmlconf testrecurse testlimits
+
+bin_PROGRAMS = xmllint xmlcatalog
+
+bin_SCRIPTS=xml2-config
+
+lib_LTLIBRARIES = libxml2.la
+libxml2_la_LIBADD = $(ICU_LIBS) $(THREAD_LIBS) $(Z_LIBS) $(LZMA_LIBS) $(ICONV_LIBS) $(M_LIBS) $(WIN32_EXTRA_LIBADD)
+
+if USE_VERSION_SCRIPT
+LIBXML2_VERSION_SCRIPT = $(VERSION_SCRIPT_FLAGS)$(srcdir)/libxml2.syms
+else
+LIBXML2_VERSION_SCRIPT =
+endif
+
+libxml2_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) \
+ $(LIBXML2_VERSION_SCRIPT) \
+ -version-info $(LIBXML_VERSION_INFO) \
+ $(MODULE_PLATFORM_LIBS)
+
+if WITH_SAX1_SOURCES
+docb_sources = DOCBparser.c
+else
+docb_sources =
+endif
+
+if WITH_TRIO_SOURCES
+trio_sources = triostr.c trio.c
+else
+trio_sources =
+endif
+
+libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \
+ parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \
+ valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c \
+ xpointer.c xinclude.c nanohttp.c nanoftp.c \
+ $(docb_sources) \
+ catalog.c globals.c threads.c c14n.c xmlstring.c buf.c \
+ xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
+ $(trio_sources) \
+ xmlreader.c relaxng.c dict.c SAX2.c \
+ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \
+ xmlmodule.c schematron.c xzlib.c
+
+DEPS = $(top_builddir)/libxml2.la
+LDADDS = $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(LZMA_LIBS) $(ICONV_LIBS) $(M_LIBS) $(WIN32_EXTRA_LIBADD)
+
+
+man_MANS = xml2-config.1 libxml.3
+
+m4datadir = $(datadir)/aclocal
+m4data_DATA = libxml.m4
+
+runtest_SOURCES=runtest.c
+runtest_LDFLAGS =
+runtest_DEPENDENCIES = $(DEPS)
+runtest_LDADD= $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS)
+
+testrecurse_SOURCES=testrecurse.c
+testrecurse_LDFLAGS =
+testrecurse_DEPENDENCIES = $(DEPS)
+testrecurse_LDADD= $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS)
+
+testlimits_SOURCES=testlimits.c
+testlimits_LDFLAGS =
+testlimits_DEPENDENCIES = $(DEPS)
+testlimits_LDADD= $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS)
+
+testchar_SOURCES=testchar.c
+testchar_LDFLAGS =
+testchar_DEPENDENCIES = $(DEPS)
+testchar_LDADD= $(RDL_LIBS) $(LDADDS)
+
+testdict_SOURCES=testdict.c
+testdict_LDFLAGS =
+testdict_DEPENDENCIES = $(DEPS)
+testdict_LDADD= $(RDL_LIBS) $(LDADDS)
+
+runsuite_SOURCES=runsuite.c
+runsuite_LDFLAGS =
+runsuite_DEPENDENCIES = $(DEPS)
+runsuite_LDADD= $(RDL_LIBS) $(LDADDS)
+
+xmllint_SOURCES=xmllint.c
+xmllint_LDFLAGS =
+xmllint_DEPENDENCIES = $(DEPS)
+xmllint_LDADD= $(RDL_LIBS) $(LDADDS)
+
+testSAX_SOURCES=testSAX.c
+testSAX_LDFLAGS =
+testSAX_DEPENDENCIES = $(DEPS)
+testSAX_LDADD= $(LDADDS)
+
+testHTML_SOURCES=testHTML.c
+testHTML_LDFLAGS =
+testHTML_DEPENDENCIES = $(DEPS)
+testHTML_LDADD= $(LDADDS)
+
+xmlcatalog_SOURCES=xmlcatalog.c
+xmlcatalog_LDFLAGS =
+xmlcatalog_DEPENDENCIES = $(DEPS)
+xmlcatalog_LDADD = $(RDL_LIBS) $(LDADDS)
+
+testXPath_SOURCES=testXPath.c
+testXPath_LDFLAGS =
+testXPath_DEPENDENCIES = $(DEPS)
+testXPath_LDADD= $(LDADDS)
+
+testC14N_SOURCES=testC14N.c
+testC14N_LDFLAGS =
+testC14N_DEPENDENCIES = $(DEPS)
+testC14N_LDADD= $(LDADDS)
+
+testThreads_SOURCES = testThreads.c
+testThreads_LDFLAGS =
+testThreads_DEPENDENCIES = $(DEPS)
+testThreads_LDADD= $(BASE_THREAD_LIBS) $(LDADDS)
+
+testURI_SOURCES=testURI.c
+testURI_LDFLAGS =
+testURI_DEPENDENCIES = $(DEPS)
+testURI_LDADD= $(LDADDS)
+
+testRegexp_SOURCES=testRegexp.c
+testRegexp_LDFLAGS =
+testRegexp_DEPENDENCIES = $(DEPS)
+testRegexp_LDADD= $(LDADDS)
+
+testAutomata_SOURCES=testAutomata.c
+testAutomata_LDFLAGS =
+testAutomata_DEPENDENCIES = $(DEPS)
+testAutomata_LDADD= $(LDADDS)
+
+testSchemas_SOURCES=testSchemas.c
+testSchemas_LDFLAGS =
+testSchemas_DEPENDENCIES = $(DEPS)
+testSchemas_LDADD= $(LDADDS)
+
+testRelax_SOURCES=testRelax.c
+testRelax_LDFLAGS =
+testRelax_DEPENDENCIES = $(DEPS)
+testRelax_LDADD= $(LDADDS)
+
+testReader_SOURCES=testReader.c
+testReader_LDFLAGS =
+testReader_DEPENDENCIES = $(DEPS)
+testReader_LDADD= $(LDADDS)
+
+testModule_SOURCES=testModule.c
+testModule_LDFLAGS =
+testModule_DEPENDENCIES = $(DEPS)
+testModule_LDADD= $(LDADDS)
+
+noinst_LTLIBRARIES = testdso.la
+testdso_la_SOURCES = testdso.c
+testdso_la_LDFLAGS = -module -no-undefined -avoid-version -rpath $(libdir)
+
+# that one forces the rebuild when "make rebuild" is run on doc/
+rebuild_testapi:
+ -@(if [ "$(PYTHON)" != "" ] ; then \
+ $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
+
+# that one is just to make sure it is rebuilt if missing
+# but adding the dependances generate mess
+testapi.c: $(srcdir)/gentest.py
+ -@(if [ "$(PYTHON)" != "" ] ; then \
+ $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
+
+BUILT_SOURCES = testapi.c
+
+testapi_SOURCES=testapi.c
+testapi_LDFLAGS =
+testapi_DEPENDENCIES = $(DEPS)
+testapi_LDADD= $(LDADDS)
+
+runxmlconf_SOURCES=runxmlconf.c
+runxmlconf_LDFLAGS =
+runxmlconf_DEPENDENCIES = $(DEPS)
+runxmlconf_LDADD= $(LDADDS)
+
+#testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c
+#testOOM_LDFLAGS =
+#testOOM_DEPENDENCIES = $(DEPS)
+#testOOM_LDADD= $(LDADDS)
+
+runtests: runtest$(EXEEXT) testrecurse$(EXEEXT) testapi$(EXEEXT) \
+ testchar$(EXEEXT) testdict$(EXEEXT) runxmlconf$(EXEEXT)
+ [ -d test ] || $(LN_S) $(srcdir)/test .
+ [ -d result ] || $(LN_S) $(srcdir)/result .
+ $(CHECKER) ./runtest$(EXEEXT) && \
+ $(CHECKER) ./testrecurse$(EXEEXT) && \
+ ASAN_OPTIONS="$$ASAN_OPTIONS:detect_leaks=0" $(CHECKER) ./testapi$(EXEEXT) && \
+ $(CHECKER) ./testchar$(EXEEXT) && \
+ $(CHECKER) ./testdict$(EXEEXT) && \
+ $(CHECKER) ./runxmlconf$(EXEEXT)
+ @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
+ $(MAKE) tests ; fi)
+
+check: all runtests
+
+check-valgrind valgrind: all
+ @echo '## Running the regression tests under Valgrind'
+ @echo '## Go get a cup of coffee it is gonna take a while ...'
+ $(MAKE) CHECKER='valgrind -q' runtests
+
+asan:
+ @echo '## rebuilding for ASAN'
+ ./configure CFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g" CXXFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g" LDFLAGS="-fsanitize=address,undefined" CC="clang" CXX="clang++" --disable-shared ; OptimOff ; $(MAKE) clean ; $(MAKE)
+
+testall : tests SVGtests SAXtests
+
+tests: XMLtests XMLenttests NStests IDtests Errtests APItests $(READER_TEST) $(TEST_SAX) $(TEST_PUSH) $(TEST_HTML) $(TEST_PHTML) $(TEST_VALID) URItests $(TEST_PATTERN) $(TEST_XPATH) $(TEST_XPTR) $(TEST_XINCLUDE) $(TEST_C14N) $(TEST_DEBUG) $(TEST_CATALOG) $(TEST_REGEXPS) $(TEST_SCHEMAS) $(TEST_SCHEMATRON) $(TEST_THREADS) Timingtests $(TEST_VTIME) $(PYTHON_TESTS) $(TEST_MODULES)
+ @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
+ $(MAKE) -s tests ; fi)
+ @(cd doc/examples ; $(MAKE) -s tests)
+
+APItests: testapi$(EXEEXT)
+ @echo "## Running the API regression tests this may take a little while"
+ -@(ASAN_OPTIONS="$$ASAN_OPTIONS:detect_leaks=0" $(CHECKER) $(top_builddir)/testapi -q)
+
+HTMLtests : testHTML$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## HTML regression tests"
+ -@(for i in $(srcdir)/test/HTML/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testHTML $$i > result.$$name 2> error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/HTML/$$name result.$$name ; \
+ diff -b $(srcdir)/result/HTML/$$name.err error.$$name ; \
+ $(CHECKER) $(top_builddir)/testHTML result.$$name > result2.$$name 2>error.$$name ; \
+ diff result.$$name result2.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result2.$$name error.$$name ; \
+ fi ; fi ; done)
+
+HTMLPushtests : testHTML$(EXEEXT)
+ @echo "## Push HTML regression tests"
+ -@(for i in $(srcdir)/test/HTML/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testHTML --push $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testHTML --push $$i > result.$$name 2> error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/HTML/$$name result.$$name ; \
+ cut -b 1-15 $(srcdir)/result/HTML/$$name.err > errorcut.$$name; \
+ cut -b 1-15 error.$$name > errorcut2.$$name; \
+ diff -b errorcut.$$name errorcut2.$$name ; \
+ $(CHECKER) $(top_builddir)/testHTML --push result.$$name > result2.$$name 2>error.$$name ; \
+ diff result.$$name result2.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result2.$$name error.$$name errorcut.$$name errorcut2.$$name ; \
+ fi ; fi ; done)
+ @echo "## HTML SAX regression tests"
+ -@(for i in $(srcdir)/test/HTML/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/HTML/$$name.sax ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testHTML --sax $$i > result.$$name.sax ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name.sax ; \
+ fi ; fi ; done)
+ @echo "## Push HTML SAX regression tests"
+ -@(for i in $(srcdir)/test/HTML/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testHTML --push --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testHTML --push --sax $$i 2>&1 > result.$$name.sax ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name.sax ; \
+ fi ; fi ; done)
+
+XMLtests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XML regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/$$name result.$$name ; \
+ $(CHECKER) $(top_builddir)/xmllint result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff result.$$name result2.$$name` ;\
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result2.$$name ; \
+ fi ; fi ; done)
+ @echo "## XML regression tests on memory"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --memory $$i > $(srcdir)/result/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --memory $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name result.$$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --memory result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"`; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ diff result.$$name result2.$$name ; \
+ rm result.$$name result2.$$name ; \
+ fi ; fi ; done)
+
+XMLPushtests: xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XML push regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --push $$i > $(srcdir)/result/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --push $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/$$name result.$$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --push result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff result.$$name result2.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result2.$$name ; \
+ fi ; fi ; done)
+
+NStests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XML Namespaces regression tests"
+ -@(for i in $(srcdir)/test/namespaces/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/namespaces/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint $$i \
+ 2> $(srcdir)/result/namespaces/$$name.err \
+ > $(srcdir)/result/namespaces/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/namespaces/$$name result.$$name ; \
+ diff $(srcdir)/result/namespaces/$$name.err error.$$name`; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+
+IDtests : xmllint$(EXEEXT) testXPath$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## xml:id regression tests"
+ -@(for i in $(srcdir)/test/xmlid/id_*.xml ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/xmlid/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testXPath -i $$i "id('bar')" \
+ 2> $(srcdir)/result/xmlid/$$name.err \
+ > $(srcdir)/result/xmlid/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testXPath -i $$i "id('bar')" 2> error.$$name > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/xmlid/$$name result.$$name ; \
+ diff $(srcdir)/result/xmlid/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+
+Errtests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Error cases regression tests"
+ -@(for i in $(srcdir)/test/errors/*.xml ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/errors/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint $$i \
+ 2> $(srcdir)/result/errors/$$name.err \
+ > $(srcdir)/result/errors/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/errors/$$name result.$$name ; \
+ diff $(srcdir)/result/errors/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ @echo "## Error cases regression tests (old 1.0)"
+ -@(for i in $(srcdir)/test/errors10/*.xml ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/errors10/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i \
+ 2> $(srcdir)/result/errors10/$$name.err \
+ > $(srcdir)/result/errors10/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i 2> error.$$name > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/errors10/$$name result.$$name ; \
+ diff $(srcdir)/result/errors10/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ @echo "## Error cases stream regression tests"
+ -@(for i in $(srcdir)/test/errors/*.xml ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/errors/$$name.str ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --stream $$i \
+ 2> $(srcdir)/result/errors/$$name.str \
+ > /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --stream $$i 2> error.$$name > /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/errors/$$name.str error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm error.$$name ; \
+ fi ; fi ; done)
+
+Docbtests : xmllint$(EXEEXT)
+
+XMLenttests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XML entity subst regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/noent/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --noent $$i > $(srcdir)/result/noent/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --noent $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/noent/$$name result.$$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --noent result.$$name 2>&1 > result2.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff result.$$name result2.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result2.$$name ; \
+ fi ; fi ; done)
+
+URItests : testURI$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## URI module regression tests"
+ -@(for i in $(srcdir)/test/URI/*.data ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i > $(srcdir)/result/URI/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/URI/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ -@(for i in $(srcdir)/test/URI/*.uri ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testURI < $$i > $(srcdir)/result/URI/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testURI < $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/URI/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+XPathtests : testXPath$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XPath regression tests"
+ -@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
+ then echo Skipping debug not compiled in ; exit 0 ; fi ; \
+ for i in $(srcdir)/test/XPath/expr/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/XPath/expr/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > $(srcdir)/result/XPath/expr/$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testXPath -f --expr $$i > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XPath/expr/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done ; \
+ for i in $(srcdir)/test/XPath/docs/* ; do \
+ if [ ! -d $$i ] ; then \
+ doc=`basename $$i`; \
+ for j in $(srcdir)/test/XPath/tests/$$doc* ; do \
+ if [ ! -f $$j ] ; then continue ; fi ; \
+ name=`basename $$j`; \
+ if [ ! -d $$j ] ; then \
+ if [ ! -f $(srcdir)/result/XPath/tests/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > $(srcdir)/result/XPath/tests/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XPath/tests/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done ; fi ; done)
+
+XPtrtests : testXPath$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XPointer regression tests"
+ -@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
+ then echo Skipping debug not compiled in ; exit 0 ; fi ; \
+ for i in $(srcdir)/test/XPath/docs/* ; do \
+ if [ ! -d $$i ] ; then \
+ doc=`basename $$i`; \
+ for j in $(srcdir)/test/XPath/xptr/$$doc* ; do \
+ if [ ! -f $$j ] ; then continue ; fi ; \
+ name=`basename $$j`; \
+ if [ ! -d $$j ] ; then \
+ if [ ! -f $(srcdir)/result/XPath/xptr/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > $(srcdir)/result/XPath/xptr/$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XPath/xptr/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done ; fi ; done)
+
+XIncludetests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XInclude regression tests"
+ -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/XInclude/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > $(srcdir)/result/XInclude/$$name 2> $(srcdir)/result/XInclude/$$name.err ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > result.$$name 2>error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XInclude/$$name result.$$name ; \
+ diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/XInclude/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode $$i > $(srcdir)/result/XInclude/$$name 2> $(srcdir)/result/XInclude/$$name.err ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode $$i > result.$$name 2>error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XInclude/$$name result.$$name ; \
+ diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ @(echo > .memdump)
+ @echo "## XInclude xmlReader regression tests"
+ -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > result.$$name 2>error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
+ diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode --stream --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > result.$$name 2>error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
+ diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+
+Scripttests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Scripts regression tests"
+ @echo "## Some of the base computations may be different if srcdir != ."
+ -@(for i in $(srcdir)/test/scripts/*.script ; do \
+ name=`basename $$i .script`; \
+ xml=$(srcdir)/test/scripts/`basename $$i .script`.xml; \
+ if [ -f $$xml ] ; then \
+ if [ ! -f $(srcdir)/result/scripts/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > $(srcdir)/result/scripts/$$name 2> $(srcdir)/result/scripts/$$name.err ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > result.$$name 2> result.$$name.err ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/scripts/$$name result.$$name ; \
+ diff $(srcdir)/result/scripts/$$name.err result.$$name.err` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result.$$name.err ; \
+ fi ; fi ; done)
+
+Catatests : xmlcatalog$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Catalog regression tests"
+ -@(for i in $(srcdir)/test/catalogs/*.script ; do \
+ name=`basename $$i .script`; \
+ xml=$(srcdir)/test/catalogs/`basename $$i .script`.xml; \
+ if [ -f $$xml ] ; then \
+ if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > $(srcdir)/result/catalogs/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ -@(for i in $(srcdir)/test/catalogs/*.script ; do \
+ name=`basename $$i .script`; \
+ sgml=$(srcdir)/test/catalogs/`basename $$i .script`.sgml; \
+ if [ -f $$sgml ] ; then \
+ if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > $(srcdir)/result/catalogs/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## Add and del operations on XML Catalogs"
+ -@($(CHECKER) $(top_builddir)/xmlcatalog --create --noout $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid sysid $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid2 sysid2 $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid3 sysid3 $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff result/catalogs/mycatalog.full $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid3 $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid2 $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff result/catalogs/mycatalog.empty $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ rm -f $(srcdir)/result/catalogs/mycatalog)
+
+SVGtests : xmllint$(EXEEXT)
+ @echo "## SVG parsing regression tests"
+ -@(for i in $(srcdir)/test/SVG/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/SVG/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/SVG/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ echo Testing $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint $$i > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/SVG/$$name result.$$name ; \
+ $(CHECKER) $(top_builddir)/xmllint result.$$name > result2.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff result.$$name result2.$$name ; \
+ rm result.$$name result2.$$name ; \
+ fi ; fi ; done)
+
+Threadtests : testThreads$(EXEEXT)
+ @echo "## Threaded regression tests"
+ -@($(CHECKER) $(top_builddir)/testThreads ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ exit 0)
+
+Readertests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Reader regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.rdr result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## Reader on memory regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.rdr result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @(echo > .memdump)
+ @echo "## Walker regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > result.$$name 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.rdr result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## Reader entities substitution regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.rde ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --noent --nonet --debug --stream $$i > $(srcdir)/result/$$name.rde 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --noent --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.rde result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+SAXtests : testSAX$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## SAX1 callbacks regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.sax ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testSAX $$i > $(srcdir)/result/$$name.sax 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testSAX $$i > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.sax result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## SAX2 callbacks regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.sax2 ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testSAX --sax2 $$i > $(srcdir)/result/$$name.sax2 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testSAX --sax2 $$i > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.sax2 result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## SAX2 callbacks regression tests with entity substitution"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/noent/$$name.sax2 ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testSAX --sax2 --noent $$i > $(srcdir)/result/noent/$$name.sax2 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testSAX --sax2 --noent $$i > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/noent/$$name.sax2 result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+Validtests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Valid documents regression tests"
+ -@(for i in $(srcdir)/test/VCM/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ log=`$(CHECKER) $(top_builddir)/xmllint --valid --noout --nowarning $$i ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"`;\
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ fi ; done ; exit 0)
+ @echo "## Validity checking regression tests"
+ -@(for i in $(srcdir)/test/VC/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/VC/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> $(srcdir)/result/VC/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/VC/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## General documents valid regression tests"
+ -@(for i in $(srcdir)/test/valid/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/valid/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --valid $$i > $(srcdir)/result/valid/$$name 2>$(srcdir)/result/valid/$$name.err ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --valid $$i > result.$$name 2>error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/valid/$$name result.$$name ; \
+ diff $(srcdir)/result/valid/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+
+Regexptests: testRegexp$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Regexp regression tests"
+ -@(for i in $(srcdir)/test/regexp/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/regexp/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testRegexp -i $$i > $(srcdir)/result/regexp/$$name; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testRegexp -i $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/regexp/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+# Disabled for now
+Exptests: testRegexp$(EXEEXT)
+ @echo "## Formal expresssions regression tests"
+ -@(for i in $(srcdir)/test/expr/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/expr/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testRegexp --expr -i $$i > $(srcdir)/result/expr/$$name; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testRegexp --expr -i $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/expr/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+Automatatests: testAutomata$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Automata regression tests"
+ -@(for i in $(srcdir)/test/automata/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/automata/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testAutomata $$i > $(srcdir)/result/automata/$$name; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testAutomata $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/automata/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+dba100000.xml: dbgenattr.pl
+ @echo "## generating dba100000.xml"
+ @($(PERL) $(top_srcdir)/dbgenattr.pl 100000 > dba100000.xml)
+
+Timingtests: xmllint$(EXEEXT) dba100000.xml
+ @echo "## Timing tests to try to detect performance"
+ @echo "## as well a memory usage breakage when streaming"
+ @echo "## 1/ using the file interface"
+ @echo "## 2/ using the memory interface"
+ @echo "## 3/ repeated DOM parsing"
+ @echo "## 4/ repeated DOM validation"
+ -@($(top_builddir)/xmllint --stream --timing dba100000.xml; \
+ MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
+ if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ exit 0)
+ -@($(top_builddir)/xmllint --stream --timing --memory dba100000.xml; \
+ MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
+ if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ exit 0)
+ -@($(top_builddir)/xmllint --noout --timing --repeat $(srcdir)/test/valid/REC-xml-19980210.xml; \
+ MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
+ if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ exit 0)
+
+VTimingtests: xmllint$(EXEEXT)
+ -@($(top_builddir)/xmllint --noout --timing --valid --repeat $(srcdir)/test/valid/REC-xml-19980210.xml; \
+ MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
+ if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ exit 0)
+
+C14Ntests : testC14N$(EXEEXT)
+ @echo "## C14N and XPath regression tests"
+ -@(for m in with-comments without-comments 1-1-without-comments exc-without-comments ; do \
+ for i in $(srcdir)/test/c14n/$$m/*.xml ; do \
+ if [ ! -d $$i ] ; then \
+ name=`basename $$i .xml`; \
+ cmdline="$(CHECKER) $(top_builddir)/testC14N --$$m $$i"; \
+ if [ -f $(srcdir)/test/c14n/$$m/$$name.xpath ] ; then \
+ cmdline="$$cmdline $(srcdir)/test/c14n/$$m/$$name.xpath"; \
+ if [ -f $(srcdir)/test/c14n/$$m/$$name.ns ] ; then \
+ cmdline="$$cmdline '`cat $(srcdir)/test/c14n/$$m/$$name.ns`'"; \
+ fi; \
+ fi; \
+ $$cmdline > $(srcdir)/test/c14n/test.tmp 2> /dev/null; \
+ if [ $$? -eq 0 ]; then \
+ diff $(srcdir)/result/c14n/$$m/$$name $(srcdir)/test/c14n/test.tmp; \
+ if [ $$? -ne 0 ]; then \
+ echo "Test $$m/$$name failed"; \
+ cat $(srcdir)/test/c14n/test.tmp; \
+ fi; \
+ else \
+ echo "C14N failed"; \
+ fi; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ fi; \
+ rm -f $(srcdir)/test/c14n/test.tmp; \
+ done; \
+ done)
+
+Schemastests: testSchemas$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Schemas regression tests"
+ -@(for i in $(srcdir)/test/schemas/*_*.xsd ; do \
+ name=`basename $$i | sed 's+_.*++'`; \
+ sno=`basename $$i | sed 's+.*_\(.*\).xsd+\1+'`; \
+ for j in $(srcdir)/test/schemas/"$$name"_*.xml ; do \
+ if [ -f $$j ] ; then \
+ xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
+ if [ ! -f $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" ]; \
+ then \
+ echo New test file "$$name"_"$$sno"_"$$xno" ; \
+ $(CHECKER) $(top_builddir)/testSchemas $$i $$j \
+ > $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
+ 2> $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testSchemas $$i $$j \
+ > res.$$name 2> err.$$name;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
+ res.$$name;\
+ diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err \
+ err.$$name;\
+ grep Unimplemented err.$$name`; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$sno"_"$$xno" result ; echo "$$log" ; fi ; \
+ rm res.$$name err.$$name ; \
+ fi ; fi ;\
+ done; done)
+
+Relaxtests: xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Relax-NG regression tests"
+ -@(for i in $(srcdir)/test/relaxng/*.rng ; do \
+ name=`basename $$i | sed 's+\.rng++'`; \
+ if [ ! -f $(srcdir)/result/relaxng/"$$name"_valid ] ; then \
+ echo New schemas $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
+ > $(srcdir)/result/relaxng/"$$name"_valid \
+ 2> $(srcdir)/result/relaxng/"$$name"_err; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
+ > res.$$name 2> err.$$name;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/relaxng/"$$name"_valid \
+ res.$$name;\
+ diff $(srcdir)/result/relaxng/"$$name"_err \
+ err.$$name | grep -v "error detected at";\
+ grep Unimplemented err.$$name`; \
+ if [ -n "$$log" ] ; then echo schemas $$name result ; echo "$$log" ; fi ; \
+ rm res.$$name err.$$name ; \
+ fi; \
+ for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
+ if [ -f $$j ] ; then \
+ xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
+ if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
+ then \
+ echo New test file "$$name"_"$$xno" ; \
+ $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
+ > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
+ 2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
+ > res.$$name 2> err.$$name;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/relaxng/"$$name"_"$$xno" \
+ res.$$name;\
+ diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
+ err.$$name | grep -v "error detected at";\
+ grep Unimplemented err.$$name`; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
+ rm res.$$name err.$$name ; \
+ fi ; fi ; \
+ done; done)
+ @echo "## Relax-NG streaming regression tests"
+ -@(for i in $(srcdir)/test/relaxng/*.rng ; do \
+ name=`basename $$i | sed 's+\.rng++'`; \
+ for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
+ if [ -f $$j ] ; then \
+ xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
+ if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
+ then \
+ echo New test file "$$name"_"$$xno" ; \
+ $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
+ > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
+ 2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --stream --relaxng $$i $$j \
+ > res.$$name 2> err.$$name;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\
+ if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" -a "$$name" != "tutor8_2" ] ; then \
+ diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
+ err.$$name | grep -v "error detected at";\
+ fi ; grep Unimplemented err.$$name`; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
+ rm res.$$name err.$$name ; \
+ fi ; fi ; \
+ done; done)
+
+Schematrontests: xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Schematron regression tests"
+ -@(for i in $(srcdir)/test/schematron/*.sct ; do \
+ name=`basename $$i | sed 's+\.sct++'`; \
+ for j in $(srcdir)/test/schematron/"$$name"_*.xml ; do \
+ if [ -f $$j ] ; then \
+ xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
+ if [ ! -f $(srcdir)/result/schematron/"$$name"_"$$xno" ]; \
+ then \
+ echo New test file "$$name"_"$$xno" ; \
+ $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
+ > $(srcdir)/result/schematron/"$$name"_"$$xno" \
+ 2> $(srcdir)/result/schematron/"$$name"_"$$xno".err; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
+ > res.$$name 2> err.$$name;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/schematron/"$$name"_"$$xno" \
+ res.$$name;\
+ diff $(srcdir)/result/schematron/"$$name"_"$$xno".err \
+ err.$$name | grep -v "error detected at";\
+ grep Unimplemented err.$$name`; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
+ rm res.$$name err.$$name ; \
+ fi ; fi ; \
+ done; done)
+
+RelaxNGPythonTests:
+ @(if [ -x $(PYTHON) ] ; then \
+ PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH ; \
+ export PYTHONPATH; \
+ LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
+ export LD_LIBRARY_PATH; \
+ echo "## Relax-NG Python based test suite 1" ; \
+ $(CHECKER) $(PYTHON) $(srcdir)/check-relaxng-test-suite.py ; \
+ echo "## Relax-NG Python based test suite 2" ; \
+ $(CHECKER) $(PYTHON) $(srcdir)/check-relaxng-test-suite2.py ; \
+ fi)
+
+SchemasPythonTests:
+ @(if [ -x $(PYTHON) ] ; then \
+ PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH; \
+ export PYTHONPATH; \
+ LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
+ export LD_LIBRARY_PATH; \
+ echo "## XML Schemas datatypes Python based test suite" ; \
+ echo "## It is normal to see 11 errors reported" ; \
+ $(CHECKER) $(PYTHON) $(srcdir)/check-xsddata-test-suite.py ; \
+ fi)
+ @(if [ -x $(PYTHON) -a -d xstc ] ; then cd xstc ; $(MAKE) CHECKER="$(CHECKER)" pytests ; fi)
+
+Patterntests: xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Pattern regression tests"
+ -@(for i in $(srcdir)/test/pattern/*.pat ; do \
+ name=`basename $$i .pat`; \
+ if [ -f $(srcdir)/test/pattern/$$name.xml ] ; then \
+ if [ ! -f $(srcdir)/result/pattern/$$name ] ; then \
+ rm -f result.$$name ; \
+ echo New test file $$name ; \
+ for pat in `cat $$i` ; do \
+ $(CHECKER) $(top_builddir)/xmllint --walker --pattern $$pat $(srcdir)/test/pattern/$$name.xml >> $(srcdir)/result/pattern/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ done ;\
+ else \
+ rm -f result.$$name ; \
+ lst=`cat $$i` ; \
+ log=`for pat in $$lst ; do $(CHECKER) $(top_builddir)/xmllint --walker --pattern $$pat $(srcdir)/test/pattern/$$name.xml 2>&1 >> result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ done ;\
+ diff $(srcdir)/result/pattern/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done ;)
+
+ModuleTests: testModule$(EXEEXT) testdso.la
+ @echo "## Module tests"
+ @(./testModule$(EXEEXT))
+
+cleanup:
+ -@(find . -name .\#\* -exec rm {} \;)
+ -@(find . -name \*.gcda -o -name \*.gcno -exec rm -f {} \;)
+ -@(find . -name \*.orig -o -name \*.rej -o -name \*.old -exec rm -f {} \;)
+
+dist-hook: cleanup libxml2.spec
+ -cp libxml2.spec $(distdir)
+ (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn --exclude .git win32 macos os400 vms VxWorks bakefile test result) | (cd $(distdir); tar xf -)
+
+dist-source: distdir
+ $(AMTAR) -chof - --exclude Tests --exclude test --exclude result $(distdir) | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-sources+"`.tar.gz
+
+dist-test: distdir
+ (mkdir -p $(distdir))
+ (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn --exclude .git xstc/Tests) | (cd $(distdir); tar xf -)
+ tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/testapi.c $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
+ @(rm -rf $(distdir)/xstc/Test)
+
+cleantar:
+ @(rm -f libxml*.tar.gz COPYING.LIB)
+
+rpm: cleanup cleantar
+ @(unset CDPATH ; $(MAKE) dist-source dist && rpmbuild -ta $(distdir).tar.gz)
+
+## We create xml2Conf.sh here and not from configure because we want
+## to get the paths expanded correctly. Macros like srcdir are given
+## the value NONE in configure if the user doesn't specify them (this
+## is an autoconf feature, not a bug).
+
+xml2Conf.sh: xml2Conf.sh.in Makefile
+## Use sed and then mv to avoid problems if the user interrupts.
+ sed -e 's?\@XML_LIBDIR\@?$(XML_LIBDIR)?g' \
+ -e 's?\@XML_INCLUDEDIR\@?$(XML_INCLUDEDIR)?g' \
+ -e 's?\@VERSION\@?$(VERSION)?g' \
+ -e 's?\@XML_LIBS\@?$(XML_LIBS)?g' \
+ -e 's?\@XML_PRIVATE_LIBS\@?$(XML_PRIVATE_LIBS)?g' \
+ < $(srcdir)/xml2Conf.sh.in > xml2Conf.tmp \
+ && mv xml2Conf.tmp xml2Conf.sh
+
+CLEANFILES = runxmlconf.log test.out xml2Conf.sh *.gcda *.gcno *.res
+DISTCLEANFILES = COPYING missing.lst
+
+confexecdir=$(libdir)
+confexec_DATA = xml2Conf.sh
+CVS_EXTRA_DIST=
+EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \
+ libxml.m4 Copyright check-xml-test-suite.py gentest.py \
+ check-relaxng-test-suite.py check-relaxng-test-suite2.py \
+ check-xsddata-test-suite.py check-xinclude-test-suite.py \
+ example/Makefile.am example/gjobread.c example/gjobs.xml \
+ $(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \
+ libxml2-config.cmake.in autogen.sh \
+ trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
+ triop.h triodef.h libxml.h elfgcchack.h xzlib.h buf.h \
+ enc.h save.h genUnicode.py TODO_SCHEMAS \
+ dbgen.pl dbgenattr.pl regressions.py regressions.xml \
+ README.tests Makefile.tests libxml2.syms timsort.h \
+ README.zOS \
+ $(CVS_EXTRA_DIST)
+
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libxml-2.0.pc
+
+cmakedir = $(libdir)/cmake/libxml2
+cmake_DATA = libxml2-config.cmake
+
+#
+# Install the tests program sources as examples
+#
+BASE_DIR=$(datadir)/doc
+DOC_MODULE=libxml2-$(VERSION)
+EXAMPLES_DIR=$(BASE_DIR)/$(DOC_MODULE)/examples
+
+install-data-local:
+ $(MKDIR_P) $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
+ -$(INSTALL) -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
+ $(MKDIR_P) $(DESTDIR)$(EXAMPLES_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/testHTML.c $(DESTDIR)$(EXAMPLES_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/testXPath.c $(DESTDIR)$(EXAMPLES_DIR)
+
+uninstall-local:
+ rm -f $(DESTDIR)$(EXAMPLES_DIR)/testXPath.c
+ rm -f $(DESTDIR)$(EXAMPLES_DIR)/testHTML.c
+ rm -f $(DESTDIR)$(EXAMPLES_DIR)/testSAX.c
+ rm -f $(DESTDIR)$(EXAMPLES_DIR)/xmllint.c
+ rm -rf $(DESTDIR)$(EXAMPLES_DIR)
+ rm -f $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)/Copyright
+ rm -rf $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
+
+tst: tst.c
+ $(CC) $(CFLAGS) -Iinclude -o tst tst.c .libs/libxml2.a -lpthread -lm -lz -llzma
+
+sparse: clean
+ $(MAKE) CC=cgcc
+
+#
+# Coverage support, largely borrowed from libvirt
+# Both binaries comes from the lcov package in Fedora
+#
+LCOV = /usr/bin/lcov
+GENHTML = /usr/bin/genhtml
+
+cov: clean-cov
+ if [ "`echo $(LDFLAGS) | grep coverage`" = "" ] ; then \
+ echo not configured with coverage; exit 1 ; fi
+ if [ ! -x $(LCOV) -o ! -x $(GENHTML) ] ; then \
+ echo Need $(LCOV) and $(GENHTML) excecutables; exit 1 ; fi
+ -@($(MAKE) check)
+ -@(./runsuite$(EXEEXT))
+ mkdir $(top_builddir)/coverage
+ $(LCOV) -c -o $(top_builddir)/coverage/libxml2.info.tmp -d $(top_srcdir)
+ $(LCOV) -r $(top_builddir)/coverage/libxml2.info.tmp -o $(top_builddir)/coverage/libxml2.info *usr*
+ rm $(top_builddir)/coverage/libxml2.info.tmp
+ $(GENHTML) -s -t "libxml2" -o $(top_builddir)/coverage --legend $(top_builddir)/coverage/libxml2.info
+ echo "Coverage report is in $(top_builddir)/coverage/index.html"
+
+clean-cov:
+ rm -rf $(top_builddir)/coverage
+
diff --git a/libxml2-2.9.10/Makefile.in b/libxml2-2.9.10/Makefile.in
new file mode 100644
index 0000000..99ad3d2
--- /dev/null
+++ b/libxml2-2.9.10/Makefile.in
@@ -0,0 +1,3166 @@
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testSchemas$(EXEEXT) testRelax$(EXEEXT) \
+ testSAX$(EXEEXT) testHTML$(EXEEXT) testXPath$(EXEEXT) \
+ testURI$(EXEEXT) testThreads$(EXEEXT) testC14N$(EXEEXT) \
+ testAutomata$(EXEEXT) testRegexp$(EXEEXT) testReader$(EXEEXT) \
+ testapi$(EXEEXT) testModule$(EXEEXT) runtest$(EXEEXT) \
+ runsuite$(EXEEXT) testchar$(EXEEXT) testdict$(EXEEXT) \
+ runxmlconf$(EXEEXT) testrecurse$(EXEEXT) testlimits$(EXEEXT)
+bin_PROGRAMS = xmllint$(EXEEXT) xmlcatalog$(EXEEXT)
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = libxml2.spec libxml-2.0.pc \
+ libxml-2.0-uninstalled.pc libxml2-config.cmake xml2-config
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \
+ "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
+ "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(cmakedir)" \
+ "$(DESTDIR)$(confexecdir)" "$(DESTDIR)$(m4datadir)" \
+ "$(DESTDIR)$(pkgconfigdir)"
+PROGRAMS = $(bin_PROGRAMS)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libxml2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am__libxml2_la_SOURCES_DIST = SAX.c entities.c encoding.c error.c \
+ parserInternals.c parser.c tree.c hash.c list.c xmlIO.c \
+ xmlmemory.c uri.c valid.c xlink.c HTMLparser.c HTMLtree.c \
+ debugXML.c xpath.c xpointer.c xinclude.c nanohttp.c nanoftp.c \
+ DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \
+ buf.c xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
+ triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \
+ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c \
+ schematron.c xzlib.c
+@WITH_SAX1_SOURCES_TRUE@am__objects_1 = DOCBparser.lo
+@WITH_TRIO_SOURCES_TRUE@am__objects_2 = triostr.lo trio.lo
+am_libxml2_la_OBJECTS = SAX.lo entities.lo encoding.lo error.lo \
+ parserInternals.lo parser.lo tree.lo hash.lo list.lo xmlIO.lo \
+ xmlmemory.lo uri.lo valid.lo xlink.lo HTMLparser.lo \
+ HTMLtree.lo debugXML.lo xpath.lo xpointer.lo xinclude.lo \
+ nanohttp.lo nanoftp.lo $(am__objects_1) catalog.lo globals.lo \
+ threads.lo c14n.lo xmlstring.lo buf.lo xmlregexp.lo \
+ xmlschemas.lo xmlschemastypes.lo xmlunicode.lo \
+ $(am__objects_2) xmlreader.lo relaxng.lo dict.lo SAX2.lo \
+ xmlwriter.lo legacy.lo chvalid.lo pattern.lo xmlsave.lo \
+ xmlmodule.lo schematron.lo xzlib.lo
+libxml2_la_OBJECTS = $(am_libxml2_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libxml2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libxml2_la_LDFLAGS) $(LDFLAGS) -o $@
+testdso_la_LIBADD =
+am_testdso_la_OBJECTS = testdso.lo
+testdso_la_OBJECTS = $(am_testdso_la_OBJECTS)
+testdso_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testdso_la_LDFLAGS) $(LDFLAGS) -o $@
+am_runsuite_OBJECTS = runsuite.$(OBJEXT)
+runsuite_OBJECTS = $(am_runsuite_OBJECTS)
+am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(top_builddir)/libxml2.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+runsuite_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(runsuite_LDFLAGS) $(LDFLAGS) -o $@
+am_runtest_OBJECTS = runtest.$(OBJEXT)
+runtest_OBJECTS = $(am_runtest_OBJECTS)
+runtest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(runtest_LDFLAGS) $(LDFLAGS) -o $@
+am_runxmlconf_OBJECTS = runxmlconf.$(OBJEXT)
+runxmlconf_OBJECTS = $(am_runxmlconf_OBJECTS)
+runxmlconf_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(runxmlconf_LDFLAGS) $(LDFLAGS) -o $@
+am_testAutomata_OBJECTS = testAutomata.$(OBJEXT)
+testAutomata_OBJECTS = $(am_testAutomata_OBJECTS)
+testAutomata_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testAutomata_LDFLAGS) $(LDFLAGS) -o $@
+am_testC14N_OBJECTS = testC14N.$(OBJEXT)
+testC14N_OBJECTS = $(am_testC14N_OBJECTS)
+testC14N_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testC14N_LDFLAGS) $(LDFLAGS) -o $@
+am_testHTML_OBJECTS = testHTML.$(OBJEXT)
+testHTML_OBJECTS = $(am_testHTML_OBJECTS)
+testHTML_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testHTML_LDFLAGS) $(LDFLAGS) -o $@
+am_testModule_OBJECTS = testModule.$(OBJEXT)
+testModule_OBJECTS = $(am_testModule_OBJECTS)
+testModule_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testModule_LDFLAGS) $(LDFLAGS) -o $@
+am_testReader_OBJECTS = testReader.$(OBJEXT)
+testReader_OBJECTS = $(am_testReader_OBJECTS)
+testReader_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testReader_LDFLAGS) $(LDFLAGS) -o $@
+am_testRegexp_OBJECTS = testRegexp.$(OBJEXT)
+testRegexp_OBJECTS = $(am_testRegexp_OBJECTS)
+testRegexp_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testRegexp_LDFLAGS) $(LDFLAGS) -o $@
+am_testRelax_OBJECTS = testRelax.$(OBJEXT)
+testRelax_OBJECTS = $(am_testRelax_OBJECTS)
+testRelax_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testRelax_LDFLAGS) $(LDFLAGS) -o $@
+am_testSAX_OBJECTS = testSAX.$(OBJEXT)
+testSAX_OBJECTS = $(am_testSAX_OBJECTS)
+testSAX_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testSAX_LDFLAGS) $(LDFLAGS) -o $@
+am_testSchemas_OBJECTS = testSchemas.$(OBJEXT)
+testSchemas_OBJECTS = $(am_testSchemas_OBJECTS)
+testSchemas_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testSchemas_LDFLAGS) $(LDFLAGS) -o $@
+am_testThreads_OBJECTS = testThreads.$(OBJEXT)
+testThreads_OBJECTS = $(am_testThreads_OBJECTS)
+testThreads_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testThreads_LDFLAGS) $(LDFLAGS) -o $@
+am_testURI_OBJECTS = testURI.$(OBJEXT)
+testURI_OBJECTS = $(am_testURI_OBJECTS)
+testURI_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testURI_LDFLAGS) $(LDFLAGS) -o $@
+am_testXPath_OBJECTS = testXPath.$(OBJEXT)
+testXPath_OBJECTS = $(am_testXPath_OBJECTS)
+testXPath_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testXPath_LDFLAGS) $(LDFLAGS) -o $@
+am_testapi_OBJECTS = testapi.$(OBJEXT)
+testapi_OBJECTS = $(am_testapi_OBJECTS)
+testapi_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testapi_LDFLAGS) $(LDFLAGS) -o $@
+am_testchar_OBJECTS = testchar.$(OBJEXT)
+testchar_OBJECTS = $(am_testchar_OBJECTS)
+testchar_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testchar_LDFLAGS) $(LDFLAGS) -o $@
+am_testdict_OBJECTS = testdict.$(OBJEXT)
+testdict_OBJECTS = $(am_testdict_OBJECTS)
+testdict_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testdict_LDFLAGS) $(LDFLAGS) -o $@
+am_testlimits_OBJECTS = testlimits.$(OBJEXT)
+testlimits_OBJECTS = $(am_testlimits_OBJECTS)
+testlimits_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testlimits_LDFLAGS) $(LDFLAGS) -o $@
+am_testrecurse_OBJECTS = testrecurse.$(OBJEXT)
+testrecurse_OBJECTS = $(am_testrecurse_OBJECTS)
+testrecurse_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testrecurse_LDFLAGS) $(LDFLAGS) -o $@
+am_xmlcatalog_OBJECTS = xmlcatalog.$(OBJEXT)
+xmlcatalog_OBJECTS = $(am_xmlcatalog_OBJECTS)
+xmlcatalog_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(xmlcatalog_LDFLAGS) $(LDFLAGS) -o $@
+am_xmllint_OBJECTS = xmllint.$(OBJEXT)
+xmllint_OBJECTS = $(am_xmllint_OBJECTS)
+xmllint_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(xmllint_LDFLAGS) $(LDFLAGS) -o $@
+SCRIPTS = $(bin_SCRIPTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/DOCBparser.Plo \
+ ./$(DEPDIR)/HTMLparser.Plo ./$(DEPDIR)/HTMLtree.Plo \
+ ./$(DEPDIR)/SAX.Plo ./$(DEPDIR)/SAX2.Plo ./$(DEPDIR)/buf.Plo \
+ ./$(DEPDIR)/c14n.Plo ./$(DEPDIR)/catalog.Plo \
+ ./$(DEPDIR)/chvalid.Plo ./$(DEPDIR)/debugXML.Plo \
+ ./$(DEPDIR)/dict.Plo ./$(DEPDIR)/encoding.Plo \
+ ./$(DEPDIR)/entities.Plo ./$(DEPDIR)/error.Plo \
+ ./$(DEPDIR)/globals.Plo ./$(DEPDIR)/hash.Plo \
+ ./$(DEPDIR)/legacy.Plo ./$(DEPDIR)/list.Plo \
+ ./$(DEPDIR)/nanoftp.Plo ./$(DEPDIR)/nanohttp.Plo \
+ ./$(DEPDIR)/parser.Plo ./$(DEPDIR)/parserInternals.Plo \
+ ./$(DEPDIR)/pattern.Plo ./$(DEPDIR)/relaxng.Plo \
+ ./$(DEPDIR)/runsuite.Po ./$(DEPDIR)/runtest.Po \
+ ./$(DEPDIR)/runxmlconf.Po ./$(DEPDIR)/schematron.Plo \
+ ./$(DEPDIR)/testAutomata.Po ./$(DEPDIR)/testC14N.Po \
+ ./$(DEPDIR)/testHTML.Po ./$(DEPDIR)/testModule.Po \
+ ./$(DEPDIR)/testReader.Po ./$(DEPDIR)/testRegexp.Po \
+ ./$(DEPDIR)/testRelax.Po ./$(DEPDIR)/testSAX.Po \
+ ./$(DEPDIR)/testSchemas.Po ./$(DEPDIR)/testThreads.Po \
+ ./$(DEPDIR)/testURI.Po ./$(DEPDIR)/testXPath.Po \
+ ./$(DEPDIR)/testapi.Po ./$(DEPDIR)/testchar.Po \
+ ./$(DEPDIR)/testdict.Po ./$(DEPDIR)/testdso.Plo \
+ ./$(DEPDIR)/testlimits.Po ./$(DEPDIR)/testrecurse.Po \
+ ./$(DEPDIR)/threads.Plo ./$(DEPDIR)/tree.Plo \
+ ./$(DEPDIR)/trio.Plo ./$(DEPDIR)/triostr.Plo \
+ ./$(DEPDIR)/uri.Plo ./$(DEPDIR)/valid.Plo \
+ ./$(DEPDIR)/xinclude.Plo ./$(DEPDIR)/xlink.Plo \
+ ./$(DEPDIR)/xmlIO.Plo ./$(DEPDIR)/xmlcatalog.Po \
+ ./$(DEPDIR)/xmllint.Po ./$(DEPDIR)/xmlmemory.Plo \
+ ./$(DEPDIR)/xmlmodule.Plo ./$(DEPDIR)/xmlreader.Plo \
+ ./$(DEPDIR)/xmlregexp.Plo ./$(DEPDIR)/xmlsave.Plo \
+ ./$(DEPDIR)/xmlschemas.Plo ./$(DEPDIR)/xmlschemastypes.Plo \
+ ./$(DEPDIR)/xmlstring.Plo ./$(DEPDIR)/xmlunicode.Plo \
+ ./$(DEPDIR)/xmlwriter.Plo ./$(DEPDIR)/xpath.Plo \
+ ./$(DEPDIR)/xpointer.Plo ./$(DEPDIR)/xzlib.Plo
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libxml2_la_SOURCES) $(testdso_la_SOURCES) \
+ $(runsuite_SOURCES) $(runtest_SOURCES) $(runxmlconf_SOURCES) \
+ $(testAutomata_SOURCES) $(testC14N_SOURCES) \
+ $(testHTML_SOURCES) $(testModule_SOURCES) \
+ $(testReader_SOURCES) $(testRegexp_SOURCES) \
+ $(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \
+ $(testThreads_SOURCES) $(testURI_SOURCES) $(testXPath_SOURCES) \
+ $(testapi_SOURCES) $(testchar_SOURCES) $(testdict_SOURCES) \
+ $(testlimits_SOURCES) $(testrecurse_SOURCES) \
+ $(xmlcatalog_SOURCES) $(xmllint_SOURCES)
+DIST_SOURCES = $(am__libxml2_la_SOURCES_DIST) $(testdso_la_SOURCES) \
+ $(runsuite_SOURCES) $(runtest_SOURCES) $(runxmlconf_SOURCES) \
+ $(testAutomata_SOURCES) $(testC14N_SOURCES) \
+ $(testHTML_SOURCES) $(testModule_SOURCES) \
+ $(testReader_SOURCES) $(testRegexp_SOURCES) \
+ $(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \
+ $(testThreads_SOURCES) $(testURI_SOURCES) $(testXPath_SOURCES) \
+ $(testapi_SOURCES) $(testchar_SOURCES) $(testdict_SOURCES) \
+ $(testlimits_SOURCES) $(testrecurse_SOURCES) \
+ $(xmlcatalog_SOURCES) $(xmllint_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+man1dir = $(mandir)/man1
+man3dir = $(mandir)/man3
+NROFF = nroff
+MANS = $(man_MANS)
+DATA = $(cmake_DATA) $(confexec_DATA) $(m4data_DATA) $(pkgconfig_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ cscope distdir distdir-am dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+ $(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(srcdir)/libxml-2.0-uninstalled.pc.in \
+ $(srcdir)/libxml-2.0.pc.in $(srcdir)/libxml.spec.in \
+ $(srcdir)/libxml2-config.cmake.in $(srcdir)/xml2-config.in \
+ AUTHORS COPYING ChangeLog INSTALL NEWS README TODO compile \
+ config.guess config.sub depcomp install-sh ltmain.sh missing
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BASE_THREAD_LIBS = @BASE_THREAD_LIBS@
+C14N_OBJ = @C14N_OBJ@
+CATALOG_OBJ = @CATALOG_OBJ@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+CYGWIN_EXTRA_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@
+CYGWIN_EXTRA_PYTHON_LIBADD = @CYGWIN_EXTRA_PYTHON_LIBADD@
+DEBUG_OBJ = @DEBUG_OBJ@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOCB_OBJ = @DOCB_OBJ@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+FGREP = @FGREP@
+FTP_OBJ = @FTP_OBJ@
+GREP = @GREP@
+HAVE_ISINF = @HAVE_ISINF@
+HAVE_ISNAN = @HAVE_ISNAN@
+HTML_DIR = @HTML_DIR@
+HTML_OBJ = @HTML_OBJ@
+HTTP_OBJ = @HTTP_OBJ@
+ICONV_LIBS = @ICONV_LIBS@
+ICU_CFLAGS = @ICU_CFLAGS@
+ICU_LIBS = @ICU_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_MAJOR_VERSION = @LIBXML_MAJOR_VERSION@
+LIBXML_MICRO_VERSION = @LIBXML_MICRO_VERSION@
+LIBXML_MINOR_VERSION = @LIBXML_MINOR_VERSION@
+LIBXML_VERSION = @LIBXML_VERSION@
+LIBXML_VERSION_EXTRA = @LIBXML_VERSION_EXTRA@
+LIBXML_VERSION_INFO = @LIBXML_VERSION_INFO@
+LIBXML_VERSION_NUMBER = @LIBXML_VERSION_NUMBER@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+LZMA_CFLAGS = @LZMA_CFLAGS@
+LZMA_LIBS = @LZMA_LIBS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MODULE_EXTENSION = @MODULE_EXTENSION@
+MODULE_PLATFORM_LIBS = @MODULE_PLATFORM_LIBS@
+MV = @MV@
+M_LIBS = @M_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_TESTS = @PYTHON_TESTS@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RDL_LIBS = @RDL_LIBS@
+READER_TEST = @READER_TEST@
+RELDATE = @RELDATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+TEST_C14N = @TEST_C14N@
+TEST_CATALOG = @TEST_CATALOG@
+TEST_DEBUG = @TEST_DEBUG@
+TEST_HTML = @TEST_HTML@
+TEST_MODULES = @TEST_MODULES@
+TEST_PATTERN = @TEST_PATTERN@
+TEST_PHTML = @TEST_PHTML@
+TEST_PUSH = @TEST_PUSH@
+TEST_REGEXPS = @TEST_REGEXPS@
+TEST_SAX = @TEST_SAX@
+TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
+TEST_THREADS = @TEST_THREADS@
+TEST_VALID = @TEST_VALID@
+TEST_VTIME = @TEST_VTIME@
+TEST_XINCLUDE = @TEST_XINCLUDE@
+TEST_XPATH = @TEST_XPATH@
+TEST_XPTR = @TEST_XPTR@
+THREAD_CFLAGS = @THREAD_CFLAGS@
+THREAD_LIBS = @THREAD_LIBS@
+VERSION = @VERSION@
+VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
+WGET = @WGET@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WIN32_EXTRA_PYTHON_LIBADD = @WIN32_EXTRA_PYTHON_LIBADD@
+WITH_C14N = @WITH_C14N@
+WITH_CATALOG = @WITH_CATALOG@
+WITH_DEBUG = @WITH_DEBUG@
+WITH_DOCB = @WITH_DOCB@
+WITH_FTP = @WITH_FTP@
+WITH_HTML = @WITH_HTML@
+WITH_HTTP = @WITH_HTTP@
+WITH_ICONV = @WITH_ICONV@
+WITH_ICU = @WITH_ICU@
+WITH_ISO8859X = @WITH_ISO8859X@
+WITH_LEGACY = @WITH_LEGACY@
+WITH_LZMA = @WITH_LZMA@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_OUTPUT = @WITH_OUTPUT@
+WITH_PATTERN = @WITH_PATTERN@
+WITH_PUSH = @WITH_PUSH@
+WITH_READER = @WITH_READER@
+WITH_REGEXPS = @WITH_REGEXPS@
+WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
+WITH_SAX1 = @WITH_SAX1@
+WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
+WITH_THREADS = @WITH_THREADS@
+WITH_THREAD_ALLOC = @WITH_THREAD_ALLOC@
+WITH_TREE = @WITH_TREE@
+WITH_TRIO = @WITH_TRIO@
+WITH_VALID = @WITH_VALID@
+WITH_WRITER = @WITH_WRITER@
+WITH_XINCLUDE = @WITH_XINCLUDE@
+WITH_XPATH = @WITH_XPATH@
+WITH_XPTR = @WITH_XPTR@
+WITH_ZLIB = @WITH_ZLIB@
+XINCLUDE_OBJ = @XINCLUDE_OBJ@
+XMLLINT = @XMLLINT@
+XML_CFLAGS = @XML_CFLAGS@
+XML_INCLUDEDIR = @XML_INCLUDEDIR@
+XML_LIBDIR = @XML_LIBDIR@
+XML_LIBS = @XML_LIBS@
+XML_LIBTOOLLIBS = @XML_LIBTOOLLIBS@
+XML_PRIVATE_LIBS = @XML_PRIVATE_LIBS@
+XPATH_OBJ = @XPATH_OBJ@
+XPTR_OBJ = @XPTR_OBJ@
+XSLTPROC = @XSLTPROC@
+Z_CFLAGS = @Z_CFLAGS@
+Z_LIBS = @Z_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pythondir = @pythondir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = include . doc example xstc $(PYTHON_SUBDIR)
+DIST_SUBDIRS = include . doc example python xstc
+AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include
+AM_CFLAGS = $(EXTRA_CFLAGS) $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS)
+bin_SCRIPTS = xml2-config
+lib_LTLIBRARIES = libxml2.la
+libxml2_la_LIBADD = $(ICU_LIBS) $(THREAD_LIBS) $(Z_LIBS) $(LZMA_LIBS) $(ICONV_LIBS) $(M_LIBS) $(WIN32_EXTRA_LIBADD)
+@USE_VERSION_SCRIPT_FALSE@LIBXML2_VERSION_SCRIPT =
+@USE_VERSION_SCRIPT_TRUE@LIBXML2_VERSION_SCRIPT = $(VERSION_SCRIPT_FLAGS)$(srcdir)/libxml2.syms
+libxml2_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) \
+ $(LIBXML2_VERSION_SCRIPT) \
+ -version-info $(LIBXML_VERSION_INFO) \
+ $(MODULE_PLATFORM_LIBS)
+
+@WITH_SAX1_SOURCES_FALSE@docb_sources =
+@WITH_SAX1_SOURCES_TRUE@docb_sources = DOCBparser.c
+@WITH_TRIO_SOURCES_FALSE@trio_sources =
+@WITH_TRIO_SOURCES_TRUE@trio_sources = triostr.c trio.c
+libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \
+ parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \
+ valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c \
+ xpointer.c xinclude.c nanohttp.c nanoftp.c \
+ $(docb_sources) \
+ catalog.c globals.c threads.c c14n.c xmlstring.c buf.c \
+ xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
+ $(trio_sources) \
+ xmlreader.c relaxng.c dict.c SAX2.c \
+ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \
+ xmlmodule.c schematron.c xzlib.c
+
+DEPS = $(top_builddir)/libxml2.la
+LDADDS = $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(LZMA_LIBS) $(ICONV_LIBS) $(M_LIBS) $(WIN32_EXTRA_LIBADD)
+man_MANS = xml2-config.1 libxml.3
+m4datadir = $(datadir)/aclocal
+m4data_DATA = libxml.m4
+runtest_SOURCES = runtest.c
+runtest_LDFLAGS =
+runtest_DEPENDENCIES = $(DEPS)
+runtest_LDADD = $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS)
+testrecurse_SOURCES = testrecurse.c
+testrecurse_LDFLAGS =
+testrecurse_DEPENDENCIES = $(DEPS)
+testrecurse_LDADD = $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS)
+testlimits_SOURCES = testlimits.c
+testlimits_LDFLAGS =
+testlimits_DEPENDENCIES = $(DEPS)
+testlimits_LDADD = $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS)
+testchar_SOURCES = testchar.c
+testchar_LDFLAGS =
+testchar_DEPENDENCIES = $(DEPS)
+testchar_LDADD = $(RDL_LIBS) $(LDADDS)
+testdict_SOURCES = testdict.c
+testdict_LDFLAGS =
+testdict_DEPENDENCIES = $(DEPS)
+testdict_LDADD = $(RDL_LIBS) $(LDADDS)
+runsuite_SOURCES = runsuite.c
+runsuite_LDFLAGS =
+runsuite_DEPENDENCIES = $(DEPS)
+runsuite_LDADD = $(RDL_LIBS) $(LDADDS)
+xmllint_SOURCES = xmllint.c
+xmllint_LDFLAGS =
+xmllint_DEPENDENCIES = $(DEPS)
+xmllint_LDADD = $(RDL_LIBS) $(LDADDS)
+testSAX_SOURCES = testSAX.c
+testSAX_LDFLAGS =
+testSAX_DEPENDENCIES = $(DEPS)
+testSAX_LDADD = $(LDADDS)
+testHTML_SOURCES = testHTML.c
+testHTML_LDFLAGS =
+testHTML_DEPENDENCIES = $(DEPS)
+testHTML_LDADD = $(LDADDS)
+xmlcatalog_SOURCES = xmlcatalog.c
+xmlcatalog_LDFLAGS =
+xmlcatalog_DEPENDENCIES = $(DEPS)
+xmlcatalog_LDADD = $(RDL_LIBS) $(LDADDS)
+testXPath_SOURCES = testXPath.c
+testXPath_LDFLAGS =
+testXPath_DEPENDENCIES = $(DEPS)
+testXPath_LDADD = $(LDADDS)
+testC14N_SOURCES = testC14N.c
+testC14N_LDFLAGS =
+testC14N_DEPENDENCIES = $(DEPS)
+testC14N_LDADD = $(LDADDS)
+testThreads_SOURCES = testThreads.c
+testThreads_LDFLAGS =
+testThreads_DEPENDENCIES = $(DEPS)
+testThreads_LDADD = $(BASE_THREAD_LIBS) $(LDADDS)
+testURI_SOURCES = testURI.c
+testURI_LDFLAGS =
+testURI_DEPENDENCIES = $(DEPS)
+testURI_LDADD = $(LDADDS)
+testRegexp_SOURCES = testRegexp.c
+testRegexp_LDFLAGS =
+testRegexp_DEPENDENCIES = $(DEPS)
+testRegexp_LDADD = $(LDADDS)
+testAutomata_SOURCES = testAutomata.c
+testAutomata_LDFLAGS =
+testAutomata_DEPENDENCIES = $(DEPS)
+testAutomata_LDADD = $(LDADDS)
+testSchemas_SOURCES = testSchemas.c
+testSchemas_LDFLAGS =
+testSchemas_DEPENDENCIES = $(DEPS)
+testSchemas_LDADD = $(LDADDS)
+testRelax_SOURCES = testRelax.c
+testRelax_LDFLAGS =
+testRelax_DEPENDENCIES = $(DEPS)
+testRelax_LDADD = $(LDADDS)
+testReader_SOURCES = testReader.c
+testReader_LDFLAGS =
+testReader_DEPENDENCIES = $(DEPS)
+testReader_LDADD = $(LDADDS)
+testModule_SOURCES = testModule.c
+testModule_LDFLAGS =
+testModule_DEPENDENCIES = $(DEPS)
+testModule_LDADD = $(LDADDS)
+noinst_LTLIBRARIES = testdso.la
+testdso_la_SOURCES = testdso.c
+testdso_la_LDFLAGS = -module -no-undefined -avoid-version -rpath $(libdir)
+BUILT_SOURCES = testapi.c
+testapi_SOURCES = testapi.c
+testapi_LDFLAGS =
+testapi_DEPENDENCIES = $(DEPS)
+testapi_LDADD = $(LDADDS)
+runxmlconf_SOURCES = runxmlconf.c
+runxmlconf_LDFLAGS =
+runxmlconf_DEPENDENCIES = $(DEPS)
+runxmlconf_LDADD = $(LDADDS)
+CLEANFILES = runxmlconf.log test.out xml2Conf.sh *.gcda *.gcno *.res
+DISTCLEANFILES = COPYING missing.lst
+confexecdir = $(libdir)
+confexec_DATA = xml2Conf.sh
+CVS_EXTRA_DIST =
+EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \
+ libxml.m4 Copyright check-xml-test-suite.py gentest.py \
+ check-relaxng-test-suite.py check-relaxng-test-suite2.py \
+ check-xsddata-test-suite.py check-xinclude-test-suite.py \
+ example/Makefile.am example/gjobread.c example/gjobs.xml \
+ $(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \
+ libxml2-config.cmake.in autogen.sh \
+ trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
+ triop.h triodef.h libxml.h elfgcchack.h xzlib.h buf.h \
+ enc.h save.h genUnicode.py TODO_SCHEMAS \
+ dbgen.pl dbgenattr.pl regressions.py regressions.xml \
+ README.tests Makefile.tests libxml2.syms timsort.h \
+ README.zOS \
+ $(CVS_EXTRA_DIST)
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libxml-2.0.pc
+cmakedir = $(libdir)/cmake/libxml2
+cmake_DATA = libxml2-config.cmake
+
+#
+# Install the tests program sources as examples
+#
+BASE_DIR = $(datadir)/doc
+DOC_MODULE = libxml2-$(VERSION)
+EXAMPLES_DIR = $(BASE_DIR)/$(DOC_MODULE)/examples
+
+#
+# Coverage support, largely borrowed from libvirt
+# Both binaries comes from the lcov package in Fedora
+#
+LCOV = /usr/bin/lcov
+GENHTML = /usr/bin/genhtml
+all: $(BUILT_SOURCES) config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+am--refresh: Makefile
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+libxml2.spec: $(top_builddir)/config.status $(srcdir)/libxml.spec.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+libxml-2.0.pc: $(top_builddir)/config.status $(srcdir)/libxml-2.0.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+libxml-2.0-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/libxml-2.0-uninstalled.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+libxml2-config.cmake: $(top_builddir)/config.status $(srcdir)/libxml2-config.cmake.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+xml2-config: $(top_builddir)/config.status $(srcdir)/xml2-config.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES) $(EXTRA_libxml2_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS)
+
+testdso.la: $(testdso_la_OBJECTS) $(testdso_la_DEPENDENCIES) $(EXTRA_testdso_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(testdso_la_LINK) $(testdso_la_OBJECTS) $(testdso_la_LIBADD) $(LIBS)
+
+runsuite$(EXEEXT): $(runsuite_OBJECTS) $(runsuite_DEPENDENCIES) $(EXTRA_runsuite_DEPENDENCIES)
+ @rm -f runsuite$(EXEEXT)
+ $(AM_V_CCLD)$(runsuite_LINK) $(runsuite_OBJECTS) $(runsuite_LDADD) $(LIBS)
+
+runtest$(EXEEXT): $(runtest_OBJECTS) $(runtest_DEPENDENCIES) $(EXTRA_runtest_DEPENDENCIES)
+ @rm -f runtest$(EXEEXT)
+ $(AM_V_CCLD)$(runtest_LINK) $(runtest_OBJECTS) $(runtest_LDADD) $(LIBS)
+
+runxmlconf$(EXEEXT): $(runxmlconf_OBJECTS) $(runxmlconf_DEPENDENCIES) $(EXTRA_runxmlconf_DEPENDENCIES)
+ @rm -f runxmlconf$(EXEEXT)
+ $(AM_V_CCLD)$(runxmlconf_LINK) $(runxmlconf_OBJECTS) $(runxmlconf_LDADD) $(LIBS)
+
+testAutomata$(EXEEXT): $(testAutomata_OBJECTS) $(testAutomata_DEPENDENCIES) $(EXTRA_testAutomata_DEPENDENCIES)
+ @rm -f testAutomata$(EXEEXT)
+ $(AM_V_CCLD)$(testAutomata_LINK) $(testAutomata_OBJECTS) $(testAutomata_LDADD) $(LIBS)
+
+testC14N$(EXEEXT): $(testC14N_OBJECTS) $(testC14N_DEPENDENCIES) $(EXTRA_testC14N_DEPENDENCIES)
+ @rm -f testC14N$(EXEEXT)
+ $(AM_V_CCLD)$(testC14N_LINK) $(testC14N_OBJECTS) $(testC14N_LDADD) $(LIBS)
+
+testHTML$(EXEEXT): $(testHTML_OBJECTS) $(testHTML_DEPENDENCIES) $(EXTRA_testHTML_DEPENDENCIES)
+ @rm -f testHTML$(EXEEXT)
+ $(AM_V_CCLD)$(testHTML_LINK) $(testHTML_OBJECTS) $(testHTML_LDADD) $(LIBS)
+
+testModule$(EXEEXT): $(testModule_OBJECTS) $(testModule_DEPENDENCIES) $(EXTRA_testModule_DEPENDENCIES)
+ @rm -f testModule$(EXEEXT)
+ $(AM_V_CCLD)$(testModule_LINK) $(testModule_OBJECTS) $(testModule_LDADD) $(LIBS)
+
+testReader$(EXEEXT): $(testReader_OBJECTS) $(testReader_DEPENDENCIES) $(EXTRA_testReader_DEPENDENCIES)
+ @rm -f testReader$(EXEEXT)
+ $(AM_V_CCLD)$(testReader_LINK) $(testReader_OBJECTS) $(testReader_LDADD) $(LIBS)
+
+testRegexp$(EXEEXT): $(testRegexp_OBJECTS) $(testRegexp_DEPENDENCIES) $(EXTRA_testRegexp_DEPENDENCIES)
+ @rm -f testRegexp$(EXEEXT)
+ $(AM_V_CCLD)$(testRegexp_LINK) $(testRegexp_OBJECTS) $(testRegexp_LDADD) $(LIBS)
+
+testRelax$(EXEEXT): $(testRelax_OBJECTS) $(testRelax_DEPENDENCIES) $(EXTRA_testRelax_DEPENDENCIES)
+ @rm -f testRelax$(EXEEXT)
+ $(AM_V_CCLD)$(testRelax_LINK) $(testRelax_OBJECTS) $(testRelax_LDADD) $(LIBS)
+
+testSAX$(EXEEXT): $(testSAX_OBJECTS) $(testSAX_DEPENDENCIES) $(EXTRA_testSAX_DEPENDENCIES)
+ @rm -f testSAX$(EXEEXT)
+ $(AM_V_CCLD)$(testSAX_LINK) $(testSAX_OBJECTS) $(testSAX_LDADD) $(LIBS)
+
+testSchemas$(EXEEXT): $(testSchemas_OBJECTS) $(testSchemas_DEPENDENCIES) $(EXTRA_testSchemas_DEPENDENCIES)
+ @rm -f testSchemas$(EXEEXT)
+ $(AM_V_CCLD)$(testSchemas_LINK) $(testSchemas_OBJECTS) $(testSchemas_LDADD) $(LIBS)
+
+testThreads$(EXEEXT): $(testThreads_OBJECTS) $(testThreads_DEPENDENCIES) $(EXTRA_testThreads_DEPENDENCIES)
+ @rm -f testThreads$(EXEEXT)
+ $(AM_V_CCLD)$(testThreads_LINK) $(testThreads_OBJECTS) $(testThreads_LDADD) $(LIBS)
+
+testURI$(EXEEXT): $(testURI_OBJECTS) $(testURI_DEPENDENCIES) $(EXTRA_testURI_DEPENDENCIES)
+ @rm -f testURI$(EXEEXT)
+ $(AM_V_CCLD)$(testURI_LINK) $(testURI_OBJECTS) $(testURI_LDADD) $(LIBS)
+
+testXPath$(EXEEXT): $(testXPath_OBJECTS) $(testXPath_DEPENDENCIES) $(EXTRA_testXPath_DEPENDENCIES)
+ @rm -f testXPath$(EXEEXT)
+ $(AM_V_CCLD)$(testXPath_LINK) $(testXPath_OBJECTS) $(testXPath_LDADD) $(LIBS)
+
+testapi$(EXEEXT): $(testapi_OBJECTS) $(testapi_DEPENDENCIES) $(EXTRA_testapi_DEPENDENCIES)
+ @rm -f testapi$(EXEEXT)
+ $(AM_V_CCLD)$(testapi_LINK) $(testapi_OBJECTS) $(testapi_LDADD) $(LIBS)
+
+testchar$(EXEEXT): $(testchar_OBJECTS) $(testchar_DEPENDENCIES) $(EXTRA_testchar_DEPENDENCIES)
+ @rm -f testchar$(EXEEXT)
+ $(AM_V_CCLD)$(testchar_LINK) $(testchar_OBJECTS) $(testchar_LDADD) $(LIBS)
+
+testdict$(EXEEXT): $(testdict_OBJECTS) $(testdict_DEPENDENCIES) $(EXTRA_testdict_DEPENDENCIES)
+ @rm -f testdict$(EXEEXT)
+ $(AM_V_CCLD)$(testdict_LINK) $(testdict_OBJECTS) $(testdict_LDADD) $(LIBS)
+
+testlimits$(EXEEXT): $(testlimits_OBJECTS) $(testlimits_DEPENDENCIES) $(EXTRA_testlimits_DEPENDENCIES)
+ @rm -f testlimits$(EXEEXT)
+ $(AM_V_CCLD)$(testlimits_LINK) $(testlimits_OBJECTS) $(testlimits_LDADD) $(LIBS)
+
+testrecurse$(EXEEXT): $(testrecurse_OBJECTS) $(testrecurse_DEPENDENCIES) $(EXTRA_testrecurse_DEPENDENCIES)
+ @rm -f testrecurse$(EXEEXT)
+ $(AM_V_CCLD)$(testrecurse_LINK) $(testrecurse_OBJECTS) $(testrecurse_LDADD) $(LIBS)
+
+xmlcatalog$(EXEEXT): $(xmlcatalog_OBJECTS) $(xmlcatalog_DEPENDENCIES) $(EXTRA_xmlcatalog_DEPENDENCIES)
+ @rm -f xmlcatalog$(EXEEXT)
+ $(AM_V_CCLD)$(xmlcatalog_LINK) $(xmlcatalog_OBJECTS) $(xmlcatalog_LDADD) $(LIBS)
+
+xmllint$(EXEEXT): $(xmllint_OBJECTS) $(xmllint_DEPENDENCIES) $(EXTRA_xmllint_DEPENDENCIES)
+ @rm -f xmllint$(EXEEXT)
+ $(AM_V_CCLD)$(xmllint_LINK) $(xmllint_OBJECTS) $(xmllint_LDADD) $(LIBS)
+install-binSCRIPTS: $(bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DOCBparser.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HTMLparser.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HTMLtree.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SAX.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SAX2.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buf.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c14n.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/catalog.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chvalid.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debugXML.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dict.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encoding.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/entities.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/globals.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/legacy.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nanoftp.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nanohttp.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parser.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parserInternals.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pattern.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/relaxng.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/runsuite.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/runtest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/runxmlconf.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/schematron.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testAutomata.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testC14N.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testHTML.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testModule.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testReader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testRegexp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testRelax.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testSAX.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testSchemas.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testThreads.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testURI.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testXPath.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testapi.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testchar.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdict.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdso.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testlimits.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testrecurse.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tree.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trio.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/triostr.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uri.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/valid.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xinclude.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xlink.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlIO.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlcatalog.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmllint.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlmemory.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlmodule.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlreader.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlregexp.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlsave.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlschemas.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlschemastypes.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlstring.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlunicode.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlwriter.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xpath.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xpointer.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xzlib.Plo@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool config.lt
+install-man1: $(man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+install-man3: $(man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(man_MANS)'; \
+ test -n "$(man3dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.3[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man3:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man3dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.3[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir)
+install-cmakeDATA: $(cmake_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(cmake_DATA)'; test -n "$(cmakedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(cmakedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(cmakedir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(cmakedir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(cmakedir)" || exit $$?; \
+ done
+
+uninstall-cmakeDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(cmake_DATA)'; test -n "$(cmakedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(cmakedir)'; $(am__uninstall_files_from_dir)
+install-confexecDATA: $(confexec_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(confexec_DATA)'; test -n "$(confexecdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(confexecdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(confexecdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(confexecdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(confexecdir)" || exit $$?; \
+ done
+
+uninstall-confexecDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(confexec_DATA)'; test -n "$(confexecdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(confexecdir)'; $(am__uninstall_files_from_dir)
+install-m4dataDATA: $(m4data_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(m4data_DATA)'; test -n "$(m4datadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(m4datadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(m4datadir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(m4datadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(m4datadir)" || exit $$?; \
+ done
+
+uninstall-m4dataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(m4data_DATA)'; test -n "$(m4datadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(m4datadir)'; $(am__uninstall_files_from_dir)
+install-pkgconfigDATA: $(pkgconfig_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+ done
+
+uninstall-pkgconfigDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__post_remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
+all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(SCRIPTS) $(MANS) $(DATA) \
+ config.h
+install-binPROGRAMS: install-libLTLIBRARIES
+
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(confexecdir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-recursive
+
+clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f ./$(DEPDIR)/DOCBparser.Plo
+ -rm -f ./$(DEPDIR)/HTMLparser.Plo
+ -rm -f ./$(DEPDIR)/HTMLtree.Plo
+ -rm -f ./$(DEPDIR)/SAX.Plo
+ -rm -f ./$(DEPDIR)/SAX2.Plo
+ -rm -f ./$(DEPDIR)/buf.Plo
+ -rm -f ./$(DEPDIR)/c14n.Plo
+ -rm -f ./$(DEPDIR)/catalog.Plo
+ -rm -f ./$(DEPDIR)/chvalid.Plo
+ -rm -f ./$(DEPDIR)/debugXML.Plo
+ -rm -f ./$(DEPDIR)/dict.Plo
+ -rm -f ./$(DEPDIR)/encoding.Plo
+ -rm -f ./$(DEPDIR)/entities.Plo
+ -rm -f ./$(DEPDIR)/error.Plo
+ -rm -f ./$(DEPDIR)/globals.Plo
+ -rm -f ./$(DEPDIR)/hash.Plo
+ -rm -f ./$(DEPDIR)/legacy.Plo
+ -rm -f ./$(DEPDIR)/list.Plo
+ -rm -f ./$(DEPDIR)/nanoftp.Plo
+ -rm -f ./$(DEPDIR)/nanohttp.Plo
+ -rm -f ./$(DEPDIR)/parser.Plo
+ -rm -f ./$(DEPDIR)/parserInternals.Plo
+ -rm -f ./$(DEPDIR)/pattern.Plo
+ -rm -f ./$(DEPDIR)/relaxng.Plo
+ -rm -f ./$(DEPDIR)/runsuite.Po
+ -rm -f ./$(DEPDIR)/runtest.Po
+ -rm -f ./$(DEPDIR)/runxmlconf.Po
+ -rm -f ./$(DEPDIR)/schematron.Plo
+ -rm -f ./$(DEPDIR)/testAutomata.Po
+ -rm -f ./$(DEPDIR)/testC14N.Po
+ -rm -f ./$(DEPDIR)/testHTML.Po
+ -rm -f ./$(DEPDIR)/testModule.Po
+ -rm -f ./$(DEPDIR)/testReader.Po
+ -rm -f ./$(DEPDIR)/testRegexp.Po
+ -rm -f ./$(DEPDIR)/testRelax.Po
+ -rm -f ./$(DEPDIR)/testSAX.Po
+ -rm -f ./$(DEPDIR)/testSchemas.Po
+ -rm -f ./$(DEPDIR)/testThreads.Po
+ -rm -f ./$(DEPDIR)/testURI.Po
+ -rm -f ./$(DEPDIR)/testXPath.Po
+ -rm -f ./$(DEPDIR)/testapi.Po
+ -rm -f ./$(DEPDIR)/testchar.Po
+ -rm -f ./$(DEPDIR)/testdict.Po
+ -rm -f ./$(DEPDIR)/testdso.Plo
+ -rm -f ./$(DEPDIR)/testlimits.Po
+ -rm -f ./$(DEPDIR)/testrecurse.Po
+ -rm -f ./$(DEPDIR)/threads.Plo
+ -rm -f ./$(DEPDIR)/tree.Plo
+ -rm -f ./$(DEPDIR)/trio.Plo
+ -rm -f ./$(DEPDIR)/triostr.Plo
+ -rm -f ./$(DEPDIR)/uri.Plo
+ -rm -f ./$(DEPDIR)/valid.Plo
+ -rm -f ./$(DEPDIR)/xinclude.Plo
+ -rm -f ./$(DEPDIR)/xlink.Plo
+ -rm -f ./$(DEPDIR)/xmlIO.Plo
+ -rm -f ./$(DEPDIR)/xmlcatalog.Po
+ -rm -f ./$(DEPDIR)/xmllint.Po
+ -rm -f ./$(DEPDIR)/xmlmemory.Plo
+ -rm -f ./$(DEPDIR)/xmlmodule.Plo
+ -rm -f ./$(DEPDIR)/xmlreader.Plo
+ -rm -f ./$(DEPDIR)/xmlregexp.Plo
+ -rm -f ./$(DEPDIR)/xmlsave.Plo
+ -rm -f ./$(DEPDIR)/xmlschemas.Plo
+ -rm -f ./$(DEPDIR)/xmlschemastypes.Plo
+ -rm -f ./$(DEPDIR)/xmlstring.Plo
+ -rm -f ./$(DEPDIR)/xmlunicode.Plo
+ -rm -f ./$(DEPDIR)/xmlwriter.Plo
+ -rm -f ./$(DEPDIR)/xpath.Plo
+ -rm -f ./$(DEPDIR)/xpointer.Plo
+ -rm -f ./$(DEPDIR)/xzlib.Plo
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-hdr distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-cmakeDATA install-data-local \
+ install-m4dataDATA install-man install-pkgconfigDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS install-binSCRIPTS \
+ install-confexecDATA install-libLTLIBRARIES
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man: install-man1 install-man3
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f ./$(DEPDIR)/DOCBparser.Plo
+ -rm -f ./$(DEPDIR)/HTMLparser.Plo
+ -rm -f ./$(DEPDIR)/HTMLtree.Plo
+ -rm -f ./$(DEPDIR)/SAX.Plo
+ -rm -f ./$(DEPDIR)/SAX2.Plo
+ -rm -f ./$(DEPDIR)/buf.Plo
+ -rm -f ./$(DEPDIR)/c14n.Plo
+ -rm -f ./$(DEPDIR)/catalog.Plo
+ -rm -f ./$(DEPDIR)/chvalid.Plo
+ -rm -f ./$(DEPDIR)/debugXML.Plo
+ -rm -f ./$(DEPDIR)/dict.Plo
+ -rm -f ./$(DEPDIR)/encoding.Plo
+ -rm -f ./$(DEPDIR)/entities.Plo
+ -rm -f ./$(DEPDIR)/error.Plo
+ -rm -f ./$(DEPDIR)/globals.Plo
+ -rm -f ./$(DEPDIR)/hash.Plo
+ -rm -f ./$(DEPDIR)/legacy.Plo
+ -rm -f ./$(DEPDIR)/list.Plo
+ -rm -f ./$(DEPDIR)/nanoftp.Plo
+ -rm -f ./$(DEPDIR)/nanohttp.Plo
+ -rm -f ./$(DEPDIR)/parser.Plo
+ -rm -f ./$(DEPDIR)/parserInternals.Plo
+ -rm -f ./$(DEPDIR)/pattern.Plo
+ -rm -f ./$(DEPDIR)/relaxng.Plo
+ -rm -f ./$(DEPDIR)/runsuite.Po
+ -rm -f ./$(DEPDIR)/runtest.Po
+ -rm -f ./$(DEPDIR)/runxmlconf.Po
+ -rm -f ./$(DEPDIR)/schematron.Plo
+ -rm -f ./$(DEPDIR)/testAutomata.Po
+ -rm -f ./$(DEPDIR)/testC14N.Po
+ -rm -f ./$(DEPDIR)/testHTML.Po
+ -rm -f ./$(DEPDIR)/testModule.Po
+ -rm -f ./$(DEPDIR)/testReader.Po
+ -rm -f ./$(DEPDIR)/testRegexp.Po
+ -rm -f ./$(DEPDIR)/testRelax.Po
+ -rm -f ./$(DEPDIR)/testSAX.Po
+ -rm -f ./$(DEPDIR)/testSchemas.Po
+ -rm -f ./$(DEPDIR)/testThreads.Po
+ -rm -f ./$(DEPDIR)/testURI.Po
+ -rm -f ./$(DEPDIR)/testXPath.Po
+ -rm -f ./$(DEPDIR)/testapi.Po
+ -rm -f ./$(DEPDIR)/testchar.Po
+ -rm -f ./$(DEPDIR)/testdict.Po
+ -rm -f ./$(DEPDIR)/testdso.Plo
+ -rm -f ./$(DEPDIR)/testlimits.Po
+ -rm -f ./$(DEPDIR)/testrecurse.Po
+ -rm -f ./$(DEPDIR)/threads.Plo
+ -rm -f ./$(DEPDIR)/tree.Plo
+ -rm -f ./$(DEPDIR)/trio.Plo
+ -rm -f ./$(DEPDIR)/triostr.Plo
+ -rm -f ./$(DEPDIR)/uri.Plo
+ -rm -f ./$(DEPDIR)/valid.Plo
+ -rm -f ./$(DEPDIR)/xinclude.Plo
+ -rm -f ./$(DEPDIR)/xlink.Plo
+ -rm -f ./$(DEPDIR)/xmlIO.Plo
+ -rm -f ./$(DEPDIR)/xmlcatalog.Po
+ -rm -f ./$(DEPDIR)/xmllint.Po
+ -rm -f ./$(DEPDIR)/xmlmemory.Plo
+ -rm -f ./$(DEPDIR)/xmlmodule.Plo
+ -rm -f ./$(DEPDIR)/xmlreader.Plo
+ -rm -f ./$(DEPDIR)/xmlregexp.Plo
+ -rm -f ./$(DEPDIR)/xmlsave.Plo
+ -rm -f ./$(DEPDIR)/xmlschemas.Plo
+ -rm -f ./$(DEPDIR)/xmlschemastypes.Plo
+ -rm -f ./$(DEPDIR)/xmlstring.Plo
+ -rm -f ./$(DEPDIR)/xmlunicode.Plo
+ -rm -f ./$(DEPDIR)/xmlwriter.Plo
+ -rm -f ./$(DEPDIR)/xpath.Plo
+ -rm -f ./$(DEPDIR)/xpointer.Plo
+ -rm -f ./$(DEPDIR)/xzlib.Plo
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
+ uninstall-cmakeDATA uninstall-confexecDATA \
+ uninstall-libLTLIBRARIES uninstall-local uninstall-m4dataDATA \
+ uninstall-man uninstall-pkgconfigDATA
+
+uninstall-man: uninstall-man1 uninstall-man3
+
+.MAKE: $(am__recursive_targets) all check check-am install install-am \
+ install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--depfiles am--refresh check check-am clean \
+ clean-binPROGRAMS clean-checkPROGRAMS clean-cscope \
+ clean-generic clean-libLTLIBRARIES clean-libtool \
+ clean-noinstLTLIBRARIES cscope cscopelist-am ctags ctags-am \
+ dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzip \
+ dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
+ distclean-compile distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-binPROGRAMS install-binSCRIPTS \
+ install-cmakeDATA install-confexecDATA install-data \
+ install-data-am install-data-local install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-libLTLIBRARIES \
+ install-m4dataDATA install-man install-man1 install-man3 \
+ install-pdf install-pdf-am install-pkgconfigDATA install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
+ uninstall-binSCRIPTS uninstall-cmakeDATA \
+ uninstall-confexecDATA uninstall-libLTLIBRARIES \
+ uninstall-local uninstall-m4dataDATA uninstall-man \
+ uninstall-man1 uninstall-man3 uninstall-pkgconfigDATA
+
+.PRECIOUS: Makefile
+
+
+# that one forces the rebuild when "make rebuild" is run on doc/
+rebuild_testapi:
+ -@(if [ "$(PYTHON)" != "" ] ; then \
+ $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
+
+# that one is just to make sure it is rebuilt if missing
+# but adding the dependances generate mess
+testapi.c: $(srcdir)/gentest.py
+ -@(if [ "$(PYTHON)" != "" ] ; then \
+ $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
+
+#testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c
+#testOOM_LDFLAGS =
+#testOOM_DEPENDENCIES = $(DEPS)
+#testOOM_LDADD= $(LDADDS)
+
+runtests: runtest$(EXEEXT) testrecurse$(EXEEXT) testapi$(EXEEXT) \
+ testchar$(EXEEXT) testdict$(EXEEXT) runxmlconf$(EXEEXT)
+ [ -d test ] || $(LN_S) $(srcdir)/test .
+ [ -d result ] || $(LN_S) $(srcdir)/result .
+ $(CHECKER) ./runtest$(EXEEXT) && \
+ $(CHECKER) ./testrecurse$(EXEEXT) && \
+ ASAN_OPTIONS="$$ASAN_OPTIONS:detect_leaks=0" $(CHECKER) ./testapi$(EXEEXT) && \
+ $(CHECKER) ./testchar$(EXEEXT) && \
+ $(CHECKER) ./testdict$(EXEEXT) && \
+ $(CHECKER) ./runxmlconf$(EXEEXT)
+ @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
+ $(MAKE) tests ; fi)
+
+check: all runtests
+
+check-valgrind valgrind: all
+ @echo '## Running the regression tests under Valgrind'
+ @echo '## Go get a cup of coffee it is gonna take a while ...'
+ $(MAKE) CHECKER='valgrind -q' runtests
+
+asan:
+ @echo '## rebuilding for ASAN'
+ ./configure CFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g" CXXFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g" LDFLAGS="-fsanitize=address,undefined" CC="clang" CXX="clang++" --disable-shared ; OptimOff ; $(MAKE) clean ; $(MAKE)
+
+testall : tests SVGtests SAXtests
+
+tests: XMLtests XMLenttests NStests IDtests Errtests APItests $(READER_TEST) $(TEST_SAX) $(TEST_PUSH) $(TEST_HTML) $(TEST_PHTML) $(TEST_VALID) URItests $(TEST_PATTERN) $(TEST_XPATH) $(TEST_XPTR) $(TEST_XINCLUDE) $(TEST_C14N) $(TEST_DEBUG) $(TEST_CATALOG) $(TEST_REGEXPS) $(TEST_SCHEMAS) $(TEST_SCHEMATRON) $(TEST_THREADS) Timingtests $(TEST_VTIME) $(PYTHON_TESTS) $(TEST_MODULES)
+ @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
+ $(MAKE) -s tests ; fi)
+ @(cd doc/examples ; $(MAKE) -s tests)
+
+APItests: testapi$(EXEEXT)
+ @echo "## Running the API regression tests this may take a little while"
+ -@(ASAN_OPTIONS="$$ASAN_OPTIONS:detect_leaks=0" $(CHECKER) $(top_builddir)/testapi -q)
+
+HTMLtests : testHTML$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## HTML regression tests"
+ -@(for i in $(srcdir)/test/HTML/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testHTML $$i > result.$$name 2> error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/HTML/$$name result.$$name ; \
+ diff -b $(srcdir)/result/HTML/$$name.err error.$$name ; \
+ $(CHECKER) $(top_builddir)/testHTML result.$$name > result2.$$name 2>error.$$name ; \
+ diff result.$$name result2.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result2.$$name error.$$name ; \
+ fi ; fi ; done)
+
+HTMLPushtests : testHTML$(EXEEXT)
+ @echo "## Push HTML regression tests"
+ -@(for i in $(srcdir)/test/HTML/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testHTML --push $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testHTML --push $$i > result.$$name 2> error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/HTML/$$name result.$$name ; \
+ cut -b 1-15 $(srcdir)/result/HTML/$$name.err > errorcut.$$name; \
+ cut -b 1-15 error.$$name > errorcut2.$$name; \
+ diff -b errorcut.$$name errorcut2.$$name ; \
+ $(CHECKER) $(top_builddir)/testHTML --push result.$$name > result2.$$name 2>error.$$name ; \
+ diff result.$$name result2.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result2.$$name error.$$name errorcut.$$name errorcut2.$$name ; \
+ fi ; fi ; done)
+ @echo "## HTML SAX regression tests"
+ -@(for i in $(srcdir)/test/HTML/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/HTML/$$name.sax ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testHTML --sax $$i > result.$$name.sax ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name.sax ; \
+ fi ; fi ; done)
+ @echo "## Push HTML SAX regression tests"
+ -@(for i in $(srcdir)/test/HTML/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testHTML --push --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testHTML --push --sax $$i 2>&1 > result.$$name.sax ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name.sax ; \
+ fi ; fi ; done)
+
+XMLtests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XML regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/$$name result.$$name ; \
+ $(CHECKER) $(top_builddir)/xmllint result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff result.$$name result2.$$name` ;\
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result2.$$name ; \
+ fi ; fi ; done)
+ @echo "## XML regression tests on memory"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --memory $$i > $(srcdir)/result/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --memory $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name result.$$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --memory result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"`; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ diff result.$$name result2.$$name ; \
+ rm result.$$name result2.$$name ; \
+ fi ; fi ; done)
+
+XMLPushtests: xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XML push regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --push $$i > $(srcdir)/result/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --push $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/$$name result.$$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --push result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff result.$$name result2.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result2.$$name ; \
+ fi ; fi ; done)
+
+NStests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XML Namespaces regression tests"
+ -@(for i in $(srcdir)/test/namespaces/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/namespaces/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint $$i \
+ 2> $(srcdir)/result/namespaces/$$name.err \
+ > $(srcdir)/result/namespaces/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/namespaces/$$name result.$$name ; \
+ diff $(srcdir)/result/namespaces/$$name.err error.$$name`; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+
+IDtests : xmllint$(EXEEXT) testXPath$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## xml:id regression tests"
+ -@(for i in $(srcdir)/test/xmlid/id_*.xml ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/xmlid/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testXPath -i $$i "id('bar')" \
+ 2> $(srcdir)/result/xmlid/$$name.err \
+ > $(srcdir)/result/xmlid/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testXPath -i $$i "id('bar')" 2> error.$$name > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/xmlid/$$name result.$$name ; \
+ diff $(srcdir)/result/xmlid/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+
+Errtests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Error cases regression tests"
+ -@(for i in $(srcdir)/test/errors/*.xml ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/errors/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint $$i \
+ 2> $(srcdir)/result/errors/$$name.err \
+ > $(srcdir)/result/errors/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/errors/$$name result.$$name ; \
+ diff $(srcdir)/result/errors/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ @echo "## Error cases regression tests (old 1.0)"
+ -@(for i in $(srcdir)/test/errors10/*.xml ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/errors10/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i \
+ 2> $(srcdir)/result/errors10/$$name.err \
+ > $(srcdir)/result/errors10/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i 2> error.$$name > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/errors10/$$name result.$$name ; \
+ diff $(srcdir)/result/errors10/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ @echo "## Error cases stream regression tests"
+ -@(for i in $(srcdir)/test/errors/*.xml ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/errors/$$name.str ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --stream $$i \
+ 2> $(srcdir)/result/errors/$$name.str \
+ > /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --stream $$i 2> error.$$name > /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/errors/$$name.str error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm error.$$name ; \
+ fi ; fi ; done)
+
+Docbtests : xmllint$(EXEEXT)
+
+XMLenttests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XML entity subst regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/noent/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --noent $$i > $(srcdir)/result/noent/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --noent $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/noent/$$name result.$$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --noent result.$$name 2>&1 > result2.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff result.$$name result2.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result2.$$name ; \
+ fi ; fi ; done)
+
+URItests : testURI$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## URI module regression tests"
+ -@(for i in $(srcdir)/test/URI/*.data ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i > $(srcdir)/result/URI/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/URI/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ -@(for i in $(srcdir)/test/URI/*.uri ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testURI < $$i > $(srcdir)/result/URI/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testURI < $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/URI/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+XPathtests : testXPath$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XPath regression tests"
+ -@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
+ then echo Skipping debug not compiled in ; exit 0 ; fi ; \
+ for i in $(srcdir)/test/XPath/expr/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/XPath/expr/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > $(srcdir)/result/XPath/expr/$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testXPath -f --expr $$i > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XPath/expr/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done ; \
+ for i in $(srcdir)/test/XPath/docs/* ; do \
+ if [ ! -d $$i ] ; then \
+ doc=`basename $$i`; \
+ for j in $(srcdir)/test/XPath/tests/$$doc* ; do \
+ if [ ! -f $$j ] ; then continue ; fi ; \
+ name=`basename $$j`; \
+ if [ ! -d $$j ] ; then \
+ if [ ! -f $(srcdir)/result/XPath/tests/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > $(srcdir)/result/XPath/tests/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XPath/tests/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done ; fi ; done)
+
+XPtrtests : testXPath$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XPointer regression tests"
+ -@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
+ then echo Skipping debug not compiled in ; exit 0 ; fi ; \
+ for i in $(srcdir)/test/XPath/docs/* ; do \
+ if [ ! -d $$i ] ; then \
+ doc=`basename $$i`; \
+ for j in $(srcdir)/test/XPath/xptr/$$doc* ; do \
+ if [ ! -f $$j ] ; then continue ; fi ; \
+ name=`basename $$j`; \
+ if [ ! -d $$j ] ; then \
+ if [ ! -f $(srcdir)/result/XPath/xptr/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > $(srcdir)/result/XPath/xptr/$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XPath/xptr/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done ; fi ; done)
+
+XIncludetests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## XInclude regression tests"
+ -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/XInclude/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > $(srcdir)/result/XInclude/$$name 2> $(srcdir)/result/XInclude/$$name.err ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > result.$$name 2>error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XInclude/$$name result.$$name ; \
+ diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/XInclude/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode $$i > $(srcdir)/result/XInclude/$$name 2> $(srcdir)/result/XInclude/$$name.err ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode $$i > result.$$name 2>error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XInclude/$$name result.$$name ; \
+ diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ @(echo > .memdump)
+ @echo "## XInclude xmlReader regression tests"
+ -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > result.$$name 2>error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
+ diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode --stream --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > result.$$name 2>error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
+ diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+
+Scripttests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Scripts regression tests"
+ @echo "## Some of the base computations may be different if srcdir != ."
+ -@(for i in $(srcdir)/test/scripts/*.script ; do \
+ name=`basename $$i .script`; \
+ xml=$(srcdir)/test/scripts/`basename $$i .script`.xml; \
+ if [ -f $$xml ] ; then \
+ if [ ! -f $(srcdir)/result/scripts/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > $(srcdir)/result/scripts/$$name 2> $(srcdir)/result/scripts/$$name.err ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > result.$$name 2> result.$$name.err ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/scripts/$$name result.$$name ; \
+ diff $(srcdir)/result/scripts/$$name.err result.$$name.err` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name result.$$name.err ; \
+ fi ; fi ; done)
+
+Catatests : xmlcatalog$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Catalog regression tests"
+ -@(for i in $(srcdir)/test/catalogs/*.script ; do \
+ name=`basename $$i .script`; \
+ xml=$(srcdir)/test/catalogs/`basename $$i .script`.xml; \
+ if [ -f $$xml ] ; then \
+ if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > $(srcdir)/result/catalogs/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ -@(for i in $(srcdir)/test/catalogs/*.script ; do \
+ name=`basename $$i .script`; \
+ sgml=$(srcdir)/test/catalogs/`basename $$i .script`.sgml; \
+ if [ -f $$sgml ] ; then \
+ if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > $(srcdir)/result/catalogs/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## Add and del operations on XML Catalogs"
+ -@($(CHECKER) $(top_builddir)/xmlcatalog --create --noout $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid sysid $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid2 sysid2 $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid3 sysid3 $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff result/catalogs/mycatalog.full $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid3 $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ $(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid2 $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff result/catalogs/mycatalog.empty $(srcdir)/result/catalogs/mycatalog; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ rm -f $(srcdir)/result/catalogs/mycatalog)
+
+SVGtests : xmllint$(EXEEXT)
+ @echo "## SVG parsing regression tests"
+ -@(for i in $(srcdir)/test/SVG/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/SVG/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/SVG/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ echo Testing $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint $$i > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/SVG/$$name result.$$name ; \
+ $(CHECKER) $(top_builddir)/xmllint result.$$name > result2.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff result.$$name result2.$$name ; \
+ rm result.$$name result2.$$name ; \
+ fi ; fi ; done)
+
+Threadtests : testThreads$(EXEEXT)
+ @echo "## Threaded regression tests"
+ -@($(CHECKER) $(top_builddir)/testThreads ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ exit 0)
+
+Readertests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Reader regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.rdr result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## Reader on memory regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.rdr result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @(echo > .memdump)
+ @echo "## Walker regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > result.$$name 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.rdr result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## Reader entities substitution regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.rde ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --noent --nonet --debug --stream $$i > $(srcdir)/result/$$name.rde 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --noent --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.rde result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+SAXtests : testSAX$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## SAX1 callbacks regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.sax ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testSAX $$i > $(srcdir)/result/$$name.sax 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testSAX $$i > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.sax result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## SAX2 callbacks regression tests"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/$$name.sax2 ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testSAX --sax2 $$i > $(srcdir)/result/$$name.sax2 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testSAX --sax2 $$i > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/$$name.sax2 result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## SAX2 callbacks regression tests with entity substitution"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/noent/$$name.sax2 ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testSAX --sax2 --noent $$i > $(srcdir)/result/noent/$$name.sax2 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testSAX --sax2 --noent $$i > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/noent/$$name.sax2 result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+Validtests : xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Valid documents regression tests"
+ -@(for i in $(srcdir)/test/VCM/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ log=`$(CHECKER) $(top_builddir)/xmllint --valid --noout --nowarning $$i ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"`;\
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ fi ; done ; exit 0)
+ @echo "## Validity checking regression tests"
+ -@(for i in $(srcdir)/test/VC/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/VC/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> $(srcdir)/result/VC/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/VC/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## General documents valid regression tests"
+ -@(for i in $(srcdir)/test/valid/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/valid/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --valid $$i > $(srcdir)/result/valid/$$name 2>$(srcdir)/result/valid/$$name.err ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --valid $$i > result.$$name 2>error.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/valid/$$name result.$$name ; \
+ diff $(srcdir)/result/valid/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+
+Regexptests: testRegexp$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Regexp regression tests"
+ -@(for i in $(srcdir)/test/regexp/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/regexp/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testRegexp -i $$i > $(srcdir)/result/regexp/$$name; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testRegexp -i $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/regexp/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+# Disabled for now
+Exptests: testRegexp$(EXEEXT)
+ @echo "## Formal expresssions regression tests"
+ -@(for i in $(srcdir)/test/expr/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/expr/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testRegexp --expr -i $$i > $(srcdir)/result/expr/$$name; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testRegexp --expr -i $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/expr/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+Automatatests: testAutomata$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Automata regression tests"
+ -@(for i in $(srcdir)/test/automata/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/automata/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testAutomata $$i > $(srcdir)/result/automata/$$name; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testAutomata $$i 2>&1 > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/automata/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+
+dba100000.xml: dbgenattr.pl
+ @echo "## generating dba100000.xml"
+ @($(PERL) $(top_srcdir)/dbgenattr.pl 100000 > dba100000.xml)
+
+Timingtests: xmllint$(EXEEXT) dba100000.xml
+ @echo "## Timing tests to try to detect performance"
+ @echo "## as well a memory usage breakage when streaming"
+ @echo "## 1/ using the file interface"
+ @echo "## 2/ using the memory interface"
+ @echo "## 3/ repeated DOM parsing"
+ @echo "## 4/ repeated DOM validation"
+ -@($(top_builddir)/xmllint --stream --timing dba100000.xml; \
+ MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
+ if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ exit 0)
+ -@($(top_builddir)/xmllint --stream --timing --memory dba100000.xml; \
+ MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
+ if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ exit 0)
+ -@($(top_builddir)/xmllint --noout --timing --repeat $(srcdir)/test/valid/REC-xml-19980210.xml; \
+ MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
+ if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ exit 0)
+
+VTimingtests: xmllint$(EXEEXT)
+ -@($(top_builddir)/xmllint --noout --timing --valid --repeat $(srcdir)/test/valid/REC-xml-19980210.xml; \
+ MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
+ if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ exit 0)
+
+C14Ntests : testC14N$(EXEEXT)
+ @echo "## C14N and XPath regression tests"
+ -@(for m in with-comments without-comments 1-1-without-comments exc-without-comments ; do \
+ for i in $(srcdir)/test/c14n/$$m/*.xml ; do \
+ if [ ! -d $$i ] ; then \
+ name=`basename $$i .xml`; \
+ cmdline="$(CHECKER) $(top_builddir)/testC14N --$$m $$i"; \
+ if [ -f $(srcdir)/test/c14n/$$m/$$name.xpath ] ; then \
+ cmdline="$$cmdline $(srcdir)/test/c14n/$$m/$$name.xpath"; \
+ if [ -f $(srcdir)/test/c14n/$$m/$$name.ns ] ; then \
+ cmdline="$$cmdline '`cat $(srcdir)/test/c14n/$$m/$$name.ns`'"; \
+ fi; \
+ fi; \
+ $$cmdline > $(srcdir)/test/c14n/test.tmp 2> /dev/null; \
+ if [ $$? -eq 0 ]; then \
+ diff $(srcdir)/result/c14n/$$m/$$name $(srcdir)/test/c14n/test.tmp; \
+ if [ $$? -ne 0 ]; then \
+ echo "Test $$m/$$name failed"; \
+ cat $(srcdir)/test/c14n/test.tmp; \
+ fi; \
+ else \
+ echo "C14N failed"; \
+ fi; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ fi; \
+ rm -f $(srcdir)/test/c14n/test.tmp; \
+ done; \
+ done)
+
+Schemastests: testSchemas$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Schemas regression tests"
+ -@(for i in $(srcdir)/test/schemas/*_*.xsd ; do \
+ name=`basename $$i | sed 's+_.*++'`; \
+ sno=`basename $$i | sed 's+.*_\(.*\).xsd+\1+'`; \
+ for j in $(srcdir)/test/schemas/"$$name"_*.xml ; do \
+ if [ -f $$j ] ; then \
+ xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
+ if [ ! -f $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" ]; \
+ then \
+ echo New test file "$$name"_"$$sno"_"$$xno" ; \
+ $(CHECKER) $(top_builddir)/testSchemas $$i $$j \
+ > $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
+ 2> $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testSchemas $$i $$j \
+ > res.$$name 2> err.$$name;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
+ res.$$name;\
+ diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err \
+ err.$$name;\
+ grep Unimplemented err.$$name`; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$sno"_"$$xno" result ; echo "$$log" ; fi ; \
+ rm res.$$name err.$$name ; \
+ fi ; fi ;\
+ done; done)
+
+Relaxtests: xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Relax-NG regression tests"
+ -@(for i in $(srcdir)/test/relaxng/*.rng ; do \
+ name=`basename $$i | sed 's+\.rng++'`; \
+ if [ ! -f $(srcdir)/result/relaxng/"$$name"_valid ] ; then \
+ echo New schemas $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
+ > $(srcdir)/result/relaxng/"$$name"_valid \
+ 2> $(srcdir)/result/relaxng/"$$name"_err; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
+ > res.$$name 2> err.$$name;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/relaxng/"$$name"_valid \
+ res.$$name;\
+ diff $(srcdir)/result/relaxng/"$$name"_err \
+ err.$$name | grep -v "error detected at";\
+ grep Unimplemented err.$$name`; \
+ if [ -n "$$log" ] ; then echo schemas $$name result ; echo "$$log" ; fi ; \
+ rm res.$$name err.$$name ; \
+ fi; \
+ for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
+ if [ -f $$j ] ; then \
+ xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
+ if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
+ then \
+ echo New test file "$$name"_"$$xno" ; \
+ $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
+ > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
+ 2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
+ > res.$$name 2> err.$$name;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/relaxng/"$$name"_"$$xno" \
+ res.$$name;\
+ diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
+ err.$$name | grep -v "error detected at";\
+ grep Unimplemented err.$$name`; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
+ rm res.$$name err.$$name ; \
+ fi ; fi ; \
+ done; done)
+ @echo "## Relax-NG streaming regression tests"
+ -@(for i in $(srcdir)/test/relaxng/*.rng ; do \
+ name=`basename $$i | sed 's+\.rng++'`; \
+ for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
+ if [ -f $$j ] ; then \
+ xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
+ if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
+ then \
+ echo New test file "$$name"_"$$xno" ; \
+ $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
+ > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
+ 2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --stream --relaxng $$i $$j \
+ > res.$$name 2> err.$$name;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\
+ if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" -a "$$name" != "tutor8_2" ] ; then \
+ diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
+ err.$$name | grep -v "error detected at";\
+ fi ; grep Unimplemented err.$$name`; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
+ rm res.$$name err.$$name ; \
+ fi ; fi ; \
+ done; done)
+
+Schematrontests: xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Schematron regression tests"
+ -@(for i in $(srcdir)/test/schematron/*.sct ; do \
+ name=`basename $$i | sed 's+\.sct++'`; \
+ for j in $(srcdir)/test/schematron/"$$name"_*.xml ; do \
+ if [ -f $$j ] ; then \
+ xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
+ if [ ! -f $(srcdir)/result/schematron/"$$name"_"$$xno" ]; \
+ then \
+ echo New test file "$$name"_"$$xno" ; \
+ $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
+ > $(srcdir)/result/schematron/"$$name"_"$$xno" \
+ 2> $(srcdir)/result/schematron/"$$name"_"$$xno".err; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
+ > res.$$name 2> err.$$name;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/schematron/"$$name"_"$$xno" \
+ res.$$name;\
+ diff $(srcdir)/result/schematron/"$$name"_"$$xno".err \
+ err.$$name | grep -v "error detected at";\
+ grep Unimplemented err.$$name`; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
+ rm res.$$name err.$$name ; \
+ fi ; fi ; \
+ done; done)
+
+RelaxNGPythonTests:
+ @(if [ -x $(PYTHON) ] ; then \
+ PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH ; \
+ export PYTHONPATH; \
+ LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
+ export LD_LIBRARY_PATH; \
+ echo "## Relax-NG Python based test suite 1" ; \
+ $(CHECKER) $(PYTHON) $(srcdir)/check-relaxng-test-suite.py ; \
+ echo "## Relax-NG Python based test suite 2" ; \
+ $(CHECKER) $(PYTHON) $(srcdir)/check-relaxng-test-suite2.py ; \
+ fi)
+
+SchemasPythonTests:
+ @(if [ -x $(PYTHON) ] ; then \
+ PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH; \
+ export PYTHONPATH; \
+ LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
+ export LD_LIBRARY_PATH; \
+ echo "## XML Schemas datatypes Python based test suite" ; \
+ echo "## It is normal to see 11 errors reported" ; \
+ $(CHECKER) $(PYTHON) $(srcdir)/check-xsddata-test-suite.py ; \
+ fi)
+ @(if [ -x $(PYTHON) -a -d xstc ] ; then cd xstc ; $(MAKE) CHECKER="$(CHECKER)" pytests ; fi)
+
+Patterntests: xmllint$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## Pattern regression tests"
+ -@(for i in $(srcdir)/test/pattern/*.pat ; do \
+ name=`basename $$i .pat`; \
+ if [ -f $(srcdir)/test/pattern/$$name.xml ] ; then \
+ if [ ! -f $(srcdir)/result/pattern/$$name ] ; then \
+ rm -f result.$$name ; \
+ echo New test file $$name ; \
+ for pat in `cat $$i` ; do \
+ $(CHECKER) $(top_builddir)/xmllint --walker --pattern $$pat $(srcdir)/test/pattern/$$name.xml >> $(srcdir)/result/pattern/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ done ;\
+ else \
+ rm -f result.$$name ; \
+ lst=`cat $$i` ; \
+ log=`for pat in $$lst ; do $(CHECKER) $(top_builddir)/xmllint --walker --pattern $$pat $(srcdir)/test/pattern/$$name.xml 2>&1 >> result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ done ;\
+ diff $(srcdir)/result/pattern/$$name result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done ;)
+
+ModuleTests: testModule$(EXEEXT) testdso.la
+ @echo "## Module tests"
+ @(./testModule$(EXEEXT))
+
+cleanup:
+ -@(find . -name .\#\* -exec rm {} \;)
+ -@(find . -name \*.gcda -o -name \*.gcno -exec rm -f {} \;)
+ -@(find . -name \*.orig -o -name \*.rej -o -name \*.old -exec rm -f {} \;)
+
+dist-hook: cleanup libxml2.spec
+ -cp libxml2.spec $(distdir)
+ (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn --exclude .git win32 macos os400 vms VxWorks bakefile test result) | (cd $(distdir); tar xf -)
+
+dist-source: distdir
+ $(AMTAR) -chof - --exclude Tests --exclude test --exclude result $(distdir) | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-sources+"`.tar.gz
+
+dist-test: distdir
+ (mkdir -p $(distdir))
+ (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn --exclude .git xstc/Tests) | (cd $(distdir); tar xf -)
+ tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/testapi.c $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
+ @(rm -rf $(distdir)/xstc/Test)
+
+cleantar:
+ @(rm -f libxml*.tar.gz COPYING.LIB)
+
+rpm: cleanup cleantar
+ @(unset CDPATH ; $(MAKE) dist-source dist && rpmbuild -ta $(distdir).tar.gz)
+
+xml2Conf.sh: xml2Conf.sh.in Makefile
+ sed -e 's?\@XML_LIBDIR\@?$(XML_LIBDIR)?g' \
+ -e 's?\@XML_INCLUDEDIR\@?$(XML_INCLUDEDIR)?g' \
+ -e 's?\@VERSION\@?$(VERSION)?g' \
+ -e 's?\@XML_LIBS\@?$(XML_LIBS)?g' \
+ -e 's?\@XML_PRIVATE_LIBS\@?$(XML_PRIVATE_LIBS)?g' \
+ < $(srcdir)/xml2Conf.sh.in > xml2Conf.tmp \
+ && mv xml2Conf.tmp xml2Conf.sh
+
+install-data-local:
+ $(MKDIR_P) $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
+ -$(INSTALL) -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
+ $(MKDIR_P) $(DESTDIR)$(EXAMPLES_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/testHTML.c $(DESTDIR)$(EXAMPLES_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/testXPath.c $(DESTDIR)$(EXAMPLES_DIR)
+
+uninstall-local:
+ rm -f $(DESTDIR)$(EXAMPLES_DIR)/testXPath.c
+ rm -f $(DESTDIR)$(EXAMPLES_DIR)/testHTML.c
+ rm -f $(DESTDIR)$(EXAMPLES_DIR)/testSAX.c
+ rm -f $(DESTDIR)$(EXAMPLES_DIR)/xmllint.c
+ rm -rf $(DESTDIR)$(EXAMPLES_DIR)
+ rm -f $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)/Copyright
+ rm -rf $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
+
+tst: tst.c
+ $(CC) $(CFLAGS) -Iinclude -o tst tst.c .libs/libxml2.a -lpthread -lm -lz -llzma
+
+sparse: clean
+ $(MAKE) CC=cgcc
+
+cov: clean-cov
+ if [ "`echo $(LDFLAGS) | grep coverage`" = "" ] ; then \
+ echo not configured with coverage; exit 1 ; fi
+ if [ ! -x $(LCOV) -o ! -x $(GENHTML) ] ; then \
+ echo Need $(LCOV) and $(GENHTML) excecutables; exit 1 ; fi
+ -@($(MAKE) check)
+ -@(./runsuite$(EXEEXT))
+ mkdir $(top_builddir)/coverage
+ $(LCOV) -c -o $(top_builddir)/coverage/libxml2.info.tmp -d $(top_srcdir)
+ $(LCOV) -r $(top_builddir)/coverage/libxml2.info.tmp -o $(top_builddir)/coverage/libxml2.info *usr*
+ rm $(top_builddir)/coverage/libxml2.info.tmp
+ $(GENHTML) -s -t "libxml2" -o $(top_builddir)/coverage --legend $(top_builddir)/coverage/libxml2.info
+ echo "Coverage report is in $(top_builddir)/coverage/index.html"
+
+clean-cov:
+ rm -rf $(top_builddir)/coverage
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libxml2-2.9.10/Makefile.tests b/libxml2-2.9.10/Makefile.tests
new file mode 100644
index 0000000..619cbfb
--- /dev/null
+++ b/libxml2-2.9.10/Makefile.tests
@@ -0,0 +1,41 @@
+#
+# You may have to ajust to call the right compiler, or other oprions
+# for compiling and linking
+#
+
+CFLAGS=`xml2-config --cflags`
+LIBS=`xml2-config --libs`
+THREADLIB= -lpthread
+EXEEXT=
+
+all: runtest$(EXEEXT) runsuite$(EXEEXT) testapi$(EXEEXT) testchar$(EXEEXT)
+
+clean:
+ $(RM) runtest$(EXEEXT) runsuite$(EXEEXT) testapi$(EXEEXT)
+
+check: do_runtest do_testchar do_testapi do_runsuite
+
+runtest$(EXEEXT): runtest.c
+ $(CC) -o runtest$(EXEEXT) $(CFLAGS) runtest.c $(LIBS) $(THREADLIB)
+
+do_runtest: runtest$(EXEEXT)
+ ./runtest
+
+runsuite$(EXEEXT): runsuite.c
+ $(CC) -o runsuite$(EXEEXT) $(CFLAGS) runsuite.c $(LIBS)
+
+do_runsuite: runsuite$(EXEEXT)
+ ./runsuite
+
+testapi$(EXEEXT): testapi.c
+ $(CC) -o testapi$(EXEEXT) $(CFLAGS) testapi.c $(LIBS)
+
+do_testapi: testapi$(EXEEXT)
+ ./testapi
+
+testchar$(EXEEXT): testchar.c
+ $(CC) -o testchar$(EXEEXT) $(CFLAGS) testchar.c $(LIBS)
+
+do_testchar: testchar$(EXEEXT)
+ ./testchar
+
diff --git a/libxml2-2.9.10/NEWS b/libxml2-2.9.10/NEWS
new file mode 100644
index 0000000..b55c63b
--- /dev/null
+++ b/libxml2-2.9.10/NEWS
@@ -0,0 +1,3085 @@
+
+ NEWS file for libxml2
+
+ Note that this is automatically generated from the news webpage at:
+ http://xmlsoft.org/news.html
+
+The change log at
+ChangeLog.html
+ describes the recents commits
+to the GIT at
+https://gitlab.gnome.org/GNOME/libxml2
+ code base.Here is the list of public releases:
+v2.9.9: Jan 03 2019:
+ - Security:
+ CVE-2018-9251 CVE-2018-14567 Fix infinite loop in LZMA decompression (Nick Wellnhofer),
+ CVE-2018-14404 Fix nullptr deref with XPath logic ops (Nick Wellnhofer),
+
+ - Documentation:
+ reader: Fix documentation comment (Mohammed Sadiq)
+
+ - Portability:
+ Fix MSVC build with lzma (Nick Wellnhofer),
+ Variables need 'extern' in static lib on Cygwin (Michael Haubenwallner),
+ Really declare dllexport/dllimport for Cygwin (Michael Haubenwallner),
+ Merge branch 'patch-2' into 'master' (Nick Wellnhofer),
+ Change dir to $THEDIR after ACLOCAL_PATH check autoreconf creates aclocal.m4 in $srcdir (Vitaly Buka),
+ Improve error message if pkg.m4 couldn't be found (Nick Wellnhofer),
+ NaN and Inf fixes for pre-C99 compilers (Nick Wellnhofer)
+
+ - Bug Fixes:
+ Revert "Support xmlTextReaderNextSibling w/o preparsed doc" (Nick Wellnhofer),
+ Fix building relative URIs (Thomas Holder),
+ Problem with data in interleave in RelaxNG validation (Nikolai Weibull),
+ Fix memory leak in xmlSwitchInputEncodingInt error path (Nick Wellnhofer),
+ Set doc on element obtained from freeElems (Nick Wellnhofer),
+ Fix HTML serialization with UTF-8 encoding (Nick Wellnhofer),
+ Use actual doc in xmlTextReaderRead*Xml (Nick Wellnhofer),
+ Unlink node before freeing it in xmlSAX2StartElement (Nick Wellnhofer),
+ Check return value of nodePush in xmlSAX2StartElement (Nick Wellnhofer),
+ Free input buffer in xmlHaltParser (Nick Wellnhofer),
+ Reset HTML parser input pointers on encoding failure (Nick Wellnhofer),
+ Don't run icu_parse_test if EUC-JP is unsupported (Nick Wellnhofer),
+ Fix xmlSchemaValidCtxtPtr reuse memory leak (Greg Hildstrom),
+ Fix xmlTextReaderNext with preparsed document (Felix Bünemann),
+ Remove stray character from comment (Nick Wellnhofer),
+ Remove a misleading line from xmlCharEncOutput (Andrey Bienkowski),
+ HTML noscript should not close p (Daniel Veillard),
+ Don't change context node in xmlXPathRoot (Nick Wellnhofer),
+ Stop using XPATH_OP_RESET (Nick Wellnhofer),
+ Revert "Change calls to xmlCharEncInput to set flush false" (Nick Wellnhofer)
+
+ - Improvements:
+ Fix "Problem with data in interleave in RelaxNG validation" (Nikolai Weibull),
+ cleanup: remove some unreachable code (Thomas Holder),
+ add --relative to testURI (Thomas Holder),
+ Remove redefined starts and defines inside include elements (Nikolai Weibull),
+ Allow choice within choice in nameClass in RELAX NG (Nikolai Weibull),
+ Look inside divs for starts and defines inside include (Nikolai Weibull),
+ Add compile and libxml2-config.cmake to .gitignore (Nikolai Weibull),
+ Stop using doc->charset outside parser code (Nick Wellnhofer),
+ Add newlines to 'xmllint --xpath' output (Nick Wellnhofer),
+ Don't include SAX.h from globals.h (Nick Wellnhofer),
+ Support xmlTextReaderNextSibling w/o preparsed doc (Felix Bünemann),
+ Don't instruct user to run make when autogen.sh failed (æž—åšä»(Buo-ren Lin)),
+ Run Travis ASan tests with "sudo: required" (Nick Wellnhofer),
+ Improve restoring of context size and position (Nick Wellnhofer),
+ Simplify and harden nodeset filtering (Nick Wellnhofer),
+ Avoid unnecessary backups of the context node (Nick Wellnhofer),
+ Fix inconsistency in xmlXPathIsInf (Nick Wellnhofer)
+
+ - Cleanups:
+
+
+
+v2.9.8: Mar 05 2018:
+ - Portability:
+ python: remove single use of _PyVerify_fd (Patrick Welche),
+ Build more test executables on Windows/MSVC (Nick Wellnhofer),
+ Stop including ansidecl.h (Nick Wellnhofer),
+ Fix libz and liblzma detection (Nick Wellnhofer),
+ Revert "Compile testapi with -Wno-unused-function" (Nick Wellnhofer)
+
+ - Bug Fixes:
+ Fix xmlParserEntityCheck (Nick Wellnhofer),
+ Halt parser in case of encoding error (Nick Wellnhofer),
+ Clear entity content in case of errors (Nick Wellnhofer),
+ Change calls to xmlCharEncInput to set flush false when not final call. Having flush incorrectly set to true causes errors for ICU. (Joel Hockey),
+ Fix buffer over-read in xmlParseNCNameComplex (Nick Wellnhofer),
+ Fix ICU library filenames on Windows/MSVC (Nick Wellnhofer),
+ Fix xmlXPathIsNaN broken by recent commit (Nick Wellnhofer),
+ Fix -Wenum-compare warnings (Nick Wellnhofer),
+ Fix callback signature in testapi.c (Nick Wellnhofer),
+ Fix unused parameter warning without ICU (Nick Wellnhofer),
+ Fix IO callback signatures (Nick Wellnhofer),
+ Fix misc callback signatures (Nick Wellnhofer),
+ Fix list callback signatures (Nick Wellnhofer),
+ Fix hash callback signatures (Nick Wellnhofer),
+ Refactor name and type signature for xmlNop (Vlad Tsyrklevich),
+ Fixed ICU to set flush correctly and provide pivot buffer. (Joel Hockey),
+ Skip EBCDIC tests if EBCDIC isn't supported (Nick Wellnhofer)
+
+ - Improvements:
+ Disable pointer-overflow UBSan checks under Travis (Nick Wellnhofer),
+ Improve handling of context input_id (Daniel Veillard),
+ Add resource file to Windows DLL (ccpaging),
+ Run Travis tests with -Werror (Nick Wellnhofer),
+ Build with "-Wall -Wextra" (Nick Wellnhofer),
+ Fix -Wtautological-pointer-compare warnings (Nick Wellnhofer),
+ Remove unused AC_CHECKs (Nick Wellnhofer),
+ Update information about contributing (Nick Wellnhofer),
+ Fix -Wmisleading-indentation warnings (Nick Wellnhofer),
+ Don't touch CFLAGS in configure.ac (Nick Wellnhofer),
+ Ignore function pointer cast warnings (Nick Wellnhofer),
+ Simplify XPath NaN, inf and -0 handling (Nick Wellnhofer),
+ Introduce xmlPosixStrdup and update xmlMemStrdup (Nick Wellnhofer),
+ Add test for ICU flush and pivot buffer (Nick Wellnhofer),
+ Compile testapi with -Wno-unused-function (Nick Wellnhofer)
+
+
+
+2.9.7: Nov 02 2017:
+ - Documentation:
+ xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný)
+
+ - Portability:
+ Fix deprecated Travis compiler flag (Nick Wellnhofer),
+ Add declaration for DllMain (J. Peter Mugaas),
+ Fix preprocessor conditional in threads.h (J. Peter Mugaas),
+ Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas),
+ Fix macro redefinition warning (J. Peter Mugaas),
+ Default to native threads on MinGW-w64 (Nick Wellnhofer),
+ Simplify Windows IO functions (Nick Wellnhofer),
+ Fix runtest on Windows (Nick Wellnhofer),
+ socklen_t is always int on Windows (Nick Wellnhofer),
+ Don't redefine socket error codes on Windows (Nick Wellnhofer),
+ Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer),
+ Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer)
+
+ - Bug Fixes:
+ xmlcatalog: restore ability to query system catalog easily (Jan Pokorný),
+ Fix comparison of nodesets to strings (Nick Wellnhofer)
+
+ - Improvements:
+ Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer),
+ Fix mixed decls and code in timsort.h (Nick Wellnhofer),
+ Rework handling of return values in thread tests (Nick Wellnhofer),
+ Fix unused variable warnings in testrecurse (Nick Wellnhofer),
+ Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas),
+ Upgrade timsort.h to latest revision (Nick Wellnhofer),
+ Increase warning level to /W3 under MSVC (Nick Wellnhofer),
+ Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer),
+ Update .gitignore for Windows (Nick Wellnhofer),
+ Fix unused variable warnings in nanohttp.c (Nick Wellnhofer),
+ Fix the Windows header mess (Nick Wellnhofer),
+ Don't include winsock2.h in xmllint.c (Nick Wellnhofer),
+ Remove generated file python/setup.py from version control (Nick Wellnhofer),
+ Use __linux__ macro in generated code (Nick Wellnhofer)
+
+
+
+v2.9.6: Oct 06 2017:
+ - Portability:
+ Change preprocessor OS tests to __linux__ (Nick Wellnhofer)
+
+ - Bug Fixes:
+ Fix XPath stack frame logic (Nick Wellnhofer),
+ Report undefined XPath variable error message (Nick Wellnhofer),
+ Fix regression with librsvg (Nick Wellnhofer),
+ Handle more invalid entity values in recovery mode (Nick Wellnhofer),
+ Fix structured validation errors (Nick Wellnhofer),
+ Fix memory leak in LZMA decompressor (Nick Wellnhofer),
+ Set memory limit for LZMA decompression (Nick Wellnhofer),
+ Handle illegal entity values in recovery mode (Nick Wellnhofer),
+ Fix debug dump of streaming XPath expressions (Nick Wellnhofer),
+ Fix memory leak in nanoftp (Nick Wellnhofer),
+ Fix memory leaks in SAX1 parser (Nick Wellnhofer)
+
+
+
+v2.9.5: Sep 04 2017:
+ - Security:
+ Detect infinite recursion in parameter entities (Nick Wellnhofer),
+ Fix handling of parameter-entity references (Nick Wellnhofer),
+ Disallow namespace nodes in XPointer ranges (Nick Wellnhofer),
+ Fix XPointer paths beginning with range-to (Nick Wellnhofer)
+
+ - Documentation:
+ Documentation fixes (Nick Wellnhofer),
+ Spelling and grammar fixes (Nick Wellnhofer)
+
+ - Portability:
+ Adding README.zOS to list of extra files for the release (Daniel Veillard),
+ Description of work needed to compile on zOS (Stéphane Michaut),
+ Porting libxml2 on zOS encoding of code (Stéphane Michaut),
+ small changes for OS/400 (Patrick Monnerat),
+ relaxng.c, xmlschemas.c: Fix build on pre-C99 compilers (Chun-wei Fan)
+
+ - Bug Fixes:
+ Problem resolving relative URIs (Daniel Veillard),
+ Fix unwanted warnings when switching encodings (Nick Wellnhofer),
+ Fix signature of xmlSchemaAugmentImportedIDC (Daniel Veillard),
+ Heap-buffer-overflow read of size 1 in xmlFAParsePosCharGroup (David Kilzer),
+ Fix NULL pointer deref in xmlFAParseCharClassEsc (Nick Wellnhofer),
+ Fix infinite loops with push parser in recovery mode (Nick Wellnhofer),
+ Send xmllint usage error to stderr (Nick Wellnhofer),
+ Fix NULL deref in xmlParseExternalEntityPrivate (Nick Wellnhofer),
+ Make sure not to call IS_BLANK_CH when parsing the DTD (Nick Wellnhofer),
+ Fix xmlHaltParser (Nick Wellnhofer),
+ Fix pathological performance when outputting charrefs (Nick Wellnhofer),
+ Fix invalid-source-encoding warnings in testWriter.c (Nick Wellnhofer),
+ Fix duplicate SAX callbacks for entity content (David Kilzer),
+ Treat URIs with scheme as absolute in C14N (Nick Wellnhofer),
+ Fix copy-paste errors in error messages (Nick Wellnhofer),
+ Fix sanity check in htmlParseNameComplex (Nick Wellnhofer),
+ Fix potential infinite loop in xmlStringLenDecodeEntities (Nick Wellnhofer),
+ Reset parser input pointers on encoding failure (Nick Wellnhofer),
+ Fix memory leak in xmlParseEntityDecl error path (Nick Wellnhofer),
+ Fix xmlBuildRelativeURI for URIs starting with './' (Nick Wellnhofer),
+ Fix type confusion in xmlValidateOneNamespace (Nick Wellnhofer),
+ Fix memory leak in xmlStringLenGetNodeList (Nick Wellnhofer),
+ Fix NULL pointer deref in xmlDumpElementContent (Daniel Veillard),
+ Fix memory leak in xmlBufAttrSerializeTxtContent (Nick Wellnhofer),
+ Stop parser on unsupported encodings (Nick Wellnhofer),
+ Check for integer overflow in memory debug code (Nick Wellnhofer),
+ Fix buffer size checks in xmlSnprintfElementContent (Nick Wellnhofer),
+ Avoid reparsing in xmlParseStartTag2 (Nick Wellnhofer),
+ Fix undefined behavior in xmlRegExecPushStringInternal (Nick Wellnhofer),
+ Check XPath exponents for overflow (Nick Wellnhofer),
+ Check for overflow in xmlXPathIsPositionalPredicate (Nick Wellnhofer),
+ Fix spurious error message (Nick Wellnhofer),
+ Fix memory leak in xmlCanonicPath (Nick Wellnhofer),
+ Fix memory leak in xmlXPathCompareNodeSetValue (Nick Wellnhofer),
+ Fix memory leak in pattern error path (Nick Wellnhofer),
+ Fix memory leak in parser error path (Nick Wellnhofer),
+ Fix memory leaks in XPointer error paths (Nick Wellnhofer),
+ Fix memory leak in xmlXPathNodeSetMergeAndClear (Nick Wellnhofer),
+ Fix memory leak in XPath filter optimizations (Nick Wellnhofer),
+ Fix memory leaks in XPath error paths (Nick Wellnhofer),
+ Do not leak the new CData node if adding fails (David Tardon),
+ Prevent unwanted external entity reference (Neel Mehta),
+ Increase buffer space for port in HTTP redirect support (Daniel Veillard),
+ Fix more NULL pointer derefs in xpointer.c (Nick Wellnhofer),
+ Avoid function/data pointer conversion in xpath.c (Nick Wellnhofer),
+ Fix format string warnings (Nick Wellnhofer),
+ Disallow namespace nodes in XPointer points (Nick Wellnhofer),
+ Fix comparison with root node in xmlXPathCmpNodes (Nick Wellnhofer),
+ Fix attribute decoding during XML schema validation (Alex Henrie),
+ Fix NULL pointer deref in XPointer range-to (Nick Wellnhofer)
+
+ - Improvements:
+ Updating the spec file to reflect Fedora 24 (Daniel Veillard),
+ Add const in five places to move 1 KiB to .rdata (Bruce Dawson),
+ Fix missing part of comment for function xmlXPathEvalExpression() (Daniel Veillard),
+ Get rid of "blanks wrapper" for parameter entities (Nick Wellnhofer),
+ Simplify handling of parameter entity references (Nick Wellnhofer),
+ Deduplicate code in encoding.c (Nick Wellnhofer),
+ Make HTML parser functions take const pointers (Nick Wellnhofer),
+ Build test programs only when needed (Nick Wellnhofer),
+ Fix doc/examples/index.py (Nick Wellnhofer),
+ Fix compiler warnings in threads.c (Nick Wellnhofer),
+ Fix empty-body warning in nanohttp.c (Nick Wellnhofer),
+ Fix cast-align warnings (Nick Wellnhofer),
+ Fix unused-parameter warnings (Nick Wellnhofer),
+ Rework entity boundary checks (Nick Wellnhofer),
+ Don't switch encoding for internal parameter entities (Nick Wellnhofer),
+ Merge duplicate code paths handling PE references (Nick Wellnhofer),
+ Test SAX2 callbacks with entity substitution (Nick Wellnhofer),
+ Support catalog and threads tests under --without-sax1 (Nick Wellnhofer),
+ Misc fixes for 'make tests' (Nick Wellnhofer),
+ Initialize keepBlanks in HTML parser (Nick Wellnhofer),
+ Add test cases for bug 758518 (David Kilzer),
+ Fix compiler warning in htmlParseElementInternal (Nick Wellnhofer),
+ Remove useless check in xmlParseAttributeListDecl (Nick Wellnhofer),
+ Allow zero sized memory input buffers (Nick Wellnhofer),
+ Add TODO comment in xmlSwitchEncoding (Nick Wellnhofer),
+ Check for integer overflow in xmlXPathFormatNumber (Nick Wellnhofer),
+ Make Travis print UBSan stacktraces (Nick Wellnhofer),
+ Add .travis.yml (Nick Wellnhofer),
+ Fix expected error output in Python tests (Nick Wellnhofer),
+ Simplify control flow in xmlParseStartTag2 (Nick Wellnhofer),
+ Disable LeakSanitizer when running API tests (Nick Wellnhofer),
+ Avoid out-of-bound array access in API tests (Nick Wellnhofer),
+ Avoid spurious UBSan errors in parser.c (Nick Wellnhofer),
+ Parse small XPath numbers more accurately (Nick Wellnhofer),
+ Rework XPath rounding functions (Nick Wellnhofer),
+ Fix white space in test output (Nick Wellnhofer),
+ Fix axis traversal from attribute and namespace nodes (Nick Wellnhofer),
+ Check for trailing characters in XPath expressions earlier (Nick Wellnhofer),
+ Rework final handling of XPath results (Nick Wellnhofer),
+ Make xmlXPathEvalExpression call xmlXPathEval (Nick Wellnhofer),
+ Remove unused variables (Nick Wellnhofer),
+ Don't print generic error messages in XPath tests (Nick Wellnhofer)
+
+ - Cleanups:
+ Fix a couple of misleading indentation errors (Daniel Veillard),
+ Remove unnecessary calls to xmlPopInput (Nick Wellnhofer)
+
+
+
+2.9.4: May 23 2016:
+ - Security:
+ More format string warnings with possible format string vulnerability (David Kilzer),
+ Avoid building recursive entities (Daniel Veillard),
+ Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),
+ Heap-based buffer-underreads due to xmlParseName (David Kilzer),
+ Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),
+ Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),
+ Fix some format string warnings with possible format string vulnerability (David Kilzer),
+ Detect change of encoding when parsing HTML names (Hugh Davenport),
+ Fix inappropriate fetch of entities content (Daniel Veillard),
+ Bug 759398: Heap use-after-free in xmlDictComputeFastKey <https://bugzilla.gnome.org/show_bug.cgi?id=759398> (Pranjal Jumde),
+ Bug 758605: Heap-based buffer overread in xmlDictAddString <https://bugzilla.gnome.org/show_bug.cgi?id=758605> (Pranjal Jumde),
+ Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal <https://bugzilla.gnome.org/show_bug.cgi?id=758588> (David Kilzer),
+ Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup <https://bugzilla.gnome.org/show_bug.cgi?id=757711> (Pranjal Jumde),
+ Add missing increments of recursion depth counter to XML parser. (Peter Simons)
+
+ - Documentation:
+ Fix typo: s{ ec -> cr }cipt (Jan Pokorný),
+ Fix typos: dictio{ nn -> n }ar{y,ies} (Jan Pokorný),
+ Fix typos: PATH_{ SEAPARATOR -> SEPARATOR } (Jan Pokorný),
+ Correct a typo. (Shlomi Fish)
+
+ - Portability:
+ Correct the usage of LDFLAGS (Mattias Hansson),
+ Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),
+ libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),
+ Fix apibuild for a recently added construct (Daniel Veillard),
+ Use pkg-config to locate zlib when possible (Stewart Brodie),
+ Use pkg-config to locate ICU when possible (Stewart Brodie),
+ Portability to non C99 compliant compilers (Patrick Monnerat),
+ dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),
+ os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),
+ os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),
+ os400: implement CL command XMLCATALOG. (Patrick Monnerat),
+ os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),
+ os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),
+ os400: implement CL command XMLLINT. (Patrick Monnerat),
+ os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),
+ os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),
+ os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),
+ os400: use like() for double type. (Patrick Monnerat),
+ os400: use like() for int type. (Patrick Monnerat),
+ os400: use like() for unsigned int type. (Patrick Monnerat),
+ os400: use like() for enum types. (Patrick Monnerat),
+ Add xz to xml2-config --libs output (Baruch Siach),
+ Bug 760190: configure.ac should be able to build --with-icu without icu-config tool <https://bugzilla.gnome.org/show_bug.cgi?id=760190> (David Kilzer),
+ win32\VC10\config.h and VS 2015 (Bruce Dawson),
+ Add configure maintainer mode (orzen)
+
+ - Bug Fixes:
+ Avoid an out of bound access when serializing malformed strings (Daniel Veillard),
+ Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),
+ Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),
+ Bug 763071: heap-buffer-overflow in xmlStrncat <https://bugzilla.gnome.org/show_bug.cgi?id=763071> (Pranjal Jumde),
+ Integer overflow parsing port number in URI (Michael Paddon),
+ Fix an error with regexp on nullable counted char transition (Daniel Veillard),
+ Fix memory leak with XPath namespace nodes (Nick Wellnhofer),
+ Fix namespace axis traversal (Nick Wellnhofer),
+ Fix null pointer deref in docs with no root element (Hugh Davenport),
+ Fix XSD validation of URIs with ampersands (Alex Henrie),
+ xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),
+ xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),
+ xmllint: flush stdout before interactive shell input. (Patrick Monnerat),
+ Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),
+ Fix namespace::node() XPath expression (Nick Wellnhofer),
+ Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),
+ Fix parsing of NCNames in XPath (Nick Wellnhofer),
+ Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),
+ Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),
+ Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" <https://bugzilla.gnome.org/show_bug.cgi?id=760921> (David Kilzer),
+ Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd <https://bugzilla.gnome.org/show_bug.cgi?id=760861> (David Kilzer),
+ error.c: *input->cur == 0 does not mean no error (Pavel Raiskup),
+ Add missing RNG test files (David Kilzer),
+ Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer <https://bugzilla.gnome.org/show_bug.cgi?id=760183> (David Kilzer),
+ Bug 758572: ASAN crash in make check <https://bugzilla.gnome.org/show_bug.cgi?id=758572> (David Kilzer),
+ Bug 721158: Missing ICU string when doing --version on xmllint <https://bugzilla.gnome.org/show_bug.cgi?id=721158> (David Kilzer),
+ python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),
+ Add autogen.sh to distrib (orzen),
+ Heap-based buffer overread in xmlNextChar (Daniel Veillard)
+
+ - Improvements:
+ Add more debugging info to runtest (Daniel Veillard),
+ Implement "runtest -u" mode (David Kilzer),
+ Add a make rule to rebuild for ASAN (Daniel Veillard)
+
+
+
+v2.9.3: Nov 20 2015:
+ - Security:
+ CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),
+ CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),
+ CVE-2015-7499-2 Detect incoherency on GROW (Daniel Veillard),
+ CVE-2015-7499-1 Add xmlHaltParser() to stop the parser (Daniel Veillard),
+ CVE-2015-5312 Another entity expansion issue (David Drysdale),
+ CVE-2015-7497 Avoid an heap buffer overflow in xmlDictComputeFastQKey (David Drysdale),
+ CVE-2015-7498 Avoid processing entities after encoding conversion failures (Daniel Veillard),
+ CVE-2015-8035 Fix XZ compression support loop (Daniel Veillard),
+ CVE-2015-7942-2 Fix an error in previous Conditional section patch (Daniel Veillard),
+ CVE-2015-7942 Another variation of overflow in Conditional sections (Daniel Veillard),
+ CVE-2015-1819 Enforce the reader to run in constant memory (Daniel Veillard)
+ CVE-2015-7941_2 Cleanup conditional section error handling (Daniel Veillard),
+ CVE-2015-7941_1 Stop parsing on entities boundaries errors (Daniel Veillard),
+
+ - Documentation:
+ Correct spelling of "calling" (Alex Henrie),
+ Fix a small error in xmllint --format description (Fabien Degomme),
+ Avoid XSS on the search of xmlsoft.org (Daniel Veillard)
+
+ - Portability:
+ threads: use forward declarations only for glibc (Michael Heimpold),
+ Update Win32 configure.js to search for configure.ac (Daniel Veillard)
+
+ - Bug Fixes:
+ Bug on creating new stream from entity (Daniel Veillard),
+ Fix some loop issues embedding NEXT (Daniel Veillard),
+ Do not print error context when there is none (Daniel Veillard),
+ Avoid extra processing of MarkupDecl when EOF (Hugh Davenport),
+ Fix parsing short unclosed comment uninitialized access (Daniel Veillard),
+ Add missing Null check in xmlParseExternalEntityPrivate (Gaurav Gupta),
+ Fix a bug in CData error handling in the push parser (Daniel Veillard),
+ Fix a bug on name parsing at the end of current input buffer (Daniel Veillard),
+ Fix the spurious ID already defined error (Daniel Veillard),
+ Fix previous change to node sort order (Nick Wellnhofer),
+ Fix a self assignment issue raised by clang (Scott Graham),
+ Fail parsing early on if encoding conversion failed (Daniel Veillard),
+ Do not process encoding values if the declaration if broken (Daniel Veillard),
+ Silence clang's -Wunknown-attribute (Michael Catanzaro),
+ xmlMemUsed is not thread-safe (Martin von Gagern),
+ Fix support for except in nameclasses (Daniel Veillard),
+ Fix order of root nodes (Nick Wellnhofer),
+ Allow attributes on descendant-or-self axis (Nick Wellnhofer),
+ Fix the fix to Windows locking (Steve Nairn),
+ Fix timsort invariant loop re: Envisage article (Christopher Swenson),
+ Don't add IDs in xmlSetTreeDoc (Nick Wellnhofer),
+ Account for ID attributes in xmlSetTreeDoc (Nick Wellnhofer),
+ Remove various unused value assignments (Philip Withnall),
+ Fix missing entities after CVE-2014-3660 fix (Daniel Veillard),
+ Revert "Missing initialization for the catalog module" (Daniel Veillard)
+
+ - Improvements:
+ Reuse xmlHaltParser() where it makes sense (Daniel Veillard),
+ xmlStopParser reset errNo (Daniel Veillard),
+ Reenable xz support by default (Daniel Veillard),
+ Recover unescaped less-than character in HTML recovery parsing (Daniel Veillard),
+ Allow HTML serializer to output HTML5 DOCTYPE (Shaun McCance),
+ Regression test for bug #695699 (Nick Wellnhofer),
+ Add a couple of XPath tests (Nick Wellnhofer),
+ Add Python 3 rpm subpackage (Tomas Radej),
+ libxml2-config.cmake.in: update include directories (Samuel Martin),
+ Adding example from bugs 738805 to regression tests (Daniel Veillard)
+
+ - Cleanups:
+
+
+
+2.9.2: Oct 16 2014:
+ - Security:
+ Fix for CVE-2014-3660 billion laugh variant (Daniel Veillard),
+ CVE-2014-0191 Do not fetch external parameter entities (Daniel Veillard)
+
+ - Bug Fixes:
+ fix memory leak xml header encoding field with XML_PARSE_IGNORE_ENC (Bart De Schuymer),
+ xmlmemory: handle realloc properly (Yegor Yefremov),
+ Python generator bug raised by the const change (Daniel Veillard),
+ Windows Critical sections not released correctly (Daniel Veillard),
+ Parser error on repeated recursive entity expansion containing &lt; (Daniel Veillard),
+ xpointer : fixing Null Pointers (Gaurav Gupta),
+ Remove Unnecessary Null check in xpointer.c (Gaurav Gupta),
+ parser bug on misformed namespace attributes (Dennis Filder),
+ Pointer dereferenced before null check (Daniel Veillard),
+ Leak of struct addrinfo in xmlNanoFTPConnect() (Gaurav Gupta),
+ Possible overflow in HTMLParser.c (Daniel Veillard),
+ python/tests/sync.py assumes Python dictionaries are ordered (John Beck),
+ Fix Enum check and missing break (Gaurav Gupta),
+ xmlIO: Handle error returns from dup() (Philip Withnall),
+ Fix a problem properly saving URIs (Daniel Veillard),
+ wrong error column in structured error when parsing attribute values (Juergen Keil),
+ wrong error column in structured error when skipping whitespace in xml decl (Juergen Keil),
+ no error column in structured error handler for xml schema validation errors (Juergen Keil),
+ Couple of Missing Null checks (Gaurav Gupta),
+ Add couple of missing Null checks (Daniel Veillard),
+ xmlschemastypes: Fix potential array overflow (Philip Withnall),
+ runtest: Fix a memory leak on parse failure (Philip Withnall),
+ xmlIO: Fix an FD leak on gzdopen() failure (Philip Withnall),
+ xmlcatalog: Fix a memory leak on quit (Philip Withnall),
+ HTMLparser: Correctly initialise a stack allocated structure (Philip Withnall),
+ Check for tmon in _xmlSchemaDateAdd() is incorrect (David Kilzer),
+ Avoid Possible Null Pointer in trio.c (Gaurav Gupta),
+ Fix processing in SAX2 in case of an allocation failure (Daniel Veillard),
+ XML Shell command "cd" does not handle "/" at end of path (Daniel Veillard),
+ Fix various Missing Null checks (Gaurav Gupta),
+ Fix a potential NULL dereference (Daniel Veillard),
+ Add a couple of misisng check in xmlRelaxNGCleanupTree (Gaurav Gupta),
+ Add a missing argument check (Gaurav Gupta),
+ Adding a check in case of allocation error (Gaurav Gupta),
+ xmlSaveUri() incorrectly recomposes URIs with rootless paths (Dennis Filder),
+ Adding some missing NULL checks (Gaurav),
+ Fixes for xmlInitParserCtxt (Daniel Veillard),
+ Fix regressions introduced by CVE-2014-0191 patch (Daniel Veillard),
+ erroneously ignores a validation error if no error callback set (Daniel Veillard),
+ xmllint was not parsing the --c14n11 flag (Sérgio Batista),
+ Avoid Possible null pointer dereference in memory debug mode (Gaurav),
+ Avoid Double Null Check (Gaurav),
+ Restore context size and position after XPATH_OP_ARG (Nick Wellnhofer),
+ Fix xmlParseInNodeContext() if node is not element (Daniel Veillard),
+ Avoid a possible NULL pointer dereference (Gaurav),
+ Fix xmlTextWriterWriteElement when a null content is given (Daniel Veillard),
+ Fix an typo 'onrest' in htmlScriptAttributes (Daniel Veillard),
+ fixing a ptotential uninitialized access (Daniel Veillard),
+ Fix an fd leak in an error case (Daniel Veillard),
+ Missing initialization for the catalog module (Daniel Veillard),
+ Handling of XPath function arguments in error case (Nick Wellnhofer),
+ Fix a couple of missing NULL checks (Gaurav),
+ Avoid a possibility of dangling encoding handler (Gaurav),
+ Fix HTML push parser to accept HTML_PARSE_NODEFDTD (Arnold Hendriks),
+ Fix a bug loading some compressed files (Mike Alexander),
+ Fix XPath node comparison bug (Gaurav),
+ Type mismatch in xmlschemas.c (Gaurav),
+ Type mismatch in xmlschemastypes.c (Gaurav),
+ Avoid a deadcode in catalog.c (Daniel Veillard),
+ run close socket on Solaris, same as we do on other platforms (Denis Pauk),
+ Fix pointer dereferenced before null check (Gaurav),
+ Fix a potential NULL dereference in tree code (Daniel Veillard),
+ Fix potential NULL pointer dereferences in regexp code (Gaurav),
+ xmllint --pretty crashed without following numeric argument (Tim Galeckas),
+ Fix XPath expressions of the form '@ns:*' (Nick Wellnhofer),
+ Fix XPath '//' optimization with predicates (Nick Wellnhofer),
+ Clear up a potential NULL dereference (Daniel Veillard),
+ Fix a possible NULL dereference (Gaurav),
+ Avoid crash if allocation fails (Daniel Veillard),
+ Remove occasional leading space in XPath number formatting (Daniel Veillard),
+ Fix handling of mmap errors (Daniel Veillard),
+ Catch malloc error and exit accordingly (Daniel Veillard),
+ missing else in xlink.c (Ami Fischman),
+ Fix a parsing bug on non-ascii element and CR/LF usage (Daniel Veillard),
+ Fix a regression in xmlGetDocCompressMode() (Daniel Veillard),
+ properly quote the namespace uris written out during c14n (Aleksey Sanin),
+ Remove premature XInclude check on URI being relative (Alexey Neyman),
+ Fix missing break on last() function for attributes (dcb),
+ Do not URI escape in server side includes (Romain Bondue),
+ Fix an error in xmlCleanupParser (Alexander Pastukhov)
+
+ - Documentation:
+ typo in error messages "colon are forbidden from..." (Daniel Veillard),
+ Fix a link to James SAX documentation old page (Daniel Veillard),
+ Fix typos in relaxng.c (Jan Pokorný),
+ Fix a doc typo (Daniel Veillard),
+ Fix typos in {tree,xpath}.c (errror) (Jan Pokorný),
+ Add limitations about encoding conversion (Daniel Veillard),
+ Fix typos in xmlschemas{,types}.c (Jan Pokorný),
+ Fix incorrect spelling entites->entities (Jan Pokorný),
+ Forgot to document 2.9.1 release, regenerate docs (Daniel Veillard)
+
+ - Portability:
+ AC_CONFIG_FILES and executable bit (Roumen Petrov),
+ remove HAVE_CONFIG_H dependency in testlimits.c (Roumen Petrov),
+ fix some tabs mixing incompatible with python3 (Roumen Petrov),
+ Visual Studio 14 CTP defines snprintf() (Francis Dupont),
+ OS400: do not try to copy unexisting doc files (Patrick Monnerat),
+ OS400: use either configure.ac or configure.in. (Patrick Monnerat),
+ os400: make-src.sh: create physical file with target CCSID (Patrick Monnerat),
+ OS400: Add some more C macros equivalent procedures. (Patrick Monnerat),
+ OS400: use C macros to implement equivalent RPG support procedures. (Patrick Monnerat),
+ OS400: implement XPath macros as procedures for ILE/RPG support. (Patrick Monnerat),
+ OS400: include in distribution tarball. (Patrick Monnerat),
+ OS400: Add README: compilation directives and OS/400 specific stuff. (Patrick Monnerat),
+ OS400: Add compilation scripts. (Patrick Monnerat),
+ OS400: ILE RPG language header files. (Patrick Monnerat),
+ OS400: implement some macros as functions for ILE/RPG language support (that as no macros). (Patrick Monnerat),
+ OS400: UTF8<-->EBCDIC wrappers for system and external library calls (Patrick Monnerat),
+ OS400: Easy character transcoding support (Patrick Monnerat),
+ OS400: iconv functions compatibility wrappers and table builder. (Patrick Monnerat),
+ OS400: create architecture directory. Implement dlfcn emulation. (Patrick Monnerat),
+ Fix building when configuring without xpath and xptr (Daniel Veillard),
+ configure: Add --with-python-install-dir (Jonas Eriksson),
+ Fix compilation with minimum and xinclude. (Nicolas Le Cam),
+ Compile out use of xmlValidateNCName() when not available. (Nicolas Le Cam),
+ Fix compilation with minimum and schematron. (Nicolas Le Cam),
+ Legacy needs xmlSAX2StartElement() and xmlSAX2EndElement(). (Nicolas Le Cam),
+ Don't use xmlValidateName() when not available. (Nicolas Le Cam),
+ Fix a portability issue on Windows (Longstreth Jon),
+ Various portability patches for OpenVMS (Jacob (Jouk) Jansen),
+ Use specific macros for portability to OS/400 (Patrick Monnerat),
+ Add macros needed for OS/400 portability (Patrick Monnerat),
+ Portability patch for fopen on OS/400 (Patrick Monnerat),
+ Portability fixes for OS/400 (Patrick Monnerat),
+ Improve va_list portability (Patrick Monnerat),
+ Portability fix (Patrick Monnerat),
+ Portability fix (Patrick Monnerat),
+ Generic portability fix (Patrick Monnerat),
+ Shortening lines in headers (Patrick Monnerat),
+ build: Use pkg-config to find liblzma in preference to AC_CHECK_LIB (Philip Withnall),
+ build: Add @LZMA_LIBS@ to libxml’s pkg-config files (Philip Withnall),
+ fix some tabs mixing incompatible with python3 (Daniel Veillard),
+ add additional defines checks for support "./configure --with-minimum" (Denis Pauk),
+ Another round of fixes for older versions of Python (Arfrever Frehtes Taifersar Arahesis),
+ python: fix drv_libxml2.py for python3 compatibility (Alexandre Rostovtsev),
+ python: Fix compiler warnings when building python3 bindings (Armin K),
+ Fix for compilation with python 2.6.8 (Petr Sumbera)
+
+ - Improvements:
+ win32/libxml2.def.src after rebuild in doc (Roumen Petrov),
+ elfgcchack.h: more legacy needs xmlSAX2StartElement() and xmlSAX2EndElement() (Roumen Petrov),
+ elfgcchack.h: add xmlXPathNodeEval and xmlXPathSetContextNode (Roumen Petrov),
+ Provide cmake module (Samuel Martin),
+ Fix a couple of issues raised by make dist (Daniel Veillard),
+ Fix and add const qualifiers (Kurt Roeckx),
+ Preparing for upcoming release of 2.9.2 (Daniel Veillard),
+ Fix zlib and lzma libraries check via command line (Dmitriy),
+ wrong error column in structured error when parsing end tag (Juergen Keil),
+ doc/news.html: small update to avoid line join while generating NEWS. (Patrick Monnerat),
+ Add methods for python3 iterator (Ron Angeles),
+ Support element node traversal in document fragments. (Kyle VanderBeek),
+ xmlNodeSetName: Allow setting the name to a substring of the currently set name (Tristan Van Berkom),
+ Added macros for argument casts (Eric Zurcher),
+ adding init calls to xml and html Read parsing entry points (Daniel Veillard),
+ Get rid of 'REPLACEMENT CHARACTER' Unicode chars in xmlschemas.c (Jan Pokorný),
+ Implement choice for name classes on attributes (Shaun McCance),
+ Two small namespace tweaks (Daniel Veillard),
+ xmllint --memory should fail on empty files (Daniel Veillard),
+ Cast encoding name to char pointer to match arg type (Nikolay Sivov)
+
+ - Cleanups:
+ Removal of old configure.in (Daniel Veillard),
+ Unreachable code in tree.c (Gaurav Gupta),
+ Remove a couple of dead conditions (Gaurav Gupta),
+ Avoid some dead code and cleanup in relaxng.c (Gaurav),
+ Drop not needed checks (Denis Pauk),
+ Fix a wrong test (Daniel Veillard)
+
+
+
+2.9.1: Apr 19 2013:
+ - Features:
+ Support for Python3 (Daniel Veillard),
+ Add xmlXPathSetContextNode and xmlXPathNodeEval (Alex Bligh)
+
+ - Documentation:
+ Add documentation for xmllint --xpath (Daniel Veillard),
+ Fix the URL of the SAX documentation from James (Daniel Veillard),
+ Fix spelling of "length". (Michael Wood)
+
+ - Portability:
+ Fix python bindings with versions older than 2.7 (Daniel Veillard),
+ rebuild docs:Makefile.am (Roumen Petrov),
+ elfgcchack.h after rebuild in doc (Roumen Petrov),
+ elfgcchack for buf module (Roumen Petrov),
+ Fix a uneeded and wrong extra link parameter (Daniel Veillard),
+ Few cleanup patches for Windows (Denis Pauk),
+ Fix rpmbuild --nocheck (Mark Salter),
+ Fix for win32/configure.js and WITH_THREAD_ALLOC (Daniel Richard),
+ Fix Broken multi-arch support in xml2-config (Daniel Veillard),
+ Fix a portability issue for GCC < 3.4.0 (Daniel Veillard),
+ Windows build fixes (Daniel Richard),
+ Fix a thread portability problem (Friedrich Haubensak),
+ Downgrade autoconf requirement to 2.63 (Daniel Veillard)
+
+ - Bug Fixes:
+ Fix a linking error for python bindings (Daniel Veillard),
+ Fix a couple of return without value (Jüri Aedla),
+ Improve the hashing functions (Daniel Franke),
+ Improve handling of xmlStopParser() (Daniel Veillard),
+ Remove risk of lockup in dictionary initialization (Daniel Veillard),
+ Activate detection of encoding in external subset (Daniel Veillard),
+ Fix an output buffer flushing conversion bug (Mikhail Titov),
+ Fix an old bug in xmlSchemaValidateOneElement (Csaba László),
+ Fix configure cannot remove messages (Gilles Espinasse),
+ fix schema validation in combination with xsi:nil (Daniel Veillard),
+ xmlCtxtReadFile doesn't work with literal IPv6 URLs (Steve Wolf),
+ Fix a few problems with setEntityLoader (Alexey Neyman),
+ Detect excessive entities expansion upon replacement (Daniel Veillard),
+ Fix the flushing out of raw buffers on encoding conversions (Daniel,
+Veillard),
+ Fix some buffer conversion issues (Daniel Veillard),
+ When calling xmlNodeDump make sure we grow the buffer quickly (Daniel,
+Veillard),
+ Fix an error in the progressive DTD parsing code (Dan Winship),
+ xmllint should not load DTD by default when using the reader (Daniel,
+Veillard),
+ Try IBM-037 when looking for EBCDIC handlers (Petr Sumbera),
+ Fix potential out of bound access (Daniel Veillard),
+ Fix large parse of file from memory (Daniel Veillard),
+ Fix a bug in the nsclean option of the parser (Daniel Veillard),
+ Fix a regression in 2.9.0 breaking validation while streaming (Daniel,
+Veillard),
+ Remove potential calls to exit() (Daniel Veillard)
+
+ - Improvements:
+ Regenerated API, and testapi, rebuild documentation (Daniel Veillard),
+ Fix tree iterators broken by 2to3 script (Daniel Veillard),
+ update all tests for Python3 and Python2 (Daniel Veillard),
+ A few more fixes for python 3 affecting libxml2.py (Daniel Veillard),
+ Fix compilation on Python3 (Daniel Veillard),
+ Converting apibuild.py to python3 (Daniel Veillard),
+ First pass at starting porting to python3 (Daniel Veillard),
+ updated configure.in for python3 (Daniel Veillard),
+ Add support for xpathRegisterVariable in Python (Shaun McCance),
+ Added a regression tests from bug 694228 data (Daniel Veillard),
+ Cache presence of '<' in entities content (Daniel Veillard),
+ Avoid extra processing on entities (Daniel Veillard),
+ Python binding for xmlRegisterInputCallback (Alexey Neyman),
+ Python bindings: DOM casts everything to xmlNode (Alexey Neyman),
+ Define LIBXML_THREAD_ALLOC_ENABLED via xmlversion.h (Tim Starling),
+ Adding streaming validation to runtest checks (Daniel Veillard),
+ Add a --pushsmall option to xmllint (Daniel Veillard)
+
+ - Cleanups:
+ Switched comment in file to UTF-8 encoding (Daniel Veillard),
+ Extend gitignore (Daniel Veillard),
+ Silent the new python test on input (Alexey Neyman),
+ Cleanup of a duplicate test (Daniel Veillard),
+ Cleanup on duplicate test expressions (Daniel Veillard),
+ Fix compiler warning after 153cf15905cf4ec080612ada6703757d10caba1e (Patrick,
+Gansterer),
+ Spec cleanups and a fix for multiarch support (Daniel Veillard),
+ Silence a clang warning (Daniel Veillard),
+ Cleanup the Copyright to be pure MIT Licence wording (Daniel Veillard),
+ rand_seed should be static in dict.c (Wouter Van Rooy),
+ Fix typos in parser comments (Jan Pokorný)
+
+
+
+2.9.0: Sep 11 2012:
+ - Features:
+ A few new API entry points,
+ More resilient push parser mode,
+ A lot of portability improvement,
+ Faster XPath evaluation
+
+ - Documentation:
+ xml2-config.1 markup error (Christian Weisgerber),
+ libxml(3) manpage typo fix (John Bradshaw),
+ More cleanups to the documentation part of libxml2 (Daniel Richard G)
+
+ - Portability:
+ Bug 676544 - fails to build with --without-sax1 (Akira TAGOH),
+ fix builds not having stdint.h (Rob Richards),
+ GetProcAddressA is available only on WinCE (Daniel Veillard),
+ More updates and cleanups on autotools and Makefiles (Daniel Richard G),
+ More changes for Win32 compilation (Eric Zurcher),
+ Basic changes for Win32 builds of release 2.9.0: compile buf.c (Eric Zurcher),
+ Bundles all generated files for python into the distribution (Daniel Richard G),
+ Fix compiler warnings of wincecompat.c (Patrick Gansterer),
+ Fix non __GNUC__ build (Patrick Gansterer),
+ Fix windows unicode build (Patrick Gansterer),
+ clean redefinition of {v}snprintf in C-source (Roumen Petrov),
+ use xmlBuf... if DEBUG_INPUT is defined (Roumen Petrov),
+ fix runtests to use pthreads support for various Unix platforms (Daniel Richard G),
+ Various "make distcheck" and portability fixups 2nd part (Daniel Richard G),
+ Various "make distcheck" and portability fixups (Daniel Richard G),
+ Fix compilation on older Visual Studio (Daniel Veillard)
+
+ - Bug Fixes:
+ Change the XPath code to percolate allocation errors (Daniel Veillard),
+ Fix reuse of xmlInitParser (Daniel Veillard),
+ Fix potential crash on entities errors (Daniel Veillard),
+ initialize var (Rob Richards),
+ Fix the XPath arity check to also check the XPath stack limits (Daniel Veillard),
+ Fix problem with specific and generic error handlers (Pietro Cerutti),
+ Avoid a potential infinite recursion (Daniel Veillard),
+ Fix an XSD error when generating internal automata (Daniel Veillard),
+ Patch for xinclude of text using multibyte characters (Vitaly Ostanin),
+ Fix a segfault on XSD validation on pattern error (Daniel Veillard),
+ Fix missing xmlsave.h module which was ignored in recent builds (Daniel Veillard),
+ Add a missing element check (Daniel Veillard),
+ Adding various checks on node type though the API (Daniel Veillard),
+ Namespace nodes can't be unlinked with xmlUnlinkNode (Daniel Veillard),
+ Fix make dist to include new private header files (Daniel Veillard),
+ More fixups on the push parser behaviour (Daniel Veillard),
+ Strengthen behaviour of the push parser in problematic situations (Daniel Veillard),
+ Enforce XML_PARSER_EOF state handling through the parser (Daniel Veillard),
+ Fixup limits parser (Daniel Veillard),
+ Do not fetch external parsed entities (Daniel Veillard),
+ Fix an error in previous commit (Aron Xu),
+ Fix entities local buffers size problems (Daniel Veillard),
+ Fix parser local buffers size problems (Daniel Veillard),
+ Fix a failure to report xmlreader parsing failures (Daniel Veillard)
+
+ - Improvements:
+ Keep libxml2.syms when running "make distclean" (Daniel Veillard),
+ Allow to set the quoting character of an xmlWriter (Csaba Raduly),
+ Keep non-significant blanks node in HTML parser (Daniel Veillard),
+ Add a forbidden variable error number and message to XPath (Daniel Veillard),
+ Support long path names on WNT (Michael Stahl),
+ Improve HTML escaping of attribute on output (Daniel Veillard),
+ Handle ICU_LIBS as LIBADD, not LDFLAGS to prevent linking errors (Arfrever Frehtes Taifersar Arahesis),
+ Switching XPath node sorting to Timsort (Vojtech Fried),
+ Optimizing '//' in XPath expressions (Nick Wellnhofer),
+ Expose xmlBufShrink in the public tree API (Daniel Veillard),
+ Visible HTML elements close the head tag (Conrad Irwin),
+ Fix file and line report for XSD SAX and reader streaming validation (Daniel Veillard),
+ Fix const qualifyer to definition of xmlBufferDetach (Daniel Veillard),
+ minimize use of HAVE_CONFIG_H (Roumen Petrov),
+ fixup regression in Various "make distcheck" and portability fixups (Roumen Petrov),
+ Add support for big line numbers in error reporting (Daniel Veillard),
+ Avoid using xmlBuffer for serialization (Daniel Veillard),
+ Improve compatibility between xmlBuf and xmlBuffer (Daniel Veillard),
+ Provide new accessors for xmlOutputBuffer (Daniel Veillard),
+ Improvements for old buffer compatibility (Daniel Veillard),
+ Expand the limit test program (Daniel Veillard),
+ Improve error reporting on parser errors (Daniel Veillard),
+ Implement some default limits in the XPath module (Daniel Veillard),
+ Introduce some default parser limits (Daniel Veillard),
+ Cleanups and new limit APIs for dictionaries (Daniel Veillard),
+ Fixup for buf.c (Daniel Veillard),
+ Cleanup URI module memory allocation code (Daniel Veillard),
+ Extend testlimits (Daniel Veillard),
+ More avoid quadratic behaviour (Daniel Veillard),
+ Impose a reasonable limit on PI size (Daniel Veillard),
+ first version of testlimits new test (Daniel Veillard),
+ Avoid quadratic behaviour in some push parsing cases (Daniel Veillard),
+ Impose a reasonable limit on comment size (Daniel Veillard),
+ Impose a reasonable limit on attribute size (Daniel Veillard),
+ Harden the buffer code and make it more compatible (Daniel Veillard),
+ More cleanups for input/buffers code (Daniel Veillard),
+ Cleanup function xmlBufResetInput(), to set input from Buffer (Daniel Veillard)
+ Swicth the test program for characters to new input buffers (Daniel Veillard),
+ Convert the HTML tree module to the new buffers (Daniel Veillard),
+ Convert of the HTML parser to new input buffers (Daniel Veillard),
+ Convert the writer to new output buffer and save APIs (Daniel Veillard),
+ Convert XMLReader to the new input buffers (Daniel Veillard),
+ New saving functions using xmlBuf and conversion (Daniel Veillard),
+ Provide new xmlBuf based saving functions (Daniel Veillard),
+ Convert XInclude to the new input buffers (Daniel Veillard),
+ Convert catalog code to the new input buffers (Daniel Veillard),
+ Convert C14N to the new Input buffer (Daniel Veillard),
+ Convert xmlIO.c to the new input and output buffers (Daniel Veillard),
+ Convert XML parser to the new input buffers (Daniel Veillard),
+ Incompatible change to the Input and Output buffers (Daniel Veillard),
+ Adding new encoding function to deal with the new structures (Daniel Veillard),
+ Convert XPath to xmlBuf (Daniel Veillard),
+ Adding a new buf module for buffers (Daniel Veillard),
+ Memory error within SAX2 reuse common framework (Daniel Veillard),
+ Fix xmllint --xpath node initialization (Daniel Veillard)
+
+ - Cleanups:
+ Various cleanups to avoid compiler warnings (Daniel Veillard),
+ Big space and tab cleanup (Daniel Veillard),
+ Followup to LibXML2 docs/examples cleanup patch (Daniel Veillard),
+ Second round of cleanups for LibXML2 docs/examples (Daniel Richard),
+ Remove all .cvsignore as they are not used anymore (Daniel Veillard),
+ Fix a Timsort function helper comment (Daniel Veillard),
+ Small cleanup for valgrind target (Daniel Veillard),
+ Patch for portability of latin characters in C files (Daniel Veillard),
+ Cleanup some of the parser code (Daniel Veillard),
+ Fix a variable name in comment (Daniel Veillard),
+ Regenerated testapi.c (Daniel Veillard),
+ Regenerating docs and API files (Daniel Veillard),
+ Small cleanup of unused variables in test (Daniel Veillard),
+ Expand .gitignore with more files (Daniel Veillard)
+
+
+
+2.8.0: May 23 2012:
+ - Features:
+ add lzma compression support (Anders F Bjorklund)
+
+ - Documentation:
+ xmlcatalog: Add uri and delegateURI to possible add types in man page. (Ville Skyttä),
+ Update README.tests (Daniel Veillard),
+ URI handling code is not OOM resilient (Daniel Veillard),
+ Fix an error in comment (Daniel Veillard),
+ Fixed bug #617016 (Daniel Mustieles),
+ Fixed two typos in the README document (Daniel Neel),
+ add generated html files (Anders F Bjorklund),
+ Clarify the need to use xmlFreeNode after xmlUnlinkNode (Daniel Veillard),
+ Improve documentation a bit (Daniel Veillard),
+ Updated URL for lxml python bindings (Daniel Veillard)
+
+ - Portability:
+ Restore code for Windows compilation (Daniel Veillard),
+ Remove git error message during configure (Christian Dywan),
+ xmllint: Build fix for endTimer if !defined(HAVE_GETTIMEOFDAY) (Patrick R. Gansterer),
+ remove a bashism in confgure.in (John Hein),
+ undef ERROR if already defined (Patrick R. Gansterer),
+ Fix library problems with mingw-w64 (Michael Cronenworth),
+ fix windows build. ifdef addition from bug 666491 makes no sense (Rob Richards),
+ prefer native threads on win32 (Sam Thursfield),
+ Allow to compile with Visual Studio 2010 (Thomas Lemm),
+ Fix mingw's snprintf configure check (Andoni Morales),
+ fixed a 64bit big endian issue (Marcus Meissner),
+ Fix portability failure if netdb.h lacks NO_ADDRESS (Daniel Veillard),
+ Fix windows build from lzma addition (Rob Richards),
+ autogen: Only check for libtoolize (Colin Walters),
+ Fix the Windows build files (Patrick von Reth),
+ 634846 Remove a linking option breaking Windows VC10 (Daniel Veillard),
+ 599241 fix an initialization problem on Win64 (Andrew W. Nosenko),
+ fix win build (Rob Richards)
+
+ - Bug fixes:
+ Part for rand_r checking missing (Daniel Veillard),
+ Cleanup on randomization (Daniel Veillard),
+ Fix undefined reference in python module (Pacho Ramos),
+ Fix a race in xmlNewInputStream (Daniel Veillard),
+ Fix weird streaming RelaxNG errors (Noam),
+ Fix various bugs in new code raised by the API checking (Daniel Veillard),
+ Fix various problems with "make dist" (Daniel Veillard),
+ Fix a memory leak in the xzlib code (Daniel Veillard),
+ HTML parser error with <noscript> in the <head> (Denis Pauk),
+ XSD: optional element in complex type extension (Remi Gacogne),
+ Fix html serialization error and htmlSetMetaEncoding() (Daniel Veillard),
+ Fix a wrong return value in previous patch (Daniel Veillard),
+ Fix an uninitialized variable use (Daniel Veillard),
+ Fix a compilation problem with --minimum (Brandon Slack),
+ Remove redundant and ungarded include of resolv.h (Daniel Veillard),
+ xinclude with parse="text" does not use the entity loader (Shaun McCance),
+ Allow to parse 1 byte HTML files (Denis Pauk),
+ Patch that fixes the skipping of the HTML_PARSE_NOIMPLIED flag (Martin Schröder),
+ Avoid memory leak if xmlParserInputBufferCreateIO fails (Lin Yi-Li),
+ Prevent an infinite loop when dumping a node with encoding problems (Timothy Elliott),
+ xmlParseNodeInContext problems with an empty document (Tim Elliott),
+ HTML element position is not detected propperly (Pavel Andrejs),
+ Fix an off by one pointer access (Jüri Aedla),
+ Try to fix a problem with entities in SAX mode (Daniel Veillard),
+ Fix a crash with xmllint --path on empty results (Daniel Veillard),
+ Fixed bug #667946 (Daniel Mustieles),
+ Fix a logic error in Schemas Component Constraints (Ryan Sleevi),
+ Fix a wrong enum type use in Schemas Types (Nico Weber),
+ Fix SAX2 builder in case of undefined attributes namespace (Daniel Veillard),
+ Fix SAX2 builder in case of undefined element namespaces (Daniel Veillard),
+ fix reference to STDOUT_FILENO on MSVC (Tay Ray Chuan),
+ fix a pair of possible out of array char references (Daniel Veillard),
+ Fix an allocation error when copying entities (Daniel Veillard),
+ Make sure the parser returns when getting a Stop order (Chris Evans),
+ Fix some potential problems on reallocation failures(parser.c) (Xia Xinfeng),
+ Fix a schema type duration comparison overflow (Daniel Veillard),
+ Fix an unimplemented part in RNG value validation (Daniel Veillard),
+ Fix missing error status in XPath evaluation (Daniel Veillard),
+ Hardening of XPath evaluation (Daniel Veillard),
+ Fix an off by one error in encoding (Daniel Veillard),
+ Fix RELAX NG include bug #655288 (Shaun McCance),
+ Fix XSD validation bug #630130 (Toyoda Eizi),
+ Fix some potential problems on reallocation failures (Chris Evans),
+ __xmlRaiseError: fix use of the structured callback channel (Dmitry V. Levin),
+ __xmlRaiseError: fix the structured callback channel's data initialization (Dmitry V. Levin),
+ Fix memory corruption when xmlParseBalancedChunkMemoryInternal is called from xmlParseBalancedChunk (Rob Richards),
+ Small fix for previous commit (Daniel Veillard),
+ Fix a potential freeing error in XPath (Daniel Veillard),
+ Fix a potential memory access error (Daniel Veillard),
+ Reactivate the shared library versionning script (Daniel Veillard)
+
+ - Improvements:
+ use mingw C99 compatible functions {v}snprintf instead those from MSVC runtime (Roumen Petrov),
+ New symbols added for the next release (Daniel Veillard),
+ xmlTextReader bails too quickly on error (Andy Lutomirski),
+ Use a hybrid allocation scheme in xmlNodeSetContent (Conrad Irwin),
+ Use buffers when constructing string node lists. (Conrad Irwin),
+ Add HTML parser support for HTML5 meta charset encoding declaration (Denis Pauk),
+ wrong message for double hyphen in comment XML error (Bryan Henderson),
+ Fix "make tst" to grab lzma lib too (Daniel Veillard),
+ Add "whereis" command to xmllint shell (Ryan),
+ Improve xmllint shell (Ryan),
+ add function xmlTextReaderRelaxNGValidateCtxt() (Noam Postavsky),
+ Add --system support to autogen.sh (Daniel Veillard),
+ Add hash randomization to hash and dict structures (Daniel Veillard),
+ included xzlib in dist (Anders F Bjorklund),
+ move xz/lzma helpers to separate included files (Anders F Bjorklund),
+ add generated devhelp files (Anders F Bjorklund),
+ add XML_WITH_LZMA to api (Anders F Bjorklund),
+ autogen.sh: Honor NOCONFIGURE environment variable (Colin Walters),
+ Improve the error report on undefined REFs (Daniel Veillard),
+ Add exception for new W3C PI xml-model (Daniel Veillard),
+ Add options to ignore the internal encoding (Daniel Veillard),
+ testapi: use the right type for the check (Stefan Kost),
+ various: handle return values of write calls (Stefan Kost),
+ testWriter: xmlTextWriterWriteFormatElement wants an int instead of a long int (Stefan Kost),
+ runxmlconf: update to latest testsuite version (Stefan Kost),
+ configure: add -Wno-long-long to CFLAGS (Stefan Kost),
+ configure: support silent automake rules if possible (Stefan Kost),
+ xmlmemory: add a cast as size_t has no portable printf modifier (Stefan Kost),
+ __xmlRaiseError: remove redundant schannel initialization (Dmitry V. Levin),
+ __xmlRaiseError: do cheap code check early (Dmitry V. Levin)
+
+ - Cleanups:
+ Cleanups before 2.8.0-rc2 (Daniel Veillard),
+ Avoid an extra operation (Daniel Veillard),
+ Remove vestigial de-ANSI-fication support. (Javier Jardón),
+ autogen.sh: Fix typo (Javier Jardón),
+ Do not use unsigned but unsigned int (Daniel Veillard),
+ Remove two references to u_short (Daniel Veillard),
+ Fix -Wempty-body warning from clang (Nico Weber),
+ Cleanups of lzma support (Daniel Veillard),
+ Augment the list of ignored files (Daniel Veillard),
+ python: remove unused variable (Stefan Kost),
+ python: flag two unused args (Stefan Kost),
+ configure: acconfig.h is deprecated since autoconf-2.50 (Stefan Kost),
+ xpath: remove unused variable (Stefan Kost)
+
+
+
+2.7.8: Nov 4 2010:
+ - Features:
+ 480323 add code to plug in ICU converters by default (Giuseppe Iuculano),
+ Add xmlSaveOption XML_SAVE_WSNONSIG (Adam Spragg)
+
+ - Documentation:
+ Fix devhelp documentation installation (Mike Hommey),
+ Fix web site encoding problems (Daniel Veillard),
+ Fix a couple of typo in HTML parser error messages (Michael Day),
+ Forgot to update the news page for 0.7.7 (Daniel Veillard)
+
+ - Portability:
+ 607273 Fix python detection on MSys/Windows (LRN),
+ 614087 Fix Socket API usage to allow Windows64 compilation (Ozkan Sezer),
+ Fix compilation with Clang (Koop Mast),
+ Fix Win32 build (Rob Richards)
+
+ - Bug Fixes:
+ 595789 fix a remaining potential Solaris problem (Daniel Veillard),
+ 617468 fix progressive HTML parsing with style using "'" (Denis Pauk),
+ 616478 Fix xmllint shell write command (Gwenn Kahz),
+ 614005 Possible erroneous HTML parsing on unterminated script (Pierre Belzile),
+ 627987 Fix XSD IDC errors in imported schemas (Jim Panetta),
+ 629325 XPath rounding errors first cleanup (Phil Shafer),
+ 630140 fix iso995x encoding error (Daniel Veillard),
+ make sure htmlCtxtReset do reset the disableSAX field (Daniel Veillard),
+ Fix a change of semantic on XPath preceding and following axis (Daniel Veillard),
+ Fix a potential segfault due to weak symbols on pthreads (Mike Hommey),
+ Fix a leak in XPath compilation (Daniel Veillard),
+ Fix the semantic of XPath axis for namespace/attribute context nodes (Daniel Veillard),
+ Avoid a descriptor leak in catalog loading code (Carlo Bramini),
+ Fix a small bug in XPath evaluation code (Marius Wachtler),
+ Fix handling of XML-1.0 XML namespace declaration (Daniel Veillard),
+ Fix errors in XSD double validation check (Csaba Raduly),
+ Fix handling of apos in URIs (Daniel Veillard),
+ xmlTextReaderReadOuterXml should handle DTD (Rob Richards),
+ Autogen.sh needs to create m4 directory (Rob Richards)
+
+ - Improvements:
+ 606592 update language ID parser to RFC 5646 (Daniel Veillard),
+ Sort python generated stubs (Mike Hommey),
+ Add an HTML parser option to avoid a default doctype (Daniel Veillard)
+
+ - Cleanups:
+ 618831 don't ship generated files in git (Adrian Bunk),
+ Switch from the obsolete mkinstalldirs to AC_PROG_MKDIR_P (Adrian Bunk),
+ Various cleanups on encoding handling (Daniel Veillard),
+ Fix xmllint to use format=1 for default formatting (Adam Spragg),
+ Force _xmlSaveCtxt.format to be 0 or 1 (Adam Spragg),
+ Cleanup encoding pointer comparison (Nikolay Sivov),
+ Small code cleanup on previous patch (Daniel Veillard)
+
+
+
+2.7.7: Mar 15 2010:
+ - Improvements:
+ Adding a --xpath option to xmllint (Daniel Veillard),
+ Make HTML parser non-recursive (Eugene Pimenov)
+
+ - Portability:
+ relaxng.c: cast to allow compilation with sun studio 11 (Ben Walton),
+ Fix build failure on Sparc solaris (Roumen Petrov),
+ use autoreconf in autogen.sh (Daniel Veillard),
+ Fix build with mingw (Roumen Petrov),
+ Upgrade some of the configure and autogen (Daniel Veillard),
+ Fix relaxNG tests in runtest for Windows runtest.c: initialize ret (Rob Richards),
+ Fix a const warning in xmlNodeSetBase (Martin Trappel),
+ Fix python generator to not use deprecated xmllib (Daniel Veillard),
+ Update some automake files (Daniel Veillard),
+ 598785 Fix nanohttp on Windows (spadix)
+
+ - Bug Fixes:
+ libxml violates the zlib interface and crashes (Mark Adler),
+ Fix broken escape behaviour in regexp ranges (Daniel Veillard),
+ Fix missing win32 libraries in libxml-2.0.pc (Volker Grabsch),
+ Fix detection of python linker flags (Daniel Macks),
+ fix build error in libxml2/python (Paul Smith),
+ ChunkParser: Incorrect decoding of small xml files (Raul Hudea),
+ htmlCheckEncoding doesn't update input-end after shrink (Eugene Pimenov),
+ Fix a missing #ifdef (Daniel Veillard),
+ Fix encoding selection for xmlParseInNodeContext (Daniel Veillard),
+ xmlPreviousElementSibling mistake (François Delyon),
+ 608773 add a missing check in xmlGROW (Daniel Veillard),
+ Fix xmlParseInNodeContext for HTML content (Daniel Veillard),
+ Fix lost namespace when copying node * tree.c: reconcile namespace if not found (Rob Richards),
+ Fix some missing commas in HTML element lists (Eugene Pimenov),
+ Correct variable type to unsigned (Nikolay Sivov),
+ Recognize ID attribute in HTML without DOCTYPE (Daniel Veillard),
+ Fix memory leak in xmlXPathEvalExpression() (Martin),
+ Fix an init bug in global.c (Kai Henning),
+ Fix xmlNodeSetBase() comment (Daniel Veillard),
+ Fix broken escape behaviour in regexp ranges (Daniel Veillard),
+ Don't give default HTML boolean attribute values in parser (Daniel Veillard),
+ xmlCtxtResetLastError should reset ctxt-errNo (Daniel Veillard)
+
+ - Cleanups:
+ Cleanup a couple of weirdness in HTML parser (Eugene Pimenov)
+
+
+
+2.7.6: Oct 6 2009:
+ - Bug Fixes:
+ Restore thread support in default configuration (Andrew W. Nosenko),
+ URI with no path parsing problem (Daniel Veillard),
+ Minor patch for conditional defines in threads.c (Eric Zurcher)
+
+
+
+2.7.5: Sep 24 2009:
+ - Bug Fixes:
+ Restore behavior of --with-threads without argument (Andrew W. Nosenko),
+ Fix memory leak when doc is NULL (Rob Richards),
+ 595792 fixing a RelaxNG bug introduced in 2.7.4 (Daniel Veillard),
+ Fix a Relaxng bug raised by libvirt test suite (Daniel Veillard),
+ Fix a parsing problem with little data at startup (Daniel Veillard),
+ link python module with python library (Frederic Crozat),
+ 594874 Forgot an fclose in xmllint (Daniel Veillard)
+
+ - Cleanup:
+ Adding symbols.xml to EXTRA_DIST (Daniel Veillard)
+
+
+
+2.7.4: Sep 10 2009:
+ - Improvements:
+ Switch to GIT (GNOME),
+ Add symbol versioning to libxml2 shared libs (Daniel Veillard)
+
+ - Portability:
+ 593857 try to work around thread pbm MinGW 4.4 (Daniel Veillard),
+ 594250 rename ATTRIBUTE_ALLOC_SIZE to avoid clashes (Daniel Veillard),
+ Fix Windows build * relaxng.c: fix windows build (Rob Richards),
+ Fix the globals.h to use XMLPUBFUN (Paul Smith),
+ Problem with extern extern in header (Daniel Veillard),
+ Add -lnetwork for compiling on Haiku (Scott McCreary),
+ Runtest portability patch for Solaris (Tim Rice),
+ Small patch to accomodate the Haiku OS (Scott McCreary),
+ 584605 package VxWorks folder in the distribution (Daniel Veillard),
+ 574017 Realloc too expensive on most platform (Daniel Veillard),
+ Fix windows build (Rob Richards),
+ 545579 doesn't compile without schema support (Daniel Veillard),
+ xmllint use xmlGetNodePath when not compiled in (Daniel Veillard),
+ Try to avoid __imp__xmlFree link trouble on msys (Daniel Veillard),
+ Allow to select the threading system on Windows (LRN),
+ Fix Solaris binary links, cleanups (Daniel Veillard),
+ Bug 571059 – MSVC doesn't work with the bakefile (Intron),
+ fix ATTRIBUTE_PRINTF header clash (Belgabor and Mike Hommey),
+ fixes for Borland/CodeGear/Embarcadero compilers (Eric Zurcher)
+
+ - Documentation:
+ 544910 typo: "renciliateNs" (Leonid Evdokimov),
+ Add VxWorks to list of OSes (Daniel Veillard),
+ Regenerate the documentation and update for git (Daniel Veillard),
+ 560524 ¿ xmlTextReaderLocalName description (Daniel Veillard),
+ Added sponsoring by AOE media for the server (Daniel Veillard),
+ updated URLs for GNOME (Vincent Lefevre),
+ more warnings about xmlCleanupThreads and xmlCleanupParser (Daniel Veillard)
+
+ - Bug fixes:
+ 594514 memory leaks - duplicate initialization (MOD),
+ Wrong block opening in htmlNodeDumpOutputInternal (Daniel Veillard),
+ 492317 Fix Relax-NG validation problems (Daniel Veillard),
+ 558452 fight with reg test and error report (Daniel Veillard),
+ 558452 RNG compilation of optional multiple child (Daniel Veillard),
+ 579746 XSD validation not correct / nilable groups (Daniel Veillard),
+ 502960 provide namespace stack when parsing entity (Daniel Veillard),
+ 566012 part 2 fix regresion tests and push mode (Daniel Veillard),
+ 566012 autodetected encoding and encoding conflict (Daniel Veillard),
+ 584220 xpointer(/) and xinclude problems (Daniel Veillard),
+ 587663 Incorrect Attribute-Value Normalization (Daniel Veillard),
+ 444994 HTML chunked failure for attribute with <> (Daniel Veillard),
+ Fix end of buffer char being split in XML parser (Daniel Veillard),
+ Non ASCII character may be split at buffer end (Adiel Mittmann),
+ 440226 Add xmlXIncludeProcessTreeFlagsData API (Stefan Behnel),
+ 572129 speed up parsing of large HTML text nodes (Markus Kull),
+ Fix HTML parsing with 0 character in CDATA (Daniel Veillard),
+ Fix SetGenericErrorFunc and SetStructured clash (Wang Lam),
+ 566012 Incomplete EBCDIC parsing support (Martin Kogler),
+ 541335 HTML avoid creating 2 head or 2 body element (Daniel Veillard),
+ 541237 error correcting missing end tags in HTML (Daniel Veillard),
+ 583439 missing line numbers in push mode (Daniel Veillard),
+ 587867 xmllint --html --xmlout serializing as HTML (Daniel Veillard),
+ 559501 avoid select and use poll for nanohttp (Raphael Prevost),
+ 559410 - Regexp bug on (...)? constructs (Daniel Veillard),
+ Fix a small problem on previous HTML parser patch (Daniel Veillard),
+ 592430 - HTML parser runs into endless loop (Daniel Veillard),
+ 447899 potential double free in xmlFreeTextReader (Daniel Veillard),
+ 446613 small validation bug mixed content with NS (Daniel Veillard),
+ Fix the problem of revalidating a doc with RNG (Daniel Veillard),
+ Fix xmlKeepBlanksDefault to not break indent (Nick Wellnhofer),
+ 512131 refs from externalRef part need to be added (Daniel Veillard),
+ 512131 crash in xmlRelaxNGValidateFullElement (Daniel Veillard),
+ 588441 allow '.' in HTML Names even if invalid (Daniel Veillard),
+ 582913 Fix htmlSetMetaEncoding() to be nicer (Daniel Veillard),
+ 579317 Try to find the HTML encoding information (Daniel Veillard),
+ 575875 don't output charset=html (Daniel Veillard),
+ 571271 fix semantic of xsd:all with minOccurs=0 (Daniel Veillard),
+ 570702 fix a bug in regexp determinism checking (Daniel Veillard),
+ 567619 xmlValidateNotationUse missing param test (Daniel Veillard),
+ 574393 ¿ utf-8 filename magic for compressed files (Hans Breuer),
+ Fix a couple of problems in the parser (Daniel Veillard),
+ 585505 ¿ Document ids and refs populated by XSD (Wayne Jensen),
+ 582906 XSD validating multiple imports of the same schema (Jason Childs),
+ Bug 582887 ¿ problems validating complex schemas (Jason Childs),
+ Bug 579729 ¿ fix XSD schemas parsing crash (Miroslav Bajtos),
+ 576368 ¿ htmlChunkParser with special attributes (Jiri Netolicky),
+ Bug 565747 ¿ relax anyURI data character checking (Vincent Lefevre),
+ Preserve attributes of include start on tree copy (Petr Pajas),
+ Skip silently unrecognized XPointer schemes (Jakub Wilk),
+ Fix leak on SAX1, xmllint --sax1 option and debug (Daniel Veillard),
+ potential NULL dereference on non-glibc (Jim Meyering),
+ Fix an XSD validation crash (Daniel Veillard),
+ Fix a regression in streaming entities support (Daniel Veillard),
+ Fix a couple of ABI issues with C14N 1.1 (Aleksey Sanin),
+ Aleksey Sanin support for c14n 1.1 (Aleksey Sanin),
+ reader bug fix with entities (Daniel Veillard),
+ use options from current parser ctxt for external entities (Rob Richards),
+ 581612 use %s to printf strings (Christian Persch),
+ 584605 change the threading initialization sequence (Igor Novoseltsev),
+ 580705 keep line numbers in HTML parser (Aaron Patterson),
+ 581803 broken HTML table attributes init (Roland Steiner),
+ do not set error code in xmlNsWarn (Rob Richards),
+ 564217 fix structured error handling problems,
+ reuse options from current parser for entities (Rob Richards),
+ xmlXPathRegisterNs should not allow enpty prefixes (Daniel Veillard),
+ add a missing check in xmlAddSibling (Kris Breuker),
+ avoid leaks on errors (Jinmei Tatuya)
+
+ - Cleanup:
+ Chasing dead assignments reported by clang-scan (Daniel Veillard),
+ A few more safety cleanup raised by scan (Daniel Veillard),
+ Fixing assorted potential problems raised by scan (Daniel Veillard),
+ Potential uninitialized arguments raised by scan (Daniel Veillard),
+ Fix a bunch of scan 'dead increments' and cleanup (Daniel Veillard),
+ Remove a pedantic warning (Daniel Veillard),
+ 555833 always use rm -f in uninstall-local (Daniel Veillard),
+ 542394 xmlRegisterOutputCallbacks MAX_INPUT_CALLBACK (Daniel Veillard),
+ Autoregenerate libxml2.syms automated checkings (Daniel Veillard),
+ Make xmlRecoverDoc const (Martin Trappel) (Daniel Veillard),
+ Both args of xmlStrcasestr are const (Daniel Veillard),
+ hide the nbParse* variables used for debugging (Mike Hommey),
+ 570806 changed include of config.h (William M. Brack),
+ cleanups and error reports when xmlTextWriterVSprintf fails (Jinmei Tatuya)
+
+
+
+2.7.3: Jan 18 2009:
+ - Build fix: fix build when HTML support is not included.
+ - Bug fixes: avoid memory overflow in gigantic text nodes,
+ indentation problem on the writed (Rob Richards),
+ xmlAddChildList pointer problem (Rob Richards and Kevin Milburn),
+ xmlAddChild problem with attribute (Rob Richards and Kris Breuker),
+ avoid a memory leak in an edge case (Daniel Zimmermann),
+ deallocate some pthread data (Alex Ott).
+ - Improvements: configure option to avoid rebuilding docs (Adrian Bunk),
+ limit text nodes to 10MB max by default, add element traversal
+ APIs, add a parser option to enable pre 2.7 SAX behavior (Rob Richards),
+ add gcc malloc checking (Marcus Meissner), add gcc printf like functions
+ parameters checking (Marcus Meissner).
+
+
+2.7.2: Oct 3 2008:
+ - Portability fix: fix solaris compilation problem, fix compilation
+ if XPath is not configured in
+ - Bug fixes: nasty entity bug introduced in 2.7.0, restore old behaviour
+ when saving an HTML doc with an xml dump function, HTML UTF-8 parsing
+ bug, fix reader custom error handlers (Riccardo Scussat)
+
+ - Improvement: xmlSave options for more flexibility to save as
+ XML/HTML/XHTML, handle leading BOM in HTML documents
+
+
+2.7.1: Sep 1 2008:
+ - Portability fix: Borland C fix (Moritz Both)
+ - Bug fixes: python serialization wrappers, XPath QName corner
+ case handking and leaks (Martin)
+ - Improvement: extend the xmlSave to handle HTML documents and trees
+ - Cleanup: python serialization wrappers
+
+
+2.7.0: Aug 30 2008:
+ - Documentation: switch ChangeLog to UTF-8, improve mutithreads and
+ xmlParserCleanup docs
+ - Portability fixes: Older Win32 platforms (Rob Richards), MSVC
+ porting fix (Rob Richards), Mac OS X regression tests (Sven Herzberg),
+ non GNUCC builds (Rob Richards), compilation on Haiku (Andreas Färber)
+
+ - Bug fixes: various realloc problems (Ashwin), potential double-free
+ (Ashwin), regexp crash, icrash with invalid whitespace facets (Rob
+ Richards), pattern fix when streaming (William Brack), various XML
+ parsing and validation fixes based on the W3C regression tests, reader
+ tree skipping function fix (Ashwin), Schemas regexps escaping fix
+ (Volker Grabsch), handling of entity push errors (Ashwin), fix a slowdown
+ when encoder cant serialize characters on output
+ - Code cleanup: compilation fix without the reader, without the output
+ (Robert Schwebel), python whitespace (Martin), many space/tabs cleanups,
+ serious cleanup of the entity handling code
+ - Improvement: switch parser to XML-1.0 5th edition, add parsing flags
+ for old versions, switch URI parsing to RFC 3986,
+ add xmlSchemaValidCtxtGetParserCtxt (Holger Kaelberer),
+ new hashing functions for dictionnaries (based on Stefan Behnel work),
+ improve handling of misplaced html/head/body in HTML parser, better
+ regression test tools and code coverage display, better algorithms
+ to detect various versions of the billion laughts attacks, make
+ arbitrary parser limits avoidable as a parser option
+
+
+2.6.32: Apr 8 2008:
+ - Documentation: returning heap memory to kernel (Wolfram Sang),
+ trying to clarify xmlCleanupParser() use, xmlXPathContext improvement
+ (Jack Jansen), improve the *Recover* functions documentation,
+ XmlNodeType doc link fix (Martijn Arts)
+ - Bug fixes: internal subset memory leak (Ashwin), avoid problem with
+ paths starting with // (Petr Sumbera), streaming XSD validation callback
+ patches (Ashwin), fix redirection on port other than 80 (William Brack),
+ SAX2 leak (Ashwin), XInclude fragment of own document (Chris Ryan),
+ regexp bug with '.' (Andrew Tosh), flush the writer at the end of the
+ document (Alfred Mickautsch), output I/O bug fix (William Brack),
+ writer CDATA output after a text node (Alex Khesin), UTF-16 encoding
+ detection (William Brack), fix handling of empty CDATA nodes for Safari
+ team, python binding problem with namespace nodes, improve HTML parsing
+ (Arnold Hendriks), regexp automata build bug, memory leak fix (Vasily
+ Chekalkin), XSD test crash, weird system parameter entity parsing problem,
+ allow save to file:///X:/ windows paths, various attribute normalisation
+ problems, externalSubsetSplit fix (Ashwin), attribute redefinition in
+ the DTD (Ashwin), fix in char ref parsing check (Alex Khesin), many
+ out of memory handling fixes (Ashwin), XPath out of memory handling fixes
+ (Alvaro Herrera), various realloc problems (Ashwin), UCS4 encoding
+ conversion buffer size (Christian Fruth), problems with EatName
+ functions on memory errors, BOM handling in external parsed entities
+ (Mark Rowe)
+ - Code cleanup: fix build under VS 2008 (David Wimsey), remove useless
+ mutex in xmlDict (Florent Guilian), Mingw32 compilation fix (Carlo
+ Bramini), Win and MacOS EOL cleanups (Florent Guiliani), iconv need
+ a const detection (Roumen Petrov), simplify xmlSetProp (Julien Charbon),
+ cross compilation fixes for Mingw (Roumen Petrov), SCO Openserver build
+ fix (Florent Guiliani), iconv uses const on Win32 (Rob Richards),
+ duplicate code removal (Ashwin), missing malloc test and error reports
+ (Ashwin), VMS makefile fix (Tycho Hilhorst)
+ - improvements: better plug of schematron in the normal error handling
+ (Tobias Minich)
+
+
+2.6.31: Jan 11 2008:
+ - Security fix: missing of checks in UTF-8 parsing
+ - Bug fixes: regexp bug, dump attribute from XHTML document, fix
+ xmlFree(NULL) to not crash in debug mode, Schematron parsing crash
+ (Rob Richards), global lock free on Windows (Marc-Antoine Ruel),
+ XSD crash due to double free (Rob Richards), indentation fix in
+ xmlTextWriterFullEndElement (Felipe Pena), error in attribute type
+ parsing if attribute redeclared, avoid crash in hash list scanner if
+ deleting elements, column counter bug fix (Christian Schmidt),
+ HTML embed element saving fix (Stefan Behnel), avoid -L/usr/lib
+ output from xml2-config (Fred Crozat), avoid an xmllint crash
+ (Stefan Kost), don't stop HTML parsing on out of range chars.
+
+ - Code cleanup: fix open() call third argument, regexp cut'n paste
+ copy error, unused variable in __xmlGlobalInitMutexLock (Hannes Eder),
+ some make distcheck realted fixes (John Carr)
+ - Improvements: HTTP Header: includes port number (William Brack),
+ testURI --debug option,
+
+
+2.6.30: Aug 23 2007:
+ - Portability: Solaris crash on error handling, windows path fixes
+ (Roland Schwarz and Rob Richards), mingw build (Roland Schwarz)
+ - Bugfixes: xmlXPathNodeSetSort problem (William Brack), leak when
+ reusing a writer for a new document (Dodji Seketeli), Schemas
+ xsi:nil handling patch (Frank Gross), relative URI build problem
+ (Patrik Fimml), crash in xmlDocFormatDump, invalid char in comment
+ detection bug, fix disparity with xmlSAXUserParseMemory, automata
+ generation for complex regexp counts problems, Schemas IDC import
+ problems (Frank Gross), xpath predicate evailation error handling
+ (William Brack)
+
+
+2.6.29: Jun 12 2007:
+ - Portability: patches from Andreas Stricke for WinCEi,
+ fix compilation warnings (William Brack), avoid warnings on Apple OS/X
+ (Wendy Doyle and Mark Rowe), Windows compilation and threading
+ improvements (Rob Richards), compilation against old Python versions,
+ new GNU tar changes (Ryan Hill)
+ - Documentation: xmlURIUnescapeString comment,
+ - Bugfixes: xmlBufferAdd problem (Richard Jones), 'make valgrind'
+ flag fix (Richard Jones), regexp interpretation of \,
+ htmlCreateDocParserCtxt (Jean-Daniel Dupas), configure.in
+ typo (Bjorn Reese), entity content failure, xmlListAppend() fix
+ (Georges-André Silber), XPath number serialization (William Brack),
+ nanohttp gzipped stream fix (William Brack and Alex Cornejo),
+ xmlCharEncFirstLine typo (Mark Rowe), uri bug (François Delyon),
+ XPath string value of PI nodes (William Brack), XPath node set
+ sorting bugs (William Brack), avoid outputting namespace decl
+ dups in the writer (Rob Richards), xmlCtxtReset bug, UTF-8 encoding
+ error handling, recustion on next in catalogs, fix a Relax-NG crash,
+ workaround wrong file: URIs, htmlNodeDumpFormatOutput on attributes,
+ invalid character in attribute detection bug, big comments before
+ internal subset streaming bug, HTML parsing of attributes with : in
+ the name, IDness of name in HTML (Dagfinn I. Mannsåker)
+ - Improvement: keep URI query parts in raw form (Richard Jones),
+ embed tag support in HTML (Michael Day)
+
+
+2.6.28: Apr 17 2007:
+ - Documentation: comment fixes (Markus Keim), xpath comments fixes too
+ (James Dennett)
+ - Bug fixes: XPath bug (William Brack), HTML parser autoclose stack usage
+ (Usamah Malik), various regexp bug fixes (DV and William), path conversion
+ on Windows (Igor Zlatkovic), htmlCtxtReset fix (Michael Day), XPath
+ principal node of axis bug, HTML serialization of some codepoint
+ (Steven Rainwater), user data propagation in XInclude (Michael Day),
+ standalone and XML decl detection (Michael Day), Python id output
+ for some id, fix the big python string memory leak, URI parsing fixes
+ (Stéphane Bidoul and William), long comments parsing bug (William),
+ concurrent threads initialization (Ted Phelps), invalid char
+ in text XInclude (William), XPath memory leak (William), tab in
+ python problems (Andreas Hanke), XPath node comparison error
+ (Oleg Paraschenko), cleanup patch for reader (Julien Reichel),
+ XML Schemas attribute group (William), HTML parsing problem (William),
+ fix char 0x2d in regexps (William), regexp quantifier range with
+ min occurs of 0 (William), HTML script/style parsing (Mike Day)
+ - Improvement: make xmlTextReaderSetup() public
+ - Compilation and postability: fix a missing include problem (William),
+ __ss_family on AIX again (Björn Wiberg), compilation without zlib
+ (Michael Day), catalog patch for Win32 (Christian Ehrlicher),
+ Windows CE fixes (Andreas Stricke)
+ - Various CVS to SVN infrastructure changes
+
+
+2.6.27: Oct 25 2006:
+ - Portability fixes: file names on windows (Roland Schwingel,
+ Emelyanov Alexey), windows compile fixup (Rob Richards),
+ AIX iconv() is apparently case sensitive
+ - improvements: Python XPath types mapping (Nic Ferrier), XPath optimization
+ (Kasimier), add xmlXPathCompiledEvalToBoolean (Kasimier), Python node
+ equality and comparison (Andreas Pakulat), xmlXPathCollectAndTest
+ improvememt (Kasimier), expose if library was compiled with zlib
+ support (Andrew Nosenko), cache for xmlSchemaIDCMatcher structs
+ (Kasimier), xmlTextConcat should work with comments and PIs (Rob
+ Richards), export htmlNewParserCtxt needed by Michael Day, refactoring
+ of catalog entity loaders (Michael Day), add XPointer support to
+ python bindings (Ross Reedstrom, Brian West and Stefan Anca),
+ try to sort out most file path to URI conversions and xmlPathToUri,
+ add --html --memory case to xmllint
+ - building fix: fix --with-minimum (Felipe Contreras), VMS fix,
+ const'ification of HTML parser structures (Matthias Clasen),
+ portability fix (Emelyanov Alexey), wget autodetection (Peter
+ Breitenlohner), remove the build path recorded in the python
+ shared module, separate library flags for shared and static builds
+ (Mikhail Zabaluev), fix --with-minimum --with-sax1 builds, fix
+ --with-minimum --with-schemas builds
+ - bug fix: xmlGetNodePath fix (Kasimier), xmlDOMWrapAdoptNode and
+ attribute (Kasimier), crash when using the recover mode,
+ xmlXPathEvalExpr problem (Kasimier), xmlXPathCompExprAdd bug (Kasimier),
+ missing destry in xmlFreeRMutex (Andrew Nosenko), XML Schemas fixes
+ (Kasimier), warning on entities processing, XHTML script and style
+ serialization (Kasimier), python generator for long types, bug in
+ xmlSchemaClearValidCtxt (Bertrand Fritsch), xmlSchemaXPathEvaluate
+ allocation bug (Marton Illes), error message end of line (Rob Richards),
+ fix attribute serialization in writer (Rob Richards), PHP4 DTD validation
+ crasher, parser safety patch (Ben Darnell), _private context propagation
+ when parsing entities (with Michael Day), fix entities behaviour when
+ using SAX, URI to file path fix (Mikhail Zabaluev), disappearing validity
+ context, arg error in SAX callback (Mike Hommey), fix mixed-content
+ autodetect when using --noblanks, fix xmlIOParseDTD error handling,
+ fix bug in xmlSplitQName on special Names, fix Relax-NG element content
+ validation bug, fix xmlReconciliateNs bug, fix potential attribute
+ XML parsing bug, fix line/column accounting in XML parser, chunking bug
+ in the HTML parser on script, try to detect obviously buggy HTML
+ meta encoding indications, bugs with encoding BOM and xmlSaveDoc,
+ HTML entities in attributes parsing, HTML minimized attribute values,
+ htmlReadDoc and htmlReadIO were broken, error handling bug in
+ xmlXPathEvalExpression (Olaf Walkowiak), fix a problem in
+ htmlCtxtUseOptions, xmlNewInputFromFile could leak (Marius Konitzer),
+ bug on misformed SSD regexps (Christopher Boumenot)
+
+ - documentation: warning about XML_PARSE_COMPACT (Kasimier Buchcik),
+ fix xmlXPathCastToString documentation, improve man pages for
+ xmllitn and xmlcatalog (Daniel Leidert), fixed comments of a few
+ functions
+
+
+2.6.26: Jun 6 2006:
+ - portability fixes: Python detection (Joseph Sacco), compilation
+ error(William Brack and Graham Bennett), LynxOS patch (Olli Savia)
+ - bug fixes: encoding buffer problem, mix of code and data in
+ xmlIO.c(Kjartan Maraas), entities in XSD validation (Kasimier Buchcik),
+ variousXSD validation fixes (Kasimier), memory leak in pattern (Rob
+ Richards andKasimier), attribute with colon in name (Rob Richards), XPath
+ leak inerror reporting (Aleksey Sanin), XInclude text include of
+ selfdocument.
+ - improvements: Xpath optimizations (Kasimier), XPath object
+ cache(Kasimier)
+
+
+2.6.25: Jun 6 2006::
+Do not use or package 2.6.25
+2.6.24: Apr 28 2006:
+ - Portability fixes: configure on Windows, testapi compile on windows
+ (Kasimier Buchcik, venkat naidu), Borland C++ 6 compile (Eric Zurcher),
+ HP-UX compiler workaround (Rick Jones), xml2-config bugfix, gcc-4.1
+ cleanups, Python detection scheme (Joseph Sacco), UTF-8 file paths on
+ Windows (Roland Schwingel).
+
+ - Improvements: xmlDOMWrapReconcileNamespaces xmlDOMWrapCloneNode (Kasimier
+ Buchcik), 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 streaming
+ bug, 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 debug
+ left in Python bindings (Nic Ferrier), xmlCatalogAdd bug (Martin Cole),
+ xmlSetProp fixes (Rob Richards), HTML IDness (Rob Richards), a large
+ number of cleanups and small fixes based on Coverity reports, bug
+ in character ranges, Unicode tables const (Aivars Kalvans), schemas
+ fix (Stefan Kost), xmlRelaxNGParse error deallocation,
+ xmlSchemaAddSchemaDoc error deallocation, error handling on unallowed
+ code 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.
+
+
+2.6.23: Jan 5 2006:
+ - portability fixes: Windows (Rob Richards), getaddrinfo on Windows
+ (Kolja Nowak, Rob Richards), icc warnings (Kjartan Maraas),
+ --with-minimum compilation fixes (William Brack), error case handling fix
+ on Solaris (Albert Chin), don't use 'list' as parameter name reported by
+ Samuel Diaz Garcia, more old Unices portability fixes (Albert Chin),
+ MinGW compilation (Mark Junker), HP-UX compiler warnings (Rick
+ Jones),
+ - code cleanup: xmlReportError (Adrian Mouat), remove xmlBufferClose
+ (Geert Jansen), unreachable code (Oleksandr Kononenko), refactoring
+ parsing code (Bjorn Reese)
+ - bug fixes: xmlBuildRelativeURI and empty path (William Brack),
+ combinatory explosion and performances in regexp code, leak in
+ xmlTextReaderReadString(), xmlStringLenDecodeEntities problem (Massimo
+ Morara), Identity Constraints bugs and a segfault (Kasimier Buchcik),
+ XPath pattern based evaluation bugs (DV & Kasimier),
+ xmlSchemaContentModelDump() memory leak (Kasimier), potential leak in
+ xmlSchemaCheckCSelectorXPath(), xmlTextWriterVSprintf() misuse of
+ vsnprintf (William Brack), XHTML serialization fix (Rob Richards), CRLF
+ split problem (William), issues with non-namespaced attributes in
+ xmlAddChild() xmlAddNextSibling() and xmlAddPrevSibling() (Rob Richards),
+ HTML parsing of script, Python must not output to stdout (Nic Ferrier),
+ exclusive C14N namespace visibility (Aleksey Sanin), XSD datatype
+ totalDigits bug (Kasimier Buchcik), error handling when writing to an
+ xmlBuffer (Rob Richards), runtest schemas error not reported (Hisashi
+ Fujinaka), signed/unsigned problem in date/time code (Albert Chin), fix
+ XSI driven XSD validation (Kasimier), parsing of xs:decimal (Kasimier),
+ fix DTD writer output (Rob Richards), leak in xmlTextReaderReadInnerXml
+ (Gary Coady), regexp bug affecting schemas (Kasimier), configuration of
+ runtime debugging (Kasimier), xmlNodeBufGetContent bug on entity refs
+ (Oleksandr Kononenko), xmlRegExecPushString2 bug (Sreeni Nair),
+ compilation and build fixes (Michael Day), removed dependencies on
+ xmlSchemaValidError (Kasimier), bug with <xml:foo/>, more XPath
+ pattern based evaluation fixes (Kasimier)
+ - improvements: XSD Schemas redefinitions/restrictions (Kasimier
+ Buchcik), node copy checks and fix for attribute (Rob Richards), counted
+ transition bug in regexps, ctxt->standalone = -2 to indicate no
+ standalone attribute was found, add xmlSchemaSetParserStructuredErrors()
+ (Kasimier Buchcik), add xmlTextReaderSchemaValidateCtxt() to API
+ (Kasimier), handle gzipped HTTP resources (Gary Coady), add
+ htmlDocDumpMemoryFormat. (Rob Richards),
+ - documentation: typo (Michael Day), libxml man page (Albert Chin), save
+ function to XML buffer (Geert Jansen), small doc fix (Aron Stansvik),
+
+
+2.6.22: Sep 12 2005:
+ - build fixes: compile without schematron (Stéphane Bidoul)
+ - bug fixes: xmlDebugDumpNode on namespace node (Oleg Paraschenko)i,
+ CDATA push parser bug, xmlElemDump problem with XHTML1 doc,
+ XML_FEATURE_xxx clash with expat headers renamed XML_WITH_xxx, fix some
+ output formatting for meta element (Rob Richards), script and style
+ XHTML1 serialization (David Madore), Attribute derivation fixups in XSD
+ (Kasimier Buchcik), better IDC error reports (Kasimier Buchcik)
+ - improvements: add XML_SAVE_NO_EMPTY xmlSaveOption (Rob Richards), add
+ XML_SAVE_NO_XHTML xmlSaveOption, XML Schemas improvements preparing for
+ derive (Kasimier Buchcik).
+ - documentation: generation of gtk-doc like docs, integration with
+ devhelp.
+
+
+2.6.21: Sep 4 2005:
+ - build fixes: Cygwin portability fixes (Gerrit P. Haase), calling
+ convention problems on Windows (Marcus Boerger), cleanups based on Linus'
+ sparse tool, update of win32/configure.js (Rob Richards), remove warnings
+ on Windows(Marcus Boerger), compilation without SAX1, detection of the
+ Python binary, use $GCC inestad of $CC = 'gcc' (Andrew W. Nosenko),
+ compilation/link with threads and old gcc, compile problem by C370 on
+ Z/OS,
+ - bug fixes: http_proxy environments (Peter Breitenlohner), HTML UTF-8
+ bug (Jiri Netolicky), XPath NaN compare bug (William Brack),
+ htmlParseScript potential bug, Schemas regexp handling of spaces, Base64
+ Schemas comparisons NIST passes, automata build error xsd:all,
+ xmlGetNodePath for namespaced attributes (Alexander Pohoyda), xmlSchemas
+ foreign namespaces handling, XML Schemas facet comparison (Kupriyanov
+ Anatolij), xmlSchemaPSimpleTypeErr error report (Kasimier Buchcik), xml:
+ namespace ahndling in Schemas (Kasimier), empty model group in Schemas
+ (Kasimier), wildcard in Schemas (Kasimier), URI composition (William),
+ xs:anyType in Schemas (Kasimier), Python resolver emmitting error
+ messages directly, Python xmlAttr.parent (Jakub Piotr Clapa), trying to
+ fix the file path/URI conversion, xmlTextReaderGetAttribute fix (Rob
+ Richards), xmlSchemaFreeAnnot memleak (Kasimier), HTML UTF-8
+ serialization, streaming XPath, Schemas determinism detection problem,
+ XInclude bug, Schemas context type (Dean Hill), validation fix (Derek
+ Poon), xmlTextReaderGetAttribute[Ns] namespaces (Rob Richards), Schemas
+ type fix (Kuba Nowakowski), UTF-8 parser bug, error in encoding handling,
+ xmlGetLineNo fixes, bug on entities handling, entity name extraction in
+ error handling with XInclude, text nodes in HTML body tags (Gary Coady),
+ xml:id and IDness at the treee level fixes, XPath streaming patterns
+ bugs.
+ - improvements: structured interfaces for schemas and RNG error reports
+ (Marcus Boerger), optimization of the char data inner loop parsing
+ (thanks to Behdad Esfahbod for the idea), schematron validation though
+ not finished yet, xmlSaveOption to omit XML declaration, keyref match
+ error reports (Kasimier), formal expression handling code not plugged
+ yet, more lax mode for the HTML parser, parser XML_PARSE_COMPACT option
+ for text nodes allocation.
+ - documentation: xmllint man page had --nonet duplicated
+
+
+2.6.20: Jul 10 2005:
+ - build fixes: Windows build (Rob Richards), Mingw compilation (Igor
+ Zlatkovic), Windows Makefile (Igor), gcc warnings (Kasimier and
+ andriy@google.com), use gcc weak references to pthread to avoid the
+ pthread dependancy on Linux, compilation problem (Steve Nairn), compiling
+ of subset (Morten Welinder), IPv6/ss_family compilation (William Brack),
+ compilation when disabling parts of the library, standalone test
+ distribution.
+ - bug fixes: bug in lang(), memory cleanup on errors (William Brack),
+ HTTP query strings (Aron Stansvik), memory leak in DTD (William), integer
+ overflow in XPath (William), nanoftp buffer size, pattern "." apth fixup
+ (Kasimier), leak in tree reported by Malcolm Rowe, replaceNode patch
+ (Brent Hendricks), CDATA with NULL content (Mark Vakoc), xml:base fixup
+ on XInclude (William), pattern fixes (William), attribute bug in
+ exclusive c14n (Aleksey Sanin), xml:space and xml:lang with SAX2 (Rob
+ Richards), namespace trouble in complex parsing (Malcolm Rowe), XSD type
+ QNames fixes (Kasimier), XPath streaming fixups (William), RelaxNG bug
+ (Rob Richards), Schemas for Schemas fixes (Kasimier), removal of ID (Rob
+ Richards), a small RelaxNG leak, HTML parsing in push mode bug (James
+ Bursa), failure to detect UTF-8 parsing bugs in CDATA sections,
+ areBlanks() heuristic failure, duplicate attributes in DTD bug
+ (William).
+ - improvements: lot of work on Schemas by Kasimier Buchcik both on
+ conformance and streaming, Schemas validation messages (Kasimier Buchcik,
+ Matthew Burgess), namespace removal at the python level (Brent
+ Hendricks), Update to new Schemas regression tests from W3C/Nist
+ (Kasimier), xmlSchemaValidateFile() (Kasimier), implementation of
+ xmlTextReaderReadInnerXml and xmlTextReaderReadOuterXml (James Wert),
+ standalone test framework and programs, new DOM import APIs
+ xmlDOMWrapReconcileNamespaces() xmlDOMWrapAdoptNode() and
+ xmlDOMWrapRemoveNode(), extension of xmllint capabilities for SAX and
+ Schemas regression tests, xmlStopParser() available in pull mode too,
+ ienhancement to xmllint --shell namespaces support, Windows port of the
+ standalone testing tools (Kasimier and William),
+ xmlSchemaValidateStream() xmlSchemaSAXPlug() and xmlSchemaSAXUnplug() SAX
+ Schemas APIs, Schemas xmlReader support.
+
+
+2.6.19: Apr 02 2005:
+ - build fixes: drop .la from RPMs, --with-minimum build fix (William
+ Brack), use XML_SOCKLEN_T instead of SOCKLEN_T because it breaks with AIX
+ 5.3 compiler, fixed elfgcchack.h generation and PLT reduction code on
+ Linux/ELF/gcc4
+ - bug fixes: schemas type decimal fixups (William Brack), xmmlint return
+ code (Gerry Murphy), small schemas fixes (Matthew Burgess and GUY
+ Fabrice), workaround "DAV:" namespace brokeness in c14n (Aleksey Sanin),
+ segfault in Schemas (Kasimier Buchcik), Schemas attribute validation
+ (Kasimier), Prop related functions and xmlNewNodeEatName (Rob Richards),
+ HTML serialization of name attribute on a elements, Python error handlers
+ leaks and improvement (Brent Hendricks), uninitialized variable in
+ encoding code, Relax-NG validation bug, potential crash if
+ gnorableWhitespace is NULL, xmlSAXParseDoc and xmlParseDoc signatures,
+ switched back to assuming UTF-8 in case no encoding is given at
+ serialization time
+ - improvements: lot of work on Schemas by Kasimier Buchcik on facets
+ checking and also mixed handling.
+ -
+
+
+2.6.18: Mar 13 2005:
+ - build fixes: warnings (Peter Breitenlohner), testapi.c generation,
+ Bakefile support (Francesco Montorsi), Windows compilation (Joel Reed),
+ some gcc4 fixes, HP-UX portability fixes (Rick Jones).
+ - bug fixes: xmlSchemaElementDump namespace (Kasimier Buchcik), push and
+ xmlreader stopping on non-fatal errors, thread support for dictionnaries
+ reference counting (Gary Coady), internal subset and push problem, URL
+ saved in xmlCopyDoc, various schemas bug fixes (Kasimier), Python paths
+ fixup (Stephane Bidoul), xmlGetNodePath and namespaces, xmlSetNsProp fix
+ (Mike Hommey), warning should not count as error (William Brack),
+ xmlCreatePushParser empty chunk, XInclude parser flags (William), cleanup
+ FTP and HTTP code to reuse the uri parsing and IPv6 (William),
+ xmlTextWriterStartAttributeNS fix (Rob Richards), XMLLINT_INDENT being
+ empty (William), xmlWriter bugs (Rob Richards), multithreading on Windows
+ (Rich Salz), xmlSearchNsByHref fix (Kasimier), Python binding leak (Brent
+ Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
+ (Rob Richards), Schemas decimal type fixes (William Brack),
+ xmlByteConsumed static buffer (Ben Maurer).
+ - improvement: speedup parsing comments and DTDs, dictionary support for
+ hash tables, Schemas Identity constraints (Kasimier), streaming XPath
+ subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
+ values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
+ Stansvik),
+ - Documentation: Wiki support (Joel Reed)
+
+
+2.6.17: Jan 16 2005:
+ - build fixes: Windows, warnings removal (William Brack),
+ maintainer-clean dependency(William), build in a different directory
+ (William), fixing --with-minimum configure build (William), BeOS build
+ (Marcin Konicki), Python-2.4 detection (William), compilation on AIX (Dan
+ McNichol)
+ - bug fixes: xmlTextReaderHasAttributes (Rob Richards), xmlCtxtReadFile()
+ to use the catalog(s), loop on output (William Brack), XPath memory leak,
+ ID deallocation problem (Steve Shepard), debugDumpNode crash (William),
+ warning not using error callback (William), xmlStopParser bug (William),
+ UTF-16 with BOM on DTDs (William), namespace bug on empty elements in
+ push mode (Rob Richards), line and col computations fixups (Aleksey
+ Sanin), xmlURIEscape fix (William), xmlXPathErr on bad range (William),
+ patterns with too many steps, bug in RNG choice optimization, line number
+ sometimes missing.
+ - improvements: XSD Schemas (Kasimier Buchcik), python generator
+ (William), xmlUTF8Strpos speedup (William), unicode Python strings
+ (William), XSD error reports (Kasimier Buchcik), Python __str__ call
+ serialize().
+ - new APIs: added xmlDictExists(), GetLineNumber and GetColumnNumber for
+ the xmlReader (Aleksey Sanin), Dynamic Shared Libraries APIs (mostly Joel
+ Reed), error extraction API from regexps, new XMLSave option for format
+ (Phil Shafer)
+ - documentation: site improvement (John Fleck), FAQ entries
+ (William).
+
+
+2.6.16: Nov 10 2004:
+ - general hardening and bug fixing crossing all the API based on new
+ automated regression testing
+ - build fix: IPv6 build and test on AIX (Dodji Seketeli)
+ - bug fixes: problem with XML::Libxml reported by Petr Pajas, encoding
+ conversion functions return values, UTF-8 bug affecting XPath reported by
+ Markus Bertheau, catalog problem with NULL entries (William Brack)
+ - documentation: fix to xmllint man page, some API function descritpion
+ were updated.
+ - improvements: DTD validation APIs provided at the Python level (Brent
+ Hendricks)
+
+
+2.6.15: Oct 27 2004:
+ - security fixes on the nanoftp and nanohttp modules
+ - build fixes: xmllint detection bug in configure, building outside the
+ source tree (Thomas Fitzsimmons)
+ - bug fixes: HTML parser on broken ASCII chars in names (William), Python
+ paths (Malcolm Tredinnick), xmlHasNsProp and default namespace (William),
+ saving to python file objects (Malcolm Tredinnick), DTD lookup fix
+ (Malcolm), save back <group> in catalogs (William), tree build
+ fixes (DV and Rob Richards), Schemas memory bug, structured error handler
+ on Python 64bits, thread local memory deallocation, memory leak reported
+ by Volker Roth, xmlValidateDtd in the presence of an internal subset,
+ entities and _private problem (William), xmlBuildRelativeURI error
+ (William).
+ - improvements: better XInclude error reports (William), tree debugging
+ module and tests, convenience functions at the Reader API (Graham
+ Bennett), add support for PI in the HTML parser.
+
+
+2.6.14: Sep 29 2004:
+ - build fixes: configure paths for xmllint and xsltproc, compilation
+ without HTML parser, compilation warning cleanups (William Brack &
+ Malcolm Tredinnick), VMS makefile update (Craig Berry),
+ - bug fixes: xmlGetUTF8Char (William Brack), QName properties (Kasimier
+ Buchcik), XInclude testing, Notation serialization, UTF8ToISO8859x
+ transcoding (Mark Itzcovitz), lots of XML Schemas cleanup and fixes
+ (Kasimier), ChangeLog cleanup (Stepan Kasal), memory fixes (Mark Vakoc),
+ handling of failed realloc(), out of bound array addressing in Schemas
+ date handling, Python space/tabs cleanups (Malcolm Tredinnick), NMTOKENS
+ E20 validation fix (Malcolm),
+ - improvements: added W3C XML Schemas testsuite (Kasimier Buchcik), add
+ xmlSchemaValidateOneElement (Kasimier), Python exception hierearchy
+ (Malcolm Tredinnick), Python libxml2 driver improvement (Malcolm
+ Tredinnick), Schemas support for xsi:schemaLocation,
+ xsi:noNamespaceSchemaLocation, xsi:type (Kasimier Buchcik)
+
+
+2.6.13: Aug 31 2004:
+ - build fixes: Windows and zlib (Igor Zlatkovic), -O flag with gcc,
+ Solaris compiler warning, fixing RPM BuildRequires,
+ - fixes: DTD loading on Windows (Igor), Schemas error reports APIs
+ (Kasimier Buchcik), Schemas validation crash, xmlCheckUTF8 (William Brack
+ and Julius Mittenzwei), Schemas facet check (Kasimier), default namespace
+ problem (William), Schemas hexbinary empty values, encoding error could
+ generate a serialization loop.
+ - Improvements: Schemas validity improvements (Kasimier), added --path
+ and --load-trace options to xmllint
+ - documentation: tutorial update (John Fleck)
+
+
+2.6.12: Aug 22 2004:
+ - build fixes: fix --with-minimum, elfgcchack.h fixes (Peter
+ Breitenlohner), perl path lookup (William), diff on Solaris (Albert
+ Chin), some 64bits cleanups.
+ - Python: avoid a warning with 2.3 (William Brack), tab and space mixes
+ (William), wrapper generator fixes (William), Cygwin support (Gerrit P.
+ Haase), node wrapper fix (Marc-Antoine Parent), XML Schemas support
+ (Torkel Lyng)
+ - Schemas: a lot of bug fixes and improvements from Kasimier Buchcik
+ - fixes: RVT fixes (William), XPath context resets bug (William), memory
+ debug (Steve Hay), catalog white space handling (Peter Breitenlohner),
+ xmlReader state after attribute reading (William), structured error
+ handler (William), XInclude generated xml:base fixup (William), Windows
+ memory reallocation problem (Steve Hay), Out of Memory conditions
+ handling (William and Olivier Andrieu), htmlNewDoc() charset bug,
+ htmlReadMemory init (William), a posteriori validation DTD base
+ (William), notations serialization missing, xmlGetNodePath (Dodji),
+ xmlCheckUTF8 (Diego Tartara), missing line numbers on entity
+ (William)
+ - improvements: DocBook catalog build scrip (William), xmlcatalog tool
+ (Albert Chin), xmllint --c14n option, no_proxy environment (Mike Hommey),
+ xmlParseInNodeContext() addition, extend xmllint --shell, allow XInclude
+ to not generate start/end nodes, extend xmllint --version to include CVS
+ tag (William)
+ - documentation: web pages fixes, validity API docs fixes (William)
+ schemas API fix (Eric Haszlakiewicz), xmllint man page (John Fleck)
+
+
+2.6.11: July 5 2004:
+ - Schemas: a lot of changes and improvements by Kasimier Buchcik for
+ attributes, namespaces and simple types.
+ - build fixes: --with-minimum (William Brack), some gcc cleanup
+ (William), --with-thread-alloc (William)
+ - portability: Windows binary package change (Igor Zlatkovic), Catalog
+ path on Windows
+ - documentation: update to the tutorial (John Fleck), xmllint return code
+ (John Fleck), man pages (Ville Skytta),
+ - bug fixes: C14N bug serializing namespaces (Aleksey Sanin), testSAX
+ properly initialize the library (William), empty node set in XPath
+ (William), xmlSchemas errors (William), invalid charref problem pointed
+ by Morus Walter, XInclude xml:base generation (William), Relax-NG bug
+ with div processing (William), XPointer and xml:base problem(William),
+ Reader and entities, xmllint return code for schemas (William), reader
+ streaming problem (Steve Ball), DTD serialization problem (William),
+ libxml.m4 fixes (Mike Hommey), do not provide destructors as methods on
+ Python classes, xmlReader buffer bug, Python bindings memory interfaces
+ improvement (with Stéphane Bidoul), Fixed the push parser to be back to
+ synchronous behaviour.
+ - improvement: custom per-thread I/O enhancement (Rob Richards), register
+ namespace in debug shell (Stefano Debenedetti), Python based regression
+ test for non-Unix users (William), dynamically increase the number of
+ XPath extension functions in Python and fix a memory leak (Marc-Antoine
+ Parent and William)
+ - performance: hack done with Arjan van de Ven to reduce ELF footprint
+ and generated code on Linux, plus use gcc runtime profiling to optimize
+ the code generated in the RPM packages.
+
+
+2.6.10: May 17 2004:
+ - Web page generated for ChangeLog
+ - build fixes: --without-html problems, make check without make all
+ - portability: problem with xpath.c on Windows (MSC and Borland), memcmp
+ vs. strncmp on Solaris, XPath tests on Windows (Mark Vakoc), C++ do not
+ use "list" as parameter name, make tests work with Python 1.5 (Ed
+ Davis),
+ - improvements: made xmlTextReaderMode public, small buffers resizing
+ (Morten Welinder), add --maxmem option to xmllint, add
+ xmlPopInputCallback() for Matt Sergeant, refactoring of serialization
+ escaping, added escaping customization
+ - bugfixes: xsd:extension (Taihei Goi), assorted regexp bugs (William
+ Brack), xmlReader end of stream problem, node deregistration with reader,
+ URI escaping and filemanes, XHTML1 formatting (Nick Wellnhofer), regexp
+ transition reduction (William), various XSD Schemas fixes (Kasimier
+ Buchcik), XInclude fallback problem (William), weird problems with DTD
+ (William), structured error handler callback context (William), reverse
+ xmlEncodeSpecialChars() behaviour back to escaping '"'
+
+
+2.6.9: Apr 18 2004:
+ - implement xml:id Working Draft, relaxed XPath id() checking
+ - bugfixes: xmlCtxtReset (Brent Hendricks), line number and CDATA (Dave
+ Beckett), Relax-NG compilation (William Brack), Regexp patches (with
+ William), xmlUriEscape (Mark Vakoc), a Relax-NG notAllowed problem (with
+ William), Relax-NG name classes compares (William), XInclude duplicate
+ fallback (William), external DTD encoding detection (William), a DTD
+ validation bug (William), xmlReader Close() fix, recusive extention
+ schemas
+ - improvements: use xmlRead* APIs in test tools (Mark Vakoc), indenting
+ save optimization, better handle IIS broken HTTP redirect behaviour (Ian
+ Hummel), HTML parser frameset (James Bursa), libxml2-python RPM
+ dependancy, XML Schemas union support (Kasimier Buchcik), warning removal
+ clanup (William), keep ChangeLog compressed when installing from RPMs
+ - documentation: examples and xmlDocDumpMemory docs (John Fleck), new
+ example (load, xpath, modify, save), xmlCatalogDump() comments,
+ - Windows: Borland C++ builder (Eric Zurcher), work around Microsoft
+ compiler NaN handling bug (Mark Vakoc)
+
+
+2.6.8: Mar 23 2004:
+ - First step of the cleanup of the serialization code and APIs
+ - XML Schemas: mixed content (Adam Dickmeiss), QName handling fixes (Adam
+ Dickmeiss), anyURI for "" (John Belmonte)
+ - Python: Canonicalization C14N support added (Anthony Carrico)
+ - xmlDocCopyNode() extension (William)
+ - Relax-NG: fix when processing XInclude results (William), external
+ reference in interleave (William), missing error on <choice>
+ failure (William), memory leak in schemas datatype facets.
+ - xmlWriter: patch for better DTD support (Alfred Mickautsch)
+ - bug fixes: xmlXPathLangFunction memory leak (Mike Hommey and William
+ Brack), no ID errors if using HTML_PARSE_NOERROR, xmlcatalog fallbacks to
+ URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
+ XInclude and XPointer fixes for entities (William), XML parser bug
+ reported by Holger Rauch, nanohttp fd leak (William), regexps char
+ groups '-' handling (William), dictionary reference counting problems,
+ do not close stderr.
+ - performance patches from Petr Pajas
+ - Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)
+ - compilation and portability fixes: --without-valid, catalog cleanups
+ (Peter Breitenlohner), MingW patch (Roland Schwingel), cross-compilation
+ to Windows (Christophe de Vienne), --with-html-dir fixup (Julio Merino
+ Vidal), Windows build (Eric Zurcher)
+
+
+2.6.7: Feb 23 2004:
+ - documentation: tutorial updates (John Fleck), benchmark results
+ - xmlWriter: updates and fixes (Alfred Mickautsch, Lucas Brasilino)
+ - XPath optimization (Petr Pajas)
+ - DTD ID handling optimization
+ - bugfixes: xpath number with > 19 fractional (William Brack), push
+ mode with unescaped '>' characters, fix xmllint --stream --timing, fix
+ xmllint --memory --stream memory usage, xmlAttrSerializeTxtContent
+ handling NULL, trying to fix Relax-NG/Perl interface.
+ - python: 2.3 compatibility, whitespace fixes (Malcolm Tredinnick)
+ - Added relaxng option to xmllint --shell
+
+
+2.6.6: Feb 12 2004:
+ - nanohttp and nanoftp: buffer overflow error on URI parsing (Igor and
+ William) reported by Yuuichi Teranishi
+ - bugfixes: make test and path issues, xmlWriter attribute serialization
+ (William Brack), xmlWriter indentation (William), schemas validation
+ (Eric Haszlakiewicz), XInclude dictionnaries issues (William and Oleg
+ Paraschenko), XInclude empty fallback (William), HTML warnings (William),
+ XPointer in XInclude (William), Python namespace serialization,
+ isolat1ToUTF8 bound error (Alfred Mickautsch), output of parameter
+ entities in internal subset (William), internal subset bug in push mode,
+ <xs:all> fix (Alexey Sarytchev)
+ - Build: fix for automake-1.8 (Alexander Winston), warnings removal
+ (Philip Ludlam), SOCKLEN_T detection fixes (Daniel Richard), fix
+ --with-minimum configuration.
+ - XInclude: allow the 2001 namespace without warning.
+ - Documentation: missing example/index.html (John Fleck), version
+ dependencies (John Fleck)
+ - reader API: structured error reporting (Steve Ball)
+ - Windows compilation: mingw, msys (Mikhail Grushinskiy), function
+ prototype (Cameron Johnson), MSVC6 compiler warnings, _WINSOCKAPI_
+ patch
+ - Parsers: added xmlByteConsumed(ctxt) API to get the byte offest in
+ input.
+
+
+2.6.5: Jan 25 2004:
+ - Bugfixes: dictionnaries for schemas (William Brack), regexp segfault
+ (William), xs:all problem (William), a number of XPointer bugfixes
+ (William), xmllint error go to stderr, DTD validation problem with
+ namespace, memory leak (William), SAX1 cleanup and minimal options fixes
+ (Mark Vadoc), parser context reset on error (Shaun McCance), XPath union
+ evaluation problem (William) , xmlReallocLoc with NULL (Aleksey Sanin),
+ XML Schemas double free (Steve Ball), XInclude with no href, argument
+ callbacks order for XPath callbacks (Frederic Peters)
+ - Documentation: python scripts (William Brack), xslt stylesheets (John
+ Fleck), doc (Sven Zimmerman), I/O example.
+ - Python bindings: fixes (William), enum support (Stéphane Bidoul),
+ structured error reporting (Stéphane Bidoul)
+ - XInclude: various fixes for conformance, problem related to dictionary
+ references (William & me), recursion (William)
+ - xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
+ Mickautsch),
+ - xmlSchemas: normalizedString datatype (John Belmonte)
+ - code cleanup for strings functions (William)
+ - Windows: compiler patches (Mark Vakoc)
+ - Parser optimizations, a few new XPath and dictionary APIs for future
+ XSLT optimizations.
+
+
+2.6.4: Dec 24 2003:
+ - Windows build fixes (Igor Zlatkovic)
+ - Some serious XInclude problems reported by Oleg Paraschenko and
+ - Unix and Makefile packaging fixes (me, William Brack,
+ - Documentation improvements (John Fleck, William Brack), example fix
+ (Lucas Brasilino)
+ - bugfixes: xmlTextReaderExpand() with xmlReaderWalker, XPath handling of
+ NULL strings (William Brack) , API building reader or parser from
+ filedescriptor should not close it, changed XPath sorting to be stable
+ again (William Brack), xmlGetNodePath() generating '(null)' (William
+ Brack), DTD validation and namespace bug (William Brack), XML Schemas
+ double inclusion behaviour
+
+
+2.6.3: Dec 10 2003:
+ - documentation updates and cleanup (DV, William Brack, John Fleck)
+ - added a repository of examples, examples from Aleksey Sanin, Dodji
+ Seketeli, Alfred Mickautsch
+ - Windows updates: Mark Vakoc, Igor Zlatkovic, Eric Zurcher, Mingw
+ (Kenneth Haley)
+ - Unicode range checking (William Brack)
+ - code cleanup (William Brack)
+ - Python bindings: doc (John Fleck), bug fixes
+ - UTF-16 cleanup and BOM issues (William Brack)
+ - bug fixes: ID and xmlReader validation, XPath (William Brack),
+ xmlWriter (Alfred Mickautsch), hash.h inclusion problem, HTML parser
+ (James Bursa), attribute defaulting and validation, some serialization
+ cleanups, XML_GET_LINE macro, memory debug when using threads (William
+ Brack), serialization of attributes and entities content, xmlWriter
+ (Daniel Schulman)
+ - XInclude bugfix, new APIs and update to the last version including the
+ namespace change.
+ - XML Schemas improvements: include (Robert Stepanek), import and
+ namespace handling, fixed the regression tests troubles, added examples
+ based on Eric van der Vlist book, regexp fixes
+ - preliminary pattern support for streaming (needed for schemas
+ constraints), added xmlTextReaderPreservePattern() to collect subdocument
+ when streaming.
+ - various fixes in the structured error handling
+
+
+2.6.2: Nov 4 2003:
+ - XPath context unregistration fixes
+ - text node coalescing fixes (Mark Lilback)
+ - API to screate a W3C Schemas from an existing document (Steve Ball)
+ - BeOS patches (Marcin 'Shard' Konicki)
+ - xmlStrVPrintf function added (Aleksey Sanin)
+ - compilation fixes (Mark Vakoc)
+ - stdin parsing fix (William Brack)
+ - a posteriori DTD validation fixes
+ - xmlReader bug fixes: Walker fixes, python bindings
+ - fixed xmlStopParser() to really stop the parser and errors
+ - always generate line numbers when using the new xmlReadxxx
+ functions
+ - added XInclude support to the xmlReader interface
+ - implemented XML_PARSE_NONET parser option
+ - DocBook XSLT processing bug fixed
+ - HTML serialization for <p> elements (William Brack and me)
+ - XPointer failure in XInclude are now handled as resource errors
+ - fixed xmllint --html to use the HTML serializer on output (added
+ --xmlout to implement the previous behaviour of saving it using the XML
+ serializer)
+
+
+2.6.1: Oct 28 2003:
+ - Mostly bugfixes after the big 2.6.0 changes
+ - Unix compilation patches: libxml.m4 (Patrick Welche), warnings cleanup
+ (William Brack)
+ - Windows compilation patches (Joachim Bauch, Stephane Bidoul, Igor
+ Zlatkovic)
+ - xmlWriter bugfix (Alfred Mickautsch)
+ - chvalid.[ch]: couple of fixes from Stephane Bidoul
+ - context reset: error state reset, push parser reset (Graham
+ Bennett)
+ - context reuse: generate errors if file is not readable
+ - defaulted attributes for element coming from internal entities
+ (Stephane Bidoul)
+ - Python: tab and spaces mix (William Brack)
+ - Error handler could crash in DTD validation in 2.6.0
+ - xmlReader: do not use the document or element _private field
+ - testSAX.c: avoid a problem with some PIs (Massimo Morara)
+ - general bug fixes: mandatory encoding in text decl, serializing
+ Document Fragment nodes, xmlSearchNs 2.6.0 problem (Kasimier Buchcik),
+ XPath errors not reported, slow HTML parsing of large documents.
+
+
+2.6.0: Oct 20 2003:
+ - Major revision release: should be API and ABI compatible but got a lot
+ of change
+ - Increased the library modularity, far more options can be stripped out,
+ a --with-minimum configuration will weight around 160KBytes
+ - Use per parser and per document dictionary, allocate names and small
+ text nodes from the dictionary
+ - Switch to a SAX2 like parser rewrote most of the XML parser core,
+ provides namespace resolution and defaulted attributes, minimize memory
+ allocations and copies, namespace checking and specific error handling,
+ immutable buffers, make predefined entities static structures, etc...
+ - rewrote all the error handling in the library, all errors can be
+ intercepted at a structured level, with precise information
+ available.
+ - New simpler and more generic XML and HTML parser APIs, allowing to
+ easily modify the parsing options and reuse parser context for multiple
+ consecutive documents.
+ - Similar new APIs for the xmlReader, for options and reuse, provided new
+ functions to access content as const strings, use them for Python
+ bindings
+ - a lot of other smaller API improvements: xmlStrPrintf (Aleksey Sanin),
+ Walker i.e. reader on a document tree based on Alfred Mickautsch code,
+ make room in nodes for line numbers, reference counting and future PSVI
+ extensions, generation of character ranges to be checked with faster
+ algorithm (William), xmlParserMaxDepth (Crutcher Dunnavant), buffer
+ access
+ - New xmlWriter API provided by Alfred Mickautsch
+ - Schemas: base64 support by Anthony Carrico
+ - Parser<->HTTP integration fix, proper processing of the Mime-Type
+ and charset information if available.
+ - Relax-NG: bug fixes including the one reported by Martijn Faassen and
+ zeroOrMore, better error reporting.
+ - Python bindings (Stéphane Bidoul), never use stdout for errors
+ output
+ - Portability: all the headers have macros for export and calling
+ convention definitions (Igor Zlatkovic), VMS update (Craig A. Berry),
+ Windows: threads (Jesse Pelton), Borland compiler (Eric Zurcher, Igor),
+ Mingw (Igor), typos (Mark Vakoc), beta version (Stephane Bidoul),
+ warning cleanups on AIX and MIPS compilers (William Brack), BeOS (Marcin
+ 'Shard' Konicki)
+ - Documentation fixes and README (William Brack), search fix (William),
+ tutorial updates (John Fleck), namespace docs (Stefan Kost)
+ - Bug fixes: xmlCleanupParser (Dave Beckett), threading uninitialized
+ mutexes, HTML doctype lowercase, SAX/IO (William), compression detection
+ and restore (William), attribute declaration in DTDs (William), namespace
+ on attribute in HTML output (William), input filename (Rob Richards),
+ namespace DTD validation, xmlReplaceNode (Chris Ryland), I/O callbacks
+ (Markus Keim), CDATA serialization (Shaun McCance), xmlReader (Peter
+ Derr), high codepoint charref like &#x10FFFF;, buffer access in push
+ mode (Justin Fletcher), TLS threads on Windows (Jesse Pelton), XPath bug
+ (William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
+ error handling.
+ - xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
+ testing, --nodict for building without tree dictionary, --nocdata to
+ replace CDATA by text, --nsclean to remove surperfluous namespace
+ declarations
+ - added xml2-config --libtool-libs option from Kevin P. Fleming
+ - a lot of profiling and tuning of the code, speedup patch for
+ xmlSearchNs() by Luca Padovani. The xmlReader should do far less
+ allocation and it speed should get closer to SAX. Chris Anderson worked
+ on speeding and cleaning up repetitive checking code.
+ - cleanup of "make tests"
+ - libxml-2.0-uninstalled.pc from Malcolm Tredinnick
+ - deactivated the broken docBook SGML parser code and plugged the XML
+ parser instead.
+
+
+2.5.11: Sep 9 2003:
+A bugfix only release: - risk of crash in Relax-NG
+ - risk of crash when using multithreaded programs
+
+
+2.5.10: Aug 15 2003:
+A bugfixes only release - Windows Makefiles (William Brack)
+ - UTF-16 support fixes (Mark Itzcovitz)
+ - Makefile and portability (William Brack) automake, Linux alpha, Mingw
+ on Windows (Mikhail Grushinskiy)
+ - HTML parser (Oliver Stoeneberg)
+ - XInclude performance problem reported by Kevin Ruscoe
+ - XML parser performance problem reported by Grant Goodale
+ - xmlSAXParseDTD() bug fix from Malcolm Tredinnick
+ - and a couple other cleanup
+
+
+2.5.9: Aug 9 2003:
+ - bugfixes: IPv6 portability, xmlHasNsProp (Markus Keim), Windows build
+ (Wiliam Brake, Jesse Pelton, Igor), Schemas (Peter Sobisch), threading
+ (Rob Richards), hexBinary type (), UTF-16 BOM (Dodji Seketeli),
+ xmlReader, Relax-NG schemas compilation, namespace handling, EXSLT (Sean
+ Griffin), HTML parsing problem (William Brack), DTD validation for mixed
+ content + namespaces, HTML serialization, library initialization,
+ progressive HTML parser
+ - better interfaces for Relax-NG error handling (Joachim Bauch, )
+ - adding xmlXIncludeProcessTree() for XInclud'ing in a subtree
+ - doc fixes and improvements (John Fleck)
+ - configure flag for -with-fexceptions when embedding in C++
+ - couple of new UTF-8 helper functions (William Brack)
+ - general encoding cleanup + ISO-8859-x without iconv (Peter Jacobi)
+ - xmlTextReader cleanup + enum for node types (Bjorn Reese)
+ - general compilation/warning cleanup Solaris/HP-UX/... (William
+ Brack)
+
+
+2.5.8: Jul 6 2003:
+ - bugfixes: XPath, XInclude, file/URI mapping, UTF-16 save (Mark
+ Itzcovitz), UTF-8 checking, URI saving, error printing (William Brack),
+ PI related memleak, compilation without schemas or without xpath (Joerg
+ Schmitz-Linneweber/Garry Pennington), xmlUnlinkNode problem with DTDs,
+ rpm problem on , i86_64, removed a few compilation problems from 2.5.7,
+ xmlIOParseDTD, and xmlSAXParseDTD (Malcolm Tredinnick)
+ - portability: DJGPP (MsDos) , OpenVMS (Craig A. Berry)
+ - William Brack fixed multithreading lock problems
+ - IPv6 patch for FTP and HTTP accesses (Archana Shah/Wipro)
+ - Windows fixes (Igor Zlatkovic, Eric Zurcher), threading (Stéphane
+ Bidoul)
+ - A few W3C Schemas Structure improvements
+ - W3C Schemas Datatype improvements (Charlie Bozeman)
+ - Python bindings for thread globals (Stéphane Bidoul), and method/class
+ generator
+ - added --nonet option to xmllint
+ - documentation improvements (John Fleck)
+
+
+2.5.7: Apr 25 2003:
+ - Relax-NG: Compiling to regexp and streaming validation on top of the
+ xmlReader interface, added to xmllint --stream
+ - xmlReader: Expand(), Next() and DOM access glue, bug fixes
+ - Support for large files: RGN validated a 4.5GB instance
+ - Thread support is now configured in by default
+ - Fixes: update of the Trio code (Bjorn), WXS Date and Duration fixes
+ (Charles Bozeman), DTD and namespaces (Brent Hendricks), HTML push parser
+ and zero bytes handling, some missing Windows file path conversions,
+ behaviour of the parser and validator in the presence of "out of memory"
+ error conditions
+ - extended the API to be able to plug a garbage collecting memory
+ allocator, added xmlMallocAtomic() and modified the allocations
+ accordingly.
+ - Performances: removed excessive malloc() calls, speedup of the push and
+ xmlReader interfaces, removed excessive thread locking
+ - Documentation: man page (John Fleck), xmlReader documentation
+ - Python: adding binding for xmlCatalogAddLocal (Brent M Hendricks)
+
+
+2.5.6: Apr 1 2003:
+ - Fixed W3C XML Schemas datatype, should be compliant now except for
+ binHex and base64 which are not supported yet.
+ - bug fixes: non-ASCII IDs, HTML output, XInclude on large docs and
+ XInclude entities handling, encoding detection on external subsets, XML
+ Schemas bugs and memory leaks, HTML parser (James Bursa)
+ - portability: python/trio (Albert Chin), Sun compiler warnings
+ - documentation: added --relaxng option to xmllint man page (John)
+ - improved error reporting: xml:space, start/end tag mismatches, Relax NG
+ errors
+
+
+2.5.5: Mar 24 2003:
+ - Lot of fixes on the Relax NG implementation. More testing including
+ DocBook and TEI examples.
+ - Increased the support for W3C XML Schemas datatype
+ - Several bug fixes in the URI handling layer
+ - Bug fixes: HTML parser, xmlReader, DTD validation, XPath, encoding
+ conversion, line counting in the parser.
+ - Added support for $XMLLINT_INDENT environment variable, FTP delete
+ - Fixed the RPM spec file name
+
+
+2.5.4: Feb 20 2003:
+ - Conformance testing and lot of fixes on Relax NG and XInclude
+ implementation
+ - Implementation of XPointer element() scheme
+ - Bug fixes: XML parser, XInclude entities merge, validity checking on
+ namespaces,
+ 2 serialization bugs, node info generation problems, a DTD regexp
+ generation problem.
+
+ - Portability: windows updates and path canonicalization (Igor)
+ - A few typo fixes (Kjartan Maraas)
+ - Python bindings generator fixes (Stephane Bidoul)
+
+
+2.5.3: Feb 10 2003:
+ - RelaxNG and XML Schemas datatypes improvements, and added a first
+ version of RelaxNG Python bindings
+ - Fixes: XLink (Sean Chittenden), XInclude (Sean Chittenden), API fix for
+ serializing namespace nodes, encoding conversion bug, XHTML1
+ serialization
+ - Portability fixes: Windows (Igor), AMD 64bits RPM spec file
+
+
+2.5.2: Feb 5 2003:
+ - First implementation of RelaxNG, added --relaxng flag to xmllint
+ - Schemas support now compiled in by default.
+ - Bug fixes: DTD validation, namespace checking, XInclude and entities,
+ delegateURI in XML Catalogs, HTML parser, XML reader (Stéphane Bidoul),
+ XPath parser and evaluation, UTF8ToUTF8 serialization, XML reader memory
+ consumption, HTML parser, HTML serialization in the presence of
+ namespaces
+ - added an HTML API to check elements and attributes.
+ - Documentation improvement, PDF for the tutorial (John Fleck), doc
+ patches (Stefan Kost)
+ - Portability fixes: NetBSD (Julio Merino), Windows (Igor Zlatkovic)
+ - Added python bindings for XPointer, contextual error reporting
+ (Stéphane Bidoul)
+ - URI/file escaping problems (Stefano Zacchiroli)
+
+
+2.5.1: Jan 8 2003:
+ - Fixes a memory leak and configuration/compilation problems in 2.5.0
+ - documentation updates (John)
+ - a couple of XmlTextReader fixes
+
+
+2.5.0: Jan 6 2003:
+ - New XmltextReader interface based on C#
+ API (with help of Stéphane Bidoul)
+ - Windows: more exports, including the new API (Igor)
+ - XInclude fallback fix
+ - Python: bindings for the new API, packaging (Stéphane Bidoul),
+ drv_libxml2.py Python xml.sax driver (Stéphane Bidoul), fixes, speedup
+ and iterators for Python-2.2 (Hannu Krosing)
+ - Tutorial fixes (john Fleck and Niraj Tolia) xmllint man update
+ (John)
+ - Fix an XML parser bug raised by Vyacheslav Pindyura
+ - Fix for VMS serialization (Nigel Hall) and config (Craig A. Berry)
+ - Entities handling fixes
+ - new API to optionally track node creation and deletion (Lukas
+ Schroeder)
+ - Added documentation for the XmltextReader interface and some XML guidelines
+
+
+2.4.30: Dec 12 2002:
+ - 2.4.29 broke the python bindings, rereleasing
+ - Improvement/fixes of the XML API generator, and couple of minor code
+ fixes.
+
+
+2.4.29: Dec 11 2002:
+ - Windows fixes (Igor): Windows CE port, pthread linking, python bindings
+ (Stéphane Bidoul), Mingw (Magnus Henoch), and export list updates
+ - Fix for prev in python bindings (ERDI Gergo)
+ - Fix for entities handling (Marcus Clarke)
+ - Refactored the XML and HTML dumps to a single code path, fixed XHTML1
+ dump
+ - Fix for URI parsing when handling URNs with fragment identifiers
+ - Fix for HTTP URL escaping problem
+ - added an TextXmlReader (C#) like API (work in progress)
+ - Rewrote the API in XML generation script, includes a C parser and saves
+ more information needed for C# bindings
+
+
+2.4.28: Nov 22 2002:
+ - a couple of python binding fixes
+ - 2 bug fixes in the XML push parser
+ - potential memory leak removed (Martin Stoilov)
+ - fix to the configure script for Unix (Dimitri Papadopoulos)
+ - added encoding support for XInclude parse="text"
+ - autodetection of XHTML1 and specific serialization rules added
+ - nasty threading bug fixed (William Brack)
+
+
+2.4.27: Nov 17 2002:
+ - fixes for the Python bindings
+ - a number of bug fixes: SGML catalogs, xmlParseBalancedChunkMemory(),
+ HTML parser, Schemas (Charles Bozeman), document fragment support
+ (Christian Glahn), xmlReconciliateNs (Brian Stafford), XPointer,
+ xmlFreeNode(), xmlSAXParseMemory (Peter Jones), xmlGetNodePath (Petr
+ Pajas), entities processing
+ - added grep to xmllint --shell
+ - VMS update patch from Craig A. Berry
+ - cleanup of the Windows build with support for more compilers (Igor),
+ better thread support on Windows
+ - cleanup of Unix Makefiles and spec file
+ - Improvements to the documentation (John Fleck)
+
+
+2.4.26: Oct 18 2002:
+ - Patches for Windows CE port, improvements on Windows paths handling
+ - Fixes to the validation code (DTD and Schemas), xmlNodeGetPath() ,
+ HTML serialization, Namespace compliance, and a number of small
+ problems
+
+
+2.4.25: Sep 26 2002:
+ - A number of bug fixes: XPath, validation, Python bindings, DOM and
+ tree, xmlI/O, Html
+ - Serious rewrite of XInclude
+ - Made XML Schemas regexp part of the default build and APIs, small fix
+ and improvement of the regexp core
+ - Changed the validation code to reuse XML Schemas regexp APIs
+ - Better handling of Windows file paths, improvement of Makefiles (Igor,
+ Daniel Gehriger, Mark Vakoc)
+ - Improved the python I/O bindings, the tests, added resolver and regexp
+ APIs
+ - New logos from Marc Liyanage
+ - Tutorial improvements: John Fleck, Christopher Harris
+ - Makefile: Fixes for AMD x86_64 (Mandrake), DESTDIR (Christophe
+ Merlet)
+ - removal of all stderr/perror use for error reporting
+ - Better error reporting: XPath and DTD validation
+ - update of the trio portability layer (Bjorn Reese)
+
+2.4.24: Aug 22 2002 - XPath fixes (William), xf:escape-uri() (Wesley Terpstra)
+ - Python binding fixes: makefiles (William), generator, rpm build, x86-64
+ (fcrozat)
+ - HTML <style> and boolean attributes serializer fixes
+ - C14N improvements by Aleksey
+ - doc cleanups: Rick Jones
+ - Windows compiler makefile updates: Igor and Elizabeth Barham
+ - XInclude: implementation of fallback and xml:base fixup added
+
+
+2.4.23: July 6 2002:
+ - performances patches: Peter Jacobi
+ - c14n fixes, testsuite and performances: Aleksey Sanin
+ - added xmlDocFormatDump: Chema Celorio
+ - new tutorial: John Fleck
+ - new hash functions and performances: Sander Vesik, portability fix from
+ Peter Jacobi
+ - a number of bug fixes: XPath (William Brack, Richard Jinks), XML and
+ HTML parsers, ID lookup function
+ - removal of all remaining sprintf: Aleksey Sanin
+
+
+2.4.22: May 27 2002:
+ - a number of bug fixes: configure scripts, base handling, parser, memory
+ usage, HTML parser, XPath, documentation (Christian Cornelssen),
+ indentation, URI parsing
+ - Optimizations for XMLSec, fixing and making public some of the network
+ protocol handlers (Aleksey)
+ - performance patch from Gary Pennington
+ - Charles Bozeman provided date and time support for XML Schemas
+ datatypes
+
+
+2.4.21: Apr 29 2002:
+This release is both a bug fix release and also contains the early XML
+Schemas structures at
+http://www.w3.org/TR/xmlschema-1/
+ and datatypes at
+http://www.w3.org/TR/xmlschema-2/
+ code, beware, all
+interfaces are likely to change, there is huge holes, it is clearly a work in
+progress and don't even think of putting this code in a production system,
+it's actually not compiled in by default. The real fixes are:
+ - a couple of bugs or limitations introduced in 2.4.20
+ - patches for Borland C++ and MSC by Igor
+ - some fixes on XPath strings and conformance patches by Richard
+ Jinks
+ - patch from Aleksey for the ExcC14N specification
+ - OSF/1 bug fix by Bjorn
+
+
+2.4.20: Apr 15 2002:
+ - bug fixes: file descriptor leak, XPath, HTML output, DTD validation
+ - XPath conformance testing by Richard Jinks
+ - Portability fixes: Solaris, MPE/iX, Windows, OSF/1, python bindings,
+ libxml.m4
+
+
+2.4.19: Mar 25 2002:
+ - bug fixes: half a dozen XPath bugs, Validation, ISO-Latin to UTF8
+ encoder
+ - portability fixes in the HTTP code
+ - memory allocation checks using valgrind, and profiling tests
+ - revamp of the Windows build and Makefiles
+
+
+2.4.18: Mar 18 2002:
+ - bug fixes: tree, SAX, canonicalization, validation, portability,
+ XPath
+ - removed the --with-buffer option it was becoming unmaintainable
+ - serious cleanup of the Python makefiles
+ - speedup patch to XPath very effective for DocBook stylesheets
+ - Fixes for Windows build, cleanup of the documentation
+
+
+2.4.17: Mar 8 2002:
+ - a lot of bug fixes, including "namespace nodes have no parents in
+ XPath"
+ - fixed/improved the Python wrappers, added more examples and more
+ regression tests, XPath extension functions can now return node-sets
+ - added the XML Canonicalization support from Aleksey Sanin
+
+
+2.4.16: Feb 20 2002:
+ - a lot of bug fixes, most of them were triggered by the XML Testsuite
+ from OASIS and W3C. Compliance has been significantly improved.
+ - a couple of portability fixes too.
+
+
+2.4.15: Feb 11 2002:
+ - Fixed the Makefiles, especially the python module ones
+ - A few bug fixes and cleanup
+ - Includes cleanup
+
+
+2.4.14: Feb 8 2002:
+ - Change of License to the MIT
+ License basically for integration in XFree86 codebase, and removing
+ confusion around the previous dual-licensing
+ - added Python bindings, beta software but should already be quite
+ complete
+ - a large number of fixes and cleanups, especially for all tree
+ manipulations
+ - cleanup of the headers, generation of a reference API definition in
+ XML
+
+
+2.4.13: Jan 14 2002:
+ - update of the documentation: John Fleck and Charlie Bozeman
+ - cleanup of timing code from Justin Fletcher
+ - fixes for Windows and initial thread support on Win32: Igor and Serguei
+ Narojnyi
+ - Cygwin patch from Robert Collins
+ - added xmlSetEntityReferenceFunc() for Keith Isdale work on xsldbg
+
+
+2.4.12: Dec 7 2001:
+ - a few bug fixes: thread (Gary Pennington), xmllint (Geert Kloosterman),
+ XML parser (Robin Berjon), XPointer (Danny Jamshy), I/O cleanups
+ (robert)
+ - Eric Lavigne contributed project files for MacOS
+ - some makefiles cleanups
+
+
+2.4.11: Nov 26 2001:
+ - fixed a couple of errors in the includes, fixed a few bugs, some code
+ cleanups
+ - xmllint man pages improvement by Heiko Rupp
+ - updated VMS build instructions from John A Fotheringham
+ - Windows Makefiles updates from Igor
+
+
+2.4.10: Nov 10 2001:
+ - URI escaping fix (Joel Young)
+ - added xmlGetNodePath() (for paths or XPointers generation)
+ - Fixes namespace handling problems when using DTD and validation
+ - improvements on xmllint: Morus Walter patches for --format and
+ --encode, Stefan Kost and Heiko Rupp improvements on the --shell
+ - fixes for xmlcatalog linking pointed by Weiqi Gao
+ - fixes to the HTML parser
+
+
+2.4.9: Nov 6 2001:
+ - fixes more catalog bugs
+ - avoid a compilation problem, improve xmlGetLineNo()
+
+
+2.4.8: Nov 4 2001:
+ - fixed SGML catalogs broken in previous release, updated xmlcatalog
+ tool
+ - fixed a compile errors and some includes troubles.
+
+
+2.4.7: Oct 30 2001:
+ - exported some debugging interfaces
+ - serious rewrite of the catalog code
+ - integrated Gary Pennington thread safety patch, added configure option
+ and regression tests
+ - removed an HTML parser bug
+ - fixed a couple of potentially serious validation bugs
+ - integrated the SGML DocBook support in xmllint
+ - changed the nanoftp anonymous login passwd
+ - some I/O cleanup and a couple of interfaces for Perl wrapper
+ - general bug fixes
+ - updated xmllint man page by John Fleck
+ - some VMS and Windows updates
+
+
+2.4.6: Oct 10 2001:
+ - added an updated man pages by John Fleck
+ - portability and configure fixes
+ - an infinite loop on the HTML parser was removed (William)
+ - Windows makefile patches from Igor
+ - fixed half a dozen bugs reported for libxml or libxslt
+ - updated xmlcatalog to be able to modify SGML super catalogs
+
+
+2.4.5: Sep 14 2001:
+ - Remove a few annoying bugs in 2.4.4
+ - forces the HTML serializer to output decimal charrefs since some
+ version of Netscape can't handle hexadecimal ones
+
+
+1.8.16: Sep 14 2001:
+ - maintenance release of the old libxml1 branch, couple of bug and
+ portability fixes
+
+
+2.4.4: Sep 12 2001:
+ - added --convert to xmlcatalog, bug fixes and cleanups of XML
+ Catalog
+ - a few bug fixes and some portability changes
+ - some documentation cleanups
+
+
+2.4.3: Aug 23 2001:
+ - XML Catalog support see the doc
+ - New NaN/Infinity floating point code
+ - A few bug fixes
+
+
+2.4.2: Aug 15 2001:
+ - adds xmlLineNumbersDefault() to control line number generation
+ - lot of bug fixes
+ - the Microsoft MSC projects files should now be up to date
+ - inheritance of namespaces from DTD defaulted attributes
+ - fixes a serious potential security bug
+ - added a --format option to xmllint
+
+
+2.4.1: July 24 2001:
+ - possibility to keep line numbers in the tree
+ - some computation NaN fixes
+ - extension of the XPath API
+ - cleanup for alpha and ia64 targets
+ - patch to allow saving through HTTP PUT or POST
+
+
+2.4.0: July 10 2001:
+ - Fixed a few bugs in XPath, validation, and tree handling.
+ - Fixed XML Base implementation, added a couple of examples to the
+ regression tests
+ - A bit of cleanup
+
+
+2.3.14: July 5 2001:
+ - fixed some entities problems and reduce memory requirement when
+ substituting them
+ - lots of improvements in the XPath queries interpreter can be
+ substantially faster
+ - Makefiles and configure cleanups
+ - Fixes to XPath variable eval, and compare on empty node set
+ - HTML tag closing bug fixed
+ - Fixed an URI reference computation problem when validating
+
+
+2.3.13: June 28 2001:
+ - 2.3.12 configure.in was broken as well as the push mode XML parser
+ - a few more fixes for compilation on Windows MSC by Yon Derek
+
+
+1.8.14: June 28 2001:
+ - Zbigniew Chyla gave a patch to use the old XML parser in push mode
+ - Small Makefile fix
+
+
+2.3.12: June 26 2001:
+ - lots of cleanup
+ - a couple of validation fix
+ - fixed line number counting
+ - fixed serious problems in the XInclude processing
+ - added support for UTF8 BOM at beginning of entities
+ - fixed a strange gcc optimizer bugs in xpath handling of float, gcc-3.0
+ miscompile uri.c (William), Thomas Leitner provided a fix for the
+ optimizer on Tru64
+ - incorporated Yon Derek and Igor Zlatkovic fixes and improvements for
+ compilation on Windows MSC
+ - update of libxml-doc.el (Felix Natter)
+ - fixed 2 bugs in URI normalization code
+
+
+2.3.11: June 17 2001:
+ - updates to trio, Makefiles and configure should fix some portability
+ problems (alpha)
+ - fixed some HTML serialization problems (pre, script, and block/inline
+ handling), added encoding aware APIs, cleanup of this code
+ - added xmlHasNsProp()
+ - implemented a specific PI for encoding support in the DocBook SGML
+ parser
+ - some XPath fixes (-Infinity, / as a function parameter and namespaces
+ node selection)
+ - fixed a performance problem and an error in the validation code
+ - fixed XInclude routine to implement the recursive behaviour
+ - fixed xmlFreeNode problem when libxml is included statically twice
+ - added --version to xmllint for bug reports
+
+
+2.3.10: June 1 2001:
+ - fixed the SGML catalog support
+ - a number of reported bugs got fixed, in XPath, iconv detection,
+ XInclude processing
+ - XPath string function should now handle unicode correctly
+
+
+2.3.9: May 19 2001:
+Lots of bugfixes, and added a basic SGML catalog support:
+ - HTML push bugfix #54891 and another patch from Jonas Borgstrom
+ - some serious speed optimization again
+ - some documentation cleanups
+ - trying to get better linking on Solaris (-R)
+ - XPath API cleanup from Thomas Broyer
+ - Validation bug fixed #54631, added a patch from Gary Pennington, fixed
+ xmlValidGetValidElements()
+ - Added an INSTALL file
+ - Attribute removal added to API: #54433
+ - added a basic support for SGML catalogs
+ - fixed xmlKeepBlanksDefault(0) API
+ - bugfix in xmlNodeGetLang()
+ - fixed a small configure portability problem
+ - fixed an inversion of SYSTEM and PUBLIC identifier in HTML document
+
+
+1.8.13: May 14 2001:
+ - bugfixes release of the old libxml1 branch used by Gnome
+
+
+2.3.8: May 3 2001:
+ - Integrated an SGML DocBook parser for the Gnome project
+ - Fixed a few things in the HTML parser
+ - Fixed some XPath bugs raised by XSLT use, tried to fix the floating
+ point portability issue
+ - Speed improvement (8M/s for SAX, 3M/s for DOM, 1.5M/s for
+ DOM+validation using the XML REC as input and a 700MHz celeron).
+ - incorporated more Windows cleanup
+ - added xmlSaveFormatFile()
+ - fixed problems in copying nodes with entities references (gdome)
+ - removed some troubles surrounding the new validation module
+
+
+2.3.7: April 22 2001:
+ - lots of small bug fixes, corrected XPointer
+ - Non deterministic content model validation support
+ - added xmlDocCopyNode for gdome2
+ - revamped the way the HTML parser handles end of tags
+ - XPath: corrections of namespaces support and number formatting
+ - Windows: Igor Zlatkovic patches for MSC compilation
+ - HTML output fixes from P C Chow and William M. Brack
+ - Improved validation speed sensible for DocBook
+ - fixed a big bug with ID declared in external parsed entities
+ - portability fixes, update of Trio from Bjorn Reese
+
+
+2.3.6: April 8 2001:
+ - Code cleanup using extreme gcc compiler warning options, found and
+ cleared half a dozen potential problem
+ - the Eazel team found an XML parser bug
+ - cleaned up the user of some of the string formatting function. used the
+ trio library code to provide the one needed when the platform is missing
+ them
+ - xpath: removed a memory leak and fixed the predicate evaluation
+ problem, extended the testsuite and cleaned up the result. XPointer seems
+ broken ...
+
+
+2.3.5: Mar 23 2001:
+ - Biggest change is separate parsing and evaluation of XPath expressions,
+ there is some new APIs for this too
+ - included a number of bug fixes(XML push parser, 51876, notations,
+ 52299)
+ - Fixed some portability issues
+
+
+2.3.4: Mar 10 2001:
+ - Fixed bugs #51860 and #51861
+ - Added a global variable xmlDefaultBufferSize to allow default buffer
+ size to be application tunable.
+ - Some cleanup in the validation code, still a bug left and this part
+ should probably be rewritten to support ambiguous content model :-\
+ - Fix a couple of serious bugs introduced or raised by changes in 2.3.3
+ parser
+ - Fixed another bug in xmlNodeGetContent()
+ - Bjorn fixed XPath node collection and Number formatting
+ - Fixed a loop reported in the HTML parsing
+ - blank space are reported even if the Dtd content model proves that they
+ are formatting spaces, this is for XML conformance
+
+
+2.3.3: Mar 1 2001:
+ - small change in XPath for XSLT
+ - documentation cleanups
+ - fix in validation by Gary Pennington
+ - serious parsing performances improvements
+
+
+2.3.2: Feb 24 2001:
+ - chasing XPath bugs, found a bunch, completed some TODO
+ - fixed a Dtd parsing bug
+ - fixed a bug in xmlNodeGetContent
+ - ID/IDREF support partly rewritten by Gary Pennington
+
+
+2.3.1: Feb 15 2001:
+ - some XPath and HTML bug fixes for XSLT
+ - small extension of the hash table interfaces for DOM gdome2
+ implementation
+ - A few bug fixes
+
+
+2.3.0: Feb 8 2001 (2.2.12 was on 25 Jan but I didn't kept track):
+ - Lots of XPath bug fixes
+ - Add a mode with Dtd lookup but without validation error reporting for
+ XSLT
+ - Add support for text node without escaping (XSLT)
+ - bug fixes for xmlCheckFilename
+ - validation code bug fixes from Gary Pennington
+ - Patch from Paul D. Smith correcting URI path normalization
+ - Patch to allow simultaneous install of libxml-devel and
+ libxml2-devel
+ - the example Makefile is now fixed
+ - added HTML to the RPM packages
+ - tree copying bugfixes
+ - updates to Windows makefiles
+ - optimization patch from Bjorn Reese
+
+
+2.2.11: Jan 4 2001:
+ - bunch of bug fixes (memory I/O, xpath, ftp/http, ...)
+ - added htmlHandleOmittedElem()
+ - Applied Bjorn Reese's IPV6 first patch
+ - Applied Paul D. Smith patches for validation of XInclude results
+ - added XPointer xmlns() new scheme support
+
+
+2.2.10: Nov 25 2000:
+ - Fix the Windows problems of 2.2.8
+ - integrate OpenVMS patches
+ - better handling of some nasty HTML input
+ - Improved the XPointer implementation
+ - integrate a number of provided patches
+
+
+2.2.9: Nov 25 2000:
+ - erroneous release :-(
+
+
+2.2.8: Nov 13 2000:
+ - First version of XInclude
+ support
+ - Patch in conditional section handling
+ - updated MS compiler project
+ - fixed some XPath problems
+ - added an URI escaping function
+ - some other bug fixes
+
+
+2.2.7: Oct 31 2000:
+ - added message redirection
+ - XPath improvements (thanks TOM !)
+ - xmlIOParseDTD() added
+ - various small fixes in the HTML, URI, HTTP and XPointer support
+ - some cleanup of the Makefile, autoconf and the distribution content
+
+
+2.2.6: Oct 25 2000::
+ - Added an hash table module, migrated a number of internal structure to
+ those
+ - Fixed a posteriori validation problems
+ - HTTP module cleanups
+ - HTML parser improvements (tag errors, script/style handling, attribute
+ normalization)
+ - coalescing of adjacent text nodes
+ - couple of XPath bug fixes, exported the internal API
+
+
+2.2.5: Oct 15 2000::
+ - XPointer implementation and testsuite
+ - Lot of XPath fixes, added variable and functions registration, more
+ tests
+ - Portability fixes, lots of enhancements toward an easy Windows build
+ and release
+ - Late validation fixes
+ - Integrated a lot of contributed patches
+ - added memory management docs
+ - a performance problem when using large buffer seems fixed
+
+
+2.2.4: Oct 1 2000::
+ - main XPath problem fixed
+ - Integrated portability patches for Windows
+ - Serious bug fixes on the URI and HTML code
+
+
+2.2.3: Sep 17 2000:
+ - bug fixes
+ - cleanup of entity handling code
+ - overall review of all loops in the parsers, all sprintf usage has been
+ checked too
+ - Far better handling of larges Dtd. Validating against DocBook XML Dtd
+ works smoothly now.
+
+
+1.8.10: Sep 6 2000:
+ - bug fix release for some Gnome projects
+
+
+2.2.2: August 12 2000:
+ - mostly bug fixes
+ - started adding routines to access xml parser context options
+
+
+2.2.1: July 21 2000:
+ - a purely bug fixes release
+ - fixed an encoding support problem when parsing from a memory block
+ - fixed a DOCTYPE parsing problem
+ - removed a bug in the function allowing to override the memory
+ allocation routines
+
+
+2.2.0: July 14 2000:
+ - applied a lot of portability fixes
+ - better encoding support/cleanup and saving (content is now always
+ encoded in UTF-8)
+ - the HTML parser now correctly handles encodings
+ - added xmlHasProp()
+ - fixed a serious problem with &#38;
+ - propagated the fix to FTP client
+ - cleanup, bugfixes, etc ...
+ - Added a page about libxml Internationalization
+ support
+
+
+1.8.9: July 9 2000:
+ - fixed the spec the RPMs should be better
+ - fixed a serious bug in the FTP implementation, released 1.8.9 to solve
+ rpmfind users problem
+
+
+2.1.1: July 1 2000:
+ - fixes a couple of bugs in the 2.1.0 packaging
+ - improvements on the HTML parser
+
+
+2.1.0 and 1.8.8: June 29 2000:
+ - 1.8.8 is mostly a commodity package for upgrading to libxml2 according
+ to new instructions. It fixes a nasty problem
+ about &#38; charref parsing
+ - 2.1.0 also ease the upgrade from libxml v1 to the recent version. it
+ also contains numerous fixes and enhancements:
+
+ added xmlStopParser() to stop parsing
+ improved a lot parsing speed when there is large CDATA blocs
+ includes XPath patches provided by Picdar Technology
+ tried to fix as much as possible DTD validation and namespace
+ related problems
+ output to a given encoding has been added/tested
+ lot of various fixes
+
+
+ - added xmlStopParser() to stop parsing
+ - improved a lot parsing speed when there is large CDATA blocs
+ - includes XPath patches provided by Picdar Technology
+ - tried to fix as much as possible DTD validation and namespace
+ related problems
+ - output to a given encoding has been added/tested
+ - lot of various fixes
+
+
+2.0.0: Apr 12 2000:
+ - First public release of libxml2. If you are using libxml, it's a good
+ idea to check the 1.x to 2.x upgrade instructions. NOTE: while initially
+ scheduled for Apr 3 the release occurred only on Apr 12 due to massive
+ workload.
+ - The include are now located under $prefix/include/libxml (instead of
+ $prefix/include/gnome-xml), they also are referenced by
+ #include <libxml/xxx.h>
+ instead of
+ #include "xxx.h"
+
+ - a new URI module for parsing URIs and following strictly RFC 2396
+ - the memory allocation routines used by libxml can now be overloaded
+ dynamically by using xmlMemSetup()
+ - The previously CVS only tool tester has been renamed
+ xmllint and is now installed as part of the libxml2
+ package
+ - The I/O interface has been revamped. There is now ways to plug in
+ specific I/O modules, either at the URI scheme detection level using
+ xmlRegisterInputCallbacks() or by passing I/O functions when creating a
+ parser context using xmlCreateIOParserCtxt()
+ - there is a C preprocessor macro LIBXML_VERSION providing the version
+ number of the libxml module in use
+ - a number of optional features of libxml can now be excluded at
+ configure time (FTP/HTTP/HTML/XPath/Debug)
+
+
+2.0.0beta: Mar 14 2000:
+ - This is a first Beta release of libxml version 2
+ - It's available only fromxmlsoft.org
+ FTP, it's packaged as libxml2-2.0.0beta and available as tar and
+ RPMs
+ - This version is now the head in the Gnome CVS base, the old one is
+ available under the tag LIB_XML_1_X
+ - This includes a very large set of changes. From a programmatic point
+ of view applications should not have to be modified too much, check the
+ upgrade page
+ - Some interfaces may changes (especially a bit about encoding).
+ - the updates includes:
+
+ fix I18N support. ISO-Latin-x/UTF-8/UTF-16 (nearly) seems correctly
+ handled now
+ Better handling of entities, especially well-formedness checking
+ and proper PEref extensions in external subsets
+ DTD conditional sections
+ Validation now correctly handle entities content
+ change
+ structures to accommodate DOM
+
+
+ - fix I18N support. ISO-Latin-x/UTF-8/UTF-16 (nearly) seems correctly
+ handled now
+ - Better handling of entities, especially well-formedness checking
+ and proper PEref extensions in external subsets
+ - DTD conditional sections
+ - Validation now correctly handle entities content
+ - change
+ structures to accommodate DOM
+ - Serious progress were made toward compliance, here are the result of the test against the
+ OASIS testsuite (except the Japanese tests since I don't support that
+ encoding yet). This URL is rebuilt every couple of hours using the CVS
+ head version.
+
+
+1.8.7: Mar 6 2000:
+ - This is a bug fix release:
+ - It is possible to disable the ignorable blanks heuristic used by
+ libxml-1.x, a new function xmlKeepBlanksDefault(0) will allow this. Note
+ that for adherence to XML spec, this behaviour will be disabled by
+ default in 2.x . The same function will allow to keep compatibility for
+ old code.
+ - Blanks in <a> </a> constructs are not ignored anymore,
+ avoiding heuristic is really the Right Way :-\
+ - The unchecked use of snprintf which was breaking libxml-1.8.6
+ compilation on some platforms has been fixed
+ - nanoftp.c nanohttp.c: Fixed '#' and '?' stripping when processing
+ URIs
+
+
+1.8.6: Jan 31 2000:
+ - added a nanoFTP transport module, debugged until the new version of rpmfind can use
+ it without troubles
+
+
+1.8.5: Jan 21 2000:
+ - adding APIs to parse a well balanced chunk of XML (production [43] content of the
+ XML spec)
+ - fixed a hideous bug in xmlGetProp pointed by Rune.Djurhuus@fast.no
+ - Jody Goldberg <jgoldberg@home.com> provided another patch trying
+ to solve the zlib checks problems
+ - The current state in gnome CVS base is expected to ship as 1.8.5 with
+ gnumeric soon
+
+
+1.8.4: Jan 13 2000:
+ - bug fixes, reintroduced xmlNewGlobalNs(), fixed xmlNewNs()
+ - all exit() call should have been removed from libxml
+ - fixed a problem with INCLUDE_WINSOCK on WIN32 platform
+ - added newDocFragment()
+
+
+1.8.3: Jan 5 2000:
+ - a Push interface for the XML and HTML parsers
+ - a shell-like interface to the document tree (try tester --shell :-)
+ - lots of bug fixes and improvement added over XMas holidays
+ - fixed the DTD parsing code to work with the xhtml DTD
+ - added xmlRemoveProp(), xmlRemoveID() and xmlRemoveRef()
+ - Fixed bugs in xmlNewNs()
+ - External entity loading code has been revamped, now it uses
+ xmlLoadExternalEntity(), some fix on entities processing were added
+ - cleaned up WIN32 includes of socket stuff
+
+
+1.8.2: Dec 21 1999:
+ - I got another problem with includes and C++, I hope this issue is fixed
+ for good this time
+ - Added a few tree modification functions: xmlReplaceNode,
+ xmlAddPrevSibling, xmlAddNextSibling, xmlNodeSetName and
+ xmlDocSetRootElement
+ - Tried to improve the HTML output with help from Chris Lahey
+
+
+1.8.1: Dec 18 1999:
+ - various patches to avoid troubles when using libxml with C++ compilers
+ the "namespace" keyword and C escaping in include files
+ - a problem in one of the core macros IS_CHAR was corrected
+ - fixed a bug introduced in 1.8.0 breaking default namespace processing,
+ and more specifically the Dia application
+ - fixed a posteriori validation (validation after parsing, or by using a
+ Dtd not specified in the original document)
+ - fixed a bug in
+
+
+1.8.0: Dec 12 1999:
+ - cleanup, especially memory wise
+ - the parser should be more reliable, especially the HTML one, it should
+ not crash, whatever the input !
+ - Integrated various patches, especially a speedup improvement for large
+ dataset from Carl Nygard,
+ configure with --with-buffers to enable them.
+ - attribute normalization, oops should have been added long ago !
+ - attributes defaulted from DTDs should be available, xmlSetProp() now
+ does entities escaping by default.
+
+
+1.7.4: Oct 25 1999:
+ - Lots of HTML improvement
+ - Fixed some errors when saving both XML and HTML
+ - More examples, the regression tests should now look clean
+ - Fixed a bug with contiguous charref
+
+
+1.7.3: Sep 29 1999:
+ - portability problems fixed
+ - snprintf was used unconditionally, leading to link problems on system
+ were it's not available, fixed
+
+
+1.7.1: Sep 24 1999:
+ - The basic type for strings manipulated by libxml has been renamed in
+ 1.7.1 from CHAR to xmlChar. The reason
+ is that CHAR was conflicting with a predefined type on Windows. However
+ on non WIN32 environment, compatibility is provided by the way of a
+ #define .
+ - Changed another error : the use of a structure field called errno, and
+ leading to troubles on platforms where it's a macro
+
+
+1.7.0: Sep 23 1999:
+ - Added the ability to fetch remote DTD or parsed entities, see the nanohttp module.
+ - Added an errno to report errors by another mean than a simple printf
+ like callback
+ - Finished ID/IDREF support and checking when validation
+ - Serious memory leaks fixed (there is now a memory wrapper module)
+ - Improvement of XPath
+ implementation
+ - Added an HTML parser front-end
+
+Daniel Veillard at
+bugs.html
diff --git a/libxml2-2.9.10/README b/libxml2-2.9.10/README
new file mode 100644
index 0000000..5c7bddf
--- /dev/null
+++ b/libxml2-2.9.10/README
@@ -0,0 +1,40 @@
+
+ XML toolkit from the GNOME project
+
+Full documentation is available on-line at
+ http://xmlsoft.org/
+
+This code is released under the MIT Licence see the Copyright file.
+
+To build on an Unixised setup:
+ ./configure ; make ; make install
+ if the ./configure file does not exist, run ./autogen.sh instead.
+To build on Windows:
+ see instructions on win32/Readme.txt
+
+To assert build quality:
+ on an Unixised setup:
+ run make tests
+ otherwise:
+ There is 3 standalone tools runtest.c runsuite.c testapi.c, which
+ should compile as part of the build or as any application would.
+ Launch them from this directory to get results, runtest checks
+ the proper functionning of libxml2 main APIs while testapi does
+ a full coverage check. Report failures to the list.
+
+To report bugs, follow the instructions at:
+ http://xmlsoft.org/bugs.html
+
+A mailing-list xml@gnome.org is available, to subscribe:
+ http://mail.gnome.org/mailman/listinfo/xml
+
+The list archive is at:
+ http://mail.gnome.org/archives/xml/
+
+All technical answers asked privately will be automatically answered on
+the list and archived for public access unless privacy is explicitly
+required and justified.
+
+Daniel Veillard
+
+$Id$
diff --git a/libxml2-2.9.10/README.tests b/libxml2-2.9.10/README.tests
new file mode 100644
index 0000000..8d86f2a
--- /dev/null
+++ b/libxml2-2.9.10/README.tests
@@ -0,0 +1,39 @@
+ README.tests
+
+ Instructions for standalone test regressions of libxml2
+
+libxml2-tests-$version.tar.gz contains 3 standalone C programs as well
+as a large amount of tests and results coming from libxml2 itself and
+from W3C, NIST, Sun Microsystems, Microsoft and James Clark. Each C
+program has a different testing purpose:
+
+ runtest.c : runs libxml2 basic internal regression tests
+ runsuite.c: runs libxml2 against external regression tests
+ testapi.c : exercises the library public entry points
+ testchar.c: exercise the check of character ranges and UTF-8 validation
+
+The command:
+
+ make check
+or
+ make -f Makefile.tests check
+
+should be sufficient on an Unix system to build and exercise the tests
+for the version of the library installed on the system. Note however
+that there isn't backward compatibility provided so if the installed
+version is older than the testsuite one, failing to compile or run the tests
+is likely. In any event this won't work with an installed libxml2 older
+than 2.6.20.
+
+Building on other platforms should be a matter of compiling the C files
+like any other program using libxml2, running the test should be done
+simply by launching the resulting executables.
+
+Also note the availability of a "make valgrind" target which will run the
+above tests under valgrind to check for memory errors (but this relies
+on the availability of the valgrind command and take far more time to
+complete).
+
+Daniel Veillard
+Mon May 7 2012
+
diff --git a/libxml2-2.9.10/README.zOS b/libxml2-2.9.10/README.zOS
new file mode 100644
index 0000000..e6a6d6e
--- /dev/null
+++ b/libxml2-2.9.10/README.zOS
@@ -0,0 +1,212 @@
+Notes for compiling on zOS:
+
+- since testapi.c file is huge (over 52000 lines), it's compilation
+ fails: I skipped the problem by removing all references to testapi in the
+ Makefile.in, but it would be neater if one can build without test files
+ (I didn't find an option in configure...)
+
+- since the name of files (or qualifier) in PDS are limited to 8 I had to
+ rename xmlschemas.c and xmlschemastypes.c in (resp.) xmlsche.c xmlschet.c
+ (and I had to modify all occurrences of these files accordingly in the
+ rest of the Makefile !!!).
+
+- in order to copy objects to PDS, I had the cp command at line 860
+ of Makefile.in
+
+libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS)
+ # Copy objects to PDS
+ @list='$(libxml2_OBJECTS)' ; for p in $$list; do \
+ cp -ACMv $$p "//'<PDS NAME>'"; \
+ done
+
+ with <PDS NAME> stands for the name of my PDS and
+
+libxml2_OBJECTS = SAX.o entities.o encoding.o error.o \
+ parserInternals.o parser.o tree.o hash.o list.o xmlIO.o \
+ xmlmemory.o uri.o valid.o xlink.o HTMLparser.o \
+ HTMLtree.o debugXML.o xpath.o xpointer.o xinclude.o \
+ nanohttp.o nanoftp.o triostr.o trio.o catalog.o globals.o \
+ threads.o c14n.o xmlstring.o buf.o xmlregexp.o \
+ xmlsche.o xmlschet.o xmlunicode.o \
+ xmlreader.o relaxng.o dict.o SAX2.o \
+ xmlwriter.o legacy.o chvalid.o pattern.o xmlsave.o \
+ xmlmodule.o schematron.o xzlib.o
+
+In order to handle the support of zOS without breaking the existing
+Makefile maybe a new option/flag zOs would copy xmlschemas.c and
+xmlschemastypes.c files and use specifics targets rather than existing
+ones with the longer names... A variable to handle the PDS name has to
+be provided also...
+
+See patch below for set of changes to Makefile.in
+
+Stéphane Michaut <smichaut@axway.com>
+July 2017
+
+
+--- Makefile.in 2017-08-01 08:17:15.000000000 +0200
++++ Makefile-new.in 2017-08-01 08:07:26.000000000 +0200
+@@ -41,7 +41,7 @@
+ testSAX$(EXEEXT) testHTML$(EXEEXT) testXPath$(EXEEXT) \
+ testURI$(EXEEXT) testThreads$(EXEEXT) testC14N$(EXEEXT) \
+ testAutomata$(EXEEXT) testRegexp$(EXEEXT) testReader$(EXEEXT) \
+- testapi$(EXEEXT) testModule$(EXEEXT) runtest$(EXEEXT) \
++ testModule$(EXEEXT) runtest$(EXEEXT) \
+ runsuite$(EXEEXT) testchar$(EXEEXT) testdict$(EXEEXT) \
+ runxmlconf$(EXEEXT) testrecurse$(EXEEXT) testlimits$(EXEEXT)
+ bin_PROGRAMS = xmllint$(EXEEXT) xmlcatalog$(EXEEXT)
+@@ -106,6 +106,7 @@
+ debugXML.c xpath.c xpointer.c xinclude.c nanohttp.c nanoftp.c \
+ DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \
+ buf.c xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
++ xmlsche.c xmlschet.c \
+ triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \
+ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c \
+ schematron.c xzlib.c
+@@ -118,10 +119,24 @@
+ nanohttp.lo nanoftp.lo $(am__objects_1) catalog.lo globals.lo \
+ threads.lo c14n.lo xmlstring.lo buf.lo xmlregexp.lo \
+ xmlschemas.lo xmlschemastypes.lo xmlunicode.lo \
++ xmlsche.lo xmlschet.lo \
+ $(am__objects_2) xmlreader.lo relaxng.lo dict.lo SAX2.lo \
+ xmlwriter.lo legacy.lo chvalid.lo pattern.lo xmlsave.lo \
+ xmlmodule.lo schematron.lo xzlib.lo
+ libxml2_la_OBJECTS = $(am_libxml2_la_OBJECTS)
++
++libxml2_OBJECTS = SAX.o entities.o encoding.o error.o \
++ parserInternals.o parser.o tree.o hash.o list.o xmlIO.o \
++ xmlmemory.o uri.o valid.o xlink.o HTMLparser.o \
++ HTMLtree.o debugXML.o xpath.o xpointer.o xinclude.o \
++ nanohttp.o nanoftp.o triostr.o trio.o catalog.o globals.o \
++ threads.o c14n.o xmlstring.o buf.o xmlregexp.o \
++ xmlschemas.o xmlschemastypes.o xmlunicode.o \
++ xmlsche.o xmlschemast.o \
++ xmlreader.o relaxng.o dict.o SAX2.o \
++ xmlwriter.o legacy.o chvalid.o pattern.o xmlsave.o \
++ xmlmodule.o schematron.o xzlib.o
++
+ AM_V_lt = $(am__v_lt_$(V))
+ am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+ am__v_lt_0 = --silent
+@@ -216,11 +231,6 @@
+ testXPath_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testXPath_LDFLAGS) $(LDFLAGS) -o $@
+-am_testapi_OBJECTS = testapi.$(OBJEXT)
+-testapi_OBJECTS = $(am_testapi_OBJECTS)
+-testapi_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+- $(testapi_LDFLAGS) $(LDFLAGS) -o $@
+ am_testchar_OBJECTS = testchar.$(OBJEXT)
+ testchar_OBJECTS = $(am_testchar_OBJECTS)
+ testchar_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+@@ -285,7 +295,7 @@
+ $(testReader_SOURCES) $(testRegexp_SOURCES) \
+ $(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \
+ $(testThreads_SOURCES) $(testURI_SOURCES) $(testXPath_SOURCES) \
+- $(testapi_SOURCES) $(testchar_SOURCES) $(testdict_SOURCES) \
++ $(testchar_SOURCES) $(testdict_SOURCES) \
+ $(testlimits_SOURCES) $(testrecurse_SOURCES) \
+ $(xmlcatalog_SOURCES) $(xmllint_SOURCES)
+ DIST_SOURCES = $(am__libxml2_la_SOURCES_DIST) $(testdso_la_SOURCES) \
+@@ -295,7 +305,7 @@
+ $(testReader_SOURCES) $(testRegexp_SOURCES) \
+ $(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \
+ $(am__testThreads_SOURCES_DIST) $(testURI_SOURCES) \
+- $(testXPath_SOURCES) $(testapi_SOURCES) $(testchar_SOURCES) \
++ $(testXPath_SOURCES) $(testchar_SOURCES) \
+ $(testdict_SOURCES) $(testlimits_SOURCES) \
+ $(testrecurse_SOURCES) $(xmlcatalog_SOURCES) \
+ $(xmllint_SOURCES)
+@@ -700,11 +710,6 @@
+ noinst_LTLIBRARIES = testdso.la
+ testdso_la_SOURCES = testdso.c
+ testdso_la_LDFLAGS = -module -no-undefined -avoid-version -rpath $(libdir)
+-BUILT_SOURCES = testapi.c
+-testapi_SOURCES = testapi.c
+-testapi_LDFLAGS =
+-testapi_DEPENDENCIES = $(DEPS)
+-testapi_LDADD = $(LDADDS)
+ runxmlconf_SOURCES = runxmlconf.c
+ runxmlconf_LDFLAGS =
+ runxmlconf_DEPENDENCIES = $(DEPS)
+@@ -854,6 +859,12 @@
+ done
+ libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS)
++ # Copie des obj
++ @list='$(libxml2_OBJECTS)' ; for p in $$list; do \
++ echo "copy to PDS: $$p"; \
++ cp -ACMv $$p "//'A009153.XRDEV230.FIC.OBJLIB.LIBXML'"; \
++ done
++
+ testdso.la: $(testdso_la_OBJECTS) $(testdso_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(testdso_la_LINK) $(testdso_la_OBJECTS) $(testdso_la_LIBADD) $(LIBS)
+ install-binPROGRAMS: $(bin_PROGRAMS)
+@@ -953,9 +964,6 @@
+ testXPath$(EXEEXT): $(testXPath_OBJECTS) $(testXPath_DEPENDENCIES)
+ @rm -f testXPath$(EXEEXT)
+ $(AM_V_CCLD)$(testXPath_LINK) $(testXPath_OBJECTS) $(testXPath_LDADD) $(LIBS)
+-testapi$(EXEEXT): $(testapi_OBJECTS) $(testapi_DEPENDENCIES)
+- @rm -f testapi$(EXEEXT)
+- $(AM_V_CCLD)$(testapi_LINK) $(testapi_OBJECTS) $(testapi_LDADD) $(LIBS)
+ testchar$(EXEEXT): $(testchar_OBJECTS) $(testchar_DEPENDENCIES)
+ @rm -f testchar$(EXEEXT)
+ $(AM_V_CCLD)$(testchar_LINK) $(testchar_OBJECTS) $(testchar_LDADD) $(LIBS)
+@@ -1056,7 +1064,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testThreadsWin32.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testURI.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testXPath.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testapi.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testchar.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdict.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdso.Plo@am__quote@
+@@ -1755,18 +1762,6 @@
+ uninstall-local uninstall-m4dataDATA uninstall-man \
+ uninstall-man1 uninstall-man3 uninstall-pkgconfigDATA
+
+-
+-# that one forces the rebuild when "make rebuild" is run on doc/
+-rebuild_testapi:
+- -@(if [ "$(PYTHON)" != "" ] ; then \
+- $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
+-
+-# that one is just to make sure it is rebuilt if missing
+-# but adding the dependances generate mess
+-testapi.c: $(srcdir)/gentest.py
+- -@(if [ "$(PYTHON)" != "" ] ; then \
+- $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
+-
+ #testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c
+ #testOOM_LDFLAGS =
+ #testOOM_DEPENDENCIES = $(DEPS)
+@@ -1775,7 +1770,7 @@
+ runtests:
+ [ -d test ] || $(LN_S) $(srcdir)/test .
+ [ -d result ] || $(LN_S) $(srcdir)/result .
+- $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
++ $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
+ @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
+ $(MAKE) tests ; fi)
+
+@@ -1797,10 +1792,6 @@
+ $(MAKE) tests ; fi)
+ @(cd doc/examples ; $(MAKE) tests)
+
+-APItests: testapi$(EXEEXT)
+- @echo "## Running the API regression tests this may take a little while"
+- -@($(CHECKER) $(top_builddir)/testapi -q)
+-
+ HTMLtests : testHTML$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## HTML regression tests"
+@@ -2746,7 +2737,7 @@
+ dist-test: distdir
+ (mkdir -p $(distdir))
+ (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn --exclude .git xstc/Tests) | (cd $(distdir); tar xf -)
+- tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/testapi.c $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
++ tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
+ @(rm -rf $(distdir)/xstc/Test)
+
+ cleantar:
diff --git a/libxml2-2.9.10/SAX.c b/libxml2-2.9.10/SAX.c
new file mode 100644
index 0000000..292af57
--- /dev/null
+++ b/libxml2-2.9.10/SAX.c
@@ -0,0 +1,180 @@
+/*
+ * SAX.c : Old SAX v1 handlers to build a tree.
+ * Deprecated except for compatibility
+ *
+ * See Copyright for the status of this software.
+ *
+ * Daniel Veillard <daniel@veillard.com>
+ */
+
+
+#define IN_LIBXML
+#include "libxml.h"
+#include <stdlib.h>
+#include <string.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
+#include <libxml/valid.h>
+#include <libxml/entities.h>
+#include <libxml/xmlerror.h>
+#include <libxml/debugXML.h>
+#include <libxml/xmlIO.h>
+#include <libxml/SAX.h>
+#include <libxml/uri.h>
+#include <libxml/valid.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/globals.h>
+#include <libxml/SAX2.h>
+
+#ifdef LIBXML_LEGACY_ENABLED
+#ifdef LIBXML_SAX1_ENABLED
+/**
+ * initxmlDefaultSAXHandler:
+ * @hdlr: the SAX handler
+ * @warning: flag if non-zero sets the handler warning procedure
+ *
+ * Initialize the default XML SAX version 1 handler
+ * DEPRECATED: use xmlSAX2InitDefaultSAXHandler() for the new SAX2 blocks
+ */
+void
+initxmlDefaultSAXHandler(xmlSAXHandlerV1 *hdlr, int warning)
+{
+
+ if(hdlr->initialized == 1)
+ return;
+
+ hdlr->internalSubset = xmlSAX2InternalSubset;
+ hdlr->externalSubset = xmlSAX2ExternalSubset;
+ hdlr->isStandalone = xmlSAX2IsStandalone;
+ hdlr->hasInternalSubset = xmlSAX2HasInternalSubset;
+ hdlr->hasExternalSubset = xmlSAX2HasExternalSubset;
+ hdlr->resolveEntity = xmlSAX2ResolveEntity;
+ hdlr->getEntity = xmlSAX2GetEntity;
+ hdlr->getParameterEntity = xmlSAX2GetParameterEntity;
+ hdlr->entityDecl = xmlSAX2EntityDecl;
+ hdlr->attributeDecl = xmlSAX2AttributeDecl;
+ hdlr->elementDecl = xmlSAX2ElementDecl;
+ hdlr->notationDecl = xmlSAX2NotationDecl;
+ hdlr->unparsedEntityDecl = xmlSAX2UnparsedEntityDecl;
+ hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
+ hdlr->startDocument = xmlSAX2StartDocument;
+ hdlr->endDocument = xmlSAX2EndDocument;
+ hdlr->startElement = xmlSAX2StartElement;
+ hdlr->endElement = xmlSAX2EndElement;
+ hdlr->reference = xmlSAX2Reference;
+ hdlr->characters = xmlSAX2Characters;
+ hdlr->cdataBlock = xmlSAX2CDataBlock;
+ hdlr->ignorableWhitespace = xmlSAX2Characters;
+ hdlr->processingInstruction = xmlSAX2ProcessingInstruction;
+ if (warning == 0)
+ hdlr->warning = NULL;
+ else
+ hdlr->warning = xmlParserWarning;
+ hdlr->error = xmlParserError;
+ hdlr->fatalError = xmlParserError;
+
+ hdlr->initialized = 1;
+}
+
+#ifdef LIBXML_HTML_ENABLED
+
+/**
+ * inithtmlDefaultSAXHandler:
+ * @hdlr: the SAX handler
+ *
+ * Initialize the default HTML SAX version 1 handler
+ * DEPRECATED: use xmlSAX2InitHtmlDefaultSAXHandler() for the new SAX2 blocks
+ */
+void
+inithtmlDefaultSAXHandler(xmlSAXHandlerV1 *hdlr)
+{
+ if(hdlr->initialized == 1)
+ return;
+
+ hdlr->internalSubset = xmlSAX2InternalSubset;
+ hdlr->externalSubset = NULL;
+ hdlr->isStandalone = NULL;
+ hdlr->hasInternalSubset = NULL;
+ hdlr->hasExternalSubset = NULL;
+ hdlr->resolveEntity = NULL;
+ hdlr->getEntity = xmlSAX2GetEntity;
+ hdlr->getParameterEntity = NULL;
+ hdlr->entityDecl = NULL;
+ hdlr->attributeDecl = NULL;
+ hdlr->elementDecl = NULL;
+ hdlr->notationDecl = NULL;
+ hdlr->unparsedEntityDecl = NULL;
+ hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
+ hdlr->startDocument = xmlSAX2StartDocument;
+ hdlr->endDocument = xmlSAX2EndDocument;
+ hdlr->startElement = xmlSAX2StartElement;
+ hdlr->endElement = xmlSAX2EndElement;
+ hdlr->reference = NULL;
+ hdlr->characters = xmlSAX2Characters;
+ hdlr->cdataBlock = xmlSAX2CDataBlock;
+ hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
+ hdlr->processingInstruction = xmlSAX2ProcessingInstruction;
+ hdlr->comment = xmlSAX2Comment;
+ hdlr->warning = xmlParserWarning;
+ hdlr->error = xmlParserError;
+ hdlr->fatalError = xmlParserError;
+
+ hdlr->initialized = 1;
+}
+
+#endif /* LIBXML_HTML_ENABLED */
+
+#ifdef LIBXML_DOCB_ENABLED
+/**
+ * initdocbDefaultSAXHandler:
+ * @hdlr: the SAX handler
+ *
+ * Initialize the default DocBook SAX version 1 handler
+ * DEPRECATED: use xmlSAX2InitDocbDefaultSAXHandler() for the new SAX2 blocks
+ */
+void
+initdocbDefaultSAXHandler(xmlSAXHandlerV1 *hdlr)
+{
+ if(hdlr->initialized == 1)
+ return;
+
+ hdlr->internalSubset = xmlSAX2InternalSubset;
+ hdlr->externalSubset = NULL;
+ hdlr->isStandalone = xmlSAX2IsStandalone;
+ hdlr->hasInternalSubset = xmlSAX2HasInternalSubset;
+ hdlr->hasExternalSubset = xmlSAX2HasExternalSubset;
+ hdlr->resolveEntity = xmlSAX2ResolveEntity;
+ hdlr->getEntity = xmlSAX2GetEntity;
+ hdlr->getParameterEntity = NULL;
+ hdlr->entityDecl = xmlSAX2EntityDecl;
+ hdlr->attributeDecl = NULL;
+ hdlr->elementDecl = NULL;
+ hdlr->notationDecl = NULL;
+ hdlr->unparsedEntityDecl = NULL;
+ hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
+ hdlr->startDocument = xmlSAX2StartDocument;
+ hdlr->endDocument = xmlSAX2EndDocument;
+ hdlr->startElement = xmlSAX2StartElement;
+ hdlr->endElement = xmlSAX2EndElement;
+ hdlr->reference = xmlSAX2Reference;
+ hdlr->characters = xmlSAX2Characters;
+ hdlr->cdataBlock = NULL;
+ hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
+ hdlr->processingInstruction = NULL;
+ hdlr->comment = xmlSAX2Comment;
+ hdlr->warning = xmlParserWarning;
+ hdlr->error = xmlParserError;
+ hdlr->fatalError = xmlParserError;
+
+ hdlr->initialized = 1;
+}
+
+#endif /* LIBXML_DOCB_ENABLED */
+
+#endif /* LIBXML_SAX1_ENABLED */
+
+#define bottom_SAX
+#include "elfgcchack.h"
+#endif /* LIBXML_LEGACY_ENABLED */
diff --git a/libxml2-2.9.10/SAX2.c b/libxml2-2.9.10/SAX2.c
new file mode 100644
index 0000000..5f141f9
--- /dev/null
+++ b/libxml2-2.9.10/SAX2.c
@@ -0,0 +1,3064 @@
+/*
+ * SAX2.c : Default SAX2 handler to build a tree.
+ *
+ * See Copyright for the status of this software.
+ *
+ * Daniel Veillard <daniel@veillard.com>
+ */
+
+
+#define IN_LIBXML
+#include "libxml.h"
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+#include <stddef.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
+#include <libxml/valid.h>
+#include <libxml/entities.h>
+#include <libxml/xmlerror.h>
+#include <libxml/debugXML.h>
+#include <libxml/xmlIO.h>
+#include <libxml/SAX.h>
+#include <libxml/uri.h>
+#include <libxml/valid.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/globals.h>
+
+/* Define SIZE_T_MAX unless defined through <limits.h>. */
+#ifndef SIZE_T_MAX
+# define SIZE_T_MAX ((size_t)-1)
+#endif /* !SIZE_T_MAX */
+
+/* #define DEBUG_SAX2 */
+/* #define DEBUG_SAX2_TREE */
+
+/**
+ * TODO:
+ *
+ * macro to flag unimplemented blocks
+ * XML_CATALOG_PREFER user env to select between system/public preferred
+ * option. C.f. Richard Tobin <richard@cogsci.ed.ac.uk>
+ *> Just FYI, I am using an environment variable XML_CATALOG_PREFER with
+ *> values "system" and "public". I have made the default be "system" to
+ *> match yours.
+ */
+#define TODO \
+ xmlGenericError(xmlGenericErrorContext, \
+ "Unimplemented block at %s:%d\n", \
+ __FILE__, __LINE__);
+
+/*
+ * xmlSAX2ErrMemory:
+ * @ctxt: an XML validation parser context
+ * @msg: a string to accompany the error message
+ */
+static void LIBXML_ATTR_FORMAT(2,0)
+xmlSAX2ErrMemory(xmlParserCtxtPtr ctxt, const char *msg) {
+ xmlStructuredErrorFunc schannel = NULL;
+ const char *str1 = "out of memory\n";
+
+ if (ctxt != NULL) {
+ ctxt->errNo = XML_ERR_NO_MEMORY;
+ if ((ctxt->sax != NULL) && (ctxt->sax->initialized == XML_SAX2_MAGIC))
+ schannel = ctxt->sax->serror;
+ __xmlRaiseError(schannel,
+ ctxt->vctxt.error, ctxt->vctxt.userData,
+ ctxt, NULL, XML_FROM_PARSER, XML_ERR_NO_MEMORY,
+ XML_ERR_ERROR, NULL, 0, (const char *) str1,
+ NULL, NULL, 0, 0,
+ msg, (const char *) str1, NULL);
+ ctxt->errNo = XML_ERR_NO_MEMORY;
+ ctxt->instate = XML_PARSER_EOF;
+ ctxt->disableSAX = 1;
+ } else {
+ __xmlRaiseError(schannel,
+ NULL, NULL,
+ ctxt, NULL, XML_FROM_PARSER, XML_ERR_NO_MEMORY,
+ XML_ERR_ERROR, NULL, 0, (const char *) str1,
+ NULL, NULL, 0, 0,
+ msg, (const char *) str1, NULL);
+ }
+}
+
+/**
+ * xmlValidError:
+ * @ctxt: an XML validation parser context
+ * @error: the error number
+ * @msg: the error message
+ * @str1: extra data
+ * @str2: extra data
+ *
+ * Handle a validation error
+ */
+static void LIBXML_ATTR_FORMAT(3,0)
+xmlErrValid(xmlParserCtxtPtr ctxt, xmlParserErrors error,
+ const char *msg, const char *str1, const char *str2)
+{
+ xmlStructuredErrorFunc schannel = NULL;
+
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
+ if (ctxt != NULL) {
+ ctxt->errNo = error;
+ if ((ctxt->sax != NULL) && (ctxt->sax->initialized == XML_SAX2_MAGIC))
+ schannel = ctxt->sax->serror;
+ __xmlRaiseError(schannel,
+ ctxt->vctxt.error, ctxt->vctxt.userData,
+ ctxt, NULL, XML_FROM_DTD, error,
+ XML_ERR_ERROR, NULL, 0, (const char *) str1,
+ (const char *) str2, NULL, 0, 0,
+ msg, (const char *) str1, (const char *) str2);
+ ctxt->valid = 0;
+ } else {
+ __xmlRaiseError(schannel,
+ NULL, NULL,
+ ctxt, NULL, XML_FROM_DTD, error,
+ XML_ERR_ERROR, NULL, 0, (const char *) str1,
+ (const char *) str2, NULL, 0, 0,
+ msg, (const char *) str1, (const char *) str2);
+ }
+}
+
+/**
+ * xmlFatalErrMsg:
+ * @ctxt: an XML parser context
+ * @error: the error number
+ * @msg: the error message
+ * @str1: an error string
+ * @str2: an error string
+ *
+ * Handle a fatal parser error, i.e. violating Well-Formedness constraints
+ */
+static void LIBXML_ATTR_FORMAT(3,0)
+xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
+ const char *msg, const xmlChar *str1, const xmlChar *str2)
+{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
+ if (ctxt != NULL)
+ ctxt->errNo = error;
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
+ XML_ERR_FATAL, NULL, 0,
+ (const char *) str1, (const char *) str2,
+ NULL, 0, 0, msg, str1, str2);
+ if (ctxt != NULL) {
+ ctxt->wellFormed = 0;
+ ctxt->valid = 0;
+ if (ctxt->recovery == 0)
+ ctxt->disableSAX = 1;
+ }
+}
+
+/**
+ * xmlWarnMsg:
+ * @ctxt: an XML parser context
+ * @error: the error number
+ * @msg: the error message
+ * @str1: an error string
+ * @str2: an error string
+ *
+ * Handle a parser warning
+ */
+static void LIBXML_ATTR_FORMAT(3,0)
+xmlWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
+ const char *msg, const xmlChar *str1)
+{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
+ if (ctxt != NULL)
+ ctxt->errNo = error;
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
+ XML_ERR_WARNING, NULL, 0,
+ (const char *) str1, NULL,
+ NULL, 0, 0, msg, str1);
+}
+
+/**
+ * xmlNsErrMsg:
+ * @ctxt: an XML parser context
+ * @error: the error number
+ * @msg: the error message
+ * @str1: an error string
+ * @str2: an error string
+ *
+ * Handle a namespace error
+ */
+static void LIBXML_ATTR_FORMAT(3,0)
+xmlNsErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
+ const char *msg, const xmlChar *str1, const xmlChar *str2)
+{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
+ if (ctxt != NULL)
+ ctxt->errNo = error;
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_NAMESPACE, error,
+ XML_ERR_ERROR, NULL, 0,
+ (const char *) str1, (const char *) str2,
+ NULL, 0, 0, msg, str1, str2);
+}
+
+/**
+ * xmlNsWarnMsg:
+ * @ctxt: an XML parser context
+ * @error: the error number
+ * @msg: the error message
+ * @str1: an error string
+ *
+ * Handle a namespace warning
+ */
+static void LIBXML_ATTR_FORMAT(3,0)
+xmlNsWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
+ const char *msg, const xmlChar *str1, const xmlChar *str2)
+{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
+ if (ctxt != NULL)
+ ctxt->errNo = error;
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_NAMESPACE, error,
+ XML_ERR_WARNING, NULL, 0,
+ (const char *) str1, (const char *) str2,
+ NULL, 0, 0, msg, str1, str2);
+}
+
+/**
+ * xmlSAX2GetPublicId:
+ * @ctx: the user data (XML parser context)
+ *
+ * Provides the public ID e.g. "-//SGMLSOURCE//DTD DEMO//EN"
+ *
+ * Returns a xmlChar *
+ */
+const xmlChar *
+xmlSAX2GetPublicId(void *ctx ATTRIBUTE_UNUSED)
+{
+ /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */
+ return(NULL);
+}
+
+/**
+ * xmlSAX2GetSystemId:
+ * @ctx: the user data (XML parser context)
+ *
+ * Provides the system ID, basically URL or filename e.g.
+ * http://www.sgmlsource.com/dtds/memo.dtd
+ *
+ * Returns a xmlChar *
+ */
+const xmlChar *
+xmlSAX2GetSystemId(void *ctx)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ if ((ctx == NULL) || (ctxt->input == NULL)) return(NULL);
+ return((const xmlChar *) ctxt->input->filename);
+}
+
+/**
+ * xmlSAX2GetLineNumber:
+ * @ctx: the user data (XML parser context)
+ *
+ * Provide the line number of the current parsing point.
+ *
+ * Returns an int
+ */
+int
+xmlSAX2GetLineNumber(void *ctx)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ if ((ctx == NULL) || (ctxt->input == NULL)) return(0);
+ return(ctxt->input->line);
+}
+
+/**
+ * xmlSAX2GetColumnNumber:
+ * @ctx: the user data (XML parser context)
+ *
+ * Provide the column number of the current parsing point.
+ *
+ * Returns an int
+ */
+int
+xmlSAX2GetColumnNumber(void *ctx)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ if ((ctx == NULL) || (ctxt->input == NULL)) return(0);
+ return(ctxt->input->col);
+}
+
+/**
+ * xmlSAX2IsStandalone:
+ * @ctx: the user data (XML parser context)
+ *
+ * Is this document tagged standalone ?
+ *
+ * Returns 1 if true
+ */
+int
+xmlSAX2IsStandalone(void *ctx)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ if ((ctx == NULL) || (ctxt->myDoc == NULL)) return(0);
+ return(ctxt->myDoc->standalone == 1);
+}
+
+/**
+ * xmlSAX2HasInternalSubset:
+ * @ctx: the user data (XML parser context)
+ *
+ * Does this document has an internal subset
+ *
+ * Returns 1 if true
+ */
+int
+xmlSAX2HasInternalSubset(void *ctx)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ if ((ctxt == NULL) || (ctxt->myDoc == NULL)) return(0);
+ return(ctxt->myDoc->intSubset != NULL);
+}
+
+/**
+ * xmlSAX2HasExternalSubset:
+ * @ctx: the user data (XML parser context)
+ *
+ * Does this document has an external subset
+ *
+ * Returns 1 if true
+ */
+int
+xmlSAX2HasExternalSubset(void *ctx)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ if ((ctxt == NULL) || (ctxt->myDoc == NULL)) return(0);
+ return(ctxt->myDoc->extSubset != NULL);
+}
+
+/**
+ * xmlSAX2InternalSubset:
+ * @ctx: the user data (XML parser context)
+ * @name: the root element name
+ * @ExternalID: the external ID
+ * @SystemID: the SYSTEM ID (e.g. filename or URL)
+ *
+ * Callback on internal subset declaration.
+ */
+void
+xmlSAX2InternalSubset(void *ctx, const xmlChar *name,
+ const xmlChar *ExternalID, const xmlChar *SystemID)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlDtdPtr dtd;
+ if (ctx == NULL) return;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2InternalSubset(%s, %s, %s)\n",
+ name, ExternalID, SystemID);
+#endif
+
+ if (ctxt->myDoc == NULL)
+ return;
+ dtd = xmlGetIntSubset(ctxt->myDoc);
+ if (dtd != NULL) {
+ if (ctxt->html)
+ return;
+ xmlUnlinkNode((xmlNodePtr) dtd);
+ xmlFreeDtd(dtd);
+ ctxt->myDoc->intSubset = NULL;
+ }
+ ctxt->myDoc->intSubset =
+ xmlCreateIntSubset(ctxt->myDoc, name, ExternalID, SystemID);
+ if (ctxt->myDoc->intSubset == NULL)
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2InternalSubset");
+}
+
+/**
+ * xmlSAX2ExternalSubset:
+ * @ctx: the user data (XML parser context)
+ * @name: the root element name
+ * @ExternalID: the external ID
+ * @SystemID: the SYSTEM ID (e.g. filename or URL)
+ *
+ * Callback on external subset declaration.
+ */
+void
+xmlSAX2ExternalSubset(void *ctx, const xmlChar *name,
+ const xmlChar *ExternalID, const xmlChar *SystemID)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ if (ctx == NULL) return;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2ExternalSubset(%s, %s, %s)\n",
+ name, ExternalID, SystemID);
+#endif
+ if (((ExternalID != NULL) || (SystemID != NULL)) &&
+ (((ctxt->validate) || (ctxt->loadsubset != 0)) &&
+ (ctxt->wellFormed && ctxt->myDoc))) {
+ /*
+ * Try to fetch and parse the external subset.
+ */
+ xmlParserInputPtr oldinput;
+ int oldinputNr;
+ int oldinputMax;
+ xmlParserInputPtr *oldinputTab;
+ xmlParserInputPtr input = NULL;
+ xmlCharEncoding enc;
+ int oldcharset;
+ const xmlChar *oldencoding;
+
+ /*
+ * Ask the Entity resolver to load the damn thing
+ */
+ if ((ctxt->sax != NULL) && (ctxt->sax->resolveEntity != NULL))
+ input = ctxt->sax->resolveEntity(ctxt->userData, ExternalID,
+ SystemID);
+ if (input == NULL) {
+ return;
+ }
+
+ xmlNewDtd(ctxt->myDoc, name, ExternalID, SystemID);
+
+ /*
+ * make sure we won't destroy the main document context
+ */
+ oldinput = ctxt->input;
+ oldinputNr = ctxt->inputNr;
+ oldinputMax = ctxt->inputMax;
+ oldinputTab = ctxt->inputTab;
+ oldcharset = ctxt->charset;
+ oldencoding = ctxt->encoding;
+ ctxt->encoding = NULL;
+
+ ctxt->inputTab = (xmlParserInputPtr *)
+ xmlMalloc(5 * sizeof(xmlParserInputPtr));
+ if (ctxt->inputTab == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2ExternalSubset");
+ ctxt->input = oldinput;
+ ctxt->inputNr = oldinputNr;
+ ctxt->inputMax = oldinputMax;
+ ctxt->inputTab = oldinputTab;
+ ctxt->charset = oldcharset;
+ ctxt->encoding = oldencoding;
+ return;
+ }
+ ctxt->inputNr = 0;
+ ctxt->inputMax = 5;
+ ctxt->input = NULL;
+ xmlPushInput(ctxt, input);
+
+ /*
+ * On the fly encoding conversion if needed
+ */
+ if (ctxt->input->length >= 4) {
+ enc = xmlDetectCharEncoding(ctxt->input->cur, 4);
+ xmlSwitchEncoding(ctxt, enc);
+ }
+
+ if (input->filename == NULL)
+ input->filename = (char *) xmlCanonicPath(SystemID);
+ input->line = 1;
+ input->col = 1;
+ input->base = ctxt->input->cur;
+ input->cur = ctxt->input->cur;
+ input->free = NULL;
+
+ /*
+ * let's parse that entity knowing it's an external subset.
+ */
+ xmlParseExternalSubset(ctxt, ExternalID, SystemID);
+
+ /*
+ * Free up the external entities
+ */
+
+ while (ctxt->inputNr > 1)
+ xmlPopInput(ctxt);
+ xmlFreeInputStream(ctxt->input);
+ xmlFree(ctxt->inputTab);
+
+ /*
+ * Restore the parsing context of the main entity
+ */
+ ctxt->input = oldinput;
+ ctxt->inputNr = oldinputNr;
+ ctxt->inputMax = oldinputMax;
+ ctxt->inputTab = oldinputTab;
+ ctxt->charset = oldcharset;
+ if ((ctxt->encoding != NULL) &&
+ ((ctxt->dict == NULL) ||
+ (!xmlDictOwns(ctxt->dict, ctxt->encoding))))
+ xmlFree((xmlChar *) ctxt->encoding);
+ ctxt->encoding = oldencoding;
+ /* ctxt->wellFormed = oldwellFormed; */
+ }
+}
+
+/**
+ * xmlSAX2ResolveEntity:
+ * @ctx: the user data (XML parser context)
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ *
+ * The entity loader, to control the loading of external entities,
+ * the application can either:
+ * - override this xmlSAX2ResolveEntity() callback in the SAX block
+ * - or better use the xmlSetExternalEntityLoader() function to
+ * set up it's own entity resolution routine
+ *
+ * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
+ */
+xmlParserInputPtr
+xmlSAX2ResolveEntity(void *ctx, const xmlChar *publicId, const xmlChar *systemId)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlParserInputPtr ret;
+ xmlChar *URI;
+ const char *base = NULL;
+
+ if (ctx == NULL) return(NULL);
+ if (ctxt->input != NULL)
+ base = ctxt->input->filename;
+ if (base == NULL)
+ base = ctxt->directory;
+
+ URI = xmlBuildURI(systemId, (const xmlChar *) base);
+
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2ResolveEntity(%s, %s)\n", publicId, systemId);
+#endif
+
+ ret = xmlLoadExternalEntity((const char *) URI,
+ (const char *) publicId, ctxt);
+ if (URI != NULL)
+ xmlFree(URI);
+ return(ret);
+}
+
+/**
+ * xmlSAX2GetEntity:
+ * @ctx: the user data (XML parser context)
+ * @name: The entity name
+ *
+ * Get an entity by name
+ *
+ * Returns the xmlEntityPtr if found.
+ */
+xmlEntityPtr
+xmlSAX2GetEntity(void *ctx, const xmlChar *name)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlEntityPtr ret = NULL;
+
+ if (ctx == NULL) return(NULL);
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2GetEntity(%s)\n", name);
+#endif
+
+ if (ctxt->inSubset == 0) {
+ ret = xmlGetPredefinedEntity(name);
+ if (ret != NULL)
+ return(ret);
+ }
+ if ((ctxt->myDoc != NULL) && (ctxt->myDoc->standalone == 1)) {
+ if (ctxt->inSubset == 2) {
+ ctxt->myDoc->standalone = 0;
+ ret = xmlGetDocEntity(ctxt->myDoc, name);
+ ctxt->myDoc->standalone = 1;
+ } else {
+ ret = xmlGetDocEntity(ctxt->myDoc, name);
+ if (ret == NULL) {
+ ctxt->myDoc->standalone = 0;
+ ret = xmlGetDocEntity(ctxt->myDoc, name);
+ if (ret != NULL) {
+ xmlFatalErrMsg(ctxt, XML_ERR_NOT_STANDALONE,
+ "Entity(%s) document marked standalone but requires external subset\n",
+ name, NULL);
+ }
+ ctxt->myDoc->standalone = 1;
+ }
+ }
+ } else {
+ ret = xmlGetDocEntity(ctxt->myDoc, name);
+ }
+ if ((ret != NULL) &&
+ ((ctxt->validate) || (ctxt->replaceEntities)) &&
+ (ret->children == NULL) &&
+ (ret->etype == XML_EXTERNAL_GENERAL_PARSED_ENTITY)) {
+ int val;
+
+ /*
+ * for validation purposes we really need to fetch and
+ * parse the external entity
+ */
+ xmlNodePtr children;
+ unsigned long oldnbent = ctxt->nbentities;
+
+ val = xmlParseCtxtExternalEntity(ctxt, ret->URI,
+ ret->ExternalID, &children);
+ if (val == 0) {
+ xmlAddChildList((xmlNodePtr) ret, children);
+ } else {
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_PROCESSING,
+ "Failure to process entity %s\n", name, NULL);
+ ctxt->validate = 0;
+ return(NULL);
+ }
+ ret->owner = 1;
+ if (ret->checked == 0) {
+ ret->checked = (ctxt->nbentities - oldnbent + 1) * 2;
+ if ((ret->content != NULL) && (xmlStrchr(ret->content, '<')))
+ ret->checked |= 1;
+ }
+ }
+ return(ret);
+}
+
+/**
+ * xmlSAX2GetParameterEntity:
+ * @ctx: the user data (XML parser context)
+ * @name: The entity name
+ *
+ * Get a parameter entity by name
+ *
+ * Returns the xmlEntityPtr if found.
+ */
+xmlEntityPtr
+xmlSAX2GetParameterEntity(void *ctx, const xmlChar *name)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlEntityPtr ret;
+
+ if (ctx == NULL) return(NULL);
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2GetParameterEntity(%s)\n", name);
+#endif
+
+ ret = xmlGetParameterEntity(ctxt->myDoc, name);
+ return(ret);
+}
+
+
+/**
+ * xmlSAX2EntityDecl:
+ * @ctx: the user data (XML parser context)
+ * @name: the entity name
+ * @type: the entity type
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ * @content: the entity value (without processing).
+ *
+ * An entity definition has been parsed
+ */
+void
+xmlSAX2EntityDecl(void *ctx, const xmlChar *name, int type,
+ const xmlChar *publicId, const xmlChar *systemId, xmlChar *content)
+{
+ xmlEntityPtr ent;
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+
+ if (ctx == NULL) return;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2EntityDecl(%s, %d, %s, %s, %s)\n",
+ name, type, publicId, systemId, content);
+#endif
+ if (ctxt->inSubset == 1) {
+ ent = xmlAddDocEntity(ctxt->myDoc, name, type, publicId,
+ systemId, content);
+ if ((ent == NULL) && (ctxt->pedantic))
+ xmlWarnMsg(ctxt, XML_WAR_ENTITY_REDEFINED,
+ "Entity(%s) already defined in the internal subset\n",
+ name);
+ if ((ent != NULL) && (ent->URI == NULL) && (systemId != NULL)) {
+ xmlChar *URI;
+ const char *base = NULL;
+
+ if (ctxt->input != NULL)
+ base = ctxt->input->filename;
+ if (base == NULL)
+ base = ctxt->directory;
+
+ URI = xmlBuildURI(systemId, (const xmlChar *) base);
+ ent->URI = URI;
+ }
+ } else if (ctxt->inSubset == 2) {
+ ent = xmlAddDtdEntity(ctxt->myDoc, name, type, publicId,
+ systemId, content);
+ if ((ent == NULL) && (ctxt->pedantic) &&
+ (ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
+ ctxt->sax->warning(ctxt->userData,
+ "Entity(%s) already defined in the external subset\n", name);
+ if ((ent != NULL) && (ent->URI == NULL) && (systemId != NULL)) {
+ xmlChar *URI;
+ const char *base = NULL;
+
+ if (ctxt->input != NULL)
+ base = ctxt->input->filename;
+ if (base == NULL)
+ base = ctxt->directory;
+
+ URI = xmlBuildURI(systemId, (const xmlChar *) base);
+ ent->URI = URI;
+ }
+ } else {
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_PROCESSING,
+ "SAX.xmlSAX2EntityDecl(%s) called while not in subset\n",
+ name, NULL);
+ }
+}
+
+/**
+ * xmlSAX2AttributeDecl:
+ * @ctx: the user data (XML parser context)
+ * @elem: the name of the element
+ * @fullname: the attribute name
+ * @type: the attribute type
+ * @def: the type of default value
+ * @defaultValue: the attribute default value
+ * @tree: the tree of enumerated value set
+ *
+ * An attribute definition has been parsed
+ */
+void
+xmlSAX2AttributeDecl(void *ctx, const xmlChar *elem, const xmlChar *fullname,
+ int type, int def, const xmlChar *defaultValue,
+ xmlEnumerationPtr tree)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlAttributePtr attr;
+ xmlChar *name = NULL, *prefix = NULL;
+
+ if ((ctxt == NULL) || (ctxt->myDoc == NULL))
+ return;
+
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2AttributeDecl(%s, %s, %d, %d, %s, ...)\n",
+ elem, fullname, type, def, defaultValue);
+#endif
+ if ((xmlStrEqual(fullname, BAD_CAST "xml:id")) &&
+ (type != XML_ATTRIBUTE_ID)) {
+ /*
+ * Raise the error but keep the validity flag
+ */
+ int tmp = ctxt->valid;
+ xmlErrValid(ctxt, XML_DTD_XMLID_TYPE,
+ "xml:id : attribute type should be ID\n", NULL, NULL);
+ ctxt->valid = tmp;
+ }
+ /* TODO: optimize name/prefix allocation */
+ name = xmlSplitQName(ctxt, fullname, &prefix);
+ ctxt->vctxt.valid = 1;
+ if (ctxt->inSubset == 1)
+ attr = xmlAddAttributeDecl(&ctxt->vctxt, ctxt->myDoc->intSubset, elem,
+ name, prefix, (xmlAttributeType) type,
+ (xmlAttributeDefault) def, defaultValue, tree);
+ else if (ctxt->inSubset == 2)
+ attr = xmlAddAttributeDecl(&ctxt->vctxt, ctxt->myDoc->extSubset, elem,
+ name, prefix, (xmlAttributeType) type,
+ (xmlAttributeDefault) def, defaultValue, tree);
+ else {
+ xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
+ "SAX.xmlSAX2AttributeDecl(%s) called while not in subset\n",
+ name, NULL);
+ xmlFreeEnumeration(tree);
+ return;
+ }
+#ifdef LIBXML_VALID_ENABLED
+ if (ctxt->vctxt.valid == 0)
+ ctxt->valid = 0;
+ if ((attr != NULL) && (ctxt->validate) && (ctxt->wellFormed) &&
+ (ctxt->myDoc->intSubset != NULL))
+ ctxt->valid &= xmlValidateAttributeDecl(&ctxt->vctxt, ctxt->myDoc,
+ attr);
+#endif /* LIBXML_VALID_ENABLED */
+ if (prefix != NULL)
+ xmlFree(prefix);
+ if (name != NULL)
+ xmlFree(name);
+}
+
+/**
+ * xmlSAX2ElementDecl:
+ * @ctx: the user data (XML parser context)
+ * @name: the element name
+ * @type: the element type
+ * @content: the element value tree
+ *
+ * An element definition has been parsed
+ */
+void
+xmlSAX2ElementDecl(void *ctx, const xmlChar * name, int type,
+ xmlElementContentPtr content)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlElementPtr elem = NULL;
+
+ if ((ctxt == NULL) || (ctxt->myDoc == NULL))
+ return;
+
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2ElementDecl(%s, %d, ...)\n", name, type);
+#endif
+
+ if (ctxt->inSubset == 1)
+ elem = xmlAddElementDecl(&ctxt->vctxt, ctxt->myDoc->intSubset,
+ name, (xmlElementTypeVal) type, content);
+ else if (ctxt->inSubset == 2)
+ elem = xmlAddElementDecl(&ctxt->vctxt, ctxt->myDoc->extSubset,
+ name, (xmlElementTypeVal) type, content);
+ else {
+ xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
+ "SAX.xmlSAX2ElementDecl(%s) called while not in subset\n",
+ name, NULL);
+ return;
+ }
+#ifdef LIBXML_VALID_ENABLED
+ if (elem == NULL)
+ ctxt->valid = 0;
+ if (ctxt->validate && ctxt->wellFormed &&
+ ctxt->myDoc && ctxt->myDoc->intSubset)
+ ctxt->valid &=
+ xmlValidateElementDecl(&ctxt->vctxt, ctxt->myDoc, elem);
+#endif /* LIBXML_VALID_ENABLED */
+}
+
+/**
+ * xmlSAX2NotationDecl:
+ * @ctx: the user data (XML parser context)
+ * @name: The name of the notation
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ *
+ * What to do when a notation declaration has been parsed.
+ */
+void
+xmlSAX2NotationDecl(void *ctx, const xmlChar *name,
+ const xmlChar *publicId, const xmlChar *systemId)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlNotationPtr nota = NULL;
+
+ if ((ctxt == NULL) || (ctxt->myDoc == NULL))
+ return;
+
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2NotationDecl(%s, %s, %s)\n", name, publicId, systemId);
+#endif
+
+ if ((publicId == NULL) && (systemId == NULL)) {
+ xmlFatalErrMsg(ctxt, XML_ERR_NOTATION_PROCESSING,
+ "SAX.xmlSAX2NotationDecl(%s) externalID or PublicID missing\n",
+ name, NULL);
+ return;
+ } else if (ctxt->inSubset == 1)
+ nota = xmlAddNotationDecl(&ctxt->vctxt, ctxt->myDoc->intSubset, name,
+ publicId, systemId);
+ else if (ctxt->inSubset == 2)
+ nota = xmlAddNotationDecl(&ctxt->vctxt, ctxt->myDoc->extSubset, name,
+ publicId, systemId);
+ else {
+ xmlFatalErrMsg(ctxt, XML_ERR_NOTATION_PROCESSING,
+ "SAX.xmlSAX2NotationDecl(%s) called while not in subset\n",
+ name, NULL);
+ return;
+ }
+#ifdef LIBXML_VALID_ENABLED
+ if (nota == NULL) ctxt->valid = 0;
+ if ((ctxt->validate) && (ctxt->wellFormed) &&
+ (ctxt->myDoc->intSubset != NULL))
+ ctxt->valid &= xmlValidateNotationDecl(&ctxt->vctxt, ctxt->myDoc,
+ nota);
+#endif /* LIBXML_VALID_ENABLED */
+}
+
+/**
+ * xmlSAX2UnparsedEntityDecl:
+ * @ctx: the user data (XML parser context)
+ * @name: The name of the entity
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ * @notationName: the name of the notation
+ *
+ * What to do when an unparsed entity declaration is parsed
+ */
+void
+xmlSAX2UnparsedEntityDecl(void *ctx, const xmlChar *name,
+ const xmlChar *publicId, const xmlChar *systemId,
+ const xmlChar *notationName)
+{
+ xmlEntityPtr ent;
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ if (ctx == NULL) return;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2UnparsedEntityDecl(%s, %s, %s, %s)\n",
+ name, publicId, systemId, notationName);
+#endif
+ if (ctxt->inSubset == 1) {
+ ent = xmlAddDocEntity(ctxt->myDoc, name,
+ XML_EXTERNAL_GENERAL_UNPARSED_ENTITY,
+ publicId, systemId, notationName);
+ if ((ent == NULL) && (ctxt->pedantic) &&
+ (ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
+ ctxt->sax->warning(ctxt->userData,
+ "Entity(%s) already defined in the internal subset\n", name);
+ if ((ent != NULL) && (ent->URI == NULL) && (systemId != NULL)) {
+ xmlChar *URI;
+ const char *base = NULL;
+
+ if (ctxt->input != NULL)
+ base = ctxt->input->filename;
+ if (base == NULL)
+ base = ctxt->directory;
+
+ URI = xmlBuildURI(systemId, (const xmlChar *) base);
+ ent->URI = URI;
+ }
+ } else if (ctxt->inSubset == 2) {
+ ent = xmlAddDtdEntity(ctxt->myDoc, name,
+ XML_EXTERNAL_GENERAL_UNPARSED_ENTITY,
+ publicId, systemId, notationName);
+ if ((ent == NULL) && (ctxt->pedantic) &&
+ (ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
+ ctxt->sax->warning(ctxt->userData,
+ "Entity(%s) already defined in the external subset\n", name);
+ if ((ent != NULL) && (ent->URI == NULL) && (systemId != NULL)) {
+ xmlChar *URI;
+ const char *base = NULL;
+
+ if (ctxt->input != NULL)
+ base = ctxt->input->filename;
+ if (base == NULL)
+ base = ctxt->directory;
+
+ URI = xmlBuildURI(systemId, (const xmlChar *) base);
+ ent->URI = URI;
+ }
+ } else {
+ xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
+ "SAX.xmlSAX2UnparsedEntityDecl(%s) called while not in subset\n",
+ name, NULL);
+ }
+}
+
+/**
+ * xmlSAX2SetDocumentLocator:
+ * @ctx: the user data (XML parser context)
+ * @loc: A SAX Locator
+ *
+ * Receive the document locator at startup, actually xmlDefaultSAXLocator
+ * Everything is available on the context, so this is useless in our case.
+ */
+void
+xmlSAX2SetDocumentLocator(void *ctx ATTRIBUTE_UNUSED, xmlSAXLocatorPtr loc ATTRIBUTE_UNUSED)
+{
+ /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2SetDocumentLocator()\n");
+#endif
+}
+
+/**
+ * xmlSAX2StartDocument:
+ * @ctx: the user data (XML parser context)
+ *
+ * called when the document start being processed.
+ */
+void
+xmlSAX2StartDocument(void *ctx)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlDocPtr doc;
+
+ if (ctx == NULL) return;
+
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2StartDocument()\n");
+#endif
+ if (ctxt->html) {
+#ifdef LIBXML_HTML_ENABLED
+ if (ctxt->myDoc == NULL)
+ ctxt->myDoc = htmlNewDocNoDtD(NULL, NULL);
+ if (ctxt->myDoc == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartDocument");
+ return;
+ }
+ ctxt->myDoc->properties = XML_DOC_HTML;
+ ctxt->myDoc->parseFlags = ctxt->options;
+#else
+ xmlGenericError(xmlGenericErrorContext,
+ "libxml2 built without HTML support\n");
+ ctxt->errNo = XML_ERR_INTERNAL_ERROR;
+ ctxt->instate = XML_PARSER_EOF;
+ ctxt->disableSAX = 1;
+ return;
+#endif
+ } else {
+ doc = ctxt->myDoc = xmlNewDoc(ctxt->version);
+ if (doc != NULL) {
+ doc->properties = 0;
+ if (ctxt->options & XML_PARSE_OLD10)
+ doc->properties |= XML_DOC_OLD10;
+ doc->parseFlags = ctxt->options;
+ if (ctxt->encoding != NULL)
+ doc->encoding = xmlStrdup(ctxt->encoding);
+ else
+ doc->encoding = NULL;
+ doc->standalone = ctxt->standalone;
+ } else {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartDocument");
+ return;
+ }
+ if ((ctxt->dictNames) && (doc != NULL)) {
+ doc->dict = ctxt->dict;
+ xmlDictReference(doc->dict);
+ }
+ }
+ if ((ctxt->myDoc != NULL) && (ctxt->myDoc->URL == NULL) &&
+ (ctxt->input != NULL) && (ctxt->input->filename != NULL)) {
+ ctxt->myDoc->URL = xmlPathToURI((const xmlChar *)ctxt->input->filename);
+ if (ctxt->myDoc->URL == NULL)
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartDocument");
+ }
+}
+
+/**
+ * xmlSAX2EndDocument:
+ * @ctx: the user data (XML parser context)
+ *
+ * called when the document end has been detected.
+ */
+void
+xmlSAX2EndDocument(void *ctx)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2EndDocument()\n");
+#endif
+ if (ctx == NULL) return;
+#ifdef LIBXML_VALID_ENABLED
+ if (ctxt->validate && ctxt->wellFormed &&
+ ctxt->myDoc && ctxt->myDoc->intSubset)
+ ctxt->valid &= xmlValidateDocumentFinal(&ctxt->vctxt, ctxt->myDoc);
+#endif /* LIBXML_VALID_ENABLED */
+
+ /*
+ * Grab the encoding if it was added on-the-fly
+ */
+ if ((ctxt->encoding != NULL) && (ctxt->myDoc != NULL) &&
+ (ctxt->myDoc->encoding == NULL)) {
+ ctxt->myDoc->encoding = ctxt->encoding;
+ ctxt->encoding = NULL;
+ }
+ if ((ctxt->inputTab != NULL) &&
+ (ctxt->inputNr > 0) && (ctxt->inputTab[0] != NULL) &&
+ (ctxt->inputTab[0]->encoding != NULL) && (ctxt->myDoc != NULL) &&
+ (ctxt->myDoc->encoding == NULL)) {
+ ctxt->myDoc->encoding = xmlStrdup(ctxt->inputTab[0]->encoding);
+ }
+ if ((ctxt->charset != XML_CHAR_ENCODING_NONE) && (ctxt->myDoc != NULL) &&
+ (ctxt->myDoc->charset == XML_CHAR_ENCODING_NONE)) {
+ ctxt->myDoc->charset = ctxt->charset;
+ }
+}
+
+#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
+/**
+ * xmlSAX2AttributeInternal:
+ * @ctx: the user data (XML parser context)
+ * @fullname: The attribute name, including namespace prefix
+ * @value: The attribute value
+ * @prefix: the prefix on the element node
+ *
+ * Handle an attribute that has been read by the parser.
+ * The default handling is to convert the attribute into an
+ * DOM subtree and past it in a new xmlAttr element added to
+ * the element.
+ */
+static void
+xmlSAX2AttributeInternal(void *ctx, const xmlChar *fullname,
+ const xmlChar *value, const xmlChar *prefix ATTRIBUTE_UNUSED)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlAttrPtr ret;
+ xmlChar *name;
+ xmlChar *ns;
+ xmlChar *nval;
+ xmlNsPtr namespace;
+
+ if (ctxt->html) {
+ name = xmlStrdup(fullname);
+ ns = NULL;
+ namespace = NULL;
+ } else {
+ /*
+ * Split the full name into a namespace prefix and the tag name
+ */
+ name = xmlSplitQName(ctxt, fullname, &ns);
+ if ((name != NULL) && (name[0] == 0)) {
+ if (xmlStrEqual(ns, BAD_CAST "xmlns")) {
+ xmlNsErrMsg(ctxt, XML_ERR_NS_DECL_ERROR,
+ "invalid namespace declaration '%s'\n",
+ fullname, NULL);
+ } else {
+ xmlNsWarnMsg(ctxt, XML_WAR_NS_COLUMN,
+ "Avoid attribute ending with ':' like '%s'\n",
+ fullname, NULL);
+ }
+ if (ns != NULL)
+ xmlFree(ns);
+ ns = NULL;
+ xmlFree(name);
+ name = xmlStrdup(fullname);
+ }
+ }
+ if (name == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
+ if (ns != NULL)
+ xmlFree(ns);
+ return;
+ }
+
+#ifdef LIBXML_HTML_ENABLED
+ if ((ctxt->html) &&
+ (value == NULL) && (htmlIsBooleanAttr(fullname))) {
+ nval = xmlStrdup(fullname);
+ value = (const xmlChar *) nval;
+ } else
+#endif
+ {
+#ifdef LIBXML_VALID_ENABLED
+ /*
+ * Do the last stage of the attribute normalization
+ * Needed for HTML too:
+ * http://www.w3.org/TR/html4/types.html#h-6.2
+ */
+ ctxt->vctxt.valid = 1;
+ nval = xmlValidCtxtNormalizeAttributeValue(&ctxt->vctxt,
+ ctxt->myDoc, ctxt->node,
+ fullname, value);
+ if (ctxt->vctxt.valid != 1) {
+ ctxt->valid = 0;
+ }
+ if (nval != NULL)
+ value = nval;
+#else
+ nval = NULL;
+#endif /* LIBXML_VALID_ENABLED */
+ }
+
+ /*
+ * Check whether it's a namespace definition
+ */
+ if ((!ctxt->html) && (ns == NULL) &&
+ (name[0] == 'x') && (name[1] == 'm') && (name[2] == 'l') &&
+ (name[3] == 'n') && (name[4] == 's') && (name[5] == 0)) {
+ xmlNsPtr nsret;
+ xmlChar *val;
+
+ if (!ctxt->replaceEntities) {
+ ctxt->depth++;
+ val = xmlStringDecodeEntities(ctxt, value, XML_SUBSTITUTE_REF,
+ 0,0,0);
+ ctxt->depth--;
+ if (val == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
+ if (name != NULL)
+ xmlFree(name);
+ if (nval != NULL)
+ xmlFree(nval);
+ return;
+ }
+ } else {
+ val = (xmlChar *) value;
+ }
+
+ if (val[0] != 0) {
+ xmlURIPtr uri;
+
+ uri = xmlParseURI((const char *)val);
+ if (uri == NULL) {
+ if ((ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
+ ctxt->sax->warning(ctxt->userData,
+ "xmlns: %s not a valid URI\n", val);
+ } else {
+ if (uri->scheme == NULL) {
+ if ((ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
+ ctxt->sax->warning(ctxt->userData,
+ "xmlns: URI %s is not absolute\n", val);
+ }
+ xmlFreeURI(uri);
+ }
+ }
+
+ /* a default namespace definition */
+ nsret = xmlNewNs(ctxt->node, val, NULL);
+
+#ifdef LIBXML_VALID_ENABLED
+ /*
+ * Validate also for namespace decls, they are attributes from
+ * an XML-1.0 perspective
+ */
+ if (nsret != NULL && ctxt->validate && ctxt->wellFormed &&
+ ctxt->myDoc && ctxt->myDoc->intSubset)
+ ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc,
+ ctxt->node, prefix, nsret, val);
+#endif /* LIBXML_VALID_ENABLED */
+ if (name != NULL)
+ xmlFree(name);
+ if (nval != NULL)
+ xmlFree(nval);
+ if (val != value)
+ xmlFree(val);
+ return;
+ }
+ if ((!ctxt->html) &&
+ (ns != NULL) && (ns[0] == 'x') && (ns[1] == 'm') && (ns[2] == 'l') &&
+ (ns[3] == 'n') && (ns[4] == 's') && (ns[5] == 0)) {
+ xmlNsPtr nsret;
+ xmlChar *val;
+
+ if (!ctxt->replaceEntities) {
+ ctxt->depth++;
+ val = xmlStringDecodeEntities(ctxt, value, XML_SUBSTITUTE_REF,
+ 0,0,0);
+ ctxt->depth--;
+ if (val == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
+ xmlFree(ns);
+ if (name != NULL)
+ xmlFree(name);
+ if (nval != NULL)
+ xmlFree(nval);
+ return;
+ }
+ } else {
+ val = (xmlChar *) value;
+ }
+
+ if (val[0] == 0) {
+ xmlNsErrMsg(ctxt, XML_NS_ERR_EMPTY,
+ "Empty namespace name for prefix %s\n", name, NULL);
+ }
+ if ((ctxt->pedantic != 0) && (val[0] != 0)) {
+ xmlURIPtr uri;
+
+ uri = xmlParseURI((const char *)val);
+ if (uri == NULL) {
+ xmlNsWarnMsg(ctxt, XML_WAR_NS_URI,
+ "xmlns:%s: %s not a valid URI\n", name, value);
+ } else {
+ if (uri->scheme == NULL) {
+ xmlNsWarnMsg(ctxt, XML_WAR_NS_URI_RELATIVE,
+ "xmlns:%s: URI %s is not absolute\n", name, value);
+ }
+ xmlFreeURI(uri);
+ }
+ }
+
+ /* a standard namespace definition */
+ nsret = xmlNewNs(ctxt->node, val, name);
+ xmlFree(ns);
+#ifdef LIBXML_VALID_ENABLED
+ /*
+ * Validate also for namespace decls, they are attributes from
+ * an XML-1.0 perspective
+ */
+ if (nsret != NULL && ctxt->validate && ctxt->wellFormed &&
+ ctxt->myDoc && ctxt->myDoc->intSubset)
+ ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc,
+ ctxt->node, prefix, nsret, value);
+#endif /* LIBXML_VALID_ENABLED */
+ if (name != NULL)
+ xmlFree(name);
+ if (nval != NULL)
+ xmlFree(nval);
+ if (val != value)
+ xmlFree(val);
+ return;
+ }
+
+ if (ns != NULL) {
+ namespace = xmlSearchNs(ctxt->myDoc, ctxt->node, ns);
+
+ if (namespace == NULL) {
+ xmlNsErrMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
+ "Namespace prefix %s of attribute %s is not defined\n",
+ ns, name);
+ } else {
+ xmlAttrPtr prop;
+
+ prop = ctxt->node->properties;
+ while (prop != NULL) {
+ if (prop->ns != NULL) {
+ if ((xmlStrEqual(name, prop->name)) &&
+ ((namespace == prop->ns) ||
+ (xmlStrEqual(namespace->href, prop->ns->href)))) {
+ xmlNsErrMsg(ctxt, XML_ERR_ATTRIBUTE_REDEFINED,
+ "Attribute %s in %s redefined\n",
+ name, namespace->href);
+ ctxt->wellFormed = 0;
+ if (ctxt->recovery == 0) ctxt->disableSAX = 1;
+ if (name != NULL)
+ xmlFree(name);
+ goto error;
+ }
+ }
+ prop = prop->next;
+ }
+ }
+ } else {
+ namespace = NULL;
+ }
+
+ /* !!!!!! <a toto:arg="" xmlns:toto="http://toto.com"> */
+ ret = xmlNewNsPropEatName(ctxt->node, namespace, name, NULL);
+
+ if (ret != NULL) {
+ if ((ctxt->replaceEntities == 0) && (!ctxt->html)) {
+ xmlNodePtr tmp;
+
+ ret->children = xmlStringGetNodeList(ctxt->myDoc, value);
+ tmp = ret->children;
+ while (tmp != NULL) {
+ tmp->parent = (xmlNodePtr) ret;
+ if (tmp->next == NULL)
+ ret->last = tmp;
+ tmp = tmp->next;
+ }
+ } else if (value != NULL) {
+ ret->children = xmlNewDocText(ctxt->myDoc, value);
+ ret->last = ret->children;
+ if (ret->children != NULL)
+ ret->children->parent = (xmlNodePtr) ret;
+ }
+ }
+
+#ifdef LIBXML_VALID_ENABLED
+ if ((!ctxt->html) && ctxt->validate && ctxt->wellFormed &&
+ ctxt->myDoc && ctxt->myDoc->intSubset) {
+
+ /*
+ * If we don't substitute entities, the validation should be
+ * done on a value with replaced entities anyway.
+ */
+ if (!ctxt->replaceEntities) {
+ xmlChar *val;
+
+ ctxt->depth++;
+ val = xmlStringDecodeEntities(ctxt, value, XML_SUBSTITUTE_REF,
+ 0,0,0);
+ ctxt->depth--;
+
+ if (val == NULL)
+ ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
+ ctxt->myDoc, ctxt->node, ret, value);
+ else {
+ xmlChar *nvalnorm;
+
+ /*
+ * Do the last stage of the attribute normalization
+ * It need to be done twice ... it's an extra burden related
+ * to the ability to keep xmlSAX2References in attributes
+ */
+ nvalnorm = xmlValidNormalizeAttributeValue(ctxt->myDoc,
+ ctxt->node, fullname, val);
+ if (nvalnorm != NULL) {
+ xmlFree(val);
+ val = nvalnorm;
+ }
+
+ ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
+ ctxt->myDoc, ctxt->node, ret, val);
+ xmlFree(val);
+ }
+ } else {
+ ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt, ctxt->myDoc,
+ ctxt->node, ret, value);
+ }
+ } else
+#endif /* LIBXML_VALID_ENABLED */
+ if (((ctxt->loadsubset & XML_SKIP_IDS) == 0) &&
+ (((ctxt->replaceEntities == 0) && (ctxt->external != 2)) ||
+ ((ctxt->replaceEntities != 0) && (ctxt->inSubset == 0)))) {
+ /*
+ * when validating, the ID registration is done at the attribute
+ * validation level. Otherwise we have to do specific handling here.
+ */
+ if (xmlStrEqual(fullname, BAD_CAST "xml:id")) {
+ /*
+ * Add the xml:id value
+ *
+ * Open issue: normalization of the value.
+ */
+ if (xmlValidateNCName(value, 1) != 0) {
+ xmlErrValid(ctxt, XML_DTD_XMLID_VALUE,
+ "xml:id : attribute value %s is not an NCName\n",
+ (const char *) value, NULL);
+ }
+ xmlAddID(&ctxt->vctxt, ctxt->myDoc, value, ret);
+ } else if (xmlIsID(ctxt->myDoc, ctxt->node, ret))
+ xmlAddID(&ctxt->vctxt, ctxt->myDoc, value, ret);
+ else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret))
+ xmlAddRef(&ctxt->vctxt, ctxt->myDoc, value, ret);
+ }
+
+error:
+ if (nval != NULL)
+ xmlFree(nval);
+ if (ns != NULL)
+ xmlFree(ns);
+}
+
+/*
+ * xmlCheckDefaultedAttributes:
+ *
+ * Check defaulted attributes from the DTD
+ */
+static void
+xmlCheckDefaultedAttributes(xmlParserCtxtPtr ctxt, const xmlChar *name,
+ const xmlChar *prefix, const xmlChar **atts) {
+ xmlElementPtr elemDecl;
+ const xmlChar *att;
+ int internal = 1;
+ int i;
+
+ elemDecl = xmlGetDtdQElementDesc(ctxt->myDoc->intSubset, name, prefix);
+ if (elemDecl == NULL) {
+ elemDecl = xmlGetDtdQElementDesc(ctxt->myDoc->extSubset, name, prefix);
+ internal = 0;
+ }
+
+process_external_subset:
+
+ if (elemDecl != NULL) {
+ xmlAttributePtr attr = elemDecl->attributes;
+ /*
+ * Check against defaulted attributes from the external subset
+ * if the document is stamped as standalone
+ */
+ if ((ctxt->myDoc->standalone == 1) &&
+ (ctxt->myDoc->extSubset != NULL) &&
+ (ctxt->validate)) {
+ while (attr != NULL) {
+ if ((attr->defaultValue != NULL) &&
+ (xmlGetDtdQAttrDesc(ctxt->myDoc->extSubset,
+ attr->elem, attr->name,
+ attr->prefix) == attr) &&
+ (xmlGetDtdQAttrDesc(ctxt->myDoc->intSubset,
+ attr->elem, attr->name,
+ attr->prefix) == NULL)) {
+ xmlChar *fulln;
+
+ if (attr->prefix != NULL) {
+ fulln = xmlStrdup(attr->prefix);
+ fulln = xmlStrcat(fulln, BAD_CAST ":");
+ fulln = xmlStrcat(fulln, attr->name);
+ } else {
+ fulln = xmlStrdup(attr->name);
+ }
+ if (fulln == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
+ break;
+ }
+
+ /*
+ * Check that the attribute is not declared in the
+ * serialization
+ */
+ att = NULL;
+ if (atts != NULL) {
+ i = 0;
+ att = atts[i];
+ while (att != NULL) {
+ if (xmlStrEqual(att, fulln))
+ break;
+ i += 2;
+ att = atts[i];
+ }
+ }
+ if (att == NULL) {
+ xmlErrValid(ctxt, XML_DTD_STANDALONE_DEFAULTED,
+ "standalone: attribute %s on %s defaulted from external subset\n",
+ (const char *)fulln,
+ (const char *)attr->elem);
+ }
+ xmlFree(fulln);
+ }
+ attr = attr->nexth;
+ }
+ }
+
+ /*
+ * Actually insert defaulted values when needed
+ */
+ attr = elemDecl->attributes;
+ while (attr != NULL) {
+ /*
+ * Make sure that attributes redefinition occurring in the
+ * internal subset are not overridden by definitions in the
+ * external subset.
+ */
+ if (attr->defaultValue != NULL) {
+ /*
+ * the element should be instantiated in the tree if:
+ * - this is a namespace prefix
+ * - the user required for completion in the tree
+ * like XSLT
+ * - there isn't already an attribute definition
+ * in the internal subset overriding it.
+ */
+ if (((attr->prefix != NULL) &&
+ (xmlStrEqual(attr->prefix, BAD_CAST "xmlns"))) ||
+ ((attr->prefix == NULL) &&
+ (xmlStrEqual(attr->name, BAD_CAST "xmlns"))) ||
+ (ctxt->loadsubset & XML_COMPLETE_ATTRS)) {
+ xmlAttributePtr tst;
+
+ tst = xmlGetDtdQAttrDesc(ctxt->myDoc->intSubset,
+ attr->elem, attr->name,
+ attr->prefix);
+ if ((tst == attr) || (tst == NULL)) {
+ xmlChar fn[50];
+ xmlChar *fulln;
+
+ fulln = xmlBuildQName(attr->name, attr->prefix, fn, 50);
+ if (fulln == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
+ return;
+ }
+
+ /*
+ * Check that the attribute is not declared in the
+ * serialization
+ */
+ att = NULL;
+ if (atts != NULL) {
+ i = 0;
+ att = atts[i];
+ while (att != NULL) {
+ if (xmlStrEqual(att, fulln))
+ break;
+ i += 2;
+ att = atts[i];
+ }
+ }
+ if (att == NULL) {
+ xmlSAX2AttributeInternal(ctxt, fulln,
+ attr->defaultValue, prefix);
+ }
+ if ((fulln != fn) && (fulln != attr->name))
+ xmlFree(fulln);
+ }
+ }
+ }
+ attr = attr->nexth;
+ }
+ if (internal == 1) {
+ elemDecl = xmlGetDtdQElementDesc(ctxt->myDoc->extSubset,
+ name, prefix);
+ internal = 0;
+ goto process_external_subset;
+ }
+ }
+}
+
+/**
+ * xmlSAX2StartElement:
+ * @ctx: the user data (XML parser context)
+ * @fullname: The element name, including namespace prefix
+ * @atts: An array of name/value attributes pairs, NULL terminated
+ *
+ * called when an opening tag has been processed.
+ */
+void
+xmlSAX2StartElement(void *ctx, const xmlChar *fullname, const xmlChar **atts)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlNodePtr ret;
+ xmlNodePtr parent;
+ xmlNsPtr ns;
+ xmlChar *name;
+ xmlChar *prefix;
+ const xmlChar *att;
+ const xmlChar *value;
+ int i;
+
+ if ((ctx == NULL) || (fullname == NULL) || (ctxt->myDoc == NULL)) return;
+ parent = ctxt->node;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2StartElement(%s)\n", fullname);
+#endif
+
+ /*
+ * First check on validity:
+ */
+ if (ctxt->validate && (ctxt->myDoc->extSubset == NULL) &&
+ ((ctxt->myDoc->intSubset == NULL) ||
+ ((ctxt->myDoc->intSubset->notations == NULL) &&
+ (ctxt->myDoc->intSubset->elements == NULL) &&
+ (ctxt->myDoc->intSubset->attributes == NULL) &&
+ (ctxt->myDoc->intSubset->entities == NULL)))) {
+ xmlErrValid(ctxt, XML_ERR_NO_DTD,
+ "Validation failed: no DTD found !", NULL, NULL);
+ ctxt->validate = 0;
+ }
+
+
+ /*
+ * Split the full name into a namespace prefix and the tag name
+ */
+ name = xmlSplitQName(ctxt, fullname, &prefix);
+
+
+ /*
+ * Note : the namespace resolution is deferred until the end of the
+ * attributes parsing, since local namespace can be defined as
+ * an attribute at this level.
+ */
+ ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL, name, NULL);
+ if (ret == NULL) {
+ if (prefix != NULL)
+ xmlFree(prefix);
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
+ return;
+ }
+ if (ctxt->myDoc->children == NULL) {
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext, "Setting %s as root\n", name);
+#endif
+ xmlAddChild((xmlNodePtr) ctxt->myDoc, (xmlNodePtr) ret);
+ } else if (parent == NULL) {
+ parent = ctxt->myDoc->children;
+ }
+ ctxt->nodemem = -1;
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+ ret->line = (short) ctxt->input->line;
+ else
+ ret->line = 65535;
+ }
+ }
+
+ /*
+ * We are parsing a new node.
+ */
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext, "pushing(%s)\n", name);
+#endif
+ if (nodePush(ctxt, ret) < 0) {
+ xmlUnlinkNode(ret);
+ xmlFreeNode(ret);
+ if (prefix != NULL)
+ xmlFree(prefix);
+ return;
+ }
+
+ /*
+ * Link the child element
+ */
+ if (parent != NULL) {
+ if (parent->type == XML_ELEMENT_NODE) {
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "adding child %s to %s\n", name, parent->name);
+#endif
+ xmlAddChild(parent, ret);
+ } else {
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "adding sibling %s to ", name);
+ xmlDebugDumpOneNode(stderr, parent, 0);
+#endif
+ xmlAddSibling(parent, ret);
+ }
+ }
+
+ /*
+ * Insert all the defaulted attributes from the DTD especially namespaces
+ */
+ if ((!ctxt->html) &&
+ ((ctxt->myDoc->intSubset != NULL) ||
+ (ctxt->myDoc->extSubset != NULL))) {
+ xmlCheckDefaultedAttributes(ctxt, name, prefix, atts);
+ }
+
+ /*
+ * process all the attributes whose name start with "xmlns"
+ */
+ if (atts != NULL) {
+ i = 0;
+ att = atts[i++];
+ value = atts[i++];
+ if (!ctxt->html) {
+ while ((att != NULL) && (value != NULL)) {
+ if ((att[0] == 'x') && (att[1] == 'm') && (att[2] == 'l') &&
+ (att[3] == 'n') && (att[4] == 's'))
+ xmlSAX2AttributeInternal(ctxt, att, value, prefix);
+
+ att = atts[i++];
+ value = atts[i++];
+ }
+ }
+ }
+
+ /*
+ * Search the namespace, note that since the attributes have been
+ * processed, the local namespaces are available.
+ */
+ ns = xmlSearchNs(ctxt->myDoc, ret, prefix);
+ if ((ns == NULL) && (parent != NULL))
+ ns = xmlSearchNs(ctxt->myDoc, parent, prefix);
+ if ((prefix != NULL) && (ns == NULL)) {
+ ns = xmlNewNs(ret, NULL, prefix);
+ xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
+ "Namespace prefix %s is not defined\n",
+ prefix, NULL);
+ }
+
+ /*
+ * set the namespace node, making sure that if the default namespace
+ * is unbound on a parent we simply keep it NULL
+ */
+ if ((ns != NULL) && (ns->href != NULL) &&
+ ((ns->href[0] != 0) || (ns->prefix != NULL)))
+ xmlSetNs(ret, ns);
+
+ /*
+ * process all the other attributes
+ */
+ if (atts != NULL) {
+ i = 0;
+ att = atts[i++];
+ value = atts[i++];
+ if (ctxt->html) {
+ while (att != NULL) {
+ xmlSAX2AttributeInternal(ctxt, att, value, NULL);
+ att = atts[i++];
+ value = atts[i++];
+ }
+ } else {
+ while ((att != NULL) && (value != NULL)) {
+ if ((att[0] != 'x') || (att[1] != 'm') || (att[2] != 'l') ||
+ (att[3] != 'n') || (att[4] != 's'))
+ xmlSAX2AttributeInternal(ctxt, att, value, NULL);
+
+ /*
+ * Next ones
+ */
+ att = atts[i++];
+ value = atts[i++];
+ }
+ }
+ }
+
+#ifdef LIBXML_VALID_ENABLED
+ /*
+ * If it's the Document root, finish the DTD validation and
+ * check the document root element for validity
+ */
+ if ((ctxt->validate) && (ctxt->vctxt.finishDtd == XML_CTXT_FINISH_DTD_0)) {
+ int chk;
+
+ chk = xmlValidateDtdFinal(&ctxt->vctxt, ctxt->myDoc);
+ if (chk <= 0)
+ ctxt->valid = 0;
+ if (chk < 0)
+ ctxt->wellFormed = 0;
+ ctxt->valid &= xmlValidateRoot(&ctxt->vctxt, ctxt->myDoc);
+ ctxt->vctxt.finishDtd = XML_CTXT_FINISH_DTD_1;
+ }
+#endif /* LIBXML_VALID_ENABLED */
+
+ if (prefix != NULL)
+ xmlFree(prefix);
+
+}
+
+/**
+ * xmlSAX2EndElement:
+ * @ctx: the user data (XML parser context)
+ * @name: The element name
+ *
+ * called when the end of an element has been detected.
+ */
+void
+xmlSAX2EndElement(void *ctx, const xmlChar *name ATTRIBUTE_UNUSED)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlNodePtr cur;
+
+ if (ctx == NULL) return;
+ cur = ctxt->node;
+#ifdef DEBUG_SAX
+ if (name == NULL)
+ xmlGenericError(xmlGenericErrorContext, "SAX.xmlSAX2EndElement(NULL)\n");
+ else
+ xmlGenericError(xmlGenericErrorContext, "SAX.xmlSAX2EndElement(%s)\n", name);
+#endif
+
+ /* Capture end position and add node */
+ if (cur != NULL && ctxt->record_info) {
+ ctxt->nodeInfo->end_pos = ctxt->input->cur - ctxt->input->base;
+ ctxt->nodeInfo->end_line = ctxt->input->line;
+ ctxt->nodeInfo->node = cur;
+ xmlParserAddNodeInfo(ctxt, ctxt->nodeInfo);
+ }
+ ctxt->nodemem = -1;
+
+#ifdef LIBXML_VALID_ENABLED
+ if (ctxt->validate && ctxt->wellFormed &&
+ ctxt->myDoc && ctxt->myDoc->intSubset)
+ ctxt->valid &= xmlValidateOneElement(&ctxt->vctxt, ctxt->myDoc,
+ cur);
+#endif /* LIBXML_VALID_ENABLED */
+
+
+ /*
+ * end of parsing of this node.
+ */
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext, "popping(%s)\n", cur->name);
+#endif
+ nodePop(ctxt);
+}
+#endif /* LIBXML_SAX1_ENABLED || LIBXML_HTML_ENABLED || LIBXML_LEGACY_ENABLED */
+
+/*
+ * xmlSAX2TextNode:
+ * @ctxt: the parser context
+ * @str: the input string
+ * @len: the string length
+ *
+ * Callback for a text node
+ *
+ * Returns the newly allocated string or NULL if not needed or error
+ */
+static xmlNodePtr
+xmlSAX2TextNode(xmlParserCtxtPtr ctxt, const xmlChar *str, int len) {
+ xmlNodePtr ret;
+ const xmlChar *intern = NULL;
+
+ /*
+ * Allocate
+ */
+ if (ctxt->freeElems != NULL) {
+ ret = ctxt->freeElems;
+ ctxt->freeElems = ret->next;
+ ctxt->freeElemsNr--;
+ } else {
+ ret = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
+ }
+ if (ret == NULL) {
+ xmlErrMemory(ctxt, "xmlSAX2Characters");
+ return(NULL);
+ }
+ memset(ret, 0, sizeof(xmlNode));
+ /*
+ * intern the formatting blanks found between tags, or the
+ * very short strings
+ */
+ if (ctxt->dictNames) {
+ xmlChar cur = str[len];
+
+ if ((len < (int) (2 * sizeof(void *))) &&
+ (ctxt->options & XML_PARSE_COMPACT)) {
+ /* store the string in the node overriding properties and nsDef */
+ xmlChar *tmp = (xmlChar *) &(ret->properties);
+ memcpy(tmp, str, len);
+ tmp[len] = 0;
+ intern = tmp;
+ } else if ((len <= 3) && ((cur == '"') || (cur == '\'') ||
+ ((cur == '<') && (str[len + 1] != '!')))) {
+ intern = xmlDictLookup(ctxt->dict, str, len);
+ } else if (IS_BLANK_CH(*str) && (len < 60) && (cur == '<') &&
+ (str[len + 1] != '!')) {
+ int i;
+
+ for (i = 1;i < len;i++) {
+ if (!IS_BLANK_CH(str[i])) goto skip;
+ }
+ intern = xmlDictLookup(ctxt->dict, str, len);
+ }
+ }
+skip:
+ ret->type = XML_TEXT_NODE;
+
+ ret->name = xmlStringText;
+ if (intern == NULL) {
+ ret->content = xmlStrndup(str, len);
+ if (ret->content == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2TextNode");
+ xmlFree(ret);
+ return(NULL);
+ }
+ } else
+ ret->content = (xmlChar *) intern;
+
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+ ret->line = (short) ctxt->input->line;
+ else {
+ ret->line = 65535;
+ if (ctxt->options & XML_PARSE_BIG_LINES)
+ ret->psvi = (void *) (ptrdiff_t) ctxt->input->line;
+ }
+ }
+ }
+
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ xmlRegisterNodeDefaultValue(ret);
+ return(ret);
+}
+
+#ifdef LIBXML_VALID_ENABLED
+/*
+ * xmlSAX2DecodeAttrEntities:
+ * @ctxt: the parser context
+ * @str: the input string
+ * @len: the string length
+ *
+ * Remove the entities from an attribute value
+ *
+ * Returns the newly allocated string or NULL if not needed or error
+ */
+static xmlChar *
+xmlSAX2DecodeAttrEntities(xmlParserCtxtPtr ctxt, const xmlChar *str,
+ const xmlChar *end) {
+ const xmlChar *in;
+ xmlChar *ret;
+
+ in = str;
+ while (in < end)
+ if (*in++ == '&')
+ goto decode;
+ return(NULL);
+decode:
+ ctxt->depth++;
+ ret = xmlStringLenDecodeEntities(ctxt, str, end - str,
+ XML_SUBSTITUTE_REF, 0,0,0);
+ ctxt->depth--;
+ return(ret);
+}
+#endif /* LIBXML_VALID_ENABLED */
+
+/**
+ * xmlSAX2AttributeNs:
+ * @ctx: the user data (XML parser context)
+ * @localname: the local name of the attribute
+ * @prefix: the attribute namespace prefix if available
+ * @URI: the attribute namespace name if available
+ * @value: Start of the attribute value
+ * @valueend: end of the attribute value
+ *
+ * Handle an attribute that has been read by the parser.
+ * The default handling is to convert the attribute into an
+ * DOM subtree and past it in a new xmlAttr element added to
+ * the element.
+ */
+static void
+xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt,
+ const xmlChar * localname,
+ const xmlChar * prefix,
+ const xmlChar * value,
+ const xmlChar * valueend)
+{
+ xmlAttrPtr ret;
+ xmlNsPtr namespace = NULL;
+ xmlChar *dup = NULL;
+
+ /*
+ * Note: if prefix == NULL, the attribute is not in the default namespace
+ */
+ if (prefix != NULL)
+ namespace = xmlSearchNs(ctxt->myDoc, ctxt->node, prefix);
+
+ /*
+ * allocate the node
+ */
+ if (ctxt->freeAttrs != NULL) {
+ ret = ctxt->freeAttrs;
+ ctxt->freeAttrs = ret->next;
+ ctxt->freeAttrsNr--;
+ memset(ret, 0, sizeof(xmlAttr));
+ ret->type = XML_ATTRIBUTE_NODE;
+
+ ret->parent = ctxt->node;
+ ret->doc = ctxt->myDoc;
+ ret->ns = namespace;
+
+ if (ctxt->dictNames)
+ ret->name = localname;
+ else
+ ret->name = xmlStrdup(localname);
+
+ /* link at the end to preserve order, TODO speed up with a last */
+ if (ctxt->node->properties == NULL) {
+ ctxt->node->properties = ret;
+ } else {
+ xmlAttrPtr prev = ctxt->node->properties;
+
+ while (prev->next != NULL) prev = prev->next;
+ prev->next = ret;
+ ret->prev = prev;
+ }
+
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ xmlRegisterNodeDefaultValue((xmlNodePtr)ret);
+ } else {
+ if (ctxt->dictNames)
+ ret = xmlNewNsPropEatName(ctxt->node, namespace,
+ (xmlChar *) localname, NULL);
+ else
+ ret = xmlNewNsProp(ctxt->node, namespace, localname, NULL);
+ if (ret == NULL) {
+ xmlErrMemory(ctxt, "xmlSAX2AttributeNs");
+ return;
+ }
+ }
+
+ if ((ctxt->replaceEntities == 0) && (!ctxt->html)) {
+ xmlNodePtr tmp;
+
+ /*
+ * We know that if there is an entity reference, then
+ * the string has been dup'ed and terminates with 0
+ * otherwise with ' or "
+ */
+ if (*valueend != 0) {
+ tmp = xmlSAX2TextNode(ctxt, value, valueend - value);
+ ret->children = tmp;
+ ret->last = tmp;
+ if (tmp != NULL) {
+ tmp->doc = ret->doc;
+ tmp->parent = (xmlNodePtr) ret;
+ }
+ } else {
+ ret->children = xmlStringLenGetNodeList(ctxt->myDoc, value,
+ valueend - value);
+ tmp = ret->children;
+ while (tmp != NULL) {
+ tmp->doc = ret->doc;
+ tmp->parent = (xmlNodePtr) ret;
+ if (tmp->next == NULL)
+ ret->last = tmp;
+ tmp = tmp->next;
+ }
+ }
+ } else if (value != NULL) {
+ xmlNodePtr tmp;
+
+ tmp = xmlSAX2TextNode(ctxt, value, valueend - value);
+ ret->children = tmp;
+ ret->last = tmp;
+ if (tmp != NULL) {
+ tmp->doc = ret->doc;
+ tmp->parent = (xmlNodePtr) ret;
+ }
+ }
+
+#ifdef LIBXML_VALID_ENABLED
+ if ((!ctxt->html) && ctxt->validate && ctxt->wellFormed &&
+ ctxt->myDoc && ctxt->myDoc->intSubset) {
+ /*
+ * If we don't substitute entities, the validation should be
+ * done on a value with replaced entities anyway.
+ */
+ if (!ctxt->replaceEntities) {
+ dup = xmlSAX2DecodeAttrEntities(ctxt, value, valueend);
+ if (dup == NULL) {
+ if (*valueend == 0) {
+ ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
+ ctxt->myDoc, ctxt->node, ret, value);
+ } else {
+ /*
+ * That should already be normalized.
+ * cheaper to finally allocate here than duplicate
+ * entry points in the full validation code
+ */
+ dup = xmlStrndup(value, valueend - value);
+
+ ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
+ ctxt->myDoc, ctxt->node, ret, dup);
+ }
+ } else {
+ /*
+ * dup now contains a string of the flattened attribute
+ * content with entities substituted. Check if we need to
+ * apply an extra layer of normalization.
+ * It need to be done twice ... it's an extra burden related
+ * to the ability to keep references in attributes
+ */
+ if (ctxt->attsSpecial != NULL) {
+ xmlChar *nvalnorm;
+ xmlChar fn[50];
+ xmlChar *fullname;
+
+ fullname = xmlBuildQName(localname, prefix, fn, 50);
+ if (fullname != NULL) {
+ ctxt->vctxt.valid = 1;
+ nvalnorm = xmlValidCtxtNormalizeAttributeValue(
+ &ctxt->vctxt, ctxt->myDoc,
+ ctxt->node, fullname, dup);
+ if (ctxt->vctxt.valid != 1)
+ ctxt->valid = 0;
+
+ if ((fullname != fn) && (fullname != localname))
+ xmlFree(fullname);
+ if (nvalnorm != NULL) {
+ xmlFree(dup);
+ dup = nvalnorm;
+ }
+ }
+ }
+
+ ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
+ ctxt->myDoc, ctxt->node, ret, dup);
+ }
+ } else {
+ /*
+ * if entities already have been substituted, then
+ * the attribute as passed is already normalized
+ */
+ dup = xmlStrndup(value, valueend - value);
+
+ ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
+ ctxt->myDoc, ctxt->node, ret, dup);
+ }
+ } else
+#endif /* LIBXML_VALID_ENABLED */
+ if (((ctxt->loadsubset & XML_SKIP_IDS) == 0) &&
+ (((ctxt->replaceEntities == 0) && (ctxt->external != 2)) ||
+ ((ctxt->replaceEntities != 0) && (ctxt->inSubset == 0)))) {
+ /*
+ * when validating, the ID registration is done at the attribute
+ * validation level. Otherwise we have to do specific handling here.
+ */
+ if ((prefix == ctxt->str_xml) &&
+ (localname[0] == 'i') && (localname[1] == 'd') &&
+ (localname[2] == 0)) {
+ /*
+ * Add the xml:id value
+ *
+ * Open issue: normalization of the value.
+ */
+ if (dup == NULL)
+ dup = xmlStrndup(value, valueend - value);
+#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
+#ifdef LIBXML_VALID_ENABLED
+ if (xmlValidateNCName(dup, 1) != 0) {
+ xmlErrValid(ctxt, XML_DTD_XMLID_VALUE,
+ "xml:id : attribute value %s is not an NCName\n",
+ (const char *) dup, NULL);
+ }
+#endif
+#endif
+ xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret);
+ } else if (xmlIsID(ctxt->myDoc, ctxt->node, ret)) {
+ /* might be worth duplicate entry points and not copy */
+ if (dup == NULL)
+ dup = xmlStrndup(value, valueend - value);
+ xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret);
+ } else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret)) {
+ if (dup == NULL)
+ dup = xmlStrndup(value, valueend - value);
+ xmlAddRef(&ctxt->vctxt, ctxt->myDoc, dup, ret);
+ }
+ }
+ if (dup != NULL)
+ xmlFree(dup);
+}
+
+/**
+ * xmlSAX2StartElementNs:
+ * @ctx: the user data (XML parser context)
+ * @localname: the local name of the element
+ * @prefix: the element namespace prefix if available
+ * @URI: the element namespace name if available
+ * @nb_namespaces: number of namespace definitions on that node
+ * @namespaces: pointer to the array of prefix/URI pairs namespace definitions
+ * @nb_attributes: the number of attributes on that node
+ * @nb_defaulted: the number of defaulted attributes.
+ * @attributes: pointer to the array of (localname/prefix/URI/value/end)
+ * attribute values.
+ *
+ * SAX2 callback when an element start has been detected by the parser.
+ * It provides the namespace informations for the element, as well as
+ * the new namespace declarations on the element.
+ */
+void
+xmlSAX2StartElementNs(void *ctx,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *URI,
+ int nb_namespaces,
+ const xmlChar **namespaces,
+ int nb_attributes,
+ int nb_defaulted,
+ const xmlChar **attributes)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlNodePtr ret;
+ xmlNodePtr parent;
+ xmlNsPtr last = NULL, ns;
+ const xmlChar *uri, *pref;
+ xmlChar *lname = NULL;
+ int i, j;
+
+ if (ctx == NULL) return;
+ parent = ctxt->node;
+ /*
+ * First check on validity:
+ */
+ if (ctxt->validate && (ctxt->myDoc->extSubset == NULL) &&
+ ((ctxt->myDoc->intSubset == NULL) ||
+ ((ctxt->myDoc->intSubset->notations == NULL) &&
+ (ctxt->myDoc->intSubset->elements == NULL) &&
+ (ctxt->myDoc->intSubset->attributes == NULL) &&
+ (ctxt->myDoc->intSubset->entities == NULL)))) {
+ xmlErrValid(ctxt, XML_DTD_NO_DTD,
+ "Validation failed: no DTD found !", NULL, NULL);
+ ctxt->validate = 0;
+ }
+
+ /*
+ * Take care of the rare case of an undefined namespace prefix
+ */
+ if ((prefix != NULL) && (URI == NULL)) {
+ if (ctxt->dictNames) {
+ const xmlChar *fullname;
+
+ fullname = xmlDictQLookup(ctxt->dict, prefix, localname);
+ if (fullname != NULL)
+ localname = fullname;
+ } else {
+ lname = xmlBuildQName(localname, prefix, NULL, 0);
+ }
+ }
+ /*
+ * allocate the node
+ */
+ if (ctxt->freeElems != NULL) {
+ ret = ctxt->freeElems;
+ ctxt->freeElems = ret->next;
+ ctxt->freeElemsNr--;
+ memset(ret, 0, sizeof(xmlNode));
+ ret->doc = ctxt->myDoc;
+ ret->type = XML_ELEMENT_NODE;
+
+ if (ctxt->dictNames)
+ ret->name = localname;
+ else {
+ if (lname == NULL)
+ ret->name = xmlStrdup(localname);
+ else
+ ret->name = lname;
+ if (ret->name == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs");
+ return;
+ }
+ }
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ xmlRegisterNodeDefaultValue(ret);
+ } else {
+ if (ctxt->dictNames)
+ ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL,
+ (xmlChar *) localname, NULL);
+ else if (lname == NULL)
+ ret = xmlNewDocNode(ctxt->myDoc, NULL, localname, NULL);
+ else
+ ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL,
+ (xmlChar *) lname, NULL);
+ if (ret == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs");
+ return;
+ }
+ }
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+ ret->line = (short) ctxt->input->line;
+ else
+ ret->line = 65535;
+ }
+ }
+
+ if (parent == NULL) {
+ xmlAddChild((xmlNodePtr) ctxt->myDoc, (xmlNodePtr) ret);
+ }
+ /*
+ * Build the namespace list
+ */
+ for (i = 0,j = 0;j < nb_namespaces;j++) {
+ pref = namespaces[i++];
+ uri = namespaces[i++];
+ ns = xmlNewNs(NULL, uri, pref);
+ if (ns != NULL) {
+ if (last == NULL) {
+ ret->nsDef = last = ns;
+ } else {
+ last->next = ns;
+ last = ns;
+ }
+ if ((URI != NULL) && (prefix == pref))
+ ret->ns = ns;
+ } else {
+ /*
+ * any out of memory error would already have been raised
+ * but we can't be guaranteed it's the actual error due to the
+ * API, best is to skip in this case
+ */
+ continue;
+ }
+#ifdef LIBXML_VALID_ENABLED
+ if ((!ctxt->html) && ctxt->validate && ctxt->wellFormed &&
+ ctxt->myDoc && ctxt->myDoc->intSubset) {
+ ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc,
+ ret, prefix, ns, uri);
+ }
+#endif /* LIBXML_VALID_ENABLED */
+ }
+ ctxt->nodemem = -1;
+
+ /*
+ * We are parsing a new node.
+ */
+ if (nodePush(ctxt, ret) < 0) {
+ xmlUnlinkNode(ret);
+ xmlFreeNode(ret);
+ return;
+ }
+
+ /*
+ * Link the child element
+ */
+ if (parent != NULL) {
+ if (parent->type == XML_ELEMENT_NODE) {
+ xmlAddChild(parent, ret);
+ } else {
+ xmlAddSibling(parent, ret);
+ }
+ }
+
+ /*
+ * Insert the defaulted attributes from the DTD only if requested:
+ */
+ if ((nb_defaulted != 0) &&
+ ((ctxt->loadsubset & XML_COMPLETE_ATTRS) == 0))
+ nb_attributes -= nb_defaulted;
+
+ /*
+ * Search the namespace if it wasn't already found
+ * Note that, if prefix is NULL, this searches for the default Ns
+ */
+ if ((URI != NULL) && (ret->ns == NULL)) {
+ ret->ns = xmlSearchNs(ctxt->myDoc, parent, prefix);
+ if ((ret->ns == NULL) && (xmlStrEqual(prefix, BAD_CAST "xml"))) {
+ ret->ns = xmlSearchNs(ctxt->myDoc, ret, prefix);
+ }
+ if (ret->ns == NULL) {
+ ns = xmlNewNs(ret, NULL, prefix);
+ if (ns == NULL) {
+
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs");
+ return;
+ }
+ if (prefix != NULL)
+ xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
+ "Namespace prefix %s was not found\n",
+ prefix, NULL);
+ else
+ xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
+ "Namespace default prefix was not found\n",
+ NULL, NULL);
+ }
+ }
+
+ /*
+ * process all the other attributes
+ */
+ if (nb_attributes > 0) {
+ for (j = 0,i = 0;i < nb_attributes;i++,j+=5) {
+ /*
+ * Handle the rare case of an undefined attribute prefix
+ */
+ if ((attributes[j+1] != NULL) && (attributes[j+2] == NULL)) {
+ if (ctxt->dictNames) {
+ const xmlChar *fullname;
+
+ fullname = xmlDictQLookup(ctxt->dict, attributes[j+1],
+ attributes[j]);
+ if (fullname != NULL) {
+ xmlSAX2AttributeNs(ctxt, fullname, NULL,
+ attributes[j+3], attributes[j+4]);
+ continue;
+ }
+ } else {
+ lname = xmlBuildQName(attributes[j], attributes[j+1],
+ NULL, 0);
+ if (lname != NULL) {
+ xmlSAX2AttributeNs(ctxt, lname, NULL,
+ attributes[j+3], attributes[j+4]);
+ xmlFree(lname);
+ continue;
+ }
+ }
+ }
+ xmlSAX2AttributeNs(ctxt, attributes[j], attributes[j+1],
+ attributes[j+3], attributes[j+4]);
+ }
+ }
+
+#ifdef LIBXML_VALID_ENABLED
+ /*
+ * If it's the Document root, finish the DTD validation and
+ * check the document root element for validity
+ */
+ if ((ctxt->validate) && (ctxt->vctxt.finishDtd == XML_CTXT_FINISH_DTD_0)) {
+ int chk;
+
+ chk = xmlValidateDtdFinal(&ctxt->vctxt, ctxt->myDoc);
+ if (chk <= 0)
+ ctxt->valid = 0;
+ if (chk < 0)
+ ctxt->wellFormed = 0;
+ ctxt->valid &= xmlValidateRoot(&ctxt->vctxt, ctxt->myDoc);
+ ctxt->vctxt.finishDtd = XML_CTXT_FINISH_DTD_1;
+ }
+#endif /* LIBXML_VALID_ENABLED */
+}
+
+/**
+ * xmlSAX2EndElementNs:
+ * @ctx: the user data (XML parser context)
+ * @localname: the local name of the element
+ * @prefix: the element namespace prefix if available
+ * @URI: the element namespace name if available
+ *
+ * SAX2 callback when an element end has been detected by the parser.
+ * It provides the namespace informations for the element.
+ */
+void
+xmlSAX2EndElementNs(void *ctx,
+ const xmlChar * localname ATTRIBUTE_UNUSED,
+ const xmlChar * prefix ATTRIBUTE_UNUSED,
+ const xmlChar * URI ATTRIBUTE_UNUSED)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlParserNodeInfo node_info;
+ xmlNodePtr cur;
+
+ if (ctx == NULL) return;
+ cur = ctxt->node;
+ /* Capture end position and add node */
+ if ((ctxt->record_info) && (cur != NULL)) {
+ node_info.end_pos = ctxt->input->cur - ctxt->input->base;
+ node_info.end_line = ctxt->input->line;
+ node_info.node = cur;
+ xmlParserAddNodeInfo(ctxt, &node_info);
+ }
+ ctxt->nodemem = -1;
+
+#ifdef LIBXML_VALID_ENABLED
+ if (ctxt->validate && ctxt->wellFormed &&
+ ctxt->myDoc && ctxt->myDoc->intSubset)
+ ctxt->valid &= xmlValidateOneElement(&ctxt->vctxt, ctxt->myDoc, cur);
+#endif /* LIBXML_VALID_ENABLED */
+
+ /*
+ * end of parsing of this node.
+ */
+ nodePop(ctxt);
+}
+
+/**
+ * xmlSAX2Reference:
+ * @ctx: the user data (XML parser context)
+ * @name: The entity name
+ *
+ * called when an entity xmlSAX2Reference is detected.
+ */
+void
+xmlSAX2Reference(void *ctx, const xmlChar *name)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlNodePtr ret;
+
+ if (ctx == NULL) return;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2Reference(%s)\n", name);
+#endif
+ if (name[0] == '#')
+ ret = xmlNewCharRef(ctxt->myDoc, name);
+ else
+ ret = xmlNewReference(ctxt->myDoc, name);
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "add xmlSAX2Reference %s to %s \n", name, ctxt->node->name);
+#endif
+ if (xmlAddChild(ctxt->node, ret) == NULL) {
+ xmlFreeNode(ret);
+ }
+}
+
+/**
+ * xmlSAX2Characters:
+ * @ctx: the user data (XML parser context)
+ * @ch: a xmlChar string
+ * @len: the number of xmlChar
+ *
+ * receiving some chars from the parser.
+ */
+void
+xmlSAX2Characters(void *ctx, const xmlChar *ch, int len)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlNodePtr lastChild;
+
+ if (ctx == NULL) return;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2Characters(%.30s, %d)\n", ch, len);
+#endif
+ /*
+ * Handle the data if any. If there is no child
+ * add it as content, otherwise if the last child is text,
+ * concatenate it, else create a new node of type text.
+ */
+
+ if (ctxt->node == NULL) {
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "add chars: ctxt->node == NULL !\n");
+#endif
+ return;
+ }
+ lastChild = ctxt->node->last;
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "add chars to %s \n", ctxt->node->name);
+#endif
+
+ /*
+ * Here we needed an accelerator mechanism in case of very large
+ * elements. Use an attribute in the structure !!!
+ */
+ if (lastChild == NULL) {
+ lastChild = xmlSAX2TextNode(ctxt, ch, len);
+ if (lastChild != NULL) {
+ ctxt->node->children = lastChild;
+ ctxt->node->last = lastChild;
+ lastChild->parent = ctxt->node;
+ lastChild->doc = ctxt->node->doc;
+ ctxt->nodelen = len;
+ ctxt->nodemem = len + 1;
+ } else {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters");
+ return;
+ }
+ } else {
+ int coalesceText = (lastChild != NULL) &&
+ (lastChild->type == XML_TEXT_NODE) &&
+ (lastChild->name == xmlStringText);
+ if ((coalesceText) && (ctxt->nodemem != 0)) {
+ /*
+ * The whole point of maintaining nodelen and nodemem,
+ * xmlTextConcat is too costly, i.e. compute length,
+ * reallocate a new buffer, move data, append ch. Here
+ * We try to minimize realloc() uses and avoid copying
+ * and recomputing length over and over.
+ */
+ if (lastChild->content == (xmlChar *)&(lastChild->properties)) {
+ lastChild->content = xmlStrdup(lastChild->content);
+ lastChild->properties = NULL;
+ } else if ((ctxt->nodemem == ctxt->nodelen + 1) &&
+ (xmlDictOwns(ctxt->dict, lastChild->content))) {
+ lastChild->content = xmlStrdup(lastChild->content);
+ }
+ if (lastChild->content == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters: xmlStrdup returned NULL");
+ return;
+ }
+ if (((size_t)ctxt->nodelen + (size_t)len > XML_MAX_TEXT_LENGTH) &&
+ ((ctxt->options & XML_PARSE_HUGE) == 0)) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters: huge text node");
+ return;
+ }
+ if ((size_t)ctxt->nodelen > SIZE_T_MAX - (size_t)len ||
+ (size_t)ctxt->nodemem + (size_t)len > SIZE_T_MAX / 2) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters overflow prevented");
+ return;
+ }
+ if (ctxt->nodelen + len >= ctxt->nodemem) {
+ xmlChar *newbuf;
+ size_t size;
+
+ size = ctxt->nodemem + len;
+ size *= 2;
+ newbuf = (xmlChar *) xmlRealloc(lastChild->content,size);
+ if (newbuf == NULL) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters");
+ return;
+ }
+ ctxt->nodemem = size;
+ lastChild->content = newbuf;
+ }
+ memcpy(&lastChild->content[ctxt->nodelen], ch, len);
+ ctxt->nodelen += len;
+ lastChild->content[ctxt->nodelen] = 0;
+ } else if (coalesceText) {
+ if (xmlTextConcat(lastChild, ch, len)) {
+ xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters");
+ }
+ if (ctxt->node->children != NULL) {
+ ctxt->nodelen = xmlStrlen(lastChild->content);
+ ctxt->nodemem = ctxt->nodelen + 1;
+ }
+ } else {
+ /* Mixed content, first time */
+ lastChild = xmlSAX2TextNode(ctxt, ch, len);
+ if (lastChild != NULL) {
+ xmlAddChild(ctxt->node, lastChild);
+ if (ctxt->node->children != NULL) {
+ ctxt->nodelen = len;
+ ctxt->nodemem = len + 1;
+ }
+ }
+ }
+ }
+}
+
+/**
+ * xmlSAX2IgnorableWhitespace:
+ * @ctx: the user data (XML parser context)
+ * @ch: a xmlChar string
+ * @len: the number of xmlChar
+ *
+ * receiving some ignorable whitespaces from the parser.
+ * UNUSED: by default the DOM building will use xmlSAX2Characters
+ */
+void
+xmlSAX2IgnorableWhitespace(void *ctx ATTRIBUTE_UNUSED, const xmlChar *ch ATTRIBUTE_UNUSED, int len ATTRIBUTE_UNUSED)
+{
+ /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2IgnorableWhitespace(%.30s, %d)\n", ch, len);
+#endif
+}
+
+/**
+ * xmlSAX2ProcessingInstruction:
+ * @ctx: the user data (XML parser context)
+ * @target: the target name
+ * @data: the PI data's
+ *
+ * A processing instruction has been parsed.
+ */
+void
+xmlSAX2ProcessingInstruction(void *ctx, const xmlChar *target,
+ const xmlChar *data)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlNodePtr ret;
+ xmlNodePtr parent;
+
+ if (ctx == NULL) return;
+ parent = ctxt->node;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.xmlSAX2ProcessingInstruction(%s, %s)\n", target, data);
+#endif
+
+ ret = xmlNewDocPI(ctxt->myDoc, target, data);
+ if (ret == NULL) return;
+
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+ ret->line = (short) ctxt->input->line;
+ else
+ ret->line = 65535;
+ }
+ }
+ if (ctxt->inSubset == 1) {
+ xmlAddChild((xmlNodePtr) ctxt->myDoc->intSubset, ret);
+ return;
+ } else if (ctxt->inSubset == 2) {
+ xmlAddChild((xmlNodePtr) ctxt->myDoc->extSubset, ret);
+ return;
+ }
+ if (parent == NULL) {
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "Setting PI %s as root\n", target);
+#endif
+ xmlAddChild((xmlNodePtr) ctxt->myDoc, (xmlNodePtr) ret);
+ return;
+ }
+ if (parent->type == XML_ELEMENT_NODE) {
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "adding PI %s child to %s\n", target, parent->name);
+#endif
+ xmlAddChild(parent, ret);
+ } else {
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "adding PI %s sibling to ", target);
+ xmlDebugDumpOneNode(stderr, parent, 0);
+#endif
+ xmlAddSibling(parent, ret);
+ }
+}
+
+/**
+ * xmlSAX2Comment:
+ * @ctx: the user data (XML parser context)
+ * @value: the xmlSAX2Comment content
+ *
+ * A xmlSAX2Comment has been parsed.
+ */
+void
+xmlSAX2Comment(void *ctx, const xmlChar *value)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlNodePtr ret;
+ xmlNodePtr parent;
+
+ if (ctx == NULL) return;
+ parent = ctxt->node;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext, "SAX.xmlSAX2Comment(%s)\n", value);
+#endif
+ ret = xmlNewDocComment(ctxt->myDoc, value);
+ if (ret == NULL) return;
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+ ret->line = (short) ctxt->input->line;
+ else
+ ret->line = 65535;
+ }
+ }
+
+ if (ctxt->inSubset == 1) {
+ xmlAddChild((xmlNodePtr) ctxt->myDoc->intSubset, ret);
+ return;
+ } else if (ctxt->inSubset == 2) {
+ xmlAddChild((xmlNodePtr) ctxt->myDoc->extSubset, ret);
+ return;
+ }
+ if (parent == NULL) {
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "Setting xmlSAX2Comment as root\n");
+#endif
+ xmlAddChild((xmlNodePtr) ctxt->myDoc, (xmlNodePtr) ret);
+ return;
+ }
+ if (parent->type == XML_ELEMENT_NODE) {
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "adding xmlSAX2Comment child to %s\n", parent->name);
+#endif
+ xmlAddChild(parent, ret);
+ } else {
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "adding xmlSAX2Comment sibling to ");
+ xmlDebugDumpOneNode(stderr, parent, 0);
+#endif
+ xmlAddSibling(parent, ret);
+ }
+}
+
+/**
+ * xmlSAX2CDataBlock:
+ * @ctx: the user data (XML parser context)
+ * @value: The pcdata content
+ * @len: the block length
+ *
+ * called when a pcdata block has been parsed
+ */
+void
+xmlSAX2CDataBlock(void *ctx, const xmlChar *value, int len)
+{
+ xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ xmlNodePtr ret, lastChild;
+
+ if (ctx == NULL) return;
+#ifdef DEBUG_SAX
+ xmlGenericError(xmlGenericErrorContext,
+ "SAX.pcdata(%.10s, %d)\n", value, len);
+#endif
+ lastChild = xmlGetLastChild(ctxt->node);
+#ifdef DEBUG_SAX_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "add chars to %s \n", ctxt->node->name);
+#endif
+ if ((lastChild != NULL) &&
+ (lastChild->type == XML_CDATA_SECTION_NODE)) {
+ xmlTextConcat(lastChild, value, len);
+ } else {
+ ret = xmlNewCDataBlock(ctxt->myDoc, value, len);
+ if (xmlAddChild(ctxt->node, ret) == NULL)
+ xmlFreeNode(ret);
+ }
+}
+
+static int xmlSAX2DefaultVersionValue = 2;
+
+#ifdef LIBXML_SAX1_ENABLED
+/**
+ * xmlSAXDefaultVersion:
+ * @version: the version, 1 or 2
+ *
+ * Set the default version of SAX used globally by the library.
+ * By default, during initialization the default is set to 2.
+ * Note that it is generally a better coding style to use
+ * xmlSAXVersion() to set up the version explicitly for a given
+ * parsing context.
+ *
+ * Returns the previous value in case of success and -1 in case of error.
+ */
+int
+xmlSAXDefaultVersion(int version)
+{
+ int ret = xmlSAX2DefaultVersionValue;
+
+ if ((version != 1) && (version != 2))
+ return(-1);
+ xmlSAX2DefaultVersionValue = version;
+ return(ret);
+}
+#endif /* LIBXML_SAX1_ENABLED */
+
+/**
+ * xmlSAXVersion:
+ * @hdlr: the SAX handler
+ * @version: the version, 1 or 2
+ *
+ * Initialize the default XML SAX handler according to the version
+ *
+ * Returns 0 in case of success and -1 in case of error.
+ */
+int
+xmlSAXVersion(xmlSAXHandler *hdlr, int version)
+{
+ if (hdlr == NULL) return(-1);
+ if (version == 2) {
+ hdlr->startElement = NULL;
+ hdlr->endElement = NULL;
+ hdlr->startElementNs = xmlSAX2StartElementNs;
+ hdlr->endElementNs = xmlSAX2EndElementNs;
+ hdlr->serror = NULL;
+ hdlr->initialized = XML_SAX2_MAGIC;
+#ifdef LIBXML_SAX1_ENABLED
+ } else if (version == 1) {
+ hdlr->startElement = xmlSAX2StartElement;
+ hdlr->endElement = xmlSAX2EndElement;
+ hdlr->initialized = 1;
+#endif /* LIBXML_SAX1_ENABLED */
+ } else
+ return(-1);
+ hdlr->internalSubset = xmlSAX2InternalSubset;
+ hdlr->externalSubset = xmlSAX2ExternalSubset;
+ hdlr->isStandalone = xmlSAX2IsStandalone;
+ hdlr->hasInternalSubset = xmlSAX2HasInternalSubset;
+ hdlr->hasExternalSubset = xmlSAX2HasExternalSubset;
+ hdlr->resolveEntity = xmlSAX2ResolveEntity;
+ hdlr->getEntity = xmlSAX2GetEntity;
+ hdlr->getParameterEntity = xmlSAX2GetParameterEntity;
+ hdlr->entityDecl = xmlSAX2EntityDecl;
+ hdlr->attributeDecl = xmlSAX2AttributeDecl;
+ hdlr->elementDecl = xmlSAX2ElementDecl;
+ hdlr->notationDecl = xmlSAX2NotationDecl;
+ hdlr->unparsedEntityDecl = xmlSAX2UnparsedEntityDecl;
+ hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
+ hdlr->startDocument = xmlSAX2StartDocument;
+ hdlr->endDocument = xmlSAX2EndDocument;
+ hdlr->reference = xmlSAX2Reference;
+ hdlr->characters = xmlSAX2Characters;
+ hdlr->cdataBlock = xmlSAX2CDataBlock;
+ hdlr->ignorableWhitespace = xmlSAX2Characters;
+ hdlr->processingInstruction = xmlSAX2ProcessingInstruction;
+ hdlr->comment = xmlSAX2Comment;
+ hdlr->warning = xmlParserWarning;
+ hdlr->error = xmlParserError;
+ hdlr->fatalError = xmlParserError;
+
+ return(0);
+}
+
+/**
+ * xmlSAX2InitDefaultSAXHandler:
+ * @hdlr: the SAX handler
+ * @warning: flag if non-zero sets the handler warning procedure
+ *
+ * Initialize the default XML SAX2 handler
+ */
+void
+xmlSAX2InitDefaultSAXHandler(xmlSAXHandler *hdlr, int warning)
+{
+ if ((hdlr == NULL) || (hdlr->initialized != 0))
+ return;
+
+ xmlSAXVersion(hdlr, xmlSAX2DefaultVersionValue);
+ if (warning == 0)
+ hdlr->warning = NULL;
+ else
+ hdlr->warning = xmlParserWarning;
+}
+
+/**
+ * xmlDefaultSAXHandlerInit:
+ *
+ * Initialize the default SAX2 handler
+ */
+void
+xmlDefaultSAXHandlerInit(void)
+{
+#ifdef LIBXML_SAX1_ENABLED
+ xmlSAXVersion((xmlSAXHandlerPtr) &xmlDefaultSAXHandler, 1);
+#endif /* LIBXML_SAX1_ENABLED */
+}
+
+#ifdef LIBXML_HTML_ENABLED
+
+/**
+ * xmlSAX2InitHtmlDefaultSAXHandler:
+ * @hdlr: the SAX handler
+ *
+ * Initialize the default HTML SAX2 handler
+ */
+void
+xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr)
+{
+ if ((hdlr == NULL) || (hdlr->initialized != 0))
+ return;
+
+ hdlr->internalSubset = xmlSAX2InternalSubset;
+ hdlr->externalSubset = NULL;
+ hdlr->isStandalone = NULL;
+ hdlr->hasInternalSubset = NULL;
+ hdlr->hasExternalSubset = NULL;
+ hdlr->resolveEntity = NULL;
+ hdlr->getEntity = xmlSAX2GetEntity;
+ hdlr->getParameterEntity = NULL;
+ hdlr->entityDecl = NULL;
+ hdlr->attributeDecl = NULL;
+ hdlr->elementDecl = NULL;
+ hdlr->notationDecl = NULL;
+ hdlr->unparsedEntityDecl = NULL;
+ hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
+ hdlr->startDocument = xmlSAX2StartDocument;
+ hdlr->endDocument = xmlSAX2EndDocument;
+ hdlr->startElement = xmlSAX2StartElement;
+ hdlr->endElement = xmlSAX2EndElement;
+ hdlr->reference = NULL;
+ hdlr->characters = xmlSAX2Characters;
+ hdlr->cdataBlock = xmlSAX2CDataBlock;
+ hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
+ hdlr->processingInstruction = xmlSAX2ProcessingInstruction;
+ hdlr->comment = xmlSAX2Comment;
+ hdlr->warning = xmlParserWarning;
+ hdlr->error = xmlParserError;
+ hdlr->fatalError = xmlParserError;
+
+ hdlr->initialized = 1;
+}
+
+/**
+ * htmlDefaultSAXHandlerInit:
+ *
+ * Initialize the default SAX handler
+ */
+void
+htmlDefaultSAXHandlerInit(void)
+{
+ xmlSAX2InitHtmlDefaultSAXHandler((xmlSAXHandlerPtr) &htmlDefaultSAXHandler);
+}
+
+#endif /* LIBXML_HTML_ENABLED */
+
+#ifdef LIBXML_DOCB_ENABLED
+
+/**
+ * xmlSAX2InitDocbDefaultSAXHandler:
+ * @hdlr: the SAX handler
+ *
+ * Initialize the default DocBook SAX2 handler
+ */
+void
+xmlSAX2InitDocbDefaultSAXHandler(xmlSAXHandler *hdlr)
+{
+ if ((hdlr == NULL) || (hdlr->initialized != 0))
+ return;
+
+ hdlr->internalSubset = xmlSAX2InternalSubset;
+ hdlr->externalSubset = NULL;
+ hdlr->isStandalone = xmlSAX2IsStandalone;
+ hdlr->hasInternalSubset = xmlSAX2HasInternalSubset;
+ hdlr->hasExternalSubset = xmlSAX2HasExternalSubset;
+ hdlr->resolveEntity = xmlSAX2ResolveEntity;
+ hdlr->getEntity = xmlSAX2GetEntity;
+ hdlr->getParameterEntity = NULL;
+ hdlr->entityDecl = xmlSAX2EntityDecl;
+ hdlr->attributeDecl = NULL;
+ hdlr->elementDecl = NULL;
+ hdlr->notationDecl = NULL;
+ hdlr->unparsedEntityDecl = NULL;
+ hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
+ hdlr->startDocument = xmlSAX2StartDocument;
+ hdlr->endDocument = xmlSAX2EndDocument;
+ hdlr->startElement = xmlSAX2StartElement;
+ hdlr->endElement = xmlSAX2EndElement;
+ hdlr->reference = xmlSAX2Reference;
+ hdlr->characters = xmlSAX2Characters;
+ hdlr->cdataBlock = NULL;
+ hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
+ hdlr->processingInstruction = NULL;
+ hdlr->comment = xmlSAX2Comment;
+ hdlr->warning = xmlParserWarning;
+ hdlr->error = xmlParserError;
+ hdlr->fatalError = xmlParserError;
+
+ hdlr->initialized = 1;
+}
+
+/**
+ * docbDefaultSAXHandlerInit:
+ *
+ * Initialize the default SAX handler
+ */
+void
+docbDefaultSAXHandlerInit(void)
+{
+ xmlSAX2InitDocbDefaultSAXHandler((xmlSAXHandlerPtr) &docbDefaultSAXHandler);
+}
+
+#endif /* LIBXML_DOCB_ENABLED */
+#define bottom_SAX2
+#include "elfgcchack.h"
diff --git a/libxml2-2.9.10/TODO b/libxml2-2.9.10/TODO
new file mode 100644
index 0000000..9c32224
--- /dev/null
+++ b/libxml2-2.9.10/TODO
@@ -0,0 +1,278 @@
+124907 HTML parse buffer problem when parsing larse in-memory docs
+124110 DTD validation && wrong namespace
+123564 xmllint --html --format
+
+ TODO for the XML parser and stuff:
+ ==================================
+
+ $Id$
+
+ this tend to be outdated :-\ ...
+
+DOCS:
+=====
+
+- use case of using XInclude to load for example a description.
+ order document + product base -(XSLT)-> quote with XIncludes
+ |
+ HTML output with description of parts <---(XSLT)--
+
+TODO:
+=====
+- XInclude at the SAX level (libSRVG)
+- fix the C code prototype to bring back doc/libxml-undocumented.txt
+ to a reasonable level
+- Computation of base when HTTP redirect occurs, might affect HTTP
+ interfaces.
+- Computation of base in XInclude. Relativization of URIs.
+- listing all attributes in a node.
+- Better checking of external parsed entities TAG 1234
+- Go through erratas and do the cleanup.
+ http://www.w3.org/XML/xml-19980210-errata ... started ...
+- jamesh suggestion: SAX like functions to save a document ie. call a
+ function to open a new element with given attributes, write character
+ data, close last element, etc
+ + inversted SAX, initial patch in April 2002 archives.
+- htmlParseDoc has parameter encoding which is not used.
+ Function htmlCreateDocParserCtxt ignore it.
+- fix realloc() usage.
+- Stricten the UTF8 conformance (Martin Duerst):
+ http://www.w3.org/2001/06/utf-8-test/.
+ The bad files are in http://www.w3.org/2001/06/utf-8-wrong/.
+- xml:id normalized value
+
+TODO:
+=====
+
+- move all string manipulation functions (xmlStrdup, xmlStrlen, etc.) to
+ global.c. Bjorn noted that the following files depends on parser.o solely
+ because of these string functions: entities.o, global.o, hash.o, tree.o,
+ xmlIO.o, and xpath.o.
+
+- Optimization of tag strings allocation ?
+
+- maintain coherency of namespace when doing cut'n paste operations
+ => the functions are coded, but need testing
+
+- function to rebuild the ID table
+- functions to rebuild the DTD hash tables (after DTD changes).
+
+
+EXTENSIONS:
+===========
+
+- Tools to produce man pages from the SGML docs.
+
+- Add Xpointer recognition/API
+
+- Add Xlink recognition/API
+ => started adding an xlink.[ch] with a unified API for XML and HTML.
+ it's crap :-(
+
+- Implement XSchemas
+ => Really need to be done <grin/>
+ - datatype are complete, but structure support is very limited.
+
+- extend the shell with:
+ - edit
+ - load/save
+ - mv (yum, yum, but it's harder because directories are ordered in
+ our case, mvup and mvdown would be required)
+
+
+Done:
+=====
+
+- Add HTML validation using the XHTML DTD
+ - problem: do we want to keep and maintain the code for handling
+ DTD/System ID cache directly in libxml ?
+ => not really done that way, but there are new APIs to check elements
+ or attributes. Otherwise XHTML validation directly ...
+
+- XML Schemas datatypes except Base64 and BinHex
+
+- Relax NG validation
+
+- XmlTextReader streaming API + validation
+
+- Add a DTD cache prefilled with xhtml DTDs and entities and a program to
+ manage them -> like the /usr/bin/install-catalog from SGML
+ right place seems $datadir/xmldtds
+ Maybe this is better left to user apps
+ => use a catalog instead , and xhtml1-dtd package
+
+- Add output to XHTML
+ => XML serializer automatically recognize the DTd and apply the specific
+ rules.
+
+- Fix output of <tst val="x&#xA;y"/>
+
+- compliance to XML-Namespace checking, see section 6 of
+ http://www.w3.org/TR/REC-xml-names/
+
+- Correct standalone checking/emitting (hard)
+ 2.9 Standalone Document Declaration
+
+- Implement OASIS XML Catalog support
+ http://www.oasis-open.org/committees/entity/
+
+- Get OASIS testsuite to a more friendly result, check all the results
+ once stable. the check-xml-test-suite.py script does this
+
+- Implement XSLT
+ => libxslt
+
+- Finish XPath
+ => attributes addressing troubles
+ => defaulted attributes handling
+ => namespace axis ?
+ done as XSLT got debugged
+
+- bug reported by Michael Meallin on validation problems
+ => Actually means I need to add support (and warn) for non-deterministic
+ content model.
+- Handle undefined namespaces in entity contents better ... at least
+ issue a warning
+- DOM needs
+ int xmlPruneProp(xmlNodePtr node, xmlAtttrPtr attr);
+ => done it's actually xmlRemoveProp xmlUnsetProp xmlUnsetNsProp
+
+- HTML: handling of Script and style data elements, need special code in
+ the parser and saving functions (handling of < > " ' ...):
+ http://www.w3.org/TR/html4/types.html#type-script
+ Attributes are no problems since entities are accepted.
+- DOM needs
+ xmlAttrPtr xmlNewDocProp(xmlDocPtr doc, const xmlChar *name, const xmlChar *value)
+- problem when parsing hrefs with & with the HTML parser (IRC ac)
+- If the internal encoding is not UTF8 saving to a given encoding doesn't
+ work => fix to force UTF8 encoding ...
+ done, added documentation too
+- Add an ASCII I/O encoder (asciiToUTF8 and UTF8Toascii)
+- Issue warning when using non-absolute namespaces URI.
+- the html parser should add <head> and <body> if they don't exist
+ started, not finished.
+ Done, the automatic closing is added and 3 testcases were inserted
+- Command to force the parser to stop parsing and ignore the rest of the file.
+ xmlStopParser() should allow this, mostly untested
+- support for HTML empty attributes like <hr noshade>
+- plugged iconv() in for support of a large set of encodings.
+- xmlSwitchToEncoding() rewrite done
+- URI checkings (no fragments) rfc2396.txt
+- Added a clean mechanism for overload or added input methods:
+ xmlRegisterInputCallbacks()
+- dynamically adapt the alloc entry point to use g_alloc()/g_free()
+ if the programmer wants it:
+ - use xmlMemSetup() to reset the routines used.
+- Check attribute normalization especially xmlGetProp()
+- Validity checking problems for NOTATIONS attributes
+- Validity checking problems for ENTITY ENTITIES attributes
+- Parsing of a well balanced chunk xmlParseBalancedChunkMemory()
+- URI module: validation, base, etc ... see uri.[ch]
+- turn tester into a generic program xmllint installed with libxml
+- extend validity checks to go through entities content instead of
+ just labelling them PCDATA
+- Save Dtds using the children list instead of dumping the tables,
+ order is preserved as well as comments and PIs
+- Wrote a notice of changes requires to go from 1.x to 2.x
+- make sure that all SAX callbacks are disabled if a WF error is detected
+- checking/handling of newline normalization
+ http://localhost/www.xml.com/axml/target.html#sec-line-ends
+- correct checking of '&' '%' on entities content.
+- checking of PE/Nesting on entities declaration
+- checking/handling of xml:space
+ - checking done.
+ - handling done, not well tested
+- Language identification code, productions [33] to [38]
+ => done, the check has been added and report WFness errors
+- Conditional sections in DTDs [61] to [65]
+ => should this crap be really implemented ???
+ => Yep OASIS testsuite uses them
+- Allow parsed entities defined in the internal subset to override
+ the ones defined in the external subset (DtD customization).
+ => This mean that the entity content should be computed only at
+ use time, i.e. keep the orig string only at parse time and expand
+ only when referenced from the external subset :-(
+ Needed for complete use of most DTD from Eve Maler
+- Add regression tests for all WFC errors
+ => did some in test/WFC
+ => added OASIS testsuite routines
+ http://xmlsoft.org/conf/result.html
+
+- I18N: http://wap.trondheim.com/vaer/index.phtml is not XML and accepted
+ by the XML parser, UTF-8 should be checked when there is no "encoding"
+ declared !
+- Support for UTF-8 and UTF-16 encoding
+ => added some convertion routines provided by Martin Durst
+ patched them, got fixes from @@@
+ I plan to keep everything internally as UTF-8 (or ISO-Latin-X)
+ this is slightly more costly but more compact, and recent processors
+ efficiency is cache related. The key for good performances is keeping
+ the data set small, so will I.
+ => the new progressive reading routines call the detection code
+ is enabled, tested the ISO->UTF-8 stuff
+- External entities loading:
+ - allow override by client code
+ - make sure it is alled for all external entities referenced
+ Done, client code should use xmlSetExternalEntityLoader() to set
+ the default loading routine. It will be called each time an external
+ entity entity resolution is triggered.
+- maintain ID coherency when removing/changing attributes
+ The function used to deallocate attributes now check for it being an
+ ID and removes it from the table.
+- push mode parsing i.e. non-blocking state based parser
+ done, both for XML and HTML parsers. Use xmlCreatePushParserCtxt()
+ and xmlParseChunk() and html counterparts.
+ The tester program now has a --push option to select that parser
+ front-end. Douplicated tests to use both and check results are similar.
+
+- Most of XPath, still see some troubles and occasionnal memleaks.
+- an XML shell, allowing to traverse/manipulate an XML document with
+ a shell like interface, and using XPath for the anming syntax
+ - use of readline and history added when available
+ - the shell interface has been cleanly separated and moved to debugXML.c
+- HTML parser, should be fairly stable now
+- API to search the lang of an attribute
+- Collect IDs at parsing and maintain a table.
+ PBM: maintain the table coherency
+ PBM: how to detect ID types in absence of DtD !
+- Use it for XPath ID support
+- Add validity checking
+ Should be finished now !
+- Add regression tests with entity substitutions
+
+- External Parsed entities, either XML or external Subset [78] and [79]
+ parsing the xmllang DtD now works, so it should be sufficient for
+ most cases !
+
+- progressive reading. The entity support is a first step toward
+ asbtraction of an input stream. A large part of the context is still
+ located on the stack, moving to a state machine and putting everyting
+ in the parsing context should provide an adequate solution.
+ => Rather than progressive parsing, give more power to the SAX-like
+ interface. Currently the DOM-like representation is built but
+ => it should be possible to define that only as a set of SAX callbacks
+ and remove the tree creation from the parser code.
+ DONE
+
+- DOM support, instead of using a proprietary in memory
+ format for the document representation, the parser should
+ call a DOM API to actually build the resulting document.
+ Then the parser becomes independent of the in-memory
+ representation of the document. Even better using RPC's
+ the parser can actually build the document in another
+ program.
+ => Work started, now the internal representation is by default
+ very near a direct DOM implementation. The DOM glue is implemented
+ as a separate module. See the GNOME gdome module.
+
+- C++ support : John Ehresman <jehresma@dsg.harvard.edu>
+- Updated code to follow more recent specs, added compatibility flag
+- Better error handling, use a dedicated, overridable error
+ handling function.
+- Support for CDATA.
+- Keep track of line numbers for better error reporting.
+- Support for PI (SAX one).
+- Support for Comments (bad, should be in ASAP, they are parsed
+ but not stored), should be configurable.
+- Improve the support of entities on save (+SAX).
+
diff --git a/libxml2-2.9.10/TODO_SCHEMAS b/libxml2-2.9.10/TODO_SCHEMAS
new file mode 100644
index 0000000..145a4ed
--- /dev/null
+++ b/libxml2-2.9.10/TODO_SCHEMAS
@@ -0,0 +1,31 @@
+- implement counted transitions at the automata level
+
+- Unicode:
+ + upgrade to 3.2
+ + improve the python script to generate better test
+ expressions to check the list of ranges.
+
+- Implement the interface at the SAX level
+
+- Implement the missing parts in the Structure part
+ + all content model
+ + enumerations
+ + countless others c.f. the TODO scattered in the code
+
+- Complete the Built-In datatype collections and Facets implementations
+
+- Regression tests based on
+ + the primer:
+ http://www.w3.org/TR/xmlschema-0/
+ + the Schemas Test Collection:
+ http://www.w3.org/2001/05/xmlschema-test-collection/
+ + archives of the schemas-dev list
+
+- Integrity constraints:
+ + what's that ? How need to read about it
+
+- "formal" checking, i.e. go through the full Structure spec and
+ bind code and associated parts of the Schemas spec
+
+- go though the erratas
+ http://www.w3.org/2001/05/xmlschema-errata
diff --git a/libxml2-2.9.10/VxWorks/Makefile b/libxml2-2.9.10/VxWorks/Makefile
new file mode 100644
index 0000000..a1f6902
--- /dev/null
+++ b/libxml2-2.9.10/VxWorks/Makefile
@@ -0,0 +1,68 @@
+##----------------------------------------------------------------
+##
+##-- Filename: Makefile
+##
+##-- $Date: 2008/02/23 02:56:17 $
+##-- $Revision: 1.2 $
+##-- $Name: $
+##
+##----------------------------------------------------------------
+
+NAME = xml2
+TOOL_FAMILY=gnu
+
+include $(WIND_USR)/tool/gnu/make.$(VXCPU)
+
+FLAGS = -Wall -g -Isrc -Isrc/include -D_REENTRANT=1
+#FLAGS = -Wall -O2 -Isrc -Isrc/include -D_REENTRANT=1
+
+FLAGS += $(DEFINE_CC) $(CC_ARCH_SPEC) -MD -MP -D_VX_CPU=_VX_$(CPU) -D_VX_TOOL_FAMILY=gnu -D_VX_TOOL=$(TOOL)
+ifeq ($(VXTYPE),RTP)
+FLAGS += -mrtp -fpic -I$(WIND_USR)/h -I$(WIND_USR)/h/wrn/coreip
+else
+FLAGS += -D_WRS_KERNEL -I$(WIND_BASE)/target/h -I$(WIND_BASE)/target/h/wrn/coreip
+endif
+
+ifeq ($(VXTYPE),RTP)
+ifeq ($(CPU),SH32)
+LIB_LDFLAGS += -L$(WIND_USR)/lib/sh/SH32/commonle/PIC
+else
+LIB_LDFLAGS += $(LD_LINK_PATH_ATEND) $(LD_PARTIAL_LAST_FLAGS)
+endif
+endif
+
+OBJS = c14n.o catalog.o chvalid.o \
+ debugXML.o dict.o DOCBparser.o \
+ encoding.o entities.o error.o \
+ globals.o \
+ hash.o \
+ legacy.o list.o \
+ parser.o parserInternals.o pattern.o \
+ relaxng.o \
+ SAX2.o SAX.o schematron.o \
+ threads.o tree.o \
+ uri.o \
+ valid.o \
+ xinclude.o xlink.o xmlcatalog.o xmlIO.o \
+ xmlmemory.o xmlmodule.o xmlreader.o xmlregexp.o \
+ xmlsave.o xmlschemas.o xmlschemastypes.o xmlstring.o \
+ xmlunicode.o xmlwriter.o xpath.o xpointer.o
+
+all : lib$(NAME).so
+
+init :
+ mkdir -p objs
+
+.PHONY : lib$(NAME).so
+
+lib$(NAME).so : init $(patsubst %.o, objs/%.o, $(OBJS))
+ $(CC) $(FLAGS) $(LIB_LDFLAGS) -shared -o $@ $(patsubst %.o, objs/%.o, $(OBJS))
+
+(NAME).out : init $(patsubst %.o, objs/%.o, $(OBJS))
+ $(CC) $(FLAGS) -o $@ $(patsubst %.o, objs/%.o, $(OBJS))
+
+objs/%.o: src/%.c
+ $(CC) $(FLAGS) -o $@ -c $<
+
+clean:
+ rm -fR *.so objs
diff --git a/libxml2-2.9.10/VxWorks/README b/libxml2-2.9.10/VxWorks/README
new file mode 100644
index 0000000..b756677
--- /dev/null
+++ b/libxml2-2.9.10/VxWorks/README
@@ -0,0 +1,86 @@
+ libxml2 on VxWorks 6.4+
+
+Here are my instructions for building on VxWorks.... I am very ashamed of
+how I did this because it is a complete hack, but it works great, so I
+can't complain too much.
+
+General Information
+
+1. The only way to build for VxWorks is to cross compile from a windows or
+linux system. We use a RedHat 5.1 workstation system as our build
+environment.
+
+2. VxWorks 6.X has two main types of executable, DKMs (dynamic kernel
+modules), and RTPs (real-time processes). Kernel modules are the bread
+and butter of VxWorks, but they look nothing like processes/threads in
+normal UNIX/Windows systems. RTPs are more like processes that have
+memory protection, threads, etc. VxWorks 6.X also introduces some level
+of POSIX conformance to their environment. The POSIX conformance was the
+key for us to be able to port libxml2. We support accessing libxml2 from
+both DKMs and RTPs.
+
+3. There are 2 compilers for VxWorks, the WindRiver compiler, and a port
+of the GNU toolchain, we have only tested and built with the GNU
+toolchain.
+
+How To Build
+
+1. Run the configure on your native linux system (this is the cheesy
+hack). Since the VxWorks GNU toolchain is very close in version to the
+one in red hat, it generates a good config.h file. We configured libxml2
+with the following to keep the size down, (but we have done basic testing
+with everything compiled in).
+
+./configure --with-minimum --with-reader --with-writer --with-regexps
+--with-threads --with-thread-alloc
+
+2. Rename the libxml2 folder to "src". This step is required for our
+replacement makefile to work.
+
+3. Run the replacement makefile. I wrote a new makefile that sets all the
+proper vxworks defines and uses the correct compilers. The two defines on
+the make command line are to tell it which VxWorks Target (SH3.2 little
+endian), and the executable type. We have tested this code on PENTIUM2gnu
+and SH32gnule.
+
+This makefile creates a shared library that runs on VxWorks: (libxml2.so)
+make -f Makefile.vxworks clean all VXCPU=SH32gnule VXTYPE=RTP
+
+This makefile creates a kernel module that runs on VxWorks: (xml2.out)
+make -f Makefile.vxworks clean all VXCPU=SH32gnule VXTYPE=DKM
+
+Important Notes
+
+1. There are several ways that this process could be improved, but at the
+end of the day, we make products, not port libraries, so we did a meets
+minimum for our needs.
+
+2. VxWorks is the devil, give me embedded linux every day.
+
+3. No matter what I tried, I couldn't get the configure to pick up the
+VxWorks toolchain, and in my investigation, it has something to do with
+automake/autoconf, not any individual package. VxWorks doesn't play by
+the normal rules for building toolchains.
+
+4. The PIC flag in VxWorks (especially for SH processors) is very
+important, and very troublesome. On linux, you can liberally use the PIC
+flag when compiling and the compiler/linker will ignore it as needed, on
+VxWorks if must always be on for shared libraries, and always be off for
+static libraries and executables.
+
+5. If anyone wants to work on a better way to do the build of libxml2 for
+VxWorks, I'm happy to help as much as I can, but I'm not looking to
+support it myself.
+
+Attached Files
+
+1. To use my Makefile for vxworks, you should enter the vxworks
+environment (/opt/windriver/wrenv.linux -p vxworks-6.4 for me).
+2. Run: build.sh libxml2-2.6.32 SH32gnule RTP (where you have
+libxml2-2.6.32.tar.gz and the Makefile in the same directory as the script
+file).
+
+Thanks,
+
+Jim Wert Jr.
+JWert@ILSTechnology.com
diff --git a/libxml2-2.9.10/VxWorks/build.sh b/libxml2-2.9.10/VxWorks/build.sh
new file mode 100644
index 0000000..c195062
--- /dev/null
+++ b/libxml2-2.9.10/VxWorks/build.sh
@@ -0,0 +1,85 @@
+LIBXML2=$1
+TARGETCPU=$2
+TARGETTYPE=$3
+
+if [ -z "$2" ]; then
+ TARGETCPU=SIMPENTIUMgnu
+fi
+
+if [ -z "$3" ]; then
+ TARGETTYPE=RTP
+fi
+
+echo "LIBXML2 Version: ${LIBXML2}"
+echo "LIBXML2 Target CPU: ${TARGETCPU}"
+echo "LIBXML2 Target Type: ${TARGETTYPE}"
+
+rm -fR src
+tar xvzf ${LIBXML2}.tar.gz
+mv ${LIBXML2} src
+cd src
+
+./configure --with-minimum --with-reader --with-writer --with-regexps --with-threads --with-thread-alloc
+
+find . -name '*.in' -exec rm -fR {} +
+find . -name '*.am' -exec rm -fR {} +
+rm -fR *.m4
+rm -fR *.pc
+rm -fR *.pl
+rm -fR *.py
+rm -fR *.spec
+rm -fR .deps
+rm -fR AUTHORS
+rm -fR bakefile
+rm -fR ChangeLog
+rm -fR config.guess
+rm -fR config.log
+rm -fR config.status
+rm -fR config.stub
+rm -fR config.sub
+rm -fR configure
+rm -fR COPYING
+rm -fR Copyright
+rm -fR depcomp
+rm -fR doc
+rm -fR example
+rm -fR INSTALL
+rm -fR install-sh
+rm -fR libxml.3
+rm -fR ltmain.sh
+rm -fR Makefile
+rm -fR Makefile.tests
+rm -fR macos
+rm -fR mkinstalldirs
+rm -fR missing
+rm -fR nanoftp.c
+rm -fR nanohttp.c
+rm -fR NEWS
+rm -fR python
+rm -fR README
+rm -fR README.tests
+rm -fR regressions.xml
+rm -fR result
+rm -fR runsuite.c
+rm -fR runtest.c
+rm -fR test
+rm -fR test*.c
+rm -fR TODO*
+rm -fR trio*
+rm -fR vms
+rm -fR win32
+rm -fR xml2*
+rm -fR xmllint.c
+rm -fR xstc
+
+cd ..
+
+make clean all VXCPU=${TARGETCPU} VXTYPE=${TARGETTYPE}
+
+if [ "${TARGETTYPE}" = "RTP" ]; then
+ cp libxml2.so ../../lib/.
+else
+ cp xml2.out ../../bin/.
+fi
+
+cp -R src/include/libxml ../../include/. \ No newline at end of file
diff --git a/libxml2-2.9.10/acinclude.m4 b/libxml2-2.9.10/acinclude.m4
new file mode 100644
index 0000000..7ad8630
--- /dev/null
+++ b/libxml2-2.9.10/acinclude.m4
@@ -0,0 +1,28 @@
+dnl Like AC_TRY_EVAL but also errors out if the compiler generates
+dnl _any_ output. Some compilers might issue warnings which we want
+dnl to catch.
+AC_DEFUN([AC_TRY_EVAL2],
+[{ (eval echo configure:__oline__: \"[$]$1\") 1>&AS_MESSAGE_LOG_FD; dnl
+(eval [$]$1) 2>&AS_MESSAGE_LOG_FD; _out=`eval [$]$1 2>&1` && test "x$_out" = x; }])
+
+dnl Like AC_TRY_COMPILE but calls AC_TRY_EVAL2 instead of AC_TRY_EVAL
+AC_DEFUN([AC_TRY_COMPILE2],
+[cat > conftest.$ac_ext <<EOF
+[#]line __oline__ "configure"
+#include "confdefs.h"
+[$1]
+int main(void) {
+[$2]
+; return 0; }
+EOF
+if AC_TRY_EVAL2(ac_compile); then
+ ifelse([$3], , :, [rm -rf conftest*
+ $3])
+else
+ echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
+ifelse([$4], , , [ rm -rf conftest*
+ $4
+])dnl
+fi
+rm -f conftest*])
diff --git a/libxml2-2.9.10/aclocal.m4 b/libxml2-2.9.10/aclocal.m4
new file mode 100644
index 0000000..affeb44
--- /dev/null
+++ b/libxml2-2.9.10/aclocal.m4
@@ -0,0 +1,1453 @@
+# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+dnl serial 11 (pkg-config-0.29)
+dnl
+dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+ [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+fi[]dnl
+])dnl PKG_PROG_PKG_CONFIG
+
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_default([$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ],
+ [pkg_failed=yes])
+ else
+ pkg_failed=untried
+fi[]dnl
+])dnl _PKG_CONFIG
+
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
+
+
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+ ])
+elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+ ])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ $3
+fi[]dnl
+])dnl PKG_CHECK_MODULES
+
+
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+ [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_INSTALLDIR
+
+
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+ [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
+
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.16'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.16.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.16.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],
+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],
+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+ [--enable-dependency-tracking],
+ [do not reject slow dependency extractors])
+AS_HELP_STRING(
+ [--disable-dependency-tracking],
+ [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ AS_CASE([$CONFIG_FILES],
+ [*\'*], [eval set x "$CONFIG_FILES"],
+ [*], [set x $CONFIG_FILES])
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`AS_DIRNAME(["$am_mf"])`
+ am_filepart=`AS_BASENAME(["$am_mf"])`
+ AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles]) || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. Try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).])
+ fi
+ AS_UNSET([am_dirpart])
+ AS_UNSET([am_filepart])
+ AS_UNSET([am_mf])
+ AS_UNSET([am_rc])
+ rm -f conftest-deps.mk
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+ [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well. Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+ [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+ am_maintainer_other[ make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer])],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+ ['0:this is the am__doit target'],
+ [AS_CASE([$s],
+ [BSD], [am__include='.include' am__quote='"'],
+ [am__include='include' am__quote=''])])
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+ alias in your environment])
+ fi
+ if test "$[2]" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+ [AC_MSG_CHECKING([that generated files are newer than configure])
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+ [--enable-silent-rules],
+ [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+ [--disable-silent-rules],
+ [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+ [am_cv_make_support_nested_variables],
+ [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+ dnl Using '$V' instead of '$(V)' breaks IRIX make.
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [m4_case([$1],
+ [ustar],
+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+ # There is notably a 21 bits limit for the UID and the GID. In fact,
+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+ # and bug#13588).
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to resort
+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
+ # below are definitely unexpected, so allow the users to see them
+ # (that is, avoid stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+ if test $am_uid -le $am_max_uid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi
+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+ if test $am_gid -le $am_max_gid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
+ rm -rf conftest.dir
+
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/libtool.m4])
+m4_include([m4/ltoptions.m4])
+m4_include([m4/ltsugar.m4])
+m4_include([m4/ltversion.m4])
+m4_include([m4/lt~obsolete.m4])
+m4_include([acinclude.m4])
diff --git a/libxml2-2.9.10/autogen.sh b/libxml2-2.9.10/autogen.sh
new file mode 100755
index 0000000..d03a40c
--- /dev/null
+++ b/libxml2-2.9.10/autogen.sh
@@ -0,0 +1,95 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+THEDIR=`pwd`
+cd $srcdir
+DIE=0
+
+(autoconf --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "You must have autoconf installed to compile libxml."
+ echo "Download the appropriate package for your distribution,"
+ echo "or see http://www.gnu.org/software/autoconf"
+ DIE=1
+}
+
+(libtoolize --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "You must have libtool installed to compile libxml."
+ echo "Download the appropriate package for your distribution,"
+ echo "or see http://www.gnu.org/software/libtool"
+ DIE=1
+}
+
+(automake --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ DIE=1
+ echo "You must have automake installed to compile libxml."
+ echo "Download the appropriate package for your distribution,"
+ echo "or see http://www.gnu.org/software/automake"
+}
+
+if test "$DIE" -eq 1; then
+ exit 1
+fi
+
+test -f entities.c || {
+ echo "You must run this script in the top-level libxml directory"
+ exit 1
+}
+
+EXTRA_ARGS=
+if test "x$1" = "x--system"; then
+ shift
+ prefix=/usr
+ libdir=$prefix/lib
+ sysconfdir=/etc
+ localstatedir=/var
+ if [ -d /usr/lib64 ]; then
+ libdir=$prefix/lib64
+ fi
+ EXTRA_ARGS="--prefix=$prefix --sysconfdir=$sysconfdir --localstatedir=$localstatedir --libdir=$libdir"
+ echo "Running ./configure with $EXTRA_ARGS $@"
+else
+ if test -z "$NOCONFIGURE" && test -z "$*"; then
+ echo "I am going to run ./configure with no arguments - if you wish "
+ echo "to pass any to it, please specify them on the $0 command line."
+ fi
+fi
+
+if [ ! -d $srcdir/m4 ]; then
+ mkdir $srcdir/m4
+fi
+
+# Replaced by autoreconf below
+autoreconf -if -Wall
+
+if ! grep -q pkg.m4 aclocal.m4; then
+ cat <<EOF
+
+Couldn't find pkg.m4 from pkg-config. Install the appropriate package for
+your distribution or set ACLOCAL_PATH to the directory containing pkg.m4.
+EOF
+ exit 1
+fi
+
+cd $THEDIR
+
+if test x$OBJ_DIR != x; then
+ mkdir -p "$OBJ_DIR"
+ cd "$OBJ_DIR"
+fi
+
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure $EXTRA_ARGS "$@"
+ if test "$?" -ne 0; then
+ echo
+ echo "Configure script failed, check config.log for more info."
+ else
+ echo
+ echo "Now type 'make' to compile libxml2."
+ fi
+fi
diff --git a/libxml2-2.9.10/autom4te.cache/output.0 b/libxml2-2.9.10/autom4te.cache/output.0
new file mode 100644
index 0000000..7426ed9
--- /dev/null
+++ b/libxml2-2.9.10/autom4te.cache/output.0
@@ -0,0 +1,18464 @@
+@%:@! /bin/sh
+@%:@ Guess values for system-dependent variables and create Makefiles.
+@%:@ Generated by GNU Autoconf 2.69.
+@%:@
+@%:@
+@%:@ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+@%:@
+@%:@
+@%:@ This configure script is free software; the Free Software Foundation
+@%:@ gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in @%:@ ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in @%:@(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in @%:@ ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+
+@%:@ as_fn_executable_p FILE
+@%:@ -----------------------
+@%:@ Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} @%:@ as_fn_executable_p
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
+@%:@ ----------------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIB@&t@OBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+PACKAGE_URL=
+
+ac_unique_file="entities.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIB@&t@OBJS
+PYTHON_TESTS
+RELDATE
+RDL_LIBS
+M_LIBS
+PYTHON_SITE_PACKAGES
+PYTHON_INCLUDES
+PYTHON_VERSION
+HAVE_ISINF
+HAVE_ISNAN
+XML_INCLUDEDIR
+ICU_LIBS
+ICONV_LIBS
+XML_LIBTOOLLIBS
+XML_PRIVATE_LIBS
+XML_LIBS
+XML_LIBDIR
+XML_CFLAGS
+EXTRA_CFLAGS
+CYGWIN_EXTRA_PYTHON_LIBADD
+CYGWIN_EXTRA_LDFLAGS
+WIN32_EXTRA_PYTHON_LIBADD
+WIN32_EXTRA_LDFLAGS
+WIN32_EXTRA_LIBADD
+WITH_RUN_DEBUG
+WITH_MEM_DEBUG
+TEST_DEBUG
+DEBUG_OBJ
+WITH_DEBUG
+TEST_REGEXPS
+WITH_REGEXPS
+TEST_SCHEMAS
+WITH_SCHEMAS
+WITH_ISO8859X
+WITH_ICU
+WITH_ICONV
+WITH_OUTPUT
+TEST_XPATH
+XPATH_OBJ
+WITH_XPATH
+TEST_SCHEMATRON
+WITH_SCHEMATRON
+TEST_XINCLUDE
+XINCLUDE_OBJ
+WITH_XINCLUDE
+TEST_C14N
+C14N_OBJ
+WITH_C14N
+TEST_XPTR
+XPTR_OBJ
+WITH_XPTR
+DOCB_OBJ
+WITH_DOCB
+TEST_CATALOG
+CATALOG_OBJ
+WITH_CATALOG
+TEST_VTIME
+TEST_VALID
+WITH_VALID
+TEST_PHTML
+TEST_HTML
+HTML_OBJ
+WITH_HTML
+TEST_PUSH
+WITH_PUSH
+TEST_SAX
+WITH_SAX1_SOURCES_FALSE
+WITH_SAX1_SOURCES_TRUE
+WITH_SAX1
+TEST_PATTERN
+WITH_PATTERN
+WITH_WRITER
+READER_TEST
+WITH_READER
+WITH_LEGACY
+HTTP_OBJ
+WITH_HTTP
+FTP_OBJ
+WITH_FTP
+WITH_TREE
+THREADS_W32_FALSE
+THREADS_W32_TRUE
+WITH_THREAD_ALLOC
+TEST_THREADS
+THREAD_CFLAGS
+WITH_THREADS
+BASE_THREAD_LIBS
+THREAD_LIBS
+WITH_TRIO
+WITH_TRIO_SOURCES_FALSE
+WITH_TRIO_SOURCES_TRUE
+STATIC_BINARIES
+TEST_MODULES
+MODULE_EXTENSION
+MODULE_PLATFORM_LIBS
+WITH_MODULES
+PYTHON_LIBS
+PYTHON_SUBDIR
+pythondir
+WITH_PYTHON_FALSE
+WITH_PYTHON_TRUE
+PYTHON
+WITH_LZMA
+LZMA_LIBS
+LZMA_CFLAGS
+WITH_ZLIB
+Z_LIBS
+Z_CFLAGS
+REBUILD_DOCS_FALSE
+REBUILD_DOCS_TRUE
+HTML_DIR
+USE_VERSION_SCRIPT_FALSE
+USE_VERSION_SCRIPT_TRUE
+VERSION_SCRIPT_FLAGS
+LT_SYS_LIBRARY_PATH
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+MANIFEST_TOOL
+RANLIB
+ac_ct_AR
+AR
+DLLTOOL
+OBJDUMP
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+LIBTOOL
+XSLTPROC
+XMLLINT
+WGET
+PERL
+TAR
+MV
+CPP
+LN_S
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+LIBXML_VERSION_EXTRA
+LIBXML_VERSION_NUMBER
+LIBXML_VERSION_INFO
+LIBXML_VERSION
+LIBXML_MICRO_VERSION
+LIBXML_MINOR_VERSION
+LIBXML_MAJOR_VERSION
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+runstatedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL
+am__quote'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_maintainer_mode
+enable_silent_rules
+enable_dependency_tracking
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_aix_soname
+with_gnu_ld
+with_sysroot
+enable_libtool_lock
+with_c14n
+with_catalog
+with_debug
+with_docbook
+with_fexceptions
+with_ftp
+with_history
+with_html
+with_html_dir
+with_html_subdir
+with_http
+with_iconv
+with_icu
+with_iso8859x
+with_legacy
+with_mem_debug
+with_minimum
+with_output
+with_pattern
+with_push
+with_python
+with_python_install_dir
+with_reader
+with_readline
+with_regexps
+with_run_debug
+with_sax1
+with_schemas
+with_schematron
+with_threads
+with_thread_alloc
+with_tree
+with_valid
+with_writer
+with_xinclude
+with_xpath
+with_xptr
+with_modules
+with_zlib
+with_lzma
+with_coverage
+enable_rebuild_docs
+enable_ipv6
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP
+LT_SYS_LIBRARY_PATH'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir runstatedir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ @<:@@S|@ac_default_prefix@:>@
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ @<:@PREFIX@:>@
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root @<:@DATAROOTDIR/doc/PACKAGE@:>@
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-maintainer-mode
+ disable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@
+ --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@
+ --enable-fast-install@<:@=PKGS@:>@
+ optimize for fast installation @<:@default=yes@:>@
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --enable-rebuild-docs[=yes/no] rebuild some generated docs [default=no]
+ --enable-ipv6[=yes/no] enables compilation of IPv6 code [default=yes]
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use
+ both@:>@
+ --with-aix-soname=aix|svr4|both
+ shared library versioning (aka "SONAME") variant to
+ provide on AIX, @<:@default=aix@:>@.
+ --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@
+ --with-sysroot@<:@=DIR@:>@ Search for dependent libraries within DIR (or the
+ compiler's sysroot if not specified).
+ --with-c14n add the Canonicalization support (on)
+ --with-catalog add the Catalog support (on)
+ --with-debug add the debugging module (on)
+ --with-docbook add Docbook SGML support (on)
+ --with-fexceptions add GCC flag -fexceptions for C++ exceptions (off)
+ --with-ftp add the FTP support (on)
+ --with-history add history support to xmllint shell(off)
+ --with-html add the HTML support (on)
+ --with-html-dir=path path to base html directory, default
+ @S|@datadir/doc/html
+ --with-html-subdir=path directory used under html-dir, default
+ @S|@PACKAGE-@S|@VERSION/html
+ --with-http add the HTTP support (on)
+ --with-iconv[=DIR] add ICONV support (on)
+ --with-icu add ICU support (off)
+ --with-iso8859x add ISO8859X support if no iconv (on)
+ --with-legacy add deprecated APIs for compatibility (on)
+ --with-mem-debug add the memory debugging module (off)
+ --with-minimum build a minimally sized library (off)
+ --with-output add the serialization support (on)
+ --with-pattern add the xmlPattern selection interface (on)
+ --with-push add the PUSH parser interfaces (on)
+ --with-python[=DIR] build Python bindings if found
+ --with-python-install-dir=DIR
+ install Python bindings in DIR
+ --with-reader add the xmlReader parsing interface (on)
+ --with-readline=DIR use readline in DIR
+ --with-regexps add Regular Expressions support (on)
+ --with-run-debug add the runtime debugging module (off)
+ --with-sax1 add the older SAX1 interface (on)
+ --with-schemas add Relax-NG and Schemas support (on)
+ --with-schematron add Schematron support (on)
+ --with-threads add multithread support(on)
+ --with-thread-alloc add per-thread memory(off)
+ --with-tree add the DOM like tree manipulation APIs (on)
+ --with-valid add the DTD validation support (on)
+ --with-writer add the xmlWriter saving interface (on)
+ --with-xinclude add the XInclude support (on)
+ --with-xpath add the XPATH support (on)
+ --with-xptr add the XPointer support (on)
+ --with-modules add the dynamic modules support (on)
+ --with-zlib[=DIR] use libz in DIR
+ --with-lzma[=DIR] use liblzma in DIR
+ --with-coverage build for code coverage with GCC (off)
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+ LT_SYS_LIBRARY_PATH
+ User-defined run-time library search path.
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+@%:@ ac_fn_c_try_compile LINENO
+@%:@ --------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_compile
+
+@%:@ ac_fn_c_try_cpp LINENO
+@%:@ ----------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_cpp
+
+@%:@ ac_fn_c_try_link LINENO
+@%:@ -----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_link
+
+@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists and can be compiled using the include files in
+@%:@ INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_header_compile
+
+@%:@ ac_fn_c_try_run LINENO
+@%:@ ----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes
+@%:@ that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_run
+
+@%:@ ac_fn_c_check_func LINENO FUNC VAR
+@%:@ ----------------------------------
+@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_func
+
+@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using
+@%:@ the include files in INCLUDES and setting the cache variable VAR
+@%:@ accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_header_mongrel
+
+@%:@ ac_fn_c_find_uintX_t LINENO BITS VAR
+@%:@ ------------------------------------
+@%:@ Finds an unsigned integer type with width BITS, setting cache variable VAR
+@%:@ accordingly.
+ac_fn_c_find_uintX_t ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
+$as_echo_n "checking for uint$2_t... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ # Order is important - never check a type that is potentially smaller
+ # than half of the expected target width.
+ for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)@:>@;
+test_array @<:@0@:>@ = 0;
+return test_array @<:@0@:>@;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ case $ac_type in @%:@(
+ uint$2_t) :
+ eval "$3=yes" ;; @%:@(
+ *) :
+ eval "$3=\$ac_type" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if eval test \"x\$"$3"\" = x"no"; then :
+
+else
+ break
+fi
+ done
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_find_uintX_t
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in @%:@((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ @%:@ Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=yes
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+
+LIBXML_MAJOR_VERSION=2
+LIBXML_MINOR_VERSION=9
+LIBXML_MICRO_VERSION=10
+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_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION`
+
+if test -f CVS/Entries ; then
+ extra=`grep ChangeLog CVS/Entries | grep -v LIBXML | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-CVS$extra"
+ fi
+else if test -d .svn ; then
+ extra=`svn info | grep Revision | sed 's+Revision: ++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-SVN$extra"
+ fi
+else if test -d .git ; then
+ extra=`git describe 2>/dev/null | sed 's+LIBXML[0-9.]*-++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-GIT$extra"
+ fi
+fi
+fi
+fi
+
+
+
+
+
+
+
+
+VERSION=${LIBXML_VERSION}
+
+am__api_version='1.16'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in @%:@((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+@%:@ Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+
+ PACKAGE=libxml2
+ VERSION=$VERSION
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
+
+# Support silent build rules, requires at least automake-1.11. Disable
+# by either passing --disable-silent-rules to configure or passing V=1
+# to make
+@%:@ Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=0;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $@%:@ != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ case $?:`cat confinc.out 2>/dev/null` in @%:@(
+ '0:this is the am__doit target') :
+ case $s in @%:@(
+ BSD) :
+ am__include='.include' am__quote='"' ;; @%:@(
+ *) :
+ am__include='include' am__quote='' ;;
+esac ;; @%:@(
+ *) :
+ ;;
+esac
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+$as_echo "${_am_result}" >&6; }
+
+@%:@ Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+# Extract the first word of "mv", so it can be a program name with args.
+set dummy mv; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MV+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MV in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MV="$MV" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_MV" && ac_cv_path_MV="/bin/mv"
+ ;;
+esac
+fi
+MV=$ac_cv_path_MV
+if test -n "$MV"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
+$as_echo "$MV" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "tar", so it can be a program name with args.
+set dummy tar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAR="$TAR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_TAR" && ac_cv_path_TAR="/bin/tar"
+ ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+if test -n "$TAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5
+$as_echo "$TAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PERL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="/usr/bin/perl"
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "wget", so it can be a program name with args.
+set dummy wget; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_WGET+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $WGET in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WGET="$WGET" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_WGET="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_WGET" && ac_cv_path_WGET="/usr/bin/wget"
+ ;;
+esac
+fi
+WGET=$ac_cv_path_WGET
+if test -n "$WGET"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WGET" >&5
+$as_echo "$WGET" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "xmllint", so it can be a program name with args.
+set dummy xmllint; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XMLLINT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XMLLINT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_XMLLINT" && ac_cv_path_XMLLINT="/usr/bin/xmllint"
+ ;;
+esac
+fi
+XMLLINT=$ac_cv_path_XMLLINT
+if test -n "$XMLLINT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
+$as_echo "$XMLLINT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "xsltproc", so it can be a program name with args.
+set dummy xsltproc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XSLTPROC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XSLTPROC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_XSLTPROC" && ac_cv_path_XSLTPROC="/usr/bin/xsltproc"
+ ;;
+esac
+fi
+XSLTPROC=$ac_cv_path_XSLTPROC
+if test -n "$XSLTPROC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+PKG_PROG_PKG_CONFIG
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.4.6'
+macro_revision='2.4.6'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+
+case $ECHO in
+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi
+fi
+
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AR" && break
+ done
+fi
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+fi
+
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ar_at_file=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT@&t@_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT@&t@_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+@%:@ Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+ withval=$with_sysroot;
+else
+ with_sysroot=no
+fi
+
+
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+ ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+ ac_path_lt_DD_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in dd; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+ $ac_path_lt_DD_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_lt_DD"; then
+ :
+ fi
+else
+ ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in @S|@*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+@%:@ Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ emul=elf
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$MANIFEST_TOOL"; then
+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+ # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_MANIFEST_TOOL" = x; then
+ MANIFEST_TOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+ fi
+else
+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&5
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&5
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ echo "$RANLIB libconftest.a" >&5
+ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&5
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[012][,.]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x@S|@2 in
+ x)
+ ;;
+ *:)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+ ;;
+ x:*)
+ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+ ;;
+ *)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+# Set options
+
+
+
+ enable_dlopen=no
+
+
+ enable_win32_dll=no
+
+
+ @%:@ Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ pic_mode=default
+fi
+
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+ shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+@%:@ Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+ withval=$with_aix_soname; case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname
+else
+ if ${lt_cv_with_aix_soname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_with_aix_soname=aix
+fi
+
+ with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/${ac_tool_prefix}file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC=$CC
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+
+ if test yes = "$GCC"; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ if test -n "$lt_prog_compiler_pic"; then
+ lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Intel*\ [CF]*Compiler*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ *Portland\ Group*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC"
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_static_works"; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test no = "$hard_links"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ export_dynamic_flag_spec='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='$wl--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ export_dynamic_flag_spec='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test no = "$ld_shlibs"; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ export_dynamic_flag_spec='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' $wl-bernotok'
+ allow_undefined_flag=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ file_list_spec='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+ enable_shared_with_static_runtimes=yes
+ exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ old_postinstall_cmds='chmod 644 $oldlib'
+ postlink_cmds='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ enable_shared_with_static_runtimes=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test yes = "$lt_cv_prog_compiler__b"; then
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_irix_exported_symbol=yes
+else
+ lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ ld_shlibs=yes
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ else
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='$wl-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='$wl-z,text'
+ allow_undefined_flag='$wl-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test no = "$ld_shlibs" && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a(lib.so.V)'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[23].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Add ABI-specific directories to the system library path.
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test yes = "$hardcode_automatic"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$hardcode_direct" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+ test no != "$hardcode_minus_L"; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test relink = "$hardcode_action" ||
+ test yes = "$inherit_rpath"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+ lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report what library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+VERSION_SCRIPT_FLAGS=
+# lt_cv_prog_gnu_ld is from libtool 2.+
+if test "$lt_cv_prog_gnu_ld" = yes; then
+ VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+else
+ case $host in
+ *-*-sunos*) VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,";;
+ esac
+fi
+
+ if test -n "$VERSION_SCRIPT_FLAGS"; then
+ USE_VERSION_SCRIPT_TRUE=
+ USE_VERSION_SCRIPT_FALSE='#'
+else
+ USE_VERSION_SCRIPT_TRUE='#'
+ USE_VERSION_SCRIPT_FALSE=
+fi
+
+
+
+_cppflags="${CPPFLAGS}"
+_libs="${LIBS}"
+
+
+@%:@ Check whether --with-c14n was given.
+if test "${with_c14n+set}" = set; then :
+ withval=$with_c14n;
+fi
+
+
+@%:@ Check whether --with-catalog was given.
+if test "${with_catalog+set}" = set; then :
+ withval=$with_catalog;
+fi
+
+
+@%:@ Check whether --with-debug was given.
+if test "${with_debug+set}" = set; then :
+ withval=$with_debug;
+fi
+
+
+@%:@ Check whether --with-docbook was given.
+if test "${with_docbook+set}" = set; then :
+ withval=$with_docbook;
+fi
+
+
+@%:@ Check whether --with-fexceptions was given.
+if test "${with_fexceptions+set}" = set; then :
+ withval=$with_fexceptions;
+fi
+
+
+@%:@ Check whether --with-ftp was given.
+if test "${with_ftp+set}" = set; then :
+ withval=$with_ftp;
+fi
+
+
+@%:@ Check whether --with-history was given.
+if test "${with_history+set}" = set; then :
+ withval=$with_history;
+fi
+
+
+@%:@ Check whether --with-html was given.
+if test "${with_html+set}" = set; then :
+ withval=$with_html;
+fi
+
+
+@%:@ Check whether --with-html-dir was given.
+if test "${with_html_dir+set}" = set; then :
+ withval=$with_html_dir; HTML_DIR=$withval
+else
+ HTML_DIR='$(datadir)/doc'
+fi
+
+
+
+@%:@ Check whether --with-html-subdir was given.
+if test "${with_html_subdir+set}" = set; then :
+ withval=$with_html_subdir; test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"
+else
+ HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"
+fi
+
+
+
+@%:@ Check whether --with-http was given.
+if test "${with_http+set}" = set; then :
+ withval=$with_http;
+fi
+
+
+@%:@ Check whether --with-iconv was given.
+if test "${with_iconv+set}" = set; then :
+ withval=$with_iconv;
+fi
+
+
+@%:@ Check whether --with-icu was given.
+if test "${with_icu+set}" = set; then :
+ withval=$with_icu;
+fi
+
+
+@%:@ Check whether --with-iso8859x was given.
+if test "${with_iso8859x+set}" = set; then :
+ withval=$with_iso8859x;
+fi
+
+
+@%:@ Check whether --with-legacy was given.
+if test "${with_legacy+set}" = set; then :
+ withval=$with_legacy;
+fi
+
+
+@%:@ Check whether --with-mem_debug was given.
+if test "${with_mem_debug+set}" = set; then :
+ withval=$with_mem_debug;
+fi
+
+
+@%:@ Check whether --with-minimum was given.
+if test "${with_minimum+set}" = set; then :
+ withval=$with_minimum;
+fi
+
+
+@%:@ Check whether --with-output was given.
+if test "${with_output+set}" = set; then :
+ withval=$with_output;
+fi
+
+
+@%:@ Check whether --with-pattern was given.
+if test "${with_pattern+set}" = set; then :
+ withval=$with_pattern;
+fi
+
+
+@%:@ Check whether --with-push was given.
+if test "${with_push+set}" = set; then :
+ withval=$with_push;
+fi
+
+
+@%:@ Check whether --with-python was given.
+if test "${with_python+set}" = set; then :
+ withval=$with_python;
+fi
+
+
+@%:@ Check whether --with-python_install_dir was given.
+if test "${with_python_install_dir+set}" = set; then :
+ withval=$with_python_install_dir;
+fi
+
+
+@%:@ Check whether --with-reader was given.
+if test "${with_reader+set}" = set; then :
+ withval=$with_reader;
+fi
+
+
+@%:@ Check whether --with-readline was given.
+if test "${with_readline+set}" = set; then :
+ withval=$with_readline;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ RDL_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+@%:@ Check whether --with-regexps was given.
+if test "${with_regexps+set}" = set; then :
+ withval=$with_regexps;
+fi
+
+
+@%:@ Check whether --with-run_debug was given.
+if test "${with_run_debug+set}" = set; then :
+ withval=$with_run_debug;
+fi
+
+
+@%:@ Check whether --with-sax1 was given.
+if test "${with_sax1+set}" = set; then :
+ withval=$with_sax1;
+fi
+
+
+@%:@ Check whether --with-schemas was given.
+if test "${with_schemas+set}" = set; then :
+ withval=$with_schemas;
+fi
+
+
+@%:@ Check whether --with-schematron was given.
+if test "${with_schematron+set}" = set; then :
+ withval=$with_schematron;
+fi
+
+
+@%:@ Check whether --with-threads was given.
+if test "${with_threads+set}" = set; then :
+ withval=$with_threads;
+fi
+
+
+@%:@ Check whether --with-thread-alloc was given.
+if test "${with_thread_alloc+set}" = set; then :
+ withval=$with_thread_alloc;
+fi
+
+
+@%:@ Check whether --with-tree was given.
+if test "${with_tree+set}" = set; then :
+ withval=$with_tree;
+fi
+
+
+@%:@ Check whether --with-valid was given.
+if test "${with_valid+set}" = set; then :
+ withval=$with_valid;
+fi
+
+
+@%:@ Check whether --with-writer was given.
+if test "${with_writer+set}" = set; then :
+ withval=$with_writer;
+fi
+
+
+@%:@ Check whether --with-xinclude was given.
+if test "${with_xinclude+set}" = set; then :
+ withval=$with_xinclude;
+fi
+
+
+@%:@ Check whether --with-xpath was given.
+if test "${with_xpath+set}" = set; then :
+ withval=$with_xpath;
+fi
+
+
+@%:@ Check whether --with-xptr was given.
+if test "${with_xptr+set}" = set; then :
+ withval=$with_xptr;
+fi
+
+
+@%:@ Check whether --with-modules was given.
+if test "${with_modules+set}" = set; then :
+ withval=$with_modules;
+fi
+
+
+@%:@ Check whether --with-zlib was given.
+if test "${with_zlib+set}" = set; then :
+ withval=$with_zlib;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ Z_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+@%:@ Check whether --with-lzma was given.
+if test "${with_lzma+set}" = set; then :
+ withval=$with_lzma;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ LZMA_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+@%:@ Check whether --with-coverage was given.
+if test "${with_coverage+set}" = set; then :
+ withval=$with_coverage;
+fi
+
+
+@%:@ Check whether --enable-rebuild-docs was given.
+if test "${enable_rebuild_docs+set}" = set; then :
+ enableval=$enable_rebuild_docs;
+fi
+
+if test "$enable_rebuild_docs" = "yes" -a "$srcdir" != "."; then
+ as_fn_error $? "cannot rebuild docs when builddir != srcdir" "$LINENO" 5
+fi
+ if test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"; then
+ REBUILD_DOCS_TRUE=
+ REBUILD_DOCS_FALSE='#'
+else
+ REBUILD_DOCS_TRUE='#'
+ REBUILD_DOCS_FALSE=
+fi
+
+
+if test "$with_schemas" = "yes"
+then
+ with_pattern=yes
+ with_regexps=yes
+fi
+if test "$with_schematron" = "yes"
+then
+ with_pattern=yes
+ with_tree=yes
+ with_xpath=yes
+fi
+if test "$with_reader" = "yes"
+then
+ with_push=yes
+fi
+if test "$with_xptr" = "yes"
+then
+ with_xpath=yes
+fi
+if test "$with_minimum" = "yes"
+then
+ echo "Configuring for a minimal library"
+ if test "$with_c14n" = ""
+ then
+ with_c14n=no
+ fi
+ if test "$with_catalog" = ""
+ then
+ with_catalog=no
+ fi
+ echo So far so good!
+ if test "$with_debug" = ""
+ then
+ with_debug=no
+ fi
+ if test "$with_docbook" = ""
+ then
+ with_docbook=no
+ fi
+ if test "$with_fexceptions" = ""
+ then
+ with_fexceptions=no
+ fi
+ if test "$with_ftp" = ""
+ then
+ with_ftp=no
+ fi
+ if test "$with_history" = ""
+ then
+ with_history=no
+ fi
+ if test "$with_html" = ""
+ then
+ with_html=no
+ fi
+ if test "$with_http" = ""
+ then
+ with_http=no
+ fi
+ if test "$with_iconv" = ""
+ then
+ with_iconv=no
+ fi
+ if test "$with_iso8859x" = ""
+ then
+ with_iso8859x=no
+ fi
+ if test "$with_legacy" = ""
+ then
+ with_legacy=no
+ fi
+ if test "$with_mem_debug" = ""
+ then
+ with_mem_debug=no
+ fi
+ if test "$with_output" = ""
+ then
+ with_output=no
+ fi
+ if test "$with_pattern" = ""
+ then
+ with_pattern=no
+ fi
+ if test "$with_push" = ""
+ then
+ with_push=no
+ fi
+ if test "$with_python" = ""
+ then
+ with_python=no
+ fi
+ if test "$with_reader" = ""
+ then
+ with_reader=no
+ fi
+ if test "$with_readline" = ""
+ then
+ with_readline=no
+ fi
+ if test "$with_regexps" = ""
+ then
+ with_regexps=no
+ fi
+ if test "$with_run_debug" = ""
+ then
+ with_run_debug=no
+ fi
+ if test "$with_sax1" = ""
+ then
+ with_sax1=no
+ fi
+ if test "$with_schemas" = ""
+ then
+ with_schemas=no
+ fi
+ if test "$with_schematron" = ""
+ then
+ with_schematron=no
+ fi
+ if test "$with_threads" = ""
+ then
+ with_threads=no
+ fi
+ if test "$with_thread_alloc" = ""
+ then
+ with_thread_alloc=no
+ fi
+ if test "$with_tree" = ""
+ then
+ with_tree=no
+ fi
+ if test "$with_valid" = ""
+ then
+ with_valid=no
+ fi
+ if test "$with_writer" = ""
+ then
+ with_writer=no
+ fi
+ if test "$with_xinclude" = ""
+ then
+ with_xinclude=no
+ fi
+ if test "$with_xpath" = ""
+ then
+ with_xpath=no
+ fi
+ if test "$with_xptr" = ""
+ then
+ with_xptr=no
+ fi
+ if test "$with_zlib" = ""
+ then
+ with_zlib=no
+ fi
+ if test "$with_modules" = ""
+ then
+ with_modules=no
+ fi
+fi
+
+echo Checking zlib
+
+
+WITH_ZLIB=0
+if test "$with_zlib" = "no"; then
+ echo "Disabling zlib compression support"
+else
+ # Don't run pkg-config if with_zlib contains a path.
+ if test "x$Z_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+ PKG_CHECK_MODULES(Z,zlib,
+ WITH_ZLIB=1,
+ :)
+ fi
+
+ if test "$WITH_ZLIB" = "0"; then
+ for ac_header in zlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_zlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ZLIB_H 1
+_ACEOF
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5
+$as_echo_n "checking for gzread in -lz... " >&6; }
+if ${ac_cv_lib_z_gzread+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gzread ();
+int
+main ()
+{
+return gzread ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_z_gzread=yes
+else
+ ac_cv_lib_z_gzread=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5
+$as_echo "$ac_cv_lib_z_gzread" >&6; }
+if test "x$ac_cv_lib_z_gzread" = xyes; then :
+
+ WITH_ZLIB=1
+ if test "x${Z_DIR}" != "x"; then
+ Z_CFLAGS="-I${Z_DIR}/include"
+ Z_LIBS="-L${Z_DIR}/lib -lz"
+ case ${host} in
+ *-*-solaris*)
+ Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
+ ;;
+ esac
+ else
+ Z_LIBS="-lz"
+ fi
+fi
+
+
+fi
+
+done
+
+ fi
+fi
+
+
+
+
+
+echo Checking lzma
+
+
+WITH_LZMA=0
+if test "$with_lzma" = "no"; then
+ echo "Disabling lzma compression support"
+else
+ # Don't run pkg-config if with_lzma contains a path.
+ if test "x$LZMA_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+ PKG_CHECK_MODULES(LZMA,liblzma,
+ WITH_LZMA=1,
+ :)
+ fi
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "$WITH_LZMA" = "0"; then
+ for ac_header in lzma.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default"
+if test "x$ac_cv_header_lzma_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LZMA_H 1
+_ACEOF
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_code in -llzma" >&5
+$as_echo_n "checking for lzma_code in -llzma... " >&6; }
+if ${ac_cv_lib_lzma_lzma_code+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-llzma $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char lzma_code ();
+int
+main ()
+{
+return lzma_code ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_lzma_lzma_code=yes
+else
+ ac_cv_lib_lzma_lzma_code=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_code" >&5
+$as_echo "$ac_cv_lib_lzma_lzma_code" >&6; }
+if test "x$ac_cv_lib_lzma_lzma_code" = xyes; then :
+
+ WITH_LZMA=1
+ if test "x${LZMA_DIR}" != "x"; then
+ LZMA_CFLAGS="-I${LZMA_DIR}/include"
+ LZMA_LIBS="-L${LZMA_DIR}/lib -llzma"
+ else
+ LZMA_LIBS="-llzma"
+ fi
+fi
+
+
+fi
+
+done
+
+ fi
+fi
+
+
+
+
+
+CPPFLAGS=${_cppflags}
+LIBS=${_libs}
+
+echo Checking headers
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+for ac_header in fcntl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default"
+if test "x$ac_cv_header_fcntl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_FCNTL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in unistd.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_UNISTD_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in ctype.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "ctype.h" "ac_cv_header_ctype_h" "$ac_includes_default"
+if test "x$ac_cv_header_ctype_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_CTYPE_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dirent.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "$ac_includes_default"
+if test "x$ac_cv_header_dirent_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DIRENT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in errno.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default"
+if test "x$ac_cv_header_errno_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ERRNO_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in malloc.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default"
+if test "x$ac_cv_header_malloc_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MALLOC_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdarg.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdarg_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDARG_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/stat.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_stat_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_STAT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/types.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_types_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdint.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in inttypes.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_INTTYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in time.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_time_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_TIME_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in math.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default"
+if test "x$ac_cv_header_math_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MATH_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in limits.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default"
+if test "x$ac_cv_header_limits_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LIMITS_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in float.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default"
+if test "x$ac_cv_header_float_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_FLOAT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/socket.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_sys_socket_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_SOCKET_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in netinet/in.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_netinet_in_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_NETINET_IN_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in arpa/inet.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#if HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+# endif
+
+"
+if test "x$ac_cv_header_arpa_inet_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ARPA_INET_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in netdb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default"
+if test "x$ac_cv_header_netdb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_NETDB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/time.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_time_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TIME_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/select.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_select_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_SELECT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in poll.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "poll.h" "ac_cv_header_poll_h" "$ac_includes_default"
+if test "x$ac_cv_header_poll_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_POLL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/mman.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mman_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_MMAN_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/timeb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_timeb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TIMEB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in signal.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default"
+if test "x$ac_cv_header_signal_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SIGNAL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in arpa/nameser.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_arpa_nameser_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ARPA_NAMESER_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in resolv.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#if HAVE_NETINET_IN_H
+# include <netinet/in.h>
+# endif
+#if HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+# endif
+
+"
+if test "x$ac_cv_header_resolv_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_RESOLV_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dl.h" "ac_cv_header_dl_h" "$ac_includes_default"
+if test "x$ac_cv_header_dl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+echo Checking types
+
+ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t"
+case $ac_cv_c_uint32_t in #(
+ no|yes) ;; #(
+ *)
+
+$as_echo "@%:@define _UINT32_T 1" >>confdefs.h
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define uint32_t $ac_cv_c_uint32_t
+_ACEOF
+;;
+ esac
+
+
+
+echo Checking libraries
+
+for ac_func in strftime
+do :
+ ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
+if test "x$ac_cv_func_strftime" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRFTIME 1
+_ACEOF
+
+else
+ # strftime is in -lintl on SCO UNIX.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5
+$as_echo_n "checking for strftime in -lintl... " >&6; }
+if ${ac_cv_lib_intl_strftime+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char strftime ();
+int
+main ()
+{
+return strftime ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_intl_strftime=yes
+else
+ ac_cv_lib_intl_strftime=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5
+$as_echo "$ac_cv_lib_intl_strftime" >&6; }
+if test "x$ac_cv_lib_intl_strftime" = xyes; then :
+ $as_echo "@%:@define HAVE_STRFTIME 1" >>confdefs.h
+
+LIBS="-lintl $LIBS"
+fi
+
+fi
+done
+
+for ac_func in strftime localtime gettimeofday ftime
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in stat signal
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in rand rand_r srand time
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in isascii mmap munmap putenv
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
+$as_echo_n "checking for va_copy... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+va_list ap1,ap2;
+int
+main ()
+{
+va_copy(ap1,ap2);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_va_copy=yes
+else
+ have_va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_va_copy" >&5
+$as_echo "$have_va_copy" >&6; }
+if test x"$have_va_copy" = x"yes"; then
+
+$as_echo "@%:@define HAVE_VA_COPY 1" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __va_copy" >&5
+$as_echo_n "checking for __va_copy... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+ va_list ap1,ap2;
+int
+main ()
+{
+__va_copy(ap1,ap2);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have___va_copy=yes
+else
+ have___va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have___va_copy" >&5
+$as_echo "$have___va_copy" >&6; }
+ if test x"$have___va_copy" = x"yes"; then
+
+$as_echo "@%:@define HAVE___VA_COPY 1" >>confdefs.h
+
+ fi
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether va_list is an array type" >&5
+$as_echo_n "checking whether va_list is an array type... " >&6; }
+cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stdarg.h>
+void a(va_list * ap) {}
+int main(void) {
+
+va_list ap1, ap2; a(&ap1); ap2 = (va_list) ap1
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "@%:@define VA_LIST_IS_ARRAY 1" >>confdefs.h
+
+fi
+rm -f conftest*
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostent" >&5
+$as_echo_n "checking for library containing gethostent... " >&6; }
+if ${ac_cv_search_gethostent+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostent ();
+int
+main ()
+{
+return gethostent ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' nsl; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_gethostent=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_gethostent+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_gethostent+:} false; then :
+
+else
+ ac_cv_search_gethostent=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostent" >&5
+$as_echo "$ac_cv_search_gethostent" >&6; }
+ac_res=$ac_cv_search_gethostent
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket net network; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
+$as_echo "$ac_cv_search_setsockopt" >&6; }
+ac_res=$ac_cv_search_setsockopt
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing connect" >&5
+$as_echo_n "checking for library containing connect... " >&6; }
+if ${ac_cv_search_connect+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' inet; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_connect=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_connect+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_connect+:} false; then :
+
+else
+ ac_cv_search_connect=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_connect" >&5
+$as_echo "$ac_cv_search_connect" >&6; }
+ac_res=$ac_cv_search_connect
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of socket length (socklen_t)" >&5
+$as_echo_n "checking for type of socket length (socklen_t)... " >&6; }
+cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: socklen_t *" >&5
+$as_echo "socklen_t *" >&6; }
+ XML_SOCKLEN_T=socklen_t
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: size_t *" >&5
+$as_echo "size_t *" >&6; }
+ XML_SOCKLEN_T=size_t
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: int *" >&5
+$as_echo "int *" >&6; }
+ XML_SOCKLEN_T=int
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not determine" >&5
+$as_echo "$as_me: WARNING: could not determine" >&2;}
+ XML_SOCKLEN_T="int"
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+
+cat >>confdefs.h <<_ACEOF
+@%:@define XML_SOCKLEN_T $XML_SOCKLEN_T
+_ACEOF
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for const gethostbyname() argument" >&5
+$as_echo_n "checking for const gethostbyname() argument... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <netdb.h>
+int
+main ()
+{
+(void)gethostbyname((const char *)"");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_gethostbyname_const_arg=yes
+else
+ have_gethostbyname_const_arg=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gethostbyname_const_arg" >&5
+$as_echo "$have_gethostbyname_const_arg" >&6; }
+if test x"$have_gethostbyname_const_arg" = x"yes"; then
+
+$as_echo "@%:@define GETHOSTBYNAME_ARG_CAST /**/" >>confdefs.h
+
+else
+
+$as_echo "@%:@define GETHOSTBYNAME_ARG_CAST (char *)" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for const send() second argument" >&5
+$as_echo_n "checking for const send() second argument... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/socket.h>
+int
+main ()
+{
+(void)send(1,(const char *)"",1,1);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_send_const_arg2=yes
+else
+ have_send_const_arg2=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_send_const_arg2" >&5
+$as_echo "$have_send_const_arg2" >&6; }
+if test x"$have_send_const_arg2" = x"yes"; then
+
+$as_echo "@%:@define SEND_ARG2_CAST /**/" >>confdefs.h
+
+else
+
+$as_echo "@%:@define SEND_ARG2_CAST (char *)" >>confdefs.h
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable IPv6" >&5
+$as_echo_n "checking whether to enable IPv6... " >&6; }
+@%:@ Check whether --enable-ipv6 was given.
+if test "${enable_ipv6+set}" = set; then :
+ enableval=$enable_ipv6;
+else
+ enable_ipv6=yes
+fi
+
+if test "$with_minimum" = "yes"
+then
+ enable_ipv6=no
+fi
+if test $enable_ipv6 = yes; then
+ have_ipv6=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss;
+ socket(AF_INET6, SOCK_STREAM, 0)
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_ipv6=yes
+else
+ have_ipv6=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ipv6" >&5
+$as_echo "$have_ipv6" >&6; }
+
+ if test $have_ipv6 = yes; then
+
+$as_echo "@%:@define SUPPORT_IP6 /**/" >>confdefs.h
+
+ have_broken_ss_family=no
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr::ss_family" >&5
+$as_echo_n "checking struct sockaddr::ss_family... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss ;
+ ss.ss_family = 0 ;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_ss_family=yes
+else
+ have_ss_family=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ss_family" >&5
+$as_echo "$have_ss_family" >&6; }
+ if test x$have_ss_family = xno ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking broken struct sockaddr::ss_family" >&5
+$as_echo_n "checking broken struct sockaddr::ss_family... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss ;
+ ss.__ss_family = 0 ;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_broken_ss_family=yes
+else
+ have_broken_ss_family=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_broken_ss_family" >&5
+$as_echo "$have_broken_ss_family" >&6; }
+ if test x$have_broken_ss_family = xyes ; then
+
+$as_echo "@%:@define HAVE_BROKEN_SS_FAMILY /**/" >>confdefs.h
+
+
+$as_echo "@%:@define ss_family __ss_family" >>confdefs.h
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ss_family and __ss_family not found" >&5
+$as_echo "$as_me: WARNING: ss_family and __ss_family not found" >&2;}
+ fi
+ fi
+
+ have_getaddrinfo=no
+ ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo"
+if test "x$ac_cv_func_getaddrinfo" = xyes; then :
+ have_getaddrinfo=yes
+fi
+
+ if test $have_getaddrinfo != yes; then
+ for lib in bsd socket inet; do
+ as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_getaddrinfo" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -l$lib" >&5
+$as_echo_n "checking for getaddrinfo in -l$lib... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$lib $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char getaddrinfo ();
+int
+main ()
+{
+return getaddrinfo ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+else
+ eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ LIBS="$LIBS -l$lib";have_getaddrinfo=yes;break
+fi
+
+ done
+ fi
+
+ if test $have_getaddrinfo = yes; then
+
+$as_echo "@%:@define HAVE_GETADDRINFO /**/" >>confdefs.h
+
+ fi
+ fi
+fi
+
+
+ac_fn_c_check_func "$LINENO" "isnan" "ac_cv_func_isnan"
+if test "x$ac_cv_func_isnan" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISNAN /**/" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnan in -lm" >&5
+$as_echo_n "checking for isnan in -lm... " >&6; }
+if ${ac_cv_lib_m_isnan+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char isnan ();
+int
+main ()
+{
+return isnan ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_m_isnan=yes
+else
+ ac_cv_lib_m_isnan=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_isnan" >&5
+$as_echo "$ac_cv_lib_m_isnan" >&6; }
+if test "x$ac_cv_lib_m_isnan" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISNAN /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ac_fn_c_check_func "$LINENO" "isinf" "ac_cv_func_isinf"
+if test "x$ac_cv_func_isinf" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISINF /**/" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf in -lm" >&5
+$as_echo_n "checking for isinf in -lm... " >&6; }
+if ${ac_cv_lib_m_isinf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char isinf ();
+int
+main ()
+{
+return isinf ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_m_isinf=yes
+else
+ ac_cv_lib_m_isinf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_isinf" >&5
+$as_echo "$ac_cv_lib_m_isinf" >&6; }
+if test "x$ac_cv_lib_m_isinf" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISINF /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+XML_LIBDIR='-L${libdir}'
+XML_INCLUDEDIR='-I${includedir}/libxml2'
+
+XML_CFLAGS=""
+RDL_LIBS=""
+
+if test "${GCC}" != "yes" ; then
+ case "${host}" in
+ hppa*-*-hpux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000"
+ ;;
+ *-dec-osf* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
+ ;;
+ alpha*-*-linux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
+ ;;
+ esac
+else
+ if test "$with_fexceptions" = "yes"
+ then
+ #
+ # Not activated by default because this inflates the code size
+ # Used to allow propagation of C++ exceptions through the library
+ #
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions"
+ fi
+
+ # warnings we'd like to see
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+ # warnings we'd like to supress
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args"
+ case "${host}" in
+ alpha*-*-linux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
+ ;;
+ alpha*-*-osf* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
+ ;;
+ esac
+fi
+case ${host} in
+ *-*-solaris*)
+ XML_LIBDIR="${XML_LIBDIR} -R${libdir}"
+ ;;
+ hppa*-hp-mpeix)
+ NEED_TRIO=1
+ ;;
+ *-*-mingw* | *-*-cygwin* | *-*-msvc* )
+ # If the host is Windows, and shared libraries are disabled, we
+ # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to
+ # work properly (without it, xmlexports.h would force the use of
+ # DLL imports, which obviously aren't present in a static
+ # library).
+ if test "x$enable_shared" = "xno"; then
+ XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC"
+ fi
+ ;;
+esac
+
+
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+PYTHON_SITE_PACKAGES=
+PYTHON_TESTS=
+pythondir=
+if test "$with_python" != "no" ; then
+ if test -x "$with_python/bin/python"
+ then
+ echo Found python in $with_python/bin/python
+ PYTHON="$with_python/bin/python"
+ else
+ if test -x "$with_python/python.exe"
+ then
+ echo Found python in $with_python/python.exe
+ PYTHON="$with_python/python.exe"
+ else
+ if test -x "$with_python"
+ then
+ echo Found python in $with_python
+ PYTHON="$with_python"
+ else
+ if test -x "$PYTHON"
+ then
+ echo Found python in environment PYTHON=$PYTHON
+ with_python=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
+ else
+ # Extract the first word of "python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5", so it can be a program name with args.
+set dummy python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PYTHON+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PYTHON in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+ fi
+ fi
+ fi
+ if test "$PYTHON" != ""
+ then
+ PYTHON_VERSION=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_version())"`
+ PYTHON_INCLUDES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"`
+# does not work as it produce a /usr/lib/python path instead of/usr/lib64/python
+#
+# PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ echo Found Python version $PYTHON_VERSION
+ fi
+ if test "$PYTHON_VERSION" != "" -a "$PYTHON_INCLUDES" = ""
+ then
+ if test -r $with_python/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
+ else
+ if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
+ else
+ if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
+ else
+ if test -r $with_python/include/Python.h
+ then
+ PYTHON_INCLUDES=$with_python/include
+ else
+ echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test "$with_python_install_dir" != ""
+ then
+ PYTHON_SITE_PACKAGES="$with_python_install_dir"
+ fi
+ if test "$PYTHON_VERSION" != "" -a "$PYTHON_SITE_PACKAGES" = ""
+ then
+ if test -d $libdir/python$PYTHON_VERSION/site-packages
+ then
+ PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
+ else
+ if test -d $with_python/lib/site-packages
+ then
+ PYTHON_SITE_PACKAGES=$with_python/lib/site-packages
+ else
+ PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ fi
+ fi
+ fi
+ pythondir='$(PYTHON_SITE_PACKAGES)'
+ PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags`
+else
+ PYTHON=
+fi
+ if test "$PYTHON_INCLUDES" != ""; then
+ WITH_PYTHON_TRUE=
+ WITH_PYTHON_FALSE='#'
+else
+ WITH_PYTHON_TRUE='#'
+ WITH_PYTHON_FALSE=
+fi
+
+if test "$PYTHON_INCLUDES" != ""
+then
+ PYTHON_SUBDIR=python
+else
+ PYTHON_SUBDIR=
+fi
+
+
+
+
+WITH_MODULES=0
+TEST_MODULES=
+
+if test "$with_modules" != "no" ; then
+ case "$host" in
+ *-*-cygwin*)
+ MODULE_EXTENSION=".dll"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lcygwin" >&5
+$as_echo_n "checking for dlopen in -lcygwin... " >&6; }
+if ${ac_cv_lib_cygwin_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcygwin $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_cygwin_dlopen=yes
+else
+ ac_cv_lib_cygwin_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cygwin_dlopen" >&5
+$as_echo "$ac_cv_lib_cygwin_dlopen" >&6; }
+if test "x$ac_cv_lib_cygwin_dlopen" = xyes; then :
+
+ WITH_MODULES=1
+ MODULE_PLATFORM_LIBS=
+
+$as_echo "@%:@define HAVE_DLOPEN /**/" >>confdefs.h
+
+
+fi
+
+ ;;
+ *-*-mingw*)
+ MODULE_EXTENSION=".dll"
+ WITH_MODULES=1
+ ;;
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ libxml_have_shl_load=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+
+ MODULE_PLATFORM_LIBS="-ldld"
+ libxml_have_shl_load=yes
+else
+
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ libxml_have_dlopen=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+
+ MODULE_PLATFORM_LIBS="-ldl"
+ libxml_have_dlopen=yes
+fi
+
+fi
+
+fi
+
+fi
+
+
+ if test "${libxml_have_shl_load}" = "yes"; then
+ MODULE_EXTENSION=".sl"
+ WITH_MODULES=1
+
+$as_echo "@%:@define HAVE_SHLLOAD /**/" >>confdefs.h
+
+ fi
+
+ if test "${libxml_have_dlopen}" = "yes"; then
+ case "${host}" in
+ *-*-hpux* )
+ MODULE_EXTENSION=".sl"
+ ;;
+ * )
+ MODULE_EXTENSION=".so"
+ ;;
+ esac
+
+ WITH_MODULES=1
+
+$as_echo "@%:@define HAVE_DLOPEN /**/" >>confdefs.h
+
+ fi
+ ;;
+ esac
+fi
+
+if test "${WITH_MODULES}" = "1"; then
+ TEST_MODULES="ModuleTests"
+fi
+
+
+
+
+
+
+
+if [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ] || \
+ [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ] || \
+ [ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxml2" ]
+ then
+ if test "$with_minimum" != "yes"
+ then
+ if test "${with_mem_debug}" = "" ; then
+ echo Activating memory debugging
+ with_mem_debug="yes"
+ with_run_debug="yes"
+ fi
+ if test "${with_docbook}" = "" ; then
+ with_docbook="yes"
+ fi
+ fi
+ if test "${GCC}" = "yes" ; then
+ EXTRA_CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
+ fi
+ STATIC_BINARIES="-static"
+else
+ STATIC_BINARIES=
+fi
+
+
+
+if test "${NEED_TRIO}" = "1" ; then
+ echo Adding trio library for string functions
+ WITH_TRIO=1
+else
+ WITH_TRIO=0
+fi
+ if test "${NEED_TRIO}" = "1"; then
+ WITH_TRIO_SOURCES_TRUE=
+ WITH_TRIO_SOURCES_FALSE='#'
+else
+ WITH_TRIO_SOURCES_TRUE='#'
+ WITH_TRIO_SOURCES_FALSE=
+fi
+
+
+
+echo Checking configuration requirements
+
+THREAD_LIBS=""
+BASE_THREAD_LIBS=""
+WITH_THREADS=0
+THREAD_CFLAGS=""
+TEST_THREADS=""
+THREADS_W32=""
+WITH_THREAD_ALLOC=0
+
+if test "$with_threads" = "no" ; then
+ echo Disabling multithreaded support
+else
+ echo Enabling multithreaded support
+
+ case $host_os in
+ *mingw*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
+ WITH_THREADS="1"
+ THREADS_W32="1"
+ THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS"
+ fi
+ ;;
+ esac
+
+ if test -z "$THREADS_W32"; then
+ if test "$with_threads" = "pthread" || test "$with_threads" = "" || test "$with_threads" = "yes" ; then
+ ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
+if test "x$ac_cv_header_pthread_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in -lpthread" >&5
+$as_echo_n "checking for pthread_join in -lpthread... " >&6; }
+if ${ac_cv_lib_pthread_pthread_join+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_join ();
+int
+main ()
+{
+return pthread_join ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_pthread_pthread_join=yes
+else
+ ac_cv_lib_pthread_pthread_join=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_join" >&5
+$as_echo "$ac_cv_lib_pthread_pthread_join" >&6; }
+if test "x$ac_cv_lib_pthread_pthread_join" = xyes; then :
+
+ THREAD_LIBS="-lpthread"
+
+$as_echo "@%:@define HAVE_LIBPTHREAD /**/" >>confdefs.h
+
+
+$as_echo "@%:@define HAVE_PTHREAD_H /**/" >>confdefs.h
+
+ WITH_THREADS="1"
+fi
+
+fi
+
+
+ fi
+ fi
+
+ case $host_os in
+ *cygwin*) THREAD_LIBS=""
+ ;;
+ *beos*) WITH_THREADS="1"
+ THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
+ ;;
+ *linux*)
+ if test "${GCC}" = "yes" ; then
+ GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
+ GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'`
+ GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[0-9]*\.++' | sed 's+\..*++'`
+ if test "${THREAD_LIBS}" = "-lpthread" ; then
+ if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null
+ then
+ THREAD_LIBS=""
+ BASE_THREAD_LIBS="-lpthread"
+ else
+ if expr ${GCC_MAJOR} \> 3 > /dev/null
+ then
+ THREAD_LIBS=""
+ BASE_THREAD_LIBS="-lpthread"
+ else
+ echo old GCC disabling weak symbols for pthread
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "$WITH_THREADS" = "1" ; then
+ THREAD_CFLAGS="$THREAD_CFLAGS -D_REENTRANT"
+ TEST_THREADS="Threadtests"
+ fi
+fi
+if test "$with_thread_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then
+ WITH_THREAD_ALLOC=1
+fi
+
+
+
+
+
+
+
+ if test -n "$THREADS_W32"; then
+ THREADS_W32_TRUE=
+ THREADS_W32_FALSE='#'
+else
+ THREADS_W32_TRUE='#'
+ THREADS_W32_FALSE=
+fi
+
+
+if test "$with_history" = "yes" ; then
+ echo Enabling xmllint shell history
+ unset tcap
+ for termlib in ncurses curses termcap terminfo termlib; do
+ as_ac_Lib=`$as_echo "ac_cv_lib_${termlib}''_tputs" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tputs in -l${termlib}" >&5
+$as_echo_n "checking for tputs in -l${termlib}... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${termlib} $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char tputs ();
+int
+main ()
+{
+return tputs ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+else
+ eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ tcap="-l$termlib"
+fi
+
+ test -n "$tcap" && break
+ done
+
+ ac_fn_c_check_header_mongrel "$LINENO" "readline/history.h" "ac_cv_header_readline_history_h" "$ac_includes_default"
+if test "x$ac_cv_header_readline_history_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -lhistory" >&5
+$as_echo_n "checking for append_history in -lhistory... " >&6; }
+if ${ac_cv_lib_history_append_history+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lhistory $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char append_history ();
+int
+main ()
+{
+return append_history ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_history_append_history=yes
+else
+ ac_cv_lib_history_append_history=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_history_append_history" >&5
+$as_echo "$ac_cv_lib_history_append_history" >&6; }
+if test "x$ac_cv_lib_history_append_history" = xyes; then :
+
+ RDL_LIBS="-lhistory"
+
+$as_echo "@%:@define HAVE_LIBHISTORY /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ ac_fn_c_check_header_mongrel "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default"
+if test "x$ac_cv_header_readline_readline_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5
+$as_echo_n "checking for readline in -lreadline... " >&6; }
+if ${ac_cv_lib_readline_readline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lreadline $tcap $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char readline ();
+int
+main ()
+{
+return readline ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_readline_readline=yes
+else
+ ac_cv_lib_readline_readline=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5
+$as_echo "$ac_cv_lib_readline_readline" >&6; }
+if test "x$ac_cv_lib_readline_readline" = xyes; then :
+
+ RDL_LIBS="-lreadline $RDL_LIBS $tcap"
+
+$as_echo "@%:@define HAVE_LIBREADLINE /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ if test -n "$RDL_DIR" -a -n "$RDL_LIBS"; then
+ CPPFLAGS="$CPPFLAGS -I${RDL_DIR}/include"
+ RDL_LIBS="-L${RDL_DIR}/lib $RDL_LIBS"
+ fi
+fi
+
+if test "$with_tree" = "no" ; then
+ echo Disabling DOM like tree manipulation APIs
+ WITH_TREE=0
+else
+ WITH_TREE=1
+fi
+
+
+if test "$with_ftp" = "no" ; then
+ echo Disabling FTP support
+ WITH_FTP=0
+ FTP_OBJ=
+else
+ WITH_FTP=1
+ FTP_OBJ=nanoftp.o
+fi
+
+
+
+if test "$with_http" = "no" ; then
+ echo Disabling HTTP support
+ WITH_HTTP=0
+ HTTP_OBJ=
+else
+ WITH_HTTP=1
+ HTTP_OBJ=nanohttp.o
+fi
+
+
+
+if test "$with_legacy" = "no" ; then
+ echo Disabling deprecated APIs
+ WITH_LEGACY=0
+else
+ WITH_LEGACY=1
+fi
+
+
+if test "$with_reader" = "no" ; then
+ echo Disabling the xmlReader parsing interface
+ WITH_READER=0
+ READER_TEST=
+else
+ WITH_READER=1
+ READER_TEST=Readertests
+ if test "$with_push" = "no" ; then
+ echo xmlReader requires Push interface - enabling it
+ with_push=yes
+ fi
+fi
+
+
+
+if test "$with_writer" = "no" ; then
+ echo Disabling the xmlWriter saving interface
+ WITH_WRITER=0
+# WRITER_TEST=
+else
+ WITH_WRITER=1
+# WRITER_TEST=Writertests
+ if test "$with_push" = "no" ; then
+ echo xmlWriter requires Push interface - enabling it
+ with_push=yes
+ fi
+ if test "$with_output" = "no" ; then
+ echo xmlWriter requires Output interface - enabling it
+ with_output=yes
+ fi
+fi
+
+#AC_SUBST(WRITER_TEST)
+
+if test "$with_pattern" = "no" ; then
+ echo Disabling the xmlPattern parsing interface
+ WITH_PATTERN=0
+ TEST_PATTERN=
+else
+ WITH_PATTERN=1
+ TEST_PATTERN=Patterntests
+fi
+
+
+
+if test "$with_sax1" = "no" ; then
+ echo Disabling the older SAX1 interface
+ WITH_SAX1=0
+ TEST_SAX=
+else
+ WITH_SAX1=1
+ TEST_SAX=SAXtests
+fi
+
+ if test "${WITH_TRIO}" = "1"; then
+ WITH_SAX1_SOURCES_TRUE=
+ WITH_SAX1_SOURCES_FALSE='#'
+else
+ WITH_SAX1_SOURCES_TRUE='#'
+ WITH_SAX1_SOURCES_FALSE=
+fi
+
+
+
+if test "$with_push" = "no" ; then
+ echo Disabling the PUSH parser interfaces
+ WITH_PUSH=0
+ TEST_PUSH=
+else
+ WITH_PUSH=1
+ TEST_PUSH="XMLPushtests"
+fi
+
+
+
+if test "$with_html" = "no" ; then
+ echo Disabling HTML support
+ WITH_HTML=0
+ HTML_OBJ=
+ TEST_HTML=
+else
+ WITH_HTML=1
+ HTML_OBJ="HTMLparser.o HTMLtree.o"
+ TEST_HTML=HTMLtests
+ if test "$with_push" != "no" ; then
+ TEST_PHTML=HTMLPushtests
+ else
+ TEST_PHTML=
+ fi
+fi
+
+
+
+
+
+if test "$with_valid" = "no" ; then
+ echo Disabling DTD validation support
+ WITH_VALID=0
+ TEST_VALID=
+ TEST_VTIME=
+else
+ WITH_VALID=1
+ TEST_VALID=Validtests
+ TEST_VTIME=VTimingtests
+fi
+
+
+
+
+if test "$with_catalog" = "no" ; then
+ echo Disabling Catalog support
+ WITH_CATALOG=0
+ CATALOG_OBJ=
+ TEST_CATALOG=
+else
+ WITH_CATALOG=1
+ CATALOG_OBJ="catalog.o"
+ TEST_CATALOG=Catatests
+fi
+
+
+
+
+if test "$with_docbook" = "no" ; then
+ echo Disabling Docbook support
+ WITH_DOCB=0
+ DOCB_OBJ=
+else
+ WITH_DOCB=1
+ DOCB_OBJ="DOCBparser.o"
+fi
+
+
+
+
+if test "$with_xptr" = "no" ; then
+ echo Disabling XPointer support
+ WITH_XPTR=0
+ XPTR_OBJ=
+ TEST_XPTR=
+else
+ WITH_XPTR=1
+ XPTR_OBJ=xpointer.o
+ TEST_XPTR=XPtrtests
+ if test "$with_xpath" = "no" ; then
+ echo XPointer requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_c14n" = "no" ; then
+ echo Disabling C14N support
+ WITH_C14N=0
+ C14N_OBJ=
+ TEST_C14N=
+else
+ WITH_C14N=1
+ C14N_OBJ="c14n.c"
+ TEST_C14N=C14Ntests
+ if test "$with_xpath" = "no" ; then
+ echo C14N requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_xinclude" = "no" ; then
+ echo Disabling XInclude support
+ WITH_XINCLUDE=0
+ XINCLUDE_OBJ=
+ with_xinclude="no"
+ TEST_XINCLUDE=
+else
+ WITH_XINCLUDE=1
+ XINCLUDE_OBJ=xinclude.o
+ TEST_XINCLUDE=XIncludetests
+ if test "$with_xpath" = "no" ; then
+ echo XInclude requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_xptr" = "" -a "$with_xpath" = "no" ; then
+ with_xptr=no
+fi
+
+if test "$with_schematron" = "" -a "$with_xpath" = "no" ; then
+ with_schematron=no
+fi
+
+if test "$with_schematron" = "no" ; then
+ echo "Disabling Schematron support"
+ WITH_SCHEMATRON=0
+ TEST_SCHEMATRON=
+else
+ echo "Enabled Schematron support"
+ WITH_SCHEMATRON=1
+ TEST_SCHEMATRON="Schematrontests"
+ with_xpath=yes
+ with_pattern=yes
+ with_schematron=yes
+fi
+
+
+
+if test "$with_xpath" = "no" ; then
+ echo Disabling XPATH support
+ WITH_XPATH=0
+ XPATH_OBJ=
+ TEST_XPATH=
+else
+ WITH_XPATH=1
+ XPATH_OBJ=xpath.o
+ TEST_XPATH=XPathtests
+fi
+
+
+
+
+if test "$with_output" = "no" ; then
+ echo Disabling serialization/saving support
+ WITH_OUTPUT=0
+else
+ WITH_OUTPUT=1
+fi
+
+
+WITH_ICONV=0
+if test "$with_iconv" = "no" ; then
+ echo Disabling ICONV support
+else
+ if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_iconv/include"
+ # Export this since our headers include iconv.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_iconv/include"
+ ICONV_LIBS="-L$with_iconv/lib"
+ fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default"
+if test "x$ac_cv_header_iconv_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+
+iconv_t cd = iconv_open ("","");
+iconv (cd, NULL, NULL, NULL, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ICONV=1
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv in -liconv" >&5
+$as_echo_n "checking for iconv in -liconv... " >&6; }
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICONV_LIBS}"
+ LIBS="${LIBS} -liconv"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+
+iconv_t cd = iconv_open ("","");
+iconv (cd, NULL, NULL, NULL, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ICONV=1
+ ICONV_LIBS="${ICONV_LIBS} -liconv"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+
+ if test "$WITH_ICONV" = "1" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+ if ${xml_cv_iconv_arg2+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ xml_cv_iconv_arg2=""
+else
+ xml_cv_iconv_arg2="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+ xml_cv_iconv_decl="extern size_t iconv (iconv_t cd, $xml_cv_iconv_arg2 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${xml_xxx:-
+ }$xml_cv_iconv_decl" >&5
+$as_echo "${xml_xxx:-
+ }$xml_cv_iconv_decl" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+@%:@define ICONV_CONST $xml_cv_iconv_arg2
+_ACEOF
+
+ fi
+fi
+case "$host" in
+ *mingw*) M_LIBS=""
+ ;;
+ *beos*) M_LIBS=""
+ ;;
+ *haiku*) M_LIBS=""
+ ;;
+ *) M_LIBS="-lm"
+ ;;
+esac
+
+
+WITH_ICU=0
+ICU_LIBS=""
+if test "$with_icu" != "yes" ; then
+ echo Disabling ICU support
+else
+ # Try pkg-config first so that static linking works.
+ # If this succeeeds, we ignore the WITH_ICU directory.
+ PKG_CHECK_MODULES(ICU,icu-i18n,
+ have_libicu=yes,
+ have_libicu=no)
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "x$have_libicu" = "xno"; then
+ ICU_CONFIG=icu-config
+ if ${ICU_CONFIG} --cflags >/dev/null 2>&1
+ then
+ ICU_LIBS=`${ICU_CONFIG} --ldflags`
+ have_libicu=yes
+ echo Enabling ICU support
+ else
+ if test "$with_icu" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_icu"
+ # Export this since our headers include icu.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_icu"
+ fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "unicode/ucnv.h" "ac_cv_header_unicode_ucnv_h" "$ac_includes_default"
+if test "x$ac_cv_header_unicode_ucnv_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icu" >&5
+$as_echo_n "checking for icu... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unicode/ucnv.h>
+int
+main ()
+{
+
+ UConverter *utf = ucnv_open("UTF-8", NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icu in -licucore" >&5
+$as_echo_n "checking for icu in -licucore... " >&6; }
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICU_LIBS}"
+ LIBS="${LIBS} -licucore"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unicode/ucnv.h>
+int
+main ()
+{
+
+ UConverter *utf = ucnv_open("UTF-8", NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+ ICU_LIBS="${ICU_LIBS} -licucore"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+ fi
+ fi
+
+ # Found the library via either method?
+ if test "x$have_libicu" = "xyes"; then
+ WITH_ICU=1
+ fi
+fi
+XML_LIBS="-lxml2"
+XML_PRIVATE_LIBS="$Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $M_LIBS $LIBS"
+XML_LIBTOOLLIBS="libxml2.la"
+
+
+WITH_ISO8859X=1
+if test "$WITH_ICONV" != "1" ; then
+if test "$with_iso8859x" = "no" ; then
+ echo Disabling ISO8859X support
+ WITH_ISO8859X=0
+fi
+fi
+
+
+if test "$with_schemas" = "no" ; then
+ echo "Disabling Schemas/Relax-NG support"
+ WITH_SCHEMAS=0
+ TEST_SCHEMAS=
+else
+ echo "Enabled Schemas/Relax-NG support"
+ WITH_SCHEMAS=1
+ TEST_SCHEMAS="Schemastests Relaxtests"
+ if test "$PYTHON_INCLUDES" != "" ; then
+ PYTHON_TESTS="$PYTHON_TESTS RelaxNGPythonTests SchemasPythonTests"
+ fi
+ with_regexps=yes
+fi
+
+
+
+if test "$with_regexps" = "no" ; then
+ echo Disabling Regexps support
+ WITH_REGEXPS=0
+ TEST_REGEXPS=
+else
+ WITH_REGEXPS=1
+ TEST_REGEXPS="Regexptests Automatatests"
+fi
+
+
+
+if test "$with_debug" = "no" ; then
+ echo Disabling DEBUG support
+ WITH_DEBUG=0
+ DEBUG_OBJ=
+ TEST_DEBUG=
+else
+ WITH_DEBUG=1
+ DEBUG_OBJ=debugXML.o
+ TEST_DEBUG=Scripttests
+fi
+
+
+
+
+if test "$with_mem_debug" = "yes" ; then
+ if test "$with_thread_alloc" = "yes" ; then
+ echo Disabling memory debug - cannot use mem-debug with thread-alloc!
+ WITH_MEM_DEBUG=0
+ else
+ echo Enabling memory debug support
+ WITH_MEM_DEBUG=1
+ fi
+else
+ WITH_MEM_DEBUG=0
+fi
+
+
+if test "$with_run_debug" = "yes" ; then
+ echo Enabling runtime debug support
+ WITH_RUN_DEBUG=1
+else
+ WITH_RUN_DEBUG=0
+fi
+
+
+WIN32_EXTRA_LIBADD=
+WIN32_EXTRA_LDFLAGS=
+CYGWIN_EXTRA_LDFLAGS=
+CYGWIN_EXTRA_PYTHON_LIBADD=
+WIN32_EXTRA_PYTHON_LIBADD=
+case "$host" in
+ *-*-mingw*)
+ CPPFLAGS="$CPPFLAGS -DWIN32"
+ WIN32_EXTRA_LIBADD="-lws2_32"
+ WIN32_EXTRA_LDFLAGS="-no-undefined"
+ if test "${PYTHON}" != ""
+ then
+ case "$host" in
+ *-w64-mingw*)
+ WIN32_EXTRA_PYTHON_LIBADD="-shrext .pyd -L${pythondir}/../../lib -lpython${PYTHON_VERSION}"
+ ;;
+ *)
+ WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)"
+ ;;
+ esac
+ fi
+ ;;
+ *-*-cygwin*)
+ CYGWIN_EXTRA_LDFLAGS="-no-undefined"
+ if test "${PYTHON}" != ""
+ then
+ CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
+ fi
+ ;;
+esac
+
+
+
+
+
+
+for ac_func in printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+ NEED_TRIO=1
+fi
+done
+
+
+if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
+then
+ echo Enabling code coverage for GCC
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage"
+ LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage"
+else
+ echo Disabling code coverage for GCC
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+RELDATE=`date +'%a %b %e %Y'`
+
+
+
+rm -f COPYING.LIB COPYING
+ln -s $srcdir/Copyright COPYING
+
+# keep on one line for cygwin c.f. #130896
+ac_config_files="$ac_config_files libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h libxml-2.0.pc libxml-2.0-uninstalled.pc libxml2-config.cmake"
+
+ac_config_files="$ac_config_files python/setup.py"
+
+ac_config_files="$ac_config_files xml2-config"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIB@&t@OBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_VERSION_SCRIPT_TRUE}" && test -z "${USE_VERSION_SCRIPT_FALSE}"; then
+ as_fn_error $? "conditional \"USE_VERSION_SCRIPT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${REBUILD_DOCS_TRUE}" && test -z "${REBUILD_DOCS_FALSE}"; then
+ as_fn_error $? "conditional \"REBUILD_DOCS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_PYTHON_TRUE}" && test -z "${WITH_PYTHON_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_PYTHON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_TRIO_SOURCES_TRUE}" && test -z "${WITH_TRIO_SOURCES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_TRIO_SOURCES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${THREADS_W32_TRUE}" && test -z "${THREADS_W32_FALSE}"; then
+ as_fn_error $? "conditional \"THREADS_W32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_SAX1_SOURCES_TRUE}" && test -z "${WITH_SAX1_SOURCES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_SAX1_SOURCES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
+@%:@ ----------------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+@%:@ as_fn_executable_p FILE
+@%:@ -----------------------
+@%:@ Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} @%:@ as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
+@%:@@%:@ Running $as_me. @%:@@%:@
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+DLLTOOL \
+sharedlib_from_linklib_cmd \
+AR \
+AR_FLAGS \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
+nm_file_list_spec \
+lt_cv_truncate_bin \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "libxml2.spec") CONFIG_FILES="$CONFIG_FILES libxml2.spec:libxml.spec.in" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
+ "include/libxml/Makefile") CONFIG_FILES="$CONFIG_FILES include/libxml/Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "doc/examples/Makefile") CONFIG_FILES="$CONFIG_FILES doc/examples/Makefile" ;;
+ "doc/devhelp/Makefile") CONFIG_FILES="$CONFIG_FILES doc/devhelp/Makefile" ;;
+ "example/Makefile") CONFIG_FILES="$CONFIG_FILES example/Makefile" ;;
+ "python/Makefile") CONFIG_FILES="$CONFIG_FILES python/Makefile" ;;
+ "python/tests/Makefile") CONFIG_FILES="$CONFIG_FILES python/tests/Makefile" ;;
+ "xstc/Makefile") CONFIG_FILES="$CONFIG_FILES xstc/Makefile" ;;
+ "include/libxml/xmlversion.h") CONFIG_FILES="$CONFIG_FILES include/libxml/xmlversion.h" ;;
+ "libxml-2.0.pc") CONFIG_FILES="$CONFIG_FILES libxml-2.0.pc" ;;
+ "libxml-2.0-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES libxml-2.0-uninstalled.pc" ;;
+ "libxml2-config.cmake") CONFIG_FILES="$CONFIG_FILES libxml2-config.cmake" ;;
+ "python/setup.py") CONFIG_FILES="$CONFIG_FILES python/setup.py" ;;
+ "xml2-config") CONFIG_FILES="$CONFIG_FILES xml2-config" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ case $CONFIG_FILES in @%:@(
+ *\'*) :
+ eval set x "$CONFIG_FILES" ;; @%:@(
+ *) :
+ set x $CONFIG_FILES ;; @%:@(
+ *) :
+ ;;
+esac
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$am_mf" : 'X\(//\)[^/]' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$am_mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$am_mf" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { echo "$as_me:$LINENO: cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles" >&5
+ (cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. Try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ { am_dirpart=; unset am_dirpart;}
+ { am_filepart=; unset am_filepart;}
+ { am_mf=; unset am_mf;}
+ { am_rc=; unset am_rc;}
+ rm -f conftest-deps.mk
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive.
+AR_FLAGS=$lt_AR_FLAGS
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x@S|@2 in
+ x)
+ ;;
+ *:)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+ ;;
+ x:*)
+ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+ ;;
+ *)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in @S|@*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+ ;;
+ "python/setup.py":F) chmod +x python/setup.py ;;
+ "xml2-config":F) chmod +x xml2-config ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+echo Done configuring
diff --git a/libxml2-2.9.10/autom4te.cache/output.1 b/libxml2-2.9.10/autom4te.cache/output.1
new file mode 100644
index 0000000..b745130
--- /dev/null
+++ b/libxml2-2.9.10/autom4te.cache/output.1
@@ -0,0 +1,18811 @@
+@%:@! /bin/sh
+@%:@ Guess values for system-dependent variables and create Makefiles.
+@%:@ Generated by GNU Autoconf 2.69.
+@%:@
+@%:@
+@%:@ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+@%:@
+@%:@
+@%:@ This configure script is free software; the Free Software Foundation
+@%:@ gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in @%:@ ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in @%:@(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in @%:@ ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+
+@%:@ as_fn_executable_p FILE
+@%:@ -----------------------
+@%:@ Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} @%:@ as_fn_executable_p
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
+@%:@ ----------------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIB@&t@OBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+PACKAGE_URL=
+
+ac_unique_file="entities.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIB@&t@OBJS
+PYTHON_TESTS
+RELDATE
+RDL_LIBS
+M_LIBS
+PYTHON_SITE_PACKAGES
+PYTHON_INCLUDES
+PYTHON_VERSION
+HAVE_ISINF
+HAVE_ISNAN
+XML_INCLUDEDIR
+ICONV_LIBS
+XML_LIBTOOLLIBS
+XML_PRIVATE_LIBS
+XML_LIBS
+XML_LIBDIR
+XML_CFLAGS
+EXTRA_CFLAGS
+CYGWIN_EXTRA_PYTHON_LIBADD
+CYGWIN_EXTRA_LDFLAGS
+WIN32_EXTRA_PYTHON_LIBADD
+WIN32_EXTRA_LDFLAGS
+WIN32_EXTRA_LIBADD
+WITH_RUN_DEBUG
+WITH_MEM_DEBUG
+TEST_DEBUG
+DEBUG_OBJ
+WITH_DEBUG
+TEST_REGEXPS
+WITH_REGEXPS
+TEST_SCHEMAS
+WITH_SCHEMAS
+WITH_ISO8859X
+WITH_ICU
+ICU_LIBS
+ICU_CFLAGS
+WITH_ICONV
+WITH_OUTPUT
+TEST_XPATH
+XPATH_OBJ
+WITH_XPATH
+TEST_SCHEMATRON
+WITH_SCHEMATRON
+TEST_XINCLUDE
+XINCLUDE_OBJ
+WITH_XINCLUDE
+TEST_C14N
+C14N_OBJ
+WITH_C14N
+TEST_XPTR
+XPTR_OBJ
+WITH_XPTR
+DOCB_OBJ
+WITH_DOCB
+TEST_CATALOG
+CATALOG_OBJ
+WITH_CATALOG
+TEST_VTIME
+TEST_VALID
+WITH_VALID
+TEST_PHTML
+TEST_HTML
+HTML_OBJ
+WITH_HTML
+TEST_PUSH
+WITH_PUSH
+TEST_SAX
+WITH_SAX1_SOURCES_FALSE
+WITH_SAX1_SOURCES_TRUE
+WITH_SAX1
+TEST_PATTERN
+WITH_PATTERN
+WITH_WRITER
+READER_TEST
+WITH_READER
+WITH_LEGACY
+HTTP_OBJ
+WITH_HTTP
+FTP_OBJ
+WITH_FTP
+WITH_TREE
+THREADS_W32_FALSE
+THREADS_W32_TRUE
+WITH_THREAD_ALLOC
+TEST_THREADS
+THREAD_CFLAGS
+WITH_THREADS
+BASE_THREAD_LIBS
+THREAD_LIBS
+WITH_TRIO
+WITH_TRIO_SOURCES_FALSE
+WITH_TRIO_SOURCES_TRUE
+STATIC_BINARIES
+TEST_MODULES
+MODULE_EXTENSION
+MODULE_PLATFORM_LIBS
+WITH_MODULES
+PYTHON_LIBS
+PYTHON_SUBDIR
+pythondir
+WITH_PYTHON_FALSE
+WITH_PYTHON_TRUE
+PYTHON
+WITH_LZMA
+LZMA_LIBS
+LZMA_CFLAGS
+WITH_ZLIB
+Z_LIBS
+Z_CFLAGS
+REBUILD_DOCS_FALSE
+REBUILD_DOCS_TRUE
+HTML_DIR
+USE_VERSION_SCRIPT_FALSE
+USE_VERSION_SCRIPT_TRUE
+VERSION_SCRIPT_FLAGS
+LT_SYS_LIBRARY_PATH
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+MANIFEST_TOOL
+RANLIB
+ac_ct_AR
+AR
+DLLTOOL
+OBJDUMP
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+LIBTOOL
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
+XSLTPROC
+XMLLINT
+WGET
+PERL
+TAR
+MV
+CPP
+LN_S
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+LIBXML_VERSION_EXTRA
+LIBXML_VERSION_NUMBER
+LIBXML_VERSION_INFO
+LIBXML_VERSION
+LIBXML_MICRO_VERSION
+LIBXML_MINOR_VERSION
+LIBXML_MAJOR_VERSION
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+runstatedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL
+am__quote'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_maintainer_mode
+enable_silent_rules
+enable_dependency_tracking
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_aix_soname
+with_gnu_ld
+with_sysroot
+enable_libtool_lock
+with_c14n
+with_catalog
+with_debug
+with_docbook
+with_fexceptions
+with_ftp
+with_history
+with_html
+with_html_dir
+with_html_subdir
+with_http
+with_iconv
+with_icu
+with_iso8859x
+with_legacy
+with_mem_debug
+with_minimum
+with_output
+with_pattern
+with_push
+with_python
+with_python_install_dir
+with_reader
+with_readline
+with_regexps
+with_run_debug
+with_sax1
+with_schemas
+with_schematron
+with_threads
+with_thread_alloc
+with_tree
+with_valid
+with_writer
+with_xinclude
+with_xpath
+with_xptr
+with_modules
+with_zlib
+with_lzma
+with_coverage
+enable_rebuild_docs
+enable_ipv6
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
+LT_SYS_LIBRARY_PATH
+Z_CFLAGS
+Z_LIBS
+LZMA_CFLAGS
+LZMA_LIBS
+ICU_CFLAGS
+ICU_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir runstatedir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ @<:@@S|@ac_default_prefix@:>@
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ @<:@PREFIX@:>@
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root @<:@DATAROOTDIR/doc/PACKAGE@:>@
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-maintainer-mode
+ disable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@
+ --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@
+ --enable-fast-install@<:@=PKGS@:>@
+ optimize for fast installation @<:@default=yes@:>@
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --enable-rebuild-docs[=yes/no] rebuild some generated docs [default=no]
+ --enable-ipv6[=yes/no] enables compilation of IPv6 code [default=yes]
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use
+ both@:>@
+ --with-aix-soname=aix|svr4|both
+ shared library versioning (aka "SONAME") variant to
+ provide on AIX, @<:@default=aix@:>@.
+ --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@
+ --with-sysroot@<:@=DIR@:>@ Search for dependent libraries within DIR (or the
+ compiler's sysroot if not specified).
+ --with-c14n add the Canonicalization support (on)
+ --with-catalog add the Catalog support (on)
+ --with-debug add the debugging module (on)
+ --with-docbook add Docbook SGML support (on)
+ --with-fexceptions add GCC flag -fexceptions for C++ exceptions (off)
+ --with-ftp add the FTP support (on)
+ --with-history add history support to xmllint shell(off)
+ --with-html add the HTML support (on)
+ --with-html-dir=path path to base html directory, default
+ @S|@datadir/doc/html
+ --with-html-subdir=path directory used under html-dir, default
+ @S|@PACKAGE-@S|@VERSION/html
+ --with-http add the HTTP support (on)
+ --with-iconv[=DIR] add ICONV support (on)
+ --with-icu add ICU support (off)
+ --with-iso8859x add ISO8859X support if no iconv (on)
+ --with-legacy add deprecated APIs for compatibility (on)
+ --with-mem-debug add the memory debugging module (off)
+ --with-minimum build a minimally sized library (off)
+ --with-output add the serialization support (on)
+ --with-pattern add the xmlPattern selection interface (on)
+ --with-push add the PUSH parser interfaces (on)
+ --with-python[=DIR] build Python bindings if found
+ --with-python-install-dir=DIR
+ install Python bindings in DIR
+ --with-reader add the xmlReader parsing interface (on)
+ --with-readline=DIR use readline in DIR
+ --with-regexps add Regular Expressions support (on)
+ --with-run-debug add the runtime debugging module (off)
+ --with-sax1 add the older SAX1 interface (on)
+ --with-schemas add Relax-NG and Schemas support (on)
+ --with-schematron add Schematron support (on)
+ --with-threads add multithread support(on)
+ --with-thread-alloc add per-thread memory(off)
+ --with-tree add the DOM like tree manipulation APIs (on)
+ --with-valid add the DTD validation support (on)
+ --with-writer add the xmlWriter saving interface (on)
+ --with-xinclude add the XInclude support (on)
+ --with-xpath add the XPATH support (on)
+ --with-xptr add the XPointer support (on)
+ --with-modules add the dynamic modules support (on)
+ --with-zlib[=DIR] use libz in DIR
+ --with-lzma[=DIR] use liblzma in DIR
+ --with-coverage build for code coverage with GCC (off)
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+ PKG_CONFIG path to pkg-config utility
+ PKG_CONFIG_PATH
+ directories to add to pkg-config's search path
+ PKG_CONFIG_LIBDIR
+ path overriding pkg-config's built-in search path
+ LT_SYS_LIBRARY_PATH
+ User-defined run-time library search path.
+ Z_CFLAGS C compiler flags for Z, overriding pkg-config
+ Z_LIBS linker flags for Z, overriding pkg-config
+ LZMA_CFLAGS C compiler flags for LZMA, overriding pkg-config
+ LZMA_LIBS linker flags for LZMA, overriding pkg-config
+ ICU_CFLAGS C compiler flags for ICU, overriding pkg-config
+ ICU_LIBS linker flags for ICU, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+@%:@ ac_fn_c_try_compile LINENO
+@%:@ --------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_compile
+
+@%:@ ac_fn_c_try_cpp LINENO
+@%:@ ----------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_cpp
+
+@%:@ ac_fn_c_try_link LINENO
+@%:@ -----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_link
+
+@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists and can be compiled using the include files in
+@%:@ INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_header_compile
+
+@%:@ ac_fn_c_try_run LINENO
+@%:@ ----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes
+@%:@ that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_run
+
+@%:@ ac_fn_c_check_func LINENO FUNC VAR
+@%:@ ----------------------------------
+@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_func
+
+@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using
+@%:@ the include files in INCLUDES and setting the cache variable VAR
+@%:@ accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_header_mongrel
+
+@%:@ ac_fn_c_find_uintX_t LINENO BITS VAR
+@%:@ ------------------------------------
+@%:@ Finds an unsigned integer type with width BITS, setting cache variable VAR
+@%:@ accordingly.
+ac_fn_c_find_uintX_t ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
+$as_echo_n "checking for uint$2_t... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ # Order is important - never check a type that is potentially smaller
+ # than half of the expected target width.
+ for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)@:>@;
+test_array @<:@0@:>@ = 0;
+return test_array @<:@0@:>@;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ case $ac_type in @%:@(
+ uint$2_t) :
+ eval "$3=yes" ;; @%:@(
+ *) :
+ eval "$3=\$ac_type" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if eval test \"x\$"$3"\" = x"no"; then :
+
+else
+ break
+fi
+ done
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_find_uintX_t
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in @%:@((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ @%:@ Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=yes
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+
+LIBXML_MAJOR_VERSION=2
+LIBXML_MINOR_VERSION=9
+LIBXML_MICRO_VERSION=10
+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_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION`
+
+if test -f CVS/Entries ; then
+ extra=`grep ChangeLog CVS/Entries | grep -v LIBXML | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-CVS$extra"
+ fi
+else if test -d .svn ; then
+ extra=`svn info | grep Revision | sed 's+Revision: ++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-SVN$extra"
+ fi
+else if test -d .git ; then
+ extra=`git describe 2>/dev/null | sed 's+LIBXML[0-9.]*-++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-GIT$extra"
+ fi
+fi
+fi
+fi
+
+
+
+
+
+
+
+
+VERSION=${LIBXML_VERSION}
+
+am__api_version='1.16'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in @%:@((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+@%:@ Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+
+ PACKAGE=libxml2
+ VERSION=$VERSION
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
+
+# Support silent build rules, requires at least automake-1.11. Disable
+# by either passing --disable-silent-rules to configure or passing V=1
+# to make
+@%:@ Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=0;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $@%:@ != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ case $?:`cat confinc.out 2>/dev/null` in @%:@(
+ '0:this is the am__doit target') :
+ case $s in @%:@(
+ BSD) :
+ am__include='.include' am__quote='"' ;; @%:@(
+ *) :
+ am__include='include' am__quote='' ;;
+esac ;; @%:@(
+ *) :
+ ;;
+esac
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+$as_echo "${_am_result}" >&6; }
+
+@%:@ Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+# Extract the first word of "mv", so it can be a program name with args.
+set dummy mv; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MV+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MV in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MV="$MV" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_MV" && ac_cv_path_MV="/bin/mv"
+ ;;
+esac
+fi
+MV=$ac_cv_path_MV
+if test -n "$MV"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
+$as_echo "$MV" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "tar", so it can be a program name with args.
+set dummy tar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAR="$TAR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_TAR" && ac_cv_path_TAR="/bin/tar"
+ ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+if test -n "$TAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5
+$as_echo "$TAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PERL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="/usr/bin/perl"
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "wget", so it can be a program name with args.
+set dummy wget; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_WGET+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $WGET in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WGET="$WGET" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_WGET="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_WGET" && ac_cv_path_WGET="/usr/bin/wget"
+ ;;
+esac
+fi
+WGET=$ac_cv_path_WGET
+if test -n "$WGET"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WGET" >&5
+$as_echo "$WGET" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "xmllint", so it can be a program name with args.
+set dummy xmllint; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XMLLINT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XMLLINT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_XMLLINT" && ac_cv_path_XMLLINT="/usr/bin/xmllint"
+ ;;
+esac
+fi
+XMLLINT=$ac_cv_path_XMLLINT
+if test -n "$XMLLINT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
+$as_echo "$XMLLINT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "xsltproc", so it can be a program name with args.
+set dummy xsltproc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XSLTPROC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XSLTPROC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_XSLTPROC" && ac_cv_path_XSLTPROC="/usr/bin/xsltproc"
+ ;;
+esac
+fi
+XSLTPROC=$ac_cv_path_XSLTPROC
+if test -n "$XSLTPROC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+fi
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.4.6'
+macro_revision='2.4.6'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+
+case $ECHO in
+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi
+fi
+
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AR" && break
+ done
+fi
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+fi
+
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ar_at_file=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT@&t@_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT@&t@_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+@%:@ Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+ withval=$with_sysroot;
+else
+ with_sysroot=no
+fi
+
+
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+ ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+ ac_path_lt_DD_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in dd; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+ $ac_path_lt_DD_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_lt_DD"; then
+ :
+ fi
+else
+ ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in @S|@*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+@%:@ Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ emul=elf
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$MANIFEST_TOOL"; then
+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+ # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_MANIFEST_TOOL" = x; then
+ MANIFEST_TOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+ fi
+else
+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&5
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&5
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ echo "$RANLIB libconftest.a" >&5
+ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&5
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[012][,.]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x@S|@2 in
+ x)
+ ;;
+ *:)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+ ;;
+ x:*)
+ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+ ;;
+ *)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+# Set options
+
+
+
+ enable_dlopen=no
+
+
+ enable_win32_dll=no
+
+
+ @%:@ Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ pic_mode=default
+fi
+
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+ shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+@%:@ Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+ withval=$with_aix_soname; case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname
+else
+ if ${lt_cv_with_aix_soname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_with_aix_soname=aix
+fi
+
+ with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/${ac_tool_prefix}file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC=$CC
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+
+ if test yes = "$GCC"; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ if test -n "$lt_prog_compiler_pic"; then
+ lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Intel*\ [CF]*Compiler*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ *Portland\ Group*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC"
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_static_works"; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test no = "$hard_links"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ export_dynamic_flag_spec='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='$wl--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ export_dynamic_flag_spec='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test no = "$ld_shlibs"; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ export_dynamic_flag_spec='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' $wl-bernotok'
+ allow_undefined_flag=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ file_list_spec='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+ enable_shared_with_static_runtimes=yes
+ exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ old_postinstall_cmds='chmod 644 $oldlib'
+ postlink_cmds='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ enable_shared_with_static_runtimes=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test yes = "$lt_cv_prog_compiler__b"; then
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_irix_exported_symbol=yes
+else
+ lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ ld_shlibs=yes
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ else
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='$wl-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='$wl-z,text'
+ allow_undefined_flag='$wl-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test no = "$ld_shlibs" && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a(lib.so.V)'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[23].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Add ABI-specific directories to the system library path.
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test yes = "$hardcode_automatic"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$hardcode_direct" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+ test no != "$hardcode_minus_L"; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test relink = "$hardcode_action" ||
+ test yes = "$inherit_rpath"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+ lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report what library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+VERSION_SCRIPT_FLAGS=
+# lt_cv_prog_gnu_ld is from libtool 2.+
+if test "$lt_cv_prog_gnu_ld" = yes; then
+ VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+else
+ case $host in
+ *-*-sunos*) VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,";;
+ esac
+fi
+
+ if test -n "$VERSION_SCRIPT_FLAGS"; then
+ USE_VERSION_SCRIPT_TRUE=
+ USE_VERSION_SCRIPT_FALSE='#'
+else
+ USE_VERSION_SCRIPT_TRUE='#'
+ USE_VERSION_SCRIPT_FALSE=
+fi
+
+
+
+_cppflags="${CPPFLAGS}"
+_libs="${LIBS}"
+
+
+@%:@ Check whether --with-c14n was given.
+if test "${with_c14n+set}" = set; then :
+ withval=$with_c14n;
+fi
+
+
+@%:@ Check whether --with-catalog was given.
+if test "${with_catalog+set}" = set; then :
+ withval=$with_catalog;
+fi
+
+
+@%:@ Check whether --with-debug was given.
+if test "${with_debug+set}" = set; then :
+ withval=$with_debug;
+fi
+
+
+@%:@ Check whether --with-docbook was given.
+if test "${with_docbook+set}" = set; then :
+ withval=$with_docbook;
+fi
+
+
+@%:@ Check whether --with-fexceptions was given.
+if test "${with_fexceptions+set}" = set; then :
+ withval=$with_fexceptions;
+fi
+
+
+@%:@ Check whether --with-ftp was given.
+if test "${with_ftp+set}" = set; then :
+ withval=$with_ftp;
+fi
+
+
+@%:@ Check whether --with-history was given.
+if test "${with_history+set}" = set; then :
+ withval=$with_history;
+fi
+
+
+@%:@ Check whether --with-html was given.
+if test "${with_html+set}" = set; then :
+ withval=$with_html;
+fi
+
+
+@%:@ Check whether --with-html-dir was given.
+if test "${with_html_dir+set}" = set; then :
+ withval=$with_html_dir; HTML_DIR=$withval
+else
+ HTML_DIR='$(datadir)/doc'
+fi
+
+
+
+@%:@ Check whether --with-html-subdir was given.
+if test "${with_html_subdir+set}" = set; then :
+ withval=$with_html_subdir; test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"
+else
+ HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"
+fi
+
+
+
+@%:@ Check whether --with-http was given.
+if test "${with_http+set}" = set; then :
+ withval=$with_http;
+fi
+
+
+@%:@ Check whether --with-iconv was given.
+if test "${with_iconv+set}" = set; then :
+ withval=$with_iconv;
+fi
+
+
+@%:@ Check whether --with-icu was given.
+if test "${with_icu+set}" = set; then :
+ withval=$with_icu;
+fi
+
+
+@%:@ Check whether --with-iso8859x was given.
+if test "${with_iso8859x+set}" = set; then :
+ withval=$with_iso8859x;
+fi
+
+
+@%:@ Check whether --with-legacy was given.
+if test "${with_legacy+set}" = set; then :
+ withval=$with_legacy;
+fi
+
+
+@%:@ Check whether --with-mem_debug was given.
+if test "${with_mem_debug+set}" = set; then :
+ withval=$with_mem_debug;
+fi
+
+
+@%:@ Check whether --with-minimum was given.
+if test "${with_minimum+set}" = set; then :
+ withval=$with_minimum;
+fi
+
+
+@%:@ Check whether --with-output was given.
+if test "${with_output+set}" = set; then :
+ withval=$with_output;
+fi
+
+
+@%:@ Check whether --with-pattern was given.
+if test "${with_pattern+set}" = set; then :
+ withval=$with_pattern;
+fi
+
+
+@%:@ Check whether --with-push was given.
+if test "${with_push+set}" = set; then :
+ withval=$with_push;
+fi
+
+
+@%:@ Check whether --with-python was given.
+if test "${with_python+set}" = set; then :
+ withval=$with_python;
+fi
+
+
+@%:@ Check whether --with-python_install_dir was given.
+if test "${with_python_install_dir+set}" = set; then :
+ withval=$with_python_install_dir;
+fi
+
+
+@%:@ Check whether --with-reader was given.
+if test "${with_reader+set}" = set; then :
+ withval=$with_reader;
+fi
+
+
+@%:@ Check whether --with-readline was given.
+if test "${with_readline+set}" = set; then :
+ withval=$with_readline;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ RDL_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+@%:@ Check whether --with-regexps was given.
+if test "${with_regexps+set}" = set; then :
+ withval=$with_regexps;
+fi
+
+
+@%:@ Check whether --with-run_debug was given.
+if test "${with_run_debug+set}" = set; then :
+ withval=$with_run_debug;
+fi
+
+
+@%:@ Check whether --with-sax1 was given.
+if test "${with_sax1+set}" = set; then :
+ withval=$with_sax1;
+fi
+
+
+@%:@ Check whether --with-schemas was given.
+if test "${with_schemas+set}" = set; then :
+ withval=$with_schemas;
+fi
+
+
+@%:@ Check whether --with-schematron was given.
+if test "${with_schematron+set}" = set; then :
+ withval=$with_schematron;
+fi
+
+
+@%:@ Check whether --with-threads was given.
+if test "${with_threads+set}" = set; then :
+ withval=$with_threads;
+fi
+
+
+@%:@ Check whether --with-thread-alloc was given.
+if test "${with_thread_alloc+set}" = set; then :
+ withval=$with_thread_alloc;
+fi
+
+
+@%:@ Check whether --with-tree was given.
+if test "${with_tree+set}" = set; then :
+ withval=$with_tree;
+fi
+
+
+@%:@ Check whether --with-valid was given.
+if test "${with_valid+set}" = set; then :
+ withval=$with_valid;
+fi
+
+
+@%:@ Check whether --with-writer was given.
+if test "${with_writer+set}" = set; then :
+ withval=$with_writer;
+fi
+
+
+@%:@ Check whether --with-xinclude was given.
+if test "${with_xinclude+set}" = set; then :
+ withval=$with_xinclude;
+fi
+
+
+@%:@ Check whether --with-xpath was given.
+if test "${with_xpath+set}" = set; then :
+ withval=$with_xpath;
+fi
+
+
+@%:@ Check whether --with-xptr was given.
+if test "${with_xptr+set}" = set; then :
+ withval=$with_xptr;
+fi
+
+
+@%:@ Check whether --with-modules was given.
+if test "${with_modules+set}" = set; then :
+ withval=$with_modules;
+fi
+
+
+@%:@ Check whether --with-zlib was given.
+if test "${with_zlib+set}" = set; then :
+ withval=$with_zlib;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ Z_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+@%:@ Check whether --with-lzma was given.
+if test "${with_lzma+set}" = set; then :
+ withval=$with_lzma;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ LZMA_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+@%:@ Check whether --with-coverage was given.
+if test "${with_coverage+set}" = set; then :
+ withval=$with_coverage;
+fi
+
+
+@%:@ Check whether --enable-rebuild-docs was given.
+if test "${enable_rebuild_docs+set}" = set; then :
+ enableval=$enable_rebuild_docs;
+fi
+
+if test "$enable_rebuild_docs" = "yes" -a "$srcdir" != "."; then
+ as_fn_error $? "cannot rebuild docs when builddir != srcdir" "$LINENO" 5
+fi
+ if test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"; then
+ REBUILD_DOCS_TRUE=
+ REBUILD_DOCS_FALSE='#'
+else
+ REBUILD_DOCS_TRUE='#'
+ REBUILD_DOCS_FALSE=
+fi
+
+
+if test "$with_schemas" = "yes"
+then
+ with_pattern=yes
+ with_regexps=yes
+fi
+if test "$with_schematron" = "yes"
+then
+ with_pattern=yes
+ with_tree=yes
+ with_xpath=yes
+fi
+if test "$with_reader" = "yes"
+then
+ with_push=yes
+fi
+if test "$with_xptr" = "yes"
+then
+ with_xpath=yes
+fi
+if test "$with_minimum" = "yes"
+then
+ echo "Configuring for a minimal library"
+ if test "$with_c14n" = ""
+ then
+ with_c14n=no
+ fi
+ if test "$with_catalog" = ""
+ then
+ with_catalog=no
+ fi
+ echo So far so good!
+ if test "$with_debug" = ""
+ then
+ with_debug=no
+ fi
+ if test "$with_docbook" = ""
+ then
+ with_docbook=no
+ fi
+ if test "$with_fexceptions" = ""
+ then
+ with_fexceptions=no
+ fi
+ if test "$with_ftp" = ""
+ then
+ with_ftp=no
+ fi
+ if test "$with_history" = ""
+ then
+ with_history=no
+ fi
+ if test "$with_html" = ""
+ then
+ with_html=no
+ fi
+ if test "$with_http" = ""
+ then
+ with_http=no
+ fi
+ if test "$with_iconv" = ""
+ then
+ with_iconv=no
+ fi
+ if test "$with_iso8859x" = ""
+ then
+ with_iso8859x=no
+ fi
+ if test "$with_legacy" = ""
+ then
+ with_legacy=no
+ fi
+ if test "$with_mem_debug" = ""
+ then
+ with_mem_debug=no
+ fi
+ if test "$with_output" = ""
+ then
+ with_output=no
+ fi
+ if test "$with_pattern" = ""
+ then
+ with_pattern=no
+ fi
+ if test "$with_push" = ""
+ then
+ with_push=no
+ fi
+ if test "$with_python" = ""
+ then
+ with_python=no
+ fi
+ if test "$with_reader" = ""
+ then
+ with_reader=no
+ fi
+ if test "$with_readline" = ""
+ then
+ with_readline=no
+ fi
+ if test "$with_regexps" = ""
+ then
+ with_regexps=no
+ fi
+ if test "$with_run_debug" = ""
+ then
+ with_run_debug=no
+ fi
+ if test "$with_sax1" = ""
+ then
+ with_sax1=no
+ fi
+ if test "$with_schemas" = ""
+ then
+ with_schemas=no
+ fi
+ if test "$with_schematron" = ""
+ then
+ with_schematron=no
+ fi
+ if test "$with_threads" = ""
+ then
+ with_threads=no
+ fi
+ if test "$with_thread_alloc" = ""
+ then
+ with_thread_alloc=no
+ fi
+ if test "$with_tree" = ""
+ then
+ with_tree=no
+ fi
+ if test "$with_valid" = ""
+ then
+ with_valid=no
+ fi
+ if test "$with_writer" = ""
+ then
+ with_writer=no
+ fi
+ if test "$with_xinclude" = ""
+ then
+ with_xinclude=no
+ fi
+ if test "$with_xpath" = ""
+ then
+ with_xpath=no
+ fi
+ if test "$with_xptr" = ""
+ then
+ with_xptr=no
+ fi
+ if test "$with_zlib" = ""
+ then
+ with_zlib=no
+ fi
+ if test "$with_modules" = ""
+ then
+ with_modules=no
+ fi
+fi
+
+echo Checking zlib
+
+
+WITH_ZLIB=0
+if test "$with_zlib" = "no"; then
+ echo "Disabling zlib compression support"
+else
+ # Don't run pkg-config if with_zlib contains a path.
+ if test "x$Z_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Z" >&5
+$as_echo_n "checking for Z... " >&6; }
+
+if test -n "$Z_CFLAGS"; then
+ pkg_cv_Z_CFLAGS="$Z_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "zlib") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Z_CFLAGS=`$PKG_CONFIG --cflags "zlib" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$Z_LIBS"; then
+ pkg_cv_Z_LIBS="$Z_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "zlib") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Z_LIBS=`$PKG_CONFIG --libs "zlib" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ Z_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "zlib" 2>&1`
+ else
+ Z_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "zlib" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$Z_PKG_ERRORS" >&5
+
+ :
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ :
+else
+ Z_CFLAGS=$pkg_cv_Z_CFLAGS
+ Z_LIBS=$pkg_cv_Z_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ZLIB=1
+fi
+ fi
+
+ if test "$WITH_ZLIB" = "0"; then
+ for ac_header in zlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_zlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ZLIB_H 1
+_ACEOF
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5
+$as_echo_n "checking for gzread in -lz... " >&6; }
+if ${ac_cv_lib_z_gzread+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gzread ();
+int
+main ()
+{
+return gzread ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_z_gzread=yes
+else
+ ac_cv_lib_z_gzread=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5
+$as_echo "$ac_cv_lib_z_gzread" >&6; }
+if test "x$ac_cv_lib_z_gzread" = xyes; then :
+
+ WITH_ZLIB=1
+ if test "x${Z_DIR}" != "x"; then
+ Z_CFLAGS="-I${Z_DIR}/include"
+ Z_LIBS="-L${Z_DIR}/lib -lz"
+ case ${host} in
+ *-*-solaris*)
+ Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
+ ;;
+ esac
+ else
+ Z_LIBS="-lz"
+ fi
+fi
+
+
+fi
+
+done
+
+ fi
+fi
+
+
+
+
+
+echo Checking lzma
+
+
+WITH_LZMA=0
+if test "$with_lzma" = "no"; then
+ echo "Disabling lzma compression support"
+else
+ # Don't run pkg-config if with_lzma contains a path.
+ if test "x$LZMA_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LZMA" >&5
+$as_echo_n "checking for LZMA... " >&6; }
+
+if test -n "$LZMA_CFLAGS"; then
+ pkg_cv_LZMA_CFLAGS="$LZMA_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LZMA_CFLAGS=`$PKG_CONFIG --cflags "liblzma" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$LZMA_LIBS"; then
+ pkg_cv_LZMA_LIBS="$LZMA_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LZMA_LIBS=`$PKG_CONFIG --libs "liblzma" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LZMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "liblzma" 2>&1`
+ else
+ LZMA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "liblzma" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LZMA_PKG_ERRORS" >&5
+
+ :
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ :
+else
+ LZMA_CFLAGS=$pkg_cv_LZMA_CFLAGS
+ LZMA_LIBS=$pkg_cv_LZMA_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_LZMA=1
+fi
+ fi
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "$WITH_LZMA" = "0"; then
+ for ac_header in lzma.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default"
+if test "x$ac_cv_header_lzma_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LZMA_H 1
+_ACEOF
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_code in -llzma" >&5
+$as_echo_n "checking for lzma_code in -llzma... " >&6; }
+if ${ac_cv_lib_lzma_lzma_code+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-llzma $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char lzma_code ();
+int
+main ()
+{
+return lzma_code ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_lzma_lzma_code=yes
+else
+ ac_cv_lib_lzma_lzma_code=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_code" >&5
+$as_echo "$ac_cv_lib_lzma_lzma_code" >&6; }
+if test "x$ac_cv_lib_lzma_lzma_code" = xyes; then :
+
+ WITH_LZMA=1
+ if test "x${LZMA_DIR}" != "x"; then
+ LZMA_CFLAGS="-I${LZMA_DIR}/include"
+ LZMA_LIBS="-L${LZMA_DIR}/lib -llzma"
+ else
+ LZMA_LIBS="-llzma"
+ fi
+fi
+
+
+fi
+
+done
+
+ fi
+fi
+
+
+
+
+
+CPPFLAGS=${_cppflags}
+LIBS=${_libs}
+
+echo Checking headers
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+for ac_header in fcntl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default"
+if test "x$ac_cv_header_fcntl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_FCNTL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in unistd.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_UNISTD_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in ctype.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "ctype.h" "ac_cv_header_ctype_h" "$ac_includes_default"
+if test "x$ac_cv_header_ctype_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_CTYPE_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dirent.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "$ac_includes_default"
+if test "x$ac_cv_header_dirent_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DIRENT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in errno.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default"
+if test "x$ac_cv_header_errno_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ERRNO_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in malloc.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default"
+if test "x$ac_cv_header_malloc_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MALLOC_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdarg.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdarg_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDARG_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/stat.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_stat_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_STAT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/types.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_types_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdint.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in inttypes.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_INTTYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in time.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_time_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_TIME_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in math.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default"
+if test "x$ac_cv_header_math_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MATH_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in limits.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default"
+if test "x$ac_cv_header_limits_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LIMITS_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in float.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default"
+if test "x$ac_cv_header_float_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_FLOAT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/socket.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_sys_socket_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_SOCKET_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in netinet/in.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_netinet_in_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_NETINET_IN_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in arpa/inet.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#if HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+# endif
+
+"
+if test "x$ac_cv_header_arpa_inet_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ARPA_INET_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in netdb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default"
+if test "x$ac_cv_header_netdb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_NETDB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/time.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_time_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TIME_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/select.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_select_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_SELECT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in poll.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "poll.h" "ac_cv_header_poll_h" "$ac_includes_default"
+if test "x$ac_cv_header_poll_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_POLL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/mman.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mman_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_MMAN_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/timeb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_timeb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TIMEB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in signal.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default"
+if test "x$ac_cv_header_signal_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SIGNAL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in arpa/nameser.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_arpa_nameser_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ARPA_NAMESER_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in resolv.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#if HAVE_NETINET_IN_H
+# include <netinet/in.h>
+# endif
+#if HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+# endif
+
+"
+if test "x$ac_cv_header_resolv_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_RESOLV_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dl.h" "ac_cv_header_dl_h" "$ac_includes_default"
+if test "x$ac_cv_header_dl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+echo Checking types
+
+ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t"
+case $ac_cv_c_uint32_t in #(
+ no|yes) ;; #(
+ *)
+
+$as_echo "@%:@define _UINT32_T 1" >>confdefs.h
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define uint32_t $ac_cv_c_uint32_t
+_ACEOF
+;;
+ esac
+
+
+
+echo Checking libraries
+
+for ac_func in strftime
+do :
+ ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
+if test "x$ac_cv_func_strftime" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRFTIME 1
+_ACEOF
+
+else
+ # strftime is in -lintl on SCO UNIX.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5
+$as_echo_n "checking for strftime in -lintl... " >&6; }
+if ${ac_cv_lib_intl_strftime+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char strftime ();
+int
+main ()
+{
+return strftime ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_intl_strftime=yes
+else
+ ac_cv_lib_intl_strftime=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5
+$as_echo "$ac_cv_lib_intl_strftime" >&6; }
+if test "x$ac_cv_lib_intl_strftime" = xyes; then :
+ $as_echo "@%:@define HAVE_STRFTIME 1" >>confdefs.h
+
+LIBS="-lintl $LIBS"
+fi
+
+fi
+done
+
+for ac_func in strftime localtime gettimeofday ftime
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in stat signal
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in rand rand_r srand time
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in isascii mmap munmap putenv
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
+$as_echo_n "checking for va_copy... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+va_list ap1,ap2;
+int
+main ()
+{
+va_copy(ap1,ap2);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_va_copy=yes
+else
+ have_va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_va_copy" >&5
+$as_echo "$have_va_copy" >&6; }
+if test x"$have_va_copy" = x"yes"; then
+
+$as_echo "@%:@define HAVE_VA_COPY 1" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __va_copy" >&5
+$as_echo_n "checking for __va_copy... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+ va_list ap1,ap2;
+int
+main ()
+{
+__va_copy(ap1,ap2);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have___va_copy=yes
+else
+ have___va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have___va_copy" >&5
+$as_echo "$have___va_copy" >&6; }
+ if test x"$have___va_copy" = x"yes"; then
+
+$as_echo "@%:@define HAVE___VA_COPY 1" >>confdefs.h
+
+ fi
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether va_list is an array type" >&5
+$as_echo_n "checking whether va_list is an array type... " >&6; }
+cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stdarg.h>
+void a(va_list * ap) {}
+int main(void) {
+
+va_list ap1, ap2; a(&ap1); ap2 = (va_list) ap1
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "@%:@define VA_LIST_IS_ARRAY 1" >>confdefs.h
+
+fi
+rm -f conftest*
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostent" >&5
+$as_echo_n "checking for library containing gethostent... " >&6; }
+if ${ac_cv_search_gethostent+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostent ();
+int
+main ()
+{
+return gethostent ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' nsl; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_gethostent=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_gethostent+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_gethostent+:} false; then :
+
+else
+ ac_cv_search_gethostent=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostent" >&5
+$as_echo "$ac_cv_search_gethostent" >&6; }
+ac_res=$ac_cv_search_gethostent
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket net network; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
+$as_echo "$ac_cv_search_setsockopt" >&6; }
+ac_res=$ac_cv_search_setsockopt
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing connect" >&5
+$as_echo_n "checking for library containing connect... " >&6; }
+if ${ac_cv_search_connect+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' inet; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_connect=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_connect+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_connect+:} false; then :
+
+else
+ ac_cv_search_connect=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_connect" >&5
+$as_echo "$ac_cv_search_connect" >&6; }
+ac_res=$ac_cv_search_connect
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of socket length (socklen_t)" >&5
+$as_echo_n "checking for type of socket length (socklen_t)... " >&6; }
+cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: socklen_t *" >&5
+$as_echo "socklen_t *" >&6; }
+ XML_SOCKLEN_T=socklen_t
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: size_t *" >&5
+$as_echo "size_t *" >&6; }
+ XML_SOCKLEN_T=size_t
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: int *" >&5
+$as_echo "int *" >&6; }
+ XML_SOCKLEN_T=int
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not determine" >&5
+$as_echo "$as_me: WARNING: could not determine" >&2;}
+ XML_SOCKLEN_T="int"
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+
+cat >>confdefs.h <<_ACEOF
+@%:@define XML_SOCKLEN_T $XML_SOCKLEN_T
+_ACEOF
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for const gethostbyname() argument" >&5
+$as_echo_n "checking for const gethostbyname() argument... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <netdb.h>
+int
+main ()
+{
+(void)gethostbyname((const char *)"");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_gethostbyname_const_arg=yes
+else
+ have_gethostbyname_const_arg=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gethostbyname_const_arg" >&5
+$as_echo "$have_gethostbyname_const_arg" >&6; }
+if test x"$have_gethostbyname_const_arg" = x"yes"; then
+
+$as_echo "@%:@define GETHOSTBYNAME_ARG_CAST /**/" >>confdefs.h
+
+else
+
+$as_echo "@%:@define GETHOSTBYNAME_ARG_CAST (char *)" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for const send() second argument" >&5
+$as_echo_n "checking for const send() second argument... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/socket.h>
+int
+main ()
+{
+(void)send(1,(const char *)"",1,1);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_send_const_arg2=yes
+else
+ have_send_const_arg2=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_send_const_arg2" >&5
+$as_echo "$have_send_const_arg2" >&6; }
+if test x"$have_send_const_arg2" = x"yes"; then
+
+$as_echo "@%:@define SEND_ARG2_CAST /**/" >>confdefs.h
+
+else
+
+$as_echo "@%:@define SEND_ARG2_CAST (char *)" >>confdefs.h
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable IPv6" >&5
+$as_echo_n "checking whether to enable IPv6... " >&6; }
+@%:@ Check whether --enable-ipv6 was given.
+if test "${enable_ipv6+set}" = set; then :
+ enableval=$enable_ipv6;
+else
+ enable_ipv6=yes
+fi
+
+if test "$with_minimum" = "yes"
+then
+ enable_ipv6=no
+fi
+if test $enable_ipv6 = yes; then
+ have_ipv6=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss;
+ socket(AF_INET6, SOCK_STREAM, 0)
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_ipv6=yes
+else
+ have_ipv6=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ipv6" >&5
+$as_echo "$have_ipv6" >&6; }
+
+ if test $have_ipv6 = yes; then
+
+$as_echo "@%:@define SUPPORT_IP6 /**/" >>confdefs.h
+
+ have_broken_ss_family=no
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr::ss_family" >&5
+$as_echo_n "checking struct sockaddr::ss_family... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss ;
+ ss.ss_family = 0 ;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_ss_family=yes
+else
+ have_ss_family=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ss_family" >&5
+$as_echo "$have_ss_family" >&6; }
+ if test x$have_ss_family = xno ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking broken struct sockaddr::ss_family" >&5
+$as_echo_n "checking broken struct sockaddr::ss_family... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss ;
+ ss.__ss_family = 0 ;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_broken_ss_family=yes
+else
+ have_broken_ss_family=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_broken_ss_family" >&5
+$as_echo "$have_broken_ss_family" >&6; }
+ if test x$have_broken_ss_family = xyes ; then
+
+$as_echo "@%:@define HAVE_BROKEN_SS_FAMILY /**/" >>confdefs.h
+
+
+$as_echo "@%:@define ss_family __ss_family" >>confdefs.h
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ss_family and __ss_family not found" >&5
+$as_echo "$as_me: WARNING: ss_family and __ss_family not found" >&2;}
+ fi
+ fi
+
+ have_getaddrinfo=no
+ ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo"
+if test "x$ac_cv_func_getaddrinfo" = xyes; then :
+ have_getaddrinfo=yes
+fi
+
+ if test $have_getaddrinfo != yes; then
+ for lib in bsd socket inet; do
+ as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_getaddrinfo" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -l$lib" >&5
+$as_echo_n "checking for getaddrinfo in -l$lib... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$lib $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char getaddrinfo ();
+int
+main ()
+{
+return getaddrinfo ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+else
+ eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ LIBS="$LIBS -l$lib";have_getaddrinfo=yes;break
+fi
+
+ done
+ fi
+
+ if test $have_getaddrinfo = yes; then
+
+$as_echo "@%:@define HAVE_GETADDRINFO /**/" >>confdefs.h
+
+ fi
+ fi
+fi
+
+
+ac_fn_c_check_func "$LINENO" "isnan" "ac_cv_func_isnan"
+if test "x$ac_cv_func_isnan" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISNAN /**/" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnan in -lm" >&5
+$as_echo_n "checking for isnan in -lm... " >&6; }
+if ${ac_cv_lib_m_isnan+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char isnan ();
+int
+main ()
+{
+return isnan ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_m_isnan=yes
+else
+ ac_cv_lib_m_isnan=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_isnan" >&5
+$as_echo "$ac_cv_lib_m_isnan" >&6; }
+if test "x$ac_cv_lib_m_isnan" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISNAN /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ac_fn_c_check_func "$LINENO" "isinf" "ac_cv_func_isinf"
+if test "x$ac_cv_func_isinf" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISINF /**/" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf in -lm" >&5
+$as_echo_n "checking for isinf in -lm... " >&6; }
+if ${ac_cv_lib_m_isinf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char isinf ();
+int
+main ()
+{
+return isinf ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_m_isinf=yes
+else
+ ac_cv_lib_m_isinf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_isinf" >&5
+$as_echo "$ac_cv_lib_m_isinf" >&6; }
+if test "x$ac_cv_lib_m_isinf" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISINF /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+XML_LIBDIR='-L${libdir}'
+XML_INCLUDEDIR='-I${includedir}/libxml2'
+
+XML_CFLAGS=""
+RDL_LIBS=""
+
+if test "${GCC}" != "yes" ; then
+ case "${host}" in
+ hppa*-*-hpux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000"
+ ;;
+ *-dec-osf* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
+ ;;
+ alpha*-*-linux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
+ ;;
+ esac
+else
+ if test "$with_fexceptions" = "yes"
+ then
+ #
+ # Not activated by default because this inflates the code size
+ # Used to allow propagation of C++ exceptions through the library
+ #
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions"
+ fi
+
+ # warnings we'd like to see
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+ # warnings we'd like to supress
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args"
+ case "${host}" in
+ alpha*-*-linux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
+ ;;
+ alpha*-*-osf* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
+ ;;
+ esac
+fi
+case ${host} in
+ *-*-solaris*)
+ XML_LIBDIR="${XML_LIBDIR} -R${libdir}"
+ ;;
+ hppa*-hp-mpeix)
+ NEED_TRIO=1
+ ;;
+ *-*-mingw* | *-*-cygwin* | *-*-msvc* )
+ # If the host is Windows, and shared libraries are disabled, we
+ # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to
+ # work properly (without it, xmlexports.h would force the use of
+ # DLL imports, which obviously aren't present in a static
+ # library).
+ if test "x$enable_shared" = "xno"; then
+ XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC"
+ fi
+ ;;
+esac
+
+
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+PYTHON_SITE_PACKAGES=
+PYTHON_TESTS=
+pythondir=
+if test "$with_python" != "no" ; then
+ if test -x "$with_python/bin/python"
+ then
+ echo Found python in $with_python/bin/python
+ PYTHON="$with_python/bin/python"
+ else
+ if test -x "$with_python/python.exe"
+ then
+ echo Found python in $with_python/python.exe
+ PYTHON="$with_python/python.exe"
+ else
+ if test -x "$with_python"
+ then
+ echo Found python in $with_python
+ PYTHON="$with_python"
+ else
+ if test -x "$PYTHON"
+ then
+ echo Found python in environment PYTHON=$PYTHON
+ with_python=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
+ else
+ # Extract the first word of "python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5", so it can be a program name with args.
+set dummy python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PYTHON+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PYTHON in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+ fi
+ fi
+ fi
+ if test "$PYTHON" != ""
+ then
+ PYTHON_VERSION=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_version())"`
+ PYTHON_INCLUDES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"`
+# does not work as it produce a /usr/lib/python path instead of/usr/lib64/python
+#
+# PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ echo Found Python version $PYTHON_VERSION
+ fi
+ if test "$PYTHON_VERSION" != "" -a "$PYTHON_INCLUDES" = ""
+ then
+ if test -r $with_python/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
+ else
+ if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
+ else
+ if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
+ else
+ if test -r $with_python/include/Python.h
+ then
+ PYTHON_INCLUDES=$with_python/include
+ else
+ echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test "$with_python_install_dir" != ""
+ then
+ PYTHON_SITE_PACKAGES="$with_python_install_dir"
+ fi
+ if test "$PYTHON_VERSION" != "" -a "$PYTHON_SITE_PACKAGES" = ""
+ then
+ if test -d $libdir/python$PYTHON_VERSION/site-packages
+ then
+ PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
+ else
+ if test -d $with_python/lib/site-packages
+ then
+ PYTHON_SITE_PACKAGES=$with_python/lib/site-packages
+ else
+ PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ fi
+ fi
+ fi
+ pythondir='$(PYTHON_SITE_PACKAGES)'
+ PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags`
+else
+ PYTHON=
+fi
+ if test "$PYTHON_INCLUDES" != ""; then
+ WITH_PYTHON_TRUE=
+ WITH_PYTHON_FALSE='#'
+else
+ WITH_PYTHON_TRUE='#'
+ WITH_PYTHON_FALSE=
+fi
+
+if test "$PYTHON_INCLUDES" != ""
+then
+ PYTHON_SUBDIR=python
+else
+ PYTHON_SUBDIR=
+fi
+
+
+
+
+WITH_MODULES=0
+TEST_MODULES=
+
+if test "$with_modules" != "no" ; then
+ case "$host" in
+ *-*-cygwin*)
+ MODULE_EXTENSION=".dll"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lcygwin" >&5
+$as_echo_n "checking for dlopen in -lcygwin... " >&6; }
+if ${ac_cv_lib_cygwin_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcygwin $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_cygwin_dlopen=yes
+else
+ ac_cv_lib_cygwin_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cygwin_dlopen" >&5
+$as_echo "$ac_cv_lib_cygwin_dlopen" >&6; }
+if test "x$ac_cv_lib_cygwin_dlopen" = xyes; then :
+
+ WITH_MODULES=1
+ MODULE_PLATFORM_LIBS=
+
+$as_echo "@%:@define HAVE_DLOPEN /**/" >>confdefs.h
+
+
+fi
+
+ ;;
+ *-*-mingw*)
+ MODULE_EXTENSION=".dll"
+ WITH_MODULES=1
+ ;;
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ libxml_have_shl_load=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+
+ MODULE_PLATFORM_LIBS="-ldld"
+ libxml_have_shl_load=yes
+else
+
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ libxml_have_dlopen=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+
+ MODULE_PLATFORM_LIBS="-ldl"
+ libxml_have_dlopen=yes
+fi
+
+fi
+
+fi
+
+fi
+
+
+ if test "${libxml_have_shl_load}" = "yes"; then
+ MODULE_EXTENSION=".sl"
+ WITH_MODULES=1
+
+$as_echo "@%:@define HAVE_SHLLOAD /**/" >>confdefs.h
+
+ fi
+
+ if test "${libxml_have_dlopen}" = "yes"; then
+ case "${host}" in
+ *-*-hpux* )
+ MODULE_EXTENSION=".sl"
+ ;;
+ * )
+ MODULE_EXTENSION=".so"
+ ;;
+ esac
+
+ WITH_MODULES=1
+
+$as_echo "@%:@define HAVE_DLOPEN /**/" >>confdefs.h
+
+ fi
+ ;;
+ esac
+fi
+
+if test "${WITH_MODULES}" = "1"; then
+ TEST_MODULES="ModuleTests"
+fi
+
+
+
+
+
+
+
+if [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ] || \
+ [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ] || \
+ [ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxml2" ]
+ then
+ if test "$with_minimum" != "yes"
+ then
+ if test "${with_mem_debug}" = "" ; then
+ echo Activating memory debugging
+ with_mem_debug="yes"
+ with_run_debug="yes"
+ fi
+ if test "${with_docbook}" = "" ; then
+ with_docbook="yes"
+ fi
+ fi
+ if test "${GCC}" = "yes" ; then
+ EXTRA_CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
+ fi
+ STATIC_BINARIES="-static"
+else
+ STATIC_BINARIES=
+fi
+
+
+
+if test "${NEED_TRIO}" = "1" ; then
+ echo Adding trio library for string functions
+ WITH_TRIO=1
+else
+ WITH_TRIO=0
+fi
+ if test "${NEED_TRIO}" = "1"; then
+ WITH_TRIO_SOURCES_TRUE=
+ WITH_TRIO_SOURCES_FALSE='#'
+else
+ WITH_TRIO_SOURCES_TRUE='#'
+ WITH_TRIO_SOURCES_FALSE=
+fi
+
+
+
+echo Checking configuration requirements
+
+THREAD_LIBS=""
+BASE_THREAD_LIBS=""
+WITH_THREADS=0
+THREAD_CFLAGS=""
+TEST_THREADS=""
+THREADS_W32=""
+WITH_THREAD_ALLOC=0
+
+if test "$with_threads" = "no" ; then
+ echo Disabling multithreaded support
+else
+ echo Enabling multithreaded support
+
+ case $host_os in
+ *mingw*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
+ WITH_THREADS="1"
+ THREADS_W32="1"
+ THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS"
+ fi
+ ;;
+ esac
+
+ if test -z "$THREADS_W32"; then
+ if test "$with_threads" = "pthread" || test "$with_threads" = "" || test "$with_threads" = "yes" ; then
+ ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
+if test "x$ac_cv_header_pthread_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in -lpthread" >&5
+$as_echo_n "checking for pthread_join in -lpthread... " >&6; }
+if ${ac_cv_lib_pthread_pthread_join+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_join ();
+int
+main ()
+{
+return pthread_join ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_pthread_pthread_join=yes
+else
+ ac_cv_lib_pthread_pthread_join=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_join" >&5
+$as_echo "$ac_cv_lib_pthread_pthread_join" >&6; }
+if test "x$ac_cv_lib_pthread_pthread_join" = xyes; then :
+
+ THREAD_LIBS="-lpthread"
+
+$as_echo "@%:@define HAVE_LIBPTHREAD /**/" >>confdefs.h
+
+
+$as_echo "@%:@define HAVE_PTHREAD_H /**/" >>confdefs.h
+
+ WITH_THREADS="1"
+fi
+
+fi
+
+
+ fi
+ fi
+
+ case $host_os in
+ *cygwin*) THREAD_LIBS=""
+ ;;
+ *beos*) WITH_THREADS="1"
+ THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
+ ;;
+ *linux*)
+ if test "${GCC}" = "yes" ; then
+ GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
+ GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'`
+ GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[0-9]*\.++' | sed 's+\..*++'`
+ if test "${THREAD_LIBS}" = "-lpthread" ; then
+ if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null
+ then
+ THREAD_LIBS=""
+ BASE_THREAD_LIBS="-lpthread"
+ else
+ if expr ${GCC_MAJOR} \> 3 > /dev/null
+ then
+ THREAD_LIBS=""
+ BASE_THREAD_LIBS="-lpthread"
+ else
+ echo old GCC disabling weak symbols for pthread
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "$WITH_THREADS" = "1" ; then
+ THREAD_CFLAGS="$THREAD_CFLAGS -D_REENTRANT"
+ TEST_THREADS="Threadtests"
+ fi
+fi
+if test "$with_thread_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then
+ WITH_THREAD_ALLOC=1
+fi
+
+
+
+
+
+
+
+ if test -n "$THREADS_W32"; then
+ THREADS_W32_TRUE=
+ THREADS_W32_FALSE='#'
+else
+ THREADS_W32_TRUE='#'
+ THREADS_W32_FALSE=
+fi
+
+
+if test "$with_history" = "yes" ; then
+ echo Enabling xmllint shell history
+ unset tcap
+ for termlib in ncurses curses termcap terminfo termlib; do
+ as_ac_Lib=`$as_echo "ac_cv_lib_${termlib}''_tputs" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tputs in -l${termlib}" >&5
+$as_echo_n "checking for tputs in -l${termlib}... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${termlib} $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char tputs ();
+int
+main ()
+{
+return tputs ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+else
+ eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ tcap="-l$termlib"
+fi
+
+ test -n "$tcap" && break
+ done
+
+ ac_fn_c_check_header_mongrel "$LINENO" "readline/history.h" "ac_cv_header_readline_history_h" "$ac_includes_default"
+if test "x$ac_cv_header_readline_history_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -lhistory" >&5
+$as_echo_n "checking for append_history in -lhistory... " >&6; }
+if ${ac_cv_lib_history_append_history+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lhistory $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char append_history ();
+int
+main ()
+{
+return append_history ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_history_append_history=yes
+else
+ ac_cv_lib_history_append_history=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_history_append_history" >&5
+$as_echo "$ac_cv_lib_history_append_history" >&6; }
+if test "x$ac_cv_lib_history_append_history" = xyes; then :
+
+ RDL_LIBS="-lhistory"
+
+$as_echo "@%:@define HAVE_LIBHISTORY /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ ac_fn_c_check_header_mongrel "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default"
+if test "x$ac_cv_header_readline_readline_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5
+$as_echo_n "checking for readline in -lreadline... " >&6; }
+if ${ac_cv_lib_readline_readline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lreadline $tcap $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char readline ();
+int
+main ()
+{
+return readline ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_readline_readline=yes
+else
+ ac_cv_lib_readline_readline=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5
+$as_echo "$ac_cv_lib_readline_readline" >&6; }
+if test "x$ac_cv_lib_readline_readline" = xyes; then :
+
+ RDL_LIBS="-lreadline $RDL_LIBS $tcap"
+
+$as_echo "@%:@define HAVE_LIBREADLINE /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ if test -n "$RDL_DIR" -a -n "$RDL_LIBS"; then
+ CPPFLAGS="$CPPFLAGS -I${RDL_DIR}/include"
+ RDL_LIBS="-L${RDL_DIR}/lib $RDL_LIBS"
+ fi
+fi
+
+if test "$with_tree" = "no" ; then
+ echo Disabling DOM like tree manipulation APIs
+ WITH_TREE=0
+else
+ WITH_TREE=1
+fi
+
+
+if test "$with_ftp" = "no" ; then
+ echo Disabling FTP support
+ WITH_FTP=0
+ FTP_OBJ=
+else
+ WITH_FTP=1
+ FTP_OBJ=nanoftp.o
+fi
+
+
+
+if test "$with_http" = "no" ; then
+ echo Disabling HTTP support
+ WITH_HTTP=0
+ HTTP_OBJ=
+else
+ WITH_HTTP=1
+ HTTP_OBJ=nanohttp.o
+fi
+
+
+
+if test "$with_legacy" = "no" ; then
+ echo Disabling deprecated APIs
+ WITH_LEGACY=0
+else
+ WITH_LEGACY=1
+fi
+
+
+if test "$with_reader" = "no" ; then
+ echo Disabling the xmlReader parsing interface
+ WITH_READER=0
+ READER_TEST=
+else
+ WITH_READER=1
+ READER_TEST=Readertests
+ if test "$with_push" = "no" ; then
+ echo xmlReader requires Push interface - enabling it
+ with_push=yes
+ fi
+fi
+
+
+
+if test "$with_writer" = "no" ; then
+ echo Disabling the xmlWriter saving interface
+ WITH_WRITER=0
+# WRITER_TEST=
+else
+ WITH_WRITER=1
+# WRITER_TEST=Writertests
+ if test "$with_push" = "no" ; then
+ echo xmlWriter requires Push interface - enabling it
+ with_push=yes
+ fi
+ if test "$with_output" = "no" ; then
+ echo xmlWriter requires Output interface - enabling it
+ with_output=yes
+ fi
+fi
+
+#AC_SUBST(WRITER_TEST)
+
+if test "$with_pattern" = "no" ; then
+ echo Disabling the xmlPattern parsing interface
+ WITH_PATTERN=0
+ TEST_PATTERN=
+else
+ WITH_PATTERN=1
+ TEST_PATTERN=Patterntests
+fi
+
+
+
+if test "$with_sax1" = "no" ; then
+ echo Disabling the older SAX1 interface
+ WITH_SAX1=0
+ TEST_SAX=
+else
+ WITH_SAX1=1
+ TEST_SAX=SAXtests
+fi
+
+ if test "${WITH_TRIO}" = "1"; then
+ WITH_SAX1_SOURCES_TRUE=
+ WITH_SAX1_SOURCES_FALSE='#'
+else
+ WITH_SAX1_SOURCES_TRUE='#'
+ WITH_SAX1_SOURCES_FALSE=
+fi
+
+
+
+if test "$with_push" = "no" ; then
+ echo Disabling the PUSH parser interfaces
+ WITH_PUSH=0
+ TEST_PUSH=
+else
+ WITH_PUSH=1
+ TEST_PUSH="XMLPushtests"
+fi
+
+
+
+if test "$with_html" = "no" ; then
+ echo Disabling HTML support
+ WITH_HTML=0
+ HTML_OBJ=
+ TEST_HTML=
+else
+ WITH_HTML=1
+ HTML_OBJ="HTMLparser.o HTMLtree.o"
+ TEST_HTML=HTMLtests
+ if test "$with_push" != "no" ; then
+ TEST_PHTML=HTMLPushtests
+ else
+ TEST_PHTML=
+ fi
+fi
+
+
+
+
+
+if test "$with_valid" = "no" ; then
+ echo Disabling DTD validation support
+ WITH_VALID=0
+ TEST_VALID=
+ TEST_VTIME=
+else
+ WITH_VALID=1
+ TEST_VALID=Validtests
+ TEST_VTIME=VTimingtests
+fi
+
+
+
+
+if test "$with_catalog" = "no" ; then
+ echo Disabling Catalog support
+ WITH_CATALOG=0
+ CATALOG_OBJ=
+ TEST_CATALOG=
+else
+ WITH_CATALOG=1
+ CATALOG_OBJ="catalog.o"
+ TEST_CATALOG=Catatests
+fi
+
+
+
+
+if test "$with_docbook" = "no" ; then
+ echo Disabling Docbook support
+ WITH_DOCB=0
+ DOCB_OBJ=
+else
+ WITH_DOCB=1
+ DOCB_OBJ="DOCBparser.o"
+fi
+
+
+
+
+if test "$with_xptr" = "no" ; then
+ echo Disabling XPointer support
+ WITH_XPTR=0
+ XPTR_OBJ=
+ TEST_XPTR=
+else
+ WITH_XPTR=1
+ XPTR_OBJ=xpointer.o
+ TEST_XPTR=XPtrtests
+ if test "$with_xpath" = "no" ; then
+ echo XPointer requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_c14n" = "no" ; then
+ echo Disabling C14N support
+ WITH_C14N=0
+ C14N_OBJ=
+ TEST_C14N=
+else
+ WITH_C14N=1
+ C14N_OBJ="c14n.c"
+ TEST_C14N=C14Ntests
+ if test "$with_xpath" = "no" ; then
+ echo C14N requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_xinclude" = "no" ; then
+ echo Disabling XInclude support
+ WITH_XINCLUDE=0
+ XINCLUDE_OBJ=
+ with_xinclude="no"
+ TEST_XINCLUDE=
+else
+ WITH_XINCLUDE=1
+ XINCLUDE_OBJ=xinclude.o
+ TEST_XINCLUDE=XIncludetests
+ if test "$with_xpath" = "no" ; then
+ echo XInclude requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_xptr" = "" -a "$with_xpath" = "no" ; then
+ with_xptr=no
+fi
+
+if test "$with_schematron" = "" -a "$with_xpath" = "no" ; then
+ with_schematron=no
+fi
+
+if test "$with_schematron" = "no" ; then
+ echo "Disabling Schematron support"
+ WITH_SCHEMATRON=0
+ TEST_SCHEMATRON=
+else
+ echo "Enabled Schematron support"
+ WITH_SCHEMATRON=1
+ TEST_SCHEMATRON="Schematrontests"
+ with_xpath=yes
+ with_pattern=yes
+ with_schematron=yes
+fi
+
+
+
+if test "$with_xpath" = "no" ; then
+ echo Disabling XPATH support
+ WITH_XPATH=0
+ XPATH_OBJ=
+ TEST_XPATH=
+else
+ WITH_XPATH=1
+ XPATH_OBJ=xpath.o
+ TEST_XPATH=XPathtests
+fi
+
+
+
+
+if test "$with_output" = "no" ; then
+ echo Disabling serialization/saving support
+ WITH_OUTPUT=0
+else
+ WITH_OUTPUT=1
+fi
+
+
+WITH_ICONV=0
+if test "$with_iconv" = "no" ; then
+ echo Disabling ICONV support
+else
+ if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_iconv/include"
+ # Export this since our headers include iconv.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_iconv/include"
+ ICONV_LIBS="-L$with_iconv/lib"
+ fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default"
+if test "x$ac_cv_header_iconv_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+
+iconv_t cd = iconv_open ("","");
+iconv (cd, NULL, NULL, NULL, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ICONV=1
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv in -liconv" >&5
+$as_echo_n "checking for iconv in -liconv... " >&6; }
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICONV_LIBS}"
+ LIBS="${LIBS} -liconv"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+
+iconv_t cd = iconv_open ("","");
+iconv (cd, NULL, NULL, NULL, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ICONV=1
+ ICONV_LIBS="${ICONV_LIBS} -liconv"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+
+ if test "$WITH_ICONV" = "1" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+ if ${xml_cv_iconv_arg2+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ xml_cv_iconv_arg2=""
+else
+ xml_cv_iconv_arg2="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+ xml_cv_iconv_decl="extern size_t iconv (iconv_t cd, $xml_cv_iconv_arg2 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${xml_xxx:-
+ }$xml_cv_iconv_decl" >&5
+$as_echo "${xml_xxx:-
+ }$xml_cv_iconv_decl" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+@%:@define ICONV_CONST $xml_cv_iconv_arg2
+_ACEOF
+
+ fi
+fi
+case "$host" in
+ *mingw*) M_LIBS=""
+ ;;
+ *beos*) M_LIBS=""
+ ;;
+ *haiku*) M_LIBS=""
+ ;;
+ *) M_LIBS="-lm"
+ ;;
+esac
+
+
+WITH_ICU=0
+ICU_LIBS=""
+if test "$with_icu" != "yes" ; then
+ echo Disabling ICU support
+else
+ # Try pkg-config first so that static linking works.
+ # If this succeeeds, we ignore the WITH_ICU directory.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ICU" >&5
+$as_echo_n "checking for ICU... " >&6; }
+
+if test -n "$ICU_CFLAGS"; then
+ pkg_cv_ICU_CFLAGS="$ICU_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-i18n\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "icu-i18n") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_ICU_CFLAGS=`$PKG_CONFIG --cflags "icu-i18n" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$ICU_LIBS"; then
+ pkg_cv_ICU_LIBS="$ICU_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-i18n\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "icu-i18n") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_ICU_LIBS=`$PKG_CONFIG --libs "icu-i18n" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ ICU_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "icu-i18n" 2>&1`
+ else
+ ICU_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "icu-i18n" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$ICU_PKG_ERRORS" >&5
+
+ have_libicu=no
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ have_libicu=no
+else
+ ICU_CFLAGS=$pkg_cv_ICU_CFLAGS
+ ICU_LIBS=$pkg_cv_ICU_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+fi
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "x$have_libicu" = "xno"; then
+ ICU_CONFIG=icu-config
+ if ${ICU_CONFIG} --cflags >/dev/null 2>&1
+ then
+ ICU_LIBS=`${ICU_CONFIG} --ldflags`
+ have_libicu=yes
+ echo Enabling ICU support
+ else
+ if test "$with_icu" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_icu"
+ # Export this since our headers include icu.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_icu"
+ fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "unicode/ucnv.h" "ac_cv_header_unicode_ucnv_h" "$ac_includes_default"
+if test "x$ac_cv_header_unicode_ucnv_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icu" >&5
+$as_echo_n "checking for icu... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unicode/ucnv.h>
+int
+main ()
+{
+
+ UConverter *utf = ucnv_open("UTF-8", NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icu in -licucore" >&5
+$as_echo_n "checking for icu in -licucore... " >&6; }
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICU_LIBS}"
+ LIBS="${LIBS} -licucore"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unicode/ucnv.h>
+int
+main ()
+{
+
+ UConverter *utf = ucnv_open("UTF-8", NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+ ICU_LIBS="${ICU_LIBS} -licucore"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+ fi
+ fi
+
+ # Found the library via either method?
+ if test "x$have_libicu" = "xyes"; then
+ WITH_ICU=1
+ fi
+fi
+XML_LIBS="-lxml2"
+XML_PRIVATE_LIBS="$Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $M_LIBS $LIBS"
+XML_LIBTOOLLIBS="libxml2.la"
+
+
+WITH_ISO8859X=1
+if test "$WITH_ICONV" != "1" ; then
+if test "$with_iso8859x" = "no" ; then
+ echo Disabling ISO8859X support
+ WITH_ISO8859X=0
+fi
+fi
+
+
+if test "$with_schemas" = "no" ; then
+ echo "Disabling Schemas/Relax-NG support"
+ WITH_SCHEMAS=0
+ TEST_SCHEMAS=
+else
+ echo "Enabled Schemas/Relax-NG support"
+ WITH_SCHEMAS=1
+ TEST_SCHEMAS="Schemastests Relaxtests"
+ if test "$PYTHON_INCLUDES" != "" ; then
+ PYTHON_TESTS="$PYTHON_TESTS RelaxNGPythonTests SchemasPythonTests"
+ fi
+ with_regexps=yes
+fi
+
+
+
+if test "$with_regexps" = "no" ; then
+ echo Disabling Regexps support
+ WITH_REGEXPS=0
+ TEST_REGEXPS=
+else
+ WITH_REGEXPS=1
+ TEST_REGEXPS="Regexptests Automatatests"
+fi
+
+
+
+if test "$with_debug" = "no" ; then
+ echo Disabling DEBUG support
+ WITH_DEBUG=0
+ DEBUG_OBJ=
+ TEST_DEBUG=
+else
+ WITH_DEBUG=1
+ DEBUG_OBJ=debugXML.o
+ TEST_DEBUG=Scripttests
+fi
+
+
+
+
+if test "$with_mem_debug" = "yes" ; then
+ if test "$with_thread_alloc" = "yes" ; then
+ echo Disabling memory debug - cannot use mem-debug with thread-alloc!
+ WITH_MEM_DEBUG=0
+ else
+ echo Enabling memory debug support
+ WITH_MEM_DEBUG=1
+ fi
+else
+ WITH_MEM_DEBUG=0
+fi
+
+
+if test "$with_run_debug" = "yes" ; then
+ echo Enabling runtime debug support
+ WITH_RUN_DEBUG=1
+else
+ WITH_RUN_DEBUG=0
+fi
+
+
+WIN32_EXTRA_LIBADD=
+WIN32_EXTRA_LDFLAGS=
+CYGWIN_EXTRA_LDFLAGS=
+CYGWIN_EXTRA_PYTHON_LIBADD=
+WIN32_EXTRA_PYTHON_LIBADD=
+case "$host" in
+ *-*-mingw*)
+ CPPFLAGS="$CPPFLAGS -DWIN32"
+ WIN32_EXTRA_LIBADD="-lws2_32"
+ WIN32_EXTRA_LDFLAGS="-no-undefined"
+ if test "${PYTHON}" != ""
+ then
+ case "$host" in
+ *-w64-mingw*)
+ WIN32_EXTRA_PYTHON_LIBADD="-shrext .pyd -L${pythondir}/../../lib -lpython${PYTHON_VERSION}"
+ ;;
+ *)
+ WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)"
+ ;;
+ esac
+ fi
+ ;;
+ *-*-cygwin*)
+ CYGWIN_EXTRA_LDFLAGS="-no-undefined"
+ if test "${PYTHON}" != ""
+ then
+ CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
+ fi
+ ;;
+esac
+
+
+
+
+
+
+for ac_func in printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+ NEED_TRIO=1
+fi
+done
+
+
+if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
+then
+ echo Enabling code coverage for GCC
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage"
+ LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage"
+else
+ echo Disabling code coverage for GCC
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+RELDATE=`date +'%a %b %e %Y'`
+
+
+
+rm -f COPYING.LIB COPYING
+ln -s $srcdir/Copyright COPYING
+
+# keep on one line for cygwin c.f. #130896
+ac_config_files="$ac_config_files libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h libxml-2.0.pc libxml-2.0-uninstalled.pc libxml2-config.cmake"
+
+ac_config_files="$ac_config_files python/setup.py"
+
+ac_config_files="$ac_config_files xml2-config"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIB@&t@OBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_VERSION_SCRIPT_TRUE}" && test -z "${USE_VERSION_SCRIPT_FALSE}"; then
+ as_fn_error $? "conditional \"USE_VERSION_SCRIPT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${REBUILD_DOCS_TRUE}" && test -z "${REBUILD_DOCS_FALSE}"; then
+ as_fn_error $? "conditional \"REBUILD_DOCS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_PYTHON_TRUE}" && test -z "${WITH_PYTHON_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_PYTHON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_TRIO_SOURCES_TRUE}" && test -z "${WITH_TRIO_SOURCES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_TRIO_SOURCES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${THREADS_W32_TRUE}" && test -z "${THREADS_W32_FALSE}"; then
+ as_fn_error $? "conditional \"THREADS_W32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_SAX1_SOURCES_TRUE}" && test -z "${WITH_SAX1_SOURCES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_SAX1_SOURCES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
+@%:@ ----------------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+@%:@ as_fn_executable_p FILE
+@%:@ -----------------------
+@%:@ Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} @%:@ as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
+@%:@@%:@ Running $as_me. @%:@@%:@
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+DLLTOOL \
+sharedlib_from_linklib_cmd \
+AR \
+AR_FLAGS \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
+nm_file_list_spec \
+lt_cv_truncate_bin \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "libxml2.spec") CONFIG_FILES="$CONFIG_FILES libxml2.spec:libxml.spec.in" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
+ "include/libxml/Makefile") CONFIG_FILES="$CONFIG_FILES include/libxml/Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "doc/examples/Makefile") CONFIG_FILES="$CONFIG_FILES doc/examples/Makefile" ;;
+ "doc/devhelp/Makefile") CONFIG_FILES="$CONFIG_FILES doc/devhelp/Makefile" ;;
+ "example/Makefile") CONFIG_FILES="$CONFIG_FILES example/Makefile" ;;
+ "python/Makefile") CONFIG_FILES="$CONFIG_FILES python/Makefile" ;;
+ "python/tests/Makefile") CONFIG_FILES="$CONFIG_FILES python/tests/Makefile" ;;
+ "xstc/Makefile") CONFIG_FILES="$CONFIG_FILES xstc/Makefile" ;;
+ "include/libxml/xmlversion.h") CONFIG_FILES="$CONFIG_FILES include/libxml/xmlversion.h" ;;
+ "libxml-2.0.pc") CONFIG_FILES="$CONFIG_FILES libxml-2.0.pc" ;;
+ "libxml-2.0-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES libxml-2.0-uninstalled.pc" ;;
+ "libxml2-config.cmake") CONFIG_FILES="$CONFIG_FILES libxml2-config.cmake" ;;
+ "python/setup.py") CONFIG_FILES="$CONFIG_FILES python/setup.py" ;;
+ "xml2-config") CONFIG_FILES="$CONFIG_FILES xml2-config" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ case $CONFIG_FILES in @%:@(
+ *\'*) :
+ eval set x "$CONFIG_FILES" ;; @%:@(
+ *) :
+ set x $CONFIG_FILES ;; @%:@(
+ *) :
+ ;;
+esac
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$am_mf" : 'X\(//\)[^/]' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$am_mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$am_mf" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { echo "$as_me:$LINENO: cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles" >&5
+ (cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. Try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ { am_dirpart=; unset am_dirpart;}
+ { am_filepart=; unset am_filepart;}
+ { am_mf=; unset am_mf;}
+ { am_rc=; unset am_rc;}
+ rm -f conftest-deps.mk
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive.
+AR_FLAGS=$lt_AR_FLAGS
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x@S|@2 in
+ x)
+ ;;
+ *:)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+ ;;
+ x:*)
+ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+ ;;
+ *)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in @S|@*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+ ;;
+ "python/setup.py":F) chmod +x python/setup.py ;;
+ "xml2-config":F) chmod +x xml2-config ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+echo Done configuring
diff --git a/libxml2-2.9.10/autom4te.cache/output.2 b/libxml2-2.9.10/autom4te.cache/output.2
new file mode 100644
index 0000000..b745130
--- /dev/null
+++ b/libxml2-2.9.10/autom4te.cache/output.2
@@ -0,0 +1,18811 @@
+@%:@! /bin/sh
+@%:@ Guess values for system-dependent variables and create Makefiles.
+@%:@ Generated by GNU Autoconf 2.69.
+@%:@
+@%:@
+@%:@ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+@%:@
+@%:@
+@%:@ This configure script is free software; the Free Software Foundation
+@%:@ gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in @%:@ ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in @%:@(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in @%:@ ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+
+@%:@ as_fn_executable_p FILE
+@%:@ -----------------------
+@%:@ Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} @%:@ as_fn_executable_p
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
+@%:@ ----------------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIB@&t@OBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+PACKAGE_URL=
+
+ac_unique_file="entities.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIB@&t@OBJS
+PYTHON_TESTS
+RELDATE
+RDL_LIBS
+M_LIBS
+PYTHON_SITE_PACKAGES
+PYTHON_INCLUDES
+PYTHON_VERSION
+HAVE_ISINF
+HAVE_ISNAN
+XML_INCLUDEDIR
+ICONV_LIBS
+XML_LIBTOOLLIBS
+XML_PRIVATE_LIBS
+XML_LIBS
+XML_LIBDIR
+XML_CFLAGS
+EXTRA_CFLAGS
+CYGWIN_EXTRA_PYTHON_LIBADD
+CYGWIN_EXTRA_LDFLAGS
+WIN32_EXTRA_PYTHON_LIBADD
+WIN32_EXTRA_LDFLAGS
+WIN32_EXTRA_LIBADD
+WITH_RUN_DEBUG
+WITH_MEM_DEBUG
+TEST_DEBUG
+DEBUG_OBJ
+WITH_DEBUG
+TEST_REGEXPS
+WITH_REGEXPS
+TEST_SCHEMAS
+WITH_SCHEMAS
+WITH_ISO8859X
+WITH_ICU
+ICU_LIBS
+ICU_CFLAGS
+WITH_ICONV
+WITH_OUTPUT
+TEST_XPATH
+XPATH_OBJ
+WITH_XPATH
+TEST_SCHEMATRON
+WITH_SCHEMATRON
+TEST_XINCLUDE
+XINCLUDE_OBJ
+WITH_XINCLUDE
+TEST_C14N
+C14N_OBJ
+WITH_C14N
+TEST_XPTR
+XPTR_OBJ
+WITH_XPTR
+DOCB_OBJ
+WITH_DOCB
+TEST_CATALOG
+CATALOG_OBJ
+WITH_CATALOG
+TEST_VTIME
+TEST_VALID
+WITH_VALID
+TEST_PHTML
+TEST_HTML
+HTML_OBJ
+WITH_HTML
+TEST_PUSH
+WITH_PUSH
+TEST_SAX
+WITH_SAX1_SOURCES_FALSE
+WITH_SAX1_SOURCES_TRUE
+WITH_SAX1
+TEST_PATTERN
+WITH_PATTERN
+WITH_WRITER
+READER_TEST
+WITH_READER
+WITH_LEGACY
+HTTP_OBJ
+WITH_HTTP
+FTP_OBJ
+WITH_FTP
+WITH_TREE
+THREADS_W32_FALSE
+THREADS_W32_TRUE
+WITH_THREAD_ALLOC
+TEST_THREADS
+THREAD_CFLAGS
+WITH_THREADS
+BASE_THREAD_LIBS
+THREAD_LIBS
+WITH_TRIO
+WITH_TRIO_SOURCES_FALSE
+WITH_TRIO_SOURCES_TRUE
+STATIC_BINARIES
+TEST_MODULES
+MODULE_EXTENSION
+MODULE_PLATFORM_LIBS
+WITH_MODULES
+PYTHON_LIBS
+PYTHON_SUBDIR
+pythondir
+WITH_PYTHON_FALSE
+WITH_PYTHON_TRUE
+PYTHON
+WITH_LZMA
+LZMA_LIBS
+LZMA_CFLAGS
+WITH_ZLIB
+Z_LIBS
+Z_CFLAGS
+REBUILD_DOCS_FALSE
+REBUILD_DOCS_TRUE
+HTML_DIR
+USE_VERSION_SCRIPT_FALSE
+USE_VERSION_SCRIPT_TRUE
+VERSION_SCRIPT_FLAGS
+LT_SYS_LIBRARY_PATH
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+MANIFEST_TOOL
+RANLIB
+ac_ct_AR
+AR
+DLLTOOL
+OBJDUMP
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+LIBTOOL
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
+XSLTPROC
+XMLLINT
+WGET
+PERL
+TAR
+MV
+CPP
+LN_S
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+LIBXML_VERSION_EXTRA
+LIBXML_VERSION_NUMBER
+LIBXML_VERSION_INFO
+LIBXML_VERSION
+LIBXML_MICRO_VERSION
+LIBXML_MINOR_VERSION
+LIBXML_MAJOR_VERSION
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+runstatedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL
+am__quote'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_maintainer_mode
+enable_silent_rules
+enable_dependency_tracking
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_aix_soname
+with_gnu_ld
+with_sysroot
+enable_libtool_lock
+with_c14n
+with_catalog
+with_debug
+with_docbook
+with_fexceptions
+with_ftp
+with_history
+with_html
+with_html_dir
+with_html_subdir
+with_http
+with_iconv
+with_icu
+with_iso8859x
+with_legacy
+with_mem_debug
+with_minimum
+with_output
+with_pattern
+with_push
+with_python
+with_python_install_dir
+with_reader
+with_readline
+with_regexps
+with_run_debug
+with_sax1
+with_schemas
+with_schematron
+with_threads
+with_thread_alloc
+with_tree
+with_valid
+with_writer
+with_xinclude
+with_xpath
+with_xptr
+with_modules
+with_zlib
+with_lzma
+with_coverage
+enable_rebuild_docs
+enable_ipv6
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
+LT_SYS_LIBRARY_PATH
+Z_CFLAGS
+Z_LIBS
+LZMA_CFLAGS
+LZMA_LIBS
+ICU_CFLAGS
+ICU_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir runstatedir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ @<:@@S|@ac_default_prefix@:>@
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ @<:@PREFIX@:>@
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root @<:@DATAROOTDIR/doc/PACKAGE@:>@
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-maintainer-mode
+ disable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@
+ --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@
+ --enable-fast-install@<:@=PKGS@:>@
+ optimize for fast installation @<:@default=yes@:>@
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --enable-rebuild-docs[=yes/no] rebuild some generated docs [default=no]
+ --enable-ipv6[=yes/no] enables compilation of IPv6 code [default=yes]
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use
+ both@:>@
+ --with-aix-soname=aix|svr4|both
+ shared library versioning (aka "SONAME") variant to
+ provide on AIX, @<:@default=aix@:>@.
+ --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@
+ --with-sysroot@<:@=DIR@:>@ Search for dependent libraries within DIR (or the
+ compiler's sysroot if not specified).
+ --with-c14n add the Canonicalization support (on)
+ --with-catalog add the Catalog support (on)
+ --with-debug add the debugging module (on)
+ --with-docbook add Docbook SGML support (on)
+ --with-fexceptions add GCC flag -fexceptions for C++ exceptions (off)
+ --with-ftp add the FTP support (on)
+ --with-history add history support to xmllint shell(off)
+ --with-html add the HTML support (on)
+ --with-html-dir=path path to base html directory, default
+ @S|@datadir/doc/html
+ --with-html-subdir=path directory used under html-dir, default
+ @S|@PACKAGE-@S|@VERSION/html
+ --with-http add the HTTP support (on)
+ --with-iconv[=DIR] add ICONV support (on)
+ --with-icu add ICU support (off)
+ --with-iso8859x add ISO8859X support if no iconv (on)
+ --with-legacy add deprecated APIs for compatibility (on)
+ --with-mem-debug add the memory debugging module (off)
+ --with-minimum build a minimally sized library (off)
+ --with-output add the serialization support (on)
+ --with-pattern add the xmlPattern selection interface (on)
+ --with-push add the PUSH parser interfaces (on)
+ --with-python[=DIR] build Python bindings if found
+ --with-python-install-dir=DIR
+ install Python bindings in DIR
+ --with-reader add the xmlReader parsing interface (on)
+ --with-readline=DIR use readline in DIR
+ --with-regexps add Regular Expressions support (on)
+ --with-run-debug add the runtime debugging module (off)
+ --with-sax1 add the older SAX1 interface (on)
+ --with-schemas add Relax-NG and Schemas support (on)
+ --with-schematron add Schematron support (on)
+ --with-threads add multithread support(on)
+ --with-thread-alloc add per-thread memory(off)
+ --with-tree add the DOM like tree manipulation APIs (on)
+ --with-valid add the DTD validation support (on)
+ --with-writer add the xmlWriter saving interface (on)
+ --with-xinclude add the XInclude support (on)
+ --with-xpath add the XPATH support (on)
+ --with-xptr add the XPointer support (on)
+ --with-modules add the dynamic modules support (on)
+ --with-zlib[=DIR] use libz in DIR
+ --with-lzma[=DIR] use liblzma in DIR
+ --with-coverage build for code coverage with GCC (off)
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+ PKG_CONFIG path to pkg-config utility
+ PKG_CONFIG_PATH
+ directories to add to pkg-config's search path
+ PKG_CONFIG_LIBDIR
+ path overriding pkg-config's built-in search path
+ LT_SYS_LIBRARY_PATH
+ User-defined run-time library search path.
+ Z_CFLAGS C compiler flags for Z, overriding pkg-config
+ Z_LIBS linker flags for Z, overriding pkg-config
+ LZMA_CFLAGS C compiler flags for LZMA, overriding pkg-config
+ LZMA_LIBS linker flags for LZMA, overriding pkg-config
+ ICU_CFLAGS C compiler flags for ICU, overriding pkg-config
+ ICU_LIBS linker flags for ICU, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+@%:@ ac_fn_c_try_compile LINENO
+@%:@ --------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_compile
+
+@%:@ ac_fn_c_try_cpp LINENO
+@%:@ ----------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_cpp
+
+@%:@ ac_fn_c_try_link LINENO
+@%:@ -----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_link
+
+@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists and can be compiled using the include files in
+@%:@ INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_header_compile
+
+@%:@ ac_fn_c_try_run LINENO
+@%:@ ----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes
+@%:@ that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_run
+
+@%:@ ac_fn_c_check_func LINENO FUNC VAR
+@%:@ ----------------------------------
+@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_func
+
+@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using
+@%:@ the include files in INCLUDES and setting the cache variable VAR
+@%:@ accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_header_mongrel
+
+@%:@ ac_fn_c_find_uintX_t LINENO BITS VAR
+@%:@ ------------------------------------
+@%:@ Finds an unsigned integer type with width BITS, setting cache variable VAR
+@%:@ accordingly.
+ac_fn_c_find_uintX_t ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
+$as_echo_n "checking for uint$2_t... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ # Order is important - never check a type that is potentially smaller
+ # than half of the expected target width.
+ for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)@:>@;
+test_array @<:@0@:>@ = 0;
+return test_array @<:@0@:>@;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ case $ac_type in @%:@(
+ uint$2_t) :
+ eval "$3=yes" ;; @%:@(
+ *) :
+ eval "$3=\$ac_type" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if eval test \"x\$"$3"\" = x"no"; then :
+
+else
+ break
+fi
+ done
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_find_uintX_t
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in @%:@((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ @%:@ Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=yes
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+
+LIBXML_MAJOR_VERSION=2
+LIBXML_MINOR_VERSION=9
+LIBXML_MICRO_VERSION=10
+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_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION`
+
+if test -f CVS/Entries ; then
+ extra=`grep ChangeLog CVS/Entries | grep -v LIBXML | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-CVS$extra"
+ fi
+else if test -d .svn ; then
+ extra=`svn info | grep Revision | sed 's+Revision: ++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-SVN$extra"
+ fi
+else if test -d .git ; then
+ extra=`git describe 2>/dev/null | sed 's+LIBXML[0-9.]*-++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-GIT$extra"
+ fi
+fi
+fi
+fi
+
+
+
+
+
+
+
+
+VERSION=${LIBXML_VERSION}
+
+am__api_version='1.16'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in @%:@((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+@%:@ Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+
+ PACKAGE=libxml2
+ VERSION=$VERSION
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
+
+# Support silent build rules, requires at least automake-1.11. Disable
+# by either passing --disable-silent-rules to configure or passing V=1
+# to make
+@%:@ Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=0;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $@%:@ != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ case $?:`cat confinc.out 2>/dev/null` in @%:@(
+ '0:this is the am__doit target') :
+ case $s in @%:@(
+ BSD) :
+ am__include='.include' am__quote='"' ;; @%:@(
+ *) :
+ am__include='include' am__quote='' ;;
+esac ;; @%:@(
+ *) :
+ ;;
+esac
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+$as_echo "${_am_result}" >&6; }
+
+@%:@ Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+# Extract the first word of "mv", so it can be a program name with args.
+set dummy mv; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MV+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MV in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MV="$MV" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_MV" && ac_cv_path_MV="/bin/mv"
+ ;;
+esac
+fi
+MV=$ac_cv_path_MV
+if test -n "$MV"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
+$as_echo "$MV" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "tar", so it can be a program name with args.
+set dummy tar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAR="$TAR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_TAR" && ac_cv_path_TAR="/bin/tar"
+ ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+if test -n "$TAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5
+$as_echo "$TAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PERL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="/usr/bin/perl"
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "wget", so it can be a program name with args.
+set dummy wget; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_WGET+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $WGET in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WGET="$WGET" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_WGET="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_WGET" && ac_cv_path_WGET="/usr/bin/wget"
+ ;;
+esac
+fi
+WGET=$ac_cv_path_WGET
+if test -n "$WGET"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WGET" >&5
+$as_echo "$WGET" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "xmllint", so it can be a program name with args.
+set dummy xmllint; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XMLLINT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XMLLINT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_XMLLINT" && ac_cv_path_XMLLINT="/usr/bin/xmllint"
+ ;;
+esac
+fi
+XMLLINT=$ac_cv_path_XMLLINT
+if test -n "$XMLLINT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
+$as_echo "$XMLLINT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "xsltproc", so it can be a program name with args.
+set dummy xsltproc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XSLTPROC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XSLTPROC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_XSLTPROC" && ac_cv_path_XSLTPROC="/usr/bin/xsltproc"
+ ;;
+esac
+fi
+XSLTPROC=$ac_cv_path_XSLTPROC
+if test -n "$XSLTPROC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+fi
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.4.6'
+macro_revision='2.4.6'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+
+case $ECHO in
+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi
+fi
+
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AR" && break
+ done
+fi
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+fi
+
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ar_at_file=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT@&t@_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT@&t@_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+@%:@ Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+ withval=$with_sysroot;
+else
+ with_sysroot=no
+fi
+
+
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+ ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+ ac_path_lt_DD_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in dd; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+ $ac_path_lt_DD_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_lt_DD"; then
+ :
+ fi
+else
+ ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in @S|@*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+@%:@ Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ emul=elf
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$MANIFEST_TOOL"; then
+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+ # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_MANIFEST_TOOL" = x; then
+ MANIFEST_TOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+ fi
+else
+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&5
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&5
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ echo "$RANLIB libconftest.a" >&5
+ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&5
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[012][,.]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x@S|@2 in
+ x)
+ ;;
+ *:)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+ ;;
+ x:*)
+ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+ ;;
+ *)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+# Set options
+
+
+
+ enable_dlopen=no
+
+
+ enable_win32_dll=no
+
+
+ @%:@ Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ pic_mode=default
+fi
+
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+ shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+@%:@ Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+ withval=$with_aix_soname; case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname
+else
+ if ${lt_cv_with_aix_soname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_with_aix_soname=aix
+fi
+
+ with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/${ac_tool_prefix}file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC=$CC
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+
+ if test yes = "$GCC"; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ if test -n "$lt_prog_compiler_pic"; then
+ lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Intel*\ [CF]*Compiler*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ *Portland\ Group*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC"
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_static_works"; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test no = "$hard_links"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ export_dynamic_flag_spec='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='$wl--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ export_dynamic_flag_spec='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test no = "$ld_shlibs"; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ export_dynamic_flag_spec='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' $wl-bernotok'
+ allow_undefined_flag=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ file_list_spec='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+ enable_shared_with_static_runtimes=yes
+ exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ old_postinstall_cmds='chmod 644 $oldlib'
+ postlink_cmds='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ enable_shared_with_static_runtimes=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test yes = "$lt_cv_prog_compiler__b"; then
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_irix_exported_symbol=yes
+else
+ lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ ld_shlibs=yes
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ else
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='$wl-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='$wl-z,text'
+ allow_undefined_flag='$wl-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test no = "$ld_shlibs" && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a(lib.so.V)'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[23].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Add ABI-specific directories to the system library path.
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test yes = "$hardcode_automatic"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$hardcode_direct" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+ test no != "$hardcode_minus_L"; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test relink = "$hardcode_action" ||
+ test yes = "$inherit_rpath"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+ lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report what library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+VERSION_SCRIPT_FLAGS=
+# lt_cv_prog_gnu_ld is from libtool 2.+
+if test "$lt_cv_prog_gnu_ld" = yes; then
+ VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+else
+ case $host in
+ *-*-sunos*) VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,";;
+ esac
+fi
+
+ if test -n "$VERSION_SCRIPT_FLAGS"; then
+ USE_VERSION_SCRIPT_TRUE=
+ USE_VERSION_SCRIPT_FALSE='#'
+else
+ USE_VERSION_SCRIPT_TRUE='#'
+ USE_VERSION_SCRIPT_FALSE=
+fi
+
+
+
+_cppflags="${CPPFLAGS}"
+_libs="${LIBS}"
+
+
+@%:@ Check whether --with-c14n was given.
+if test "${with_c14n+set}" = set; then :
+ withval=$with_c14n;
+fi
+
+
+@%:@ Check whether --with-catalog was given.
+if test "${with_catalog+set}" = set; then :
+ withval=$with_catalog;
+fi
+
+
+@%:@ Check whether --with-debug was given.
+if test "${with_debug+set}" = set; then :
+ withval=$with_debug;
+fi
+
+
+@%:@ Check whether --with-docbook was given.
+if test "${with_docbook+set}" = set; then :
+ withval=$with_docbook;
+fi
+
+
+@%:@ Check whether --with-fexceptions was given.
+if test "${with_fexceptions+set}" = set; then :
+ withval=$with_fexceptions;
+fi
+
+
+@%:@ Check whether --with-ftp was given.
+if test "${with_ftp+set}" = set; then :
+ withval=$with_ftp;
+fi
+
+
+@%:@ Check whether --with-history was given.
+if test "${with_history+set}" = set; then :
+ withval=$with_history;
+fi
+
+
+@%:@ Check whether --with-html was given.
+if test "${with_html+set}" = set; then :
+ withval=$with_html;
+fi
+
+
+@%:@ Check whether --with-html-dir was given.
+if test "${with_html_dir+set}" = set; then :
+ withval=$with_html_dir; HTML_DIR=$withval
+else
+ HTML_DIR='$(datadir)/doc'
+fi
+
+
+
+@%:@ Check whether --with-html-subdir was given.
+if test "${with_html_subdir+set}" = set; then :
+ withval=$with_html_subdir; test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"
+else
+ HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"
+fi
+
+
+
+@%:@ Check whether --with-http was given.
+if test "${with_http+set}" = set; then :
+ withval=$with_http;
+fi
+
+
+@%:@ Check whether --with-iconv was given.
+if test "${with_iconv+set}" = set; then :
+ withval=$with_iconv;
+fi
+
+
+@%:@ Check whether --with-icu was given.
+if test "${with_icu+set}" = set; then :
+ withval=$with_icu;
+fi
+
+
+@%:@ Check whether --with-iso8859x was given.
+if test "${with_iso8859x+set}" = set; then :
+ withval=$with_iso8859x;
+fi
+
+
+@%:@ Check whether --with-legacy was given.
+if test "${with_legacy+set}" = set; then :
+ withval=$with_legacy;
+fi
+
+
+@%:@ Check whether --with-mem_debug was given.
+if test "${with_mem_debug+set}" = set; then :
+ withval=$with_mem_debug;
+fi
+
+
+@%:@ Check whether --with-minimum was given.
+if test "${with_minimum+set}" = set; then :
+ withval=$with_minimum;
+fi
+
+
+@%:@ Check whether --with-output was given.
+if test "${with_output+set}" = set; then :
+ withval=$with_output;
+fi
+
+
+@%:@ Check whether --with-pattern was given.
+if test "${with_pattern+set}" = set; then :
+ withval=$with_pattern;
+fi
+
+
+@%:@ Check whether --with-push was given.
+if test "${with_push+set}" = set; then :
+ withval=$with_push;
+fi
+
+
+@%:@ Check whether --with-python was given.
+if test "${with_python+set}" = set; then :
+ withval=$with_python;
+fi
+
+
+@%:@ Check whether --with-python_install_dir was given.
+if test "${with_python_install_dir+set}" = set; then :
+ withval=$with_python_install_dir;
+fi
+
+
+@%:@ Check whether --with-reader was given.
+if test "${with_reader+set}" = set; then :
+ withval=$with_reader;
+fi
+
+
+@%:@ Check whether --with-readline was given.
+if test "${with_readline+set}" = set; then :
+ withval=$with_readline;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ RDL_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+@%:@ Check whether --with-regexps was given.
+if test "${with_regexps+set}" = set; then :
+ withval=$with_regexps;
+fi
+
+
+@%:@ Check whether --with-run_debug was given.
+if test "${with_run_debug+set}" = set; then :
+ withval=$with_run_debug;
+fi
+
+
+@%:@ Check whether --with-sax1 was given.
+if test "${with_sax1+set}" = set; then :
+ withval=$with_sax1;
+fi
+
+
+@%:@ Check whether --with-schemas was given.
+if test "${with_schemas+set}" = set; then :
+ withval=$with_schemas;
+fi
+
+
+@%:@ Check whether --with-schematron was given.
+if test "${with_schematron+set}" = set; then :
+ withval=$with_schematron;
+fi
+
+
+@%:@ Check whether --with-threads was given.
+if test "${with_threads+set}" = set; then :
+ withval=$with_threads;
+fi
+
+
+@%:@ Check whether --with-thread-alloc was given.
+if test "${with_thread_alloc+set}" = set; then :
+ withval=$with_thread_alloc;
+fi
+
+
+@%:@ Check whether --with-tree was given.
+if test "${with_tree+set}" = set; then :
+ withval=$with_tree;
+fi
+
+
+@%:@ Check whether --with-valid was given.
+if test "${with_valid+set}" = set; then :
+ withval=$with_valid;
+fi
+
+
+@%:@ Check whether --with-writer was given.
+if test "${with_writer+set}" = set; then :
+ withval=$with_writer;
+fi
+
+
+@%:@ Check whether --with-xinclude was given.
+if test "${with_xinclude+set}" = set; then :
+ withval=$with_xinclude;
+fi
+
+
+@%:@ Check whether --with-xpath was given.
+if test "${with_xpath+set}" = set; then :
+ withval=$with_xpath;
+fi
+
+
+@%:@ Check whether --with-xptr was given.
+if test "${with_xptr+set}" = set; then :
+ withval=$with_xptr;
+fi
+
+
+@%:@ Check whether --with-modules was given.
+if test "${with_modules+set}" = set; then :
+ withval=$with_modules;
+fi
+
+
+@%:@ Check whether --with-zlib was given.
+if test "${with_zlib+set}" = set; then :
+ withval=$with_zlib;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ Z_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+@%:@ Check whether --with-lzma was given.
+if test "${with_lzma+set}" = set; then :
+ withval=$with_lzma;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ LZMA_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+@%:@ Check whether --with-coverage was given.
+if test "${with_coverage+set}" = set; then :
+ withval=$with_coverage;
+fi
+
+
+@%:@ Check whether --enable-rebuild-docs was given.
+if test "${enable_rebuild_docs+set}" = set; then :
+ enableval=$enable_rebuild_docs;
+fi
+
+if test "$enable_rebuild_docs" = "yes" -a "$srcdir" != "."; then
+ as_fn_error $? "cannot rebuild docs when builddir != srcdir" "$LINENO" 5
+fi
+ if test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"; then
+ REBUILD_DOCS_TRUE=
+ REBUILD_DOCS_FALSE='#'
+else
+ REBUILD_DOCS_TRUE='#'
+ REBUILD_DOCS_FALSE=
+fi
+
+
+if test "$with_schemas" = "yes"
+then
+ with_pattern=yes
+ with_regexps=yes
+fi
+if test "$with_schematron" = "yes"
+then
+ with_pattern=yes
+ with_tree=yes
+ with_xpath=yes
+fi
+if test "$with_reader" = "yes"
+then
+ with_push=yes
+fi
+if test "$with_xptr" = "yes"
+then
+ with_xpath=yes
+fi
+if test "$with_minimum" = "yes"
+then
+ echo "Configuring for a minimal library"
+ if test "$with_c14n" = ""
+ then
+ with_c14n=no
+ fi
+ if test "$with_catalog" = ""
+ then
+ with_catalog=no
+ fi
+ echo So far so good!
+ if test "$with_debug" = ""
+ then
+ with_debug=no
+ fi
+ if test "$with_docbook" = ""
+ then
+ with_docbook=no
+ fi
+ if test "$with_fexceptions" = ""
+ then
+ with_fexceptions=no
+ fi
+ if test "$with_ftp" = ""
+ then
+ with_ftp=no
+ fi
+ if test "$with_history" = ""
+ then
+ with_history=no
+ fi
+ if test "$with_html" = ""
+ then
+ with_html=no
+ fi
+ if test "$with_http" = ""
+ then
+ with_http=no
+ fi
+ if test "$with_iconv" = ""
+ then
+ with_iconv=no
+ fi
+ if test "$with_iso8859x" = ""
+ then
+ with_iso8859x=no
+ fi
+ if test "$with_legacy" = ""
+ then
+ with_legacy=no
+ fi
+ if test "$with_mem_debug" = ""
+ then
+ with_mem_debug=no
+ fi
+ if test "$with_output" = ""
+ then
+ with_output=no
+ fi
+ if test "$with_pattern" = ""
+ then
+ with_pattern=no
+ fi
+ if test "$with_push" = ""
+ then
+ with_push=no
+ fi
+ if test "$with_python" = ""
+ then
+ with_python=no
+ fi
+ if test "$with_reader" = ""
+ then
+ with_reader=no
+ fi
+ if test "$with_readline" = ""
+ then
+ with_readline=no
+ fi
+ if test "$with_regexps" = ""
+ then
+ with_regexps=no
+ fi
+ if test "$with_run_debug" = ""
+ then
+ with_run_debug=no
+ fi
+ if test "$with_sax1" = ""
+ then
+ with_sax1=no
+ fi
+ if test "$with_schemas" = ""
+ then
+ with_schemas=no
+ fi
+ if test "$with_schematron" = ""
+ then
+ with_schematron=no
+ fi
+ if test "$with_threads" = ""
+ then
+ with_threads=no
+ fi
+ if test "$with_thread_alloc" = ""
+ then
+ with_thread_alloc=no
+ fi
+ if test "$with_tree" = ""
+ then
+ with_tree=no
+ fi
+ if test "$with_valid" = ""
+ then
+ with_valid=no
+ fi
+ if test "$with_writer" = ""
+ then
+ with_writer=no
+ fi
+ if test "$with_xinclude" = ""
+ then
+ with_xinclude=no
+ fi
+ if test "$with_xpath" = ""
+ then
+ with_xpath=no
+ fi
+ if test "$with_xptr" = ""
+ then
+ with_xptr=no
+ fi
+ if test "$with_zlib" = ""
+ then
+ with_zlib=no
+ fi
+ if test "$with_modules" = ""
+ then
+ with_modules=no
+ fi
+fi
+
+echo Checking zlib
+
+
+WITH_ZLIB=0
+if test "$with_zlib" = "no"; then
+ echo "Disabling zlib compression support"
+else
+ # Don't run pkg-config if with_zlib contains a path.
+ if test "x$Z_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Z" >&5
+$as_echo_n "checking for Z... " >&6; }
+
+if test -n "$Z_CFLAGS"; then
+ pkg_cv_Z_CFLAGS="$Z_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "zlib") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Z_CFLAGS=`$PKG_CONFIG --cflags "zlib" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$Z_LIBS"; then
+ pkg_cv_Z_LIBS="$Z_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "zlib") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Z_LIBS=`$PKG_CONFIG --libs "zlib" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ Z_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "zlib" 2>&1`
+ else
+ Z_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "zlib" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$Z_PKG_ERRORS" >&5
+
+ :
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ :
+else
+ Z_CFLAGS=$pkg_cv_Z_CFLAGS
+ Z_LIBS=$pkg_cv_Z_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ZLIB=1
+fi
+ fi
+
+ if test "$WITH_ZLIB" = "0"; then
+ for ac_header in zlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_zlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ZLIB_H 1
+_ACEOF
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5
+$as_echo_n "checking for gzread in -lz... " >&6; }
+if ${ac_cv_lib_z_gzread+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gzread ();
+int
+main ()
+{
+return gzread ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_z_gzread=yes
+else
+ ac_cv_lib_z_gzread=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5
+$as_echo "$ac_cv_lib_z_gzread" >&6; }
+if test "x$ac_cv_lib_z_gzread" = xyes; then :
+
+ WITH_ZLIB=1
+ if test "x${Z_DIR}" != "x"; then
+ Z_CFLAGS="-I${Z_DIR}/include"
+ Z_LIBS="-L${Z_DIR}/lib -lz"
+ case ${host} in
+ *-*-solaris*)
+ Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
+ ;;
+ esac
+ else
+ Z_LIBS="-lz"
+ fi
+fi
+
+
+fi
+
+done
+
+ fi
+fi
+
+
+
+
+
+echo Checking lzma
+
+
+WITH_LZMA=0
+if test "$with_lzma" = "no"; then
+ echo "Disabling lzma compression support"
+else
+ # Don't run pkg-config if with_lzma contains a path.
+ if test "x$LZMA_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LZMA" >&5
+$as_echo_n "checking for LZMA... " >&6; }
+
+if test -n "$LZMA_CFLAGS"; then
+ pkg_cv_LZMA_CFLAGS="$LZMA_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LZMA_CFLAGS=`$PKG_CONFIG --cflags "liblzma" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$LZMA_LIBS"; then
+ pkg_cv_LZMA_LIBS="$LZMA_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LZMA_LIBS=`$PKG_CONFIG --libs "liblzma" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LZMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "liblzma" 2>&1`
+ else
+ LZMA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "liblzma" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LZMA_PKG_ERRORS" >&5
+
+ :
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ :
+else
+ LZMA_CFLAGS=$pkg_cv_LZMA_CFLAGS
+ LZMA_LIBS=$pkg_cv_LZMA_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_LZMA=1
+fi
+ fi
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "$WITH_LZMA" = "0"; then
+ for ac_header in lzma.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default"
+if test "x$ac_cv_header_lzma_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LZMA_H 1
+_ACEOF
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_code in -llzma" >&5
+$as_echo_n "checking for lzma_code in -llzma... " >&6; }
+if ${ac_cv_lib_lzma_lzma_code+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-llzma $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char lzma_code ();
+int
+main ()
+{
+return lzma_code ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_lzma_lzma_code=yes
+else
+ ac_cv_lib_lzma_lzma_code=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_code" >&5
+$as_echo "$ac_cv_lib_lzma_lzma_code" >&6; }
+if test "x$ac_cv_lib_lzma_lzma_code" = xyes; then :
+
+ WITH_LZMA=1
+ if test "x${LZMA_DIR}" != "x"; then
+ LZMA_CFLAGS="-I${LZMA_DIR}/include"
+ LZMA_LIBS="-L${LZMA_DIR}/lib -llzma"
+ else
+ LZMA_LIBS="-llzma"
+ fi
+fi
+
+
+fi
+
+done
+
+ fi
+fi
+
+
+
+
+
+CPPFLAGS=${_cppflags}
+LIBS=${_libs}
+
+echo Checking headers
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+for ac_header in fcntl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default"
+if test "x$ac_cv_header_fcntl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_FCNTL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in unistd.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_UNISTD_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in ctype.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "ctype.h" "ac_cv_header_ctype_h" "$ac_includes_default"
+if test "x$ac_cv_header_ctype_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_CTYPE_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dirent.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "$ac_includes_default"
+if test "x$ac_cv_header_dirent_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DIRENT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in errno.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default"
+if test "x$ac_cv_header_errno_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ERRNO_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in malloc.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default"
+if test "x$ac_cv_header_malloc_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MALLOC_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdarg.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdarg_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDARG_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/stat.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_stat_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_STAT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/types.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_types_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdint.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in inttypes.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_INTTYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in time.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_time_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_TIME_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in math.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default"
+if test "x$ac_cv_header_math_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MATH_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in limits.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default"
+if test "x$ac_cv_header_limits_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LIMITS_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in float.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default"
+if test "x$ac_cv_header_float_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_FLOAT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/socket.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_sys_socket_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_SOCKET_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in netinet/in.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_netinet_in_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_NETINET_IN_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in arpa/inet.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#if HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+# endif
+
+"
+if test "x$ac_cv_header_arpa_inet_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ARPA_INET_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in netdb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default"
+if test "x$ac_cv_header_netdb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_NETDB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/time.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_time_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TIME_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/select.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_select_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_SELECT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in poll.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "poll.h" "ac_cv_header_poll_h" "$ac_includes_default"
+if test "x$ac_cv_header_poll_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_POLL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/mman.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mman_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_MMAN_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/timeb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_timeb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TIMEB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in signal.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default"
+if test "x$ac_cv_header_signal_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SIGNAL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in arpa/nameser.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_arpa_nameser_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ARPA_NAMESER_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in resolv.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#if HAVE_NETINET_IN_H
+# include <netinet/in.h>
+# endif
+#if HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+# endif
+
+"
+if test "x$ac_cv_header_resolv_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_RESOLV_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dl.h" "ac_cv_header_dl_h" "$ac_includes_default"
+if test "x$ac_cv_header_dl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+echo Checking types
+
+ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t"
+case $ac_cv_c_uint32_t in #(
+ no|yes) ;; #(
+ *)
+
+$as_echo "@%:@define _UINT32_T 1" >>confdefs.h
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define uint32_t $ac_cv_c_uint32_t
+_ACEOF
+;;
+ esac
+
+
+
+echo Checking libraries
+
+for ac_func in strftime
+do :
+ ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
+if test "x$ac_cv_func_strftime" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRFTIME 1
+_ACEOF
+
+else
+ # strftime is in -lintl on SCO UNIX.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5
+$as_echo_n "checking for strftime in -lintl... " >&6; }
+if ${ac_cv_lib_intl_strftime+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char strftime ();
+int
+main ()
+{
+return strftime ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_intl_strftime=yes
+else
+ ac_cv_lib_intl_strftime=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5
+$as_echo "$ac_cv_lib_intl_strftime" >&6; }
+if test "x$ac_cv_lib_intl_strftime" = xyes; then :
+ $as_echo "@%:@define HAVE_STRFTIME 1" >>confdefs.h
+
+LIBS="-lintl $LIBS"
+fi
+
+fi
+done
+
+for ac_func in strftime localtime gettimeofday ftime
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in stat signal
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in rand rand_r srand time
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in isascii mmap munmap putenv
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
+$as_echo_n "checking for va_copy... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+va_list ap1,ap2;
+int
+main ()
+{
+va_copy(ap1,ap2);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_va_copy=yes
+else
+ have_va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_va_copy" >&5
+$as_echo "$have_va_copy" >&6; }
+if test x"$have_va_copy" = x"yes"; then
+
+$as_echo "@%:@define HAVE_VA_COPY 1" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __va_copy" >&5
+$as_echo_n "checking for __va_copy... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+ va_list ap1,ap2;
+int
+main ()
+{
+__va_copy(ap1,ap2);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have___va_copy=yes
+else
+ have___va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have___va_copy" >&5
+$as_echo "$have___va_copy" >&6; }
+ if test x"$have___va_copy" = x"yes"; then
+
+$as_echo "@%:@define HAVE___VA_COPY 1" >>confdefs.h
+
+ fi
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether va_list is an array type" >&5
+$as_echo_n "checking whether va_list is an array type... " >&6; }
+cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stdarg.h>
+void a(va_list * ap) {}
+int main(void) {
+
+va_list ap1, ap2; a(&ap1); ap2 = (va_list) ap1
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "@%:@define VA_LIST_IS_ARRAY 1" >>confdefs.h
+
+fi
+rm -f conftest*
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostent" >&5
+$as_echo_n "checking for library containing gethostent... " >&6; }
+if ${ac_cv_search_gethostent+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostent ();
+int
+main ()
+{
+return gethostent ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' nsl; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_gethostent=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_gethostent+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_gethostent+:} false; then :
+
+else
+ ac_cv_search_gethostent=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostent" >&5
+$as_echo "$ac_cv_search_gethostent" >&6; }
+ac_res=$ac_cv_search_gethostent
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket net network; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
+$as_echo "$ac_cv_search_setsockopt" >&6; }
+ac_res=$ac_cv_search_setsockopt
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing connect" >&5
+$as_echo_n "checking for library containing connect... " >&6; }
+if ${ac_cv_search_connect+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' inet; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_connect=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_connect+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_connect+:} false; then :
+
+else
+ ac_cv_search_connect=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_connect" >&5
+$as_echo "$ac_cv_search_connect" >&6; }
+ac_res=$ac_cv_search_connect
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of socket length (socklen_t)" >&5
+$as_echo_n "checking for type of socket length (socklen_t)... " >&6; }
+cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: socklen_t *" >&5
+$as_echo "socklen_t *" >&6; }
+ XML_SOCKLEN_T=socklen_t
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: size_t *" >&5
+$as_echo "size_t *" >&6; }
+ XML_SOCKLEN_T=size_t
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: int *" >&5
+$as_echo "int *" >&6; }
+ XML_SOCKLEN_T=int
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not determine" >&5
+$as_echo "$as_me: WARNING: could not determine" >&2;}
+ XML_SOCKLEN_T="int"
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+
+cat >>confdefs.h <<_ACEOF
+@%:@define XML_SOCKLEN_T $XML_SOCKLEN_T
+_ACEOF
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for const gethostbyname() argument" >&5
+$as_echo_n "checking for const gethostbyname() argument... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <netdb.h>
+int
+main ()
+{
+(void)gethostbyname((const char *)"");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_gethostbyname_const_arg=yes
+else
+ have_gethostbyname_const_arg=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gethostbyname_const_arg" >&5
+$as_echo "$have_gethostbyname_const_arg" >&6; }
+if test x"$have_gethostbyname_const_arg" = x"yes"; then
+
+$as_echo "@%:@define GETHOSTBYNAME_ARG_CAST /**/" >>confdefs.h
+
+else
+
+$as_echo "@%:@define GETHOSTBYNAME_ARG_CAST (char *)" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for const send() second argument" >&5
+$as_echo_n "checking for const send() second argument... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/socket.h>
+int
+main ()
+{
+(void)send(1,(const char *)"",1,1);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_send_const_arg2=yes
+else
+ have_send_const_arg2=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_send_const_arg2" >&5
+$as_echo "$have_send_const_arg2" >&6; }
+if test x"$have_send_const_arg2" = x"yes"; then
+
+$as_echo "@%:@define SEND_ARG2_CAST /**/" >>confdefs.h
+
+else
+
+$as_echo "@%:@define SEND_ARG2_CAST (char *)" >>confdefs.h
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable IPv6" >&5
+$as_echo_n "checking whether to enable IPv6... " >&6; }
+@%:@ Check whether --enable-ipv6 was given.
+if test "${enable_ipv6+set}" = set; then :
+ enableval=$enable_ipv6;
+else
+ enable_ipv6=yes
+fi
+
+if test "$with_minimum" = "yes"
+then
+ enable_ipv6=no
+fi
+if test $enable_ipv6 = yes; then
+ have_ipv6=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss;
+ socket(AF_INET6, SOCK_STREAM, 0)
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_ipv6=yes
+else
+ have_ipv6=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ipv6" >&5
+$as_echo "$have_ipv6" >&6; }
+
+ if test $have_ipv6 = yes; then
+
+$as_echo "@%:@define SUPPORT_IP6 /**/" >>confdefs.h
+
+ have_broken_ss_family=no
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr::ss_family" >&5
+$as_echo_n "checking struct sockaddr::ss_family... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss ;
+ ss.ss_family = 0 ;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_ss_family=yes
+else
+ have_ss_family=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ss_family" >&5
+$as_echo "$have_ss_family" >&6; }
+ if test x$have_ss_family = xno ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking broken struct sockaddr::ss_family" >&5
+$as_echo_n "checking broken struct sockaddr::ss_family... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss ;
+ ss.__ss_family = 0 ;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_broken_ss_family=yes
+else
+ have_broken_ss_family=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_broken_ss_family" >&5
+$as_echo "$have_broken_ss_family" >&6; }
+ if test x$have_broken_ss_family = xyes ; then
+
+$as_echo "@%:@define HAVE_BROKEN_SS_FAMILY /**/" >>confdefs.h
+
+
+$as_echo "@%:@define ss_family __ss_family" >>confdefs.h
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ss_family and __ss_family not found" >&5
+$as_echo "$as_me: WARNING: ss_family and __ss_family not found" >&2;}
+ fi
+ fi
+
+ have_getaddrinfo=no
+ ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo"
+if test "x$ac_cv_func_getaddrinfo" = xyes; then :
+ have_getaddrinfo=yes
+fi
+
+ if test $have_getaddrinfo != yes; then
+ for lib in bsd socket inet; do
+ as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_getaddrinfo" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -l$lib" >&5
+$as_echo_n "checking for getaddrinfo in -l$lib... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$lib $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char getaddrinfo ();
+int
+main ()
+{
+return getaddrinfo ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+else
+ eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ LIBS="$LIBS -l$lib";have_getaddrinfo=yes;break
+fi
+
+ done
+ fi
+
+ if test $have_getaddrinfo = yes; then
+
+$as_echo "@%:@define HAVE_GETADDRINFO /**/" >>confdefs.h
+
+ fi
+ fi
+fi
+
+
+ac_fn_c_check_func "$LINENO" "isnan" "ac_cv_func_isnan"
+if test "x$ac_cv_func_isnan" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISNAN /**/" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnan in -lm" >&5
+$as_echo_n "checking for isnan in -lm... " >&6; }
+if ${ac_cv_lib_m_isnan+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char isnan ();
+int
+main ()
+{
+return isnan ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_m_isnan=yes
+else
+ ac_cv_lib_m_isnan=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_isnan" >&5
+$as_echo "$ac_cv_lib_m_isnan" >&6; }
+if test "x$ac_cv_lib_m_isnan" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISNAN /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ac_fn_c_check_func "$LINENO" "isinf" "ac_cv_func_isinf"
+if test "x$ac_cv_func_isinf" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISINF /**/" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf in -lm" >&5
+$as_echo_n "checking for isinf in -lm... " >&6; }
+if ${ac_cv_lib_m_isinf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char isinf ();
+int
+main ()
+{
+return isinf ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_m_isinf=yes
+else
+ ac_cv_lib_m_isinf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_isinf" >&5
+$as_echo "$ac_cv_lib_m_isinf" >&6; }
+if test "x$ac_cv_lib_m_isinf" = xyes; then :
+
+$as_echo "@%:@define HAVE_ISINF /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+XML_LIBDIR='-L${libdir}'
+XML_INCLUDEDIR='-I${includedir}/libxml2'
+
+XML_CFLAGS=""
+RDL_LIBS=""
+
+if test "${GCC}" != "yes" ; then
+ case "${host}" in
+ hppa*-*-hpux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000"
+ ;;
+ *-dec-osf* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
+ ;;
+ alpha*-*-linux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
+ ;;
+ esac
+else
+ if test "$with_fexceptions" = "yes"
+ then
+ #
+ # Not activated by default because this inflates the code size
+ # Used to allow propagation of C++ exceptions through the library
+ #
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions"
+ fi
+
+ # warnings we'd like to see
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+ # warnings we'd like to supress
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args"
+ case "${host}" in
+ alpha*-*-linux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
+ ;;
+ alpha*-*-osf* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
+ ;;
+ esac
+fi
+case ${host} in
+ *-*-solaris*)
+ XML_LIBDIR="${XML_LIBDIR} -R${libdir}"
+ ;;
+ hppa*-hp-mpeix)
+ NEED_TRIO=1
+ ;;
+ *-*-mingw* | *-*-cygwin* | *-*-msvc* )
+ # If the host is Windows, and shared libraries are disabled, we
+ # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to
+ # work properly (without it, xmlexports.h would force the use of
+ # DLL imports, which obviously aren't present in a static
+ # library).
+ if test "x$enable_shared" = "xno"; then
+ XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC"
+ fi
+ ;;
+esac
+
+
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+PYTHON_SITE_PACKAGES=
+PYTHON_TESTS=
+pythondir=
+if test "$with_python" != "no" ; then
+ if test -x "$with_python/bin/python"
+ then
+ echo Found python in $with_python/bin/python
+ PYTHON="$with_python/bin/python"
+ else
+ if test -x "$with_python/python.exe"
+ then
+ echo Found python in $with_python/python.exe
+ PYTHON="$with_python/python.exe"
+ else
+ if test -x "$with_python"
+ then
+ echo Found python in $with_python
+ PYTHON="$with_python"
+ else
+ if test -x "$PYTHON"
+ then
+ echo Found python in environment PYTHON=$PYTHON
+ with_python=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
+ else
+ # Extract the first word of "python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5", so it can be a program name with args.
+set dummy python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PYTHON+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PYTHON in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+ fi
+ fi
+ fi
+ if test "$PYTHON" != ""
+ then
+ PYTHON_VERSION=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_version())"`
+ PYTHON_INCLUDES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"`
+# does not work as it produce a /usr/lib/python path instead of/usr/lib64/python
+#
+# PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ echo Found Python version $PYTHON_VERSION
+ fi
+ if test "$PYTHON_VERSION" != "" -a "$PYTHON_INCLUDES" = ""
+ then
+ if test -r $with_python/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
+ else
+ if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
+ else
+ if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
+ else
+ if test -r $with_python/include/Python.h
+ then
+ PYTHON_INCLUDES=$with_python/include
+ else
+ echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test "$with_python_install_dir" != ""
+ then
+ PYTHON_SITE_PACKAGES="$with_python_install_dir"
+ fi
+ if test "$PYTHON_VERSION" != "" -a "$PYTHON_SITE_PACKAGES" = ""
+ then
+ if test -d $libdir/python$PYTHON_VERSION/site-packages
+ then
+ PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
+ else
+ if test -d $with_python/lib/site-packages
+ then
+ PYTHON_SITE_PACKAGES=$with_python/lib/site-packages
+ else
+ PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ fi
+ fi
+ fi
+ pythondir='$(PYTHON_SITE_PACKAGES)'
+ PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags`
+else
+ PYTHON=
+fi
+ if test "$PYTHON_INCLUDES" != ""; then
+ WITH_PYTHON_TRUE=
+ WITH_PYTHON_FALSE='#'
+else
+ WITH_PYTHON_TRUE='#'
+ WITH_PYTHON_FALSE=
+fi
+
+if test "$PYTHON_INCLUDES" != ""
+then
+ PYTHON_SUBDIR=python
+else
+ PYTHON_SUBDIR=
+fi
+
+
+
+
+WITH_MODULES=0
+TEST_MODULES=
+
+if test "$with_modules" != "no" ; then
+ case "$host" in
+ *-*-cygwin*)
+ MODULE_EXTENSION=".dll"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lcygwin" >&5
+$as_echo_n "checking for dlopen in -lcygwin... " >&6; }
+if ${ac_cv_lib_cygwin_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcygwin $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_cygwin_dlopen=yes
+else
+ ac_cv_lib_cygwin_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cygwin_dlopen" >&5
+$as_echo "$ac_cv_lib_cygwin_dlopen" >&6; }
+if test "x$ac_cv_lib_cygwin_dlopen" = xyes; then :
+
+ WITH_MODULES=1
+ MODULE_PLATFORM_LIBS=
+
+$as_echo "@%:@define HAVE_DLOPEN /**/" >>confdefs.h
+
+
+fi
+
+ ;;
+ *-*-mingw*)
+ MODULE_EXTENSION=".dll"
+ WITH_MODULES=1
+ ;;
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ libxml_have_shl_load=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+
+ MODULE_PLATFORM_LIBS="-ldld"
+ libxml_have_shl_load=yes
+else
+
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ libxml_have_dlopen=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+
+ MODULE_PLATFORM_LIBS="-ldl"
+ libxml_have_dlopen=yes
+fi
+
+fi
+
+fi
+
+fi
+
+
+ if test "${libxml_have_shl_load}" = "yes"; then
+ MODULE_EXTENSION=".sl"
+ WITH_MODULES=1
+
+$as_echo "@%:@define HAVE_SHLLOAD /**/" >>confdefs.h
+
+ fi
+
+ if test "${libxml_have_dlopen}" = "yes"; then
+ case "${host}" in
+ *-*-hpux* )
+ MODULE_EXTENSION=".sl"
+ ;;
+ * )
+ MODULE_EXTENSION=".so"
+ ;;
+ esac
+
+ WITH_MODULES=1
+
+$as_echo "@%:@define HAVE_DLOPEN /**/" >>confdefs.h
+
+ fi
+ ;;
+ esac
+fi
+
+if test "${WITH_MODULES}" = "1"; then
+ TEST_MODULES="ModuleTests"
+fi
+
+
+
+
+
+
+
+if [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ] || \
+ [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ] || \
+ [ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxml2" ]
+ then
+ if test "$with_minimum" != "yes"
+ then
+ if test "${with_mem_debug}" = "" ; then
+ echo Activating memory debugging
+ with_mem_debug="yes"
+ with_run_debug="yes"
+ fi
+ if test "${with_docbook}" = "" ; then
+ with_docbook="yes"
+ fi
+ fi
+ if test "${GCC}" = "yes" ; then
+ EXTRA_CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
+ fi
+ STATIC_BINARIES="-static"
+else
+ STATIC_BINARIES=
+fi
+
+
+
+if test "${NEED_TRIO}" = "1" ; then
+ echo Adding trio library for string functions
+ WITH_TRIO=1
+else
+ WITH_TRIO=0
+fi
+ if test "${NEED_TRIO}" = "1"; then
+ WITH_TRIO_SOURCES_TRUE=
+ WITH_TRIO_SOURCES_FALSE='#'
+else
+ WITH_TRIO_SOURCES_TRUE='#'
+ WITH_TRIO_SOURCES_FALSE=
+fi
+
+
+
+echo Checking configuration requirements
+
+THREAD_LIBS=""
+BASE_THREAD_LIBS=""
+WITH_THREADS=0
+THREAD_CFLAGS=""
+TEST_THREADS=""
+THREADS_W32=""
+WITH_THREAD_ALLOC=0
+
+if test "$with_threads" = "no" ; then
+ echo Disabling multithreaded support
+else
+ echo Enabling multithreaded support
+
+ case $host_os in
+ *mingw*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
+ WITH_THREADS="1"
+ THREADS_W32="1"
+ THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS"
+ fi
+ ;;
+ esac
+
+ if test -z "$THREADS_W32"; then
+ if test "$with_threads" = "pthread" || test "$with_threads" = "" || test "$with_threads" = "yes" ; then
+ ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
+if test "x$ac_cv_header_pthread_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in -lpthread" >&5
+$as_echo_n "checking for pthread_join in -lpthread... " >&6; }
+if ${ac_cv_lib_pthread_pthread_join+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_join ();
+int
+main ()
+{
+return pthread_join ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_pthread_pthread_join=yes
+else
+ ac_cv_lib_pthread_pthread_join=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_join" >&5
+$as_echo "$ac_cv_lib_pthread_pthread_join" >&6; }
+if test "x$ac_cv_lib_pthread_pthread_join" = xyes; then :
+
+ THREAD_LIBS="-lpthread"
+
+$as_echo "@%:@define HAVE_LIBPTHREAD /**/" >>confdefs.h
+
+
+$as_echo "@%:@define HAVE_PTHREAD_H /**/" >>confdefs.h
+
+ WITH_THREADS="1"
+fi
+
+fi
+
+
+ fi
+ fi
+
+ case $host_os in
+ *cygwin*) THREAD_LIBS=""
+ ;;
+ *beos*) WITH_THREADS="1"
+ THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
+ ;;
+ *linux*)
+ if test "${GCC}" = "yes" ; then
+ GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
+ GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'`
+ GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[0-9]*\.++' | sed 's+\..*++'`
+ if test "${THREAD_LIBS}" = "-lpthread" ; then
+ if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null
+ then
+ THREAD_LIBS=""
+ BASE_THREAD_LIBS="-lpthread"
+ else
+ if expr ${GCC_MAJOR} \> 3 > /dev/null
+ then
+ THREAD_LIBS=""
+ BASE_THREAD_LIBS="-lpthread"
+ else
+ echo old GCC disabling weak symbols for pthread
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "$WITH_THREADS" = "1" ; then
+ THREAD_CFLAGS="$THREAD_CFLAGS -D_REENTRANT"
+ TEST_THREADS="Threadtests"
+ fi
+fi
+if test "$with_thread_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then
+ WITH_THREAD_ALLOC=1
+fi
+
+
+
+
+
+
+
+ if test -n "$THREADS_W32"; then
+ THREADS_W32_TRUE=
+ THREADS_W32_FALSE='#'
+else
+ THREADS_W32_TRUE='#'
+ THREADS_W32_FALSE=
+fi
+
+
+if test "$with_history" = "yes" ; then
+ echo Enabling xmllint shell history
+ unset tcap
+ for termlib in ncurses curses termcap terminfo termlib; do
+ as_ac_Lib=`$as_echo "ac_cv_lib_${termlib}''_tputs" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tputs in -l${termlib}" >&5
+$as_echo_n "checking for tputs in -l${termlib}... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${termlib} $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char tputs ();
+int
+main ()
+{
+return tputs ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+else
+ eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ tcap="-l$termlib"
+fi
+
+ test -n "$tcap" && break
+ done
+
+ ac_fn_c_check_header_mongrel "$LINENO" "readline/history.h" "ac_cv_header_readline_history_h" "$ac_includes_default"
+if test "x$ac_cv_header_readline_history_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -lhistory" >&5
+$as_echo_n "checking for append_history in -lhistory... " >&6; }
+if ${ac_cv_lib_history_append_history+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lhistory $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char append_history ();
+int
+main ()
+{
+return append_history ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_history_append_history=yes
+else
+ ac_cv_lib_history_append_history=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_history_append_history" >&5
+$as_echo "$ac_cv_lib_history_append_history" >&6; }
+if test "x$ac_cv_lib_history_append_history" = xyes; then :
+
+ RDL_LIBS="-lhistory"
+
+$as_echo "@%:@define HAVE_LIBHISTORY /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ ac_fn_c_check_header_mongrel "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default"
+if test "x$ac_cv_header_readline_readline_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5
+$as_echo_n "checking for readline in -lreadline... " >&6; }
+if ${ac_cv_lib_readline_readline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lreadline $tcap $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char readline ();
+int
+main ()
+{
+return readline ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_readline_readline=yes
+else
+ ac_cv_lib_readline_readline=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5
+$as_echo "$ac_cv_lib_readline_readline" >&6; }
+if test "x$ac_cv_lib_readline_readline" = xyes; then :
+
+ RDL_LIBS="-lreadline $RDL_LIBS $tcap"
+
+$as_echo "@%:@define HAVE_LIBREADLINE /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ if test -n "$RDL_DIR" -a -n "$RDL_LIBS"; then
+ CPPFLAGS="$CPPFLAGS -I${RDL_DIR}/include"
+ RDL_LIBS="-L${RDL_DIR}/lib $RDL_LIBS"
+ fi
+fi
+
+if test "$with_tree" = "no" ; then
+ echo Disabling DOM like tree manipulation APIs
+ WITH_TREE=0
+else
+ WITH_TREE=1
+fi
+
+
+if test "$with_ftp" = "no" ; then
+ echo Disabling FTP support
+ WITH_FTP=0
+ FTP_OBJ=
+else
+ WITH_FTP=1
+ FTP_OBJ=nanoftp.o
+fi
+
+
+
+if test "$with_http" = "no" ; then
+ echo Disabling HTTP support
+ WITH_HTTP=0
+ HTTP_OBJ=
+else
+ WITH_HTTP=1
+ HTTP_OBJ=nanohttp.o
+fi
+
+
+
+if test "$with_legacy" = "no" ; then
+ echo Disabling deprecated APIs
+ WITH_LEGACY=0
+else
+ WITH_LEGACY=1
+fi
+
+
+if test "$with_reader" = "no" ; then
+ echo Disabling the xmlReader parsing interface
+ WITH_READER=0
+ READER_TEST=
+else
+ WITH_READER=1
+ READER_TEST=Readertests
+ if test "$with_push" = "no" ; then
+ echo xmlReader requires Push interface - enabling it
+ with_push=yes
+ fi
+fi
+
+
+
+if test "$with_writer" = "no" ; then
+ echo Disabling the xmlWriter saving interface
+ WITH_WRITER=0
+# WRITER_TEST=
+else
+ WITH_WRITER=1
+# WRITER_TEST=Writertests
+ if test "$with_push" = "no" ; then
+ echo xmlWriter requires Push interface - enabling it
+ with_push=yes
+ fi
+ if test "$with_output" = "no" ; then
+ echo xmlWriter requires Output interface - enabling it
+ with_output=yes
+ fi
+fi
+
+#AC_SUBST(WRITER_TEST)
+
+if test "$with_pattern" = "no" ; then
+ echo Disabling the xmlPattern parsing interface
+ WITH_PATTERN=0
+ TEST_PATTERN=
+else
+ WITH_PATTERN=1
+ TEST_PATTERN=Patterntests
+fi
+
+
+
+if test "$with_sax1" = "no" ; then
+ echo Disabling the older SAX1 interface
+ WITH_SAX1=0
+ TEST_SAX=
+else
+ WITH_SAX1=1
+ TEST_SAX=SAXtests
+fi
+
+ if test "${WITH_TRIO}" = "1"; then
+ WITH_SAX1_SOURCES_TRUE=
+ WITH_SAX1_SOURCES_FALSE='#'
+else
+ WITH_SAX1_SOURCES_TRUE='#'
+ WITH_SAX1_SOURCES_FALSE=
+fi
+
+
+
+if test "$with_push" = "no" ; then
+ echo Disabling the PUSH parser interfaces
+ WITH_PUSH=0
+ TEST_PUSH=
+else
+ WITH_PUSH=1
+ TEST_PUSH="XMLPushtests"
+fi
+
+
+
+if test "$with_html" = "no" ; then
+ echo Disabling HTML support
+ WITH_HTML=0
+ HTML_OBJ=
+ TEST_HTML=
+else
+ WITH_HTML=1
+ HTML_OBJ="HTMLparser.o HTMLtree.o"
+ TEST_HTML=HTMLtests
+ if test "$with_push" != "no" ; then
+ TEST_PHTML=HTMLPushtests
+ else
+ TEST_PHTML=
+ fi
+fi
+
+
+
+
+
+if test "$with_valid" = "no" ; then
+ echo Disabling DTD validation support
+ WITH_VALID=0
+ TEST_VALID=
+ TEST_VTIME=
+else
+ WITH_VALID=1
+ TEST_VALID=Validtests
+ TEST_VTIME=VTimingtests
+fi
+
+
+
+
+if test "$with_catalog" = "no" ; then
+ echo Disabling Catalog support
+ WITH_CATALOG=0
+ CATALOG_OBJ=
+ TEST_CATALOG=
+else
+ WITH_CATALOG=1
+ CATALOG_OBJ="catalog.o"
+ TEST_CATALOG=Catatests
+fi
+
+
+
+
+if test "$with_docbook" = "no" ; then
+ echo Disabling Docbook support
+ WITH_DOCB=0
+ DOCB_OBJ=
+else
+ WITH_DOCB=1
+ DOCB_OBJ="DOCBparser.o"
+fi
+
+
+
+
+if test "$with_xptr" = "no" ; then
+ echo Disabling XPointer support
+ WITH_XPTR=0
+ XPTR_OBJ=
+ TEST_XPTR=
+else
+ WITH_XPTR=1
+ XPTR_OBJ=xpointer.o
+ TEST_XPTR=XPtrtests
+ if test "$with_xpath" = "no" ; then
+ echo XPointer requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_c14n" = "no" ; then
+ echo Disabling C14N support
+ WITH_C14N=0
+ C14N_OBJ=
+ TEST_C14N=
+else
+ WITH_C14N=1
+ C14N_OBJ="c14n.c"
+ TEST_C14N=C14Ntests
+ if test "$with_xpath" = "no" ; then
+ echo C14N requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_xinclude" = "no" ; then
+ echo Disabling XInclude support
+ WITH_XINCLUDE=0
+ XINCLUDE_OBJ=
+ with_xinclude="no"
+ TEST_XINCLUDE=
+else
+ WITH_XINCLUDE=1
+ XINCLUDE_OBJ=xinclude.o
+ TEST_XINCLUDE=XIncludetests
+ if test "$with_xpath" = "no" ; then
+ echo XInclude requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_xptr" = "" -a "$with_xpath" = "no" ; then
+ with_xptr=no
+fi
+
+if test "$with_schematron" = "" -a "$with_xpath" = "no" ; then
+ with_schematron=no
+fi
+
+if test "$with_schematron" = "no" ; then
+ echo "Disabling Schematron support"
+ WITH_SCHEMATRON=0
+ TEST_SCHEMATRON=
+else
+ echo "Enabled Schematron support"
+ WITH_SCHEMATRON=1
+ TEST_SCHEMATRON="Schematrontests"
+ with_xpath=yes
+ with_pattern=yes
+ with_schematron=yes
+fi
+
+
+
+if test "$with_xpath" = "no" ; then
+ echo Disabling XPATH support
+ WITH_XPATH=0
+ XPATH_OBJ=
+ TEST_XPATH=
+else
+ WITH_XPATH=1
+ XPATH_OBJ=xpath.o
+ TEST_XPATH=XPathtests
+fi
+
+
+
+
+if test "$with_output" = "no" ; then
+ echo Disabling serialization/saving support
+ WITH_OUTPUT=0
+else
+ WITH_OUTPUT=1
+fi
+
+
+WITH_ICONV=0
+if test "$with_iconv" = "no" ; then
+ echo Disabling ICONV support
+else
+ if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_iconv/include"
+ # Export this since our headers include iconv.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_iconv/include"
+ ICONV_LIBS="-L$with_iconv/lib"
+ fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default"
+if test "x$ac_cv_header_iconv_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+
+iconv_t cd = iconv_open ("","");
+iconv (cd, NULL, NULL, NULL, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ICONV=1
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv in -liconv" >&5
+$as_echo_n "checking for iconv in -liconv... " >&6; }
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICONV_LIBS}"
+ LIBS="${LIBS} -liconv"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+
+iconv_t cd = iconv_open ("","");
+iconv (cd, NULL, NULL, NULL, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ICONV=1
+ ICONV_LIBS="${ICONV_LIBS} -liconv"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+
+ if test "$WITH_ICONV" = "1" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+ if ${xml_cv_iconv_arg2+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ xml_cv_iconv_arg2=""
+else
+ xml_cv_iconv_arg2="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+ xml_cv_iconv_decl="extern size_t iconv (iconv_t cd, $xml_cv_iconv_arg2 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${xml_xxx:-
+ }$xml_cv_iconv_decl" >&5
+$as_echo "${xml_xxx:-
+ }$xml_cv_iconv_decl" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+@%:@define ICONV_CONST $xml_cv_iconv_arg2
+_ACEOF
+
+ fi
+fi
+case "$host" in
+ *mingw*) M_LIBS=""
+ ;;
+ *beos*) M_LIBS=""
+ ;;
+ *haiku*) M_LIBS=""
+ ;;
+ *) M_LIBS="-lm"
+ ;;
+esac
+
+
+WITH_ICU=0
+ICU_LIBS=""
+if test "$with_icu" != "yes" ; then
+ echo Disabling ICU support
+else
+ # Try pkg-config first so that static linking works.
+ # If this succeeeds, we ignore the WITH_ICU directory.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ICU" >&5
+$as_echo_n "checking for ICU... " >&6; }
+
+if test -n "$ICU_CFLAGS"; then
+ pkg_cv_ICU_CFLAGS="$ICU_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-i18n\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "icu-i18n") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_ICU_CFLAGS=`$PKG_CONFIG --cflags "icu-i18n" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$ICU_LIBS"; then
+ pkg_cv_ICU_LIBS="$ICU_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-i18n\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "icu-i18n") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_ICU_LIBS=`$PKG_CONFIG --libs "icu-i18n" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ ICU_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "icu-i18n" 2>&1`
+ else
+ ICU_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "icu-i18n" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$ICU_PKG_ERRORS" >&5
+
+ have_libicu=no
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ have_libicu=no
+else
+ ICU_CFLAGS=$pkg_cv_ICU_CFLAGS
+ ICU_LIBS=$pkg_cv_ICU_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+fi
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "x$have_libicu" = "xno"; then
+ ICU_CONFIG=icu-config
+ if ${ICU_CONFIG} --cflags >/dev/null 2>&1
+ then
+ ICU_LIBS=`${ICU_CONFIG} --ldflags`
+ have_libicu=yes
+ echo Enabling ICU support
+ else
+ if test "$with_icu" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_icu"
+ # Export this since our headers include icu.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_icu"
+ fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "unicode/ucnv.h" "ac_cv_header_unicode_ucnv_h" "$ac_includes_default"
+if test "x$ac_cv_header_unicode_ucnv_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icu" >&5
+$as_echo_n "checking for icu... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unicode/ucnv.h>
+int
+main ()
+{
+
+ UConverter *utf = ucnv_open("UTF-8", NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icu in -licucore" >&5
+$as_echo_n "checking for icu in -licucore... " >&6; }
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICU_LIBS}"
+ LIBS="${LIBS} -licucore"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unicode/ucnv.h>
+int
+main ()
+{
+
+ UConverter *utf = ucnv_open("UTF-8", NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+ ICU_LIBS="${ICU_LIBS} -licucore"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+ fi
+ fi
+
+ # Found the library via either method?
+ if test "x$have_libicu" = "xyes"; then
+ WITH_ICU=1
+ fi
+fi
+XML_LIBS="-lxml2"
+XML_PRIVATE_LIBS="$Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $M_LIBS $LIBS"
+XML_LIBTOOLLIBS="libxml2.la"
+
+
+WITH_ISO8859X=1
+if test "$WITH_ICONV" != "1" ; then
+if test "$with_iso8859x" = "no" ; then
+ echo Disabling ISO8859X support
+ WITH_ISO8859X=0
+fi
+fi
+
+
+if test "$with_schemas" = "no" ; then
+ echo "Disabling Schemas/Relax-NG support"
+ WITH_SCHEMAS=0
+ TEST_SCHEMAS=
+else
+ echo "Enabled Schemas/Relax-NG support"
+ WITH_SCHEMAS=1
+ TEST_SCHEMAS="Schemastests Relaxtests"
+ if test "$PYTHON_INCLUDES" != "" ; then
+ PYTHON_TESTS="$PYTHON_TESTS RelaxNGPythonTests SchemasPythonTests"
+ fi
+ with_regexps=yes
+fi
+
+
+
+if test "$with_regexps" = "no" ; then
+ echo Disabling Regexps support
+ WITH_REGEXPS=0
+ TEST_REGEXPS=
+else
+ WITH_REGEXPS=1
+ TEST_REGEXPS="Regexptests Automatatests"
+fi
+
+
+
+if test "$with_debug" = "no" ; then
+ echo Disabling DEBUG support
+ WITH_DEBUG=0
+ DEBUG_OBJ=
+ TEST_DEBUG=
+else
+ WITH_DEBUG=1
+ DEBUG_OBJ=debugXML.o
+ TEST_DEBUG=Scripttests
+fi
+
+
+
+
+if test "$with_mem_debug" = "yes" ; then
+ if test "$with_thread_alloc" = "yes" ; then
+ echo Disabling memory debug - cannot use mem-debug with thread-alloc!
+ WITH_MEM_DEBUG=0
+ else
+ echo Enabling memory debug support
+ WITH_MEM_DEBUG=1
+ fi
+else
+ WITH_MEM_DEBUG=0
+fi
+
+
+if test "$with_run_debug" = "yes" ; then
+ echo Enabling runtime debug support
+ WITH_RUN_DEBUG=1
+else
+ WITH_RUN_DEBUG=0
+fi
+
+
+WIN32_EXTRA_LIBADD=
+WIN32_EXTRA_LDFLAGS=
+CYGWIN_EXTRA_LDFLAGS=
+CYGWIN_EXTRA_PYTHON_LIBADD=
+WIN32_EXTRA_PYTHON_LIBADD=
+case "$host" in
+ *-*-mingw*)
+ CPPFLAGS="$CPPFLAGS -DWIN32"
+ WIN32_EXTRA_LIBADD="-lws2_32"
+ WIN32_EXTRA_LDFLAGS="-no-undefined"
+ if test "${PYTHON}" != ""
+ then
+ case "$host" in
+ *-w64-mingw*)
+ WIN32_EXTRA_PYTHON_LIBADD="-shrext .pyd -L${pythondir}/../../lib -lpython${PYTHON_VERSION}"
+ ;;
+ *)
+ WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)"
+ ;;
+ esac
+ fi
+ ;;
+ *-*-cygwin*)
+ CYGWIN_EXTRA_LDFLAGS="-no-undefined"
+ if test "${PYTHON}" != ""
+ then
+ CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
+ fi
+ ;;
+esac
+
+
+
+
+
+
+for ac_func in printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+ NEED_TRIO=1
+fi
+done
+
+
+if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
+then
+ echo Enabling code coverage for GCC
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage"
+ LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage"
+else
+ echo Disabling code coverage for GCC
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+RELDATE=`date +'%a %b %e %Y'`
+
+
+
+rm -f COPYING.LIB COPYING
+ln -s $srcdir/Copyright COPYING
+
+# keep on one line for cygwin c.f. #130896
+ac_config_files="$ac_config_files libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h libxml-2.0.pc libxml-2.0-uninstalled.pc libxml2-config.cmake"
+
+ac_config_files="$ac_config_files python/setup.py"
+
+ac_config_files="$ac_config_files xml2-config"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIB@&t@OBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_VERSION_SCRIPT_TRUE}" && test -z "${USE_VERSION_SCRIPT_FALSE}"; then
+ as_fn_error $? "conditional \"USE_VERSION_SCRIPT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${REBUILD_DOCS_TRUE}" && test -z "${REBUILD_DOCS_FALSE}"; then
+ as_fn_error $? "conditional \"REBUILD_DOCS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_PYTHON_TRUE}" && test -z "${WITH_PYTHON_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_PYTHON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_TRIO_SOURCES_TRUE}" && test -z "${WITH_TRIO_SOURCES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_TRIO_SOURCES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${THREADS_W32_TRUE}" && test -z "${THREADS_W32_FALSE}"; then
+ as_fn_error $? "conditional \"THREADS_W32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_SAX1_SOURCES_TRUE}" && test -z "${WITH_SAX1_SOURCES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_SAX1_SOURCES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
+@%:@ ----------------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+@%:@ as_fn_executable_p FILE
+@%:@ -----------------------
+@%:@ Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} @%:@ as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
+@%:@@%:@ Running $as_me. @%:@@%:@
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+DLLTOOL \
+sharedlib_from_linklib_cmd \
+AR \
+AR_FLAGS \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
+nm_file_list_spec \
+lt_cv_truncate_bin \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "libxml2.spec") CONFIG_FILES="$CONFIG_FILES libxml2.spec:libxml.spec.in" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
+ "include/libxml/Makefile") CONFIG_FILES="$CONFIG_FILES include/libxml/Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "doc/examples/Makefile") CONFIG_FILES="$CONFIG_FILES doc/examples/Makefile" ;;
+ "doc/devhelp/Makefile") CONFIG_FILES="$CONFIG_FILES doc/devhelp/Makefile" ;;
+ "example/Makefile") CONFIG_FILES="$CONFIG_FILES example/Makefile" ;;
+ "python/Makefile") CONFIG_FILES="$CONFIG_FILES python/Makefile" ;;
+ "python/tests/Makefile") CONFIG_FILES="$CONFIG_FILES python/tests/Makefile" ;;
+ "xstc/Makefile") CONFIG_FILES="$CONFIG_FILES xstc/Makefile" ;;
+ "include/libxml/xmlversion.h") CONFIG_FILES="$CONFIG_FILES include/libxml/xmlversion.h" ;;
+ "libxml-2.0.pc") CONFIG_FILES="$CONFIG_FILES libxml-2.0.pc" ;;
+ "libxml-2.0-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES libxml-2.0-uninstalled.pc" ;;
+ "libxml2-config.cmake") CONFIG_FILES="$CONFIG_FILES libxml2-config.cmake" ;;
+ "python/setup.py") CONFIG_FILES="$CONFIG_FILES python/setup.py" ;;
+ "xml2-config") CONFIG_FILES="$CONFIG_FILES xml2-config" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ case $CONFIG_FILES in @%:@(
+ *\'*) :
+ eval set x "$CONFIG_FILES" ;; @%:@(
+ *) :
+ set x $CONFIG_FILES ;; @%:@(
+ *) :
+ ;;
+esac
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$am_mf" : 'X\(//\)[^/]' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$am_mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$am_mf" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { echo "$as_me:$LINENO: cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles" >&5
+ (cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. Try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ { am_dirpart=; unset am_dirpart;}
+ { am_filepart=; unset am_filepart;}
+ { am_mf=; unset am_mf;}
+ { am_rc=; unset am_rc;}
+ rm -f conftest-deps.mk
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive.
+AR_FLAGS=$lt_AR_FLAGS
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x@S|@2 in
+ x)
+ ;;
+ *:)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+ ;;
+ x:*)
+ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+ ;;
+ *)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in @S|@*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+ ;;
+ "python/setup.py":F) chmod +x python/setup.py ;;
+ "xml2-config":F) chmod +x xml2-config ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+echo Done configuring
diff --git a/libxml2-2.9.10/autom4te.cache/requests b/libxml2-2.9.10/autom4te.cache/requests
new file mode 100644
index 0000000..f0024a6
--- /dev/null
+++ b/libxml2-2.9.10/autom4te.cache/requests
@@ -0,0 +1,538 @@
+# This file was generated by Autom4te Sun Aug 20 18:29:13 UTC 2017.
+# It contains the lists of macros which have been traced.
+# It can be safely removed.
+
+@request = (
+ bless( [
+ '0',
+ 1,
+ [
+ '/usr/share/autoconf'
+ ],
+ [
+ '/usr/share/autoconf/autoconf/autoconf.m4f',
+ '-',
+ '/usr/share/aclocal-1.16/internal/ac-config-macro-dirs.m4',
+ '/usr/share/aclocal/ltargz.m4',
+ '/usr/share/aclocal/ltdl.m4',
+ '/usr/share/aclocal-1.16/amversion.m4',
+ '/usr/share/aclocal-1.16/auxdir.m4',
+ '/usr/share/aclocal-1.16/cond.m4',
+ '/usr/share/aclocal-1.16/depend.m4',
+ '/usr/share/aclocal-1.16/depout.m4',
+ '/usr/share/aclocal-1.16/init.m4',
+ '/usr/share/aclocal-1.16/install-sh.m4',
+ '/usr/share/aclocal-1.16/lead-dot.m4',
+ '/usr/share/aclocal-1.16/maintainer.m4',
+ '/usr/share/aclocal-1.16/make.m4',
+ '/usr/share/aclocal-1.16/missing.m4',
+ '/usr/share/aclocal-1.16/options.m4',
+ '/usr/share/aclocal-1.16/prog-cc-c-o.m4',
+ '/usr/share/aclocal-1.16/runlog.m4',
+ '/usr/share/aclocal-1.16/sanity.m4',
+ '/usr/share/aclocal-1.16/silent.m4',
+ '/usr/share/aclocal-1.16/strip.m4',
+ '/usr/share/aclocal-1.16/substnot.m4',
+ '/usr/share/aclocal-1.16/tar.m4',
+ 'm4/libtool.m4',
+ 'm4/ltoptions.m4',
+ 'm4/ltsugar.m4',
+ 'm4/ltversion.m4',
+ 'm4/lt~obsolete.m4',
+ 'acinclude.m4',
+ 'configure.ac'
+ ],
+ {
+ 'LT_SYS_DLOPEN_DEPLIBS' => 1,
+ '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+ 'AM_PROG_NM' => 1,
+ 'LT_SYS_DLOPEN_SELF' => 1,
+ '_LT_PROG_LTMAIN' => 1,
+ 'AC_LIBTOOL_DLOPEN' => 1,
+ 'AC_ENABLE_SHARED' => 1,
+ 'include' => 1,
+ 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AC_LIBTOOL_OBJDIR' => 1,
+ 'LT_CMD_MAX_LEN' => 1,
+ '_LT_AC_LANG_RC_CONFIG' => 1,
+ '_LT_AC_LANG_CXX_CONFIG' => 1,
+ 'AC_ENABLE_STATIC' => 1,
+ 'AC_LIBTOOL_WIN32_DLL' => 1,
+ 'AC_PROG_LD' => 1,
+ 'LT_AC_PROG_EGREP' => 1,
+ 'AC_LTDL_DLLIB' => 1,
+ 'LT_OUTPUT' => 1,
+ 'AC_LTDL_SHLIBEXT' => 1,
+ 'AC_TRY_EVAL2' => 1,
+ '_AM_DEPENDENCIES' => 1,
+ 'LTOBSOLETE_VERSION' => 1,
+ 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+ 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+ 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+ '_LT_AC_LANG_F77' => 1,
+ 'AC_LIBTOOL_PROG_CC_C_O' => 1,
+ 'AC_WITH_LTDL' => 1,
+ '_LT_COMPILER_BOILERPLATE' => 1,
+ 'AM_DISABLE_STATIC' => 1,
+ 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+ 'AC_PATH_MAGIC' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ '_LT_WITH_SYSROOT' => 1,
+ '_LT_AC_SYS_LIBPATH_AIX' => 1,
+ '_LT_REQUIRED_DARWIN_CHECKS' => 1,
+ '_LT_AC_LANG_GCJ_CONFIG' => 1,
+ 'AM_SILENT_RULES' => 1,
+ '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
+ '_LTDL_SETUP' => 1,
+ 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+ 'AM_RUN_LOG' => 1,
+ '_LT_AC_TRY_DLOPEN_SELF' => 1,
+ 'LT_AC_PROG_GCJ' => 1,
+ '_LT_LINKER_OPTION' => 1,
+ '_LT_AC_LOCK' => 1,
+ 'LTOPTIONS_VERSION' => 1,
+ '_LT_AC_LANG_F77_CONFIG' => 1,
+ 'LT_FUNC_ARGZ' => 1,
+ 'LT_PATH_LD' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ '_LT_AC_LANG_C_CONFIG' => 1,
+ 'AC_DEPLIBS_CHECK_METHOD' => 1,
+ 'AU_DEFUN' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'LT_AC_PROG_SED' => 1,
+ '_AM_PROG_CC_C_O' => 1,
+ '_AM_CONFIG_MACRO_DIRS' => 1,
+ 'AC_LIBLTDL_CONVENIENCE' => 1,
+ '_LT_AC_CHECK_DLFCN' => 1,
+ 'AM_DISABLE_SHARED' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ '_LT_AC_LANG_GCJ' => 1,
+ '_AM_SET_OPTION' => 1,
+ '_LT_CC_BASENAME' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ 'AC_LTDL_PREOPEN' => 1,
+ '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+ '_LT_PROG_ECHO_BACKSLASH' => 1,
+ '_LT_AC_PROG_CXXCPP' => 1,
+ 'AC_LIBTOOL_PICMODE' => 1,
+ 'LT_WITH_LTDL' => 1,
+ 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+ 'AM_SET_DEPDIR' => 1,
+ '_LT_AC_SHELL_INIT' => 1,
+ 'LT_LIB_M' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AM_SANITY_CHECK' => 1,
+ 'LT_AC_PROG_RC' => 1,
+ 'AC_CHECK_LIBM' => 1,
+ '_AM_MANGLE_OPTION' => 1,
+ 'LT_SYS_MODULE_PATH' => 1,
+ '_LT_DLL_DEF_P' => 1,
+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ '_LT_LIBOBJ' => 1,
+ '_LT_AC_LANG_CXX' => 1,
+ 'AC_LIBTOOL_CXX' => 1,
+ 'AC_DISABLE_FAST_INSTALL' => 1,
+ '_LT_LINKER_BOILERPLATE' => 1,
+ 'LT_PROG_GO' => 1,
+ 'AC_LIBTOOL_F77' => 1,
+ 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+ 'AC_LTDL_SYSSEARCHPATH' => 1,
+ '_AM_IF_OPTION' => 1,
+ 'AC_LIBTOOL_FC' => 1,
+ 'AC_CONFIG_MACRO_DIR' => 1,
+ '_AM_AUTOCONF_VERSION' => 1,
+ 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+ 'LTDL_INIT' => 1,
+ 'AC_LIBTOOL_SETUP' => 1,
+ 'AC_LIBTOOL_GCJ' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+ 'LTDL_CONVENIENCE' => 1,
+ 'LT_PROG_RC' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ 'LT_SYS_SYMBOL_USCORE' => 1,
+ 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+ 'AC_PATH_TOOL_PREFIX' => 1,
+ '_LT_COMPILER_OPTION' => 1,
+ 'LT_INIT' => 1,
+ 'AC_LIBTOOL_CONFIG' => 1,
+ 'LT_SYS_DLSEARCH_PATH' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ 'AC_LTDL_SHLIBPATH' => 1,
+ 'LT_PROG_GCJ' => 1,
+ '_LT_AC_FILE_LTDLL_C' => 1,
+ 'AM_PROG_INSTALL_SH' => 1,
+ 'AC_DEFUN' => 1,
+ 'AC_PROG_EGREP' => 1,
+ 'LT_PATH_NM' => 1,
+ 'LT_FUNC_DLSYM_USCORE' => 1,
+ '_LT_PROG_CXX' => 1,
+ 'AC_DISABLE_SHARED' => 1,
+ 'AM_MISSING_PROG' => 1,
+ 'AC_LTDL_ENABLE_INSTALL' => 1,
+ 'AC_DISABLE_STATIC' => 1,
+ 'AC_LIBTOOL_COMPILER_OPTION' => 1,
+ 'AC_LIBTOOL_RC' => 1,
+ 'm4_pattern_forbid' => 1,
+ 'AM_SET_LEADING_DOT' => 1,
+ 'm4_include' => 1,
+ '_AM_PROG_TAR' => 1,
+ 'LTDL_INSTALLABLE' => 1,
+ '_AC_PROG_LIBTOOL' => 1,
+ 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+ 'AC_LIBTOOL_LINKER_OPTION' => 1,
+ 'AC_TRY_COMPILE2' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ 'AC_LIB_LTDL' => 1,
+ 'AC_LTDL_OBJDIR' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ '_LT_PATH_TOOL_PREFIX' => 1,
+ '_AM_SET_OPTIONS' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
+ 'AM_MAINTAINER_MODE' => 1,
+ 'AC_LTDL_SYMBOL_USCORE' => 1,
+ 'AC_ENABLE_FAST_INSTALL' => 1,
+ '_m4_warn' => 1,
+ 'LT_LIB_DLLOAD' => 1,
+ 'AC_LIBLTDL_INSTALLABLE' => 1,
+ 'AC_LTDL_DLSYM_USCORE' => 1,
+ 'AM_DEP_TRACK' => 1,
+ 'AC_PROG_LD_RELOAD_FLAG' => 1,
+ '_LT_PROG_FC' => 1,
+ 'AM_ENABLE_SHARED' => 1,
+ 'AC_PROG_LD_GNU' => 1,
+ 'LTSUGAR_VERSION' => 1,
+ 'AC_PROG_NM' => 1,
+ 'LTVERSION_VERSION' => 1,
+ '_LT_PROG_F77' => 1,
+ 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+ 'AM_PROG_LD' => 1,
+ 'AC_LIBTOOL_DLOPEN_SELF' => 1,
+ 'LT_SYS_MODULE_EXT' => 1,
+ '_LT_AC_SYS_COMPILER' => 1,
+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+ 'LT_LANG' => 1,
+ 'AM_ENABLE_STATIC' => 1,
+ 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+ '_LT_AC_TAGVAR' => 1,
+ 'AM_MISSING_HAS_RUN' => 1
+ }
+ ], 'Autom4te::Request' ),
+ bless( [
+ '1',
+ 1,
+ [
+ '/usr/share/autoconf'
+ ],
+ [
+ '/usr/share/autoconf/autoconf/autoconf.m4f',
+ 'aclocal.m4',
+ 'configure.ac'
+ ],
+ {
+ 'm4_pattern_allow' => 1,
+ 'AC_CANONICAL_SYSTEM' => 1,
+ 'AM_XGETTEXT_OPTION' => 1,
+ 'AM_PROG_FC_C_O' => 1,
+ 'AC_CONFIG_FILES' => 1,
+ 'LT_INIT' => 1,
+ 'AC_INIT' => 1,
+ 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+ 'AC_CONFIG_AUX_DIR' => 1,
+ '_AM_COND_ENDIF' => 1,
+ 'AC_CANONICAL_BUILD' => 1,
+ '_m4_warn' => 1,
+ 'AM_MAINTAINER_MODE' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ 'AM_POT_TOOLS' => 1,
+ 'AM_PATH_GUILE' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AC_CONFIG_LINKS' => 1,
+ 'AC_CONFIG_LIBOBJ_DIR' => 1,
+ 'AM_GNU_GETTEXT' => 1,
+ 'AC_DEFINE_TRACE_LITERAL' => 1,
+ 'AC_SUBST_TRACE' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'AM_NLS' => 1,
+ 'AM_MAKEFILE_INCLUDE' => 1,
+ 'AC_FC_FREEFORM' => 1,
+ 'm4_include' => 1,
+ 'm4_pattern_forbid' => 1,
+ 'AC_CONFIG_HEADERS' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ '_AM_MAKEFILE_INCLUDE' => 1,
+ 'AH_OUTPUT' => 1,
+ 'include' => 1,
+ 'AC_SUBST' => 1,
+ 'AM_PROG_AR' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'AM_ENABLE_MULTILIB' => 1,
+ 'sinclude' => 1,
+ 'AC_FC_PP_SRCEXT' => 1,
+ '_AM_COND_ELSE' => 1,
+ 'AM_PROG_CXX_C_O' => 1,
+ 'AC_LIBSOURCE' => 1,
+ 'AC_FC_PP_DEFINE' => 1,
+ 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+ 'm4_sinclude' => 1,
+ 'AC_FC_SRCEXT' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ 'AC_CANONICAL_HOST' => 1,
+ 'AC_REQUIRE_AUX_FILE' => 1,
+ '_AM_COND_IF' => 1,
+ 'AC_CONFIG_SUBDIRS' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ 'AM_PROG_MKDIR_P' => 1,
+ 'AM_PROG_MOC' => 1,
+ 'AC_CANONICAL_TARGET' => 1,
+ 'AM_PROG_F77_C_O' => 1
+ }
+ ], 'Autom4te::Request' ),
+ bless( [
+ '2',
+ 1,
+ [
+ '/usr/share/autoconf'
+ ],
+ [
+ '/usr/share/autoconf/autoconf/autoconf.m4f',
+ '-',
+ '/usr/share/aclocal-1.16/internal/ac-config-macro-dirs.m4',
+ '/usr/share/aclocal/ltargz.m4',
+ '/usr/share/aclocal/ltdl.m4',
+ '/usr/share/aclocal/pkg.m4',
+ '/usr/share/aclocal-1.16/amversion.m4',
+ '/usr/share/aclocal-1.16/auxdir.m4',
+ '/usr/share/aclocal-1.16/cond.m4',
+ '/usr/share/aclocal-1.16/depend.m4',
+ '/usr/share/aclocal-1.16/depout.m4',
+ '/usr/share/aclocal-1.16/init.m4',
+ '/usr/share/aclocal-1.16/install-sh.m4',
+ '/usr/share/aclocal-1.16/lead-dot.m4',
+ '/usr/share/aclocal-1.16/maintainer.m4',
+ '/usr/share/aclocal-1.16/make.m4',
+ '/usr/share/aclocal-1.16/missing.m4',
+ '/usr/share/aclocal-1.16/options.m4',
+ '/usr/share/aclocal-1.16/prog-cc-c-o.m4',
+ '/usr/share/aclocal-1.16/runlog.m4',
+ '/usr/share/aclocal-1.16/sanity.m4',
+ '/usr/share/aclocal-1.16/silent.m4',
+ '/usr/share/aclocal-1.16/strip.m4',
+ '/usr/share/aclocal-1.16/substnot.m4',
+ '/usr/share/aclocal-1.16/tar.m4',
+ 'm4/libtool.m4',
+ 'm4/ltoptions.m4',
+ 'm4/ltsugar.m4',
+ 'm4/ltversion.m4',
+ 'm4/lt~obsolete.m4',
+ 'acinclude.m4',
+ 'configure.ac'
+ ],
+ {
+ 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+ 'LTDL_INIT' => 1,
+ 'PKG_NOARCH_INSTALLDIR' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+ 'AC_LIBTOOL_SETUP' => 1,
+ 'AC_LIBTOOL_GCJ' => 1,
+ 'LTDL_CONVENIENCE' => 1,
+ '_AM_IF_OPTION' => 1,
+ 'AC_LIBTOOL_FC' => 1,
+ 'PKG_CHECK_EXISTS' => 1,
+ 'AC_CONFIG_MACRO_DIR' => 1,
+ '_AM_AUTOCONF_VERSION' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ 'LT_PROG_GCJ' => 1,
+ 'AC_LTDL_SHLIBPATH' => 1,
+ 'AM_PROG_INSTALL_SH' => 1,
+ 'AC_DEFUN' => 1,
+ '_LT_AC_FILE_LTDLL_C' => 1,
+ 'AC_DISABLE_SHARED' => 1,
+ 'LT_FUNC_DLSYM_USCORE' => 1,
+ 'LT_PATH_NM' => 1,
+ '_LT_PROG_CXX' => 1,
+ 'AC_PROG_EGREP' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ 'LT_PROG_RC' => 1,
+ 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+ 'LT_SYS_SYMBOL_USCORE' => 1,
+ 'LT_INIT' => 1,
+ '_LT_COMPILER_OPTION' => 1,
+ 'AC_PATH_TOOL_PREFIX' => 1,
+ 'LT_SYS_DLSEARCH_PATH' => 1,
+ 'AC_LIBTOOL_CONFIG' => 1,
+ '_AC_PROG_LIBTOOL' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ 'AC_TRY_COMPILE2' => 1,
+ 'AC_LIBTOOL_LINKER_OPTION' => 1,
+ 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ 'AC_LTDL_OBJDIR' => 1,
+ 'AC_LIB_LTDL' => 1,
+ 'PKG_CHECK_VAR' => 1,
+ '_AM_SET_OPTIONS' => 1,
+ '_LT_PATH_TOOL_PREFIX' => 1,
+ 'AM_MISSING_PROG' => 1,
+ 'AC_LIBTOOL_COMPILER_OPTION' => 1,
+ 'AC_DISABLE_STATIC' => 1,
+ 'AC_LTDL_ENABLE_INSTALL' => 1,
+ 'm4_pattern_forbid' => 1,
+ 'AC_LIBTOOL_RC' => 1,
+ 'LTDL_INSTALLABLE' => 1,
+ '_AM_PROG_TAR' => 1,
+ 'm4_include' => 1,
+ 'AM_SET_LEADING_DOT' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+ 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+ '_LT_PROG_F77' => 1,
+ 'LTVERSION_VERSION' => 1,
+ 'LT_LANG' => 1,
+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+ '_LT_AC_SYS_COMPILER' => 1,
+ 'LT_SYS_MODULE_EXT' => 1,
+ 'AM_PROG_LD' => 1,
+ 'AC_LIBTOOL_DLOPEN_SELF' => 1,
+ 'AM_MISSING_HAS_RUN' => 1,
+ '_LT_AC_TAGVAR' => 1,
+ 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+ 'AM_ENABLE_STATIC' => 1,
+ '_m4_warn' => 1,
+ 'AC_ENABLE_FAST_INSTALL' => 1,
+ 'AM_MAINTAINER_MODE' => 1,
+ 'AC_LTDL_SYMBOL_USCORE' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
+ 'AC_LTDL_DLSYM_USCORE' => 1,
+ 'AC_LIBLTDL_INSTALLABLE' => 1,
+ 'LT_LIB_DLLOAD' => 1,
+ '_LT_PROG_FC' => 1,
+ 'AM_ENABLE_SHARED' => 1,
+ 'AC_PROG_LD_RELOAD_FLAG' => 1,
+ 'AM_DEP_TRACK' => 1,
+ 'AC_PROG_NM' => 1,
+ 'LTSUGAR_VERSION' => 1,
+ 'AC_PROG_LD_GNU' => 1,
+ 'AC_ENABLE_STATIC' => 1,
+ 'PKG_CHECK_MODULES' => 1,
+ '_LT_AC_LANG_CXX_CONFIG' => 1,
+ '_LT_AC_LANG_RC_CONFIG' => 1,
+ 'AC_PROG_LD' => 1,
+ 'AC_LIBTOOL_WIN32_DLL' => 1,
+ 'LT_OUTPUT' => 1,
+ 'LT_AC_PROG_EGREP' => 1,
+ 'AC_LTDL_DLLIB' => 1,
+ '_AM_DEPENDENCIES' => 1,
+ 'AC_TRY_EVAL2' => 1,
+ 'LTOBSOLETE_VERSION' => 1,
+ 'AC_LTDL_SHLIBEXT' => 1,
+ 'AM_PROG_NM' => 1,
+ '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+ 'LT_SYS_DLOPEN_DEPLIBS' => 1,
+ 'include' => 1,
+ '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+ 'AC_ENABLE_SHARED' => 1,
+ 'AC_LIBTOOL_DLOPEN' => 1,
+ '_LT_PROG_LTMAIN' => 1,
+ 'LT_SYS_DLOPEN_SELF' => 1,
+ 'AC_LIBTOOL_OBJDIR' => 1,
+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+ 'LT_CMD_MAX_LEN' => 1,
+ '_LT_AC_LANG_GCJ_CONFIG' => 1,
+ 'AM_SILENT_RULES' => 1,
+ '_LTDL_SETUP' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+ '_LT_AC_TRY_DLOPEN_SELF' => 1,
+ 'AM_RUN_LOG' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+ 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+ 'LTOPTIONS_VERSION' => 1,
+ '_LT_AC_LOCK' => 1,
+ '_LT_LINKER_OPTION' => 1,
+ 'LT_AC_PROG_GCJ' => 1,
+ 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+ 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+ '_LT_AC_LANG_F77' => 1,
+ 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+ 'AM_DISABLE_STATIC' => 1,
+ 'AC_WITH_LTDL' => 1,
+ '_LT_COMPILER_BOILERPLATE' => 1,
+ 'AC_LIBTOOL_PROG_CC_C_O' => 1,
+ '_LT_WITH_SYSROOT' => 1,
+ '_LT_AC_SYS_LIBPATH_AIX' => 1,
+ '_LT_REQUIRED_DARWIN_CHECKS' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ 'AC_PATH_MAGIC' => 1,
+ 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+ 'AM_DISABLE_SHARED' => 1,
+ '_LT_AC_CHECK_DLFCN' => 1,
+ 'AC_LIBLTDL_CONVENIENCE' => 1,
+ '_AM_CONFIG_MACRO_DIRS' => 1,
+ '_AM_SET_OPTION' => 1,
+ '_LT_AC_LANG_GCJ' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
+ '_LT_CC_BASENAME' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ '_LT_AC_LANG_F77_CONFIG' => 1,
+ 'AC_DEPLIBS_CHECK_METHOD' => 1,
+ '_LT_AC_LANG_C_CONFIG' => 1,
+ 'PKG_PROG_PKG_CONFIG' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'PKG_CHECK_MODULES_STATIC' => 1,
+ 'LT_PATH_LD' => 1,
+ 'LT_FUNC_ARGZ' => 1,
+ 'LT_AC_PROG_SED' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'AU_DEFUN' => 1,
+ '_AM_PROG_CC_C_O' => 1,
+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ '_LT_DLL_DEF_P' => 1,
+ 'LT_SYS_MODULE_PATH' => 1,
+ '_AM_MANGLE_OPTION' => 1,
+ '_LT_AC_LANG_CXX' => 1,
+ '_LT_LIBOBJ' => 1,
+ 'AC_DISABLE_FAST_INSTALL' => 1,
+ 'PKG_INSTALLDIR' => 1,
+ 'AC_LIBTOOL_CXX' => 1,
+ 'AC_LTDL_SYSSEARCHPATH' => 1,
+ 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+ 'AC_LIBTOOL_F77' => 1,
+ 'LT_PROG_GO' => 1,
+ '_LT_LINKER_BOILERPLATE' => 1,
+ '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+ 'AC_LTDL_PREOPEN' => 1,
+ '_LT_AC_PROG_CXXCPP' => 1,
+ '_LT_PROG_ECHO_BACKSLASH' => 1,
+ 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+ 'AM_SET_DEPDIR' => 1,
+ 'AC_LIBTOOL_PICMODE' => 1,
+ 'LT_WITH_LTDL' => 1,
+ 'LT_AC_PROG_RC' => 1,
+ 'AC_CHECK_LIBM' => 1,
+ 'AM_SANITY_CHECK' => 1,
+ 'm4_pattern_allow' => 1,
+ 'LT_LIB_M' => 1,
+ '_LT_AC_SHELL_INIT' => 1
+ }
+ ], 'Autom4te::Request' )
+ );
+
diff --git a/libxml2-2.9.10/autom4te.cache/traces.0 b/libxml2-2.9.10/autom4te.cache/traces.0
new file mode 100644
index 0000000..37e587f
--- /dev/null
+++ b/libxml2-2.9.10/autom4te.cache/traces.0
@@ -0,0 +1,3017 @@
+m4trace:/usr/share/aclocal/ltargz.m4:12: -1- AC_DEFUN([LT_FUNC_ARGZ], [
+AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT])
+
+AC_CHECK_TYPES([error_t],
+ [],
+ [AC_DEFINE([error_t], [int],
+ [Define to a type to use for 'error_t' if it is not otherwise available.])
+ AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h
+ does not typedef error_t.])],
+ [#if defined(HAVE_ARGZ_H)
+# include <argz.h>
+#endif])
+
+LT_ARGZ_H=
+AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \
+ argz_next argz_stringify], [], [LT_ARGZ_H=lt__argz.h; AC_LIBOBJ([lt__argz])])
+
+dnl if have system argz functions, allow forced use of
+dnl libltdl-supplied implementation (and default to do so
+dnl on "known bad" systems). Could use a runtime check, but
+dnl (a) detecting malloc issues is notoriously unreliable
+dnl (b) only known system that declares argz functions,
+dnl provides them, yet they are broken, is cygwin
+dnl releases prior to 16-Mar-2007 (1.5.24 and earlier)
+dnl So, it's more straightforward simply to special case
+dnl this for known bad systems.
+AS_IF([test -z "$LT_ARGZ_H"],
+ [AC_CACHE_CHECK(
+ [if argz actually works],
+ [lt_cv_sys_argz_works],
+ [[case $host_os in #(
+ *cygwin*)
+ lt_cv_sys_argz_works=no
+ if test no != "$cross_compiling"; then
+ lt_cv_sys_argz_works="guessing no"
+ else
+ lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
+ save_IFS=$IFS
+ IFS=-.
+ set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
+ IFS=$save_IFS
+ lt_os_major=${2-0}
+ lt_os_minor=${3-0}
+ lt_os_micro=${4-0}
+ if test 1 -lt "$lt_os_major" \
+ || { test 1 -eq "$lt_os_major" \
+ && { test 5 -lt "$lt_os_minor" \
+ || { test 5 -eq "$lt_os_minor" \
+ && test 24 -lt "$lt_os_micro"; }; }; }; then
+ lt_cv_sys_argz_works=yes
+ fi
+ fi
+ ;; #(
+ *) lt_cv_sys_argz_works=yes ;;
+ esac]])
+ AS_IF([test yes = "$lt_cv_sys_argz_works"],
+ [AC_DEFINE([HAVE_WORKING_ARGZ], 1,
+ [This value is set to 1 to indicate that the system argz facility works])],
+ [LT_ARGZ_H=lt__argz.h
+ AC_LIBOBJ([lt__argz])])])
+
+AC_SUBST([LT_ARGZ_H])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT])
+_$0($*)
+])
+m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl
+dnl Although the argument is deprecated and no longer documented,
+dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one
+dnl here make sure it is the same as any other declaration of libltdl's
+dnl location! This also ensures lt_ltdl_dir is set when configure.ac is
+dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
+m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
+_$0()
+])
+m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_CONVENIENCE])
+m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete.
+You should run autoupdate.])dnl
+_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_CONVENIENCE])
+m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl
+dnl Although the argument is deprecated and no longer documented,
+dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one
+dnl here make sure it is the same as any other declaration of libltdl's
+dnl location! This also ensures lt_ltdl_dir is set when configure.ac is
+dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
+m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
+_$0()
+])
+m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_INSTALLABLE])
+m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete.
+You should run autoupdate.])dnl
+_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_INSTALLABLE])
+m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [
+ m4_pattern_allow([^_LT_LIBOBJS$])
+ _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext"
+])
+m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+dnl We need to keep our own list of libobjs separate from our parent project,
+dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while
+dnl we look for our own LIBOBJs.
+m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ]))
+m4_pushdef([AC_LIBSOURCES])
+
+dnl If not otherwise defined, default to the 1.5.x compatible subproject mode:
+m4_if(_LTDL_MODE, [],
+ [m4_define([_LTDL_MODE], m4_default([$2], [subproject]))
+ m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])],
+ [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])
+
+AC_ARG_WITH([included_ltdl],
+ [AS_HELP_STRING([--with-included-ltdl],
+ [use the GNU ltdl sources included here])])
+
+if test yes != "$with_included_ltdl"; then
+ # We are not being forced to use the included libltdl sources, so
+ # decide whether there is a useful installed version we can use.
+ AC_CHECK_HEADER([ltdl.h],
+ [AC_CHECK_DECL([lt_dlinterface_register],
+ [AC_CHECK_LIB([ltdl], [lt_dladvise_preload],
+ [with_included_ltdl=no],
+ [with_included_ltdl=yes])],
+ [with_included_ltdl=yes],
+ [AC_INCLUDES_DEFAULT
+ #include <ltdl.h>])],
+ [with_included_ltdl=yes],
+ [AC_INCLUDES_DEFAULT]
+ )
+fi
+
+dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE
+dnl was called yet, then for old times' sake, we assume libltdl is in an
+dnl eponymous directory:
+AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])])
+
+AC_ARG_WITH([ltdl_include],
+ [AS_HELP_STRING([--with-ltdl-include=DIR],
+ [use the ltdl headers installed in DIR])])
+
+if test -n "$with_ltdl_include"; then
+ if test -f "$with_ltdl_include/ltdl.h"; then :
+ else
+ AC_MSG_ERROR([invalid ltdl include directory: '$with_ltdl_include'])
+ fi
+else
+ with_ltdl_include=no
+fi
+
+AC_ARG_WITH([ltdl_lib],
+ [AS_HELP_STRING([--with-ltdl-lib=DIR],
+ [use the libltdl.la installed in DIR])])
+
+if test -n "$with_ltdl_lib"; then
+ if test -f "$with_ltdl_lib/libltdl.la"; then :
+ else
+ AC_MSG_ERROR([invalid ltdl library directory: '$with_ltdl_lib'])
+ fi
+else
+ with_ltdl_lib=no
+fi
+
+case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in
+ ,yes,no,no,)
+ m4_case(m4_default(_LTDL_TYPE, [convenience]),
+ [convenience], [_LTDL_CONVENIENCE],
+ [installable], [_LTDL_INSTALLABLE],
+ [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)])
+ ;;
+ ,no,no,no,)
+ # If the included ltdl is not to be used, then use the
+ # preinstalled libltdl we found.
+ AC_DEFINE([HAVE_LTDL], [1],
+ [Define this if a modern libltdl is already installed])
+ LIBLTDL=-lltdl
+ LTDLDEPS=
+ LTDLINCL=
+ ;;
+ ,no*,no,*)
+ AC_MSG_ERROR(['--with-ltdl-include' and '--with-ltdl-lib' options must be used together])
+ ;;
+ *) with_included_ltdl=no
+ LIBLTDL="-L$with_ltdl_lib -lltdl"
+ LTDLDEPS=
+ LTDLINCL=-I$with_ltdl_include
+ ;;
+esac
+INCLTDL=$LTDLINCL
+
+# Report our decision...
+AC_MSG_CHECKING([where to find libltdl headers])
+AC_MSG_RESULT([$LTDLINCL])
+AC_MSG_CHECKING([where to find libltdl library])
+AC_MSG_RESULT([$LIBLTDL])
+
+_LTDL_SETUP
+
+dnl restore autoconf definition.
+m4_popdef([AC_LIBOBJ])
+m4_popdef([AC_LIBSOURCES])
+
+AC_CONFIG_COMMANDS_PRE([
+ _ltdl_libobjs=
+ _ltdl_ltlibobjs=
+ if test -n "$_LT_LIBOBJS"; then
+ # Remove the extension.
+ _lt_sed_drop_objext='s/\.o$//;s/\.obj$//'
+ for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do
+ _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext"
+ _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo"
+ done
+ fi
+ AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs])
+ AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs])
+])
+
+# Only expand once:
+m4_define([LTDL_INIT])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_SYS_MODULE_EXT])dnl
+AC_REQUIRE([LT_SYS_MODULE_PATH])dnl
+AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl
+AC_REQUIRE([LT_LIB_DLLOAD])dnl
+AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl
+AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl
+AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl
+AC_REQUIRE([LT_FUNC_ARGZ])dnl
+
+m4_require([_LT_CHECK_OBJDIR])dnl
+m4_require([_LT_HEADER_DLFCN])dnl
+m4_require([_LT_CHECK_DLPREOPEN])dnl
+m4_require([_LT_DECL_SED])dnl
+
+dnl Don't require this, or it will be expanded earlier than the code
+dnl that sets the variables it relies on:
+_LT_ENABLE_INSTALL
+
+dnl _LTDL_MODE specific code must be called at least once:
+_LTDL_MODE_DISPATCH
+
+# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS
+# the user used. This is so that ltdl.h can pick up the parent projects
+# config.h file, The first file in AC_CONFIG_HEADERS must contain the
+# definitions required by ltdl.c.
+# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility).
+AC_CONFIG_COMMANDS_PRE([dnl
+m4_pattern_allow([^LT_CONFIG_H$])dnl
+m4_ifset([AH_HEADER],
+ [LT_CONFIG_H=AH_HEADER],
+ [m4_ifset([AC_LIST_HEADERS],
+ [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's|^[[ ]]*||;s|[[ :]].*$||'`],
+ [])])])
+AC_SUBST([LT_CONFIG_H])
+
+AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h],
+ [], [], [AC_INCLUDES_DEFAULT])
+
+AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])])
+AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])])
+
+m4_pattern_allow([LT_LIBEXT])dnl
+AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension])
+
+name=
+eval "lt_libprefix=\"$libname_spec\""
+m4_pattern_allow([LT_LIBPREFIX])dnl
+AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix])
+
+name=ltdl
+eval "LTDLOPEN=\"$libname_spec\""
+AC_SUBST([LTDLOPEN])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:443: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_CACHE_CHECK([whether deplibs are loaded by dlopen],
+ [lt_cv_sys_dlopen_deplibs],
+ [# PORTME does your system automatically load deplibs for dlopen?
+ # or its logical equivalent (e.g. shl_load for HP-UX < 11)
+ # For now, we just catch OSes we know something about -- in the
+ # future, we'll try test this programmatically.
+ lt_cv_sys_dlopen_deplibs=unknown
+ case $host_os in
+ aix3*|aix4.1.*|aix4.2.*)
+ # Unknown whether this is true for these versions of AIX, but
+ # we want this 'case' here to explicitly catch those versions.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ aix[[4-9]]*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ lt_cv_sys_dlopen_deplibs=no
+ ;;
+ esac
+ ;;
+ bitrig*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ darwin*)
+ # Assuming the user has installed a libdl from somewhere, this is true
+ # If you are looking for one http://www.opendarwin.org/projects/dlcompat
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ freebsd* | dragonfly*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ # GNU and its variants, using gnu ld.so (Glibc)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ hpux10*|hpux11*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ interix*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ irix[[12345]]*|irix6.[[01]]*)
+ # Catch all versions of IRIX before 6.2, and indicate that we don't
+ # know how it worked for any of those versions.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ irix*)
+ # The case above catches anything before 6.2, and it's known that
+ # at 6.2 and later dlopen does load deplibs.
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ netbsd* | netbsdelf*-gnu)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ openbsd*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ osf[[1234]]*)
+ # dlopen did load deplibs (at least at 4.x), but until the 5.x series,
+ # it did *not* use an RPATH in a shared library to find objects the
+ # library depends on, so we explicitly say 'no'.
+ lt_cv_sys_dlopen_deplibs=no
+ ;;
+ osf5.0|osf5.0a|osf5.1)
+ # dlopen *does* load deplibs and with the right loader patch applied
+ # it even uses RPATH in a shared library to search for shared objects
+ # that the library depends on, but there's no easy way to know if that
+ # patch is installed. Since this is the case, all we can really
+ # say is unknown -- it depends on the patch being installed. If
+ # it is, this changes to 'yes'. Without it, it would be 'no'.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ osf*)
+ # the two cases above should catch all versions of osf <= 5.1. Read
+ # the comments above for what we know about them.
+ # At > 5.1, deplibs are loaded *and* any RPATH in a shared library
+ # is used to find them so we can finally say 'yes'.
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ qnx*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ solaris*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ libltdl_cv_sys_dlopen_deplibs=yes
+ ;;
+ esac
+ ])
+if test yes != "$lt_cv_sys_dlopen_deplibs"; then
+ AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1],
+ [Define if the OS needs help to load dependent libraries for dlopen().])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:545: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:545: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:552: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([what extension is used for runtime loadable modules],
+ [libltdl_cv_shlibext],
+[
+module=yes
+eval libltdl_cv_shlibext=$shrext_cmds
+module=no
+eval libltdl_cv_shrext=$shrext_cmds
+ ])
+if test -n "$libltdl_cv_shlibext"; then
+ m4_pattern_allow([LT_MODULE_EXT])dnl
+ AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"],
+ [Define to the extension used for runtime loadable modules, say, ".so".])
+fi
+if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then
+ m4_pattern_allow([LT_SHARED_EXT])dnl
+ AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"],
+ [Define to the shared library suffix, say, ".dylib".])
+fi
+if test -n "$shared_archive_member_spec"; then
+ m4_pattern_allow([LT_SHARED_LIB_MEMBER])dnl
+ AC_DEFINE_UNQUOTED([LT_SHARED_LIB_MEMBER], ["($shared_archive_member_spec.o)"],
+ [Define to the shared archive member specification, say "(shr.o)".])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:580: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:580: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:587: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([what variable specifies run-time module search path],
+ [lt_cv_module_path_var], [lt_cv_module_path_var=$shlibpath_var])
+if test -n "$lt_cv_module_path_var"; then
+ m4_pattern_allow([LT_MODULE_PATH_VAR])dnl
+ AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"],
+ [Define to the name of the environment variable that determines the run-time module search path.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:599: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:599: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:606: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([for the default library search path],
+ [lt_cv_sys_dlsearch_path],
+ [lt_cv_sys_dlsearch_path=$sys_lib_dlsearch_path_spec])
+if test -n "$lt_cv_sys_dlsearch_path"; then
+ sys_dlsearch_path=
+ for dir in $lt_cv_sys_dlsearch_path; do
+ if test -z "$sys_dlsearch_path"; then
+ sys_dlsearch_path=$dir
+ else
+ sys_dlsearch_path=$sys_dlsearch_path$PATH_SEPARATOR$dir
+ fi
+ done
+ m4_pattern_allow([LT_DLSEARCH_PATH])dnl
+ AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"],
+ [Define to the system default library search path.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:627: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:627: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:653: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$])
+LT_DLLOADERS=
+AC_SUBST([LT_DLLOADERS])
+
+AC_LANG_PUSH([C])
+lt_dlload_save_LIBS=$LIBS
+
+LIBADD_DLOPEN=
+AC_SEARCH_LIBS([dlopen], [dl],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ if test "$ac_cv_search_dlopen" != "none required"; then
+ LIBADD_DLOPEN=-ldl
+ fi
+ libltdl_cv_lib_dl_dlopen=yes
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H
+# include <dlfcn.h>
+#endif
+ ]], [[dlopen(0, 0);]])],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ libltdl_cv_func_dlopen=yes
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ LIBADD_DLOPEN=-lsvld libltdl_cv_func_dlopen=yes
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])])
+if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"
+then
+ lt_save_LIBS=$LIBS
+ LIBS="$LIBS $LIBADD_DLOPEN"
+ AC_CHECK_FUNCS([dlerror])
+ LIBS=$lt_save_LIBS
+fi
+AC_SUBST([LIBADD_DLOPEN])
+
+LIBADD_SHL_LOAD=
+AC_CHECK_FUNC([shl_load],
+ [AC_DEFINE([HAVE_SHL_LOAD], [1],
+ [Define if you have the shl_load function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [AC_DEFINE([HAVE_SHL_LOAD], [1],
+ [Define if you have the shl_load function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"
+ LIBADD_SHL_LOAD=-ldld])])
+AC_SUBST([LIBADD_SHL_LOAD])
+
+case $host_os in
+darwin[[1567]].*)
+# We only want this for pre-Mac OS X 10.4.
+ AC_CHECK_FUNC([_dyld_func_lookup],
+ [AC_DEFINE([HAVE_DYLD], [1],
+ [Define if you have the _dyld_func_lookup function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"])
+ ;;
+beos*)
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la"
+ ;;
+cygwin* | mingw* | pw32*)
+ AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include <sys/cygwin.h>]])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la"
+ ;;
+esac
+
+AC_CHECK_LIB([dld], [dld_link],
+ [AC_DEFINE([HAVE_DLD], [1],
+ [Define if you have the GNU dld library.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"])
+AC_SUBST([LIBADD_DLD_LINK])
+
+m4_pattern_allow([^LT_DLPREOPEN$])
+LT_DLPREOPEN=
+if test -n "$LT_DLLOADERS"
+then
+ for lt_loader in $LT_DLLOADERS; do
+ LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader "
+ done
+ AC_DEFINE([HAVE_LIBDLLOADER], [1],
+ [Define if libdlloader will be built on this platform])
+fi
+AC_SUBST([LT_DLPREOPEN])
+
+dnl This isn't used anymore, but set it for backwards compatibility
+LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD"
+AC_SUBST([LIBADD_DL])
+
+LIBS=$lt_dlload_save_LIBS
+AC_LANG_POP
+])
+m4trace:/usr/share/aclocal/ltdl.m4:748: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:748: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:756: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+AC_CACHE_CHECK([for _ prefix in compiled symbols],
+ [lt_cv_sys_symbol_underscore],
+ [lt_cv_sys_symbol_underscore=no
+ cat > conftest.$ac_ext <<_LT_EOF
+void nm_test_func(){}
+int main(){nm_test_func;return 0;}
+_LT_EOF
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ ac_nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
+ # See whether the symbols have a leading underscore.
+ if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
+ lt_cv_sys_symbol_underscore=yes
+ else
+ if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
+ :
+ else
+ echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ fi
+ else
+ echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.c >&AS_MESSAGE_LOG_FD
+ fi
+ rm -rf conftest*
+ ])
+ sys_symbol_underscore=$lt_cv_sys_symbol_underscore
+ AC_SUBST([sys_symbol_underscore])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:793: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:793: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:800: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([_LT_COMPILER_PIC])dnl for lt_prog_compiler_wl
+AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl for lt_cv_sys_symbol_underscore
+AC_REQUIRE([LT_SYS_MODULE_EXT])dnl for libltdl_cv_shlibext
+if test yes = "$lt_cv_sys_symbol_underscore"; then
+ if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"; then
+ AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
+ [libltdl_cv_need_uscore],
+ [libltdl_cv_need_uscore=unknown
+ dlsym_uscore_save_LIBS=$LIBS
+ LIBS="$LIBS $LIBADD_DLOPEN"
+ libname=conftmod # stay within 8.3 filename limits!
+ cat >$libname.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+int fnord () { return 42; }]
+_LT_EOF
+
+ # ltfn_module_cmds module_cmds
+ # Execute tilde-delimited MODULE_CMDS with environment primed for
+ # $module_cmds or $archive_cmds type content.
+ ltfn_module_cmds ()
+ {( # subshell avoids polluting parent global environment
+ module_cmds_save_ifs=$IFS; IFS='~'
+ for cmd in @S|@1; do
+ IFS=$module_cmds_save_ifs
+ libobjs=$libname.$ac_objext; lib=$libname$libltdl_cv_shlibext
+ rpath=/not-exists; soname=$libname$libltdl_cv_shlibext; output_objdir=.
+ major=; versuffix=; verstring=; deplibs=
+ ECHO=echo; wl=$lt_prog_compiler_wl; allow_undefined_flag=
+ eval $cmd
+ done
+ IFS=$module_cmds_save_ifs
+ )}
+
+ # Compile a loadable module using libtool macro expansion results.
+ $CC $pic_flag -c $libname.$ac_ext
+ ltfn_module_cmds "${module_cmds:-$archive_cmds}"
+
+ # Try to fetch fnord with dlsym().
+ libltdl_dlunknown=0; libltdl_dlnouscore=1; libltdl_dluscore=2
+ cat >conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+#include <stdio.h>
+#ifndef RTLD_GLOBAL
+# ifdef DL_GLOBAL
+# define RTLD_GLOBAL DL_GLOBAL
+# else
+# define RTLD_GLOBAL 0
+# endif
+#endif
+#ifndef RTLD_NOW
+# ifdef DL_NOW
+# define RTLD_NOW DL_NOW
+# else
+# define RTLD_NOW 0
+# endif
+#endif
+int main () {
+ void *handle = dlopen ("`pwd`/$libname$libltdl_cv_shlibext", RTLD_GLOBAL|RTLD_NOW);
+ int status = $libltdl_dlunknown;
+ if (handle) {
+ if (dlsym (handle, "fnord"))
+ status = $libltdl_dlnouscore;
+ else {
+ if (dlsym (handle, "_fnord"))
+ status = $libltdl_dluscore;
+ else
+ puts (dlerror ());
+ }
+ dlclose (handle);
+ } else
+ puts (dlerror ());
+ return status;
+}]
+_LT_EOF
+ if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+ libltdl_status=$?
+ case x$libltdl_status in
+ x$libltdl_dlnouscore) libltdl_cv_need_uscore=no ;;
+ x$libltdl_dluscore) libltdl_cv_need_uscore=yes ;;
+ x*) libltdl_cv_need_uscore=unknown ;;
+ esac
+ fi
+ rm -rf conftest* $libname*
+ LIBS=$dlsym_uscore_save_LIBS
+ ])
+ fi
+fi
+
+if test yes = "$libltdl_cv_need_uscore"; then
+ AC_DEFINE([NEED_USCORE], [1],
+ [Define if dlsym() requires a leading underscore in symbol names.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:907: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:907: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])])
+m4trace:/usr/share/aclocal-1.16/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.16'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.16.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+m4trace:/usr/share/aclocal-1.16/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.16.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+m4trace:/usr/share/aclocal-1.16/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+m4trace:/usr/share/aclocal-1.16/cond.m4:12: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+m4trace:/usr/share/aclocal-1.16/depend.m4:26: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],
+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],
+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+m4trace:/usr/share/aclocal-1.16/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+m4trace:/usr/share/aclocal-1.16/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+ [--enable-dependency-tracking],
+ [do not reject slow dependency extractors])
+AS_HELP_STRING(
+ [--disable-dependency-tracking],
+ [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+m4trace:/usr/share/aclocal-1.16/depout.m4:11: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ AS_CASE([$CONFIG_FILES],
+ [*\'*], [eval set x "$CONFIG_FILES"],
+ [*], [set x $CONFIG_FILES])
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`AS_DIRNAME(["$am_mf"])`
+ am_filepart=`AS_BASENAME(["$am_mf"])`
+ AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles]) || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. Try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).])
+ fi
+ AS_UNSET([am_dirpart])
+ AS_UNSET([am_filepart])
+ AS_UNSET([am_mf])
+ AS_UNSET([am_rc])
+ rm -f conftest-deps.mk
+}
+])
+m4trace:/usr/share/aclocal-1.16/depout.m4:62: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
+m4trace:/usr/share/aclocal-1.16/init.m4:29: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+ [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+m4trace:/usr/share/aclocal-1.16/init.m4:186: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+m4trace:/usr/share/aclocal-1.16/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST([install_sh])])
+m4trace:/usr/share/aclocal-1.16/lead-dot.m4:10: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+m4trace:/usr/share/aclocal-1.16/maintainer.m4:16: -1- AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+ [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+ am_maintainer_other[ make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer])],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+
+])
+m4trace:/usr/share/aclocal-1.16/make.m4:13: -1- AC_DEFUN([AM_MAKE_INCLUDE], [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+ ['0:this is the am__doit target'],
+ [AS_CASE([$s],
+ [BSD], [am__include='.include' am__quote='"'],
+ [am__include='include' am__quote=''])])
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+m4trace:/usr/share/aclocal-1.16/make.m4:42: -1- m4_pattern_allow([^am__quote$])
+m4trace:/usr/share/aclocal-1.16/missing.m4:11: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+m4trace:/usr/share/aclocal-1.16/missing.m4:20: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+m4trace:/usr/share/aclocal-1.16/options.m4:11: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+m4trace:/usr/share/aclocal-1.16/options.m4:17: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+m4trace:/usr/share/aclocal-1.16/options.m4:23: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+m4trace:/usr/share/aclocal-1.16/options.m4:29: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+m4trace:/usr/share/aclocal-1.16/prog-cc-c-o.m4:12: -1- AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+m4trace:/usr/share/aclocal-1.16/prog-cc-c-o.m4:47: -1- AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+m4trace:/usr/share/aclocal-1.16/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+m4trace:/usr/share/aclocal-1.16/sanity.m4:11: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+ alias in your environment])
+ fi
+ if test "$[2]" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+ [AC_MSG_CHECKING([that generated files are newer than configure])
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+m4trace:/usr/share/aclocal-1.16/silent.m4:12: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+ [--enable-silent-rules],
+ [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+ [--disable-silent-rules],
+ [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+ [am_cv_make_support_nested_variables],
+ [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+ dnl Using '$V' instead of '$(V)' breaks IRIX make.
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+m4trace:/usr/share/aclocal-1.16/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+m4trace:/usr/share/aclocal-1.16/substnot.m4:12: -1- AC_DEFUN([_AM_SUBST_NOTMAKE])
+m4trace:/usr/share/aclocal-1.16/substnot.m4:17: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+m4trace:/usr/share/aclocal-1.16/tar.m4:23: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [m4_case([$1],
+ [ustar],
+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+ # There is notably a 21 bits limit for the UID and the GID. In fact,
+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+ # and bug#13588).
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to resort
+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
+ # below are definitely unexpected, so allow the users to see them
+ # (that is, avoid stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+ if test $am_uid -le $am_max_uid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi
+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+ if test $am_gid -le $am_max_gid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
+ rm -rf conftest.dir
+
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+])
+m4trace:m4/libtool.m4:61: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])
+m4trace:m4/libtool.m4:99: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:99: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:100: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:100: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:619: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+ echo
+ AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+'$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test 0 != $[#]
+do
+ case $[1] in
+ --version | --v* | -V )
+ echo "$lt_cl_version"; exit 0 ;;
+ --help | --h* | -h )
+ echo "$lt_cl_help"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --quiet | --q* | --silent | --s* | -q )
+ lt_cl_silent=: ;;
+
+ -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try '$[0] --help' for more information.]) ;;
+
+ *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try '$[0] --help' for more information.]) ;;
+ esac
+ shift
+done
+
+if $lt_cl_silent; then
+ exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure. Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test yes = "$silent" &&
+ lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])
+m4trace:m4/libtool.m4:812: -1- AC_DEFUN([LT_SUPPORTED_TAG], [])
+m4trace:m4/libtool.m4:823: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+ [C], [_LT_LANG(C)],
+ [C++], [_LT_LANG(CXX)],
+ [Go], [_LT_LANG(GO)],
+ [Java], [_LT_LANG(GCJ)],
+ [Fortran 77], [_LT_LANG(F77)],
+ [Fortran], [_LT_LANG(FC)],
+ [Windows Resource], [_LT_LANG(RC)],
+ [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+ [_LT_LANG($1)],
+ [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])
+m4trace:m4/libtool.m4:915: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+m4trace:m4/libtool.m4:915: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(C++)])
+m4trace:m4/libtool.m4:916: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+m4trace:m4/libtool.m4:916: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Fortran 77)])
+m4trace:m4/libtool.m4:917: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+m4trace:m4/libtool.m4:917: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Fortran)])
+m4trace:m4/libtool.m4:918: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+m4trace:m4/libtool.m4:918: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Java)])
+m4trace:m4/libtool.m4:919: -1- AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+m4trace:m4/libtool.m4:919: -1- AC_DEFUN([AC_LIBTOOL_RC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_RC' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Windows Resource)])
+m4trace:m4/libtool.m4:1247: -1- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
+ [Search for dependent libraries within DIR (or the compiler's sysroot
+ if not specified).])],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted. We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ AC_MSG_RESULT([$with_sysroot])
+ AC_MSG_ERROR([The sysroot must be an absolute path.])
+ ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and where our libraries should be installed.])])
+m4trace:m4/libtool.m4:1578: -1- AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ fi
+ $RM conftest*
+])
+
+if test yes = "[$]$2"; then
+ m4_if([$5], , :, [$5])
+else
+ m4_if([$6], , :, [$6])
+fi
+])
+m4trace:m4/libtool.m4:1620: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])])
+m4trace:m4/libtool.m4:1620: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])])
+m4trace:m4/libtool.m4:1629: -1- AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $3"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ else
+ $2=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+])
+
+if test yes = "[$]$2"; then
+ m4_if([$4], , :, [$4])
+else
+ m4_if([$5], , :, [$5])
+fi
+])
+m4trace:m4/libtool.m4:1664: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])])
+m4trace:m4/libtool.m4:1664: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])])
+m4trace:m4/libtool.m4:1671: -1- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+])
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+ AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+ [What is the maximum length of a command?])
+])
+m4trace:m4/libtool.m4:1810: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])])
+m4trace:m4/libtool.m4:1810: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])])
+m4trace:m4/libtool.m4:1921: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl
+if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen=shl_load],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen=dlopen],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+ [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+ [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+ [Whether dlopen of statically linked programs is supported])
+])
+m4trace:m4/libtool.m4:2046: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])])
+m4trace:m4/libtool.m4:2046: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])])
+m4trace:m4/libtool.m4:3158: -1- AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="m4_if([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$1"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac])
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+ [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])
+m4trace:m4/libtool.m4:3220: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])])
+m4trace:m4/libtool.m4:3220: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])])
+m4trace:m4/libtool.m4:3243: -1- AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+ [AS_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test no = "$withval" || with_gnu_ld=yes],
+ [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi])
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])
+m4trace:m4/libtool.m4:3332: -1- AU_DEFUN([AM_PROG_LD], [m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:3332: -1- AC_DEFUN([AM_PROG_LD], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LD' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:3333: -1- AU_DEFUN([AC_PROG_LD], [m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:3333: -1- AC_DEFUN([AC_PROG_LD], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LD' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:3662: -1- AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi])
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+ AC_SUBST([DUMPBIN])
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+ [lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+ cat conftest.out >&AS_MESSAGE_LOG_FD
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*])
+])
+m4trace:m4/libtool.m4:3757: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3757: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3758: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3758: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3829: -1- AC_DEFUN([_LT_DLL_DEF_P], [dnl
+ test DEF = "`$SED -n dnl
+ -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace
+ -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments
+ -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl
+ -e q dnl Only consider the first "real" line
+ $1`" dnl
+])
+m4trace:m4/libtool.m4:3843: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM=-lm)
+ ;;
+esac
+AC_SUBST([LIBM])
+])
+m4trace:m4/libtool.m4:3862: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])])
+m4trace:m4/libtool.m4:3862: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])])
+m4trace:m4/libtool.m4:8125: -1- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+ [AC_CHECK_TOOL(GCJ, gcj,)
+ test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)])])[]dnl
+])
+m4trace:m4/libtool.m4:8134: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])])
+m4trace:m4/libtool.m4:8134: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])])
+m4trace:m4/libtool.m4:8141: -1- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,)
+])
+m4trace:m4/libtool.m4:8148: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,)
+])
+m4trace:m4/libtool.m4:8153: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])])
+m4trace:m4/libtool.m4:8153: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])])
+m4trace:m4/libtool.m4:8273: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])])
+m4trace:m4/libtool.m4:8273: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])])
+m4trace:m4/ltoptions.m4:14: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+m4trace:m4/ltoptions.m4:113: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'dlopen' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:113: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'dlopen' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:148: -1- AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'win32-dll' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:148: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete.
+You should run autoupdate.])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'win32-dll' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:197: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+m4trace:m4/ltoptions.m4:201: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+m4trace:m4/ltoptions.m4:205: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:205: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete.
+You should run autoupdate.])dnl
+AC_ENABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:206: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:206: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete.
+You should run autoupdate.])dnl
+AC_DISABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:251: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+m4trace:m4/ltoptions.m4:255: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+m4trace:m4/ltoptions.m4:259: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:259: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete.
+You should run autoupdate.])dnl
+AC_ENABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:260: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:260: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete.
+You should run autoupdate.])dnl
+AC_DISABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:305: -1- AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:305: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:312: -1- AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'disable-fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:312: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'disable-fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:411: -1- AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'pic-only' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:411: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'pic-only' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltsugar.m4:14: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+m4trace:m4/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6'
+macro_revision='2.4.6'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
+m4trace:m4/lt~obsolete.m4:37: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+m4trace:m4/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])
+m4trace:m4/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SHELL_INIT])
+m4trace:m4/lt~obsolete.m4:43: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])
+m4trace:m4/lt~obsolete.m4:45: -1- AC_DEFUN([_LT_AC_TAGVAR])
+m4trace:m4/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL])
+m4trace:m4/lt~obsolete.m4:47: -1- AC_DEFUN([AC_LTDL_PREOPEN])
+m4trace:m4/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_SYS_COMPILER])
+m4trace:m4/lt~obsolete.m4:49: -1- AC_DEFUN([_LT_AC_LOCK])
+m4trace:m4/lt~obsolete.m4:50: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])
+m4trace:m4/lt~obsolete.m4:51: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])
+m4trace:m4/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])
+m4trace:m4/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])
+m4trace:m4/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR])
+m4trace:m4/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LTDL_OBJDIR])
+m4trace:m4/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])
+m4trace:m4/lt~obsolete.m4:57: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])
+m4trace:m4/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PATH_MAGIC])
+m4trace:m4/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_GNU])
+m4trace:m4/lt~obsolete.m4:60: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])
+m4trace:m4/lt~obsolete.m4:61: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])
+m4trace:m4/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])
+m4trace:m4/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
+m4trace:m4/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])
+m4trace:m4/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])
+m4trace:m4/lt~obsolete.m4:66: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])
+m4trace:m4/lt~obsolete.m4:67: -1- AC_DEFUN([LT_AC_PROG_EGREP])
+m4trace:m4/lt~obsolete.m4:72: -1- AC_DEFUN([_AC_PROG_LIBTOOL])
+m4trace:m4/lt~obsolete.m4:73: -1- AC_DEFUN([AC_LIBTOOL_SETUP])
+m4trace:m4/lt~obsolete.m4:74: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN])
+m4trace:m4/lt~obsolete.m4:75: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
+m4trace:m4/lt~obsolete.m4:76: -1- AC_DEFUN([_LT_AC_TAGCONFIG])
+m4trace:m4/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_CXX])
+m4trace:m4/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_F77])
+m4trace:m4/lt~obsolete.m4:80: -1- AC_DEFUN([_LT_AC_LANG_GCJ])
+m4trace:m4/lt~obsolete.m4:81: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])
+m4trace:m4/lt~obsolete.m4:82: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG])
+m4trace:m4/lt~obsolete.m4:83: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])
+m4trace:m4/lt~obsolete.m4:84: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])
+m4trace:m4/lt~obsolete.m4:85: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])
+m4trace:m4/lt~obsolete.m4:86: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG])
+m4trace:m4/lt~obsolete.m4:87: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])
+m4trace:m4/lt~obsolete.m4:88: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])
+m4trace:m4/lt~obsolete.m4:89: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])
+m4trace:m4/lt~obsolete.m4:90: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG])
+m4trace:m4/lt~obsolete.m4:91: -1- AC_DEFUN([AC_LIBTOOL_CONFIG])
+m4trace:m4/lt~obsolete.m4:92: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C])
+m4trace:m4/lt~obsolete.m4:94: -1- AC_DEFUN([_LT_AC_PROG_CXXCPP])
+m4trace:m4/lt~obsolete.m4:97: -1- AC_DEFUN([_LT_PROG_F77])
+m4trace:m4/lt~obsolete.m4:98: -1- AC_DEFUN([_LT_PROG_FC])
+m4trace:m4/lt~obsolete.m4:99: -1- AC_DEFUN([_LT_PROG_CXX])
+m4trace:acinclude.m4:4: -1- AC_DEFUN([AC_TRY_EVAL2], [{ (eval echo configure:__oline__: \"[$]$1\") 1>&AS_MESSAGE_LOG_FD; dnl
+(eval [$]$1) 2>&AS_MESSAGE_LOG_FD; _out=`eval [$]$1 2>&1` && test "x$_out" = x; }])
+m4trace:acinclude.m4:9: -1- AC_DEFUN([AC_TRY_COMPILE2], [cat > conftest.$ac_ext <<EOF
+[#]line __oline__ "configure"
+#include "confdefs.h"
+[$1]
+int main(void) {
+[$2]
+; return 0; }
+EOF
+if AC_TRY_EVAL2(ac_compile); then
+ ifelse([$3], , :, [rm -rf conftest*
+ $3])
+else
+ echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
+ifelse([$4], , , [ rm -rf conftest*
+ $4
+])dnl
+fi
+rm -f conftest*])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?A[CHUM]_])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([_AC_])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^AS_FLAGS$])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?m4_])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^dnl$])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?AS_])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^SHELL$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PATH_SEPARATOR$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^exec_prefix$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^prefix$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^program_transform_name$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^bindir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^sbindir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^libexecdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^datadir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^sysconfdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^sharedstatedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^localstatedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^runstatedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^includedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^oldincludedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^infodir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^libdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^mandir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^DEFS$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_C$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_N$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_T$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^build_alias$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^host_alias$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^target_alias$])
+m4trace:configure.ac:6: -1- AM_MAINTAINER_MODE([enable])
+m4trace:configure.ac:6: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+m4trace:configure.ac:6: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$])
+m4trace:configure.ac:6: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$])
+m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE])
+m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE])
+m4trace:configure.ac:6: -1- m4_pattern_allow([^MAINT$])
+m4trace:configure.ac:7: -1- AC_CONFIG_MACRO_DIR([m4])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build_cpu$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build_vendor$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build_os$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host_cpu$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host_vendor$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host_os$])
+m4trace:configure.ac:43: -1- m4_pattern_allow([^LIBXML_MAJOR_VERSION$])
+m4trace:configure.ac:44: -1- m4_pattern_allow([^LIBXML_MINOR_VERSION$])
+m4trace:configure.ac:45: -1- m4_pattern_allow([^LIBXML_MICRO_VERSION$])
+m4trace:configure.ac:46: -1- m4_pattern_allow([^LIBXML_VERSION$])
+m4trace:configure.ac:47: -1- m4_pattern_allow([^LIBXML_VERSION_INFO$])
+m4trace:configure.ac:48: -1- m4_pattern_allow([^LIBXML_VERSION_NUMBER$])
+m4trace:configure.ac:49: -1- m4_pattern_allow([^LIBXML_VERSION_EXTRA$])
+m4trace:configure.ac:53: -1- AM_INIT_AUTOMAKE([libxml2], [$VERSION])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
+m4trace:configure.ac:53: -1- AM_SET_CURRENT_AUTOMAKE_VERSION
+m4trace:configure.ac:53: -1- AM_AUTOMAKE_VERSION([1.16.1])
+m4trace:configure.ac:53: -1- _AM_AUTOCONF_VERSION([2.69])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__isrc$])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([am__isrc])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^CYGPATH_W$])
+m4trace:configure.ac:53: -1- _m4_warn([obsolete], [AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.], [/usr/share/aclocal-1.16/init.m4:29: AM_INIT_AUTOMAKE is expanded from...
+configure.ac:53: the top level])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:53: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])
+m4trace:configure.ac:53: -2- _AM_MANGLE_OPTION([no-define])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:53: -1- AM_SANITY_CHECK
+m4trace:configure.ac:53: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+m4trace:configure.ac:53: -1- AM_MISSING_HAS_RUN
+m4trace:configure.ac:53: -1- AM_AUX_DIR_EXPAND
+m4trace:configure.ac:53: -1- m4_pattern_allow([^ACLOCAL$])
+m4trace:configure.ac:53: -1- AM_MISSING_PROG([AUTOCONF], [autoconf])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AUTOCONF$])
+m4trace:configure.ac:53: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AUTOMAKE$])
+m4trace:configure.ac:53: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AUTOHEADER$])
+m4trace:configure.ac:53: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^MAKEINFO$])
+m4trace:configure.ac:53: -1- AM_PROG_INSTALL_SH
+m4trace:configure.ac:53: -1- m4_pattern_allow([^install_sh$])
+m4trace:configure.ac:53: -1- AM_PROG_INSTALL_STRIP
+m4trace:configure.ac:53: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^MKDIR_P$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^mkdir_p$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AWK$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^SET_MAKE$])
+m4trace:configure.ac:53: -1- AM_SET_LEADING_DOT
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__leading_dot$])
+m4trace:configure.ac:53: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+m4trace:configure.ac:53: -2- _AM_MANGLE_OPTION([tar-ustar])
+m4trace:configure.ac:53: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])
+m4trace:configure.ac:53: -2- _AM_MANGLE_OPTION([tar-pax])
+m4trace:configure.ac:53: -1- _AM_PROG_TAR([v7])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AMTAR$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__tar$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__untar$])
+m4trace:configure.ac:53: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+m4trace:configure.ac:53: -2- _AM_MANGLE_OPTION([no-dependencies])
+m4trace:configure.ac:53: -1- AM_SILENT_RULES
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_V$])
+m4trace:configure.ac:53: -1- AM_SUBST_NOTMAKE([AM_V])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([AM_V])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_DEFAULT_V$])
+m4trace:configure.ac:53: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_BACKSLASH$])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
+m4trace:configure.ac:58: -1- AM_SILENT_RULES([yes])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_V$])
+m4trace:configure.ac:58: -1- AM_SUBST_NOTMAKE([AM_V])
+m4trace:configure.ac:58: -1- _AM_SUBST_NOTMAKE([AM_V])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_DEFAULT_V$])
+m4trace:configure.ac:58: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+m4trace:configure.ac:58: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_BACKSLASH$])
+m4trace:configure.ac:58: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.ac:61: -1- _AM_PROG_CC_C_O
+m4trace:configure.ac:61: -1- AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext])
+m4trace:configure.ac:61: -1- _AM_DEPENDENCIES([CC])
+m4trace:configure.ac:61: -1- AM_SET_DEPDIR
+m4trace:configure.ac:61: -1- m4_pattern_allow([^DEPDIR$])
+m4trace:configure.ac:61: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:61: -1- AM_MAKE_INCLUDE
+m4trace:configure.ac:61: -1- AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__include$])
+m4trace:configure.ac:61: -1- AM_DEP_TRACK
+m4trace:configure.ac:61: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^AMDEP_TRUE$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^AMDEP_FALSE$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__nodep$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([am__nodep])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CCDEPMODE$])
+m4trace:configure.ac:61: -1- AM_CONDITIONAL([am__fastdepCC], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
+m4trace:configure.ac:63: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:65: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:65: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:65: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:66: -1- m4_pattern_allow([^MV$])
+m4trace:configure.ac:67: -1- m4_pattern_allow([^TAR$])
+m4trace:configure.ac:68: -1- m4_pattern_allow([^PERL$])
+m4trace:configure.ac:69: -1- m4_pattern_allow([^WGET$])
+m4trace:configure.ac:70: -1- m4_pattern_allow([^XMLLINT$])
+m4trace:configure.ac:71: -1- m4_pattern_allow([^XSLTPROC$])
+m4trace:configure.ac:74: -1- LT_INIT
+m4trace:configure.ac:74: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
+m4trace:configure.ac:74: -1- LTOPTIONS_VERSION
+m4trace:configure.ac:74: -1- LTSUGAR_VERSION
+m4trace:configure.ac:74: -1- LTVERSION_VERSION
+m4trace:configure.ac:74: -1- LTOBSOLETE_VERSION
+m4trace:configure.ac:74: -1- _LT_PROG_LTMAIN
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LIBTOOL$])
+m4trace:configure.ac:74: -1- _LT_PREPARE_SED_QUOTE_VARS
+m4trace:configure.ac:74: -1- _LT_PROG_ECHO_BACKSLASH
+m4trace:configure.ac:74: -1- LT_PATH_LD
+m4trace:configure.ac:74: -1- m4_pattern_allow([^SED$])
+m4trace:configure.ac:74: -1- AC_PROG_EGREP
+m4trace:configure.ac:74: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^FGREP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:74: -1- LT_PATH_NM
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^NM$])
+m4trace:configure.ac:74: -1- LT_CMD_MAX_LEN
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DLLTOOL$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DLLTOOL$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^ac_ct_AR$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:74: -1- _LT_WITH_SYSROOT
+m4trace:configure.ac:74: -1- m4_pattern_allow([LT_OBJDIR])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LT_OBJDIR$])
+m4trace:configure.ac:74: -1- _LT_CC_BASENAME([$compiler])
+m4trace:configure.ac:74: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH])
+m4trace:configure.ac:74: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH])
+m4trace:configure.ac:74: -1- LT_SUPPORTED_TAG([CC])
+m4trace:configure.ac:74: -1- _LT_COMPILER_BOILERPLATE
+m4trace:configure.ac:74: -1- _LT_LINKER_BOILERPLATE
+m4trace:configure.ac:74: -1- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], [lt_cv_prog_compiler_rtti_exceptions], [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"])
+m4trace:configure.ac:74: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t@m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in
+ "" | " "*) ;;
+ *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;;
+ esac], [_LT_TAGVAR(lt_prog_compiler_pic, )=
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no])
+m4trace:configure.ac:74: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^MANIFEST_TOOL$])
+m4trace:configure.ac:74: -1- _LT_DLL_DEF_P([$export_symbols])
+m4trace:configure.ac:74: -1- _LT_DLL_DEF_P([$export_symbols])
+m4trace:configure.ac:74: -1- _LT_REQUIRED_DARWIN_CHECKS
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DSYMUTIL$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^NMEDIT$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LIPO$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OTOOL$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OTOOL64$])
+m4trace:configure.ac:74: -1- _LT_LINKER_OPTION([if $CC understands -b], [lt_cv_prog_compiler__b], [-b], [_LT_TAGVAR(archive_cmds, )='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, )='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$])
+m4trace:configure.ac:74: -1- LT_SYS_DLOPEN_SELF
+m4trace:configure.ac:74: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^VERSION_SCRIPT_FLAGS$])
+m4trace:configure.ac:90: -1- AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
+m4trace:configure.ac:90: -1- m4_pattern_allow([^USE_VERSION_SCRIPT_TRUE$])
+m4trace:configure.ac:90: -1- m4_pattern_allow([^USE_VERSION_SCRIPT_FALSE$])
+m4trace:configure.ac:90: -1- _AM_SUBST_NOTMAKE([USE_VERSION_SCRIPT_TRUE])
+m4trace:configure.ac:90: -1- _AM_SUBST_NOTMAKE([USE_VERSION_SCRIPT_FALSE])
+m4trace:configure.ac:129: -1- m4_pattern_allow([^HTML_DIR$])
+m4trace:configure.ac:217: -1- AM_CONDITIONAL([REBUILD_DOCS], [test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"])
+m4trace:configure.ac:217: -1- m4_pattern_allow([^REBUILD_DOCS_TRUE$])
+m4trace:configure.ac:217: -1- m4_pattern_allow([^REBUILD_DOCS_FALSE$])
+m4trace:configure.ac:217: -1- _AM_SUBST_NOTMAKE([REBUILD_DOCS_TRUE])
+m4trace:configure.ac:217: -1- _AM_SUBST_NOTMAKE([REBUILD_DOCS_FALSE])
+m4trace:configure.ac:403: -1- m4_pattern_allow([^HAVE_ZLIB_H$])
+m4trace:configure.ac:421: -1- m4_pattern_allow([^Z_CFLAGS$])
+m4trace:configure.ac:422: -1- m4_pattern_allow([^Z_LIBS$])
+m4trace:configure.ac:423: -1- m4_pattern_allow([^WITH_ZLIB$])
+m4trace:configure.ac:445: -1- m4_pattern_allow([^HAVE_LZMA_H$])
+m4trace:configure.ac:458: -1- m4_pattern_allow([^LZMA_CFLAGS$])
+m4trace:configure.ac:459: -1- m4_pattern_allow([^LZMA_LIBS$])
+m4trace:configure.ac:460: -1- m4_pattern_allow([^WITH_LZMA$])
+m4trace:configure.ac:469: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:470: -1- m4_pattern_allow([^HAVE_FCNTL_H$])
+m4trace:configure.ac:471: -1- m4_pattern_allow([^HAVE_UNISTD_H$])
+m4trace:configure.ac:472: -1- m4_pattern_allow([^HAVE_CTYPE_H$])
+m4trace:configure.ac:473: -1- m4_pattern_allow([^HAVE_DIRENT_H$])
+m4trace:configure.ac:474: -1- m4_pattern_allow([^HAVE_ERRNO_H$])
+m4trace:configure.ac:475: -1- m4_pattern_allow([^HAVE_MALLOC_H$])
+m4trace:configure.ac:476: -1- m4_pattern_allow([^HAVE_STDARG_H$])
+m4trace:configure.ac:477: -1- m4_pattern_allow([^HAVE_SYS_STAT_H$])
+m4trace:configure.ac:478: -1- m4_pattern_allow([^HAVE_SYS_TYPES_H$])
+m4trace:configure.ac:479: -1- m4_pattern_allow([^HAVE_STDINT_H$])
+m4trace:configure.ac:480: -1- m4_pattern_allow([^HAVE_INTTYPES_H$])
+m4trace:configure.ac:481: -1- m4_pattern_allow([^HAVE_TIME_H$])
+m4trace:configure.ac:482: -1- m4_pattern_allow([^HAVE_MATH_H$])
+m4trace:configure.ac:483: -1- m4_pattern_allow([^HAVE_LIMITS_H$])
+m4trace:configure.ac:484: -1- m4_pattern_allow([^HAVE_FLOAT_H$])
+m4trace:configure.ac:485: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
+m4trace:configure.ac:486: -1- m4_pattern_allow([^HAVE_SYS_SOCKET_H$])
+m4trace:configure.ac:491: -1- m4_pattern_allow([^HAVE_NETINET_IN_H$])
+m4trace:configure.ac:496: -1- m4_pattern_allow([^HAVE_ARPA_INET_H$])
+m4trace:configure.ac:504: -1- m4_pattern_allow([^HAVE_NETDB_H$])
+m4trace:configure.ac:505: -1- m4_pattern_allow([^HAVE_SYS_TIME_H$])
+m4trace:configure.ac:506: -1- m4_pattern_allow([^HAVE_SYS_SELECT_H$])
+m4trace:configure.ac:507: -1- m4_pattern_allow([^HAVE_POLL_H$])
+m4trace:configure.ac:508: -1- m4_pattern_allow([^HAVE_SYS_MMAN_H$])
+m4trace:configure.ac:509: -1- m4_pattern_allow([^HAVE_SYS_TIMEB_H$])
+m4trace:configure.ac:510: -1- m4_pattern_allow([^HAVE_SIGNAL_H$])
+m4trace:configure.ac:511: -1- m4_pattern_allow([^HAVE_ARPA_NAMESER_H$])
+m4trace:configure.ac:516: -1- m4_pattern_allow([^HAVE_RESOLV_H$])
+m4trace:configure.ac:527: -1- m4_pattern_allow([^HAVE_DL_H$])
+m4trace:configure.ac:528: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
+m4trace:configure.ac:533: -1- m4_pattern_allow([^_UINT32_T$])
+m4trace:configure.ac:533: -1- m4_pattern_allow([^uint32_t$])
+m4trace:configure.ac:539: -1- m4_pattern_allow([^HAVE_STRFTIME$])
+m4trace:configure.ac:539: -1- m4_pattern_allow([^HAVE_STRFTIME$])
+m4trace:configure.ac:558: -1- m4_pattern_allow([^HAVE_VA_COPY$])
+m4trace:configure.ac:567: -1- m4_pattern_allow([^HAVE___VA_COPY$])
+m4trace:configure.ac:573: -1- AC_TRY_COMPILE2([
+#include <stdarg.h>
+void a(va_list * ap) {}], [
+va_list ap1, ap2; a(&ap1); ap2 = (va_list) ap1], [
+ AC_MSG_RESULT(no)], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([VA_LIST_IS_ARRAY], [1],[Define if va_list is an array type])])
+m4trace:configure.ac:573: -1- AC_TRY_EVAL2([ac_compile])
+m4trace:configure.ac:573: -1- m4_pattern_allow([^VA_LIST_IS_ARRAY$])
+m4trace:configure.ac:588: -1- AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>], [
+(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)], [
+ AC_MSG_RESULT(socklen_t *)
+ XML_SOCKLEN_T=socklen_t], [
+ AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>],[
+(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)],[
+ AC_MSG_RESULT(size_t *)
+ XML_SOCKLEN_T=size_t],[
+ AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>],[
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)],[
+ AC_MSG_RESULT(int *)
+ XML_SOCKLEN_T=int],[
+ AC_MSG_WARN(could not determine)
+ XML_SOCKLEN_T="int"])])])
+m4trace:configure.ac:588: -1- AC_TRY_EVAL2([ac_compile])
+m4trace:configure.ac:588: -1- AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>], [
+(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)], [
+ AC_MSG_RESULT(size_t *)
+ XML_SOCKLEN_T=size_t], [
+ AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>],[
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)],[
+ AC_MSG_RESULT(int *)
+ XML_SOCKLEN_T=int],[
+ AC_MSG_WARN(could not determine)
+ XML_SOCKLEN_T="int"])])
+m4trace:configure.ac:588: -1- AC_TRY_EVAL2([ac_compile])
+m4trace:configure.ac:588: -1- AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>], [
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)], [
+ AC_MSG_RESULT(int *)
+ XML_SOCKLEN_T=int], [
+ AC_MSG_WARN(could not determine)
+ XML_SOCKLEN_T="int"])
+m4trace:configure.ac:588: -1- AC_TRY_EVAL2([ac_compile])
+m4trace:configure.ac:611: -1- m4_pattern_allow([^XML_SOCKLEN_T$])
+m4trace:configure.ac:621: -1- m4_pattern_allow([^GETHOSTBYNAME_ARG_CAST$])
+m4trace:configure.ac:624: -1- m4_pattern_allow([^GETHOSTBYNAME_ARG_CAST$])
+m4trace:configure.ac:637: -1- m4_pattern_allow([^SEND_ARG2_CAST$])
+m4trace:configure.ac:640: -1- m4_pattern_allow([^SEND_ARG2_CAST$])
+m4trace:configure.ac:667: -1- m4_pattern_allow([^SUPPORT_IP6$])
+m4trace:configure.ac:703: -1- m4_pattern_allow([^HAVE_BROKEN_SS_FAMILY$])
+m4trace:configure.ac:705: -1- m4_pattern_allow([^ss_family$])
+m4trace:configure.ac:721: -1- m4_pattern_allow([^HAVE_GETADDRINFO$])
+m4trace:configure.ac:729: -2- m4_pattern_allow([^HAVE_ISNAN$])
+m4trace:configure.ac:729: -2- m4_pattern_allow([^HAVE_ISNAN$])
+m4trace:configure.ac:732: -2- m4_pattern_allow([^HAVE_ISINF$])
+m4trace:configure.ac:732: -2- m4_pattern_allow([^HAVE_ISINF$])
+m4trace:configure.ac:835: -1- m4_pattern_allow([^PYTHON$])
+m4trace:configure.ac:896: -1- AM_CONDITIONAL([WITH_PYTHON], [test "$PYTHON_INCLUDES" != ""])
+m4trace:configure.ac:896: -1- m4_pattern_allow([^WITH_PYTHON_TRUE$])
+m4trace:configure.ac:896: -1- m4_pattern_allow([^WITH_PYTHON_FALSE$])
+m4trace:configure.ac:896: -1- _AM_SUBST_NOTMAKE([WITH_PYTHON_TRUE])
+m4trace:configure.ac:896: -1- _AM_SUBST_NOTMAKE([WITH_PYTHON_FALSE])
+m4trace:configure.ac:903: -1- m4_pattern_allow([^pythondir$])
+m4trace:configure.ac:904: -1- m4_pattern_allow([^PYTHON_SUBDIR$])
+m4trace:configure.ac:905: -1- m4_pattern_allow([^PYTHON_LIBS$])
+m4trace:configure.ac:915: -1- m4_pattern_allow([^HAVE_DLOPEN$])
+m4trace:configure.ac:938: -1- m4_pattern_allow([^HAVE_SHLLOAD$])
+m4trace:configure.ac:952: -1- m4_pattern_allow([^HAVE_DLOPEN$])
+m4trace:configure.ac:962: -1- m4_pattern_allow([^WITH_MODULES$])
+m4trace:configure.ac:963: -1- m4_pattern_allow([^MODULE_PLATFORM_LIBS$])
+m4trace:configure.ac:964: -1- m4_pattern_allow([^MODULE_EXTENSION$])
+m4trace:configure.ac:965: -1- m4_pattern_allow([^TEST_MODULES$])
+m4trace:configure.ac:998: -1- m4_pattern_allow([^STATIC_BINARIES$])
+m4trace:configure.ac:1010: -1- AM_CONDITIONAL([WITH_TRIO_SOURCES], [test "${NEED_TRIO}" = "1"])
+m4trace:configure.ac:1010: -1- m4_pattern_allow([^WITH_TRIO_SOURCES_TRUE$])
+m4trace:configure.ac:1010: -1- m4_pattern_allow([^WITH_TRIO_SOURCES_FALSE$])
+m4trace:configure.ac:1010: -1- _AM_SUBST_NOTMAKE([WITH_TRIO_SOURCES_TRUE])
+m4trace:configure.ac:1010: -1- _AM_SUBST_NOTMAKE([WITH_TRIO_SOURCES_FALSE])
+m4trace:configure.ac:1011: -1- m4_pattern_allow([^WITH_TRIO$])
+m4trace:configure.ac:1048: -2- m4_pattern_allow([^HAVE_LIBPTHREAD$])
+m4trace:configure.ac:1048: -2- m4_pattern_allow([^HAVE_PTHREAD_H$])
+m4trace:configure.ac:1094: -1- m4_pattern_allow([^THREAD_LIBS$])
+m4trace:configure.ac:1095: -1- m4_pattern_allow([^BASE_THREAD_LIBS$])
+m4trace:configure.ac:1096: -1- m4_pattern_allow([^WITH_THREADS$])
+m4trace:configure.ac:1097: -1- m4_pattern_allow([^THREAD_CFLAGS$])
+m4trace:configure.ac:1098: -1- m4_pattern_allow([^TEST_THREADS$])
+m4trace:configure.ac:1099: -1- m4_pattern_allow([^WITH_THREAD_ALLOC$])
+m4trace:configure.ac:1100: -1- AM_CONDITIONAL([THREADS_W32], [test -n "$THREADS_W32"])
+m4trace:configure.ac:1100: -1- m4_pattern_allow([^THREADS_W32_TRUE$])
+m4trace:configure.ac:1100: -1- m4_pattern_allow([^THREADS_W32_FALSE$])
+m4trace:configure.ac:1100: -1- _AM_SUBST_NOTMAKE([THREADS_W32_TRUE])
+m4trace:configure.ac:1100: -1- _AM_SUBST_NOTMAKE([THREADS_W32_FALSE])
+m4trace:configure.ac:1116: -2- m4_pattern_allow([^HAVE_LIBHISTORY$])
+m4trace:configure.ac:1120: -2- m4_pattern_allow([^HAVE_LIBREADLINE$])
+m4trace:configure.ac:1138: -1- m4_pattern_allow([^WITH_TREE$])
+m4trace:configure.ac:1148: -1- m4_pattern_allow([^WITH_FTP$])
+m4trace:configure.ac:1149: -1- m4_pattern_allow([^FTP_OBJ$])
+m4trace:configure.ac:1159: -1- m4_pattern_allow([^WITH_HTTP$])
+m4trace:configure.ac:1160: -1- m4_pattern_allow([^HTTP_OBJ$])
+m4trace:configure.ac:1168: -1- m4_pattern_allow([^WITH_LEGACY$])
+m4trace:configure.ac:1182: -1- m4_pattern_allow([^WITH_READER$])
+m4trace:configure.ac:1183: -1- m4_pattern_allow([^READER_TEST$])
+m4trace:configure.ac:1201: -1- m4_pattern_allow([^WITH_WRITER$])
+m4trace:configure.ac:1212: -1- m4_pattern_allow([^WITH_PATTERN$])
+m4trace:configure.ac:1213: -1- m4_pattern_allow([^TEST_PATTERN$])
+m4trace:configure.ac:1223: -1- m4_pattern_allow([^WITH_SAX1$])
+m4trace:configure.ac:1224: -1- AM_CONDITIONAL([WITH_SAX1_SOURCES], [test "${WITH_TRIO}" = "1"])
+m4trace:configure.ac:1224: -1- m4_pattern_allow([^WITH_SAX1_SOURCES_TRUE$])
+m4trace:configure.ac:1224: -1- m4_pattern_allow([^WITH_SAX1_SOURCES_FALSE$])
+m4trace:configure.ac:1224: -1- _AM_SUBST_NOTMAKE([WITH_SAX1_SOURCES_TRUE])
+m4trace:configure.ac:1224: -1- _AM_SUBST_NOTMAKE([WITH_SAX1_SOURCES_FALSE])
+m4trace:configure.ac:1225: -1- m4_pattern_allow([^TEST_SAX$])
+m4trace:configure.ac:1235: -1- m4_pattern_allow([^WITH_PUSH$])
+m4trace:configure.ac:1236: -1- m4_pattern_allow([^TEST_PUSH$])
+m4trace:configure.ac:1253: -1- m4_pattern_allow([^WITH_HTML$])
+m4trace:configure.ac:1254: -1- m4_pattern_allow([^HTML_OBJ$])
+m4trace:configure.ac:1255: -1- m4_pattern_allow([^TEST_HTML$])
+m4trace:configure.ac:1256: -1- m4_pattern_allow([^TEST_PHTML$])
+m4trace:configure.ac:1268: -1- m4_pattern_allow([^WITH_VALID$])
+m4trace:configure.ac:1269: -1- m4_pattern_allow([^TEST_VALID$])
+m4trace:configure.ac:1270: -1- m4_pattern_allow([^TEST_VTIME$])
+m4trace:configure.ac:1282: -1- m4_pattern_allow([^WITH_CATALOG$])
+m4trace:configure.ac:1283: -1- m4_pattern_allow([^CATALOG_OBJ$])
+m4trace:configure.ac:1284: -1- m4_pattern_allow([^TEST_CATALOG$])
+m4trace:configure.ac:1294: -1- m4_pattern_allow([^WITH_DOCB$])
+m4trace:configure.ac:1295: -1- m4_pattern_allow([^DOCB_OBJ$])
+m4trace:configure.ac:1312: -1- m4_pattern_allow([^WITH_XPTR$])
+m4trace:configure.ac:1313: -1- m4_pattern_allow([^XPTR_OBJ$])
+m4trace:configure.ac:1314: -1- m4_pattern_allow([^TEST_XPTR$])
+m4trace:configure.ac:1330: -1- m4_pattern_allow([^WITH_C14N$])
+m4trace:configure.ac:1331: -1- m4_pattern_allow([^C14N_OBJ$])
+m4trace:configure.ac:1332: -1- m4_pattern_allow([^TEST_C14N$])
+m4trace:configure.ac:1349: -1- m4_pattern_allow([^WITH_XINCLUDE$])
+m4trace:configure.ac:1350: -1- m4_pattern_allow([^XINCLUDE_OBJ$])
+m4trace:configure.ac:1351: -1- m4_pattern_allow([^TEST_XINCLUDE$])
+m4trace:configure.ac:1373: -1- m4_pattern_allow([^WITH_SCHEMATRON$])
+m4trace:configure.ac:1374: -1- m4_pattern_allow([^TEST_SCHEMATRON$])
+m4trace:configure.ac:1386: -1- m4_pattern_allow([^WITH_XPATH$])
+m4trace:configure.ac:1387: -1- m4_pattern_allow([^XPATH_OBJ$])
+m4trace:configure.ac:1388: -1- m4_pattern_allow([^TEST_XPATH$])
+m4trace:configure.ac:1399: -1- m4_pattern_allow([^WITH_OUTPUT$])
+m4trace:configure.ac:1460: -1- m4_pattern_allow([^ICONV_CONST$])
+m4trace:configure.ac:1474: -1- m4_pattern_allow([^WITH_ICONV$])
+m4trace:configure.ac:1506: -2- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2698: AC_TRY_LINK is expanded from...
+configure.ac:1506: the top level])
+m4trace:configure.ac:1506: -2- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2698: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
+../../lib/autoconf/general.m4:2672: _AC_LINK_IFELSE is expanded from...
+../../lib/autoconf/general.m4:2689: AC_LINK_IFELSE is expanded from...
+../../lib/autoconf/general.m4:2698: AC_TRY_LINK is expanded from...
+configure.ac:1506: the top level])
+m4trace:configure.ac:1539: -1- m4_pattern_allow([^WITH_ICU$])
+m4trace:configure.ac:1548: -1- m4_pattern_allow([^WITH_ISO8859X$])
+m4trace:configure.ac:1563: -1- m4_pattern_allow([^WITH_SCHEMAS$])
+m4trace:configure.ac:1564: -1- m4_pattern_allow([^TEST_SCHEMAS$])
+m4trace:configure.ac:1574: -1- m4_pattern_allow([^WITH_REGEXPS$])
+m4trace:configure.ac:1575: -1- m4_pattern_allow([^TEST_REGEXPS$])
+m4trace:configure.ac:1587: -1- m4_pattern_allow([^WITH_DEBUG$])
+m4trace:configure.ac:1588: -1- m4_pattern_allow([^DEBUG_OBJ$])
+m4trace:configure.ac:1589: -1- m4_pattern_allow([^TEST_DEBUG$])
+m4trace:configure.ac:1602: -1- m4_pattern_allow([^WITH_MEM_DEBUG$])
+m4trace:configure.ac:1610: -1- m4_pattern_allow([^WITH_RUN_DEBUG$])
+m4trace:configure.ac:1642: -1- m4_pattern_allow([^WIN32_EXTRA_LIBADD$])
+m4trace:configure.ac:1643: -1- m4_pattern_allow([^WIN32_EXTRA_LDFLAGS$])
+m4trace:configure.ac:1644: -1- m4_pattern_allow([^WIN32_EXTRA_PYTHON_LIBADD$])
+m4trace:configure.ac:1645: -1- m4_pattern_allow([^CYGWIN_EXTRA_LDFLAGS$])
+m4trace:configure.ac:1646: -1- m4_pattern_allow([^CYGWIN_EXTRA_PYTHON_LIBADD$])
+m4trace:configure.ac:1675: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:1676: -1- m4_pattern_allow([^EXTRA_CFLAGS$])
+m4trace:configure.ac:1677: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:1678: -1- m4_pattern_allow([^XML_CFLAGS$])
+m4trace:configure.ac:1680: -1- m4_pattern_allow([^XML_LIBDIR$])
+m4trace:configure.ac:1681: -1- m4_pattern_allow([^XML_LIBS$])
+m4trace:configure.ac:1682: -1- m4_pattern_allow([^XML_PRIVATE_LIBS$])
+m4trace:configure.ac:1683: -1- m4_pattern_allow([^XML_LIBTOOLLIBS$])
+m4trace:configure.ac:1684: -1- m4_pattern_allow([^ICONV_LIBS$])
+m4trace:configure.ac:1685: -1- m4_pattern_allow([^ICU_LIBS$])
+m4trace:configure.ac:1686: -1- m4_pattern_allow([^XML_INCLUDEDIR$])
+m4trace:configure.ac:1687: -1- m4_pattern_allow([^HTML_DIR$])
+m4trace:configure.ac:1688: -1- m4_pattern_allow([^HAVE_ISNAN$])
+m4trace:configure.ac:1689: -1- m4_pattern_allow([^HAVE_ISINF$])
+m4trace:configure.ac:1690: -1- m4_pattern_allow([^PYTHON$])
+m4trace:configure.ac:1691: -1- m4_pattern_allow([^PYTHON_VERSION$])
+m4trace:configure.ac:1692: -1- m4_pattern_allow([^PYTHON_INCLUDES$])
+m4trace:configure.ac:1693: -1- m4_pattern_allow([^PYTHON_SITE_PACKAGES$])
+m4trace:configure.ac:1695: -1- m4_pattern_allow([^M_LIBS$])
+m4trace:configure.ac:1696: -1- m4_pattern_allow([^RDL_LIBS$])
+m4trace:configure.ac:1700: -1- m4_pattern_allow([^RELDATE$])
+m4trace:configure.ac:1701: -1- m4_pattern_allow([^PYTHON_TESTS$])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.ac:1710: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
+m4trace:configure.ac:1710: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
+m4trace:configure.ac:1710: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
+m4trace:configure.ac:1710: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
+m4trace:configure.ac:1710: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:1710: -1- AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles])
+m4trace:configure.ac:1710: -1- _LT_PROG_LTMAIN
diff --git a/libxml2-2.9.10/autom4te.cache/traces.1 b/libxml2-2.9.10/autom4te.cache/traces.1
new file mode 100644
index 0000000..de135ca
--- /dev/null
+++ b/libxml2-2.9.10/autom4te.cache/traces.1
@@ -0,0 +1,1305 @@
+m4trace:aclocal.m4:991: -1- AC_SUBST([am__quote])
+m4trace:aclocal.m4:991: -1- AC_SUBST_TRACE([am__quote])
+m4trace:aclocal.m4:991: -1- m4_pattern_allow([^am__quote$])
+m4trace:aclocal.m4:1448: -1- m4_include([m4/libtool.m4])
+m4trace:aclocal.m4:1449: -1- m4_include([m4/ltoptions.m4])
+m4trace:aclocal.m4:1450: -1- m4_include([m4/ltsugar.m4])
+m4trace:aclocal.m4:1451: -1- m4_include([m4/ltversion.m4])
+m4trace:aclocal.m4:1452: -1- m4_include([m4/lt~obsolete.m4])
+m4trace:aclocal.m4:1453: -1- m4_include([acinclude.m4])
+m4trace:configure.ac:3: -1- AC_INIT
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?A[CHUM]_])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([_AC_])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^AS_FLAGS$])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?m4_])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^dnl$])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?AS_])
+m4trace:configure.ac:3: -1- AC_SUBST([SHELL])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([SHELL])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^SHELL$])
+m4trace:configure.ac:3: -1- AC_SUBST([PATH_SEPARATOR])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PATH_SEPARATOR$])
+m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_NAME])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_STRING])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_URL])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:3: -1- AC_SUBST([exec_prefix], [NONE])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([exec_prefix])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^exec_prefix$])
+m4trace:configure.ac:3: -1- AC_SUBST([prefix], [NONE])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([prefix])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^prefix$])
+m4trace:configure.ac:3: -1- AC_SUBST([program_transform_name], [s,x,x,])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([program_transform_name])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^program_transform_name$])
+m4trace:configure.ac:3: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([bindir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^bindir$])
+m4trace:configure.ac:3: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([sbindir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^sbindir$])
+m4trace:configure.ac:3: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([libexecdir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^libexecdir$])
+m4trace:configure.ac:3: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([datarootdir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.ac:3: -1- AC_SUBST([datadir], ['${datarootdir}'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([datadir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^datadir$])
+m4trace:configure.ac:3: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([sysconfdir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^sysconfdir$])
+m4trace:configure.ac:3: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([sharedstatedir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^sharedstatedir$])
+m4trace:configure.ac:3: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([localstatedir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^localstatedir$])
+m4trace:configure.ac:3: -1- AC_SUBST([runstatedir], ['${localstatedir}/run'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([runstatedir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^runstatedir$])
+m4trace:configure.ac:3: -1- AC_SUBST([includedir], ['${prefix}/include'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([includedir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^includedir$])
+m4trace:configure.ac:3: -1- AC_SUBST([oldincludedir], ['/usr/include'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([oldincludedir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^oldincludedir$])
+m4trace:configure.ac:3: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
+ ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
+ ['${datarootdir}/doc/${PACKAGE}'])])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([docdir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.ac:3: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([infodir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^infodir$])
+m4trace:configure.ac:3: -1- AC_SUBST([htmldir], ['${docdir}'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([htmldir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.ac:3: -1- AC_SUBST([dvidir], ['${docdir}'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([dvidir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.ac:3: -1- AC_SUBST([pdfdir], ['${docdir}'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([pdfdir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.ac:3: -1- AC_SUBST([psdir], ['${docdir}'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([psdir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.ac:3: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([libdir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^libdir$])
+m4trace:configure.ac:3: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([localedir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:3: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([mandir])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^mandir$])
+m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
+@%:@undef PACKAGE_NAME])
+m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
+@%:@undef PACKAGE_TARNAME])
+m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
+@%:@undef PACKAGE_VERSION])
+m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
+@%:@undef PACKAGE_STRING])
+m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
+@%:@undef PACKAGE_BUGREPORT])
+m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
+@%:@undef PACKAGE_URL])
+m4trace:configure.ac:3: -1- AC_SUBST([DEFS])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([DEFS])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^DEFS$])
+m4trace:configure.ac:3: -1- AC_SUBST([ECHO_C])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([ECHO_C])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_C$])
+m4trace:configure.ac:3: -1- AC_SUBST([ECHO_N])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([ECHO_N])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_N$])
+m4trace:configure.ac:3: -1- AC_SUBST([ECHO_T])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([ECHO_T])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_T$])
+m4trace:configure.ac:3: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:3: -1- AC_SUBST([build_alias])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([build_alias])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^build_alias$])
+m4trace:configure.ac:3: -1- AC_SUBST([host_alias])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([host_alias])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^host_alias$])
+m4trace:configure.ac:3: -1- AC_SUBST([target_alias])
+m4trace:configure.ac:3: -1- AC_SUBST_TRACE([target_alias])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^target_alias$])
+m4trace:configure.ac:5: -1- AC_CONFIG_HEADERS([config.h])
+m4trace:configure.ac:6: -1- AM_MAINTAINER_MODE([enable])
+m4trace:configure.ac:6: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+m4trace:configure.ac:6: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
+m4trace:configure.ac:6: -1- AC_SUBST_TRACE([MAINTAINER_MODE_TRUE])
+m4trace:configure.ac:6: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$])
+m4trace:configure.ac:6: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
+m4trace:configure.ac:6: -1- AC_SUBST_TRACE([MAINTAINER_MODE_FALSE])
+m4trace:configure.ac:6: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$])
+m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE])
+m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE])
+m4trace:configure.ac:6: -1- AC_SUBST([MAINT])
+m4trace:configure.ac:6: -1- AC_SUBST_TRACE([MAINT])
+m4trace:configure.ac:6: -1- m4_pattern_allow([^MAINT$])
+m4trace:configure.ac:8: -1- AC_CANONICAL_HOST
+m4trace:configure.ac:8: -1- AC_CANONICAL_BUILD
+m4trace:configure.ac:8: -1- AC_REQUIRE_AUX_FILE([config.sub])
+m4trace:configure.ac:8: -1- AC_REQUIRE_AUX_FILE([config.guess])
+m4trace:configure.ac:8: -1- AC_SUBST([build], [$ac_cv_build])
+m4trace:configure.ac:8: -1- AC_SUBST_TRACE([build])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build$])
+m4trace:configure.ac:8: -1- AC_SUBST([build_cpu], [$[1]])
+m4trace:configure.ac:8: -1- AC_SUBST_TRACE([build_cpu])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build_cpu$])
+m4trace:configure.ac:8: -1- AC_SUBST([build_vendor], [$[2]])
+m4trace:configure.ac:8: -1- AC_SUBST_TRACE([build_vendor])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build_vendor$])
+m4trace:configure.ac:8: -1- AC_SUBST([build_os])
+m4trace:configure.ac:8: -1- AC_SUBST_TRACE([build_os])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build_os$])
+m4trace:configure.ac:8: -1- AC_SUBST([host], [$ac_cv_host])
+m4trace:configure.ac:8: -1- AC_SUBST_TRACE([host])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host$])
+m4trace:configure.ac:8: -1- AC_SUBST([host_cpu], [$[1]])
+m4trace:configure.ac:8: -1- AC_SUBST_TRACE([host_cpu])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host_cpu$])
+m4trace:configure.ac:8: -1- AC_SUBST([host_vendor], [$[2]])
+m4trace:configure.ac:8: -1- AC_SUBST_TRACE([host_vendor])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host_vendor$])
+m4trace:configure.ac:8: -1- AC_SUBST([host_os])
+m4trace:configure.ac:8: -1- AC_SUBST_TRACE([host_os])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host_os$])
+m4trace:configure.ac:43: -1- AC_SUBST([LIBXML_MAJOR_VERSION])
+m4trace:configure.ac:43: -1- AC_SUBST_TRACE([LIBXML_MAJOR_VERSION])
+m4trace:configure.ac:43: -1- m4_pattern_allow([^LIBXML_MAJOR_VERSION$])
+m4trace:configure.ac:44: -1- AC_SUBST([LIBXML_MINOR_VERSION])
+m4trace:configure.ac:44: -1- AC_SUBST_TRACE([LIBXML_MINOR_VERSION])
+m4trace:configure.ac:44: -1- m4_pattern_allow([^LIBXML_MINOR_VERSION$])
+m4trace:configure.ac:45: -1- AC_SUBST([LIBXML_MICRO_VERSION])
+m4trace:configure.ac:45: -1- AC_SUBST_TRACE([LIBXML_MICRO_VERSION])
+m4trace:configure.ac:45: -1- m4_pattern_allow([^LIBXML_MICRO_VERSION$])
+m4trace:configure.ac:46: -1- AC_SUBST([LIBXML_VERSION])
+m4trace:configure.ac:46: -1- AC_SUBST_TRACE([LIBXML_VERSION])
+m4trace:configure.ac:46: -1- m4_pattern_allow([^LIBXML_VERSION$])
+m4trace:configure.ac:47: -1- AC_SUBST([LIBXML_VERSION_INFO])
+m4trace:configure.ac:47: -1- AC_SUBST_TRACE([LIBXML_VERSION_INFO])
+m4trace:configure.ac:47: -1- m4_pattern_allow([^LIBXML_VERSION_INFO$])
+m4trace:configure.ac:48: -1- AC_SUBST([LIBXML_VERSION_NUMBER])
+m4trace:configure.ac:48: -1- AC_SUBST_TRACE([LIBXML_VERSION_NUMBER])
+m4trace:configure.ac:48: -1- m4_pattern_allow([^LIBXML_VERSION_NUMBER$])
+m4trace:configure.ac:49: -1- AC_SUBST([LIBXML_VERSION_EXTRA])
+m4trace:configure.ac:49: -1- AC_SUBST_TRACE([LIBXML_VERSION_EXTRA])
+m4trace:configure.ac:49: -1- m4_pattern_allow([^LIBXML_VERSION_EXTRA$])
+m4trace:configure.ac:53: -1- AM_INIT_AUTOMAKE([libxml2], [$VERSION])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
+m4trace:configure.ac:53: -1- AM_AUTOMAKE_VERSION([1.16.1])
+m4trace:configure.ac:53: -1- AC_REQUIRE_AUX_FILE([install-sh])
+m4trace:configure.ac:53: -1- AC_SUBST([INSTALL_PROGRAM])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.ac:53: -1- AC_SUBST([INSTALL_SCRIPT])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.ac:53: -1- AC_SUBST([INSTALL_DATA])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([INSTALL_DATA])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.ac:53: -1- AC_SUBST([am__isrc], [' -I$(srcdir)'])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([am__isrc])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__isrc$])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([am__isrc])
+m4trace:configure.ac:53: -1- AC_SUBST([CYGPATH_W])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([CYGPATH_W])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^CYGPATH_W$])
+m4trace:configure.ac:53: -1- _m4_warn([obsolete], [AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.], [aclocal.m4:703: AM_INIT_AUTOMAKE is expanded from...
+configure.ac:53: the top level])
+m4trace:configure.ac:53: -1- AC_SUBST([PACKAGE], [libxml2])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([PACKAGE])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:53: -1- AC_SUBST([VERSION], [$VERSION])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([VERSION])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:53: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:53: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
+@%:@undef PACKAGE])
+m4trace:configure.ac:53: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:53: -1- AH_OUTPUT([VERSION], [/* Version number of package */
+@%:@undef VERSION])
+m4trace:configure.ac:53: -1- AC_REQUIRE_AUX_FILE([missing])
+m4trace:configure.ac:53: -1- AC_SUBST([ACLOCAL])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([ACLOCAL])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^ACLOCAL$])
+m4trace:configure.ac:53: -1- AC_SUBST([AUTOCONF])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([AUTOCONF])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AUTOCONF$])
+m4trace:configure.ac:53: -1- AC_SUBST([AUTOMAKE])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([AUTOMAKE])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AUTOMAKE$])
+m4trace:configure.ac:53: -1- AC_SUBST([AUTOHEADER])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([AUTOHEADER])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AUTOHEADER$])
+m4trace:configure.ac:53: -1- AC_SUBST([MAKEINFO])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([MAKEINFO])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^MAKEINFO$])
+m4trace:configure.ac:53: -1- AC_SUBST([install_sh])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([install_sh])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^install_sh$])
+m4trace:configure.ac:53: -1- AC_SUBST([STRIP])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([STRIP])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:53: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
+m4trace:configure.ac:53: -1- AC_REQUIRE_AUX_FILE([install-sh])
+m4trace:configure.ac:53: -1- AC_SUBST([MKDIR_P])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([MKDIR_P])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^MKDIR_P$])
+m4trace:configure.ac:53: -1- AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([mkdir_p])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^mkdir_p$])
+m4trace:configure.ac:53: -1- AC_SUBST([AWK])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([AWK])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AWK$])
+m4trace:configure.ac:53: -1- AC_SUBST([SET_MAKE])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([SET_MAKE])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^SET_MAKE$])
+m4trace:configure.ac:53: -1- AC_SUBST([am__leading_dot])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([am__leading_dot])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__leading_dot$])
+m4trace:configure.ac:53: -1- AC_SUBST([AMTAR], ['$${TAR-tar}'])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([AMTAR])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AMTAR$])
+m4trace:configure.ac:53: -1- AC_SUBST([am__tar])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([am__tar])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__tar$])
+m4trace:configure.ac:53: -1- AC_SUBST([am__untar])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([am__untar])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__untar$])
+m4trace:configure.ac:53: -1- AM_SILENT_RULES
+m4trace:configure.ac:53: -1- AC_SUBST([AM_V])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([AM_V])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_V$])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([AM_V])
+m4trace:configure.ac:53: -1- AC_SUBST([AM_DEFAULT_V])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([AM_DEFAULT_V])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_DEFAULT_V$])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+m4trace:configure.ac:53: -1- AC_SUBST([AM_DEFAULT_VERBOSITY])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+m4trace:configure.ac:53: -1- AC_SUBST([AM_BACKSLASH])
+m4trace:configure.ac:53: -1- AC_SUBST_TRACE([AM_BACKSLASH])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_BACKSLASH$])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
+m4trace:configure.ac:58: -1- AM_SILENT_RULES([yes])
+m4trace:configure.ac:58: -1- AC_SUBST([AM_V])
+m4trace:configure.ac:58: -1- AC_SUBST_TRACE([AM_V])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_V$])
+m4trace:configure.ac:58: -1- _AM_SUBST_NOTMAKE([AM_V])
+m4trace:configure.ac:58: -1- AC_SUBST([AM_DEFAULT_V])
+m4trace:configure.ac:58: -1- AC_SUBST_TRACE([AM_DEFAULT_V])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_DEFAULT_V$])
+m4trace:configure.ac:58: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+m4trace:configure.ac:58: -1- AC_SUBST([AM_DEFAULT_VERBOSITY])
+m4trace:configure.ac:58: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+m4trace:configure.ac:58: -1- AC_SUBST([AM_BACKSLASH])
+m4trace:configure.ac:58: -1- AC_SUBST_TRACE([AM_BACKSLASH])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_BACKSLASH$])
+m4trace:configure.ac:58: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
+m4trace:configure.ac:61: -1- AC_SUBST([CC])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- AC_SUBST([CFLAGS])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([CFLAGS])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.ac:61: -1- AC_SUBST([LDFLAGS])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([LDFLAGS])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:61: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:61: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:61: -1- AC_SUBST([CC])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- AC_SUBST([CC])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- AC_SUBST([CC])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- AC_SUBST([CC])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- AC_SUBST([ac_ct_CC])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([ac_ct_CC])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.ac:61: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([EXEEXT])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.ac:61: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([OBJEXT])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.ac:61: -1- AC_REQUIRE_AUX_FILE([compile])
+m4trace:configure.ac:61: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([DEPDIR])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^DEPDIR$])
+m4trace:configure.ac:61: -1- AC_SUBST([am__include])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([am__include])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__include$])
+m4trace:configure.ac:61: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+m4trace:configure.ac:61: -1- AC_SUBST([AMDEP_TRUE])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([AMDEP_TRUE])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^AMDEP_TRUE$])
+m4trace:configure.ac:61: -1- AC_SUBST([AMDEP_FALSE])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([AMDEP_FALSE])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^AMDEP_FALSE$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
+m4trace:configure.ac:61: -1- AC_SUBST([AMDEPBACKSLASH])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
+m4trace:configure.ac:61: -1- AC_SUBST([am__nodep])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([am__nodep])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__nodep$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([am__nodep])
+m4trace:configure.ac:61: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([CCDEPMODE])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CCDEPMODE$])
+m4trace:configure.ac:61: -1- AM_CONDITIONAL([am__fastdepCC], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:61: -1- AC_SUBST([am__fastdepCC_TRUE])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
+m4trace:configure.ac:61: -1- AC_SUBST([am__fastdepCC_FALSE])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
+m4trace:configure.ac:63: -1- AC_SUBST([LN_S], [$as_ln_s])
+m4trace:configure.ac:63: -1- AC_SUBST_TRACE([LN_S])
+m4trace:configure.ac:63: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:65: -1- AC_SUBST([CPP])
+m4trace:configure.ac:65: -1- AC_SUBST_TRACE([CPP])
+m4trace:configure.ac:65: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:65: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:65: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:65: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:65: -1- AC_SUBST([CPP])
+m4trace:configure.ac:65: -1- AC_SUBST_TRACE([CPP])
+m4trace:configure.ac:65: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:66: -1- AC_SUBST([MV])
+m4trace:configure.ac:66: -1- AC_SUBST_TRACE([MV])
+m4trace:configure.ac:66: -1- m4_pattern_allow([^MV$])
+m4trace:configure.ac:67: -1- AC_SUBST([TAR])
+m4trace:configure.ac:67: -1- AC_SUBST_TRACE([TAR])
+m4trace:configure.ac:67: -1- m4_pattern_allow([^TAR$])
+m4trace:configure.ac:68: -1- AC_SUBST([PERL])
+m4trace:configure.ac:68: -1- AC_SUBST_TRACE([PERL])
+m4trace:configure.ac:68: -1- m4_pattern_allow([^PERL$])
+m4trace:configure.ac:69: -1- AC_SUBST([WGET])
+m4trace:configure.ac:69: -1- AC_SUBST_TRACE([WGET])
+m4trace:configure.ac:69: -1- m4_pattern_allow([^WGET$])
+m4trace:configure.ac:70: -1- AC_SUBST([XMLLINT])
+m4trace:configure.ac:70: -1- AC_SUBST_TRACE([XMLLINT])
+m4trace:configure.ac:70: -1- m4_pattern_allow([^XMLLINT$])
+m4trace:configure.ac:71: -1- AC_SUBST([XSLTPROC])
+m4trace:configure.ac:71: -1- AC_SUBST_TRACE([XSLTPROC])
+m4trace:configure.ac:71: -1- m4_pattern_allow([^XSLTPROC$])
+m4trace:configure.ac:72: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+m4trace:configure.ac:72: -1- AC_SUBST([PKG_CONFIG])
+m4trace:configure.ac:72: -1- AC_SUBST_TRACE([PKG_CONFIG])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG$])
+m4trace:configure.ac:72: -1- AC_SUBST([PKG_CONFIG_PATH])
+m4trace:configure.ac:72: -1- AC_SUBST_TRACE([PKG_CONFIG_PATH])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG_PATH$])
+m4trace:configure.ac:72: -1- AC_SUBST([PKG_CONFIG_LIBDIR])
+m4trace:configure.ac:72: -1- AC_SUBST_TRACE([PKG_CONFIG_LIBDIR])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
+m4trace:configure.ac:72: -1- AC_SUBST([PKG_CONFIG])
+m4trace:configure.ac:72: -1- AC_SUBST_TRACE([PKG_CONFIG])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG$])
+m4trace:configure.ac:74: -1- LT_INIT
+m4trace:configure.ac:74: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
+m4trace:configure.ac:74: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
+m4trace:configure.ac:74: -1- AC_SUBST([LIBTOOL])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([LIBTOOL])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LIBTOOL$])
+m4trace:configure.ac:74: -1- AC_SUBST([SED])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([SED])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^SED$])
+m4trace:configure.ac:74: -1- AC_SUBST([GREP])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([GREP])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:74: -1- AC_SUBST([EGREP])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([EGREP])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.ac:74: -1- AC_SUBST([FGREP])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([FGREP])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^FGREP$])
+m4trace:configure.ac:74: -1- AC_SUBST([GREP])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([GREP])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:74: -1- AC_SUBST([LD])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([LD])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:74: -1- AC_SUBST([DUMPBIN])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([DUMPBIN])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:74: -1- AC_SUBST([ac_ct_DUMPBIN])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
+m4trace:configure.ac:74: -1- AC_SUBST([DUMPBIN])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([DUMPBIN])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:74: -1- AC_SUBST([NM])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([NM])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^NM$])
+m4trace:configure.ac:74: -1- AC_SUBST([OBJDUMP])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([OBJDUMP])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:74: -1- AC_SUBST([OBJDUMP])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([OBJDUMP])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:74: -1- AC_SUBST([DLLTOOL])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([DLLTOOL])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DLLTOOL$])
+m4trace:configure.ac:74: -1- AC_SUBST([DLLTOOL])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([DLLTOOL])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DLLTOOL$])
+m4trace:configure.ac:74: -1- AC_SUBST([AR])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([AR])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:74: -1- AC_SUBST([ac_ct_AR])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([ac_ct_AR])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^ac_ct_AR$])
+m4trace:configure.ac:74: -1- AC_SUBST([STRIP])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([STRIP])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:74: -1- AC_SUBST([RANLIB])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([RANLIB])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([LT_OBJDIR])
+m4trace:configure.ac:74: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LT_OBJDIR$])
+m4trace:configure.ac:74: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory where libtool stores uninstalled libraries. */
+@%:@undef LT_OBJDIR])
+m4trace:configure.ac:74: -1- LT_SUPPORTED_TAG([CC])
+m4trace:configure.ac:74: -1- AC_SUBST([MANIFEST_TOOL])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([MANIFEST_TOOL])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^MANIFEST_TOOL$])
+m4trace:configure.ac:74: -1- AC_SUBST([DSYMUTIL])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([DSYMUTIL])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DSYMUTIL$])
+m4trace:configure.ac:74: -1- AC_SUBST([NMEDIT])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([NMEDIT])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^NMEDIT$])
+m4trace:configure.ac:74: -1- AC_SUBST([LIPO])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([LIPO])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LIPO$])
+m4trace:configure.ac:74: -1- AC_SUBST([OTOOL])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([OTOOL])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OTOOL$])
+m4trace:configure.ac:74: -1- AC_SUBST([OTOOL64])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([OTOOL64])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OTOOL64$])
+m4trace:configure.ac:74: -1- AC_SUBST([LT_SYS_LIBRARY_PATH])
+m4trace:configure.ac:74: -1- AC_SUBST_TRACE([LT_SYS_LIBRARY_PATH])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$])
+m4trace:configure.ac:74: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
+@%:@undef HAVE_DLFCN_H])
+m4trace:configure.ac:74: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:74: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
+@%:@undef STDC_HEADERS])
+m4trace:configure.ac:74: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
+@%:@undef HAVE_SYS_TYPES_H])
+m4trace:configure.ac:74: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
+@%:@undef HAVE_SYS_STAT_H])
+m4trace:configure.ac:74: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+@%:@undef HAVE_STDLIB_H])
+m4trace:configure.ac:74: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
+@%:@undef HAVE_STRING_H])
+m4trace:configure.ac:74: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
+@%:@undef HAVE_MEMORY_H])
+m4trace:configure.ac:74: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
+@%:@undef HAVE_STRINGS_H])
+m4trace:configure.ac:74: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
+@%:@undef HAVE_INTTYPES_H])
+m4trace:configure.ac:74: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
+@%:@undef HAVE_STDINT_H])
+m4trace:configure.ac:74: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:74: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([VERSION_SCRIPT_FLAGS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([VERSION_SCRIPT_FLAGS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^VERSION_SCRIPT_FLAGS$])
+m4trace:configure.ac:90: -1- AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
+m4trace:configure.ac:90: -1- AC_SUBST([USE_VERSION_SCRIPT_TRUE])
+m4trace:configure.ac:90: -1- AC_SUBST_TRACE([USE_VERSION_SCRIPT_TRUE])
+m4trace:configure.ac:90: -1- m4_pattern_allow([^USE_VERSION_SCRIPT_TRUE$])
+m4trace:configure.ac:90: -1- AC_SUBST([USE_VERSION_SCRIPT_FALSE])
+m4trace:configure.ac:90: -1- AC_SUBST_TRACE([USE_VERSION_SCRIPT_FALSE])
+m4trace:configure.ac:90: -1- m4_pattern_allow([^USE_VERSION_SCRIPT_FALSE$])
+m4trace:configure.ac:90: -1- _AM_SUBST_NOTMAKE([USE_VERSION_SCRIPT_TRUE])
+m4trace:configure.ac:90: -1- _AM_SUBST_NOTMAKE([USE_VERSION_SCRIPT_FALSE])
+m4trace:configure.ac:129: -1- AC_SUBST([HTML_DIR])
+m4trace:configure.ac:129: -1- AC_SUBST_TRACE([HTML_DIR])
+m4trace:configure.ac:129: -1- m4_pattern_allow([^HTML_DIR$])
+m4trace:configure.ac:217: -1- AM_CONDITIONAL([REBUILD_DOCS], [test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"])
+m4trace:configure.ac:217: -1- AC_SUBST([REBUILD_DOCS_TRUE])
+m4trace:configure.ac:217: -1- AC_SUBST_TRACE([REBUILD_DOCS_TRUE])
+m4trace:configure.ac:217: -1- m4_pattern_allow([^REBUILD_DOCS_TRUE$])
+m4trace:configure.ac:217: -1- AC_SUBST([REBUILD_DOCS_FALSE])
+m4trace:configure.ac:217: -1- AC_SUBST_TRACE([REBUILD_DOCS_FALSE])
+m4trace:configure.ac:217: -1- m4_pattern_allow([^REBUILD_DOCS_FALSE$])
+m4trace:configure.ac:217: -1- _AM_SUBST_NOTMAKE([REBUILD_DOCS_TRUE])
+m4trace:configure.ac:217: -1- _AM_SUBST_NOTMAKE([REBUILD_DOCS_FALSE])
+m4trace:configure.ac:397: -1- AC_SUBST([Z_CFLAGS])
+m4trace:configure.ac:397: -1- AC_SUBST_TRACE([Z_CFLAGS])
+m4trace:configure.ac:397: -1- m4_pattern_allow([^Z_CFLAGS$])
+m4trace:configure.ac:397: -1- AC_SUBST([Z_LIBS])
+m4trace:configure.ac:397: -1- AC_SUBST_TRACE([Z_LIBS])
+m4trace:configure.ac:397: -1- m4_pattern_allow([^Z_LIBS$])
+m4trace:configure.ac:403: -1- AH_OUTPUT([HAVE_ZLIB_H], [/* Define to 1 if you have the <zlib.h> header file. */
+@%:@undef HAVE_ZLIB_H])
+m4trace:configure.ac:403: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ZLIB_H])
+m4trace:configure.ac:403: -1- m4_pattern_allow([^HAVE_ZLIB_H$])
+m4trace:configure.ac:421: -1- AC_SUBST([Z_CFLAGS])
+m4trace:configure.ac:421: -1- AC_SUBST_TRACE([Z_CFLAGS])
+m4trace:configure.ac:421: -1- m4_pattern_allow([^Z_CFLAGS$])
+m4trace:configure.ac:422: -1- AC_SUBST([Z_LIBS])
+m4trace:configure.ac:422: -1- AC_SUBST_TRACE([Z_LIBS])
+m4trace:configure.ac:422: -1- m4_pattern_allow([^Z_LIBS$])
+m4trace:configure.ac:423: -1- AC_SUBST([WITH_ZLIB])
+m4trace:configure.ac:423: -1- AC_SUBST_TRACE([WITH_ZLIB])
+m4trace:configure.ac:423: -1- m4_pattern_allow([^WITH_ZLIB$])
+m4trace:configure.ac:436: -1- AC_SUBST([LZMA_CFLAGS])
+m4trace:configure.ac:436: -1- AC_SUBST_TRACE([LZMA_CFLAGS])
+m4trace:configure.ac:436: -1- m4_pattern_allow([^LZMA_CFLAGS$])
+m4trace:configure.ac:436: -1- AC_SUBST([LZMA_LIBS])
+m4trace:configure.ac:436: -1- AC_SUBST_TRACE([LZMA_LIBS])
+m4trace:configure.ac:436: -1- m4_pattern_allow([^LZMA_LIBS$])
+m4trace:configure.ac:445: -1- AH_OUTPUT([HAVE_LZMA_H], [/* Define to 1 if you have the <lzma.h> header file. */
+@%:@undef HAVE_LZMA_H])
+m4trace:configure.ac:445: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LZMA_H])
+m4trace:configure.ac:445: -1- m4_pattern_allow([^HAVE_LZMA_H$])
+m4trace:configure.ac:458: -1- AC_SUBST([LZMA_CFLAGS])
+m4trace:configure.ac:458: -1- AC_SUBST_TRACE([LZMA_CFLAGS])
+m4trace:configure.ac:458: -1- m4_pattern_allow([^LZMA_CFLAGS$])
+m4trace:configure.ac:459: -1- AC_SUBST([LZMA_LIBS])
+m4trace:configure.ac:459: -1- AC_SUBST_TRACE([LZMA_LIBS])
+m4trace:configure.ac:459: -1- m4_pattern_allow([^LZMA_LIBS$])
+m4trace:configure.ac:460: -1- AC_SUBST([WITH_LZMA])
+m4trace:configure.ac:460: -1- AC_SUBST_TRACE([WITH_LZMA])
+m4trace:configure.ac:460: -1- m4_pattern_allow([^WITH_LZMA$])
+m4trace:configure.ac:468: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR\'.
+ */
+@%:@undef HAVE_DIRENT_H])
+m4trace:configure.ac:468: -1- AH_OUTPUT([HAVE_SYS_NDIR_H], [/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR\'.
+ */
+@%:@undef HAVE_SYS_NDIR_H])
+m4trace:configure.ac:468: -1- AH_OUTPUT([HAVE_SYS_DIR_H], [/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR\'.
+ */
+@%:@undef HAVE_SYS_DIR_H])
+m4trace:configure.ac:468: -1- AH_OUTPUT([HAVE_NDIR_H], [/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR\'. */
+@%:@undef HAVE_NDIR_H])
+m4trace:configure.ac:469: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
+m4trace:configure.ac:469: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:469: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
+@%:@undef STDC_HEADERS])
+m4trace:configure.ac:470: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */
+@%:@undef HAVE_FCNTL_H])
+m4trace:configure.ac:470: -1- AC_DEFINE_TRACE_LITERAL([HAVE_FCNTL_H])
+m4trace:configure.ac:470: -1- m4_pattern_allow([^HAVE_FCNTL_H$])
+m4trace:configure.ac:471: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:471: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNISTD_H])
+m4trace:configure.ac:471: -1- m4_pattern_allow([^HAVE_UNISTD_H$])
+m4trace:configure.ac:472: -1- AH_OUTPUT([HAVE_CTYPE_H], [/* Define to 1 if you have the <ctype.h> header file. */
+@%:@undef HAVE_CTYPE_H])
+m4trace:configure.ac:472: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CTYPE_H])
+m4trace:configure.ac:472: -1- m4_pattern_allow([^HAVE_CTYPE_H$])
+m4trace:configure.ac:473: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the <dirent.h> header file. */
+@%:@undef HAVE_DIRENT_H])
+m4trace:configure.ac:473: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DIRENT_H])
+m4trace:configure.ac:473: -1- m4_pattern_allow([^HAVE_DIRENT_H$])
+m4trace:configure.ac:474: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the <errno.h> header file. */
+@%:@undef HAVE_ERRNO_H])
+m4trace:configure.ac:474: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ERRNO_H])
+m4trace:configure.ac:474: -1- m4_pattern_allow([^HAVE_ERRNO_H$])
+m4trace:configure.ac:475: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the <malloc.h> header file. */
+@%:@undef HAVE_MALLOC_H])
+m4trace:configure.ac:475: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC_H])
+m4trace:configure.ac:475: -1- m4_pattern_allow([^HAVE_MALLOC_H$])
+m4trace:configure.ac:476: -1- AH_OUTPUT([HAVE_STDARG_H], [/* Define to 1 if you have the <stdarg.h> header file. */
+@%:@undef HAVE_STDARG_H])
+m4trace:configure.ac:476: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDARG_H])
+m4trace:configure.ac:476: -1- m4_pattern_allow([^HAVE_STDARG_H$])
+m4trace:configure.ac:477: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
+@%:@undef HAVE_SYS_STAT_H])
+m4trace:configure.ac:477: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_STAT_H])
+m4trace:configure.ac:477: -1- m4_pattern_allow([^HAVE_SYS_STAT_H$])
+m4trace:configure.ac:478: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
+@%:@undef HAVE_SYS_TYPES_H])
+m4trace:configure.ac:478: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_TYPES_H])
+m4trace:configure.ac:478: -1- m4_pattern_allow([^HAVE_SYS_TYPES_H$])
+m4trace:configure.ac:479: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
+@%:@undef HAVE_STDINT_H])
+m4trace:configure.ac:479: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDINT_H])
+m4trace:configure.ac:479: -1- m4_pattern_allow([^HAVE_STDINT_H$])
+m4trace:configure.ac:480: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
+@%:@undef HAVE_INTTYPES_H])
+m4trace:configure.ac:480: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H])
+m4trace:configure.ac:480: -1- m4_pattern_allow([^HAVE_INTTYPES_H$])
+m4trace:configure.ac:481: -1- AH_OUTPUT([HAVE_TIME_H], [/* Define to 1 if you have the <time.h> header file. */
+@%:@undef HAVE_TIME_H])
+m4trace:configure.ac:481: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIME_H])
+m4trace:configure.ac:481: -1- m4_pattern_allow([^HAVE_TIME_H$])
+m4trace:configure.ac:482: -1- AH_OUTPUT([HAVE_MATH_H], [/* Define to 1 if you have the <math.h> header file. */
+@%:@undef HAVE_MATH_H])
+m4trace:configure.ac:482: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MATH_H])
+m4trace:configure.ac:482: -1- m4_pattern_allow([^HAVE_MATH_H$])
+m4trace:configure.ac:483: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */
+@%:@undef HAVE_LIMITS_H])
+m4trace:configure.ac:483: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIMITS_H])
+m4trace:configure.ac:483: -1- m4_pattern_allow([^HAVE_LIMITS_H$])
+m4trace:configure.ac:484: -1- AH_OUTPUT([HAVE_FLOAT_H], [/* Define to 1 if you have the <float.h> header file. */
+@%:@undef HAVE_FLOAT_H])
+m4trace:configure.ac:484: -1- AC_DEFINE_TRACE_LITERAL([HAVE_FLOAT_H])
+m4trace:configure.ac:484: -1- m4_pattern_allow([^HAVE_FLOAT_H$])
+m4trace:configure.ac:485: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+@%:@undef HAVE_STDLIB_H])
+m4trace:configure.ac:485: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDLIB_H])
+m4trace:configure.ac:485: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
+m4trace:configure.ac:486: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
+@%:@undef HAVE_SYS_SOCKET_H])
+m4trace:configure.ac:486: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SOCKET_H])
+m4trace:configure.ac:486: -1- m4_pattern_allow([^HAVE_SYS_SOCKET_H$])
+m4trace:configure.ac:491: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the <netinet/in.h> header file. */
+@%:@undef HAVE_NETINET_IN_H])
+m4trace:configure.ac:491: -1- AC_DEFINE_TRACE_LITERAL([HAVE_NETINET_IN_H])
+m4trace:configure.ac:491: -1- m4_pattern_allow([^HAVE_NETINET_IN_H$])
+m4trace:configure.ac:496: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the <arpa/inet.h> header file. */
+@%:@undef HAVE_ARPA_INET_H])
+m4trace:configure.ac:496: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ARPA_INET_H])
+m4trace:configure.ac:496: -1- m4_pattern_allow([^HAVE_ARPA_INET_H$])
+m4trace:configure.ac:504: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */
+@%:@undef HAVE_NETDB_H])
+m4trace:configure.ac:504: -1- AC_DEFINE_TRACE_LITERAL([HAVE_NETDB_H])
+m4trace:configure.ac:504: -1- m4_pattern_allow([^HAVE_NETDB_H$])
+m4trace:configure.ac:505: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
+@%:@undef HAVE_SYS_TIME_H])
+m4trace:configure.ac:505: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_TIME_H])
+m4trace:configure.ac:505: -1- m4_pattern_allow([^HAVE_SYS_TIME_H$])
+m4trace:configure.ac:506: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the <sys/select.h> header file. */
+@%:@undef HAVE_SYS_SELECT_H])
+m4trace:configure.ac:506: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SELECT_H])
+m4trace:configure.ac:506: -1- m4_pattern_allow([^HAVE_SYS_SELECT_H$])
+m4trace:configure.ac:507: -1- AH_OUTPUT([HAVE_POLL_H], [/* Define to 1 if you have the <poll.h> header file. */
+@%:@undef HAVE_POLL_H])
+m4trace:configure.ac:507: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POLL_H])
+m4trace:configure.ac:507: -1- m4_pattern_allow([^HAVE_POLL_H$])
+m4trace:configure.ac:508: -1- AH_OUTPUT([HAVE_SYS_MMAN_H], [/* Define to 1 if you have the <sys/mman.h> header file. */
+@%:@undef HAVE_SYS_MMAN_H])
+m4trace:configure.ac:508: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_MMAN_H])
+m4trace:configure.ac:508: -1- m4_pattern_allow([^HAVE_SYS_MMAN_H$])
+m4trace:configure.ac:509: -1- AH_OUTPUT([HAVE_SYS_TIMEB_H], [/* Define to 1 if you have the <sys/timeb.h> header file. */
+@%:@undef HAVE_SYS_TIMEB_H])
+m4trace:configure.ac:509: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_TIMEB_H])
+m4trace:configure.ac:509: -1- m4_pattern_allow([^HAVE_SYS_TIMEB_H$])
+m4trace:configure.ac:510: -1- AH_OUTPUT([HAVE_SIGNAL_H], [/* Define to 1 if you have the <signal.h> header file. */
+@%:@undef HAVE_SIGNAL_H])
+m4trace:configure.ac:510: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SIGNAL_H])
+m4trace:configure.ac:510: -1- m4_pattern_allow([^HAVE_SIGNAL_H$])
+m4trace:configure.ac:511: -1- AH_OUTPUT([HAVE_ARPA_NAMESER_H], [/* Define to 1 if you have the <arpa/nameser.h> header file. */
+@%:@undef HAVE_ARPA_NAMESER_H])
+m4trace:configure.ac:511: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ARPA_NAMESER_H])
+m4trace:configure.ac:511: -1- m4_pattern_allow([^HAVE_ARPA_NAMESER_H$])
+m4trace:configure.ac:516: -1- AH_OUTPUT([HAVE_RESOLV_H], [/* Define to 1 if you have the <resolv.h> header file. */
+@%:@undef HAVE_RESOLV_H])
+m4trace:configure.ac:516: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RESOLV_H])
+m4trace:configure.ac:516: -1- m4_pattern_allow([^HAVE_RESOLV_H$])
+m4trace:configure.ac:527: -1- AH_OUTPUT([HAVE_DL_H], [/* Define to 1 if you have the <dl.h> header file. */
+@%:@undef HAVE_DL_H])
+m4trace:configure.ac:527: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DL_H])
+m4trace:configure.ac:527: -1- m4_pattern_allow([^HAVE_DL_H$])
+m4trace:configure.ac:528: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
+@%:@undef HAVE_DLFCN_H])
+m4trace:configure.ac:528: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H])
+m4trace:configure.ac:528: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
+m4trace:configure.ac:533: -1- AC_DEFINE_TRACE_LITERAL([_UINT32_T])
+m4trace:configure.ac:533: -1- m4_pattern_allow([^_UINT32_T$])
+m4trace:configure.ac:533: -1- AH_OUTPUT([_UINT32_T], [/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
+ <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+ @%:@define below would cause a syntax error. */
+@%:@undef _UINT32_T])
+m4trace:configure.ac:533: -1- AC_DEFINE_TRACE_LITERAL([uint32_t])
+m4trace:configure.ac:533: -1- m4_pattern_allow([^uint32_t$])
+m4trace:configure.ac:533: -1- AH_OUTPUT([uint32_t], [/* Define to the type of an unsigned integer type of width exactly 32 bits if
+ such a type exists and the standard includes do not define it. */
+@%:@undef uint32_t])
+m4trace:configure.ac:539: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the `strftime\' function. */
+@%:@undef HAVE_STRFTIME])
+m4trace:configure.ac:539: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRFTIME])
+m4trace:configure.ac:539: -1- m4_pattern_allow([^HAVE_STRFTIME$])
+m4trace:configure.ac:539: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRFTIME])
+m4trace:configure.ac:539: -1- m4_pattern_allow([^HAVE_STRFTIME$])
+m4trace:configure.ac:540: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the `strftime\' function. */
+@%:@undef HAVE_STRFTIME])
+m4trace:configure.ac:540: -1- AH_OUTPUT([HAVE_LOCALTIME], [/* Define to 1 if you have the `localtime\' function. */
+@%:@undef HAVE_LOCALTIME])
+m4trace:configure.ac:540: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */
+@%:@undef HAVE_GETTIMEOFDAY])
+m4trace:configure.ac:540: -1- AH_OUTPUT([HAVE_FTIME], [/* Define to 1 if you have the `ftime\' function. */
+@%:@undef HAVE_FTIME])
+m4trace:configure.ac:541: -1- AH_OUTPUT([HAVE_STAT], [/* Define to 1 if you have the `stat\' function. */
+@%:@undef HAVE_STAT])
+m4trace:configure.ac:541: -1- AH_OUTPUT([HAVE_SIGNAL], [/* Define to 1 if you have the `signal\' function. */
+@%:@undef HAVE_SIGNAL])
+m4trace:configure.ac:542: -1- AH_OUTPUT([HAVE_RAND], [/* Define to 1 if you have the `rand\' function. */
+@%:@undef HAVE_RAND])
+m4trace:configure.ac:542: -1- AH_OUTPUT([HAVE_RAND_R], [/* Define to 1 if you have the `rand_r\' function. */
+@%:@undef HAVE_RAND_R])
+m4trace:configure.ac:542: -1- AH_OUTPUT([HAVE_SRAND], [/* Define to 1 if you have the `srand\' function. */
+@%:@undef HAVE_SRAND])
+m4trace:configure.ac:542: -1- AH_OUTPUT([HAVE_TIME], [/* Define to 1 if you have the `time\' function. */
+@%:@undef HAVE_TIME])
+m4trace:configure.ac:543: -1- AH_OUTPUT([HAVE_ISASCII], [/* Define to 1 if you have the `isascii\' function. */
+@%:@undef HAVE_ISASCII])
+m4trace:configure.ac:543: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have the `mmap\' function. */
+@%:@undef HAVE_MMAP])
+m4trace:configure.ac:543: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */
+@%:@undef HAVE_MUNMAP])
+m4trace:configure.ac:543: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */
+@%:@undef HAVE_PUTENV])
+m4trace:configure.ac:545: -1- AH_OUTPUT([HAVE_MUNMAP_AFTER], [/* mmap() is no good without munmap() */
+#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP)
+# undef /**/ HAVE_MMAP
+#endif])
+m4trace:configure.ac:558: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VA_COPY])
+m4trace:configure.ac:558: -1- m4_pattern_allow([^HAVE_VA_COPY$])
+m4trace:configure.ac:558: -1- AH_OUTPUT([HAVE_VA_COPY], [/* Whether va_copy() is available */
+@%:@undef HAVE_VA_COPY])
+m4trace:configure.ac:567: -1- AC_DEFINE_TRACE_LITERAL([HAVE___VA_COPY])
+m4trace:configure.ac:567: -1- m4_pattern_allow([^HAVE___VA_COPY$])
+m4trace:configure.ac:567: -1- AH_OUTPUT([HAVE___VA_COPY], [/* Whether __va_copy() is available */
+@%:@undef HAVE___VA_COPY])
+m4trace:configure.ac:573: -1- AC_DEFINE_TRACE_LITERAL([VA_LIST_IS_ARRAY])
+m4trace:configure.ac:573: -1- m4_pattern_allow([^VA_LIST_IS_ARRAY$])
+m4trace:configure.ac:573: -1- AH_OUTPUT([VA_LIST_IS_ARRAY], [/* Define if va_list is an array type */
+@%:@undef VA_LIST_IS_ARRAY])
+m4trace:configure.ac:611: -1- AC_DEFINE_TRACE_LITERAL([XML_SOCKLEN_T])
+m4trace:configure.ac:611: -1- m4_pattern_allow([^XML_SOCKLEN_T$])
+m4trace:configure.ac:611: -1- AH_OUTPUT([XML_SOCKLEN_T], [/* Determine what socket length (socklen_t) data type is */
+@%:@undef XML_SOCKLEN_T])
+m4trace:configure.ac:621: -1- AC_DEFINE_TRACE_LITERAL([GETHOSTBYNAME_ARG_CAST])
+m4trace:configure.ac:621: -1- m4_pattern_allow([^GETHOSTBYNAME_ARG_CAST$])
+m4trace:configure.ac:621: -1- AH_OUTPUT([GETHOSTBYNAME_ARG_CAST], [/* Type cast for the gethostbyname() argument */
+@%:@undef GETHOSTBYNAME_ARG_CAST])
+m4trace:configure.ac:624: -1- AC_DEFINE_TRACE_LITERAL([GETHOSTBYNAME_ARG_CAST])
+m4trace:configure.ac:624: -1- m4_pattern_allow([^GETHOSTBYNAME_ARG_CAST$])
+m4trace:configure.ac:624: -1- AH_OUTPUT([GETHOSTBYNAME_ARG_CAST], [/* Type cast for the gethostbyname() argument */
+@%:@undef GETHOSTBYNAME_ARG_CAST])
+m4trace:configure.ac:637: -1- AC_DEFINE_TRACE_LITERAL([SEND_ARG2_CAST])
+m4trace:configure.ac:637: -1- m4_pattern_allow([^SEND_ARG2_CAST$])
+m4trace:configure.ac:637: -1- AH_OUTPUT([SEND_ARG2_CAST], [/* Type cast for the send() function 2nd arg */
+@%:@undef SEND_ARG2_CAST])
+m4trace:configure.ac:640: -1- AC_DEFINE_TRACE_LITERAL([SEND_ARG2_CAST])
+m4trace:configure.ac:640: -1- m4_pattern_allow([^SEND_ARG2_CAST$])
+m4trace:configure.ac:640: -1- AH_OUTPUT([SEND_ARG2_CAST], [/* Type cast for the send() function 2nd arg */
+@%:@undef SEND_ARG2_CAST])
+m4trace:configure.ac:667: -1- AC_DEFINE_TRACE_LITERAL([SUPPORT_IP6])
+m4trace:configure.ac:667: -1- m4_pattern_allow([^SUPPORT_IP6$])
+m4trace:configure.ac:667: -1- AH_OUTPUT([SUPPORT_IP6], [/* Support for IPv6 */
+@%:@undef SUPPORT_IP6])
+m4trace:configure.ac:703: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BROKEN_SS_FAMILY])
+m4trace:configure.ac:703: -1- m4_pattern_allow([^HAVE_BROKEN_SS_FAMILY$])
+m4trace:configure.ac:703: -1- AH_OUTPUT([HAVE_BROKEN_SS_FAMILY], [/* Whether struct sockaddr::__ss_family exists */
+@%:@undef HAVE_BROKEN_SS_FAMILY])
+m4trace:configure.ac:705: -1- AC_DEFINE_TRACE_LITERAL([ss_family])
+m4trace:configure.ac:705: -1- m4_pattern_allow([^ss_family$])
+m4trace:configure.ac:705: -1- AH_OUTPUT([ss_family], [/* ss_family is not defined here, use __ss_family instead */
+@%:@undef ss_family])
+m4trace:configure.ac:721: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETADDRINFO])
+m4trace:configure.ac:721: -1- m4_pattern_allow([^HAVE_GETADDRINFO$])
+m4trace:configure.ac:721: -1- AH_OUTPUT([HAVE_GETADDRINFO], [/* Define if getaddrinfo is there */
+@%:@undef HAVE_GETADDRINFO])
+m4trace:configure.ac:729: -2- AC_DEFINE_TRACE_LITERAL([HAVE_ISNAN])
+m4trace:configure.ac:729: -2- m4_pattern_allow([^HAVE_ISNAN$])
+m4trace:configure.ac:729: -2- AH_OUTPUT([HAVE_ISNAN], [/* Define if isnan is there */
+@%:@undef HAVE_ISNAN])
+m4trace:configure.ac:729: -2- AC_DEFINE_TRACE_LITERAL([HAVE_ISNAN])
+m4trace:configure.ac:729: -2- m4_pattern_allow([^HAVE_ISNAN$])
+m4trace:configure.ac:729: -2- AH_OUTPUT([HAVE_ISNAN], [/* Define if isnan is there */
+@%:@undef HAVE_ISNAN])
+m4trace:configure.ac:732: -2- AC_DEFINE_TRACE_LITERAL([HAVE_ISINF])
+m4trace:configure.ac:732: -2- m4_pattern_allow([^HAVE_ISINF$])
+m4trace:configure.ac:732: -2- AH_OUTPUT([HAVE_ISINF], [/* Define if isinf is there */
+@%:@undef HAVE_ISINF])
+m4trace:configure.ac:732: -2- AC_DEFINE_TRACE_LITERAL([HAVE_ISINF])
+m4trace:configure.ac:732: -2- m4_pattern_allow([^HAVE_ISINF$])
+m4trace:configure.ac:732: -2- AH_OUTPUT([HAVE_ISINF], [/* Define if isinf is there */
+@%:@undef HAVE_ISINF])
+m4trace:configure.ac:835: -1- AC_SUBST([PYTHON])
+m4trace:configure.ac:835: -1- AC_SUBST_TRACE([PYTHON])
+m4trace:configure.ac:835: -1- m4_pattern_allow([^PYTHON$])
+m4trace:configure.ac:896: -1- AM_CONDITIONAL([WITH_PYTHON], [test "$PYTHON_INCLUDES" != ""])
+m4trace:configure.ac:896: -1- AC_SUBST([WITH_PYTHON_TRUE])
+m4trace:configure.ac:896: -1- AC_SUBST_TRACE([WITH_PYTHON_TRUE])
+m4trace:configure.ac:896: -1- m4_pattern_allow([^WITH_PYTHON_TRUE$])
+m4trace:configure.ac:896: -1- AC_SUBST([WITH_PYTHON_FALSE])
+m4trace:configure.ac:896: -1- AC_SUBST_TRACE([WITH_PYTHON_FALSE])
+m4trace:configure.ac:896: -1- m4_pattern_allow([^WITH_PYTHON_FALSE$])
+m4trace:configure.ac:896: -1- _AM_SUBST_NOTMAKE([WITH_PYTHON_TRUE])
+m4trace:configure.ac:896: -1- _AM_SUBST_NOTMAKE([WITH_PYTHON_FALSE])
+m4trace:configure.ac:903: -1- AC_SUBST([pythondir])
+m4trace:configure.ac:903: -1- AC_SUBST_TRACE([pythondir])
+m4trace:configure.ac:903: -1- m4_pattern_allow([^pythondir$])
+m4trace:configure.ac:904: -1- AC_SUBST([PYTHON_SUBDIR])
+m4trace:configure.ac:904: -1- AC_SUBST_TRACE([PYTHON_SUBDIR])
+m4trace:configure.ac:904: -1- m4_pattern_allow([^PYTHON_SUBDIR$])
+m4trace:configure.ac:905: -1- AC_SUBST([PYTHON_LIBS])
+m4trace:configure.ac:905: -1- AC_SUBST_TRACE([PYTHON_LIBS])
+m4trace:configure.ac:905: -1- m4_pattern_allow([^PYTHON_LIBS$])
+m4trace:configure.ac:915: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLOPEN])
+m4trace:configure.ac:915: -1- m4_pattern_allow([^HAVE_DLOPEN$])
+m4trace:configure.ac:915: -1- AH_OUTPUT([HAVE_DLOPEN], [/* Have dlopen based dso */
+@%:@undef HAVE_DLOPEN])
+m4trace:configure.ac:938: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SHLLOAD])
+m4trace:configure.ac:938: -1- m4_pattern_allow([^HAVE_SHLLOAD$])
+m4trace:configure.ac:938: -1- AH_OUTPUT([HAVE_SHLLOAD], [/* Have shl_load based dso */
+@%:@undef HAVE_SHLLOAD])
+m4trace:configure.ac:952: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLOPEN])
+m4trace:configure.ac:952: -1- m4_pattern_allow([^HAVE_DLOPEN$])
+m4trace:configure.ac:952: -1- AH_OUTPUT([HAVE_DLOPEN], [/* Have dlopen based dso */
+@%:@undef HAVE_DLOPEN])
+m4trace:configure.ac:962: -1- AC_SUBST([WITH_MODULES])
+m4trace:configure.ac:962: -1- AC_SUBST_TRACE([WITH_MODULES])
+m4trace:configure.ac:962: -1- m4_pattern_allow([^WITH_MODULES$])
+m4trace:configure.ac:963: -1- AC_SUBST([MODULE_PLATFORM_LIBS])
+m4trace:configure.ac:963: -1- AC_SUBST_TRACE([MODULE_PLATFORM_LIBS])
+m4trace:configure.ac:963: -1- m4_pattern_allow([^MODULE_PLATFORM_LIBS$])
+m4trace:configure.ac:964: -1- AC_SUBST([MODULE_EXTENSION])
+m4trace:configure.ac:964: -1- AC_SUBST_TRACE([MODULE_EXTENSION])
+m4trace:configure.ac:964: -1- m4_pattern_allow([^MODULE_EXTENSION$])
+m4trace:configure.ac:965: -1- AC_SUBST([TEST_MODULES])
+m4trace:configure.ac:965: -1- AC_SUBST_TRACE([TEST_MODULES])
+m4trace:configure.ac:965: -1- m4_pattern_allow([^TEST_MODULES$])
+m4trace:configure.ac:998: -1- AC_SUBST([STATIC_BINARIES])
+m4trace:configure.ac:998: -1- AC_SUBST_TRACE([STATIC_BINARIES])
+m4trace:configure.ac:998: -1- m4_pattern_allow([^STATIC_BINARIES$])
+m4trace:configure.ac:1010: -1- AM_CONDITIONAL([WITH_TRIO_SOURCES], [test "${NEED_TRIO}" = "1"])
+m4trace:configure.ac:1010: -1- AC_SUBST([WITH_TRIO_SOURCES_TRUE])
+m4trace:configure.ac:1010: -1- AC_SUBST_TRACE([WITH_TRIO_SOURCES_TRUE])
+m4trace:configure.ac:1010: -1- m4_pattern_allow([^WITH_TRIO_SOURCES_TRUE$])
+m4trace:configure.ac:1010: -1- AC_SUBST([WITH_TRIO_SOURCES_FALSE])
+m4trace:configure.ac:1010: -1- AC_SUBST_TRACE([WITH_TRIO_SOURCES_FALSE])
+m4trace:configure.ac:1010: -1- m4_pattern_allow([^WITH_TRIO_SOURCES_FALSE$])
+m4trace:configure.ac:1010: -1- _AM_SUBST_NOTMAKE([WITH_TRIO_SOURCES_TRUE])
+m4trace:configure.ac:1010: -1- _AM_SUBST_NOTMAKE([WITH_TRIO_SOURCES_FALSE])
+m4trace:configure.ac:1011: -1- AC_SUBST([WITH_TRIO])
+m4trace:configure.ac:1011: -1- AC_SUBST_TRACE([WITH_TRIO])
+m4trace:configure.ac:1011: -1- m4_pattern_allow([^WITH_TRIO$])
+m4trace:configure.ac:1048: -2- AC_DEFINE_TRACE_LITERAL([HAVE_LIBPTHREAD])
+m4trace:configure.ac:1048: -2- m4_pattern_allow([^HAVE_LIBPTHREAD$])
+m4trace:configure.ac:1048: -2- AH_OUTPUT([HAVE_LIBPTHREAD], [/* Define if pthread library is there (-lpthread) */
+@%:@undef HAVE_LIBPTHREAD])
+m4trace:configure.ac:1048: -2- AC_DEFINE_TRACE_LITERAL([HAVE_PTHREAD_H])
+m4trace:configure.ac:1048: -2- m4_pattern_allow([^HAVE_PTHREAD_H$])
+m4trace:configure.ac:1048: -2- AH_OUTPUT([HAVE_PTHREAD_H], [/* Define if <pthread.h> is there */
+@%:@undef HAVE_PTHREAD_H])
+m4trace:configure.ac:1094: -1- AC_SUBST([THREAD_LIBS])
+m4trace:configure.ac:1094: -1- AC_SUBST_TRACE([THREAD_LIBS])
+m4trace:configure.ac:1094: -1- m4_pattern_allow([^THREAD_LIBS$])
+m4trace:configure.ac:1095: -1- AC_SUBST([BASE_THREAD_LIBS])
+m4trace:configure.ac:1095: -1- AC_SUBST_TRACE([BASE_THREAD_LIBS])
+m4trace:configure.ac:1095: -1- m4_pattern_allow([^BASE_THREAD_LIBS$])
+m4trace:configure.ac:1096: -1- AC_SUBST([WITH_THREADS])
+m4trace:configure.ac:1096: -1- AC_SUBST_TRACE([WITH_THREADS])
+m4trace:configure.ac:1096: -1- m4_pattern_allow([^WITH_THREADS$])
+m4trace:configure.ac:1097: -1- AC_SUBST([THREAD_CFLAGS])
+m4trace:configure.ac:1097: -1- AC_SUBST_TRACE([THREAD_CFLAGS])
+m4trace:configure.ac:1097: -1- m4_pattern_allow([^THREAD_CFLAGS$])
+m4trace:configure.ac:1098: -1- AC_SUBST([TEST_THREADS])
+m4trace:configure.ac:1098: -1- AC_SUBST_TRACE([TEST_THREADS])
+m4trace:configure.ac:1098: -1- m4_pattern_allow([^TEST_THREADS$])
+m4trace:configure.ac:1099: -1- AC_SUBST([WITH_THREAD_ALLOC])
+m4trace:configure.ac:1099: -1- AC_SUBST_TRACE([WITH_THREAD_ALLOC])
+m4trace:configure.ac:1099: -1- m4_pattern_allow([^WITH_THREAD_ALLOC$])
+m4trace:configure.ac:1100: -1- AM_CONDITIONAL([THREADS_W32], [test -n "$THREADS_W32"])
+m4trace:configure.ac:1100: -1- AC_SUBST([THREADS_W32_TRUE])
+m4trace:configure.ac:1100: -1- AC_SUBST_TRACE([THREADS_W32_TRUE])
+m4trace:configure.ac:1100: -1- m4_pattern_allow([^THREADS_W32_TRUE$])
+m4trace:configure.ac:1100: -1- AC_SUBST([THREADS_W32_FALSE])
+m4trace:configure.ac:1100: -1- AC_SUBST_TRACE([THREADS_W32_FALSE])
+m4trace:configure.ac:1100: -1- m4_pattern_allow([^THREADS_W32_FALSE$])
+m4trace:configure.ac:1100: -1- _AM_SUBST_NOTMAKE([THREADS_W32_TRUE])
+m4trace:configure.ac:1100: -1- _AM_SUBST_NOTMAKE([THREADS_W32_FALSE])
+m4trace:configure.ac:1116: -2- AC_DEFINE_TRACE_LITERAL([HAVE_LIBHISTORY])
+m4trace:configure.ac:1116: -2- m4_pattern_allow([^HAVE_LIBHISTORY$])
+m4trace:configure.ac:1116: -2- AH_OUTPUT([HAVE_LIBHISTORY], [/* Define if history library is there (-lhistory) */
+@%:@undef HAVE_LIBHISTORY])
+m4trace:configure.ac:1120: -2- AC_DEFINE_TRACE_LITERAL([HAVE_LIBREADLINE])
+m4trace:configure.ac:1120: -2- m4_pattern_allow([^HAVE_LIBREADLINE$])
+m4trace:configure.ac:1120: -2- AH_OUTPUT([HAVE_LIBREADLINE], [/* Define if readline library is there (-lreadline) */
+@%:@undef HAVE_LIBREADLINE])
+m4trace:configure.ac:1138: -1- AC_SUBST([WITH_TREE])
+m4trace:configure.ac:1138: -1- AC_SUBST_TRACE([WITH_TREE])
+m4trace:configure.ac:1138: -1- m4_pattern_allow([^WITH_TREE$])
+m4trace:configure.ac:1148: -1- AC_SUBST([WITH_FTP])
+m4trace:configure.ac:1148: -1- AC_SUBST_TRACE([WITH_FTP])
+m4trace:configure.ac:1148: -1- m4_pattern_allow([^WITH_FTP$])
+m4trace:configure.ac:1149: -1- AC_SUBST([FTP_OBJ])
+m4trace:configure.ac:1149: -1- AC_SUBST_TRACE([FTP_OBJ])
+m4trace:configure.ac:1149: -1- m4_pattern_allow([^FTP_OBJ$])
+m4trace:configure.ac:1159: -1- AC_SUBST([WITH_HTTP])
+m4trace:configure.ac:1159: -1- AC_SUBST_TRACE([WITH_HTTP])
+m4trace:configure.ac:1159: -1- m4_pattern_allow([^WITH_HTTP$])
+m4trace:configure.ac:1160: -1- AC_SUBST([HTTP_OBJ])
+m4trace:configure.ac:1160: -1- AC_SUBST_TRACE([HTTP_OBJ])
+m4trace:configure.ac:1160: -1- m4_pattern_allow([^HTTP_OBJ$])
+m4trace:configure.ac:1168: -1- AC_SUBST([WITH_LEGACY])
+m4trace:configure.ac:1168: -1- AC_SUBST_TRACE([WITH_LEGACY])
+m4trace:configure.ac:1168: -1- m4_pattern_allow([^WITH_LEGACY$])
+m4trace:configure.ac:1182: -1- AC_SUBST([WITH_READER])
+m4trace:configure.ac:1182: -1- AC_SUBST_TRACE([WITH_READER])
+m4trace:configure.ac:1182: -1- m4_pattern_allow([^WITH_READER$])
+m4trace:configure.ac:1183: -1- AC_SUBST([READER_TEST])
+m4trace:configure.ac:1183: -1- AC_SUBST_TRACE([READER_TEST])
+m4trace:configure.ac:1183: -1- m4_pattern_allow([^READER_TEST$])
+m4trace:configure.ac:1201: -1- AC_SUBST([WITH_WRITER])
+m4trace:configure.ac:1201: -1- AC_SUBST_TRACE([WITH_WRITER])
+m4trace:configure.ac:1201: -1- m4_pattern_allow([^WITH_WRITER$])
+m4trace:configure.ac:1212: -1- AC_SUBST([WITH_PATTERN])
+m4trace:configure.ac:1212: -1- AC_SUBST_TRACE([WITH_PATTERN])
+m4trace:configure.ac:1212: -1- m4_pattern_allow([^WITH_PATTERN$])
+m4trace:configure.ac:1213: -1- AC_SUBST([TEST_PATTERN])
+m4trace:configure.ac:1213: -1- AC_SUBST_TRACE([TEST_PATTERN])
+m4trace:configure.ac:1213: -1- m4_pattern_allow([^TEST_PATTERN$])
+m4trace:configure.ac:1223: -1- AC_SUBST([WITH_SAX1])
+m4trace:configure.ac:1223: -1- AC_SUBST_TRACE([WITH_SAX1])
+m4trace:configure.ac:1223: -1- m4_pattern_allow([^WITH_SAX1$])
+m4trace:configure.ac:1224: -1- AM_CONDITIONAL([WITH_SAX1_SOURCES], [test "${WITH_TRIO}" = "1"])
+m4trace:configure.ac:1224: -1- AC_SUBST([WITH_SAX1_SOURCES_TRUE])
+m4trace:configure.ac:1224: -1- AC_SUBST_TRACE([WITH_SAX1_SOURCES_TRUE])
+m4trace:configure.ac:1224: -1- m4_pattern_allow([^WITH_SAX1_SOURCES_TRUE$])
+m4trace:configure.ac:1224: -1- AC_SUBST([WITH_SAX1_SOURCES_FALSE])
+m4trace:configure.ac:1224: -1- AC_SUBST_TRACE([WITH_SAX1_SOURCES_FALSE])
+m4trace:configure.ac:1224: -1- m4_pattern_allow([^WITH_SAX1_SOURCES_FALSE$])
+m4trace:configure.ac:1224: -1- _AM_SUBST_NOTMAKE([WITH_SAX1_SOURCES_TRUE])
+m4trace:configure.ac:1224: -1- _AM_SUBST_NOTMAKE([WITH_SAX1_SOURCES_FALSE])
+m4trace:configure.ac:1225: -1- AC_SUBST([TEST_SAX])
+m4trace:configure.ac:1225: -1- AC_SUBST_TRACE([TEST_SAX])
+m4trace:configure.ac:1225: -1- m4_pattern_allow([^TEST_SAX$])
+m4trace:configure.ac:1235: -1- AC_SUBST([WITH_PUSH])
+m4trace:configure.ac:1235: -1- AC_SUBST_TRACE([WITH_PUSH])
+m4trace:configure.ac:1235: -1- m4_pattern_allow([^WITH_PUSH$])
+m4trace:configure.ac:1236: -1- AC_SUBST([TEST_PUSH])
+m4trace:configure.ac:1236: -1- AC_SUBST_TRACE([TEST_PUSH])
+m4trace:configure.ac:1236: -1- m4_pattern_allow([^TEST_PUSH$])
+m4trace:configure.ac:1253: -1- AC_SUBST([WITH_HTML])
+m4trace:configure.ac:1253: -1- AC_SUBST_TRACE([WITH_HTML])
+m4trace:configure.ac:1253: -1- m4_pattern_allow([^WITH_HTML$])
+m4trace:configure.ac:1254: -1- AC_SUBST([HTML_OBJ])
+m4trace:configure.ac:1254: -1- AC_SUBST_TRACE([HTML_OBJ])
+m4trace:configure.ac:1254: -1- m4_pattern_allow([^HTML_OBJ$])
+m4trace:configure.ac:1255: -1- AC_SUBST([TEST_HTML])
+m4trace:configure.ac:1255: -1- AC_SUBST_TRACE([TEST_HTML])
+m4trace:configure.ac:1255: -1- m4_pattern_allow([^TEST_HTML$])
+m4trace:configure.ac:1256: -1- AC_SUBST([TEST_PHTML])
+m4trace:configure.ac:1256: -1- AC_SUBST_TRACE([TEST_PHTML])
+m4trace:configure.ac:1256: -1- m4_pattern_allow([^TEST_PHTML$])
+m4trace:configure.ac:1268: -1- AC_SUBST([WITH_VALID])
+m4trace:configure.ac:1268: -1- AC_SUBST_TRACE([WITH_VALID])
+m4trace:configure.ac:1268: -1- m4_pattern_allow([^WITH_VALID$])
+m4trace:configure.ac:1269: -1- AC_SUBST([TEST_VALID])
+m4trace:configure.ac:1269: -1- AC_SUBST_TRACE([TEST_VALID])
+m4trace:configure.ac:1269: -1- m4_pattern_allow([^TEST_VALID$])
+m4trace:configure.ac:1270: -1- AC_SUBST([TEST_VTIME])
+m4trace:configure.ac:1270: -1- AC_SUBST_TRACE([TEST_VTIME])
+m4trace:configure.ac:1270: -1- m4_pattern_allow([^TEST_VTIME$])
+m4trace:configure.ac:1282: -1- AC_SUBST([WITH_CATALOG])
+m4trace:configure.ac:1282: -1- AC_SUBST_TRACE([WITH_CATALOG])
+m4trace:configure.ac:1282: -1- m4_pattern_allow([^WITH_CATALOG$])
+m4trace:configure.ac:1283: -1- AC_SUBST([CATALOG_OBJ])
+m4trace:configure.ac:1283: -1- AC_SUBST_TRACE([CATALOG_OBJ])
+m4trace:configure.ac:1283: -1- m4_pattern_allow([^CATALOG_OBJ$])
+m4trace:configure.ac:1284: -1- AC_SUBST([TEST_CATALOG])
+m4trace:configure.ac:1284: -1- AC_SUBST_TRACE([TEST_CATALOG])
+m4trace:configure.ac:1284: -1- m4_pattern_allow([^TEST_CATALOG$])
+m4trace:configure.ac:1294: -1- AC_SUBST([WITH_DOCB])
+m4trace:configure.ac:1294: -1- AC_SUBST_TRACE([WITH_DOCB])
+m4trace:configure.ac:1294: -1- m4_pattern_allow([^WITH_DOCB$])
+m4trace:configure.ac:1295: -1- AC_SUBST([DOCB_OBJ])
+m4trace:configure.ac:1295: -1- AC_SUBST_TRACE([DOCB_OBJ])
+m4trace:configure.ac:1295: -1- m4_pattern_allow([^DOCB_OBJ$])
+m4trace:configure.ac:1312: -1- AC_SUBST([WITH_XPTR])
+m4trace:configure.ac:1312: -1- AC_SUBST_TRACE([WITH_XPTR])
+m4trace:configure.ac:1312: -1- m4_pattern_allow([^WITH_XPTR$])
+m4trace:configure.ac:1313: -1- AC_SUBST([XPTR_OBJ])
+m4trace:configure.ac:1313: -1- AC_SUBST_TRACE([XPTR_OBJ])
+m4trace:configure.ac:1313: -1- m4_pattern_allow([^XPTR_OBJ$])
+m4trace:configure.ac:1314: -1- AC_SUBST([TEST_XPTR])
+m4trace:configure.ac:1314: -1- AC_SUBST_TRACE([TEST_XPTR])
+m4trace:configure.ac:1314: -1- m4_pattern_allow([^TEST_XPTR$])
+m4trace:configure.ac:1330: -1- AC_SUBST([WITH_C14N])
+m4trace:configure.ac:1330: -1- AC_SUBST_TRACE([WITH_C14N])
+m4trace:configure.ac:1330: -1- m4_pattern_allow([^WITH_C14N$])
+m4trace:configure.ac:1331: -1- AC_SUBST([C14N_OBJ])
+m4trace:configure.ac:1331: -1- AC_SUBST_TRACE([C14N_OBJ])
+m4trace:configure.ac:1331: -1- m4_pattern_allow([^C14N_OBJ$])
+m4trace:configure.ac:1332: -1- AC_SUBST([TEST_C14N])
+m4trace:configure.ac:1332: -1- AC_SUBST_TRACE([TEST_C14N])
+m4trace:configure.ac:1332: -1- m4_pattern_allow([^TEST_C14N$])
+m4trace:configure.ac:1349: -1- AC_SUBST([WITH_XINCLUDE])
+m4trace:configure.ac:1349: -1- AC_SUBST_TRACE([WITH_XINCLUDE])
+m4trace:configure.ac:1349: -1- m4_pattern_allow([^WITH_XINCLUDE$])
+m4trace:configure.ac:1350: -1- AC_SUBST([XINCLUDE_OBJ])
+m4trace:configure.ac:1350: -1- AC_SUBST_TRACE([XINCLUDE_OBJ])
+m4trace:configure.ac:1350: -1- m4_pattern_allow([^XINCLUDE_OBJ$])
+m4trace:configure.ac:1351: -1- AC_SUBST([TEST_XINCLUDE])
+m4trace:configure.ac:1351: -1- AC_SUBST_TRACE([TEST_XINCLUDE])
+m4trace:configure.ac:1351: -1- m4_pattern_allow([^TEST_XINCLUDE$])
+m4trace:configure.ac:1373: -1- AC_SUBST([WITH_SCHEMATRON])
+m4trace:configure.ac:1373: -1- AC_SUBST_TRACE([WITH_SCHEMATRON])
+m4trace:configure.ac:1373: -1- m4_pattern_allow([^WITH_SCHEMATRON$])
+m4trace:configure.ac:1374: -1- AC_SUBST([TEST_SCHEMATRON])
+m4trace:configure.ac:1374: -1- AC_SUBST_TRACE([TEST_SCHEMATRON])
+m4trace:configure.ac:1374: -1- m4_pattern_allow([^TEST_SCHEMATRON$])
+m4trace:configure.ac:1386: -1- AC_SUBST([WITH_XPATH])
+m4trace:configure.ac:1386: -1- AC_SUBST_TRACE([WITH_XPATH])
+m4trace:configure.ac:1386: -1- m4_pattern_allow([^WITH_XPATH$])
+m4trace:configure.ac:1387: -1- AC_SUBST([XPATH_OBJ])
+m4trace:configure.ac:1387: -1- AC_SUBST_TRACE([XPATH_OBJ])
+m4trace:configure.ac:1387: -1- m4_pattern_allow([^XPATH_OBJ$])
+m4trace:configure.ac:1388: -1- AC_SUBST([TEST_XPATH])
+m4trace:configure.ac:1388: -1- AC_SUBST_TRACE([TEST_XPATH])
+m4trace:configure.ac:1388: -1- m4_pattern_allow([^TEST_XPATH$])
+m4trace:configure.ac:1399: -1- AC_SUBST([WITH_OUTPUT])
+m4trace:configure.ac:1399: -1- AC_SUBST_TRACE([WITH_OUTPUT])
+m4trace:configure.ac:1399: -1- m4_pattern_allow([^WITH_OUTPUT$])
+m4trace:configure.ac:1460: -1- AC_DEFINE_TRACE_LITERAL([ICONV_CONST])
+m4trace:configure.ac:1460: -1- m4_pattern_allow([^ICONV_CONST$])
+m4trace:configure.ac:1460: -1- AH_OUTPUT([ICONV_CONST], [/* Define as const if the declaration of iconv() needs const. */
+@%:@undef ICONV_CONST])
+m4trace:configure.ac:1474: -1- AC_SUBST([WITH_ICONV])
+m4trace:configure.ac:1474: -1- AC_SUBST_TRACE([WITH_ICONV])
+m4trace:configure.ac:1474: -1- m4_pattern_allow([^WITH_ICONV$])
+m4trace:configure.ac:1483: -1- AC_SUBST([ICU_CFLAGS])
+m4trace:configure.ac:1483: -1- AC_SUBST_TRACE([ICU_CFLAGS])
+m4trace:configure.ac:1483: -1- m4_pattern_allow([^ICU_CFLAGS$])
+m4trace:configure.ac:1483: -1- AC_SUBST([ICU_LIBS])
+m4trace:configure.ac:1483: -1- AC_SUBST_TRACE([ICU_LIBS])
+m4trace:configure.ac:1483: -1- m4_pattern_allow([^ICU_LIBS$])
+m4trace:configure.ac:1506: -2- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2698: AC_TRY_LINK is expanded from...
+configure.ac:1506: the top level])
+m4trace:configure.ac:1506: -2- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2698: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
+../../lib/autoconf/general.m4:2672: _AC_LINK_IFELSE is expanded from...
+../../lib/autoconf/general.m4:2689: AC_LINK_IFELSE is expanded from...
+../../lib/autoconf/general.m4:2698: AC_TRY_LINK is expanded from...
+configure.ac:1506: the top level])
+m4trace:configure.ac:1539: -1- AC_SUBST([WITH_ICU])
+m4trace:configure.ac:1539: -1- AC_SUBST_TRACE([WITH_ICU])
+m4trace:configure.ac:1539: -1- m4_pattern_allow([^WITH_ICU$])
+m4trace:configure.ac:1548: -1- AC_SUBST([WITH_ISO8859X])
+m4trace:configure.ac:1548: -1- AC_SUBST_TRACE([WITH_ISO8859X])
+m4trace:configure.ac:1548: -1- m4_pattern_allow([^WITH_ISO8859X$])
+m4trace:configure.ac:1563: -1- AC_SUBST([WITH_SCHEMAS])
+m4trace:configure.ac:1563: -1- AC_SUBST_TRACE([WITH_SCHEMAS])
+m4trace:configure.ac:1563: -1- m4_pattern_allow([^WITH_SCHEMAS$])
+m4trace:configure.ac:1564: -1- AC_SUBST([TEST_SCHEMAS])
+m4trace:configure.ac:1564: -1- AC_SUBST_TRACE([TEST_SCHEMAS])
+m4trace:configure.ac:1564: -1- m4_pattern_allow([^TEST_SCHEMAS$])
+m4trace:configure.ac:1574: -1- AC_SUBST([WITH_REGEXPS])
+m4trace:configure.ac:1574: -1- AC_SUBST_TRACE([WITH_REGEXPS])
+m4trace:configure.ac:1574: -1- m4_pattern_allow([^WITH_REGEXPS$])
+m4trace:configure.ac:1575: -1- AC_SUBST([TEST_REGEXPS])
+m4trace:configure.ac:1575: -1- AC_SUBST_TRACE([TEST_REGEXPS])
+m4trace:configure.ac:1575: -1- m4_pattern_allow([^TEST_REGEXPS$])
+m4trace:configure.ac:1587: -1- AC_SUBST([WITH_DEBUG])
+m4trace:configure.ac:1587: -1- AC_SUBST_TRACE([WITH_DEBUG])
+m4trace:configure.ac:1587: -1- m4_pattern_allow([^WITH_DEBUG$])
+m4trace:configure.ac:1588: -1- AC_SUBST([DEBUG_OBJ])
+m4trace:configure.ac:1588: -1- AC_SUBST_TRACE([DEBUG_OBJ])
+m4trace:configure.ac:1588: -1- m4_pattern_allow([^DEBUG_OBJ$])
+m4trace:configure.ac:1589: -1- AC_SUBST([TEST_DEBUG])
+m4trace:configure.ac:1589: -1- AC_SUBST_TRACE([TEST_DEBUG])
+m4trace:configure.ac:1589: -1- m4_pattern_allow([^TEST_DEBUG$])
+m4trace:configure.ac:1602: -1- AC_SUBST([WITH_MEM_DEBUG])
+m4trace:configure.ac:1602: -1- AC_SUBST_TRACE([WITH_MEM_DEBUG])
+m4trace:configure.ac:1602: -1- m4_pattern_allow([^WITH_MEM_DEBUG$])
+m4trace:configure.ac:1610: -1- AC_SUBST([WITH_RUN_DEBUG])
+m4trace:configure.ac:1610: -1- AC_SUBST_TRACE([WITH_RUN_DEBUG])
+m4trace:configure.ac:1610: -1- m4_pattern_allow([^WITH_RUN_DEBUG$])
+m4trace:configure.ac:1642: -1- AC_SUBST([WIN32_EXTRA_LIBADD])
+m4trace:configure.ac:1642: -1- AC_SUBST_TRACE([WIN32_EXTRA_LIBADD])
+m4trace:configure.ac:1642: -1- m4_pattern_allow([^WIN32_EXTRA_LIBADD$])
+m4trace:configure.ac:1643: -1- AC_SUBST([WIN32_EXTRA_LDFLAGS])
+m4trace:configure.ac:1643: -1- AC_SUBST_TRACE([WIN32_EXTRA_LDFLAGS])
+m4trace:configure.ac:1643: -1- m4_pattern_allow([^WIN32_EXTRA_LDFLAGS$])
+m4trace:configure.ac:1644: -1- AC_SUBST([WIN32_EXTRA_PYTHON_LIBADD])
+m4trace:configure.ac:1644: -1- AC_SUBST_TRACE([WIN32_EXTRA_PYTHON_LIBADD])
+m4trace:configure.ac:1644: -1- m4_pattern_allow([^WIN32_EXTRA_PYTHON_LIBADD$])
+m4trace:configure.ac:1645: -1- AC_SUBST([CYGWIN_EXTRA_LDFLAGS])
+m4trace:configure.ac:1645: -1- AC_SUBST_TRACE([CYGWIN_EXTRA_LDFLAGS])
+m4trace:configure.ac:1645: -1- m4_pattern_allow([^CYGWIN_EXTRA_LDFLAGS$])
+m4trace:configure.ac:1646: -1- AC_SUBST([CYGWIN_EXTRA_PYTHON_LIBADD])
+m4trace:configure.ac:1646: -1- AC_SUBST_TRACE([CYGWIN_EXTRA_PYTHON_LIBADD])
+m4trace:configure.ac:1646: -1- m4_pattern_allow([^CYGWIN_EXTRA_PYTHON_LIBADD$])
+m4trace:configure.ac:1663: -1- AH_OUTPUT([HAVE_PRINTF], [/* Define to 1 if you have the `printf\' function. */
+@%:@undef HAVE_PRINTF])
+m4trace:configure.ac:1663: -1- AH_OUTPUT([HAVE_SPRINTF], [/* Define to 1 if you have the `sprintf\' function. */
+@%:@undef HAVE_SPRINTF])
+m4trace:configure.ac:1663: -1- AH_OUTPUT([HAVE_FPRINTF], [/* Define to 1 if you have the `fprintf\' function. */
+@%:@undef HAVE_FPRINTF])
+m4trace:configure.ac:1663: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */
+@%:@undef HAVE_SNPRINTF])
+m4trace:configure.ac:1663: -1- AH_OUTPUT([HAVE_VFPRINTF], [/* Define to 1 if you have the `vfprintf\' function. */
+@%:@undef HAVE_VFPRINTF])
+m4trace:configure.ac:1663: -1- AH_OUTPUT([HAVE_VSPRINTF], [/* Define to 1 if you have the `vsprintf\' function. */
+@%:@undef HAVE_VSPRINTF])
+m4trace:configure.ac:1663: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define to 1 if you have the `vsnprintf\' function. */
+@%:@undef HAVE_VSNPRINTF])
+m4trace:configure.ac:1663: -1- AH_OUTPUT([HAVE_SSCANF], [/* Define to 1 if you have the `sscanf\' function. */
+@%:@undef HAVE_SSCANF])
+m4trace:configure.ac:1675: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:1675: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:1675: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:1676: -1- AC_SUBST([EXTRA_CFLAGS])
+m4trace:configure.ac:1676: -1- AC_SUBST_TRACE([EXTRA_CFLAGS])
+m4trace:configure.ac:1676: -1- m4_pattern_allow([^EXTRA_CFLAGS$])
+m4trace:configure.ac:1677: -1- AC_SUBST([LDFLAGS])
+m4trace:configure.ac:1677: -1- AC_SUBST_TRACE([LDFLAGS])
+m4trace:configure.ac:1677: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:1678: -1- AC_SUBST([XML_CFLAGS])
+m4trace:configure.ac:1678: -1- AC_SUBST_TRACE([XML_CFLAGS])
+m4trace:configure.ac:1678: -1- m4_pattern_allow([^XML_CFLAGS$])
+m4trace:configure.ac:1680: -1- AC_SUBST([XML_LIBDIR])
+m4trace:configure.ac:1680: -1- AC_SUBST_TRACE([XML_LIBDIR])
+m4trace:configure.ac:1680: -1- m4_pattern_allow([^XML_LIBDIR$])
+m4trace:configure.ac:1681: -1- AC_SUBST([XML_LIBS])
+m4trace:configure.ac:1681: -1- AC_SUBST_TRACE([XML_LIBS])
+m4trace:configure.ac:1681: -1- m4_pattern_allow([^XML_LIBS$])
+m4trace:configure.ac:1682: -1- AC_SUBST([XML_PRIVATE_LIBS])
+m4trace:configure.ac:1682: -1- AC_SUBST_TRACE([XML_PRIVATE_LIBS])
+m4trace:configure.ac:1682: -1- m4_pattern_allow([^XML_PRIVATE_LIBS$])
+m4trace:configure.ac:1683: -1- AC_SUBST([XML_LIBTOOLLIBS])
+m4trace:configure.ac:1683: -1- AC_SUBST_TRACE([XML_LIBTOOLLIBS])
+m4trace:configure.ac:1683: -1- m4_pattern_allow([^XML_LIBTOOLLIBS$])
+m4trace:configure.ac:1684: -1- AC_SUBST([ICONV_LIBS])
+m4trace:configure.ac:1684: -1- AC_SUBST_TRACE([ICONV_LIBS])
+m4trace:configure.ac:1684: -1- m4_pattern_allow([^ICONV_LIBS$])
+m4trace:configure.ac:1685: -1- AC_SUBST([ICU_LIBS])
+m4trace:configure.ac:1685: -1- AC_SUBST_TRACE([ICU_LIBS])
+m4trace:configure.ac:1685: -1- m4_pattern_allow([^ICU_LIBS$])
+m4trace:configure.ac:1686: -1- AC_SUBST([XML_INCLUDEDIR])
+m4trace:configure.ac:1686: -1- AC_SUBST_TRACE([XML_INCLUDEDIR])
+m4trace:configure.ac:1686: -1- m4_pattern_allow([^XML_INCLUDEDIR$])
+m4trace:configure.ac:1687: -1- AC_SUBST([HTML_DIR])
+m4trace:configure.ac:1687: -1- AC_SUBST_TRACE([HTML_DIR])
+m4trace:configure.ac:1687: -1- m4_pattern_allow([^HTML_DIR$])
+m4trace:configure.ac:1688: -1- AC_SUBST([HAVE_ISNAN])
+m4trace:configure.ac:1688: -1- AC_SUBST_TRACE([HAVE_ISNAN])
+m4trace:configure.ac:1688: -1- m4_pattern_allow([^HAVE_ISNAN$])
+m4trace:configure.ac:1689: -1- AC_SUBST([HAVE_ISINF])
+m4trace:configure.ac:1689: -1- AC_SUBST_TRACE([HAVE_ISINF])
+m4trace:configure.ac:1689: -1- m4_pattern_allow([^HAVE_ISINF$])
+m4trace:configure.ac:1690: -1- AC_SUBST([PYTHON])
+m4trace:configure.ac:1690: -1- AC_SUBST_TRACE([PYTHON])
+m4trace:configure.ac:1690: -1- m4_pattern_allow([^PYTHON$])
+m4trace:configure.ac:1691: -1- AC_SUBST([PYTHON_VERSION])
+m4trace:configure.ac:1691: -1- AC_SUBST_TRACE([PYTHON_VERSION])
+m4trace:configure.ac:1691: -1- m4_pattern_allow([^PYTHON_VERSION$])
+m4trace:configure.ac:1692: -1- AC_SUBST([PYTHON_INCLUDES])
+m4trace:configure.ac:1692: -1- AC_SUBST_TRACE([PYTHON_INCLUDES])
+m4trace:configure.ac:1692: -1- m4_pattern_allow([^PYTHON_INCLUDES$])
+m4trace:configure.ac:1693: -1- AC_SUBST([PYTHON_SITE_PACKAGES])
+m4trace:configure.ac:1693: -1- AC_SUBST_TRACE([PYTHON_SITE_PACKAGES])
+m4trace:configure.ac:1693: -1- m4_pattern_allow([^PYTHON_SITE_PACKAGES$])
+m4trace:configure.ac:1695: -1- AC_SUBST([M_LIBS])
+m4trace:configure.ac:1695: -1- AC_SUBST_TRACE([M_LIBS])
+m4trace:configure.ac:1695: -1- m4_pattern_allow([^M_LIBS$])
+m4trace:configure.ac:1696: -1- AC_SUBST([RDL_LIBS])
+m4trace:configure.ac:1696: -1- AC_SUBST_TRACE([RDL_LIBS])
+m4trace:configure.ac:1696: -1- m4_pattern_allow([^RDL_LIBS$])
+m4trace:configure.ac:1700: -1- AC_SUBST([RELDATE])
+m4trace:configure.ac:1700: -1- AC_SUBST_TRACE([RELDATE])
+m4trace:configure.ac:1700: -1- m4_pattern_allow([^RELDATE$])
+m4trace:configure.ac:1701: -1- AC_SUBST([PYTHON_TESTS])
+m4trace:configure.ac:1701: -1- AC_SUBST_TRACE([PYTHON_TESTS])
+m4trace:configure.ac:1701: -1- m4_pattern_allow([^PYTHON_TESTS$])
+m4trace:configure.ac:1707: -1- AC_CONFIG_FILES([libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h libxml-2.0.pc libxml-2.0-uninstalled.pc libxml2-config.cmake])
+m4trace:configure.ac:1708: -1- AC_CONFIG_FILES([python/setup.py], [chmod +x python/setup.py])
+m4trace:configure.ac:1709: -1- AC_CONFIG_FILES([xml2-config], [chmod +x xml2-config])
+m4trace:configure.ac:1710: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.ac:1710: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([LTLIBOBJS])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.ac:1710: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
+m4trace:configure.ac:1710: -1- AC_SUBST([am__EXEEXT_TRUE])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
+m4trace:configure.ac:1710: -1- AC_SUBST([am__EXEEXT_FALSE])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
+m4trace:configure.ac:1710: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
+m4trace:configure.ac:1710: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([top_builddir])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([top_build_prefix])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([srcdir])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([abs_srcdir])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([top_srcdir])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([abs_top_srcdir])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([builddir])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([abs_builddir])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([abs_top_builddir])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([INSTALL])
+m4trace:configure.ac:1710: -1- AC_SUBST_TRACE([MKDIR_P])
+m4trace:configure.ac:1710: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
diff --git a/libxml2-2.9.10/autom4te.cache/traces.2 b/libxml2-2.9.10/autom4te.cache/traces.2
new file mode 100644
index 0000000..5fa4127
--- /dev/null
+++ b/libxml2-2.9.10/autom4te.cache/traces.2
@@ -0,0 +1,3171 @@
+m4trace:/usr/share/aclocal/ltargz.m4:12: -1- AC_DEFUN([LT_FUNC_ARGZ], [
+AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT])
+
+AC_CHECK_TYPES([error_t],
+ [],
+ [AC_DEFINE([error_t], [int],
+ [Define to a type to use for 'error_t' if it is not otherwise available.])
+ AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h
+ does not typedef error_t.])],
+ [#if defined(HAVE_ARGZ_H)
+# include <argz.h>
+#endif])
+
+LT_ARGZ_H=
+AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \
+ argz_next argz_stringify], [], [LT_ARGZ_H=lt__argz.h; AC_LIBOBJ([lt__argz])])
+
+dnl if have system argz functions, allow forced use of
+dnl libltdl-supplied implementation (and default to do so
+dnl on "known bad" systems). Could use a runtime check, but
+dnl (a) detecting malloc issues is notoriously unreliable
+dnl (b) only known system that declares argz functions,
+dnl provides them, yet they are broken, is cygwin
+dnl releases prior to 16-Mar-2007 (1.5.24 and earlier)
+dnl So, it's more straightforward simply to special case
+dnl this for known bad systems.
+AS_IF([test -z "$LT_ARGZ_H"],
+ [AC_CACHE_CHECK(
+ [if argz actually works],
+ [lt_cv_sys_argz_works],
+ [[case $host_os in #(
+ *cygwin*)
+ lt_cv_sys_argz_works=no
+ if test no != "$cross_compiling"; then
+ lt_cv_sys_argz_works="guessing no"
+ else
+ lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
+ save_IFS=$IFS
+ IFS=-.
+ set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
+ IFS=$save_IFS
+ lt_os_major=${2-0}
+ lt_os_minor=${3-0}
+ lt_os_micro=${4-0}
+ if test 1 -lt "$lt_os_major" \
+ || { test 1 -eq "$lt_os_major" \
+ && { test 5 -lt "$lt_os_minor" \
+ || { test 5 -eq "$lt_os_minor" \
+ && test 24 -lt "$lt_os_micro"; }; }; }; then
+ lt_cv_sys_argz_works=yes
+ fi
+ fi
+ ;; #(
+ *) lt_cv_sys_argz_works=yes ;;
+ esac]])
+ AS_IF([test yes = "$lt_cv_sys_argz_works"],
+ [AC_DEFINE([HAVE_WORKING_ARGZ], 1,
+ [This value is set to 1 to indicate that the system argz facility works])],
+ [LT_ARGZ_H=lt__argz.h
+ AC_LIBOBJ([lt__argz])])])
+
+AC_SUBST([LT_ARGZ_H])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT])
+_$0($*)
+])
+m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl
+dnl Although the argument is deprecated and no longer documented,
+dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one
+dnl here make sure it is the same as any other declaration of libltdl's
+dnl location! This also ensures lt_ltdl_dir is set when configure.ac is
+dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
+m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
+_$0()
+])
+m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_CONVENIENCE])
+m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete.
+You should run autoupdate.])dnl
+_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_CONVENIENCE])
+m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl
+dnl Although the argument is deprecated and no longer documented,
+dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one
+dnl here make sure it is the same as any other declaration of libltdl's
+dnl location! This also ensures lt_ltdl_dir is set when configure.ac is
+dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
+m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
+_$0()
+])
+m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_INSTALLABLE])
+m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete.
+You should run autoupdate.])dnl
+_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_INSTALLABLE])
+m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [
+ m4_pattern_allow([^_LT_LIBOBJS$])
+ _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext"
+])
+m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+dnl We need to keep our own list of libobjs separate from our parent project,
+dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while
+dnl we look for our own LIBOBJs.
+m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ]))
+m4_pushdef([AC_LIBSOURCES])
+
+dnl If not otherwise defined, default to the 1.5.x compatible subproject mode:
+m4_if(_LTDL_MODE, [],
+ [m4_define([_LTDL_MODE], m4_default([$2], [subproject]))
+ m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])],
+ [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])
+
+AC_ARG_WITH([included_ltdl],
+ [AS_HELP_STRING([--with-included-ltdl],
+ [use the GNU ltdl sources included here])])
+
+if test yes != "$with_included_ltdl"; then
+ # We are not being forced to use the included libltdl sources, so
+ # decide whether there is a useful installed version we can use.
+ AC_CHECK_HEADER([ltdl.h],
+ [AC_CHECK_DECL([lt_dlinterface_register],
+ [AC_CHECK_LIB([ltdl], [lt_dladvise_preload],
+ [with_included_ltdl=no],
+ [with_included_ltdl=yes])],
+ [with_included_ltdl=yes],
+ [AC_INCLUDES_DEFAULT
+ #include <ltdl.h>])],
+ [with_included_ltdl=yes],
+ [AC_INCLUDES_DEFAULT]
+ )
+fi
+
+dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE
+dnl was called yet, then for old times' sake, we assume libltdl is in an
+dnl eponymous directory:
+AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])])
+
+AC_ARG_WITH([ltdl_include],
+ [AS_HELP_STRING([--with-ltdl-include=DIR],
+ [use the ltdl headers installed in DIR])])
+
+if test -n "$with_ltdl_include"; then
+ if test -f "$with_ltdl_include/ltdl.h"; then :
+ else
+ AC_MSG_ERROR([invalid ltdl include directory: '$with_ltdl_include'])
+ fi
+else
+ with_ltdl_include=no
+fi
+
+AC_ARG_WITH([ltdl_lib],
+ [AS_HELP_STRING([--with-ltdl-lib=DIR],
+ [use the libltdl.la installed in DIR])])
+
+if test -n "$with_ltdl_lib"; then
+ if test -f "$with_ltdl_lib/libltdl.la"; then :
+ else
+ AC_MSG_ERROR([invalid ltdl library directory: '$with_ltdl_lib'])
+ fi
+else
+ with_ltdl_lib=no
+fi
+
+case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in
+ ,yes,no,no,)
+ m4_case(m4_default(_LTDL_TYPE, [convenience]),
+ [convenience], [_LTDL_CONVENIENCE],
+ [installable], [_LTDL_INSTALLABLE],
+ [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)])
+ ;;
+ ,no,no,no,)
+ # If the included ltdl is not to be used, then use the
+ # preinstalled libltdl we found.
+ AC_DEFINE([HAVE_LTDL], [1],
+ [Define this if a modern libltdl is already installed])
+ LIBLTDL=-lltdl
+ LTDLDEPS=
+ LTDLINCL=
+ ;;
+ ,no*,no,*)
+ AC_MSG_ERROR(['--with-ltdl-include' and '--with-ltdl-lib' options must be used together])
+ ;;
+ *) with_included_ltdl=no
+ LIBLTDL="-L$with_ltdl_lib -lltdl"
+ LTDLDEPS=
+ LTDLINCL=-I$with_ltdl_include
+ ;;
+esac
+INCLTDL=$LTDLINCL
+
+# Report our decision...
+AC_MSG_CHECKING([where to find libltdl headers])
+AC_MSG_RESULT([$LTDLINCL])
+AC_MSG_CHECKING([where to find libltdl library])
+AC_MSG_RESULT([$LIBLTDL])
+
+_LTDL_SETUP
+
+dnl restore autoconf definition.
+m4_popdef([AC_LIBOBJ])
+m4_popdef([AC_LIBSOURCES])
+
+AC_CONFIG_COMMANDS_PRE([
+ _ltdl_libobjs=
+ _ltdl_ltlibobjs=
+ if test -n "$_LT_LIBOBJS"; then
+ # Remove the extension.
+ _lt_sed_drop_objext='s/\.o$//;s/\.obj$//'
+ for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do
+ _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext"
+ _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo"
+ done
+ fi
+ AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs])
+ AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs])
+])
+
+# Only expand once:
+m4_define([LTDL_INIT])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_SYS_MODULE_EXT])dnl
+AC_REQUIRE([LT_SYS_MODULE_PATH])dnl
+AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl
+AC_REQUIRE([LT_LIB_DLLOAD])dnl
+AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl
+AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl
+AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl
+AC_REQUIRE([LT_FUNC_ARGZ])dnl
+
+m4_require([_LT_CHECK_OBJDIR])dnl
+m4_require([_LT_HEADER_DLFCN])dnl
+m4_require([_LT_CHECK_DLPREOPEN])dnl
+m4_require([_LT_DECL_SED])dnl
+
+dnl Don't require this, or it will be expanded earlier than the code
+dnl that sets the variables it relies on:
+_LT_ENABLE_INSTALL
+
+dnl _LTDL_MODE specific code must be called at least once:
+_LTDL_MODE_DISPATCH
+
+# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS
+# the user used. This is so that ltdl.h can pick up the parent projects
+# config.h file, The first file in AC_CONFIG_HEADERS must contain the
+# definitions required by ltdl.c.
+# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility).
+AC_CONFIG_COMMANDS_PRE([dnl
+m4_pattern_allow([^LT_CONFIG_H$])dnl
+m4_ifset([AH_HEADER],
+ [LT_CONFIG_H=AH_HEADER],
+ [m4_ifset([AC_LIST_HEADERS],
+ [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's|^[[ ]]*||;s|[[ :]].*$||'`],
+ [])])])
+AC_SUBST([LT_CONFIG_H])
+
+AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h],
+ [], [], [AC_INCLUDES_DEFAULT])
+
+AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])])
+AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])])
+
+m4_pattern_allow([LT_LIBEXT])dnl
+AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension])
+
+name=
+eval "lt_libprefix=\"$libname_spec\""
+m4_pattern_allow([LT_LIBPREFIX])dnl
+AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix])
+
+name=ltdl
+eval "LTDLOPEN=\"$libname_spec\""
+AC_SUBST([LTDLOPEN])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:443: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_CACHE_CHECK([whether deplibs are loaded by dlopen],
+ [lt_cv_sys_dlopen_deplibs],
+ [# PORTME does your system automatically load deplibs for dlopen?
+ # or its logical equivalent (e.g. shl_load for HP-UX < 11)
+ # For now, we just catch OSes we know something about -- in the
+ # future, we'll try test this programmatically.
+ lt_cv_sys_dlopen_deplibs=unknown
+ case $host_os in
+ aix3*|aix4.1.*|aix4.2.*)
+ # Unknown whether this is true for these versions of AIX, but
+ # we want this 'case' here to explicitly catch those versions.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ aix[[4-9]]*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ lt_cv_sys_dlopen_deplibs=no
+ ;;
+ esac
+ ;;
+ bitrig*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ darwin*)
+ # Assuming the user has installed a libdl from somewhere, this is true
+ # If you are looking for one http://www.opendarwin.org/projects/dlcompat
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ freebsd* | dragonfly*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ # GNU and its variants, using gnu ld.so (Glibc)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ hpux10*|hpux11*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ interix*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ irix[[12345]]*|irix6.[[01]]*)
+ # Catch all versions of IRIX before 6.2, and indicate that we don't
+ # know how it worked for any of those versions.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ irix*)
+ # The case above catches anything before 6.2, and it's known that
+ # at 6.2 and later dlopen does load deplibs.
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ netbsd* | netbsdelf*-gnu)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ openbsd*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ osf[[1234]]*)
+ # dlopen did load deplibs (at least at 4.x), but until the 5.x series,
+ # it did *not* use an RPATH in a shared library to find objects the
+ # library depends on, so we explicitly say 'no'.
+ lt_cv_sys_dlopen_deplibs=no
+ ;;
+ osf5.0|osf5.0a|osf5.1)
+ # dlopen *does* load deplibs and with the right loader patch applied
+ # it even uses RPATH in a shared library to search for shared objects
+ # that the library depends on, but there's no easy way to know if that
+ # patch is installed. Since this is the case, all we can really
+ # say is unknown -- it depends on the patch being installed. If
+ # it is, this changes to 'yes'. Without it, it would be 'no'.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ osf*)
+ # the two cases above should catch all versions of osf <= 5.1. Read
+ # the comments above for what we know about them.
+ # At > 5.1, deplibs are loaded *and* any RPATH in a shared library
+ # is used to find them so we can finally say 'yes'.
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ qnx*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ solaris*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ libltdl_cv_sys_dlopen_deplibs=yes
+ ;;
+ esac
+ ])
+if test yes != "$lt_cv_sys_dlopen_deplibs"; then
+ AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1],
+ [Define if the OS needs help to load dependent libraries for dlopen().])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:545: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:545: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:552: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([what extension is used for runtime loadable modules],
+ [libltdl_cv_shlibext],
+[
+module=yes
+eval libltdl_cv_shlibext=$shrext_cmds
+module=no
+eval libltdl_cv_shrext=$shrext_cmds
+ ])
+if test -n "$libltdl_cv_shlibext"; then
+ m4_pattern_allow([LT_MODULE_EXT])dnl
+ AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"],
+ [Define to the extension used for runtime loadable modules, say, ".so".])
+fi
+if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then
+ m4_pattern_allow([LT_SHARED_EXT])dnl
+ AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"],
+ [Define to the shared library suffix, say, ".dylib".])
+fi
+if test -n "$shared_archive_member_spec"; then
+ m4_pattern_allow([LT_SHARED_LIB_MEMBER])dnl
+ AC_DEFINE_UNQUOTED([LT_SHARED_LIB_MEMBER], ["($shared_archive_member_spec.o)"],
+ [Define to the shared archive member specification, say "(shr.o)".])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:580: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:580: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:587: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([what variable specifies run-time module search path],
+ [lt_cv_module_path_var], [lt_cv_module_path_var=$shlibpath_var])
+if test -n "$lt_cv_module_path_var"; then
+ m4_pattern_allow([LT_MODULE_PATH_VAR])dnl
+ AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"],
+ [Define to the name of the environment variable that determines the run-time module search path.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:599: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:599: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:606: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([for the default library search path],
+ [lt_cv_sys_dlsearch_path],
+ [lt_cv_sys_dlsearch_path=$sys_lib_dlsearch_path_spec])
+if test -n "$lt_cv_sys_dlsearch_path"; then
+ sys_dlsearch_path=
+ for dir in $lt_cv_sys_dlsearch_path; do
+ if test -z "$sys_dlsearch_path"; then
+ sys_dlsearch_path=$dir
+ else
+ sys_dlsearch_path=$sys_dlsearch_path$PATH_SEPARATOR$dir
+ fi
+ done
+ m4_pattern_allow([LT_DLSEARCH_PATH])dnl
+ AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"],
+ [Define to the system default library search path.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:627: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:627: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:653: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$])
+LT_DLLOADERS=
+AC_SUBST([LT_DLLOADERS])
+
+AC_LANG_PUSH([C])
+lt_dlload_save_LIBS=$LIBS
+
+LIBADD_DLOPEN=
+AC_SEARCH_LIBS([dlopen], [dl],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ if test "$ac_cv_search_dlopen" != "none required"; then
+ LIBADD_DLOPEN=-ldl
+ fi
+ libltdl_cv_lib_dl_dlopen=yes
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H
+# include <dlfcn.h>
+#endif
+ ]], [[dlopen(0, 0);]])],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ libltdl_cv_func_dlopen=yes
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ LIBADD_DLOPEN=-lsvld libltdl_cv_func_dlopen=yes
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])])
+if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"
+then
+ lt_save_LIBS=$LIBS
+ LIBS="$LIBS $LIBADD_DLOPEN"
+ AC_CHECK_FUNCS([dlerror])
+ LIBS=$lt_save_LIBS
+fi
+AC_SUBST([LIBADD_DLOPEN])
+
+LIBADD_SHL_LOAD=
+AC_CHECK_FUNC([shl_load],
+ [AC_DEFINE([HAVE_SHL_LOAD], [1],
+ [Define if you have the shl_load function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [AC_DEFINE([HAVE_SHL_LOAD], [1],
+ [Define if you have the shl_load function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"
+ LIBADD_SHL_LOAD=-ldld])])
+AC_SUBST([LIBADD_SHL_LOAD])
+
+case $host_os in
+darwin[[1567]].*)
+# We only want this for pre-Mac OS X 10.4.
+ AC_CHECK_FUNC([_dyld_func_lookup],
+ [AC_DEFINE([HAVE_DYLD], [1],
+ [Define if you have the _dyld_func_lookup function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"])
+ ;;
+beos*)
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la"
+ ;;
+cygwin* | mingw* | pw32*)
+ AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include <sys/cygwin.h>]])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la"
+ ;;
+esac
+
+AC_CHECK_LIB([dld], [dld_link],
+ [AC_DEFINE([HAVE_DLD], [1],
+ [Define if you have the GNU dld library.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"])
+AC_SUBST([LIBADD_DLD_LINK])
+
+m4_pattern_allow([^LT_DLPREOPEN$])
+LT_DLPREOPEN=
+if test -n "$LT_DLLOADERS"
+then
+ for lt_loader in $LT_DLLOADERS; do
+ LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader "
+ done
+ AC_DEFINE([HAVE_LIBDLLOADER], [1],
+ [Define if libdlloader will be built on this platform])
+fi
+AC_SUBST([LT_DLPREOPEN])
+
+dnl This isn't used anymore, but set it for backwards compatibility
+LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD"
+AC_SUBST([LIBADD_DL])
+
+LIBS=$lt_dlload_save_LIBS
+AC_LANG_POP
+])
+m4trace:/usr/share/aclocal/ltdl.m4:748: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:748: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:756: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+AC_CACHE_CHECK([for _ prefix in compiled symbols],
+ [lt_cv_sys_symbol_underscore],
+ [lt_cv_sys_symbol_underscore=no
+ cat > conftest.$ac_ext <<_LT_EOF
+void nm_test_func(){}
+int main(){nm_test_func;return 0;}
+_LT_EOF
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ ac_nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
+ # See whether the symbols have a leading underscore.
+ if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
+ lt_cv_sys_symbol_underscore=yes
+ else
+ if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
+ :
+ else
+ echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ fi
+ else
+ echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.c >&AS_MESSAGE_LOG_FD
+ fi
+ rm -rf conftest*
+ ])
+ sys_symbol_underscore=$lt_cv_sys_symbol_underscore
+ AC_SUBST([sys_symbol_underscore])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:793: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:793: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:800: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([_LT_COMPILER_PIC])dnl for lt_prog_compiler_wl
+AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl for lt_cv_sys_symbol_underscore
+AC_REQUIRE([LT_SYS_MODULE_EXT])dnl for libltdl_cv_shlibext
+if test yes = "$lt_cv_sys_symbol_underscore"; then
+ if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"; then
+ AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
+ [libltdl_cv_need_uscore],
+ [libltdl_cv_need_uscore=unknown
+ dlsym_uscore_save_LIBS=$LIBS
+ LIBS="$LIBS $LIBADD_DLOPEN"
+ libname=conftmod # stay within 8.3 filename limits!
+ cat >$libname.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+int fnord () { return 42; }]
+_LT_EOF
+
+ # ltfn_module_cmds module_cmds
+ # Execute tilde-delimited MODULE_CMDS with environment primed for
+ # $module_cmds or $archive_cmds type content.
+ ltfn_module_cmds ()
+ {( # subshell avoids polluting parent global environment
+ module_cmds_save_ifs=$IFS; IFS='~'
+ for cmd in @S|@1; do
+ IFS=$module_cmds_save_ifs
+ libobjs=$libname.$ac_objext; lib=$libname$libltdl_cv_shlibext
+ rpath=/not-exists; soname=$libname$libltdl_cv_shlibext; output_objdir=.
+ major=; versuffix=; verstring=; deplibs=
+ ECHO=echo; wl=$lt_prog_compiler_wl; allow_undefined_flag=
+ eval $cmd
+ done
+ IFS=$module_cmds_save_ifs
+ )}
+
+ # Compile a loadable module using libtool macro expansion results.
+ $CC $pic_flag -c $libname.$ac_ext
+ ltfn_module_cmds "${module_cmds:-$archive_cmds}"
+
+ # Try to fetch fnord with dlsym().
+ libltdl_dlunknown=0; libltdl_dlnouscore=1; libltdl_dluscore=2
+ cat >conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+#include <stdio.h>
+#ifndef RTLD_GLOBAL
+# ifdef DL_GLOBAL
+# define RTLD_GLOBAL DL_GLOBAL
+# else
+# define RTLD_GLOBAL 0
+# endif
+#endif
+#ifndef RTLD_NOW
+# ifdef DL_NOW
+# define RTLD_NOW DL_NOW
+# else
+# define RTLD_NOW 0
+# endif
+#endif
+int main () {
+ void *handle = dlopen ("`pwd`/$libname$libltdl_cv_shlibext", RTLD_GLOBAL|RTLD_NOW);
+ int status = $libltdl_dlunknown;
+ if (handle) {
+ if (dlsym (handle, "fnord"))
+ status = $libltdl_dlnouscore;
+ else {
+ if (dlsym (handle, "_fnord"))
+ status = $libltdl_dluscore;
+ else
+ puts (dlerror ());
+ }
+ dlclose (handle);
+ } else
+ puts (dlerror ());
+ return status;
+}]
+_LT_EOF
+ if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+ libltdl_status=$?
+ case x$libltdl_status in
+ x$libltdl_dlnouscore) libltdl_cv_need_uscore=no ;;
+ x$libltdl_dluscore) libltdl_cv_need_uscore=yes ;;
+ x*) libltdl_cv_need_uscore=unknown ;;
+ esac
+ fi
+ rm -rf conftest* $libname*
+ LIBS=$dlsym_uscore_save_LIBS
+ ])
+ fi
+fi
+
+if test yes = "$libltdl_cv_need_uscore"; then
+ AC_DEFINE([NEED_USCORE], [1],
+ [Define if dlsym() requires a leading underscore in symbol names.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:907: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:907: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])])
+m4trace:/usr/share/aclocal/pkg.m4:58: -1- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+fi[]dnl
+])
+m4trace:/usr/share/aclocal/pkg.m4:92: -1- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_default([$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+m4trace:/usr/share/aclocal/pkg.m4:121: -1- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])
+m4trace:/usr/share/aclocal/pkg.m4:139: -1- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+ ])
+elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+ ])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ $3
+fi[]dnl
+])
+m4trace:/usr/share/aclocal/pkg.m4:208: -1- AC_DEFUN([PKG_CHECK_MODULES_STATIC], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])
+m4trace:/usr/share/aclocal/pkg.m4:226: -1- AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+ [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])
+m4trace:/usr/share/aclocal/pkg.m4:248: -1- AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+ [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])
+m4trace:/usr/share/aclocal/pkg.m4:267: -1- AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])
+m4trace:/usr/share/aclocal-1.16/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.16'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.16.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+m4trace:/usr/share/aclocal-1.16/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.16.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+m4trace:/usr/share/aclocal-1.16/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+m4trace:/usr/share/aclocal-1.16/cond.m4:12: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+m4trace:/usr/share/aclocal-1.16/depend.m4:26: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],
+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],
+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+m4trace:/usr/share/aclocal-1.16/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+m4trace:/usr/share/aclocal-1.16/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+ [--enable-dependency-tracking],
+ [do not reject slow dependency extractors])
+AS_HELP_STRING(
+ [--disable-dependency-tracking],
+ [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+m4trace:/usr/share/aclocal-1.16/depout.m4:11: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ AS_CASE([$CONFIG_FILES],
+ [*\'*], [eval set x "$CONFIG_FILES"],
+ [*], [set x $CONFIG_FILES])
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`AS_DIRNAME(["$am_mf"])`
+ am_filepart=`AS_BASENAME(["$am_mf"])`
+ AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles]) || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. Try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).])
+ fi
+ AS_UNSET([am_dirpart])
+ AS_UNSET([am_filepart])
+ AS_UNSET([am_mf])
+ AS_UNSET([am_rc])
+ rm -f conftest-deps.mk
+}
+])
+m4trace:/usr/share/aclocal-1.16/depout.m4:62: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
+m4trace:/usr/share/aclocal-1.16/init.m4:29: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+ [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+m4trace:/usr/share/aclocal-1.16/init.m4:186: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+m4trace:/usr/share/aclocal-1.16/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST([install_sh])])
+m4trace:/usr/share/aclocal-1.16/lead-dot.m4:10: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+m4trace:/usr/share/aclocal-1.16/maintainer.m4:16: -1- AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+ [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+ am_maintainer_other[ make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer])],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+
+])
+m4trace:/usr/share/aclocal-1.16/make.m4:13: -1- AC_DEFUN([AM_MAKE_INCLUDE], [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+ ['0:this is the am__doit target'],
+ [AS_CASE([$s],
+ [BSD], [am__include='.include' am__quote='"'],
+ [am__include='include' am__quote=''])])
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+m4trace:/usr/share/aclocal-1.16/make.m4:42: -1- m4_pattern_allow([^am__quote$])
+m4trace:/usr/share/aclocal-1.16/missing.m4:11: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+m4trace:/usr/share/aclocal-1.16/missing.m4:20: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+m4trace:/usr/share/aclocal-1.16/options.m4:11: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+m4trace:/usr/share/aclocal-1.16/options.m4:17: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+m4trace:/usr/share/aclocal-1.16/options.m4:23: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+m4trace:/usr/share/aclocal-1.16/options.m4:29: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+m4trace:/usr/share/aclocal-1.16/prog-cc-c-o.m4:12: -1- AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+m4trace:/usr/share/aclocal-1.16/prog-cc-c-o.m4:47: -1- AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+m4trace:/usr/share/aclocal-1.16/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+m4trace:/usr/share/aclocal-1.16/sanity.m4:11: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+ alias in your environment])
+ fi
+ if test "$[2]" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+ [AC_MSG_CHECKING([that generated files are newer than configure])
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+m4trace:/usr/share/aclocal-1.16/silent.m4:12: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+ [--enable-silent-rules],
+ [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+ [--disable-silent-rules],
+ [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+ [am_cv_make_support_nested_variables],
+ [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+ dnl Using '$V' instead of '$(V)' breaks IRIX make.
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+m4trace:/usr/share/aclocal-1.16/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+m4trace:/usr/share/aclocal-1.16/substnot.m4:12: -1- AC_DEFUN([_AM_SUBST_NOTMAKE])
+m4trace:/usr/share/aclocal-1.16/substnot.m4:17: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+m4trace:/usr/share/aclocal-1.16/tar.m4:23: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [m4_case([$1],
+ [ustar],
+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+ # There is notably a 21 bits limit for the UID and the GID. In fact,
+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+ # and bug#13588).
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to resort
+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
+ # below are definitely unexpected, so allow the users to see them
+ # (that is, avoid stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+ if test $am_uid -le $am_max_uid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi
+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+ if test $am_gid -le $am_max_gid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
+ rm -rf conftest.dir
+
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+])
+m4trace:m4/libtool.m4:61: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])
+m4trace:m4/libtool.m4:99: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:99: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:100: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:100: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:619: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+ echo
+ AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+'$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test 0 != $[#]
+do
+ case $[1] in
+ --version | --v* | -V )
+ echo "$lt_cl_version"; exit 0 ;;
+ --help | --h* | -h )
+ echo "$lt_cl_help"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --quiet | --q* | --silent | --s* | -q )
+ lt_cl_silent=: ;;
+
+ -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try '$[0] --help' for more information.]) ;;
+
+ *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try '$[0] --help' for more information.]) ;;
+ esac
+ shift
+done
+
+if $lt_cl_silent; then
+ exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure. Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test yes = "$silent" &&
+ lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])
+m4trace:m4/libtool.m4:812: -1- AC_DEFUN([LT_SUPPORTED_TAG], [])
+m4trace:m4/libtool.m4:823: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+ [C], [_LT_LANG(C)],
+ [C++], [_LT_LANG(CXX)],
+ [Go], [_LT_LANG(GO)],
+ [Java], [_LT_LANG(GCJ)],
+ [Fortran 77], [_LT_LANG(F77)],
+ [Fortran], [_LT_LANG(FC)],
+ [Windows Resource], [_LT_LANG(RC)],
+ [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+ [_LT_LANG($1)],
+ [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])
+m4trace:m4/libtool.m4:915: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+m4trace:m4/libtool.m4:915: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(C++)])
+m4trace:m4/libtool.m4:916: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+m4trace:m4/libtool.m4:916: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Fortran 77)])
+m4trace:m4/libtool.m4:917: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+m4trace:m4/libtool.m4:917: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Fortran)])
+m4trace:m4/libtool.m4:918: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+m4trace:m4/libtool.m4:918: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Java)])
+m4trace:m4/libtool.m4:919: -1- AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+m4trace:m4/libtool.m4:919: -1- AC_DEFUN([AC_LIBTOOL_RC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_RC' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Windows Resource)])
+m4trace:m4/libtool.m4:1247: -1- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
+ [Search for dependent libraries within DIR (or the compiler's sysroot
+ if not specified).])],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted. We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ AC_MSG_RESULT([$with_sysroot])
+ AC_MSG_ERROR([The sysroot must be an absolute path.])
+ ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and where our libraries should be installed.])])
+m4trace:m4/libtool.m4:1578: -1- AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ fi
+ $RM conftest*
+])
+
+if test yes = "[$]$2"; then
+ m4_if([$5], , :, [$5])
+else
+ m4_if([$6], , :, [$6])
+fi
+])
+m4trace:m4/libtool.m4:1620: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])])
+m4trace:m4/libtool.m4:1620: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])])
+m4trace:m4/libtool.m4:1629: -1- AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $3"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ else
+ $2=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+])
+
+if test yes = "[$]$2"; then
+ m4_if([$4], , :, [$4])
+else
+ m4_if([$5], , :, [$5])
+fi
+])
+m4trace:m4/libtool.m4:1664: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])])
+m4trace:m4/libtool.m4:1664: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])])
+m4trace:m4/libtool.m4:1671: -1- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+])
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+ AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+ [What is the maximum length of a command?])
+])
+m4trace:m4/libtool.m4:1810: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])])
+m4trace:m4/libtool.m4:1810: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])])
+m4trace:m4/libtool.m4:1921: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl
+if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen=shl_load],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen=dlopen],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+ [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+ [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+ [Whether dlopen of statically linked programs is supported])
+])
+m4trace:m4/libtool.m4:2046: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])])
+m4trace:m4/libtool.m4:2046: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])])
+m4trace:m4/libtool.m4:3158: -1- AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="m4_if([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$1"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac])
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+ [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])
+m4trace:m4/libtool.m4:3220: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])])
+m4trace:m4/libtool.m4:3220: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])])
+m4trace:m4/libtool.m4:3243: -1- AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+ [AS_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test no = "$withval" || with_gnu_ld=yes],
+ [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi])
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])
+m4trace:m4/libtool.m4:3332: -1- AU_DEFUN([AM_PROG_LD], [m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:3332: -1- AC_DEFUN([AM_PROG_LD], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LD' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:3333: -1- AU_DEFUN([AC_PROG_LD], [m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:3333: -1- AC_DEFUN([AC_PROG_LD], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LD' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:3662: -1- AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi])
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+ AC_SUBST([DUMPBIN])
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+ [lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+ cat conftest.out >&AS_MESSAGE_LOG_FD
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*])
+])
+m4trace:m4/libtool.m4:3757: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3757: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3758: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3758: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3829: -1- AC_DEFUN([_LT_DLL_DEF_P], [dnl
+ test DEF = "`$SED -n dnl
+ -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace
+ -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments
+ -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl
+ -e q dnl Only consider the first "real" line
+ $1`" dnl
+])
+m4trace:m4/libtool.m4:3843: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM=-lm)
+ ;;
+esac
+AC_SUBST([LIBM])
+])
+m4trace:m4/libtool.m4:3862: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])])
+m4trace:m4/libtool.m4:3862: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])])
+m4trace:m4/libtool.m4:8125: -1- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+ [AC_CHECK_TOOL(GCJ, gcj,)
+ test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)])])[]dnl
+])
+m4trace:m4/libtool.m4:8134: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])])
+m4trace:m4/libtool.m4:8134: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])])
+m4trace:m4/libtool.m4:8141: -1- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,)
+])
+m4trace:m4/libtool.m4:8148: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,)
+])
+m4trace:m4/libtool.m4:8153: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])])
+m4trace:m4/libtool.m4:8153: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])])
+m4trace:m4/libtool.m4:8273: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])])
+m4trace:m4/libtool.m4:8273: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])])
+m4trace:m4/ltoptions.m4:14: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+m4trace:m4/ltoptions.m4:113: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'dlopen' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:113: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'dlopen' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:148: -1- AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'win32-dll' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:148: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete.
+You should run autoupdate.])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'win32-dll' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:197: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+m4trace:m4/ltoptions.m4:201: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+m4trace:m4/ltoptions.m4:205: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:205: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete.
+You should run autoupdate.])dnl
+AC_ENABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:206: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:206: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete.
+You should run autoupdate.])dnl
+AC_DISABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:251: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+m4trace:m4/ltoptions.m4:255: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+m4trace:m4/ltoptions.m4:259: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:259: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete.
+You should run autoupdate.])dnl
+AC_ENABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:260: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:260: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete.
+You should run autoupdate.])dnl
+AC_DISABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:305: -1- AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:305: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:312: -1- AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'disable-fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:312: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'disable-fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:411: -1- AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'pic-only' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:411: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'pic-only' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltsugar.m4:14: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+m4trace:m4/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6'
+macro_revision='2.4.6'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
+m4trace:m4/lt~obsolete.m4:37: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+m4trace:m4/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])
+m4trace:m4/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SHELL_INIT])
+m4trace:m4/lt~obsolete.m4:43: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])
+m4trace:m4/lt~obsolete.m4:45: -1- AC_DEFUN([_LT_AC_TAGVAR])
+m4trace:m4/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL])
+m4trace:m4/lt~obsolete.m4:47: -1- AC_DEFUN([AC_LTDL_PREOPEN])
+m4trace:m4/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_SYS_COMPILER])
+m4trace:m4/lt~obsolete.m4:49: -1- AC_DEFUN([_LT_AC_LOCK])
+m4trace:m4/lt~obsolete.m4:50: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])
+m4trace:m4/lt~obsolete.m4:51: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])
+m4trace:m4/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])
+m4trace:m4/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])
+m4trace:m4/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR])
+m4trace:m4/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LTDL_OBJDIR])
+m4trace:m4/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])
+m4trace:m4/lt~obsolete.m4:57: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])
+m4trace:m4/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PATH_MAGIC])
+m4trace:m4/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_GNU])
+m4trace:m4/lt~obsolete.m4:60: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])
+m4trace:m4/lt~obsolete.m4:61: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])
+m4trace:m4/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])
+m4trace:m4/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
+m4trace:m4/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])
+m4trace:m4/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])
+m4trace:m4/lt~obsolete.m4:66: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])
+m4trace:m4/lt~obsolete.m4:67: -1- AC_DEFUN([LT_AC_PROG_EGREP])
+m4trace:m4/lt~obsolete.m4:72: -1- AC_DEFUN([_AC_PROG_LIBTOOL])
+m4trace:m4/lt~obsolete.m4:73: -1- AC_DEFUN([AC_LIBTOOL_SETUP])
+m4trace:m4/lt~obsolete.m4:74: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN])
+m4trace:m4/lt~obsolete.m4:75: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
+m4trace:m4/lt~obsolete.m4:76: -1- AC_DEFUN([_LT_AC_TAGCONFIG])
+m4trace:m4/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_CXX])
+m4trace:m4/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_F77])
+m4trace:m4/lt~obsolete.m4:80: -1- AC_DEFUN([_LT_AC_LANG_GCJ])
+m4trace:m4/lt~obsolete.m4:81: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])
+m4trace:m4/lt~obsolete.m4:82: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG])
+m4trace:m4/lt~obsolete.m4:83: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])
+m4trace:m4/lt~obsolete.m4:84: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])
+m4trace:m4/lt~obsolete.m4:85: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])
+m4trace:m4/lt~obsolete.m4:86: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG])
+m4trace:m4/lt~obsolete.m4:87: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])
+m4trace:m4/lt~obsolete.m4:88: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])
+m4trace:m4/lt~obsolete.m4:89: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])
+m4trace:m4/lt~obsolete.m4:90: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG])
+m4trace:m4/lt~obsolete.m4:91: -1- AC_DEFUN([AC_LIBTOOL_CONFIG])
+m4trace:m4/lt~obsolete.m4:92: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C])
+m4trace:m4/lt~obsolete.m4:94: -1- AC_DEFUN([_LT_AC_PROG_CXXCPP])
+m4trace:m4/lt~obsolete.m4:97: -1- AC_DEFUN([_LT_PROG_F77])
+m4trace:m4/lt~obsolete.m4:98: -1- AC_DEFUN([_LT_PROG_FC])
+m4trace:m4/lt~obsolete.m4:99: -1- AC_DEFUN([_LT_PROG_CXX])
+m4trace:acinclude.m4:4: -1- AC_DEFUN([AC_TRY_EVAL2], [{ (eval echo configure:__oline__: \"[$]$1\") 1>&AS_MESSAGE_LOG_FD; dnl
+(eval [$]$1) 2>&AS_MESSAGE_LOG_FD; _out=`eval [$]$1 2>&1` && test "x$_out" = x; }])
+m4trace:acinclude.m4:9: -1- AC_DEFUN([AC_TRY_COMPILE2], [cat > conftest.$ac_ext <<EOF
+[#]line __oline__ "configure"
+#include "confdefs.h"
+[$1]
+int main(void) {
+[$2]
+; return 0; }
+EOF
+if AC_TRY_EVAL2(ac_compile); then
+ ifelse([$3], , :, [rm -rf conftest*
+ $3])
+else
+ echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
+ifelse([$4], , , [ rm -rf conftest*
+ $4
+])dnl
+fi
+rm -f conftest*])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?A[CHUM]_])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([_AC_])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^AS_FLAGS$])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?m4_])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^dnl$])
+m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?AS_])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^SHELL$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PATH_SEPARATOR$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^exec_prefix$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^prefix$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^program_transform_name$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^bindir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^sbindir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^libexecdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^datadir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^sysconfdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^sharedstatedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^localstatedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^runstatedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^includedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^oldincludedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^infodir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^libdir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^mandir$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^DEFS$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_C$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_N$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_T$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^build_alias$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^host_alias$])
+m4trace:configure.ac:3: -1- m4_pattern_allow([^target_alias$])
+m4trace:configure.ac:6: -1- AM_MAINTAINER_MODE([enable])
+m4trace:configure.ac:6: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+m4trace:configure.ac:6: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$])
+m4trace:configure.ac:6: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$])
+m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE])
+m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE])
+m4trace:configure.ac:6: -1- m4_pattern_allow([^MAINT$])
+m4trace:configure.ac:7: -1- AC_CONFIG_MACRO_DIR([m4])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build_cpu$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build_vendor$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^build_os$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host_cpu$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host_vendor$])
+m4trace:configure.ac:8: -1- m4_pattern_allow([^host_os$])
+m4trace:configure.ac:43: -1- m4_pattern_allow([^LIBXML_MAJOR_VERSION$])
+m4trace:configure.ac:44: -1- m4_pattern_allow([^LIBXML_MINOR_VERSION$])
+m4trace:configure.ac:45: -1- m4_pattern_allow([^LIBXML_MICRO_VERSION$])
+m4trace:configure.ac:46: -1- m4_pattern_allow([^LIBXML_VERSION$])
+m4trace:configure.ac:47: -1- m4_pattern_allow([^LIBXML_VERSION_INFO$])
+m4trace:configure.ac:48: -1- m4_pattern_allow([^LIBXML_VERSION_NUMBER$])
+m4trace:configure.ac:49: -1- m4_pattern_allow([^LIBXML_VERSION_EXTRA$])
+m4trace:configure.ac:53: -1- AM_INIT_AUTOMAKE([libxml2], [$VERSION])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
+m4trace:configure.ac:53: -1- AM_SET_CURRENT_AUTOMAKE_VERSION
+m4trace:configure.ac:53: -1- AM_AUTOMAKE_VERSION([1.16.1])
+m4trace:configure.ac:53: -1- _AM_AUTOCONF_VERSION([2.69])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__isrc$])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([am__isrc])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^CYGPATH_W$])
+m4trace:configure.ac:53: -1- _m4_warn([obsolete], [AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.], [/usr/share/aclocal-1.16/init.m4:29: AM_INIT_AUTOMAKE is expanded from...
+configure.ac:53: the top level])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:53: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])
+m4trace:configure.ac:53: -2- _AM_MANGLE_OPTION([no-define])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:53: -1- AM_SANITY_CHECK
+m4trace:configure.ac:53: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+m4trace:configure.ac:53: -1- AM_MISSING_HAS_RUN
+m4trace:configure.ac:53: -1- AM_AUX_DIR_EXPAND
+m4trace:configure.ac:53: -1- m4_pattern_allow([^ACLOCAL$])
+m4trace:configure.ac:53: -1- AM_MISSING_PROG([AUTOCONF], [autoconf])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AUTOCONF$])
+m4trace:configure.ac:53: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AUTOMAKE$])
+m4trace:configure.ac:53: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AUTOHEADER$])
+m4trace:configure.ac:53: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^MAKEINFO$])
+m4trace:configure.ac:53: -1- AM_PROG_INSTALL_SH
+m4trace:configure.ac:53: -1- m4_pattern_allow([^install_sh$])
+m4trace:configure.ac:53: -1- AM_PROG_INSTALL_STRIP
+m4trace:configure.ac:53: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^MKDIR_P$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^mkdir_p$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AWK$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^SET_MAKE$])
+m4trace:configure.ac:53: -1- AM_SET_LEADING_DOT
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__leading_dot$])
+m4trace:configure.ac:53: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+m4trace:configure.ac:53: -2- _AM_MANGLE_OPTION([tar-ustar])
+m4trace:configure.ac:53: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])
+m4trace:configure.ac:53: -2- _AM_MANGLE_OPTION([tar-pax])
+m4trace:configure.ac:53: -1- _AM_PROG_TAR([v7])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AMTAR$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__tar$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^am__untar$])
+m4trace:configure.ac:53: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+m4trace:configure.ac:53: -2- _AM_MANGLE_OPTION([no-dependencies])
+m4trace:configure.ac:53: -1- AM_SILENT_RULES
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_V$])
+m4trace:configure.ac:53: -1- AM_SUBST_NOTMAKE([AM_V])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([AM_V])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_DEFAULT_V$])
+m4trace:configure.ac:53: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+m4trace:configure.ac:53: -1- m4_pattern_allow([^AM_BACKSLASH$])
+m4trace:configure.ac:53: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
+m4trace:configure.ac:58: -1- AM_SILENT_RULES([yes])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_V$])
+m4trace:configure.ac:58: -1- AM_SUBST_NOTMAKE([AM_V])
+m4trace:configure.ac:58: -1- _AM_SUBST_NOTMAKE([AM_V])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_DEFAULT_V$])
+m4trace:configure.ac:58: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+m4trace:configure.ac:58: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^AM_BACKSLASH$])
+m4trace:configure.ac:58: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.ac:61: -1- _AM_PROG_CC_C_O
+m4trace:configure.ac:61: -1- AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext])
+m4trace:configure.ac:61: -1- _AM_DEPENDENCIES([CC])
+m4trace:configure.ac:61: -1- AM_SET_DEPDIR
+m4trace:configure.ac:61: -1- m4_pattern_allow([^DEPDIR$])
+m4trace:configure.ac:61: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:61: -1- AM_MAKE_INCLUDE
+m4trace:configure.ac:61: -1- AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__include$])
+m4trace:configure.ac:61: -1- AM_DEP_TRACK
+m4trace:configure.ac:61: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^AMDEP_TRUE$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^AMDEP_FALSE$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__nodep$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([am__nodep])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^CCDEPMODE$])
+m4trace:configure.ac:61: -1- AM_CONDITIONAL([am__fastdepCC], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
+m4trace:configure.ac:61: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
+m4trace:configure.ac:63: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:65: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:65: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:65: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:66: -1- m4_pattern_allow([^MV$])
+m4trace:configure.ac:67: -1- m4_pattern_allow([^TAR$])
+m4trace:configure.ac:68: -1- m4_pattern_allow([^PERL$])
+m4trace:configure.ac:69: -1- m4_pattern_allow([^WGET$])
+m4trace:configure.ac:70: -1- m4_pattern_allow([^XMLLINT$])
+m4trace:configure.ac:71: -1- m4_pattern_allow([^XSLTPROC$])
+m4trace:configure.ac:72: -1- PKG_PROG_PKG_CONFIG
+m4trace:configure.ac:72: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG_PATH$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^PKG_CONFIG$])
+m4trace:configure.ac:74: -1- LT_INIT
+m4trace:configure.ac:74: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
+m4trace:configure.ac:74: -1- LTOPTIONS_VERSION
+m4trace:configure.ac:74: -1- LTSUGAR_VERSION
+m4trace:configure.ac:74: -1- LTVERSION_VERSION
+m4trace:configure.ac:74: -1- LTOBSOLETE_VERSION
+m4trace:configure.ac:74: -1- _LT_PROG_LTMAIN
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LIBTOOL$])
+m4trace:configure.ac:74: -1- _LT_PREPARE_SED_QUOTE_VARS
+m4trace:configure.ac:74: -1- _LT_PROG_ECHO_BACKSLASH
+m4trace:configure.ac:74: -1- LT_PATH_LD
+m4trace:configure.ac:74: -1- m4_pattern_allow([^SED$])
+m4trace:configure.ac:74: -1- AC_PROG_EGREP
+m4trace:configure.ac:74: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^FGREP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:74: -1- LT_PATH_NM
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^NM$])
+m4trace:configure.ac:74: -1- LT_CMD_MAX_LEN
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DLLTOOL$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DLLTOOL$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^ac_ct_AR$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:74: -1- _LT_WITH_SYSROOT
+m4trace:configure.ac:74: -1- m4_pattern_allow([LT_OBJDIR])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LT_OBJDIR$])
+m4trace:configure.ac:74: -1- _LT_CC_BASENAME([$compiler])
+m4trace:configure.ac:74: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH])
+m4trace:configure.ac:74: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH])
+m4trace:configure.ac:74: -1- LT_SUPPORTED_TAG([CC])
+m4trace:configure.ac:74: -1- _LT_COMPILER_BOILERPLATE
+m4trace:configure.ac:74: -1- _LT_LINKER_BOILERPLATE
+m4trace:configure.ac:74: -1- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], [lt_cv_prog_compiler_rtti_exceptions], [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"])
+m4trace:configure.ac:74: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t@m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in
+ "" | " "*) ;;
+ *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;;
+ esac], [_LT_TAGVAR(lt_prog_compiler_pic, )=
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no])
+m4trace:configure.ac:74: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^MANIFEST_TOOL$])
+m4trace:configure.ac:74: -1- _LT_DLL_DEF_P([$export_symbols])
+m4trace:configure.ac:74: -1- _LT_DLL_DEF_P([$export_symbols])
+m4trace:configure.ac:74: -1- _LT_REQUIRED_DARWIN_CHECKS
+m4trace:configure.ac:74: -1- m4_pattern_allow([^DSYMUTIL$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^NMEDIT$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LIPO$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OTOOL$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^OTOOL64$])
+m4trace:configure.ac:74: -1- _LT_LINKER_OPTION([if $CC understands -b], [lt_cv_prog_compiler__b], [-b], [_LT_TAGVAR(archive_cmds, )='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, )='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$])
+m4trace:configure.ac:74: -1- LT_SYS_DLOPEN_SELF
+m4trace:configure.ac:74: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^VERSION_SCRIPT_FLAGS$])
+m4trace:configure.ac:90: -1- AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
+m4trace:configure.ac:90: -1- m4_pattern_allow([^USE_VERSION_SCRIPT_TRUE$])
+m4trace:configure.ac:90: -1- m4_pattern_allow([^USE_VERSION_SCRIPT_FALSE$])
+m4trace:configure.ac:90: -1- _AM_SUBST_NOTMAKE([USE_VERSION_SCRIPT_TRUE])
+m4trace:configure.ac:90: -1- _AM_SUBST_NOTMAKE([USE_VERSION_SCRIPT_FALSE])
+m4trace:configure.ac:129: -1- m4_pattern_allow([^HTML_DIR$])
+m4trace:configure.ac:217: -1- AM_CONDITIONAL([REBUILD_DOCS], [test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"])
+m4trace:configure.ac:217: -1- m4_pattern_allow([^REBUILD_DOCS_TRUE$])
+m4trace:configure.ac:217: -1- m4_pattern_allow([^REBUILD_DOCS_FALSE$])
+m4trace:configure.ac:217: -1- _AM_SUBST_NOTMAKE([REBUILD_DOCS_TRUE])
+m4trace:configure.ac:217: -1- _AM_SUBST_NOTMAKE([REBUILD_DOCS_FALSE])
+m4trace:configure.ac:397: -1- PKG_CHECK_MODULES([Z], [zlib], [WITH_ZLIB=1], [:])
+m4trace:configure.ac:397: -1- m4_pattern_allow([^Z_CFLAGS$])
+m4trace:configure.ac:397: -1- m4_pattern_allow([^Z_LIBS$])
+m4trace:configure.ac:397: -1- PKG_CHECK_EXISTS([zlib], [pkg_cv_[]Z_CFLAGS=`$PKG_CONFIG --[]cflags "zlib" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes])
+m4trace:configure.ac:397: -1- PKG_CHECK_EXISTS([zlib], [pkg_cv_[]Z_LIBS=`$PKG_CONFIG --[]libs "zlib" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes])
+m4trace:configure.ac:397: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:403: -1- m4_pattern_allow([^HAVE_ZLIB_H$])
+m4trace:configure.ac:421: -1- m4_pattern_allow([^Z_CFLAGS$])
+m4trace:configure.ac:422: -1- m4_pattern_allow([^Z_LIBS$])
+m4trace:configure.ac:423: -1- m4_pattern_allow([^WITH_ZLIB$])
+m4trace:configure.ac:436: -1- PKG_CHECK_MODULES([LZMA], [liblzma], [WITH_LZMA=1], [:])
+m4trace:configure.ac:436: -1- m4_pattern_allow([^LZMA_CFLAGS$])
+m4trace:configure.ac:436: -1- m4_pattern_allow([^LZMA_LIBS$])
+m4trace:configure.ac:436: -1- PKG_CHECK_EXISTS([liblzma], [pkg_cv_[]LZMA_CFLAGS=`$PKG_CONFIG --[]cflags "liblzma" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes])
+m4trace:configure.ac:436: -1- PKG_CHECK_EXISTS([liblzma], [pkg_cv_[]LZMA_LIBS=`$PKG_CONFIG --[]libs "liblzma" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes])
+m4trace:configure.ac:436: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:445: -1- m4_pattern_allow([^HAVE_LZMA_H$])
+m4trace:configure.ac:458: -1- m4_pattern_allow([^LZMA_CFLAGS$])
+m4trace:configure.ac:459: -1- m4_pattern_allow([^LZMA_LIBS$])
+m4trace:configure.ac:460: -1- m4_pattern_allow([^WITH_LZMA$])
+m4trace:configure.ac:469: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:470: -1- m4_pattern_allow([^HAVE_FCNTL_H$])
+m4trace:configure.ac:471: -1- m4_pattern_allow([^HAVE_UNISTD_H$])
+m4trace:configure.ac:472: -1- m4_pattern_allow([^HAVE_CTYPE_H$])
+m4trace:configure.ac:473: -1- m4_pattern_allow([^HAVE_DIRENT_H$])
+m4trace:configure.ac:474: -1- m4_pattern_allow([^HAVE_ERRNO_H$])
+m4trace:configure.ac:475: -1- m4_pattern_allow([^HAVE_MALLOC_H$])
+m4trace:configure.ac:476: -1- m4_pattern_allow([^HAVE_STDARG_H$])
+m4trace:configure.ac:477: -1- m4_pattern_allow([^HAVE_SYS_STAT_H$])
+m4trace:configure.ac:478: -1- m4_pattern_allow([^HAVE_SYS_TYPES_H$])
+m4trace:configure.ac:479: -1- m4_pattern_allow([^HAVE_STDINT_H$])
+m4trace:configure.ac:480: -1- m4_pattern_allow([^HAVE_INTTYPES_H$])
+m4trace:configure.ac:481: -1- m4_pattern_allow([^HAVE_TIME_H$])
+m4trace:configure.ac:482: -1- m4_pattern_allow([^HAVE_MATH_H$])
+m4trace:configure.ac:483: -1- m4_pattern_allow([^HAVE_LIMITS_H$])
+m4trace:configure.ac:484: -1- m4_pattern_allow([^HAVE_FLOAT_H$])
+m4trace:configure.ac:485: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
+m4trace:configure.ac:486: -1- m4_pattern_allow([^HAVE_SYS_SOCKET_H$])
+m4trace:configure.ac:491: -1- m4_pattern_allow([^HAVE_NETINET_IN_H$])
+m4trace:configure.ac:496: -1- m4_pattern_allow([^HAVE_ARPA_INET_H$])
+m4trace:configure.ac:504: -1- m4_pattern_allow([^HAVE_NETDB_H$])
+m4trace:configure.ac:505: -1- m4_pattern_allow([^HAVE_SYS_TIME_H$])
+m4trace:configure.ac:506: -1- m4_pattern_allow([^HAVE_SYS_SELECT_H$])
+m4trace:configure.ac:507: -1- m4_pattern_allow([^HAVE_POLL_H$])
+m4trace:configure.ac:508: -1- m4_pattern_allow([^HAVE_SYS_MMAN_H$])
+m4trace:configure.ac:509: -1- m4_pattern_allow([^HAVE_SYS_TIMEB_H$])
+m4trace:configure.ac:510: -1- m4_pattern_allow([^HAVE_SIGNAL_H$])
+m4trace:configure.ac:511: -1- m4_pattern_allow([^HAVE_ARPA_NAMESER_H$])
+m4trace:configure.ac:516: -1- m4_pattern_allow([^HAVE_RESOLV_H$])
+m4trace:configure.ac:527: -1- m4_pattern_allow([^HAVE_DL_H$])
+m4trace:configure.ac:528: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
+m4trace:configure.ac:533: -1- m4_pattern_allow([^_UINT32_T$])
+m4trace:configure.ac:533: -1- m4_pattern_allow([^uint32_t$])
+m4trace:configure.ac:539: -1- m4_pattern_allow([^HAVE_STRFTIME$])
+m4trace:configure.ac:539: -1- m4_pattern_allow([^HAVE_STRFTIME$])
+m4trace:configure.ac:558: -1- m4_pattern_allow([^HAVE_VA_COPY$])
+m4trace:configure.ac:567: -1- m4_pattern_allow([^HAVE___VA_COPY$])
+m4trace:configure.ac:573: -1- AC_TRY_COMPILE2([
+#include <stdarg.h>
+void a(va_list * ap) {}], [
+va_list ap1, ap2; a(&ap1); ap2 = (va_list) ap1], [
+ AC_MSG_RESULT(no)], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([VA_LIST_IS_ARRAY], [1],[Define if va_list is an array type])])
+m4trace:configure.ac:573: -1- AC_TRY_EVAL2([ac_compile])
+m4trace:configure.ac:573: -1- m4_pattern_allow([^VA_LIST_IS_ARRAY$])
+m4trace:configure.ac:588: -1- AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>], [
+(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)], [
+ AC_MSG_RESULT(socklen_t *)
+ XML_SOCKLEN_T=socklen_t], [
+ AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>],[
+(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)],[
+ AC_MSG_RESULT(size_t *)
+ XML_SOCKLEN_T=size_t],[
+ AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>],[
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)],[
+ AC_MSG_RESULT(int *)
+ XML_SOCKLEN_T=int],[
+ AC_MSG_WARN(could not determine)
+ XML_SOCKLEN_T="int"])])])
+m4trace:configure.ac:588: -1- AC_TRY_EVAL2([ac_compile])
+m4trace:configure.ac:588: -1- AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>], [
+(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)], [
+ AC_MSG_RESULT(size_t *)
+ XML_SOCKLEN_T=size_t], [
+ AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>],[
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)],[
+ AC_MSG_RESULT(int *)
+ XML_SOCKLEN_T=int],[
+ AC_MSG_WARN(could not determine)
+ XML_SOCKLEN_T="int"])])
+m4trace:configure.ac:588: -1- AC_TRY_EVAL2([ac_compile])
+m4trace:configure.ac:588: -1- AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>], [
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)], [
+ AC_MSG_RESULT(int *)
+ XML_SOCKLEN_T=int], [
+ AC_MSG_WARN(could not determine)
+ XML_SOCKLEN_T="int"])
+m4trace:configure.ac:588: -1- AC_TRY_EVAL2([ac_compile])
+m4trace:configure.ac:611: -1- m4_pattern_allow([^XML_SOCKLEN_T$])
+m4trace:configure.ac:621: -1- m4_pattern_allow([^GETHOSTBYNAME_ARG_CAST$])
+m4trace:configure.ac:624: -1- m4_pattern_allow([^GETHOSTBYNAME_ARG_CAST$])
+m4trace:configure.ac:637: -1- m4_pattern_allow([^SEND_ARG2_CAST$])
+m4trace:configure.ac:640: -1- m4_pattern_allow([^SEND_ARG2_CAST$])
+m4trace:configure.ac:667: -1- m4_pattern_allow([^SUPPORT_IP6$])
+m4trace:configure.ac:703: -1- m4_pattern_allow([^HAVE_BROKEN_SS_FAMILY$])
+m4trace:configure.ac:705: -1- m4_pattern_allow([^ss_family$])
+m4trace:configure.ac:721: -1- m4_pattern_allow([^HAVE_GETADDRINFO$])
+m4trace:configure.ac:729: -2- m4_pattern_allow([^HAVE_ISNAN$])
+m4trace:configure.ac:729: -2- m4_pattern_allow([^HAVE_ISNAN$])
+m4trace:configure.ac:732: -2- m4_pattern_allow([^HAVE_ISINF$])
+m4trace:configure.ac:732: -2- m4_pattern_allow([^HAVE_ISINF$])
+m4trace:configure.ac:835: -1- m4_pattern_allow([^PYTHON$])
+m4trace:configure.ac:896: -1- AM_CONDITIONAL([WITH_PYTHON], [test "$PYTHON_INCLUDES" != ""])
+m4trace:configure.ac:896: -1- m4_pattern_allow([^WITH_PYTHON_TRUE$])
+m4trace:configure.ac:896: -1- m4_pattern_allow([^WITH_PYTHON_FALSE$])
+m4trace:configure.ac:896: -1- _AM_SUBST_NOTMAKE([WITH_PYTHON_TRUE])
+m4trace:configure.ac:896: -1- _AM_SUBST_NOTMAKE([WITH_PYTHON_FALSE])
+m4trace:configure.ac:903: -1- m4_pattern_allow([^pythondir$])
+m4trace:configure.ac:904: -1- m4_pattern_allow([^PYTHON_SUBDIR$])
+m4trace:configure.ac:905: -1- m4_pattern_allow([^PYTHON_LIBS$])
+m4trace:configure.ac:915: -1- m4_pattern_allow([^HAVE_DLOPEN$])
+m4trace:configure.ac:938: -1- m4_pattern_allow([^HAVE_SHLLOAD$])
+m4trace:configure.ac:952: -1- m4_pattern_allow([^HAVE_DLOPEN$])
+m4trace:configure.ac:962: -1- m4_pattern_allow([^WITH_MODULES$])
+m4trace:configure.ac:963: -1- m4_pattern_allow([^MODULE_PLATFORM_LIBS$])
+m4trace:configure.ac:964: -1- m4_pattern_allow([^MODULE_EXTENSION$])
+m4trace:configure.ac:965: -1- m4_pattern_allow([^TEST_MODULES$])
+m4trace:configure.ac:998: -1- m4_pattern_allow([^STATIC_BINARIES$])
+m4trace:configure.ac:1010: -1- AM_CONDITIONAL([WITH_TRIO_SOURCES], [test "${NEED_TRIO}" = "1"])
+m4trace:configure.ac:1010: -1- m4_pattern_allow([^WITH_TRIO_SOURCES_TRUE$])
+m4trace:configure.ac:1010: -1- m4_pattern_allow([^WITH_TRIO_SOURCES_FALSE$])
+m4trace:configure.ac:1010: -1- _AM_SUBST_NOTMAKE([WITH_TRIO_SOURCES_TRUE])
+m4trace:configure.ac:1010: -1- _AM_SUBST_NOTMAKE([WITH_TRIO_SOURCES_FALSE])
+m4trace:configure.ac:1011: -1- m4_pattern_allow([^WITH_TRIO$])
+m4trace:configure.ac:1048: -2- m4_pattern_allow([^HAVE_LIBPTHREAD$])
+m4trace:configure.ac:1048: -2- m4_pattern_allow([^HAVE_PTHREAD_H$])
+m4trace:configure.ac:1094: -1- m4_pattern_allow([^THREAD_LIBS$])
+m4trace:configure.ac:1095: -1- m4_pattern_allow([^BASE_THREAD_LIBS$])
+m4trace:configure.ac:1096: -1- m4_pattern_allow([^WITH_THREADS$])
+m4trace:configure.ac:1097: -1- m4_pattern_allow([^THREAD_CFLAGS$])
+m4trace:configure.ac:1098: -1- m4_pattern_allow([^TEST_THREADS$])
+m4trace:configure.ac:1099: -1- m4_pattern_allow([^WITH_THREAD_ALLOC$])
+m4trace:configure.ac:1100: -1- AM_CONDITIONAL([THREADS_W32], [test -n "$THREADS_W32"])
+m4trace:configure.ac:1100: -1- m4_pattern_allow([^THREADS_W32_TRUE$])
+m4trace:configure.ac:1100: -1- m4_pattern_allow([^THREADS_W32_FALSE$])
+m4trace:configure.ac:1100: -1- _AM_SUBST_NOTMAKE([THREADS_W32_TRUE])
+m4trace:configure.ac:1100: -1- _AM_SUBST_NOTMAKE([THREADS_W32_FALSE])
+m4trace:configure.ac:1116: -2- m4_pattern_allow([^HAVE_LIBHISTORY$])
+m4trace:configure.ac:1120: -2- m4_pattern_allow([^HAVE_LIBREADLINE$])
+m4trace:configure.ac:1138: -1- m4_pattern_allow([^WITH_TREE$])
+m4trace:configure.ac:1148: -1- m4_pattern_allow([^WITH_FTP$])
+m4trace:configure.ac:1149: -1- m4_pattern_allow([^FTP_OBJ$])
+m4trace:configure.ac:1159: -1- m4_pattern_allow([^WITH_HTTP$])
+m4trace:configure.ac:1160: -1- m4_pattern_allow([^HTTP_OBJ$])
+m4trace:configure.ac:1168: -1- m4_pattern_allow([^WITH_LEGACY$])
+m4trace:configure.ac:1182: -1- m4_pattern_allow([^WITH_READER$])
+m4trace:configure.ac:1183: -1- m4_pattern_allow([^READER_TEST$])
+m4trace:configure.ac:1201: -1- m4_pattern_allow([^WITH_WRITER$])
+m4trace:configure.ac:1212: -1- m4_pattern_allow([^WITH_PATTERN$])
+m4trace:configure.ac:1213: -1- m4_pattern_allow([^TEST_PATTERN$])
+m4trace:configure.ac:1223: -1- m4_pattern_allow([^WITH_SAX1$])
+m4trace:configure.ac:1224: -1- AM_CONDITIONAL([WITH_SAX1_SOURCES], [test "${WITH_TRIO}" = "1"])
+m4trace:configure.ac:1224: -1- m4_pattern_allow([^WITH_SAX1_SOURCES_TRUE$])
+m4trace:configure.ac:1224: -1- m4_pattern_allow([^WITH_SAX1_SOURCES_FALSE$])
+m4trace:configure.ac:1224: -1- _AM_SUBST_NOTMAKE([WITH_SAX1_SOURCES_TRUE])
+m4trace:configure.ac:1224: -1- _AM_SUBST_NOTMAKE([WITH_SAX1_SOURCES_FALSE])
+m4trace:configure.ac:1225: -1- m4_pattern_allow([^TEST_SAX$])
+m4trace:configure.ac:1235: -1- m4_pattern_allow([^WITH_PUSH$])
+m4trace:configure.ac:1236: -1- m4_pattern_allow([^TEST_PUSH$])
+m4trace:configure.ac:1253: -1- m4_pattern_allow([^WITH_HTML$])
+m4trace:configure.ac:1254: -1- m4_pattern_allow([^HTML_OBJ$])
+m4trace:configure.ac:1255: -1- m4_pattern_allow([^TEST_HTML$])
+m4trace:configure.ac:1256: -1- m4_pattern_allow([^TEST_PHTML$])
+m4trace:configure.ac:1268: -1- m4_pattern_allow([^WITH_VALID$])
+m4trace:configure.ac:1269: -1- m4_pattern_allow([^TEST_VALID$])
+m4trace:configure.ac:1270: -1- m4_pattern_allow([^TEST_VTIME$])
+m4trace:configure.ac:1282: -1- m4_pattern_allow([^WITH_CATALOG$])
+m4trace:configure.ac:1283: -1- m4_pattern_allow([^CATALOG_OBJ$])
+m4trace:configure.ac:1284: -1- m4_pattern_allow([^TEST_CATALOG$])
+m4trace:configure.ac:1294: -1- m4_pattern_allow([^WITH_DOCB$])
+m4trace:configure.ac:1295: -1- m4_pattern_allow([^DOCB_OBJ$])
+m4trace:configure.ac:1312: -1- m4_pattern_allow([^WITH_XPTR$])
+m4trace:configure.ac:1313: -1- m4_pattern_allow([^XPTR_OBJ$])
+m4trace:configure.ac:1314: -1- m4_pattern_allow([^TEST_XPTR$])
+m4trace:configure.ac:1330: -1- m4_pattern_allow([^WITH_C14N$])
+m4trace:configure.ac:1331: -1- m4_pattern_allow([^C14N_OBJ$])
+m4trace:configure.ac:1332: -1- m4_pattern_allow([^TEST_C14N$])
+m4trace:configure.ac:1349: -1- m4_pattern_allow([^WITH_XINCLUDE$])
+m4trace:configure.ac:1350: -1- m4_pattern_allow([^XINCLUDE_OBJ$])
+m4trace:configure.ac:1351: -1- m4_pattern_allow([^TEST_XINCLUDE$])
+m4trace:configure.ac:1373: -1- m4_pattern_allow([^WITH_SCHEMATRON$])
+m4trace:configure.ac:1374: -1- m4_pattern_allow([^TEST_SCHEMATRON$])
+m4trace:configure.ac:1386: -1- m4_pattern_allow([^WITH_XPATH$])
+m4trace:configure.ac:1387: -1- m4_pattern_allow([^XPATH_OBJ$])
+m4trace:configure.ac:1388: -1- m4_pattern_allow([^TEST_XPATH$])
+m4trace:configure.ac:1399: -1- m4_pattern_allow([^WITH_OUTPUT$])
+m4trace:configure.ac:1460: -1- m4_pattern_allow([^ICONV_CONST$])
+m4trace:configure.ac:1474: -1- m4_pattern_allow([^WITH_ICONV$])
+m4trace:configure.ac:1483: -1- PKG_CHECK_MODULES([ICU], [icu-i18n], [have_libicu=yes], [have_libicu=no])
+m4trace:configure.ac:1483: -1- m4_pattern_allow([^ICU_CFLAGS$])
+m4trace:configure.ac:1483: -1- m4_pattern_allow([^ICU_LIBS$])
+m4trace:configure.ac:1483: -1- PKG_CHECK_EXISTS([icu-i18n], [pkg_cv_[]ICU_CFLAGS=`$PKG_CONFIG --[]cflags "icu-i18n" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes])
+m4trace:configure.ac:1483: -1- PKG_CHECK_EXISTS([icu-i18n], [pkg_cv_[]ICU_LIBS=`$PKG_CONFIG --[]libs "icu-i18n" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes])
+m4trace:configure.ac:1483: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:1506: -2- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2698: AC_TRY_LINK is expanded from...
+configure.ac:1506: the top level])
+m4trace:configure.ac:1506: -2- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2698: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
+../../lib/autoconf/general.m4:2672: _AC_LINK_IFELSE is expanded from...
+../../lib/autoconf/general.m4:2689: AC_LINK_IFELSE is expanded from...
+../../lib/autoconf/general.m4:2698: AC_TRY_LINK is expanded from...
+configure.ac:1506: the top level])
+m4trace:configure.ac:1539: -1- m4_pattern_allow([^WITH_ICU$])
+m4trace:configure.ac:1548: -1- m4_pattern_allow([^WITH_ISO8859X$])
+m4trace:configure.ac:1563: -1- m4_pattern_allow([^WITH_SCHEMAS$])
+m4trace:configure.ac:1564: -1- m4_pattern_allow([^TEST_SCHEMAS$])
+m4trace:configure.ac:1574: -1- m4_pattern_allow([^WITH_REGEXPS$])
+m4trace:configure.ac:1575: -1- m4_pattern_allow([^TEST_REGEXPS$])
+m4trace:configure.ac:1587: -1- m4_pattern_allow([^WITH_DEBUG$])
+m4trace:configure.ac:1588: -1- m4_pattern_allow([^DEBUG_OBJ$])
+m4trace:configure.ac:1589: -1- m4_pattern_allow([^TEST_DEBUG$])
+m4trace:configure.ac:1602: -1- m4_pattern_allow([^WITH_MEM_DEBUG$])
+m4trace:configure.ac:1610: -1- m4_pattern_allow([^WITH_RUN_DEBUG$])
+m4trace:configure.ac:1642: -1- m4_pattern_allow([^WIN32_EXTRA_LIBADD$])
+m4trace:configure.ac:1643: -1- m4_pattern_allow([^WIN32_EXTRA_LDFLAGS$])
+m4trace:configure.ac:1644: -1- m4_pattern_allow([^WIN32_EXTRA_PYTHON_LIBADD$])
+m4trace:configure.ac:1645: -1- m4_pattern_allow([^CYGWIN_EXTRA_LDFLAGS$])
+m4trace:configure.ac:1646: -1- m4_pattern_allow([^CYGWIN_EXTRA_PYTHON_LIBADD$])
+m4trace:configure.ac:1675: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:1676: -1- m4_pattern_allow([^EXTRA_CFLAGS$])
+m4trace:configure.ac:1677: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:1678: -1- m4_pattern_allow([^XML_CFLAGS$])
+m4trace:configure.ac:1680: -1- m4_pattern_allow([^XML_LIBDIR$])
+m4trace:configure.ac:1681: -1- m4_pattern_allow([^XML_LIBS$])
+m4trace:configure.ac:1682: -1- m4_pattern_allow([^XML_PRIVATE_LIBS$])
+m4trace:configure.ac:1683: -1- m4_pattern_allow([^XML_LIBTOOLLIBS$])
+m4trace:configure.ac:1684: -1- m4_pattern_allow([^ICONV_LIBS$])
+m4trace:configure.ac:1685: -1- m4_pattern_allow([^ICU_LIBS$])
+m4trace:configure.ac:1686: -1- m4_pattern_allow([^XML_INCLUDEDIR$])
+m4trace:configure.ac:1687: -1- m4_pattern_allow([^HTML_DIR$])
+m4trace:configure.ac:1688: -1- m4_pattern_allow([^HAVE_ISNAN$])
+m4trace:configure.ac:1689: -1- m4_pattern_allow([^HAVE_ISINF$])
+m4trace:configure.ac:1690: -1- m4_pattern_allow([^PYTHON$])
+m4trace:configure.ac:1691: -1- m4_pattern_allow([^PYTHON_VERSION$])
+m4trace:configure.ac:1692: -1- m4_pattern_allow([^PYTHON_INCLUDES$])
+m4trace:configure.ac:1693: -1- m4_pattern_allow([^PYTHON_SITE_PACKAGES$])
+m4trace:configure.ac:1695: -1- m4_pattern_allow([^M_LIBS$])
+m4trace:configure.ac:1696: -1- m4_pattern_allow([^RDL_LIBS$])
+m4trace:configure.ac:1700: -1- m4_pattern_allow([^RELDATE$])
+m4trace:configure.ac:1701: -1- m4_pattern_allow([^PYTHON_TESTS$])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.ac:1710: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
+m4trace:configure.ac:1710: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
+m4trace:configure.ac:1710: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
+m4trace:configure.ac:1710: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
+m4trace:configure.ac:1710: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
+m4trace:configure.ac:1710: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:1710: -1- AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles])
+m4trace:configure.ac:1710: -1- _LT_PROG_LTMAIN
diff --git a/libxml2-2.9.10/bakefile/Bakefiles.bkgen b/libxml2-2.9.10/bakefile/Bakefiles.bkgen
new file mode 100644
index 0000000..8342de3
--- /dev/null
+++ b/libxml2-2.9.10/bakefile/Bakefiles.bkgen
@@ -0,0 +1,15 @@
+<?xml version="1.0" ?>
+<!-- $Id$ -->
+
+<bakefile-gen>
+
+ <disable-formats>gnu,dmars,cbx_unix,cbuilderx</disable-formats>
+ <input>libxml2.bkl</input>
+
+ <!-- List of output formats to generate: -->
+ <add-formats>
+ borland,dmars,mingw,msvc,msvc6prj,watcom,cbuilderx,cbx_unix,gnu
+ </add-formats>
+
+
+</bakefile-gen> \ No newline at end of file
diff --git a/libxml2-2.9.10/bakefile/Readme.txt b/libxml2-2.9.10/bakefile/Readme.txt
new file mode 100644
index 0000000..98a9ca8
--- /dev/null
+++ b/libxml2-2.9.10/bakefile/Readme.txt
@@ -0,0 +1,92 @@
+
+ LIBXML2 build system for Win32 README
+ -------------------------------------
+
+ In this folder are stored all the files required to compile LIBXML2 with win32 compilers.
+ Bakefile (http://bakefile.sourceforge.net) is used as makefile generator.
+
+ Supported makefiles:
+ - makefile.vc for Microsoft NMAKE
+ - makefile.bcc for Borland MAKE
+ - makefile.wat for OpenWatcom MAKE
+ - makefile.gcc for MinGW MINGW32-MAKE
+ - all DSP & DSW for Microsoft VisualC++ 6.0 (can be used also with VS.NET AFAIK)
+
+ This readme is organized as:
+ 1.0 HOWTO compile LIBXML2 using makefiles <-- for users who want to build the library using *command-line*
+ 1.1 HOWTO compile LIBXML2 using an IDE <-- for users who want to build the library using an *IDE*
+ 1.2 HOWTO regenerate makefiles for LIBXML2 <-- for libxml2 mantainers/developers/advanced users
+
+ If you just want to compile the library (and the test programs) you should definitely avoid the
+ section 1.1 and focus on the 1.0.
+
+
+
+
+
+
+ 1.0 HOWTO compile LIBXML2 using makefiles
+ -----------------------------------------
+
+ Choose your preferred compiler among those actually supported (see above) and then run
+
+ mycompilermake -fmakefile.makefileext [options]
+
+ for a full list of the available options you should open with a notepad (or something like that)
+ the makefile you want to use; at the beginning you should see a section which starts as:
+
+ # -------------------------------------------------------------------------
+ # These are configurable options:
+ # -------------------------------------------------------------------------
+
+ here you can find all the options actually used by that makefile.
+ They can be customized when running the makefile writing something like:
+
+ nmake -fmakefile.vc BUILD=release
+ mingw32-make -fmakefile.gcc BUILD=debug ICONV_DIR=c:\myiconv
+
+ or they can be permanently changed modifying the makefile.
+ That's all: for any problem/compile-error/suggestion, write to
+ frm@users.sourceforge.net with the word "libxml2" in the subject.
+
+
+
+
+
+ 1.1 HOWTO compile LIBXML2 using an IDE
+ --------------------------------------
+
+ Actually only the Microsoft VisualC++ 6.0 project files are generated.
+ In future other Integrated Development Environments (IDEs) will be supported as well.
+
+ With MSVC++ 6.0, you should open the DSW file and then set as the active project the
+ "libxml2" project, if you want to build the library or one of the test projects if you
+ want to run them.
+ Using the command "Build->Set Active Configuration" you can choose one of the predefined
+ configuration.
+
+
+
+
+
+ 1.2 HOWTO regenerate makefiles for LIBXML2
+ ------------------------------------------
+
+ Be sure to have installed Bakefile (http://bakefile.sourceforge.net).
+ Just run the "bakefile_gen" command inside the folder containing the "libxml2.bkl" file.
+ NOTE: if you want to remove all the makefiles, you can use the "bakefile_gen -c" command.
+
+ The template files used to generate all makefiles are only two:
+ - libxml2.bkl (the main one)
+ - Bakefiles.bkgen
+ All the other files can be dinamically regenerated.
+
+
+
+
+
+ If you have problems with the compilation of LIBXML2 under windows (using one of the supported compiler)
+ please write to:
+
+ Francesco Montorsi <frm@users.sourceforge.net>
+
diff --git a/libxml2-2.9.10/bakefile/libxml2.bkl b/libxml2-2.9.10/bakefile/libxml2.bkl
new file mode 100644
index 0000000..fa2d285
--- /dev/null
+++ b/libxml2-2.9.10/bakefile/libxml2.bkl
@@ -0,0 +1,745 @@
+<?xml version="1.0" ?>
+
+<!-- Author: Francesco Montorsi <frm@users.sourceforge.net> -->
+<!-- Date: 30/8/2004 -->
+<!-- Last revision: 26/1/2005 -->
+
+
+<!-- LIBXML2 BAKEFILE -->
+<!-- -->
+<!-- The bakefile used to build the library and the test -->
+<!-- programs. The makefiles output is put: -->
+<!-- -->
+<!-- - in the ..\LIB folder -->
+<!-- - in the ..\BIN folder -->
+<!-- -->
+
+<makefile>
+
+ <using module="datafiles"/>
+ <requires version="0.1.5"/>
+
+
+ <!-- This is a bakefile, that is, a generic template used to -->
+ <!-- generate makefiles ALL supported compilers. -->
+ <!-- To use this project file you need Bakefile installed. -->
+ <!-- With the command "bakefile_gen" you can regen all the -->
+ <!-- makefiles and project files. -->
+ <!-- See http://bakefile.sourceforge.net for more info. -->
+
+
+ <!--
+ This file is divided in:
+ - generic options
+ - generic variables
+ - libxml2 options
+ - libxml2 variables
+ - about config.h creation
+ - templates
+ - libxml2 library target
+ - libxml2 test program targets
+ -->
+
+
+
+ <!-- -->
+ <!-- GENERIC OPTIONS -->
+ <!-- -->
+
+
+ <!-- This is a standard option that determines -->
+ <!-- whether the user wants to build this library as -->
+ <!-- a dll or as a static library. -->
+ <option name="SHARED">
+ <values>0,1</values>
+ <values-description>,DLL</values-description>
+ <default-value>0</default-value>
+ <description>If set to zero a STATIC libxml library will be built</description>
+ </option>
+
+ <!-- Configuration for building the bakefile with -->
+ <!-- unicode strings or not (unicode or ansi). -->
+ <option name="UNICODE">
+ <values>0,1</values>
+ <values-description>,Unicode</values-description>
+ <default-value>0</default-value>
+ <description>Compile Unicode build?</description>
+ </option>
+
+
+ <!-- There are several options that deal with build -->
+ <!-- types. First, there's this one, BUILD. -->
+ <!-- -->
+ <!-- BUILD determines whether or not we want to build -->
+ <!-- in release or debug mode. Note that in practice -->
+ <!-- this means modifying the optimize tag, which by -->
+ <!-- default is set to off. In this case debug means -->
+ <!-- off (no optimizations), and release means speed -->
+ <!-- (fast with inlining). There is also a size option -->
+ <!-- that is not addressed in this example bakefile. -->
+ <option name="BUILD">
+ <values>debug,release</values>
+ <values-description>Debug,Release</values-description>
+ <default-value>release</default-value>
+ <description>
+ Type of compiled binaries
+ </description>
+ </option>
+
+
+
+ <!-- -->
+ <!-- GENERIC VARIABLES -->
+ <!-- -->
+
+ <!-- Set the ISDLL variable, so that we can use it -->
+ <!-- inside an if statement later on (options not -->
+ <!-- allowed in if statements). -->
+ <set var="ISDLL" cond="SHARED=='1'">1</set>
+ <set var="ISDLL" cond="SHARED=='0'">0</set>
+
+ <!-- The unicode define we want. By default bakefile -->
+ <!-- makes variables an empty string, so if unicode -->
+ <!-- is not defined $(UNICODE_DEFINE) would expand -->
+ <!-- to nothing (literally). -->
+ <set var="UNICODE_DEFINE">
+ <if cond="FORMAT!='autoconf' and UNICODE=='1'">_UNICODE</if>
+ </set>
+
+ <!-- The debug define we need with win32 compilers -->
+ <!-- (on Linux, the wx-config program is used). -->
+ <set var="DEBUG_DEFINE">
+ <if cond="FORMAT!='autoconf' and BUILD=='debug'">
+ __WXDEBUG__
+ </if>
+ </set>
+
+ <!-- Value we will use later on for the debug-info -->
+ <!-- tag inside our templates. -->
+ <set var="DEBUGINFO">
+ <if cond="BUILD=='debug'">on</if>
+ <if cond="BUILD=='release'">off</if>
+ </set>
+
+ <!-- Value we will use later on for the debug-runtime -->
+ <!-- tag inside our templates. -->
+ <set var="DEBUGRUNTIME">
+ <if cond="BUILD=='debug'">on</if>
+ <if cond="BUILD=='release'">off</if>
+ </set>
+
+ <!-- Value for optimize tag. -->
+ <set var="OPTIMIZEFLAG">
+ <if cond="BUILD=='debug'">off</if>
+ <if cond="BUILD=='release'">speed</if>
+ </set>
+
+ <!-- Level of warnings. Here we max it out in debug -->
+ <!-- mode, and turn them off in release mode. -->
+ <set var="WARNINGS">
+ <if cond="BUILD=='debug'">max</if>
+ <if cond="BUILD=='release'">no</if>
+ </set>
+
+ <!-- Set MYCPPFLAGS as empty; maybe it will be filled later... -->
+ <set var="MYCPPFLAGS"></set>
+ <if cond="FORMAT=='mingw' or FORMAT=='autoconf'">
+
+ <!-- With GCC, settings warnings to MAX would force -->
+ <!-- Bakefile to call GCC with "-W -Wall" which generates -->
+ <!-- a *lot* of warnings about wxWidgets headers... -->
+ <!-- this is why "-W -Wall" is here replaced by "-Wall". -->
+ <set var="WARNINGS">default</set>
+ <set var="MYCPPFLAGS">-Wall</set>
+ </if>
+
+
+
+
+
+
+ <!-- -->
+ <!-- LIBXML2 OPTIONS -->
+ <!-- -->
+ <!-- Note #1: not all of them are used by win32 makefiles -->
+ <!-- -->
+ <!-- Note #2: since all combinations of non-path options are -->
+ <!-- translated into different 'configurations' by -->
+ <!-- Bakefile when using the MSVC6PRJ output, we must -->
+ <!-- avoid to create a 10 MB libxml2.dsp file forcing -->
+ <!-- some options to their default values... this -->
+ <!-- behaviour can be overridden by the -->
+ <!-- FULL_OPTIONS_SUPPORT -->
+ <!-- variable defined below... -->
+
+ <set var="FULL_OPTIONS_SUPPORT">
+ <if cond="FORMAT=='msvc6prj'">0</if>
+ <if cond="FORMAT!='msvc6prj'">1</if>
+ </set>
+
+ <option name="ICONV_DIR" category="path">
+ <default-value>c:\iconv</default-value>
+ <description>The iconv library main folder</description>
+ </option>
+
+ <option name="WITH_TRIO">
+ <values>0,1</values>
+ <default-value>0</default-value>
+ <description>Enable TRIO string manipulator</description>
+ </option>
+
+ <!-- see the note #2 -->
+ <if cond="FULL_OPTIONS_SUPPORT=='0'">
+ <set var="WITH_THREADS">native</set>
+ </if>
+ <if cond="FULL_OPTIONS_SUPPORT=='1'">
+ <option name="WITH_THREADS">
+ <values>no,ctls,native,posix</values>
+ <default-value>native</default-value>
+ <description>Enable thread safety</description>
+ </option>
+ </if>
+
+ <option name="WITH_FTP">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable FTP client</description>
+ </option>
+
+ <option name="WITH_HTTP">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable HTTP client</description>
+ </option>
+
+ <option name="WITH_C14N">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable C14N support</description>
+ </option>
+
+ <option name="WITH_CATALOG">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable catalog support</description>
+ </option>
+
+ <option name="WITH_DOCB">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable DocBook support</description>
+ </option>
+
+ <option name="WITH_XPATH">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable XPath support</description>
+ </option>
+
+ <option name="WITH_XPTR">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable XPointer support</description>
+ </option>
+
+ <option name="WITH_XINCLUDE">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable XInclude support</description>
+ </option>
+
+ <!-- see the note #2 -->
+ <if cond="FULL_OPTIONS_SUPPORT=='0'">
+ <set var="WITH_ICONV">1</set>
+ </if>
+ <if cond="FULL_OPTIONS_SUPPORT=='1'">
+ <option name="WITH_ICONV">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable iconv support</description>
+ </option>
+ </if>
+
+ <option name="WITH_ISO8859X">
+ <values>0,1</values>
+ <default-value>0</default-value>
+ <description>Enable iso8859x support</description>
+ </option>
+
+ <!-- see the note #2 -->
+ <if cond="FULL_OPTIONS_SUPPORT=='0'">
+ <set var="WITH_ZLIB">0</set>
+ </if>
+ <if cond="FULL_OPTIONS_SUPPORT=='1'">
+ <option name="WITH_ZLIB">
+ <values>0,1</values>
+ <default-value>0</default-value>
+ <description>Enable ZLIB support</description>
+ </option>
+ </if>
+
+ <option name="WITH_REGEXPS">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable regular expressions</description>
+ </option>
+
+ <option name="WITH_TREE">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable tree api</description>
+ </option>
+
+ <option name="WITH_READER">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable xmlReader api</description>
+ </option>
+
+ <option name="WITH_WRITER">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable xmlWriter api</description>
+ </option>
+
+ <option name="WITH_WALKER">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable xmlDocWalker api</description>
+ </option>
+
+ <option name="WITH_PATTERN">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable xmlPattern api</description>
+ </option>
+
+ <option name="WITH_PUSH">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable push api</description>
+ </option>
+
+ <option name="WITH_VALID">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable DTD validation support</description>
+ </option>
+
+ <option name="WITH_SAX1">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable SAX1 api</description>
+ </option>
+
+ <option name="WITH_SCHEMAS">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable XML Schema support</description>
+ </option>
+
+ <option name="WITH_LEGACY">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable deprecated APIs</description>
+ </option>
+
+ <option name="WITH_OUTPUT">
+ <values>0,1</values>
+ <default-value>1</default-value>
+ <description>Enable serialization support</description>
+ </option>
+
+ <option name="WITH_PYTHON">
+ <values>0,1</values>
+ <default-value>0</default-value>
+ <description>Build Python bindings</description>
+ </option>
+
+
+
+
+ <!-- -->
+ <!-- LIBXML2 VARIABLES -->
+ <!-- -->
+
+ <!-- Put all the objects files generated by -->
+ <!-- the compilation in a subfolder of BUILD -->
+ <set var="BUILDDIR">$(FORMAT)</set>
+
+ <!-- This variable is set to 1 when the current output writer supports -->
+ <!-- the __DEFINE_ARG variable. Otherwise it's set to zero. -->
+ <set var="HAS_DEFINE_ARG">
+ <if cond="FORMAT!='msvc6prj'">1</if>
+ <if cond="FORMAT=='msvc6prj'">0</if>
+ </set>
+
+ <!-- The root directory of libxml2 -->
+ <set var="XMLBASEDIR">..</set>
+
+ <!-- The directory where libxml2' tests will be put -->
+ <set var="XMLTESTDIR">$(XMLBASEDIR)$(DIRSEP)bin</set>
+
+ <set var="LIBXML_MAJOR_VERSION">2</set>
+ <set var="LIBXML_MINOR_VERSION">6</set>
+ <set var="LIBXML_MICRO_VERSION">16</set>
+
+ <!-- some defines related to threads -->
+ <set var="THREADS_DEF">
+ <if cond="HAS_DEFINE_ARG=='1' and WITH_THREADS=='native'">
+ $(__DEFINE_ARG)_REENTRANT $(__DEFINE_ARG)HAVE_WIN32_THREADS
+ </if>
+ <if cond="HAS_DEFINE_ARG=='1' and WITH_THREADS=='ctls'">
+ $(__DEFINE_ARG)_REENTRANT $(__DEFINE_ARG)HAVE_WIN32_THREADS $(__DEFINE_ARG)HAVE_COMPILER_TLS
+ </if>
+ <if cond="HAS_DEFINE_ARG=='1' and WITH_THREADS=='posix'">
+ $(__DEFINE_ARG)_REENTRANT $(__DEFINE_ARG)HAVE_PTHREAD_H
+ </if>
+ </set>
+ <if cond="FORMAT=='borland'">
+ <set var="THREADS_DEF">
+ <if cond="WITH_THREADS=='native'">$(THREADS_DEF) $(__DEFINE_ARG)__MT__</if>
+ <if cond="WITH_THREADS=='ctls'">$(THREADS_DEF) $(__DEFINE_ARG)__MT__</if>
+ <if cond="WITH_THREADS=='posix'">$(THREADS_DEF) $(__DEFINE_ARG)__MT__</if>
+ </set>
+ </if>
+
+
+ <!-- some other conditional defines -->
+ <set var="DEBUG_DEF"><if cond="BUILD=='debug'">_DEBUG</if></set>
+ <set var="DEBUG_DEF"><if cond="BUILD=='release'">NDEBUG</if></set>
+
+ <!-- this is very very important when compiling with MINGW: without this line,
+ the test programs (and all the programs built with libxml2 which use xmlFree)
+ won't build because of "undefined references to __xmlFree" -->
+ <set var="STATIC_DEF"><if cond="SHARED=='0'">LIBXML_STATIC</if></set>
+
+ <!-- some conditional libraries dependencies -->
+ <set var="ICONV_LIB"><if cond="WITH_ICONV=='1'">iconv</if></set>
+ <set var="WSOCK32_LIB"><if cond="WITH_THREADS=='native'">wsock32</if></set>
+ <set var="ZLIB_LIB"><if cond="WITH_ZLIB=='1'">zdll</if></set>
+ <set var="POSIX_LIB"><if cond="WITH_THREADS=='posix'">pthreadVC</if></set>
+
+ <set var="XMLINCLUDEDIR">$(XMLBASEDIR)$(DIRSEP)include$(DIRSEP)libxml$(DIRSEP)</set>
+
+
+
+
+ <!-- -->
+ <!-- ABOUT CONFIG.H HEADER CREATION -->
+ <!-- -->
+
+ <set var="CONFIG_SRCNAME">win32config.h</set>
+ <set var="CONFIG_DSTNAME">config.h</set>
+
+ <if cond="FORMAT!='msvc6prj' and FORMAT!='autoconf' and FORMAT!='gnu'">
+ <copy-file-to-file id="setup">
+ <!-- On win32 we need to manually copy a default config.h file -->
+ <!-- from the include/mc/msw folder to include/mc -->
+ <src>../include/$(CONFIG_SRCNAME)</src>
+ <dst>../$(CONFIG_DSTNAME)</dst>
+ <dependency-of>all</dependency-of>
+
+ <!-- With autoconf, we will use the configure script to translate -->
+ <!-- include/mc/config.h.in to include/mc/config.h and thus we do -->
+ <!-- not need to do anything here... -->
+ </copy-file-to-file>
+ </if>
+
+ <if cond="FORMAT!='msvc6prj'">
+
+ <mkdir id="setuplibdir"><dir>$(XMLBASEDIR)$(DIRSEP)lib</dir></mkdir>
+ <mkdir id="setupbindir"><dir>$(XMLBASEDIR)$(DIRSEP)bin</dir></mkdir>
+
+ <!-- Creates all output folders -->
+ <phony id="setupdirs">
+ <dependency-of>all</dependency-of>
+ <depends>setuplibdir</depends>
+ <depends>setupbindir</depends>
+ </phony>
+ </if>
+
+ <!-- This defines a tag which includes headers on MSVC -->
+ <!-- Note that $(value) is stuck in there by bakefile, -->
+ <!-- and is the value between the beginning and end tag. -->
+ <define-tag name="headers" rules="dll,lib,exe">
+ <if cond="FORMAT=='msvc6prj'">
+ <msvc-project-files>
+ $(value)
+ </msvc-project-files>
+ </if>
+ </define-tag>
+
+ <!-- Creates the following custom build rule for MSVC6PRJ file:
+ copies ..\include\win32config.h into ..\config.h
+ NOTE: this tag must be used before the <sources> tag if you want that the configuration
+ file will be created before any other source file is compiled... -->
+ <define-tag name="msvc-copy-setup-h" rules="dll,lib,action">
+ <if cond="FORMAT=='msvc6prj'">
+ <headers>$(XMLBASEDIR)\include\$(CONFIG_SRCNAME)</headers>
+ <set var="__subdir">$(value)</set>
+ <set var="_custom_build_files" append="1">$(XMLBASEDIR)\include\$(CONFIG_SRCNAME)</set>
+ <set var="_custom_build____include_win32config_h">
+Creating the configuration file ..\$(CONFIG_DSTNAME) from ..\include\$(CONFIG_SRCNAME)
+InputPath=..\include\$(CONFIG_SRCNAME)
+
+"..\$(CONFIG_DSTNAME)" : $(DOLLAR)(SOURCE) "$(DOLLAR)(INTDIR)" "$(DOLLAR)(OUTDIR)"
+$(TAB)copy "$(DOLLAR)(InputPath)" ..\$(CONFIG_DSTNAME)
+ </set>
+ </if>
+ </define-tag>
+
+
+
+
+
+ <!-- -->
+ <!-- TEMPLATES -->
+ <!-- -->
+
+ <!-- The basic template: used by all the targets -->
+ <template id="base">
+ <if cond="FORMAT=='mingw'">
+ <define>HAVE_W32API_H</define>
+ <ldflags>-mthreads</ldflags>
+ </if>
+
+ <cxxflags>$(MYCPPFLAGS)</cxxflags>
+ <warnings>$(WARNINGS)</warnings>
+ <define>$(UNICODE_DEFINE)</define>
+ <optimize>$(OPTIMIZEFLAG)</optimize>
+ <debug-info>$(DEBUGINFO)</debug-info>
+ <debug-runtime-libs>$(DEBUGRUNTIME)</debug-runtime-libs>
+ </template>
+
+ <!-- The template used both by the library and by the test programs -->
+ <template id="xml2" template="base">
+
+ <!-- -I & -L equivalents -->
+ <include>$(XMLBASEDIR)$(DIRSEP)include</include>
+ <include>$(ICONV_DIR)$(DIRSEP)include</include>
+ <lib-path>$(ICONV_DIR)$(DIRSEP)lib</lib-path>
+
+ <!-- some conditional define flags -->
+ <cflags>$(THREADS_DEF)</cflags>
+ <define>$(ZLIB_DEF)</define>
+ <define>$(DEBUG_DEF)</define>
+ <define>$(STATIC_DEF)</define>
+
+ <if cond="HAS_DEFINE_ARG=='0'">
+
+ <!-- we are probably using an IDE output: defaults to WITH_THREADS=='native' -->
+ <define>_REENTRANT</define>
+ <define>HAVE_WIN32_THREADS</define>
+ </if>
+
+
+ <!-- these must always be defined on win32 -->
+ <define>WIN32</define>
+ <define>_WINDOWS</define>
+ <define>_MBCS</define>
+
+ <if cond="FORMAT=='borland'">
+ <define>_NO_VCL</define>
+ <define>EILSEQ=2</define>
+ </if>
+ </template>
+
+ <!-- The template used by libxml2 test programs -->
+ <template id="xml2test" template="xml2">
+ <dirname>$(XMLTESTDIR)</dirname>
+ <app-type>console</app-type>
+
+ <library>libxml2</library>
+
+ <sys-lib>$(ICONV_LIB)</sys-lib>
+ <sys-lib>$(WSOCK32_LIB)</sys-lib>
+ <sys-lib>$(ZLIB_LIB)</sys-lib>
+ <sys-lib>$(POSIX_LIB)</sys-lib>
+ </template>
+
+
+
+
+
+
+ <!-- -->
+ <!-- LIBXML2 LIBRARY TARGET -->
+ <!-- -->
+
+ <lib id="libxml2" template="xml2">
+
+ <!-- this is useful only when using MSVC6PRJ -->
+ <if cond="FORMAT=='msvc6prj'">
+ <msvc-copy-setup-h/>
+ <msvc-file-group>Config headers:*config.h</msvc-file-group>
+ </if>
+ <if cond="FORMAT!='msvc6prj'">
+ <depends>setup</depends>
+ <depends>setuplibdir</depends>
+ </if>
+
+ <!-- output folder -->
+ <dirname>$(XMLBASEDIR)$(DIRSEP)lib</dirname>
+
+ <!-- The output name must be "libxml2.lib" with all compilers.
+ Since mingw format autoadds the "lib" prefix to the library
+ name, we must intercept that case to avoid to get "liblibxml2.a" -->
+ <if cond="FORMAT!='mingw'">
+ <libname>libxml2</libname>
+ </if>
+ <if cond="FORMAT=='mingw'">
+ <libname>xml2</libname>
+ </if>
+
+ <!-- the list of source files to compile -->
+ <sources>
+ $(XMLBASEDIR)$(DIRSEP)c14n.c
+ $(XMLBASEDIR)$(DIRSEP)catalog.c
+ $(XMLBASEDIR)$(DIRSEP)chvalid.c
+ $(XMLBASEDIR)$(DIRSEP)debugXML.c
+ $(XMLBASEDIR)$(DIRSEP)dict.c
+ $(XMLBASEDIR)$(DIRSEP)DOCBparser.c
+ $(XMLBASEDIR)$(DIRSEP)encoding.c
+ $(XMLBASEDIR)$(DIRSEP)entities.c
+ $(XMLBASEDIR)$(DIRSEP)error.c
+ $(XMLBASEDIR)$(DIRSEP)globals.c
+ $(XMLBASEDIR)$(DIRSEP)hash.c
+ $(XMLBASEDIR)$(DIRSEP)HTMLparser.c
+ $(XMLBASEDIR)$(DIRSEP)HTMLtree.c
+ $(XMLBASEDIR)$(DIRSEP)legacy.c
+ $(XMLBASEDIR)$(DIRSEP)list.c
+ $(XMLBASEDIR)$(DIRSEP)nanoftp.c
+ $(XMLBASEDIR)$(DIRSEP)nanohttp.c
+ $(XMLBASEDIR)$(DIRSEP)parser.c
+ $(XMLBASEDIR)$(DIRSEP)parserInternals.c
+ $(XMLBASEDIR)$(DIRSEP)pattern.c
+ $(XMLBASEDIR)$(DIRSEP)relaxng.c
+ $(XMLBASEDIR)$(DIRSEP)SAX2.c
+ $(XMLBASEDIR)$(DIRSEP)SAX.c
+ $(XMLBASEDIR)$(DIRSEP)threads.c
+ $(XMLBASEDIR)$(DIRSEP)tree.c
+ $(XMLBASEDIR)$(DIRSEP)uri.c
+ $(XMLBASEDIR)$(DIRSEP)valid.c
+ $(XMLBASEDIR)$(DIRSEP)xinclude.c
+ $(XMLBASEDIR)$(DIRSEP)xlink.c
+ $(XMLBASEDIR)$(DIRSEP)xmlIO.c
+ $(XMLBASEDIR)$(DIRSEP)xmlmemory.c
+ $(XMLBASEDIR)$(DIRSEP)xmlreader.c
+ $(XMLBASEDIR)$(DIRSEP)xmlregexp.c
+ $(XMLBASEDIR)$(DIRSEP)xmlsave.c
+ $(XMLBASEDIR)$(DIRSEP)xmlschemas.c
+ $(XMLBASEDIR)$(DIRSEP)xmlschemastypes.c
+ $(XMLBASEDIR)$(DIRSEP)xmlunicode.c
+ $(XMLBASEDIR)$(DIRSEP)xmlwriter.c
+ $(XMLBASEDIR)$(DIRSEP)xpath.c
+ $(XMLBASEDIR)$(DIRSEP)xpointer.c
+ $(XMLBASEDIR)$(DIRSEP)xmlstring.c
+ </sources>
+
+ <!-- the list of header files (for IDE projects) -->
+ <headers>
+ $(XMLINCLUDEDIR)c14n.h
+ $(XMLINCLUDEDIR)catalog.h
+ $(XMLINCLUDEDIR)chvalid.h
+ $(XMLINCLUDEDIR)debugXML.h
+ $(XMLINCLUDEDIR)dict.h
+ $(XMLINCLUDEDIR)DOCBparser.h
+ $(XMLINCLUDEDIR)encoding.h
+ $(XMLINCLUDEDIR)entities.h
+ $(XMLINCLUDEDIR)globals.h
+ $(XMLINCLUDEDIR)hash.h
+ $(XMLINCLUDEDIR)HTMLparser.h
+ $(XMLINCLUDEDIR)HTMLtree.h
+ $(XMLINCLUDEDIR)list.h
+ $(XMLINCLUDEDIR)nanoftp.h
+ $(XMLINCLUDEDIR)nanohttp.h
+ $(XMLINCLUDEDIR)parser.h
+ $(XMLINCLUDEDIR)parserInternals.h
+ $(XMLINCLUDEDIR)pattern.h
+ $(XMLINCLUDEDIR)relaxng.h
+ $(XMLINCLUDEDIR)SAX.h
+ $(XMLINCLUDEDIR)SAX2.h
+ $(XMLINCLUDEDIR)schemasInternals.h
+ $(XMLINCLUDEDIR)threads.h
+ $(XMLINCLUDEDIR)tree.h
+ $(XMLINCLUDEDIR)uri.h
+ $(XMLINCLUDEDIR)valid.h
+ $(XMLINCLUDEDIR)xinclude.h
+ $(XMLINCLUDEDIR)xlink.h
+ $(XMLINCLUDEDIR)xmlautomata.h
+ $(XMLINCLUDEDIR)xmlerror.h
+ $(XMLINCLUDEDIR)xmlexports.h
+ $(XMLINCLUDEDIR)xmlIO.h
+ $(XMLINCLUDEDIR)xmlmemory.h
+ $(XMLINCLUDEDIR)xmlmodule.h
+ $(XMLINCLUDEDIR)xmlreader.h
+ $(XMLINCLUDEDIR)xmlregexp.h
+ $(XMLINCLUDEDIR)xmlsave.h
+ $(XMLINCLUDEDIR)xmlschemas.h
+ $(XMLINCLUDEDIR)xmlschemastypes.h
+ $(XMLINCLUDEDIR)xmlstring.h
+ $(XMLINCLUDEDIR)xmlunicode.h
+ $(XMLINCLUDEDIR)xmlversion.h
+ $(XMLINCLUDEDIR)xmlwriter.h
+ $(XMLINCLUDEDIR)xpath.h
+ $(XMLINCLUDEDIR)xpathInternals.h
+ $(XMLINCLUDEDIR)xpointer.h
+ </headers>
+
+ <!-- these ones are not inside the include/libxml folder -->
+ <headers>
+ $(XMLBASEDIR)$(DIRSEP)libxml.h
+ $(XMLBASEDIR)$(DIRSEP)triodef.h
+ $(XMLBASEDIR)$(DIRSEP)trionan.h
+ $(XMLBASEDIR)$(DIRSEP)include$(DIRSEP)wsockcompat.h
+ </headers>
+ </lib>
+
+
+
+ <!-- -->
+ <!-- LIBXML2 test programs -->
+ <!-- -->
+
+ <set var="BUILD_ALL_TESTS">
+
+ <!-- when using full options support with MSVC6PRJ we should
+ avoid to create all the DSP files required for the test
+ programs: they would take a _lot_ of space !! -->
+ <if cond="FORMAT=='msvc6prj' and FULL_OPTIONS_SUPPORT=='1'">0</if>
+
+ <!-- when creating a makefile or using MSVC6PRJ with limited
+ options support, then we can build all the tests safely -->
+ <if cond="FORMAT!='msvc6prj' or FULL_OPTIONS_SUPPORT=='0'">1</if>
+
+ </set>
+
+ <if cond="BUILD_ALL_TESTS=='1'">
+
+ <exe id="testAutomata" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testAutomata.c</sources></exe>
+ <exe id="testC14N" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testC14N.c</sources></exe>
+ <exe id="testHTML" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testHTML.c</sources></exe>
+ <exe id="testReader" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testReader.c</sources></exe>
+ <exe id="testRegexp" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testRegexp.c</sources></exe>
+ <exe id="testRelax" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testRelax.c</sources></exe>
+ <exe id="testSax" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testSax.c</sources></exe>
+ <exe id="testSchemas" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testSchemas.c</sources></exe>
+ <exe id="testURI" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testURI.c</sources></exe>
+ <exe id="testXPath" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testXPath.c</sources></exe>
+ <exe id="xmllint" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)xmllint.c</sources></exe>
+
+ <if cond="FORMAT=='autoconf'">
+ <exe id="testdso" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testdso.c</sources></exe>
+ </if>
+
+ <!-- FIXME:
+ <exe id="testModule" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testModule.c</sources></exe>
+
+ <if cond="WITH_THREADS!='no'">
+ <exe id="testThreads" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testThreads.c</sources></exe>
+ </if>
+ -->
+ </if>
+
+</makefile>
diff --git a/libxml2-2.9.10/buf.c b/libxml2-2.9.10/buf.c
new file mode 100644
index 0000000..d46da36
--- /dev/null
+++ b/libxml2-2.9.10/buf.c
@@ -0,0 +1,1345 @@
+/*
+ * buf.c: memory buffers for libxml2
+ *
+ * new buffer structures and entry points to simplify the maintenance
+ * of libxml2 and ensure we keep good control over memory allocations
+ * and stay 64 bits clean.
+ * The new entry point use the xmlBufPtr opaque structure and
+ * xmlBuf...() counterparts to the old xmlBuf...() functions
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel@veillard.com
+ */
+
+#define IN_LIBXML
+#include "libxml.h"
+
+#include <string.h> /* for memset() only ! */
+#include <limits.h>
+#ifdef HAVE_CTYPE_H
+#include <ctype.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include <libxml/tree.h>
+#include <libxml/globals.h>
+#include <libxml/tree.h>
+#include <libxml/parserInternals.h> /* for XML_MAX_TEXT_LENGTH */
+#include "buf.h"
+
+#define WITH_BUFFER_COMPAT
+
+/**
+ * xmlBuf:
+ *
+ * A buffer structure. The base of the structure is somehow compatible
+ * with struct _xmlBuffer to limit risks on application which accessed
+ * directly the input->buf->buffer structures.
+ */
+
+struct _xmlBuf {
+ xmlChar *content; /* The buffer content UTF8 */
+ unsigned int compat_use; /* for binary compatibility */
+ unsigned int compat_size; /* for binary compatibility */
+ xmlBufferAllocationScheme alloc; /* The realloc method */
+ xmlChar *contentIO; /* in IO mode we may have a different base */
+ size_t use; /* The buffer size used */
+ size_t size; /* The buffer size */
+ xmlBufferPtr buffer; /* wrapper for an old buffer */
+ int error; /* an error code if a failure occurred */
+};
+
+#ifdef WITH_BUFFER_COMPAT
+/*
+ * Macro for compatibility with xmlBuffer to be used after an xmlBuf
+ * is updated. This makes sure the compat fields are updated too.
+ */
+#define UPDATE_COMPAT(buf) \
+ if (buf->size < INT_MAX) buf->compat_size = buf->size; \
+ else buf->compat_size = INT_MAX; \
+ if (buf->use < INT_MAX) buf->compat_use = buf->use; \
+ else buf->compat_use = INT_MAX;
+
+/*
+ * Macro for compatibility with xmlBuffer to be used in all the xmlBuf
+ * entry points, it checks that the compat fields have not been modified
+ * by direct call to xmlBuffer function from code compiled before 2.9.0 .
+ */
+#define CHECK_COMPAT(buf) \
+ if (buf->size != (size_t) buf->compat_size) \
+ if (buf->compat_size < INT_MAX) \
+ buf->size = buf->compat_size; \
+ if (buf->use != (size_t) buf->compat_use) \
+ if (buf->compat_use < INT_MAX) \
+ buf->use = buf->compat_use;
+
+#else /* ! WITH_BUFFER_COMPAT */
+#define UPDATE_COMPAT(buf)
+#define CHECK_COMPAT(buf)
+#endif /* WITH_BUFFER_COMPAT */
+
+/**
+ * xmlBufMemoryError:
+ * @extra: extra informations
+ *
+ * Handle an out of memory condition
+ * To be improved...
+ */
+static void
+xmlBufMemoryError(xmlBufPtr buf, const char *extra)
+{
+ __xmlSimpleError(XML_FROM_BUFFER, XML_ERR_NO_MEMORY, NULL, NULL, extra);
+ if ((buf) && (buf->error == 0))
+ buf->error = XML_ERR_NO_MEMORY;
+}
+
+/**
+ * xmlBufOverflowError:
+ * @extra: extra informations
+ *
+ * Handle a buffer overflow error
+ * To be improved...
+ */
+static void
+xmlBufOverflowError(xmlBufPtr buf, const char *extra)
+{
+ __xmlSimpleError(XML_FROM_BUFFER, XML_BUF_OVERFLOW, NULL, NULL, extra);
+ if ((buf) && (buf->error == 0))
+ buf->error = XML_BUF_OVERFLOW;
+}
+
+
+/**
+ * xmlBufCreate:
+ *
+ * routine to create an XML buffer.
+ * returns the new structure.
+ */
+xmlBufPtr
+xmlBufCreate(void) {
+ xmlBufPtr ret;
+
+ ret = (xmlBufPtr) xmlMalloc(sizeof(xmlBuf));
+ if (ret == NULL) {
+ xmlBufMemoryError(NULL, "creating buffer");
+ return(NULL);
+ }
+ ret->compat_use = 0;
+ ret->use = 0;
+ ret->error = 0;
+ ret->buffer = NULL;
+ ret->size = xmlDefaultBufferSize;
+ ret->compat_size = xmlDefaultBufferSize;
+ ret->alloc = xmlBufferAllocScheme;
+ ret->content = (xmlChar *) xmlMallocAtomic(ret->size * sizeof(xmlChar));
+ if (ret->content == NULL) {
+ xmlBufMemoryError(ret, "creating buffer");
+ xmlFree(ret);
+ return(NULL);
+ }
+ ret->content[0] = 0;
+ ret->contentIO = NULL;
+ return(ret);
+}
+
+/**
+ * xmlBufCreateSize:
+ * @size: initial size of buffer
+ *
+ * routine to create an XML buffer.
+ * returns the new structure.
+ */
+xmlBufPtr
+xmlBufCreateSize(size_t size) {
+ xmlBufPtr ret;
+
+ ret = (xmlBufPtr) xmlMalloc(sizeof(xmlBuf));
+ if (ret == NULL) {
+ xmlBufMemoryError(NULL, "creating buffer");
+ return(NULL);
+ }
+ ret->compat_use = 0;
+ ret->use = 0;
+ ret->error = 0;
+ ret->buffer = NULL;
+ ret->alloc = xmlBufferAllocScheme;
+ ret->size = (size ? size+2 : 0); /* +1 for ending null */
+ ret->compat_size = (int) ret->size;
+ if (ret->size){
+ ret->content = (xmlChar *) xmlMallocAtomic(ret->size * sizeof(xmlChar));
+ if (ret->content == NULL) {
+ xmlBufMemoryError(ret, "creating buffer");
+ xmlFree(ret);
+ return(NULL);
+ }
+ ret->content[0] = 0;
+ } else
+ ret->content = NULL;
+ ret->contentIO = NULL;
+ return(ret);
+}
+
+/**
+ * xmlBufDetach:
+ * @buf: the buffer
+ *
+ * Remove the string contained in a buffer and give it back to the
+ * caller. The buffer is reset to an empty content.
+ * This doesn't work with immutable buffers as they can't be reset.
+ *
+ * Returns the previous string contained by the buffer.
+ */
+xmlChar *
+xmlBufDetach(xmlBufPtr buf) {
+ xmlChar *ret;
+
+ if (buf == NULL)
+ return(NULL);
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE)
+ return(NULL);
+ if (buf->buffer != NULL)
+ return(NULL);
+ if (buf->error)
+ return(NULL);
+
+ ret = buf->content;
+ buf->content = NULL;
+ buf->size = 0;
+ buf->use = 0;
+ buf->compat_use = 0;
+ buf->compat_size = 0;
+
+ return ret;
+}
+
+
+/**
+ * xmlBufCreateStatic:
+ * @mem: the memory area
+ * @size: the size in byte
+ *
+ * routine to create an XML buffer from an immutable memory area.
+ * The area won't be modified nor copied, and is expected to be
+ * present until the end of the buffer lifetime.
+ *
+ * returns the new structure.
+ */
+xmlBufPtr
+xmlBufCreateStatic(void *mem, size_t size) {
+ xmlBufPtr ret;
+
+ if (mem == NULL)
+ return(NULL);
+
+ ret = (xmlBufPtr) xmlMalloc(sizeof(xmlBuf));
+ if (ret == NULL) {
+ xmlBufMemoryError(NULL, "creating buffer");
+ return(NULL);
+ }
+ if (size < INT_MAX) {
+ ret->compat_use = size;
+ ret->compat_size = size;
+ } else {
+ ret->compat_use = INT_MAX;
+ ret->compat_size = INT_MAX;
+ }
+ ret->use = size;
+ ret->size = size;
+ ret->alloc = XML_BUFFER_ALLOC_IMMUTABLE;
+ ret->content = (xmlChar *) mem;
+ ret->error = 0;
+ ret->buffer = NULL;
+ return(ret);
+}
+
+/**
+ * xmlBufGetAllocationScheme:
+ * @buf: the buffer
+ *
+ * Get the buffer allocation scheme
+ *
+ * Returns the scheme or -1 in case of error
+ */
+int
+xmlBufGetAllocationScheme(xmlBufPtr buf) {
+ if (buf == NULL) {
+#ifdef DEBUG_BUFFER
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufGetAllocationScheme: buf == NULL\n");
+#endif
+ return(-1);
+ }
+ return(buf->alloc);
+}
+
+/**
+ * xmlBufSetAllocationScheme:
+ * @buf: the buffer to tune
+ * @scheme: allocation scheme to use
+ *
+ * Sets the allocation scheme for this buffer
+ *
+ * returns 0 in case of success and -1 in case of failure
+ */
+int
+xmlBufSetAllocationScheme(xmlBufPtr buf,
+ xmlBufferAllocationScheme scheme) {
+ if ((buf == NULL) || (buf->error != 0)) {
+#ifdef DEBUG_BUFFER
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufSetAllocationScheme: buf == NULL or in error\n");
+#endif
+ return(-1);
+ }
+ if ((buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) ||
+ (buf->alloc == XML_BUFFER_ALLOC_IO))
+ return(-1);
+ if ((scheme == XML_BUFFER_ALLOC_DOUBLEIT) ||
+ (scheme == XML_BUFFER_ALLOC_EXACT) ||
+ (scheme == XML_BUFFER_ALLOC_HYBRID) ||
+ (scheme == XML_BUFFER_ALLOC_IMMUTABLE) ||
+ (scheme == XML_BUFFER_ALLOC_BOUNDED)) {
+ buf->alloc = scheme;
+ if (buf->buffer)
+ buf->buffer->alloc = scheme;
+ return(0);
+ }
+ /*
+ * Switching a buffer ALLOC_IO has the side effect of initializing
+ * the contentIO field with the current content
+ */
+ if (scheme == XML_BUFFER_ALLOC_IO) {
+ buf->alloc = XML_BUFFER_ALLOC_IO;
+ buf->contentIO = buf->content;
+ }
+ return(-1);
+}
+
+/**
+ * xmlBufFree:
+ * @buf: the buffer to free
+ *
+ * Frees an XML buffer. It frees both the content and the structure which
+ * encapsulate it.
+ */
+void
+xmlBufFree(xmlBufPtr buf) {
+ if (buf == NULL) {
+#ifdef DEBUG_BUFFER
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufFree: buf == NULL\n");
+#endif
+ return;
+ }
+
+ if ((buf->alloc == XML_BUFFER_ALLOC_IO) &&
+ (buf->contentIO != NULL)) {
+ xmlFree(buf->contentIO);
+ } else if ((buf->content != NULL) &&
+ (buf->alloc != XML_BUFFER_ALLOC_IMMUTABLE)) {
+ xmlFree(buf->content);
+ }
+ xmlFree(buf);
+}
+
+/**
+ * xmlBufEmpty:
+ * @buf: the buffer
+ *
+ * empty a buffer.
+ */
+void
+xmlBufEmpty(xmlBufPtr buf) {
+ if ((buf == NULL) || (buf->error != 0)) return;
+ if (buf->content == NULL) return;
+ CHECK_COMPAT(buf)
+ buf->use = 0;
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) {
+ buf->content = BAD_CAST "";
+ } else if ((buf->alloc == XML_BUFFER_ALLOC_IO) &&
+ (buf->contentIO != NULL)) {
+ size_t start_buf = buf->content - buf->contentIO;
+
+ buf->size += start_buf;
+ buf->content = buf->contentIO;
+ buf->content[0] = 0;
+ } else {
+ buf->content[0] = 0;
+ }
+ UPDATE_COMPAT(buf)
+}
+
+/**
+ * xmlBufShrink:
+ * @buf: the buffer to dump
+ * @len: the number of xmlChar to remove
+ *
+ * Remove the beginning of an XML buffer.
+ * NOTE that this routine behaviour differs from xmlBufferShrink()
+ * as it will return 0 on error instead of -1 due to size_t being
+ * used as the return type.
+ *
+ * Returns the number of byte removed or 0 in case of failure
+ */
+size_t
+xmlBufShrink(xmlBufPtr buf, size_t len) {
+ if ((buf == NULL) || (buf->error != 0)) return(0);
+ CHECK_COMPAT(buf)
+ if (len == 0) return(0);
+ if (len > buf->use) return(0);
+
+ buf->use -= len;
+ if ((buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) ||
+ ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL))) {
+ /*
+ * we just move the content pointer, but also make sure
+ * the perceived buffer size has shrunk accordingly
+ */
+ buf->content += len;
+ buf->size -= len;
+
+ /*
+ * sometimes though it maybe be better to really shrink
+ * on IO buffers
+ */
+ if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) {
+ size_t start_buf = buf->content - buf->contentIO;
+ if (start_buf >= buf->size) {
+ memmove(buf->contentIO, &buf->content[0], buf->use);
+ buf->content = buf->contentIO;
+ buf->content[buf->use] = 0;
+ buf->size += start_buf;
+ }
+ }
+ } else {
+ memmove(buf->content, &buf->content[len], buf->use);
+ buf->content[buf->use] = 0;
+ }
+ UPDATE_COMPAT(buf)
+ return(len);
+}
+
+/**
+ * xmlBufGrowInternal:
+ * @buf: the buffer
+ * @len: the minimum free size to allocate
+ *
+ * Grow the available space of an XML buffer, @len is the target value
+ * Error checking should be done on buf->error since using the return
+ * value doesn't work that well
+ *
+ * Returns 0 in case of error or the length made available otherwise
+ */
+static size_t
+xmlBufGrowInternal(xmlBufPtr buf, size_t len) {
+ size_t size;
+ xmlChar *newbuf;
+
+ if ((buf == NULL) || (buf->error != 0)) return(0);
+ CHECK_COMPAT(buf)
+
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return(0);
+ if (buf->use + len < buf->size)
+ return(buf->size - buf->use);
+
+ /*
+ * Windows has a BIG problem on realloc timing, so we try to double
+ * the buffer size (if that's enough) (bug 146697)
+ * Apparently BSD too, and it's probably best for linux too
+ * On an embedded system this may be something to change
+ */
+#if 1
+ if (buf->size > (size_t) len)
+ size = buf->size * 2;
+ else
+ size = buf->use + len + 100;
+#else
+ size = buf->use + len + 100;
+#endif
+
+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) {
+ /*
+ * Used to provide parsing limits
+ */
+ if ((buf->use + len >= XML_MAX_TEXT_LENGTH) ||
+ (buf->size >= XML_MAX_TEXT_LENGTH)) {
+ xmlBufMemoryError(buf, "buffer error: text too long\n");
+ return(0);
+ }
+ if (size >= XML_MAX_TEXT_LENGTH)
+ size = XML_MAX_TEXT_LENGTH;
+ }
+ if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) {
+ size_t start_buf = buf->content - buf->contentIO;
+
+ newbuf = (xmlChar *) xmlRealloc(buf->contentIO, start_buf + size);
+ if (newbuf == NULL) {
+ xmlBufMemoryError(buf, "growing buffer");
+ return(0);
+ }
+ buf->contentIO = newbuf;
+ buf->content = newbuf + start_buf;
+ } else {
+ newbuf = (xmlChar *) xmlRealloc(buf->content, size);
+ if (newbuf == NULL) {
+ xmlBufMemoryError(buf, "growing buffer");
+ return(0);
+ }
+ buf->content = newbuf;
+ }
+ buf->size = size;
+ UPDATE_COMPAT(buf)
+ return(buf->size - buf->use);
+}
+
+/**
+ * xmlBufGrow:
+ * @buf: the buffer
+ * @len: the minimum free size to allocate
+ *
+ * Grow the available space of an XML buffer, @len is the target value
+ * This is been kept compatible with xmlBufferGrow() as much as possible
+ *
+ * Returns -1 in case of error or the length made available otherwise
+ */
+int
+xmlBufGrow(xmlBufPtr buf, int len) {
+ size_t ret;
+
+ if ((buf == NULL) || (len < 0)) return(-1);
+ if (len == 0)
+ return(0);
+ ret = xmlBufGrowInternal(buf, len);
+ if (buf->error != 0)
+ return(-1);
+ return((int) ret);
+}
+
+/**
+ * xmlBufInflate:
+ * @buf: the buffer
+ * @len: the minimum extra free size to allocate
+ *
+ * Grow the available space of an XML buffer, adding at least @len bytes
+ *
+ * Returns 0 if successful or -1 in case of error
+ */
+int
+xmlBufInflate(xmlBufPtr buf, size_t len) {
+ if (buf == NULL) return(-1);
+ xmlBufGrowInternal(buf, len + buf->size);
+ if (buf->error)
+ return(-1);
+ return(0);
+}
+
+/**
+ * xmlBufDump:
+ * @file: the file output
+ * @buf: the buffer to dump
+ *
+ * Dumps an XML buffer to a FILE *.
+ * Returns the number of #xmlChar written
+ */
+size_t
+xmlBufDump(FILE *file, xmlBufPtr buf) {
+ size_t ret;
+
+ if ((buf == NULL) || (buf->error != 0)) {
+#ifdef DEBUG_BUFFER
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufDump: buf == NULL or in error\n");
+#endif
+ return(0);
+ }
+ if (buf->content == NULL) {
+#ifdef DEBUG_BUFFER
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufDump: buf->content == NULL\n");
+#endif
+ return(0);
+ }
+ CHECK_COMPAT(buf)
+ if (file == NULL)
+ file = stdout;
+ ret = fwrite(buf->content, sizeof(xmlChar), buf->use, file);
+ return(ret);
+}
+
+/**
+ * xmlBufContent:
+ * @buf: the buffer
+ *
+ * Function to extract the content of a buffer
+ *
+ * Returns the internal content
+ */
+
+xmlChar *
+xmlBufContent(const xmlBuf *buf)
+{
+ if ((!buf) || (buf->error))
+ return NULL;
+
+ return(buf->content);
+}
+
+/**
+ * xmlBufEnd:
+ * @buf: the buffer
+ *
+ * Function to extract the end of the content of a buffer
+ *
+ * Returns the end of the internal content or NULL in case of error
+ */
+
+xmlChar *
+xmlBufEnd(xmlBufPtr buf)
+{
+ if ((!buf) || (buf->error))
+ return NULL;
+ CHECK_COMPAT(buf)
+
+ return(&buf->content[buf->use]);
+}
+
+/**
+ * xmlBufAddLen:
+ * @buf: the buffer
+ * @len: the size which were added at the end
+ *
+ * Sometime data may be added at the end of the buffer without
+ * using the xmlBuf APIs that is used to expand the used space
+ * and set the zero terminating at the end of the buffer
+ *
+ * Returns -1 in case of error and 0 otherwise
+ */
+int
+xmlBufAddLen(xmlBufPtr buf, size_t len) {
+ if ((buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ if (len > (buf->size - buf->use))
+ return(-1);
+ buf->use += len;
+ UPDATE_COMPAT(buf)
+ if (buf->size > buf->use)
+ buf->content[buf->use] = 0;
+ else
+ return(-1);
+ return(0);
+}
+
+/**
+ * xmlBufErase:
+ * @buf: the buffer
+ * @len: the size to erase at the end
+ *
+ * Sometime data need to be erased at the end of the buffer
+ *
+ * Returns -1 in case of error and 0 otherwise
+ */
+int
+xmlBufErase(xmlBufPtr buf, size_t len) {
+ if ((buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ if (len > buf->use)
+ return(-1);
+ buf->use -= len;
+ buf->content[buf->use] = 0;
+ UPDATE_COMPAT(buf)
+ return(0);
+}
+
+/**
+ * xmlBufLength:
+ * @buf: the buffer
+ *
+ * Function to get the length of a buffer
+ *
+ * Returns the length of data in the internal content
+ */
+
+size_t
+xmlBufLength(const xmlBufPtr buf)
+{
+ if ((!buf) || (buf->error))
+ return 0;
+ CHECK_COMPAT(buf)
+
+ return(buf->use);
+}
+
+/**
+ * xmlBufUse:
+ * @buf: the buffer
+ *
+ * Function to get the length of a buffer
+ *
+ * Returns the length of data in the internal content
+ */
+
+size_t
+xmlBufUse(const xmlBufPtr buf)
+{
+ if ((!buf) || (buf->error))
+ return 0;
+ CHECK_COMPAT(buf)
+
+ return(buf->use);
+}
+
+/**
+ * xmlBufAvail:
+ * @buf: the buffer
+ *
+ * Function to find how much free space is allocated but not
+ * used in the buffer. It does not account for the terminating zero
+ * usually needed
+ *
+ * Returns the amount or 0 if none or an error occurred
+ */
+
+size_t
+xmlBufAvail(const xmlBufPtr buf)
+{
+ if ((!buf) || (buf->error))
+ return 0;
+ CHECK_COMPAT(buf)
+
+ return(buf->size - buf->use);
+}
+
+/**
+ * xmlBufIsEmpty:
+ * @buf: the buffer
+ *
+ * Tell if a buffer is empty
+ *
+ * Returns 0 if no, 1 if yes and -1 in case of error
+ */
+int
+xmlBufIsEmpty(const xmlBufPtr buf)
+{
+ if ((!buf) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+
+ return(buf->use == 0);
+}
+
+/**
+ * xmlBufResize:
+ * @buf: the buffer to resize
+ * @size: the desired size
+ *
+ * Resize a buffer to accommodate minimum size of @size.
+ *
+ * Returns 0 in case of problems, 1 otherwise
+ */
+int
+xmlBufResize(xmlBufPtr buf, size_t size)
+{
+ unsigned int newSize;
+ xmlChar* rebuf = NULL;
+ size_t start_buf;
+
+ if ((buf == NULL) || (buf->error))
+ return(0);
+ CHECK_COMPAT(buf)
+
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return(0);
+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) {
+ /*
+ * Used to provide parsing limits
+ */
+ if (size >= XML_MAX_TEXT_LENGTH) {
+ xmlBufMemoryError(buf, "buffer error: text too long\n");
+ return(0);
+ }
+ }
+
+ /* Don't resize if we don't have to */
+ if (size < buf->size)
+ return 1;
+
+ /* figure out new size */
+ switch (buf->alloc){
+ case XML_BUFFER_ALLOC_IO:
+ case XML_BUFFER_ALLOC_DOUBLEIT:
+ /*take care of empty case*/
+ newSize = (buf->size ? buf->size*2 : size + 10);
+ while (size > newSize) {
+ if (newSize > UINT_MAX / 2) {
+ xmlBufMemoryError(buf, "growing buffer");
+ return 0;
+ }
+ newSize *= 2;
+ }
+ break;
+ case XML_BUFFER_ALLOC_EXACT:
+ newSize = size+10;
+ break;
+ case XML_BUFFER_ALLOC_HYBRID:
+ if (buf->use < BASE_BUFFER_SIZE)
+ newSize = size;
+ else {
+ newSize = buf->size * 2;
+ while (size > newSize) {
+ if (newSize > UINT_MAX / 2) {
+ xmlBufMemoryError(buf, "growing buffer");
+ return 0;
+ }
+ newSize *= 2;
+ }
+ }
+ break;
+
+ default:
+ newSize = size+10;
+ break;
+ }
+
+ if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) {
+ start_buf = buf->content - buf->contentIO;
+
+ if (start_buf > newSize) {
+ /* move data back to start */
+ memmove(buf->contentIO, buf->content, buf->use);
+ buf->content = buf->contentIO;
+ buf->content[buf->use] = 0;
+ buf->size += start_buf;
+ } else {
+ rebuf = (xmlChar *) xmlRealloc(buf->contentIO, start_buf + newSize);
+ if (rebuf == NULL) {
+ xmlBufMemoryError(buf, "growing buffer");
+ return 0;
+ }
+ buf->contentIO = rebuf;
+ buf->content = rebuf + start_buf;
+ }
+ } else {
+ if (buf->content == NULL) {
+ rebuf = (xmlChar *) xmlMallocAtomic(newSize);
+ } else if (buf->size - buf->use < 100) {
+ rebuf = (xmlChar *) xmlRealloc(buf->content, newSize);
+ } else {
+ /*
+ * if we are reallocating a buffer far from being full, it's
+ * better to make a new allocation and copy only the used range
+ * and free the old one.
+ */
+ rebuf = (xmlChar *) xmlMallocAtomic(newSize);
+ if (rebuf != NULL) {
+ memcpy(rebuf, buf->content, buf->use);
+ xmlFree(buf->content);
+ rebuf[buf->use] = 0;
+ }
+ }
+ if (rebuf == NULL) {
+ xmlBufMemoryError(buf, "growing buffer");
+ return 0;
+ }
+ buf->content = rebuf;
+ }
+ buf->size = newSize;
+ UPDATE_COMPAT(buf)
+
+ return 1;
+}
+
+/**
+ * xmlBufAdd:
+ * @buf: the buffer to dump
+ * @str: the #xmlChar string
+ * @len: the number of #xmlChar to add
+ *
+ * Add a string range to an XML buffer. if len == -1, the length of
+ * str is recomputed.
+ *
+ * Returns 0 successful, a positive error code number otherwise
+ * and -1 in case of internal or API error.
+ */
+int
+xmlBufAdd(xmlBufPtr buf, const xmlChar *str, int len) {
+ unsigned int needSize;
+
+ if ((str == NULL) || (buf == NULL) || (buf->error))
+ return -1;
+ CHECK_COMPAT(buf)
+
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return -1;
+ if (len < -1) {
+#ifdef DEBUG_BUFFER
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufAdd: len < 0\n");
+#endif
+ return -1;
+ }
+ if (len == 0) return 0;
+
+ if (len < 0)
+ len = xmlStrlen(str);
+
+ if (len < 0) return -1;
+ if (len == 0) return 0;
+
+ needSize = buf->use + len + 2;
+ if (needSize > buf->size){
+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) {
+ /*
+ * Used to provide parsing limits
+ */
+ if (needSize >= XML_MAX_TEXT_LENGTH) {
+ xmlBufMemoryError(buf, "buffer error: text too long\n");
+ return(-1);
+ }
+ }
+ if (!xmlBufResize(buf, needSize)){
+ xmlBufMemoryError(buf, "growing buffer");
+ return XML_ERR_NO_MEMORY;
+ }
+ }
+
+ memmove(&buf->content[buf->use], str, len*sizeof(xmlChar));
+ buf->use += len;
+ buf->content[buf->use] = 0;
+ UPDATE_COMPAT(buf)
+ return 0;
+}
+
+/**
+ * xmlBufAddHead:
+ * @buf: the buffer
+ * @str: the #xmlChar string
+ * @len: the number of #xmlChar to add
+ *
+ * Add a string range to the beginning of an XML buffer.
+ * if len == -1, the length of @str is recomputed.
+ *
+ * Returns 0 successful, a positive error code number otherwise
+ * and -1 in case of internal or API error.
+ */
+int
+xmlBufAddHead(xmlBufPtr buf, const xmlChar *str, int len) {
+ unsigned int needSize;
+
+ if ((buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return -1;
+ if (str == NULL) {
+#ifdef DEBUG_BUFFER
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufAddHead: str == NULL\n");
+#endif
+ return -1;
+ }
+ if (len < -1) {
+#ifdef DEBUG_BUFFER
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufAddHead: len < 0\n");
+#endif
+ return -1;
+ }
+ if (len == 0) return 0;
+
+ if (len < 0)
+ len = xmlStrlen(str);
+
+ if (len <= 0) return -1;
+
+ if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) {
+ size_t start_buf = buf->content - buf->contentIO;
+
+ if (start_buf > (unsigned int) len) {
+ /*
+ * We can add it in the space previously shrunk
+ */
+ buf->content -= len;
+ memmove(&buf->content[0], str, len);
+ buf->use += len;
+ buf->size += len;
+ UPDATE_COMPAT(buf)
+ return(0);
+ }
+ }
+ needSize = buf->use + len + 2;
+ if (needSize > buf->size){
+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) {
+ /*
+ * Used to provide parsing limits
+ */
+ if (needSize >= XML_MAX_TEXT_LENGTH) {
+ xmlBufMemoryError(buf, "buffer error: text too long\n");
+ return(-1);
+ }
+ }
+ if (!xmlBufResize(buf, needSize)){
+ xmlBufMemoryError(buf, "growing buffer");
+ return XML_ERR_NO_MEMORY;
+ }
+ }
+
+ memmove(&buf->content[len], &buf->content[0], buf->use);
+ memmove(&buf->content[0], str, len);
+ buf->use += len;
+ buf->content[buf->use] = 0;
+ UPDATE_COMPAT(buf)
+ return 0;
+}
+
+/**
+ * xmlBufCat:
+ * @buf: the buffer to add to
+ * @str: the #xmlChar string
+ *
+ * Append a zero terminated string to an XML buffer.
+ *
+ * Returns 0 successful, a positive error code number otherwise
+ * and -1 in case of internal or API error.
+ */
+int
+xmlBufCat(xmlBufPtr buf, const xmlChar *str) {
+ if ((buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return -1;
+ if (str == NULL) return -1;
+ return xmlBufAdd(buf, str, -1);
+}
+
+/**
+ * xmlBufCCat:
+ * @buf: the buffer to dump
+ * @str: the C char string
+ *
+ * Append a zero terminated C string to an XML buffer.
+ *
+ * Returns 0 successful, a positive error code number otherwise
+ * and -1 in case of internal or API error.
+ */
+int
+xmlBufCCat(xmlBufPtr buf, const char *str) {
+ const char *cur;
+
+ if ((buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return -1;
+ if (str == NULL) {
+#ifdef DEBUG_BUFFER
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufCCat: str == NULL\n");
+#endif
+ return -1;
+ }
+ for (cur = str;*cur != 0;cur++) {
+ if (buf->use + 10 >= buf->size) {
+ if (!xmlBufResize(buf, buf->use+10)){
+ xmlBufMemoryError(buf, "growing buffer");
+ return XML_ERR_NO_MEMORY;
+ }
+ }
+ buf->content[buf->use++] = *cur;
+ }
+ buf->content[buf->use] = 0;
+ UPDATE_COMPAT(buf)
+ return 0;
+}
+
+/**
+ * xmlBufWriteCHAR:
+ * @buf: the XML buffer
+ * @string: the string to add
+ *
+ * routine which manages and grows an output buffer. This one adds
+ * xmlChars at the end of the buffer.
+ *
+ * Returns 0 if successful, a positive error code number otherwise
+ * and -1 in case of internal or API error.
+ */
+int
+xmlBufWriteCHAR(xmlBufPtr buf, const xmlChar *string) {
+ if ((buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE)
+ return(-1);
+ return(xmlBufCat(buf, string));
+}
+
+/**
+ * xmlBufWriteChar:
+ * @buf: the XML buffer output
+ * @string: the string to add
+ *
+ * routine which manage and grows an output buffer. This one add
+ * C chars at the end of the array.
+ *
+ * Returns 0 if successful, a positive error code number otherwise
+ * and -1 in case of internal or API error.
+ */
+int
+xmlBufWriteChar(xmlBufPtr buf, const char *string) {
+ if ((buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE)
+ return(-1);
+ return(xmlBufCCat(buf, string));
+}
+
+
+/**
+ * xmlBufWriteQuotedString:
+ * @buf: the XML buffer output
+ * @string: the string to add
+ *
+ * routine which manage and grows an output buffer. This one writes
+ * a quoted or double quoted #xmlChar string, checking first if it holds
+ * quote or double-quotes internally
+ *
+ * Returns 0 if successful, a positive error code number otherwise
+ * and -1 in case of internal or API error.
+ */
+int
+xmlBufWriteQuotedString(xmlBufPtr buf, const xmlChar *string) {
+ const xmlChar *cur, *base;
+ if ((buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE)
+ return(-1);
+ if (xmlStrchr(string, '\"')) {
+ if (xmlStrchr(string, '\'')) {
+#ifdef DEBUG_BUFFER
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufWriteQuotedString: string contains quote and double-quotes !\n");
+#endif
+ xmlBufCCat(buf, "\"");
+ base = cur = string;
+ while(*cur != 0){
+ if(*cur == '"'){
+ if (base != cur)
+ xmlBufAdd(buf, base, cur - base);
+ xmlBufAdd(buf, BAD_CAST "&quot;", 6);
+ cur++;
+ base = cur;
+ }
+ else {
+ cur++;
+ }
+ }
+ if (base != cur)
+ xmlBufAdd(buf, base, cur - base);
+ xmlBufCCat(buf, "\"");
+ }
+ else{
+ xmlBufCCat(buf, "\'");
+ xmlBufCat(buf, string);
+ xmlBufCCat(buf, "\'");
+ }
+ } else {
+ xmlBufCCat(buf, "\"");
+ xmlBufCat(buf, string);
+ xmlBufCCat(buf, "\"");
+ }
+ return(0);
+}
+
+/**
+ * xmlBufFromBuffer:
+ * @buffer: incoming old buffer to convert to a new one
+ *
+ * Helper routine to switch from the old buffer structures in use
+ * in various APIs. It creates a wrapper xmlBufPtr which will be
+ * used for internal processing until the xmlBufBackToBuffer() is
+ * issued.
+ *
+ * Returns a new xmlBufPtr unless the call failed and NULL is returned
+ */
+xmlBufPtr
+xmlBufFromBuffer(xmlBufferPtr buffer) {
+ xmlBufPtr ret;
+
+ if (buffer == NULL)
+ return(NULL);
+
+ ret = (xmlBufPtr) xmlMalloc(sizeof(xmlBuf));
+ if (ret == NULL) {
+ xmlBufMemoryError(NULL, "creating buffer");
+ return(NULL);
+ }
+ ret->use = buffer->use;
+ ret->size = buffer->size;
+ ret->compat_use = buffer->use;
+ ret->compat_size = buffer->size;
+ ret->error = 0;
+ ret->buffer = buffer;
+ ret->alloc = buffer->alloc;
+ ret->content = buffer->content;
+ ret->contentIO = buffer->contentIO;
+
+ return(ret);
+}
+
+/**
+ * xmlBufBackToBuffer:
+ * @buf: new buffer wrapping the old one
+ *
+ * Function to be called once internal processing had been done to
+ * update back the buffer provided by the user. This can lead to
+ * a failure in case the size accumulated in the xmlBuf is larger
+ * than what an xmlBuffer can support on 64 bits (INT_MAX)
+ * The xmlBufPtr @buf wrapper is deallocated by this call in any case.
+ *
+ * Returns the old xmlBufferPtr unless the call failed and NULL is returned
+ */
+xmlBufferPtr
+xmlBufBackToBuffer(xmlBufPtr buf) {
+ xmlBufferPtr ret;
+
+ if (buf == NULL)
+ return(NULL);
+ CHECK_COMPAT(buf)
+ if ((buf->error) || (buf->buffer == NULL)) {
+ xmlBufFree(buf);
+ return(NULL);
+ }
+
+ ret = buf->buffer;
+ /*
+ * What to do in case of error in the buffer ???
+ */
+ if (buf->use > INT_MAX) {
+ /*
+ * Worse case, we really allocated and used more than the
+ * maximum allowed memory for an xmlBuffer on this architecture.
+ * Keep the buffer but provide a truncated size value.
+ */
+ xmlBufOverflowError(buf, "Used size too big for xmlBuffer");
+ ret->use = INT_MAX;
+ ret->size = INT_MAX;
+ } else if (buf->size > INT_MAX) {
+ /*
+ * milder case, we allocated more than the maximum allowed memory
+ * for an xmlBuffer on this architecture, but used less than the
+ * limit.
+ * Keep the buffer but provide a truncated size value.
+ */
+ xmlBufOverflowError(buf, "Allocated size too big for xmlBuffer");
+ ret->size = INT_MAX;
+ }
+ ret->use = (int) buf->use;
+ ret->size = (int) buf->size;
+ ret->alloc = buf->alloc;
+ ret->content = buf->content;
+ ret->contentIO = buf->contentIO;
+ xmlFree(buf);
+ return(ret);
+}
+
+/**
+ * xmlBufMergeBuffer:
+ * @buf: an xmlBufPtr
+ * @buffer: the buffer to consume into @buf
+ *
+ * The content of @buffer is appended to @buf and @buffer is freed
+ *
+ * Returns -1 in case of error, 0 otherwise, in any case @buffer is freed
+ */
+int
+xmlBufMergeBuffer(xmlBufPtr buf, xmlBufferPtr buffer) {
+ int ret = 0;
+
+ if ((buf == NULL) || (buf->error)) {
+ xmlBufferFree(buffer);
+ return(-1);
+ }
+ CHECK_COMPAT(buf)
+ if ((buffer != NULL) && (buffer->content != NULL) &&
+ (buffer->use > 0)) {
+ ret = xmlBufAdd(buf, buffer->content, buffer->use);
+ }
+ xmlBufferFree(buffer);
+ return(ret);
+}
+
+/**
+ * xmlBufResetInput:
+ * @buf: an xmlBufPtr
+ * @input: an xmlParserInputPtr
+ *
+ * Update the input to use the current set of pointers from the buffer.
+ *
+ * Returns -1 in case of error, 0 otherwise
+ */
+int
+xmlBufResetInput(xmlBufPtr buf, xmlParserInputPtr input) {
+ if ((input == NULL) || (buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ input->base = input->cur = buf->content;
+ input->end = &buf->content[buf->use];
+ return(0);
+}
+
+/**
+ * xmlBufGetInputBase:
+ * @buf: an xmlBufPtr
+ * @input: an xmlParserInputPtr
+ *
+ * Get the base of the @input relative to the beginning of the buffer
+ *
+ * Returns the size_t corresponding to the displacement
+ */
+size_t
+xmlBufGetInputBase(xmlBufPtr buf, xmlParserInputPtr input) {
+ size_t base;
+
+ if ((input == NULL) || (buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ base = input->base - buf->content;
+ /*
+ * We could do some pointer arithmetic checks but that's probably
+ * sufficient.
+ */
+ if (base > buf->size) {
+ xmlBufOverflowError(buf, "Input reference outside of the buffer");
+ base = 0;
+ }
+ return(base);
+}
+
+/**
+ * xmlBufSetInputBaseCur:
+ * @buf: an xmlBufPtr
+ * @input: an xmlParserInputPtr
+ * @base: the base value relative to the beginning of the buffer
+ * @cur: the cur value relative to the beginning of the buffer
+ *
+ * Update the input to use the base and cur relative to the buffer
+ * after a possible reallocation of its content
+ *
+ * Returns -1 in case of error, 0 otherwise
+ */
+int
+xmlBufSetInputBaseCur(xmlBufPtr buf, xmlParserInputPtr input,
+ size_t base, size_t cur) {
+ if ((input == NULL) || (buf == NULL) || (buf->error))
+ return(-1);
+ CHECK_COMPAT(buf)
+ input->base = &buf->content[base];
+ input->cur = input->base + cur;
+ input->end = &buf->content[buf->use];
+ return(0);
+}
+
+#define bottom_buf
+#include "elfgcchack.h"
diff --git a/libxml2-2.9.10/buf.h b/libxml2-2.9.10/buf.h
new file mode 100644
index 0000000..ebdc978
--- /dev/null
+++ b/libxml2-2.9.10/buf.h
@@ -0,0 +1,72 @@
+/*
+ * Summary: Internal Interfaces for memory buffers in libxml2
+ * Description: this module describes most of the new xmlBuf buffer
+ * entry points, those are private routines, with a
+ * few exceptions exported in tree.h. This was added
+ * in 2.9.0.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_BUF_H__
+#define __XML_BUF_H__
+
+#include <libxml/tree.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+xmlBufPtr xmlBufCreate(void);
+xmlBufPtr xmlBufCreateSize(size_t size);
+xmlBufPtr xmlBufCreateStatic(void *mem, size_t size);
+
+int xmlBufSetAllocationScheme(xmlBufPtr buf,
+ xmlBufferAllocationScheme scheme);
+int xmlBufGetAllocationScheme(xmlBufPtr buf);
+
+void xmlBufFree(xmlBufPtr buf);
+void xmlBufEmpty(xmlBufPtr buf);
+
+/* size_t xmlBufShrink(xmlBufPtr buf, size_t len); */
+int xmlBufGrow(xmlBufPtr buf, int len);
+int xmlBufInflate(xmlBufPtr buf, size_t len);
+int xmlBufResize(xmlBufPtr buf, size_t len);
+
+int xmlBufAdd(xmlBufPtr buf, const xmlChar *str, int len);
+int xmlBufAddHead(xmlBufPtr buf, const xmlChar *str, int len);
+int xmlBufCat(xmlBufPtr buf, const xmlChar *str);
+int xmlBufCCat(xmlBufPtr buf, const char *str);
+int xmlBufWriteCHAR(xmlBufPtr buf, const xmlChar *string);
+int xmlBufWriteChar(xmlBufPtr buf, const char *string);
+int xmlBufWriteQuotedString(xmlBufPtr buf, const xmlChar *string);
+
+size_t xmlBufAvail(const xmlBufPtr buf);
+size_t xmlBufLength(const xmlBufPtr buf);
+/* size_t xmlBufUse(const xmlBufPtr buf); */
+int xmlBufIsEmpty(const xmlBufPtr buf);
+int xmlBufAddLen(xmlBufPtr buf, size_t len);
+int xmlBufErase(xmlBufPtr buf, size_t len);
+
+/* const xmlChar * xmlBufContent(const xmlBuf *buf); */
+/* const xmlChar * xmlBufEnd(xmlBufPtr buf); */
+
+xmlChar * xmlBufDetach(xmlBufPtr buf);
+
+size_t xmlBufDump(FILE *file, xmlBufPtr buf);
+
+xmlBufPtr xmlBufFromBuffer(xmlBufferPtr buffer);
+xmlBufferPtr xmlBufBackToBuffer(xmlBufPtr buf);
+int xmlBufMergeBuffer(xmlBufPtr buf, xmlBufferPtr buffer);
+
+int xmlBufResetInput(xmlBufPtr buf, xmlParserInputPtr input);
+size_t xmlBufGetInputBase(xmlBufPtr buf, xmlParserInputPtr input);
+int xmlBufSetInputBaseCur(xmlBufPtr buf, xmlParserInputPtr input,
+ size_t base, size_t cur);
+#ifdef __cplusplus
+}
+#endif
+#endif /* __XML_BUF_H__ */
+
diff --git a/libxml2-2.9.10/c14n.c b/libxml2-2.9.10/c14n.c
new file mode 100644
index 0000000..5b3fbe7
--- /dev/null
+++ b/libxml2-2.9.10/c14n.c
@@ -0,0 +1,2234 @@
+/*
+ * "Canonical XML" implementation
+ * http://www.w3.org/TR/xml-c14n
+ *
+ * "Exclusive XML Canonicalization" implementation
+ * http://www.w3.org/TR/xml-exc-c14n
+ *
+ * See Copyright for the status of this software.
+ *
+ * Author: Aleksey Sanin <aleksey@aleksey.com>
+ */
+#define IN_LIBXML
+#include "libxml.h"
+#ifdef LIBXML_C14N_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include <string.h>
+
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/uri.h>
+#include <libxml/xmlerror.h>
+#include <libxml/globals.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/c14n.h>
+
+#include "buf.h"
+
+/************************************************************************
+ * *
+ * Some declaration better left private ATM *
+ * *
+ ************************************************************************/
+
+typedef enum {
+ XMLC14N_BEFORE_DOCUMENT_ELEMENT = 0,
+ XMLC14N_INSIDE_DOCUMENT_ELEMENT = 1,
+ XMLC14N_AFTER_DOCUMENT_ELEMENT = 2
+} xmlC14NPosition;
+
+typedef struct _xmlC14NVisibleNsStack {
+ int nsCurEnd; /* number of nodes in the set */
+ int nsPrevStart; /* the beginning of the stack for previous visible node */
+ int nsPrevEnd; /* the end of the stack for previous visible node */
+ int nsMax; /* size of the array as allocated */
+ xmlNsPtr *nsTab; /* array of ns in no particular order */
+ xmlNodePtr *nodeTab; /* array of nodes in no particular order */
+} xmlC14NVisibleNsStack, *xmlC14NVisibleNsStackPtr;
+
+typedef struct _xmlC14NCtx {
+ /* input parameters */
+ xmlDocPtr doc;
+ xmlC14NIsVisibleCallback is_visible_callback;
+ void* user_data;
+ int with_comments;
+ xmlOutputBufferPtr buf;
+
+ /* position in the XML document */
+ xmlC14NPosition pos;
+ int parent_is_doc;
+ xmlC14NVisibleNsStackPtr ns_rendered;
+
+ /* C14N mode */
+ xmlC14NMode mode;
+
+ /* exclusive canonicalization */
+ xmlChar **inclusive_ns_prefixes;
+
+ /* error number */
+ int error;
+} xmlC14NCtx, *xmlC14NCtxPtr;
+
+static xmlC14NVisibleNsStackPtr xmlC14NVisibleNsStackCreate (void);
+static void xmlC14NVisibleNsStackDestroy (xmlC14NVisibleNsStackPtr cur);
+static void xmlC14NVisibleNsStackAdd (xmlC14NVisibleNsStackPtr cur,
+ xmlNsPtr ns,
+ xmlNodePtr node);
+static void xmlC14NVisibleNsStackSave (xmlC14NVisibleNsStackPtr cur,
+ xmlC14NVisibleNsStackPtr state);
+static void xmlC14NVisibleNsStackRestore (xmlC14NVisibleNsStackPtr cur,
+ xmlC14NVisibleNsStackPtr state);
+static void xmlC14NVisibleNsStackShift (xmlC14NVisibleNsStackPtr cur);
+static int xmlC14NVisibleNsStackFind (xmlC14NVisibleNsStackPtr cur,
+ xmlNsPtr ns);
+static int xmlExcC14NVisibleNsStackFind (xmlC14NVisibleNsStackPtr cur,
+ xmlNsPtr ns,
+ xmlC14NCtxPtr ctx);
+
+static int xmlC14NIsNodeInNodeset (void *user_data,
+ xmlNodePtr node,
+ xmlNodePtr parent);
+
+
+
+static int xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur);
+static int xmlC14NProcessNodeList(xmlC14NCtxPtr ctx, xmlNodePtr cur);
+typedef enum {
+ XMLC14N_NORMALIZE_ATTR = 0,
+ XMLC14N_NORMALIZE_COMMENT = 1,
+ XMLC14N_NORMALIZE_PI = 2,
+ XMLC14N_NORMALIZE_TEXT = 3
+} xmlC14NNormalizationMode;
+
+static xmlChar *xmlC11NNormalizeString(const xmlChar * input,
+ xmlC14NNormalizationMode mode);
+
+#define xmlC11NNormalizeAttr( a ) \
+ xmlC11NNormalizeString((a), XMLC14N_NORMALIZE_ATTR)
+#define xmlC11NNormalizeComment( a ) \
+ xmlC11NNormalizeString((a), XMLC14N_NORMALIZE_COMMENT)
+#define xmlC11NNormalizePI( a ) \
+ xmlC11NNormalizeString((a), XMLC14N_NORMALIZE_PI)
+#define xmlC11NNormalizeText( a ) \
+ xmlC11NNormalizeString((a), XMLC14N_NORMALIZE_TEXT)
+
+#define xmlC14NIsVisible( ctx, node, parent ) \
+ (((ctx)->is_visible_callback != NULL) ? \
+ (ctx)->is_visible_callback((ctx)->user_data, \
+ (xmlNodePtr)(node), (xmlNodePtr)(parent)) : 1)
+
+#define xmlC14NIsExclusive( ctx ) \
+ ( (ctx)->mode == XML_C14N_EXCLUSIVE_1_0 )
+
+/************************************************************************
+ * *
+ * Some factorized error routines *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlC14NErrMemory:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of memory error
+ */
+static void
+xmlC14NErrMemory(const char *extra)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_ERR_NO_MEMORY, XML_ERR_ERROR, NULL, 0, extra,
+ NULL, NULL, 0, 0,
+ "Memory allocation failed : %s\n", extra);
+}
+
+/**
+ * xmlC14NErrParam:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of param error
+ */
+static void
+xmlC14NErrParam(const char *extra)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_ERR_INTERNAL_ERROR, XML_ERR_ERROR, NULL, 0, extra,
+ NULL, NULL, 0, 0,
+ "Invalid parameter : %s\n", extra);
+}
+
+/**
+ * xmlC14NErrInternal:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of internal error
+ */
+static void
+xmlC14NErrInternal(const char *extra)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_ERR_INTERNAL_ERROR, XML_ERR_ERROR, NULL, 0, extra,
+ NULL, NULL, 0, 0,
+ "Internal error : %s\n", extra);
+}
+
+/**
+ * xmlC14NErrInvalidNode:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of invalid node error
+ */
+static void
+xmlC14NErrInvalidNode(const char *node_type, const char *extra)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_C14N_INVALID_NODE, XML_ERR_ERROR, NULL, 0, extra,
+ NULL, NULL, 0, 0,
+ "Node %s is invalid here : %s\n", node_type, extra);
+}
+
+/**
+ * xmlC14NErrUnknownNode:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of unknown node error
+ */
+static void
+xmlC14NErrUnknownNode(int node_type, const char *extra)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_C14N_UNKNOW_NODE, XML_ERR_ERROR, NULL, 0, extra,
+ NULL, NULL, 0, 0,
+ "Unknown node type %d found : %s\n", node_type, extra);
+}
+
+/**
+ * xmlC14NErrRelativeNamespace:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of relative namespace error
+ */
+static void
+xmlC14NErrRelativeNamespace(const char *ns_uri)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_C14N_RELATIVE_NAMESPACE, XML_ERR_ERROR, NULL, 0, NULL,
+ NULL, NULL, 0, 0,
+ "Relative namespace UR is invalid here : %s\n", ns_uri);
+}
+
+
+
+/**
+ * xmlC14NErr:
+ * @ctxt: a C14N evaluation context
+ * @node: the context node
+ * @error: the error code
+ * @msg: the message
+ * @extra: extra informations
+ *
+ * Handle a redefinition of attribute error
+ */
+static void
+xmlC14NErr(xmlC14NCtxPtr ctxt, xmlNodePtr node, int error,
+ const char * msg)
+{
+ if (ctxt != NULL)
+ ctxt->error = error;
+ __xmlRaiseError(NULL, NULL, NULL,
+ ctxt, node, XML_FROM_C14N, error,
+ XML_ERR_ERROR, NULL, 0,
+ NULL, NULL, NULL, 0, 0, "%s", msg);
+}
+
+/************************************************************************
+ * *
+ * The implementation internals *
+ * *
+ ************************************************************************/
+#define XML_NAMESPACES_DEFAULT 16
+
+static int
+xmlC14NIsNodeInNodeset(void *user_data, xmlNodePtr node, xmlNodePtr parent) {
+ xmlNodeSetPtr nodes = (xmlNodeSetPtr) user_data;
+ if((nodes != NULL) && (node != NULL)) {
+ if(node->type != XML_NAMESPACE_DECL) {
+ return(xmlXPathNodeSetContains(nodes, node));
+ } else {
+ xmlNs ns;
+
+ memcpy(&ns, node, sizeof(ns));
+
+ /* this is a libxml hack! check xpath.c for details */
+ if((parent != NULL) && (parent->type == XML_ATTRIBUTE_NODE)) {
+ ns.next = (xmlNsPtr)parent->parent;
+ } else {
+ ns.next = (xmlNsPtr)parent;
+ }
+
+ /*
+ * If the input is an XPath node-set, then the node-set must explicitly
+ * contain every node to be rendered to the canonical form.
+ */
+ return(xmlXPathNodeSetContains(nodes, (xmlNodePtr)&ns));
+ }
+ }
+ return(1);
+}
+
+static xmlC14NVisibleNsStackPtr
+xmlC14NVisibleNsStackCreate(void) {
+ xmlC14NVisibleNsStackPtr ret;
+
+ ret = (xmlC14NVisibleNsStackPtr) xmlMalloc(sizeof(xmlC14NVisibleNsStack));
+ if (ret == NULL) {
+ xmlC14NErrMemory("creating namespaces stack");
+ return(NULL);
+ }
+ memset(ret, 0 , (size_t) sizeof(xmlC14NVisibleNsStack));
+ return(ret);
+}
+
+static void
+xmlC14NVisibleNsStackDestroy(xmlC14NVisibleNsStackPtr cur) {
+ if(cur == NULL) {
+ xmlC14NErrParam("destroying namespaces stack");
+ return;
+ }
+ if(cur->nsTab != NULL) {
+ memset(cur->nsTab, 0, cur->nsMax * sizeof(xmlNsPtr));
+ xmlFree(cur->nsTab);
+ }
+ if(cur->nodeTab != NULL) {
+ memset(cur->nodeTab, 0, cur->nsMax * sizeof(xmlNodePtr));
+ xmlFree(cur->nodeTab);
+ }
+ memset(cur, 0, sizeof(xmlC14NVisibleNsStack));
+ xmlFree(cur);
+
+}
+
+static void
+xmlC14NVisibleNsStackAdd(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlNodePtr node) {
+ if((cur == NULL) ||
+ ((cur->nsTab == NULL) && (cur->nodeTab != NULL)) ||
+ ((cur->nsTab != NULL) && (cur->nodeTab == NULL))) {
+ xmlC14NErrParam("adding namespace to stack");
+ return;
+ }
+
+ if ((cur->nsTab == NULL) && (cur->nodeTab == NULL)) {
+ cur->nsTab = (xmlNsPtr*) xmlMalloc(XML_NAMESPACES_DEFAULT * sizeof(xmlNsPtr));
+ cur->nodeTab = (xmlNodePtr*) xmlMalloc(XML_NAMESPACES_DEFAULT * sizeof(xmlNodePtr));
+ if ((cur->nsTab == NULL) || (cur->nodeTab == NULL)) {
+ xmlC14NErrMemory("adding node to stack");
+ return;
+ }
+ memset(cur->nsTab, 0 , XML_NAMESPACES_DEFAULT * sizeof(xmlNsPtr));
+ memset(cur->nodeTab, 0 , XML_NAMESPACES_DEFAULT * sizeof(xmlNodePtr));
+ cur->nsMax = XML_NAMESPACES_DEFAULT;
+ } else if(cur->nsMax == cur->nsCurEnd) {
+ void *tmp;
+ int tmpSize;
+
+ tmpSize = 2 * cur->nsMax;
+ tmp = xmlRealloc(cur->nsTab, tmpSize * sizeof(xmlNsPtr));
+ if (tmp == NULL) {
+ xmlC14NErrMemory("adding node to stack");
+ return;
+ }
+ cur->nsTab = (xmlNsPtr*)tmp;
+
+ tmp = xmlRealloc(cur->nodeTab, tmpSize * sizeof(xmlNodePtr));
+ if (tmp == NULL) {
+ xmlC14NErrMemory("adding node to stack");
+ return;
+ }
+ cur->nodeTab = (xmlNodePtr*)tmp;
+
+ cur->nsMax = tmpSize;
+ }
+ cur->nsTab[cur->nsCurEnd] = ns;
+ cur->nodeTab[cur->nsCurEnd] = node;
+
+ ++cur->nsCurEnd;
+}
+
+static void
+xmlC14NVisibleNsStackSave(xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStackPtr state) {
+ if((cur == NULL) || (state == NULL)) {
+ xmlC14NErrParam("saving namespaces stack");
+ return;
+ }
+
+ state->nsCurEnd = cur->nsCurEnd;
+ state->nsPrevStart = cur->nsPrevStart;
+ state->nsPrevEnd = cur->nsPrevEnd;
+}
+
+static void
+xmlC14NVisibleNsStackRestore(xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStackPtr state) {
+ if((cur == NULL) || (state == NULL)) {
+ xmlC14NErrParam("restoring namespaces stack");
+ return;
+ }
+ cur->nsCurEnd = state->nsCurEnd;
+ cur->nsPrevStart = state->nsPrevStart;
+ cur->nsPrevEnd = state->nsPrevEnd;
+}
+
+static void
+xmlC14NVisibleNsStackShift(xmlC14NVisibleNsStackPtr cur) {
+ if(cur == NULL) {
+ xmlC14NErrParam("shifting namespaces stack");
+ return;
+ }
+ cur->nsPrevStart = cur->nsPrevEnd;
+ cur->nsPrevEnd = cur->nsCurEnd;
+}
+
+static int
+xmlC14NStrEqual(const xmlChar *str1, const xmlChar *str2) {
+ if (str1 == str2) return(1);
+ if (str1 == NULL) return((*str2) == '\0');
+ if (str2 == NULL) return((*str1) == '\0');
+ do {
+ if (*str1++ != *str2) return(0);
+ } while (*str2++);
+ return(1);
+}
+
+/**
+ * xmlC14NVisibleNsStackFind:
+ * @ctx: the C14N context
+ * @ns: the namespace to check
+ *
+ * Checks whether the given namespace was already rendered or not
+ *
+ * Returns 1 if we already wrote this namespace or 0 otherwise
+ */
+static int
+xmlC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns)
+{
+ int i;
+ const xmlChar *prefix;
+ const xmlChar *href;
+ int has_empty_ns;
+
+ if(cur == NULL) {
+ xmlC14NErrParam("searching namespaces stack (c14n)");
+ return (0);
+ }
+
+ /*
+ * if the default namespace xmlns="" is not defined yet then
+ * we do not want to print it out
+ */
+ prefix = ((ns == NULL) || (ns->prefix == NULL)) ? BAD_CAST "" : ns->prefix;
+ href = ((ns == NULL) || (ns->href == NULL)) ? BAD_CAST "" : ns->href;
+ has_empty_ns = (xmlC14NStrEqual(prefix, NULL) && xmlC14NStrEqual(href, NULL));
+
+ if (cur->nsTab != NULL) {
+ int start = (has_empty_ns) ? 0 : cur->nsPrevStart;
+ for (i = cur->nsCurEnd - 1; i >= start; --i) {
+ xmlNsPtr ns1 = cur->nsTab[i];
+
+ if(xmlC14NStrEqual(prefix, (ns1 != NULL) ? ns1->prefix : NULL)) {
+ return(xmlC14NStrEqual(href, (ns1 != NULL) ? ns1->href : NULL));
+ }
+ }
+ }
+ return(has_empty_ns);
+}
+
+static int
+xmlExcC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlC14NCtxPtr ctx) {
+ int i;
+ const xmlChar *prefix;
+ const xmlChar *href;
+ int has_empty_ns;
+
+ if(cur == NULL) {
+ xmlC14NErrParam("searching namespaces stack (exc c14n)");
+ return (0);
+ }
+
+ /*
+ * if the default namespace xmlns="" is not defined yet then
+ * we do not want to print it out
+ */
+ prefix = ((ns == NULL) || (ns->prefix == NULL)) ? BAD_CAST "" : ns->prefix;
+ href = ((ns == NULL) || (ns->href == NULL)) ? BAD_CAST "" : ns->href;
+ has_empty_ns = (xmlC14NStrEqual(prefix, NULL) && xmlC14NStrEqual(href, NULL));
+
+ if (cur->nsTab != NULL) {
+ int start = 0;
+ for (i = cur->nsCurEnd - 1; i >= start; --i) {
+ xmlNsPtr ns1 = cur->nsTab[i];
+
+ if(xmlC14NStrEqual(prefix, (ns1 != NULL) ? ns1->prefix : NULL)) {
+ if(xmlC14NStrEqual(href, (ns1 != NULL) ? ns1->href : NULL)) {
+ return(xmlC14NIsVisible(ctx, ns1, cur->nodeTab[i]));
+ } else {
+ return(0);
+ }
+ }
+ }
+ }
+ return(has_empty_ns);
+}
+
+
+
+
+/**
+ * xmlC14NIsXmlNs:
+ * @ns: the namespace to check
+ *
+ * Checks whether the given namespace is a default "xml:" namespace
+ * with href="http://www.w3.org/XML/1998/namespace"
+ *
+ * Returns 1 if the node is default or 0 otherwise
+ */
+
+/* todo: make it a define? */
+static int
+xmlC14NIsXmlNs(xmlNsPtr ns)
+{
+ return ((ns != NULL) &&
+ (xmlStrEqual(ns->prefix, BAD_CAST "xml")) &&
+ (xmlStrEqual(ns->href, XML_XML_NAMESPACE)));
+}
+
+
+/**
+ * xmlC14NNsCompare:
+ * @ns1: the pointer to first namespace
+ * @ns2: the pointer to second namespace
+ *
+ * Compares the namespaces by names (prefixes).
+ *
+ * Returns -1 if ns1 < ns2, 0 if ns1 == ns2 or 1 if ns1 > ns2.
+ */
+static int
+xmlC14NNsCompare(const void *data1, const void *data2)
+{
+ const xmlNsPtr ns1 = (const xmlNsPtr) data1;
+ const xmlNsPtr ns2 = (const xmlNsPtr) data2;
+ if (ns1 == ns2)
+ return (0);
+ if (ns1 == NULL)
+ return (-1);
+ if (ns2 == NULL)
+ return (1);
+
+ return (xmlStrcmp(ns1->prefix, ns2->prefix));
+}
+
+
+/**
+ * xmlC14NPrintNamespaces:
+ * @ns: the pointer to namespace
+ * @ctx: the C14N context
+ *
+ * Prints the given namespace to the output buffer from C14N context.
+ *
+ * Returns 1 on success or 0 on fail.
+ */
+static int
+xmlC14NPrintNamespaces(const xmlNsPtr ns, xmlC14NCtxPtr ctx)
+{
+
+ if ((ns == NULL) || (ctx == NULL)) {
+ xmlC14NErrParam("writing namespaces");
+ return 0;
+ }
+
+ if (ns->prefix != NULL) {
+ xmlOutputBufferWriteString(ctx->buf, " xmlns:");
+ xmlOutputBufferWriteString(ctx->buf, (const char *) ns->prefix);
+ xmlOutputBufferWriteString(ctx->buf, "=");
+ } else {
+ xmlOutputBufferWriteString(ctx->buf, " xmlns=");
+ }
+ if(ns->href != NULL) {
+ xmlBufWriteQuotedString(ctx->buf->buffer, ns->href);
+ } else {
+ xmlOutputBufferWriteString(ctx->buf, "\"\"");
+ }
+ return (1);
+}
+
+static int
+xmlC14NPrintNamespacesWalker(const void *ns, void *ctx) {
+ return xmlC14NPrintNamespaces((const xmlNsPtr) ns, (xmlC14NCtxPtr) ctx);
+}
+
+/**
+ * xmlC14NProcessNamespacesAxis:
+ * @ctx: the C14N context
+ * @node: the current node
+ *
+ * Prints out canonical namespace axis of the current node to the
+ * buffer from C14N context as follows
+ *
+ * Canonical XML v 1.0 (http://www.w3.org/TR/xml-c14n)
+ *
+ * Namespace Axis
+ * Consider a list L containing only namespace nodes in the
+ * axis and in the node-set in lexicographic order (ascending). To begin
+ * processing L, if the first node is not the default namespace node (a node
+ * with no namespace URI and no local name), then generate a space followed
+ * by xmlns="" if and only if the following conditions are met:
+ * - the element E that owns the axis is in the node-set
+ * - The nearest ancestor element of E in the node-set has a default
+ * namespace node in the node-set (default namespace nodes always
+ * have non-empty values in XPath)
+ * The latter condition eliminates unnecessary occurrences of xmlns="" in
+ * the canonical form since an element only receives an xmlns="" if its
+ * default namespace is empty and if it has an immediate parent in the
+ * canonical form that has a non-empty default namespace. To finish
+ * processing L, simply process every namespace node in L, except omit
+ * namespace node with local name xml, which defines the xml prefix,
+ * if its string value is http://www.w3.org/XML/1998/namespace.
+ *
+ * Exclusive XML Canonicalization v 1.0 (http://www.w3.org/TR/xml-exc-c14n)
+ * Canonical XML applied to a document subset requires the search of the
+ * ancestor nodes of each orphan element node for attributes in the xml
+ * namespace, such as xml:lang and xml:space. These are copied into the
+ * element node except if a declaration of the same attribute is already
+ * in the attribute axis of the element (whether or not it is included in
+ * the document subset). This search and copying are omitted from the
+ * Exclusive XML Canonicalization method.
+ *
+ * Returns 0 on success or -1 on fail.
+ */
+static int
+xmlC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
+{
+ xmlNodePtr n;
+ xmlNsPtr ns, tmp;
+ xmlListPtr list;
+ int already_rendered;
+ int has_empty_ns = 0;
+
+ if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) {
+ xmlC14NErrParam("processing namespaces axis (c14n)");
+ return (-1);
+ }
+
+ /*
+ * Create a sorted list to store element namespaces
+ */
+ list = xmlListCreate(NULL, xmlC14NNsCompare);
+ if (list == NULL) {
+ xmlC14NErrInternal("creating namespaces list (c14n)");
+ return (-1);
+ }
+
+ /* check all namespaces */
+ for(n = cur; n != NULL; n = n->parent) {
+ for(ns = n->nsDef; ns != NULL; ns = ns->next) {
+ tmp = xmlSearchNs(cur->doc, cur, ns->prefix);
+
+ if((tmp == ns) && !xmlC14NIsXmlNs(ns) && xmlC14NIsVisible(ctx, ns, cur)) {
+ already_rendered = xmlC14NVisibleNsStackFind(ctx->ns_rendered, ns);
+ if(visible) {
+ xmlC14NVisibleNsStackAdd(ctx->ns_rendered, ns, cur);
+ }
+ if(!already_rendered) {
+ xmlListInsert(list, ns);
+ }
+ if(xmlStrlen(ns->prefix) == 0) {
+ has_empty_ns = 1;
+ }
+ }
+ }
+ }
+
+ /**
+ * if the first node is not the default namespace node (a node with no
+ * namespace URI and no local name), then generate a space followed by
+ * xmlns="" if and only if the following conditions are met:
+ * - the element E that owns the axis is in the node-set
+ * - the nearest ancestor element of E in the node-set has a default
+ * namespace node in the node-set (default namespace nodes always
+ * have non-empty values in XPath)
+ */
+ if(visible && !has_empty_ns) {
+ static xmlNs ns_default;
+
+ memset(&ns_default, 0, sizeof(ns_default));
+ if(!xmlC14NVisibleNsStackFind(ctx->ns_rendered, &ns_default)) {
+ xmlC14NPrintNamespaces(&ns_default, ctx);
+ }
+ }
+
+
+ /*
+ * print out all elements from list
+ */
+ xmlListWalk(list, xmlC14NPrintNamespacesWalker, (void *) ctx);
+
+ /*
+ * Cleanup
+ */
+ xmlListDelete(list);
+ return (0);
+}
+
+
+/**
+ * xmlExcC14NProcessNamespacesAxis:
+ * @ctx: the C14N context
+ * @node: the current node
+ *
+ * Prints out exclusive canonical namespace axis of the current node to the
+ * buffer from C14N context as follows
+ *
+ * Exclusive XML Canonicalization
+ * http://www.w3.org/TR/xml-exc-c14n
+ *
+ * If the element node is in the XPath subset then output the node in
+ * accordance with Canonical XML except for namespace nodes which are
+ * rendered as follows:
+ *
+ * 1. Render each namespace node iff:
+ * * it is visibly utilized by the immediate parent element or one of
+ * its attributes, or is present in InclusiveNamespaces PrefixList, and
+ * * its prefix and value do not appear in ns_rendered. ns_rendered is
+ * obtained by popping the state stack in order to obtain a list of
+ * prefixes and their values which have already been rendered by
+ * an output ancestor of the namespace node's parent element.
+ * 2. Append the rendered namespace node to the list ns_rendered of namespace
+ * nodes rendered by output ancestors. Push ns_rendered on state stack and
+ * recurse.
+ * 3. After the recursion returns, pop thestate stack.
+ *
+ *
+ * Returns 0 on success or -1 on fail.
+ */
+static int
+xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
+{
+ xmlNsPtr ns;
+ xmlListPtr list;
+ xmlAttrPtr attr;
+ int already_rendered;
+ int has_empty_ns = 0;
+ int has_visibly_utilized_empty_ns = 0;
+ int has_empty_ns_in_inclusive_list = 0;
+
+ if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) {
+ xmlC14NErrParam("processing namespaces axis (exc c14n)");
+ return (-1);
+ }
+
+ if(!xmlC14NIsExclusive(ctx)) {
+ xmlC14NErrParam("processing namespaces axis (exc c14n)");
+ return (-1);
+
+ }
+
+ /*
+ * Create a sorted list to store element namespaces
+ */
+ list = xmlListCreate(NULL, xmlC14NNsCompare);
+ if (list == NULL) {
+ xmlC14NErrInternal("creating namespaces list (exc c14n)");
+ return (-1);
+ }
+
+ /*
+ * process inclusive namespaces:
+ * All namespace nodes appearing on inclusive ns list are
+ * handled as provided in Canonical XML
+ */
+ if(ctx->inclusive_ns_prefixes != NULL) {
+ xmlChar *prefix;
+ int i;
+
+ for (i = 0; ctx->inclusive_ns_prefixes[i] != NULL; ++i) {
+ prefix = ctx->inclusive_ns_prefixes[i];
+ /*
+ * Special values for namespace with empty prefix
+ */
+ if (xmlStrEqual(prefix, BAD_CAST "#default")
+ || xmlStrEqual(prefix, BAD_CAST "")) {
+ prefix = NULL;
+ has_empty_ns_in_inclusive_list = 1;
+ }
+
+ ns = xmlSearchNs(cur->doc, cur, prefix);
+ if((ns != NULL) && !xmlC14NIsXmlNs(ns) && xmlC14NIsVisible(ctx, ns, cur)) {
+ already_rendered = xmlC14NVisibleNsStackFind(ctx->ns_rendered, ns);
+ if(visible) {
+ xmlC14NVisibleNsStackAdd(ctx->ns_rendered, ns, cur);
+ }
+ if(!already_rendered) {
+ xmlListInsert(list, ns);
+ }
+ if(xmlStrlen(ns->prefix) == 0) {
+ has_empty_ns = 1;
+ }
+ }
+ }
+ }
+
+ /* add node namespace */
+ if(cur->ns != NULL) {
+ ns = cur->ns;
+ } else {
+ ns = xmlSearchNs(cur->doc, cur, NULL);
+ has_visibly_utilized_empty_ns = 1;
+ }
+ if((ns != NULL) && !xmlC14NIsXmlNs(ns)) {
+ if(visible && xmlC14NIsVisible(ctx, ns, cur)) {
+ if(!xmlExcC14NVisibleNsStackFind(ctx->ns_rendered, ns, ctx)) {
+ xmlListInsert(list, ns);
+ }
+ }
+ if(visible) {
+ xmlC14NVisibleNsStackAdd(ctx->ns_rendered, ns, cur);
+ }
+ if(xmlStrlen(ns->prefix) == 0) {
+ has_empty_ns = 1;
+ }
+ }
+
+
+ /* add attributes */
+ for(attr = cur->properties; attr != NULL; attr = attr->next) {
+ /*
+ * we need to check that attribute is visible and has non
+ * default namespace (XML Namespaces: "default namespaces
+ * do not apply directly to attributes")
+ */
+ if((attr->ns != NULL) && !xmlC14NIsXmlNs(attr->ns) && xmlC14NIsVisible(ctx, attr, cur)) {
+ already_rendered = xmlExcC14NVisibleNsStackFind(ctx->ns_rendered, attr->ns, ctx);
+ xmlC14NVisibleNsStackAdd(ctx->ns_rendered, attr->ns, cur);
+ if(!already_rendered && visible) {
+ xmlListInsert(list, attr->ns);
+ }
+ if(xmlStrlen(attr->ns->prefix) == 0) {
+ has_empty_ns = 1;
+ }
+ } else if((attr->ns != NULL) && (xmlStrlen(attr->ns->prefix) == 0) && (xmlStrlen(attr->ns->href) == 0)) {
+ has_visibly_utilized_empty_ns = 1;
+ }
+ }
+
+ /*
+ * Process xmlns=""
+ */
+ if(visible && has_visibly_utilized_empty_ns &&
+ !has_empty_ns && !has_empty_ns_in_inclusive_list) {
+ static xmlNs ns_default;
+
+ memset(&ns_default, 0, sizeof(ns_default));
+
+ already_rendered = xmlExcC14NVisibleNsStackFind(ctx->ns_rendered, &ns_default, ctx);
+ if(!already_rendered) {
+ xmlC14NPrintNamespaces(&ns_default, ctx);
+ }
+ } else if(visible && !has_empty_ns && has_empty_ns_in_inclusive_list) {
+ static xmlNs ns_default;
+
+ memset(&ns_default, 0, sizeof(ns_default));
+ if(!xmlC14NVisibleNsStackFind(ctx->ns_rendered, &ns_default)) {
+ xmlC14NPrintNamespaces(&ns_default, ctx);
+ }
+ }
+
+
+
+ /*
+ * print out all elements from list
+ */
+ xmlListWalk(list, xmlC14NPrintNamespacesWalker, (void *) ctx);
+
+ /*
+ * Cleanup
+ */
+ xmlListDelete(list);
+ return (0);
+}
+
+
+/**
+ * xmlC14NIsXmlAttr:
+ * @attr: the attr to check
+ *
+ * Checks whether the given attribute is a default "xml:" namespace
+ * with href="http://www.w3.org/XML/1998/namespace"
+ *
+ * Returns 1 if the node is default or 0 otherwise
+ */
+
+/* todo: make it a define? */
+static int
+xmlC14NIsXmlAttr(xmlAttrPtr attr)
+{
+ return ((attr->ns != NULL) &&
+ (xmlC14NIsXmlNs(attr->ns) != 0));
+}
+
+
+/**
+ * xmlC14NAttrsCompare:
+ * @attr1: the pointer tls o first attr
+ * @attr2: the pointer to second attr
+ *
+ * Prints the given attribute to the output buffer from C14N context.
+ *
+ * Returns -1 if attr1 < attr2, 0 if attr1 == attr2 or 1 if attr1 > attr2.
+ */
+static int
+xmlC14NAttrsCompare(const void *data1, const void *data2)
+{
+ const xmlAttrPtr attr1 = (const xmlAttrPtr) data1;
+ const xmlAttrPtr attr2 = (const xmlAttrPtr) data2;
+ int ret = 0;
+
+ /*
+ * Simple cases
+ */
+ if (attr1 == attr2)
+ return (0);
+ if (attr1 == NULL)
+ return (-1);
+ if (attr2 == NULL)
+ return (1);
+ if (attr1->ns == attr2->ns) {
+ return (xmlStrcmp(attr1->name, attr2->name));
+ }
+
+ /*
+ * Attributes in the default namespace are first
+ * because the default namespace is not applied to
+ * unqualified attributes
+ */
+ if (attr1->ns == NULL)
+ return (-1);
+ if (attr2->ns == NULL)
+ return (1);
+ if (attr1->ns->prefix == NULL)
+ return (-1);
+ if (attr2->ns->prefix == NULL)
+ return (1);
+
+ ret = xmlStrcmp(attr1->ns->href, attr2->ns->href);
+ if (ret == 0) {
+ ret = xmlStrcmp(attr1->name, attr2->name);
+ }
+ return (ret);
+}
+
+
+/**
+ * xmlC14NPrintAttrs:
+ * @attr: the pointer to attr
+ * @ctx: the C14N context
+ *
+ * Prints out canonical attribute urrent node to the
+ * buffer from C14N context as follows
+ *
+ * Canonical XML v 1.0 (http://www.w3.org/TR/xml-c14n)
+ *
+ * Returns 1 on success or 0 on fail.
+ */
+static int
+xmlC14NPrintAttrs(const void *data, void *user)
+{
+ const xmlAttrPtr attr = (const xmlAttrPtr) data;
+ xmlC14NCtxPtr ctx = (xmlC14NCtxPtr) user;
+ xmlChar *value;
+ xmlChar *buffer;
+
+ if ((attr == NULL) || (ctx == NULL)) {
+ xmlC14NErrParam("writing attributes");
+ return (0);
+ }
+
+ xmlOutputBufferWriteString(ctx->buf, " ");
+ if (attr->ns != NULL && xmlStrlen(attr->ns->prefix) > 0) {
+ xmlOutputBufferWriteString(ctx->buf,
+ (const char *) attr->ns->prefix);
+ xmlOutputBufferWriteString(ctx->buf, ":");
+ }
+ xmlOutputBufferWriteString(ctx->buf, (const char *) attr->name);
+ xmlOutputBufferWriteString(ctx->buf, "=\"");
+
+ value = xmlNodeListGetString(ctx->doc, attr->children, 1);
+ /* todo: should we log an error if value==NULL ? */
+ if (value != NULL) {
+ buffer = xmlC11NNormalizeAttr(value);
+ xmlFree(value);
+ if (buffer != NULL) {
+ xmlOutputBufferWriteString(ctx->buf, (const char *) buffer);
+ xmlFree(buffer);
+ } else {
+ xmlC14NErrInternal("normalizing attributes axis");
+ return (0);
+ }
+ }
+ xmlOutputBufferWriteString(ctx->buf, "\"");
+ return (1);
+}
+
+/**
+ * xmlC14NFindHiddenParentAttr:
+ *
+ * Finds an attribute in a hidden parent node.
+ *
+ * Returns a pointer to the attribute node (if found) or NULL otherwise.
+ */
+static xmlAttrPtr
+xmlC14NFindHiddenParentAttr(xmlC14NCtxPtr ctx, xmlNodePtr cur, const xmlChar * name, const xmlChar * ns)
+{
+ xmlAttrPtr res;
+ while((cur != NULL) && (!xmlC14NIsVisible(ctx, cur, cur->parent))) {
+ res = xmlHasNsProp(cur, name, ns);
+ if(res != NULL) {
+ return res;
+ }
+
+ cur = cur->parent;
+ }
+
+ return NULL;
+}
+
+/**
+ * xmlC14NFixupBaseAttr:
+ *
+ * Fixes up the xml:base attribute
+ *
+ * Returns the newly created attribute or NULL
+ */
+static xmlAttrPtr
+xmlC14NFixupBaseAttr(xmlC14NCtxPtr ctx, xmlAttrPtr xml_base_attr)
+{
+ xmlChar * res = NULL;
+ xmlNodePtr cur;
+ xmlAttrPtr attr;
+ xmlChar * tmp_str;
+ xmlChar * tmp_str2;
+ int tmp_str_len;
+
+ if ((ctx == NULL) || (xml_base_attr == NULL) || (xml_base_attr->parent == NULL)) {
+ xmlC14NErrParam("processing xml:base attribute");
+ return (NULL);
+ }
+
+ /* start from current value */
+ res = xmlNodeListGetString(ctx->doc, xml_base_attr->children, 1);
+ if(res == NULL) {
+ xmlC14NErrInternal("processing xml:base attribute - can't get attr value");
+ return (NULL);
+ }
+
+ /* go up the stack until we find a node that we rendered already */
+ cur = xml_base_attr->parent->parent;
+ while((cur != NULL) && (!xmlC14NIsVisible(ctx, cur, cur->parent))) {
+ attr = xmlHasNsProp(cur, BAD_CAST "base", XML_XML_NAMESPACE);
+ if(attr != NULL) {
+ /* get attr value */
+ tmp_str = xmlNodeListGetString(ctx->doc, attr->children, 1);
+ if(tmp_str == NULL) {
+ xmlFree(res);
+
+ xmlC14NErrInternal("processing xml:base attribute - can't get attr value");
+ return (NULL);
+ }
+
+ /* we need to add '/' if our current base uri ends with '..' or '.'
+ to ensure that we are forced to go "up" all the time */
+ tmp_str_len = xmlStrlen(tmp_str);
+ if(tmp_str_len > 1 && tmp_str[tmp_str_len - 2] == '.') {
+ tmp_str2 = xmlStrcat(tmp_str, BAD_CAST "/");
+ if(tmp_str2 == NULL) {
+ xmlFree(tmp_str);
+ xmlFree(res);
+
+ xmlC14NErrInternal("processing xml:base attribute - can't modify uri");
+ return (NULL);
+ }
+
+ tmp_str = tmp_str2;
+ }
+
+ /* build uri */
+ tmp_str2 = xmlBuildURI(res, tmp_str);
+ if(tmp_str2 == NULL) {
+ xmlFree(tmp_str);
+ xmlFree(res);
+
+ xmlC14NErrInternal("processing xml:base attribute - can't construct uri");
+ return (NULL);
+ }
+
+ /* cleanup and set the new res */
+ xmlFree(tmp_str);
+ xmlFree(res);
+ res = tmp_str2;
+ }
+
+ /* next */
+ cur = cur->parent;
+ }
+
+ /* check if result uri is empty or not */
+ if((res == NULL) || xmlStrEqual(res, BAD_CAST "")) {
+ xmlFree(res);
+ return (NULL);
+ }
+
+ /* create and return the new attribute node */
+ attr = xmlNewNsProp(NULL, xml_base_attr->ns, BAD_CAST "base", res);
+ if(attr == NULL) {
+ xmlFree(res);
+
+ xmlC14NErrInternal("processing xml:base attribute - can't construct attribute");
+ return (NULL);
+ }
+
+ /* done */
+ xmlFree(res);
+ return (attr);
+}
+
+/**
+ * xmlC14NProcessAttrsAxis:
+ * @ctx: the C14N context
+ * @cur: the current node
+ * @parent_visible: the visibility of parent node
+ * @all_parents_visible: the visibility of all parent nodes
+ *
+ * Prints out canonical attribute axis of the current node to the
+ * buffer from C14N context as follows
+ *
+ * Canonical XML v 1.0 (http://www.w3.org/TR/xml-c14n)
+ *
+ * Attribute Axis
+ * In lexicographic order (ascending), process each node that
+ * is in the element's attribute axis and in the node-set.
+ *
+ * The processing of an element node E MUST be modified slightly
+ * when an XPath node-set is given as input and the element's
+ * parent is omitted from the node-set.
+ *
+ *
+ * Exclusive XML Canonicalization v 1.0 (http://www.w3.org/TR/xml-exc-c14n)
+ *
+ * Canonical XML applied to a document subset requires the search of the
+ * ancestor nodes of each orphan element node for attributes in the xml
+ * namespace, such as xml:lang and xml:space. These are copied into the
+ * element node except if a declaration of the same attribute is already
+ * in the attribute axis of the element (whether or not it is included in
+ * the document subset). This search and copying are omitted from the
+ * Exclusive XML Canonicalization method.
+ *
+ * Returns 0 on success or -1 on fail.
+ */
+static int
+xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible)
+{
+ xmlAttrPtr attr;
+ xmlListPtr list;
+ xmlAttrPtr attrs_to_delete = NULL;
+
+ /* special processing for 1.1 spec */
+ xmlAttrPtr xml_base_attr = NULL;
+ xmlAttrPtr xml_lang_attr = NULL;
+ xmlAttrPtr xml_space_attr = NULL;
+
+ if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) {
+ xmlC14NErrParam("processing attributes axis");
+ return (-1);
+ }
+
+ /*
+ * Create a sorted list to store element attributes
+ */
+ list = xmlListCreate(NULL, xmlC14NAttrsCompare);
+ if (list == NULL) {
+ xmlC14NErrInternal("creating attributes list");
+ return (-1);
+ }
+
+ switch(ctx->mode) {
+ case XML_C14N_1_0:
+ /* The processing of an element node E MUST be modified slightly when an XPath node-set is
+ * given as input and the element's parent is omitted from the node-set. The method for processing
+ * the attribute axis of an element E in the node-set is enhanced. All element nodes along E's
+ * ancestor axis are examined for nearest occurrences of attributes in the xml namespace, such
+ * as xml:lang and xml:space (whether or not they are in the node-set). From this list of attributes,
+ * remove any that are in E's attribute axis (whether or not they are in the node-set). Then,
+ * lexicographically merge this attribute list with the nodes of E's attribute axis that are in
+ * the node-set. The result of visiting the attribute axis is computed by processing the attribute
+ * nodes in this merged attribute list.
+ */
+
+ /*
+ * Add all visible attributes from current node.
+ */
+ attr = cur->properties;
+ while (attr != NULL) {
+ /* check that attribute is visible */
+ if (xmlC14NIsVisible(ctx, attr, cur)) {
+ xmlListInsert(list, attr);
+ }
+ attr = attr->next;
+ }
+
+ /*
+ * Handle xml attributes
+ */
+ if (parent_visible && (cur->parent != NULL) &&
+ (!xmlC14NIsVisible(ctx, cur->parent, cur->parent->parent)))
+ {
+ xmlNodePtr tmp;
+
+ /*
+ * If XPath node-set is not specified then the parent is always
+ * visible!
+ */
+ tmp = cur->parent;
+ while (tmp != NULL) {
+ attr = tmp->properties;
+ while (attr != NULL) {
+ if (xmlC14NIsXmlAttr(attr) != 0) {
+ if (xmlListSearch(list, attr) == NULL) {
+ xmlListInsert(list, attr);
+ }
+ }
+ attr = attr->next;
+ }
+ tmp = tmp->parent;
+ }
+ }
+
+ /* done */
+ break;
+ case XML_C14N_EXCLUSIVE_1_0:
+ /* attributes in the XML namespace, such as xml:lang and xml:space
+ * are not imported into orphan nodes of the document subset
+ */
+
+ /*
+ * Add all visible attributes from current node.
+ */
+ attr = cur->properties;
+ while (attr != NULL) {
+ /* check that attribute is visible */
+ if (xmlC14NIsVisible(ctx, attr, cur)) {
+ xmlListInsert(list, attr);
+ }
+ attr = attr->next;
+ }
+
+ /* do nothing special for xml attributes */
+ break;
+ case XML_C14N_1_1:
+ /* The processing of an element node E MUST be modified slightly when an XPath node-set is
+ * given as input and some of the element's ancestors are omitted from the node-set.
+ *
+ * Simple inheritable attributes are attributes that have a value that requires at most a simple
+ * redeclaration. This redeclaration is done by supplying a new value in the child axis. The
+ * redeclaration of a simple inheritable attribute A contained in one of E's ancestors is done
+ * by supplying a value to an attribute Ae inside E with the same name. Simple inheritable attributes
+ * are xml:lang and xml:space.
+ *
+ * The method for processing the attribute axis of an element E in the node-set is hence enhanced.
+ * All element nodes along E's ancestor axis are examined for the nearest occurrences of simple
+ * inheritable attributes in the xml namespace, such as xml:lang and xml:space (whether or not they
+ * are in the node-set). From this list of attributes, any simple inheritable attributes that are
+ * already in E's attribute axis (whether or not they are in the node-set) are removed. Then,
+ * lexicographically merge this attribute list with the nodes of E's attribute axis that are in
+ * the node-set. The result of visiting the attribute axis is computed by processing the attribute
+ * nodes in this merged attribute list.
+ *
+ * The xml:id attribute is not a simple inheritable attribute and no processing of these attributes is
+ * performed.
+ *
+ * The xml:base attribute is not a simple inheritable attribute and requires special processing beyond
+ * a simple redeclaration.
+ *
+ * Attributes in the XML namespace other than xml:base, xml:id, xml:lang, and xml:space MUST be processed
+ * as ordinary attributes.
+ */
+
+ /*
+ * Add all visible attributes from current node.
+ */
+ attr = cur->properties;
+ while (attr != NULL) {
+ /* special processing for XML attribute kiks in only when we have invisible parents */
+ if ((!parent_visible) || (xmlC14NIsXmlAttr(attr) == 0)) {
+ /* check that attribute is visible */
+ if (xmlC14NIsVisible(ctx, attr, cur)) {
+ xmlListInsert(list, attr);
+ }
+ } else {
+ int matched = 0;
+
+ /* check for simple inheritance attributes */
+ if((!matched) && (xml_lang_attr == NULL) && xmlStrEqual(attr->name, BAD_CAST "lang")) {
+ xml_lang_attr = attr;
+ matched = 1;
+ }
+ if((!matched) && (xml_space_attr == NULL) && xmlStrEqual(attr->name, BAD_CAST "space")) {
+ xml_space_attr = attr;
+ matched = 1;
+ }
+
+ /* check for base attr */
+ if((!matched) && (xml_base_attr == NULL) && xmlStrEqual(attr->name, BAD_CAST "base")) {
+ xml_base_attr = attr;
+ matched = 1;
+ }
+
+ /* otherwise, it is a normal attribute, so just check if it is visible */
+ if((!matched) && xmlC14NIsVisible(ctx, attr, cur)) {
+ xmlListInsert(list, attr);
+ }
+ }
+
+ /* move to the next one */
+ attr = attr->next;
+ }
+
+ /* special processing for XML attribute kiks in only when we have invisible parents */
+ if ((parent_visible)) {
+
+ /* simple inheritance attributes - copy */
+ if(xml_lang_attr == NULL) {
+ xml_lang_attr = xmlC14NFindHiddenParentAttr(ctx, cur->parent, BAD_CAST "lang", XML_XML_NAMESPACE);
+ }
+ if(xml_lang_attr != NULL) {
+ xmlListInsert(list, xml_lang_attr);
+ }
+ if(xml_space_attr == NULL) {
+ xml_space_attr = xmlC14NFindHiddenParentAttr(ctx, cur->parent, BAD_CAST "space", XML_XML_NAMESPACE);
+ }
+ if(xml_space_attr != NULL) {
+ xmlListInsert(list, xml_space_attr);
+ }
+
+ /* base uri attribute - fix up */
+ if(xml_base_attr == NULL) {
+ /* if we don't have base uri attribute, check if we have a "hidden" one above */
+ xml_base_attr = xmlC14NFindHiddenParentAttr(ctx, cur->parent, BAD_CAST "base", XML_XML_NAMESPACE);
+ }
+ if(xml_base_attr != NULL) {
+ xml_base_attr = xmlC14NFixupBaseAttr(ctx, xml_base_attr);
+ if(xml_base_attr != NULL) {
+ xmlListInsert(list, xml_base_attr);
+
+ /* note that we MUST delete returned attr node ourselves! */
+ xml_base_attr->next = attrs_to_delete;
+ attrs_to_delete = xml_base_attr;
+ }
+ }
+ }
+
+ /* done */
+ break;
+ }
+
+ /*
+ * print out all elements from list
+ */
+ xmlListWalk(list, xmlC14NPrintAttrs, (void *) ctx);
+
+ /*
+ * Cleanup
+ */
+ xmlFreePropList(attrs_to_delete);
+ xmlListDelete(list);
+ return (0);
+}
+
+/**
+ * xmlC14NCheckForRelativeNamespaces:
+ * @ctx: the C14N context
+ * @cur: the current element node
+ *
+ * Checks that current element node has no relative namespaces defined
+ *
+ * Returns 0 if the node has no relative namespaces or -1 otherwise.
+ */
+static int
+xmlC14NCheckForRelativeNamespaces(xmlC14NCtxPtr ctx, xmlNodePtr cur)
+{
+ xmlNsPtr ns;
+
+ if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) {
+ xmlC14NErrParam("checking for relative namespaces");
+ return (-1);
+ }
+
+ ns = cur->nsDef;
+ while (ns != NULL) {
+ if (xmlStrlen(ns->href) > 0) {
+ xmlURIPtr uri;
+
+ uri = xmlParseURI((const char *) ns->href);
+ if (uri == NULL) {
+ xmlC14NErrInternal("parsing namespace uri");
+ return (-1);
+ }
+ if (xmlStrlen((const xmlChar *) uri->scheme) == 0) {
+ xmlC14NErrRelativeNamespace(uri->scheme);
+ xmlFreeURI(uri);
+ return (-1);
+ }
+ xmlFreeURI(uri);
+ }
+ ns = ns->next;
+ }
+ return (0);
+}
+
+/**
+ * xmlC14NProcessElementNode:
+ * @ctx: the pointer to C14N context object
+ * @cur: the node to process
+ * @visible: this node is visible
+ * @all_parents_visible: whether all the parents of this node are visible
+ *
+ * Canonical XML v 1.0 (http://www.w3.org/TR/xml-c14n)
+ *
+ * Element Nodes
+ * If the element is not in the node-set, then the result is obtained
+ * by processing the namespace axis, then the attribute axis, then
+ * processing the child nodes of the element that are in the node-set
+ * (in document order). If the element is in the node-set, then the result
+ * is an open angle bracket (<), the element QName, the result of
+ * processing the namespace axis, the result of processing the attribute
+ * axis, a close angle bracket (>), the result of processing the child
+ * nodes of the element that are in the node-set (in document order), an
+ * open angle bracket, a forward slash (/), the element QName, and a close
+ * angle bracket.
+ *
+ * Returns non-negative value on success or negative value on fail
+ */
+static int
+xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
+{
+ int ret;
+ xmlC14NVisibleNsStack state;
+ int parent_is_doc = 0;
+
+ if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) {
+ xmlC14NErrParam("processing element node");
+ return (-1);
+ }
+
+ /*
+ * Check relative relative namespaces:
+ * implementations of XML canonicalization MUST report an operation
+ * failure on documents containing relative namespace URIs.
+ */
+ if (xmlC14NCheckForRelativeNamespaces(ctx, cur) < 0) {
+ xmlC14NErrInternal("checking for relative namespaces");
+ return (-1);
+ }
+
+
+ /*
+ * Save ns_rendered stack position
+ */
+ memset(&state, 0, sizeof(state));
+ xmlC14NVisibleNsStackSave(ctx->ns_rendered, &state);
+
+ if (visible) {
+ if (ctx->parent_is_doc) {
+ /* save this flag into the stack */
+ parent_is_doc = ctx->parent_is_doc;
+ ctx->parent_is_doc = 0;
+ ctx->pos = XMLC14N_INSIDE_DOCUMENT_ELEMENT;
+ }
+ xmlOutputBufferWriteString(ctx->buf, "<");
+
+ if ((cur->ns != NULL) && (xmlStrlen(cur->ns->prefix) > 0)) {
+ xmlOutputBufferWriteString(ctx->buf,
+ (const char *) cur->ns->prefix);
+ xmlOutputBufferWriteString(ctx->buf, ":");
+ }
+ xmlOutputBufferWriteString(ctx->buf, (const char *) cur->name);
+ }
+
+ if (!xmlC14NIsExclusive(ctx)) {
+ ret = xmlC14NProcessNamespacesAxis(ctx, cur, visible);
+ } else {
+ ret = xmlExcC14NProcessNamespacesAxis(ctx, cur, visible);
+ }
+ if (ret < 0) {
+ xmlC14NErrInternal("processing namespaces axis");
+ return (-1);
+ }
+ /* todo: shouldn't this go to "visible only"? */
+ if(visible) {
+ xmlC14NVisibleNsStackShift(ctx->ns_rendered);
+ }
+
+ ret = xmlC14NProcessAttrsAxis(ctx, cur, visible);
+ if (ret < 0) {
+ xmlC14NErrInternal("processing attributes axis");
+ return (-1);
+ }
+
+ if (visible) {
+ xmlOutputBufferWriteString(ctx->buf, ">");
+ }
+ if (cur->children != NULL) {
+ ret = xmlC14NProcessNodeList(ctx, cur->children);
+ if (ret < 0) {
+ xmlC14NErrInternal("processing childrens list");
+ return (-1);
+ }
+ }
+ if (visible) {
+ xmlOutputBufferWriteString(ctx->buf, "</");
+ if ((cur->ns != NULL) && (xmlStrlen(cur->ns->prefix) > 0)) {
+ xmlOutputBufferWriteString(ctx->buf,
+ (const char *) cur->ns->prefix);
+ xmlOutputBufferWriteString(ctx->buf, ":");
+ }
+ xmlOutputBufferWriteString(ctx->buf, (const char *) cur->name);
+ xmlOutputBufferWriteString(ctx->buf, ">");
+ if (parent_is_doc) {
+ /* restore this flag from the stack for next node */
+ ctx->parent_is_doc = parent_is_doc;
+ ctx->pos = XMLC14N_AFTER_DOCUMENT_ELEMENT;
+ }
+ }
+
+ /*
+ * Restore ns_rendered stack position
+ */
+ xmlC14NVisibleNsStackRestore(ctx->ns_rendered, &state);
+ return (0);
+}
+
+/**
+ * xmlC14NProcessNode:
+ * @ctx: the pointer to C14N context object
+ * @cur: the node to process
+ *
+ * Processes the given node
+ *
+ * Returns non-negative value on success or negative value on fail
+ */
+static int
+xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur)
+{
+ int ret = 0;
+ int visible;
+
+ if ((ctx == NULL) || (cur == NULL)) {
+ xmlC14NErrParam("processing node");
+ return (-1);
+ }
+
+ visible = xmlC14NIsVisible(ctx, cur, cur->parent);
+ switch (cur->type) {
+ case XML_ELEMENT_NODE:
+ ret = xmlC14NProcessElementNode(ctx, cur, visible);
+ break;
+ case XML_CDATA_SECTION_NODE:
+ case XML_TEXT_NODE:
+ /*
+ * Text Nodes
+ * the string value, except all ampersands are replaced
+ * by &amp;, all open angle brackets (<) are replaced by &lt;, all closing
+ * angle brackets (>) are replaced by &gt;, and all #xD characters are
+ * replaced by &#xD;.
+ */
+ /* cdata sections are processed as text nodes */
+ /* todo: verify that cdata sections are included in XPath nodes set */
+ if ((visible) && (cur->content != NULL)) {
+ xmlChar *buffer;
+
+ buffer = xmlC11NNormalizeText(cur->content);
+ if (buffer != NULL) {
+ xmlOutputBufferWriteString(ctx->buf,
+ (const char *) buffer);
+ xmlFree(buffer);
+ } else {
+ xmlC14NErrInternal("normalizing text node");
+ return (-1);
+ }
+ }
+ break;
+ case XML_PI_NODE:
+ /*
+ * Processing Instruction (PI) Nodes-
+ * The opening PI symbol (<?), the PI target name of the node,
+ * a leading space and the string value if it is not empty, and
+ * the closing PI symbol (?>). If the string value is empty,
+ * then the leading space is not added. Also, a trailing #xA is
+ * rendered after the closing PI symbol for PI children of the
+ * root node with a lesser document order than the document
+ * element, and a leading #xA is rendered before the opening PI
+ * symbol of PI children of the root node with a greater document
+ * order than the document element.
+ */
+ if (visible) {
+ if (ctx->pos == XMLC14N_AFTER_DOCUMENT_ELEMENT) {
+ xmlOutputBufferWriteString(ctx->buf, "\x0A<?");
+ } else {
+ xmlOutputBufferWriteString(ctx->buf, "<?");
+ }
+
+ xmlOutputBufferWriteString(ctx->buf,
+ (const char *) cur->name);
+ if ((cur->content != NULL) && (*(cur->content) != '\0')) {
+ xmlChar *buffer;
+
+ xmlOutputBufferWriteString(ctx->buf, " ");
+
+ /* todo: do we need to normalize pi? */
+ buffer = xmlC11NNormalizePI(cur->content);
+ if (buffer != NULL) {
+ xmlOutputBufferWriteString(ctx->buf,
+ (const char *) buffer);
+ xmlFree(buffer);
+ } else {
+ xmlC14NErrInternal("normalizing pi node");
+ return (-1);
+ }
+ }
+
+ if (ctx->pos == XMLC14N_BEFORE_DOCUMENT_ELEMENT) {
+ xmlOutputBufferWriteString(ctx->buf, "?>\x0A");
+ } else {
+ xmlOutputBufferWriteString(ctx->buf, "?>");
+ }
+ }
+ break;
+ case XML_COMMENT_NODE:
+ /*
+ * Comment Nodes
+ * Nothing if generating canonical XML without comments. For
+ * canonical XML with comments, generate the opening comment
+ * symbol (<!--), the string value of the node, and the
+ * closing comment symbol (-->). Also, a trailing #xA is rendered
+ * after the closing comment symbol for comment children of the
+ * root node with a lesser document order than the document
+ * element, and a leading #xA is rendered before the opening
+ * comment symbol of comment children of the root node with a
+ * greater document order than the document element. (Comment
+ * children of the root node represent comments outside of the
+ * top-level document element and outside of the document type
+ * declaration).
+ */
+ if (visible && ctx->with_comments) {
+ if (ctx->pos == XMLC14N_AFTER_DOCUMENT_ELEMENT) {
+ xmlOutputBufferWriteString(ctx->buf, "\x0A<!--");
+ } else {
+ xmlOutputBufferWriteString(ctx->buf, "<!--");
+ }
+
+ if (cur->content != NULL) {
+ xmlChar *buffer;
+
+ /* todo: do we need to normalize comment? */
+ buffer = xmlC11NNormalizeComment(cur->content);
+ if (buffer != NULL) {
+ xmlOutputBufferWriteString(ctx->buf,
+ (const char *) buffer);
+ xmlFree(buffer);
+ } else {
+ xmlC14NErrInternal("normalizing comment node");
+ return (-1);
+ }
+ }
+
+ if (ctx->pos == XMLC14N_BEFORE_DOCUMENT_ELEMENT) {
+ xmlOutputBufferWriteString(ctx->buf, "-->\x0A");
+ } else {
+ xmlOutputBufferWriteString(ctx->buf, "-->");
+ }
+ }
+ break;
+ case XML_DOCUMENT_NODE:
+ case XML_DOCUMENT_FRAG_NODE: /* should be processed as document? */
+#ifdef LIBXML_DOCB_ENABLED
+ case XML_DOCB_DOCUMENT_NODE: /* should be processed as document? */
+#endif
+#ifdef LIBXML_HTML_ENABLED
+ case XML_HTML_DOCUMENT_NODE: /* should be processed as document? */
+#endif
+ if (cur->children != NULL) {
+ ctx->pos = XMLC14N_BEFORE_DOCUMENT_ELEMENT;
+ ctx->parent_is_doc = 1;
+ ret = xmlC14NProcessNodeList(ctx, cur->children);
+ }
+ break;
+
+ case XML_ATTRIBUTE_NODE:
+ xmlC14NErrInvalidNode("XML_ATTRIBUTE_NODE", "processing node");
+ return (-1);
+ case XML_NAMESPACE_DECL:
+ xmlC14NErrInvalidNode("XML_NAMESPACE_DECL", "processing node");
+ return (-1);
+ case XML_ENTITY_REF_NODE:
+ xmlC14NErrInvalidNode("XML_ENTITY_REF_NODE", "processing node");
+ return (-1);
+ case XML_ENTITY_NODE:
+ xmlC14NErrInvalidNode("XML_ENTITY_NODE", "processing node");
+ return (-1);
+
+ case XML_DOCUMENT_TYPE_NODE:
+ case XML_NOTATION_NODE:
+ case XML_DTD_NODE:
+ case XML_ELEMENT_DECL:
+ case XML_ATTRIBUTE_DECL:
+ case XML_ENTITY_DECL:
+#ifdef LIBXML_XINCLUDE_ENABLED
+ case XML_XINCLUDE_START:
+ case XML_XINCLUDE_END:
+#endif
+ /*
+ * should be ignored according to "W3C Canonical XML"
+ */
+ break;
+ default:
+ xmlC14NErrUnknownNode(cur->type, "processing node");
+ return (-1);
+ }
+
+ return (ret);
+}
+
+/**
+ * xmlC14NProcessNodeList:
+ * @ctx: the pointer to C14N context object
+ * @cur: the node to start from
+ *
+ * Processes all nodes in the row starting from cur.
+ *
+ * Returns non-negative value on success or negative value on fail
+ */
+static int
+xmlC14NProcessNodeList(xmlC14NCtxPtr ctx, xmlNodePtr cur)
+{
+ int ret;
+
+ if (ctx == NULL) {
+ xmlC14NErrParam("processing node list");
+ return (-1);
+ }
+
+ for (ret = 0; cur != NULL && ret >= 0; cur = cur->next) {
+ ret = xmlC14NProcessNode(ctx, cur);
+ }
+ return (ret);
+}
+
+
+/**
+ * xmlC14NFreeCtx:
+ * @ctx: the pointer to C14N context object
+ *
+ * Cleanups the C14N context object.
+ */
+
+static void
+xmlC14NFreeCtx(xmlC14NCtxPtr ctx)
+{
+ if (ctx == NULL) {
+ xmlC14NErrParam("freeing context");
+ return;
+ }
+
+ if (ctx->ns_rendered != NULL) {
+ xmlC14NVisibleNsStackDestroy(ctx->ns_rendered);
+ }
+ xmlFree(ctx);
+}
+
+/**
+ * xmlC14NNewCtx:
+ * @doc: the XML document for canonization
+ * @is_visible_callback:the function to use to determine is node visible
+ * or not
+ * @user_data: the first parameter for @is_visible_callback function
+ * (in most cases, it is nodes set)
+ * @mode: the c14n mode (see @xmlC14NMode)
+ * @inclusive_ns_prefixe the list of inclusive namespace prefixes
+ * ended with a NULL or NULL if there is no
+ * inclusive namespaces (only for `
+ * canonicalization)
+ * @with_comments: include comments in the result (!=0) or not (==0)
+ * @buf: the output buffer to store canonical XML; this
+ * buffer MUST have encoder==NULL because C14N requires
+ * UTF-8 output
+ *
+ * Creates new C14N context object to store C14N parameters.
+ *
+ * Returns pointer to newly created object (success) or NULL (fail)
+ */
+static xmlC14NCtxPtr
+xmlC14NNewCtx(xmlDocPtr doc,
+ xmlC14NIsVisibleCallback is_visible_callback, void* user_data,
+ xmlC14NMode mode, xmlChar ** inclusive_ns_prefixes,
+ int with_comments, xmlOutputBufferPtr buf)
+{
+ xmlC14NCtxPtr ctx = NULL;
+
+ if ((doc == NULL) || (buf == NULL)) {
+ xmlC14NErrParam("creating new context");
+ return (NULL);
+ }
+
+ /*
+ * Validate the encoding output buffer encoding
+ */
+ if (buf->encoder != NULL) {
+ xmlC14NErr(ctx, (xmlNodePtr) doc, XML_C14N_REQUIRES_UTF8,
+"xmlC14NNewCtx: output buffer encoder != NULL but C14N requires UTF8 output\n");
+ return (NULL);
+ }
+
+ /*
+ * Allocate a new xmlC14NCtxPtr and fill the fields.
+ */
+ ctx = (xmlC14NCtxPtr) xmlMalloc(sizeof(xmlC14NCtx));
+ if (ctx == NULL) {
+ xmlC14NErrMemory("creating context");
+ return (NULL);
+ }
+ memset(ctx, 0, sizeof(xmlC14NCtx));
+
+ /*
+ * initialize C14N context
+ */
+ ctx->doc = doc;
+ ctx->with_comments = with_comments;
+ ctx->is_visible_callback = is_visible_callback;
+ ctx->user_data = user_data;
+ ctx->buf = buf;
+ ctx->parent_is_doc = 1;
+ ctx->pos = XMLC14N_BEFORE_DOCUMENT_ELEMENT;
+ ctx->ns_rendered = xmlC14NVisibleNsStackCreate();
+
+ if(ctx->ns_rendered == NULL) {
+ xmlC14NErr(ctx, (xmlNodePtr) doc, XML_C14N_CREATE_STACK,
+ "xmlC14NNewCtx: xmlC14NVisibleNsStackCreate failed\n");
+ xmlC14NFreeCtx(ctx);
+ return (NULL);
+ }
+
+ /*
+ * Set "mode" flag and remember list of inclusive prefixes
+ * for exclusive c14n
+ */
+ ctx->mode = mode;
+ if(xmlC14NIsExclusive(ctx)) {
+ ctx->inclusive_ns_prefixes = inclusive_ns_prefixes;
+ }
+ return (ctx);
+}
+
+/**
+ * xmlC14NExecute:
+ * @doc: the XML document for canonization
+ * @is_visible_callback:the function to use to determine is node visible
+ * or not
+ * @user_data: the first parameter for @is_visible_callback function
+ * (in most cases, it is nodes set)
+ * @mode: the c14n mode (see @xmlC14NMode)
+ * @inclusive_ns_prefixes: the list of inclusive namespace prefixes
+ * ended with a NULL or NULL if there is no
+ * inclusive namespaces (only for exclusive
+ * canonicalization, ignored otherwise)
+ * @with_comments: include comments in the result (!=0) or not (==0)
+ * @buf: the output buffer to store canonical XML; this
+ * buffer MUST have encoder==NULL because C14N requires
+ * UTF-8 output
+ *
+ * Dumps the canonized image of given XML document into the provided buffer.
+ * For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or
+ * "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)
+ *
+ * Returns non-negative value on success or a negative value on fail
+ */
+int
+xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback,
+ void* user_data, int mode, xmlChar **inclusive_ns_prefixes,
+ int with_comments, xmlOutputBufferPtr buf) {
+
+ xmlC14NCtxPtr ctx;
+ xmlC14NMode c14n_mode = XML_C14N_1_0;
+ int ret;
+
+ if ((buf == NULL) || (doc == NULL)) {
+ xmlC14NErrParam("executing c14n");
+ return (-1);
+ }
+
+ /* for backward compatibility, we have to have "mode" as "int"
+ and here we check that user gives valid value */
+ switch(mode) {
+ case XML_C14N_1_0:
+ case XML_C14N_EXCLUSIVE_1_0:
+ case XML_C14N_1_1:
+ c14n_mode = (xmlC14NMode)mode;
+ break;
+ default:
+ xmlC14NErrParam("invalid mode for executing c14n");
+ return (-1);
+ }
+
+ /*
+ * Validate the encoding output buffer encoding
+ */
+ if (buf->encoder != NULL) {
+ xmlC14NErr(NULL, (xmlNodePtr) doc, XML_C14N_REQUIRES_UTF8,
+"xmlC14NExecute: output buffer encoder != NULL but C14N requires UTF8 output\n");
+ return (-1);
+ }
+
+ ctx = xmlC14NNewCtx(doc, is_visible_callback, user_data,
+ c14n_mode, inclusive_ns_prefixes,
+ with_comments, buf);
+ if (ctx == NULL) {
+ xmlC14NErr(NULL, (xmlNodePtr) doc, XML_C14N_CREATE_CTXT,
+ "xmlC14NExecute: unable to create C14N context\n");
+ return (-1);
+ }
+
+
+
+ /*
+ * Root Node
+ * The root node is the parent of the top-level document element. The
+ * result of processing each of its child nodes that is in the node-set
+ * in document order. The root node does not generate a byte order mark,
+ * XML declaration, nor anything from within the document type
+ * declaration.
+ */
+ if (doc->children != NULL) {
+ ret = xmlC14NProcessNodeList(ctx, doc->children);
+ if (ret < 0) {
+ xmlC14NErrInternal("processing docs children list");
+ xmlC14NFreeCtx(ctx);
+ return (-1);
+ }
+ }
+
+ /*
+ * Flush buffer to get number of bytes written
+ */
+ ret = xmlOutputBufferFlush(buf);
+ if (ret < 0) {
+ xmlC14NErrInternal("flushing output buffer");
+ xmlC14NFreeCtx(ctx);
+ return (-1);
+ }
+
+ /*
+ * Cleanup
+ */
+ xmlC14NFreeCtx(ctx);
+ return (ret);
+}
+
+/**
+ * xmlC14NDocSaveTo:
+ * @doc: the XML document for canonization
+ * @nodes: the nodes set to be included in the canonized image
+ * or NULL if all document nodes should be included
+ * @mode: the c14n mode (see @xmlC14NMode)
+ * @inclusive_ns_prefixes: the list of inclusive namespace prefixes
+ * ended with a NULL or NULL if there is no
+ * inclusive namespaces (only for exclusive
+ * canonicalization, ignored otherwise)
+ * @with_comments: include comments in the result (!=0) or not (==0)
+ * @buf: the output buffer to store canonical XML; this
+ * buffer MUST have encoder==NULL because C14N requires
+ * UTF-8 output
+ *
+ * Dumps the canonized image of given XML document into the provided buffer.
+ * For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or
+ * "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)
+ *
+ * Returns non-negative value on success or a negative value on fail
+ */
+int
+xmlC14NDocSaveTo(xmlDocPtr doc, xmlNodeSetPtr nodes,
+ int mode, xmlChar ** inclusive_ns_prefixes,
+ int with_comments, xmlOutputBufferPtr buf) {
+ return(xmlC14NExecute(doc,
+ xmlC14NIsNodeInNodeset,
+ nodes,
+ mode,
+ inclusive_ns_prefixes,
+ with_comments,
+ buf));
+}
+
+
+/**
+ * xmlC14NDocDumpMemory:
+ * @doc: the XML document for canonization
+ * @nodes: the nodes set to be included in the canonized image
+ * or NULL if all document nodes should be included
+ * @mode: the c14n mode (see @xmlC14NMode)
+ * @inclusive_ns_prefixes: the list of inclusive namespace prefixes
+ * ended with a NULL or NULL if there is no
+ * inclusive namespaces (only for exclusive
+ * canonicalization, ignored otherwise)
+ * @with_comments: include comments in the result (!=0) or not (==0)
+ * @doc_txt_ptr: the memory pointer for allocated canonical XML text;
+ * the caller of this functions is responsible for calling
+ * xmlFree() to free allocated memory
+ *
+ * Dumps the canonized image of given XML document into memory.
+ * For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or
+ * "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)
+ *
+ * Returns the number of bytes written on success or a negative value on fail
+ */
+int
+xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes,
+ int mode, xmlChar ** inclusive_ns_prefixes,
+ int with_comments, xmlChar ** doc_txt_ptr)
+{
+ int ret;
+ xmlOutputBufferPtr buf;
+
+ if (doc_txt_ptr == NULL) {
+ xmlC14NErrParam("dumping doc to memory");
+ return (-1);
+ }
+
+ *doc_txt_ptr = NULL;
+
+ /*
+ * create memory buffer with UTF8 (default) encoding
+ */
+ buf = xmlAllocOutputBuffer(NULL);
+ if (buf == NULL) {
+ xmlC14NErrMemory("creating output buffer");
+ return (-1);
+ }
+
+ /*
+ * canonize document and write to buffer
+ */
+ ret = xmlC14NDocSaveTo(doc, nodes, mode, inclusive_ns_prefixes,
+ with_comments, buf);
+ if (ret < 0) {
+ xmlC14NErrInternal("saving doc to output buffer");
+ (void) xmlOutputBufferClose(buf);
+ return (-1);
+ }
+
+ ret = xmlBufUse(buf->buffer);
+ if (ret > 0) {
+ *doc_txt_ptr = xmlStrndup(xmlBufContent(buf->buffer), ret);
+ }
+ (void) xmlOutputBufferClose(buf);
+
+ if ((*doc_txt_ptr == NULL) && (ret > 0)) {
+ xmlC14NErrMemory("coping canonicalized document");
+ return (-1);
+ }
+ return (ret);
+}
+
+/**
+ * xmlC14NDocSave:
+ * @doc: the XML document for canonization
+ * @nodes: the nodes set to be included in the canonized image
+ * or NULL if all document nodes should be included
+ * @mode: the c14n mode (see @xmlC14NMode)
+ * @inclusive_ns_prefixes: the list of inclusive namespace prefixes
+ * ended with a NULL or NULL if there is no
+ * inclusive namespaces (only for exclusive
+ * canonicalization, ignored otherwise)
+ * @with_comments: include comments in the result (!=0) or not (==0)
+ * @filename: the filename to store canonical XML image
+ * @compression: the compression level (zlib required):
+ * -1 - libxml default,
+ * 0 - uncompressed,
+ * >0 - compression level
+ *
+ * Dumps the canonized image of given XML document into the file.
+ * For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or
+ * "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)
+ *
+ * Returns the number of bytes written success or a negative value on fail
+ */
+int
+xmlC14NDocSave(xmlDocPtr doc, xmlNodeSetPtr nodes,
+ int mode, xmlChar ** inclusive_ns_prefixes,
+ int with_comments, const char *filename, int compression)
+{
+ xmlOutputBufferPtr buf;
+ int ret;
+
+ if (filename == NULL) {
+ xmlC14NErrParam("saving doc");
+ return (-1);
+ }
+#ifdef LIBXML_ZLIB_ENABLED
+ if (compression < 0)
+ compression = xmlGetCompressMode();
+#endif
+
+ /*
+ * save the content to a temp buffer, use default UTF8 encoding.
+ */
+ buf = xmlOutputBufferCreateFilename(filename, NULL, compression);
+ if (buf == NULL) {
+ xmlC14NErrInternal("creating temporary filename");
+ return (-1);
+ }
+
+ /*
+ * canonize document and write to buffer
+ */
+ ret = xmlC14NDocSaveTo(doc, nodes, mode, inclusive_ns_prefixes,
+ with_comments, buf);
+ if (ret < 0) {
+ xmlC14NErrInternal("canonize document to buffer");
+ (void) xmlOutputBufferClose(buf);
+ return (-1);
+ }
+
+ /*
+ * get the numbers of bytes written
+ */
+ ret = xmlOutputBufferClose(buf);
+ return (ret);
+}
+
+
+
+/*
+ * Macro used to grow the current buffer.
+ */
+#define growBufferReentrant() { \
+ buffer_size *= 2; \
+ buffer = (xmlChar *) \
+ xmlRealloc(buffer, buffer_size * sizeof(xmlChar)); \
+ if (buffer == NULL) { \
+ xmlC14NErrMemory("growing buffer"); \
+ return(NULL); \
+ } \
+}
+
+/**
+ * xmlC11NNormalizeString:
+ * @input: the input string
+ * @mode: the normalization mode (attribute, comment, PI or text)
+ *
+ * Converts a string to a canonical (normalized) format. The code is stolen
+ * from xmlEncodeEntitiesReentrant(). Added normalization of \x09, \x0a, \x0A
+ * and the @mode parameter
+ *
+ * Returns a normalized string (caller is responsible for calling xmlFree())
+ * or NULL if an error occurs
+ */
+static xmlChar *
+xmlC11NNormalizeString(const xmlChar * input,
+ xmlC14NNormalizationMode mode)
+{
+ const xmlChar *cur = input;
+ xmlChar *buffer = NULL;
+ xmlChar *out = NULL;
+ int buffer_size = 0;
+
+ if (input == NULL)
+ return (NULL);
+
+ /*
+ * allocate an translation buffer.
+ */
+ buffer_size = 1000;
+ buffer = (xmlChar *) xmlMallocAtomic(buffer_size * sizeof(xmlChar));
+ if (buffer == NULL) {
+ xmlC14NErrMemory("allocating buffer");
+ return (NULL);
+ }
+ out = buffer;
+
+ while (*cur != '\0') {
+ if ((out - buffer) > (buffer_size - 10)) {
+ int indx = out - buffer;
+
+ growBufferReentrant();
+ out = &buffer[indx];
+ }
+
+ if ((*cur == '<') && ((mode == XMLC14N_NORMALIZE_ATTR) ||
+ (mode == XMLC14N_NORMALIZE_TEXT))) {
+ *out++ = '&';
+ *out++ = 'l';
+ *out++ = 't';
+ *out++ = ';';
+ } else if ((*cur == '>') && (mode == XMLC14N_NORMALIZE_TEXT)) {
+ *out++ = '&';
+ *out++ = 'g';
+ *out++ = 't';
+ *out++ = ';';
+ } else if ((*cur == '&') && ((mode == XMLC14N_NORMALIZE_ATTR) ||
+ (mode == XMLC14N_NORMALIZE_TEXT))) {
+ *out++ = '&';
+ *out++ = 'a';
+ *out++ = 'm';
+ *out++ = 'p';
+ *out++ = ';';
+ } else if ((*cur == '"') && (mode == XMLC14N_NORMALIZE_ATTR)) {
+ *out++ = '&';
+ *out++ = 'q';
+ *out++ = 'u';
+ *out++ = 'o';
+ *out++ = 't';
+ *out++ = ';';
+ } else if ((*cur == '\x09') && (mode == XMLC14N_NORMALIZE_ATTR)) {
+ *out++ = '&';
+ *out++ = '#';
+ *out++ = 'x';
+ *out++ = '9';
+ *out++ = ';';
+ } else if ((*cur == '\x0A') && (mode == XMLC14N_NORMALIZE_ATTR)) {
+ *out++ = '&';
+ *out++ = '#';
+ *out++ = 'x';
+ *out++ = 'A';
+ *out++ = ';';
+ } else if ((*cur == '\x0D') && ((mode == XMLC14N_NORMALIZE_ATTR) ||
+ (mode == XMLC14N_NORMALIZE_TEXT) ||
+ (mode == XMLC14N_NORMALIZE_COMMENT) ||
+ (mode == XMLC14N_NORMALIZE_PI))) {
+ *out++ = '&';
+ *out++ = '#';
+ *out++ = 'x';
+ *out++ = 'D';
+ *out++ = ';';
+ } else {
+ /*
+ * Works because on UTF-8, all extended sequences cannot
+ * result in bytes in the ASCII range.
+ */
+ *out++ = *cur;
+ }
+ cur++;
+ }
+ *out = 0;
+ return (buffer);
+}
+#endif /* LIBXML_OUTPUT_ENABLED */
+#define bottom_c14n
+#include "elfgcchack.h"
+#endif /* LIBXML_C14N_ENABLED */
diff --git a/libxml2-2.9.10/catalog.c b/libxml2-2.9.10/catalog.c
new file mode 100644
index 0000000..7328fd3
--- /dev/null
+++ b/libxml2-2.9.10/catalog.c
@@ -0,0 +1,3828 @@
+/**
+ * catalog.c: set of generic Catalog related routines
+ *
+ * Reference: SGML Open Technical Resolution TR9401:1997.
+ * http://www.jclark.com/sp/catalog.htm
+ *
+ * XML Catalogs Working Draft 06 August 2001
+ * http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
+ *
+ * See Copyright for the status of this software.
+ *
+ * Daniel.Veillard@imag.fr
+ */
+
+#define IN_LIBXML
+#include "libxml.h"
+
+#ifdef LIBXML_CATALOG_ENABLED
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include <string.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/hash.h>
+#include <libxml/uri.h>
+#include <libxml/parserInternals.h>
+#include <libxml/catalog.h>
+#include <libxml/xmlerror.h>
+#include <libxml/threads.h>
+#include <libxml/globals.h>
+
+#include "buf.h"
+
+#define MAX_DELEGATE 50
+#define MAX_CATAL_DEPTH 50
+
+#ifdef _WIN32
+# define PATH_SEPARATOR ';'
+#else
+# define PATH_SEPARATOR ':'
+#endif
+
+/**
+ * TODO:
+ *
+ * macro to flag unimplemented blocks
+ * XML_CATALOG_PREFER user env to select between system/public preferred
+ * option. C.f. Richard Tobin <richard@cogsci.ed.ac.uk>
+ *> Just FYI, I am using an environment variable XML_CATALOG_PREFER with
+ *> values "system" and "public". I have made the default be "system" to
+ *> match yours.
+ */
+#define TODO \
+ xmlGenericError(xmlGenericErrorContext, \
+ "Unimplemented block at %s:%d\n", \
+ __FILE__, __LINE__);
+
+#define XML_URN_PUBID "urn:publicid:"
+#define XML_CATAL_BREAK ((xmlChar *) -1)
+#ifndef XML_XML_DEFAULT_CATALOG
+#define XML_XML_DEFAULT_CATALOG "file:///etc/xml/catalog"
+#endif
+#ifndef XML_SGML_DEFAULT_CATALOG
+#define XML_SGML_DEFAULT_CATALOG "file:///etc/sgml/catalog"
+#endif
+
+#if defined(_WIN32) && defined(_MSC_VER)
+#undef XML_XML_DEFAULT_CATALOG
+static char XML_XML_DEFAULT_CATALOG[256] = "file:///etc/xml/catalog";
+#if defined(_WIN32_WCE)
+/* Windows CE don't have a A variant */
+#define GetModuleHandleA GetModuleHandle
+#define GetModuleFileNameA GetModuleFileName
+#else
+#if !defined(_WINDOWS_)
+void* __stdcall GetModuleHandleA(const char*);
+unsigned long __stdcall GetModuleFileNameA(void*, char*, unsigned long);
+#endif
+#endif
+#endif
+
+static xmlChar *xmlCatalogNormalizePublic(const xmlChar *pubID);
+static int xmlExpandCatalog(xmlCatalogPtr catal, const char *filename);
+
+/************************************************************************
+ * *
+ * Types, all private *
+ * *
+ ************************************************************************/
+
+typedef enum {
+ XML_CATA_REMOVED = -1,
+ XML_CATA_NONE = 0,
+ XML_CATA_CATALOG,
+ XML_CATA_BROKEN_CATALOG,
+ XML_CATA_NEXT_CATALOG,
+ XML_CATA_GROUP,
+ XML_CATA_PUBLIC,
+ XML_CATA_SYSTEM,
+ XML_CATA_REWRITE_SYSTEM,
+ XML_CATA_DELEGATE_PUBLIC,
+ XML_CATA_DELEGATE_SYSTEM,
+ XML_CATA_URI,
+ XML_CATA_REWRITE_URI,
+ XML_CATA_DELEGATE_URI,
+ SGML_CATA_SYSTEM,
+ SGML_CATA_PUBLIC,
+ SGML_CATA_ENTITY,
+ SGML_CATA_PENTITY,
+ SGML_CATA_DOCTYPE,
+ SGML_CATA_LINKTYPE,
+ SGML_CATA_NOTATION,
+ SGML_CATA_DELEGATE,
+ SGML_CATA_BASE,
+ SGML_CATA_CATALOG,
+ SGML_CATA_DOCUMENT,
+ SGML_CATA_SGMLDECL
+} xmlCatalogEntryType;
+
+typedef struct _xmlCatalogEntry xmlCatalogEntry;
+typedef xmlCatalogEntry *xmlCatalogEntryPtr;
+struct _xmlCatalogEntry {
+ struct _xmlCatalogEntry *next;
+ struct _xmlCatalogEntry *parent;
+ struct _xmlCatalogEntry *children;
+ xmlCatalogEntryType type;
+ xmlChar *name;
+ xmlChar *value;
+ xmlChar *URL; /* The expanded URL using the base */
+ xmlCatalogPrefer prefer;
+ int dealloc;
+ int depth;
+ struct _xmlCatalogEntry *group;
+};
+
+typedef enum {
+ XML_XML_CATALOG_TYPE = 1,
+ XML_SGML_CATALOG_TYPE
+} xmlCatalogType;
+
+#define XML_MAX_SGML_CATA_DEPTH 10
+struct _xmlCatalog {
+ xmlCatalogType type; /* either XML or SGML */
+
+ /*
+ * SGML Catalogs are stored as a simple hash table of catalog entries
+ * Catalog stack to check against overflows when building the
+ * SGML catalog
+ */
+ char *catalTab[XML_MAX_SGML_CATA_DEPTH]; /* stack of catals */
+ int catalNr; /* Number of current catal streams */
+ int catalMax; /* Max number of catal streams */
+ xmlHashTablePtr sgml;
+
+ /*
+ * XML Catalogs are stored as a tree of Catalog entries
+ */
+ xmlCatalogPrefer prefer;
+ xmlCatalogEntryPtr xml;
+};
+
+/************************************************************************
+ * *
+ * Global variables *
+ * *
+ ************************************************************************/
+
+/*
+ * Those are preferences
+ */
+static int xmlDebugCatalogs = 0; /* used for debugging */
+static xmlCatalogAllow xmlCatalogDefaultAllow = XML_CATA_ALLOW_ALL;
+static xmlCatalogPrefer xmlCatalogDefaultPrefer = XML_CATA_PREFER_PUBLIC;
+
+/*
+ * Hash table containing all the trees of XML catalogs parsed by
+ * the application.
+ */
+static xmlHashTablePtr xmlCatalogXMLFiles = NULL;
+
+/*
+ * The default catalog in use by the application
+ */
+static xmlCatalogPtr xmlDefaultCatalog = NULL;
+
+/*
+ * A mutex for modifying the shared global catalog(s)
+ * xmlDefaultCatalog tree.
+ * It also protects xmlCatalogXMLFiles
+ * The core of this readers/writer scheme is in xmlFetchXMLCatalogFile()
+ */
+static xmlRMutexPtr xmlCatalogMutex = NULL;
+
+/*
+ * Whether the catalog support was initialized.
+ */
+static int xmlCatalogInitialized = 0;
+
+/************************************************************************
+ * *
+ * Catalog error handlers *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlCatalogErrMemory:
+ * @extra: extra informations
+ *
+ * Handle an out of memory condition
+ */
+static void
+xmlCatalogErrMemory(const char *extra)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_CATALOG,
+ XML_ERR_NO_MEMORY, XML_ERR_ERROR, NULL, 0,
+ extra, NULL, NULL, 0, 0,
+ "Memory allocation failed : %s\n", extra);
+}
+
+/**
+ * xmlCatalogErr:
+ * @catal: the Catalog entry
+ * @node: the context node
+ * @msg: the error message
+ * @extra: extra informations
+ *
+ * Handle a catalog error
+ */
+static void LIBXML_ATTR_FORMAT(4,0)
+xmlCatalogErr(xmlCatalogEntryPtr catal, xmlNodePtr node, int error,
+ const char *msg, const xmlChar *str1, const xmlChar *str2,
+ const xmlChar *str3)
+{
+ __xmlRaiseError(NULL, NULL, NULL, catal, node, XML_FROM_CATALOG,
+ error, XML_ERR_ERROR, NULL, 0,
+ (const char *) str1, (const char *) str2,
+ (const char *) str3, 0, 0,
+ msg, str1, str2, str3);
+}
+
+
+/************************************************************************
+ * *
+ * Allocation and Freeing *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlNewCatalogEntry:
+ * @type: type of entry
+ * @name: name of the entry
+ * @value: value of the entry
+ * @prefer: the PUBLIC vs. SYSTEM current preference value
+ * @group: for members of a group, the group entry
+ *
+ * create a new Catalog entry, this type is shared both by XML and
+ * SGML catalogs, but the acceptable types values differs.
+ *
+ * Returns the xmlCatalogEntryPtr or NULL in case of error
+ */
+static xmlCatalogEntryPtr
+xmlNewCatalogEntry(xmlCatalogEntryType type, const xmlChar *name,
+ const xmlChar *value, const xmlChar *URL, xmlCatalogPrefer prefer,
+ xmlCatalogEntryPtr group) {
+ xmlCatalogEntryPtr ret;
+ xmlChar *normid = NULL;
+
+ ret = (xmlCatalogEntryPtr) xmlMalloc(sizeof(xmlCatalogEntry));
+ if (ret == NULL) {
+ xmlCatalogErrMemory("allocating catalog entry");
+ return(NULL);
+ }
+ ret->next = NULL;
+ ret->parent = NULL;
+ ret->children = NULL;
+ ret->type = type;
+ if (type == XML_CATA_PUBLIC || type == XML_CATA_DELEGATE_PUBLIC) {
+ normid = xmlCatalogNormalizePublic(name);
+ if (normid != NULL)
+ name = (*normid != 0 ? normid : NULL);
+ }
+ if (name != NULL)
+ ret->name = xmlStrdup(name);
+ else
+ ret->name = NULL;
+ if (normid != NULL)
+ xmlFree(normid);
+ if (value != NULL)
+ ret->value = xmlStrdup(value);
+ else
+ ret->value = NULL;
+ if (URL == NULL)
+ URL = value;
+ if (URL != NULL)
+ ret->URL = xmlStrdup(URL);
+ else
+ ret->URL = NULL;
+ ret->prefer = prefer;
+ ret->dealloc = 0;
+ ret->depth = 0;
+ ret->group = group;
+ return(ret);
+}
+
+static void
+xmlFreeCatalogEntryList(xmlCatalogEntryPtr ret);
+
+/**
+ * xmlFreeCatalogEntry:
+ * @payload: a Catalog entry
+ *
+ * Free the memory allocated to a Catalog entry
+ */
+static void
+xmlFreeCatalogEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlCatalogEntryPtr ret = (xmlCatalogEntryPtr) payload;
+ if (ret == NULL)
+ return;
+ /*
+ * Entries stored in the file hash must be deallocated
+ * only by the file hash cleaner !
+ */
+ if (ret->dealloc == 1)
+ return;
+
+ if (xmlDebugCatalogs) {
+ if (ret->name != NULL)
+ xmlGenericError(xmlGenericErrorContext,
+ "Free catalog entry %s\n", ret->name);
+ else if (ret->value != NULL)
+ xmlGenericError(xmlGenericErrorContext,
+ "Free catalog entry %s\n", ret->value);
+ else
+ xmlGenericError(xmlGenericErrorContext,
+ "Free catalog entry\n");
+ }
+
+ if (ret->name != NULL)
+ xmlFree(ret->name);
+ if (ret->value != NULL)
+ xmlFree(ret->value);
+ if (ret->URL != NULL)
+ xmlFree(ret->URL);
+ xmlFree(ret);
+}
+
+/**
+ * xmlFreeCatalogEntryList:
+ * @ret: a Catalog entry list
+ *
+ * Free the memory allocated to a full chained list of Catalog entries
+ */
+static void
+xmlFreeCatalogEntryList(xmlCatalogEntryPtr ret) {
+ xmlCatalogEntryPtr next;
+
+ while (ret != NULL) {
+ next = ret->next;
+ xmlFreeCatalogEntry(ret, NULL);
+ ret = next;
+ }
+}
+
+/**
+ * xmlFreeCatalogHashEntryList:
+ * @payload: a Catalog entry list
+ *
+ * Free the memory allocated to list of Catalog entries from the
+ * catalog file hash.
+ */
+static void
+xmlFreeCatalogHashEntryList(void *payload,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlCatalogEntryPtr catal = (xmlCatalogEntryPtr) payload;
+ xmlCatalogEntryPtr children, next;
+
+ if (catal == NULL)
+ return;
+
+ children = catal->children;
+ while (children != NULL) {
+ next = children->next;
+ children->dealloc = 0;
+ children->children = NULL;
+ xmlFreeCatalogEntry(children, NULL);
+ children = next;
+ }
+ catal->dealloc = 0;
+ xmlFreeCatalogEntry(catal, NULL);
+}
+
+/**
+ * xmlCreateNewCatalog:
+ * @type: type of catalog
+ * @prefer: the PUBLIC vs. SYSTEM current preference value
+ *
+ * create a new Catalog, this type is shared both by XML and
+ * SGML catalogs, but the acceptable types values differs.
+ *
+ * Returns the xmlCatalogPtr or NULL in case of error
+ */
+static xmlCatalogPtr
+xmlCreateNewCatalog(xmlCatalogType type, xmlCatalogPrefer prefer) {
+ xmlCatalogPtr ret;
+
+ ret = (xmlCatalogPtr) xmlMalloc(sizeof(xmlCatalog));
+ if (ret == NULL) {
+ xmlCatalogErrMemory("allocating catalog");
+ return(NULL);
+ }
+ memset(ret, 0, sizeof(xmlCatalog));
+ ret->type = type;
+ ret->catalNr = 0;
+ ret->catalMax = XML_MAX_SGML_CATA_DEPTH;
+ ret->prefer = prefer;
+ if (ret->type == XML_SGML_CATALOG_TYPE)
+ ret->sgml = xmlHashCreate(10);
+ return(ret);
+}
+
+/**
+ * xmlFreeCatalog:
+ * @catal: a Catalog
+ *
+ * Free the memory allocated to a Catalog
+ */
+void
+xmlFreeCatalog(xmlCatalogPtr catal) {
+ if (catal == NULL)
+ return;
+ if (catal->xml != NULL)
+ xmlFreeCatalogEntryList(catal->xml);
+ if (catal->sgml != NULL)
+ xmlHashFree(catal->sgml, xmlFreeCatalogEntry);
+ xmlFree(catal);
+}
+
+/************************************************************************
+ * *
+ * Serializing Catalogs *
+ * *
+ ************************************************************************/
+
+#ifdef LIBXML_OUTPUT_ENABLED
+/**
+ * xmlCatalogDumpEntry:
+ * @entry: the catalog entry
+ * @out: the file.
+ *
+ * Serialize an SGML Catalog entry
+ */
+static void
+xmlCatalogDumpEntry(void *payload, void *data,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlCatalogEntryPtr entry = (xmlCatalogEntryPtr) payload;
+ FILE *out = (FILE *) data;
+ if ((entry == NULL) || (out == NULL))
+ return;
+ switch (entry->type) {
+ case SGML_CATA_ENTITY:
+ fprintf(out, "ENTITY "); break;
+ case SGML_CATA_PENTITY:
+ fprintf(out, "ENTITY %%"); break;
+ case SGML_CATA_DOCTYPE:
+ fprintf(out, "DOCTYPE "); break;
+ case SGML_CATA_LINKTYPE:
+ fprintf(out, "LINKTYPE "); break;
+ case SGML_CATA_NOTATION:
+ fprintf(out, "NOTATION "); break;
+ case SGML_CATA_PUBLIC:
+ fprintf(out, "PUBLIC "); break;
+ case SGML_CATA_SYSTEM:
+ fprintf(out, "SYSTEM "); break;
+ case SGML_CATA_DELEGATE:
+ fprintf(out, "DELEGATE "); break;
+ case SGML_CATA_BASE:
+ fprintf(out, "BASE "); break;
+ case SGML_CATA_CATALOG:
+ fprintf(out, "CATALOG "); break;
+ case SGML_CATA_DOCUMENT:
+ fprintf(out, "DOCUMENT "); break;
+ case SGML_CATA_SGMLDECL:
+ fprintf(out, "SGMLDECL "); break;
+ default:
+ return;
+ }
+ switch (entry->type) {
+ case SGML_CATA_ENTITY:
+ case SGML_CATA_PENTITY:
+ case SGML_CATA_DOCTYPE:
+ case SGML_CATA_LINKTYPE:
+ case SGML_CATA_NOTATION:
+ fprintf(out, "%s", (const char *) entry->name); break;
+ case SGML_CATA_PUBLIC:
+ case SGML_CATA_SYSTEM:
+ case SGML_CATA_SGMLDECL:
+ case SGML_CATA_DOCUMENT:
+ case SGML_CATA_CATALOG:
+ case SGML_CATA_BASE:
+ case SGML_CATA_DELEGATE:
+ fprintf(out, "\"%s\"", entry->name); break;
+ default:
+ break;
+ }
+ switch (entry->type) {
+ case SGML_CATA_ENTITY:
+ case SGML_CATA_PENTITY:
+ case SGML_CATA_DOCTYPE:
+ case SGML_CATA_LINKTYPE:
+ case SGML_CATA_NOTATION:
+ case SGML_CATA_PUBLIC:
+ case SGML_CATA_SYSTEM:
+ case SGML_CATA_DELEGATE:
+ fprintf(out, " \"%s\"", entry->value); break;
+ default:
+ break;
+ }
+ fprintf(out, "\n");
+}
+
+/**
+ * xmlDumpXMLCatalogNode:
+ * @catal: top catalog entry
+ * @catalog: pointer to the xml tree
+ * @doc: the containing document
+ * @ns: the current namespace
+ * @cgroup: group node for group members
+ *
+ * Serializes a Catalog entry, called by xmlDumpXMLCatalog and recursively
+ * for group entries
+ */
+static void xmlDumpXMLCatalogNode(xmlCatalogEntryPtr catal, xmlNodePtr catalog,
+ xmlDocPtr doc, xmlNsPtr ns, xmlCatalogEntryPtr cgroup) {
+ xmlNodePtr node;
+ xmlCatalogEntryPtr cur;
+ /*
+ * add all the catalog entries
+ */
+ cur = catal;
+ while (cur != NULL) {
+ if (cur->group == cgroup) {
+ switch (cur->type) {
+ case XML_CATA_REMOVED:
+ break;
+ case XML_CATA_BROKEN_CATALOG:
+ case XML_CATA_CATALOG:
+ if (cur == catal) {
+ cur = cur->children;
+ continue;
+ }
+ break;
+ case XML_CATA_NEXT_CATALOG:
+ node = xmlNewDocNode(doc, ns, BAD_CAST "nextCatalog", NULL);
+ xmlSetProp(node, BAD_CAST "catalog", cur->value);
+ xmlAddChild(catalog, node);
+ break;
+ case XML_CATA_NONE:
+ break;
+ case XML_CATA_GROUP:
+ node = xmlNewDocNode(doc, ns, BAD_CAST "group", NULL);
+ xmlSetProp(node, BAD_CAST "id", cur->name);
+ if (cur->value != NULL) {
+ xmlNsPtr xns;
+ xns = xmlSearchNsByHref(doc, node, XML_XML_NAMESPACE);
+ if (xns != NULL)
+ xmlSetNsProp(node, xns, BAD_CAST "base",
+ cur->value);
+ }
+ switch (cur->prefer) {
+ case XML_CATA_PREFER_NONE:
+ break;
+ case XML_CATA_PREFER_PUBLIC:
+ xmlSetProp(node, BAD_CAST "prefer", BAD_CAST "public");
+ break;
+ case XML_CATA_PREFER_SYSTEM:
+ xmlSetProp(node, BAD_CAST "prefer", BAD_CAST "system");
+ break;
+ }
+ xmlDumpXMLCatalogNode(cur->next, node, doc, ns, cur);
+ xmlAddChild(catalog, node);
+ break;
+ case XML_CATA_PUBLIC:
+ node = xmlNewDocNode(doc, ns, BAD_CAST "public", NULL);
+ xmlSetProp(node, BAD_CAST "publicId", cur->name);
+ xmlSetProp(node, BAD_CAST "uri", cur->value);
+ xmlAddChild(catalog, node);
+ break;
+ case XML_CATA_SYSTEM:
+ node = xmlNewDocNode(doc, ns, BAD_CAST "system", NULL);
+ xmlSetProp(node, BAD_CAST "systemId", cur->name);
+ xmlSetProp(node, BAD_CAST "uri", cur->value);
+ xmlAddChild(catalog, node);
+ break;
+ case XML_CATA_REWRITE_SYSTEM:
+ node = xmlNewDocNode(doc, ns, BAD_CAST "rewriteSystem", NULL);
+ xmlSetProp(node, BAD_CAST "systemIdStartString", cur->name);
+ xmlSetProp(node, BAD_CAST "rewritePrefix", cur->value);
+ xmlAddChild(catalog, node);
+ break;
+ case XML_CATA_DELEGATE_PUBLIC:
+ node = xmlNewDocNode(doc, ns, BAD_CAST "delegatePublic", NULL);
+ xmlSetProp(node, BAD_CAST "publicIdStartString", cur->name);
+ xmlSetProp(node, BAD_CAST "catalog", cur->value);
+ xmlAddChild(catalog, node);
+ break;
+ case XML_CATA_DELEGATE_SYSTEM:
+ node = xmlNewDocNode(doc, ns, BAD_CAST "delegateSystem", NULL);
+ xmlSetProp(node, BAD_CAST "systemIdStartString", cur->name);
+ xmlSetProp(node, BAD_CAST "catalog", cur->value);
+ xmlAddChild(catalog, node);
+ break;
+ case XML_CATA_URI:
+ node = xmlNewDocNode(doc, ns, BAD_CAST "uri", NULL);
+ xmlSetProp(node, BAD_CAST "name", cur->name);
+ xmlSetProp(node, BAD_CAST "uri", cur->value);
+ xmlAddChild(catalog, node);
+ break;
+ case XML_CATA_REWRITE_URI:
+ node = xmlNewDocNode(doc, ns, BAD_CAST "rewriteURI", NULL);
+ xmlSetProp(node, BAD_CAST "uriStartString", cur->name);
+ xmlSetProp(node, BAD_CAST "rewritePrefix", cur->value);
+ xmlAddChild(catalog, node);
+ break;
+ case XML_CATA_DELEGATE_URI:
+ node = xmlNewDocNode(doc, ns, BAD_CAST "delegateURI", NULL);
+ xmlSetProp(node, BAD_CAST "uriStartString", cur->name);
+ xmlSetProp(node, BAD_CAST "catalog", cur->value);
+ xmlAddChild(catalog, node);
+ break;
+ case SGML_CATA_SYSTEM:
+ case SGML_CATA_PUBLIC:
+ case SGML_CATA_ENTITY:
+ case SGML_CATA_PENTITY:
+ case SGML_CATA_DOCTYPE:
+ case SGML_CATA_LINKTYPE:
+ case SGML_CATA_NOTATION:
+ case SGML_CATA_DELEGATE:
+ case SGML_CATA_BASE:
+ case SGML_CATA_CATALOG:
+ case SGML_CATA_DOCUMENT:
+ case SGML_CATA_SGMLDECL:
+ break;
+ }
+ }
+ cur = cur->next;
+ }
+}
+
+static int
+xmlDumpXMLCatalog(FILE *out, xmlCatalogEntryPtr catal) {
+ int ret;
+ xmlDocPtr doc;
+ xmlNsPtr ns;
+ xmlDtdPtr dtd;
+ xmlNodePtr catalog;
+ xmlOutputBufferPtr buf;
+
+ /*
+ * Rebuild a catalog
+ */
+ doc = xmlNewDoc(NULL);
+ if (doc == NULL)
+ return(-1);
+ dtd = xmlNewDtd(doc, BAD_CAST "catalog",
+ BAD_CAST "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN",
+BAD_CAST "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd");
+
+ xmlAddChild((xmlNodePtr) doc, (xmlNodePtr) dtd);
+
+ ns = xmlNewNs(NULL, XML_CATALOGS_NAMESPACE, NULL);
+ if (ns == NULL) {
+ xmlFreeDoc(doc);
+ return(-1);
+ }
+ catalog = xmlNewDocNode(doc, ns, BAD_CAST "catalog", NULL);
+ if (catalog == NULL) {
+ xmlFreeNs(ns);
+ xmlFreeDoc(doc);
+ return(-1);
+ }
+ catalog->nsDef = ns;
+ xmlAddChild((xmlNodePtr) doc, catalog);
+
+ xmlDumpXMLCatalogNode(catal, catalog, doc, ns, NULL);
+
+ /*
+ * reserialize it
+ */
+ buf = xmlOutputBufferCreateFile(out, NULL);
+ if (buf == NULL) {
+ xmlFreeDoc(doc);
+ return(-1);
+ }
+ ret = xmlSaveFormatFileTo(buf, doc, NULL, 1);
+
+ /*
+ * Free it
+ */
+ xmlFreeDoc(doc);
+
+ return(ret);
+}
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+/************************************************************************
+ * *
+ * Converting SGML Catalogs to XML *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlCatalogConvertEntry:
+ * @entry: the entry
+ * @catal: pointer to the catalog being converted
+ *
+ * Convert one entry from the catalog
+ */
+static void
+xmlCatalogConvertEntry(void *payload, void *data,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlCatalogEntryPtr entry = (xmlCatalogEntryPtr) payload;
+ xmlCatalogPtr catal = (xmlCatalogPtr) data;
+ if ((entry == NULL) || (catal == NULL) || (catal->sgml == NULL) ||
+ (catal->xml == NULL))
+ return;
+ switch (entry->type) {
+ case SGML_CATA_ENTITY:
+ entry->type = XML_CATA_PUBLIC;
+ break;
+ case SGML_CATA_PENTITY:
+ entry->type = XML_CATA_PUBLIC;
+ break;
+ case SGML_CATA_DOCTYPE:
+ entry->type = XML_CATA_PUBLIC;
+ break;
+ case SGML_CATA_LINKTYPE:
+ entry->type = XML_CATA_PUBLIC;
+ break;
+ case SGML_CATA_NOTATION:
+ entry->type = XML_CATA_PUBLIC;
+ break;
+ case SGML_CATA_PUBLIC:
+ entry->type = XML_CATA_PUBLIC;
+ break;
+ case SGML_CATA_SYSTEM:
+ entry->type = XML_CATA_SYSTEM;
+ break;
+ case SGML_CATA_DELEGATE:
+ entry->type = XML_CATA_DELEGATE_PUBLIC;
+ break;
+ case SGML_CATA_CATALOG:
+ entry->type = XML_CATA_CATALOG;
+ break;
+ default:
+ xmlHashRemoveEntry(catal->sgml, entry->name, xmlFreeCatalogEntry);
+ return;
+ }
+ /*
+ * Conversion successful, remove from the SGML catalog
+ * and add it to the default XML one
+ */
+ xmlHashRemoveEntry(catal->sgml, entry->name, NULL);
+ entry->parent = catal->xml;
+ entry->next = NULL;
+ if (catal->xml->children == NULL)
+ catal->xml->children = entry;
+ else {
+ xmlCatalogEntryPtr prev;
+
+ prev = catal->xml->children;
+ while (prev->next != NULL)
+ prev = prev->next;
+ prev->next = entry;
+ }
+}
+
+/**
+ * xmlConvertSGMLCatalog:
+ * @catal: the catalog
+ *
+ * Convert all the SGML catalog entries as XML ones
+ *
+ * Returns the number of entries converted if successful, -1 otherwise
+ */
+int
+xmlConvertSGMLCatalog(xmlCatalogPtr catal) {
+
+ if ((catal == NULL) || (catal->type != XML_SGML_CATALOG_TYPE))
+ return(-1);
+
+ if (xmlDebugCatalogs) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Converting SGML catalog to XML\n");
+ }
+ xmlHashScan(catal->sgml, xmlCatalogConvertEntry, &catal);
+ return(0);
+}
+
+/************************************************************************
+ * *
+ * Helper function *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlCatalogUnWrapURN:
+ * @urn: an "urn:publicid:" to unwrap
+ *
+ * Expand the URN into the equivalent Public Identifier
+ *
+ * Returns the new identifier or NULL, the string must be deallocated
+ * by the caller.
+ */
+static xmlChar *
+xmlCatalogUnWrapURN(const xmlChar *urn) {
+ xmlChar result[2000];
+ unsigned int i = 0;
+
+ if (xmlStrncmp(urn, BAD_CAST XML_URN_PUBID, sizeof(XML_URN_PUBID) - 1))
+ return(NULL);
+ urn += sizeof(XML_URN_PUBID) - 1;
+
+ while (*urn != 0) {
+ if (i > sizeof(result) - 4)
+ break;
+ if (*urn == '+') {
+ result[i++] = ' ';
+ urn++;
+ } else if (*urn == ':') {
+ result[i++] = '/';
+ result[i++] = '/';
+ urn++;
+ } else if (*urn == ';') {
+ result[i++] = ':';
+ result[i++] = ':';
+ urn++;
+ } else if (*urn == '%') {
+ if ((urn[1] == '2') && (urn[2] == 'B'))
+ result[i++] = '+';
+ else if ((urn[1] == '3') && (urn[2] == 'A'))
+ result[i++] = ':';
+ else if ((urn[1] == '2') && (urn[2] == 'F'))
+ result[i++] = '/';
+ else if ((urn[1] == '3') && (urn[2] == 'B'))
+ result[i++] = ';';
+ else if ((urn[1] == '2') && (urn[2] == '7'))
+ result[i++] = '\'';
+ else if ((urn[1] == '3') && (urn[2] == 'F'))
+ result[i++] = '?';
+ else if ((urn[1] == '2') && (urn[2] == '3'))
+ result[i++] = '#';
+ else if ((urn[1] == '2') && (urn[2] == '5'))
+ result[i++] = '%';
+ else {
+ result[i++] = *urn;
+ urn++;
+ continue;
+ }
+ urn += 3;
+ } else {
+ result[i++] = *urn;
+ urn++;
+ }
+ }
+ result[i] = 0;
+
+ return(xmlStrdup(result));
+}
+
+/**
+ * xmlParseCatalogFile:
+ * @filename: the filename
+ *
+ * parse an XML file and build a tree. It's like xmlParseFile()
+ * except it bypass all catalog lookups.
+ *
+ * Returns the resulting document tree or NULL in case of error
+ */
+
+xmlDocPtr
+xmlParseCatalogFile(const char *filename) {
+ xmlDocPtr ret;
+ xmlParserCtxtPtr ctxt;
+ char *directory = NULL;
+ xmlParserInputPtr inputStream;
+ xmlParserInputBufferPtr buf;
+
+ ctxt = xmlNewParserCtxt();
+ if (ctxt == NULL) {
+#ifdef LIBXML_SAX1_ENABLED
+ if (xmlDefaultSAXHandler.error != NULL) {
+ xmlDefaultSAXHandler.error(NULL, "out of memory\n");
+ }
+#endif
+ return(NULL);
+ }
+
+ buf = xmlParserInputBufferCreateFilename(filename, XML_CHAR_ENCODING_NONE);
+ if (buf == NULL) {
+ xmlFreeParserCtxt(ctxt);
+ return(NULL);
+ }
+
+ inputStream = xmlNewInputStream(ctxt);
+ if (inputStream == NULL) {
+ xmlFreeParserCtxt(ctxt);
+ return(NULL);
+ }
+
+ inputStream->filename = (char *) xmlCanonicPath((const xmlChar *)filename);
+ inputStream->buf = buf;
+ xmlBufResetInput(buf->buffer, inputStream);
+
+ inputPush(ctxt, inputStream);
+ if ((ctxt->directory == NULL) && (directory == NULL))
+ directory = xmlParserGetDirectory(filename);
+ if ((ctxt->directory == NULL) && (directory != NULL))
+ ctxt->directory = directory;
+ ctxt->valid = 0;
+ ctxt->validate = 0;
+ ctxt->loadsubset = 0;
+ ctxt->pedantic = 0;
+ ctxt->dictNames = 1;
+
+ xmlParseDocument(ctxt);
+
+ if (ctxt->wellFormed)
+ ret = ctxt->myDoc;
+ else {
+ ret = NULL;
+ xmlFreeDoc(ctxt->myDoc);
+ ctxt->myDoc = NULL;
+ }
+ xmlFreeParserCtxt(ctxt);
+
+ return(ret);
+}
+
+/**
+ * xmlLoadFileContent:
+ * @filename: a file path
+ *
+ * Load a file content into memory.
+ *
+ * Returns a pointer to the 0 terminated string or NULL in case of error
+ */
+static xmlChar *
+xmlLoadFileContent(const char *filename)
+{
+#ifdef HAVE_STAT
+ int fd;
+#else
+ FILE *fd;
+#endif
+ int len;
+ long size;
+
+#ifdef HAVE_STAT
+ struct stat info;
+#endif
+ xmlChar *content;
+
+ if (filename == NULL)
+ return (NULL);
+
+#ifdef HAVE_STAT
+ if (stat(filename, &info) < 0)
+ return (NULL);
+#endif
+
+#ifdef HAVE_STAT
+ if ((fd = open(filename, O_RDONLY)) < 0)
+#else
+ if ((fd = fopen(filename, "rb")) == NULL)
+#endif
+ {
+ return (NULL);
+ }
+#ifdef HAVE_STAT
+ size = info.st_size;
+#else
+ if (fseek(fd, 0, SEEK_END) || (size = ftell(fd)) == EOF || fseek(fd, 0, SEEK_SET)) { /* File operations denied? ok, just close and return failure */
+ fclose(fd);
+ return (NULL);
+ }
+#endif
+ content = (xmlChar*)xmlMallocAtomic(size + 10);
+ if (content == NULL) {
+ xmlCatalogErrMemory("allocating catalog data");
+#ifdef HAVE_STAT
+ close(fd);
+#else
+ fclose(fd);
+#endif
+ return (NULL);
+ }
+#ifdef HAVE_STAT
+ len = read(fd, content, size);
+ close(fd);
+#else
+ len = fread(content, 1, size, fd);
+ fclose(fd);
+#endif
+ if (len < 0) {
+ xmlFree(content);
+ return (NULL);
+ }
+ content[len] = 0;
+
+ return(content);
+}
+
+/**
+ * xmlCatalogNormalizePublic:
+ * @pubID: the public ID string
+ *
+ * Normalizes the Public Identifier
+ *
+ * Implements 6.2. Public Identifier Normalization
+ * from http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
+ *
+ * Returns the new string or NULL, the string must be deallocated
+ * by the caller.
+ */
+static xmlChar *
+xmlCatalogNormalizePublic(const xmlChar *pubID)
+{
+ int ok = 1;
+ int white;
+ const xmlChar *p;
+ xmlChar *ret;
+ xmlChar *q;
+
+ if (pubID == NULL)
+ return(NULL);
+
+ white = 1;
+ for (p = pubID;*p != 0 && ok;p++) {
+ if (!xmlIsBlank_ch(*p))
+ white = 0;
+ else if (*p == 0x20 && !white)
+ white = 1;
+ else
+ ok = 0;
+ }
+ if (ok && !white) /* is normalized */
+ return(NULL);
+
+ ret = xmlStrdup(pubID);
+ q = ret;
+ white = 0;
+ for (p = pubID;*p != 0;p++) {
+ if (xmlIsBlank_ch(*p)) {
+ if (q != ret)
+ white = 1;
+ } else {
+ if (white) {
+ *(q++) = 0x20;
+ white = 0;
+ }
+ *(q++) = *p;
+ }
+ }
+ *q = 0;
+ return(ret);
+}
+
+/************************************************************************
+ * *
+ * The XML Catalog parser *
+ * *
+ ************************************************************************/
+
+static xmlCatalogEntryPtr
+xmlParseXMLCatalogFile(xmlCatalogPrefer prefer, const xmlChar *filename);
+static void
+xmlParseXMLCatalogNodeList(xmlNodePtr cur, xmlCatalogPrefer prefer,
+ xmlCatalogEntryPtr parent, xmlCatalogEntryPtr cgroup);
+static xmlChar *
+xmlCatalogListXMLResolve(xmlCatalogEntryPtr catal, const xmlChar *pubID,
+ const xmlChar *sysID);
+static xmlChar *
+xmlCatalogListXMLResolveURI(xmlCatalogEntryPtr catal, const xmlChar *URI);
+
+
+/**
+ * xmlGetXMLCatalogEntryType:
+ * @name: the name
+ *
+ * lookup the internal type associated to an XML catalog entry name
+ *
+ * Returns the type associated with that name
+ */
+static xmlCatalogEntryType
+xmlGetXMLCatalogEntryType(const xmlChar *name) {
+ xmlCatalogEntryType type = XML_CATA_NONE;
+ if (xmlStrEqual(name, (const xmlChar *) "system"))
+ type = XML_CATA_SYSTEM;
+ else if (xmlStrEqual(name, (const xmlChar *) "public"))
+ type = XML_CATA_PUBLIC;
+ else if (xmlStrEqual(name, (const xmlChar *) "rewriteSystem"))
+ type = XML_CATA_REWRITE_SYSTEM;
+ else if (xmlStrEqual(name, (const xmlChar *) "delegatePublic"))
+ type = XML_CATA_DELEGATE_PUBLIC;
+ else if (xmlStrEqual(name, (const xmlChar *) "delegateSystem"))
+ type = XML_CATA_DELEGATE_SYSTEM;
+ else if (xmlStrEqual(name, (const xmlChar *) "uri"))
+ type = XML_CATA_URI;
+ else if (xmlStrEqual(name, (const xmlChar *) "rewriteURI"))
+ type = XML_CATA_REWRITE_URI;
+ else if (xmlStrEqual(name, (const xmlChar *) "delegateURI"))
+ type = XML_CATA_DELEGATE_URI;
+ else if (xmlStrEqual(name, (const xmlChar *) "nextCatalog"))
+ type = XML_CATA_NEXT_CATALOG;
+ else if (xmlStrEqual(name, (const xmlChar *) "catalog"))
+ type = XML_CATA_CATALOG;
+ return(type);
+}
+
+/**
+ * xmlParseXMLCatalogOneNode:
+ * @cur: the XML node
+ * @type: the type of Catalog entry
+ * @name: the name of the node
+ * @attrName: the attribute holding the value
+ * @uriAttrName: the attribute holding the URI-Reference
+ * @prefer: the PUBLIC vs. SYSTEM current preference value
+ * @cgroup: the group which includes this node
+ *
+ * Finishes the examination of an XML tree node of a catalog and build
+ * a Catalog entry from it.
+ *
+ * Returns the new Catalog entry node or NULL in case of error.
+ */
+static xmlCatalogEntryPtr
+xmlParseXMLCatalogOneNode(xmlNodePtr cur, xmlCatalogEntryType type,
+ const xmlChar *name, const xmlChar *attrName,
+ const xmlChar *uriAttrName, xmlCatalogPrefer prefer,
+ xmlCatalogEntryPtr cgroup) {
+ int ok = 1;
+ xmlChar *uriValue;
+ xmlChar *nameValue = NULL;
+ xmlChar *base = NULL;
+ xmlChar *URL = NULL;
+ xmlCatalogEntryPtr ret = NULL;
+
+ if (attrName != NULL) {
+ nameValue = xmlGetProp(cur, attrName);
+ if (nameValue == NULL) {
+ xmlCatalogErr(ret, cur, XML_CATALOG_MISSING_ATTR,
+ "%s entry lacks '%s'\n", name, attrName, NULL);
+ ok = 0;
+ }
+ }
+ uriValue = xmlGetProp(cur, uriAttrName);
+ if (uriValue == NULL) {
+ xmlCatalogErr(ret, cur, XML_CATALOG_MISSING_ATTR,
+ "%s entry lacks '%s'\n", name, uriAttrName, NULL);
+ ok = 0;
+ }
+ if (!ok) {
+ if (nameValue != NULL)
+ xmlFree(nameValue);
+ if (uriValue != NULL)
+ xmlFree(uriValue);
+ return(NULL);
+ }
+
+ base = xmlNodeGetBase(cur->doc, cur);
+ URL = xmlBuildURI(uriValue, base);
+ if (URL != NULL) {
+ if (xmlDebugCatalogs > 1) {
+ if (nameValue != NULL)
+ xmlGenericError(xmlGenericErrorContext,
+ "Found %s: '%s' '%s'\n", name, nameValue, URL);
+ else
+ xmlGenericError(xmlGenericErrorContext,
+ "Found %s: '%s'\n", name, URL);
+ }
+ ret = xmlNewCatalogEntry(type, nameValue, uriValue, URL, prefer, cgroup);
+ } else {
+ xmlCatalogErr(ret, cur, XML_CATALOG_ENTRY_BROKEN,
+ "%s entry '%s' broken ?: %s\n", name, uriAttrName, uriValue);
+ }
+ if (nameValue != NULL)
+ xmlFree(nameValue);
+ if (uriValue != NULL)
+ xmlFree(uriValue);
+ if (base != NULL)
+ xmlFree(base);
+ if (URL != NULL)
+ xmlFree(URL);
+ return(ret);
+}
+
+/**
+ * xmlParseXMLCatalogNode:
+ * @cur: the XML node
+ * @prefer: the PUBLIC vs. SYSTEM current preference value
+ * @parent: the parent Catalog entry
+ * @cgroup: the group which includes this node
+ *
+ * Examines an XML tree node of a catalog and build
+ * a Catalog entry from it adding it to its parent. The examination can
+ * be recursive.
+ */
+static void
+xmlParseXMLCatalogNode(xmlNodePtr cur, xmlCatalogPrefer prefer,
+ xmlCatalogEntryPtr parent, xmlCatalogEntryPtr cgroup)
+{
+ xmlChar *base = NULL;
+ xmlCatalogEntryPtr entry = NULL;
+
+ if (cur == NULL)
+ return;
+ if (xmlStrEqual(cur->name, BAD_CAST "group")) {
+ xmlChar *prop;
+ xmlCatalogPrefer pref = XML_CATA_PREFER_NONE;
+
+ prop = xmlGetProp(cur, BAD_CAST "prefer");
+ if (prop != NULL) {
+ if (xmlStrEqual(prop, BAD_CAST "system")) {
+ prefer = XML_CATA_PREFER_SYSTEM;
+ } else if (xmlStrEqual(prop, BAD_CAST "public")) {
+ prefer = XML_CATA_PREFER_PUBLIC;
+ } else {
+ xmlCatalogErr(parent, cur, XML_CATALOG_PREFER_VALUE,
+ "Invalid value for prefer: '%s'\n",
+ prop, NULL, NULL);
+ }
+ xmlFree(prop);
+ pref = prefer;
+ }
+ prop = xmlGetProp(cur, BAD_CAST "id");
+ base = xmlGetNsProp(cur, BAD_CAST "base", XML_XML_NAMESPACE);
+ entry = xmlNewCatalogEntry(XML_CATA_GROUP, prop, base, NULL, pref, cgroup);
+ xmlFree(prop);
+ } else if (xmlStrEqual(cur->name, BAD_CAST "public")) {
+ entry = xmlParseXMLCatalogOneNode(cur, XML_CATA_PUBLIC,
+ BAD_CAST "public", BAD_CAST "publicId", BAD_CAST "uri", prefer, cgroup);
+ } else if (xmlStrEqual(cur->name, BAD_CAST "system")) {
+ entry = xmlParseXMLCatalogOneNode(cur, XML_CATA_SYSTEM,
+ BAD_CAST "system", BAD_CAST "systemId", BAD_CAST "uri", prefer, cgroup);
+ } else if (xmlStrEqual(cur->name, BAD_CAST "rewriteSystem")) {
+ entry = xmlParseXMLCatalogOneNode(cur, XML_CATA_REWRITE_SYSTEM,
+ BAD_CAST "rewriteSystem", BAD_CAST "systemIdStartString",
+ BAD_CAST "rewritePrefix", prefer, cgroup);
+ } else if (xmlStrEqual(cur->name, BAD_CAST "delegatePublic")) {
+ entry = xmlParseXMLCatalogOneNode(cur, XML_CATA_DELEGATE_PUBLIC,
+ BAD_CAST "delegatePublic", BAD_CAST "publicIdStartString",
+ BAD_CAST "catalog", prefer, cgroup);
+ } else if (xmlStrEqual(cur->name, BAD_CAST "delegateSystem")) {
+ entry = xmlParseXMLCatalogOneNode(cur, XML_CATA_DELEGATE_SYSTEM,
+ BAD_CAST "delegateSystem", BAD_CAST "systemIdStartString",
+ BAD_CAST "catalog", prefer, cgroup);
+ } else if (xmlStrEqual(cur->name, BAD_CAST "uri")) {
+ entry = xmlParseXMLCatalogOneNode(cur, XML_CATA_URI,
+ BAD_CAST "uri", BAD_CAST "name",
+ BAD_CAST "uri", prefer, cgroup);
+ } else if (xmlStrEqual(cur->name, BAD_CAST "rewriteURI")) {
+ entry = xmlParseXMLCatalogOneNode(cur, XML_CATA_REWRITE_URI,
+ BAD_CAST "rewriteURI", BAD_CAST "uriStartString",
+ BAD_CAST "rewritePrefix", prefer, cgroup);
+ } else if (xmlStrEqual(cur->name, BAD_CAST "delegateURI")) {
+ entry = xmlParseXMLCatalogOneNode(cur, XML_CATA_DELEGATE_URI,
+ BAD_CAST "delegateURI", BAD_CAST "uriStartString",
+ BAD_CAST "catalog", prefer, cgroup);
+ } else if (xmlStrEqual(cur->name, BAD_CAST "nextCatalog")) {
+ entry = xmlParseXMLCatalogOneNode(cur, XML_CATA_NEXT_CATALOG,
+ BAD_CAST "nextCatalog", NULL,
+ BAD_CAST "catalog", prefer, cgroup);
+ }
+ if (entry != NULL) {
+ if (parent != NULL) {
+ entry->parent = parent;
+ if (parent->children == NULL)
+ parent->children = entry;
+ else {
+ xmlCatalogEntryPtr prev;
+
+ prev = parent->children;
+ while (prev->next != NULL)
+ prev = prev->next;
+ prev->next = entry;
+ }
+ }
+ if (entry->type == XML_CATA_GROUP) {
+ /*
+ * Recurse to propagate prefer to the subtree
+ * (xml:base handling is automated)
+ */
+ xmlParseXMLCatalogNodeList(cur->children, prefer, parent, entry);
+ }
+ }
+ if (base != NULL)
+ xmlFree(base);
+}
+
+/**
+ * xmlParseXMLCatalogNodeList:
+ * @cur: the XML node list of siblings
+ * @prefer: the PUBLIC vs. SYSTEM current preference value
+ * @parent: the parent Catalog entry
+ * @cgroup: the group which includes this list
+ *
+ * Examines a list of XML sibling nodes of a catalog and build
+ * a list of Catalog entry from it adding it to the parent.
+ * The examination will recurse to examine node subtrees.
+ */
+static void
+xmlParseXMLCatalogNodeList(xmlNodePtr cur, xmlCatalogPrefer prefer,
+ xmlCatalogEntryPtr parent, xmlCatalogEntryPtr cgroup) {
+ while (cur != NULL) {
+ if ((cur->ns != NULL) && (cur->ns->href != NULL) &&
+ (xmlStrEqual(cur->ns->href, XML_CATALOGS_NAMESPACE))) {
+ xmlParseXMLCatalogNode(cur, prefer, parent, cgroup);
+ }
+ cur = cur->next;
+ }
+ /* TODO: sort the list according to REWRITE lengths and prefer value */
+}
+
+/**
+ * xmlParseXMLCatalogFile:
+ * @prefer: the PUBLIC vs. SYSTEM current preference value
+ * @filename: the filename for the catalog
+ *
+ * Parses the catalog file to extract the XML tree and then analyze the
+ * tree to build a list of Catalog entries corresponding to this catalog
+ *
+ * Returns the resulting Catalog entries list
+ */
+static xmlCatalogEntryPtr
+xmlParseXMLCatalogFile(xmlCatalogPrefer prefer, const xmlChar *filename) {
+ xmlDocPtr doc;
+ xmlNodePtr cur;
+ xmlChar *prop;
+ xmlCatalogEntryPtr parent = NULL;
+
+ if (filename == NULL)
+ return(NULL);
+
+ doc = xmlParseCatalogFile((const char *) filename);
+ if (doc == NULL) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Failed to parse catalog %s\n", filename);
+ return(NULL);
+ }
+
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "%d Parsing catalog %s\n", xmlGetThreadId(), filename);
+
+ cur = xmlDocGetRootElement(doc);
+ if ((cur != NULL) && (xmlStrEqual(cur->name, BAD_CAST "catalog")) &&
+ (cur->ns != NULL) && (cur->ns->href != NULL) &&
+ (xmlStrEqual(cur->ns->href, XML_CATALOGS_NAMESPACE))) {
+
+ parent = xmlNewCatalogEntry(XML_CATA_CATALOG, NULL,
+ (const xmlChar *)filename, NULL, prefer, NULL);
+ if (parent == NULL) {
+ xmlFreeDoc(doc);
+ return(NULL);
+ }
+
+ prop = xmlGetProp(cur, BAD_CAST "prefer");
+ if (prop != NULL) {
+ if (xmlStrEqual(prop, BAD_CAST "system")) {
+ prefer = XML_CATA_PREFER_SYSTEM;
+ } else if (xmlStrEqual(prop, BAD_CAST "public")) {
+ prefer = XML_CATA_PREFER_PUBLIC;
+ } else {
+ xmlCatalogErr(NULL, cur, XML_CATALOG_PREFER_VALUE,
+ "Invalid value for prefer: '%s'\n",
+ prop, NULL, NULL);
+ }
+ xmlFree(prop);
+ }
+ cur = cur->children;
+ xmlParseXMLCatalogNodeList(cur, prefer, parent, NULL);
+ } else {
+ xmlCatalogErr(NULL, (xmlNodePtr) doc, XML_CATALOG_NOT_CATALOG,
+ "File %s is not an XML Catalog\n",
+ filename, NULL, NULL);
+ xmlFreeDoc(doc);
+ return(NULL);
+ }
+ xmlFreeDoc(doc);
+ return(parent);
+}
+
+/**
+ * xmlFetchXMLCatalogFile:
+ * @catal: an existing but incomplete catalog entry
+ *
+ * Fetch and parse the subcatalog referenced by an entry
+ *
+ * Returns 0 in case of success, -1 otherwise
+ */
+static int
+xmlFetchXMLCatalogFile(xmlCatalogEntryPtr catal) {
+ xmlCatalogEntryPtr doc;
+
+ if (catal == NULL)
+ return(-1);
+ if (catal->URL == NULL)
+ return(-1);
+
+ /*
+ * lock the whole catalog for modification
+ */
+ xmlRMutexLock(xmlCatalogMutex);
+ if (catal->children != NULL) {
+ /* Okay someone else did it in the meantime */
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(0);
+ }
+
+ if (xmlCatalogXMLFiles != NULL) {
+ doc = (xmlCatalogEntryPtr)
+ xmlHashLookup(xmlCatalogXMLFiles, catal->URL);
+ if (doc != NULL) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Found %s in file hash\n", catal->URL);
+
+ if (catal->type == XML_CATA_CATALOG)
+ catal->children = doc->children;
+ else
+ catal->children = doc;
+ catal->dealloc = 0;
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(0);
+ }
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "%s not found in file hash\n", catal->URL);
+ }
+
+ /*
+ * Fetch and parse. Note that xmlParseXMLCatalogFile does not
+ * use the existing catalog, there is no recursion allowed at
+ * that level.
+ */
+ doc = xmlParseXMLCatalogFile(catal->prefer, catal->URL);
+ if (doc == NULL) {
+ catal->type = XML_CATA_BROKEN_CATALOG;
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(-1);
+ }
+
+ if (catal->type == XML_CATA_CATALOG)
+ catal->children = doc->children;
+ else
+ catal->children = doc;
+
+ doc->dealloc = 1;
+
+ if (xmlCatalogXMLFiles == NULL)
+ xmlCatalogXMLFiles = xmlHashCreate(10);
+ if (xmlCatalogXMLFiles != NULL) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "%s added to file hash\n", catal->URL);
+ xmlHashAddEntry(xmlCatalogXMLFiles, catal->URL, doc);
+ }
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(0);
+}
+
+/************************************************************************
+ * *
+ * XML Catalog handling *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlAddXMLCatalog:
+ * @catal: top of an XML catalog
+ * @type: the type of record to add to the catalog
+ * @orig: the system, public or prefix to match (or NULL)
+ * @replace: the replacement value for the match
+ *
+ * Add an entry in the XML catalog, it may overwrite existing but
+ * different entries.
+ *
+ * Returns 0 if successful, -1 otherwise
+ */
+static int
+xmlAddXMLCatalog(xmlCatalogEntryPtr catal, const xmlChar *type,
+ const xmlChar *orig, const xmlChar *replace) {
+ xmlCatalogEntryPtr cur;
+ xmlCatalogEntryType typ;
+ int doregister = 0;
+
+ if ((catal == NULL) ||
+ ((catal->type != XML_CATA_CATALOG) &&
+ (catal->type != XML_CATA_BROKEN_CATALOG)))
+ return(-1);
+ if (catal->children == NULL) {
+ xmlFetchXMLCatalogFile(catal);
+ }
+ if (catal->children == NULL)
+ doregister = 1;
+
+ typ = xmlGetXMLCatalogEntryType(type);
+ if (typ == XML_CATA_NONE) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Failed to add unknown element %s to catalog\n", type);
+ return(-1);
+ }
+
+ cur = catal->children;
+ /*
+ * Might be a simple "update in place"
+ */
+ if (cur != NULL) {
+ while (cur != NULL) {
+ if ((orig != NULL) && (cur->type == typ) &&
+ (xmlStrEqual(orig, cur->name))) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Updating element %s to catalog\n", type);
+ if (cur->value != NULL)
+ xmlFree(cur->value);
+ if (cur->URL != NULL)
+ xmlFree(cur->URL);
+ cur->value = xmlStrdup(replace);
+ cur->URL = xmlStrdup(replace);
+ return(0);
+ }
+ if (cur->next == NULL)
+ break;
+ cur = cur->next;
+ }
+ }
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Adding element %s to catalog\n", type);
+ if (cur == NULL)
+ catal->children = xmlNewCatalogEntry(typ, orig, replace,
+ NULL, catal->prefer, NULL);
+ else
+ cur->next = xmlNewCatalogEntry(typ, orig, replace,
+ NULL, catal->prefer, NULL);
+ if (doregister) {
+ catal->type = XML_CATA_CATALOG;
+ cur = (xmlCatalogEntryPtr)xmlHashLookup(xmlCatalogXMLFiles, catal->URL);
+ if (cur != NULL)
+ cur->children = catal->children;
+ }
+
+ return(0);
+}
+
+/**
+ * xmlDelXMLCatalog:
+ * @catal: top of an XML catalog
+ * @value: the value to remove from the catalog
+ *
+ * Remove entries in the XML catalog where the value or the URI
+ * is equal to @value
+ *
+ * Returns the number of entries removed if successful, -1 otherwise
+ */
+static int
+xmlDelXMLCatalog(xmlCatalogEntryPtr catal, const xmlChar *value) {
+ xmlCatalogEntryPtr cur;
+ int ret = 0;
+
+ if ((catal == NULL) ||
+ ((catal->type != XML_CATA_CATALOG) &&
+ (catal->type != XML_CATA_BROKEN_CATALOG)))
+ return(-1);
+ if (value == NULL)
+ return(-1);
+ if (catal->children == NULL) {
+ xmlFetchXMLCatalogFile(catal);
+ }
+
+ /*
+ * Scan the children
+ */
+ cur = catal->children;
+ while (cur != NULL) {
+ if (((cur->name != NULL) && (xmlStrEqual(value, cur->name))) ||
+ (xmlStrEqual(value, cur->value))) {
+ if (xmlDebugCatalogs) {
+ if (cur->name != NULL)
+ xmlGenericError(xmlGenericErrorContext,
+ "Removing element %s from catalog\n", cur->name);
+ else
+ xmlGenericError(xmlGenericErrorContext,
+ "Removing element %s from catalog\n", cur->value);
+ }
+ cur->type = XML_CATA_REMOVED;
+ }
+ cur = cur->next;
+ }
+ return(ret);
+}
+
+/**
+ * xmlCatalogXMLResolve:
+ * @catal: a catalog list
+ * @pubID: the public ID string
+ * @sysID: the system ID string
+ *
+ * Do a complete resolution lookup of an External Identifier for a
+ * list of catalog entries.
+ *
+ * Implements (or tries to) 7.1. External Identifier Resolution
+ * from http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
+ *
+ * Returns the URI of the resource or NULL if not found
+ */
+static xmlChar *
+xmlCatalogXMLResolve(xmlCatalogEntryPtr catal, const xmlChar *pubID,
+ const xmlChar *sysID) {
+ xmlChar *ret = NULL;
+ xmlCatalogEntryPtr cur;
+ int haveDelegate = 0;
+ int haveNext = 0;
+
+ /*
+ * protection against loops
+ */
+ if (catal->depth > MAX_CATAL_DEPTH) {
+ xmlCatalogErr(catal, NULL, XML_CATALOG_RECURSION,
+ "Detected recursion in catalog %s\n",
+ catal->name, NULL, NULL);
+ return(NULL);
+ }
+ catal->depth++;
+
+ /*
+ * First tries steps 2/ 3/ 4/ if a system ID is provided.
+ */
+ if (sysID != NULL) {
+ xmlCatalogEntryPtr rewrite = NULL;
+ int lenrewrite = 0, len;
+ cur = catal;
+ haveDelegate = 0;
+ while (cur != NULL) {
+ switch (cur->type) {
+ case XML_CATA_SYSTEM:
+ if (xmlStrEqual(sysID, cur->name)) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Found system match %s, using %s\n",
+ cur->name, cur->URL);
+ catal->depth--;
+ return(xmlStrdup(cur->URL));
+ }
+ break;
+ case XML_CATA_REWRITE_SYSTEM:
+ len = xmlStrlen(cur->name);
+ if ((len > lenrewrite) &&
+ (!xmlStrncmp(sysID, cur->name, len))) {
+ lenrewrite = len;
+ rewrite = cur;
+ }
+ break;
+ case XML_CATA_DELEGATE_SYSTEM:
+ if (!xmlStrncmp(sysID, cur->name, xmlStrlen(cur->name)))
+ haveDelegate++;
+ break;
+ case XML_CATA_NEXT_CATALOG:
+ haveNext++;
+ break;
+ default:
+ break;
+ }
+ cur = cur->next;
+ }
+ if (rewrite != NULL) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Using rewriting rule %s\n", rewrite->name);
+ ret = xmlStrdup(rewrite->URL);
+ if (ret != NULL)
+ ret = xmlStrcat(ret, &sysID[lenrewrite]);
+ catal->depth--;
+ return(ret);
+ }
+ if (haveDelegate) {
+ const xmlChar *delegates[MAX_DELEGATE];
+ int nbList = 0, i;
+
+ /*
+ * Assume the entries have been sorted by decreasing substring
+ * matches when the list was produced.
+ */
+ cur = catal;
+ while (cur != NULL) {
+ if ((cur->type == XML_CATA_DELEGATE_SYSTEM) &&
+ (!xmlStrncmp(sysID, cur->name, xmlStrlen(cur->name)))) {
+ for (i = 0;i < nbList;i++)
+ if (xmlStrEqual(cur->URL, delegates[i]))
+ break;
+ if (i < nbList) {
+ cur = cur->next;
+ continue;
+ }
+ if (nbList < MAX_DELEGATE)
+ delegates[nbList++] = cur->URL;
+
+ if (cur->children == NULL) {
+ xmlFetchXMLCatalogFile(cur);
+ }
+ if (cur->children != NULL) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Trying system delegate %s\n", cur->URL);
+ ret = xmlCatalogListXMLResolve(
+ cur->children, NULL, sysID);
+ if (ret != NULL) {
+ catal->depth--;
+ return(ret);
+ }
+ }
+ }
+ cur = cur->next;
+ }
+ /*
+ * Apply the cut algorithm explained in 4/
+ */
+ catal->depth--;
+ return(XML_CATAL_BREAK);
+ }
+ }
+ /*
+ * Then tries 5/ 6/ if a public ID is provided
+ */
+ if (pubID != NULL) {
+ cur = catal;
+ haveDelegate = 0;
+ while (cur != NULL) {
+ switch (cur->type) {
+ case XML_CATA_PUBLIC:
+ if (xmlStrEqual(pubID, cur->name)) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Found public match %s\n", cur->name);
+ catal->depth--;
+ return(xmlStrdup(cur->URL));
+ }
+ break;
+ case XML_CATA_DELEGATE_PUBLIC:
+ if (!xmlStrncmp(pubID, cur->name, xmlStrlen(cur->name)) &&
+ (cur->prefer == XML_CATA_PREFER_PUBLIC))
+ haveDelegate++;
+ break;
+ case XML_CATA_NEXT_CATALOG:
+ if (sysID == NULL)
+ haveNext++;
+ break;
+ default:
+ break;
+ }
+ cur = cur->next;
+ }
+ if (haveDelegate) {
+ const xmlChar *delegates[MAX_DELEGATE];
+ int nbList = 0, i;
+
+ /*
+ * Assume the entries have been sorted by decreasing substring
+ * matches when the list was produced.
+ */
+ cur = catal;
+ while (cur != NULL) {
+ if ((cur->type == XML_CATA_DELEGATE_PUBLIC) &&
+ (cur->prefer == XML_CATA_PREFER_PUBLIC) &&
+ (!xmlStrncmp(pubID, cur->name, xmlStrlen(cur->name)))) {
+
+ for (i = 0;i < nbList;i++)
+ if (xmlStrEqual(cur->URL, delegates[i]))
+ break;
+ if (i < nbList) {
+ cur = cur->next;
+ continue;
+ }
+ if (nbList < MAX_DELEGATE)
+ delegates[nbList++] = cur->URL;
+
+ if (cur->children == NULL) {
+ xmlFetchXMLCatalogFile(cur);
+ }
+ if (cur->children != NULL) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Trying public delegate %s\n", cur->URL);
+ ret = xmlCatalogListXMLResolve(
+ cur->children, pubID, NULL);
+ if (ret != NULL) {
+ catal->depth--;
+ return(ret);
+ }
+ }
+ }
+ cur = cur->next;
+ }
+ /*
+ * Apply the cut algorithm explained in 4/
+ */
+ catal->depth--;
+ return(XML_CATAL_BREAK);
+ }
+ }
+ if (haveNext) {
+ cur = catal;
+ while (cur != NULL) {
+ if (cur->type == XML_CATA_NEXT_CATALOG) {
+ if (cur->children == NULL) {
+ xmlFetchXMLCatalogFile(cur);
+ }
+ if (cur->children != NULL) {
+ ret = xmlCatalogListXMLResolve(cur->children, pubID, sysID);
+ if (ret != NULL) {
+ catal->depth--;
+ return(ret);
+ } else if (catal->depth > MAX_CATAL_DEPTH) {
+ return(NULL);
+ }
+ }
+ }
+ cur = cur->next;
+ }
+ }
+
+ catal->depth--;
+ return(NULL);
+}
+
+/**
+ * xmlCatalogXMLResolveURI:
+ * @catal: a catalog list
+ * @URI: the URI
+ * @sysID: the system ID string
+ *
+ * Do a complete resolution lookup of an External Identifier for a
+ * list of catalog entries.
+ *
+ * Implements (or tries to) 7.2.2. URI Resolution
+ * from http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
+ *
+ * Returns the URI of the resource or NULL if not found
+ */
+static xmlChar *
+xmlCatalogXMLResolveURI(xmlCatalogEntryPtr catal, const xmlChar *URI) {
+ xmlChar *ret = NULL;
+ xmlCatalogEntryPtr cur;
+ int haveDelegate = 0;
+ int haveNext = 0;
+ xmlCatalogEntryPtr rewrite = NULL;
+ int lenrewrite = 0, len;
+
+ if (catal == NULL)
+ return(NULL);
+
+ if (URI == NULL)
+ return(NULL);
+
+ if (catal->depth > MAX_CATAL_DEPTH) {
+ xmlCatalogErr(catal, NULL, XML_CATALOG_RECURSION,
+ "Detected recursion in catalog %s\n",
+ catal->name, NULL, NULL);
+ return(NULL);
+ }
+
+ /*
+ * First tries steps 2/ 3/ 4/ if a system ID is provided.
+ */
+ cur = catal;
+ haveDelegate = 0;
+ while (cur != NULL) {
+ switch (cur->type) {
+ case XML_CATA_URI:
+ if (xmlStrEqual(URI, cur->name)) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Found URI match %s\n", cur->name);
+ return(xmlStrdup(cur->URL));
+ }
+ break;
+ case XML_CATA_REWRITE_URI:
+ len = xmlStrlen(cur->name);
+ if ((len > lenrewrite) &&
+ (!xmlStrncmp(URI, cur->name, len))) {
+ lenrewrite = len;
+ rewrite = cur;
+ }
+ break;
+ case XML_CATA_DELEGATE_URI:
+ if (!xmlStrncmp(URI, cur->name, xmlStrlen(cur->name)))
+ haveDelegate++;
+ break;
+ case XML_CATA_NEXT_CATALOG:
+ haveNext++;
+ break;
+ default:
+ break;
+ }
+ cur = cur->next;
+ }
+ if (rewrite != NULL) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Using rewriting rule %s\n", rewrite->name);
+ ret = xmlStrdup(rewrite->URL);
+ if (ret != NULL)
+ ret = xmlStrcat(ret, &URI[lenrewrite]);
+ return(ret);
+ }
+ if (haveDelegate) {
+ const xmlChar *delegates[MAX_DELEGATE];
+ int nbList = 0, i;
+
+ /*
+ * Assume the entries have been sorted by decreasing substring
+ * matches when the list was produced.
+ */
+ cur = catal;
+ while (cur != NULL) {
+ if (((cur->type == XML_CATA_DELEGATE_SYSTEM) ||
+ (cur->type == XML_CATA_DELEGATE_URI)) &&
+ (!xmlStrncmp(URI, cur->name, xmlStrlen(cur->name)))) {
+ for (i = 0;i < nbList;i++)
+ if (xmlStrEqual(cur->URL, delegates[i]))
+ break;
+ if (i < nbList) {
+ cur = cur->next;
+ continue;
+ }
+ if (nbList < MAX_DELEGATE)
+ delegates[nbList++] = cur->URL;
+
+ if (cur->children == NULL) {
+ xmlFetchXMLCatalogFile(cur);
+ }
+ if (cur->children != NULL) {
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Trying URI delegate %s\n", cur->URL);
+ ret = xmlCatalogListXMLResolveURI(
+ cur->children, URI);
+ if (ret != NULL)
+ return(ret);
+ }
+ }
+ cur = cur->next;
+ }
+ /*
+ * Apply the cut algorithm explained in 4/
+ */
+ return(XML_CATAL_BREAK);
+ }
+ if (haveNext) {
+ cur = catal;
+ while (cur != NULL) {
+ if (cur->type == XML_CATA_NEXT_CATALOG) {
+ if (cur->children == NULL) {
+ xmlFetchXMLCatalogFile(cur);
+ }
+ if (cur->children != NULL) {
+ ret = xmlCatalogListXMLResolveURI(cur->children, URI);
+ if (ret != NULL)
+ return(ret);
+ }
+ }
+ cur = cur->next;
+ }
+ }
+
+ return(NULL);
+}
+
+/**
+ * xmlCatalogListXMLResolve:
+ * @catal: a catalog list
+ * @pubID: the public ID string
+ * @sysID: the system ID string
+ *
+ * Do a complete resolution lookup of an External Identifier for a
+ * list of catalogs
+ *
+ * Implements (or tries to) 7.1. External Identifier Resolution
+ * from http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
+ *
+ * Returns the URI of the resource or NULL if not found
+ */
+static xmlChar *
+xmlCatalogListXMLResolve(xmlCatalogEntryPtr catal, const xmlChar *pubID,
+ const xmlChar *sysID) {
+ xmlChar *ret = NULL;
+ xmlChar *urnID = NULL;
+ xmlChar *normid;
+
+ if (catal == NULL)
+ return(NULL);
+ if ((pubID == NULL) && (sysID == NULL))
+ return(NULL);
+
+ normid = xmlCatalogNormalizePublic(pubID);
+ if (normid != NULL)
+ pubID = (*normid != 0 ? normid : NULL);
+
+ if (!xmlStrncmp(pubID, BAD_CAST XML_URN_PUBID, sizeof(XML_URN_PUBID) - 1)) {
+ urnID = xmlCatalogUnWrapURN(pubID);
+ if (xmlDebugCatalogs) {
+ if (urnID == NULL)
+ xmlGenericError(xmlGenericErrorContext,
+ "Public URN ID %s expanded to NULL\n", pubID);
+ else
+ xmlGenericError(xmlGenericErrorContext,
+ "Public URN ID expanded to %s\n", urnID);
+ }
+ ret = xmlCatalogListXMLResolve(catal, urnID, sysID);
+ if (urnID != NULL)
+ xmlFree(urnID);
+ if (normid != NULL)
+ xmlFree(normid);
+ return(ret);
+ }
+ if (!xmlStrncmp(sysID, BAD_CAST XML_URN_PUBID, sizeof(XML_URN_PUBID) - 1)) {
+ urnID = xmlCatalogUnWrapURN(sysID);
+ if (xmlDebugCatalogs) {
+ if (urnID == NULL)
+ xmlGenericError(xmlGenericErrorContext,
+ "System URN ID %s expanded to NULL\n", sysID);
+ else
+ xmlGenericError(xmlGenericErrorContext,
+ "System URN ID expanded to %s\n", urnID);
+ }
+ if (pubID == NULL)
+ ret = xmlCatalogListXMLResolve(catal, urnID, NULL);
+ else if (xmlStrEqual(pubID, urnID))
+ ret = xmlCatalogListXMLResolve(catal, pubID, NULL);
+ else {
+ ret = xmlCatalogListXMLResolve(catal, pubID, urnID);
+ }
+ if (urnID != NULL)
+ xmlFree(urnID);
+ if (normid != NULL)
+ xmlFree(normid);
+ return(ret);
+ }
+ while (catal != NULL) {
+ if (catal->type == XML_CATA_CATALOG) {
+ if (catal->children == NULL) {
+ xmlFetchXMLCatalogFile(catal);
+ }
+ if (catal->children != NULL) {
+ ret = xmlCatalogXMLResolve(catal->children, pubID, sysID);
+ if (ret != NULL) {
+ break;
+ } else if ((catal->children != NULL) &&
+ (catal->children->depth > MAX_CATAL_DEPTH)) {
+ ret = NULL;
+ break;
+ }
+ }
+ }
+ catal = catal->next;
+ }
+ if (normid != NULL)
+ xmlFree(normid);
+ return(ret);
+}
+
+/**
+ * xmlCatalogListXMLResolveURI:
+ * @catal: a catalog list
+ * @URI: the URI
+ *
+ * Do a complete resolution lookup of an URI for a list of catalogs
+ *
+ * Implements (or tries to) 7.2. URI Resolution
+ * from http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
+ *
+ * Returns the URI of the resource or NULL if not found
+ */
+static xmlChar *
+xmlCatalogListXMLResolveURI(xmlCatalogEntryPtr catal, const xmlChar *URI) {
+ xmlChar *ret = NULL;
+ xmlChar *urnID = NULL;
+
+ if (catal == NULL)
+ return(NULL);
+ if (URI == NULL)
+ return(NULL);
+
+ if (!xmlStrncmp(URI, BAD_CAST XML_URN_PUBID, sizeof(XML_URN_PUBID) - 1)) {
+ urnID = xmlCatalogUnWrapURN(URI);
+ if (xmlDebugCatalogs) {
+ if (urnID == NULL)
+ xmlGenericError(xmlGenericErrorContext,
+ "URN ID %s expanded to NULL\n", URI);
+ else
+ xmlGenericError(xmlGenericErrorContext,
+ "URN ID expanded to %s\n", urnID);
+ }
+ ret = xmlCatalogListXMLResolve(catal, urnID, NULL);
+ if (urnID != NULL)
+ xmlFree(urnID);
+ return(ret);
+ }
+ while (catal != NULL) {
+ if (catal->type == XML_CATA_CATALOG) {
+ if (catal->children == NULL) {
+ xmlFetchXMLCatalogFile(catal);
+ }
+ if (catal->children != NULL) {
+ ret = xmlCatalogXMLResolveURI(catal->children, URI);
+ if (ret != NULL)
+ return(ret);
+ }
+ }
+ catal = catal->next;
+ }
+ return(ret);
+}
+
+/************************************************************************
+ * *
+ * The SGML Catalog parser *
+ * *
+ ************************************************************************/
+
+
+#define RAW *cur
+#define NEXT cur++;
+#define SKIP(x) cur += x;
+
+#define SKIP_BLANKS while (IS_BLANK_CH(*cur)) NEXT;
+
+/**
+ * xmlParseSGMLCatalogComment:
+ * @cur: the current character
+ *
+ * Skip a comment in an SGML catalog
+ *
+ * Returns new current character
+ */
+static const xmlChar *
+xmlParseSGMLCatalogComment(const xmlChar *cur) {
+ if ((cur[0] != '-') || (cur[1] != '-'))
+ return(cur);
+ SKIP(2);
+ while ((cur[0] != 0) && ((cur[0] != '-') || ((cur[1] != '-'))))
+ NEXT;
+ if (cur[0] == 0) {
+ return(NULL);
+ }
+ return(cur + 2);
+}
+
+/**
+ * xmlParseSGMLCatalogPubid:
+ * @cur: the current character
+ * @id: the return location
+ *
+ * Parse an SGML catalog ID
+ *
+ * Returns new current character and store the value in @id
+ */
+static const xmlChar *
+xmlParseSGMLCatalogPubid(const xmlChar *cur, xmlChar **id) {
+ xmlChar *buf = NULL, *tmp;
+ int len = 0;
+ int size = 50;
+ xmlChar stop;
+ int count = 0;
+
+ *id = NULL;
+
+ if (RAW == '"') {
+ NEXT;
+ stop = '"';
+ } else if (RAW == '\'') {
+ NEXT;
+ stop = '\'';
+ } else {
+ stop = ' ';
+ }
+ buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar));
+ if (buf == NULL) {
+ xmlCatalogErrMemory("allocating public ID");
+ return(NULL);
+ }
+ while (IS_PUBIDCHAR_CH(*cur) || (*cur == '?')) {
+ if ((*cur == stop) && (stop != ' '))
+ break;
+ if ((stop == ' ') && (IS_BLANK_CH(*cur)))
+ break;
+ if (len + 1 >= size) {
+ size *= 2;
+ tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar));
+ if (tmp == NULL) {
+ xmlCatalogErrMemory("allocating public ID");
+ xmlFree(buf);
+ return(NULL);
+ }
+ buf = tmp;
+ }
+ buf[len++] = *cur;
+ count++;
+ NEXT;
+ }
+ buf[len] = 0;
+ if (stop == ' ') {
+ if (!IS_BLANK_CH(*cur)) {
+ xmlFree(buf);
+ return(NULL);
+ }
+ } else {
+ if (*cur != stop) {
+ xmlFree(buf);
+ return(NULL);
+ }
+ NEXT;
+ }
+ *id = buf;
+ return(cur);
+}
+
+/**
+ * xmlParseSGMLCatalogName:
+ * @cur: the current character
+ * @name: the return location
+ *
+ * Parse an SGML catalog name
+ *
+ * Returns new current character and store the value in @name
+ */
+static const xmlChar *
+xmlParseSGMLCatalogName(const xmlChar *cur, xmlChar **name) {
+ xmlChar buf[XML_MAX_NAMELEN + 5];
+ int len = 0;
+ int c;
+
+ *name = NULL;
+
+ /*
+ * Handler for more complex cases
+ */
+ c = *cur;
+ if ((!IS_LETTER(c) && (c != '_') && (c != ':'))) {
+ return(NULL);
+ }
+
+ while (((IS_LETTER(c)) || (IS_DIGIT(c)) ||
+ (c == '.') || (c == '-') ||
+ (c == '_') || (c == ':'))) {
+ buf[len++] = c;
+ cur++;
+ c = *cur;
+ if (len >= XML_MAX_NAMELEN)
+ return(NULL);
+ }
+ *name = xmlStrndup(buf, len);
+ return(cur);
+}
+
+/**
+ * xmlGetSGMLCatalogEntryType:
+ * @name: the entry name
+ *
+ * Get the Catalog entry type for a given SGML Catalog name
+ *
+ * Returns Catalog entry type
+ */
+static xmlCatalogEntryType
+xmlGetSGMLCatalogEntryType(const xmlChar *name) {
+ xmlCatalogEntryType type = XML_CATA_NONE;
+ if (xmlStrEqual(name, (const xmlChar *) "SYSTEM"))
+ type = SGML_CATA_SYSTEM;
+ else if (xmlStrEqual(name, (const xmlChar *) "PUBLIC"))
+ type = SGML_CATA_PUBLIC;
+ else if (xmlStrEqual(name, (const xmlChar *) "DELEGATE"))
+ type = SGML_CATA_DELEGATE;
+ else if (xmlStrEqual(name, (const xmlChar *) "ENTITY"))
+ type = SGML_CATA_ENTITY;
+ else if (xmlStrEqual(name, (const xmlChar *) "DOCTYPE"))
+ type = SGML_CATA_DOCTYPE;
+ else if (xmlStrEqual(name, (const xmlChar *) "LINKTYPE"))
+ type = SGML_CATA_LINKTYPE;
+ else if (xmlStrEqual(name, (const xmlChar *) "NOTATION"))
+ type = SGML_CATA_NOTATION;
+ else if (xmlStrEqual(name, (const xmlChar *) "SGMLDECL"))
+ type = SGML_CATA_SGMLDECL;
+ else if (xmlStrEqual(name, (const xmlChar *) "DOCUMENT"))
+ type = SGML_CATA_DOCUMENT;
+ else if (xmlStrEqual(name, (const xmlChar *) "CATALOG"))
+ type = SGML_CATA_CATALOG;
+ else if (xmlStrEqual(name, (const xmlChar *) "BASE"))
+ type = SGML_CATA_BASE;
+ return(type);
+}
+
+/**
+ * xmlParseSGMLCatalog:
+ * @catal: the SGML Catalog
+ * @value: the content of the SGML Catalog serialization
+ * @file: the filepath for the catalog
+ * @super: should this be handled as a Super Catalog in which case
+ * parsing is not recursive
+ *
+ * Parse an SGML catalog content and fill up the @catal hash table with
+ * the new entries found.
+ *
+ * Returns 0 in case of success, -1 in case of error.
+ */
+static int
+xmlParseSGMLCatalog(xmlCatalogPtr catal, const xmlChar *value,
+ const char *file, int super) {
+ const xmlChar *cur = value;
+ xmlChar *base = NULL;
+ int res;
+
+ if ((cur == NULL) || (file == NULL))
+ return(-1);
+ base = xmlStrdup((const xmlChar *) file);
+
+ while ((cur != NULL) && (cur[0] != 0)) {
+ SKIP_BLANKS;
+ if (cur[0] == 0)
+ break;
+ if ((cur[0] == '-') && (cur[1] == '-')) {
+ cur = xmlParseSGMLCatalogComment(cur);
+ if (cur == NULL) {
+ /* error */
+ break;
+ }
+ } else {
+ xmlChar *sysid = NULL;
+ xmlChar *name = NULL;
+ xmlCatalogEntryType type = XML_CATA_NONE;
+
+ cur = xmlParseSGMLCatalogName(cur, &name);
+ if (name == NULL) {
+ /* error */
+ break;
+ }
+ if (!IS_BLANK_CH(*cur)) {
+ /* error */
+ break;
+ }
+ SKIP_BLANKS;
+ if (xmlStrEqual(name, (const xmlChar *) "SYSTEM"))
+ type = SGML_CATA_SYSTEM;
+ else if (xmlStrEqual(name, (const xmlChar *) "PUBLIC"))
+ type = SGML_CATA_PUBLIC;
+ else if (xmlStrEqual(name, (const xmlChar *) "DELEGATE"))
+ type = SGML_CATA_DELEGATE;
+ else if (xmlStrEqual(name, (const xmlChar *) "ENTITY"))
+ type = SGML_CATA_ENTITY;
+ else if (xmlStrEqual(name, (const xmlChar *) "DOCTYPE"))
+ type = SGML_CATA_DOCTYPE;
+ else if (xmlStrEqual(name, (const xmlChar *) "LINKTYPE"))
+ type = SGML_CATA_LINKTYPE;
+ else if (xmlStrEqual(name, (const xmlChar *) "NOTATION"))
+ type = SGML_CATA_NOTATION;
+ else if (xmlStrEqual(name, (const xmlChar *) "SGMLDECL"))
+ type = SGML_CATA_SGMLDECL;
+ else if (xmlStrEqual(name, (const xmlChar *) "DOCUMENT"))
+ type = SGML_CATA_DOCUMENT;
+ else if (xmlStrEqual(name, (const xmlChar *) "CATALOG"))
+ type = SGML_CATA_CATALOG;
+ else if (xmlStrEqual(name, (const xmlChar *) "BASE"))
+ type = SGML_CATA_BASE;
+ else if (xmlStrEqual(name, (const xmlChar *) "OVERRIDE")) {
+ xmlFree(name);
+ cur = xmlParseSGMLCatalogName(cur, &name);
+ if (name == NULL) {
+ /* error */
+ break;
+ }
+ xmlFree(name);
+ continue;
+ }
+ xmlFree(name);
+ name = NULL;
+
+ switch(type) {
+ case SGML_CATA_ENTITY:
+ if (*cur == '%')
+ type = SGML_CATA_PENTITY;
+ /* Falls through. */
+ case SGML_CATA_PENTITY:
+ case SGML_CATA_DOCTYPE:
+ case SGML_CATA_LINKTYPE:
+ case SGML_CATA_NOTATION:
+ cur = xmlParseSGMLCatalogName(cur, &name);
+ if (cur == NULL) {
+ /* error */
+ break;
+ }
+ if (!IS_BLANK_CH(*cur)) {
+ /* error */
+ break;
+ }
+ SKIP_BLANKS;
+ cur = xmlParseSGMLCatalogPubid(cur, &sysid);
+ if (cur == NULL) {
+ /* error */
+ break;
+ }
+ break;
+ case SGML_CATA_PUBLIC:
+ case SGML_CATA_SYSTEM:
+ case SGML_CATA_DELEGATE:
+ cur = xmlParseSGMLCatalogPubid(cur, &name);
+ if (cur == NULL) {
+ /* error */
+ break;
+ }
+ if (type != SGML_CATA_SYSTEM) {
+ xmlChar *normid;
+
+ normid = xmlCatalogNormalizePublic(name);
+ if (normid != NULL) {
+ if (name != NULL)
+ xmlFree(name);
+ if (*normid != 0)
+ name = normid;
+ else {
+ xmlFree(normid);
+ name = NULL;
+ }
+ }
+ }
+ if (!IS_BLANK_CH(*cur)) {
+ /* error */
+ break;
+ }
+ SKIP_BLANKS;
+ cur = xmlParseSGMLCatalogPubid(cur, &sysid);
+ if (cur == NULL) {
+ /* error */
+ break;
+ }
+ break;
+ case SGML_CATA_BASE:
+ case SGML_CATA_CATALOG:
+ case SGML_CATA_DOCUMENT:
+ case SGML_CATA_SGMLDECL:
+ cur = xmlParseSGMLCatalogPubid(cur, &sysid);
+ if (cur == NULL) {
+ /* error */
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ if (cur == NULL) {
+ if (name != NULL)
+ xmlFree(name);
+ if (sysid != NULL)
+ xmlFree(sysid);
+ break;
+ } else if (type == SGML_CATA_BASE) {
+ if (base != NULL)
+ xmlFree(base);
+ base = xmlStrdup(sysid);
+ } else if ((type == SGML_CATA_PUBLIC) ||
+ (type == SGML_CATA_SYSTEM)) {
+ xmlChar *filename;
+
+ filename = xmlBuildURI(sysid, base);
+ if (filename != NULL) {
+ xmlCatalogEntryPtr entry;
+
+ entry = xmlNewCatalogEntry(type, name, filename,
+ NULL, XML_CATA_PREFER_NONE, NULL);
+ res = xmlHashAddEntry(catal->sgml, name, entry);
+ if (res < 0) {
+ xmlFreeCatalogEntry(entry, NULL);
+ }
+ xmlFree(filename);
+ }
+
+ } else if (type == SGML_CATA_CATALOG) {
+ if (super) {
+ xmlCatalogEntryPtr entry;
+
+ entry = xmlNewCatalogEntry(type, sysid, NULL, NULL,
+ XML_CATA_PREFER_NONE, NULL);
+ res = xmlHashAddEntry(catal->sgml, sysid, entry);
+ if (res < 0) {
+ xmlFreeCatalogEntry(entry, NULL);
+ }
+ } else {
+ xmlChar *filename;
+
+ filename = xmlBuildURI(sysid, base);
+ if (filename != NULL) {
+ xmlExpandCatalog(catal, (const char *)filename);
+ xmlFree(filename);
+ }
+ }
+ }
+ /*
+ * drop anything else we won't handle it
+ */
+ if (name != NULL)
+ xmlFree(name);
+ if (sysid != NULL)
+ xmlFree(sysid);
+ }
+ }
+ if (base != NULL)
+ xmlFree(base);
+ if (cur == NULL)
+ return(-1);
+ return(0);
+}
+
+/************************************************************************
+ * *
+ * SGML Catalog handling *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlCatalogGetSGMLPublic:
+ * @catal: an SGML catalog hash
+ * @pubID: the public ID string
+ *
+ * Try to lookup the catalog local reference associated to a public ID
+ *
+ * Returns the local resource if found or NULL otherwise.
+ */
+static const xmlChar *
+xmlCatalogGetSGMLPublic(xmlHashTablePtr catal, const xmlChar *pubID) {
+ xmlCatalogEntryPtr entry;
+ xmlChar *normid;
+
+ if (catal == NULL)
+ return(NULL);
+
+ normid = xmlCatalogNormalizePublic(pubID);
+ if (normid != NULL)
+ pubID = (*normid != 0 ? normid : NULL);
+
+ entry = (xmlCatalogEntryPtr) xmlHashLookup(catal, pubID);
+ if (entry == NULL) {
+ if (normid != NULL)
+ xmlFree(normid);
+ return(NULL);
+ }
+ if (entry->type == SGML_CATA_PUBLIC) {
+ if (normid != NULL)
+ xmlFree(normid);
+ return(entry->URL);
+ }
+ if (normid != NULL)
+ xmlFree(normid);
+ return(NULL);
+}
+
+/**
+ * xmlCatalogGetSGMLSystem:
+ * @catal: an SGML catalog hash
+ * @sysID: the system ID string
+ *
+ * Try to lookup the catalog local reference for a system ID
+ *
+ * Returns the local resource if found or NULL otherwise.
+ */
+static const xmlChar *
+xmlCatalogGetSGMLSystem(xmlHashTablePtr catal, const xmlChar *sysID) {
+ xmlCatalogEntryPtr entry;
+
+ if (catal == NULL)
+ return(NULL);
+
+ entry = (xmlCatalogEntryPtr) xmlHashLookup(catal, sysID);
+ if (entry == NULL)
+ return(NULL);
+ if (entry->type == SGML_CATA_SYSTEM)
+ return(entry->URL);
+ return(NULL);
+}
+
+/**
+ * xmlCatalogSGMLResolve:
+ * @catal: the SGML catalog
+ * @pubID: the public ID string
+ * @sysID: the system ID string
+ *
+ * Do a complete resolution lookup of an External Identifier
+ *
+ * Returns the URI of the resource or NULL if not found
+ */
+static const xmlChar *
+xmlCatalogSGMLResolve(xmlCatalogPtr catal, const xmlChar *pubID,
+ const xmlChar *sysID) {
+ const xmlChar *ret = NULL;
+
+ if (catal->sgml == NULL)
+ return(NULL);
+
+ if (pubID != NULL)
+ ret = xmlCatalogGetSGMLPublic(catal->sgml, pubID);
+ if (ret != NULL)
+ return(ret);
+ if (sysID != NULL)
+ ret = xmlCatalogGetSGMLSystem(catal->sgml, sysID);
+ if (ret != NULL)
+ return(ret);
+ return(NULL);
+}
+
+/************************************************************************
+ * *
+ * Specific Public interfaces *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlLoadSGMLSuperCatalog:
+ * @filename: a file path
+ *
+ * Load an SGML super catalog. It won't expand CATALOG or DELEGATE
+ * references. This is only needed for manipulating SGML Super Catalogs
+ * like adding and removing CATALOG or DELEGATE entries.
+ *
+ * Returns the catalog parsed or NULL in case of error
+ */
+xmlCatalogPtr
+xmlLoadSGMLSuperCatalog(const char *filename)
+{
+ xmlChar *content;
+ xmlCatalogPtr catal;
+ int ret;
+
+ content = xmlLoadFileContent(filename);
+ if (content == NULL)
+ return(NULL);
+
+ catal = xmlCreateNewCatalog(XML_SGML_CATALOG_TYPE, xmlCatalogDefaultPrefer);
+ if (catal == NULL) {
+ xmlFree(content);
+ return(NULL);
+ }
+
+ ret = xmlParseSGMLCatalog(catal, content, filename, 1);
+ xmlFree(content);
+ if (ret < 0) {
+ xmlFreeCatalog(catal);
+ return(NULL);
+ }
+ return (catal);
+}
+
+/**
+ * xmlLoadACatalog:
+ * @filename: a file path
+ *
+ * Load the catalog and build the associated data structures.
+ * This can be either an XML Catalog or an SGML Catalog
+ * It will recurse in SGML CATALOG entries. On the other hand XML
+ * Catalogs are not handled recursively.
+ *
+ * Returns the catalog parsed or NULL in case of error
+ */
+xmlCatalogPtr
+xmlLoadACatalog(const char *filename)
+{
+ xmlChar *content;
+ xmlChar *first;
+ xmlCatalogPtr catal;
+ int ret;
+
+ content = xmlLoadFileContent(filename);
+ if (content == NULL)
+ return(NULL);
+
+
+ first = content;
+
+ while ((*first != 0) && (*first != '-') && (*first != '<') &&
+ (!(((*first >= 'A') && (*first <= 'Z')) ||
+ ((*first >= 'a') && (*first <= 'z')))))
+ first++;
+
+ if (*first != '<') {
+ catal = xmlCreateNewCatalog(XML_SGML_CATALOG_TYPE, xmlCatalogDefaultPrefer);
+ if (catal == NULL) {
+ xmlFree(content);
+ return(NULL);
+ }
+ ret = xmlParseSGMLCatalog(catal, content, filename, 0);
+ if (ret < 0) {
+ xmlFreeCatalog(catal);
+ xmlFree(content);
+ return(NULL);
+ }
+ } else {
+ catal = xmlCreateNewCatalog(XML_XML_CATALOG_TYPE, xmlCatalogDefaultPrefer);
+ if (catal == NULL) {
+ xmlFree(content);
+ return(NULL);
+ }
+ catal->xml = xmlNewCatalogEntry(XML_CATA_CATALOG, NULL,
+ NULL, BAD_CAST filename, xmlCatalogDefaultPrefer, NULL);
+ }
+ xmlFree(content);
+ return (catal);
+}
+
+/**
+ * xmlExpandCatalog:
+ * @catal: a catalog
+ * @filename: a file path
+ *
+ * Load the catalog and expand the existing catal structure.
+ * This can be either an XML Catalog or an SGML Catalog
+ *
+ * Returns 0 in case of success, -1 in case of error
+ */
+static int
+xmlExpandCatalog(xmlCatalogPtr catal, const char *filename)
+{
+ int ret;
+
+ if ((catal == NULL) || (filename == NULL))
+ return(-1);
+
+
+ if (catal->type == XML_SGML_CATALOG_TYPE) {
+ xmlChar *content;
+
+ content = xmlLoadFileContent(filename);
+ if (content == NULL)
+ return(-1);
+
+ ret = xmlParseSGMLCatalog(catal, content, filename, 0);
+ if (ret < 0) {
+ xmlFree(content);
+ return(-1);
+ }
+ xmlFree(content);
+ } else {
+ xmlCatalogEntryPtr tmp, cur;
+ tmp = xmlNewCatalogEntry(XML_CATA_CATALOG, NULL,
+ NULL, BAD_CAST filename, xmlCatalogDefaultPrefer, NULL);
+
+ cur = catal->xml;
+ if (cur == NULL) {
+ catal->xml = tmp;
+ } else {
+ while (cur->next != NULL) cur = cur->next;
+ cur->next = tmp;
+ }
+ }
+ return (0);
+}
+
+/**
+ * xmlACatalogResolveSystem:
+ * @catal: a Catalog
+ * @sysID: the system ID string
+ *
+ * Try to lookup the catalog resource for a system ID
+ *
+ * Returns the resource if found or NULL otherwise, the value returned
+ * must be freed by the caller.
+ */
+xmlChar *
+xmlACatalogResolveSystem(xmlCatalogPtr catal, const xmlChar *sysID) {
+ xmlChar *ret = NULL;
+
+ if ((sysID == NULL) || (catal == NULL))
+ return(NULL);
+
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Resolve sysID %s\n", sysID);
+
+ if (catal->type == XML_XML_CATALOG_TYPE) {
+ ret = xmlCatalogListXMLResolve(catal->xml, NULL, sysID);
+ if (ret == XML_CATAL_BREAK)
+ ret = NULL;
+ } else {
+ const xmlChar *sgml;
+
+ sgml = xmlCatalogGetSGMLSystem(catal->sgml, sysID);
+ if (sgml != NULL)
+ ret = xmlStrdup(sgml);
+ }
+ return(ret);
+}
+
+/**
+ * xmlACatalogResolvePublic:
+ * @catal: a Catalog
+ * @pubID: the public ID string
+ *
+ * Try to lookup the catalog local reference associated to a public ID in that catalog
+ *
+ * Returns the local resource if found or NULL otherwise, the value returned
+ * must be freed by the caller.
+ */
+xmlChar *
+xmlACatalogResolvePublic(xmlCatalogPtr catal, const xmlChar *pubID) {
+ xmlChar *ret = NULL;
+
+ if ((pubID == NULL) || (catal == NULL))
+ return(NULL);
+
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Resolve pubID %s\n", pubID);
+
+ if (catal->type == XML_XML_CATALOG_TYPE) {
+ ret = xmlCatalogListXMLResolve(catal->xml, pubID, NULL);
+ if (ret == XML_CATAL_BREAK)
+ ret = NULL;
+ } else {
+ const xmlChar *sgml;
+
+ sgml = xmlCatalogGetSGMLPublic(catal->sgml, pubID);
+ if (sgml != NULL)
+ ret = xmlStrdup(sgml);
+ }
+ return(ret);
+}
+
+/**
+ * xmlACatalogResolve:
+ * @catal: a Catalog
+ * @pubID: the public ID string
+ * @sysID: the system ID string
+ *
+ * Do a complete resolution lookup of an External Identifier
+ *
+ * Returns the URI of the resource or NULL if not found, it must be freed
+ * by the caller.
+ */
+xmlChar *
+xmlACatalogResolve(xmlCatalogPtr catal, const xmlChar * pubID,
+ const xmlChar * sysID)
+{
+ xmlChar *ret = NULL;
+
+ if (((pubID == NULL) && (sysID == NULL)) || (catal == NULL))
+ return (NULL);
+
+ if (xmlDebugCatalogs) {
+ if ((pubID != NULL) && (sysID != NULL)) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Resolve: pubID %s sysID %s\n", pubID, sysID);
+ } else if (pubID != NULL) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Resolve: pubID %s\n", pubID);
+ } else {
+ xmlGenericError(xmlGenericErrorContext,
+ "Resolve: sysID %s\n", sysID);
+ }
+ }
+
+ if (catal->type == XML_XML_CATALOG_TYPE) {
+ ret = xmlCatalogListXMLResolve(catal->xml, pubID, sysID);
+ if (ret == XML_CATAL_BREAK)
+ ret = NULL;
+ } else {
+ const xmlChar *sgml;
+
+ sgml = xmlCatalogSGMLResolve(catal, pubID, sysID);
+ if (sgml != NULL)
+ ret = xmlStrdup(sgml);
+ }
+ return (ret);
+}
+
+/**
+ * xmlACatalogResolveURI:
+ * @catal: a Catalog
+ * @URI: the URI
+ *
+ * Do a complete resolution lookup of an URI
+ *
+ * Returns the URI of the resource or NULL if not found, it must be freed
+ * by the caller.
+ */
+xmlChar *
+xmlACatalogResolveURI(xmlCatalogPtr catal, const xmlChar *URI) {
+ xmlChar *ret = NULL;
+
+ if ((URI == NULL) || (catal == NULL))
+ return(NULL);
+
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Resolve URI %s\n", URI);
+
+ if (catal->type == XML_XML_CATALOG_TYPE) {
+ ret = xmlCatalogListXMLResolveURI(catal->xml, URI);
+ if (ret == XML_CATAL_BREAK)
+ ret = NULL;
+ } else {
+ const xmlChar *sgml;
+
+ sgml = xmlCatalogSGMLResolve(catal, NULL, URI);
+ if (sgml != NULL)
+ ret = xmlStrdup(sgml);
+ }
+ return(ret);
+}
+
+#ifdef LIBXML_OUTPUT_ENABLED
+/**
+ * xmlACatalogDump:
+ * @catal: a Catalog
+ * @out: the file.
+ *
+ * Dump the given catalog to the given file.
+ */
+void
+xmlACatalogDump(xmlCatalogPtr catal, FILE *out) {
+ if ((out == NULL) || (catal == NULL))
+ return;
+
+ if (catal->type == XML_XML_CATALOG_TYPE) {
+ xmlDumpXMLCatalog(out, catal->xml);
+ } else {
+ xmlHashScan(catal->sgml, xmlCatalogDumpEntry, out);
+ }
+}
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+/**
+ * xmlACatalogAdd:
+ * @catal: a Catalog
+ * @type: the type of record to add to the catalog
+ * @orig: the system, public or prefix to match
+ * @replace: the replacement value for the match
+ *
+ * Add an entry in the catalog, it may overwrite existing but
+ * different entries.
+ *
+ * Returns 0 if successful, -1 otherwise
+ */
+int
+xmlACatalogAdd(xmlCatalogPtr catal, const xmlChar * type,
+ const xmlChar * orig, const xmlChar * replace)
+{
+ int res = -1;
+
+ if (catal == NULL)
+ return(-1);
+
+ if (catal->type == XML_XML_CATALOG_TYPE) {
+ res = xmlAddXMLCatalog(catal->xml, type, orig, replace);
+ } else {
+ xmlCatalogEntryType cattype;
+
+ cattype = xmlGetSGMLCatalogEntryType(type);
+ if (cattype != XML_CATA_NONE) {
+ xmlCatalogEntryPtr entry;
+
+ entry = xmlNewCatalogEntry(cattype, orig, replace, NULL,
+ XML_CATA_PREFER_NONE, NULL);
+ if (catal->sgml == NULL)
+ catal->sgml = xmlHashCreate(10);
+ res = xmlHashAddEntry(catal->sgml, orig, entry);
+ }
+ }
+ return (res);
+}
+
+/**
+ * xmlACatalogRemove:
+ * @catal: a Catalog
+ * @value: the value to remove
+ *
+ * Remove an entry from the catalog
+ *
+ * Returns the number of entries removed if successful, -1 otherwise
+ */
+int
+xmlACatalogRemove(xmlCatalogPtr catal, const xmlChar *value) {
+ int res = -1;
+
+ if ((catal == NULL) || (value == NULL))
+ return(-1);
+
+ if (catal->type == XML_XML_CATALOG_TYPE) {
+ res = xmlDelXMLCatalog(catal->xml, value);
+ } else {
+ res = xmlHashRemoveEntry(catal->sgml, value, xmlFreeCatalogEntry);
+ if (res == 0)
+ res = 1;
+ }
+ return(res);
+}
+
+/**
+ * xmlNewCatalog:
+ * @sgml: should this create an SGML catalog
+ *
+ * create a new Catalog.
+ *
+ * Returns the xmlCatalogPtr or NULL in case of error
+ */
+xmlCatalogPtr
+xmlNewCatalog(int sgml) {
+ xmlCatalogPtr catal = NULL;
+
+ if (sgml) {
+ catal = xmlCreateNewCatalog(XML_SGML_CATALOG_TYPE,
+ xmlCatalogDefaultPrefer);
+ if ((catal != NULL) && (catal->sgml == NULL))
+ catal->sgml = xmlHashCreate(10);
+ } else
+ catal = xmlCreateNewCatalog(XML_XML_CATALOG_TYPE,
+ xmlCatalogDefaultPrefer);
+ return(catal);
+}
+
+/**
+ * xmlCatalogIsEmpty:
+ * @catal: should this create an SGML catalog
+ *
+ * Check is a catalog is empty
+ *
+ * Returns 1 if the catalog is empty, 0 if not, amd -1 in case of error.
+ */
+int
+xmlCatalogIsEmpty(xmlCatalogPtr catal) {
+ if (catal == NULL)
+ return(-1);
+
+ if (catal->type == XML_XML_CATALOG_TYPE) {
+ if (catal->xml == NULL)
+ return(1);
+ if ((catal->xml->type != XML_CATA_CATALOG) &&
+ (catal->xml->type != XML_CATA_BROKEN_CATALOG))
+ return(-1);
+ if (catal->xml->children == NULL)
+ return(1);
+ return(0);
+ } else {
+ int res;
+
+ if (catal->sgml == NULL)
+ return(1);
+ res = xmlHashSize(catal->sgml);
+ if (res == 0)
+ return(1);
+ if (res < 0)
+ return(-1);
+ }
+ return(0);
+}
+
+/************************************************************************
+ * *
+ * Public interfaces manipulating the global shared default catalog *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlInitializeCatalogData:
+ *
+ * Do the catalog initialization only of global data, doesn't try to load
+ * any catalog actually.
+ * this function is not thread safe, catalog initialization should
+ * preferably be done once at startup
+ */
+static void
+xmlInitializeCatalogData(void) {
+ if (xmlCatalogInitialized != 0)
+ return;
+
+ if (getenv("XML_DEBUG_CATALOG"))
+ xmlDebugCatalogs = 1;
+ xmlCatalogMutex = xmlNewRMutex();
+
+ xmlCatalogInitialized = 1;
+}
+/**
+ * xmlInitializeCatalog:
+ *
+ * Do the catalog initialization.
+ * this function is not thread safe, catalog initialization should
+ * preferably be done once at startup
+ */
+void
+xmlInitializeCatalog(void) {
+ if (xmlCatalogInitialized != 0)
+ return;
+
+ xmlInitializeCatalogData();
+ xmlRMutexLock(xmlCatalogMutex);
+
+ if (getenv("XML_DEBUG_CATALOG"))
+ xmlDebugCatalogs = 1;
+
+ if (xmlDefaultCatalog == NULL) {
+ const char *catalogs;
+ char *path;
+ const char *cur, *paths;
+ xmlCatalogPtr catal;
+ xmlCatalogEntryPtr *nextent;
+
+ catalogs = (const char *) getenv("XML_CATALOG_FILES");
+ if (catalogs == NULL)
+#if defined(_WIN32) && defined(_MSC_VER)
+ {
+ void* hmodule;
+ hmodule = GetModuleHandleA("libxml2.dll");
+ if (hmodule == NULL)
+ hmodule = GetModuleHandleA(NULL);
+ if (hmodule != NULL) {
+ char buf[256];
+ unsigned long len = GetModuleFileNameA(hmodule, buf, 255);
+ if (len != 0) {
+ char* p = &(buf[len]);
+ while (*p != '\\' && p > buf)
+ p--;
+ if (p != buf) {
+ xmlChar* uri;
+ strncpy(p, "\\..\\etc\\catalog", 255 - (p - buf));
+ uri = xmlCanonicPath((const xmlChar*)buf);
+ if (uri != NULL) {
+ strncpy(XML_XML_DEFAULT_CATALOG, uri, 255);
+ xmlFree(uri);
+ }
+ }
+ }
+ }
+ catalogs = XML_XML_DEFAULT_CATALOG;
+ }
+#else
+ catalogs = XML_XML_DEFAULT_CATALOG;
+#endif
+
+ catal = xmlCreateNewCatalog(XML_XML_CATALOG_TYPE,
+ xmlCatalogDefaultPrefer);
+ if (catal != NULL) {
+ /* the XML_CATALOG_FILES envvar is allowed to contain a
+ space-separated list of entries. */
+ cur = catalogs;
+ nextent = &catal->xml;
+ while (*cur != '\0') {
+ while (xmlIsBlank_ch(*cur))
+ cur++;
+ if (*cur != 0) {
+ paths = cur;
+ while ((*cur != 0) && (!xmlIsBlank_ch(*cur)))
+ cur++;
+ path = (char *) xmlStrndup((const xmlChar *)paths, cur - paths);
+ if (path != NULL) {
+ *nextent = xmlNewCatalogEntry(XML_CATA_CATALOG, NULL,
+ NULL, BAD_CAST path, xmlCatalogDefaultPrefer, NULL);
+ if (*nextent != NULL)
+ nextent = &((*nextent)->next);
+ xmlFree(path);
+ }
+ }
+ }
+ xmlDefaultCatalog = catal;
+ }
+ }
+
+ xmlRMutexUnlock(xmlCatalogMutex);
+}
+
+
+/**
+ * xmlLoadCatalog:
+ * @filename: a file path
+ *
+ * Load the catalog and makes its definitions effective for the default
+ * external entity loader. It will recurse in SGML CATALOG entries.
+ * this function is not thread safe, catalog initialization should
+ * preferably be done once at startup
+ *
+ * Returns 0 in case of success -1 in case of error
+ */
+int
+xmlLoadCatalog(const char *filename)
+{
+ int ret;
+ xmlCatalogPtr catal;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalogData();
+
+ xmlRMutexLock(xmlCatalogMutex);
+
+ if (xmlDefaultCatalog == NULL) {
+ catal = xmlLoadACatalog(filename);
+ if (catal == NULL) {
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(-1);
+ }
+
+ xmlDefaultCatalog = catal;
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(0);
+ }
+
+ ret = xmlExpandCatalog(xmlDefaultCatalog, filename);
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(ret);
+}
+
+/**
+ * xmlLoadCatalogs:
+ * @pathss: a list of directories separated by a colon or a space.
+ *
+ * Load the catalogs and makes their definitions effective for the default
+ * external entity loader.
+ * this function is not thread safe, catalog initialization should
+ * preferably be done once at startup
+ */
+void
+xmlLoadCatalogs(const char *pathss) {
+ const char *cur;
+ const char *paths;
+ xmlChar *path;
+#ifdef _WIN32
+ int i, iLen;
+#endif
+
+ if (pathss == NULL)
+ return;
+
+ cur = pathss;
+ while (*cur != 0) {
+ while (xmlIsBlank_ch(*cur)) cur++;
+ if (*cur != 0) {
+ paths = cur;
+ while ((*cur != 0) && (*cur != PATH_SEPARATOR) && (!xmlIsBlank_ch(*cur)))
+ cur++;
+ path = xmlStrndup((const xmlChar *)paths, cur - paths);
+#ifdef _WIN32
+ iLen = strlen((const char*)path);
+ for(i = 0; i < iLen; i++) {
+ if(path[i] == '\\') {
+ path[i] = '/';
+ }
+ }
+#endif
+ if (path != NULL) {
+ xmlLoadCatalog((const char *) path);
+ xmlFree(path);
+ }
+ }
+ while (*cur == PATH_SEPARATOR)
+ cur++;
+ }
+}
+
+/**
+ * xmlCatalogCleanup:
+ *
+ * Free up all the memory associated with catalogs
+ */
+void
+xmlCatalogCleanup(void) {
+ if (xmlCatalogInitialized == 0)
+ return;
+
+ xmlRMutexLock(xmlCatalogMutex);
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Catalogs cleanup\n");
+ if (xmlCatalogXMLFiles != NULL)
+ xmlHashFree(xmlCatalogXMLFiles, xmlFreeCatalogHashEntryList);
+ xmlCatalogXMLFiles = NULL;
+ if (xmlDefaultCatalog != NULL)
+ xmlFreeCatalog(xmlDefaultCatalog);
+ xmlDefaultCatalog = NULL;
+ xmlDebugCatalogs = 0;
+ xmlCatalogInitialized = 0;
+ xmlRMutexUnlock(xmlCatalogMutex);
+ xmlFreeRMutex(xmlCatalogMutex);
+}
+
+/**
+ * xmlCatalogResolveSystem:
+ * @sysID: the system ID string
+ *
+ * Try to lookup the catalog resource for a system ID
+ *
+ * Returns the resource if found or NULL otherwise, the value returned
+ * must be freed by the caller.
+ */
+xmlChar *
+xmlCatalogResolveSystem(const xmlChar *sysID) {
+ xmlChar *ret;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ ret = xmlACatalogResolveSystem(xmlDefaultCatalog, sysID);
+ return(ret);
+}
+
+/**
+ * xmlCatalogResolvePublic:
+ * @pubID: the public ID string
+ *
+ * Try to lookup the catalog reference associated to a public ID
+ *
+ * Returns the resource if found or NULL otherwise, the value returned
+ * must be freed by the caller.
+ */
+xmlChar *
+xmlCatalogResolvePublic(const xmlChar *pubID) {
+ xmlChar *ret;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ ret = xmlACatalogResolvePublic(xmlDefaultCatalog, pubID);
+ return(ret);
+}
+
+/**
+ * xmlCatalogResolve:
+ * @pubID: the public ID string
+ * @sysID: the system ID string
+ *
+ * Do a complete resolution lookup of an External Identifier
+ *
+ * Returns the URI of the resource or NULL if not found, it must be freed
+ * by the caller.
+ */
+xmlChar *
+xmlCatalogResolve(const xmlChar *pubID, const xmlChar *sysID) {
+ xmlChar *ret;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ ret = xmlACatalogResolve(xmlDefaultCatalog, pubID, sysID);
+ return(ret);
+}
+
+/**
+ * xmlCatalogResolveURI:
+ * @URI: the URI
+ *
+ * Do a complete resolution lookup of an URI
+ *
+ * Returns the URI of the resource or NULL if not found, it must be freed
+ * by the caller.
+ */
+xmlChar *
+xmlCatalogResolveURI(const xmlChar *URI) {
+ xmlChar *ret;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ ret = xmlACatalogResolveURI(xmlDefaultCatalog, URI);
+ return(ret);
+}
+
+#ifdef LIBXML_OUTPUT_ENABLED
+/**
+ * xmlCatalogDump:
+ * @out: the file.
+ *
+ * Dump all the global catalog content to the given file.
+ */
+void
+xmlCatalogDump(FILE *out) {
+ if (out == NULL)
+ return;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ xmlACatalogDump(xmlDefaultCatalog, out);
+}
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+/**
+ * xmlCatalogAdd:
+ * @type: the type of record to add to the catalog
+ * @orig: the system, public or prefix to match
+ * @replace: the replacement value for the match
+ *
+ * Add an entry in the catalog, it may overwrite existing but
+ * different entries.
+ * If called before any other catalog routine, allows to override the
+ * default shared catalog put in place by xmlInitializeCatalog();
+ *
+ * Returns 0 if successful, -1 otherwise
+ */
+int
+xmlCatalogAdd(const xmlChar *type, const xmlChar *orig, const xmlChar *replace) {
+ int res = -1;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalogData();
+
+ xmlRMutexLock(xmlCatalogMutex);
+ /*
+ * Specific case where one want to override the default catalog
+ * put in place by xmlInitializeCatalog();
+ */
+ if ((xmlDefaultCatalog == NULL) &&
+ (xmlStrEqual(type, BAD_CAST "catalog"))) {
+ xmlDefaultCatalog = xmlCreateNewCatalog(XML_XML_CATALOG_TYPE,
+ xmlCatalogDefaultPrefer);
+ xmlDefaultCatalog->xml = xmlNewCatalogEntry(XML_CATA_CATALOG, NULL,
+ orig, NULL, xmlCatalogDefaultPrefer, NULL);
+
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(0);
+ }
+
+ res = xmlACatalogAdd(xmlDefaultCatalog, type, orig, replace);
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(res);
+}
+
+/**
+ * xmlCatalogRemove:
+ * @value: the value to remove
+ *
+ * Remove an entry from the catalog
+ *
+ * Returns the number of entries removed if successful, -1 otherwise
+ */
+int
+xmlCatalogRemove(const xmlChar *value) {
+ int res;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ xmlRMutexLock(xmlCatalogMutex);
+ res = xmlACatalogRemove(xmlDefaultCatalog, value);
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(res);
+}
+
+/**
+ * xmlCatalogConvert:
+ *
+ * Convert all the SGML catalog entries as XML ones
+ *
+ * Returns the number of entries converted if successful, -1 otherwise
+ */
+int
+xmlCatalogConvert(void) {
+ int res = -1;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ xmlRMutexLock(xmlCatalogMutex);
+ res = xmlConvertSGMLCatalog(xmlDefaultCatalog);
+ xmlRMutexUnlock(xmlCatalogMutex);
+ return(res);
+}
+
+/************************************************************************
+ * *
+ * Public interface manipulating the common preferences *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlCatalogGetDefaults:
+ *
+ * Used to get the user preference w.r.t. to what catalogs should
+ * be accepted
+ *
+ * Returns the current xmlCatalogAllow value
+ */
+xmlCatalogAllow
+xmlCatalogGetDefaults(void) {
+ return(xmlCatalogDefaultAllow);
+}
+
+/**
+ * xmlCatalogSetDefaults:
+ * @allow: what catalogs should be accepted
+ *
+ * Used to set the user preference w.r.t. to what catalogs should
+ * be accepted
+ */
+void
+xmlCatalogSetDefaults(xmlCatalogAllow allow) {
+ if (xmlDebugCatalogs) {
+ switch (allow) {
+ case XML_CATA_ALLOW_NONE:
+ xmlGenericError(xmlGenericErrorContext,
+ "Disabling catalog usage\n");
+ break;
+ case XML_CATA_ALLOW_GLOBAL:
+ xmlGenericError(xmlGenericErrorContext,
+ "Allowing only global catalogs\n");
+ break;
+ case XML_CATA_ALLOW_DOCUMENT:
+ xmlGenericError(xmlGenericErrorContext,
+ "Allowing only catalogs from the document\n");
+ break;
+ case XML_CATA_ALLOW_ALL:
+ xmlGenericError(xmlGenericErrorContext,
+ "Allowing all catalogs\n");
+ break;
+ }
+ }
+ xmlCatalogDefaultAllow = allow;
+}
+
+/**
+ * xmlCatalogSetDefaultPrefer:
+ * @prefer: the default preference for delegation
+ *
+ * Allows to set the preference between public and system for deletion
+ * in XML Catalog resolution. C.f. section 4.1.1 of the spec
+ * Values accepted are XML_CATA_PREFER_PUBLIC or XML_CATA_PREFER_SYSTEM
+ *
+ * Returns the previous value of the default preference for delegation
+ */
+xmlCatalogPrefer
+xmlCatalogSetDefaultPrefer(xmlCatalogPrefer prefer) {
+ xmlCatalogPrefer ret = xmlCatalogDefaultPrefer;
+
+ if (prefer == XML_CATA_PREFER_NONE)
+ return(ret);
+
+ if (xmlDebugCatalogs) {
+ switch (prefer) {
+ case XML_CATA_PREFER_PUBLIC:
+ xmlGenericError(xmlGenericErrorContext,
+ "Setting catalog preference to PUBLIC\n");
+ break;
+ case XML_CATA_PREFER_SYSTEM:
+ xmlGenericError(xmlGenericErrorContext,
+ "Setting catalog preference to SYSTEM\n");
+ break;
+ default:
+ return(ret);
+ }
+ }
+ xmlCatalogDefaultPrefer = prefer;
+ return(ret);
+}
+
+/**
+ * xmlCatalogSetDebug:
+ * @level: the debug level of catalogs required
+ *
+ * Used to set the debug level for catalog operation, 0 disable
+ * debugging, 1 enable it
+ *
+ * Returns the previous value of the catalog debugging level
+ */
+int
+xmlCatalogSetDebug(int level) {
+ int ret = xmlDebugCatalogs;
+
+ if (level <= 0)
+ xmlDebugCatalogs = 0;
+ else
+ xmlDebugCatalogs = level;
+ return(ret);
+}
+
+/************************************************************************
+ * *
+ * Minimal interfaces used for per-document catalogs by the parser *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlCatalogFreeLocal:
+ * @catalogs: a document's list of catalogs
+ *
+ * Free up the memory associated to the catalog list
+ */
+void
+xmlCatalogFreeLocal(void *catalogs) {
+ xmlCatalogEntryPtr catal;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ catal = (xmlCatalogEntryPtr) catalogs;
+ if (catal != NULL)
+ xmlFreeCatalogEntryList(catal);
+}
+
+
+/**
+ * xmlCatalogAddLocal:
+ * @catalogs: a document's list of catalogs
+ * @URL: the URL to a new local catalog
+ *
+ * Add the new entry to the catalog list
+ *
+ * Returns the updated list
+ */
+void *
+xmlCatalogAddLocal(void *catalogs, const xmlChar *URL) {
+ xmlCatalogEntryPtr catal, add;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ if (URL == NULL)
+ return(catalogs);
+
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Adding document catalog %s\n", URL);
+
+ add = xmlNewCatalogEntry(XML_CATA_CATALOG, NULL, URL, NULL,
+ xmlCatalogDefaultPrefer, NULL);
+ if (add == NULL)
+ return(catalogs);
+
+ catal = (xmlCatalogEntryPtr) catalogs;
+ if (catal == NULL)
+ return((void *) add);
+
+ while (catal->next != NULL)
+ catal = catal->next;
+ catal->next = add;
+ return(catalogs);
+}
+
+/**
+ * xmlCatalogLocalResolve:
+ * @catalogs: a document's list of catalogs
+ * @pubID: the public ID string
+ * @sysID: the system ID string
+ *
+ * Do a complete resolution lookup of an External Identifier using a
+ * document's private catalog list
+ *
+ * Returns the URI of the resource or NULL if not found, it must be freed
+ * by the caller.
+ */
+xmlChar *
+xmlCatalogLocalResolve(void *catalogs, const xmlChar *pubID,
+ const xmlChar *sysID) {
+ xmlCatalogEntryPtr catal;
+ xmlChar *ret;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ if ((pubID == NULL) && (sysID == NULL))
+ return(NULL);
+
+ if (xmlDebugCatalogs) {
+ if ((pubID != NULL) && (sysID != NULL)) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Local Resolve: pubID %s sysID %s\n", pubID, sysID);
+ } else if (pubID != NULL) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Local Resolve: pubID %s\n", pubID);
+ } else {
+ xmlGenericError(xmlGenericErrorContext,
+ "Local Resolve: sysID %s\n", sysID);
+ }
+ }
+
+ catal = (xmlCatalogEntryPtr) catalogs;
+ if (catal == NULL)
+ return(NULL);
+ ret = xmlCatalogListXMLResolve(catal, pubID, sysID);
+ if ((ret != NULL) && (ret != XML_CATAL_BREAK))
+ return(ret);
+ return(NULL);
+}
+
+/**
+ * xmlCatalogLocalResolveURI:
+ * @catalogs: a document's list of catalogs
+ * @URI: the URI
+ *
+ * Do a complete resolution lookup of an URI using a
+ * document's private catalog list
+ *
+ * Returns the URI of the resource or NULL if not found, it must be freed
+ * by the caller.
+ */
+xmlChar *
+xmlCatalogLocalResolveURI(void *catalogs, const xmlChar *URI) {
+ xmlCatalogEntryPtr catal;
+ xmlChar *ret;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ if (URI == NULL)
+ return(NULL);
+
+ if (xmlDebugCatalogs)
+ xmlGenericError(xmlGenericErrorContext,
+ "Resolve URI %s\n", URI);
+
+ catal = (xmlCatalogEntryPtr) catalogs;
+ if (catal == NULL)
+ return(NULL);
+ ret = xmlCatalogListXMLResolveURI(catal, URI);
+ if ((ret != NULL) && (ret != XML_CATAL_BREAK))
+ return(ret);
+ return(NULL);
+}
+
+/************************************************************************
+ * *
+ * Deprecated interfaces *
+ * *
+ ************************************************************************/
+/**
+ * xmlCatalogGetSystem:
+ * @sysID: the system ID string
+ *
+ * Try to lookup the catalog reference associated to a system ID
+ * DEPRECATED, use xmlCatalogResolveSystem()
+ *
+ * Returns the resource if found or NULL otherwise.
+ */
+const xmlChar *
+xmlCatalogGetSystem(const xmlChar *sysID) {
+ xmlChar *ret;
+ static xmlChar result[1000];
+ static int msg = 0;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ if (msg == 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Use of deprecated xmlCatalogGetSystem() call\n");
+ msg++;
+ }
+
+ if (sysID == NULL)
+ return(NULL);
+
+ /*
+ * Check first the XML catalogs
+ */
+ if (xmlDefaultCatalog != NULL) {
+ ret = xmlCatalogListXMLResolve(xmlDefaultCatalog->xml, NULL, sysID);
+ if ((ret != NULL) && (ret != XML_CATAL_BREAK)) {
+ snprintf((char *) result, sizeof(result) - 1, "%s", (char *) ret);
+ result[sizeof(result) - 1] = 0;
+ return(result);
+ }
+ }
+
+ if (xmlDefaultCatalog != NULL)
+ return(xmlCatalogGetSGMLSystem(xmlDefaultCatalog->sgml, sysID));
+ return(NULL);
+}
+
+/**
+ * xmlCatalogGetPublic:
+ * @pubID: the public ID string
+ *
+ * Try to lookup the catalog reference associated to a public ID
+ * DEPRECATED, use xmlCatalogResolvePublic()
+ *
+ * Returns the resource if found or NULL otherwise.
+ */
+const xmlChar *
+xmlCatalogGetPublic(const xmlChar *pubID) {
+ xmlChar *ret;
+ static xmlChar result[1000];
+ static int msg = 0;
+
+ if (!xmlCatalogInitialized)
+ xmlInitializeCatalog();
+
+ if (msg == 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Use of deprecated xmlCatalogGetPublic() call\n");
+ msg++;
+ }
+
+ if (pubID == NULL)
+ return(NULL);
+
+ /*
+ * Check first the XML catalogs
+ */
+ if (xmlDefaultCatalog != NULL) {
+ ret = xmlCatalogListXMLResolve(xmlDefaultCatalog->xml, pubID, NULL);
+ if ((ret != NULL) && (ret != XML_CATAL_BREAK)) {
+ snprintf((char *) result, sizeof(result) - 1, "%s", (char *) ret);
+ result[sizeof(result) - 1] = 0;
+ return(result);
+ }
+ }
+
+ if (xmlDefaultCatalog != NULL)
+ return(xmlCatalogGetSGMLPublic(xmlDefaultCatalog->sgml, pubID));
+ return(NULL);
+}
+
+#define bottom_catalog
+#include "elfgcchack.h"
+#endif /* LIBXML_CATALOG_ENABLED */
diff --git a/libxml2-2.9.10/check-relaxng-test-suite.py b/libxml2-2.9.10/check-relaxng-test-suite.py
new file mode 100755
index 0000000..f4a5a69
--- /dev/null
+++ b/libxml2-2.9.10/check-relaxng-test-suite.py
@@ -0,0 +1,394 @@
+#!/usr/bin/python
+import sys
+import time
+import os
+import string
+import StringIO
+sys.path.insert(0, "python")
+import libxml2
+
+# Memory debug specific
+libxml2.debugMemory(1)
+debug = 0
+verbose = 0
+quiet = 1
+
+#
+# the testsuite description
+#
+CONF=os.path.join(os.path.dirname(__file__), "test/relaxng/OASIS/spectest.xml")
+LOG="check-relaxng-test-suite.log"
+RES="relaxng-test-results.xml"
+
+log = open(LOG, "w")
+nb_schemas_tests = 0
+nb_schemas_success = 0
+nb_schemas_failed = 0
+nb_instances_tests = 0
+nb_instances_success = 0
+nb_instances_failed = 0
+
+libxml2.lineNumbersDefault(1)
+#
+# Error and warnng callbacks
+#
+def callback(ctx, str):
+ global log
+ log.write("%s%s" % (ctx, str))
+
+libxml2.registerErrorHandler(callback, "")
+
+#
+# Resolver callback
+#
+resources = {}
+def resolver(URL, ID, ctxt):
+ global resources
+
+ if string.find(URL, '#') != -1:
+ URL = URL[0:string.find(URL, '#')]
+ if resources.has_key(URL):
+ return(StringIO.StringIO(resources[URL]))
+ log.write("Resolver failure: asked %s\n" % (URL))
+ log.write("resources: %s\n" % (resources))
+ return None
+
+#
+# Load the previous results
+#
+#results = {}
+#previous = {}
+#
+#try:
+# res = libxml2.parseFile(RES)
+#except:
+# log.write("Could not parse %s" % (RES))
+
+#
+# handle a valid instance
+#
+def handle_valid(node, schema):
+ global log
+ global nb_instances_success
+ global nb_instances_failed
+
+ instance = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ instance = instance + child.serialize()
+ child = child.next
+
+ try:
+ doc = libxml2.parseDoc(instance)
+ except:
+ doc = None
+
+ if doc == None:
+ log.write("\nFailed to parse correct instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ nb_instances_failed = nb_instances_failed + 1
+ return
+
+ try:
+ ctxt = schema.relaxNGNewValidCtxt()
+ ret = doc.relaxNGValidateDoc(ctxt)
+ except:
+ ret = -1
+ if ret != 0:
+ log.write("\nFailed to validate correct instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ nb_instances_failed = nb_instances_failed + 1
+ else:
+ nb_instances_success = nb_instances_success + 1
+ doc.freeDoc()
+
+#
+# handle an invalid instance
+#
+def handle_invalid(node, schema):
+ global log
+ global nb_instances_success
+ global nb_instances_failed
+
+ instance = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ instance = instance + child.serialize()
+ child = child.next
+
+ try:
+ doc = libxml2.parseDoc(instance)
+ except:
+ doc = None
+
+ if doc == None:
+ log.write("\nStrange: failed to parse incorrect instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ return
+
+ try:
+ ctxt = schema.relaxNGNewValidCtxt()
+ ret = doc.relaxNGValidateDoc(ctxt)
+ except:
+ ret = -1
+ if ret == 0:
+ log.write("\nFailed to detect validation problem in instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ nb_instances_failed = nb_instances_failed + 1
+ else:
+ nb_instances_success = nb_instances_success + 1
+ doc.freeDoc()
+
+#
+# handle an incorrect test
+#
+def handle_correct(node):
+ global log
+ global nb_schemas_success
+ global nb_schemas_failed
+
+ schema = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ schema = schema + child.serialize()
+ child = child.next
+
+ try:
+ rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
+ rngs = rngp.relaxNGParse()
+ except:
+ rngs = None
+ if rngs == None:
+ log.write("\nFailed to compile correct schema:\n-----\n")
+ log.write(schema)
+ log.write("\n-----\n")
+ nb_schemas_failed = nb_schemas_failed + 1
+ else:
+ nb_schemas_success = nb_schemas_success + 1
+ return rngs
+
+def handle_incorrect(node):
+ global log
+ global nb_schemas_success
+ global nb_schemas_failed
+
+ schema = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ schema = schema + child.serialize()
+ child = child.next
+
+ try:
+ rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
+ rngs = rngp.relaxNGParse()
+ except:
+ rngs = None
+ if rngs != None:
+ log.write("\nFailed to detect schema error in:\n-----\n")
+ log.write(schema)
+ log.write("\n-----\n")
+ nb_schemas_failed = nb_schemas_failed + 1
+ else:
+# log.write("\nSuccess detecting schema error in:\n-----\n")
+# log.write(schema)
+# log.write("\n-----\n")
+ nb_schemas_success = nb_schemas_success + 1
+ return None
+
+#
+# resource handling: keep a dictionary of URL->string mappings
+#
+def handle_resource(node, dir):
+ global resources
+
+ try:
+ name = node.prop('name')
+ except:
+ name = None
+
+ if name == None or name == '':
+ log.write("resource has no name")
+ return;
+
+ if dir != None:
+# name = libxml2.buildURI(name, dir)
+ name = dir + '/' + name
+
+ res = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ res = res + child.serialize()
+ child = child.next
+ resources[name] = res
+
+#
+# dir handling: pseudo directory resources
+#
+def handle_dir(node, dir):
+ try:
+ name = node.prop('name')
+ except:
+ name = None
+
+ if name == None or name == '':
+ log.write("resource has no name")
+ return;
+
+ if dir != None:
+# name = libxml2.buildURI(name, dir)
+ name = dir + '/' + name
+
+ dirs = node.xpathEval('dir')
+ for dir in dirs:
+ handle_dir(dir, name)
+ res = node.xpathEval('resource')
+ for r in res:
+ handle_resource(r, name)
+
+#
+# handle a testCase element
+#
+def handle_testCase(node):
+ global nb_schemas_tests
+ global nb_instances_tests
+ global resources
+
+ sections = node.xpathEval('string(section)')
+ log.write("\n ======== test %d line %d section %s ==========\n" % (
+
+ nb_schemas_tests, node.lineNo(), sections))
+ resources = {}
+ if debug:
+ print "test %d line %d" % (nb_schemas_tests, node.lineNo())
+
+ dirs = node.xpathEval('dir')
+ for dir in dirs:
+ handle_dir(dir, None)
+ res = node.xpathEval('resource')
+ for r in res:
+ handle_resource(r, None)
+
+ tsts = node.xpathEval('incorrect')
+ if tsts != []:
+ if len(tsts) != 1:
+ print "warning test line %d has more than one <incorrect> example" %(node.lineNo())
+ schema = handle_incorrect(tsts[0])
+ else:
+ tsts = node.xpathEval('correct')
+ if tsts != []:
+ if len(tsts) != 1:
+ print "warning test line %d has more than one <correct> example"% (node.lineNo())
+ schema = handle_correct(tsts[0])
+ else:
+ print "warning <testCase> line %d has no <correct> nor <incorrect> child" % (node.lineNo())
+
+ nb_schemas_tests = nb_schemas_tests + 1;
+
+ valids = node.xpathEval('valid')
+ invalids = node.xpathEval('invalid')
+ nb_instances_tests = nb_instances_tests + len(valids) + len(invalids)
+ if schema != None:
+ for valid in valids:
+ handle_valid(valid, schema)
+ for invalid in invalids:
+ handle_invalid(invalid, schema)
+
+
+#
+# handle a testSuite element
+#
+def handle_testSuite(node, level = 0):
+ global nb_schemas_tests, nb_schemas_success, nb_schemas_failed
+ global nb_instances_tests, nb_instances_success, nb_instances_failed
+ global quiet
+ if level >= 1:
+ old_schemas_tests = nb_schemas_tests
+ old_schemas_success = nb_schemas_success
+ old_schemas_failed = nb_schemas_failed
+ old_instances_tests = nb_instances_tests
+ old_instances_success = nb_instances_success
+ old_instances_failed = nb_instances_failed
+
+ docs = node.xpathEval('documentation')
+ authors = node.xpathEval('author')
+ if docs != []:
+ msg = ""
+ for doc in docs:
+ msg = msg + doc.content + " "
+ if authors != []:
+ msg = msg + "written by "
+ for author in authors:
+ msg = msg + author.content + " "
+ if quiet == 0:
+ print msg
+ sections = node.xpathEval('section')
+ if sections != [] and level <= 0:
+ msg = ""
+ for section in sections:
+ msg = msg + section.content + " "
+ if quiet == 0:
+ print "Tests for section %s" % (msg)
+ for test in node.xpathEval('testCase'):
+ handle_testCase(test)
+ for test in node.xpathEval('testSuite'):
+ handle_testSuite(test, level + 1)
+
+
+ if verbose and level >= 1 and sections != []:
+ msg = ""
+ for section in sections:
+ msg = msg + section.content + " "
+ print "Result of tests for section %s" % (msg)
+ if nb_schemas_tests != old_schemas_tests:
+ print "found %d test schemas: %d success %d failures" % (
+ nb_schemas_tests - old_schemas_tests,
+ nb_schemas_success - old_schemas_success,
+ nb_schemas_failed - old_schemas_failed)
+ if nb_instances_tests != old_instances_tests:
+ print "found %d test instances: %d success %d failures" % (
+ nb_instances_tests - old_instances_tests,
+ nb_instances_success - old_instances_success,
+ nb_instances_failed - old_instances_failed)
+#
+# Parse the conf file
+#
+libxml2.substituteEntitiesDefault(1);
+testsuite = libxml2.parseFile(CONF)
+libxml2.setEntityLoader(resolver)
+root = testsuite.getRootElement()
+if root.name != 'testSuite':
+ print "%s doesn't start with a testSuite element, aborting" % (CONF)
+ sys.exit(1)
+if quiet == 0:
+ print "Running Relax NG testsuite"
+handle_testSuite(root)
+
+if quiet == 0:
+ print "\nTOTAL:\n"
+if quiet == 0 or nb_schemas_failed != 0:
+ print "found %d test schemas: %d success %d failures" % (
+ nb_schemas_tests, nb_schemas_success, nb_schemas_failed)
+if quiet == 0 or nb_instances_failed != 0:
+ print "found %d test instances: %d success %d failures" % (
+ nb_instances_tests, nb_instances_success, nb_instances_failed)
+
+testsuite.freeDoc()
+
+# Memory debug specific
+libxml2.relaxNGCleanupTypes()
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ if quiet == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
diff --git a/libxml2-2.9.10/check-relaxng-test-suite2.py b/libxml2-2.9.10/check-relaxng-test-suite2.py
new file mode 100755
index 0000000..8618db7
--- /dev/null
+++ b/libxml2-2.9.10/check-relaxng-test-suite2.py
@@ -0,0 +1,418 @@
+#!/usr/bin/python
+import sys
+import time
+import os
+import string
+import StringIO
+sys.path.insert(0, "python")
+import libxml2
+
+# Memory debug specific
+libxml2.debugMemory(1)
+debug = 0
+quiet = 1
+
+#
+# the testsuite description
+#
+CONF=os.path.join(os.path.dirname(__file__), "test/relaxng/testsuite.xml")
+LOG="check-relaxng-test-suite2.log"
+
+log = open(LOG, "w")
+nb_schemas_tests = 0
+nb_schemas_success = 0
+nb_schemas_failed = 0
+nb_instances_tests = 0
+nb_instances_success = 0
+nb_instances_failed = 0
+
+libxml2.lineNumbersDefault(1)
+#
+# Resolver callback
+#
+resources = {}
+def resolver(URL, ID, ctxt):
+ global resources
+
+ if resources.has_key(URL):
+ return(StringIO.StringIO(resources[URL]))
+ log.write("Resolver failure: asked %s\n" % (URL))
+ log.write("resources: %s\n" % (resources))
+ return None
+
+#
+# Load the previous results
+#
+#results = {}
+#previous = {}
+#
+#try:
+# res = libxml2.parseFile(RES)
+#except:
+# log.write("Could not parse %s" % (RES))
+
+#
+# handle a valid instance
+#
+def handle_valid(node, schema):
+ global log
+ global nb_instances_success
+ global nb_instances_failed
+
+ instance = node.prop("dtd")
+ if instance == None:
+ instance = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ instance = instance + child.serialize()
+ child = child.next
+
+# mem = libxml2.debugMemory(1);
+ try:
+ doc = libxml2.parseDoc(instance)
+ except:
+ doc = None
+
+ if doc == None:
+ log.write("\nFailed to parse correct instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ nb_instances_failed = nb_instances_failed + 1
+ return
+
+ if debug:
+ print "instance line %d" % (node.lineNo())
+
+ try:
+ ctxt = schema.relaxNGNewValidCtxt()
+ ret = doc.relaxNGValidateDoc(ctxt)
+ del ctxt
+ except:
+ ret = -1
+
+ doc.freeDoc()
+# if mem != libxml2.debugMemory(1):
+# print "validating instance %d line %d leaks" % (
+# nb_instances_tests, node.lineNo())
+
+ if ret != 0:
+ log.write("\nFailed to validate correct instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ nb_instances_failed = nb_instances_failed + 1
+ else:
+ nb_instances_success = nb_instances_success + 1
+
+#
+# handle an invalid instance
+#
+def handle_invalid(node, schema):
+ global log
+ global nb_instances_success
+ global nb_instances_failed
+
+ instance = node.prop("dtd")
+ if instance == None:
+ instance = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ instance = instance + child.serialize()
+ child = child.next
+
+# mem = libxml2.debugMemory(1);
+
+ try:
+ doc = libxml2.parseDoc(instance)
+ except:
+ doc = None
+
+ if doc == None:
+ log.write("\nStrange: failed to parse incorrect instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ return
+
+ if debug:
+ print "instance line %d" % (node.lineNo())
+
+ try:
+ ctxt = schema.relaxNGNewValidCtxt()
+ ret = doc.relaxNGValidateDoc(ctxt)
+ del ctxt
+
+ except:
+ ret = -1
+
+ doc.freeDoc()
+# mem2 = libxml2.debugMemory(1)
+# if mem != mem2:
+# print "validating instance %d line %d leaks %d bytes" % (
+# nb_instances_tests, node.lineNo(), mem2 - mem)
+
+ if ret == 0:
+ log.write("\nFailed to detect validation problem in instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ nb_instances_failed = nb_instances_failed + 1
+ else:
+ nb_instances_success = nb_instances_success + 1
+
+#
+# handle an incorrect test
+#
+def handle_correct(node):
+ global log
+ global nb_schemas_success
+ global nb_schemas_failed
+
+ schema = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ schema = schema + child.serialize()
+ child = child.next
+
+ try:
+ rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
+ rngs = rngp.relaxNGParse()
+ except:
+ rngs = None
+ if rngs == None:
+ log.write("\nFailed to compile correct schema:\n-----\n")
+ log.write(schema)
+ log.write("\n-----\n")
+ nb_schemas_failed = nb_schemas_failed + 1
+ else:
+ nb_schemas_success = nb_schemas_success + 1
+ return rngs
+
+def handle_incorrect(node):
+ global log
+ global nb_schemas_success
+ global nb_schemas_failed
+
+ schema = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ schema = schema + child.serialize()
+ child = child.next
+
+ try:
+ rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
+ rngs = rngp.relaxNGParse()
+ except:
+ rngs = None
+ if rngs != None:
+ log.write("\nFailed to detect schema error in:\n-----\n")
+ log.write(schema)
+ log.write("\n-----\n")
+ nb_schemas_failed = nb_schemas_failed + 1
+ else:
+# log.write("\nSuccess detecting schema error in:\n-----\n")
+# log.write(schema)
+# log.write("\n-----\n")
+ nb_schemas_success = nb_schemas_success + 1
+ return None
+
+#
+# resource handling: keep a dictionary of URL->string mappings
+#
+def handle_resource(node, dir):
+ global resources
+
+ try:
+ name = node.prop('name')
+ except:
+ name = None
+
+ if name == None or name == '':
+ log.write("resource has no name")
+ return;
+
+ if dir != None:
+# name = libxml2.buildURI(name, dir)
+ name = dir + '/' + name
+
+ res = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ res = res + child.serialize()
+ child = child.next
+ resources[name] = res
+
+#
+# dir handling: pseudo directory resources
+#
+def handle_dir(node, dir):
+ try:
+ name = node.prop('name')
+ except:
+ name = None
+
+ if name == None or name == '':
+ log.write("resource has no name")
+ return;
+
+ if dir != None:
+# name = libxml2.buildURI(name, dir)
+ name = dir + '/' + name
+
+ dirs = node.xpathEval('dir')
+ for dir in dirs:
+ handle_dir(dir, name)
+ res = node.xpathEval('resource')
+ for r in res:
+ handle_resource(r, name)
+
+#
+# handle a testCase element
+#
+def handle_testCase(node):
+ global nb_schemas_tests
+ global nb_instances_tests
+ global resources
+
+ sections = node.xpathEval('string(section)')
+ log.write("\n ======== test %d line %d section %s ==========\n" % (
+
+ nb_schemas_tests, node.lineNo(), sections))
+ resources = {}
+ if debug:
+ print "test %d line %d" % (nb_schemas_tests, node.lineNo())
+
+ dirs = node.xpathEval('dir')
+ for dir in dirs:
+ handle_dir(dir, None)
+ res = node.xpathEval('resource')
+ for r in res:
+ handle_resource(r, None)
+
+ tsts = node.xpathEval('incorrect')
+ if tsts != []:
+ if len(tsts) != 1:
+ print "warning test line %d has more than one <incorrect> example" %(node.lineNo())
+ schema = handle_incorrect(tsts[0])
+ else:
+ tsts = node.xpathEval('correct')
+ if tsts != []:
+ if len(tsts) != 1:
+ print "warning test line %d has more than one <correct> example"% (node.lineNo())
+ schema = handle_correct(tsts[0])
+ else:
+ print "warning <testCase> line %d has no <correct> nor <incorrect> child" % (node.lineNo())
+
+ nb_schemas_tests = nb_schemas_tests + 1;
+
+ valids = node.xpathEval('valid')
+ invalids = node.xpathEval('invalid')
+ nb_instances_tests = nb_instances_tests + len(valids) + len(invalids)
+ if schema != None:
+ for valid in valids:
+ handle_valid(valid, schema)
+ for invalid in invalids:
+ handle_invalid(invalid, schema)
+
+
+#
+# handle a testSuite element
+#
+def handle_testSuite(node, level = 0):
+ global nb_schemas_tests, nb_schemas_success, nb_schemas_failed
+ global nb_instances_tests, nb_instances_success, nb_instances_failed
+ if level >= 1:
+ old_schemas_tests = nb_schemas_tests
+ old_schemas_success = nb_schemas_success
+ old_schemas_failed = nb_schemas_failed
+ old_instances_tests = nb_instances_tests
+ old_instances_success = nb_instances_success
+ old_instances_failed = nb_instances_failed
+
+ docs = node.xpathEval('documentation')
+ authors = node.xpathEval('author')
+ if docs != []:
+ msg = ""
+ for doc in docs:
+ msg = msg + doc.content + " "
+ if authors != []:
+ msg = msg + "written by "
+ for author in authors:
+ msg = msg + author.content + " "
+ if quiet == 0:
+ print msg
+ sections = node.xpathEval('section')
+ if sections != [] and level <= 0:
+ msg = ""
+ for section in sections:
+ msg = msg + section.content + " "
+ if quiet == 0:
+ print "Tests for section %s" % (msg)
+ for test in node.xpathEval('testCase'):
+ handle_testCase(test)
+ for test in node.xpathEval('testSuite'):
+ handle_testSuite(test, level + 1)
+
+
+ if level >= 1 and sections != []:
+ msg = ""
+ for section in sections:
+ msg = msg + section.content + " "
+ print "Result of tests for section %s" % (msg)
+ if nb_schemas_tests != old_schemas_tests:
+ print "found %d test schemas: %d success %d failures" % (
+ nb_schemas_tests - old_schemas_tests,
+ nb_schemas_success - old_schemas_success,
+ nb_schemas_failed - old_schemas_failed)
+ if nb_instances_tests != old_instances_tests:
+ print "found %d test instances: %d success %d failures" % (
+ nb_instances_tests - old_instances_tests,
+ nb_instances_success - old_instances_success,
+ nb_instances_failed - old_instances_failed)
+#
+# Parse the conf file
+#
+libxml2.substituteEntitiesDefault(1);
+testsuite = libxml2.parseFile(CONF)
+
+#
+# Error and warnng callbacks
+#
+def callback(ctx, str):
+ global log
+ log.write("%s%s" % (ctx, str))
+
+libxml2.registerErrorHandler(callback, "")
+
+libxml2.setEntityLoader(resolver)
+root = testsuite.getRootElement()
+if root.name != 'testSuite':
+ print "%s doesn't start with a testSuite element, aborting" % (CONF)
+ sys.exit(1)
+if quiet == 0:
+ print "Running Relax NG testsuite"
+handle_testSuite(root)
+
+if quiet == 0:
+ print "\nTOTAL:\n"
+if quiet == 0 or nb_schemas_failed != 0:
+ print "found %d test schemas: %d success %d failures" % (
+ nb_schemas_tests, nb_schemas_success, nb_schemas_failed)
+if quiet == 0 or nb_instances_failed != 0:
+ print "found %d test instances: %d success %d failures" % (
+ nb_instances_tests, nb_instances_success, nb_instances_failed)
+
+
+testsuite.freeDoc()
+
+# Memory debug specific
+libxml2.relaxNGCleanupTypes()
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ if quiet == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
diff --git a/libxml2-2.9.10/check-xinclude-test-suite.py b/libxml2-2.9.10/check-xinclude-test-suite.py
new file mode 100755
index 0000000..416ea21
--- /dev/null
+++ b/libxml2-2.9.10/check-xinclude-test-suite.py
@@ -0,0 +1,221 @@
+#!/usr/bin/python
+import sys
+import time
+import os
+import string
+sys.path.insert(0, "python")
+import libxml2
+
+#
+# the testsuite description
+#
+DIR="xinclude-test-suite"
+CONF="testdescr.xml"
+LOG="check-xinclude-test-suite.log"
+
+log = open(LOG, "w")
+
+os.chdir(DIR)
+
+test_nr = 0
+test_succeed = 0
+test_failed = 0
+test_error = 0
+#
+# Error and warning handlers
+#
+error_nr = 0
+error_msg = ''
+
+def errorHandler(ctx, str):
+ global error_nr
+ global error_msg
+
+ if string.find(str, "error:") >= 0:
+ error_nr = error_nr + 1
+ if len(error_msg) < 300:
+ if len(error_msg) == 0 or error_msg[-1] == '\n':
+ error_msg = error_msg + " >>" + str
+ else:
+ error_msg = error_msg + str
+
+libxml2.registerErrorHandler(errorHandler, None)
+
+def testXInclude(filename, id):
+ global error_nr
+ global error_msg
+ global log
+
+ error_nr = 0
+ error_msg = ''
+
+ print "testXInclude(%s, %s)" % (filename, id)
+ return 1
+
+def runTest(test, basedir):
+ global test_nr
+ global test_failed
+ global test_error
+ global test_succeed
+ global error_msg
+ global log
+
+ fatal_error = 0
+ uri = test.prop('href')
+ id = test.prop('id')
+ type = test.prop('type')
+ if uri == None:
+ print "Test without ID:", uri
+ return -1
+ if id == None:
+ print "Test without URI:", id
+ return -1
+ if type == None:
+ print "Test without URI:", id
+ return -1
+ if basedir != None:
+ URI = basedir + "/" + uri
+ else:
+ URI = uri
+ if os.access(URI, os.R_OK) == 0:
+ print "Test %s missing: base %s uri %s" % (URI, basedir, uri)
+ return -1
+
+ expected = None
+ outputfile = None
+ diff = None
+ if type != 'error':
+ output = test.xpathEval('string(output)')
+ if output == 'No output file.':
+ output = None
+ if output == '':
+ output = None
+ if output != None:
+ if basedir != None:
+ output = basedir + "/" + output
+ if os.access(output, os.R_OK) == 0:
+ print "Result for %s missing: %s" % (id, output)
+ output = None
+ else:
+ try:
+ f = open(output)
+ expected = f.read()
+ outputfile = output
+ except:
+ print "Result for %s unreadable: %s" % (id, output)
+
+ try:
+ # print "testing %s" % (URI)
+ doc = libxml2.parseFile(URI)
+ except:
+ doc = None
+ if doc != None:
+ res = doc.xincludeProcess()
+ if res >= 0 and expected != None:
+ result = doc.serialize()
+ if result != expected:
+ print "Result for %s differs" % (id)
+ open("xinclude.res", "w").write(result)
+ diff = os.popen("diff %s xinclude.res" % outputfile).read()
+
+ doc.freeDoc()
+ else:
+ print "Failed to parse %s" % (URI)
+ res = -1
+
+
+
+ test_nr = test_nr + 1
+ if type == 'success':
+ if res > 0:
+ test_succeed = test_succeed + 1
+ elif res == 0:
+ test_failed = test_failed + 1
+ print "Test %s: no substitution done ???" % (id)
+ elif res < 0:
+ test_error = test_error + 1
+ print "Test %s: failed valid XInclude processing" % (id)
+ elif type == 'error':
+ if res > 0:
+ test_error = test_error + 1
+ print "Test %s: failed to detect invalid XInclude processing" % (id)
+ elif res == 0:
+ test_failed = test_failed + 1
+ print "Test %s: Invalid but no substitution done" % (id)
+ elif res < 0:
+ test_succeed = test_succeed + 1
+ elif type == 'optional':
+ if res > 0:
+ test_succeed = test_succeed + 1
+ else:
+ print "Test %s: failed optional test" % (id)
+
+ # Log the ontext
+ if res != 1:
+ log.write("Test ID %s\n" % (id))
+ log.write(" File: %s\n" % (URI))
+ content = string.strip(test.content)
+ while content[-1] == '\n':
+ content = content[0:-1]
+ log.write(" %s:%s\n\n" % (type, content))
+ if error_msg != '':
+ log.write(" ----\n%s ----\n" % (error_msg))
+ error_msg = ''
+ log.write("\n")
+ if diff != None:
+ log.write("diff from test %s:\n" %(id))
+ log.write(" -----------\n%s\n -----------\n" % (diff));
+
+ return 0
+
+
+def runTestCases(case):
+ creator = case.prop('creator')
+ if creator != None:
+ print "=>", creator
+ base = case.getBase(None)
+ basedir = case.prop('basedir')
+ if basedir != None:
+ base = libxml2.buildURI(basedir, base)
+ test = case.children
+ while test != None:
+ if test.name == 'testcase':
+ runTest(test, base)
+ if test.name == 'testcases':
+ runTestCases(test)
+ test = test.next
+
+conf = libxml2.parseFile(CONF)
+if conf == None:
+ print "Unable to load %s" % CONF
+ sys.exit(1)
+
+testsuite = conf.getRootElement()
+if testsuite.name != 'testsuite':
+ print "Expecting TESTSUITE root element: aborting"
+ sys.exit(1)
+
+profile = testsuite.prop('PROFILE')
+if profile != None:
+ print profile
+
+start = time.time()
+
+case = testsuite.children
+while case != None:
+ if case.name == 'testcases':
+ old_test_nr = test_nr
+ old_test_succeed = test_succeed
+ old_test_failed = test_failed
+ old_test_error = test_error
+ runTestCases(case)
+ print " Ran %d tests: %d succeeded, %d failed and %d generated an error" % (
+ test_nr - old_test_nr, test_succeed - old_test_succeed,
+ test_failed - old_test_failed, test_error - old_test_error)
+ case = case.next
+
+conf.freeDoc()
+log.close()
+
+print "Ran %d tests: %d succeeded, %d failed and %d generated an error in %.2f s." % (
+ test_nr, test_succeed, test_failed, test_error, time.time() - start)
diff --git a/libxml2-2.9.10/check-xml-test-suite.py b/libxml2-2.9.10/check-xml-test-suite.py
new file mode 100755
index 0000000..399a8db
--- /dev/null
+++ b/libxml2-2.9.10/check-xml-test-suite.py
@@ -0,0 +1,409 @@
+#!/usr/bin/python
+import sys
+import time
+import os
+import string
+sys.path.insert(0, "python")
+import libxml2
+
+test_nr = 0
+test_succeed = 0
+test_failed = 0
+test_error = 0
+
+#
+# the testsuite description
+#
+CONF="xml-test-suite/xmlconf/xmlconf.xml"
+LOG="check-xml-test-suite.log"
+
+log = open(LOG, "w")
+
+#
+# Error and warning handlers
+#
+error_nr = 0
+error_msg = ''
+def errorHandler(ctx, str):
+ global error_nr
+ global error_msg
+
+ error_nr = error_nr + 1
+ if len(error_msg) < 300:
+ if len(error_msg) == 0 or error_msg[-1] == '\n':
+ error_msg = error_msg + " >>" + str
+ else:
+ error_msg = error_msg + str
+
+libxml2.registerErrorHandler(errorHandler, None)
+
+#warning_nr = 0
+#warning = ''
+#def warningHandler(ctx, str):
+# global warning_nr
+# global warning
+#
+# warning_nr = warning_nr + 1
+# warning = warning + str
+#
+#libxml2.registerWarningHandler(warningHandler, None)
+
+#
+# Used to load the XML testsuite description
+#
+def loadNoentDoc(filename):
+ ctxt = libxml2.createFileParserCtxt(filename)
+ if ctxt == None:
+ return None
+ ctxt.replaceEntities(1)
+ ctxt.parseDocument()
+ try:
+ doc = ctxt.doc()
+ except:
+ doc = None
+ if ctxt.wellFormed() != 1:
+ doc.freeDoc()
+ return None
+ return doc
+
+#
+# The conformance testing routines
+#
+
+def testNotWf(filename, id):
+ global error_nr
+ global error_msg
+ global log
+
+ error_nr = 0
+ error_msg = ''
+
+ ctxt = libxml2.createFileParserCtxt(filename)
+ if ctxt == None:
+ return -1
+ ret = ctxt.parseDocument()
+
+ try:
+ doc = ctxt.doc()
+ except:
+ doc = None
+ if doc != None:
+ doc.freeDoc()
+ if ret == 0 or ctxt.wellFormed() != 0:
+ print "%s: error: Well Formedness error not detected" % (id)
+ log.write("%s: error: Well Formedness error not detected\n" % (id))
+ return 0
+ return 1
+
+def testNotWfEnt(filename, id):
+ global error_nr
+ global error_msg
+ global log
+
+ error_nr = 0
+ error_msg = ''
+
+ ctxt = libxml2.createFileParserCtxt(filename)
+ if ctxt == None:
+ return -1
+ ctxt.replaceEntities(1)
+ ret = ctxt.parseDocument()
+
+ try:
+ doc = ctxt.doc()
+ except:
+ doc = None
+ if doc != None:
+ doc.freeDoc()
+ if ret == 0 or ctxt.wellFormed() != 0:
+ print "%s: error: Well Formedness error not detected" % (id)
+ log.write("%s: error: Well Formedness error not detected\n" % (id))
+ return 0
+ return 1
+
+def testNotWfEntDtd(filename, id):
+ global error_nr
+ global error_msg
+ global log
+
+ error_nr = 0
+ error_msg = ''
+
+ ctxt = libxml2.createFileParserCtxt(filename)
+ if ctxt == None:
+ return -1
+ ctxt.replaceEntities(1)
+ ctxt.loadSubset(1)
+ ret = ctxt.parseDocument()
+
+ try:
+ doc = ctxt.doc()
+ except:
+ doc = None
+ if doc != None:
+ doc.freeDoc()
+ if ret == 0 or ctxt.wellFormed() != 0:
+ print "%s: error: Well Formedness error not detected" % (id)
+ log.write("%s: error: Well Formedness error not detected\n" % (id))
+ return 0
+ return 1
+
+def testWfEntDtd(filename, id):
+ global error_nr
+ global error_msg
+ global log
+
+ error_nr = 0
+ error_msg = ''
+
+ ctxt = libxml2.createFileParserCtxt(filename)
+ if ctxt == None:
+ return -1
+ ctxt.replaceEntities(1)
+ ctxt.loadSubset(1)
+ ret = ctxt.parseDocument()
+
+ try:
+ doc = ctxt.doc()
+ except:
+ doc = None
+ if doc == None or ret != 0 or ctxt.wellFormed() == 0:
+ print "%s: error: wrongly failed to parse the document" % (id)
+ log.write("%s: error: wrongly failed to parse the document\n" % (id))
+ if doc != None:
+ doc.freeDoc()
+ return 0
+ if error_nr != 0:
+ print "%s: warning: WF document generated an error msg" % (id)
+ log.write("%s: error: WF document generated an error msg\n" % (id))
+ doc.freeDoc()
+ return 2
+ doc.freeDoc()
+ return 1
+
+def testError(filename, id):
+ global error_nr
+ global error_msg
+ global log
+
+ error_nr = 0
+ error_msg = ''
+
+ ctxt = libxml2.createFileParserCtxt(filename)
+ if ctxt == None:
+ return -1
+ ctxt.replaceEntities(1)
+ ctxt.loadSubset(1)
+ ret = ctxt.parseDocument()
+
+ try:
+ doc = ctxt.doc()
+ except:
+ doc = None
+ if doc != None:
+ doc.freeDoc()
+ if ctxt.wellFormed() == 0:
+ print "%s: warning: failed to parse the document but accepted" % (id)
+ log.write("%s: warning: failed to parse the document but accepte\n" % (id))
+ return 2
+ if error_nr != 0:
+ print "%s: warning: WF document generated an error msg" % (id)
+ log.write("%s: error: WF document generated an error msg\n" % (id))
+ return 2
+ return 1
+
+def testInvalid(filename, id):
+ global error_nr
+ global error_msg
+ global log
+
+ error_nr = 0
+ error_msg = ''
+
+ ctxt = libxml2.createFileParserCtxt(filename)
+ if ctxt == None:
+ return -1
+ ctxt.validate(1)
+ ret = ctxt.parseDocument()
+
+ try:
+ doc = ctxt.doc()
+ except:
+ doc = None
+ valid = ctxt.isValid()
+ if doc == None:
+ print "%s: error: wrongly failed to parse the document" % (id)
+ log.write("%s: error: wrongly failed to parse the document\n" % (id))
+ return 0
+ if valid == 1:
+ print "%s: error: Validity error not detected" % (id)
+ log.write("%s: error: Validity error not detected\n" % (id))
+ doc.freeDoc()
+ return 0
+ if error_nr == 0:
+ print "%s: warning: Validity error not reported" % (id)
+ log.write("%s: warning: Validity error not reported\n" % (id))
+ doc.freeDoc()
+ return 2
+
+ doc.freeDoc()
+ return 1
+
+def testValid(filename, id):
+ global error_nr
+ global error_msg
+
+ error_nr = 0
+ error_msg = ''
+
+ ctxt = libxml2.createFileParserCtxt(filename)
+ if ctxt == None:
+ return -1
+ ctxt.validate(1)
+ ctxt.parseDocument()
+
+ try:
+ doc = ctxt.doc()
+ except:
+ doc = None
+ valid = ctxt.isValid()
+ if doc == None:
+ print "%s: error: wrongly failed to parse the document" % (id)
+ log.write("%s: error: wrongly failed to parse the document\n" % (id))
+ return 0
+ if valid != 1:
+ print "%s: error: Validity check failed" % (id)
+ log.write("%s: error: Validity check failed\n" % (id))
+ doc.freeDoc()
+ return 0
+ if error_nr != 0 or valid != 1:
+ print "%s: warning: valid document reported an error" % (id)
+ log.write("%s: warning: valid document reported an error\n" % (id))
+ doc.freeDoc()
+ return 2
+ doc.freeDoc()
+ return 1
+
+def runTest(test):
+ global test_nr
+ global test_succeed
+ global test_failed
+ global error_msg
+ global log
+
+ uri = test.prop('URI')
+ id = test.prop('ID')
+ if uri == None:
+ print "Test without ID:", uri
+ return -1
+ if id == None:
+ print "Test without URI:", id
+ return -1
+ base = test.getBase(None)
+ URI = libxml2.buildURI(uri, base)
+ if os.access(URI, os.R_OK) == 0:
+ print "Test %s missing: base %s uri %s" % (URI, base, uri)
+ return -1
+ type = test.prop('TYPE')
+ if type == None:
+ print "Test %s missing TYPE" % (id)
+ return -1
+
+ extra = None
+ if type == "invalid":
+ res = testInvalid(URI, id)
+ elif type == "valid":
+ res = testValid(URI, id)
+ elif type == "not-wf":
+ extra = test.prop('ENTITIES')
+ # print URI
+ #if extra == None:
+ # res = testNotWfEntDtd(URI, id)
+ #elif extra == 'none':
+ # res = testNotWf(URI, id)
+ #elif extra == 'general':
+ # res = testNotWfEnt(URI, id)
+ #elif extra == 'both' or extra == 'parameter':
+ res = testNotWfEntDtd(URI, id)
+ #else:
+ # print "Unknown value %s for an ENTITIES test value" % (extra)
+ # return -1
+ elif type == "error":
+ res = testError(URI, id)
+ else:
+ # TODO skipped for now
+ return -1
+
+ test_nr = test_nr + 1
+ if res > 0:
+ test_succeed = test_succeed + 1
+ elif res == 0:
+ test_failed = test_failed + 1
+ elif res < 0:
+ test_error = test_error + 1
+
+ # Log the ontext
+ if res != 1:
+ log.write(" File: %s\n" % (URI))
+ content = string.strip(test.content)
+ while content[-1] == '\n':
+ content = content[0:-1]
+ if extra != None:
+ log.write(" %s:%s:%s\n" % (type, extra, content))
+ else:
+ log.write(" %s:%s\n\n" % (type, content))
+ if error_msg != '':
+ log.write(" ----\n%s ----\n" % (error_msg))
+ error_msg = ''
+ log.write("\n")
+
+ return 0
+
+
+def runTestCases(case):
+ profile = case.prop('PROFILE')
+ if profile != None and \
+ string.find(profile, "IBM XML Conformance Test Suite - Production") < 0:
+ print "=>", profile
+ test = case.children
+ while test != None:
+ if test.name == 'TEST':
+ runTest(test)
+ if test.name == 'TESTCASES':
+ runTestCases(test)
+ test = test.next
+
+conf = loadNoentDoc(CONF)
+if conf == None:
+ print "Unable to load %s" % CONF
+ sys.exit(1)
+
+testsuite = conf.getRootElement()
+if testsuite.name != 'TESTSUITE':
+ print "Expecting TESTSUITE root element: aborting"
+ sys.exit(1)
+
+profile = testsuite.prop('PROFILE')
+if profile != None:
+ print profile
+
+start = time.time()
+
+case = testsuite.children
+while case != None:
+ if case.name == 'TESTCASES':
+ old_test_nr = test_nr
+ old_test_succeed = test_succeed
+ old_test_failed = test_failed
+ old_test_error = test_error
+ runTestCases(case)
+ print " Ran %d tests: %d succeeded, %d failed and %d generated an error" % (
+ test_nr - old_test_nr, test_succeed - old_test_succeed,
+ test_failed - old_test_failed, test_error - old_test_error)
+ case = case.next
+
+conf.freeDoc()
+log.close()
+
+print "Ran %d tests: %d succeeded, %d failed and %d generated an error in %.2f s." % (
+ test_nr, test_succeed, test_failed, test_error, time.time() - start)
diff --git a/libxml2-2.9.10/check-xsddata-test-suite.py b/libxml2-2.9.10/check-xsddata-test-suite.py
new file mode 100755
index 0000000..c946129
--- /dev/null
+++ b/libxml2-2.9.10/check-xsddata-test-suite.py
@@ -0,0 +1,420 @@
+#!/usr/bin/python
+import sys
+import time
+import os
+import string
+import StringIO
+sys.path.insert(0, "python")
+import libxml2
+
+# Memory debug specific
+libxml2.debugMemory(1)
+debug = 0
+verbose = 0
+quiet = 1
+
+#
+# the testsuite description
+#
+CONF=os.path.join(os.path.dirname(__file__), "test/xsdtest/xsdtestsuite.xml")
+LOG="check-xsddata-test-suite.log"
+
+log = open(LOG, "w")
+nb_schemas_tests = 0
+nb_schemas_success = 0
+nb_schemas_failed = 0
+nb_instances_tests = 0
+nb_instances_success = 0
+nb_instances_failed = 0
+
+libxml2.lineNumbersDefault(1)
+#
+# Error and warnng callbacks
+#
+def callback(ctx, str):
+ global log
+ log.write("%s%s" % (ctx, str))
+
+libxml2.registerErrorHandler(callback, "")
+
+#
+# Resolver callback
+#
+resources = {}
+def resolver(URL, ID, ctxt):
+ global resources
+
+ if resources.has_key(URL):
+ return(StringIO.StringIO(resources[URL]))
+ log.write("Resolver failure: asked %s\n" % (URL))
+ log.write("resources: %s\n" % (resources))
+ return None
+
+#
+# handle a valid instance
+#
+def handle_valid(node, schema):
+ global log
+ global nb_instances_success
+ global nb_instances_failed
+
+ instance = node.prop("dtd")
+ if instance == None:
+ instance = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ instance = instance + child.serialize()
+ child = child.next
+
+ mem = libxml2.debugMemory(1);
+ try:
+ doc = libxml2.parseDoc(instance)
+ except:
+ doc = None
+
+ if doc == None:
+ log.write("\nFailed to parse correct instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ nb_instances_failed = nb_instances_failed + 1
+ return
+
+ if debug:
+ print "instance line %d" % (node.lineNo())
+
+ try:
+ ctxt = schema.relaxNGNewValidCtxt()
+ ret = doc.relaxNGValidateDoc(ctxt)
+ del ctxt
+ except:
+ ret = -1
+
+ doc.freeDoc()
+ if mem != libxml2.debugMemory(1):
+ print "validating instance %d line %d leaks" % (
+ nb_instances_tests, node.lineNo())
+
+ if ret != 0:
+ log.write("\nFailed to validate correct instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ nb_instances_failed = nb_instances_failed + 1
+ else:
+ nb_instances_success = nb_instances_success + 1
+
+#
+# handle an invalid instance
+#
+def handle_invalid(node, schema):
+ global log
+ global nb_instances_success
+ global nb_instances_failed
+
+ instance = node.prop("dtd")
+ if instance == None:
+ instance = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ instance = instance + child.serialize()
+ child = child.next
+
+# mem = libxml2.debugMemory(1);
+
+ try:
+ doc = libxml2.parseDoc(instance)
+ except:
+ doc = None
+
+ if doc == None:
+ log.write("\nStrange: failed to parse incorrect instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ return
+
+ if debug:
+ print "instance line %d" % (node.lineNo())
+
+ try:
+ ctxt = schema.relaxNGNewValidCtxt()
+ ret = doc.relaxNGValidateDoc(ctxt)
+ del ctxt
+
+ except:
+ ret = -1
+
+ doc.freeDoc()
+# if mem != libxml2.debugMemory(1):
+# print "validating instance %d line %d leaks" % (
+# nb_instances_tests, node.lineNo())
+
+ if ret == 0:
+ log.write("\nFailed to detect validation problem in instance:\n-----\n")
+ log.write(instance)
+ log.write("\n-----\n")
+ nb_instances_failed = nb_instances_failed + 1
+ else:
+ nb_instances_success = nb_instances_success + 1
+
+#
+# handle an incorrect test
+#
+def handle_correct(node):
+ global log
+ global nb_schemas_success
+ global nb_schemas_failed
+
+ schema = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ schema = schema + child.serialize()
+ child = child.next
+
+ try:
+ rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
+ rngs = rngp.relaxNGParse()
+ except:
+ rngs = None
+ if rngs == None:
+ log.write("\nFailed to compile correct schema:\n-----\n")
+ log.write(schema)
+ log.write("\n-----\n")
+ nb_schemas_failed = nb_schemas_failed + 1
+ else:
+ nb_schemas_success = nb_schemas_success + 1
+ return rngs
+
+def handle_incorrect(node):
+ global log
+ global nb_schemas_success
+ global nb_schemas_failed
+
+ schema = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ schema = schema + child.serialize()
+ child = child.next
+
+ try:
+ rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
+ rngs = rngp.relaxNGParse()
+ except:
+ rngs = None
+ if rngs != None:
+ log.write("\nFailed to detect schema error in:\n-----\n")
+ log.write(schema)
+ log.write("\n-----\n")
+ nb_schemas_failed = nb_schemas_failed + 1
+ else:
+# log.write("\nSuccess detecting schema error in:\n-----\n")
+# log.write(schema)
+# log.write("\n-----\n")
+ nb_schemas_success = nb_schemas_success + 1
+ return None
+
+#
+# resource handling: keep a dictionary of URL->string mappings
+#
+def handle_resource(node, dir):
+ global resources
+
+ try:
+ name = node.prop('name')
+ except:
+ name = None
+
+ if name == None or name == '':
+ log.write("resource has no name")
+ return;
+
+ if dir != None:
+# name = libxml2.buildURI(name, dir)
+ name = dir + '/' + name
+
+ res = ""
+ child = node.children
+ while child != None:
+ if child.type != 'text':
+ res = res + child.serialize()
+ child = child.next
+ resources[name] = res
+
+#
+# dir handling: pseudo directory resources
+#
+def handle_dir(node, dir):
+ try:
+ name = node.prop('name')
+ except:
+ name = None
+
+ if name == None or name == '':
+ log.write("resource has no name")
+ return;
+
+ if dir != None:
+# name = libxml2.buildURI(name, dir)
+ name = dir + '/' + name
+
+ dirs = node.xpathEval('dir')
+ for dir in dirs:
+ handle_dir(dir, name)
+ res = node.xpathEval('resource')
+ for r in res:
+ handle_resource(r, name)
+
+#
+# handle a testCase element
+#
+def handle_testCase(node):
+ global nb_schemas_tests
+ global nb_instances_tests
+ global resources
+
+ sections = node.xpathEval('string(section)')
+ log.write("\n ======== test %d line %d section %s ==========\n" % (
+
+ nb_schemas_tests, node.lineNo(), sections))
+ resources = {}
+ if debug:
+ print "test %d line %d" % (nb_schemas_tests, node.lineNo())
+
+ dirs = node.xpathEval('dir')
+ for dir in dirs:
+ handle_dir(dir, None)
+ res = node.xpathEval('resource')
+ for r in res:
+ handle_resource(r, None)
+
+ tsts = node.xpathEval('incorrect')
+ if tsts != []:
+ if len(tsts) != 1:
+ print "warning test line %d has more than one <incorrect> example" %(node.lineNo())
+ schema = handle_incorrect(tsts[0])
+ else:
+ tsts = node.xpathEval('correct')
+ if tsts != []:
+ if len(tsts) != 1:
+ print "warning test line %d has more than one <correct> example"% (node.lineNo())
+ schema = handle_correct(tsts[0])
+ else:
+ print "warning <testCase> line %d has no <correct> nor <incorrect> child" % (node.lineNo())
+
+ nb_schemas_tests = nb_schemas_tests + 1;
+
+ valids = node.xpathEval('valid')
+ invalids = node.xpathEval('invalid')
+ nb_instances_tests = nb_instances_tests + len(valids) + len(invalids)
+ if schema != None:
+ for valid in valids:
+ handle_valid(valid, schema)
+ for invalid in invalids:
+ handle_invalid(invalid, schema)
+
+
+#
+# handle a testSuite element
+#
+def handle_testSuite(node, level = 0):
+ global nb_schemas_tests, nb_schemas_success, nb_schemas_failed
+ global nb_instances_tests, nb_instances_success, nb_instances_failed
+ if verbose and level >= 0:
+ old_schemas_tests = nb_schemas_tests
+ old_schemas_success = nb_schemas_success
+ old_schemas_failed = nb_schemas_failed
+ old_instances_tests = nb_instances_tests
+ old_instances_success = nb_instances_success
+ old_instances_failed = nb_instances_failed
+
+ docs = node.xpathEval('documentation')
+ authors = node.xpathEval('author')
+ if docs != []:
+ msg = ""
+ for doc in docs:
+ msg = msg + doc.content + " "
+ if authors != []:
+ msg = msg + "written by "
+ for author in authors:
+ msg = msg + author.content + " "
+ if quiet == 0:
+ print msg
+ sections = node.xpathEval('section')
+ if verbose and sections != [] and level <= 0:
+ msg = ""
+ for section in sections:
+ msg = msg + section.content + " "
+ if quiet == 0:
+ print "Tests for section %s" % (msg)
+ for test in node.xpathEval('testCase'):
+ handle_testCase(test)
+ for test in node.xpathEval('testSuite'):
+ handle_testSuite(test, level + 1)
+
+
+ if verbose and level >= 0 :
+ if sections != []:
+ msg = ""
+ for section in sections:
+ msg = msg + section.content + " "
+ print "Result of tests for section %s" % (msg)
+ elif docs != []:
+ msg = ""
+ for doc in docs:
+ msg = msg + doc.content + " "
+ print "Result of tests for %s" % (msg)
+
+ if nb_schemas_tests != old_schemas_tests:
+ print "found %d test schemas: %d success %d failures" % (
+ nb_schemas_tests - old_schemas_tests,
+ nb_schemas_success - old_schemas_success,
+ nb_schemas_failed - old_schemas_failed)
+ if nb_instances_tests != old_instances_tests:
+ print "found %d test instances: %d success %d failures" % (
+ nb_instances_tests - old_instances_tests,
+ nb_instances_success - old_instances_success,
+ nb_instances_failed - old_instances_failed)
+#
+# Parse the conf file
+#
+libxml2.substituteEntitiesDefault(1);
+testsuite = libxml2.parseFile(CONF)
+
+#
+# Error and warnng callbacks
+#
+def callback(ctx, str):
+ global log
+ log.write("%s%s" % (ctx, str))
+
+libxml2.registerErrorHandler(callback, "")
+
+libxml2.setEntityLoader(resolver)
+root = testsuite.getRootElement()
+if root.name != 'testSuite':
+ print "%s doesn't start with a testSuite element, aborting" % (CONF)
+ sys.exit(1)
+if quiet == 0:
+ print "Running Relax NG testsuite"
+handle_testSuite(root)
+
+if quiet == 0 or nb_schemas_failed != 0:
+ print "\nTOTAL:\nfound %d test schemas: %d success %d failures" % (
+ nb_schemas_tests, nb_schemas_success, nb_schemas_failed)
+if quiet == 0 or nb_instances_failed != 0:
+ print "found %d test instances: %d success %d failures" % (
+ nb_instances_tests, nb_instances_success, nb_instances_failed)
+
+testsuite.freeDoc()
+
+# Memory debug specific
+libxml2.relaxNGCleanupTypes()
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ if quiet == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
diff --git a/libxml2-2.9.10/chvalid.c b/libxml2-2.9.10/chvalid.c
new file mode 100644
index 0000000..06e8db0
--- /dev/null
+++ b/libxml2-2.9.10/chvalid.c
@@ -0,0 +1,336 @@
+/*
+ * chvalid.c: this module implements the character range
+ * validation APIs
+ *
+ * This file is automatically generated from the cvs source
+ * definition files using the genChRanges.py Python script
+ *
+ * Generation date: Mon Mar 27 11:09:48 2006
+ * Sources: chvalid.def
+ * William Brack <wbrack@mmm.com.hk>
+ */
+
+#define IN_LIBXML
+#include "libxml.h"
+#include <libxml/chvalid.h>
+
+/*
+ * The initial tables ({func_name}_tab) are used to validate whether a
+ * single-byte character is within the specified group. Each table
+ * contains 256 bytes, with each byte representing one of the 256
+ * possible characters. If the table byte is set, the character is
+ * allowed.
+ *
+ */
+const unsigned char xmlIsPubidChar_tab[256] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01,
+ 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00 };
+
+static const xmlChSRange xmlIsBaseChar_srng[] = { {0x100, 0x131},
+ {0x134, 0x13e}, {0x141, 0x148}, {0x14a, 0x17e}, {0x180, 0x1c3},
+ {0x1cd, 0x1f0}, {0x1f4, 0x1f5}, {0x1fa, 0x217}, {0x250, 0x2a8},
+ {0x2bb, 0x2c1}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c},
+ {0x38e, 0x3a1}, {0x3a3, 0x3ce}, {0x3d0, 0x3d6}, {0x3da, 0x3da},
+ {0x3dc, 0x3dc}, {0x3de, 0x3de}, {0x3e0, 0x3e0}, {0x3e2, 0x3f3},
+ {0x401, 0x40c}, {0x40e, 0x44f}, {0x451, 0x45c}, {0x45e, 0x481},
+ {0x490, 0x4c4}, {0x4c7, 0x4c8}, {0x4cb, 0x4cc}, {0x4d0, 0x4eb},
+ {0x4ee, 0x4f5}, {0x4f8, 0x4f9}, {0x531, 0x556}, {0x559, 0x559},
+ {0x561, 0x586}, {0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x621, 0x63a},
+ {0x641, 0x64a}, {0x671, 0x6b7}, {0x6ba, 0x6be}, {0x6c0, 0x6ce},
+ {0x6d0, 0x6d3}, {0x6d5, 0x6d5}, {0x6e5, 0x6e6}, {0x905, 0x939},
+ {0x93d, 0x93d}, {0x958, 0x961}, {0x985, 0x98c}, {0x98f, 0x990},
+ {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9},
+ {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0xa05, 0xa0a},
+ {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33},
+ {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e},
+ {0xa72, 0xa74}, {0xa85, 0xa8b}, {0xa8d, 0xa8d}, {0xa8f, 0xa91},
+ {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9},
+ {0xabd, 0xabd}, {0xae0, 0xae0}, {0xb05, 0xb0c}, {0xb0f, 0xb10},
+ {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb36, 0xb39},
+ {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb85, 0xb8a},
+ {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c},
+ {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb5},
+ {0xbb7, 0xbb9}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28},
+ {0xc2a, 0xc33}, {0xc35, 0xc39}, {0xc60, 0xc61}, {0xc85, 0xc8c},
+ {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9},
+ {0xcde, 0xcde}, {0xce0, 0xce1}, {0xd05, 0xd0c}, {0xd0e, 0xd10},
+ {0xd12, 0xd28}, {0xd2a, 0xd39}, {0xd60, 0xd61}, {0xe01, 0xe2e},
+ {0xe30, 0xe30}, {0xe32, 0xe33}, {0xe40, 0xe45}, {0xe81, 0xe82},
+ {0xe84, 0xe84}, {0xe87, 0xe88}, {0xe8a, 0xe8a}, {0xe8d, 0xe8d},
+ {0xe94, 0xe97}, {0xe99, 0xe9f}, {0xea1, 0xea3}, {0xea5, 0xea5},
+ {0xea7, 0xea7}, {0xeaa, 0xeab}, {0xead, 0xeae}, {0xeb0, 0xeb0},
+ {0xeb2, 0xeb3}, {0xebd, 0xebd}, {0xec0, 0xec4}, {0xf40, 0xf47},
+ {0xf49, 0xf69}, {0x10a0, 0x10c5}, {0x10d0, 0x10f6}, {0x1100, 0x1100},
+ {0x1102, 0x1103}, {0x1105, 0x1107}, {0x1109, 0x1109}, {0x110b, 0x110c},
+ {0x110e, 0x1112}, {0x113c, 0x113c}, {0x113e, 0x113e}, {0x1140, 0x1140},
+ {0x114c, 0x114c}, {0x114e, 0x114e}, {0x1150, 0x1150}, {0x1154, 0x1155},
+ {0x1159, 0x1159}, {0x115f, 0x1161}, {0x1163, 0x1163}, {0x1165, 0x1165},
+ {0x1167, 0x1167}, {0x1169, 0x1169}, {0x116d, 0x116e}, {0x1172, 0x1173},
+ {0x1175, 0x1175}, {0x119e, 0x119e}, {0x11a8, 0x11a8}, {0x11ab, 0x11ab},
+ {0x11ae, 0x11af}, {0x11b7, 0x11b8}, {0x11ba, 0x11ba}, {0x11bc, 0x11c2},
+ {0x11eb, 0x11eb}, {0x11f0, 0x11f0}, {0x11f9, 0x11f9}, {0x1e00, 0x1e9b},
+ {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45},
+ {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b},
+ {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc},
+ {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3},
+ {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc},
+ {0x2126, 0x2126}, {0x212a, 0x212b}, {0x212e, 0x212e}, {0x2180, 0x2182},
+ {0x3041, 0x3094}, {0x30a1, 0x30fa}, {0x3105, 0x312c}, {0xac00, 0xd7a3}};
+const xmlChRangeGroup xmlIsBaseCharGroup =
+ {197, 0, xmlIsBaseChar_srng, (xmlChLRangePtr)0};
+
+static const xmlChSRange xmlIsChar_srng[] = { {0x100, 0xd7ff},
+ {0xe000, 0xfffd}};
+static const xmlChLRange xmlIsChar_lrng[] = { {0x10000, 0x10ffff}};
+const xmlChRangeGroup xmlIsCharGroup =
+ {2, 1, xmlIsChar_srng, xmlIsChar_lrng};
+
+static const xmlChSRange xmlIsCombining_srng[] = { {0x300, 0x345},
+ {0x360, 0x361}, {0x483, 0x486}, {0x591, 0x5a1}, {0x5a3, 0x5b9},
+ {0x5bb, 0x5bd}, {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c4},
+ {0x64b, 0x652}, {0x670, 0x670}, {0x6d6, 0x6dc}, {0x6dd, 0x6df},
+ {0x6e0, 0x6e4}, {0x6e7, 0x6e8}, {0x6ea, 0x6ed}, {0x901, 0x903},
+ {0x93c, 0x93c}, {0x93e, 0x94c}, {0x94d, 0x94d}, {0x951, 0x954},
+ {0x962, 0x963}, {0x981, 0x983}, {0x9bc, 0x9bc}, {0x9be, 0x9be},
+ {0x9bf, 0x9bf}, {0x9c0, 0x9c4}, {0x9c7, 0x9c8}, {0x9cb, 0x9cd},
+ {0x9d7, 0x9d7}, {0x9e2, 0x9e3}, {0xa02, 0xa02}, {0xa3c, 0xa3c},
+ {0xa3e, 0xa3e}, {0xa3f, 0xa3f}, {0xa40, 0xa42}, {0xa47, 0xa48},
+ {0xa4b, 0xa4d}, {0xa70, 0xa71}, {0xa81, 0xa83}, {0xabc, 0xabc},
+ {0xabe, 0xac5}, {0xac7, 0xac9}, {0xacb, 0xacd}, {0xb01, 0xb03},
+ {0xb3c, 0xb3c}, {0xb3e, 0xb43}, {0xb47, 0xb48}, {0xb4b, 0xb4d},
+ {0xb56, 0xb57}, {0xb82, 0xb83}, {0xbbe, 0xbc2}, {0xbc6, 0xbc8},
+ {0xbca, 0xbcd}, {0xbd7, 0xbd7}, {0xc01, 0xc03}, {0xc3e, 0xc44},
+ {0xc46, 0xc48}, {0xc4a, 0xc4d}, {0xc55, 0xc56}, {0xc82, 0xc83},
+ {0xcbe, 0xcc4}, {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6},
+ {0xd02, 0xd03}, {0xd3e, 0xd43}, {0xd46, 0xd48}, {0xd4a, 0xd4d},
+ {0xd57, 0xd57}, {0xe31, 0xe31}, {0xe34, 0xe3a}, {0xe47, 0xe4e},
+ {0xeb1, 0xeb1}, {0xeb4, 0xeb9}, {0xebb, 0xebc}, {0xec8, 0xecd},
+ {0xf18, 0xf19}, {0xf35, 0xf35}, {0xf37, 0xf37}, {0xf39, 0xf39},
+ {0xf3e, 0xf3e}, {0xf3f, 0xf3f}, {0xf71, 0xf84}, {0xf86, 0xf8b},
+ {0xf90, 0xf95}, {0xf97, 0xf97}, {0xf99, 0xfad}, {0xfb1, 0xfb7},
+ {0xfb9, 0xfb9}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1}, {0x302a, 0x302f},
+ {0x3099, 0x3099}, {0x309a, 0x309a}};
+const xmlChRangeGroup xmlIsCombiningGroup =
+ {95, 0, xmlIsCombining_srng, (xmlChLRangePtr)0};
+
+static const xmlChSRange xmlIsDigit_srng[] = { {0x660, 0x669},
+ {0x6f0, 0x6f9}, {0x966, 0x96f}, {0x9e6, 0x9ef}, {0xa66, 0xa6f},
+ {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe7, 0xbef}, {0xc66, 0xc6f},
+ {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9},
+ {0xf20, 0xf29}};
+const xmlChRangeGroup xmlIsDigitGroup =
+ {14, 0, xmlIsDigit_srng, (xmlChLRangePtr)0};
+
+static const xmlChSRange xmlIsExtender_srng[] = { {0x2d0, 0x2d0},
+ {0x2d1, 0x2d1}, {0x387, 0x387}, {0x640, 0x640}, {0xe46, 0xe46},
+ {0xec6, 0xec6}, {0x3005, 0x3005}, {0x3031, 0x3035}, {0x309d, 0x309e},
+ {0x30fc, 0x30fe}};
+const xmlChRangeGroup xmlIsExtenderGroup =
+ {10, 0, xmlIsExtender_srng, (xmlChLRangePtr)0};
+
+static const xmlChSRange xmlIsIdeographic_srng[] = { {0x3007, 0x3007},
+ {0x3021, 0x3029}, {0x4e00, 0x9fa5}};
+const xmlChRangeGroup xmlIsIdeographicGroup =
+ {3, 0, xmlIsIdeographic_srng, (xmlChLRangePtr)0};
+
+
+/**
+ * xmlCharInRange:
+ * @val: character to be validated
+ * @rptr: pointer to range to be used to validate
+ *
+ * Does a binary search of the range table to determine if char
+ * is valid
+ *
+ * Returns: true if character valid, false otherwise
+ */
+int
+xmlCharInRange (unsigned int val, const xmlChRangeGroup *rptr) {
+ int low, high, mid;
+ const xmlChSRange *sptr;
+ const xmlChLRange *lptr;
+
+ if (rptr == NULL) return(0);
+ if (val < 0x10000) { /* is val in 'short' or 'long' array? */
+ if (rptr->nbShortRange == 0)
+ return 0;
+ low = 0;
+ high = rptr->nbShortRange - 1;
+ sptr = rptr->shortRange;
+ while (low <= high) {
+ mid = (low + high) / 2;
+ if ((unsigned short) val < sptr[mid].low) {
+ high = mid - 1;
+ } else {
+ if ((unsigned short) val > sptr[mid].high) {
+ low = mid + 1;
+ } else {
+ return 1;
+ }
+ }
+ }
+ } else {
+ if (rptr->nbLongRange == 0) {
+ return 0;
+ }
+ low = 0;
+ high = rptr->nbLongRange - 1;
+ lptr = rptr->longRange;
+ while (low <= high) {
+ mid = (low + high) / 2;
+ if (val < lptr[mid].low) {
+ high = mid - 1;
+ } else {
+ if (val > lptr[mid].high) {
+ low = mid + 1;
+ } else {
+ return 1;
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+
+/**
+ * xmlIsBaseChar:
+ * @ch: character to validate
+ *
+ * This function is DEPRECATED.
+ * Use xmlIsBaseChar_ch or xmlIsBaseCharQ instead
+ *
+ * Returns true if argument valid, false otherwise
+ */
+int
+xmlIsBaseChar(unsigned int ch) {
+ return(xmlIsBaseCharQ(ch));
+}
+
+
+/**
+ * xmlIsBlank:
+ * @ch: character to validate
+ *
+ * This function is DEPRECATED.
+ * Use xmlIsBlank_ch or xmlIsBlankQ instead
+ *
+ * Returns true if argument valid, false otherwise
+ */
+int
+xmlIsBlank(unsigned int ch) {
+ return(xmlIsBlankQ(ch));
+}
+
+
+/**
+ * xmlIsChar:
+ * @ch: character to validate
+ *
+ * This function is DEPRECATED.
+ * Use xmlIsChar_ch or xmlIsCharQ instead
+ *
+ * Returns true if argument valid, false otherwise
+ */
+int
+xmlIsChar(unsigned int ch) {
+ return(xmlIsCharQ(ch));
+}
+
+
+/**
+ * xmlIsCombining:
+ * @ch: character to validate
+ *
+ * This function is DEPRECATED.
+ * Use xmlIsCombiningQ instead
+ *
+ * Returns true if argument valid, false otherwise
+ */
+int
+xmlIsCombining(unsigned int ch) {
+ return(xmlIsCombiningQ(ch));
+}
+
+
+/**
+ * xmlIsDigit:
+ * @ch: character to validate
+ *
+ * This function is DEPRECATED.
+ * Use xmlIsDigit_ch or xmlIsDigitQ instead
+ *
+ * Returns true if argument valid, false otherwise
+ */
+int
+xmlIsDigit(unsigned int ch) {
+ return(xmlIsDigitQ(ch));
+}
+
+
+/**
+ * xmlIsExtender:
+ * @ch: character to validate
+ *
+ * This function is DEPRECATED.
+ * Use xmlIsExtender_ch or xmlIsExtenderQ instead
+ *
+ * Returns true if argument valid, false otherwise
+ */
+int
+xmlIsExtender(unsigned int ch) {
+ return(xmlIsExtenderQ(ch));
+}
+
+
+/**
+ * xmlIsIdeographic:
+ * @ch: character to validate
+ *
+ * This function is DEPRECATED.
+ * Use xmlIsIdeographicQ instead
+ *
+ * Returns true if argument valid, false otherwise
+ */
+int
+xmlIsIdeographic(unsigned int ch) {
+ return(xmlIsIdeographicQ(ch));
+}
+
+
+/**
+ * xmlIsPubidChar:
+ * @ch: character to validate
+ *
+ * This function is DEPRECATED.
+ * Use xmlIsPubidChar_ch or xmlIsPubidCharQ instead
+ *
+ * Returns true if argument valid, false otherwise
+ */
+int
+xmlIsPubidChar(unsigned int ch) {
+ return(xmlIsPubidCharQ(ch));
+}
+
+#define bottom_chvalid
+#include "elfgcchack.h"
diff --git a/libxml2-2.9.10/compile b/libxml2-2.9.10/compile
new file mode 100755
index 0000000..99e5052
--- /dev/null
+++ b/libxml2-2.9.10/compile
@@ -0,0 +1,348 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2018-03-07.03; # UTC
+
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/libxml2-2.9.10/config.guess b/libxml2-2.9.10/config.guess
new file mode 100755
index 0000000..b33c9e8
--- /dev/null
+++ b/libxml2-2.9.10/config.guess
@@ -0,0 +1,1486 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright 1992-2018 Free Software Foundation, Inc.
+
+timestamp='2018-08-29'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
+#
+# You can get the latest version of this script from:
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+#
+# Please send patches to <config-patches@gnu.org>.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Options:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright 1992-2018 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15
+trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0
+
+set_cc_for_build() {
+ : "${TMPDIR=/tmp}"
+ # shellcheck disable=SC2039
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+ dummy=$tmp/dummy
+ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c"
+ for driver in cc gcc c89 c99 ; do
+ if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$driver"
+ break
+ fi
+ done
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+ esac
+}
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if test -f /.attbin/uname ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+case "$UNAME_SYSTEM" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ set_cc_for_build
+ cat <<-EOF > "$dummy.c"
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+ # If ldd exists, use it to detect musl libc.
+ if command -v ldd >/dev/null && \
+ ldd --version 2>&1 | grep -q ^musl
+ then
+ LIBC=musl
+ fi
+ ;;
+esac
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+ "/sbin/$sysctl" 2>/dev/null || \
+ "/usr/sbin/$sysctl" 2>/dev/null || \
+ echo unknown)`
+ case "$UNAME_MACHINE_ARCH" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ earmv*)
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine="${arch}${endian}"-unknown
+ ;;
+ *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently (or will in the future) and ABI.
+ case "$UNAME_MACHINE_ARCH" in
+ earm*)
+ os=netbsdelf
+ ;;
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # Determine ABI tags.
+ case "$UNAME_MACHINE_ARCH" in
+ earm*)
+ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "$UNAME_VERSION" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "$machine-${os}${release}${abi-}"
+ exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
+ exit ;;
+ *:LibertyBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+ echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
+ exit ;;
+ *:MidnightBSD:*:*)
+ echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
+ exit ;;
+ *:SolidBSD:*:*)
+ echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
+ exit ;;
+ *:MirBSD:*:*)
+ echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
+ exit ;;
+ *:Sortix:*:*)
+ echo "$UNAME_MACHINE"-unknown-sortix
+ exit ;;
+ *:Redox:*:*)
+ echo "$UNAME_MACHINE"-unknown-redox
+ exit ;;
+ mips:OSF1:*.*)
+ echo mips-dec-osf1
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE=alpha ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE=alpha ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE=alpha ;;
+ "EV5 (21164)")
+ UNAME_MACHINE=alphaev5 ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE=alphaev56 ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE=alphapca56 ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE=alphapca57 ;;
+ "EV6 (21264)")
+ UNAME_MACHINE=alphaev6 ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE=alphaev67 ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE=alphaev68 ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE=alphaev69 ;;
+ "EV7 (21364)")
+ UNAME_MACHINE=alphaev7 ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE=alphaev79 ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo "$UNAME_MACHINE"-unknown-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo "$UNAME_MACHINE"-unknown-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix"$UNAME_RELEASE"
+ exit ;;
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ s390x:SunOS:*:*)
+ echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+ exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux"$UNAME_RELEASE"
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+ case `isainfo -b` in
+ 32)
+ echo i386-pc-solaris2"$UNAME_REL"
+ ;;
+ 64)
+ echo x86_64-pc-solaris2"$UNAME_REL"
+ ;;
+ esac
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos"$UNAME_RELEASE"
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos"$UNAME_RELEASE"
+ ;;
+ sun4)
+ echo sparc-sun-sunos"$UNAME_RELEASE"
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos"$UNAME_RELEASE"
+ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint"$UNAME_RELEASE"
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint"$UNAME_RELEASE"
+ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint"$UNAME_RELEASE"
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint"$UNAME_RELEASE"
+ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint"$UNAME_RELEASE"
+ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint"$UNAME_RELEASE"
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten"$UNAME_RELEASE"
+ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten"$UNAME_RELEASE"
+ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix"$UNAME_RELEASE"
+ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix"$UNAME_RELEASE"
+ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix"$UNAME_RELEASE"
+ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+ dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos"$UNAME_RELEASE"
+ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
+ then
+ if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+ [ "$TARGET_BINARY_INTERFACE"x = x ]
+ then
+ echo m88k-dg-dgux"$UNAME_RELEASE"
+ else
+ echo m88k-dg-dguxbcs"$UNAME_RELEASE"
+ fi
+ else
+ echo i586-dg-dgux"$UNAME_RELEASE"
+ fi
+ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
+ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ fi
+ echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
+ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+ *:AIX:*:[4567])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/lslpp ] ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+ else
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ fi
+ echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
+ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
+ echo romp-ibm-bsd4.4
+ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
+ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ case "$UNAME_MACHINE" in
+ 9000/31?) HP_ARCH=m68000 ;;
+ 9000/[34]??) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "$sc_cpu_version" in
+ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "$sc_kernel_bits" in
+ 32) HP_ARCH=hppa2.0n ;;
+ 64) HP_ARCH=hppa2.0w ;;
+ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "$HP_ARCH" = "" ]; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ "$HP_ARCH" = hppa2.0w ]
+ then
+ set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+ HP_ARCH=hppa2.0w
+ else
+ HP_ARCH=hppa64
+ fi
+ fi
+ echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
+ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux"$HPUX_REV"
+ exit ;;
+ 3050*:HI-UX:*:*)
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
+ echo hppa1.1-hp-bsd
+ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
+ echo hppa1.1-hp-osf
+ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo "$UNAME_MACHINE"-unknown-osf1mk
+ else
+ echo "$UNAME_MACHINE"-unknown-osf1
+ fi
+ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
+ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi"$UNAME_RELEASE"
+ exit ;;
+ *:BSD/OS:*:*)
+ echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
+ exit ;;
+ arm:FreeBSD:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ set_cc_for_build
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+ else
+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+ fi
+ exit ;;
+ *:FreeBSD:*:*)
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case "$UNAME_PROCESSOR" in
+ amd64)
+ UNAME_PROCESSOR=x86_64 ;;
+ i386)
+ UNAME_PROCESSOR=i586 ;;
+ esac
+ echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
+ exit ;;
+ i*:CYGWIN*:*)
+ echo "$UNAME_MACHINE"-pc-cygwin
+ exit ;;
+ *:MINGW64*:*)
+ echo "$UNAME_MACHINE"-pc-mingw64
+ exit ;;
+ *:MINGW*:*)
+ echo "$UNAME_MACHINE"-pc-mingw32
+ exit ;;
+ *:MSYS*:*)
+ echo "$UNAME_MACHINE"-pc-msys
+ exit ;;
+ i*:PW*:*)
+ echo "$UNAME_MACHINE"-pc-pw32
+ exit ;;
+ *:Interix*:*)
+ case "$UNAME_MACHINE" in
+ x86)
+ echo i586-pc-interix"$UNAME_RELEASE"
+ exit ;;
+ authenticamd | genuineintel | EM64T)
+ echo x86_64-unknown-interix"$UNAME_RELEASE"
+ exit ;;
+ IA64)
+ echo ia64-unknown-interix"$UNAME_RELEASE"
+ exit ;;
+ esac ;;
+ i*:UWIN*:*)
+ echo "$UNAME_MACHINE"-pc-uwin
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
+ exit ;;
+ *:Minix:*:*)
+ echo "$UNAME_MACHINE"-unknown-minix
+ exit ;;
+ aarch64:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ arm*:Linux:*:*)
+ set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
+ else
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
+ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ cris:Linux:*:*)
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
+ exit ;;
+ crisv32:Linux:*:*)
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
+ exit ;;
+ e2k:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ frv:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ hexagon:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ i*86:Linux:*:*)
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+ exit ;;
+ ia64:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ k1om:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ m32r*:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ m68*:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+ #undef CPU
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+ test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
+ ;;
+ mips64el:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ openrisc*:Linux:*:*)
+ echo or1k-unknown-linux-"$LIBC"
+ exit ;;
+ or32:Linux:*:* | or1k*:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-"$LIBC"
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-"$LIBC"
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+ PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+ *) echo hppa-unknown-linux-"$LIBC" ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-"$LIBC"
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-"$LIBC"
+ exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-"$LIBC"
+ exit ;;
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-"$LIBC"
+ exit ;;
+ riscv32:Linux:*:* | riscv64:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
+ exit ;;
+ sh64*:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ sh*:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ tile*:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ vax:Linux:*:*)
+ echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
+ exit ;;
+ x86_64:Linux:*:*)
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
+ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo "$UNAME_MACHINE"-pc-os2-emx
+ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo "$UNAME_MACHINE"-unknown-stop
+ exit ;;
+ i*86:atheos:*:*)
+ echo "$UNAME_MACHINE"-unknown-atheos
+ exit ;;
+ i*86:syllable:*:*)
+ echo "$UNAME_MACHINE"-pc-syllable
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-unknown-lynxos"$UNAME_RELEASE"
+ exit ;;
+ i*86:*DOS:*:*)
+ echo "$UNAME_MACHINE"-pc-msdosdjgpp
+ exit ;;
+ i*86:*:4.*:*)
+ UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
+ else
+ echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
+ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
+ else
+ echo "$UNAME_MACHINE"-pc-sysv32
+ fi
+ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configure will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
+ fi
+ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos"$UNAME_RELEASE"
+ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos"$UNAME_RELEASE"
+ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos"$UNAME_RELEASE"
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-unknown-lynxos"$UNAME_RELEASE"
+ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv"$UNAME_RELEASE"
+ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo "$UNAME_MACHINE"-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo "$UNAME_MACHINE"-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux"$UNAME_RELEASE"
+ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv"$UNAME_RELEASE"
+ else
+ echo mips-unknown-sysv"$UNAME_RELEASE"
+ fi
+ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux"$UNAME_RELEASE"
+ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux"$UNAME_RELEASE"
+ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux"$UNAME_RELEASE"
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux"$UNAME_RELEASE"
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux"$UNAME_RELEASE"
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux"$UNAME_RELEASE"
+ exit ;;
+ SX-ACE:SUPER-UX:*:*)
+ echo sxace-nec-superux"$UNAME_RELEASE"
+ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody"$UNAME_RELEASE"
+ exit ;;
+ *:Rhapsody:*:*)
+ echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ set_cc_for_build
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
+ fi
+ if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
+ fi
+ fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
+ fi
+ echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = x86; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
+ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
+ NEO-*:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
+ NSR-*:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
+ NSV-*:NONSTOP_KERNEL:*:*)
+ echo nsv-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
+ NSX-*:NONSTOP_KERNEL:*:*)
+ echo nsx-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
+ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ # shellcheck disable=SC2154
+ if test "$cputype" = 386; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo "$UNAME_MACHINE"-unknown-plan9
+ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux"$UNAME_RELEASE"
+ exit ;;
+ *:DragonFly:*:*)
+ echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "$UNAME_MACHINE" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
+ exit ;;
+ i*86:rdos:*:*)
+ echo "$UNAME_MACHINE"-pc-rdos
+ exit ;;
+ i*86:AROS:*:*)
+ echo "$UNAME_MACHINE"-pc-aros
+ exit ;;
+ x86_64:VMkernel:*:*)
+ echo "$UNAME_MACHINE"-unknown-esx
+ exit ;;
+ amd64:Isilon\ OneFS:*:*)
+ echo x86_64-unknown-onefs
+ exit ;;
+esac
+
+echo "$0: unable to guess system type" >&2
+
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+ mips:Linux | mips64:Linux)
+ # If we got here on MIPS GNU/Linux, output extra information.
+ cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+ ;;
+esac
+
+cat >&2 <<EOF
+
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
+
+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+and
+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/libxml2-2.9.10/config.h.in b/libxml2-2.9.10/config.h.in
new file mode 100644
index 0000000..a751769
--- /dev/null
+++ b/libxml2-2.9.10/config.h.in
@@ -0,0 +1,284 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Type cast for the gethostbyname() argument */
+#undef GETHOSTBYNAME_ARG_CAST
+
+/* Define to 1 if you have the <arpa/inet.h> header file. */
+#undef HAVE_ARPA_INET_H
+
+/* Define to 1 if you have the <arpa/nameser.h> header file. */
+#undef HAVE_ARPA_NAMESER_H
+
+/* Whether struct sockaddr::__ss_family exists */
+#undef HAVE_BROKEN_SS_FAMILY
+
+/* Define to 1 if you have the <ctype.h> header file. */
+#undef HAVE_CTYPE_H
+
+/* Define to 1 if you have the <dirent.h> header file. */
+#undef HAVE_DIRENT_H
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Have dlopen based dso */
+#undef HAVE_DLOPEN
+
+/* Define to 1 if you have the <dl.h> header file. */
+#undef HAVE_DL_H
+
+/* Define to 1 if you have the <errno.h> header file. */
+#undef HAVE_ERRNO_H
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define to 1 if you have the <float.h> header file. */
+#undef HAVE_FLOAT_H
+
+/* Define to 1 if you have the `fprintf' function. */
+#undef HAVE_FPRINTF
+
+/* Define to 1 if you have the `ftime' function. */
+#undef HAVE_FTIME
+
+/* Define if getaddrinfo is there */
+#undef HAVE_GETADDRINFO
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `isascii' function. */
+#undef HAVE_ISASCII
+
+/* Define if isinf is there */
+#undef HAVE_ISINF
+
+/* Define if isnan is there */
+#undef HAVE_ISNAN
+
+/* Define if history library is there (-lhistory) */
+#undef HAVE_LIBHISTORY
+
+/* Define if pthread library is there (-lpthread) */
+#undef HAVE_LIBPTHREAD
+
+/* Define if readline library is there (-lreadline) */
+#undef HAVE_LIBREADLINE
+
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define to 1 if you have the `localtime' function. */
+#undef HAVE_LOCALTIME
+
+/* Define to 1 if you have the <lzma.h> header file. */
+#undef HAVE_LZMA_H
+
+/* Define to 1 if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
+
+/* Define to 1 if you have the <math.h> header file. */
+#undef HAVE_MATH_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `mmap' function. */
+#undef HAVE_MMAP
+
+/* Define to 1 if you have the `munmap' function. */
+#undef HAVE_MUNMAP
+
+/* mmap() is no good without munmap() */
+#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP)
+# undef /**/ HAVE_MMAP
+#endif
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if you have the <netdb.h> header file. */
+#undef HAVE_NETDB_H
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#undef HAVE_NETINET_IN_H
+
+/* Define to 1 if you have the <poll.h> header file. */
+#undef HAVE_POLL_H
+
+/* Define to 1 if you have the `printf' function. */
+#undef HAVE_PRINTF
+
+/* Define if <pthread.h> is there */
+#undef HAVE_PTHREAD_H
+
+/* Define to 1 if you have the `putenv' function. */
+#undef HAVE_PUTENV
+
+/* Define to 1 if you have the `rand' function. */
+#undef HAVE_RAND
+
+/* Define to 1 if you have the `rand_r' function. */
+#undef HAVE_RAND_R
+
+/* Define to 1 if you have the <resolv.h> header file. */
+#undef HAVE_RESOLV_H
+
+/* Have shl_load based dso */
+#undef HAVE_SHLLOAD
+
+/* Define to 1 if you have the `signal' function. */
+#undef HAVE_SIGNAL
+
+/* Define to 1 if you have the <signal.h> header file. */
+#undef HAVE_SIGNAL_H
+
+/* Define to 1 if you have the `snprintf' function. */
+#undef HAVE_SNPRINTF
+
+/* Define to 1 if you have the `sprintf' function. */
+#undef HAVE_SPRINTF
+
+/* Define to 1 if you have the `srand' function. */
+#undef HAVE_SRAND
+
+/* Define to 1 if you have the `sscanf' function. */
+#undef HAVE_SSCANF
+
+/* Define to 1 if you have the `stat' function. */
+#undef HAVE_STAT
+
+/* Define to 1 if you have the <stdarg.h> header file. */
+#undef HAVE_STDARG_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strftime' function. */
+#undef HAVE_STRFTIME
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#undef HAVE_SYS_MMAN_H
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_H
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#undef HAVE_SYS_SELECT_H
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#undef HAVE_SYS_SOCKET_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+#undef HAVE_SYS_TIMEB_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the `time' function. */
+#undef HAVE_TIME
+
+/* Define to 1 if you have the <time.h> header file. */
+#undef HAVE_TIME_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Whether va_copy() is available */
+#undef HAVE_VA_COPY
+
+/* Define to 1 if you have the `vfprintf' function. */
+#undef HAVE_VFPRINTF
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#undef HAVE_VSNPRINTF
+
+/* Define to 1 if you have the `vsprintf' function. */
+#undef HAVE_VSPRINTF
+
+/* Define to 1 if you have the <zlib.h> header file. */
+#undef HAVE_ZLIB_H
+
+/* Whether __va_copy() is available */
+#undef HAVE___VA_COPY
+
+/* Define as const if the declaration of iconv() needs const. */
+#undef ICONV_CONST
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#undef LT_OBJDIR
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Type cast for the send() function 2nd arg */
+#undef SEND_ARG2_CAST
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Support for IPv6 */
+#undef SUPPORT_IP6
+
+/* Define if va_list is an array type */
+#undef VA_LIST_IS_ARRAY
+
+/* Version number of package */
+#undef VERSION
+
+/* Determine what socket length (socklen_t) data type is */
+#undef XML_SOCKLEN_T
+
+/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
+ <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+ #define below would cause a syntax error. */
+#undef _UINT32_T
+
+/* ss_family is not defined here, use __ss_family instead */
+#undef ss_family
+
+/* Define to the type of an unsigned integer type of width exactly 32 bits if
+ such a type exists and the standard includes do not define it. */
+#undef uint32_t
diff --git a/libxml2-2.9.10/config.sub b/libxml2-2.9.10/config.sub
new file mode 100755
index 0000000..b51fb8c
--- /dev/null
+++ b/libxml2-2.9.10/config.sub
@@ -0,0 +1,1790 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright 1992-2018 Free Software Foundation, Inc.
+
+timestamp='2018-08-29'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
+
+# Please send patches to <config-patches@gnu.org>.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
+
+Canonicalize a configuration name.
+
+Options:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright 1992-2018 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo "$1"
+ exit ;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Split fields of configuration type
+IFS="-" read -r field1 field2 field3 field4 <<EOF
+$1
+EOF
+
+# Separate into logical components for further validation
+case $1 in
+ *-*-*-*-*)
+ echo Invalid configuration \`"$1"\': more than four components >&2
+ exit 1
+ ;;
+ *-*-*-*)
+ basic_machine=$field1-$field2
+ os=$field3-$field4
+ ;;
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+ | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+ | storm-chaos* | os2-emx* | rtmk-nova*)
+ basic_machine=$field1
+ os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+ os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+ os=$field3
+ ;;
+ esac
+ ;;
+ *-*)
+ # A lone config we happen to match not fitting any patern
+ case $field1-$field2 in
+ decstation-3100)
+ basic_machine=mips-dec
+ os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+ case $field2 in
+ # Prevent following clause from handling this valid os
+ sun*os*)
+ basic_machine=$field1
+ os=$field2
+ ;;
+ # Manufacturers
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+ | convergent* | ncr* | news | 32* | 3600* | 3100* \
+ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+ | ultra | tti* | harris | dolphin | highlevel | gould \
+ | cbm | ns | masscomp | apple | axis | knuth | cray \
+ | microblaze* | sim | cisco \
+ | oki | wec | wrs | winbond)
+ basic_machine=$field1-$field2
+ os=
+ ;;
+ *)
+ basic_machine=$field1
+ os=$field2
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ *)
+ # Convert single-component short-hands not valid as part of
+ # multi-component configurations.
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+ os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+ os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+ os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=bsd
+ ;;
+ cray)
+ basic_machine=j90-cray
+ os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+ os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=sysv3
+ ;;
+ hp300)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=hpux
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=mach
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ os=vsta
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+ os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+ os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=linux
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+ os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=vms
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=unicos
+ ;;
+ *)
+ basic_machine=$1
+ os=
+ ;;
+ esac
+ ;;
+esac
+
+# Decode 1-component or ad-hoc basic machines
+case $basic_machine in
+ # Here we handle the default manufacturer of certain CPU types. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ cpu=hppa1.1
+ vendor=winbond
+ ;;
+ op50n)
+ cpu=hppa1.1
+ vendor=oki
+ ;;
+ op60c)
+ cpu=hppa1.1
+ vendor=oki
+ ;;
+ ibm*)
+ cpu=i370
+ vendor=ibm
+ ;;
+ orion105)
+ cpu=clipper
+ vendor=highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ cpu=m68k
+ vendor=apple
+ ;;
+ pmac | pmac-mpw)
+ cpu=powerpc
+ vendor=apple
+ ;;
+
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ cpu=m68000
+ vendor=att
+ ;;
+ 3b*)
+ cpu=we32k
+ vendor=att
+ ;;
+ bluegene*)
+ cpu=powerpc
+ vendor=ibm
+ os=cnk
+ ;;
+ decsystem10* | dec10*)
+ cpu=pdp10
+ vendor=dec
+ os=tops10
+ ;;
+ decsystem20* | dec20*)
+ cpu=pdp10
+ vendor=dec
+ os=tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ cpu=m68k
+ vendor=motorola
+ ;;
+ dpx2*)
+ cpu=m68k
+ vendor=bull
+ os=sysv3
+ ;;
+ encore | umax | mmax)
+ cpu=ns32k
+ vendor=encore
+ ;;
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+ os=${os:-bsd}
+ ;;
+ fx2800)
+ cpu=i860
+ vendor=alliant
+ ;;
+ genix)
+ cpu=ns32k
+ vendor=ns
+ ;;
+ h3050r* | hiux*)
+ cpu=hppa1.1
+ vendor=hitachi
+ os=hiuxwe2
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ cpu=hppa1.0
+ vendor=hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ cpu=m68000
+ vendor=hp
+ ;;
+ hp9k3[2-9][0-9])
+ cpu=m68k
+ vendor=hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ cpu=hppa1.0
+ vendor=hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ cpu=hppa1.0
+ vendor=hp
+ ;;
+ i*86v32)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv32
+ ;;
+ i*86v4*)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv4
+ ;;
+ i*86v)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv
+ ;;
+ i*86sol2)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=solaris2
+ ;;
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+ os=${os:-unicos}
+ ;;
+ iris | iris4d)
+ cpu=mips
+ vendor=sgi
+ case $os in
+ irix*)
+ ;;
+ *)
+ os=irix4
+ ;;
+ esac
+ ;;
+ miniframe)
+ cpu=m68000
+ vendor=convergent
+ ;;
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+ os=mint
+ ;;
+ news-3600 | risc-news)
+ cpu=mips
+ vendor=sony
+ os=newsos
+ ;;
+ next | m*-next)
+ cpu=m68k
+ vendor=next
+ case $os in
+ nextstep* )
+ ;;
+ ns2*)
+ os=nextstep2
+ ;;
+ *)
+ os=nextstep3
+ ;;
+ esac
+ ;;
+ np1)
+ cpu=np1
+ vendor=gould
+ ;;
+ op50n-* | op60c-*)
+ cpu=hppa1.1
+ vendor=oki
+ os=proelf
+ ;;
+ pa-hitachi)
+ cpu=hppa1.1
+ vendor=hitachi
+ os=hiuxwe2
+ ;;
+ pbd)
+ cpu=sparc
+ vendor=tti
+ ;;
+ pbb)
+ cpu=m68k
+ vendor=tti
+ ;;
+ pc532)
+ cpu=ns32k
+ vendor=pc532
+ ;;
+ pn)
+ cpu=pn
+ vendor=gould
+ ;;
+ power)
+ cpu=power
+ vendor=ibm
+ ;;
+ ps2)
+ cpu=i386
+ vendor=ibm
+ ;;
+ rm[46]00)
+ cpu=mips
+ vendor=siemens
+ ;;
+ rtpc | rtpc-*)
+ cpu=romp
+ vendor=ibm
+ ;;
+ sde)
+ cpu=mipsisa32
+ vendor=sde
+ os=${os:-elf}
+ ;;
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+ os=vxworks
+ ;;
+ tower | tower-32)
+ cpu=m68k
+ vendor=ncr
+ ;;
+ vpp*|vx|vx-*)
+ cpu=f301
+ vendor=fujitsu
+ ;;
+ w65)
+ cpu=w65
+ vendor=wdc
+ ;;
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+ os=proelf
+ ;;
+ none)
+ cpu=none
+ vendor=none
+ ;;
+ leon|leon[3-9])
+ cpu=sparc
+ vendor=$basic_machine
+ ;;
+ leon-*|leon[3-9]-*)
+ cpu=sparc
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
+ ;;
+
+ *-*)
+ IFS="-" read -r cpu vendor <<EOF
+$basic_machine
+EOF
+ ;;
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ cpu=$basic_machine
+ vendor=pc
+ ;;
+ # These rules are duplicated from below for sake of the special case above;
+ # i.e. things that normalized to x86 arches should also default to "pc"
+ pc98)
+ cpu=i386
+ vendor=pc
+ ;;
+ x64 | amd64)
+ cpu=x86_64
+ vendor=pc
+ ;;
+ # Recognize the basic CPU types without company name.
+ *)
+ cpu=$basic_machine
+ vendor=unknown
+ ;;
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+ # Here we handle the default manufacturer of certain CPU types in cannonical form. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+ os=${os:-unicosmp}
+ ;;
+ c90-unknown | c90-cray)
+ vendor=cray
+ os=${os:-unicos}
+ ;;
+ fx80-unknown)
+ vendor=alliant
+ ;;
+ romp-unknown)
+ vendor=ibm
+ ;;
+ mmix-unknown)
+ vendor=knuth
+ ;;
+ microblaze-unknown | microblazeel-unknown)
+ vendor=xilinx
+ ;;
+ rs6000-unknown)
+ vendor=ibm
+ ;;
+ vax-unknown)
+ vendor=dec
+ ;;
+ pdp11-unknown)
+ vendor=dec
+ ;;
+ we32k-unknown)
+ vendor=att
+ ;;
+ cydra-unknown)
+ vendor=cydrome
+ ;;
+ i370-ibm*)
+ vendor=ibm
+ ;;
+ orion-unknown)
+ vendor=highlevel
+ ;;
+ xps-unknown | xps100-unknown)
+ cpu=xps100
+ vendor=honeywell
+ ;;
+
+ # Here we normalize CPU types with a missing or matching vendor
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+ os=${os:-bosx}
+ ;;
+
+ # Here we normalize CPU types irrespective of the vendor
+ amd64-*)
+ cpu=x86_64
+ ;;
+ blackfin-*)
+ cpu=bfin
+ os=linux
+ ;;
+ c54x-*)
+ cpu=tic54x
+ ;;
+ c55x-*)
+ cpu=tic55x
+ ;;
+ c6x-*)
+ cpu=tic6x
+ ;;
+ e500v[12]-*)
+ cpu=powerpc
+ os=$os"spe"
+ ;;
+ mips3*-*)
+ cpu=mips64
+ ;;
+ ms1-*)
+ cpu=mt
+ ;;
+ m68knommu-*)
+ cpu=m68k
+ os=linux
+ ;;
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
+ ;;
+ openrisc-*)
+ cpu=or32
+ ;;
+ parisc-*)
+ cpu=hppa
+ os=linux
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+ cpu=i686
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ cpu=i686
+ ;;
+ pentium4-*)
+ cpu=i786
+ ;;
+ pc98-*)
+ cpu=i386
+ ;;
+ ppc-* | ppcbe-*)
+ cpu=powerpc
+ ;;
+ ppcle-* | powerpclittle-*)
+ cpu=powerpcle
+ ;;
+ ppc64-*)
+ cpu=powerpc64
+ ;;
+ ppc64le-* | powerpc64little-*)
+ cpu=powerpc64le
+ ;;
+ sb1-*)
+ cpu=mipsisa64sb1
+ ;;
+ sb1el-*)
+ cpu=mipsisa64sb1el
+ ;;
+ sh5e[lb]-*)
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+ ;;
+ spur-*)
+ cpu=spur
+ ;;
+ strongarm-* | thumb-*)
+ cpu=arm
+ ;;
+ tx39-*)
+ cpu=mipstx39
+ ;;
+ tx39el-*)
+ cpu=mipstx39el
+ ;;
+ x64-*)
+ cpu=x86_64
+ ;;
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ ;;
+
+ # Recognize the cannonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+ os=${os:-elf}
+ ;;
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+ vendor=axis
+ ;;
+ cris-* | etrax*-*)
+ cpu=cris
+ vendor=axis
+ ;;
+ crx-*)
+ os=${os:-elf}
+ ;;
+ neo-tandem)
+ cpu=neo
+ vendor=tandem
+ ;;
+ nse-tandem)
+ cpu=nse
+ vendor=tandem
+ ;;
+ nsr-tandem)
+ cpu=nsr
+ vendor=tandem
+ ;;
+ nsv-tandem)
+ cpu=nsv
+ vendor=tandem
+ ;;
+ nsx-tandem)
+ cpu=nsx
+ vendor=tandem
+ ;;
+ s390-*)
+ cpu=s390
+ vendor=ibm
+ ;;
+ s390x-*)
+ cpu=s390x
+ vendor=ibm
+ ;;
+ tile*-*)
+ os=${os:-linux-gnu}
+ ;;
+
+ *)
+ # Recognize the cannonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | abacus \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arceb \
+ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+ | be32 | be64 \
+ | bfin | bs2000 \
+ | c[123]* | c30 | [cjt]90 | c4x \
+ | c8051 | clipper | craynv | csky | cydra \
+ | d10v | d30v | dlx | dsp16xx \
+ | e2k | elxsi | epiphany \
+ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | h8300 | h8500 \
+ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
+ | microblaze | microblazeel \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mmix \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nfp \
+ | nios | nios2 | nios2eb | nios2el \
+ | none | np1 | ns16k | ns32k \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
+ | pdp10 | pdp11 | pj | pjl | pn | power \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+ | riscv | riscv32 | riscv64 \
+ | rl78 | romp | rs6000 | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+ | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | vax \
+ | visium \
+ | wasm32 \
+ | we32k \
+ | x86 | x86_64 | xc16x | xgate | xps100 \
+ | xstormy16 | xtensa* \
+ | ymp \
+ | z8k | z80)
+ ;;
+
+ *)
+ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+ exit 1
+ ;;
+ esac
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $vendor in
+ digital*)
+ vendor=dec
+ ;;
+ commodore*)
+ vendor=cbm
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x$os != x ]
+then
+case $os in
+ # First match some system type aliases that might get confused
+ # with valid system types.
+ # solaris* is a basic system type, with this one exception.
+ auroraux)
+ os=auroraux
+ ;;
+ bluegene*)
+ os=cnk
+ ;;
+ solaris1 | solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ solaris)
+ os=solaris2
+ ;;
+ unixware*)
+ os=sysv4.2uw
+ ;;
+ gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
+ ;;
+ # Some version numbers need modification
+ chorusos*)
+ os=chorusos
+ ;;
+ isc)
+ os=isc2.2
+ ;;
+ sco6)
+ os=sco5v6
+ ;;
+ sco5)
+ os=sco3.2v5
+ ;;
+ sco4)
+ os=sco3.2v4
+ ;;
+ sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+ sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ scout)
+ # Don't match below
+ ;;
+ sco*)
+ os=sco3.2v2
+ ;;
+ psos*)
+ os=psos
+ ;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ # sysv* is not here because it comes later, after sysvr4.
+ gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | kopensolaris* | plan9* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | knetbsd* | mirbsd* | netbsd* \
+ | bitrig* | openbsd* | solidbsd* | libertybsd* \
+ | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+ | linux-newlib* | linux-musl* | linux-uclibc* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* \
+ | morphos* | superux* | rtmk* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ qnx*)
+ case $cpu in
+ x86 | i*86)
+ ;;
+ *)
+ os=nto-$os
+ ;;
+ esac
+ ;;
+ hiux*)
+ os=hiuxwe2
+ ;;
+ nto-qnx*)
+ ;;
+ nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ sim | xray | os68k* | v88r* \
+ | windows* | osx | abug | netware* | os9* \
+ | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
+ ;;
+ linux-dietlibc)
+ os=linux-dietlibc
+ ;;
+ linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ lynx*178)
+ os=lynxos178
+ ;;
+ lynx*5)
+ os=lynxos5
+ ;;
+ lynx*)
+ os=lynxos
+ ;;
+ mac*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
+ ;;
+ opened*)
+ os=openedition
+ ;;
+ os400*)
+ os=os400
+ ;;
+ sunos5*)
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+ ;;
+ sunos6*)
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+ ;;
+ wince*)
+ os=wince
+ ;;
+ utek*)
+ os=bsd
+ ;;
+ dynix*)
+ os=bsd
+ ;;
+ acis*)
+ os=aos
+ ;;
+ atheos*)
+ os=atheos
+ ;;
+ syllable*)
+ os=syllable
+ ;;
+ 386bsd)
+ os=bsd
+ ;;
+ ctix* | uts*)
+ os=sysv
+ ;;
+ nova*)
+ os=rtmk-nova
+ ;;
+ ns2)
+ os=nextstep2
+ ;;
+ nsk*)
+ os=nsk
+ ;;
+ # Preserve the version number of sinix5.
+ sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ sinix*)
+ os=sysv4
+ ;;
+ tpf*)
+ os=tpf
+ ;;
+ triton*)
+ os=sysv3
+ ;;
+ oss*)
+ os=sysv3
+ ;;
+ svr4*)
+ os=sysv4
+ ;;
+ svr3)
+ os=sysv3
+ ;;
+ sysvr4)
+ os=sysv4
+ ;;
+ # This must come after sysvr4.
+ sysv*)
+ ;;
+ ose*)
+ os=ose
+ ;;
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
+ ;;
+ zvmoe)
+ os=zvmoe
+ ;;
+ dicos*)
+ os=dicos
+ ;;
+ pikeos*)
+ # Until real need of OS specific support for
+ # particular features comes up, bare metal
+ # configurations are quite functional.
+ case $cpu in
+ arm*)
+ os=eabi
+ ;;
+ *)
+ os=elf
+ ;;
+ esac
+ ;;
+ nacl*)
+ ;;
+ ios)
+ ;;
+ none)
+ ;;
+ *-eabi)
+ ;;
+ *)
+ echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $cpu-$vendor in
+ score-*)
+ os=elf
+ ;;
+ spu-*)
+ os=elf
+ ;;
+ *-acorn)
+ os=riscix1.2
+ ;;
+ arm*-rebel)
+ os=linux
+ ;;
+ arm*-semi)
+ os=aout
+ ;;
+ c4x-* | tic4x-*)
+ os=coff
+ ;;
+ c8051-*)
+ os=elf
+ ;;
+ clipper-intergraph)
+ os=clix
+ ;;
+ hexagon-*)
+ os=elf
+ ;;
+ tic54x-*)
+ os=coff
+ ;;
+ tic55x-*)
+ os=coff
+ ;;
+ tic6x-*)
+ os=coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=tops20
+ ;;
+ pdp11-*)
+ os=none
+ ;;
+ *-dec | vax-*)
+ os=ultrix4.2
+ ;;
+ m68*-apollo)
+ os=domain
+ ;;
+ i386-sun)
+ os=sunos4.0.2
+ ;;
+ m68000-sun)
+ os=sunos3
+ ;;
+ m68*-cisco)
+ os=aout
+ ;;
+ mep-*)
+ os=elf
+ ;;
+ mips*-cisco)
+ os=elf
+ ;;
+ mips*-*)
+ os=elf
+ ;;
+ or32-*)
+ os=coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=sysv3
+ ;;
+ sparc-* | *-sun)
+ os=sunos4.1.1
+ ;;
+ pru-*)
+ os=elf
+ ;;
+ *-be)
+ os=beos
+ ;;
+ *-ibm)
+ os=aix
+ ;;
+ *-knuth)
+ os=mmixware
+ ;;
+ *-wec)
+ os=proelf
+ ;;
+ *-winbond)
+ os=proelf
+ ;;
+ *-oki)
+ os=proelf
+ ;;
+ *-hp)
+ os=hpux
+ ;;
+ *-hitachi)
+ os=hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=sysv
+ ;;
+ *-cbm)
+ os=amigaos
+ ;;
+ *-dg)
+ os=dgux
+ ;;
+ *-dolphin)
+ os=sysv3
+ ;;
+ m68k-ccur)
+ os=rtu
+ ;;
+ m88k-omron*)
+ os=luna
+ ;;
+ *-next)
+ os=nextstep
+ ;;
+ *-sequent)
+ os=ptx
+ ;;
+ *-crds)
+ os=unos
+ ;;
+ *-ns)
+ os=genix
+ ;;
+ i370-*)
+ os=mvs
+ ;;
+ *-gould)
+ os=sysv
+ ;;
+ *-highlevel)
+ os=bsd
+ ;;
+ *-encore)
+ os=bsd
+ ;;
+ *-sgi)
+ os=irix
+ ;;
+ *-siemens)
+ os=sysv4
+ ;;
+ *-masscomp)
+ os=rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=uxpv
+ ;;
+ *-rom68k)
+ os=coff
+ ;;
+ *-*bug)
+ os=coff
+ ;;
+ *-apple)
+ os=macos
+ ;;
+ *-atari*)
+ os=mint
+ ;;
+ *-wrs)
+ os=vxworks
+ ;;
+ *)
+ os=none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+case $vendor in
+ unknown)
+ case $os in
+ riscix*)
+ vendor=acorn
+ ;;
+ sunos*)
+ vendor=sun
+ ;;
+ cnk*|-aix*)
+ vendor=ibm
+ ;;
+ beos*)
+ vendor=be
+ ;;
+ hpux*)
+ vendor=hp
+ ;;
+ mpeix*)
+ vendor=hp
+ ;;
+ hiux*)
+ vendor=hitachi
+ ;;
+ unos*)
+ vendor=crds
+ ;;
+ dgux*)
+ vendor=dg
+ ;;
+ luna*)
+ vendor=omron
+ ;;
+ genix*)
+ vendor=ns
+ ;;
+ clix*)
+ vendor=intergraph
+ ;;
+ mvs* | opened*)
+ vendor=ibm
+ ;;
+ os400*)
+ vendor=ibm
+ ;;
+ ptx*)
+ vendor=sequent
+ ;;
+ tpf*)
+ vendor=ibm
+ ;;
+ vxsim* | vxworks* | windiss*)
+ vendor=wrs
+ ;;
+ aux*)
+ vendor=apple
+ ;;
+ hms*)
+ vendor=hitachi
+ ;;
+ mpw* | macos*)
+ vendor=apple
+ ;;
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ vendor=atari
+ ;;
+ vos*)
+ vendor=stratus
+ ;;
+ esac
+ ;;
+esac
+
+echo "$cpu-$vendor-$os"
+exit
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/libxml2-2.9.10/configure b/libxml2-2.9.10/configure
new file mode 100755
index 0000000..8380389
--- /dev/null
+++ b/libxml2-2.9.10/configure
@@ -0,0 +1,18811 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+PACKAGE_URL=
+
+ac_unique_file="entities.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+PYTHON_TESTS
+RELDATE
+RDL_LIBS
+M_LIBS
+PYTHON_SITE_PACKAGES
+PYTHON_INCLUDES
+PYTHON_VERSION
+HAVE_ISINF
+HAVE_ISNAN
+XML_INCLUDEDIR
+ICONV_LIBS
+XML_LIBTOOLLIBS
+XML_PRIVATE_LIBS
+XML_LIBS
+XML_LIBDIR
+XML_CFLAGS
+EXTRA_CFLAGS
+CYGWIN_EXTRA_PYTHON_LIBADD
+CYGWIN_EXTRA_LDFLAGS
+WIN32_EXTRA_PYTHON_LIBADD
+WIN32_EXTRA_LDFLAGS
+WIN32_EXTRA_LIBADD
+WITH_RUN_DEBUG
+WITH_MEM_DEBUG
+TEST_DEBUG
+DEBUG_OBJ
+WITH_DEBUG
+TEST_REGEXPS
+WITH_REGEXPS
+TEST_SCHEMAS
+WITH_SCHEMAS
+WITH_ISO8859X
+WITH_ICU
+ICU_LIBS
+ICU_CFLAGS
+WITH_ICONV
+WITH_OUTPUT
+TEST_XPATH
+XPATH_OBJ
+WITH_XPATH
+TEST_SCHEMATRON
+WITH_SCHEMATRON
+TEST_XINCLUDE
+XINCLUDE_OBJ
+WITH_XINCLUDE
+TEST_C14N
+C14N_OBJ
+WITH_C14N
+TEST_XPTR
+XPTR_OBJ
+WITH_XPTR
+DOCB_OBJ
+WITH_DOCB
+TEST_CATALOG
+CATALOG_OBJ
+WITH_CATALOG
+TEST_VTIME
+TEST_VALID
+WITH_VALID
+TEST_PHTML
+TEST_HTML
+HTML_OBJ
+WITH_HTML
+TEST_PUSH
+WITH_PUSH
+TEST_SAX
+WITH_SAX1_SOURCES_FALSE
+WITH_SAX1_SOURCES_TRUE
+WITH_SAX1
+TEST_PATTERN
+WITH_PATTERN
+WITH_WRITER
+READER_TEST
+WITH_READER
+WITH_LEGACY
+HTTP_OBJ
+WITH_HTTP
+FTP_OBJ
+WITH_FTP
+WITH_TREE
+THREADS_W32_FALSE
+THREADS_W32_TRUE
+WITH_THREAD_ALLOC
+TEST_THREADS
+THREAD_CFLAGS
+WITH_THREADS
+BASE_THREAD_LIBS
+THREAD_LIBS
+WITH_TRIO
+WITH_TRIO_SOURCES_FALSE
+WITH_TRIO_SOURCES_TRUE
+STATIC_BINARIES
+TEST_MODULES
+MODULE_EXTENSION
+MODULE_PLATFORM_LIBS
+WITH_MODULES
+PYTHON_LIBS
+PYTHON_SUBDIR
+pythondir
+WITH_PYTHON_FALSE
+WITH_PYTHON_TRUE
+PYTHON
+WITH_LZMA
+LZMA_LIBS
+LZMA_CFLAGS
+WITH_ZLIB
+Z_LIBS
+Z_CFLAGS
+REBUILD_DOCS_FALSE
+REBUILD_DOCS_TRUE
+HTML_DIR
+USE_VERSION_SCRIPT_FALSE
+USE_VERSION_SCRIPT_TRUE
+VERSION_SCRIPT_FLAGS
+LT_SYS_LIBRARY_PATH
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+MANIFEST_TOOL
+RANLIB
+ac_ct_AR
+AR
+DLLTOOL
+OBJDUMP
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+LIBTOOL
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
+XSLTPROC
+XMLLINT
+WGET
+PERL
+TAR
+MV
+CPP
+LN_S
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+LIBXML_VERSION_EXTRA
+LIBXML_VERSION_NUMBER
+LIBXML_VERSION_INFO
+LIBXML_VERSION
+LIBXML_MICRO_VERSION
+LIBXML_MINOR_VERSION
+LIBXML_MAJOR_VERSION
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+runstatedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL
+am__quote'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_maintainer_mode
+enable_silent_rules
+enable_dependency_tracking
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_aix_soname
+with_gnu_ld
+with_sysroot
+enable_libtool_lock
+with_c14n
+with_catalog
+with_debug
+with_docbook
+with_fexceptions
+with_ftp
+with_history
+with_html
+with_html_dir
+with_html_subdir
+with_http
+with_iconv
+with_icu
+with_iso8859x
+with_legacy
+with_mem_debug
+with_minimum
+with_output
+with_pattern
+with_push
+with_python
+with_python_install_dir
+with_reader
+with_readline
+with_regexps
+with_run_debug
+with_sax1
+with_schemas
+with_schematron
+with_threads
+with_thread_alloc
+with_tree
+with_valid
+with_writer
+with_xinclude
+with_xpath
+with_xptr
+with_modules
+with_zlib
+with_lzma
+with_coverage
+enable_rebuild_docs
+enable_ipv6
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
+LT_SYS_LIBRARY_PATH
+Z_CFLAGS
+Z_LIBS
+LZMA_CFLAGS
+LZMA_LIBS
+ICU_CFLAGS
+ICU_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir runstatedir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-maintainer-mode
+ disable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --enable-shared[=PKGS] build shared libraries [default=yes]
+ --enable-static[=PKGS] build static libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --enable-rebuild-docs[=yes/no] rebuild some generated docs [default=no]
+ --enable-ipv6[=yes/no] enables compilation of IPv6 code [default=yes]
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-aix-soname=aix|svr4|both
+ shared library versioning (aka "SONAME") variant to
+ provide on AIX, [default=aix].
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the
+ compiler's sysroot if not specified).
+ --with-c14n add the Canonicalization support (on)
+ --with-catalog add the Catalog support (on)
+ --with-debug add the debugging module (on)
+ --with-docbook add Docbook SGML support (on)
+ --with-fexceptions add GCC flag -fexceptions for C++ exceptions (off)
+ --with-ftp add the FTP support (on)
+ --with-history add history support to xmllint shell(off)
+ --with-html add the HTML support (on)
+ --with-html-dir=path path to base html directory, default
+ $datadir/doc/html
+ --with-html-subdir=path directory used under html-dir, default
+ $PACKAGE-$VERSION/html
+ --with-http add the HTTP support (on)
+ --with-iconv[=DIR] add ICONV support (on)
+ --with-icu add ICU support (off)
+ --with-iso8859x add ISO8859X support if no iconv (on)
+ --with-legacy add deprecated APIs for compatibility (on)
+ --with-mem-debug add the memory debugging module (off)
+ --with-minimum build a minimally sized library (off)
+ --with-output add the serialization support (on)
+ --with-pattern add the xmlPattern selection interface (on)
+ --with-push add the PUSH parser interfaces (on)
+ --with-python[=DIR] build Python bindings if found
+ --with-python-install-dir=DIR
+ install Python bindings in DIR
+ --with-reader add the xmlReader parsing interface (on)
+ --with-readline=DIR use readline in DIR
+ --with-regexps add Regular Expressions support (on)
+ --with-run-debug add the runtime debugging module (off)
+ --with-sax1 add the older SAX1 interface (on)
+ --with-schemas add Relax-NG and Schemas support (on)
+ --with-schematron add Schematron support (on)
+ --with-threads add multithread support(on)
+ --with-thread-alloc add per-thread memory(off)
+ --with-tree add the DOM like tree manipulation APIs (on)
+ --with-valid add the DTD validation support (on)
+ --with-writer add the xmlWriter saving interface (on)
+ --with-xinclude add the XInclude support (on)
+ --with-xpath add the XPATH support (on)
+ --with-xptr add the XPointer support (on)
+ --with-modules add the dynamic modules support (on)
+ --with-zlib[=DIR] use libz in DIR
+ --with-lzma[=DIR] use liblzma in DIR
+ --with-coverage build for code coverage with GCC (off)
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+ PKG_CONFIG path to pkg-config utility
+ PKG_CONFIG_PATH
+ directories to add to pkg-config's search path
+ PKG_CONFIG_LIBDIR
+ path overriding pkg-config's built-in search path
+ LT_SYS_LIBRARY_PATH
+ User-defined run-time library search path.
+ Z_CFLAGS C compiler flags for Z, overriding pkg-config
+ Z_LIBS linker flags for Z, overriding pkg-config
+ LZMA_CFLAGS C compiler flags for LZMA, overriding pkg-config
+ LZMA_LIBS linker flags for LZMA, overriding pkg-config
+ ICU_CFLAGS C compiler flags for ICU, overriding pkg-config
+ ICU_LIBS linker flags for ICU, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_find_uintX_t LINENO BITS VAR
+# ------------------------------------
+# Finds an unsigned integer type with width BITS, setting cache variable VAR
+# accordingly.
+ac_fn_c_find_uintX_t ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
+$as_echo_n "checking for uint$2_t... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ # Order is important - never check a type that is potentially smaller
+ # than half of the expected target width.
+ for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ case $ac_type in #(
+ uint$2_t) :
+ eval "$3=yes" ;; #(
+ *) :
+ eval "$3=\$ac_type" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if eval test \"x\$"$3"\" = x"no"; then :
+
+else
+ break
+fi
+ done
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_find_uintX_t
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=yes
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+
+LIBXML_MAJOR_VERSION=2
+LIBXML_MINOR_VERSION=9
+LIBXML_MICRO_VERSION=10
+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_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION`
+
+if test -f CVS/Entries ; then
+ extra=`grep ChangeLog CVS/Entries | grep -v LIBXML | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-CVS$extra"
+ fi
+else if test -d .svn ; then
+ extra=`svn info | grep Revision | sed 's+Revision: ++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-SVN$extra"
+ fi
+else if test -d .git ; then
+ extra=`git describe 2>/dev/null | sed 's+LIBXML[0-9.]*-++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-GIT$extra"
+ fi
+fi
+fi
+fi
+
+
+
+
+
+
+
+
+VERSION=${LIBXML_VERSION}
+
+am__api_version='1.16'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+
+ PACKAGE=libxml2
+ VERSION=$VERSION
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
+
+# Support silent build rules, requires at least automake-1.11. Disable
+# by either passing --disable-silent-rules to configure or passing V=1
+# to make
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=0;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ case $?:`cat confinc.out 2>/dev/null` in #(
+ '0:this is the am__doit target') :
+ case $s in #(
+ BSD) :
+ am__include='.include' am__quote='"' ;; #(
+ *) :
+ am__include='include' am__quote='' ;;
+esac ;; #(
+ *) :
+ ;;
+esac
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+$as_echo "${_am_result}" >&6; }
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+# Extract the first word of "mv", so it can be a program name with args.
+set dummy mv; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MV+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MV in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MV="$MV" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_MV" && ac_cv_path_MV="/bin/mv"
+ ;;
+esac
+fi
+MV=$ac_cv_path_MV
+if test -n "$MV"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
+$as_echo "$MV" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "tar", so it can be a program name with args.
+set dummy tar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAR="$TAR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_TAR" && ac_cv_path_TAR="/bin/tar"
+ ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+if test -n "$TAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5
+$as_echo "$TAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PERL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="/usr/bin/perl"
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "wget", so it can be a program name with args.
+set dummy wget; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_WGET+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $WGET in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WGET="$WGET" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_WGET="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_WGET" && ac_cv_path_WGET="/usr/bin/wget"
+ ;;
+esac
+fi
+WGET=$ac_cv_path_WGET
+if test -n "$WGET"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WGET" >&5
+$as_echo "$WGET" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "xmllint", so it can be a program name with args.
+set dummy xmllint; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XMLLINT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XMLLINT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_XMLLINT" && ac_cv_path_XMLLINT="/usr/bin/xmllint"
+ ;;
+esac
+fi
+XMLLINT=$ac_cv_path_XMLLINT
+if test -n "$XMLLINT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
+$as_echo "$XMLLINT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "xsltproc", so it can be a program name with args.
+set dummy xsltproc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XSLTPROC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XSLTPROC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_XSLTPROC" && ac_cv_path_XSLTPROC="/usr/bin/xsltproc"
+ ;;
+esac
+fi
+XSLTPROC=$ac_cv_path_XSLTPROC
+if test -n "$XSLTPROC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+fi
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.4.6'
+macro_revision='2.4.6'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+
+case $ECHO in
+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi
+fi
+
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AR" && break
+ done
+fi
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+fi
+
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ar_at_file=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+ withval=$with_sysroot;
+else
+ with_sysroot=no
+fi
+
+
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+ ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+ ac_path_lt_DD_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in dd; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+ $ac_path_lt_DD_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_lt_DD"; then
+ :
+ fi
+else
+ ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ emul=elf
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$MANIFEST_TOOL"; then
+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+ # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_MANIFEST_TOOL" = x; then
+ MANIFEST_TOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+ fi
+else
+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&5
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&5
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ echo "$RANLIB libconftest.a" >&5
+ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&5
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[012][,.]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+# Set options
+
+
+
+ enable_dlopen=no
+
+
+ enable_win32_dll=no
+
+
+ # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ # Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ pic_mode=default
+fi
+
+
+
+
+
+
+
+
+ # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+ shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+# Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+ withval=$with_aix_soname; case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname
+else
+ if ${lt_cv_with_aix_soname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_with_aix_soname=aix
+fi
+
+ with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/${ac_tool_prefix}file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC=$CC
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+
+ if test yes = "$GCC"; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ if test -n "$lt_prog_compiler_pic"; then
+ lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Intel*\ [CF]*Compiler*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ *Portland\ Group*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_static_works"; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test no = "$hard_links"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ export_dynamic_flag_spec='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='$wl--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ export_dynamic_flag_spec='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test no = "$ld_shlibs"; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ export_dynamic_flag_spec='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' $wl-bernotok'
+ allow_undefined_flag=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ file_list_spec='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+ enable_shared_with_static_runtimes=yes
+ exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ old_postinstall_cmds='chmod 644 $oldlib'
+ postlink_cmds='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ enable_shared_with_static_runtimes=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test yes = "$lt_cv_prog_compiler__b"; then
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_irix_exported_symbol=yes
+else
+ lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ ld_shlibs=yes
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ else
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='$wl-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='$wl-z,text'
+ allow_undefined_flag='$wl-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test no = "$ld_shlibs" && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a(lib.so.V)'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[23].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Add ABI-specific directories to the system library path.
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test yes = "$hardcode_automatic"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$hardcode_direct" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+ test no != "$hardcode_minus_L"; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test relink = "$hardcode_action" ||
+ test yes = "$inherit_rpath"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+ lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report what library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+VERSION_SCRIPT_FLAGS=
+# lt_cv_prog_gnu_ld is from libtool 2.+
+if test "$lt_cv_prog_gnu_ld" = yes; then
+ VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+else
+ case $host in
+ *-*-sunos*) VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,";;
+ esac
+fi
+
+ if test -n "$VERSION_SCRIPT_FLAGS"; then
+ USE_VERSION_SCRIPT_TRUE=
+ USE_VERSION_SCRIPT_FALSE='#'
+else
+ USE_VERSION_SCRIPT_TRUE='#'
+ USE_VERSION_SCRIPT_FALSE=
+fi
+
+
+
+_cppflags="${CPPFLAGS}"
+_libs="${LIBS}"
+
+
+# Check whether --with-c14n was given.
+if test "${with_c14n+set}" = set; then :
+ withval=$with_c14n;
+fi
+
+
+# Check whether --with-catalog was given.
+if test "${with_catalog+set}" = set; then :
+ withval=$with_catalog;
+fi
+
+
+# Check whether --with-debug was given.
+if test "${with_debug+set}" = set; then :
+ withval=$with_debug;
+fi
+
+
+# Check whether --with-docbook was given.
+if test "${with_docbook+set}" = set; then :
+ withval=$with_docbook;
+fi
+
+
+# Check whether --with-fexceptions was given.
+if test "${with_fexceptions+set}" = set; then :
+ withval=$with_fexceptions;
+fi
+
+
+# Check whether --with-ftp was given.
+if test "${with_ftp+set}" = set; then :
+ withval=$with_ftp;
+fi
+
+
+# Check whether --with-history was given.
+if test "${with_history+set}" = set; then :
+ withval=$with_history;
+fi
+
+
+# Check whether --with-html was given.
+if test "${with_html+set}" = set; then :
+ withval=$with_html;
+fi
+
+
+# Check whether --with-html-dir was given.
+if test "${with_html_dir+set}" = set; then :
+ withval=$with_html_dir; HTML_DIR=$withval
+else
+ HTML_DIR='$(datadir)/doc'
+fi
+
+
+
+# Check whether --with-html-subdir was given.
+if test "${with_html_subdir+set}" = set; then :
+ withval=$with_html_subdir; test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"
+else
+ HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"
+fi
+
+
+
+# Check whether --with-http was given.
+if test "${with_http+set}" = set; then :
+ withval=$with_http;
+fi
+
+
+# Check whether --with-iconv was given.
+if test "${with_iconv+set}" = set; then :
+ withval=$with_iconv;
+fi
+
+
+# Check whether --with-icu was given.
+if test "${with_icu+set}" = set; then :
+ withval=$with_icu;
+fi
+
+
+# Check whether --with-iso8859x was given.
+if test "${with_iso8859x+set}" = set; then :
+ withval=$with_iso8859x;
+fi
+
+
+# Check whether --with-legacy was given.
+if test "${with_legacy+set}" = set; then :
+ withval=$with_legacy;
+fi
+
+
+# Check whether --with-mem_debug was given.
+if test "${with_mem_debug+set}" = set; then :
+ withval=$with_mem_debug;
+fi
+
+
+# Check whether --with-minimum was given.
+if test "${with_minimum+set}" = set; then :
+ withval=$with_minimum;
+fi
+
+
+# Check whether --with-output was given.
+if test "${with_output+set}" = set; then :
+ withval=$with_output;
+fi
+
+
+# Check whether --with-pattern was given.
+if test "${with_pattern+set}" = set; then :
+ withval=$with_pattern;
+fi
+
+
+# Check whether --with-push was given.
+if test "${with_push+set}" = set; then :
+ withval=$with_push;
+fi
+
+
+# Check whether --with-python was given.
+if test "${with_python+set}" = set; then :
+ withval=$with_python;
+fi
+
+
+# Check whether --with-python_install_dir was given.
+if test "${with_python_install_dir+set}" = set; then :
+ withval=$with_python_install_dir;
+fi
+
+
+# Check whether --with-reader was given.
+if test "${with_reader+set}" = set; then :
+ withval=$with_reader;
+fi
+
+
+# Check whether --with-readline was given.
+if test "${with_readline+set}" = set; then :
+ withval=$with_readline;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ RDL_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+# Check whether --with-regexps was given.
+if test "${with_regexps+set}" = set; then :
+ withval=$with_regexps;
+fi
+
+
+# Check whether --with-run_debug was given.
+if test "${with_run_debug+set}" = set; then :
+ withval=$with_run_debug;
+fi
+
+
+# Check whether --with-sax1 was given.
+if test "${with_sax1+set}" = set; then :
+ withval=$with_sax1;
+fi
+
+
+# Check whether --with-schemas was given.
+if test "${with_schemas+set}" = set; then :
+ withval=$with_schemas;
+fi
+
+
+# Check whether --with-schematron was given.
+if test "${with_schematron+set}" = set; then :
+ withval=$with_schematron;
+fi
+
+
+# Check whether --with-threads was given.
+if test "${with_threads+set}" = set; then :
+ withval=$with_threads;
+fi
+
+
+# Check whether --with-thread-alloc was given.
+if test "${with_thread_alloc+set}" = set; then :
+ withval=$with_thread_alloc;
+fi
+
+
+# Check whether --with-tree was given.
+if test "${with_tree+set}" = set; then :
+ withval=$with_tree;
+fi
+
+
+# Check whether --with-valid was given.
+if test "${with_valid+set}" = set; then :
+ withval=$with_valid;
+fi
+
+
+# Check whether --with-writer was given.
+if test "${with_writer+set}" = set; then :
+ withval=$with_writer;
+fi
+
+
+# Check whether --with-xinclude was given.
+if test "${with_xinclude+set}" = set; then :
+ withval=$with_xinclude;
+fi
+
+
+# Check whether --with-xpath was given.
+if test "${with_xpath+set}" = set; then :
+ withval=$with_xpath;
+fi
+
+
+# Check whether --with-xptr was given.
+if test "${with_xptr+set}" = set; then :
+ withval=$with_xptr;
+fi
+
+
+# Check whether --with-modules was given.
+if test "${with_modules+set}" = set; then :
+ withval=$with_modules;
+fi
+
+
+# Check whether --with-zlib was given.
+if test "${with_zlib+set}" = set; then :
+ withval=$with_zlib;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ Z_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+# Check whether --with-lzma was given.
+if test "${with_lzma+set}" = set; then :
+ withval=$with_lzma;
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ LZMA_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+
+fi
+
+
+# Check whether --with-coverage was given.
+if test "${with_coverage+set}" = set; then :
+ withval=$with_coverage;
+fi
+
+
+# Check whether --enable-rebuild-docs was given.
+if test "${enable_rebuild_docs+set}" = set; then :
+ enableval=$enable_rebuild_docs;
+fi
+
+if test "$enable_rebuild_docs" = "yes" -a "$srcdir" != "."; then
+ as_fn_error $? "cannot rebuild docs when builddir != srcdir" "$LINENO" 5
+fi
+ if test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"; then
+ REBUILD_DOCS_TRUE=
+ REBUILD_DOCS_FALSE='#'
+else
+ REBUILD_DOCS_TRUE='#'
+ REBUILD_DOCS_FALSE=
+fi
+
+
+if test "$with_schemas" = "yes"
+then
+ with_pattern=yes
+ with_regexps=yes
+fi
+if test "$with_schematron" = "yes"
+then
+ with_pattern=yes
+ with_tree=yes
+ with_xpath=yes
+fi
+if test "$with_reader" = "yes"
+then
+ with_push=yes
+fi
+if test "$with_xptr" = "yes"
+then
+ with_xpath=yes
+fi
+if test "$with_minimum" = "yes"
+then
+ echo "Configuring for a minimal library"
+ if test "$with_c14n" = ""
+ then
+ with_c14n=no
+ fi
+ if test "$with_catalog" = ""
+ then
+ with_catalog=no
+ fi
+ echo So far so good!
+ if test "$with_debug" = ""
+ then
+ with_debug=no
+ fi
+ if test "$with_docbook" = ""
+ then
+ with_docbook=no
+ fi
+ if test "$with_fexceptions" = ""
+ then
+ with_fexceptions=no
+ fi
+ if test "$with_ftp" = ""
+ then
+ with_ftp=no
+ fi
+ if test "$with_history" = ""
+ then
+ with_history=no
+ fi
+ if test "$with_html" = ""
+ then
+ with_html=no
+ fi
+ if test "$with_http" = ""
+ then
+ with_http=no
+ fi
+ if test "$with_iconv" = ""
+ then
+ with_iconv=no
+ fi
+ if test "$with_iso8859x" = ""
+ then
+ with_iso8859x=no
+ fi
+ if test "$with_legacy" = ""
+ then
+ with_legacy=no
+ fi
+ if test "$with_mem_debug" = ""
+ then
+ with_mem_debug=no
+ fi
+ if test "$with_output" = ""
+ then
+ with_output=no
+ fi
+ if test "$with_pattern" = ""
+ then
+ with_pattern=no
+ fi
+ if test "$with_push" = ""
+ then
+ with_push=no
+ fi
+ if test "$with_python" = ""
+ then
+ with_python=no
+ fi
+ if test "$with_reader" = ""
+ then
+ with_reader=no
+ fi
+ if test "$with_readline" = ""
+ then
+ with_readline=no
+ fi
+ if test "$with_regexps" = ""
+ then
+ with_regexps=no
+ fi
+ if test "$with_run_debug" = ""
+ then
+ with_run_debug=no
+ fi
+ if test "$with_sax1" = ""
+ then
+ with_sax1=no
+ fi
+ if test "$with_schemas" = ""
+ then
+ with_schemas=no
+ fi
+ if test "$with_schematron" = ""
+ then
+ with_schematron=no
+ fi
+ if test "$with_threads" = ""
+ then
+ with_threads=no
+ fi
+ if test "$with_thread_alloc" = ""
+ then
+ with_thread_alloc=no
+ fi
+ if test "$with_tree" = ""
+ then
+ with_tree=no
+ fi
+ if test "$with_valid" = ""
+ then
+ with_valid=no
+ fi
+ if test "$with_writer" = ""
+ then
+ with_writer=no
+ fi
+ if test "$with_xinclude" = ""
+ then
+ with_xinclude=no
+ fi
+ if test "$with_xpath" = ""
+ then
+ with_xpath=no
+ fi
+ if test "$with_xptr" = ""
+ then
+ with_xptr=no
+ fi
+ if test "$with_zlib" = ""
+ then
+ with_zlib=no
+ fi
+ if test "$with_modules" = ""
+ then
+ with_modules=no
+ fi
+fi
+
+echo Checking zlib
+
+
+WITH_ZLIB=0
+if test "$with_zlib" = "no"; then
+ echo "Disabling zlib compression support"
+else
+ # Don't run pkg-config if with_zlib contains a path.
+ if test "x$Z_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Z" >&5
+$as_echo_n "checking for Z... " >&6; }
+
+if test -n "$Z_CFLAGS"; then
+ pkg_cv_Z_CFLAGS="$Z_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "zlib") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Z_CFLAGS=`$PKG_CONFIG --cflags "zlib" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$Z_LIBS"; then
+ pkg_cv_Z_LIBS="$Z_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "zlib") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Z_LIBS=`$PKG_CONFIG --libs "zlib" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ Z_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "zlib" 2>&1`
+ else
+ Z_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "zlib" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$Z_PKG_ERRORS" >&5
+
+ :
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ :
+else
+ Z_CFLAGS=$pkg_cv_Z_CFLAGS
+ Z_LIBS=$pkg_cv_Z_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ZLIB=1
+fi
+ fi
+
+ if test "$WITH_ZLIB" = "0"; then
+ for ac_header in zlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_zlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ZLIB_H 1
+_ACEOF
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5
+$as_echo_n "checking for gzread in -lz... " >&6; }
+if ${ac_cv_lib_z_gzread+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gzread ();
+int
+main ()
+{
+return gzread ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_z_gzread=yes
+else
+ ac_cv_lib_z_gzread=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5
+$as_echo "$ac_cv_lib_z_gzread" >&6; }
+if test "x$ac_cv_lib_z_gzread" = xyes; then :
+
+ WITH_ZLIB=1
+ if test "x${Z_DIR}" != "x"; then
+ Z_CFLAGS="-I${Z_DIR}/include"
+ Z_LIBS="-L${Z_DIR}/lib -lz"
+ case ${host} in
+ *-*-solaris*)
+ Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
+ ;;
+ esac
+ else
+ Z_LIBS="-lz"
+ fi
+fi
+
+
+fi
+
+done
+
+ fi
+fi
+
+
+
+
+
+echo Checking lzma
+
+
+WITH_LZMA=0
+if test "$with_lzma" = "no"; then
+ echo "Disabling lzma compression support"
+else
+ # Don't run pkg-config if with_lzma contains a path.
+ if test "x$LZMA_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LZMA" >&5
+$as_echo_n "checking for LZMA... " >&6; }
+
+if test -n "$LZMA_CFLAGS"; then
+ pkg_cv_LZMA_CFLAGS="$LZMA_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LZMA_CFLAGS=`$PKG_CONFIG --cflags "liblzma" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$LZMA_LIBS"; then
+ pkg_cv_LZMA_LIBS="$LZMA_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LZMA_LIBS=`$PKG_CONFIG --libs "liblzma" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LZMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "liblzma" 2>&1`
+ else
+ LZMA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "liblzma" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LZMA_PKG_ERRORS" >&5
+
+ :
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ :
+else
+ LZMA_CFLAGS=$pkg_cv_LZMA_CFLAGS
+ LZMA_LIBS=$pkg_cv_LZMA_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_LZMA=1
+fi
+ fi
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "$WITH_LZMA" = "0"; then
+ for ac_header in lzma.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default"
+if test "x$ac_cv_header_lzma_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LZMA_H 1
+_ACEOF
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_code in -llzma" >&5
+$as_echo_n "checking for lzma_code in -llzma... " >&6; }
+if ${ac_cv_lib_lzma_lzma_code+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-llzma $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char lzma_code ();
+int
+main ()
+{
+return lzma_code ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_lzma_lzma_code=yes
+else
+ ac_cv_lib_lzma_lzma_code=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_code" >&5
+$as_echo "$ac_cv_lib_lzma_lzma_code" >&6; }
+if test "x$ac_cv_lib_lzma_lzma_code" = xyes; then :
+
+ WITH_LZMA=1
+ if test "x${LZMA_DIR}" != "x"; then
+ LZMA_CFLAGS="-I${LZMA_DIR}/include"
+ LZMA_LIBS="-L${LZMA_DIR}/lib -llzma"
+ else
+ LZMA_LIBS="-llzma"
+ fi
+fi
+
+
+fi
+
+done
+
+ fi
+fi
+
+
+
+
+
+CPPFLAGS=${_cppflags}
+LIBS=${_libs}
+
+echo Checking headers
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+for ac_header in fcntl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default"
+if test "x$ac_cv_header_fcntl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_FCNTL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in unistd.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_UNISTD_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in ctype.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "ctype.h" "ac_cv_header_ctype_h" "$ac_includes_default"
+if test "x$ac_cv_header_ctype_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_CTYPE_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dirent.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "$ac_includes_default"
+if test "x$ac_cv_header_dirent_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DIRENT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in errno.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default"
+if test "x$ac_cv_header_errno_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ERRNO_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in malloc.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default"
+if test "x$ac_cv_header_malloc_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_MALLOC_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdarg.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdarg_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STDARG_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/stat.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_stat_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_STAT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/types.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_types_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_TYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdint.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in inttypes.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_INTTYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in time.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_time_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_TIME_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in math.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default"
+if test "x$ac_cv_header_math_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_MATH_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in limits.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default"
+if test "x$ac_cv_header_limits_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIMITS_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in float.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default"
+if test "x$ac_cv_header_float_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_FLOAT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/socket.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_sys_socket_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_SOCKET_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in netinet/in.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_netinet_in_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_NETINET_IN_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in arpa/inet.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#if HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+# endif
+
+"
+if test "x$ac_cv_header_arpa_inet_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ARPA_INET_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in netdb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default"
+if test "x$ac_cv_header_netdb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_NETDB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/time.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_time_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_TIME_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/select.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_select_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_SELECT_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in poll.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "poll.h" "ac_cv_header_poll_h" "$ac_includes_default"
+if test "x$ac_cv_header_poll_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_POLL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/mman.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mman_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_MMAN_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/timeb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_timeb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_TIMEB_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in signal.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default"
+if test "x$ac_cv_header_signal_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGNAL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in arpa/nameser.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+
+"
+if test "x$ac_cv_header_arpa_nameser_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ARPA_NAMESER_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in resolv.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#if HAVE_NETINET_IN_H
+# include <netinet/in.h>
+# endif
+#if HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+# endif
+
+"
+if test "x$ac_cv_header_resolv_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_RESOLV_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dl.h" "ac_cv_header_dl_h" "$ac_includes_default"
+if test "x$ac_cv_header_dl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+echo Checking types
+
+ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t"
+case $ac_cv_c_uint32_t in #(
+ no|yes) ;; #(
+ *)
+
+$as_echo "#define _UINT32_T 1" >>confdefs.h
+
+
+cat >>confdefs.h <<_ACEOF
+#define uint32_t $ac_cv_c_uint32_t
+_ACEOF
+;;
+ esac
+
+
+
+echo Checking libraries
+
+for ac_func in strftime
+do :
+ ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
+if test "x$ac_cv_func_strftime" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STRFTIME 1
+_ACEOF
+
+else
+ # strftime is in -lintl on SCO UNIX.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5
+$as_echo_n "checking for strftime in -lintl... " >&6; }
+if ${ac_cv_lib_intl_strftime+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char strftime ();
+int
+main ()
+{
+return strftime ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_intl_strftime=yes
+else
+ ac_cv_lib_intl_strftime=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5
+$as_echo "$ac_cv_lib_intl_strftime" >&6; }
+if test "x$ac_cv_lib_intl_strftime" = xyes; then :
+ $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h
+
+LIBS="-lintl $LIBS"
+fi
+
+fi
+done
+
+for ac_func in strftime localtime gettimeofday ftime
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in stat signal
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in rand rand_r srand time
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in isascii mmap munmap putenv
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
+$as_echo_n "checking for va_copy... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+va_list ap1,ap2;
+int
+main ()
+{
+va_copy(ap1,ap2);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_va_copy=yes
+else
+ have_va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_va_copy" >&5
+$as_echo "$have_va_copy" >&6; }
+if test x"$have_va_copy" = x"yes"; then
+
+$as_echo "#define HAVE_VA_COPY 1" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __va_copy" >&5
+$as_echo_n "checking for __va_copy... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+ va_list ap1,ap2;
+int
+main ()
+{
+__va_copy(ap1,ap2);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have___va_copy=yes
+else
+ have___va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have___va_copy" >&5
+$as_echo "$have___va_copy" >&6; }
+ if test x"$have___va_copy" = x"yes"; then
+
+$as_echo "#define HAVE___VA_COPY 1" >>confdefs.h
+
+ fi
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether va_list is an array type" >&5
+$as_echo_n "checking whether va_list is an array type... " >&6; }
+cat > conftest.$ac_ext <<EOF
+#line 14354 "configure"
+#include "confdefs.h"
+
+#include <stdarg.h>
+void a(va_list * ap) {}
+int main(void) {
+
+va_list ap1, ap2; a(&ap1); ap2 = (va_list) ap1
+; return 0; }
+EOF
+if { (eval echo configure:14364: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define VA_LIST_IS_ARRAY 1" >>confdefs.h
+
+fi
+rm -f conftest*
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostent" >&5
+$as_echo_n "checking for library containing gethostent... " >&6; }
+if ${ac_cv_search_gethostent+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostent ();
+int
+main ()
+{
+return gethostent ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' nsl; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_gethostent=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_gethostent+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_gethostent+:} false; then :
+
+else
+ ac_cv_search_gethostent=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostent" >&5
+$as_echo "$ac_cv_search_gethostent" >&6; }
+ac_res=$ac_cv_search_gethostent
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket net network; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
+$as_echo "$ac_cv_search_setsockopt" >&6; }
+ac_res=$ac_cv_search_setsockopt
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing connect" >&5
+$as_echo_n "checking for library containing connect... " >&6; }
+if ${ac_cv_search_connect+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' inet; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_connect=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_connect+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_connect+:} false; then :
+
+else
+ ac_cv_search_connect=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_connect" >&5
+$as_echo "$ac_cv_search_connect" >&6; }
+ac_res=$ac_cv_search_connect
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of socket length (socklen_t)" >&5
+$as_echo_n "checking for type of socket length (socklen_t)... " >&6; }
+cat > conftest.$ac_ext <<EOF
+#line 14554 "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:14565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: socklen_t *" >&5
+$as_echo "socklen_t *" >&6; }
+ XML_SOCKLEN_T=socklen_t
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line 14577 "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:14588: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: size_t *" >&5
+$as_echo "size_t *" >&6; }
+ XML_SOCKLEN_T=size_t
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line 14600 "configure"
+#include "confdefs.h"
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+int main(void) {
+
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)
+; return 0; }
+EOF
+if { (eval echo configure:14611: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: int *" >&5
+$as_echo "int *" >&6; }
+ XML_SOCKLEN_T=int
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not determine" >&5
+$as_echo "$as_me: WARNING: could not determine" >&2;}
+ XML_SOCKLEN_T="int"
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+
+cat >>confdefs.h <<_ACEOF
+#define XML_SOCKLEN_T $XML_SOCKLEN_T
+_ACEOF
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for const gethostbyname() argument" >&5
+$as_echo_n "checking for const gethostbyname() argument... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <netdb.h>
+int
+main ()
+{
+(void)gethostbyname((const char *)"");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_gethostbyname_const_arg=yes
+else
+ have_gethostbyname_const_arg=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gethostbyname_const_arg" >&5
+$as_echo "$have_gethostbyname_const_arg" >&6; }
+if test x"$have_gethostbyname_const_arg" = x"yes"; then
+
+$as_echo "#define GETHOSTBYNAME_ARG_CAST /**/" >>confdefs.h
+
+else
+
+$as_echo "#define GETHOSTBYNAME_ARG_CAST (char *)" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for const send() second argument" >&5
+$as_echo_n "checking for const send() second argument... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/socket.h>
+int
+main ()
+{
+(void)send(1,(const char *)"",1,1);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_send_const_arg2=yes
+else
+ have_send_const_arg2=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_send_const_arg2" >&5
+$as_echo "$have_send_const_arg2" >&6; }
+if test x"$have_send_const_arg2" = x"yes"; then
+
+$as_echo "#define SEND_ARG2_CAST /**/" >>confdefs.h
+
+else
+
+$as_echo "#define SEND_ARG2_CAST (char *)" >>confdefs.h
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable IPv6" >&5
+$as_echo_n "checking whether to enable IPv6... " >&6; }
+# Check whether --enable-ipv6 was given.
+if test "${enable_ipv6+set}" = set; then :
+ enableval=$enable_ipv6;
+else
+ enable_ipv6=yes
+fi
+
+if test "$with_minimum" = "yes"
+then
+ enable_ipv6=no
+fi
+if test $enable_ipv6 = yes; then
+ have_ipv6=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss;
+ socket(AF_INET6, SOCK_STREAM, 0)
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_ipv6=yes
+else
+ have_ipv6=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ipv6" >&5
+$as_echo "$have_ipv6" >&6; }
+
+ if test $have_ipv6 = yes; then
+
+$as_echo "#define SUPPORT_IP6 /**/" >>confdefs.h
+
+ have_broken_ss_family=no
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr::ss_family" >&5
+$as_echo_n "checking struct sockaddr::ss_family... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss ;
+ ss.ss_family = 0 ;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_ss_family=yes
+else
+ have_ss_family=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ss_family" >&5
+$as_echo "$have_ss_family" >&6; }
+ if test x$have_ss_family = xno ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking broken struct sockaddr::ss_family" >&5
+$as_echo_n "checking broken struct sockaddr::ss_family... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/socket.h>
+
+int
+main ()
+{
+
+ struct sockaddr_storage ss ;
+ ss.__ss_family = 0 ;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_broken_ss_family=yes
+else
+ have_broken_ss_family=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_broken_ss_family" >&5
+$as_echo "$have_broken_ss_family" >&6; }
+ if test x$have_broken_ss_family = xyes ; then
+
+$as_echo "#define HAVE_BROKEN_SS_FAMILY /**/" >>confdefs.h
+
+
+$as_echo "#define ss_family __ss_family" >>confdefs.h
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ss_family and __ss_family not found" >&5
+$as_echo "$as_me: WARNING: ss_family and __ss_family not found" >&2;}
+ fi
+ fi
+
+ have_getaddrinfo=no
+ ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo"
+if test "x$ac_cv_func_getaddrinfo" = xyes; then :
+ have_getaddrinfo=yes
+fi
+
+ if test $have_getaddrinfo != yes; then
+ for lib in bsd socket inet; do
+ as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_getaddrinfo" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -l$lib" >&5
+$as_echo_n "checking for getaddrinfo in -l$lib... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$lib $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char getaddrinfo ();
+int
+main ()
+{
+return getaddrinfo ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+else
+ eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ LIBS="$LIBS -l$lib";have_getaddrinfo=yes;break
+fi
+
+ done
+ fi
+
+ if test $have_getaddrinfo = yes; then
+
+$as_echo "#define HAVE_GETADDRINFO /**/" >>confdefs.h
+
+ fi
+ fi
+fi
+
+
+ac_fn_c_check_func "$LINENO" "isnan" "ac_cv_func_isnan"
+if test "x$ac_cv_func_isnan" = xyes; then :
+
+$as_echo "#define HAVE_ISNAN /**/" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnan in -lm" >&5
+$as_echo_n "checking for isnan in -lm... " >&6; }
+if ${ac_cv_lib_m_isnan+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char isnan ();
+int
+main ()
+{
+return isnan ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_m_isnan=yes
+else
+ ac_cv_lib_m_isnan=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_isnan" >&5
+$as_echo "$ac_cv_lib_m_isnan" >&6; }
+if test "x$ac_cv_lib_m_isnan" = xyes; then :
+
+$as_echo "#define HAVE_ISNAN /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ac_fn_c_check_func "$LINENO" "isinf" "ac_cv_func_isinf"
+if test "x$ac_cv_func_isinf" = xyes; then :
+
+$as_echo "#define HAVE_ISINF /**/" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf in -lm" >&5
+$as_echo_n "checking for isinf in -lm... " >&6; }
+if ${ac_cv_lib_m_isinf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char isinf ();
+int
+main ()
+{
+return isinf ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_m_isinf=yes
+else
+ ac_cv_lib_m_isinf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_isinf" >&5
+$as_echo "$ac_cv_lib_m_isinf" >&6; }
+if test "x$ac_cv_lib_m_isinf" = xyes; then :
+
+$as_echo "#define HAVE_ISINF /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+XML_LIBDIR='-L${libdir}'
+XML_INCLUDEDIR='-I${includedir}/libxml2'
+
+XML_CFLAGS=""
+RDL_LIBS=""
+
+if test "${GCC}" != "yes" ; then
+ case "${host}" in
+ hppa*-*-hpux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000"
+ ;;
+ *-dec-osf* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
+ ;;
+ alpha*-*-linux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
+ ;;
+ esac
+else
+ if test "$with_fexceptions" = "yes"
+ then
+ #
+ # Not activated by default because this inflates the code size
+ # Used to allow propagation of C++ exceptions through the library
+ #
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions"
+ fi
+
+ # warnings we'd like to see
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+ # warnings we'd like to supress
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args"
+ case "${host}" in
+ alpha*-*-linux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
+ ;;
+ alpha*-*-osf* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
+ ;;
+ esac
+fi
+case ${host} in
+ *-*-solaris*)
+ XML_LIBDIR="${XML_LIBDIR} -R${libdir}"
+ ;;
+ hppa*-hp-mpeix)
+ NEED_TRIO=1
+ ;;
+ *-*-mingw* | *-*-cygwin* | *-*-msvc* )
+ # If the host is Windows, and shared libraries are disabled, we
+ # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to
+ # work properly (without it, xmlexports.h would force the use of
+ # DLL imports, which obviously aren't present in a static
+ # library).
+ if test "x$enable_shared" = "xno"; then
+ XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC"
+ fi
+ ;;
+esac
+
+
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+PYTHON_SITE_PACKAGES=
+PYTHON_TESTS=
+pythondir=
+if test "$with_python" != "no" ; then
+ if test -x "$with_python/bin/python"
+ then
+ echo Found python in $with_python/bin/python
+ PYTHON="$with_python/bin/python"
+ else
+ if test -x "$with_python/python.exe"
+ then
+ echo Found python in $with_python/python.exe
+ PYTHON="$with_python/python.exe"
+ else
+ if test -x "$with_python"
+ then
+ echo Found python in $with_python
+ PYTHON="$with_python"
+ else
+ if test -x "$PYTHON"
+ then
+ echo Found python in environment PYTHON=$PYTHON
+ with_python=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
+ else
+ # Extract the first word of "python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5", so it can be a program name with args.
+set dummy python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PYTHON+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PYTHON in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+ fi
+ fi
+ fi
+ if test "$PYTHON" != ""
+ then
+ PYTHON_VERSION=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_version())"`
+ PYTHON_INCLUDES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"`
+# does not work as it produce a /usr/lib/python path instead of/usr/lib64/python
+#
+# PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ echo Found Python version $PYTHON_VERSION
+ fi
+ if test "$PYTHON_VERSION" != "" -a "$PYTHON_INCLUDES" = ""
+ then
+ if test -r $with_python/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
+ else
+ if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
+ else
+ if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
+ else
+ if test -r $with_python/include/Python.h
+ then
+ PYTHON_INCLUDES=$with_python/include
+ else
+ echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test "$with_python_install_dir" != ""
+ then
+ PYTHON_SITE_PACKAGES="$with_python_install_dir"
+ fi
+ if test "$PYTHON_VERSION" != "" -a "$PYTHON_SITE_PACKAGES" = ""
+ then
+ if test -d $libdir/python$PYTHON_VERSION/site-packages
+ then
+ PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
+ else
+ if test -d $with_python/lib/site-packages
+ then
+ PYTHON_SITE_PACKAGES=$with_python/lib/site-packages
+ else
+ PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ fi
+ fi
+ fi
+ pythondir='$(PYTHON_SITE_PACKAGES)'
+ PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags`
+else
+ PYTHON=
+fi
+ if test "$PYTHON_INCLUDES" != ""; then
+ WITH_PYTHON_TRUE=
+ WITH_PYTHON_FALSE='#'
+else
+ WITH_PYTHON_TRUE='#'
+ WITH_PYTHON_FALSE=
+fi
+
+if test "$PYTHON_INCLUDES" != ""
+then
+ PYTHON_SUBDIR=python
+else
+ PYTHON_SUBDIR=
+fi
+
+
+
+
+WITH_MODULES=0
+TEST_MODULES=
+
+if test "$with_modules" != "no" ; then
+ case "$host" in
+ *-*-cygwin*)
+ MODULE_EXTENSION=".dll"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lcygwin" >&5
+$as_echo_n "checking for dlopen in -lcygwin... " >&6; }
+if ${ac_cv_lib_cygwin_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcygwin $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_cygwin_dlopen=yes
+else
+ ac_cv_lib_cygwin_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cygwin_dlopen" >&5
+$as_echo "$ac_cv_lib_cygwin_dlopen" >&6; }
+if test "x$ac_cv_lib_cygwin_dlopen" = xyes; then :
+
+ WITH_MODULES=1
+ MODULE_PLATFORM_LIBS=
+
+$as_echo "#define HAVE_DLOPEN /**/" >>confdefs.h
+
+
+fi
+
+ ;;
+ *-*-mingw*)
+ MODULE_EXTENSION=".dll"
+ WITH_MODULES=1
+ ;;
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ libxml_have_shl_load=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+
+ MODULE_PLATFORM_LIBS="-ldld"
+ libxml_have_shl_load=yes
+else
+
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ libxml_have_dlopen=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+
+ MODULE_PLATFORM_LIBS="-ldl"
+ libxml_have_dlopen=yes
+fi
+
+fi
+
+fi
+
+fi
+
+
+ if test "${libxml_have_shl_load}" = "yes"; then
+ MODULE_EXTENSION=".sl"
+ WITH_MODULES=1
+
+$as_echo "#define HAVE_SHLLOAD /**/" >>confdefs.h
+
+ fi
+
+ if test "${libxml_have_dlopen}" = "yes"; then
+ case "${host}" in
+ *-*-hpux* )
+ MODULE_EXTENSION=".sl"
+ ;;
+ * )
+ MODULE_EXTENSION=".so"
+ ;;
+ esac
+
+ WITH_MODULES=1
+
+$as_echo "#define HAVE_DLOPEN /**/" >>confdefs.h
+
+ fi
+ ;;
+ esac
+fi
+
+if test "${WITH_MODULES}" = "1"; then
+ TEST_MODULES="ModuleTests"
+fi
+
+
+
+
+
+
+
+if [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ] || \
+ [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ] || \
+ [ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxml2" ]
+ then
+ if test "$with_minimum" != "yes"
+ then
+ if test "${with_mem_debug}" = "" ; then
+ echo Activating memory debugging
+ with_mem_debug="yes"
+ with_run_debug="yes"
+ fi
+ if test "${with_docbook}" = "" ; then
+ with_docbook="yes"
+ fi
+ fi
+ if test "${GCC}" = "yes" ; then
+ EXTRA_CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
+ fi
+ STATIC_BINARIES="-static"
+else
+ STATIC_BINARIES=
+fi
+
+
+
+if test "${NEED_TRIO}" = "1" ; then
+ echo Adding trio library for string functions
+ WITH_TRIO=1
+else
+ WITH_TRIO=0
+fi
+ if test "${NEED_TRIO}" = "1"; then
+ WITH_TRIO_SOURCES_TRUE=
+ WITH_TRIO_SOURCES_FALSE='#'
+else
+ WITH_TRIO_SOURCES_TRUE='#'
+ WITH_TRIO_SOURCES_FALSE=
+fi
+
+
+
+echo Checking configuration requirements
+
+THREAD_LIBS=""
+BASE_THREAD_LIBS=""
+WITH_THREADS=0
+THREAD_CFLAGS=""
+TEST_THREADS=""
+THREADS_W32=""
+WITH_THREAD_ALLOC=0
+
+if test "$with_threads" = "no" ; then
+ echo Disabling multithreaded support
+else
+ echo Enabling multithreaded support
+
+ case $host_os in
+ *mingw*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
+ WITH_THREADS="1"
+ THREADS_W32="1"
+ THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS"
+ fi
+ ;;
+ esac
+
+ if test -z "$THREADS_W32"; then
+ if test "$with_threads" = "pthread" || test "$with_threads" = "" || test "$with_threads" = "yes" ; then
+ ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
+if test "x$ac_cv_header_pthread_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in -lpthread" >&5
+$as_echo_n "checking for pthread_join in -lpthread... " >&6; }
+if ${ac_cv_lib_pthread_pthread_join+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_join ();
+int
+main ()
+{
+return pthread_join ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_pthread_pthread_join=yes
+else
+ ac_cv_lib_pthread_pthread_join=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_join" >&5
+$as_echo "$ac_cv_lib_pthread_pthread_join" >&6; }
+if test "x$ac_cv_lib_pthread_pthread_join" = xyes; then :
+
+ THREAD_LIBS="-lpthread"
+
+$as_echo "#define HAVE_LIBPTHREAD /**/" >>confdefs.h
+
+
+$as_echo "#define HAVE_PTHREAD_H /**/" >>confdefs.h
+
+ WITH_THREADS="1"
+fi
+
+fi
+
+
+ fi
+ fi
+
+ case $host_os in
+ *cygwin*) THREAD_LIBS=""
+ ;;
+ *beos*) WITH_THREADS="1"
+ THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
+ ;;
+ *linux*)
+ if test "${GCC}" = "yes" ; then
+ GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
+ GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'`
+ GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[0-9]*\.++' | sed 's+\..*++'`
+ if test "${THREAD_LIBS}" = "-lpthread" ; then
+ if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null
+ then
+ THREAD_LIBS=""
+ BASE_THREAD_LIBS="-lpthread"
+ else
+ if expr ${GCC_MAJOR} \> 3 > /dev/null
+ then
+ THREAD_LIBS=""
+ BASE_THREAD_LIBS="-lpthread"
+ else
+ echo old GCC disabling weak symbols for pthread
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "$WITH_THREADS" = "1" ; then
+ THREAD_CFLAGS="$THREAD_CFLAGS -D_REENTRANT"
+ TEST_THREADS="Threadtests"
+ fi
+fi
+if test "$with_thread_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then
+ WITH_THREAD_ALLOC=1
+fi
+
+
+
+
+
+
+
+ if test -n "$THREADS_W32"; then
+ THREADS_W32_TRUE=
+ THREADS_W32_FALSE='#'
+else
+ THREADS_W32_TRUE='#'
+ THREADS_W32_FALSE=
+fi
+
+
+if test "$with_history" = "yes" ; then
+ echo Enabling xmllint shell history
+ unset tcap
+ for termlib in ncurses curses termcap terminfo termlib; do
+ as_ac_Lib=`$as_echo "ac_cv_lib_${termlib}''_tputs" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tputs in -l${termlib}" >&5
+$as_echo_n "checking for tputs in -l${termlib}... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${termlib} $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char tputs ();
+int
+main ()
+{
+return tputs ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+else
+ eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ tcap="-l$termlib"
+fi
+
+ test -n "$tcap" && break
+ done
+
+ ac_fn_c_check_header_mongrel "$LINENO" "readline/history.h" "ac_cv_header_readline_history_h" "$ac_includes_default"
+if test "x$ac_cv_header_readline_history_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -lhistory" >&5
+$as_echo_n "checking for append_history in -lhistory... " >&6; }
+if ${ac_cv_lib_history_append_history+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lhistory $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char append_history ();
+int
+main ()
+{
+return append_history ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_history_append_history=yes
+else
+ ac_cv_lib_history_append_history=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_history_append_history" >&5
+$as_echo "$ac_cv_lib_history_append_history" >&6; }
+if test "x$ac_cv_lib_history_append_history" = xyes; then :
+
+ RDL_LIBS="-lhistory"
+
+$as_echo "#define HAVE_LIBHISTORY /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ ac_fn_c_check_header_mongrel "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default"
+if test "x$ac_cv_header_readline_readline_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5
+$as_echo_n "checking for readline in -lreadline... " >&6; }
+if ${ac_cv_lib_readline_readline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lreadline $tcap $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char readline ();
+int
+main ()
+{
+return readline ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_readline_readline=yes
+else
+ ac_cv_lib_readline_readline=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5
+$as_echo "$ac_cv_lib_readline_readline" >&6; }
+if test "x$ac_cv_lib_readline_readline" = xyes; then :
+
+ RDL_LIBS="-lreadline $RDL_LIBS $tcap"
+
+$as_echo "#define HAVE_LIBREADLINE /**/" >>confdefs.h
+
+fi
+
+fi
+
+
+ if test -n "$RDL_DIR" -a -n "$RDL_LIBS"; then
+ CPPFLAGS="$CPPFLAGS -I${RDL_DIR}/include"
+ RDL_LIBS="-L${RDL_DIR}/lib $RDL_LIBS"
+ fi
+fi
+
+if test "$with_tree" = "no" ; then
+ echo Disabling DOM like tree manipulation APIs
+ WITH_TREE=0
+else
+ WITH_TREE=1
+fi
+
+
+if test "$with_ftp" = "no" ; then
+ echo Disabling FTP support
+ WITH_FTP=0
+ FTP_OBJ=
+else
+ WITH_FTP=1
+ FTP_OBJ=nanoftp.o
+fi
+
+
+
+if test "$with_http" = "no" ; then
+ echo Disabling HTTP support
+ WITH_HTTP=0
+ HTTP_OBJ=
+else
+ WITH_HTTP=1
+ HTTP_OBJ=nanohttp.o
+fi
+
+
+
+if test "$with_legacy" = "no" ; then
+ echo Disabling deprecated APIs
+ WITH_LEGACY=0
+else
+ WITH_LEGACY=1
+fi
+
+
+if test "$with_reader" = "no" ; then
+ echo Disabling the xmlReader parsing interface
+ WITH_READER=0
+ READER_TEST=
+else
+ WITH_READER=1
+ READER_TEST=Readertests
+ if test "$with_push" = "no" ; then
+ echo xmlReader requires Push interface - enabling it
+ with_push=yes
+ fi
+fi
+
+
+
+if test "$with_writer" = "no" ; then
+ echo Disabling the xmlWriter saving interface
+ WITH_WRITER=0
+# WRITER_TEST=
+else
+ WITH_WRITER=1
+# WRITER_TEST=Writertests
+ if test "$with_push" = "no" ; then
+ echo xmlWriter requires Push interface - enabling it
+ with_push=yes
+ fi
+ if test "$with_output" = "no" ; then
+ echo xmlWriter requires Output interface - enabling it
+ with_output=yes
+ fi
+fi
+
+#AC_SUBST(WRITER_TEST)
+
+if test "$with_pattern" = "no" ; then
+ echo Disabling the xmlPattern parsing interface
+ WITH_PATTERN=0
+ TEST_PATTERN=
+else
+ WITH_PATTERN=1
+ TEST_PATTERN=Patterntests
+fi
+
+
+
+if test "$with_sax1" = "no" ; then
+ echo Disabling the older SAX1 interface
+ WITH_SAX1=0
+ TEST_SAX=
+else
+ WITH_SAX1=1
+ TEST_SAX=SAXtests
+fi
+
+ if test "${WITH_TRIO}" = "1"; then
+ WITH_SAX1_SOURCES_TRUE=
+ WITH_SAX1_SOURCES_FALSE='#'
+else
+ WITH_SAX1_SOURCES_TRUE='#'
+ WITH_SAX1_SOURCES_FALSE=
+fi
+
+
+
+if test "$with_push" = "no" ; then
+ echo Disabling the PUSH parser interfaces
+ WITH_PUSH=0
+ TEST_PUSH=
+else
+ WITH_PUSH=1
+ TEST_PUSH="XMLPushtests"
+fi
+
+
+
+if test "$with_html" = "no" ; then
+ echo Disabling HTML support
+ WITH_HTML=0
+ HTML_OBJ=
+ TEST_HTML=
+else
+ WITH_HTML=1
+ HTML_OBJ="HTMLparser.o HTMLtree.o"
+ TEST_HTML=HTMLtests
+ if test "$with_push" != "no" ; then
+ TEST_PHTML=HTMLPushtests
+ else
+ TEST_PHTML=
+ fi
+fi
+
+
+
+
+
+if test "$with_valid" = "no" ; then
+ echo Disabling DTD validation support
+ WITH_VALID=0
+ TEST_VALID=
+ TEST_VTIME=
+else
+ WITH_VALID=1
+ TEST_VALID=Validtests
+ TEST_VTIME=VTimingtests
+fi
+
+
+
+
+if test "$with_catalog" = "no" ; then
+ echo Disabling Catalog support
+ WITH_CATALOG=0
+ CATALOG_OBJ=
+ TEST_CATALOG=
+else
+ WITH_CATALOG=1
+ CATALOG_OBJ="catalog.o"
+ TEST_CATALOG=Catatests
+fi
+
+
+
+
+if test "$with_docbook" = "no" ; then
+ echo Disabling Docbook support
+ WITH_DOCB=0
+ DOCB_OBJ=
+else
+ WITH_DOCB=1
+ DOCB_OBJ="DOCBparser.o"
+fi
+
+
+
+
+if test "$with_xptr" = "no" ; then
+ echo Disabling XPointer support
+ WITH_XPTR=0
+ XPTR_OBJ=
+ TEST_XPTR=
+else
+ WITH_XPTR=1
+ XPTR_OBJ=xpointer.o
+ TEST_XPTR=XPtrtests
+ if test "$with_xpath" = "no" ; then
+ echo XPointer requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_c14n" = "no" ; then
+ echo Disabling C14N support
+ WITH_C14N=0
+ C14N_OBJ=
+ TEST_C14N=
+else
+ WITH_C14N=1
+ C14N_OBJ="c14n.c"
+ TEST_C14N=C14Ntests
+ if test "$with_xpath" = "no" ; then
+ echo C14N requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_xinclude" = "no" ; then
+ echo Disabling XInclude support
+ WITH_XINCLUDE=0
+ XINCLUDE_OBJ=
+ with_xinclude="no"
+ TEST_XINCLUDE=
+else
+ WITH_XINCLUDE=1
+ XINCLUDE_OBJ=xinclude.o
+ TEST_XINCLUDE=XIncludetests
+ if test "$with_xpath" = "no" ; then
+ echo XInclude requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+
+
+
+
+if test "$with_xptr" = "" -a "$with_xpath" = "no" ; then
+ with_xptr=no
+fi
+
+if test "$with_schematron" = "" -a "$with_xpath" = "no" ; then
+ with_schematron=no
+fi
+
+if test "$with_schematron" = "no" ; then
+ echo "Disabling Schematron support"
+ WITH_SCHEMATRON=0
+ TEST_SCHEMATRON=
+else
+ echo "Enabled Schematron support"
+ WITH_SCHEMATRON=1
+ TEST_SCHEMATRON="Schematrontests"
+ with_xpath=yes
+ with_pattern=yes
+ with_schematron=yes
+fi
+
+
+
+if test "$with_xpath" = "no" ; then
+ echo Disabling XPATH support
+ WITH_XPATH=0
+ XPATH_OBJ=
+ TEST_XPATH=
+else
+ WITH_XPATH=1
+ XPATH_OBJ=xpath.o
+ TEST_XPATH=XPathtests
+fi
+
+
+
+
+if test "$with_output" = "no" ; then
+ echo Disabling serialization/saving support
+ WITH_OUTPUT=0
+else
+ WITH_OUTPUT=1
+fi
+
+
+WITH_ICONV=0
+if test "$with_iconv" = "no" ; then
+ echo Disabling ICONV support
+else
+ if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_iconv/include"
+ # Export this since our headers include iconv.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_iconv/include"
+ ICONV_LIBS="-L$with_iconv/lib"
+ fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default"
+if test "x$ac_cv_header_iconv_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+
+iconv_t cd = iconv_open ("","");
+iconv (cd, NULL, NULL, NULL, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ICONV=1
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv in -liconv" >&5
+$as_echo_n "checking for iconv in -liconv... " >&6; }
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICONV_LIBS}"
+ LIBS="${LIBS} -liconv"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+
+iconv_t cd = iconv_open ("","");
+iconv (cd, NULL, NULL, NULL, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ WITH_ICONV=1
+ ICONV_LIBS="${ICONV_LIBS} -liconv"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+
+ if test "$WITH_ICONV" = "1" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+ if ${xml_cv_iconv_arg2+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ xml_cv_iconv_arg2=""
+else
+ xml_cv_iconv_arg2="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+ xml_cv_iconv_decl="extern size_t iconv (iconv_t cd, $xml_cv_iconv_arg2 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${xml_xxx:-
+ }$xml_cv_iconv_decl" >&5
+$as_echo "${xml_xxx:-
+ }$xml_cv_iconv_decl" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define ICONV_CONST $xml_cv_iconv_arg2
+_ACEOF
+
+ fi
+fi
+case "$host" in
+ *mingw*) M_LIBS=""
+ ;;
+ *beos*) M_LIBS=""
+ ;;
+ *haiku*) M_LIBS=""
+ ;;
+ *) M_LIBS="-lm"
+ ;;
+esac
+
+
+WITH_ICU=0
+ICU_LIBS=""
+if test "$with_icu" != "yes" ; then
+ echo Disabling ICU support
+else
+ # Try pkg-config first so that static linking works.
+ # If this succeeeds, we ignore the WITH_ICU directory.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ICU" >&5
+$as_echo_n "checking for ICU... " >&6; }
+
+if test -n "$ICU_CFLAGS"; then
+ pkg_cv_ICU_CFLAGS="$ICU_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-i18n\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "icu-i18n") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_ICU_CFLAGS=`$PKG_CONFIG --cflags "icu-i18n" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$ICU_LIBS"; then
+ pkg_cv_ICU_LIBS="$ICU_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-i18n\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "icu-i18n") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_ICU_LIBS=`$PKG_CONFIG --libs "icu-i18n" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ ICU_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "icu-i18n" 2>&1`
+ else
+ ICU_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "icu-i18n" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$ICU_PKG_ERRORS" >&5
+
+ have_libicu=no
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ have_libicu=no
+else
+ ICU_CFLAGS=$pkg_cv_ICU_CFLAGS
+ ICU_LIBS=$pkg_cv_ICU_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+fi
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "x$have_libicu" = "xno"; then
+ ICU_CONFIG=icu-config
+ if ${ICU_CONFIG} --cflags >/dev/null 2>&1
+ then
+ ICU_LIBS=`${ICU_CONFIG} --ldflags`
+ have_libicu=yes
+ echo Enabling ICU support
+ else
+ if test "$with_icu" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_icu"
+ # Export this since our headers include icu.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_icu"
+ fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "unicode/ucnv.h" "ac_cv_header_unicode_ucnv_h" "$ac_includes_default"
+if test "x$ac_cv_header_unicode_ucnv_h" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icu" >&5
+$as_echo_n "checking for icu... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unicode/ucnv.h>
+int
+main ()
+{
+
+ UConverter *utf = ucnv_open("UTF-8", NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icu in -licucore" >&5
+$as_echo_n "checking for icu in -licucore... " >&6; }
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICU_LIBS}"
+ LIBS="${LIBS} -licucore"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unicode/ucnv.h>
+int
+main ()
+{
+
+ UConverter *utf = ucnv_open("UTF-8", NULL);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libicu=yes
+ ICU_LIBS="${ICU_LIBS} -licucore"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+ fi
+ fi
+
+ # Found the library via either method?
+ if test "x$have_libicu" = "xyes"; then
+ WITH_ICU=1
+ fi
+fi
+XML_LIBS="-lxml2"
+XML_PRIVATE_LIBS="$Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $M_LIBS $LIBS"
+XML_LIBTOOLLIBS="libxml2.la"
+
+
+WITH_ISO8859X=1
+if test "$WITH_ICONV" != "1" ; then
+if test "$with_iso8859x" = "no" ; then
+ echo Disabling ISO8859X support
+ WITH_ISO8859X=0
+fi
+fi
+
+
+if test "$with_schemas" = "no" ; then
+ echo "Disabling Schemas/Relax-NG support"
+ WITH_SCHEMAS=0
+ TEST_SCHEMAS=
+else
+ echo "Enabled Schemas/Relax-NG support"
+ WITH_SCHEMAS=1
+ TEST_SCHEMAS="Schemastests Relaxtests"
+ if test "$PYTHON_INCLUDES" != "" ; then
+ PYTHON_TESTS="$PYTHON_TESTS RelaxNGPythonTests SchemasPythonTests"
+ fi
+ with_regexps=yes
+fi
+
+
+
+if test "$with_regexps" = "no" ; then
+ echo Disabling Regexps support
+ WITH_REGEXPS=0
+ TEST_REGEXPS=
+else
+ WITH_REGEXPS=1
+ TEST_REGEXPS="Regexptests Automatatests"
+fi
+
+
+
+if test "$with_debug" = "no" ; then
+ echo Disabling DEBUG support
+ WITH_DEBUG=0
+ DEBUG_OBJ=
+ TEST_DEBUG=
+else
+ WITH_DEBUG=1
+ DEBUG_OBJ=debugXML.o
+ TEST_DEBUG=Scripttests
+fi
+
+
+
+
+if test "$with_mem_debug" = "yes" ; then
+ if test "$with_thread_alloc" = "yes" ; then
+ echo Disabling memory debug - cannot use mem-debug with thread-alloc!
+ WITH_MEM_DEBUG=0
+ else
+ echo Enabling memory debug support
+ WITH_MEM_DEBUG=1
+ fi
+else
+ WITH_MEM_DEBUG=0
+fi
+
+
+if test "$with_run_debug" = "yes" ; then
+ echo Enabling runtime debug support
+ WITH_RUN_DEBUG=1
+else
+ WITH_RUN_DEBUG=0
+fi
+
+
+WIN32_EXTRA_LIBADD=
+WIN32_EXTRA_LDFLAGS=
+CYGWIN_EXTRA_LDFLAGS=
+CYGWIN_EXTRA_PYTHON_LIBADD=
+WIN32_EXTRA_PYTHON_LIBADD=
+case "$host" in
+ *-*-mingw*)
+ CPPFLAGS="$CPPFLAGS -DWIN32"
+ WIN32_EXTRA_LIBADD="-lws2_32"
+ WIN32_EXTRA_LDFLAGS="-no-undefined"
+ if test "${PYTHON}" != ""
+ then
+ case "$host" in
+ *-w64-mingw*)
+ WIN32_EXTRA_PYTHON_LIBADD="-shrext .pyd -L${pythondir}/../../lib -lpython${PYTHON_VERSION}"
+ ;;
+ *)
+ WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)"
+ ;;
+ esac
+ fi
+ ;;
+ *-*-cygwin*)
+ CYGWIN_EXTRA_LDFLAGS="-no-undefined"
+ if test "${PYTHON}" != ""
+ then
+ CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
+ fi
+ ;;
+esac
+
+
+
+
+
+
+for ac_func in printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+ NEED_TRIO=1
+fi
+done
+
+
+if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
+then
+ echo Enabling code coverage for GCC
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage"
+ LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage"
+else
+ echo Disabling code coverage for GCC
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+RELDATE=`date +'%a %b %e %Y'`
+
+
+
+rm -f COPYING.LIB COPYING
+ln -s $srcdir/Copyright COPYING
+
+# keep on one line for cygwin c.f. #130896
+ac_config_files="$ac_config_files libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h libxml-2.0.pc libxml-2.0-uninstalled.pc libxml2-config.cmake"
+
+ac_config_files="$ac_config_files python/setup.py"
+
+ac_config_files="$ac_config_files xml2-config"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_VERSION_SCRIPT_TRUE}" && test -z "${USE_VERSION_SCRIPT_FALSE}"; then
+ as_fn_error $? "conditional \"USE_VERSION_SCRIPT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${REBUILD_DOCS_TRUE}" && test -z "${REBUILD_DOCS_FALSE}"; then
+ as_fn_error $? "conditional \"REBUILD_DOCS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_PYTHON_TRUE}" && test -z "${WITH_PYTHON_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_PYTHON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_TRIO_SOURCES_TRUE}" && test -z "${WITH_TRIO_SOURCES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_TRIO_SOURCES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${THREADS_W32_TRUE}" && test -z "${THREADS_W32_FALSE}"; then
+ as_fn_error $? "conditional \"THREADS_W32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_SAX1_SOURCES_TRUE}" && test -z "${WITH_SAX1_SOURCES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_SAX1_SOURCES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+DLLTOOL \
+sharedlib_from_linklib_cmd \
+AR \
+AR_FLAGS \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
+nm_file_list_spec \
+lt_cv_truncate_bin \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "libxml2.spec") CONFIG_FILES="$CONFIG_FILES libxml2.spec:libxml.spec.in" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
+ "include/libxml/Makefile") CONFIG_FILES="$CONFIG_FILES include/libxml/Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "doc/examples/Makefile") CONFIG_FILES="$CONFIG_FILES doc/examples/Makefile" ;;
+ "doc/devhelp/Makefile") CONFIG_FILES="$CONFIG_FILES doc/devhelp/Makefile" ;;
+ "example/Makefile") CONFIG_FILES="$CONFIG_FILES example/Makefile" ;;
+ "python/Makefile") CONFIG_FILES="$CONFIG_FILES python/Makefile" ;;
+ "python/tests/Makefile") CONFIG_FILES="$CONFIG_FILES python/tests/Makefile" ;;
+ "xstc/Makefile") CONFIG_FILES="$CONFIG_FILES xstc/Makefile" ;;
+ "include/libxml/xmlversion.h") CONFIG_FILES="$CONFIG_FILES include/libxml/xmlversion.h" ;;
+ "libxml-2.0.pc") CONFIG_FILES="$CONFIG_FILES libxml-2.0.pc" ;;
+ "libxml-2.0-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES libxml-2.0-uninstalled.pc" ;;
+ "libxml2-config.cmake") CONFIG_FILES="$CONFIG_FILES libxml2-config.cmake" ;;
+ "python/setup.py") CONFIG_FILES="$CONFIG_FILES python/setup.py" ;;
+ "xml2-config") CONFIG_FILES="$CONFIG_FILES xml2-config" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ case $CONFIG_FILES in #(
+ *\'*) :
+ eval set x "$CONFIG_FILES" ;; #(
+ *) :
+ set x $CONFIG_FILES ;; #(
+ *) :
+ ;;
+esac
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$am_mf" : 'X\(//\)[^/]' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$am_mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$am_mf" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { echo "$as_me:$LINENO: cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles" >&5
+ (cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. Try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ { am_dirpart=; unset am_dirpart;}
+ { am_filepart=; unset am_filepart;}
+ { am_mf=; unset am_mf;}
+ { am_rc=; unset am_rc;}
+ rm -f conftest-deps.mk
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive.
+AR_FLAGS=$lt_AR_FLAGS
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+ ;;
+ "python/setup.py":F) chmod +x python/setup.py ;;
+ "xml2-config":F) chmod +x xml2-config ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+echo Done configuring
diff --git a/libxml2-2.9.10/configure.ac b/libxml2-2.9.10/configure.ac
new file mode 100644
index 0000000..07113a8
--- /dev/null
+++ b/libxml2-2.9.10/configure.ac
@@ -0,0 +1,1712 @@
+dnl Process this file with autoconf to produce a configure script.
+AC_PREREQ([2.63])
+AC_INIT
+AC_CONFIG_SRCDIR([entities.c])
+AC_CONFIG_HEADERS([config.h])
+AM_MAINTAINER_MODE([enable])
+AC_CONFIG_MACRO_DIR([m4])
+AC_CANONICAL_HOST
+
+LIBXML_MAJOR_VERSION=2
+LIBXML_MINOR_VERSION=9
+LIBXML_MICRO_VERSION=10
+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_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION`
+
+if test -f CVS/Entries ; then
+ extra=`grep ChangeLog CVS/Entries | grep -v LIBXML | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-CVS$extra"
+ fi
+else if test -d .svn ; then
+ extra=`svn info | grep Revision | sed 's+Revision: ++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-SVN$extra"
+ fi
+else if test -d .git ; then
+ extra=`git describe 2>/dev/null | sed 's+LIBXML[[0-9.]]*-++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-GIT$extra"
+ fi
+fi
+fi
+fi
+AC_SUBST(LIBXML_MAJOR_VERSION)
+AC_SUBST(LIBXML_MINOR_VERSION)
+AC_SUBST(LIBXML_MICRO_VERSION)
+AC_SUBST(LIBXML_VERSION)
+AC_SUBST(LIBXML_VERSION_INFO)
+AC_SUBST(LIBXML_VERSION_NUMBER)
+AC_SUBST(LIBXML_VERSION_EXTRA)
+
+VERSION=${LIBXML_VERSION}
+
+AM_INIT_AUTOMAKE(libxml2, $VERSION)
+
+# Support silent build rules, requires at least automake-1.11. Disable
+# by either passing --disable-silent-rules to configure or passing V=1
+# to make
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+dnl Checks for programs.
+AC_PROG_CC
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MKDIR_P
+AC_PROG_CPP
+AC_PATH_PROG(MV, mv, /bin/mv)
+AC_PATH_PROG(TAR, tar, /bin/tar)
+AC_PATH_PROG(PERL, perl, /usr/bin/perl)
+AC_PATH_PROG(WGET, wget, /usr/bin/wget)
+AC_PATH_PROG(XMLLINT, xmllint, /usr/bin/xmllint)
+AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc)
+PKG_PROG_PKG_CONFIG
+
+LT_INIT
+
+dnl
+dnl if the system support linker version scripts for symbol versioning
+dnl then add it
+dnl
+VERSION_SCRIPT_FLAGS=
+# lt_cv_prog_gnu_ld is from libtool 2.+
+if test "$lt_cv_prog_gnu_ld" = yes; then
+ VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+else
+ case $host in
+ *-*-sunos*) VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,";;
+ esac
+fi
+AC_SUBST(VERSION_SCRIPT_FLAGS)
+AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
+
+dnl
+dnl We process the AC_ARG_WITH first so that later we can modify
+dnl some of them to try to prevent impossible combinations. This
+dnl also allows up so alphabetize the choices
+dnl
+
+dnl
+dnl zlib option might change flags, so we save them initially
+dnl
+_cppflags="${CPPFLAGS}"
+_libs="${LIBS}"
+
+AC_ARG_WITH(c14n,
+[ --with-c14n add the Canonicalization support (on)])
+AC_ARG_WITH(catalog,
+[ --with-catalog add the Catalog support (on)])
+AC_ARG_WITH(debug,
+[ --with-debug add the debugging module (on)])
+AC_ARG_WITH(docbook,
+[ --with-docbook add Docbook SGML support (on)])
+AC_ARG_WITH(fexceptions,
+[ --with-fexceptions add GCC flag -fexceptions for C++ exceptions (off)])
+AC_ARG_WITH(ftp,
+[ --with-ftp add the FTP support (on)])
+AC_ARG_WITH(history,
+[ --with-history add history support to xmllint shell(off)])
+AC_ARG_WITH(html,
+[ --with-html add the HTML support (on)])
+dnl Specific dir for HTML output ?
+AC_ARG_WITH(html-dir, AS_HELP_STRING([--with-html-dir=path],
+ [path to base html directory, default $datadir/doc/html]),
+ [HTML_DIR=$withval], [HTML_DIR='$(datadir)/doc'])
+
+AC_ARG_WITH(html-subdir, AS_HELP_STRING([--with-html-subdir=path],
+ [directory used under html-dir, default $PACKAGE-$VERSION/html]),
+ [test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"],
+ [HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"])
+AC_SUBST(HTML_DIR)
+AC_ARG_WITH(http,
+[ --with-http add the HTTP support (on)])
+AC_ARG_WITH(iconv,
+[ --with-iconv[[=DIR]] add ICONV support (on)])
+AC_ARG_WITH(icu,
+[ --with-icu add ICU support (off)])
+AC_ARG_WITH(iso8859x,
+[ --with-iso8859x add ISO8859X support if no iconv (on)])
+AC_ARG_WITH(legacy,
+[ --with-legacy add deprecated APIs for compatibility (on)])
+AC_ARG_WITH(mem_debug,
+[ --with-mem-debug add the memory debugging module (off)])
+AC_ARG_WITH(minimum,
+[ --with-minimum build a minimally sized library (off)])
+AC_ARG_WITH(output,
+[ --with-output add the serialization support (on)])
+AC_ARG_WITH(pattern,
+[ --with-pattern add the xmlPattern selection interface (on)])
+AC_ARG_WITH(push,
+[ --with-push add the PUSH parser interfaces (on)])
+AC_ARG_WITH(python,
+[ --with-python[[=DIR]] build Python bindings if found])
+AC_ARG_WITH(python_install_dir,
+[ --with-python-install-dir=DIR
+ install Python bindings in DIR])
+AC_ARG_WITH(reader,
+[ --with-reader add the xmlReader parsing interface (on)])
+AC_ARG_WITH(readline,
+[ --with-readline=DIR use readline in DIR],[
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ RDL_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+])
+AC_ARG_WITH(regexps,
+[ --with-regexps add Regular Expressions support (on)])
+AC_ARG_WITH(run_debug,
+[ --with-run-debug add the runtime debugging module (off)])
+AC_ARG_WITH(sax1,
+[ --with-sax1 add the older SAX1 interface (on)])
+AC_ARG_WITH(schemas,
+[ --with-schemas add Relax-NG and Schemas support (on)])
+AC_ARG_WITH(schematron,
+[ --with-schematron add Schematron support (on)])
+AC_ARG_WITH(threads,
+[ --with-threads add multithread support(on)])
+AC_ARG_WITH(thread-alloc,
+[ --with-thread-alloc add per-thread memory(off)])
+AC_ARG_WITH(tree,
+[ --with-tree add the DOM like tree manipulation APIs (on)])
+AC_ARG_WITH(valid,
+[ --with-valid add the DTD validation support (on)])
+AC_ARG_WITH(writer,
+[ --with-writer add the xmlWriter saving interface (on)])
+AC_ARG_WITH(xinclude,
+[ --with-xinclude add the XInclude support (on)])
+AC_ARG_WITH(xpath,
+[ --with-xpath add the XPATH support (on)])
+AC_ARG_WITH(xptr,
+[ --with-xptr add the XPointer support (on)])
+AC_ARG_WITH(modules,
+[ --with-modules add the dynamic modules support (on)])
+AC_ARG_WITH(zlib,
+[ --with-zlib[[=DIR]] use libz in DIR],[
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ Z_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+])
+AC_ARG_WITH(lzma,
+[ --with-lzma[[=DIR]] use liblzma in DIR],[
+ if test "$withval" != "no" -a "$withval" != "yes"; then
+ LZMA_DIR=$withval
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+])
+AC_ARG_WITH(coverage,
+[ --with-coverage build for code coverage with GCC (off)])
+
+AC_ARG_ENABLE(rebuild-docs,
+[ --enable-rebuild-docs[[=yes/no]] rebuild some generated docs [[default=no]]])
+if test "$enable_rebuild_docs" = "yes" -a "$srcdir" != "."; then
+ AC_MSG_ERROR([cannot rebuild docs when builddir != srcdir])
+fi
+AM_CONDITIONAL([REBUILD_DOCS], [test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"])
+
+dnl
+dnl hard dependencies on options
+dnl
+if test "$with_schemas" = "yes"
+then
+ with_pattern=yes
+ with_regexps=yes
+fi
+if test "$with_schematron" = "yes"
+then
+ with_pattern=yes
+ with_tree=yes
+ with_xpath=yes
+fi
+if test "$with_reader" = "yes"
+then
+ with_push=yes
+fi
+if test "$with_xptr" = "yes"
+then
+ with_xpath=yes
+fi
+dnl
+dnl option to build a minimal libxml2 library
+dnl
+if test "$with_minimum" = "yes"
+then
+ echo "Configuring for a minimal library"
+ if test "$with_c14n" = ""
+ then
+ with_c14n=no
+ fi
+ if test "$with_catalog" = ""
+ then
+ with_catalog=no
+ fi
+ echo So far so good!
+ if test "$with_debug" = ""
+ then
+ with_debug=no
+ fi
+ if test "$with_docbook" = ""
+ then
+ with_docbook=no
+ fi
+ if test "$with_fexceptions" = ""
+ then
+ with_fexceptions=no
+ fi
+ if test "$with_ftp" = ""
+ then
+ with_ftp=no
+ fi
+ if test "$with_history" = ""
+ then
+ with_history=no
+ fi
+ if test "$with_html" = ""
+ then
+ with_html=no
+ fi
+ if test "$with_http" = ""
+ then
+ with_http=no
+ fi
+ if test "$with_iconv" = ""
+ then
+ with_iconv=no
+ fi
+ if test "$with_iso8859x" = ""
+ then
+ with_iso8859x=no
+ fi
+ if test "$with_legacy" = ""
+ then
+ with_legacy=no
+ fi
+ if test "$with_mem_debug" = ""
+ then
+ with_mem_debug=no
+ fi
+ if test "$with_output" = ""
+ then
+ with_output=no
+ fi
+ if test "$with_pattern" = ""
+ then
+ with_pattern=no
+ fi
+ if test "$with_push" = ""
+ then
+ with_push=no
+ fi
+ if test "$with_python" = ""
+ then
+ with_python=no
+ fi
+ if test "$with_reader" = ""
+ then
+ with_reader=no
+ fi
+ if test "$with_readline" = ""
+ then
+ with_readline=no
+ fi
+ if test "$with_regexps" = ""
+ then
+ with_regexps=no
+ fi
+ if test "$with_run_debug" = ""
+ then
+ with_run_debug=no
+ fi
+ if test "$with_sax1" = ""
+ then
+ with_sax1=no
+ fi
+ if test "$with_schemas" = ""
+ then
+ with_schemas=no
+ fi
+ if test "$with_schematron" = ""
+ then
+ with_schematron=no
+ fi
+ if test "$with_threads" = ""
+ then
+ with_threads=no
+ fi
+ if test "$with_thread_alloc" = ""
+ then
+ with_thread_alloc=no
+ fi
+ if test "$with_tree" = ""
+ then
+ with_tree=no
+ fi
+ if test "$with_valid" = ""
+ then
+ with_valid=no
+ fi
+ if test "$with_writer" = ""
+ then
+ with_writer=no
+ fi
+ if test "$with_xinclude" = ""
+ then
+ with_xinclude=no
+ fi
+ if test "$with_xpath" = ""
+ then
+ with_xpath=no
+ fi
+ if test "$with_xptr" = ""
+ then
+ with_xptr=no
+ fi
+ if test "$with_zlib" = ""
+ then
+ with_zlib=no
+ fi
+ if test "$with_modules" = ""
+ then
+ with_modules=no
+ fi
+fi
+
+echo Checking zlib
+
+dnl Checks for zlib library.
+
+WITH_ZLIB=0
+if test "$with_zlib" = "no"; then
+ echo "Disabling zlib compression support"
+else
+ # Don't run pkg-config if with_zlib contains a path.
+ if test "x$Z_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+ PKG_CHECK_MODULES([Z],[zlib],
+ [WITH_ZLIB=1],
+ [:])
+ fi
+
+ if test "$WITH_ZLIB" = "0"; then
+ AC_CHECK_HEADERS(zlib.h,
+ AC_CHECK_LIB(z, gzread,[
+ WITH_ZLIB=1
+ if test "x${Z_DIR}" != "x"; then
+ Z_CFLAGS="-I${Z_DIR}/include"
+ Z_LIBS="-L${Z_DIR}/lib -lz"
+ [case ${host} in
+ *-*-solaris*)
+ Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
+ ;;
+ esac]
+ else
+ Z_LIBS="-lz"
+ fi])
+ )
+ fi
+fi
+
+AC_SUBST(Z_CFLAGS)
+AC_SUBST(Z_LIBS)
+AC_SUBST(WITH_ZLIB)
+
+echo Checking lzma
+
+dnl Checks for lzma library.
+
+WITH_LZMA=0
+if test "$with_lzma" = "no"; then
+ echo "Disabling lzma compression support"
+else
+ # Don't run pkg-config if with_lzma contains a path.
+ if test "x$LZMA_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+ PKG_CHECK_MODULES([LZMA],[liblzma],
+ [WITH_LZMA=1],
+ [:])
+ fi
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "$WITH_LZMA" = "0"; then
+ AC_CHECK_HEADERS(lzma.h,
+ AC_CHECK_LIB(lzma, lzma_code,[
+ WITH_LZMA=1
+ if test "x${LZMA_DIR}" != "x"; then
+ LZMA_CFLAGS="-I${LZMA_DIR}/include"
+ LZMA_LIBS="-L${LZMA_DIR}/lib -llzma"
+ else
+ LZMA_LIBS="-llzma"
+ fi])
+ )
+ fi
+fi
+
+AC_SUBST(LZMA_CFLAGS)
+AC_SUBST(LZMA_LIBS)
+AC_SUBST(WITH_LZMA)
+
+CPPFLAGS=${_cppflags}
+LIBS=${_libs}
+
+echo Checking headers
+
+dnl Checks for header files.
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_CHECK_HEADERS([fcntl.h])
+AC_CHECK_HEADERS([unistd.h])
+AC_CHECK_HEADERS([ctype.h])
+AC_CHECK_HEADERS([dirent.h])
+AC_CHECK_HEADERS([errno.h])
+AC_CHECK_HEADERS([malloc.h])
+AC_CHECK_HEADERS([stdarg.h])
+AC_CHECK_HEADERS([sys/stat.h])
+AC_CHECK_HEADERS([sys/types.h])
+AC_CHECK_HEADERS([stdint.h])
+AC_CHECK_HEADERS([inttypes.h])
+AC_CHECK_HEADERS([time.h])
+AC_CHECK_HEADERS([math.h])
+AC_CHECK_HEADERS([limits.h])
+AC_CHECK_HEADERS([float.h])
+AC_CHECK_HEADERS([stdlib.h])
+AC_CHECK_HEADERS([sys/socket.h], [], [],
+[#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+])
+AC_CHECK_HEADERS([netinet/in.h], [], [],
+[#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+])
+AC_CHECK_HEADERS([arpa/inet.h], [], [],
+[#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#if HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+# endif
+])
+AC_CHECK_HEADERS([netdb.h])
+AC_CHECK_HEADERS([sys/time.h])
+AC_CHECK_HEADERS([sys/select.h])
+AC_CHECK_HEADERS([poll.h])
+AC_CHECK_HEADERS([sys/mman.h])
+AC_CHECK_HEADERS([sys/timeb.h])
+AC_CHECK_HEADERS([signal.h])
+AC_CHECK_HEADERS([arpa/nameser.h], [], [],
+[#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+])
+AC_CHECK_HEADERS([resolv.h], [], [],
+[#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#if HAVE_NETINET_IN_H
+# include <netinet/in.h>
+# endif
+#if HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+# endif
+])
+AC_CHECK_HEADERS([dl.h])
+AC_CHECK_HEADERS([dlfcn.h])
+
+
+echo Checking types
+
+AC_TYPE_UINT32_T
+
+
+echo Checking libraries
+
+dnl Checks for library functions.
+AC_FUNC_STRFTIME
+AC_CHECK_FUNCS(strftime localtime gettimeofday ftime)
+AC_CHECK_FUNCS(stat signal)
+AC_CHECK_FUNCS(rand rand_r srand time)
+AC_CHECK_FUNCS(isascii mmap munmap putenv)
+
+AH_VERBATIM([HAVE_MUNMAP_AFTER],[/* mmap() is no good without munmap() */
+#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP)
+# undef /**/ HAVE_MMAP
+#endif])
+
+dnl Checking for va_copy availability
+AC_MSG_CHECKING([for va_copy])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
+va_list ap1,ap2;]], [[va_copy(ap1,ap2);]])],
+have_va_copy=yes,
+have_va_copy=no)
+AC_MSG_RESULT($have_va_copy)
+if test x"$have_va_copy" = x"yes"; then
+ AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
+else
+ AC_MSG_CHECKING([for __va_copy])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
+ va_list ap1,ap2;]], [[__va_copy(ap1,ap2);]])],
+ have___va_copy=yes,
+ have___va_copy=no)
+ AC_MSG_RESULT($have___va_copy)
+ if test x"$have___va_copy" = x"yes"; then
+ AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
+ fi
+fi
+
+dnl Checking whether va_list is an array type
+AC_MSG_CHECKING([whether va_list is an array type])
+AC_TRY_COMPILE2([
+#include <stdarg.h>
+void a(va_list * ap) {}],[
+va_list ap1, ap2; a(&ap1); ap2 = (va_list) ap1],[
+ AC_MSG_RESULT(no)],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([VA_LIST_IS_ARRAY], [1],[Define if va_list is an array type])])
+
+dnl Checks for inet libraries:
+AC_SEARCH_LIBS(gethostent, [nsl])
+AC_SEARCH_LIBS(setsockopt, [socket net network])
+AC_SEARCH_LIBS(connect, [inet])
+
+dnl Determine what socket length (socklen_t) data type is
+AC_MSG_CHECKING([for type of socket length (socklen_t)])
+AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>],[
+(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)],[
+ AC_MSG_RESULT(socklen_t *)
+ XML_SOCKLEN_T=socklen_t],[
+ AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>],[
+(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)],[
+ AC_MSG_RESULT(size_t *)
+ XML_SOCKLEN_T=size_t],[
+ AC_TRY_COMPILE2([
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/socket.h>],[
+(void)getsockopt (1, 1, 1, NULL, (int *)NULL)],[
+ AC_MSG_RESULT(int *)
+ XML_SOCKLEN_T=int],[
+ AC_MSG_WARN(could not determine)
+ XML_SOCKLEN_T="int"])])])
+AC_DEFINE_UNQUOTED(XML_SOCKLEN_T, $XML_SOCKLEN_T, [Determine what socket length (socklen_t) data type is])
+
+dnl Checking if gethostbyname() argument is const.
+AC_MSG_CHECKING([for const gethostbyname() argument])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]],
+ [[(void)gethostbyname((const char *)"");]])],
+have_gethostbyname_const_arg=yes,
+have_gethostbyname_const_arg=no)
+AC_MSG_RESULT($have_gethostbyname_const_arg)
+if test x"$have_gethostbyname_const_arg" = x"yes"; then
+ AC_DEFINE([GETHOSTBYNAME_ARG_CAST], [],
+ [Type cast for the gethostbyname() argument])
+else
+ AC_DEFINE([GETHOSTBYNAME_ARG_CAST], [(char *)],
+ [Type cast for the gethostbyname() argument])
+fi
+
+dnl Checking if send() second argument is const.
+AC_MSG_CHECKING([for const send() second argument])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <sys/socket.h>]],
+ [[(void)send(1,(const char *)"",1,1);]])],
+have_send_const_arg2=yes,
+have_send_const_arg2=no)
+AC_MSG_RESULT($have_send_const_arg2)
+if test x"$have_send_const_arg2" = x"yes"; then
+ AC_DEFINE([SEND_ARG2_CAST], [],
+ [Type cast for the send() function 2nd arg])
+else
+ AC_DEFINE([SEND_ARG2_CAST], [(char *)],
+ [Type cast for the send() function 2nd arg])
+fi
+
+dnl ***********************Checking for availability of IPv6*******************
+
+AC_MSG_CHECKING([whether to enable IPv6])
+AC_ARG_ENABLE(ipv6, [ --enable-ipv6[[=yes/no]] enables compilation of IPv6 code [[default=yes]]],, enable_ipv6=yes)
+if test "$with_minimum" = "yes"
+then
+ enable_ipv6=no
+fi
+if test $enable_ipv6 = yes; then
+ have_ipv6=no
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+# include <sys/types.h>
+# include <sys/socket.h>
+ ]], [[
+ struct sockaddr_storage ss;
+ socket(AF_INET6, SOCK_STREAM, 0)
+ ]])],
+ have_ipv6=yes,
+ have_ipv6=no
+ )
+ AC_MSG_RESULT($have_ipv6)
+
+ if test $have_ipv6 = yes; then
+ AC_DEFINE([SUPPORT_IP6], [], [Support for IPv6])
+ have_broken_ss_family=no
+
+ dnl *********************************************************************
+ dnl on some platforms (like AIX 5L), the structure sockaddr doesn't have
+ dnl a ss_family member, but rather __ss_family. Let's detect that
+ dnl and define the HAVE_BROKEN_SS_FAMILY when we are on one of these
+ dnl platforms. However, we should only do this if ss_family is not
+ dnl present.
+ dnl ********************************************************************
+ AC_MSG_CHECKING([struct sockaddr::ss_family])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+# include <sys/types.h>
+# include <sys/socket.h>
+ ]], [[
+ struct sockaddr_storage ss ;
+ ss.ss_family = 0 ;
+ ]])],
+ have_ss_family=yes,
+ have_ss_family=no
+ )
+ AC_MSG_RESULT($have_ss_family)
+ if test x$have_ss_family = xno ; then
+ AC_MSG_CHECKING([broken struct sockaddr::ss_family])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+# include <sys/types.h>
+# include <sys/socket.h>
+ ]], [[
+ struct sockaddr_storage ss ;
+ ss.__ss_family = 0 ;
+ ]])],
+ have_broken_ss_family=yes,
+ have_broken_ss_family=no
+ )
+ AC_MSG_RESULT($have_broken_ss_family)
+ if test x$have_broken_ss_family = xyes ; then
+ AC_DEFINE(HAVE_BROKEN_SS_FAMILY, [],
+ [Whether struct sockaddr::__ss_family exists])
+ AC_DEFINE(ss_family, __ss_family,
+ [ss_family is not defined here, use __ss_family instead])
+ else
+ AC_MSG_WARN(ss_family and __ss_family not found)
+ fi
+ fi
+
+ have_getaddrinfo=no
+ AC_CHECK_FUNC(getaddrinfo, have_getaddrinfo=yes)
+ if test $have_getaddrinfo != yes; then
+ for lib in bsd socket inet; do
+ AC_CHECK_LIB($lib, getaddrinfo, [LIBS="$LIBS -l$lib";have_getaddrinfo=yes;break])
+ done
+ fi
+
+ if test $have_getaddrinfo = yes; then
+ AC_DEFINE([HAVE_GETADDRINFO], [], [Define if getaddrinfo is there])
+ fi
+ fi
+fi
+
+dnl ******************************End IPv6 checks******************************
+
+dnl Checks for isnan in libm if not in libc
+AC_CHECK_FUNC(isnan, AC_DEFINE([HAVE_ISNAN],[], [Define if isnan is there]) , AC_CHECK_LIB(m, isnan,
+ [AC_DEFINE([HAVE_ISNAN],[], [Define if isnan is there])]))
+
+AC_CHECK_FUNC(isinf, AC_DEFINE([HAVE_ISINF], [], [Define if isinf is there]) , AC_CHECK_LIB(m, isinf,
+ [AC_DEFINE([HAVE_ISINF], [], [Define if isinf is there])]))
+
+XML_LIBDIR='-L${libdir}'
+XML_INCLUDEDIR='-I${includedir}/libxml2'
+
+dnl
+dnl Extra flags
+dnl
+XML_CFLAGS=""
+RDL_LIBS=""
+
+dnl
+dnl Workaround for native compilers
+dnl HP : http://bugs.gnome.org/db/31/3163.html
+dnl DEC : Enable NaN/Inf
+dnl
+if test "${GCC}" != "yes" ; then
+ case "${host}" in
+ hppa*-*-hpux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000"
+ ;;
+ *-dec-osf* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
+ ;;
+ alpha*-*-linux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
+ ;;
+ esac
+else
+ if test "$with_fexceptions" = "yes"
+ then
+ #
+ # Not activated by default because this inflates the code size
+ # Used to allow propagation of C++ exceptions through the library
+ #
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions"
+ fi
+
+ # warnings we'd like to see
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+ # warnings we'd like to supress
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args"
+ case "${host}" in
+ alpha*-*-linux* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
+ ;;
+ alpha*-*-osf* )
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
+ ;;
+ esac
+fi
+case ${host} in
+ *-*-solaris*)
+ XML_LIBDIR="${XML_LIBDIR} -R${libdir}"
+ ;;
+ hppa*-hp-mpeix)
+ NEED_TRIO=1
+ ;;
+ *-*-mingw* | *-*-cygwin* | *-*-msvc* )
+ # If the host is Windows, and shared libraries are disabled, we
+ # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to
+ # work properly (without it, xmlexports.h would force the use of
+ # DLL imports, which obviously aren't present in a static
+ # library).
+ if test "x$enable_shared" = "xno"; then
+ XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC"
+ fi
+ ;;
+esac
+
+
+dnl
+dnl check for python
+dnl
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+PYTHON_SITE_PACKAGES=
+PYTHON_TESTS=
+pythondir=
+if test "$with_python" != "no" ; then
+ if test -x "$with_python/bin/python"
+ then
+ echo Found python in $with_python/bin/python
+ PYTHON="$with_python/bin/python"
+ else
+ if test -x "$with_python/python.exe"
+ then
+ echo Found python in $with_python/python.exe
+ PYTHON="$with_python/python.exe"
+ else
+ if test -x "$with_python"
+ then
+ echo Found python in $with_python
+ PYTHON="$with_python"
+ else
+ if test -x "$PYTHON"
+ then
+ echo Found python in environment PYTHON=$PYTHON
+ with_python=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
+ else
+ AC_PATH_PROG(PYTHON, python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
+ fi
+ fi
+ fi
+ fi
+ if test "$PYTHON" != ""
+ then
+ PYTHON_VERSION=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_version())"`
+ PYTHON_INCLUDES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"`
+# does not work as it produce a /usr/lib/python path instead of/usr/lib64/python
+#
+# PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ echo Found Python version $PYTHON_VERSION
+ fi
+ if test "$PYTHON_VERSION" != "" -a "$PYTHON_INCLUDES" = ""
+ then
+ if test -r $with_python/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
+ else
+ if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
+ else
+ if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
+ else
+ if test -r $with_python/include/Python.h
+ then
+ PYTHON_INCLUDES=$with_python/include
+ else
+ echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test "$with_python_install_dir" != ""
+ then
+ PYTHON_SITE_PACKAGES="$with_python_install_dir"
+ fi
+ if test "$PYTHON_VERSION" != "" -a "$PYTHON_SITE_PACKAGES" = ""
+ then
+ if test -d $libdir/python$PYTHON_VERSION/site-packages
+ then
+ PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
+ else
+ if test -d $with_python/lib/site-packages
+ then
+ PYTHON_SITE_PACKAGES=$with_python/lib/site-packages
+ else
+ PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ fi
+ fi
+ fi
+ pythondir='$(PYTHON_SITE_PACKAGES)'
+ PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags`
+else
+ PYTHON=
+fi
+AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "")
+if test "$PYTHON_INCLUDES" != ""
+then
+ PYTHON_SUBDIR=python
+else
+ PYTHON_SUBDIR=
+fi
+AC_SUBST(pythondir)
+AC_SUBST(PYTHON_SUBDIR)
+AC_SUBST(PYTHON_LIBS)
+
+dnl check for dso support
+WITH_MODULES=0
+TEST_MODULES=
+
+if test "$with_modules" != "no" ; then
+ case "$host" in
+ *-*-cygwin*)
+ MODULE_EXTENSION=".dll"
+ AC_CHECK_LIB(cygwin, dlopen, [
+ WITH_MODULES=1
+ MODULE_PLATFORM_LIBS=
+ AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso])
+ ])
+ ;;
+ *-*-mingw*)
+ MODULE_EXTENSION=".dll"
+ WITH_MODULES=1
+ ;;
+ *)
+ AC_CHECK_FUNC(shl_load, libxml_have_shl_load=yes, [
+ AC_CHECK_LIB(dld, shl_load, [
+ MODULE_PLATFORM_LIBS="-ldld"
+ libxml_have_shl_load=yes], [
+ AC_CHECK_FUNC(dlopen, libxml_have_dlopen=yes, [
+ AC_CHECK_LIB(dl, dlopen, [
+ MODULE_PLATFORM_LIBS="-ldl"
+ libxml_have_dlopen=yes])])])])
+
+ if test "${libxml_have_shl_load}" = "yes"; then
+ MODULE_EXTENSION=".sl"
+ WITH_MODULES=1
+ AC_DEFINE([HAVE_SHLLOAD], [], [Have shl_load based dso])
+ fi
+
+ if test "${libxml_have_dlopen}" = "yes"; then
+ case "${host}" in
+ *-*-hpux* )
+ MODULE_EXTENSION=".sl"
+ ;;
+ * )
+ MODULE_EXTENSION=".so"
+ ;;
+ esac
+
+ WITH_MODULES=1
+ AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso])
+ fi
+ ;;
+ esac
+fi
+
+if test "${WITH_MODULES}" = "1"; then
+ TEST_MODULES="ModuleTests"
+fi
+
+AC_SUBST(WITH_MODULES)
+AC_SUBST(MODULE_PLATFORM_LIBS)
+AC_SUBST(MODULE_EXTENSION)
+AC_SUBST(TEST_MODULES)
+
+dnl
+dnl Tester makes use of readline if present
+dnl
+
+dnl
+dnl specific tests to setup DV and Bill's devel environments with debug etc ...
+dnl (-Wunreachable-code)
+dnl
+if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ]] || \
+ [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ]] || \
+ [[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxml2" ]]
+ then
+ if test "$with_minimum" != "yes"
+ then
+ if test "${with_mem_debug}" = "" ; then
+ echo Activating memory debugging
+ with_mem_debug="yes"
+ with_run_debug="yes"
+ fi
+ if test "${with_docbook}" = "" ; then
+ with_docbook="yes"
+ fi
+ fi
+ if test "${GCC}" = "yes" ; then
+ EXTRA_CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
+ fi
+ STATIC_BINARIES="-static"
+dnl -Wcast-qual -ansi
+else
+ STATIC_BINARIES=
+fi
+AC_SUBST(STATIC_BINARIES)
+
+dnl
+dnl Check for trio string functions
+dnl
+
+if test "${NEED_TRIO}" = "1" ; then
+ echo Adding trio library for string functions
+ WITH_TRIO=1
+else
+ WITH_TRIO=0
+fi
+AM_CONDITIONAL(WITH_TRIO_SOURCES, test "${NEED_TRIO}" = "1")
+AC_SUBST(WITH_TRIO)
+
+dnl
+dnl Allow to enable/disable various pieces
+dnl
+echo Checking configuration requirements
+
+dnl
+dnl Thread-related stuff
+dnl
+THREAD_LIBS=""
+BASE_THREAD_LIBS=""
+WITH_THREADS=0
+THREAD_CFLAGS=""
+TEST_THREADS=""
+THREADS_W32=""
+WITH_THREAD_ALLOC=0
+
+if test "$with_threads" = "no" ; then
+ echo Disabling multithreaded support
+else
+ echo Enabling multithreaded support
+
+ dnl Default to native threads on Windows
+ case $host_os in
+ *mingw*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
+ WITH_THREADS="1"
+ THREADS_W32="1"
+ THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS"
+ fi
+ ;;
+ esac
+
+ dnl Use pthread by default in other cases
+ if test -z "$THREADS_W32"; then
+ if test "$with_threads" = "pthread" || test "$with_threads" = "" || test "$with_threads" = "yes" ; then
+ AC_CHECK_HEADER(pthread.h,
+ AC_CHECK_LIB(pthread, pthread_join,[
+ THREAD_LIBS="-lpthread"
+ AC_DEFINE([HAVE_LIBPTHREAD], [], [Define if pthread library is there (-lpthread)])
+ AC_DEFINE([HAVE_PTHREAD_H], [], [Define if <pthread.h> is there])
+ WITH_THREADS="1"]))
+ fi
+ fi
+
+ case $host_os in
+ *cygwin*) THREAD_LIBS=""
+ ;;
+ *beos*) WITH_THREADS="1"
+ THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
+ ;;
+ *linux*)
+ if test "${GCC}" = "yes" ; then
+ GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
+ GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'`
+ GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[[0-9]]*\.++' | sed 's+\..*++'`
+ if test "${THREAD_LIBS}" = "-lpthread" ; then
+ if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null
+ then
+ THREAD_LIBS=""
+ BASE_THREAD_LIBS="-lpthread"
+ else
+ if expr ${GCC_MAJOR} \> 3 > /dev/null
+ then
+ THREAD_LIBS=""
+ BASE_THREAD_LIBS="-lpthread"
+ else
+ echo old GCC disabling weak symbols for pthread
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "$WITH_THREADS" = "1" ; then
+ THREAD_CFLAGS="$THREAD_CFLAGS -D_REENTRANT"
+ TEST_THREADS="Threadtests"
+ fi
+fi
+if test "$with_thread_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then
+ WITH_THREAD_ALLOC=1
+fi
+
+AC_SUBST(THREAD_LIBS)
+AC_SUBST(BASE_THREAD_LIBS)
+AC_SUBST(WITH_THREADS)
+AC_SUBST(THREAD_CFLAGS)
+AC_SUBST(TEST_THREADS)
+AC_SUBST(WITH_THREAD_ALLOC)
+AM_CONDITIONAL([THREADS_W32],[test -n "$THREADS_W32"])
+
+dnl
+dnl xmllint shell history
+dnl
+if test "$with_history" = "yes" ; then
+ echo Enabling xmllint shell history
+ dnl check for terminal library. this is a very cool solution
+ dnl from octave's configure.in
+ unset tcap
+ for termlib in ncurses curses termcap terminfo termlib; do
+ AC_CHECK_LIB(${termlib}, tputs, [tcap="-l$termlib"])
+ test -n "$tcap" && break
+ done
+
+ AC_CHECK_HEADER(readline/history.h,
+ AC_CHECK_LIB(history, append_history,[
+ RDL_LIBS="-lhistory"
+ AC_DEFINE([HAVE_LIBHISTORY], [], [Define if history library is there (-lhistory)])]))
+ AC_CHECK_HEADER(readline/readline.h,
+ AC_CHECK_LIB(readline, readline,[
+ RDL_LIBS="-lreadline $RDL_LIBS $tcap"
+ AC_DEFINE([HAVE_LIBREADLINE], [], [Define if readline library is there (-lreadline)])], , $tcap))
+ if test -n "$RDL_DIR" -a -n "$RDL_LIBS"; then
+ CPPFLAGS="$CPPFLAGS -I${RDL_DIR}/include"
+ RDL_LIBS="-L${RDL_DIR}/lib $RDL_LIBS"
+ fi
+fi
+
+dnl
+dnl Tree functions
+dnl
+if test "$with_tree" = "no" ; then
+ echo Disabling DOM like tree manipulation APIs
+ WITH_TREE=0
+else
+ WITH_TREE=1
+fi
+AC_SUBST(WITH_TREE)
+
+if test "$with_ftp" = "no" ; then
+ echo Disabling FTP support
+ WITH_FTP=0
+ FTP_OBJ=
+else
+ WITH_FTP=1
+ FTP_OBJ=nanoftp.o
+fi
+AC_SUBST(WITH_FTP)
+AC_SUBST(FTP_OBJ)
+
+if test "$with_http" = "no" ; then
+ echo Disabling HTTP support
+ WITH_HTTP=0
+ HTTP_OBJ=
+else
+ WITH_HTTP=1
+ HTTP_OBJ=nanohttp.o
+fi
+AC_SUBST(WITH_HTTP)
+AC_SUBST(HTTP_OBJ)
+
+if test "$with_legacy" = "no" ; then
+ echo Disabling deprecated APIs
+ WITH_LEGACY=0
+else
+ WITH_LEGACY=1
+fi
+AC_SUBST(WITH_LEGACY)
+
+if test "$with_reader" = "no" ; then
+ echo Disabling the xmlReader parsing interface
+ WITH_READER=0
+ READER_TEST=
+else
+ WITH_READER=1
+ READER_TEST=Readertests
+ if test "$with_push" = "no" ; then
+ echo xmlReader requires Push interface - enabling it
+ with_push=yes
+ fi
+fi
+AC_SUBST(WITH_READER)
+AC_SUBST(READER_TEST)
+
+if test "$with_writer" = "no" ; then
+ echo Disabling the xmlWriter saving interface
+ WITH_WRITER=0
+# WRITER_TEST=
+else
+ WITH_WRITER=1
+# WRITER_TEST=Writertests
+ if test "$with_push" = "no" ; then
+ echo xmlWriter requires Push interface - enabling it
+ with_push=yes
+ fi
+ if test "$with_output" = "no" ; then
+ echo xmlWriter requires Output interface - enabling it
+ with_output=yes
+ fi
+fi
+AC_SUBST(WITH_WRITER)
+#AC_SUBST(WRITER_TEST)
+
+if test "$with_pattern" = "no" ; then
+ echo Disabling the xmlPattern parsing interface
+ WITH_PATTERN=0
+ TEST_PATTERN=
+else
+ WITH_PATTERN=1
+ TEST_PATTERN=Patterntests
+fi
+AC_SUBST(WITH_PATTERN)
+AC_SUBST(TEST_PATTERN)
+
+if test "$with_sax1" = "no" ; then
+ echo Disabling the older SAX1 interface
+ WITH_SAX1=0
+ TEST_SAX=
+else
+ WITH_SAX1=1
+ TEST_SAX=SAXtests
+fi
+AC_SUBST(WITH_SAX1)
+AM_CONDITIONAL(WITH_SAX1_SOURCES, test "${WITH_TRIO}" = "1")
+AC_SUBST(TEST_SAX)
+
+if test "$with_push" = "no" ; then
+ echo Disabling the PUSH parser interfaces
+ WITH_PUSH=0
+ TEST_PUSH=
+else
+ WITH_PUSH=1
+ TEST_PUSH="XMLPushtests"
+fi
+AC_SUBST(WITH_PUSH)
+AC_SUBST(TEST_PUSH)
+
+if test "$with_html" = "no" ; then
+ echo Disabling HTML support
+ WITH_HTML=0
+ HTML_OBJ=
+ TEST_HTML=
+else
+ WITH_HTML=1
+ HTML_OBJ="HTMLparser.o HTMLtree.o"
+ TEST_HTML=HTMLtests
+ if test "$with_push" != "no" ; then
+ TEST_PHTML=HTMLPushtests
+ else
+ TEST_PHTML=
+ fi
+fi
+AC_SUBST(WITH_HTML)
+AC_SUBST(HTML_OBJ)
+AC_SUBST(TEST_HTML)
+AC_SUBST(TEST_PHTML)
+
+if test "$with_valid" = "no" ; then
+ echo Disabling DTD validation support
+ WITH_VALID=0
+ TEST_VALID=
+ TEST_VTIME=
+else
+ WITH_VALID=1
+ TEST_VALID=Validtests
+ TEST_VTIME=VTimingtests
+fi
+AC_SUBST(WITH_VALID)
+AC_SUBST(TEST_VALID)
+AC_SUBST(TEST_VTIME)
+
+if test "$with_catalog" = "no" ; then
+ echo Disabling Catalog support
+ WITH_CATALOG=0
+ CATALOG_OBJ=
+ TEST_CATALOG=
+else
+ WITH_CATALOG=1
+ CATALOG_OBJ="catalog.o"
+ TEST_CATALOG=Catatests
+fi
+AC_SUBST(WITH_CATALOG)
+AC_SUBST(CATALOG_OBJ)
+AC_SUBST(TEST_CATALOG)
+
+if test "$with_docbook" = "no" ; then
+ echo Disabling Docbook support
+ WITH_DOCB=0
+ DOCB_OBJ=
+else
+ WITH_DOCB=1
+ DOCB_OBJ="DOCBparser.o"
+fi
+AC_SUBST(WITH_DOCB)
+AC_SUBST(DOCB_OBJ)
+
+
+if test "$with_xptr" = "no" ; then
+ echo Disabling XPointer support
+ WITH_XPTR=0
+ XPTR_OBJ=
+ TEST_XPTR=
+else
+ WITH_XPTR=1
+ XPTR_OBJ=xpointer.o
+ TEST_XPTR=XPtrtests
+ if test "$with_xpath" = "no" ; then
+ echo XPointer requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+AC_SUBST(WITH_XPTR)
+AC_SUBST(XPTR_OBJ)
+AC_SUBST(TEST_XPTR)
+
+if test "$with_c14n" = "no" ; then
+ echo Disabling C14N support
+ WITH_C14N=0
+ C14N_OBJ=
+ TEST_C14N=
+else
+ WITH_C14N=1
+ C14N_OBJ="c14n.c"
+ TEST_C14N=C14Ntests
+ if test "$with_xpath" = "no" ; then
+ echo C14N requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+AC_SUBST(WITH_C14N)
+AC_SUBST(C14N_OBJ)
+AC_SUBST(TEST_C14N)
+
+if test "$with_xinclude" = "no" ; then
+ echo Disabling XInclude support
+ WITH_XINCLUDE=0
+ XINCLUDE_OBJ=
+ with_xinclude="no"
+ TEST_XINCLUDE=
+else
+ WITH_XINCLUDE=1
+ XINCLUDE_OBJ=xinclude.o
+ TEST_XINCLUDE=XIncludetests
+ if test "$with_xpath" = "no" ; then
+ echo XInclude requires XPath support - enabling it
+ with_xpath=yes
+ fi
+fi
+AC_SUBST(WITH_XINCLUDE)
+AC_SUBST(XINCLUDE_OBJ)
+AC_SUBST(TEST_XINCLUDE)
+
+if test "$with_xptr" = "" -a "$with_xpath" = "no" ; then
+ with_xptr=no
+fi
+
+if test "$with_schematron" = "" -a "$with_xpath" = "no" ; then
+ with_schematron=no
+fi
+
+if test "$with_schematron" = "no" ; then
+ echo "Disabling Schematron support"
+ WITH_SCHEMATRON=0
+ TEST_SCHEMATRON=
+else
+ echo "Enabled Schematron support"
+ WITH_SCHEMATRON=1
+ TEST_SCHEMATRON="Schematrontests"
+ with_xpath=yes
+ with_pattern=yes
+ with_schematron=yes
+fi
+AC_SUBST(WITH_SCHEMATRON)
+AC_SUBST(TEST_SCHEMATRON)
+
+if test "$with_xpath" = "no" ; then
+ echo Disabling XPATH support
+ WITH_XPATH=0
+ XPATH_OBJ=
+ TEST_XPATH=
+else
+ WITH_XPATH=1
+ XPATH_OBJ=xpath.o
+ TEST_XPATH=XPathtests
+fi
+AC_SUBST(WITH_XPATH)
+AC_SUBST(XPATH_OBJ)
+AC_SUBST(TEST_XPATH)
+
+dnl
+dnl output functions
+dnl
+if test "$with_output" = "no" ; then
+ echo Disabling serialization/saving support
+ WITH_OUTPUT=0
+else
+ WITH_OUTPUT=1
+fi
+AC_SUBST(WITH_OUTPUT)
+
+WITH_ICONV=0
+if test "$with_iconv" = "no" ; then
+ echo Disabling ICONV support
+else
+ if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_iconv/include"
+ # Export this since our headers include iconv.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_iconv/include"
+ ICONV_LIBS="-L$with_iconv/lib"
+ fi
+
+ AC_CHECK_HEADER(iconv.h,
+ AC_MSG_CHECKING(for iconv)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
+#include <iconv.h>]],[[
+iconv_t cd = iconv_open ("","");
+iconv (cd, NULL, NULL, NULL, NULL);]])],[
+ AC_MSG_RESULT(yes)
+ WITH_ICONV=1],[
+ AC_MSG_RESULT(no)
+ AC_MSG_CHECKING(for iconv in -liconv)
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICONV_LIBS}"
+ LIBS="${LIBS} -liconv"
+
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
+#include <iconv.h>]],[[
+iconv_t cd = iconv_open ("","");
+iconv (cd, NULL, NULL, NULL, NULL);]])],[
+ AC_MSG_RESULT(yes)
+ WITH_ICONV=1
+ ICONV_LIBS="${ICONV_LIBS} -liconv"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"],[
+ AC_MSG_RESULT(no)
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"])]))
+
+ if test "$WITH_ICONV" = "1" ; then
+ AC_MSG_CHECKING([for iconv declaration])
+ AC_CACHE_VAL(xml_cv_iconv_arg2, [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+]], [])], xml_cv_iconv_arg2="", xml_cv_iconv_arg2="const")])
+
+ xml_cv_iconv_decl="extern size_t iconv (iconv_t cd, $xml_cv_iconv_arg2 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
+ AC_MSG_RESULT([${xml_xxx:-
+ }$xml_cv_iconv_decl])
+ AC_DEFINE_UNQUOTED(ICONV_CONST, $xml_cv_iconv_arg2,
+ [Define as const if the declaration of iconv() needs const.])
+ fi
+fi
+case "$host" in
+ *mingw*) M_LIBS=""
+ ;;
+ *beos*) M_LIBS=""
+ ;;
+ *haiku*) M_LIBS=""
+ ;;
+ *) M_LIBS="-lm"
+ ;;
+esac
+AC_SUBST(WITH_ICONV)
+
+WITH_ICU=0
+ICU_LIBS=""
+if test "$with_icu" != "yes" ; then
+ echo Disabling ICU support
+else
+ # Try pkg-config first so that static linking works.
+ # If this succeeeds, we ignore the WITH_ICU directory.
+ PKG_CHECK_MODULES([ICU],[icu-i18n],
+ [have_libicu=yes],
+ [have_libicu=no])
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "x$have_libicu" = "xno"; then
+ ICU_CONFIG=icu-config
+ if ${ICU_CONFIG} --cflags >/dev/null 2>&1
+ then
+ ICU_LIBS=`${ICU_CONFIG} --ldflags`
+ have_libicu=yes
+ echo Enabling ICU support
+ else
+ if test "$with_icu" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_icu"
+ # Export this since our headers include icu.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_icu"
+ fi
+
+ AC_CHECK_HEADER(unicode/ucnv.h,
+ AC_MSG_CHECKING(for icu)
+ AC_TRY_LINK([#include <unicode/ucnv.h>],[
+ UConverter *utf = ucnv_open("UTF-8", NULL);],[
+ AC_MSG_RESULT(yes)
+ have_libicu=yes],[
+ AC_MSG_RESULT(no)
+ AC_MSG_CHECKING(for icu in -licucore)
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICU_LIBS}"
+ LIBS="${LIBS} -licucore"
+
+ AC_TRY_LINK([#include <unicode/ucnv.h>],[
+ UConverter *utf = ucnv_open("UTF-8", NULL);],[
+ AC_MSG_RESULT(yes)
+ have_libicu=yes
+ ICU_LIBS="${ICU_LIBS} -licucore"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"],[
+ AC_MSG_RESULT(no)
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"])]))
+ fi
+ fi
+
+ # Found the library via either method?
+ if test "x$have_libicu" = "xyes"; then
+ WITH_ICU=1
+ fi
+fi
+XML_LIBS="-lxml2"
+XML_PRIVATE_LIBS="$Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $M_LIBS $LIBS"
+XML_LIBTOOLLIBS="libxml2.la"
+AC_SUBST(WITH_ICU)
+
+WITH_ISO8859X=1
+if test "$WITH_ICONV" != "1" ; then
+if test "$with_iso8859x" = "no" ; then
+ echo Disabling ISO8859X support
+ WITH_ISO8859X=0
+fi
+fi
+AC_SUBST(WITH_ISO8859X)
+
+if test "$with_schemas" = "no" ; then
+ echo "Disabling Schemas/Relax-NG support"
+ WITH_SCHEMAS=0
+ TEST_SCHEMAS=
+else
+ echo "Enabled Schemas/Relax-NG support"
+ WITH_SCHEMAS=1
+ TEST_SCHEMAS="Schemastests Relaxtests"
+ if test "$PYTHON_INCLUDES" != "" ; then
+ PYTHON_TESTS="$PYTHON_TESTS RelaxNGPythonTests SchemasPythonTests"
+ fi
+ with_regexps=yes
+fi
+AC_SUBST(WITH_SCHEMAS)
+AC_SUBST(TEST_SCHEMAS)
+
+if test "$with_regexps" = "no" ; then
+ echo Disabling Regexps support
+ WITH_REGEXPS=0
+ TEST_REGEXPS=
+else
+ WITH_REGEXPS=1
+ TEST_REGEXPS="Regexptests Automatatests"
+fi
+AC_SUBST(WITH_REGEXPS)
+AC_SUBST(TEST_REGEXPS)
+
+if test "$with_debug" = "no" ; then
+ echo Disabling DEBUG support
+ WITH_DEBUG=0
+ DEBUG_OBJ=
+ TEST_DEBUG=
+else
+ WITH_DEBUG=1
+ DEBUG_OBJ=debugXML.o
+ TEST_DEBUG=Scripttests
+fi
+AC_SUBST(WITH_DEBUG)
+AC_SUBST(DEBUG_OBJ)
+AC_SUBST(TEST_DEBUG)
+
+if test "$with_mem_debug" = "yes" ; then
+ if test "$with_thread_alloc" = "yes" ; then
+ echo Disabling memory debug - cannot use mem-debug with thread-alloc!
+ WITH_MEM_DEBUG=0
+ else
+ echo Enabling memory debug support
+ WITH_MEM_DEBUG=1
+ fi
+else
+ WITH_MEM_DEBUG=0
+fi
+AC_SUBST(WITH_MEM_DEBUG)
+
+if test "$with_run_debug" = "yes" ; then
+ echo Enabling runtime debug support
+ WITH_RUN_DEBUG=1
+else
+ WITH_RUN_DEBUG=0
+fi
+AC_SUBST(WITH_RUN_DEBUG)
+
+WIN32_EXTRA_LIBADD=
+WIN32_EXTRA_LDFLAGS=
+CYGWIN_EXTRA_LDFLAGS=
+CYGWIN_EXTRA_PYTHON_LIBADD=
+WIN32_EXTRA_PYTHON_LIBADD=
+case "$host" in
+ *-*-mingw*)
+ CPPFLAGS="$CPPFLAGS -DWIN32"
+ WIN32_EXTRA_LIBADD="-lws2_32"
+ WIN32_EXTRA_LDFLAGS="-no-undefined"
+ if test "${PYTHON}" != ""
+ then
+ case "$host" in
+ *-w64-mingw*)
+ WIN32_EXTRA_PYTHON_LIBADD="-shrext .pyd -L${pythondir}/../../lib -lpython${PYTHON_VERSION}"
+ ;;
+ *)
+ WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)"
+ ;;
+ esac
+ fi
+ ;;
+ *-*-cygwin*)
+ CYGWIN_EXTRA_LDFLAGS="-no-undefined"
+ if test "${PYTHON}" != ""
+ then
+ CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
+ fi
+ ;;
+esac
+AC_SUBST(WIN32_EXTRA_LIBADD)
+AC_SUBST(WIN32_EXTRA_LDFLAGS)
+AC_SUBST(WIN32_EXTRA_PYTHON_LIBADD)
+AC_SUBST(CYGWIN_EXTRA_LDFLAGS)
+AC_SUBST(CYGWIN_EXTRA_PYTHON_LIBADD)
+
+dnl Checking the standard string functions availability
+dnl
+dnl Note mingw* has C99 implementation that produce expected xml numbers
+dnl if code use {v}snprintf functions.
+dnl If you like to activate at run-time C99 compatible number output
+dnl see release note for mingw runtime 3.15:
+dnl http://sourceforge.net/project/shownotes.php?release_id=24832
+dnl
+dnl Also *win32*config.h files redefine them for various MSC compilers.
+dnl
+dnl So do not redefine {v}snprintf to _{v}snprintf like follwing:
+dnl AC_DEFINE([snprintf],[_snprintf],[Win32 Std C name mangling work-around])
+dnl AC_DEFINE([vsnprintf],[_vsnprintf],[Win32 Std C name mangling work-around])
+dnl and do not redefine those functions is C-source files.
+dnl
+AC_CHECK_FUNCS(printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf,,
+ NEED_TRIO=1)
+
+if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
+then
+ echo Enabling code coverage for GCC
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage"
+ LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage"
+else
+ echo Disabling code coverage for GCC
+fi
+
+AC_SUBST(CPPFLAGS)
+AC_SUBST(EXTRA_CFLAGS)
+AC_SUBST(LDFLAGS)
+AC_SUBST(XML_CFLAGS)
+
+AC_SUBST(XML_LIBDIR)
+AC_SUBST(XML_LIBS)
+AC_SUBST(XML_PRIVATE_LIBS)
+AC_SUBST(XML_LIBTOOLLIBS)
+AC_SUBST(ICONV_LIBS)
+AC_SUBST(ICU_LIBS)
+AC_SUBST(XML_INCLUDEDIR)
+AC_SUBST(HTML_DIR)
+AC_SUBST(HAVE_ISNAN)
+AC_SUBST(HAVE_ISINF)
+AC_SUBST(PYTHON)
+AC_SUBST(PYTHON_VERSION)
+AC_SUBST(PYTHON_INCLUDES)
+AC_SUBST(PYTHON_SITE_PACKAGES)
+
+AC_SUBST(M_LIBS)
+AC_SUBST(RDL_LIBS)
+
+dnl for the spec file
+RELDATE=`date +'%a %b %e %Y'`
+AC_SUBST(RELDATE)
+AC_SUBST(PYTHON_TESTS)
+
+rm -f COPYING.LIB COPYING
+ln -s $srcdir/Copyright COPYING
+
+# keep on one line for cygwin c.f. #130896
+AC_CONFIG_FILES([libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h libxml-2.0.pc libxml-2.0-uninstalled.pc libxml2-config.cmake])
+AC_CONFIG_FILES([python/setup.py], [chmod +x python/setup.py])
+AC_CONFIG_FILES([xml2-config], [chmod +x xml2-config])
+AC_OUTPUT
+
+echo Done configuring
diff --git a/libxml2-2.9.10/dbgen.pl b/libxml2-2.9.10/dbgen.pl
new file mode 100755
index 0000000..1383d6e
--- /dev/null
+++ b/libxml2-2.9.10/dbgen.pl
@@ -0,0 +1,43 @@
+#!/usr/bin/perl
+
+$size = shift;
+
+if ($size eq "")
+{
+ die "usage: dbgen.pl [size]\n";
+}
+
+@firstnames = ("Al", "Bob", "Charles", "David", "Egon", "Farbood",
+ "George", "Hank", "Inki", "James");
+@lastnames = ("Aranow", "Barker", "Corsetti", "Dershowitz", "Engleman",
+ "Franklin", "Grice", "Haverford", "Ilvedson", "Jones");
+@states = ("AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA",
+ "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD",
+ "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ",
+ "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC",
+ "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY");
+
+print "<?xml version=\"1.0\"?>\n";
+print "\n";
+print "<table>\n";
+
+for ($i=0; $i<$size; $i++)
+{
+ $first = $firstnames [$i % 10];
+ $last = $lastnames [($i / 10) % 10];
+ $state = $states [($i / 100) % 50];
+ $zip = 22000 + $i / 5000;
+
+ printf " <row>\n";
+ printf " <id>%04d</id>\n", $i;
+ printf " <firstname>$first</firstname>\n", $i;
+ printf " <lastname>$last</lastname>\n", $i;
+ printf " <street>%d Any St.</street>\n", ($i % 100) + 1;
+ printf " <city>Anytown</city>\n";
+ printf " <state>$state</state>\n";
+ printf " <zip>%d</zip>\n", $zip;
+ printf " </row>\n";
+}
+
+print "</table>\n";
+
diff --git a/libxml2-2.9.10/dbgenattr.pl b/libxml2-2.9.10/dbgenattr.pl
new file mode 100755
index 0000000..dce11cd
--- /dev/null
+++ b/libxml2-2.9.10/dbgenattr.pl
@@ -0,0 +1,42 @@
+#!/usr/bin/perl
+
+$size = shift;
+
+if ($size eq "")
+{
+ die "usage: dbgen.pl [size]\n";
+}
+
+@firstnames = ("Al", "Bob", "Charles", "David", "Egon", "Farbood",
+ "George", "Hank", "Inki", "James");
+@lastnames = ("Aranow", "Barker", "Corsetti", "Dershowitz", "Engleman",
+ "Franklin", "Grice", "Haverford", "Ilvedson", "Jones");
+@states = ("AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA",
+ "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD",
+ "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ",
+ "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC",
+ "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY");
+
+print "<?xml version=\"1.0\"?>\n";
+print "\n";
+print "<table>\n";
+
+for ($i=0; $i<$size; $i++)
+{
+ $first = $firstnames [$i % 10];
+ $last = $lastnames [($i / 10) % 10];
+ $state = $states [($i / 100) % 50];
+ $zip = 22000 + $i / 5000;
+
+ printf " <row\n";
+ printf " id='%04d'\n", $i;
+ printf " firstname='$first'\n", $i;
+ printf " lastname='$last'\n", $i;
+ printf " street='%d Any St.'\n", ($i % 100) + 1;
+ printf " city='Anytown'\n";
+ printf " state='$state'\n";
+ printf " zip='%d'/>\n", $zip;
+}
+
+print "</table>\n";
+
diff --git a/libxml2-2.9.10/debugXML.c b/libxml2-2.9.10/debugXML.c
new file mode 100644
index 0000000..d855555
--- /dev/null
+++ b/libxml2-2.9.10/debugXML.c
@@ -0,0 +1,3423 @@
+/*
+ * debugXML.c : This is a set of routines used for debugging the tree
+ * produced by the XML parser.
+ *
+ * See Copyright for the status of this software.
+ *
+ * Daniel Veillard <daniel@veillard.com>
+ */
+
+#define IN_LIBXML
+#include "libxml.h"
+#ifdef LIBXML_DEBUG_ENABLED
+
+#include <string.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
+#include <libxml/valid.h>
+#include <libxml/debugXML.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/HTMLparser.h>
+#include <libxml/xmlerror.h>
+#include <libxml/globals.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/uri.h>
+#ifdef LIBXML_SCHEMAS_ENABLED
+#include <libxml/relaxng.h>
+#endif
+
+#define DUMP_TEXT_TYPE 1
+
+typedef struct _xmlDebugCtxt xmlDebugCtxt;
+typedef xmlDebugCtxt *xmlDebugCtxtPtr;
+struct _xmlDebugCtxt {
+ FILE *output; /* the output file */
+ char shift[101]; /* used for indenting */
+ int depth; /* current depth */
+ xmlDocPtr doc; /* current document */
+ xmlNodePtr node; /* current node */
+ xmlDictPtr dict; /* the doc dictionary */
+ int check; /* do just checkings */
+ int errors; /* number of errors found */
+ int nodict; /* if the document has no dictionary */
+ int options; /* options */
+};
+
+static void xmlCtxtDumpNodeList(xmlDebugCtxtPtr ctxt, xmlNodePtr node);
+
+static void
+xmlCtxtDumpInitCtxt(xmlDebugCtxtPtr ctxt)
+{
+ int i;
+
+ ctxt->depth = 0;
+ ctxt->check = 0;
+ ctxt->errors = 0;
+ ctxt->output = stdout;
+ ctxt->doc = NULL;
+ ctxt->node = NULL;
+ ctxt->dict = NULL;
+ ctxt->nodict = 0;
+ ctxt->options = 0;
+ for (i = 0; i < 100; i++)
+ ctxt->shift[i] = ' ';
+ ctxt->shift[100] = 0;
+}
+
+static void
+xmlCtxtDumpCleanCtxt(xmlDebugCtxtPtr ctxt ATTRIBUTE_UNUSED)
+{
+ /* remove the ATTRIBUTE_UNUSED when this is added */
+}
+
+/**
+ * xmlNsCheckScope:
+ * @node: the node
+ * @ns: the namespace node
+ *
+ * Check that a given namespace is in scope on a node.
+ *
+ * Returns 1 if in scope, -1 in case of argument error,
+ * -2 if the namespace is not in scope, and -3 if not on
+ * an ancestor node.
+ */
+static int
+xmlNsCheckScope(xmlNodePtr node, xmlNsPtr ns)
+{
+ xmlNsPtr cur;
+
+ if ((node == NULL) || (ns == NULL))
+ return(-1);
+
+ if ((node->type != XML_ELEMENT_NODE) &&
+ (node->type != XML_ATTRIBUTE_NODE) &&
+ (node->type != XML_DOCUMENT_NODE) &&
+ (node->type != XML_TEXT_NODE) &&
+ (node->type != XML_HTML_DOCUMENT_NODE) &&
+ (node->type != XML_XINCLUDE_START))
+ return(-2);
+
+ while ((node != NULL) &&
+ ((node->type == XML_ELEMENT_NODE) ||
+ (node->type == XML_ATTRIBUTE_NODE) ||
+ (node->type == XML_TEXT_NODE) ||
+ (node->type == XML_XINCLUDE_START))) {
+ if ((node->type == XML_ELEMENT_NODE) ||
+ (node->type == XML_XINCLUDE_START)) {
+ cur = node->nsDef;
+ while (cur != NULL) {
+ if (cur == ns)
+ return(1);
+ if (xmlStrEqual(cur->prefix, ns->prefix))
+ return(-2);
+ cur = cur->next;
+ }
+ }
+ node = node->parent;
+ }
+ /* the xml namespace may be declared on the document node */
+ if ((node != NULL) &&
+ ((node->type == XML_DOCUMENT_NODE) ||
+ (node->type == XML_HTML_DOCUMENT_NODE))) {
+ xmlNsPtr oldNs = ((xmlDocPtr) node)->oldNs;
+ if (oldNs == ns)
+ return(1);
+ }
+ return(-3);
+}
+
+static void
+xmlCtxtDumpSpaces(xmlDebugCtxtPtr ctxt)
+{
+ if (ctxt->check)
+ return;
+ if ((ctxt->output != NULL) && (ctxt->depth > 0)) {
+ if (ctxt->depth < 50)
+ fprintf(ctxt->output, "%s", &ctxt->shift[100 - 2 * ctxt->depth]);
+ else
+ fprintf(ctxt->output, "%s", ctxt->shift);
+ }
+}
+
+/**
+ * xmlDebugErr:
+ * @ctxt: a debug context
+ * @error: the error code
+ *
+ * Handle a debug error.
+ */
+static void
+xmlDebugErr(xmlDebugCtxtPtr ctxt, int error, const char *msg)
+{
+ ctxt->errors++;
+ __xmlRaiseError(NULL, NULL, NULL,
+ NULL, ctxt->node, XML_FROM_CHECK,
+ error, XML_ERR_ERROR, NULL, 0,
+ NULL, NULL, NULL, 0, 0,
+ "%s", msg);
+}
+static void LIBXML_ATTR_FORMAT(3,0)
+xmlDebugErr2(xmlDebugCtxtPtr ctxt, int error, const char *msg, int extra)
+{
+ ctxt->errors++;
+ __xmlRaiseError(NULL, NULL, NULL,
+ NULL, ctxt->node, XML_FROM_CHECK,
+ error, XML_ERR_ERROR, NULL, 0,
+ NULL, NULL, NULL, 0, 0,
+ msg, extra);
+}
+static void LIBXML_ATTR_FORMAT(3,0)
+xmlDebugErr3(xmlDebugCtxtPtr ctxt, int error, const char *msg, const char *extra)
+{
+ ctxt->errors++;
+ __xmlRaiseError(NULL, NULL, NULL,
+ NULL, ctxt->node, XML_FROM_CHECK,
+ error, XML_ERR_ERROR, NULL, 0,
+ NULL, NULL, NULL, 0, 0,
+ msg, extra);
+}
+
+/**
+ * xmlCtxtNsCheckScope:
+ * @ctxt: the debugging context
+ * @node: the node
+ * @ns: the namespace node
+ *
+ * Report if a given namespace is is not in scope.
+ */
+static void
+xmlCtxtNsCheckScope(xmlDebugCtxtPtr ctxt, xmlNodePtr node, xmlNsPtr ns)
+{
+ int ret;
+
+ ret = xmlNsCheckScope(node, ns);
+ if (ret == -2) {
+ if (ns->prefix == NULL)
+ xmlDebugErr(ctxt, XML_CHECK_NS_SCOPE,
+ "Reference to default namespace not in scope\n");
+ else
+ xmlDebugErr3(ctxt, XML_CHECK_NS_SCOPE,
+ "Reference to namespace '%s' not in scope\n",
+ (char *) ns->prefix);
+ }
+ if (ret == -3) {
+ if (ns->prefix == NULL)
+ xmlDebugErr(ctxt, XML_CHECK_NS_ANCESTOR,
+ "Reference to default namespace not on ancestor\n");
+ else
+ xmlDebugErr3(ctxt, XML_CHECK_NS_ANCESTOR,
+ "Reference to namespace '%s' not on ancestor\n",
+ (char *) ns->prefix);
+ }
+}
+
+/**
+ * xmlCtxtCheckString:
+ * @ctxt: the debug context
+ * @str: the string
+ *
+ * Do debugging on the string, currently it just checks the UTF-8 content
+ */
+static void
+xmlCtxtCheckString(xmlDebugCtxtPtr ctxt, const xmlChar * str)
+{
+ if (str == NULL) return;
+ if (ctxt->check) {
+ if (!xmlCheckUTF8(str)) {
+ xmlDebugErr3(ctxt, XML_CHECK_NOT_UTF8,
+ "String is not UTF-8 %s", (const char *) str);
+ }
+ }
+}
+
+/**
+ * xmlCtxtCheckName:
+ * @ctxt: the debug context
+ * @name: the name
+ *
+ * Do debugging on the name, for example the dictionary status and
+ * conformance to the Name production.
+ */
+static void
+xmlCtxtCheckName(xmlDebugCtxtPtr ctxt, const xmlChar * name)
+{
+ if (ctxt->check) {
+ if (name == NULL) {
+ xmlDebugErr(ctxt, XML_CHECK_NO_NAME, "Name is NULL");
+ return;
+ }
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
+ if (xmlValidateName(name, 0)) {
+ xmlDebugErr3(ctxt, XML_CHECK_NOT_NCNAME,
+ "Name is not an NCName '%s'", (const char *) name);
+ }
+#endif
+ if ((ctxt->dict != NULL) &&
+ (!xmlDictOwns(ctxt->dict, name)) &&
+ ((ctxt->doc == NULL) ||
+ ((ctxt->doc->parseFlags & (XML_PARSE_SAX1 | XML_PARSE_NODICT)) == 0))) {
+ xmlDebugErr3(ctxt, XML_CHECK_OUTSIDE_DICT,
+ "Name is not from the document dictionary '%s'",
+ (const char *) name);
+ }
+ }
+}
+
+static void
+xmlCtxtGenericNodeCheck(xmlDebugCtxtPtr ctxt, xmlNodePtr node) {
+ xmlDocPtr doc;
+ xmlDictPtr dict;
+
+ doc = node->doc;
+
+ if (node->parent == NULL)
+ xmlDebugErr(ctxt, XML_CHECK_NO_PARENT,
+ "Node has no parent\n");
+ if (node->doc == NULL) {
+ xmlDebugErr(ctxt, XML_CHECK_NO_DOC,
+ "Node has no doc\n");
+ dict = NULL;
+ } else {
+ dict = doc->dict;
+ if ((dict == NULL) && (ctxt->nodict == 0)) {
+#if 0
+ /* deactivated right now as it raises too many errors */
+ if (doc->type == XML_DOCUMENT_NODE)
+ xmlDebugErr(ctxt, XML_CHECK_NO_DICT,
+ "Document has no dictionary\n");
+#endif
+ ctxt->nodict = 1;
+ }
+ if (ctxt->doc == NULL)
+ ctxt->doc = doc;
+
+ if (ctxt->dict == NULL) {
+ ctxt->dict = dict;
+ }
+ }
+ if ((node->parent != NULL) && (node->doc != node->parent->doc) &&
+ (!xmlStrEqual(node->name, BAD_CAST "pseudoroot")))
+ xmlDebugErr(ctxt, XML_CHECK_WRONG_DOC,
+ "Node doc differs from parent's one\n");
+ if (node->prev == NULL) {
+ if (node->type == XML_ATTRIBUTE_NODE) {
+ if ((node->parent != NULL) &&
+ (node != (xmlNodePtr) node->parent->properties))
+ xmlDebugErr(ctxt, XML_CHECK_NO_PREV,
+ "Attr has no prev and not first of attr list\n");
+
+ } else if ((node->parent != NULL) && (node->parent->children != node))
+ xmlDebugErr(ctxt, XML_CHECK_NO_PREV,
+ "Node has no prev and not first of parent list\n");
+ } else {
+ if (node->prev->next != node)
+ xmlDebugErr(ctxt, XML_CHECK_WRONG_PREV,
+ "Node prev->next : back link wrong\n");
+ }
+ if (node->next == NULL) {
+ if ((node->parent != NULL) && (node->type != XML_ATTRIBUTE_NODE) &&
+ (node->parent->last != node) &&
+ (node->parent->type == XML_ELEMENT_NODE))
+ xmlDebugErr(ctxt, XML_CHECK_NO_NEXT,
+ "Node has no next and not last of parent list\n");
+ } else {
+ if (node->next->prev != node)
+ xmlDebugErr(ctxt, XML_CHECK_WRONG_NEXT,
+ "Node next->prev : forward link wrong\n");
+ if (node->next->parent != node->parent)
+ xmlDebugErr(ctxt, XML_CHECK_WRONG_PARENT,
+ "Node next->prev : forward link wrong\n");
+ }
+ if (node->type == XML_ELEMENT_NODE) {
+ xmlNsPtr ns;
+
+ ns = node->nsDef;
+ while (ns != NULL) {
+ xmlCtxtNsCheckScope(ctxt, node, ns);
+ ns = ns->next;
+ }
+ if (node->ns != NULL)
+ xmlCtxtNsCheckScope(ctxt, node, node->ns);
+ } else if (node->type == XML_ATTRIBUTE_NODE) {
+ if (node->ns != NULL)
+ xmlCtxtNsCheckScope(ctxt, node, node->ns);
+ }
+
+ if ((node->type != XML_ELEMENT_NODE) &&
+ (node->type != XML_ATTRIBUTE_NODE) &&
+ (node->type != XML_ELEMENT_DECL) &&
+ (node->type != XML_ATTRIBUTE_DECL) &&
+ (node->type != XML_DTD_NODE) &&
+ (node->type != XML_HTML_DOCUMENT_NODE) &&
+ (node->type != XML_DOCUMENT_NODE)) {
+ if (node->content != NULL)
+ xmlCtxtCheckString(ctxt, (const xmlChar *) node->content);
+ }
+ switch (node->type) {
+ case XML_ELEMENT_NODE:
+ case XML_ATTRIBUTE_NODE:
+ xmlCtxtCheckName(ctxt, node->name);
+ break;
+ case XML_TEXT_NODE:
+ if ((node->name == xmlStringText) ||
+ (node->name == xmlStringTextNoenc))
+ break;
+ /* some case of entity substitution can lead to this */
+ if ((ctxt->dict != NULL) &&
+ (node->name == xmlDictLookup(ctxt->dict, BAD_CAST "nbktext",
+ 7)))
+ break;
+
+ xmlDebugErr3(ctxt, XML_CHECK_WRONG_NAME,
+ "Text node has wrong name '%s'",
+ (const char *) node->name);
+ break;
+ case XML_COMMENT_NODE:
+ if (node->name == xmlStringComment)
+ break;
+ xmlDebugErr3(ctxt, XML_CHECK_WRONG_NAME,
+ "Comment node has wrong name '%s'",
+ (const char *) node->name);
+ break;
+ case XML_PI_NODE:
+ xmlCtxtCheckName(ctxt, node->name);
+ break;
+ case XML_CDATA_SECTION_NODE:
+ if (node->name == NULL)
+ break;
+ xmlDebugErr3(ctxt, XML_CHECK_NAME_NOT_NULL,
+ "CData section has non NULL name '%s'",
+ (const char *) node->name);
+ break;
+ case XML_ENTITY_REF_NODE:
+ case XML_ENTITY_NODE:
+ case XML_DOCUMENT_TYPE_NODE:
+ case XML_DOCUMENT_FRAG_NODE:
+ case XML_NOTATION_NODE:
+ case XML_DTD_NODE:
+ case XML_ELEMENT_DECL:
+ case XML_ATTRIBUTE_DECL:
+ case XML_ENTITY_DECL:
+ case XML_NAMESPACE_DECL:
+ case XML_XINCLUDE_START:
+ case XML_XINCLUDE_END:
+#ifdef LIBXML_DOCB_ENABLED
+ case XML_DOCB_DOCUMENT_NODE:
+#endif
+ case XML_DOCUMENT_NODE:
+ case XML_HTML_DOCUMENT_NODE:
+ break;
+ }
+}
+
+static void
+xmlCtxtDumpString(xmlDebugCtxtPtr ctxt, const xmlChar * str)
+{
+ int i;
+
+ if (ctxt->check) {
+ return;
+ }
+ /* TODO: check UTF8 content of the string */
+ if (str == NULL) {
+ fprintf(ctxt->output, "(NULL)");
+ return;
+ }
+ for (i = 0; i < 40; i++)
+ if (str[i] == 0)
+ return;
+ else if (IS_BLANK_CH(str[i]))
+ fputc(' ', ctxt->output);
+ else if (str[i] >= 0x80)
+ fprintf(ctxt->output, "#%X", str[i]);
+ else
+ fputc(str[i], ctxt->output);
+ fprintf(ctxt->output, "...");
+}
+
+static void
+xmlCtxtDumpDtdNode(xmlDebugCtxtPtr ctxt, xmlDtdPtr dtd)
+{
+ xmlCtxtDumpSpaces(ctxt);
+
+ if (dtd == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "DTD node is NULL\n");
+ return;
+ }
+
+ if (dtd->type != XML_DTD_NODE) {
+ xmlDebugErr(ctxt, XML_CHECK_NOT_DTD,
+ "Node is not a DTD");
+ return;
+ }
+ if (!ctxt->check) {
+ if (dtd->name != NULL)
+ fprintf(ctxt->output, "DTD(%s)", (char *) dtd->name);
+ else
+ fprintf(ctxt->output, "DTD");
+ if (dtd->ExternalID != NULL)
+ fprintf(ctxt->output, ", PUBLIC %s", (char *) dtd->ExternalID);
+ if (dtd->SystemID != NULL)
+ fprintf(ctxt->output, ", SYSTEM %s", (char *) dtd->SystemID);
+ fprintf(ctxt->output, "\n");
+ }
+ /*
+ * Do a bit of checking
+ */
+ xmlCtxtGenericNodeCheck(ctxt, (xmlNodePtr) dtd);
+}
+
+static void
+xmlCtxtDumpAttrDecl(xmlDebugCtxtPtr ctxt, xmlAttributePtr attr)
+{
+ xmlCtxtDumpSpaces(ctxt);
+
+ if (attr == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "Attribute declaration is NULL\n");
+ return;
+ }
+ if (attr->type != XML_ATTRIBUTE_DECL) {
+ xmlDebugErr(ctxt, XML_CHECK_NOT_ATTR_DECL,
+ "Node is not an attribute declaration");
+ return;
+ }
+ if (attr->name != NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "ATTRDECL(%s)", (char *) attr->name);
+ } else
+ xmlDebugErr(ctxt, XML_CHECK_NO_NAME,
+ "Node attribute declaration has no name");
+ if (attr->elem != NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, " for %s", (char *) attr->elem);
+ } else
+ xmlDebugErr(ctxt, XML_CHECK_NO_ELEM,
+ "Node attribute declaration has no element name");
+ if (!ctxt->check) {
+ switch (attr->atype) {
+ case XML_ATTRIBUTE_CDATA:
+ fprintf(ctxt->output, " CDATA");
+ break;
+ case XML_ATTRIBUTE_ID:
+ fprintf(ctxt->output, " ID");
+ break;
+ case XML_ATTRIBUTE_IDREF:
+ fprintf(ctxt->output, " IDREF");
+ break;
+ case XML_ATTRIBUTE_IDREFS:
+ fprintf(ctxt->output, " IDREFS");
+ break;
+ case XML_ATTRIBUTE_ENTITY:
+ fprintf(ctxt->output, " ENTITY");
+ break;
+ case XML_ATTRIBUTE_ENTITIES:
+ fprintf(ctxt->output, " ENTITIES");
+ break;
+ case XML_ATTRIBUTE_NMTOKEN:
+ fprintf(ctxt->output, " NMTOKEN");
+ break;
+ case XML_ATTRIBUTE_NMTOKENS:
+ fprintf(ctxt->output, " NMTOKENS");
+ break;
+ case XML_ATTRIBUTE_ENUMERATION:
+ fprintf(ctxt->output, " ENUMERATION");
+ break;
+ case XML_ATTRIBUTE_NOTATION:
+ fprintf(ctxt->output, " NOTATION ");
+ break;
+ }
+ if (attr->tree != NULL) {
+ int indx;
+ xmlEnumerationPtr cur = attr->tree;
+
+ for (indx = 0; indx < 5; indx++) {
+ if (indx != 0)
+ fprintf(ctxt->output, "|%s", (char *) cur->name);
+ else
+ fprintf(ctxt->output, " (%s", (char *) cur->name);
+ cur = cur->next;
+ if (cur == NULL)
+ break;
+ }
+ if (cur == NULL)
+ fprintf(ctxt->output, ")");
+ else
+ fprintf(ctxt->output, "...)");
+ }
+ switch (attr->def) {
+ case XML_ATTRIBUTE_NONE:
+ break;
+ case XML_ATTRIBUTE_REQUIRED:
+ fprintf(ctxt->output, " REQUIRED");
+ break;
+ case XML_ATTRIBUTE_IMPLIED:
+ fprintf(ctxt->output, " IMPLIED");
+ break;
+ case XML_ATTRIBUTE_FIXED:
+ fprintf(ctxt->output, " FIXED");
+ break;
+ }
+ if (attr->defaultValue != NULL) {
+ fprintf(ctxt->output, "\"");
+ xmlCtxtDumpString(ctxt, attr->defaultValue);
+ fprintf(ctxt->output, "\"");
+ }
+ fprintf(ctxt->output, "\n");
+ }
+
+ /*
+ * Do a bit of checking
+ */
+ xmlCtxtGenericNodeCheck(ctxt, (xmlNodePtr) attr);
+}
+
+static void
+xmlCtxtDumpElemDecl(xmlDebugCtxtPtr ctxt, xmlElementPtr elem)
+{
+ xmlCtxtDumpSpaces(ctxt);
+
+ if (elem == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "Element declaration is NULL\n");
+ return;
+ }
+ if (elem->type != XML_ELEMENT_DECL) {
+ xmlDebugErr(ctxt, XML_CHECK_NOT_ELEM_DECL,
+ "Node is not an element declaration");
+ return;
+ }
+ if (elem->name != NULL) {
+ if (!ctxt->check) {
+ fprintf(ctxt->output, "ELEMDECL(");
+ xmlCtxtDumpString(ctxt, elem->name);
+ fprintf(ctxt->output, ")");
+ }
+ } else
+ xmlDebugErr(ctxt, XML_CHECK_NO_NAME,
+ "Element declaration has no name");
+ if (!ctxt->check) {
+ switch (elem->etype) {
+ case XML_ELEMENT_TYPE_UNDEFINED:
+ fprintf(ctxt->output, ", UNDEFINED");
+ break;
+ case XML_ELEMENT_TYPE_EMPTY:
+ fprintf(ctxt->output, ", EMPTY");
+ break;
+ case XML_ELEMENT_TYPE_ANY:
+ fprintf(ctxt->output, ", ANY");
+ break;
+ case XML_ELEMENT_TYPE_MIXED:
+ fprintf(ctxt->output, ", MIXED ");
+ break;
+ case XML_ELEMENT_TYPE_ELEMENT:
+ fprintf(ctxt->output, ", MIXED ");
+ break;
+ }
+ if ((elem->type != XML_ELEMENT_NODE) && (elem->content != NULL)) {
+ char buf[5001];
+
+ buf[0] = 0;
+ xmlSnprintfElementContent(buf, 5000, elem->content, 1);
+ buf[5000] = 0;
+ fprintf(ctxt->output, "%s", buf);
+ }
+ fprintf(ctxt->output, "\n");
+ }
+
+ /*
+ * Do a bit of checking
+ */
+ xmlCtxtGenericNodeCheck(ctxt, (xmlNodePtr) elem);
+}
+
+static void
+xmlCtxtDumpEntityDecl(xmlDebugCtxtPtr ctxt, xmlEntityPtr ent)
+{
+ xmlCtxtDumpSpaces(ctxt);
+
+ if (ent == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "Entity declaration is NULL\n");
+ return;
+ }
+ if (ent->type != XML_ENTITY_DECL) {
+ xmlDebugErr(ctxt, XML_CHECK_NOT_ENTITY_DECL,
+ "Node is not an entity declaration");
+ return;
+ }
+ if (ent->name != NULL) {
+ if (!ctxt->check) {
+ fprintf(ctxt->output, "ENTITYDECL(");
+ xmlCtxtDumpString(ctxt, ent->name);
+ fprintf(ctxt->output, ")");
+ }
+ } else
+ xmlDebugErr(ctxt, XML_CHECK_NO_NAME,
+ "Entity declaration has no name");
+ if (!ctxt->check) {
+ switch (ent->etype) {
+ case XML_INTERNAL_GENERAL_ENTITY:
+ fprintf(ctxt->output, ", internal\n");
+ break;
+ case XML_EXTERNAL_GENERAL_PARSED_ENTITY:
+ fprintf(ctxt->output, ", external parsed\n");
+ break;
+ case XML_EXTERNAL_GENERAL_UNPARSED_ENTITY:
+ fprintf(ctxt->output, ", unparsed\n");
+ break;
+ case XML_INTERNAL_PARAMETER_ENTITY:
+ fprintf(ctxt->output, ", parameter\n");
+ break;
+ case XML_EXTERNAL_PARAMETER_ENTITY:
+ fprintf(ctxt->output, ", external parameter\n");
+ break;
+ case XML_INTERNAL_PREDEFINED_ENTITY:
+ fprintf(ctxt->output, ", predefined\n");
+ break;
+ }
+ if (ent->ExternalID) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, " ExternalID=%s\n",
+ (char *) ent->ExternalID);
+ }
+ if (ent->SystemID) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, " SystemID=%s\n",
+ (char *) ent->SystemID);
+ }
+ if (ent->URI != NULL) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, " URI=%s\n", (char *) ent->URI);
+ }
+ if (ent->content) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, " content=");
+ xmlCtxtDumpString(ctxt, ent->content);
+ fprintf(ctxt->output, "\n");
+ }
+ }
+
+ /*
+ * Do a bit of checking
+ */
+ xmlCtxtGenericNodeCheck(ctxt, (xmlNodePtr) ent);
+}
+
+static void
+xmlCtxtDumpNamespace(xmlDebugCtxtPtr ctxt, xmlNsPtr ns)
+{
+ xmlCtxtDumpSpaces(ctxt);
+
+ if (ns == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "namespace node is NULL\n");
+ return;
+ }
+ if (ns->type != XML_NAMESPACE_DECL) {
+ xmlDebugErr(ctxt, XML_CHECK_NOT_NS_DECL,
+ "Node is not a namespace declaration");
+ return;
+ }
+ if (ns->href == NULL) {
+ if (ns->prefix != NULL)
+ xmlDebugErr3(ctxt, XML_CHECK_NO_HREF,
+ "Incomplete namespace %s href=NULL\n",
+ (char *) ns->prefix);
+ else
+ xmlDebugErr(ctxt, XML_CHECK_NO_HREF,
+ "Incomplete default namespace href=NULL\n");
+ } else {
+ if (!ctxt->check) {
+ if (ns->prefix != NULL)
+ fprintf(ctxt->output, "namespace %s href=",
+ (char *) ns->prefix);
+ else
+ fprintf(ctxt->output, "default namespace href=");
+
+ xmlCtxtDumpString(ctxt, ns->href);
+ fprintf(ctxt->output, "\n");
+ }
+ }
+}
+
+static void
+xmlCtxtDumpNamespaceList(xmlDebugCtxtPtr ctxt, xmlNsPtr ns)
+{
+ while (ns != NULL) {
+ xmlCtxtDumpNamespace(ctxt, ns);
+ ns = ns->next;
+ }
+}
+
+static void
+xmlCtxtDumpEntity(xmlDebugCtxtPtr ctxt, xmlEntityPtr ent)
+{
+ xmlCtxtDumpSpaces(ctxt);
+
+ if (ent == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "Entity is NULL\n");
+ return;
+ }
+ if (!ctxt->check) {
+ switch (ent->etype) {
+ case XML_INTERNAL_GENERAL_ENTITY:
+ fprintf(ctxt->output, "INTERNAL_GENERAL_ENTITY ");
+ break;
+ case XML_EXTERNAL_GENERAL_PARSED_ENTITY:
+ fprintf(ctxt->output, "EXTERNAL_GENERAL_PARSED_ENTITY ");
+ break;
+ case XML_EXTERNAL_GENERAL_UNPARSED_ENTITY:
+ fprintf(ctxt->output, "EXTERNAL_GENERAL_UNPARSED_ENTITY ");
+ break;
+ case XML_INTERNAL_PARAMETER_ENTITY:
+ fprintf(ctxt->output, "INTERNAL_PARAMETER_ENTITY ");
+ break;
+ case XML_EXTERNAL_PARAMETER_ENTITY:
+ fprintf(ctxt->output, "EXTERNAL_PARAMETER_ENTITY ");
+ break;
+ default:
+ fprintf(ctxt->output, "ENTITY_%d ! ", (int) ent->etype);
+ }
+ fprintf(ctxt->output, "%s\n", ent->name);
+ if (ent->ExternalID) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "ExternalID=%s\n",
+ (char *) ent->ExternalID);
+ }
+ if (ent->SystemID) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "SystemID=%s\n", (char *) ent->SystemID);
+ }
+ if (ent->URI) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "URI=%s\n", (char *) ent->URI);
+ }
+ if (ent->content) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "content=");
+ xmlCtxtDumpString(ctxt, ent->content);
+ fprintf(ctxt->output, "\n");
+ }
+ }
+}
+
+/**
+ * xmlCtxtDumpAttr:
+ * @output: the FILE * for the output
+ * @attr: the attribute
+ * @depth: the indentation level.
+ *
+ * Dumps debug information for the attribute
+ */
+static void
+xmlCtxtDumpAttr(xmlDebugCtxtPtr ctxt, xmlAttrPtr attr)
+{
+ xmlCtxtDumpSpaces(ctxt);
+
+ if (attr == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "Attr is NULL");
+ return;
+ }
+ if (!ctxt->check) {
+ fprintf(ctxt->output, "ATTRIBUTE ");
+ xmlCtxtDumpString(ctxt, attr->name);
+ fprintf(ctxt->output, "\n");
+ if (attr->children != NULL) {
+ ctxt->depth++;
+ xmlCtxtDumpNodeList(ctxt, attr->children);
+ ctxt->depth--;
+ }
+ }
+ if (attr->name == NULL)
+ xmlDebugErr(ctxt, XML_CHECK_NO_NAME,
+ "Attribute has no name");
+
+ /*
+ * Do a bit of checking
+ */
+ xmlCtxtGenericNodeCheck(ctxt, (xmlNodePtr) attr);
+}
+
+/**
+ * xmlCtxtDumpAttrList:
+ * @output: the FILE * for the output
+ * @attr: the attribute list
+ * @depth: the indentation level.
+ *
+ * Dumps debug information for the attribute list
+ */
+static void
+xmlCtxtDumpAttrList(xmlDebugCtxtPtr ctxt, xmlAttrPtr attr)
+{
+ while (attr != NULL) {
+ xmlCtxtDumpAttr(ctxt, attr);
+ attr = attr->next;
+ }
+}
+
+/**
+ * xmlCtxtDumpOneNode:
+ * @output: the FILE * for the output
+ * @node: the node
+ * @depth: the indentation level.
+ *
+ * Dumps debug information for the element node, it is not recursive
+ */
+static void
+xmlCtxtDumpOneNode(xmlDebugCtxtPtr ctxt, xmlNodePtr node)
+{
+ if (node == NULL) {
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "node is NULL\n");
+ }
+ return;
+ }
+ ctxt->node = node;
+
+ switch (node->type) {
+ case XML_ELEMENT_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "ELEMENT ");
+ if ((node->ns != NULL) && (node->ns->prefix != NULL)) {
+ xmlCtxtDumpString(ctxt, node->ns->prefix);
+ fprintf(ctxt->output, ":");
+ }
+ xmlCtxtDumpString(ctxt, node->name);
+ fprintf(ctxt->output, "\n");
+ }
+ break;
+ case XML_ATTRIBUTE_NODE:
+ if (!ctxt->check)
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "Error, ATTRIBUTE found here\n");
+ xmlCtxtGenericNodeCheck(ctxt, node);
+ return;
+ case XML_TEXT_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ if (node->name == (const xmlChar *) xmlStringTextNoenc)
+ fprintf(ctxt->output, "TEXT no enc");
+ else
+ fprintf(ctxt->output, "TEXT");
+ if (ctxt->options & DUMP_TEXT_TYPE) {
+ if (node->content == (xmlChar *) &(node->properties))
+ fprintf(ctxt->output, " compact\n");
+ else if (xmlDictOwns(ctxt->dict, node->content) == 1)
+ fprintf(ctxt->output, " interned\n");
+ else
+ fprintf(ctxt->output, "\n");
+ } else
+ fprintf(ctxt->output, "\n");
+ }
+ break;
+ case XML_CDATA_SECTION_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "CDATA_SECTION\n");
+ }
+ break;
+ case XML_ENTITY_REF_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "ENTITY_REF(%s)\n",
+ (char *) node->name);
+ }
+ break;
+ case XML_ENTITY_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "ENTITY\n");
+ }
+ break;
+ case XML_PI_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "PI %s\n", (char *) node->name);
+ }
+ break;
+ case XML_COMMENT_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "COMMENT\n");
+ }
+ break;
+ case XML_DOCUMENT_NODE:
+ case XML_HTML_DOCUMENT_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ }
+ fprintf(ctxt->output, "Error, DOCUMENT found here\n");
+ xmlCtxtGenericNodeCheck(ctxt, node);
+ return;
+ case XML_DOCUMENT_TYPE_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "DOCUMENT_TYPE\n");
+ }
+ break;
+ case XML_DOCUMENT_FRAG_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "DOCUMENT_FRAG\n");
+ }
+ break;
+ case XML_NOTATION_NODE:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "NOTATION\n");
+ }
+ break;
+ case XML_DTD_NODE:
+ xmlCtxtDumpDtdNode(ctxt, (xmlDtdPtr) node);
+ return;
+ case XML_ELEMENT_DECL:
+ xmlCtxtDumpElemDecl(ctxt, (xmlElementPtr) node);
+ return;
+ case XML_ATTRIBUTE_DECL:
+ xmlCtxtDumpAttrDecl(ctxt, (xmlAttributePtr) node);
+ return;
+ case XML_ENTITY_DECL:
+ xmlCtxtDumpEntityDecl(ctxt, (xmlEntityPtr) node);
+ return;
+ case XML_NAMESPACE_DECL:
+ xmlCtxtDumpNamespace(ctxt, (xmlNsPtr) node);
+ return;
+ case XML_XINCLUDE_START:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "INCLUDE START\n");
+ }
+ return;
+ case XML_XINCLUDE_END:
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "INCLUDE END\n");
+ }
+ return;
+ default:
+ if (!ctxt->check)
+ xmlCtxtDumpSpaces(ctxt);
+ xmlDebugErr2(ctxt, XML_CHECK_UNKNOWN_NODE,
+ "Unknown node type %d\n", node->type);
+ return;
+ }
+ if (node->doc == NULL) {
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ }
+ fprintf(ctxt->output, "PBM: doc == NULL !!!\n");
+ }
+ ctxt->depth++;
+ if ((node->type == XML_ELEMENT_NODE) && (node->nsDef != NULL))
+ xmlCtxtDumpNamespaceList(ctxt, node->nsDef);
+ if ((node->type == XML_ELEMENT_NODE) && (node->properties != NULL))
+ xmlCtxtDumpAttrList(ctxt, node->properties);
+ if (node->type != XML_ENTITY_REF_NODE) {
+ if ((node->type != XML_ELEMENT_NODE) && (node->content != NULL)) {
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "content=");
+ xmlCtxtDumpString(ctxt, node->content);
+ fprintf(ctxt->output, "\n");
+ }
+ }
+ } else {
+ xmlEntityPtr ent;
+
+ ent = xmlGetDocEntity(node->doc, node->name);
+ if (ent != NULL)
+ xmlCtxtDumpEntity(ctxt, ent);
+ }
+ ctxt->depth--;
+
+ /*
+ * Do a bit of checking
+ */
+ xmlCtxtGenericNodeCheck(ctxt, node);
+}
+
+/**
+ * xmlCtxtDumpNode:
+ * @output: the FILE * for the output
+ * @node: the node
+ * @depth: the indentation level.
+ *
+ * Dumps debug information for the element node, it is recursive
+ */
+static void
+xmlCtxtDumpNode(xmlDebugCtxtPtr ctxt, xmlNodePtr node)
+{
+ if (node == NULL) {
+ if (!ctxt->check) {
+ xmlCtxtDumpSpaces(ctxt);
+ fprintf(ctxt->output, "node is NULL\n");
+ }
+ return;
+ }
+ xmlCtxtDumpOneNode(ctxt, node);
+ if ((node->type != XML_NAMESPACE_DECL) &&
+ (node->children != NULL) && (node->type != XML_ENTITY_REF_NODE)) {
+ ctxt->depth++;
+ xmlCtxtDumpNodeList(ctxt, node->children);
+ ctxt->depth--;
+ }
+}
+
+/**
+ * xmlCtxtDumpNodeList:
+ * @output: the FILE * for the output
+ * @node: the node list
+ * @depth: the indentation level.
+ *
+ * Dumps debug information for the list of element node, it is recursive
+ */
+static void
+xmlCtxtDumpNodeList(xmlDebugCtxtPtr ctxt, xmlNodePtr node)
+{
+ while (node != NULL) {
+ xmlCtxtDumpNode(ctxt, node);
+ node = node->next;
+ }
+}
+
+static void
+xmlCtxtDumpDocHead(xmlDebugCtxtPtr ctxt, xmlDocPtr doc)
+{
+ if (doc == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "DOCUMENT == NULL !\n");
+ return;
+ }
+ ctxt->node = (xmlNodePtr) doc;
+
+ switch (doc->type) {
+ case XML_ELEMENT_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_ELEMENT,
+ "Misplaced ELEMENT node\n");
+ break;
+ case XML_ATTRIBUTE_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_ATTRIBUTE,
+ "Misplaced ATTRIBUTE node\n");
+ break;
+ case XML_TEXT_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_TEXT,
+ "Misplaced TEXT node\n");
+ break;
+ case XML_CDATA_SECTION_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_CDATA,
+ "Misplaced CDATA node\n");
+ break;
+ case XML_ENTITY_REF_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_ENTITYREF,
+ "Misplaced ENTITYREF node\n");
+ break;
+ case XML_ENTITY_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_ENTITY,
+ "Misplaced ENTITY node\n");
+ break;
+ case XML_PI_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_PI,
+ "Misplaced PI node\n");
+ break;
+ case XML_COMMENT_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_COMMENT,
+ "Misplaced COMMENT node\n");
+ break;
+ case XML_DOCUMENT_NODE:
+ if (!ctxt->check)
+ fprintf(ctxt->output, "DOCUMENT\n");
+ break;
+ case XML_HTML_DOCUMENT_NODE:
+ if (!ctxt->check)
+ fprintf(ctxt->output, "HTML DOCUMENT\n");
+ break;
+ case XML_DOCUMENT_TYPE_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_DOCTYPE,
+ "Misplaced DOCTYPE node\n");
+ break;
+ case XML_DOCUMENT_FRAG_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_FRAGMENT,
+ "Misplaced FRAGMENT node\n");
+ break;
+ case XML_NOTATION_NODE:
+ xmlDebugErr(ctxt, XML_CHECK_FOUND_NOTATION,
+ "Misplaced NOTATION node\n");
+ break;
+ default:
+ xmlDebugErr2(ctxt, XML_CHECK_UNKNOWN_NODE,
+ "Unknown node type %d\n", doc->type);
+ }
+}
+
+/**
+ * xmlCtxtDumpDocumentHead:
+ * @output: the FILE * for the output
+ * @doc: the document
+ *
+ * Dumps debug information concerning the document, not recursive
+ */
+static void
+xmlCtxtDumpDocumentHead(xmlDebugCtxtPtr ctxt, xmlDocPtr doc)
+{
+ if (doc == NULL) return;
+ xmlCtxtDumpDocHead(ctxt, doc);
+ if (!ctxt->check) {
+ if (doc->name != NULL) {
+ fprintf(ctxt->output, "name=");
+ xmlCtxtDumpString(ctxt, BAD_CAST doc->name);
+ fprintf(ctxt->output, "\n");
+ }
+ if (doc->version != NULL) {
+ fprintf(ctxt->output, "version=");
+ xmlCtxtDumpString(ctxt, doc->version);
+ fprintf(ctxt->output, "\n");
+ }
+ if (doc->encoding != NULL) {
+ fprintf(ctxt->output, "encoding=");
+ xmlCtxtDumpString(ctxt, doc->encoding);
+ fprintf(ctxt->output, "\n");
+ }
+ if (doc->URL != NULL) {
+ fprintf(ctxt->output, "URL=");
+ xmlCtxtDumpString(ctxt, doc->URL);
+ fprintf(ctxt->output, "\n");
+ }
+ if (doc->standalone)
+ fprintf(ctxt->output, "standalone=true\n");
+ }
+ if (doc->oldNs != NULL)
+ xmlCtxtDumpNamespaceList(ctxt, doc->oldNs);
+}
+
+/**
+ * xmlCtxtDumpDocument:
+ * @output: the FILE * for the output
+ * @doc: the document
+ *
+ * Dumps debug information for the document, it's recursive
+ */
+static void
+xmlCtxtDumpDocument(xmlDebugCtxtPtr ctxt, xmlDocPtr doc)
+{
+ if (doc == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "DOCUMENT == NULL !\n");
+ return;
+ }
+ xmlCtxtDumpDocumentHead(ctxt, doc);
+ if (((doc->type == XML_DOCUMENT_NODE) ||
+ (doc->type == XML_HTML_DOCUMENT_NODE))
+ && (doc->children != NULL)) {
+ ctxt->depth++;
+ xmlCtxtDumpNodeList(ctxt, doc->children);
+ ctxt->depth--;
+ }
+}
+
+static void
+xmlCtxtDumpEntityCallback(void *payload, void *data,
+ const xmlChar *name ATTRIBUTE_UNUSED)
+{
+ xmlEntityPtr cur = (xmlEntityPtr) payload;
+ xmlDebugCtxtPtr ctxt = (xmlDebugCtxtPtr) data;
+ if (cur == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "Entity is NULL");
+ return;
+ }
+ if (!ctxt->check) {
+ fprintf(ctxt->output, "%s : ", (char *) cur->name);
+ switch (cur->etype) {
+ case XML_INTERNAL_GENERAL_ENTITY:
+ fprintf(ctxt->output, "INTERNAL GENERAL, ");
+ break;
+ case XML_EXTERNAL_GENERAL_PARSED_ENTITY:
+ fprintf(ctxt->output, "EXTERNAL PARSED, ");
+ break;
+ case XML_EXTERNAL_GENERAL_UNPARSED_ENTITY:
+ fprintf(ctxt->output, "EXTERNAL UNPARSED, ");
+ break;
+ case XML_INTERNAL_PARAMETER_ENTITY:
+ fprintf(ctxt->output, "INTERNAL PARAMETER, ");
+ break;
+ case XML_EXTERNAL_PARAMETER_ENTITY:
+ fprintf(ctxt->output, "EXTERNAL PARAMETER, ");
+ break;
+ default:
+ xmlDebugErr2(ctxt, XML_CHECK_ENTITY_TYPE,
+ "Unknown entity type %d\n", cur->etype);
+ }
+ if (cur->ExternalID != NULL)
+ fprintf(ctxt->output, "ID \"%s\"", (char *) cur->ExternalID);
+ if (cur->SystemID != NULL)
+ fprintf(ctxt->output, "SYSTEM \"%s\"", (char *) cur->SystemID);
+ if (cur->orig != NULL)
+ fprintf(ctxt->output, "\n orig \"%s\"", (char *) cur->orig);
+ if ((cur->type != XML_ELEMENT_NODE) && (cur->content != NULL))
+ fprintf(ctxt->output, "\n content \"%s\"",
+ (char *) cur->content);
+ fprintf(ctxt->output, "\n");
+ }
+}
+
+/**
+ * xmlCtxtDumpEntities:
+ * @output: the FILE * for the output
+ * @doc: the document
+ *
+ * Dumps debug information for all the entities in use by the document
+ */
+static void
+xmlCtxtDumpEntities(xmlDebugCtxtPtr ctxt, xmlDocPtr doc)
+{
+ if (doc == NULL) return;
+ xmlCtxtDumpDocHead(ctxt, doc);
+ if ((doc->intSubset != NULL) && (doc->intSubset->entities != NULL)) {
+ xmlEntitiesTablePtr table = (xmlEntitiesTablePtr)
+ doc->intSubset->entities;
+
+ if (!ctxt->check)
+ fprintf(ctxt->output, "Entities in internal subset\n");
+ xmlHashScan(table, xmlCtxtDumpEntityCallback, ctxt);
+ } else
+ fprintf(ctxt->output, "No entities in internal subset\n");
+ if ((doc->extSubset != NULL) && (doc->extSubset->entities != NULL)) {
+ xmlEntitiesTablePtr table = (xmlEntitiesTablePtr)
+ doc->extSubset->entities;
+
+ if (!ctxt->check)
+ fprintf(ctxt->output, "Entities in external subset\n");
+ xmlHashScan(table, xmlCtxtDumpEntityCallback, ctxt);
+ } else if (!ctxt->check)
+ fprintf(ctxt->output, "No entities in external subset\n");
+}
+
+/**
+ * xmlCtxtDumpDTD:
+ * @output: the FILE * for the output
+ * @dtd: the DTD
+ *
+ * Dumps debug information for the DTD
+ */
+static void
+xmlCtxtDumpDTD(xmlDebugCtxtPtr ctxt, xmlDtdPtr dtd)
+{
+ if (dtd == NULL) {
+ if (!ctxt->check)
+ fprintf(ctxt->output, "DTD is NULL\n");
+ return;
+ }
+ xmlCtxtDumpDtdNode(ctxt, dtd);
+ if (dtd->children == NULL)
+ fprintf(ctxt->output, " DTD is empty\n");
+ else {
+ ctxt->depth++;
+ xmlCtxtDumpNodeList(ctxt, dtd->children);
+ ctxt->depth--;
+ }
+}
+
+/************************************************************************
+ * *
+ * Public entry points for dump *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlDebugDumpString:
+ * @output: the FILE * for the output
+ * @str: the string
+ *
+ * Dumps informations about the string, shorten it if necessary
+ */
+void
+xmlDebugDumpString(FILE * output, const xmlChar * str)
+{
+ int i;
+
+ if (output == NULL)
+ output = stdout;
+ if (str == NULL) {
+ fprintf(output, "(NULL)");
+ return;
+ }
+ for (i = 0; i < 40; i++)
+ if (str[i] == 0)
+ return;
+ else if (IS_BLANK_CH(str[i]))
+ fputc(' ', output);
+ else if (str[i] >= 0x80)
+ fprintf(output, "#%X", str[i]);
+ else
+ fputc(str[i], output);
+ fprintf(output, "...");
+}
+
+/**
+ * xmlDebugDumpAttr:
+ * @output: the FILE * for the output
+ * @attr: the attribute
+ * @depth: the indentation level.
+ *
+ * Dumps debug information for the attribute
+ */
+void
+xmlDebugDumpAttr(FILE *output, xmlAttrPtr attr, int depth) {
+ xmlDebugCtxt ctxt;
+
+ if (output == NULL) return;
+ xmlCtxtDumpInitCtxt(&ctxt);
+ ctxt.output = output;
+ ctxt.depth = depth;
+ xmlCtxtDumpAttr(&ctxt, attr);
+ xmlCtxtDumpCleanCtxt(&ctxt);
+}
+
+
+/**
+ * xmlDebugDumpEntities:
+ * @output: the FILE * for the output
+ * @doc: the document
+ *
+ * Dumps debug information for all the entities in use by the document
+ */
+void
+xmlDebugDumpEntities(FILE * output, xmlDocPtr doc)
+{
+ xmlDebugCtxt ctxt;
+
+ if (output == NULL) return;
+ xmlCtxtDumpInitCtxt(&ctxt);
+ ctxt.output = output;
+ xmlCtxtDumpEntities(&ctxt, doc);
+ xmlCtxtDumpCleanCtxt(&ctxt);
+}
+
+/**
+ * xmlDebugDumpAttrList:
+ * @output: the FILE * for the output
+ * @attr: the attribute list
+ * @depth: the indentation level.
+ *
+ * Dumps debug information for the attribute list
+ */
+void
+xmlDebugDumpAttrList(FILE * output, xmlAttrPtr attr, int depth)
+{
+ xmlDebugCtxt ctxt;
+
+ if (output == NULL) return;
+ xmlCtxtDumpInitCtxt(&ctxt);
+ ctxt.output = output;
+ ctxt.depth = depth;
+ xmlCtxtDumpAttrList(&ctxt, attr);
+ xmlCtxtDumpCleanCtxt(&ctxt);
+}
+
+/**
+ * xmlDebugDumpOneNode:
+ * @output: the FILE * for the output
+ * @node: the node
+ * @depth: the indentation level.
+ *
+ * Dumps debug information for the element node, it is not recursive
+ */
+void
+xmlDebugDumpOneNode(FILE * output, xmlNodePtr node, int depth)
+{
+ xmlDebugCtxt ctxt;
+
+ if (output == NULL) return;
+ xmlCtxtDumpInitCtxt(&ctxt);
+ ctxt.output = output;
+ ctxt.depth = depth;
+ xmlCtxtDumpOneNode(&ctxt, node);
+ xmlCtxtDumpCleanCtxt(&ctxt);
+}
+
+/**
+ * xmlDebugDumpNode:
+ * @output: the FILE * for the output
+ * @node: the node
+ * @depth: the indentation level.
+ *
+ * Dumps debug information for the element node, it is recursive
+ */
+void
+xmlDebugDumpNode(FILE * output, xmlNodePtr node, int depth)
+{
+ xmlDebugCtxt ctxt;
+
+ if (output == NULL)
+ output = stdout;
+ xmlCtxtDumpInitCtxt(&ctxt);
+ ctxt.output = output;
+ ctxt.depth = depth;
+ xmlCtxtDumpNode(&ctxt, node);
+ xmlCtxtDumpCleanCtxt(&ctxt);
+}
+
+/**
+ * xmlDebugDumpNodeList:
+ * @output: the FILE * for the output
+ * @node: the node list
+ * @depth: the indentation level.
+ *
+ * Dumps debug information for the list of element node, it is recursive
+ */
+void
+xmlDebugDumpNodeList(FILE * output, xmlNodePtr node, int depth)
+{
+ xmlDebugCtxt ctxt;
+
+ if (output == NULL)
+ output = stdout;
+ xmlCtxtDumpInitCtxt(&ctxt);
+ ctxt.output = output;
+ ctxt.depth = depth;
+ xmlCtxtDumpNodeList(&ctxt, node);
+ xmlCtxtDumpCleanCtxt(&ctxt);
+}
+
+/**
+ * xmlDebugDumpDocumentHead:
+ * @output: the FILE * for the output
+ * @doc: the document
+ *
+ * Dumps debug information concerning the document, not recursive
+ */
+void
+xmlDebugDumpDocumentHead(FILE * output, xmlDocPtr doc)
+{
+ xmlDebugCtxt ctxt;
+
+ if (output == NULL)
+ output = stdout;
+ xmlCtxtDumpInitCtxt(&ctxt);
+ ctxt.options |= DUMP_TEXT_TYPE;
+ ctxt.output = output;
+ xmlCtxtDumpDocumentHead(&ctxt, doc);
+ xmlCtxtDumpCleanCtxt(&ctxt);
+}
+
+/**
+ * xmlDebugDumpDocument:
+ * @output: the FILE * for the output
+ * @doc: the document
+ *
+ * Dumps debug information for the document, it's recursive
+ */
+void
+xmlDebugDumpDocument(FILE * output, xmlDocPtr doc)
+{
+ xmlDebugCtxt ctxt;
+
+ if (output == NULL)
+ output = stdout;
+ xmlCtxtDumpInitCtxt(&ctxt);
+ ctxt.options |= DUMP_TEXT_TYPE;
+ ctxt.output = output;
+ xmlCtxtDumpDocument(&ctxt, doc);
+ xmlCtxtDumpCleanCtxt(&ctxt);
+}
+
+/**
+ * xmlDebugDumpDTD:
+ * @output: the FILE * for the output
+ * @dtd: the DTD
+ *
+ * Dumps debug information for the DTD
+ */
+void
+xmlDebugDumpDTD(FILE * output, xmlDtdPtr dtd)
+{
+ xmlDebugCtxt ctxt;
+
+ if (output == NULL)
+ output = stdout;
+ xmlCtxtDumpInitCtxt(&ctxt);
+ ctxt.options |= DUMP_TEXT_TYPE;
+ ctxt.output = output;
+ xmlCtxtDumpDTD(&ctxt, dtd);
+ xmlCtxtDumpCleanCtxt(&ctxt);
+}
+
+/************************************************************************
+ * *
+ * Public entry points for checkings *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlDebugCheckDocument:
+ * @output: the FILE * for the output
+ * @doc: the document
+ *
+ * Check the document for potential content problems, and output
+ * the errors to @output
+ *
+ * Returns the number of errors found
+ */
+int
+xmlDebugCheckDocument(FILE * output, xmlDocPtr doc)
+{
+ xmlDebugCtxt ctxt;
+
+ if (output == NULL)
+ output = stdout;
+ xmlCtxtDumpInitCtxt(&ctxt);
+ ctxt.output = output;
+ ctxt.check = 1;
+ xmlCtxtDumpDocument(&ctxt, doc);
+ xmlCtxtDumpCleanCtxt(&ctxt);
+ return(ctxt.errors);
+}
+
+/************************************************************************
+ * *
+ * Helpers for Shell *
+ * *
+ ************************************************************************/
+
+/**
+ * xmlLsCountNode:
+ * @node: the node to count
+ *
+ * Count the children of @node.
+ *
+ * Returns the number of children of @node.
+ */
+int
+xmlLsCountNode(xmlNodePtr node) {
+ int ret = 0;
+ xmlNodePtr list = NULL;
+
+ if (node == NULL)
+ return(0);
+
+ switch (node->type) {
+ case XML_ELEMENT_NODE:
+ list = node->children;
+ break;
+ case XML_DOCUMENT_NODE:
+ case XML_HTML_DOCUMENT_NODE:
+#ifdef LIBXML_DOCB_ENABLED
+ case XML_DOCB_DOCUMENT_NODE:
+#endif
+ list = ((xmlDocPtr) node)->children;
+ break;
+ case XML_ATTRIBUTE_NODE:
+ list = ((xmlAttrPtr) node)->children;
+ break;
+ case XML_TEXT_NODE:
+ case XML_CDATA_SECTION_NODE:
+ case XML_PI_NODE:
+ case XML_COMMENT_NODE:
+ if (node->content != NULL) {
+ ret = xmlStrlen(node->content);
+ }
+ break;
+ case XML_ENTITY_REF_NODE:
+ case XML_DOCUMENT_TYPE_NODE:
+ case XML_ENTITY_NODE:
+ case XML_DOCUMENT_FRAG_NODE:
+ case XML_NOTATION_NODE:
+ case XML_DTD_NODE:
+ case XML_ELEMENT_DECL:
+ case XML_ATTRIBUTE_DECL:
+ case XML_ENTITY_DECL:
+ case XML_NAMESPACE_DECL:
+ case XML_XINCLUDE_START:
+ case XML_XINCLUDE_END:
+ ret = 1;
+ break;
+ }
+ for (;list != NULL;ret++)
+ list = list->next;
+ return(ret);
+}
+
+/**
+ * xmlLsOneNode:
+ * @output: the FILE * for the output
+ * @node: the node to dump
+ *
+ * Dump to @output the type and name of @node.
+ */
+void
+xmlLsOneNode(FILE *output, xmlNodePtr node) {
+ if (output == NULL) return;
+ if (node == NULL) {
+ fprintf(output, "NULL\n");
+ return;
+ }
+ switch (node->type) {
+ case XML_ELEMENT_NODE:
+ fprintf(output, "-");
+ break;
+ case XML_ATTRIBUTE_NODE:
+ fprintf(output, "a");
+ break;
+ case XML_TEXT_NODE:
+ fprintf(output, "t");
+ break;
+ case XML_CDATA_SECTION_NODE:
+ fprintf(output, "C");
+ break;
+ case XML_ENTITY_REF_NODE:
+ fprintf(output, "e");
+ break;
+ case XML_ENTITY_NODE:
+ fprintf(output, "E");
+ break;
+ case XML_PI_NODE:
+ fprintf(output, "p");
+ break;
+ case XML_COMMENT_NODE:
+ fprintf(output, "c");
+ break;
+ case XML_DOCUMENT_NODE:
+ fprintf(output, "d");
+ break;
+ case XML_HTML_DOCUMENT_NODE:
+ fprintf(output, "h");
+ break;
+ case XML_DOCUMENT_TYPE_NODE:
+ fprintf(output, "T");
+ break;
+ case XML_DOCUMENT_FRAG_NODE:
+ fprintf(output, "F");
+ break;
+ case XML_NOTATION_NODE:
+ fprintf(output, "N");
+ break;
+ case XML_NAMESPACE_DECL:
+ fprintf(output, "n");
+ break;
+ default:
+ fprintf(output, "?");
+ }
+ if (node->type != XML_NAMESPACE_DECL) {
+ if (node->properties != NULL)
+ fprintf(output, "a");
+ else
+ fprintf(output, "-");
+ if (node->nsDef != NULL)
+ fprintf(output, "n");
+ else
+ fprintf(output, "-");
+ }
+
+ fprintf(output, " %8d ", xmlLsCountNode(node));
+
+ switch (node->type) {
+ case XML_ELEMENT_NODE:
+ if (node->name != NULL) {
+ if ((node->ns != NULL) && (node->ns->prefix != NULL))
+ fprintf(output, "%s:", node->ns->prefix);
+ fprintf(output, "%s", (const char *) node->name);
+ }
+ break;
+ case XML_ATTRIBUTE_NODE:
+ if (node->name != NULL)
+ fprintf(output, "%s", (const char *) node->name);
+ break;
+ case XML_TEXT_NODE:
+ if (node->content != NULL) {
+ xmlDebugDumpString(output, node->content);
+ }
+ break;
+ case XML_CDATA_SECTION_NODE:
+ break;
+ case XML_ENTITY_REF_NODE:
+ if (node->name != NULL)
+ fprintf(output, "%s", (const char *) node->name);
+ break;
+ case XML_ENTITY_NODE:
+ if (node->name != NULL)
+ fprintf(output, "%s", (const char *) node->name);
+ break;
+ case XML_PI_NODE:
+ if (node->name != NULL)
+ fprintf(output, "%s", (const char *) node->name);
+ break;
+ case XML_COMMENT_NODE:
+ break;
+ case XML_DOCUMENT_NODE:
+ break;
+ case XML_HTML_DOCUMENT_NODE:
+ break;
+ case XML_DOCUMENT_TYPE_NODE:
+ break;
+ case XML_DOCUMENT_FRAG_NODE:
+ break;
+ case XML_NOTATION_NODE:
+ break;
+ case XML_NAMESPACE_DECL: {
+ xmlNsPtr ns = (xmlNsPtr) node;
+
+ if (ns->prefix == NULL)
+ fprintf(output, "default -> %s", (char *)ns->href);
+ else
+ fprintf(output, "%s -> %s", (char *)ns->prefix,
+ (char *)ns->href);
+ break;
+ }
+ default:
+ if (node->name != NULL)
+ fprintf(output, "%s", (const char *) node->name);
+ }
+ fprintf(output, "\n");
+}
+
+/**
+ * xmlBoolToText:
+ * @boolval: a bool to turn into text
+ *
+ * Convenient way to turn bool into text
+ *
+ * Returns a pointer to either "True" or "False"
+ */
+const char *
+xmlBoolToText(int boolval)
+{
+ if (boolval)
+ return("True");
+ else
+ return("False");
+}
+
+#ifdef LIBXML_XPATH_ENABLED
+/****************************************************************
+ * *
+ * The XML shell related functions *
+ * *
+ ****************************************************************/
+
+
+
+/*
+ * TODO: Improvement/cleanups for the XML shell
+ * - allow to shell out an editor on a subpart
+ * - cleanup function registrations (with help) and calling
+ * - provide registration routines
+ */
+
+/**
+ * xmlShellPrintXPathError:
+ * @errorType: valid xpath error id
+ * @arg: the argument that cause xpath to fail
+ *
+ * Print the xpath error to libxml default error channel
+ */
+void
+xmlShellPrintXPathError(int errorType, const char *arg)
+{
+ const char *default_arg = "Result";
+
+ if (!arg)
+ arg = default_arg;
+
+ switch (errorType) {
+ case XPATH_UNDEFINED:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ break;
+
+ case XPATH_BOOLEAN:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a Boolean\n", arg);
+ break;
+ case XPATH_NUMBER:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a number\n", arg);
+ break;
+ case XPATH_STRING:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a string\n", arg);
+ break;
+ case XPATH_POINT:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a point\n", arg);
+ break;
+ case XPATH_RANGE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_LOCATIONSET:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_USERS:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is user-defined\n", arg);
+ break;
+ case XPATH_XSLT_TREE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is an XSLT value tree\n", arg);
+ break;
+ }
+#if 0
+ xmlGenericError(xmlGenericErrorContext,
+ "Try casting the result string function (xpath builtin)\n",
+ arg);
+#endif
+}
+
+
+#ifdef LIBXML_OUTPUT_ENABLED
+/**
+ * xmlShellPrintNodeCtxt:
+ * @ctxt : a non-null shell context
+ * @node : a non-null node to print to the output FILE
+ *
+ * Print node to the output FILE
+ */
+static void
+xmlShellPrintNodeCtxt(xmlShellCtxtPtr ctxt,xmlNodePtr node)
+{
+ FILE *fp;
+
+ if (!node)
+ return;
+ if (ctxt == NULL)
+ fp = stdout;
+ else
+ fp = ctxt->output;
+
+ if (node->type == XML_DOCUMENT_NODE)
+ xmlDocDump(fp, (xmlDocPtr) node);
+ else if (node->type == XML_ATTRIBUTE_NODE)
+ xmlDebugDumpAttrList(fp, (xmlAttrPtr) node, 0);
+ else
+ xmlElemDump(fp, node->doc, node);
+
+ fprintf(fp, "\n");
+}
+
+/**
+ * xmlShellPrintNode:
+ * @node : a non-null node to print to the output FILE
+ *
+ * Print node to the output FILE
+ */
+void
+xmlShellPrintNode(xmlNodePtr node)
+{
+ xmlShellPrintNodeCtxt(NULL, node);
+}
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+/**
+ * xmlShellPrintXPathResultCtxt:
+ * @ctxt: a valid shell context
+ * @list: a valid result generated by an xpath evaluation
+ *
+ * Prints result to the output FILE
+ */
+static void
+xmlShellPrintXPathResultCtxt(xmlShellCtxtPtr ctxt,xmlXPathObjectPtr list)
+{
+ if (!ctxt)
+ return;
+
+ if (list != NULL) {
+ switch (list->type) {
+ case XPATH_NODESET:{
+#ifdef LIBXML_OUTPUT_ENABLED
+ int indx;
+
+ if (list->nodesetval) {
+ for (indx = 0; indx < list->nodesetval->nodeNr;
+ indx++) {
+ xmlShellPrintNodeCtxt(ctxt,
+ list->nodesetval->nodeTab[indx]);
+ }
+ } else {
+ xmlGenericError(xmlGenericErrorContext,
+ "Empty node set\n");
+ }
+ break;
+#else
+ xmlGenericError(xmlGenericErrorContext,
+ "Node set\n");
+#endif /* LIBXML_OUTPUT_ENABLED */
+ }
+ case XPATH_BOOLEAN:
+ xmlGenericError(xmlGenericErrorContext,
+ "Is a Boolean:%s\n",
+ xmlBoolToText(list->boolval));
+ break;
+ case XPATH_NUMBER:
+ xmlGenericError(xmlGenericErrorContext,
+ "Is a number:%0g\n", list->floatval);
+ break;
+ case XPATH_STRING:
+ xmlGenericError(xmlGenericErrorContext,
+ "Is a string:%s\n", list->stringval);
+ break;
+
+ default:
+ xmlShellPrintXPathError(list->type, NULL);
+ }
+ }
+}
+
+/**
+ * xmlShellPrintXPathResult:
+ * @list: a valid result generated by an xpath evaluation
+ *
+ * Prints result to the output FILE
+ */
+void
+xmlShellPrintXPathResult(xmlXPathObjectPtr list)
+{
+ xmlShellPrintXPathResultCtxt(NULL, list);
+}
+
+/**
+ * xmlShellList:
+ * @ctxt: the shell context
+ * @arg: unused
+ * @node: a node
+ * @node2: unused
+ *
+ * Implements the XML shell function "ls"
+ * Does an Unix like listing of the given node (like a directory)
+ *
+ * Returns 0
+ */
+int
+xmlShellList(xmlShellCtxtPtr ctxt,
+ char *arg ATTRIBUTE_UNUSED, xmlNodePtr node,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlNodePtr cur;
+ if (!ctxt)
+ return (0);
+ if (node == NULL) {
+ fprintf(ctxt->output, "NULL\n");
+ return (0);
+ }
+ if ((node->type == XML_DOCUMENT_NODE) ||
+ (node->type == XML_HTML_DOCUMENT_NODE)) {
+ cur = ((xmlDocPtr) node)->children;
+ } else if (node->type == XML_NAMESPACE_DECL) {
+ xmlLsOneNode(ctxt->output, node);
+ return (0);
+ } else if (node->children != NULL) {
+ cur = node->children;
+ } else {
+ xmlLsOneNode(ctxt->output, node);
+ return (0);
+ }
+ while (cur != NULL) {
+ xmlLsOneNode(ctxt->output, cur);
+ cur = cur->next;
+ }
+ return (0);
+}
+
+/**
+ * xmlShellBase:
+ * @ctxt: the shell context
+ * @arg: unused
+ * @node: a node
+ * @node2: unused
+ *
+ * Implements the XML shell function "base"
+ * dumps the current XML base of the node
+ *
+ * Returns 0
+ */
+int
+xmlShellBase(xmlShellCtxtPtr ctxt,
+ char *arg ATTRIBUTE_UNUSED, xmlNodePtr node,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlChar *base;
+ if (!ctxt)
+ return 0;
+ if (node == NULL) {
+ fprintf(ctxt->output, "NULL\n");
+ return (0);
+ }
+
+ base = xmlNodeGetBase(node->doc, node);
+
+ if (base == NULL) {
+ fprintf(ctxt->output, " No base found !!!\n");
+ } else {
+ fprintf(ctxt->output, "%s\n", base);
+ xmlFree(base);
+ }
+ return (0);
+}
+
+#ifdef LIBXML_TREE_ENABLED
+/**
+ * xmlShellSetBase:
+ * @ctxt: the shell context
+ * @arg: the new base
+ * @node: a node
+ * @node2: unused
+ *
+ * Implements the XML shell function "setbase"
+ * change the current XML base of the node
+ *
+ * Returns 0
+ */
+static int
+xmlShellSetBase(xmlShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
+ char *arg ATTRIBUTE_UNUSED, xmlNodePtr node,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlNodeSetBase(node, (xmlChar*) arg);
+ return (0);
+}
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+/**
+ * xmlShellRegisterNamespace:
+ * @ctxt: the shell context
+ * @arg: a string in prefix=nsuri format
+ * @node: unused
+ * @node2: unused
+ *
+ * Implements the XML shell function "setns"
+ * register/unregister a prefix=namespace pair
+ * on the XPath context
+ *
+ * Returns 0 on success and a negative value otherwise.
+ */
+static int
+xmlShellRegisterNamespace(xmlShellCtxtPtr ctxt, char *arg,
+ xmlNodePtr node ATTRIBUTE_UNUSED, xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlChar* nsListDup;
+ xmlChar* prefix;
+ xmlChar* href;
+ xmlChar* next;
+
+ nsListDup = xmlStrdup((xmlChar *) arg);
+ next = nsListDup;
+ while(next != NULL) {
+ /* skip spaces */
+ /*while((*next) == ' ') next++;*/
+ if((*next) == '\0') break;
+
+ /* find prefix */
+ prefix = next;
+ next = (xmlChar*)xmlStrchr(next, '=');
+ if(next == NULL) {
+ fprintf(ctxt->output, "setns: prefix=[nsuri] required\n");
+ xmlFree(nsListDup);
+ return(-1);
+ }
+ *(next++) = '\0';
+
+ /* find href */
+ href = next;
+ next = (xmlChar*)xmlStrchr(next, ' ');
+ if(next != NULL) {
+ *(next++) = '\0';
+ }
+
+ /* do register namespace */
+ if(xmlXPathRegisterNs(ctxt->pctxt, prefix, href) != 0) {
+ fprintf(ctxt->output,"Error: unable to register NS with prefix=\"%s\" and href=\"%s\"\n", prefix, href);
+ xmlFree(nsListDup);
+ return(-1);
+ }
+ }
+
+ xmlFree(nsListDup);
+ return(0);
+}
+/**
+ * xmlShellRegisterRootNamespaces:
+ * @ctxt: the shell context
+ * @arg: unused
+ * @node: the root element
+ * @node2: unused
+ *
+ * Implements the XML shell function "setrootns"
+ * which registers all namespaces declarations found on the root element.
+ *
+ * Returns 0 on success and a negative value otherwise.
+ */
+static int
+xmlShellRegisterRootNamespaces(xmlShellCtxtPtr ctxt, char *arg ATTRIBUTE_UNUSED,
+ xmlNodePtr root, xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlNsPtr ns;
+
+ if ((root == NULL) || (root->type != XML_ELEMENT_NODE) ||
+ (root->nsDef == NULL) || (ctxt == NULL) || (ctxt->pctxt == NULL))
+ return(-1);
+ ns = root->nsDef;
+ while (ns != NULL) {
+ if (ns->prefix == NULL)
+ xmlXPathRegisterNs(ctxt->pctxt, BAD_CAST "defaultns", ns->href);
+ else
+ xmlXPathRegisterNs(ctxt->pctxt, ns->prefix, ns->href);
+ ns = ns->next;
+ }
+ return(0);
+}
+#endif
+
+/**
+ * xmlShellGrep:
+ * @ctxt: the shell context
+ * @arg: the string or regular expression to find
+ * @node: a node
+ * @node2: unused
+ *
+ * Implements the XML shell function "grep"
+ * dumps informations about the node (namespace, attributes, content).
+ *
+ * Returns 0
+ */
+static int
+xmlShellGrep(xmlShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
+ char *arg, xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ if (!ctxt)
+ return (0);
+ if (node == NULL)
+ return (0);
+ if (arg == NULL)
+ return (0);
+#ifdef LIBXML_REGEXP_ENABLED
+ if ((xmlStrchr((xmlChar *) arg, '?')) ||
+ (xmlStrchr((xmlChar *) arg, '*')) ||
+ (xmlStrchr((xmlChar *) arg, '.')) ||
+ (xmlStrchr((xmlChar *) arg, '['))) {
+ }
+#endif
+ while (node != NULL) {
+ if (node->type == XML_COMMENT_NODE) {
+ if (xmlStrstr(node->content, (xmlChar *) arg)) {
+
+ fprintf(ctxt->output, "%s : ", xmlGetNodePath(node));
+ xmlShellList(ctxt, NULL, node, NULL);
+ }
+ } else if (node->type == XML_TEXT_NODE) {
+ if (xmlStrstr(node->content, (xmlChar *) arg)) {
+
+ fprintf(ctxt->output, "%s : ", xmlGetNodePath(node->parent));
+ xmlShellList(ctxt, NULL, node->parent, NULL);
+ }
+ }
+
+ /*
+ * Browse the full subtree, deep first
+ */
+
+ if ((node->type == XML_DOCUMENT_NODE) ||
+ (node->type == XML_HTML_DOCUMENT_NODE)) {
+ node = ((xmlDocPtr) node)->children;
+ } else if ((node->children != NULL)
+ && (node->type != XML_ENTITY_REF_NODE)) {
+ /* deep first */
+ node = node->children;
+ } else if (node->next != NULL) {
+ /* then siblings */
+ node = node->next;
+ } else {
+ /* go up to parents->next if needed */
+ while (node != NULL) {
+ if (node->parent != NULL) {
+ node = node->parent;
+ }
+ if (node->next != NULL) {
+ node = node->next;
+ break;
+ }
+ if (node->parent == NULL) {
+ node = NULL;
+ break;
+ }
+ }
+ }
+ }
+ return (0);
+}
+
+/**
+ * xmlShellDir:
+ * @ctxt: the shell context
+ * @arg: unused
+ * @node: a node
+ * @node2: unused
+ *
+ * Implements the XML shell function "dir"
+ * dumps informations about the node (namespace, attributes, content).
+ *
+ * Returns 0
+ */
+int
+xmlShellDir(xmlShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
+ char *arg ATTRIBUTE_UNUSED, xmlNodePtr node,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ if (!ctxt)
+ return (0);
+ if (node == NULL) {
+ fprintf(ctxt->output, "NULL\n");
+ return (0);
+ }
+ if ((node->type == XML_DOCUMENT_NODE) ||
+ (node->type == XML_HTML_DOCUMENT_NODE)) {
+ xmlDebugDumpDocumentHead(ctxt->output, (xmlDocPtr) node);
+ } else if (node->type == XML_ATTRIBUTE_NODE) {
+ xmlDebugDumpAttr(ctxt->output, (xmlAttrPtr) node, 0);
+ } else {
+ xmlDebugDumpOneNode(ctxt->output, node, 0);
+ }
+ return (0);
+}
+
+/**
+ * xmlShellSetContent:
+ * @ctxt: the shell context
+ * @value: the content as a string
+ * @node: a node
+ * @node2: unused
+ *
+ * Implements the XML shell function "dir"
+ * dumps informations about the node (namespace, attributes, content).
+ *
+ * Returns 0
+ */
+static int
+xmlShellSetContent(xmlShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
+ char *value, xmlNodePtr node,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlNodePtr results;
+ xmlParserErrors ret;
+
+ if (!ctxt)
+ return (0);
+ if (node == NULL) {
+ fprintf(ctxt->output, "NULL\n");
+ return (0);
+ }
+ if (value == NULL) {
+ fprintf(ctxt->output, "NULL\n");
+ return (0);
+ }
+
+ ret = xmlParseInNodeContext(node, value, strlen(value), 0, &results);
+ if (ret == XML_ERR_OK) {
+ if (node->children != NULL) {
+ xmlFreeNodeList(node->children);
+ node->children = NULL;
+ node->last = NULL;
+ }
+ xmlAddChildList(node, results);
+ } else {
+ fprintf(ctxt->output, "failed to parse content\n");
+ }
+ return (0);
+}
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+/**
+ * xmlShellRNGValidate:
+ * @ctxt: the shell context
+ * @schemas: the path to the Relax-NG schemas
+ * @node: a node
+ * @node2: unused
+ *
+ * Implements the XML shell function "relaxng"
+ * validating the instance against a Relax-NG schemas
+ *
+ * Returns 0
+ */
+static int
+xmlShellRNGValidate(xmlShellCtxtPtr sctxt, char *schemas,
+ xmlNodePtr node ATTRIBUTE_UNUSED,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlRelaxNGPtr relaxngschemas;
+ xmlRelaxNGParserCtxtPtr ctxt;
+ xmlRelaxNGValidCtxtPtr vctxt;
+ int ret;
+
+ ctxt = xmlRelaxNGNewParserCtxt(schemas);
+ xmlRelaxNGSetParserErrors(ctxt, xmlGenericError, xmlGenericError, NULL);
+ relaxngschemas = xmlRelaxNGParse(ctxt);
+ xmlRelaxNGFreeParserCtxt(ctxt);
+ if (relaxngschemas == NULL) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Relax-NG schema %s failed to compile\n", schemas);
+ return(-1);
+ }
+ vctxt = xmlRelaxNGNewValidCtxt(relaxngschemas);
+ xmlRelaxNGSetValidErrors(vctxt, xmlGenericError, xmlGenericError, NULL);
+ ret = xmlRelaxNGValidateDoc(vctxt, sctxt->doc);
+ if (ret == 0) {
+ fprintf(stderr, "%s validates\n", sctxt->filename);
+ } else if (ret > 0) {
+ fprintf(stderr, "%s fails to validate\n", sctxt->filename);
+ } else {
+ fprintf(stderr, "%s validation generated an internal error\n",
+ sctxt->filename);
+ }
+ xmlRelaxNGFreeValidCtxt(vctxt);
+ if (relaxngschemas != NULL)
+ xmlRelaxNGFree(relaxngschemas);
+ return(0);
+}
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+/**
+ * xmlShellCat:
+ * @ctxt: the shell context
+ * @arg: unused
+ * @node: a node
+ * @node2: unused
+ *
+ * Implements the XML shell function "cat"
+ * dumps the serialization node content (XML or HTML).
+ *
+ * Returns 0
+ */
+int
+xmlShellCat(xmlShellCtxtPtr ctxt, char *arg ATTRIBUTE_UNUSED,
+ xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ if (!ctxt)
+ return (0);
+ if (node == NULL) {
+ fprintf(ctxt->output, "NULL\n");
+ return (0);
+ }
+ if (ctxt->doc->type == XML_HTML_DOCUMENT_NODE) {
+#ifdef LIBXML_HTML_ENABLED
+ if (node->type == XML_HTML_DOCUMENT_NODE)
+ htmlDocDump(ctxt->output, (htmlDocPtr) node);
+ else
+ htmlNodeDumpFile(ctxt->output, ctxt->doc, node);
+#else
+ if (node->type == XML_DOCUMENT_NODE)
+ xmlDocDump(ctxt->output, (xmlDocPtr) node);
+ else
+ xmlElemDump(ctxt->output, ctxt->doc, node);
+#endif /* LIBXML_HTML_ENABLED */
+ } else {
+ if (node->type == XML_DOCUMENT_NODE)
+ xmlDocDump(ctxt->output, (xmlDocPtr) node);
+ else
+ xmlElemDump(ctxt->output, ctxt->doc, node);
+ }
+ fprintf(ctxt->output, "\n");
+ return (0);
+}
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+/**
+ * xmlShellLoad:
+ * @ctxt: the shell context
+ * @filename: the file name
+ * @node: unused
+ * @node2: unused
+ *
+ * Implements the XML shell function "load"
+ * loads a new document specified by the filename
+ *
+ * Returns 0 or -1 if loading failed
+ */
+int
+xmlShellLoad(xmlShellCtxtPtr ctxt, char *filename,
+ xmlNodePtr node ATTRIBUTE_UNUSED,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlDocPtr doc;
+ int html = 0;
+
+ if ((ctxt == NULL) || (filename == NULL)) return(-1);
+ if (ctxt->doc != NULL)
+ html = (ctxt->doc->type == XML_HTML_DOCUMENT_NODE);
+
+ if (html) {
+#ifdef LIBXML_HTML_ENABLED
+ doc = htmlParseFile(filename, NULL);
+#else
+ fprintf(ctxt->output, "HTML support not compiled in\n");
+ doc = NULL;
+#endif /* LIBXML_HTML_ENABLED */
+ } else {
+ doc = xmlReadFile(filename,NULL,0);
+ }
+ if (doc != NULL) {
+ if (ctxt->loaded == 1) {
+ xmlFreeDoc(ctxt->doc);
+ }
+ ctxt->loaded = 1;
+#ifdef LIBXML_XPATH_ENABLED
+ xmlXPathFreeContext(ctxt->pctxt);
+#endif /* LIBXML_XPATH_ENABLED */
+ xmlFree(ctxt->filename);
+ ctxt->doc = doc;
+ ctxt->node = (xmlNodePtr) doc;
+#ifdef LIBXML_XPATH_ENABLED
+ ctxt->pctxt = xmlXPathNewContext(doc);
+#endif /* LIBXML_XPATH_ENABLED */
+ ctxt->filename = (char *) xmlCanonicPath((xmlChar *) filename);
+ } else
+ return (-1);
+ return (0);
+}
+
+#ifdef LIBXML_OUTPUT_ENABLED
+/**
+ * xmlShellWrite:
+ * @ctxt: the shell context
+ * @filename: the file name
+ * @node: a node in the tree
+ * @node2: unused
+ *
+ * Implements the XML shell function "write"
+ * Write the current node to the filename, it saves the serialization
+ * of the subtree under the @node specified
+ *
+ * Returns 0 or -1 in case of error
+ */
+int
+xmlShellWrite(xmlShellCtxtPtr ctxt, char *filename, xmlNodePtr node,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ if (node == NULL)
+ return (-1);
+ if ((filename == NULL) || (filename[0] == 0)) {
+ return (-1);
+ }
+#ifdef W_OK
+ if (access((char *) filename, W_OK)) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Cannot write to %s\n", filename);
+ return (-1);
+ }
+#endif
+ switch (node->type) {
+ case XML_DOCUMENT_NODE:
+ if (xmlSaveFile((char *) filename, ctxt->doc) < -1) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Failed to write to %s\n", filename);
+ return (-1);
+ }
+ break;
+ case XML_HTML_DOCUMENT_NODE:
+#ifdef LIBXML_HTML_ENABLED
+ if (htmlSaveFile((char *) filename, ctxt->doc) < 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Failed to write to %s\n", filename);
+ return (-1);
+ }
+#else
+ if (xmlSaveFile((char *) filename, ctxt->doc) < -1) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Failed to write to %s\n", filename);
+ return (-1);
+ }
+#endif /* LIBXML_HTML_ENABLED */
+ break;
+ default:{
+ FILE *f;
+
+ f = fopen((char *) filename, "w");
+ if (f == NULL) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Failed to write to %s\n", filename);
+ return (-1);
+ }
+ xmlElemDump(f, ctxt->doc, node);
+ fclose(f);
+ }
+ }
+ return (0);
+}
+
+/**
+ * xmlShellSave:
+ * @ctxt: the shell context
+ * @filename: the file name (optional)
+ * @node: unused
+ * @node2: unused
+ *
+ * Implements the XML shell function "save"
+ * Write the current document to the filename, or it's original name
+ *
+ * Returns 0 or -1 in case of error
+ */
+int
+xmlShellSave(xmlShellCtxtPtr ctxt, char *filename,
+ xmlNodePtr node ATTRIBUTE_UNUSED,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ if ((ctxt == NULL) || (ctxt->doc == NULL))
+ return (-1);
+ if ((filename == NULL) || (filename[0] == 0))
+ filename = ctxt->filename;
+ if (filename == NULL)
+ return (-1);
+#ifdef W_OK
+ if (access((char *) filename, W_OK)) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Cannot save to %s\n", filename);
+ return (-1);
+ }
+#endif
+ switch (ctxt->doc->type) {
+ case XML_DOCUMENT_NODE:
+ if (xmlSaveFile((char *) filename, ctxt->doc) < 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Failed to save to %s\n", filename);
+ }
+ break;
+ case XML_HTML_DOCUMENT_NODE:
+#ifdef LIBXML_HTML_ENABLED
+ if (htmlSaveFile((char *) filename, ctxt->doc) < 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Failed to save to %s\n", filename);
+ }
+#else
+ if (xmlSaveFile((char *) filename, ctxt->doc) < 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Failed to save to %s\n", filename);
+ }
+#endif /* LIBXML_HTML_ENABLED */
+ break;
+ default:
+ xmlGenericError(xmlGenericErrorContext,
+ "To save to subparts of a document use the 'write' command\n");
+ return (-1);
+
+ }
+ return (0);
+}
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+#ifdef LIBXML_VALID_ENABLED
+/**
+ * xmlShellValidate:
+ * @ctxt: the shell context
+ * @dtd: the DTD URI (optional)
+ * @node: unused
+ * @node2: unused
+ *
+ * Implements the XML shell function "validate"
+ * Validate the document, if a DTD path is provided, then the validation
+ * is done against the given DTD.
+ *
+ * Returns 0 or -1 in case of error
+ */
+int
+xmlShellValidate(xmlShellCtxtPtr ctxt, char *dtd,
+ xmlNodePtr node ATTRIBUTE_UNUSED,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlValidCtxt vctxt;
+ int res = -1;
+
+ if ((ctxt == NULL) || (ctxt->doc == NULL)) return(-1);
+ vctxt.userData = NULL;
+ vctxt.error = xmlGenericError;
+ vctxt.warning = xmlGenericError;
+
+ if ((dtd == NULL) || (dtd[0] == 0)) {
+ res = xmlValidateDocument(&vctxt, ctxt->doc);
+ } else {
+ xmlDtdPtr subset;
+
+ subset = xmlParseDTD(NULL, (xmlChar *) dtd);
+ if (subset != NULL) {
+ res = xmlValidateDtd(&vctxt, ctxt->doc, subset);
+
+ xmlFreeDtd(subset);
+ }
+ }
+ return (res);
+}
+#endif /* LIBXML_VALID_ENABLED */
+
+/**
+ * xmlShellDu:
+ * @ctxt: the shell context
+ * @arg: unused
+ * @tree: a node defining a subtree
+ * @node2: unused
+ *
+ * Implements the XML shell function "du"
+ * show the structure of the subtree under node @tree
+ * If @tree is null, the command works on the current node.
+ *
+ * Returns 0 or -1 in case of error
+ */
+int
+xmlShellDu(xmlShellCtxtPtr ctxt,
+ char *arg ATTRIBUTE_UNUSED, xmlNodePtr tree,
+ xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlNodePtr node;
+ int indent = 0, i;
+
+ if (!ctxt)
+ return (-1);
+
+ if (tree == NULL)
+ return (-1);
+ node = tree;
+ while (node != NULL) {
+ if ((node->type == XML_DOCUMENT_NODE) ||
+ (node->type == XML_HTML_DOCUMENT_NODE)) {
+ fprintf(ctxt->output, "/\n");
+ } else if (node->type == XML_ELEMENT_NODE) {
+ for (i = 0; i < indent; i++)
+ fprintf(ctxt->output, " ");
+ if ((node->ns) && (node->ns->prefix))
+ fprintf(ctxt->output, "%s:", node->ns->prefix);
+ fprintf(ctxt->output, "%s\n", node->name);
+ } else {
+ }
+
+ /*
+ * Browse the full subtree, deep first
+ */
+
+ if ((node->type == XML_DOCUMENT_NODE) ||
+ (node->type == XML_HTML_DOCUMENT_NODE)) {
+ node = ((xmlDocPtr) node)->children;
+ } else if ((node->children != NULL)
+ && (node->type != XML_ENTITY_REF_NODE)) {
+ /* deep first */
+ node = node->children;
+ indent++;
+ } else if ((node != tree) && (node->next != NULL)) {
+ /* then siblings */
+ node = node->next;
+ } else if (node != tree) {
+ /* go up to parents->next if needed */
+ while (node != tree) {
+ if (node->parent != NULL) {
+ node = node->parent;
+ indent--;
+ }
+ if ((node != tree) && (node->next != NULL)) {
+ node = node->next;
+ break;
+ }
+ if (node->parent == NULL) {
+ node = NULL;
+ break;
+ }
+ if (node == tree) {
+ node = NULL;
+ break;
+ }
+ }
+ /* exit condition */
+ if (node == tree)
+ node = NULL;
+ } else
+ node = NULL;
+ }
+ return (0);
+}
+
+/**
+ * xmlShellPwd:
+ * @ctxt: the shell context
+ * @buffer: the output buffer
+ * @node: a node
+ * @node2: unused
+ *
+ * Implements the XML shell function "pwd"
+ * Show the full path from the root to the node, if needed building
+ * thumblers when similar elements exists at a given ancestor level.
+ * The output is compatible with XPath commands.
+ *
+ * Returns 0 or -1 in case of error
+ */
+int
+xmlShellPwd(xmlShellCtxtPtr ctxt ATTRIBUTE_UNUSED, char *buffer,
+ xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED)
+{
+ xmlChar *path;
+
+ if ((node == NULL) || (buffer == NULL))
+ return (-1);
+
+ path = xmlGetNodePath(node);
+ if (path == NULL)
+ return (-1);
+
+ /*
+ * This test prevents buffer overflow, because this routine
+ * is only called by xmlShell, in which the second argument is
+ * 500 chars long.
+ * It is a dirty hack before a cleaner solution is found.
+ * Documentation should mention that the second argument must
+ * be at least 500 chars long, and could be stripped if too long.
+ */
+ snprintf(buffer, 499, "%s", path);
+ buffer[499] = '0';
+ xmlFree(path);
+
+ return (0);
+}
+
+/**
+ * xmlShell:
+ * @doc: the initial document
+ * @filename: the output buffer
+ * @input: the line reading function
+ * @output: the output FILE*, defaults to stdout if NULL
+ *
+ * Implements the XML shell
+ * This allow to load, validate, view, modify and save a document
+ * using a environment similar to a UNIX commandline.
+ */
+void
+xmlShell(xmlDocPtr doc, char *filename, xmlShellReadlineFunc input,
+ FILE * output)
+{
+ char prompt[500] = "/ > ";
+ char *cmdline = NULL, *cur;
+ char command[100];
+ char arg[400];
+ int i;
+ xmlShellCtxtPtr ctxt;
+ xmlXPathObjectPtr list;
+
+ if (doc == NULL)
+ return;
+ if (filename == NULL)
+ return;
+ if (input == NULL)
+ return;
+ if (output == NULL)
+ output = stdout;
+ ctxt = (xmlShellCtxtPtr) xmlMalloc(sizeof(xmlShellCtxt));
+ if (ctxt == NULL)
+ return;
+ ctxt->loaded = 0;
+ ctxt->doc = doc;
+ ctxt->input = input;
+ ctxt->output = output;
+ ctxt->filename = (char *) xmlStrdup((xmlChar *) filename);
+ ctxt->node = (xmlNodePtr) ctxt->doc;
+
+#ifdef LIBXML_XPATH_ENABLED
+ ctxt->pctxt = xmlXPathNewContext(ctxt->doc);
+ if (ctxt->pctxt == NULL) {
+ xmlFree(ctxt);
+ return;
+ }
+#endif /* LIBXML_XPATH_ENABLED */
+ while (1) {
+ if (ctxt->node == (xmlNodePtr) ctxt->doc)
+ snprintf(prompt, sizeof(prompt), "%s > ", "/");
+ else if ((ctxt->node != NULL) && (ctxt->node->name) &&
+ (ctxt->node->ns) && (ctxt->node->ns->prefix))
+ snprintf(prompt, sizeof(prompt), "%s:%s > ",
+ (ctxt->node->ns->prefix), ctxt->node->name);
+ else if ((ctxt->node != NULL) && (ctxt->node->name))
+ snprintf(prompt, sizeof(prompt), "%s > ", ctxt->node->name);
+ else
+ snprintf(prompt, sizeof(prompt), "? > ");
+ prompt[sizeof(prompt) - 1] = 0;
+
+ /*
+ * Get a new command line
+ */
+ cmdline = ctxt->input(prompt);
+ if (cmdline == NULL)
+ break;
+
+ /*
+ * Parse the command itself
+ */
+ cur = cmdline;
+ while ((*cur == ' ') || (*cur == '\t'))
+ cur++;
+ i = 0;
+ while ((*cur != ' ') && (*cur != '\t') &&
+ (*cur != '\n') && (*cur != '\r')) {
+ if (*cur == 0)
+ break;
+ command[i++] = *cur++;
+ }
+ command[i] = 0;
+ if (i == 0)
+ continue;
+
+ /*
+ * Parse the argument
+ */
+ while ((*cur == ' ') || (*cur == '\t'))
+ cur++;
+ i = 0;
+ while ((*cur != '\n') && (*cur != '\r') && (*cur != 0)) {
+ if (*cur == 0)
+ break;
+ arg[i++] = *cur++;
+ }
+ arg[i] = 0;
+
+ /*
+ * start interpreting the command
+ */
+ if (!strcmp(command, "exit"))
+ break;
+ if (!strcmp(command, "quit"))
+ break;
+ if (!strcmp(command, "bye"))
+ break;
+ if (!strcmp(command, "help")) {
+ fprintf(ctxt->output, "\tbase display XML base of the node\n");
+ fprintf(ctxt->output, "\tsetbase URI change the XML base of the node\n");
+ fprintf(ctxt->output, "\tbye leave shell\n");
+ fprintf(ctxt->output, "\tcat [node] display node or current node\n");
+ fprintf(ctxt->output, "\tcd [path] change directory to path or to root\n");
+ fprintf(ctxt->output, "\tdir [path] dumps informations about the node (namespace, attributes, content)\n");
+ fprintf(ctxt->output, "\tdu [path] show the structure of the subtree under path or the current node\n");
+ fprintf(ctxt->output, "\texit leave shell\n");
+ fprintf(ctxt->output, "\thelp display this help\n");
+ fprintf(ctxt->output, "\tfree display memory usage\n");
+ fprintf(ctxt->output, "\tload [name] load a new document with name\n");
+ fprintf(ctxt->output, "\tls [path] list contents of path or the current directory\n");
+ fprintf(ctxt->output, "\tset xml_fragment replace the current node content with the fragment parsed in context\n");
+#ifdef LIBXML_XPATH_ENABLED
+ fprintf(ctxt->output, "\txpath expr evaluate the XPath expression in that context and print the result\n");
+ fprintf(ctxt->output, "\tsetns nsreg register a namespace to a prefix in the XPath evaluation context\n");
+ fprintf(ctxt->output, "\t format for nsreg is: prefix=[nsuri] (i.e. prefix= unsets a prefix)\n");
+ fprintf(ctxt->output, "\tsetrootns register all namespace found on the root element\n");
+ fprintf(ctxt->output, "\t the default namespace if any uses 'defaultns' prefix\n");
+#endif /* LIBXML_XPATH_ENABLED */
+ fprintf(ctxt->output, "\tpwd display current working directory\n");
+ fprintf(ctxt->output, "\twhereis display absolute path of [path] or current working directory\n");
+ fprintf(ctxt->output, "\tquit leave shell\n");
+#ifdef LIBXML_OUTPUT_ENABLED
+ fprintf(ctxt->output, "\tsave [name] save this document to name or the original name\n");
+ fprintf(ctxt->output, "\twrite [name] write the current node to the filename\n");
+#endif /* LIBXML_OUTPUT_ENABLED */
+#ifdef LIBXML_VALID_ENABLED
+ fprintf(ctxt->output, "\tvalidate check the document for errors\n");
+#endif /* LIBXML_VALID_ENABLED */
+#ifdef LIBXML_SCHEMAS_ENABLED
+ fprintf(ctxt->output, "\trelaxng rng validate the document against the Relax-NG schemas\n");
+#endif
+ fprintf(ctxt->output, "\tgrep string search for a string in the subtree\n");
+#ifdef LIBXML_VALID_ENABLED
+ } else if (!strcmp(command, "validate")) {
+ xmlShellValidate(ctxt, arg, NULL, NULL);
+#endif /* LIBXML_VALID_ENABLED */
+ } else if (!strcmp(command, "load")) {
+ xmlShellLoad(ctxt, arg, NULL, NULL);
+#ifdef LIBXML_SCHEMAS_ENABLED
+ } else if (!strcmp(command, "relaxng")) {
+ xmlShellRNGValidate(ctxt, arg, NULL, NULL);
+#endif
+#ifdef LIBXML_OUTPUT_ENABLED
+ } else if (!strcmp(command, "save")) {
+ xmlShellSave(ctxt, arg, NULL, NULL);
+ } else if (!strcmp(command, "write")) {
+ if (arg[0] == 0)
+ xmlGenericError(xmlGenericErrorContext,
+ "Write command requires a filename argument\n");
+ else
+ xmlShellWrite(ctxt, arg, ctxt->node, NULL);
+#endif /* LIBXML_OUTPUT_ENABLED */
+ } else if (!strcmp(command, "grep")) {
+ xmlShellGrep(ctxt, arg, ctxt->node, NULL);
+ } else if (!strcmp(command, "free")) {
+ if (arg[0] == 0) {
+ xmlMemShow(ctxt->output, 0);
+ } else {
+ int len = 0;
+
+ sscanf(arg, "%d", &len);
+ xmlMemShow(ctxt->output, len);
+ }
+ } else if (!strcmp(command, "pwd")) {
+ char dir[500];
+
+ if (!xmlShellPwd(ctxt, dir, ctxt->node, NULL))
+ fprintf(ctxt->output, "%s\n", dir);
+ } else if (!strcmp(command, "du")) {
+ if (arg[0] == 0) {
+ xmlShellDu(ctxt, NULL, ctxt->node, NULL);
+ } else {
+ ctxt->pctxt->node = ctxt->node;
+#ifdef LIBXML_XPATH_ENABLED
+ ctxt->pctxt->node = ctxt->node;
+ list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);
+#else
+ list = NULL;
+#endif /* LIBXML_XPATH_ENABLED */
+ if (list != NULL) {
+ switch (list->type) {
+ case XPATH_UNDEFINED:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ break;
+ case XPATH_NODESET:{
+ int indx;
+
+ if (list->nodesetval == NULL)
+ break;
+
+ for (indx = 0;
+ indx < list->nodesetval->nodeNr;
+ indx++)
+ xmlShellDu(ctxt, NULL,
+ list->nodesetval->
+ nodeTab[indx], NULL);
+ break;
+ }
+ case XPATH_BOOLEAN:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a Boolean\n", arg);
+ break;
+ case XPATH_NUMBER:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a number\n", arg);
+ break;
+ case XPATH_STRING:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a string\n", arg);
+ break;
+ case XPATH_POINT:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a point\n", arg);
+ break;
+ case XPATH_RANGE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_LOCATIONSET:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_USERS:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is user-defined\n", arg);
+ break;
+ case XPATH_XSLT_TREE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is an XSLT value tree\n",
+ arg);
+ break;
+ }
+#ifdef LIBXML_XPATH_ENABLED
+ xmlXPathFreeObject(list);
+#endif
+ } else {
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ }
+ ctxt->pctxt->node = NULL;
+ }
+ } else if (!strcmp(command, "base")) {
+ xmlShellBase(ctxt, NULL, ctxt->node, NULL);
+ } else if (!strcmp(command, "set")) {
+ xmlShellSetContent(ctxt, arg, ctxt->node, NULL);
+#ifdef LIBXML_XPATH_ENABLED
+ } else if (!strcmp(command, "setns")) {
+ if (arg[0] == 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "setns: prefix=[nsuri] required\n");
+ } else {
+ xmlShellRegisterNamespace(ctxt, arg, NULL, NULL);
+ }
+ } else if (!strcmp(command, "setrootns")) {
+ xmlNodePtr root;
+
+ root = xmlDocGetRootElement(ctxt->doc);
+ xmlShellRegisterRootNamespaces(ctxt, NULL, root, NULL);
+ } else if (!strcmp(command, "xpath")) {
+ if (arg[0] == 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xpath: expression required\n");
+ } else {
+ ctxt->pctxt->node = ctxt->node;
+ list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);
+ xmlXPathDebugDumpObject(ctxt->output, list, 0);
+ xmlXPathFreeObject(list);
+ }
+#endif /* LIBXML_XPATH_ENABLED */
+#ifdef LIBXML_TREE_ENABLED
+ } else if (!strcmp(command, "setbase")) {
+ xmlShellSetBase(ctxt, arg, ctxt->node, NULL);
+#endif
+ } else if ((!strcmp(command, "ls")) || (!strcmp(command, "dir"))) {
+ int dir = (!strcmp(command, "dir"));
+
+ if (arg[0] == 0) {
+ if (dir)
+ xmlShellDir(ctxt, NULL, ctxt->node, NULL);
+ else
+ xmlShellList(ctxt, NULL, ctxt->node, NULL);
+ } else {
+ ctxt->pctxt->node = ctxt->node;
+#ifdef LIBXML_XPATH_ENABLED
+ ctxt->pctxt->node = ctxt->node;
+ list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);
+#else
+ list = NULL;
+#endif /* LIBXML_XPATH_ENABLED */
+ if (list != NULL) {
+ switch (list->type) {
+ case XPATH_UNDEFINED:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ break;
+ case XPATH_NODESET:{
+ int indx;
+
+ if (list->nodesetval == NULL)
+ break;
+
+ for (indx = 0;
+ indx < list->nodesetval->nodeNr;
+ indx++) {
+ if (dir)
+ xmlShellDir(ctxt, NULL,
+ list->nodesetval->
+ nodeTab[indx], NULL);
+ else
+ xmlShellList(ctxt, NULL,
+ list->nodesetval->
+ nodeTab[indx], NULL);
+ }
+ break;
+ }
+ case XPATH_BOOLEAN:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a Boolean\n", arg);
+ break;
+ case XPATH_NUMBER:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a number\n", arg);
+ break;
+ case XPATH_STRING:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a string\n", arg);
+ break;
+ case XPATH_POINT:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a point\n", arg);
+ break;
+ case XPATH_RANGE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_LOCATIONSET:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_USERS:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is user-defined\n", arg);
+ break;
+ case XPATH_XSLT_TREE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is an XSLT value tree\n",
+ arg);
+ break;
+ }
+#ifdef LIBXML_XPATH_ENABLED
+ xmlXPathFreeObject(list);
+#endif
+ } else {
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ }
+ ctxt->pctxt->node = NULL;
+ }
+ } else if (!strcmp(command, "whereis")) {
+ char dir[500];
+
+ if (arg[0] == 0) {
+ if (!xmlShellPwd(ctxt, dir, ctxt->node, NULL))
+ fprintf(ctxt->output, "%s\n", dir);
+ } else {
+ ctxt->pctxt->node = ctxt->node;
+#ifdef LIBXML_XPATH_ENABLED
+ list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);
+#else
+ list = NULL;
+#endif /* LIBXML_XPATH_ENABLED */
+ if (list != NULL) {
+ switch (list->type) {
+ case XPATH_UNDEFINED:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ break;
+ case XPATH_NODESET:{
+ int indx;
+
+ if (list->nodesetval == NULL)
+ break;
+
+ for (indx = 0;
+ indx < list->nodesetval->nodeNr;
+ indx++) {
+ if (!xmlShellPwd(ctxt, dir, list->nodesetval->
+ nodeTab[indx], NULL))
+ fprintf(ctxt->output, "%s\n", dir);
+ }
+ break;
+ }
+ case XPATH_BOOLEAN:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a Boolean\n", arg);
+ break;
+ case XPATH_NUMBER:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a number\n", arg);
+ break;
+ case XPATH_STRING:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a string\n", arg);
+ break;
+ case XPATH_POINT:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a point\n", arg);
+ break;
+ case XPATH_RANGE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_LOCATIONSET:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_USERS:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is user-defined\n", arg);
+ break;
+ case XPATH_XSLT_TREE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is an XSLT value tree\n",
+ arg);
+ break;
+ }
+#ifdef LIBXML_XPATH_ENABLED
+ xmlXPathFreeObject(list);
+#endif
+ } else {
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ }
+ ctxt->pctxt->node = NULL;
+ }
+ } else if (!strcmp(command, "cd")) {
+ if (arg[0] == 0) {
+ ctxt->node = (xmlNodePtr) ctxt->doc;
+ } else {
+#ifdef LIBXML_XPATH_ENABLED
+ int l;
+
+ ctxt->pctxt->node = ctxt->node;
+ l = strlen(arg);
+ if ((l >= 2) && (arg[l - 1] == '/'))
+ arg[l - 1] = 0;
+ list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);
+#else
+ list = NULL;
+#endif /* LIBXML_XPATH_ENABLED */
+ if (list != NULL) {
+ switch (list->type) {
+ case XPATH_UNDEFINED:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ break;
+ case XPATH_NODESET:
+ if (list->nodesetval != NULL) {
+ if (list->nodesetval->nodeNr == 1) {
+ ctxt->node = list->nodesetval->nodeTab[0];
+ if ((ctxt->node != NULL) &&
+ (ctxt->node->type ==
+ XML_NAMESPACE_DECL)) {
+ xmlGenericError(xmlGenericErrorContext,
+ "cannot cd to namespace\n");
+ ctxt->node = NULL;
+ }
+ } else
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a %d Node Set\n",
+ arg,
+ list->nodesetval->nodeNr);
+ } else
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is an empty Node Set\n",
+ arg);
+ break;
+ case XPATH_BOOLEAN:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a Boolean\n", arg);
+ break;
+ case XPATH_NUMBER:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a number\n", arg);
+ break;
+ case XPATH_STRING:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a string\n", arg);
+ break;
+ case XPATH_POINT:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a point\n", arg);
+ break;
+ case XPATH_RANGE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_LOCATIONSET:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_USERS:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is user-defined\n", arg);
+ break;
+ case XPATH_XSLT_TREE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is an XSLT value tree\n",
+ arg);
+ break;
+ }
+#ifdef LIBXML_XPATH_ENABLED
+ xmlXPathFreeObject(list);
+#endif
+ } else {
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ }
+ ctxt->pctxt->node = NULL;
+ }
+#ifdef LIBXML_OUTPUT_ENABLED
+ } else if (!strcmp(command, "cat")) {
+ if (arg[0] == 0) {
+ xmlShellCat(ctxt, NULL, ctxt->node, NULL);
+ } else {
+ ctxt->pctxt->node = ctxt->node;
+#ifdef LIBXML_XPATH_ENABLED
+ ctxt->pctxt->node = ctxt->node;
+ list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);
+#else
+ list = NULL;
+#endif /* LIBXML_XPATH_ENABLED */
+ if (list != NULL) {
+ switch (list->type) {
+ case XPATH_UNDEFINED:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ break;
+ case XPATH_NODESET:{
+ int indx;
+
+ if (list->nodesetval == NULL)
+ break;
+
+ for (indx = 0;
+ indx < list->nodesetval->nodeNr;
+ indx++) {
+ if (i > 0)
+ fprintf(ctxt->output, " -------\n");
+ xmlShellCat(ctxt, NULL,
+ list->nodesetval->
+ nodeTab[indx], NULL);
+ }
+ break;
+ }
+ case XPATH_BOOLEAN:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a Boolean\n", arg);
+ break;
+ case XPATH_NUMBER:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a number\n", arg);
+ break;
+ case XPATH_STRING:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a string\n", arg);
+ break;
+ case XPATH_POINT:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a point\n", arg);
+ break;
+ case XPATH_RANGE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_LOCATIONSET:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is a range\n", arg);
+ break;
+ case XPATH_USERS:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is user-defined\n", arg);
+ break;
+ case XPATH_XSLT_TREE:
+ xmlGenericError(xmlGenericErrorContext,
+ "%s is an XSLT value tree\n",
+ arg);
+ break;
+ }
+#ifdef LIBXML_XPATH_ENABLED
+ xmlXPathFreeObject(list);
+#endif
+ } else {
+ xmlGenericError(xmlGenericErrorContext,
+ "%s: no such node\n", arg);
+ }
+ ctxt->pctxt->node = NULL;
+ }
+#endif /* LIBXML_OUTPUT_ENABLED */
+ } else {
+ xmlGenericError(xmlGenericErrorContext,
+ "Unknown command %s\n", command);
+ }
+ free(cmdline); /* not xmlFree here ! */
+ cmdline = NULL;
+ }
+#ifdef LIBXML_XPATH_ENABLED
+ xmlXPathFreeContext(ctxt->pctxt);
+#endif /* LIBXML_XPATH_ENABLED */
+ if (ctxt->loaded) {
+ xmlFreeDoc(ctxt->doc);
+ }
+ if (ctxt->filename != NULL)
+ xmlFree(ctxt->filename);
+ xmlFree(ctxt);
+ if (cmdline != NULL)
+ free(cmdline); /* not xmlFree here ! */
+}
+
+#endif /* LIBXML_XPATH_ENABLED */
+#define bottom_debugXML
+#include "elfgcchack.h"
+#endif /* LIBXML_DEBUG_ENABLED */
diff --git a/libxml2-2.9.10/depcomp b/libxml2-2.9.10/depcomp
new file mode 100755
index 0000000..65cbf70
--- /dev/null
+++ b/libxml2-2.9.10/depcomp
@@ -0,0 +1,791 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2018-03-07.03; # UTC
+
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by 'PROGRAMS ARGS'.
+ object Object file output by 'PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputting dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'. Note that this directory component will
+# be either empty or ending with a '/' character. This is deliberate.
+set_dir_from ()
+{
+ case $1 in
+ */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+ *) dir=;;
+ esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+ base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+ echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+ # If the compiler actually managed to produce a dependency file,
+ # post-process it.
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form 'foo.o: dependency.h'.
+ # Do two passes, one to just change these to
+ # $object: dependency.h
+ # and one to simply output
+ # dependency.h:
+ # which is needed to avoid the deleted-header problem.
+ { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+ sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+ } > "$depfile"
+ rm -f "$tmpdepfile"
+ else
+ make_dummy_depfile
+ fi
+}
+
+# A tabulation character.
+tab=' '
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+ # This is just like msvc7 but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+ gccflag=-qmakedep=gcc,-MF
+ depmode=gcc
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay! Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff. Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am. Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+ for arg
+ do
+ case $arg in
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+ *) set fnord "$@" "$arg" ;;
+ esac
+ shift # fnord
+ shift # $arg
+ done
+ "$@"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say). Also, it might not be
+## supported by the other compilers which use the 'gcc' depmode.
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The second -e expression handles DOS-style file names with drive
+ # letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the "deleted header file" problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+## Some versions of gcc put a space before the ':'. On the theory
+## that the space means something, we add a space to the output as
+## well. hp depmode also adds that space, but also prefixes the VPATH
+## to the object. Take care to not repeat it in the output.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like '#:fec' to the end of the
+ # dependency line.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+ | tr "$nl" ' ' >> "$depfile"
+ echo >> "$depfile"
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> "$depfile"
+ else
+ make_dummy_depfile
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+xlc)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts '$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ set_dir_from "$object"
+ set_base_from "$object"
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$base.u
+ tmpdepfile3=$dir.libs/$base.u
+ "$@" -Wc,-M
+ else
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$dir$base.u
+ tmpdepfile3=$dir$base.u
+ "$@" -M
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ aix_post_process_depfile
+ ;;
+
+tcc)
+ # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+ # FIXME: That version still under development at the moment of writing.
+ # Make that this statement remains true also for stable, released
+ # versions.
+ # It will wrap lines (doesn't matter whether long or short) with a
+ # trailing '\', as in:
+ #
+ # foo.o : \
+ # foo.c \
+ # foo.h \
+ #
+ # It will put a trailing '\' even on the last line, and will use leading
+ # spaces rather than leading tabs (at least since its commit 0394caf7
+ # "Emit spaces for -MD").
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+ # We have to change lines of the first kind to '$object: \'.
+ sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+ # And for each line of the second kind, we have to emit a 'dep.h:'
+ # dummy dependency, to avoid the deleted-header problem.
+ sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file. A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+ # Portland's C compiler understands '-MD'.
+ # Will always output deps to 'file.d' where file is the root name of the
+ # source file under compilation, even if file resides in a subdirectory.
+ # The object file name does not affect the name of the '.d' file.
+ # pgcc 10.2 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using '\' :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+ set_dir_from "$object"
+ # Use the source, not the object, to determine the base name, since
+ # that's sadly what pgcc will do too.
+ set_base_from "$source"
+ tmpdepfile=$base.d
+
+ # For projects that build the same source file twice into different object
+ # files, the pgcc approach of using the *source* file root name can cause
+ # problems in parallel builds. Use a locking strategy to avoid stomping on
+ # the same $tmpdepfile.
+ lockdir=$base.d-lock
+ trap "
+ echo '$0: caught signal, cleaning up...' >&2
+ rmdir '$lockdir'
+ exit 1
+ " 1 2 13 15
+ numtries=100
+ i=$numtries
+ while test $i -gt 0; do
+ # mkdir is a portable test-and-set.
+ if mkdir "$lockdir" 2>/dev/null; then
+ # This process acquired the lock.
+ "$@" -MD
+ stat=$?
+ # Release the lock.
+ rmdir "$lockdir"
+ break
+ else
+ # If the lock is being held by a different process, wait
+ # until the winning process is done or we timeout.
+ while test -d "$lockdir" && test $i -gt 0; do
+ sleep 1
+ i=`expr $i - 1`
+ done
+ fi
+ i=`expr $i - 1`
+ done
+ trap - 1 2 13 15
+ if test $i -le 0; then
+ echo "$0: failed to acquire lock after $numtries attempts" >&2
+ echo "$0: check lockdir '$lockdir'" >&2
+ exit 1
+ fi
+
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp2)
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+ # compilers, which have integrated preprocessors. The correct option
+ # to use with these is +Maked; it writes dependencies to a file named
+ # 'foo.d', which lands next to the object file, wherever that
+ # happens to be.
+ # Much of this is similar to the tru64 case; see comments there.
+ set_dir_from "$object"
+ set_base_from "$object"
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir.libs/$base.d
+ "$@" -Wc,+Maked
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ "$@" +Maked
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+ # Add 'dependent.h:' lines.
+ sed -ne '2,${
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
+ else
+ make_dummy_depfile
+ fi
+ rm -f "$tmpdepfile" "$tmpdepfile2"
+ ;;
+
+tru64)
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in 'foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ set_dir_from "$object"
+ set_base_from "$object"
+
+ if test "$libtool" = yes; then
+ # Libtool generates 2 separate objects for the 2 libraries. These
+ # two compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir$base.o.d # libtool 1.5
+ tmpdepfile2=$dir.libs/$base.o.d # Likewise.
+ tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ # Same post-processing that is required for AIX mode.
+ aix_post_process_depfile
+ ;;
+
+msvc7)
+ if test "$libtool" = yes; then
+ showIncludes=-Wc,-showIncludes
+ else
+ showIncludes=-showIncludes
+ fi
+ "$@" $showIncludes > "$tmpdepfile"
+ stat=$?
+ grep -v '^Note: including file: ' "$tmpdepfile"
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The first sed program below extracts the file names and escapes
+ # backslashes for cygpath. The second sed program outputs the file
+ # name when reading, but also accumulates all include files in the
+ # hold buffer in order to output them again at the end. This only
+ # works with sed implementations that can handle large buffers.
+ sed < "$tmpdepfile" -n '
+/^Note: including file: *\(.*\)/ {
+ s//\1/
+ s/\\/\\\\/g
+ p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+ s/.*/'"$tab"'/
+ G
+ p
+}' >> "$depfile"
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
+ rm -f "$tmpdepfile"
+ ;;
+
+msvc7msys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove '-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ test -z "$dashmflag" && dashmflag=-M
+ # Require at least two characters before searching for ':'
+ # in the target name. This is to cope with DOS-style filenames:
+ # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+ "$@" $dashmflag |
+ sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this sed invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+ # X makedepend
+ shift
+ cleared=no eat=no
+ for arg
+ do
+ case $cleared in
+ no)
+ set ""; shift
+ cleared=yes ;;
+ esac
+ if test $eat = yes; then
+ eat=no
+ continue
+ fi
+ case "$arg" in
+ -D*|-I*)
+ set fnord "$@" "$arg"; shift ;;
+ # Strip any option that makedepend may not understand. Remove
+ # the object too, otherwise makedepend will parse it as a source file.
+ -arch)
+ eat=yes ;;
+ -*|$object)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift ;;
+ esac
+ done
+ obj_suffix=`echo "$object" | sed 's/^.*\././'`
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ rm -f "$depfile"
+ # makedepend may prepend the VPATH from the source file name to the object.
+ # No need to regex-escape $object, excess matching of '.' is harmless.
+ sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process the last invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed '1,2d' "$tmpdepfile" \
+ | tr ' ' "$nl" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove '-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ "$@" -E \
+ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ | sed '$ s: \\$::' > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ IFS=" "
+ for arg
+ do
+ case "$arg" in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ set fnord "$@"
+ shift
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
+ esac
+ done
+ "$@" -E 2>/dev/null |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+ echo "$tab" >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvcmsys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+none)
+ exec "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/libxml2-2.9.10/dict.c b/libxml2-2.9.10/dict.c
new file mode 100644
index 0000000..336e046
--- /dev/null
+++ b/libxml2-2.9.10/dict.c
@@ -0,0 +1,1298 @@
+/*
+ * dict.c: dictionary of reusable strings, just used to avoid allocation
+ * and freeing operations.
+ *
+ * Copyright (C) 2003-2012 Daniel Veillard.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
+ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
+ *
+ * Author: daniel@veillard.com
+ */
+
+#define IN_LIBXML
+#include "libxml.h"
+
+#include <limits.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+
+/*
+ * Following http://www.ocert.org/advisories/ocert-2011-003.html
+ * it seems that having hash randomization might be a good idea
+ * when using XML with untrusted data
+ * Note1: that it works correctly only if compiled with WITH_BIG_KEY
+ * which is the default.
+ * Note2: the fast function used for a small dict won't protect very
+ * well but since the attack is based on growing a very big hash
+ * list we will use the BigKey algo as soon as the hash size grows
+ * over MIN_DICT_SIZE so this actually works
+ */
+#if defined(HAVE_RAND) && defined(HAVE_SRAND) && defined(HAVE_TIME) && \
+ !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
+#define DICT_RANDOMIZATION
+#endif
+
+#include <string.h>
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#else
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#elif defined(_WIN32)
+typedef unsigned __int32 uint32_t;
+#endif
+#endif
+#include <libxml/tree.h>
+#include <libxml/dict.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/xmlerror.h>
+#include <libxml/globals.h>
+
+/* #define DEBUG_GROW */
+/* #define DICT_DEBUG_PATTERNS */
+
+#define MAX_HASH_LEN 3
+#define MIN_DICT_SIZE 128
+#define MAX_DICT_HASH 8 * 2048
+#define WITH_BIG_KEY
+
+#ifdef WITH_BIG_KEY
+#define xmlDictComputeKey(dict, name, len) \
+ (((dict)->size == MIN_DICT_SIZE) ? \
+ xmlDictComputeFastKey(name, len, (dict)->seed) : \
+ xmlDictComputeBigKey(name, len, (dict)->seed))
+
+#define xmlDictComputeQKey(dict, prefix, plen, name, len) \
+ (((prefix) == NULL) ? \
+ (xmlDictComputeKey(dict, name, len)) : \
+ (((dict)->size == MIN_DICT_SIZE) ? \
+ xmlDictComputeFastQKey(prefix, plen, name, len, (dict)->seed) : \
+ xmlDictComputeBigQKey(prefix, plen, name, len, (dict)->seed)))
+
+#else /* !WITH_BIG_KEY */
+#define xmlDictComputeKey(dict, name, len) \
+ xmlDictComputeFastKey(name, len, (dict)->seed)
+#define xmlDictComputeQKey(dict, prefix, plen, name, len) \
+ xmlDictComputeFastQKey(prefix, plen, name, len, (dict)->seed)
+#endif /* WITH_BIG_KEY */
+
+/*
+ * An entry in the dictionary
+ */
+typedef struct _xmlDictEntry xmlDictEntry;
+typedef xmlDictEntry *xmlDictEntryPtr;
+struct _xmlDictEntry {
+ struct _xmlDictEntry *next;
+ const xmlChar *name;
+ unsigned int len;
+ int valid;
+ unsigned long okey;
+};
+
+typedef struct _xmlDictStrings xmlDictStrings;
+typedef xmlDictStrings *xmlDictStringsPtr;
+struct _xmlDictStrings {
+ xmlDictStringsPtr next;
+ xmlChar *free;
+ xmlChar *end;
+ size_t size;
+ size_t nbStrings;
+ xmlChar array[1];
+};
+/*
+ * The entire dictionary
+ */
+struct _xmlDict {
+ int ref_counter;
+
+ struct _xmlDictEntry *dict;
+ size_t size;
+ unsigned int nbElems;
+ xmlDictStringsPtr strings;
+
+ struct _xmlDict *subdict;
+ /* used for randomization */
+ int seed;
+ /* used to impose a limit on size */
+ size_t limit;
+};
+
+/*
+ * A mutex for modifying the reference counter for shared
+ * dictionaries.
+ */
+static xmlRMutexPtr xmlDictMutex = NULL;
+
+/*
+ * Whether the dictionary mutex was initialized.
+ */
+static int xmlDictInitialized = 0;
+
+#ifdef DICT_RANDOMIZATION
+#ifdef HAVE_RAND_R
+/*
+ * Internal data for random function, protected by xmlDictMutex
+ */
+static unsigned int rand_seed = 0;
+#endif
+#endif
+
+/**
+ * xmlInitializeDict:
+ *
+ * Do the dictionary mutex initialization.
+ * this function is deprecated
+ *
+ * Returns 0 if initialization was already done, and 1 if that
+ * call led to the initialization
+ */
+int xmlInitializeDict(void) {
+ return(0);
+}
+
+/**
+ * __xmlInitializeDict:
+ *
+ * This function is not public
+ * Do the dictionary mutex initialization.
+ * this function is not thread safe, initialization should
+ * normally be done once at setup when called from xmlOnceInit()
+ * we may also land in this code if thread support is not compiled in
+ *
+ * Returns 0 if initialization was already done, and 1 if that
+ * call led to the initialization
+ */
+int __xmlInitializeDict(void) {
+ if (xmlDictInitialized)
+ return(1);
+
+ if ((xmlDictMutex = xmlNewRMutex()) == NULL)
+ return(0);
+ xmlRMutexLock(xmlDictMutex);
+
+#ifdef DICT_RANDOMIZATION
+#ifdef HAVE_RAND_R
+ rand_seed = time(NULL);
+ rand_r(& rand_seed);
+#else
+ srand(time(NULL));
+#endif
+#endif
+ xmlDictInitialized = 1;
+ xmlRMutexUnlock(xmlDictMutex);
+ return(1);
+}
+
+#ifdef DICT_RANDOMIZATION
+int __xmlRandom(void) {
+ int ret;
+
+ if (xmlDictInitialized == 0)
+ __xmlInitializeDict();
+
+ xmlRMutexLock(xmlDictMutex);
+#ifdef HAVE_RAND_R
+ ret = rand_r(& rand_seed);
+#else
+ ret = rand();
+#endif
+ xmlRMutexUnlock(xmlDictMutex);
+ return(ret);
+}
+#endif
+
+/**
+ * xmlDictCleanup:
+ *
+ * Free the dictionary mutex. Do not call unless sure the library
+ * is not in use anymore !
+ */
+void
+xmlDictCleanup(void) {
+ if (!xmlDictInitialized)
+ return;
+
+ xmlFreeRMutex(xmlDictMutex);
+
+ xmlDictInitialized = 0;
+}
+
+/*
+ * xmlDictAddString:
+ * @dict: the dictionary
+ * @name: the name of the userdata
+ * @len: the length of the name
+ *
+ * Add the string to the array[s]
+ *
+ * Returns the pointer of the local string, or NULL in case of error.
+ */
+static const xmlChar *
+xmlDictAddString(xmlDictPtr dict, const xmlChar *name, unsigned int namelen) {
+ xmlDictStringsPtr pool;
+ const xmlChar *ret;
+ size_t size = 0; /* + sizeof(_xmlDictStrings) == 1024 */
+ size_t limit = 0;
+
+#ifdef DICT_DEBUG_PATTERNS
+ fprintf(stderr, "-");
+#endif
+ pool = dict->strings;
+ while (pool != NULL) {
+ if ((size_t)(pool->end - pool->free) > namelen)
+ goto found_pool;
+ if (pool->size > size) size = pool->size;
+ limit += pool->size;
+ pool = pool->next;
+ }
+ /*
+ * Not found, need to allocate
+ */
+ if (pool == NULL) {
+ if ((dict->limit > 0) && (limit > dict->limit)) {
+ return(NULL);
+ }
+
+ if (size == 0) size = 1000;
+ else size *= 4; /* exponential growth */
+ if (size < 4 * namelen)
+ size = 4 * namelen; /* just in case ! */
+ pool = (xmlDictStringsPtr) xmlMalloc(sizeof(xmlDictStrings) + size);
+ if (pool == NULL)
+ return(NULL);
+ pool->size = size;
+ pool->nbStrings = 0;
+ pool->free = &pool->array[0];
+ pool->end = &pool->array[size];
+ pool->next = dict->strings;
+ dict->strings = pool;
+#ifdef DICT_DEBUG_PATTERNS
+ fprintf(stderr, "+");
+#endif
+ }
+found_pool:
+ ret = pool->free;
+ memcpy(pool->free, name, namelen);
+ pool->free += namelen;
+ *(pool->free++) = 0;
+ pool->nbStrings++;
+ return(ret);
+}
+
+/*
+ * xmlDictAddQString:
+ * @dict: the dictionary
+ * @prefix: the prefix of the userdata
+ * @plen: the prefix length
+ * @name: the name of the userdata
+ * @len: the length of the name
+ *
+ * Add the QName to the array[s]
+ *
+ * Returns the pointer of the local string, or NULL in case of error.
+ */
+static const xmlChar *
+xmlDictAddQString(xmlDictPtr dict, const xmlChar *prefix, unsigned int plen,
+ const xmlChar *name, unsigned int namelen)
+{
+ xmlDictStringsPtr pool;
+ const xmlChar *ret;
+ size_t size = 0; /* + sizeof(_xmlDictStrings) == 1024 */
+ size_t limit = 0;
+
+ if (prefix == NULL) return(xmlDictAddString(dict, name, namelen));
+
+#ifdef DICT_DEBUG_PATTERNS
+ fprintf(stderr, "=");
+#endif
+ pool = dict->strings;
+ while (pool != NULL) {
+ if ((size_t)(pool->end - pool->free) > namelen + plen + 1)
+ goto found_pool;
+ if (pool->size > size) size = pool->size;
+ limit += pool->size;
+ pool = pool->next;
+ }
+ /*
+ * Not found, need to allocate
+ */
+ if (pool == NULL) {
+ if ((dict->limit > 0) && (limit > dict->limit)) {
+ return(NULL);
+ }
+
+ if (size == 0) size = 1000;
+ else size *= 4; /* exponential growth */
+ if (size < 4 * (namelen + plen + 1))
+ size = 4 * (namelen + plen + 1); /* just in case ! */
+ pool = (xmlDictStringsPtr) xmlMalloc(sizeof(xmlDictStrings) + size);
+ if (pool == NULL)
+ return(NULL);
+ pool->size = size;
+ pool->nbStrings = 0;
+ pool->free = &pool->array[0];
+ pool->end = &pool->array[size];
+ pool->next = dict->strings;
+ dict->strings = pool;
+#ifdef DICT_DEBUG_PATTERNS
+ fprintf(stderr, "+");
+#endif
+ }
+found_pool:
+ ret = pool->free;
+ memcpy(pool->free, prefix, plen);
+ pool->free += plen;
+ *(pool->free++) = ':';
+ memcpy(pool->free, name, namelen);
+ pool->free += namelen;
+ *(pool->free++) = 0;
+ pool->nbStrings++;
+ return(ret);
+}
+
+#ifdef WITH_BIG_KEY
+/*
+ * xmlDictComputeBigKey:
+ *
+ * Calculate a hash key using a good hash function that works well for
+ * larger hash table sizes.
+ *
+ * Hash function by "One-at-a-Time Hash" see
+ * http://burtleburtle.net/bob/hash/doobs.html
+ */
+
+#ifdef __clang__
+ATTRIBUTE_NO_SANITIZE("unsigned-integer-overflow")
+#endif
+static uint32_t
+xmlDictComputeBigKey(const xmlChar* data, int namelen, int seed) {
+ uint32_t hash;
+ int i;
+
+ if (namelen <= 0 || data == NULL) return(0);
+
+ hash = seed;
+
+ for (i = 0;i < namelen; i++) {
+ hash += data[i];
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ }
+ hash += (hash << 3);
+ hash ^= (hash >> 11);
+ hash += (hash << 15);
+
+ return hash;
+}
+
+/*
+ * xmlDictComputeBigQKey:
+ *
+ * Calculate a hash key for two strings using a good hash function
+ * that works well for larger hash table sizes.
+ *
+ * Hash function by "One-at-a-Time Hash" see
+ * http://burtleburtle.net/bob/hash/doobs.html
+ *
+ * Neither of the two strings must be NULL.
+ */
+#ifdef __clang__
+ATTRIBUTE_NO_SANITIZE("unsigned-integer-overflow")
+#endif
+static unsigned long
+xmlDictComputeBigQKey(const xmlChar *prefix, int plen,
+ const xmlChar *name, int len, int seed)
+{
+ uint32_t hash;
+ int i;
+
+ hash = seed;
+
+ for (i = 0;i < plen; i++) {
+ hash += prefix[i];
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ }
+ hash += ':';
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+
+ for (i = 0;i < len; i++) {
+ hash += name[i];
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ }
+ hash += (hash << 3);
+ hash ^= (hash >> 11);
+ hash += (hash << 15);
+
+ return hash;
+}
+#endif /* WITH_BIG_KEY */
+
+/*
+ * xmlDictComputeFastKey:
+ *
+ * Calculate a hash key using a fast hash function that works well
+ * for low hash table fill.
+ */
+static unsigned long
+xmlDictComputeFastKey(const xmlChar *name, int namelen, int seed) {
+ unsigned long value = seed;
+
+ if (name == NULL) return(0);
+ value = *name;
+ value <<= 5;
+ if (namelen > 10) {
+ value += name[namelen - 1];
+ namelen = 10;
+ }
+ switch (namelen) {
+ case 10: value += name[9];
+ /* Falls through. */
+ case 9: value += name[8];
+ /* Falls through. */
+ case 8: value += name[7];
+ /* Falls through. */
+ case 7: value += name[6];
+ /* Falls through. */
+ case 6: value += name[5];
+ /* Falls through. */
+ case 5: value += name[4];
+ /* Falls through. */
+ case 4: value += name[3];
+ /* Falls through. */
+ case 3: value += name[2];
+ /* Falls through. */
+ case 2: value += name[1];
+ /* Falls through. */
+ default: break;
+ }
+ return(value);
+}
+
+/*
+ * xmlDictComputeFastQKey:
+ *
+ * Calculate a hash key for two strings using a fast hash function
+ * that works well for low hash table fill.
+ *
+ * Neither of the two strings must be NULL.
+ */
+static unsigned long
+xmlDictComputeFastQKey(const xmlChar *prefix, int plen,
+ const xmlChar *name, int len, int seed)
+{
+ unsigned long value = (unsigned long) seed;
+
+ if (plen == 0)
+ value += 30 * (unsigned long) ':';
+ else
+ value += 30 * (*prefix);
+
+ if (len > 10) {
+ int offset = len - (plen + 1 + 1);
+ if (offset < 0)
+ offset = len - (10 + 1);
+ value += name[offset];
+ len = 10;
+ if (plen > 10)
+ plen = 10;
+ }
+ switch (plen) {
+ case 10: value += prefix[9];
+ /* Falls through. */
+ case 9: value += prefix[8];
+ /* Falls through. */
+ case 8: value += prefix[7];
+ /* Falls through. */
+ case 7: value += prefix[6];
+ /* Falls through. */
+ case 6: value += prefix[5];
+ /* Falls through. */
+ case 5: value += prefix[4];
+ /* Falls through. */
+ case 4: value += prefix[3];
+ /* Falls through. */
+ case 3: value += prefix[2];
+ /* Falls through. */
+ case 2: value += prefix[1];
+ /* Falls through. */
+ case 1: value += prefix[0];
+ /* Falls through. */
+ default: break;
+ }
+ len -= plen;
+ if (len > 0) {
+ value += (unsigned long) ':';
+ len--;
+ }
+ switch (len) {
+ case 10: value += name[9];
+ /* Falls through. */
+ case 9: value += name[8];
+ /* Falls through. */
+ case 8: value += name[7];
+ /* Falls through. */
+ case 7: value += name[6];
+ /* Falls through. */
+ case 6: value += name[5];
+ /* Falls through. */
+ case 5: value += name[4];
+ /* Falls through. */
+ case 4: value += name[3];
+ /* Falls through. */
+ case 3: value += name[2];
+ /* Falls through. */
+ case 2: value += name[1];
+ /* Falls through. */
+ case 1: value += name[0];
+ /* Falls through. */
+ default: break;
+ }
+ return(value);
+}
+
+/**
+ * xmlDictCreate:
+ *
+ * Create a new dictionary
+ *
+ * Returns the newly created dictionary, or NULL if an error occurred.
+ */
+xmlDictPtr
+xmlDictCreate(void) {
+ xmlDictPtr dict;
+
+ if (!xmlDictInitialized)
+ if (!__xmlInitializeDict())
+ return(NULL);
+
+#ifdef DICT_DEBUG_PATTERNS
+ fprintf(stderr, "C");
+#endif
+
+ dict = xmlMalloc(sizeof(xmlDict));
+ if (dict) {
+ dict->ref_counter = 1;
+ dict->limit = 0;
+
+ dict->size = MIN_DICT_SIZE;
+ dict->nbElems = 0;
+ dict->dict = xmlMalloc(MIN_DICT_SIZE * sizeof(xmlDictEntry));
+ dict->strings = NULL;
+ dict->subdict = NULL;
+ if (dict->dict) {
+ memset(dict->dict, 0, MIN_DICT_SIZE * sizeof(xmlDictEntry));
+#ifdef DICT_RANDOMIZATION
+ dict->seed = __xmlRandom();
+#else
+ dict->seed = 0;
+#endif
+ return(dict);
+ }
+ xmlFree(dict);
+ }
+ return(NULL);
+}
+
+/**
+ * xmlDictCreateSub:
+ * @sub: an existing dictionary
+ *
+ * Create a new dictionary, inheriting strings from the read-only
+ * dictionary @sub. On lookup, strings are first searched in the
+ * new dictionary, then in @sub, and if not found are created in the
+ * new dictionary.
+ *
+ * Returns the newly created dictionary, or NULL if an error occurred.
+ */
+xmlDictPtr
+xmlDictCreateSub(xmlDictPtr sub) {
+ xmlDictPtr dict = xmlDictCreate();
+
+ if ((dict != NULL) && (sub != NULL)) {
+#ifdef DICT_DEBUG_PATTERNS
+ fprintf(stderr, "R");
+#endif
+ dict->seed = sub->seed;
+ dict->subdict = sub;
+ xmlDictReference(dict->subdict);
+ }
+ return(dict);
+}
+
+/**
+ * xmlDictReference:
+ * @dict: the dictionary
+ *
+ * Increment the reference counter of a dictionary
+ *
+ * Returns 0 in case of success and -1 in case of error
+ */
+int
+xmlDictReference(xmlDictPtr dict) {
+ if (!xmlDictInitialized)
+ if (!__xmlInitializeDict())
+ return(-1);
+
+ if (dict == NULL) return -1;
+ xmlRMutexLock(xmlDictMutex);
+ dict->ref_counter++;
+ xmlRMutexUnlock(xmlDictMutex);
+ return(0);
+}
+
+/**
+ * xmlDictGrow:
+ * @dict: the dictionary
+ * @size: the new size of the dictionary
+ *
+ * resize the dictionary
+ *
+ * Returns 0 in case of success, -1 in case of failure
+ */
+static int
+xmlDictGrow(xmlDictPtr dict, size_t size) {
+ unsigned long key, okey;
+ size_t oldsize, i;
+ xmlDictEntryPtr iter, next;
+ struct _xmlDictEntry *olddict;
+#ifdef DEBUG_GROW
+ unsigned long nbElem = 0;
+#endif
+ int ret = 0;
+ int keep_keys = 1;
+
+ if (dict == NULL)
+ return(-1);
+ if (size < 8)
+ return(-1);
+ if (size > 8 * 2048)
+ return(-1);
+
+#ifdef DICT_DEBUG_PATTERNS
+ fprintf(stderr, "*");
+#endif
+
+ oldsize = dict->size;
+ olddict = dict->dict;
+ if (olddict == NULL)
+ return(-1);
+ if (oldsize == MIN_DICT_SIZE)
+ keep_keys = 0;
+
+ dict->dict = xmlMalloc(size * sizeof(xmlDictEntry));
+ if (dict->dict == NULL) {
+ dict->dict = olddict;
+ return(-1);
+ }
+ memset(dict->dict, 0, size * sizeof(xmlDictEntry));
+ dict->size = size;
+
+ /* If the two loops are merged, there would be situations where
+ a new entry needs to allocated and data copied into it from
+ the main dict. It is nicer to run through the array twice, first
+ copying all the elements in the main array (less probability of
+ allocate) and then the rest, so we only free in the second loop.
+ */
+ for (i = 0; i < oldsize; i++) {
+ if (olddict[i].valid == 0)
+ continue;
+
+ if (keep_keys)
+ okey = olddict[i].okey;
+ else
+ okey = xmlDictComputeKey(dict, olddict[i].name, olddict[i].len);
+ key = okey % dict->size;
+
+ if (dict->dict[key].valid == 0) {
+ memcpy(&(dict->dict[key]), &(olddict[i]), sizeof(xmlDictEntry));
+ dict->dict[key].next = NULL;
+ dict->dict[key].okey = okey;
+ } else {
+ xmlDictEntryPtr entry;
+
+ entry = xmlMalloc(sizeof(xmlDictEntry));
+ if (entry != NULL) {
+ entry->name = olddict[i].name;
+ entry->len = olddict[i].len;
+ entry->okey = okey;
+ entry->next = dict->dict[key].next;
+ entry->valid = 1;
+ dict->dict[key].next = entry;
+ } else {
+ /*
+ * we don't have much ways to alert from here
+ * result is losing an entry and unicity guarantee
+ */
+ ret = -1;
+ }
+ }
+#ifdef DEBUG_GROW
+ nbElem++;
+#endif
+ }
+
+ for (i = 0; i < oldsize; i++) {
+ iter = olddict[i].next;
+ while (iter) {
+ next = iter->next;
+
+ /*
+ * put back the entry in the new dict
+ */
+
+ if (keep_keys)
+ okey = iter->okey;
+ else
+ okey = xmlDictComputeKey(dict, iter->name, iter->len);
+ key = okey % dict->size;
+ if (dict->dict[key].valid == 0) {
+ memcpy(&(dict->dict[key]), iter, sizeof(xmlDictEntry));
+ dict->dict[key].next = NULL;
+ dict->dict[key].valid = 1;
+ dict->dict[key].okey = okey;
+ xmlFree(iter);
+ } else {
+ iter->next = dict->dict[key].next;
+ iter->okey = okey;
+ dict->dict[key].next = iter;
+ }
+
+#ifdef DEBUG_GROW
+ nbElem++;
+#endif
+
+ iter = next;
+ }
+ }
+
+ xmlFree(olddict);
+
+#ifdef DEBUG_GROW
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlDictGrow : from %lu to %lu, %u elems\n", oldsize, size, nbElem);
+#endif
+
+ return(ret);
+}
+
+/**
+ * xmlDictFree:
+ * @dict: the dictionary
+ *
+ * Free the hash @dict and its contents. The userdata is
+ * deallocated with @f if provided.
+ */
+void
+xmlDictFree(xmlDictPtr dict) {
+ size_t i;
+ xmlDictEntryPtr iter;
+ xmlDictEntryPtr next;
+ int inside_dict = 0;
+ xmlDictStringsPtr pool, nextp;
+
+ if (dict == NULL)
+ return;
+
+ if (!xmlDictInitialized)
+ if (!__xmlInitializeDict())
+ return;
+
+ /* decrement the counter, it may be shared by a parser and docs */
+ xmlRMutexLock(xmlDictMutex);
+ dict->ref_counter--;
+ if (dict->ref_counter > 0) {
+ xmlRMutexUnlock(xmlDictMutex);
+ return;
+ }
+
+ xmlRMutexUnlock(xmlDictMutex);
+
+ if (dict->subdict != NULL) {
+ xmlDictFree(dict->subdict);
+ }
+
+ if (dict->dict) {
+ for(i = 0; ((i < dict->size) && (dict->nbElems > 0)); i++) {
+ iter = &(dict->dict[i]);
+ if (iter->valid == 0)
+ continue;
+ inside_dict = 1;
+ while (iter) {
+ next = iter->next;
+ if (!inside_dict)
+ xmlFree(iter);
+ dict->nbElems--;
+ inside_dict = 0;
+ iter = next;
+ }
+ }
+ xmlFree(dict->dict);
+ }
+ pool = dict->strings;
+ while (pool != NULL) {
+ nextp = pool->next;
+ xmlFree(pool);
+ pool = nextp;
+ }
+ xmlFree(dict);
+}
+
+/**
+ * xmlDictLookup:
+ * @dict: the dictionary
+ * @name: the name of the userdata
+ * @len: the length of the name, if -1 it is recomputed
+ *
+ * Add the @name to the dictionary @dict if not present.
+ *
+ * Returns the internal copy of the name or NULL in case of internal error
+ */
+const xmlChar *
+xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) {
+ unsigned long key, okey, nbi = 0;
+ xmlDictEntryPtr entry;
+ xmlDictEntryPtr insert;
+ const xmlChar *ret;
+ unsigned int l;
+
+ if ((dict == NULL) || (name == NULL))
+ return(NULL);
+
+ if (len < 0)
+ l = strlen((const char *) name);
+ else
+ l = len;
+
+ if (((dict->limit > 0) && (l >= dict->limit)) ||
+ (l > INT_MAX / 2))
+ return(NULL);
+
+ /*
+ * Check for duplicate and insertion location.
+ */
+ okey = xmlDictComputeKey(dict, name, l);
+ key = okey % dict->size;
+ if (dict->dict[key].valid == 0) {
+ insert = NULL;
+ } else {
+ for (insert = &(dict->dict[key]); insert->next != NULL;
+ insert = insert->next) {
+#ifdef __GNUC__
+ if ((insert->okey == okey) && (insert->len == l)) {
+ if (!memcmp(insert->name, name, l))
+ return(insert->name);
+ }
+#else
+ if ((insert->okey == okey) && (insert->len == l) &&
+ (!xmlStrncmp(insert->name, name, l)))
+ return(insert->name);
+#endif
+ nbi++;
+ }
+#ifdef __GNUC__
+ if ((insert->okey == okey) && (insert->len == l)) {
+ if (!memcmp(insert->name, name, l))
+ return(insert->name);
+ }
+#else
+ if ((insert->okey == okey) && (insert->len == l) &&
+ (!xmlStrncmp(insert->name, name, l)))
+ return(insert->name);
+#endif
+ }
+
+ if (dict->subdict) {
+ unsigned long skey;
+
+ /* we cannot always reuse the same okey for the subdict */
+ if (((dict->size == MIN_DICT_SIZE) &&
+ (dict->subdict->size != MIN_DICT_SIZE)) ||
+ ((dict->size != MIN_DICT_SIZE) &&
+ (dict->subdict->size == MIN_DICT_SIZE)))
+ skey = xmlDictComputeKey(dict->subdict, name, l);
+ else
+ skey = okey;
+
+ key = skey % dict->subdict->size;
+ if (dict->subdict->dict[key].valid != 0) {
+ xmlDictEntryPtr tmp;
+
+ for (tmp = &(dict->subdict->dict[key]); tmp->next != NULL;
+ tmp = tmp->next) {
+#ifdef __GNUC__
+ if ((tmp->okey == skey) && (tmp->len == l)) {
+ if (!memcmp(tmp->name, name, l))
+ return(tmp->name);
+ }
+#else
+ if ((tmp->okey == skey) && (tmp->len == l) &&
+ (!xmlStrncmp(tmp->name, name, l)))
+ return(tmp->name);
+#endif
+ nbi++;
+ }
+#ifdef __GNUC__
+ if ((tmp->okey == skey) && (tmp->len == l)) {
+ if (!memcmp(tmp->name, name, l))
+ return(tmp->name);
+ }
+#else
+ if ((tmp->okey == skey) && (tmp->len == l) &&
+ (!xmlStrncmp(tmp->name, name, l)))
+ return(tmp->name);
+#endif
+ }
+ key = okey % dict->size;
+ }
+
+ ret = xmlDictAddString(dict, name, l);
+ if (ret == NULL)
+ return(NULL);
+ if (insert == NULL) {
+ entry = &(dict->dict[key]);
+ } else {
+ entry = xmlMalloc(sizeof(xmlDictEntry));
+ if (entry == NULL)
+ return(NULL);
+ }
+ entry->name = ret;
+ entry->len = l;
+ entry->next = NULL;
+ entry->valid = 1;
+ entry->okey = okey;
+
+
+ if (insert != NULL)
+ insert->next = entry;
+
+ dict->nbElems++;
+
+ if ((nbi > MAX_HASH_LEN) &&
+ (dict->size <= ((MAX_DICT_HASH / 2) / MAX_HASH_LEN))) {
+ if (xmlDictGrow(dict, MAX_HASH_LEN * 2 * dict->size) != 0)
+ return(NULL);
+ }
+ /* Note that entry may have been freed at this point by xmlDictGrow */
+
+ return(ret);
+}
+
+/**
+ * xmlDictExists:
+ * @dict: the dictionary
+ * @name: the name of the userdata
+ * @len: the length of the name, if -1 it is recomputed
+ *
+ * Check if the @name exists in the dictionary @dict.
+ *
+ * Returns the internal copy of the name or NULL if not found.
+ */
+const xmlChar *
+xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) {
+ unsigned long key, okey, nbi = 0;
+ xmlDictEntryPtr insert;
+ unsigned int l;
+
+ if ((dict == NULL) || (name == NULL))
+ return(NULL);
+
+ if (len < 0)
+ l = strlen((const char *) name);
+ else
+ l = len;
+ if (((dict->limit > 0) && (l >= dict->limit)) ||
+ (l > INT_MAX / 2))
+ return(NULL);
+
+ /*
+ * Check for duplicate and insertion location.
+ */
+ okey = xmlDictComputeKey(dict, name, l);
+ key = okey % dict->size;
+ if (dict->dict[key].valid == 0) {
+ insert = NULL;
+ } else {
+ for (insert = &(dict->dict[key]); insert->next != NULL;
+ insert = insert->next) {
+#ifdef __GNUC__
+ if ((insert->okey == okey) && (insert->len == l)) {
+ if (!memcmp(insert->name, name, l))
+ return(insert->name);
+ }
+#else
+ if ((insert->okey == okey) && (insert->len == l) &&
+ (!xmlStrncmp(insert->name, name, l)))
+ return(insert->name);
+#endif
+ nbi++;
+ }
+#ifdef __GNUC__
+ if ((insert->okey == okey) && (insert->len == l)) {
+ if (!memcmp(insert->name, name, l))
+ return(insert->name);
+ }
+#else
+ if ((insert->okey == okey) && (insert->len == l) &&
+ (!xmlStrncmp(insert->name, name, l)))
+ return(insert->name);
+#endif
+ }
+
+ if (dict->subdict) {
+ unsigned long skey;
+
+ /* we cannot always reuse the same okey for the subdict */
+ if (((dict->size == MIN_DICT_SIZE) &&
+ (dict->subdict->size != MIN_DICT_SIZE)) ||
+ ((dict->size != MIN_DICT_SIZE) &&
+ (dict->subdict->size == MIN_DICT_SIZE)))
+ skey = xmlDictComputeKey(dict->subdict, name, l);
+ else
+ skey = okey;
+
+ key = skey % dict->subdict->size;
+ if (dict->subdict->dict[key].valid != 0) {
+ xmlDictEntryPtr tmp;
+
+ for (tmp = &(dict->subdict->dict[key]); tmp->next != NULL;
+ tmp = tmp->next) {
+#ifdef __GNUC__
+ if ((tmp->okey == skey) && (tmp->len == l)) {
+ if (!memcmp(tmp->name, name, l))
+ return(tmp->name);
+ }
+#else
+ if ((tmp->okey == skey) && (tmp->len == l) &&
+ (!xmlStrncmp(tmp->name, name, l)))
+ return(tmp->name);
+#endif
+ nbi++;
+ }
+#ifdef __GNUC__
+ if ((tmp->okey == skey) && (tmp->len == l)) {
+ if (!memcmp(tmp->name, name, l))
+ return(tmp->name);
+ }
+#else
+ if ((tmp->okey == skey) && (tmp->len == l) &&
+ (!xmlStrncmp(tmp->name, name, l)))
+ return(tmp->name);
+#endif
+ }
+ }
+
+ /* not found */
+ return(NULL);
+}
+
+/**
+ * xmlDictQLookup:
+ * @dict: the dictionary
+ * @prefix: the prefix
+ * @name: the name
+ *
+ * Add the QName @prefix:@name to the hash @dict if not present.
+ *
+ * Returns the internal copy of the QName or NULL in case of internal error
+ */
+const xmlChar *
+xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) {
+ unsigned long okey, key, nbi = 0;
+ xmlDictEntryPtr entry;
+ xmlDictEntryPtr insert;
+ const xmlChar *ret;
+ unsigned int len, plen, l;
+
+ if ((dict == NULL) || (name == NULL))
+ return(NULL);
+ if (prefix == NULL)
+ return(xmlDictLookup(dict, name, -1));
+
+ l = len = strlen((const char *) name);
+ plen = strlen((const char *) prefix);
+ len += 1 + plen;
+
+ /*
+ * Check for duplicate and insertion location.
+ */
+ okey = xmlDictComputeQKey(dict, prefix, plen, name, l);
+ key = okey % dict->size;
+ if (dict->dict[key].valid == 0) {
+ insert = NULL;
+ } else {
+ for (insert = &(dict->dict[key]); insert->next != NULL;
+ insert = insert->next) {
+ if ((insert->okey == okey) && (insert->len == len) &&
+ (xmlStrQEqual(prefix, name, insert->name)))
+ return(insert->name);
+ nbi++;
+ }
+ if ((insert->okey == okey) && (insert->len == len) &&
+ (xmlStrQEqual(prefix, name, insert->name)))
+ return(insert->name);
+ }
+
+ if (dict->subdict) {
+ unsigned long skey;
+
+ /* we cannot always reuse the same okey for the subdict */
+ if (((dict->size == MIN_DICT_SIZE) &&
+ (dict->subdict->size != MIN_DICT_SIZE)) ||
+ ((dict->size != MIN_DICT_SIZE) &&
+ (dict->subdict->size == MIN_DICT_SIZE)))
+ skey = xmlDictComputeQKey(dict->subdict, prefix, plen, name, l);
+ else
+ skey = okey;
+
+ key = skey % dict->subdict->size;
+ if (dict->subdict->dict[key].valid != 0) {
+ xmlDictEntryPtr tmp;
+ for (tmp = &(dict->subdict->dict[key]); tmp->next != NULL;
+ tmp = tmp->next) {
+ if ((tmp->okey == skey) && (tmp->len == len) &&
+ (xmlStrQEqual(prefix, name, tmp->name)))
+ return(tmp->name);
+ nbi++;
+ }
+ if ((tmp->okey == skey) && (tmp->len == len) &&
+ (xmlStrQEqual(prefix, name, tmp->name)))
+ return(tmp->name);
+ }
+ key = okey % dict->size;
+ }
+
+ ret = xmlDictAddQString(dict, prefix, plen, name, l);
+ if (ret == NULL)
+ return(NULL);
+ if (insert == NULL) {
+ entry = &(dict->dict[key]);
+ } else {
+ entry = xmlMalloc(sizeof(xmlDictEntry));
+ if (entry == NULL)
+ return(NULL);
+ }
+ entry->name = ret;
+ entry->len = len;
+ entry->next = NULL;
+ entry->valid = 1;
+ entry->okey = okey;
+
+ if (insert != NULL)
+ insert->next = entry;
+
+ dict->nbElems++;
+
+ if ((nbi > MAX_HASH_LEN) &&
+ (dict->size <= ((MAX_DICT_HASH / 2) / MAX_HASH_LEN)))
+ xmlDictGrow(dict, MAX_HASH_LEN * 2 * dict->size);
+ /* Note that entry may have been freed at this point by xmlDictGrow */
+
+ return(ret);
+}
+
+/**
+ * xmlDictOwns:
+ * @dict: the dictionary
+ * @str: the string
+ *
+ * check if a string is owned by the dictionary
+ *
+ * Returns 1 if true, 0 if false and -1 in case of error
+ * -1 in case of error
+ */
+int
+xmlDictOwns(xmlDictPtr dict, const xmlChar *str) {
+ xmlDictStringsPtr pool;
+
+ if ((dict == NULL) || (str == NULL))
+ return(-1);
+ pool = dict->strings;
+ while (pool != NULL) {
+ if ((str >= &pool->array[0]) && (str <= pool->free))
+ return(1);
+ pool = pool->next;
+ }
+ if (dict->subdict)
+ return(xmlDictOwns(dict->subdict, str));
+ return(0);
+}
+
+/**
+ * xmlDictSize:
+ * @dict: the dictionary
+ *
+ * Query the number of elements installed in the hash @dict.
+ *
+ * Returns the number of elements in the dictionary or
+ * -1 in case of error
+ */
+int
+xmlDictSize(xmlDictPtr dict) {
+ if (dict == NULL)
+ return(-1);
+ if (dict->subdict)
+ return(dict->nbElems + dict->subdict->nbElems);
+ return(dict->nbElems);
+}
+
+/**
+ * xmlDictSetLimit:
+ * @dict: the dictionary
+ * @limit: the limit in bytes
+ *
+ * Set a size limit for the dictionary
+ * Added in 2.9.0
+ *
+ * Returns the previous limit of the dictionary or 0
+ */
+size_t
+xmlDictSetLimit(xmlDictPtr dict, size_t limit) {
+ size_t ret;
+
+ if (dict == NULL)
+ return(0);
+ ret = dict->limit;
+ dict->limit = limit;
+ return(ret);
+}
+
+/**
+ * xmlDictGetUsage:
+ * @dict: the dictionary
+ *
+ * Get how much memory is used by a dictionary for strings
+ * Added in 2.9.0
+ *
+ * Returns the amount of strings allocated
+ */
+size_t
+xmlDictGetUsage(xmlDictPtr dict) {
+ xmlDictStringsPtr pool;
+ size_t limit = 0;
+
+ if (dict == NULL)
+ return(0);
+ pool = dict->strings;
+ while (pool != NULL) {
+ limit += pool->size;
+ pool = pool->next;
+ }
+ return(limit);
+}
+
+#define bottom_dict
+#include "elfgcchack.h"
diff --git a/libxml2-2.9.10/doc/APIchunk0.html b/libxml2-2.9.10/doc/APIchunk0.html
new file mode 100644
index 0000000..e5cafd8
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk0.html
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index A-B for libxml2</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>API Alphabetic Index A-B for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter A:</h2><dl><dt>A-Z</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>A-Za-z</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEncName">xmlParseEncName</a><br />
+</dd><dt>A-Za-z0-9</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEncName">xmlParseEncName</a><br />
+</dd><dt>ABC</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>ABI</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+</dd><dt>ALL</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+</dd><dt>ANY</dt><dd><a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+</dd><dt>APIs</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetFilename">xmlSchemaValidateSetFilename</a><br />
+</dd><dt>ARRAY</dt><dd><a href="html/libxml-xmlstring.html#xmlStrlen">xmlStrlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+</dd><dt>ASCII</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#xmlAddEncodingAlias">xmlAddEncodingAlias</a><br />
+<a href="html/libxml-encoding.html#xmlDelEncodingAlias">xmlDelEncodingAlias</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-encoding.html#xmlGetEncodingAlias">xmlGetEncodingAlias</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+</dd><dt>ATTLIST</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDAttlist">xmlTextWriterStartDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDAttlist">xmlTextWriterWriteDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDAttlist">xmlTextWriterWriteFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDAttlist">xmlTextWriterWriteVFormatDTDAttlist</a><br />
+</dd><dt>ATTRIBUTE</dt><dd><a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+</dd><dt>Absolute</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+</dd><dt>Accessor</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsBoolean">xmlSchemaValueGetAsBoolean</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsString">xmlSchemaValueGetAsString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a><br />
+</dd><dt>Activation</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+</dd><dt>Actually</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+</dd><dt>Add</dt><dd><a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddChildList">xmlAddChildList</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
+<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
+<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+</dd><dt>Added</dt><dd><a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
+<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
+</dd><dt>Additional</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-globals.html#xmlCleanupGlobals">xmlCleanupGlobals</a><br />
+<a href="html/libxml-globals.html#xmlInitGlobals">xmlInitGlobals</a><br />
+</dd><dt>AegeanNumbers</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsAegeanNumbers">xmlUCSIsAegeanNumbers</a><br />
+</dd><dt>Alias</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
+</dd><dt>All</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
+</dd><dt>Allocate</dt><dd><a href="html/libxml-HTMLparser.html#htmlNewParserCtxt">htmlNewParserCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPNewCtxt">xmlNanoFTPNewCtxt</a><br />
+<a href="html/libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
+<a href="html/libxml-parser.html#xmlNewParserCtxt">xmlNewParserCtxt</a><br />
+<a href="html/libxml-valid.html#xmlNewValidCtxt">xmlNewValidCtxt</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewFacet">xmlSchemaNewFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+</dd><dt>Allocates</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapNewCtxt">xmlDOMWrapNewCtxt</a><br />
+</dd><dt>Allows</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+</dd><dt>AlphabeticPresentationForms</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsAlphabeticPresentationForms">xmlUCSIsAlphabeticPresentationForms</a><br />
+</dd><dt>Also</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+</dd><dt>Always</dt><dd><a href="html/libxml-parserInternals.html#IS_COMBINING_CH">IS_COMBINING_CH</a><br />
+</dd><dt>Append</dt><dd><a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+</dd><dt>Appendix</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+</dd><dt>Appends</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValueAppend">xmlSchemaValueAppend</a><br />
+</dd><dt>Applies</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtUseOptions">htmlCtxtUseOptions</a><br />
+<a href="html/libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a><br />
+<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompiledEvalToBoolean">xmlXPathCompiledEvalToBoolean</a><br />
+</dd><dt>Apply</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a><br />
+</dd><dt>Arabic</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsArabic">xmlUCSIsArabic</a><br />
+</dd><dt>ArabicPresentationForms-A</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsArabicPresentationFormsA">xmlUCSIsArabicPresentationFormsA</a><br />
+</dd><dt>ArabicPresentationForms-B</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsArabicPresentationFormsB">xmlUCSIsArabicPresentationFormsB</a><br />
+</dd><dt>Armenian</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsArmenian">xmlUCSIsArmenian</a><br />
+</dd><dt>Array</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>Arrows</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsArrows">xmlUCSIsArrows</a><br />
+</dd><dt>Associate</dt><dd><a href="html/libxml-tree.html#xmlSetNs">xmlSetNs</a><br />
+</dd><dt>Att</dt><dd><a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>AttDef</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a><br />
+</dd><dt>AttType</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+</dd><dt>AttValue</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>AttlistDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>Attribute</dt><dd><a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+</dd><dt>Attribute-Value</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+</dd><dt>Attributes</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+</dd><dt>Automatic</dt><dd><a href="html/libxml-DOCBparser.html#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseFile">htmlParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateFileParserCtxt">xmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-parser.html#xmlParseFile">xmlParseFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a><br />
+</dd><dt>Automatically</dt><dd><a href="html/libxml-chvalid.html#xmlIsBaseCharQ">xmlIsBaseCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar_ch">xmlIsBaseChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlankQ">xmlIsBlankQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank_ch">xmlIsBlank_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCharQ">xmlIsCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar_ch">xmlIsChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombiningQ">xmlIsCombiningQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigitQ">xmlIsDigitQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit_ch">xmlIsDigit_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtenderQ">xmlIsExtenderQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender_ch">xmlIsExtender_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographicQ">xmlIsIdeographicQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidCharQ">xmlIsPubidCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar_ch">xmlIsPubidChar_ch</a><br />
+</dd></dl><h2>Letter B:</h2><dl><dt>BASE</dt><dd><a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+</dd><dt>BAr</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>BOM</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</dd><dt>Balanced</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseEntity">xmlParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+</dd><dt>Base</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+</dd><dt>BaseChar</dt><dd><a href="html/libxml-parserInternals.html#IS_BASECHAR">IS_BASECHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_LETTER">IS_LETTER</a><br />
+<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
+</dd><dt>Based</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+</dd><dt>BasicLatin</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBasicLatin">xmlUCSIsBasicLatin</a><br />
+</dd><dt>Basically</dt><dd><a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+</dd><dt>Before</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+</dd><dt>Behaves</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR_CH">IS_CHAR_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_DIGIT_CH">IS_DIGIT_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_EXTENDER_CH">IS_EXTENDER_CH</a><br />
+</dd><dt>Behaviour</dt><dd><a href="html/libxml-parserInternals.html#IS_BLANK_CH">IS_BLANK_CH</a><br />
+</dd><dt>Bengali</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBengali">xmlUCSIsBengali</a><br />
+</dd><dt>Best</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>BinHex</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBinHex">xmlTextWriterWriteBinHex</a><br />
+</dd><dt>Bit</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+</dd><dt>BlockElements</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBlockElements">xmlUCSIsBlockElements</a><br />
+</dd><dt>Blocks</dt><dd><a href="html/libxml-parser.html#xmlStopParser">xmlStopParser</a><br />
+</dd><dt>Bopomofo</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofo">xmlUCSIsBopomofo</a><br />
+</dd><dt>BopomofoExtended</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofoExtended">xmlUCSIsBopomofoExtended</a><br />
+</dd><dt>Both</dt><dd><a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>BoxDrawing</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBoxDrawing">xmlUCSIsBoxDrawing</a><br />
+</dd><dt>BraillePatterns</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBraillePatterns">xmlUCSIsBraillePatterns</a><br />
+</dd><dt>Brzozowski</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+</dd><dt>Buffer</dt><dd><a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+</dd><dt>Bugs:</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>Buhid</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBuhid">xmlUCSIsBuhid</a><br />
+</dd><dt>Build</dt><dd><a href="html/libxml-valid.html#xmlCopyAttributeTable">xmlCopyAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementContent">xmlCopyElementContent</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementTable">xmlCopyElementTable</a><br />
+<a href="html/libxml-entities.html#xmlCopyEntitiesTable">xmlCopyEntitiesTable</a><br />
+<a href="html/libxml-valid.html#xmlCopyNotationTable">xmlCopyNotationTable</a><br />
+<a href="html/libxml-tree.html#xmlGetNodePath">xmlGetNodePath</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-valid.html#xmlValidBuildContentModel">xmlValidBuildContentModel</a><br />
+<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+</dd><dt>Builds</dt><dd><a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+</dd><dt>But</dt><dd><a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+</dd><dt>ByzantineMusicalSymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsByzantineMusicalSymbols">xmlUCSIsByzantineMusicalSymbols</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk1.html b/libxml2-2.9.10/doc/APIchunk1.html
new file mode 100644
index 0000000..393cd18
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk1.html
@@ -0,0 +1,382 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index C-C for libxml2</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>API Alphabetic Index C-C for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter C:</h2><dl><dt>C14N</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a><br />
+</dd><dt>CATALOG</dt><dd><a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+</dd><dt>CDATA</dt><dd><a href="html/libxml-HTMLtree.html#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-tree.html#xmlNewCDataBlock">xmlNewCDataBlock</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartCDATA">xmlTextWriterStartCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteCDATA">xmlTextWriterWriteCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatCDATA">xmlTextWriterWriteFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatCDATA">xmlTextWriterWriteVFormatCDATA</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+</dd><dt>CDEnd</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+</dd><dt>CDSect</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseContent">xmlParseContent</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+</dd><dt>CDStart</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+</dd><dt>CData</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushCData">xmlValidatePushCData</a><br />
+</dd><dt>CJKCompatibility</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibility">xmlUCSIsCJKCompatibility</a><br />
+</dd><dt>CJKCompatibilityForms</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibilityForms">xmlUCSIsCJKCompatibilityForms</a><br />
+</dd><dt>CJKCompatibilityIdeographs</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibilityIdeographs">xmlUCSIsCJKCompatibilityIdeographs</a><br />
+</dd><dt>CJKCompatibilityIdeographsSupplement</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibilityIdeographsSupplement">xmlUCSIsCJKCompatibilityIdeographsSupplement</a><br />
+</dd><dt>CJKRadicalsSupplement</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCJKRadicalsSupplement">xmlUCSIsCJKRadicalsSupplement</a><br />
+</dd><dt>CJKSymbolsandPunctuation</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCJKSymbolsandPunctuation">xmlUCSIsCJKSymbolsandPunctuation</a><br />
+</dd><dt>CJKUnifiedIdeographs</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographs">xmlUCSIsCJKUnifiedIdeographs</a><br />
+</dd><dt>CJKUnifiedIdeographsExtensionA</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographsExtensionA">xmlUCSIsCJKUnifiedIdeographsExtensionA</a><br />
+</dd><dt>CJKUnifiedIdeographsExtensionB</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographsExtensionB">xmlUCSIsCJKUnifiedIdeographsExtensionB</a><br />
+</dd><dt>CVS</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a><br />
+</dd><dt>CWD</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+</dd><dt>Cache</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>Call</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-parser.html#xmlInitParser">xmlInitParser</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>Callback</dt><dd><a href="html/libxml-SAX.html#externalSubset">externalSubset</a><br />
+<a href="html/libxml-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a><br />
+<a href="html/libxml-SAX.html#internalSubset">internalSubset</a><br />
+<a href="html/libxml-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
+<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
+<a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a><br />
+<a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
+<a href="html/libxml-list.html#xmlListDeallocator">xmlListDeallocator</a><br />
+<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a><br />
+<a href="html/libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ExternalSubset">xmlSAX2ExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InternalSubset">xmlSAX2InternalSubset</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>Callback:</dt><dd><a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+</dd><dt>Called</dt><dd><a href="html/libxml-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a><br />
+<a href="html/libxml-parser.html#endDocumentSAXFunc">endDocumentSAXFunc</a><br />
+<a href="html/libxml-parser.html#endElementSAXFunc">endElementSAXFunc</a><br />
+<a href="html/libxml-parser.html#referenceSAXFunc">referenceSAXFunc</a><br />
+<a href="html/libxml-parser.html#startDocumentSAXFunc">startDocumentSAXFunc</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+</dd><dt>Calling</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+</dd><dt>Canonical</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>Canonicalization</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_C14N_ENABLED">LIBXML_C14N_ENABLED</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>Carl</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>Catalog</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_CATALOG_ENABLED">LIBXML_CATALOG_ENABLED</a><br />
+<a href="html/libxml-catalog.html#XML_CATALOG_PI">XML_CATALOG_PI</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogDump">xmlACatalogDump</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolve">xmlACatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolvePublic">xmlACatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveSystem">xmlACatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveURI">xmlACatalogResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-catalog.html#xmlFreeCatalog">xmlFreeCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlNewCatalog">xmlNewCatalog</a><br />
+</dd><dt>Catalogs</dt><dd><a href="html/libxml-catalog.html#XML_CATALOGS_NAMESPACE">XML_CATALOGS_NAMESPACE</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+</dd><dt>Change</dt><dd><a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+</dd><dt>Changes</dt><dd><a href="html/libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a><br />
+</dd><dt>Char</dt><dd><a href="html/libxml-parserInternals.html#IS_BYTE_CHAR">IS_BYTE_CHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePI">xmlParsePI</a><br />
+</dd><dt>CharData</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseContent">xmlParseContent</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+</dd><dt>CharRef</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseCharRef">htmlParseCharRef</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+</dd><dt>Character</dt><dd><a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+</dd><dt>Characters</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+</dd><dt>Checka</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+</dd><dt>Checks</dt><dd><a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataIsDeterminist">xmlAutomataIsDeterminist</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetIsEmpty">xmlXPathNodeSetIsEmpty</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStackIsExternal">xmlXPathStackIsExternal</a><br />
+</dd><dt>Cherokee</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCherokee">xmlUCSIsCherokee</a><br />
+</dd><dt>Children</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+</dd><dt>Chunk</dt><dd><a href="html/libxml-DOCBparser.html#docbParseChunk">docbParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseChunk">htmlParseChunk</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseChunk">xmlParseChunk</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+</dd><dt>Cleanup</dt><dd><a href="html/libxml-encoding.html#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a><br />
+<a href="html/libxml-entities.html#xmlCleanupPredefinedEntities">xmlCleanupPredefinedEntities</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPCleanup">xmlNanoHTTPCleanup</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGCleanupTypes">xmlRelaxNGCleanupTypes</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetError">xmlResetError</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetLastError">xmlResetLastError</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCleanupTypes">xmlSchemaCleanupTypes</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeValue">xmlSchemaFreeValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredFuncsCleanup">xmlXPathRegisteredFuncsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredNsCleanup">xmlXPathRegisteredNsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredVariablesCleanup">xmlXPathRegisteredVariablesCleanup</a><br />
+</dd><dt>Clear</dt><dd><a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlPopInputCallbacks">xmlPopInputCallbacks</a><br />
+</dd><dt>Clears</dt><dd><a href="html/libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a><br />
+</dd><dt>Close</dt><dd><a href="html/libxml-xmlIO.html#xmlFileClose">xmlFileClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPClose">xmlIOFTPClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPClose">xmlIOHTTPClose</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCloseConnection">xmlNanoFTPCloseConnection</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveClose">xmlSaveClose</a><br />
+</dd><dt>Closed</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
+</dd><dt>CombiningChar</dt><dd><a href="html/libxml-parserInternals.html#IS_COMBINING">IS_COMBINING</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseName">xmlXPathParseName</a><br />
+</dd><dt>CombiningDiacriticalMarks</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningDiacriticalMarks">xmlUCSIsCombiningDiacriticalMarks</a><br />
+</dd><dt>CombiningDiacriticalMarksforSymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningDiacriticalMarksforSymbols">xmlUCSIsCombiningDiacriticalMarksforSymbols</a><br />
+</dd><dt>CombiningHalfMarks</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningHalfMarks">xmlUCSIsCombiningHalfMarks</a><br />
+</dd><dt>CombiningMarksforSymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningMarksforSymbols">xmlUCSIsCombiningMarksforSymbols</a><br />
+</dd><dt>Comment</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseContent">xmlParseContent</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMisc">xmlParseMisc</a><br />
+</dd><dt>Compare</dt><dd><a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValues">xmlSchemaCompareValues</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValuesWhtsp">xmlSchemaCompareValuesWhtsp</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCmpNodes">xmlXPathCmpNodes</a><br />
+</dd><dt>Compile</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompile">xmlXPathCompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+</dd><dt>Compress</dt><dd><a href="html/libxml-DOCBparser.html#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseFile">htmlParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateFileParserCtxt">xmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-parser.html#xmlParseFile">xmlParseFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a><br />
+</dd><dt>Computes</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+</dd><dt>Concat</dt><dd><a href="html/libxml-tree.html#xmlTextConcat">xmlTextConcat</a><br />
+</dd><dt>Constructs</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+</dd><dt>Content</dt><dd><a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+</dd><dt>Content-Type</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+</dd><dt>Contrary</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+</dd><dt>ControlPictures</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsControlPictures">xmlUCSIsControlPictures</a><br />
+</dd><dt>Convenient</dt><dd><a href="html/libxml-debugXML.html#xmlBoolToText">xmlBoolToText</a><br />
+</dd><dt>Convert</dt><dd><a href="html/libxml-catalog.html#xmlCatalogConvert">xmlCatalogConvert</a><br />
+<a href="html/libxml-catalog.html#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a><br />
+</dd><dt>Converts</dt><dd><a href="html/libxml-xpath.html#xmlXPathCastBooleanToNumber">xmlXPathCastBooleanToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastBooleanToString">xmlXPathCastBooleanToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToBoolean">xmlXPathCastNodeSetToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToNumber">xmlXPathCastNodeSetToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToString">xmlXPathCastNodeSetToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeToNumber">xmlXPathCastNodeToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeToString">xmlXPathCastNodeToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNumberToBoolean">xmlXPathCastNumberToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNumberToString">xmlXPathCastNumberToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastStringToBoolean">xmlXPathCastStringToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastStringToNumber">xmlXPathCastStringToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToBoolean">xmlXPathCastToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToNumber">xmlXPathCastToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToString">xmlXPathCastToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertNumber">xmlXPathConvertNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertString">xmlXPathConvertString</a><br />
+</dd><dt>Copies</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+</dd><dt>Copy</dt><dd><a href="html/libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>Correct</dt><dd><a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+</dd><dt>Could</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+</dd><dt>Count</dt><dd><a href="html/libxml-debugXML.html#xmlLsCountNode">xmlLsCountNode</a><br />
+</dd><dt>Creates</dt><dd><a href="html/libxml-HTMLtree.html#htmlNewDoc">htmlNewDoc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
+<a href="html/libxml-parser.html#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-tree.html#xmlNewDoc">xmlNewDoc</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeNewContext">xmlXIncludeNewContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>Creation</dt><dd><a href="html/libxml-tree.html#xmlNewCDataBlock">xmlNewCDataBlock</a><br />
+<a href="html/libxml-tree.html#xmlNewCharRef">xmlNewCharRef</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewComment">xmlNewComment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocComment">xmlNewDocComment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocFragment">xmlNewDocFragment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewDocPI">xmlNewDocPI</a><br />
+<a href="html/libxml-tree.html#xmlNewDocRawNode">xmlNewDocRawNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocText">xmlNewDocText</a><br />
+<a href="html/libxml-tree.html#xmlNewDocTextLen">xmlNewDocTextLen</a><br />
+<a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-tree.html#xmlNewNode">xmlNewNode</a><br />
+<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+<a href="html/libxml-tree.html#xmlNewReference">xmlNewReference</a><br />
+<a href="html/libxml-tree.html#xmlNewText">xmlNewText</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlNewTextLen">xmlNewTextLen</a><br />
+</dd><dt>CurrencySymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCurrencySymbols">xmlUCSIsCurrencySymbols</a><br />
+</dd><dt>Current</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+</dd><dt>Currently</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+</dd><dt>Cut</dt><dd><a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>CypriotSyllabary</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCypriotSyllabary">xmlUCSIsCypriotSyllabary</a><br />
+</dd><dt>Cyrillic</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCyrillic">xmlUCSIsCyrillic</a><br />
+</dd><dt>CyrillicSupplement</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCyrillicSupplement">xmlUCSIsCyrillicSupplement</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk10.html b/libxml2-2.9.10/doc/APIchunk10.html
new file mode 100644
index 0000000..b612643
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk10.html
@@ -0,0 +1,674 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index Y-a for libxml2</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>API Alphabetic Index Y-a for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter Y:</h2><dl><dt>YES</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>YiRadicals</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsYiRadicals">xmlUCSIsYiRadicals</a><br />
+</dd><dt>YiSyllables</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsYiSyllables">xmlUCSIsYiSyllables</a><br />
+</dd><dt>YijingHexagramSymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsYijingHexagramSymbols">xmlUCSIsYijingHexagramSymbols</a><br />
+</dd></dl><h2>Letter Z:</h2><dl><dt>ZLIB</dt><dd><a href="html/libxml-DOCBparser.html#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseFile">htmlParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateFileParserCtxt">xmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlGetCompressMode">xmlGetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-parser.html#xmlParseFile">xmlParseFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a><br />
+<a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+</dd><dt>Zlib</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_ZLIB_ENABLED">LIBXML_ZLIB_ENABLED</a><br />
+</dd></dl><h2>Letter a:</h2><dl><dt>a-z</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+</dd><dt>a-zA-Z</dt><dd><a href="html/libxml-parserInternals.html#IS_ASCII_LETTER">IS_ASCII_LETTER</a><br />
+</dd><dt>a-zA-Z0-9</dt><dd><a href="html/libxml-parserInternals.html#IS_PUBIDCHAR">IS_PUBIDCHAR</a><br />
+</dd><dt>a@b</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+</dd><dt>abc</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>abc-</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>able</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-encoding.html#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>about</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDir">xmlShellDir</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+</dd><dt>above</dt><dd><a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>absent</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+</dd><dt>absoluteURI</dt><dd><a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+</dd><dt>abstain</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>abstract</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a><br />
+</dd><dt>accept</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+</dd><dt>acceptable</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+</dd><dt>accepted</dt><dd><a href="html/libxml-parserInternals.html#IS_BYTE_CHAR">IS_BYTE_CHAR</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>accepting</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>accepts</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+</dd><dt>access</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetParserCtxt">xmlSchemaValidCtxtGetParserCtxt</a><br />
+</dd><dt>accessed</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+</dd><dt>accesses</dt><dd><a href="html/libxml-parserInternals.html#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+</dd><dt>accommodate</dt><dd><a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
+</dd><dt>according</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXVersion">xmlSAXVersion</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+</dd><dt>accordingly</dt><dd><a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+</dd><dt>account</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+</dd><dt>acquire</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+</dd><dt>act</dt><dd><a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>action</dt><dd><a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+</dd><dt>activate</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+</dd><dt>activated</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+</dd><dt>activates</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>acts</dt><dd><a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+</dd><dt>actual</dt><dd><a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a><br />
+</dd><dt>actually</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-encoding.html#xmlAddEncodingAlias">xmlAddEncodingAlias</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-encoding.html#xmlDelEncodingAlias">xmlDelEncodingAlias</a><br />
+<a href="html/libxml-encoding.html#xmlGetEncodingAlias">xmlGetEncodingAlias</a><br />
+<a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>actuate</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+</dd><dt>add</dt><dd><a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteChar">xmlBufferWriteChar</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-list.html#xmlListPushBack">xmlListPushBack</a><br />
+<a href="html/libxml-list.html#xmlListPushFront">xmlListPushFront</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+</dd><dt>added</dt><dd><a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileEnc">htmlSaveFileEnc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileFormat">htmlSaveFileFormat</a><br />
+<a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+</dd><dt>adding</dt><dd><a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+</dd><dt>addition</dt><dd><a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>additional</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+</dd><dt>additionally</dt><dd><a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd><dt>address</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+</dd><dt>adds</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a><br />
+</dd><dt>adequate</dt><dd><a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+</dd><dt>adjacent</dt><dd><a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddChildList">xmlAddChildList</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+</dd><dt>affect</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>affected</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+</dd><dt>affiliation</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+</dd><dt>afraid</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+</dd><dt>after</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPFreeCtxt">xmlNanoFTPFreeCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+<a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>again</dt><dd><a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+</dd><dt>against</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a><br />
+<a href="html/libxml-SAX.html#checkNamespace">checkNamespace</a><br />
+<a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
+<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+</dd><dt>aggregate</dt><dd><a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+</dd><dt>ahead</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+</dd><dt>algebraic</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+</dd><dt>alias</dt><dd><a href="html/libxml-encoding.html#xmlAddEncodingAlias">xmlAddEncodingAlias</a><br />
+<a href="html/libxml-encoding.html#xmlDelEncodingAlias">xmlDelEncodingAlias</a><br />
+<a href="html/libxml-encoding.html#xmlGetEncodingAlias">xmlGetEncodingAlias</a><br />
+</dd><dt>aliases</dt><dd><a href="html/libxml-encoding.html#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a><br />
+<a href="html/libxml-encoding.html#xmlCleanupEncodingAliases">xmlCleanupEncodingAliases</a><br />
+</dd><dt>aliasing</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+</dd><dt>allocate</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#xmlBufferGrow">xmlBufferGrow</a><br />
+<a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObjectCopy">xmlXPathObjectCopy</a><br />
+</dd><dt>allocation</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_THREAD_ALLOC_ENABLED">LIBXML_THREAD_ALLOC_ENABLED</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNewParserCtxt">htmlNewParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>allocations</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a><br />
+</dd><dt>allocator</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ATTR_ALLOC_SIZE">LIBXML_ATTR_ALLOC_SIZE</a><br />
+</dd><dt>allocators</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+</dd><dt>allow</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetParserCtxt">xmlSchemaValidCtxtGetParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
+<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
+<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
+<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
+</dd><dt>allowable</dt><dd><a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+</dd><dt>allowed</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaWildcard">_xmlSchemaWildcard</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+</dd><dt>allowing</dt><dd><a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+</dd><dt>allows</dt><dd><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+</dd><dt>alphanumerics</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>already</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+</dd><dt>also</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+</dd><dt>alternative</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTD">xmlTextWriterStartDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
+</dd><dt>always</dt><dd><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+</dd><dt>amd</dt><dd><a href="html/libxml-catalog.html#xmlCatalogIsEmpty">xmlCatalogIsEmpty</a><br />
+</dd><dt>amount</dt><dd><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+<a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+</dd><dt>amp</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+</dd><dt>ampersand</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+</dd><dt>analysis</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+</dd><dt>analyze</dt><dd><a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+</dd><dt>analyzed</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+</dd><dt>ancestor</dt><dd><a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+</dd><dt>ancestor-or-self</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+</dd><dt>ancestors</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+</dd><dt>anchored</dt><dd><a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+</dd><dt>angle</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+</dd><dt>annotation</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaAnnot">_xmlSchemaAnnot</a><br />
+</dd><dt>anonymous</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+</dd><dt>another</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+</dd><dt>anySimpleType</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+</dd><dt>anyURI</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>anymore</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a><br />
+<a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+</dd><dt>anyway</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+</dd><dt>apart</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>apos</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+</dd><dt>appear</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>appearing</dt><dd><a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+</dd><dt>appears</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+</dd><dt>append</dt><dd><a href="html/libxml-parserInternals.html#xmlCopyChar">xmlCopyChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlCopyCharMultiByte">xmlCopyCharMultiByte</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>appended</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueAppend">xmlSchemaValueAppend</a><br />
+</dd><dt>appending</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+</dd><dt>appendix</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+</dd><dt>applicable</dt><dd><a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
+</dd><dt>application</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+<a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-tree.html#_xmlNs">_xmlNs</a><br />
+<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+<a href="html/libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+</dd><dt>applications</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+</dd><dt>applied</dt><dd><a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
+<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+</dd><dt>applies</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</dd><dt>apply</dt><dd><a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>applying</dt><dd><a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>appropriate</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+</dd><dt>arcs</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+</dd><dt>area</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+</dd><dt>areas</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
+</dd><dt>args</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_ARITY">CHECK_ARITY</a><br />
+<a href="">x</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</dd><dt>around</dt><dd><a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+</dd><dt>arrays</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>arry</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+</dd><dt>asked</dt><dd><a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+</dd><dt>assume</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+</dd><dt>assumed</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+</dd><dt>assumes</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>assuming</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+</dd><dt>assure</dt><dd><a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+</dd><dt>atom</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+</dd><dt>atomic</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+</dd><dt>attached</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>attempt</dt><dd><a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
+<a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a><br />
+</dd><dt>attempts</dt><dd><a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+</dd><dt>attr</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a><br />
+<a href="html/libxml-tree.html#_xmlID">_xmlID</a><br />
+<a href="html/libxml-tree.html#_xmlRef">_xmlRef</a><br />
+</dd><dt>attribute-</dt><dd><a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>attribute-list</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+</dd><dt>attribute-node</dt><dd><a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+</dd><dt>attribute-nodes</dt><dd><a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd><dt>attributeFormDefault</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a><br />
+</dd><dt>augmented</dt><dd><a href="html/libxml-DOCBparser.html#docbParseDocument">docbParseDocument</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDocument">htmlParseDocument</a><br />
+<a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+<a href="html/libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a><br />
+<a href="html/libxml-tree.html#xmlTextMerge">xmlTextMerge</a><br />
+</dd><dt>autark</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>authentication</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br />
+</dd><dt>author</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>authority</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+</dd><dt>authorized</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>auto</dt><dd><a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
+</dd><dt>auto-repair</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>autoclose</dt><dd><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+</dd><dt>autoclosed</dt><dd><a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+</dd><dt>autogeneration</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>automatically</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+</dd><dt>automaton</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+</dd><dt>autoreference</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+</dd><dt>avoid</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+</dd><dt>avoiding</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNext">xmlTextReaderNext</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+</dd><dt>aware</dt><dd><a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk11.html b/libxml2-2.9.10/doc/APIchunk11.html
new file mode 100644
index 0000000..c28458d
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk11.html
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index b-b for libxml2</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>API Alphabetic Index b-b for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter b:</h2><dl><dt>back</dt><dd><a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGDump">xmlRelaxNGDump</a><br />
+<a href="html/libxml-parserInternals.html#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a><br />
+</dd><dt>bad</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+</dd><dt>badly</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>bahaviour</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>balanced</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+</dd><dt>bar</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>base64</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBase64">xmlTextWriterWriteBase64</a><br />
+</dd><dt>based</dt><dd><a href="html/libxml-tree.html#xmlGetCompressMode">xmlGetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetNodePath">xmlGetNodePath</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewEntityInputStream">xmlNewEntityInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewInputFromFile">xmlNewInputFromFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewStringInputStream">xmlNewStringInputStream</a><br />
+<a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+<a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>basically</dt><dd><a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>basis</dt><dd><a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+</dd><dt>bear</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+</dd><dt>becomes</dt><dd><a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+</dd><dt>before</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-parser.html#xmlInitParser">xmlInitParser</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>beginning</dt><dd><a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-tree.html#xmlBufferShrink">xmlBufferShrink</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-list.html#xmlListInsert">xmlListInsert</a><br />
+<a href="html/libxml-list.html#xmlListPushFront">xmlListPushFront</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>begins</dt><dd><a href="html/libxml-parser.html#_xmlParserNodeInfo">_xmlParserNodeInfo</a><br />
+</dd><dt>behaves</dt><dd><a href="html/libxml-parserInternals.html#IS_LETTER_CH">IS_LETTER_CH</a><br />
+</dd><dt>behavior</dt><dd><a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+</dd><dt>behaviour</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-tree.html#xmlElemDump">xmlElemDump</a><br />
+<a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
+<a href="html/libxml-tree.html#xmlFreeNodeList">xmlFreeNodeList</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+</dd><dt>below</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>better</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a><br />
+</dd><dt>between</dt><dd><a href="html/libxml-encoding.html#_uconv_t">_uconv_t</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+</dd><dt>beyond</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>binary</dt><dd><a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBase64">xmlTextWriterWriteBase64</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBinHex">xmlTextWriterWriteBinHex</a><br />
+</dd><dt>bindings</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+</dd><dt>bit</dt><dd><a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+</dd><dt>bits</dt><dd><a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+</dd><dt>blanks</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+</dd><dt>bloc</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+</dd><dt>blockDefault</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a><br />
+</dd><dt>blocked</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+</dd><dt>blocking</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
+</dd><dt>blocks</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+<a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
+<a href="html/libxml-SAX.html#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#inithtmlDefaultSAXHandler">inithtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a><br />
+</dd><dt>body</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>book1</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>bool</dt><dd><a href="html/libxml-debugXML.html#xmlBoolToText">xmlBoolToText</a><br />
+</dd><dt>both</dt><dd><a href="html/libxml-tree.html#xmlBufferFree">xmlBufferFree</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+</dd><dt>bound</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+</dd><dt>boundaries</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+</dd><dt>boundary</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</dd><dt>bracket</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+</dd><dt>branch</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
+</dd><dt>break</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+</dd><dt>breaking</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+</dd><dt>breaks</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+</dd><dt>brk</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+</dd><dt>broke</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>broken</dt><dd><a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>buf</dt><dd><a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+</dd><dt>buffered</dt><dd><a href="html/libxml-xmlIO.html#xmlAllocOutputBuffer">xmlAllocOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlFreeParserInputBuffer">xmlFreeParserInputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferClose">xmlOutputBufferClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferFlush">xmlOutputBufferFlush</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>buffers</dt><dd><a href="html/libxml-tree.html#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+</dd><dt>building</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+<a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+</dd><dt>builds</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+</dd><dt>built</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+</dd><dt>built-in</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+</dd><dt>builtin</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a><br />
+<a href="html/libxml-xmlerror.html#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a><br />
+</dd><dt>bunch</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>bypass</dt><dd><a href="html/libxml-catalog.html#xmlParseCatalogFile">xmlParseCatalogFile</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk12.html b/libxml2-2.9.10/doc/APIchunk12.html
new file mode 100644
index 0000000..77330dd
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk12.html
@@ -0,0 +1,923 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index c-c for libxml2</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>API Alphabetic Index c-c for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter c:</h2><dl><dt>c14n</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>cache</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>cached</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>caching:</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>calculated</dt><dd><a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+</dd><dt>calculates</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Size">xmlUTF8Size</a><br />
+</dd><dt>calling</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+</dd><dt>calls</dt><dd><a href="html/libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>came</dt><dd><a href="html/libxml-parserInternals.html#xmlPopInput">xmlPopInput</a><br />
+</dd><dt>cannot</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterNs">xmlXPathRegisterNs</a><br />
+</dd><dt>canonic</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+</dd><dt>canonical</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+</dd><dt>canonicalization</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>canonicalized</dt><dd><a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+</dd><dt>canonization</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>canonized</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>capable</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+</dd><dt>cardinality</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>carried</dt><dd><a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlNewDocProp">xmlNewDocProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewProp">xmlNewProp</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+<a href="html/libxml-tree.html#xmlUnsetNsProp">xmlUnsetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlUnsetProp">xmlUnsetProp</a><br />
+</dd><dt>carries</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+</dd><dt>carrying</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+</dd><dt>case-ignoring</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
+</dd><dt>cases</dt><dd><a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+</dd><dt>cast</dt><dd><a href="html/libxml-xmlstring.html#BAD_CAST">BAD_CAST</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_NUMBER">CAST_TO_NUMBER</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_STRING">CAST_TO_STRING</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertFunc">xmlXPathConvertFunc</a><br />
+</dd><dt>casting</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>cat</dt><dd><a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
+</dd><dt>catalogs</dt><dd><a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogCleanup">xmlCatalogCleanup</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogFreeLocal">xmlCatalogFreeLocal</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+</dd><dt>category</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsCat">xmlUCSIsCat</a><br />
+</dd><dt>cause</dt><dd><a href="html/libxml-debugXML.html#xmlShellPrintXPathError">xmlShellPrintXPathError</a><br />
+</dd><dt>caution</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+</dd><dt>cdata-section-</dt><dd><a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd><dt>ceiling</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
+</dd><dt>certainly</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>chained</dt><dd><a href="html/libxml-tree.html#xmlFreeNsList">xmlFreeNsList</a><br />
+</dd><dt>change</dt><dd><a href="html/libxml-tree.html#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetLastError">xmlResetLastError</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a><br />
+<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchEncoding">xmlSwitchEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchToEncoding">xmlSwitchToEncoding</a><br />
+</dd><dt>changed</dt><dd><a href="html/libxml-tree.html#xmlNodeSetBase">xmlNodeSetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetLang">xmlNodeSetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetName">xmlNodeSetName</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>changes</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
+</dd><dt>changing</dt><dd><a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+</dd><dt>channel</dt><dd><a href="html/libxml-xmlIO.html#xmlFileClose">xmlFileClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileRead">xmlFileRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPClose">xmlIOFTPClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPOpen">xmlIOFTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPRead">xmlIOFTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPClose">xmlIOHTTPClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpen">xmlIOHTTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPRead">xmlIOHTTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferClose">xmlOutputBufferClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferFlush">xmlOutputBufferFlush</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathError">xmlShellPrintXPathError</a><br />
+</dd><dt>characters</dt><dd><a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
+<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>charencoding</dt><dd><a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+</dd><dt>chars??</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+</dd><dt>charset</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-xmlIO.html#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a><br />
+<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+</dd><dt>checked</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
+</dd><dt>checking</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+</dd><dt>checkings</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+</dd><dt>checks</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetContains">xmlXPathNodeSetContains</a><br />
+</dd><dt>child-</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+</dd><dt>childrens</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+</dd><dt>childs</dt><dd><a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>choice</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+</dd><dt>choices</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</dd><dt>choices:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+</dd><dt>chunk</dt><dd><a href="html/libxml-DOCBparser.html#docbParseChunk">docbParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseChunk">htmlParseChunk</a><br />
+<a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseChunk">xmlParseChunk</a><br />
+<a href="html/libxml-parser.html#xmlParseEntity">xmlParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+</dd><dt>circular</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a><br />
+</dd><dt>clean</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+</dd><dt>cleanly</dt><dd><a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+</dd><dt>cleans</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</dd><dt>cleanup</dt><dd><a href="html/libxml-globals.html#xmlCleanupGlobals">xmlCleanupGlobals</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a><br />
+</dd><dt>clear</dt><dd><a href="html/libxml-list.html#xmlListMerge">xmlListMerge</a><br />
+</dd><dt>clears</dt><dd><a href="html/libxml-xmlIO.html#xmlCleanupInputCallbacks">xmlCleanupInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlCleanupOutputCallbacks">xmlCleanupOutputCallbacks</a><br />
+</dd><dt>client</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>clone</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+</dd><dt>cloned</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+</dd><dt>close</dt><dd><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadIO">htmlReadIO</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a><br />
+<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferClose">xmlOutputBufferClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-parser.html#xmlReadIO">xmlReadIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
+</dd><dt>closed</dt><dd><a href="html/libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+<a href="html/libxml-parser.html#xmlReadFd">xmlReadFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
+</dd><dt>closes</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPClose">xmlNanoHTTPClose</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
+</dd><dt>closest</dt><dd><a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+</dd><dt>closing</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPFreeCtxt">xmlNanoFTPFreeCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>codes</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>coding</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+</dd><dt>collapse</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a><br />
+</dd><dt>collect</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+</dd><dt>collected</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+</dd><dt>colon</dt><dd><a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+</dd><dt>column</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+<a href="html/libxml-SAX.html#getColumnNumber">getColumnNumber</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetColumnNumber">xmlSAX2GetColumnNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserColumnNumber">xmlTextReaderGetParserColumnNumber</a><br />
+</dd><dt>com</dt><dd><a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+</dd><dt>combining</dt><dd><a href="html/libxml-parserInternals.html#IS_COMBINING_CH">IS_COMBINING_CH</a><br />
+</dd><dt>come</dt><dd><a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>comes</dt><dd><a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>coming</dt><dd><a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+</dd><dt>command</dt><dd><a href="html/libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a><br />
+<a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPQuit">xmlNanoFTPQuit</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+</dd><dt>commandline</dt><dd><a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+</dd><dt>commands</dt><dd><a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+</dd><dt>comment</dt><dd><a href="html/libxml-HTMLtree.html#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a><br />
+<a href="html/libxml-SAX.html#comment">comment</a><br />
+<a href="html/libxml-parser.html#commentSAXFunc">commentSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlNewComment">xmlNewComment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocComment">xmlNewDocComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndComment">xmlTextWriterEndComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartComment">xmlTextWriterStartComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteComment">xmlTextWriterWriteComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatComment">xmlTextWriterWriteFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatComment">xmlTextWriterWriteVFormatComment</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIsNodeType">xmlXPathIsNodeType</a><br />
+</dd><dt>comment-</dt><dd><a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd><dt>comments</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+</dd><dt>commodity</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>common</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+</dd><dt>comp</dt><dd><a href="html/libxml-pattern.html#xmlFreePattern">xmlFreePattern</a><br />
+<a href="html/libxml-pattern.html#xmlFreePatternList">xmlFreePatternList</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeCompExpr">xmlXPathFreeCompExpr</a><br />
+</dd><dt>compare</dt><dd><a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Charcmp">xmlUTF8Charcmp</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+</dd><dt>compared</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+</dd><dt>compares</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Charcmp">xmlUTF8Charcmp</a><br />
+</dd><dt>comparing</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+</dd><dt>comparison</dt><dd><a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-list.html#xmlListCreate">xmlListCreate</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcmp">xmlStrcmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncmp">xmlStrncmp</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+</dd><dt>comparisons</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>compatibility</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-tree.html#xmlChildrenNode">xmlChildrenNode</a><br />
+<a href="html/libxml-parserInternals.html#xmlCopyChar">xmlCopyChar</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-tree.html#xmlRootNode">xmlRootNode</a><br />
+</dd><dt>compatible</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+</dd><dt>compilation</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a><br />
+<a href="html/libxml-xpath.html#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompile">xmlXPathCompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a><br />
+</dd><dt>compile</dt><dd><a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+</dd><dt>compile-time</dt><dd><a href="html/libxml-DOCBparser.html#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseFile">htmlParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateFileParserCtxt">xmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-parser.html#xmlParseFile">xmlParseFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+</dd><dt>compiled-in</dt><dd><a href="html/libxml-xmlIO.html#xmlCleanupInputCallbacks">xmlCleanupInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlCleanupOutputCallbacks">xmlCleanupOutputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlPopInputCallbacks">xmlPopInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterDefaultOutputCallbacks">xmlRegisterDefaultOutputCallbacks</a><br />
+</dd><dt>compiling</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+</dd><dt>complement</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+</dd><dt>complete</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolve">xmlACatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveURI">xmlACatalogResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolve">xmlCatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveURI">xmlCatalogResolveURI</a><br />
+</dd><dt>completed</dt><dd><a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+</dd><dt>completely</dt><dd><a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+</dd><dt>complex</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+</dd><dt>complexType</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a><br />
+</dd><dt>complicated</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>component</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+</dd><dt>components</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+</dd><dt>compound</dt><dd><a href="html/libxml-xpath.html#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a><br />
+</dd><dt>compress</dt><dd><a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterFilename">xmlNewTextWriterFilename</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+</dd><dt>compressed</dt><dd><a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseFile">htmlParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateFileParserCtxt">xmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-parser.html#xmlParseFile">xmlParseFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a><br />
+</dd><dt>compression</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-tree.html#xmlGetCompressMode">xmlGetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-tree.html#xmlSaveFile">xmlSaveFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+</dd><dt>comprising</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+</dd><dt>computation</dt><dd><a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>compute</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+</dd><dt>computed</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueAppend">xmlSchemaValueAppend</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsBoolean">xmlSchemaValueGetAsBoolean</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsString">xmlSchemaValueGetAsString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+</dd><dt>computes</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+</dd><dt>concat</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathConcatFunction">xmlXPathConcatFunction</a><br />
+</dd><dt>concatenated</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+</dd><dt>concatenation</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathConcatFunction">xmlXPathConcatFunction</a><br />
+</dd><dt>concerning</dt><dd><a href="html/libxml-debugXML.html#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a><br />
+</dd><dt>condition</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+</dd><dt>conditionalSect</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+</dd><dt>configured</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-xmlversion.html#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_C14N_ENABLED">LIBXML_C14N_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_CATALOG_ENABLED">LIBXML_CATALOG_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_FTP_ENABLED">LIBXML_FTP_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_HTML_ENABLED">LIBXML_HTML_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_HTTP_ENABLED">LIBXML_HTTP_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_READER_ENABLED">LIBXML_READER_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_VALID_ENABLED">LIBXML_VALID_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_XINCLUDE_ENABLED">LIBXML_XINCLUDE_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_XPATH_ENABLED">LIBXML_XPATH_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_XPTR_ENABLED">LIBXML_XPTR_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#WITHOUT_TRIO">WITHOUT_TRIO</a><br />
+<a href="html/libxml-xmlversion.html#WITH_TRIO">WITH_TRIO</a><br />
+</dd><dt>conforming</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+</dd><dt>conforms</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
+<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
+<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
+<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
+<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
+</dd><dt>conjunction</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
+</dd><dt>connection</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCloseConnection">xmlNanoFTPCloseConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnect">xmlNanoFTPConnect</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPFreeCtxt">xmlNanoFTPFreeCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPClose">xmlNanoHTTPClose</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
+</dd><dt>connector</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+</dd><dt>consequent</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+</dd><dt>consideration</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>considered</dt><dd><a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>consist</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+</dd><dt>const</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+</dd><dt>constant</dt><dd><a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+</dd><dt>constraint</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaAttribute">_xmlSchemaAttribute</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaWildcard">_xmlSchemaWildcard</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaWildcardNs">_xmlSchemaWildcardNs</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+</dd><dt>constraints</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>construct</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+</dd><dt>construction</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+</dd><dt>constructs</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>consumed</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+</dd><dt>consuming</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+</dd><dt>contain</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewMemParserCtxt">xmlRelaxNGNewMemParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</dd><dt>contained</dt><dd><a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrlen">xmlStrlen</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+</dd><dt>contains</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathContainsFunction">xmlXPathContainsFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextChild">xmlXPathNextChild</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextParent">xmlXPathNextParent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetContains">xmlXPathNodeSetContains</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</dd><dt>content:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseContent">xmlParseContent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEqualValues">xmlXPathEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a><br />
+</dd><dt>contentType</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+</dd><dt>contents</dt><dd><a href="html/libxml-dict.html#xmlDictFree">xmlDictFree</a><br />
+<a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
+<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
+</dd><dt>contentspec</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+</dd><dt>context?</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>contexts</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+</dd><dt>contextual</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserStructuredErrors">xmlRelaxNGSetParserStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
+</dd><dt>continuing</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>contrary</dt><dd><a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+</dd><dt>contrast</dt><dd><a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+</dd><dt>control</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnect">xmlNanoFTPConnect</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</dd><dt>conveniently</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+</dd><dt>conversion</dt><dd><a href="html/libxml-encoding.html#_uconv_t">_uconv_t</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathType">_xmlXPathType</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEncodingDecl">xmlParseEncodingDecl</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertFunc">xmlXPathConvertFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopBoolean">xmlXPathPopBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopExternal">xmlXPathPopExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNumber">xmlXPathPopNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopString">xmlXPathPopString</a><br />
+</dd><dt>conversions</dt><dd><a href="html/libxml-xmlIO.html#_xmlOutputBuffer">_xmlOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+</dd><dt>convert</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+</dd><dt>converted</dt><dd><a href="html/libxml-catalog.html#xmlCatalogConvert">xmlCatalogConvert</a><br />
+<a href="html/libxml-catalog.html#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+</dd><dt>converter</dt><dd><a href="html/libxml-xmlIO.html#xmlAllocOutputBuffer">xmlAllocOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+</dd><dt>converting</dt><dd><a href="html/libxml-tree.html#xmlSaveFileEnc">xmlSaveFileEnc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+</dd><dt>converts</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>cope</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>copied</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+</dd><dt>copier</dt><dd><a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
+</dd><dt>copying</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+</dd><dt>correct</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>correctly</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>correspond</dt><dd><a href="html/libxml-tree.html#xmlIsXHTML">xmlIsXHTML</a><br />
+<a href="html/libxml-parser.html#xmlParseEntity">xmlParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+</dd><dt>corresponding</dt><dd><a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetDtdEntity">xmlGetDtdEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetParameterEntity">xmlGetParameterEntity</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>cost</dt><dd><a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+</dd><dt>costly</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+</dd><dt>could</dt><dd><a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+</dd><dt>count</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+<a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
+<a href="html/libxml-debugXML.html#xmlLsCountNode">xmlLsCountNode</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderAttributeCount">xmlTextReaderAttributeCount</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCountFunction">xmlXPathCountFunction</a><br />
+</dd><dt>counter</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
+</dd><dt>counterparts</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+</dd><dt>course</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>cover</dt><dd><a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+</dd><dt>crash</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>create</dt><dd><a href="html/libxml-tree.html#xmlBufferCreate">xmlBufferCreate</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateSize">xmlBufferCreateSize</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogIsEmpty">xmlCatalogIsEmpty</a><br />
+<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+<a href="html/libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a><br />
+<a href="html/libxml-catalog.html#xmlNewCatalog">xmlNewCatalog</a><br />
+<a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+</dd><dt>creates</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-uri.html#xmlCreateURI">xmlCreateURI</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>creating</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+</dd><dt>creation</dt><dd><a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a><br />
+</dd><dt>cross</dt><dd><a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+</dd><dt>crossed</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+</dd><dt>ctxt</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+</dd><dt>ctxt-</dt><dd><a href="html/libxml-DOCBparser.html#docbFreeParserCtxt">docbFreeParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlFreeParserCtxt">htmlFreeParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlPopInput">xmlPopInput</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>cur</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>currently</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>custom</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetEscape">xmlSaveSetEscape</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk13.html b/libxml2-2.9.10/doc/APIchunk13.html
new file mode 100644
index 0000000..a01afa8
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk13.html
@@ -0,0 +1,649 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index d-d for libxml2</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>API Alphabetic Index d-d for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter d:</h2><dl><dt>dangerous</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+</dd><dt>data-type</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+</dd><dt>datatype</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+</dd><dt>day</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</dd><dt>day:minute</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</dd><dt>de-coupled</dt><dd><a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+</dd><dt>deactivated</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+</dd><dt>deallocate</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-list.html#xmlListDeallocator">xmlListDeallocator</a><br />
+<a href="html/libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+</dd><dt>deallocated</dt><dd><a href="html/libxml-dict.html#xmlDictFree">xmlDictFree</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-uri.html#xmlSaveUri">xmlSaveUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstBaseUri">xmlTextReaderConstBaseUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstEncoding">xmlTextReaderConstEncoding</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstLocalName">xmlTextReaderConstLocalName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstName">xmlTextReaderConstName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstNamespaceUri">xmlTextReaderConstNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstPrefix">xmlTextReaderConstPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlVersion">xmlTextReaderConstXmlVersion</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
+</dd><dt>deallocation</dt><dd><a href="html/libxml-list.html#xmlListRemoveAll">xmlListRemoveAll</a><br />
+<a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
+<a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
+</dd><dt>deallocator</dt><dd><a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-list.html#xmlListCreate">xmlListCreate</a><br />
+</dd><dt>debug</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttr">xmlDebugDumpAttr</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDTD">xmlDebugDumpDTD</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocument">xmlDebugDumpDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpEntities">xmlDebugDumpEntities</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNode">xmlDebugDumpNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpPrint">xmlRegexpPrint</a><br />
+<a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+</dd><dt>debugging</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-xmlversion.html#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+</dd><dt>decimal</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>decl</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a><br />
+<a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
+</dd><dt>declarations</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseCharRef">htmlParseCharRef</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+</dd><dt>declare</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+</dd><dt>declared</dt><dd><a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+</dd><dt>declaring</dt><dd><a href="html/libxml-valid.html#xmlGetID">xmlGetID</a><br />
+</dd><dt>decode</dt><dd><a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+</dd><dt>def</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+</dd><dt>defaulted</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a><br />
+</dd><dt>defaultexternal</dt><dd><a href="html/libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a><br />
+</dd><dt>defaults</dt><dd><a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLocalNameFunction">xmlXPathLocalNameFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNamespaceURIFunction">xmlXPathNamespaceURIFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+</dd><dt>define</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>defined</dt><dd><a href="html/libxml-xmlversion.html#WITHOUT_TRIO">WITHOUT_TRIO</a><br />
+<a href="html/libxml-xmlversion.html#WITH_TRIO">WITH_TRIO</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
+<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+</dd><dt>defining</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_FALLBACK">XINCLUDE_FALLBACK</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_HREF">XINCLUDE_HREF</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_NODE">XINCLUDE_NODE</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_NS">XINCLUDE_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE">XINCLUDE_PARSE</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_ENCODING">XINCLUDE_PARSE_ENCODING</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_TEXT">XINCLUDE_PARSE_TEXT</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_XML">XINCLUDE_PARSE_XML</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_XPOINTER">XINCLUDE_PARSE_XPOINTER</a><br />
+<a href="html/libxml-valid.html#xmlGetID">xmlGetID</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstNamespaceUri">xmlTextReaderConstNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNamespaceUri">xmlTextReaderNamespaceUri</a><br />
+</dd><dt>definitions</dt><dd><a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+</dd><dt>defs</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+</dd><dt>delayed</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+</dd><dt>delegation</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+</dd><dt>delete</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+</dd><dt>deletion</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+</dd><dt>dependent</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>depending</dt><dd><a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+<a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEqualValues">xmlXPathEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a><br />
+</dd><dt>deprecated</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-parser.html#xmlParserInputRead">xmlParserInputRead</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+</dd><dt>depth</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderDepth">xmlTextReaderDepth</a><br />
+</dd><dt>deregistration</dt><dd><a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a><br />
+</dd><dt>derivation</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+</dd><dt>descend</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+</dd><dt>descendant</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+</dd><dt>descendant-or-self</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+</dd><dt>descendants</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+</dd><dt>described</dt><dd><a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>describing</dt><dd><a href="html/libxml-DOCBparser.html#docbParseDoc">docbParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseFile">htmlParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-encoding.html#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</dd><dt>description</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlEntityDesc">_htmlEntityDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a><br />
+<a href="html/libxml-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementContent">xmlCopyElementContent</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetLang">xmlNodeSetLang</a><br />
+</dd><dt>descriptor</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadFd">htmlCtxtReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFd">htmlReadFd</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a><br />
+<a href="html/libxml-parser.html#xmlReadFd">xmlReadFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+</dd><dt>designed</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+</dd><dt>desired</dt><dd><a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
+</dd><dt>destination</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+</dd><dt>destroy</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+</dd><dt>destroyed</dt><dd><a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
+</dd><dt>destruction</dt><dd><a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
+</dd><dt>details</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>detect</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+</dd><dt>detected</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_ERROR">CHECK_ERROR</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_ERROR0">CHECK_ERROR0</a><br />
+<a href="html/libxml-SAX.html#endDocument">endDocument</a><br />
+<a href="html/libxml-parser.html#endDocumentSAXFunc">endDocumentSAXFunc</a><br />
+<a href="html/libxml-SAX.html#endElement">endElement</a><br />
+<a href="html/libxml-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#endElementSAXFunc">endElementSAXFunc</a><br />
+<a href="html/libxml-SAX.html#reference">reference</a><br />
+<a href="html/libxml-parser.html#referenceSAXFunc">referenceSAXFunc</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndDocument">xmlSAX2EndDocument</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElement">xmlSAX2EndElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Reference">xmlSAX2Reference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaIsValid">xmlSchemaIsValid</a><br />
+</dd><dt>detection</dt><dd><a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkGetDefaultDetect">xlinkGetDefaultDetect</a><br />
+<a href="html/libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a><br />
+<a href="html/libxml-xlink.html#xlinkSetDefaultDetect">xlinkSetDefaultDetect</a><br />
+<a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+</dd><dt>determine</dt><dd><a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+</dd><dt>determined</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+</dd><dt>determinist</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataIsDeterminist">xmlAutomataIsDeterminist</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
+</dd><dt>dict</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+</dd><dt>dictionaries</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+</dd><dt>did</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
+</dd><dt>difference</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+</dd><dt>different</dt><dd><a href="html/libxml-tree.html#_xmlBuffer">_xmlBuffer</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
+</dd><dt>differentiate</dt><dd><a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>differently</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>differs</dt><dd><a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+</dd><dt>digit</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>digits</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>dir</dt><dd><a href="html/libxml-debugXML.html#xmlShellDir">xmlShellDir</a><br />
+</dd><dt>direct</dt><dd><a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+</dd><dt>direction</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAttribute">xmlXPathNextAttribute</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextChild">xmlXPathNextChild</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextParent">xmlXPathNextParent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+</dd><dt>directly</dt><dd><a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertNumber">xmlXPathConvertNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertString">xmlXPathConvertString</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</dd><dt>directories</dt><dd><a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+</dd><dt>directory</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserGetDirectory">xmlParserGetDirectory</a><br />
+<a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+</dd><dt>disable</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+</dd><dt>disabled</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
+<a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+</dd><dt>disables</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>disabling</dt><dd><a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+</dd><dt>disallowed</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a><br />
+</dd><dt>discard</dt><dd><a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+</dd><dt>discarded</dt><dd><a href="html/libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a><br />
+</dd><dt>discarding</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+</dd><dt>disconnected</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewState">xmlAutomataNewState</a><br />
+</dd><dt>discovering</dt><dd><a href="html/libxml-parserInternals.html#xmlSwitchEncoding">xmlSwitchEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchToEncoding">xmlSwitchToEncoding</a><br />
+</dd><dt>display</dt><dd><a href="html/libxml-parser.html#errorSAXFunc">errorSAXFunc</a><br />
+<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-parser.html#warningSAXFunc">warningSAXFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserError">xmlParserError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+</dd><dt>distinct</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+</dd><dt>distinguish</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>div</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>doc</dt><dd><a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+</dd><dt>doc-</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+</dd><dt>docs</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>doctypedecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+</dd><dt>documents</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>doesn</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+<a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
+<a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+<a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
+<a href="html/libxml-tree.html#xmlRemoveProp">xmlRemoveProp</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</dd><dt>doing</dt><dd><a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
+</dd><dt>don</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+</dd><dt>dotgnu</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>double</dt><dd><a href="">val</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
+<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewFloat">xmlXPathNewFloat</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnNumber">xmlXPathReturnNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetCreate">xmlXPtrLocationSetCreate</a><br />
+</dd><dt>double-hyphen</dt><dd><a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+</dd><dt>double-quotes</dt><dd><a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+</dd><dt>doubleit</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+</dd><dt>doublequotes</dt><dd><a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+</dd><dt>doubt</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>down</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+</dd><dt>draft</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
+</dd><dt>drop</dt><dd><a href="html/libxml-xmlIO.html#xmlFileRead">xmlFileRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPRead">xmlIOFTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPRead">xmlIOHTTPRead</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+</dd><dt>dtd</dt><dd><a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDoc">htmlNewDoc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
+<a href="html/libxml-tree.html#xmlCopyDtd">xmlCopyDtd</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+</dd><dt>dtds</dt><dd><a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>due</dt><dd><a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+</dd><dt>dump</dt><dd><a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferDump">xmlBufferDump</a><br />
+<a href="html/libxml-tree.html#xmlBufferShrink">xmlBufferShrink</a><br />
+<a href="html/libxml-valid.html#xmlDumpAttributeDecl">xmlDumpAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpAttributeTable">xmlDumpAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlDumpElementDecl">xmlDumpElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpElementTable">xmlDumpElementTable</a><br />
+<a href="html/libxml-entities.html#xmlDumpEntitiesTable">xmlDumpEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlDumpEntityDecl">xmlDumpEntityDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpNotationDecl">xmlDumpNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpNotationTable">xmlDumpNotationTable</a><br />
+<a href="html/libxml-debugXML.html#xmlLsOneNode">xmlLsOneNode</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
+<a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+</dd><dt>dumping</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+</dd><dt>dumps</dt><dd><a href="html/libxml-debugXML.html#xmlShellBase">xmlShellBase</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDir">xmlShellDir</a><br />
+</dd><dt>duplicate</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+</dd><dt>duplicated</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+</dd><dt>duplicates</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+</dd><dt>duration</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>during</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaIsValid">xmlSchemaIsValid</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+</dd><dt>dynamic</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk14.html b/libxml2-2.9.10/doc/APIchunk14.html
new file mode 100644
index 0000000..235b553
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk14.html
@@ -0,0 +1,467 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index e-e for libxml2</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>API Alphabetic Index e-e for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter e:</h2><dl><dt>each</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
+<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>edition</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>effect</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>effective</dt><dd><a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+</dd><dt>efficiency</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>either</dt><dd><a href="html/libxml-debugXML.html#xmlBoolToText">xmlBoolToText</a><br />
+<a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>either:</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</dd><dt>elem</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a><br />
+</dd><dt>elem-</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+</dd><dt>element-</dt><dd><a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>element-node</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+</dd><dt>element-nodes</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd><dt>elementFormDefault</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a><br />
+</dd><dt>elementdecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>elements</dt><dd><a href="html/libxml-catalog.html#XML_CATALOGS_NAMESPACE">XML_CATALOGS_NAMESPACE</a><br />
+<a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
+<a href="html/libxml-pattern.html#xmlFreePatternList">xmlFreePatternList</a><br />
+<a href="html/libxml-hash.html#xmlHashSize">xmlHashSize</a><br />
+<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+<a href="html/libxml-list.html#xmlListMerge">xmlListMerge</a><br />
+<a href="html/libxml-list.html#xmlListReverse">xmlListReverse</a><br />
+<a href="html/libxml-list.html#xmlListSize">xmlListSize</a><br />
+<a href="html/libxml-list.html#xmlListSort">xmlListSort</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>else</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+</dd><dt>embedded</dt><dd><a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
+<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
+</dd><dt>emitted</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+</dd><dt>empty-element</dt><dd><a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>enable</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+</dd><dt>enabled</dt><dd><a href="html/libxml-tree.html#xmlSaveFile">xmlSaveFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+</dd><dt>enables</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>enabling</dt><dd><a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+<a href="html/libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a><br />
+</dd><dt>enc</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+</dd><dt>encapsulate</dt><dd><a href="html/libxml-tree.html#xmlBufferFree">xmlBufferFree</a><br />
+</dd><dt>encapsulating</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+</dd><dt>enclose</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderQuoteChar">xmlTextReaderQuoteChar</a><br />
+</dd><dt>encode</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBase64">xmlTextWriterWriteBase64</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBinHex">xmlTextWriterWriteBinHex</a><br />
+</dd><dt>encoded</dt><dd><a href="html/libxml-xmlIO.html#_xmlOutputBuffer">_xmlOutputBuffer</a><br />
+<a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBase64">xmlTextWriterWriteBase64</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBinHex">xmlTextWriterWriteBinHex</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+</dd><dt>encoder</dt><dd><a href="html/libxml-xmlIO.html#_xmlOutputBuffer">_xmlOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+</dd><dt>encoder==NULL</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>encountered</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+</dd><dt>encountering</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>end-tag</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+</dd><dt>end-up</dt><dd><a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+</dd><dt>ended</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>ending</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodes">xmlXPtrNewRangeNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a><br />
+</dd><dt>ends</dt><dd><a href="html/libxml-parser.html#_xmlParserNodeInfo">_xmlParserNodeInfo</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPClose">xmlNanoHTTPClose</a><br />
+</dd><dt>enforced</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+</dd><dt>engine</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a><br />
+</dd><dt>englobing</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+<a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+<a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
+</dd><dt>enhancements</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>enough</dt><dd><a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+</dd><dt>ensure</dt><dd><a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+</dd><dt>ensures</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+</dd><dt>ensuring</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>entire</dt><dd><a href="html/libxml-xmlIO.html#xmlCleanupInputCallbacks">xmlCleanupInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlCleanupOutputCallbacks">xmlCleanupOutputCallbacks</a><br />
+</dd><dt>entities:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+</dd><dt>entproc</dt><dd><a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+</dd><dt>entries</dt><dd><a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogConvert">xmlCatalogConvert</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
+</dd><dt>entry</dt><dd><a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a><br />
+</dd><dt>enumerated</dt><dd><a href="html/libxml-SAX.html#attributeDecl">attributeDecl</a><br />
+<a href="html/libxml-parser.html#attributeDeclSAXFunc">attributeDeclSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2AttributeDecl">xmlSAX2AttributeDecl</a><br />
+</dd><dt>enumeration</dt><dd><a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
+<a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a><br />
+<a href="html/libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a><br />
+<a href="html/libxml-valid.html#xmlFreeEnumeration">xmlFreeEnumeration</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+</dd><dt>environment</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br />
+</dd><dt>epsilon</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+</dd><dt>equal</dt><dd><a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstName">xmlTextReaderConstName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderName">xmlTextReaderName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEqualValues">xmlXPathEqualValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPositionFunction">xmlXPathPositionFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>equality</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
+</dd><dt>equivalent</dt><dd><a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToString">xmlXPathCastToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertNumber">xmlXPathConvertNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertString">xmlXPathConvertString</a><br />
+</dd><dt>escape</dt><dd><a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+</dd><dt>escaped</dt><dd><a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-uri.html#xmlSaveUri">xmlSaveUri</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+</dd><dt>escapes</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+</dd><dt>escaping</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetEscape">xmlSaveSetEscape</a><br />
+</dd><dt>especially</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>established</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+</dd><dt>etc</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
+<a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+</dd><dt>evaluate</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathEvalExpr">xmlXPathEvalExpr</a><br />
+</dd><dt>evaluated</dt><dd><a href="html/libxml-xpath.html#xmlXPathCompiledEvalToBoolean">xmlXPathCompiledEvalToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</dd><dt>evaluating</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+</dd><dt>evaluation</dt><dd><a href="html/libxml-xpath.html#_xmlXPathFunct">_xmlXPathFunct</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-xpathInternals.html#valuePop">valuePop</a><br />
+<a href="html/libxml-xpathInternals.html#valuePush">valuePush</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalFunc">xmlXPathEvalFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+</dd><dt>even</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
+</dd><dt>event</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+</dd><dt>events</dt><dd><a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+</dd><dt>ever</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+</dd><dt>everywhere</dt><dd><a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>exact</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+</dd><dt>examined</dt><dd><a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+</dd><dt>example</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>examples</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>except</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-catalog.html#xmlParseCatalogFile">xmlParseCatalogFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+</dd><dt>exception</dt><dd><a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+</dd><dt>excluding</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+</dd><dt>exclusions</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a><br />
+</dd><dt>exclusions:</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a><br />
+</dd><dt>exclusive</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>executed</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+</dd><dt>execution</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+</dd><dt>exist</dt><dd><a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+</dd><dt>existent</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+</dd><dt>exists</dt><dd><a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+</dd><dt>exit</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>expand</dt><dd><a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+</dd><dt>expanded</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNamespaceURIFunction">xmlXPathNamespaceURIFunction</a><br />
+</dd><dt>expected</dt><dd><a href="">x</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewMemParserCtxt">xmlRelaxNGNewMemParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>explicitly</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+</dd><dt>explored</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>exposing</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
+</dd><dt>express</dt><dd><a href="html/libxml-tree.html#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a><br />
+</dd><dt>expressing</dt><dd><a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+</dd><dt>expressions</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+</dd><dt>exslSetsDistinctSorted</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+</dd><dt>exslSetsLeadingSorted</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+</dd><dt>exslSetsNodeLeadingSorted</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+</dd><dt>ext</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>extParsedEnt</dt><dd><a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseEntity">xmlParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+</dd><dt>extSubset</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+</dd><dt>extSubsetDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+</dd><dt>extend</dt><dd><a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+</dd><dt>extended</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+</dd><dt>extension</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>extensions</dt><dd><a href="html/libxml-parser.html#_xmlSAXHandler">_xmlSAXHandler</a><br />
+</dd><dt>extent</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+</dd><dt>extlang</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>extract</dt><dd><a href="html/libxml-tree.html#XML_GET_CONTENT">XML_GET_CONTENT</a><br />
+<a href="html/libxml-tree.html#XML_GET_LINE">XML_GET_LINE</a><br />
+<a href="html/libxml-tree.html#xmlBufContent">xmlBufContent</a><br />
+<a href="html/libxml-tree.html#xmlBufEnd">xmlBufEnd</a><br />
+<a href="html/libxml-tree.html#xmlBufferContent">xmlBufferContent</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk15.html b/libxml2-2.9.10/doc/APIchunk15.html
new file mode 100644
index 0000000..744bde8
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk15.html
@@ -0,0 +1,455 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index f-f for libxml2</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>API Alphabetic Index f-f for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter f:</h2><dl><dt>fTP</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+</dd><dt>face</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+</dd><dt>facet</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaFacetLink">_xmlSchemaFacetLink</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+</dd><dt>facets</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+</dd><dt>facility</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
+</dd><dt>fail</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathError">xmlShellPrintXPathError</a><br />
+</dd><dt>failed</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+<a href="html/libxml-valid.html#xmlRemoveID">xmlRemoveID</a><br />
+<a href="html/libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a><br />
+<a href="html/libxml-debugXML.html#xmlShellLoad">xmlShellLoad</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+</dd><dt>fails</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+</dd><dt>fallback</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_FALLBACK">XINCLUDE_FALLBACK</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>far</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaIsValid">xmlSchemaIsValid</a><br />
+</dd><dt>fashion</dt><dd><a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+</dd><dt>fast</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+</dd><dt>faster</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+</dd><dt>fatal</dt><dd><a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+</dd><dt>fatalError</dt><dd><a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+</dd><dt>favor</dt><dd><a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
+</dd><dt>feature</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+<a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
+</dd><dt>features</dt><dd><a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+</dd><dt>fed</dt><dd><a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd><dt>feed</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
+</dd><dt>fetch</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPOpen">xmlNanoFTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+</dd><dt>fetching</dt><dd><a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
+</dd><dt>field</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
+<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
+<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+<a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMisc">xmlParseMisc</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>fields</dt><dd><a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#_xmlSAXHandler">_xmlSAXHandler</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+</dd><dt>files</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+</dd><dt>filesystem</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFile">htmlReadFile</a><br />
+<a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+<a href="html/libxml-parser.html#xmlReadFile">xmlReadFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFile">xmlReaderForFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFile">xmlReaderNewFile</a><br />
+</dd><dt>filled</dt><dd><a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+</dd><dt>fills</dt><dd><a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+</dd><dt>filters</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEncodingDecl">xmlParseEncodingDecl</a><br />
+</dd><dt>final</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataSetFinalState">xmlAutomataSetFinalState</a><br />
+<a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>finalDefault</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a><br />
+</dd><dt>find</dt><dd><a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+<a href="html/libxml-tree.html#xmlIsXHTML">xmlIsXHTML</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+</dd><dt>finding</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</dd><dt>finds</dt><dd><a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+</dd><dt>finishDtd</dt><dd><a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
+<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
+</dd><dt>finished</dt><dd><a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+</dd><dt>finishing</dt><dd><a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+</dd><dt>finite</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>firs</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</dd><dt>fist</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+</dd><dt>fit</dt><dd><a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</dd><dt>fixed</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>fixup</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a><br />
+</dd><dt>flag</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+<a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsValid">xmlTextReaderIsValid</a><br />
+</dd><dt>flagged</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlGetMetaEncoding">htmlGetMetaEncoding</a><br />
+</dd><dt>flags</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFile">xmlReaderForFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForMemory">xmlReaderForMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFile">xmlReaderNewFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewMemory">xmlReaderNewMemory</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a><br />
+</dd><dt>flat</dt><dd><a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+</dd><dt>floor</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+</dd><dt>flow</dt><dd><a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+</dd><dt>flushed</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
+</dd><dt>flushes</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferClose">xmlOutputBufferClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferFlush">xmlOutputBufferFlush</a><br />
+</dd><dt>follow</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</dd><dt>followed</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>following-sibling</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+</dd><dt>follows</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+</dd><dt>follows:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>for:</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>forbid</dt><dd><a href="html/libxml-xpath.html#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a><br />
+</dd><dt>force</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+</dd><dt>forced</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>form</dt><dd><a href="html/libxml-DOCBparser.html#docbParseDoc">docbParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-parserInternals.html#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseFile">htmlParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>formal</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
+</dd><dt>formatted</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatCDATA">xmlTextWriterWriteFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDAttlist">xmlTextWriterWriteFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDElement">xmlTextWriterWriteFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElement">xmlTextWriterWriteFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElementNS">xmlTextWriterWriteFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatPI">xmlTextWriterWriteFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatRaw">xmlTextWriterWriteFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatString">xmlTextWriterWriteFormatString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttribute">xmlTextWriterWriteVFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttributeNS">xmlTextWriterWriteVFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatCDATA">xmlTextWriterWriteVFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDAttlist">xmlTextWriterWriteVFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDElement">xmlTextWriterWriteVFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElement">xmlTextWriterWriteVFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElementNS">xmlTextWriterWriteVFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatPI">xmlTextWriterWriteVFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatString">xmlTextWriterWriteVFormatString</a><br />
+</dd><dt>formatting</dt><dd><a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileEnc">htmlSaveFileEnc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileFormat">htmlSaveFileFormat</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
+</dd><dt>formed</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+</dd><dt>forward</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+</dd><dt>fptr</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>fragment</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+<a href="html/libxml-tree.html#xmlNewDocFragment">xmlNewDocFragment</a><br />
+<a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+</dd><dt>fragments</dt><dd><a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+</dd><dt>freeing</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+</dd><dt>frees</dt><dd><a href="html/libxml-tree.html#xmlBufferFree">xmlBufferFree</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>front</dt><dd><a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
+<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
+<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
+<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
+</dd><dt>front-end</dt><dd><a href="html/libxml-encoding.html#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</dd><dt>ftp:</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPOpen">xmlNanoFTPOpen</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+</dd><dt>ftp_proxy</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+</dd><dt>ftp_proxy_password</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+</dd><dt>ftp_proxy_user</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+</dd><dt>full</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+</dd><dt>fully</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+</dd><dt>func</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>funcs</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>function:</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</dd><dt>functionality</dt><dd><a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+</dd><dt>functions</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadIO">htmlReadIO</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-parser.html#xmlReadIO">xmlReadIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserStructuredErrors">xmlRelaxNGSetParserStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserStructuredErrors">xmlSchemaSetParserStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronSetValidStructuredErrors">xmlSchematronSetValidStructuredErrors</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchEncoding">xmlSwitchEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchToEncoding">xmlSwitchToEncoding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterAllFunctions">xmlXPathRegisterAllFunctions</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredFuncsCleanup">xmlXPathRegisteredFuncsCleanup</a><br />
+</dd><dt>further</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parser.html#xmlStopParser">xmlStopParser</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a><br />
+</dd><dt>future</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk16.html b/libxml2-2.9.10/doc/APIchunk16.html
new file mode 100644
index 0000000..0fb9d81
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk16.html
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index g-h for libxml2</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>API Alphabetic Index g-h for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter g:</h2><dl><dt>gDay</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>gMonth</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>gMonthDay</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>gYear</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>gYearMonth</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>garbage</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+</dd><dt>gcc</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>gcc4</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>genChRanges</dt><dd><a href="html/libxml-chvalid.html#xmlIsBaseCharQ">xmlIsBaseCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar_ch">xmlIsBaseChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlankQ">xmlIsBlankQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank_ch">xmlIsBlank_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCharQ">xmlIsCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar_ch">xmlIsChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombiningQ">xmlIsCombiningQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigitQ">xmlIsDigitQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit_ch">xmlIsDigit_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtenderQ">xmlIsExtenderQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender_ch">xmlIsExtender_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographicQ">xmlIsIdeographicQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidCharQ">xmlIsPubidCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar_ch">xmlIsPubidChar_ch</a><br />
+</dd><dt>general</dt><dd><a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+</dd><dt>generally</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+</dd><dt>generate</dt><dd><a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>generated</dt><dd><a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseCharQ">xmlIsBaseCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar_ch">xmlIsBaseChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlankQ">xmlIsBlankQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank_ch">xmlIsBlank_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCharQ">xmlIsCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar_ch">xmlIsChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombiningQ">xmlIsCombiningQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigitQ">xmlIsDigitQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit_ch">xmlIsDigit_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtenderQ">xmlIsExtenderQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender_ch">xmlIsExtender_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographicQ">xmlIsIdeographicQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidCharQ">xmlIsPubidCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar_ch">xmlIsPubidChar_ch</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a><br />
+</dd><dt>generates</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
+</dd><dt>generating</dt><dd><a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+</dd><dt>generic</dt><dd><a href="html/libxml-xmlerror.html#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
+</dd><dt>get</dt><dd><a href="html/libxml-parser.html#_xmlSAXHandler">_xmlSAXHandler</a><br />
+<a href="html/libxml-parser.html#_xmlSAXHandlerV1">_xmlSAXHandlerV1</a><br />
+<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlBufUse">xmlBufUse</a><br />
+<a href="html/libxml-tree.html#xmlBufferLength">xmlBufferLength</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
+<a href="html/libxml-tree.html#xmlGetCompressMode">xmlGetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+</dd><dt>gie</dt><dd><a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+</dd><dt>gif</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>give</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+</dd><dt>gives</dt><dd><a href="html/libxml-xmlerror.html#xmlParserError">xmlParserError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+</dd><dt>giving</dt><dd><a href="html/libxml-tree.html#xmlNewDoc">xmlNewDoc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
+</dd><dt>global</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a><br />
+<a href="html/libxml-tree.html#_xmlNs">_xmlNs</a><br />
+<a href="html/libxml-SAX.html#globalNamespace">globalNamespace</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogDump">xmlCatalogDump</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-threads.html#xmlGetGlobalState">xmlGetGlobalState</a><br />
+<a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
+<a href="html/libxml-globals.html#xmlInitializeGlobalState">xmlInitializeGlobalState</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetLastError">xmlResetLastError</a><br />
+</dd><dt>globally</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+</dd><dt>gnu</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>good</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>grafted</dt><dd><a href="html/libxml-tree.html#xmlCopyProp">xmlCopyProp</a><br />
+<a href="html/libxml-tree.html#xmlCopyPropList">xmlCopyPropList</a><br />
+</dd><dt>grammar:</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+</dd><dt>greater</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>greater-than</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+</dd><dt>group</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaAttributeGroup">_xmlSchemaAttributeGroup</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+<a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</dd><dt>groups</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+</dd><dt>grow</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>grows</dt><dd><a href="html/libxml-tree.html#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteChar">xmlBufferWriteChar</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+</dd><dt>guarantee</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+</dd><dt>guaranteed</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+</dd><dt>guess</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd></dl><h2>Letter h:</h2><dl><dt>had</dt><dd><a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+</dd><dt>hand</dt><dd><a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+</dd><dt>handled</dt><dd><a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</dd><dt>handlers</dt><dd><a href="html/libxml-xlink.html#xlinkSetDefaultHandler">xlinkSetDefaultHandler</a><br />
+<a href="html/libxml-encoding.html#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterDefaultOutputCallbacks">xmlRegisterDefaultOutputCallbacks</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+</dd><dt>handles</dt><dd><a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+<a href="html/libxml-tree.html#xmlUnsetProp">xmlUnsetProp</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+</dd><dt>handling</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
+<a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopBoolean">xmlXPathPopBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopExternal">xmlXPathPopExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNumber">xmlXPathPopNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopString">xmlXPathPopString</a><br />
+</dd><dt>hard</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>has-same-nodes</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
+</dd><dt>haystack</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+</dd><dt>head</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>header</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRedir">xmlNanoHTTPRedir</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseXMLDecl">xmlParseXMLDecl</a><br />
+</dd><dt>headers</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPEncoding">xmlNanoHTTPEncoding</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a><br />
+</dd><dt>heading</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+</dd><dt>held</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a><br />
+</dd><dt>helper</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a><br />
+</dd><dt>here</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+</dd><dt>heuristic</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>heuristic:</dt><dd><a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+</dd><dt>hex</dt><dd><a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+</dd><dt>hierarchy</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+</dd><dt>highly</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+</dd><dt>hold</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>holding</dt><dd><a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
+<a href="html/libxml-tree.html#_xmlID">_xmlID</a><br />
+<a href="html/libxml-tree.html#_xmlRef">_xmlRef</a><br />
+<a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
+<a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+<a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewProp">xmlNewProp</a><br />
+</dd><dt>holds</dt><dd><a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+</dd><dt>hooks</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_THREAD_ALLOC_ENABLED">LIBXML_THREAD_ALLOC_ENABLED</a><br />
+</dd><dt>host</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</dd><dt>hosting</dt><dd><a href="html/libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a><br />
+</dd><dt>hostname</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+</dd><dt>hour</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</dd><dt>how</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
+</dd><dt>href</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_HREF">XINCLUDE_HREF</a><br />
+</dd><dt>href==NULL</dt><dd><a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+</dd><dt>hrefs</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+</dd><dt>html</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>htmlAttrAllowed</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>htmlElemDescPtr</dt><dd><a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
+</dd><dt>htmlElementAllowedHere</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>htmlElementStatusHere</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>htmlEntityDescPtr</dt><dd><a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+</dd><dt>htmlNodePtr</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>htmlParserCtxtPtr</dt><dd><a href="html/libxml-HTMLparser.html#htmlNewParserCtxt">htmlNewParserCtxt</a><br />
+</dd><dt>htmlParserOption</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFd">htmlCtxtReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadMemory">htmlCtxtReadMemory</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtUseOptions">htmlCtxtUseOptions</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFd">htmlReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFile">htmlReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadIO">htmlReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadMemory">htmlReadMemory</a><br />
+</dd><dt>htmlStartClose</dt><dd><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+</dd><dt>htmlStartCloseIndex</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+</dd><dt>http:</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_NS">XINCLUDE_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
+<a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>human-readable</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk17.html b/libxml2-2.9.10/doc/APIchunk17.html
new file mode 100644
index 0000000..d2dd069
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk17.html
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index i-i for libxml2</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>API Alphabetic Index i-i for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter i:</h2><dl><dt>i-xxx</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>iconv</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_ICONV_ENABLED">LIBXML_ICONV_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a><br />
+</dd><dt>icu</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_ICU_ENABLED">LIBXML_ICU_ENABLED</a><br />
+</dd><dt>identify</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+</dd><dt>identity-constraint</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+</dd><dt>ignorable</dt><dd><a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+</dd><dt>ignorableWhitespace</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>ignored</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>ignoring</dt><dd><a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+</dd><dt>image</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>imbrication</dt><dd><a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+</dd><dt>img</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>immediately</dt><dd><a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>immutable</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+</dd><dt>implementation</dt><dd><a href="html/libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFunc">xmlXPathRegisterFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncNS">xmlXPathRegisterFuncNS</a><br />
+</dd><dt>implementation-defined</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+</dd><dt>implemented</dt><dd><a href="html/libxml-HTMLtree.html#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PI_NODE">HTML_PI_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_TEXT_NODE">HTML_TEXT_NODE</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+</dd><dt>implicitly</dt><dd><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+</dd><dt>implied</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>impossible</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>improves</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+</dd><dt>in-</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+</dd><dt>in-extenso</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a><br />
+</dd><dt>in-memory</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseDoc">docbParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreateMemoryParserCtxt">htmlCreateMemoryParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadMemory">htmlCtxtReadMemory</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadMemory">htmlReadMemory</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateMemoryParserCtxt">xmlCreateMemoryParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadMemory">xmlCtxtReadMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseDoc">xmlParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlParseMemory">xmlParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlReadDoc">xmlReadDoc</a><br />
+<a href="html/libxml-parser.html#xmlReadMemory">xmlReadMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForMemory">xmlReaderForMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewMemory">xmlReaderNewMemory</a><br />
+<a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
+<a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a><br />
+</dd><dt>incase</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCloseConnection">xmlNanoFTPCloseConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
+</dd><dt>incl</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+</dd><dt>include</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_NODE">XINCLUDE_NODE</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+<a href="html/libxml-list.html#xmlListMerge">xmlListMerge</a><br />
+</dd><dt>include:</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>included</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+</dd><dt>includes</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-xmlIO.html#xmlCleanupInputCallbacks">xmlCleanupInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlCleanupOutputCallbacks">xmlCleanupOutputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlPopInputCallbacks">xmlPopInputCallbacks</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a><br />
+</dd><dt>including</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a><br />
+<a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+<a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+<a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>inclusive</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>increase</dt><dd><a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+</dd><dt>increment</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+</dd><dt>incremental</dt><dd><a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+</dd><dt>indent</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndent">xmlTextWriterSetIndent</a><br />
+</dd><dt>indentation</dt><dd><a href="html/libxml-debugXML.html#xmlDebugDumpAttr">xmlDebugDumpAttr</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNode">xmlDebugDumpNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndent">xmlTextWriterSetIndent</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndentString">xmlTextWriterSetIndentString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+</dd><dt>indentation?</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndent">xmlTextWriterSetIndent</a><br />
+</dd><dt>indented</dt><dd><a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+</dd><dt>indenting</dt><dd><a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+</dd><dt>independently</dt><dd><a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+</dd><dt>index</dt><dd><a href="">index</a><br />
+<a href="html/libxml-parserInternals.html#inputPush">inputPush</a><br />
+<a href="html/libxml-parserInternals.html#namePush">namePush</a><br />
+<a href="html/libxml-parserInternals.html#nodePush">nodePush</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
+</dd><dt>indicate</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_ATTR_ALLOC_SIZE">LIBXML_ATTR_ALLOC_SIZE</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ATTR_FORMAT">LIBXML_ATTR_FORMAT</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+</dd><dt>indicated</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>indicates</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</dd><dt>indicating</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>indication</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
+</dd><dt>indicative</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-parser.html#xmlParserInputRead">xmlParserInputRead</a><br />
+</dd><dt>indicator</dt><dd><a href="html/libxml-DOCBparser.html#docbParseChunk">docbParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseChunk">htmlParseChunk</a><br />
+<a href="html/libxml-parser.html#xmlParseChunk">xmlParseChunk</a><br />
+</dd><dt>indirect</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+</dd><dt>indirectly</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>infinite</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>infinity</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>info</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+<a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+</dd><dt>information</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a><br />
+<a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttr">xmlDebugDumpAttr</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDTD">xmlDebugDumpDTD</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocument">xmlDebugDumpDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpEntities">xmlDebugDumpEntities</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNode">xmlDebugDumpNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetFilename">xmlSchemaValidateSetFilename</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>informations</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
+<a href="html/libxml-parserInternals.html#xmlErrMemory">xmlErrMemory</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileInfo">xmlParserPrintFileInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDir">xmlShellDir</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+</dd><dt>informative</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+</dd><dt>infos</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>inherited</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAttribute">xmlXPathNextAttribute</a><br />
+</dd><dt>inheriting</dt><dd><a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
+</dd><dt>inherits</dt><dd><a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+</dd><dt>initial</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaAttribute">_xmlSchemaAttribute</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataGetInitState">xmlAutomataGetInitState</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateSize">xmlBufferCreateSize</a><br />
+<a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetCreate">xmlXPtrLocationSetCreate</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a><br />
+</dd><dt>initialisation</dt><dd><a href="html/libxml-globals.html#xmlInitGlobals">xmlInitGlobals</a><br />
+</dd><dt>initialization</dt><dd><a href="html/libxml-catalog.html#xmlInitializeCatalog">xmlInitializeCatalog</a><br />
+<a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+</dd><dt>initialize</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNewParserCtxt">htmlNewParserCtxt</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+<a href="html/libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a><br />
+<a href="html/libxml-threads.html#xmlInitThreads">xmlInitThreads</a><br />
+<a href="html/libxml-globals.html#xmlInitializeGlobalState">xmlInitializeGlobalState</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPNewCtxt">xmlNanoFTPNewCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+<a href="html/libxml-parser.html#xmlNewParserCtxt">xmlNewParserCtxt</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSetList">xmlXPathNewNodeSetList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodeSet">xmlXPtrNewLocationSetNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+</dd><dt>initialized</dt><dd><a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
+</dd><dt>initializes</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapNewCtxt">xmlDOMWrapNewCtxt</a><br />
+</dd><dt>initiate</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</dd><dt>initiated</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</dd><dt>inline</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>inlined</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</dd><dt>inputs</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>insensitive</dt><dd><a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+</dd><dt>insert</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>inserted</dt><dd><a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>insertion</dt><dd><a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>inspect</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+</dd><dt>installed</dt><dd><a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
+<a href="html/libxml-hash.html#xmlHashSize">xmlHashSize</a><br />
+</dd><dt>instances</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+</dd><dt>instead</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a><br />
+<a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementContent">xmlCopyElementContent</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementContent">xmlFreeElementContent</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar">xmlIsBaseChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank">xmlIsBlank</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar">xmlIsChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombining">xmlIsCombining</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit">xmlIsDigit</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender">xmlIsExtender</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographic">xmlIsIdeographic</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar">xmlIsPubidChar</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+</dd><dt>instruction</dt><dd><a href="html/libxml-HTMLtree.html#HTML_PI_NODE">HTML_PI_NODE</a><br />
+<a href="html/libxml-SAX.html#processingInstruction">processingInstruction</a><br />
+<a href="html/libxml-parser.html#processingInstructionSAXFunc">processingInstructionSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlNewDocPI">xmlNewDocPI</a><br />
+<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ProcessingInstruction">xmlSAX2ProcessingInstruction</a><br />
+</dd><dt>insufficient</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+</dd><dt>intact</dt><dd><a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+</dd><dt>integer</dt><dd><a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcmp">xmlStrcmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncmp">xmlStrncmp</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>intended</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+</dd><dt>intensively</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>interact</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>interface</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_READER_ENABLED">LIBXML_READER_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseDocument">docbParseDocument</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDocument">htmlParseDocument</a><br />
+<a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+</dd><dt>interfaces</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_AUTOMATA_ENABLED">LIBXML_AUTOMATA_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+</dd><dt>intern</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+</dd><dt>internally</dt><dd><a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-valid.html#xmlRemoveID">xmlRemoveID</a><br />
+<a href="html/libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>interned</dt><dd><a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+</dd><dt>interning</dt><dd><a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+</dd><dt>interoperability</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+</dd><dt>interoperable</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>interprestation</dt><dd><a href="html/libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a><br />
+</dd><dt>interpreter</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>intersection</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+</dd><dt>introduced</dt><dd><a href="html/libxml-tree.html#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a><br />
+</dd><dt>ints</dt><dd><a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+</dd><dt>invalid</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>invited</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>isn</dt><dd><a href="html/libxml-encoding.html#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a><br />
+</dd><dt>issue</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+</dd><dt>issued</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+</dd><dt>issues</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+</dd><dt>item</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+</dd><dt>items</dt><dd><a href="html/libxml-xpathInternals.html#valuePush">valuePush</a><br />
+<a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
+<a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
+<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+</dd><dt>itself</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk18.html b/libxml2-2.9.10/doc/APIchunk18.html
new file mode 100644
index 0000000..8643ad7
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk18.html
@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index j-l for libxml2</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>API Alphabetic Index j-l for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter j:</h2><dl><dt>just</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+<a href="html/libxml-parserInternals.html#inputPop">inputPop</a><br />
+<a href="html/libxml-parserInternals.html#namePop">namePop</a><br />
+<a href="html/libxml-parserInternals.html#nodePop">nodePop</a><br />
+<a href="html/libxml-xpathInternals.html#valuePop">valuePop</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a><br />
+<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+<a href="html/libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a><br />
+<a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewParserContext">xmlXPathNewParserContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</dd></dl><h2>Letter k:</h2><dl><dt>keep</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+</dd><dt>keeps</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+</dd><dt>kept</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>keyword</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>kill</dt><dd><a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+</dd><dt>kind</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaAttributeGroup">_xmlSchemaAttributeGroup</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaNotation">_xmlSchemaNotation</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaWildcard">_xmlSchemaWildcard</a><br />
+</dd><dt>know</dt><dd><a href="html/libxml-xmlstring.html#BAD_CAST">BAD_CAST</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+</dd><dt>knowledge</dt><dd><a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+</dd><dt>known</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-xmlIO.html#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a><br />
+<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+</dd></dl><h2>Letter l:</h2><dl><dt>label</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>labeled</dt><dd><a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+</dd><dt>lack</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+</dd><dt>lang</dt><dd><a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+</dd><dt>langtag</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>language</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetLang">xmlNodeSetLang</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+</dd><dt>languages</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+</dd><dt>large</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+</dd><dt>largest</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+</dd><dt>later</dt><dd><a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+</dd><dt>latest</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a><br />
+</dd><dt>layer</dt><dd><a href="html/libxml-tree.html#xmlChildrenNode">xmlChildrenNode</a><br />
+<a href="html/libxml-xmlmemory.html#xmlInitMemory">xmlInitMemory</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPCleanup">xmlNanoHTTPCleanup</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a><br />
+<a href="html/libxml-tree.html#xmlRootNode">xmlRootNode</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+</dd><dt>leading</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>leak</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>least</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>led</dt><dd><a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
+</dd><dt>left</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>legacy</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>len</dt><dd><a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-xmlstring.html#xmlCharStrndup">xmlCharStrndup</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-tree.html#xmlNewDocTextLen">xmlNewDocTextLen</a><br />
+<a href="html/libxml-tree.html#xmlNewTextLen">xmlNewTextLen</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrndup">xmlStrndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strndup">xmlUTF8Strndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+</dd><dt>length-1</dt><dd><a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+</dd><dt>less</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>less-than</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+</dd><dt>level</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-xmlmemory.html#xmlCleanupMemory">xmlCleanupMemory</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttr">xmlDebugDumpAttr</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNode">xmlDebugDumpNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+</dd><dt>lexical</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
+<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
+<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
+<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
+<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
+</dd><dt>lib</dt><dd><a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+</dd><dt>libc</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+</dd><dt>libraries</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGInitTypes">xmlRelaxNGInitTypes</a><br />
+</dd><dt>library</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-xmlmemory.html#xmlCleanupMemory">xmlCleanupMemory</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-threads.html#xmlInitThreads">xmlInitThreads</a><br />
+<a href="html/libxml-globals.html#xmlInitializeGlobalState">xmlInitializeGlobalState</a><br />
+<a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGCleanupTypes">xmlRelaxNGCleanupTypes</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCleanupTypes">xmlSchemaCleanupTypes</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeValue">xmlSchemaFreeValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaInitTypes">xmlSchemaInitTypes</a><br />
+<a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
+</dd><dt>libs</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>libxml</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathError">xmlShellPrintXPathError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+</dd><dt>libxml1</dt><dd><a href="html/libxml-tree.html#xmlChildrenNode">xmlChildrenNode</a><br />
+<a href="html/libxml-tree.html#xmlRootNode">xmlRootNode</a><br />
+</dd><dt>libxml2</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+<a href="html/libxml-threads.html#xmlInitThreads">xmlInitThreads</a><br />
+<a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
+<a href="html/libxml-threads.html#xmlMutexLock">xmlMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlMutexUnlock">xmlMutexUnlock</a><br />
+<a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+<a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
+<a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
+</dd><dt>lifetime</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+</dd><dt>like</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR_CH">IS_CHAR_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_DIGIT_CH">IS_DIGIT_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_EXTENDER_CH">IS_EXTENDER_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_LETTER_CH">IS_LETTER_CH</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ATTR_FORMAT">LIBXML_ATTR_FORMAT</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DOTTED_VERSION">LIBXML_DOTTED_VERSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+<a href="html/libxml-catalog.html#xmlParseCatalogFile">xmlParseCatalogFile</a><br />
+<a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>likely</dt><dd><a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+</dd><dt>limit</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+</dd><dt>limitation</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+<a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+</dd><dt>limited</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+</dd><dt>limits</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>linear</dt><dd><a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+</dd><dt>lines</dt><dd><a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+</dd><dt>linked</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaAttributeLink">_xmlSchemaAttributeLink</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaFacetLink">_xmlSchemaFacetLink</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaTypeLink">_xmlSchemaTypeLink</a><br />
+</dd><dt>linking</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+</dd><dt>links</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</dd><dt>listing</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+<a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+</dd><dt>lists</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>literal</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePubidLiteral">xmlParsePubidLiteral</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>load</dt><dd><a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-debugXML.html#xmlShellLoad">xmlShellLoad</a><br />
+</dd><dt>loaded</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>loader</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</dd><dt>loaders</dt><dd><a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+</dd><dt>loading</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+<a href="html/libxml-debugXML.html#xmlShellLoad">xmlShellLoad</a><br />
+</dd><dt>loads</dt><dd><a href="html/libxml-debugXML.html#xmlShellLoad">xmlShellLoad</a><br />
+</dd><dt>loadsubset</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+</dd><dt>local-name</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathLocalNameFunction">xmlXPathLocalNameFunction</a><br />
+</dd><dt>localname</dt><dd><a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
+</dd><dt>location</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+<a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</dd><dt>locations</dt><dd><a href="html/libxml-xpointer.html#_xmlLocationSet">_xmlLocationSet</a><br />
+</dd><dt>locator</dt><dd><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a><br />
+</dd><dt>locators</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+</dd><dt>lock</dt><dd><a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
+<a href="html/libxml-threads.html#xmlMutexLock">xmlMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
+</dd><dt>logging</dt><dd><a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+</dd><dt>long</dt><dd><a href="html/libxml-parserInternals.html#IS_BASECHAR">IS_BASECHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_COMBINING">IS_COMBINING</a><br />
+<a href="html/libxml-parserInternals.html#IS_DIGIT">IS_DIGIT</a><br />
+<a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
+</dd><dt>longer</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>look-ahead</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>lookahead</dt><dd><a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-parser.html#xmlParserInputRead">xmlParserInputRead</a><br />
+</dd><dt>looked</dt><dd><a href="html/libxml-xpath.html#_xmlNodeSet">_xmlNodeSet</a><br />
+<a href="html/libxml-pattern.html#xmlPatternFromRoot">xmlPatternFromRoot</a><br />
+</dd><dt>looks</dt><dd><a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+</dd><dt>lookups</dt><dd><a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-catalog.html#xmlParseCatalogFile">xmlParseCatalogFile</a><br />
+</dd><dt>loop</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+</dd><dt>loops</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>lossless</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+</dd><dt>lower</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+</dd><dt>lowercase</dt><dd><a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk19.html b/libxml2-2.9.10/doc/APIchunk19.html
new file mode 100644
index 0000000..c50c345
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk19.html
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index m-m for libxml2</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>API Alphabetic Index m-m for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter m:</h2><dl><dt>machine</dt><dd><a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+</dd><dt>macro</dt><dd><a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br />
+<a href="html/libxml-nanoftp.html#SOCKET">SOCKET</a><br />
+<a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a><br />
+</dd><dt>made</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-parserInternals.html#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+</dd><dt>main</dt><dd><a href="html/libxml-threads.html#xmlIsMainThread">xmlIsMainThread</a><br />
+</dd><dt>maintained</dt><dd><a href="html/libxml-valid.html#xmlRemoveID">xmlRemoveID</a><br />
+<a href="html/libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+</dd><dt>major</dt><dd><a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+</dd><dt>make</dt><dd><a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+<a href="html/libxml-tree.html#xmlNewNode">xmlNewNode</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveClose">xmlSaveClose</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveFlush">xmlSaveFlush</a><br />
+</dd><dt>makes</dt><dd><a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+</dd><dt>malloc</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+</dd><dt>mallocAtomicFunc</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+</dd><dt>manage</dt><dd><a href="html/libxml-tree.html#xmlBufferWriteChar">xmlBufferWriteChar</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+</dd><dt>manages</dt><dd><a href="html/libxml-tree.html#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a><br />
+</dd><dt>mandate</dt><dd><a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+</dd><dt>manipulated</dt><dd><a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+</dd><dt>manipulating</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+</dd><dt>manipulation</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a><br />
+</dd><dt>many</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>map</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+</dd><dt>maps</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a><br />
+</dd><dt>mark</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderQuoteChar">xmlTextReaderQuoteChar</a><br />
+</dd><dt>marked</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a><br />
+<a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+</dd><dt>marker</dt><dd><a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+</dd><dt>marking</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+</dd><dt>marks</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+</dd><dt>markup</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
+</dd><dt>markupdecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>masked</dt><dd><a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>matched</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+</dd><dt>matches</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_ARITY">CHECK_ARITY</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileMatch">xmlFileMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPMatch">xmlIOFTPMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPMatch">xmlIOHTTPMatch</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>matching</dt><dd><a href="html/libxml-xmlIO.html#xmlFileMatch">xmlFileMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPMatch">xmlIOFTPMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPOpen">xmlIOFTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPMatch">xmlIOHTTPMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpen">xmlIOHTTPOpen</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>max</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-tree.html#xmlGetCompressMode">xmlGetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncmp">xmlStrncmp</a><br />
+</dd><dt>maxLength</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+</dd><dt>maximal</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
+</dd><dt>maximum</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>maybe</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+</dd><dt>mean</dt><dd><a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
+</dd><dt>means</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>mechanism</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncLookup">xmlXPathRegisterFuncLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableLookup">xmlXPathRegisterVariableLookup</a><br />
+</dd><dt>mechanisms</dt><dd><a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+</dd><dt>meet</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>member</dt><dd><a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttribute">xmlTextWriterWriteVFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttributeNS">xmlTextWriterWriteVFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatCDATA">xmlTextWriterWriteVFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatComment">xmlTextWriterWriteVFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDAttlist">xmlTextWriterWriteVFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDElement">xmlTextWriterWriteVFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElement">xmlTextWriterWriteVFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElementNS">xmlTextWriterWriteVFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatPI">xmlTextWriterWriteVFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatString">xmlTextWriterWriteVFormatString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>member-types</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+</dd><dt>memo</dt><dd><a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+</dd><dt>memorylist</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a><br />
+</dd><dt>merged</dt><dd><a href="html/libxml-tree.html#xmlTextMerge">xmlTextMerge</a><br />
+</dd><dt>merging</dt><dd><a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddChildList">xmlAddChildList</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+</dd><dt>messages</dt><dd><a href="html/libxml-parser.html#errorSAXFunc">errorSAXFunc</a><br />
+<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-parser.html#warningSAXFunc">warningSAXFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserError">xmlParserError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+</dd><dt>method</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a><br />
+<a href="html/libxml-tree.html#_xmlBuffer">_xmlBuffer</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>might</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+</dd><dt>migrate</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+</dd><dt>min</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>minLength</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+</dd><dt>minimal</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>minimum</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-tree.html#xmlBufferGrow">xmlBufferGrow</a><br />
+<a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
+</dd><dt>minus</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>minute</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</dd><dt>misc</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>misleading</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>missing</dt><dd><a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+</dd><dt>mixed</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>mixed-content</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</dd><dt>mmap</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+</dd><dt>mod</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+</dd><dt>mode</dt><dd><a href="html/libxml-tree.html#_xmlBuffer">_xmlBuffer</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlGetCompressMode">xmlGetCompressMode</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+</dd><dt>model</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-valid.html#xmlValidBuildContentModel">xmlValidBuildContentModel</a><br />
+</dd><dt>modified</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+</dd><dt>modifies</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+</dd><dt>modify</dt><dd><a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+</dd><dt>module</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+</dd><dt>modules</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+</dd><dt>moment</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>month</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</dd><dt>more</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNext">xmlTextReaderNext</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>moreover</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+</dd><dt>most</dt><dd><a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+</dd><dt>move</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+</dd><dt>moved</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a><br />
+</dd><dt>much</dt><dd><a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>multi-threaded</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+</dd><dt>multi-threading</dt><dd><a href="html/libxml-globals.html#xmlCleanupGlobals">xmlCleanupGlobals</a><br />
+<a href="html/libxml-globals.html#xmlInitGlobals">xmlInitGlobals</a><br />
+</dd><dt>multiple</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
+</dd><dt>multiply</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+</dd><dt>multithreaded</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-parser.html#xmlInitParser">xmlInitParser</a><br />
+</dd><dt>mutex</dt><dd><a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
+<a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+<a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
+<a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
+<a href="html/libxml-threads.html#xmlMutexLock">xmlMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlMutexUnlock">xmlMutexUnlock</a><br />
+<a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
+</dd><dt>myDoc</dt><dd><a href="html/libxml-DOCBparser.html#docbFreeParserCtxt">docbFreeParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlFreeParserCtxt">htmlFreeParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a><br />
+</dd><dt>myproxy</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</dd><dt>myproxy:3128</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk2.html b/libxml2-2.9.10/doc/APIchunk2.html
new file mode 100644
index 0000000..d5d363b
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk2.html
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index D-E for libxml2</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>API Alphabetic Index D-E for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter D:</h2><dl><dt>DEBUG_MEMORY</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+</dd><dt>DEBUG_MEMORY_FREED</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+</dd><dt>DEBUG_MEMORY_LOCATION</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+</dd><dt>DELE</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+</dd><dt>DELEGATE</dt><dd><a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+</dd><dt>DEMO</dt><dd><a href="html/libxml-SAX.html#getPublicId">getPublicId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetPublicId">xmlSAX2GetPublicId</a><br />
+</dd><dt>DEPRECATED</dt><dd><a href="html/libxml-SAX.html#checkNamespace">checkNamespace</a><br />
+<a href="html/libxml-SAX.html#getNamespace">getNamespace</a><br />
+<a href="html/libxml-SAX.html#globalNamespace">globalNamespace</a><br />
+<a href="html/libxml-SAX.html#namespaceDecl">namespaceDecl</a><br />
+<a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-SAX.html#setNamespace">setNamespace</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetPublic">xmlCatalogGetPublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetSystem">xmlCatalogGetSystem</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar">xmlIsBaseChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank">xmlIsBlank</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar">xmlIsChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombining">xmlIsCombining</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit">xmlIsDigit</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender">xmlIsExtender</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographic">xmlIsIdeographic</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar">xmlIsPubidChar</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+</dd><dt>DIGIT</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>DOCTYPE</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+</dd><dt>DOM-wrapper</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapFreeCtxt">xmlDOMWrapFreeCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapNewCtxt">xmlDOMWrapNewCtxt</a><br />
+</dd><dt>DTDs</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>Data</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+</dd><dt>Datatype</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+</dd><dt>Datatypes</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+</dd><dt>Deallocate</dt><dd><a href="html/libxml-valid.html#xmlFreeAttributeTable">xmlFreeAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementTable">xmlFreeElementTable</a><br />
+<a href="html/libxml-entities.html#xmlFreeEntitiesTable">xmlFreeEntitiesTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeIDTable">xmlFreeIDTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeNotationTable">xmlFreeNotationTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeRefTable">xmlFreeRefTable</a><br />
+<a href="html/libxml-xmlreader.html#xmlFreeTextReader">xmlFreeTextReader</a><br />
+<a href="html/libxml-xmlwriter.html#xmlFreeTextWriter">xmlFreeTextWriter</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFree">xmlRelaxNGFree</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFree">xmlSchemaFree</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFreeType">xmlSchemaFreeType</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFree">xmlSchematronFree</a><br />
+</dd><dt>Deallocates</dt><dd><a href="html/libxml-schemasInternals.html#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</a><br />
+</dd><dt>Debugging</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
+</dd><dt>Declaration</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+</dd><dt>Declared</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationUse">xmlValidateNotationUse</a><br />
+</dd><dt>Default</dt><dd><a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+</dd><dt>DefaultDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>Deletes</dt><dd><a href="html/libxml-list.html#xmlListDelete">xmlListDelete</a><br />
+</dd><dt>Depth</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+</dd><dt>Dereference</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpFree">xmlExpFree</a><br />
+</dd><dt>DeregisterNodeFunc</dt><dd><a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
+</dd><dt>Deseret</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsDeseret">xmlUCSIsDeseret</a><br />
+</dd><dt>Determine</dt><dd><a href="html/libxml-HTMLtree.html#htmlIsBooleanAttr">htmlIsBooleanAttr</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstEncoding">xmlTextReaderConstEncoding</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlVersion">xmlTextReaderConstXmlVersion</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
+</dd><dt>Devanagari</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsDevanagari">xmlUCSIsDevanagari</a><br />
+</dd><dt>Different</dt><dd><a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>Digit</dt><dd><a href="html/libxml-parserInternals.html#IS_DIGIT">IS_DIGIT</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseName">xmlXPathParseName</a><br />
+</dd><dt>Digits</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+</dd><dt>Digits?</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+</dd><dt>Dingbats</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsDingbats">xmlUCSIsDingbats</a><br />
+</dd><dt>Display</dt><dd><a href="html/libxml-parser.html#errorSAXFunc">errorSAXFunc</a><br />
+<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-parser.html#warningSAXFunc">warningSAXFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserError">xmlParserError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+</dd><dt>Displays</dt><dd><a href="html/libxml-xmlerror.html#xmlParserPrintFileContext">xmlParserPrintFileContext</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileInfo">xmlParserPrintFileInfo</a><br />
+</dd><dt>DocBook</dt><dd><a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-SAX.html#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDocbDefaultSAXHandler">xmlSAX2InitDocbDefaultSAXHandler</a><br />
+</dd><dt>Docbook</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+</dd><dt>Document</dt><dd><a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeNewContext">xmlXIncludeNewContext</a><br />
+</dd><dt>Does</dt><dd><a href="html/libxml-SAX.html#hasExternalSubset">hasExternalSubset</a><br />
+<a href="html/libxml-parser.html#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a><br />
+<a href="html/libxml-SAX.html#hasInternalSubset">hasInternalSubset</a><br />
+<a href="html/libxml-parser.html#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a><br />
+<a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2HasExternalSubset">xmlSAX2HasExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2HasInternalSubset">xmlSAX2HasInternalSubset</a><br />
+<a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>Douglas</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>Draft</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>DtD</dt><dd><a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+</dd><dt>DtDs</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+</dd><dt>Dtd</dt><dd><a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>Dumps</dt><dd><a href="html/libxml-tree.html#xmlBufferDump">xmlBufferDump</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttr">xmlDebugDumpAttr</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDTD">xmlDebugDumpDTD</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocument">xmlDebugDumpDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpEntities">xmlDebugDumpEntities</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNode">xmlDebugDumpNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
+</dd><dt>Duplicate</dt><dd><a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-list.html#xmlListDup">xmlListDup</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+</dd></dl><h2>Letter E:</h2><dl><dt>ELEMENT</dt><dd><a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+</dd><dt>EMPTY</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+</dd><dt>ENTITIES</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>ENTITY</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>ENTITY_REF</dt><dd><a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+</dd><dt>ENTITY_REFs</dt><dd><a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+</dd><dt>ETag</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEndTag">xmlParseEndTag</a><br />
+</dd><dt>EXSLT</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</dd><dt>Element</dt><dd><a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
+<a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>ElementTable</dt><dd><a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
+</dd><dt>Empties</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathEmptyNodeSet">xmlXPathEmptyNodeSet</a><br />
+</dd><dt>EmptyElemTag</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>EmptyElement</dt><dd><a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>EncName</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEncName">xmlParseEncName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEncodingDecl">xmlParseEncodingDecl</a><br />
+</dd><dt>Encapsulating</dt><dd><a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+</dd><dt>EnclosedAlphanumerics</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsEnclosedAlphanumerics">xmlUCSIsEnclosedAlphanumerics</a><br />
+</dd><dt>EnclosedCJKLettersandMonths</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsEnclosedCJKLettersandMonths">xmlUCSIsEnclosedCJKLettersandMonths</a><br />
+</dd><dt>Encoding</dt><dd><a href="html/libxml-HTMLtree.html#htmlGetMetaEncoding">htmlGetMetaEncoding</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+</dd><dt>EncodingDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEncodingDecl">xmlParseEncodingDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</a><br />
+</dd><dt>EncodingDecl?</dt><dd><a href="html/libxml-parserInternals.html#xmlParseXMLDecl">xmlParseXMLDecl</a><br />
+</dd><dt>End</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndAttribute">xmlTextWriterEndAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndComment">xmlTextWriterEndComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndElement">xmlTextWriterEndElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndPI">xmlTextWriterEndPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
+</dd><dt>End-of-Line</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+</dd><dt>Ensures</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+</dd><dt>Entities</dt><dd><a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+</dd><dt>EntitiesTable</dt><dd><a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+</dd><dt>Entity</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewEntityInputStream">xmlNewEntityInputStream</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+</dd><dt>EntityDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>EntityDef</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+</dd><dt>EntityRef</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+</dd><dt>EntityReference</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a><br />
+</dd><dt>EntityValue</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+</dd><dt>Enumerated</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+</dd><dt>EnumeratedType</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+</dd><dt>Enumeration</dt><dd><a href="html/libxml-tree.html#_xmlEnumeration">_xmlEnumeration</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+</dd><dt>Equal</dt><dd><a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
+</dd><dt>Escaping</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>Ethiopic</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsEthiopic">xmlUCSIsEthiopic</a><br />
+</dd><dt>Evaluate</dt><dd><a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+</dd><dt>Evaluates</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
+</dd><dt>Everything</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+</dd><dt>Examines</dt><dd><a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+</dd><dt>Exclusive</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>Existing</dt><dd><a href="html/libxml-encoding.html#xmlAddEncodingAlias">xmlAddEncodingAlias</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+</dd><dt>Exp</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+</dd><dt>Experimental</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>Expr</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+</dd><dt>Expresses</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>Expression</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+</dd><dt>Extender</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseName">xmlXPathParseName</a><br />
+</dd><dt>External</dt><dd><a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolve">xmlACatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolve">xmlCatalogResolve</a><br />
+<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parser.html#xmlParseDTD">xmlParseDTD</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a><br />
+</dd><dt>ExternalID</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+</dd><dt>Extract</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk20.html b/libxml2-2.9.10/doc/APIchunk20.html
new file mode 100644
index 0000000..f812bbc
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk20.html
@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index n-n for libxml2</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>API Alphabetic Index n-n for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter n:</h2><dl><dt>named</dt><dd><a href="html/libxml-encoding.html#xmlAddEncodingAlias">xmlAddEncodingAlias</a><br />
+</dd><dt>names</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>namespace-binding</dt><dd><a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+</dd><dt>namespace-uri</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNamespaceURIFunction">xmlXPathNamespaceURIFunction</a><br />
+</dd><dt>namespace:</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_NS">XINCLUDE_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>namespaces</dt><dd><a href="html/libxml-xpath.html#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaWildcard">_xmlSchemaWildcard</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlFreeNsList">xmlFreeNsList</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>naming</dt><dd><a href="html/libxml-tree.html#xmlChildrenNode">xmlChildrenNode</a><br />
+<a href="html/libxml-tree.html#xmlRootNode">xmlRootNode</a><br />
+</dd><dt>nbBytes</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+</dd><dt>nbval</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+</dd><dt>ncname</dt><dd><a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+</dd><dt>ndata</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+</dd><dt>nearest</dt><dd><a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+</dd><dt>nearly</dt><dd><a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>necessary</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
+</dd><dt>needed</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopBoolean">xmlXPathPopBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopExternal">xmlXPathPopExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNumber">xmlXPathPopNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopString">xmlXPathPopString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>needing</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>needle</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
+</dd><dt>needs</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+</dd><dt>negated</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaWildcard">_xmlSchemaWildcard</a><br />
+</dd><dt>negative</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>neither</dt><dd><a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+</dd><dt>nested</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>network</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFile">htmlReadFile</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlReadFile">xmlReadFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFile">xmlReaderForFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFile">xmlReaderNewFile</a><br />
+</dd><dt>nice</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>nillable</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+</dd><dt>nod</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+</dd><dt>node-</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>node-set?</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathLocalNameFunction">xmlXPathLocalNameFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNamespaceURIFunction">xmlXPathNamespaceURIFunction</a><br />
+</dd><dt>nodeInfos</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>nodelist</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+</dd><dt>nodes1</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+</dd><dt>nodes2</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+</dd><dt>nodeset</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+</dd><dt>nodesets</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+</dd><dt>non</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderBaseUri">xmlTextReaderBaseUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocalName">xmlTextReaderLocalName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderName">xmlTextReaderName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNamespaceUri">xmlTextReaderNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPrefix">xmlTextReaderPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+</dd><dt>non-CDATA</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>non-NULL</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+</dd><dt>non-UTF-8</dt><dd><a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+</dd><dt>non-blank</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+</dd><dt>non-determinist</dt><dd><a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+</dd><dt>non-empty</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+</dd><dt>non-final</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+</dd><dt>non-negative</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+</dd><dt>non-normative</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+</dd><dt>non-null</dt><dd><a href="html/libxml-debugXML.html#xmlShellPrintNode">xmlShellPrintNode</a><br />
+</dd><dt>non-recursive</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>non-stateless</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</dd><dt>non-validating</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+</dd><dt>non-zero</dt><dd><a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+</dd><dt>none</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-SAX.html#getNamespace">getNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-tree.html#xmlGetLastChild">xmlGetLastChild</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsString">xmlSchemaValueGetAsString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+</dd><dt>nor</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+</dd><dt>normal</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+</dd><dt>normalization</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+</dd><dt>normalization:</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+</dd><dt>normalizations</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>normalize</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>normalize-space</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+</dd><dt>normalized</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+</dd><dt>normalizing</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+</dd><dt>normally</dt><dd><a href="html/libxml-tree.html#_xmlNs">_xmlNs</a><br />
+<a href="">c</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>notations</dt><dd><a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>note</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+</dd><dt>notice</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>now</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
+<a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+</dd><dt>ns-binding</dt><dd><a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+</dd><dt>ns-decls</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+</dd><dt>ns-references</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>nsDef</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>null</dt><dd><a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+</dd><dt>null-terminated</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+</dd><dt>number:</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_VERSION">LIBXML_VERSION</a><br />
+</dd><dt>number?</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>numbers</dt><dd><a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Size">xmlUTF8Size</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+</dd><dt>numeric</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk21.html b/libxml2-2.9.10/doc/APIchunk21.html
new file mode 100644
index 0000000..7f8efe4
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk21.html
@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index o-o for libxml2</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>API Alphabetic Index o-o for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter o:</h2><dl><dt>object?</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNumberFunction">xmlXPathNumberFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>objects</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEqualValues">xmlXPathEqualValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a><br />
+</dd><dt>objects:</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+</dd><dt>obligated</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+</dd><dt>obsolete</dt><dd><a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+</dd><dt>obsolete:</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a><br />
+</dd><dt>occupied</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+</dd><dt>occur</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>occurred</dt><dd><a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
+<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
+<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
+<a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
+<a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br />
+<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
+<a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
+<a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+</dd><dt>occurrence</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
+</dd><dt>occurrences</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>occurs</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
+</dd><dt>octets</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+</dd><dt>of:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+</dd><dt>off</dt><dd><a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>okay</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>old</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-SAX.html#globalNamespace">globalNamespace</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+<a href="html/libxml-list.html#xmlListCopy">xmlListCopy</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertNumber">xmlXPathConvertNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertString">xmlXPathConvertString</a><br />
+</dd><dt>oldNs</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>older</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>omitted</dt><dd><a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLocalNameFunction">xmlXPathLocalNameFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNamespaceURIFunction">xmlXPathNamespaceURIFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+</dd><dt>once</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-parser.html#xmlInitParser">xmlInitParser</a><br />
+<a href="html/libxml-catalog.html#xmlInitializeCatalog">xmlInitializeCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePI">xmlParsePI</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+</dd><dt>ones</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogConvert">xmlCatalogConvert</a><br />
+<a href="html/libxml-catalog.html#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a><br />
+</dd><dt>onto</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>opaque</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+</dd><dt>open</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadFd">htmlCtxtReadFd</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDump">htmlDocDump</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFd">htmlReadFd</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a><br />
+<a href="html/libxml-tree.html#xmlDocDump">xmlDocDump</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPOpen">xmlIOFTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpen">xmlIOHTTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnect">xmlNanoFTPConnect</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a><br />
+<a href="html/libxml-parser.html#xmlReadFd">xmlReadFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
+</dd><dt>opening</dt><dd><a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+</dd><dt>operands</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+</dd><dt>operating</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+</dd><dt>operation</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertNumber">xmlXPathConvertNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertString">xmlXPathConvertString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEqualValues">xmlXPathEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+</dd><dt>operations</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>operator</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+</dd><dt>operators</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+</dd><dt>opposite</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+</dd><dt>optimized</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+</dd><dt>option</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetOptions">xmlSchemaValidCtxtGetOptions</a><br />
+</dd><dt>options</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtUseOptions">htmlCtxtUseOptions</a><br />
+<a href="html/libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToBuffer">xmlSaveToBuffer</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetOptions">xmlSchemaValidCtxtGetOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>ordered</dt><dd><a href="html/libxml-list.html#xmlListAppend">xmlListAppend</a><br />
+<a href="html/libxml-list.html#xmlListInsert">xmlListInsert</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+</dd><dt>ordering</dt><dd><a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
+</dd><dt>org</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_NS">XINCLUDE_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>oriented</dt><dd><a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>origin</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>original</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlCopyError">xmlCopyError</a><br />
+<a href="html/libxml-encoding.html#xmlGetEncodingAlias">xmlGetEncodingAlias</a><br />
+<a href="html/libxml-list.html#xmlListMerge">xmlListMerge</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+<a href="html/libxml-debugXML.html#xmlShellSave">xmlShellSave</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObjectCopy">xmlXPathObjectCopy</a><br />
+</dd><dt>other</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+</dd><dt>our</dt><dd><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+</dd><dt>out</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
+<a href="html/libxml-parser.html#xmlParseEntity">xmlParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+</dd><dt>out-of</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+</dd><dt>output?</dt><dd><a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterFilename">xmlNewTextWriterFilename</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+</dd><dt>outside</dt><dd><a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>over</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+</dd><dt>overflow</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+</dd><dt>override</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</dd><dt>overriding</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+</dd><dt>overwrite</dt><dd><a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+</dd><dt>overwritten</dt><dd><a href="html/libxml-encoding.html#xmlAddEncodingAlias">xmlAddEncodingAlias</a><br />
+</dd><dt>own</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlCleanupMemory">xmlCleanupMemory</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</dd><dt>owned</dt><dd><a href="html/libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a><br />
+<a href="html/libxml-dict.html#xmlDictOwns">xmlDictOwns</a><br />
+</dd><dt>owner</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>ownership</dt><dd><a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+</dd><dt>owning</dt><dd><a href="html/libxml-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlFreeDocElementContent">xmlFreeDocElementContent</a><br />
+<a href="html/libxml-tree.html#xmlNewDocFragment">xmlNewDocFragment</a><br />
+</dd><dt>owns</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk22.html b/libxml2-2.9.10/doc/APIchunk22.html
new file mode 100644
index 0000000..9f69008
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk22.html
@@ -0,0 +1,595 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index p-p for libxml2</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>API Alphabetic Index p-p for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter p:</h2><dl><dt>pairs</dt><dd><a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+</dd><dt>param</dt><dd><a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+</dd><dt>parameter-entity</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>parameters</dt><dd><a href="html/libxml-xmlversion.html#ATTRIBUTE_UNUSED">ATTRIBUTE_UNUSED</a><br />
+<a href="html/libxml-parser.html#errorSAXFunc">errorSAXFunc</a><br />
+<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-parser.html#warningSAXFunc">warningSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserError">xmlParserError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatCDATA">xmlTextWriterWriteFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatComment">xmlTextWriterWriteFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDAttlist">xmlTextWriterWriteFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDElement">xmlTextWriterWriteFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElement">xmlTextWriterWriteFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElementNS">xmlTextWriterWriteFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatPI">xmlTextWriterWriteFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatRaw">xmlTextWriterWriteFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatString">xmlTextWriterWriteFormatString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalFunc">xmlXPathEvalFunc</a><br />
+</dd><dt>parent-</dt><dd><a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+</dd><dt>parentheses</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+</dd><dt>parenthesis</dt><dd><a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+<a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
+</dd><dt>parenthesized</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+</dd><dt>parents</dt><dd><a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+</dd><dt>partial</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+</dd><dt>particular</dt><dd><a href="html/libxml-xpath.html#_xmlNodeSet">_xmlNodeSet</a><br />
+</dd><dt>pass</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+</dd><dt>passed</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_ARITY">CHECK_ARITY</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalFunc">xmlXPathEvalFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+</dd><dt>passive</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+</dd><dt>password</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+</dd><dt>past</dt><dd><a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>paste</dt><dd><a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>path</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+<a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-tree.html#xmlGetNodePath">xmlGetNodePath</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+<a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserGetDirectory">xmlParserGetDirectory</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+</dd><dt>pathological</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+</dd><dt>pattern</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a><br />
+<a href="html/libxml-pattern.html#xmlPatternFromRoot">xmlPatternFromRoot</a><br />
+<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+</dd><dt>patterns</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
+</dd><dt>pcdata</dt><dd><a href="html/libxml-SAX.html#cdataBlock">cdataBlock</a><br />
+<a href="html/libxml-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2CDataBlock">xmlSAX2CDataBlock</a><br />
+</dd><dt>pedantic</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a><br />
+</dd><dt>per</dt><dd><a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>per-thread</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_THREAD_ALLOC_ENABLED">LIBXML_THREAD_ALLOC_ENABLED</a><br />
+</dd><dt>performance</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+</dd><dt>performed</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>permanently</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>pertain</dt><dd><a href="html/libxml-tree.html#xmlNewDocTextLen">xmlNewDocTextLen</a><br />
+</dd><dt>pertains</dt><dd><a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+</dd><dt>phase</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+</dd><dt>pic1</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>piece</dt><dd><a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+</dd><dt>pieces</dt><dd><a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+</dd><dt>place</dt><dd><a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-xmlerror.html#xmlCopyError">xmlCopyError</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+</dd><dt>places</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
+</dd><dt>platforms</dt><dd><a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+</dd><dt>plug</dt><dd><a href="html/libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a><br />
+</dd><dt>plugin</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>plugins</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>plus</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+</dd><dt>pnetlib-doc</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>pointed</dt><dd><a href="html/libxml-parserInternals.html#xmlPopInput">xmlPopInput</a><br />
+</dd><dt>pointers</dt><dd><a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>points</dt><dd><a href="html/libxml-chvalid.html#_xmlChRangeGroup">_xmlChRangeGroup</a><br />
+</dd><dt>pop</dt><dd><a href="html/libxml-parserInternals.html#xmlPopInput">xmlPopInput</a><br />
+</dd><dt>popped</dt><dd><a href="html/libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a><br />
+</dd><dt>pops</dt><dd><a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+</dd><dt>port</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</dd><dt>portability</dt><dd><a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br />
+<a href="html/libxml-nanoftp.html#SOCKET">SOCKET</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+</dd><dt>pos</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+</dd><dt>position:</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>positioned</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+</dd><dt>positions</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+</dd><dt>possible</dt><dd><a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>possibly</dt><dd><a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>posteriori</dt><dd><a href="html/libxml-tree.html#xmlSetNs">xmlSetNs</a><br />
+</dd><dt>potential</dt><dd><a href="html/libxml-debugXML.html#xmlDebugCheckDocument">xmlDebugCheckDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+</dd><dt>potentially</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+</dd><dt>practice</dt><dd><a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
+</dd><dt>pre-interned</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>preallocated</dt><dd><a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+</dd><dt>precede</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+</dd><dt>preceded</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>precedes</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
+</dd><dt>preceding</dt><dd><a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+</dd><dt>preceding-sibling</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+</dd><dt>precisely</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>precompiled</dt><dd><a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-pattern.html#xmlPatternFromRoot">xmlPatternFromRoot</a><br />
+<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
+</dd><dt>precomputed</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+</dd><dt>predefined</dt><dd><a href="html/libxml-tree.html#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a><br />
+<a href="html/libxml-entities.html#xmlCleanupPredefinedEntities">xmlCleanupPredefinedEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetPredefinedEntity">xmlGetPredefinedEntity</a><br />
+<a href="html/libxml-entities.html#xmlInitializePredefinedEntities">xmlInitializePredefinedEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
+</dd><dt>predicate</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+</dd><dt>preferably</dt><dd><a href="html/libxml-catalog.html#xmlInitializeCatalog">xmlInitializeCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+</dd><dt>preference</dt><dd><a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a><br />
+</dd><dt>prefixes</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+</dd><dt>preparing</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+</dd><dt>preparsed</dt><dd><a href="html/libxml-xmlreader.html#xmlReaderNewWalker">xmlReaderNewWalker</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderWalker">xmlReaderWalker</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+</dd><dt>prepend</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>present</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
+<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+</dd><dt>preserve</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+</dd><dt>preserved</dt><dd><a href="html/libxml-HTMLtree.html#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+</dd><dt>preserving</dt><dd><a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a><br />
+</dd><dt>prev</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>prevent</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>previous</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+<a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
+<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+<a href="html/libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>primitive</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertFunc">xmlXPathConvertFunc</a><br />
+</dd><dt>print</dt><dd><a href="html/libxml-debugXML.html#xmlShellPrintNode">xmlShellPrintNode</a><br />
+<a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+<a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
+</dd><dt>printed</dt><dd><a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlElemDump">xmlElemDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+</dd><dt>prior</dt><dd><a href="html/libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a><br />
+</dd><dt>private</dt><dd><a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
+</dd><dt>privateuse</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>problem</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+<a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushCData">xmlValidatePushCData</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+</dd><dt>problems</dt><dd><a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugCheckDocument">xmlDebugCheckDocument</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+</dd><dt>procedure</dt><dd><a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
+</dd><dt>process</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+</dd><dt>processed</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-SAX.html#startDocument">startDocument</a><br />
+<a href="html/libxml-parser.html#startDocumentSAXFunc">startDocumentSAXFunc</a><br />
+<a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+<a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartDocument">xmlSAX2StartDocument</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+</dd><dt>processing-instruction</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIsNodeType">xmlXPathIsNodeType</a><br />
+</dd><dt>processing-instruction-node</dt><dd><a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>processing-instruction-nodes</dt><dd><a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd><dt>processor</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+</dd><dt>produce</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+</dd><dt>produced</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+</dd><dt>producing</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+</dd><dt>production:</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>productions</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>program</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</dd><dt>programs</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-parser.html#xmlInitParser">xmlInitParser</a><br />
+</dd><dt>progressed</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>progresses</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+</dd><dt>progressive</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+</dd><dt>prohibited</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a><br />
+</dd><dt>prolog</dt><dd><a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+</dd><dt>prompt</dt><dd><a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
+</dd><dt>proper</dt><dd><a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+</dd><dt>properly</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>properties</dt><dd><a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+</dd><dt>property</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlFreePropList">xmlFreePropList</a><br />
+<a href="html/libxml-tree.html#xmlNewDocProp">xmlNewDocProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewProp">xmlNewProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
+</dd><dt>protocol</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPCleanup">xmlNanoHTTPCleanup</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</dd><dt>prototype</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a><br />
+<a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+</dd><dt>provenance</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+</dd><dt>provide</dt><dd><a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br />
+<a href="html/libxml-nanoftp.html#SOCKET">SOCKET</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetFilename">xmlSchemaValidateSetFilename</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
+</dd><dt>provides</dt><dd><a href="html/libxml-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+</dd><dt>providing</dt><dd><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+</dd><dt>provoked</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+</dd><dt>proximity</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>proxy</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</dd><dt>prune</dt><dd><a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+</dd><dt>pthread_t</dt><dd><a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+</dd><dt>pthreads</dt><dd><a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+</dd><dt>publicID</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>pull</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+</dd><dt>pure</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+</dd><dt>purposes</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+</dd><dt>push</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCtxtResetPush">xmlCtxtResetPush</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvalExpr">xmlXPathEvalExpr</a><br />
+</dd><dt>pushed</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a><br />
+</dd><dt>pushing</dt><dd><a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+</dd><dt>put</dt><dd><a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+</dd><dt>putative</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+</dd><dt>pwd</dt><dd><a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk23.html b/libxml2-2.9.10/doc/APIchunk23.html
new file mode 100644
index 0000000..a72cbfe
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk23.html
@@ -0,0 +1,670 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index q-r for libxml2</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>API Alphabetic Index q-r for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter q:</h2><dl><dt>qualified</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstName">xmlTextReaderConstName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttribute">xmlTextReaderMoveToAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderName">xmlTextReaderName</a><br />
+<a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+</dd><dt>query</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+</dd><dt>quot</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+</dd><dt>quotation</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderQuoteChar">xmlTextReaderQuoteChar</a><br />
+</dd><dt>quote</dt><dd><a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetQuoteChar">xmlTextWriterSetQuoteChar</a><br />
+</dd><dt>quoted</dt><dd><a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+</dd><dt>quotes</dt><dd><a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+</dd><dt>quoting</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterSetQuoteChar">xmlTextWriterSetQuoteChar</a><br />
+</dd></dl><h2>Letter r:</h2><dl><dt>raise</dt><dd><a href="html/libxml-xpathInternals.html#XP_ERROR">XP_ERROR</a><br />
+<a href="html/libxml-xpathInternals.html#XP_ERROR0">XP_ERROR0</a><br />
+</dd><dt>raised</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCheckError">xmlXPathCheckError</a><br />
+</dd><dt>range</dt><dd><a href="html/libxml-parserInternals.html#IS_BYTE_CHAR">IS_BYTE_CHAR</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodes">xmlXPtrNewRangeNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a><br />
+</dd><dt>range-to</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</dd><dt>ranges</dt><dd><a href="html/libxml-chvalid.html#_xmlChRangeGroup">_xmlChRangeGroup</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+</dd><dt>rangesets</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+</dd><dt>rather</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a><br />
+</dd><dt>ratio</dt><dd><a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+</dd><dt>ration</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+</dd><dt>raw</dt><dd><a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatRaw">xmlTextWriterWriteFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRaw">xmlTextWriterWriteRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a><br />
+</dd><dt>re-entrant</dt><dd><a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
+</dd><dt>reachable</dt><dd><a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
+</dd><dt>reached</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+</dd><dt>read-only</dt><dd><a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
+</dd><dt>readable</dt><dd><a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+</dd><dt>reader-</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>reading</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+</dd><dt>ready</dt><dd><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+</dd><dt>real</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</dd><dt>realloc</dt><dd><a href="html/libxml-tree.html#_xmlBuffer">_xmlBuffer</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+</dd><dt>reallocated</dt><dd><a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+</dd><dt>really</dt><dd><a href="html/libxml-HTMLtree.html#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PI_NODE">HTML_PI_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_TEXT_NODE">HTML_TEXT_NODE</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+</dd><dt>reasonable</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>receive</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
+</dd><dt>received</dt><dd><a href="html/libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a><br />
+</dd><dt>receives</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>receiving</dt><dd><a href="html/libxml-SAX.html#characters">characters</a><br />
+<a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Characters">xmlSAX2Characters</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>reclaim</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+<a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
+</dd><dt>recognized</dt><dd><a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+</dd><dt>recommendation</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+</dd><dt>recommendation:</dt><dd><a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>recomputed</dt><dd><a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
+<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
+</dd><dt>reconciliate</dt><dd><a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>record</dt><dd><a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+</dd><dt>recorded</dt><dd><a href="html/libxml-xpathInternals.html#valuePush">valuePush</a><br />
+</dd><dt>recover</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+</dd><dt>recovery</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>recurse</dt><dd><a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>recursive</dt><dd><a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a><br />
+<a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocument">xmlDebugDumpDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNode">xmlDebugDumpNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNodeList">xmlDocCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlElemDump">xmlElemDump</a><br />
+<a href="html/libxml-valid.html#xmlFreeEnumeration">xmlFreeEnumeration</a><br />
+<a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
+<a href="html/libxml-tree.html#xmlFreeNodeList">xmlFreeNodeList</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>recursively</dt><dd><a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+</dd><dt>redeclared</dt><dd><a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>redefined</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_REDEFINED">XML_SCHEMAS_TYPE_REDEFINED</a><br />
+</dd><dt>redefinition</dt><dd><a href="html/libxml-parserInternals.html#xmlErrMemory">xmlErrMemory</a><br />
+</dd><dt>redir</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+</dd><dt>redirected</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRedir">xmlNanoHTTPRedir</a><br />
+</dd><dt>redirection</dt><dd><a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRedir">xmlNanoHTTPRedir</a><br />
+</dd><dt>reentrant</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
+<a href="html/libxml-parser.html#xmlInitParser">xmlInitParser</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
+</dd><dt>ref</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+<a href="html/libxml-valid.html#xmlFreeRefTable">xmlFreeRefTable</a><br />
+<a href="html/libxml-tree.html#xmlNewCharRef">xmlNewCharRef</a><br />
+</dd><dt>referenced</dt><dd><a href="html/libxml-list.html#xmlLinkGetData">xmlLinkGetData</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+</dd><dt>referencing</dt><dd><a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetDtdEntity">xmlGetDtdEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetParameterEntity">xmlGetParameterEntity</a><br />
+</dd><dt>referred</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+</dd><dt>refs</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>refuse</dt><dd><a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+</dd><dt>regex</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
+</dd><dt>regexp</dt><dd><a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegFreeRegexp">xmlRegFreeRegexp</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpPrint">xmlRegexpPrint</a><br />
+</dd><dt>regexps</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>region</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>register</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableLookup">xmlXPathRegisterVariableLookup</a><br />
+</dd><dt>registered</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
+<a href="html/libxml-encoding.html#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a><br />
+<a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
+<a href="html/libxml-xmlIO.html#xmlPopInputCallbacks">xmlPopInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetLastError">xmlResetLastError</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredFuncsCleanup">xmlXPathRegisteredFuncsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredNsCleanup">xmlXPathRegisteredNsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredVariablesCleanup">xmlXPathRegisteredVariablesCleanup</a><br />
+</dd><dt>registers</dt><dd><a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
+<a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+</dd><dt>registration</dt><dd><a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a><br />
+</dd><dt>regular</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpPrint">xmlRegexpPrint</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a><br />
+</dd><dt>reinitialize</dt><dd><a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a><br />
+</dd><dt>related</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a><br />
+<a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-threads.html#xmlInitThreads">xmlInitThreads</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPClose">xmlNanoHTTPClose</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+</dd><dt>relationships</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>relative</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+</dd><dt>relative-ref</dt><dd><a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+</dd><dt>relativeURI</dt><dd><a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+</dd><dt>release</dt><dd><a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
+</dd><dt>releases</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
+</dd><dt>reliable</dt><dd><a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+</dd><dt>rely</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>remainder</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>remaining</dt><dd><a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>remapped</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+</dd><dt>remote</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+</dd><dt>removal</dt><dd><a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+</dd><dt>remove</dt><dd><a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufferShrink">xmlBufferShrink</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a><br />
+</dd><dt>removed</dt><dd><a href="html/libxml-parserInternals.html#inputPop">inputPop</a><br />
+<a href="html/libxml-parserInternals.html#namePop">namePop</a><br />
+<a href="html/libxml-parserInternals.html#nodePop">nodePop</a><br />
+<a href="html/libxml-xpathInternals.html#valuePop">valuePop</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufferShrink">xmlBufferShrink</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-valid.html#xmlFreeDocElementContent">xmlFreeDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementContent">xmlFreeElementContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>removes</dt><dd><a href="html/libxml-parserInternals.html#xmlParserInputShrink">xmlParserInputShrink</a><br />
+</dd><dt>removing</dt><dd><a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+</dd><dt>rename</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+</dd><dt>repeat</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>repeated</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+</dd><dt>repetition</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+</dd><dt>replace</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>replaced</dt><dd><a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>replacement</dt><dd><a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>replaces</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+</dd><dt>replacing</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+</dd><dt>reporting</dt><dd><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetFilename">xmlSchemaValidateSetFilename</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+</dd><dt>reports</dt><dd><a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+</dd><dt>repr</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+</dd><dt>representation</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+</dd><dt>representations</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>represented</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>represented:</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>representing</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
+</dd><dt>request</dt><dd><a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a><br />
+</dd><dt>requested</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+</dd><dt>requests</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+</dd><dt>required</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a><br />
+<a href="html/libxml-HTMLparser.html#htmlRequiredAttrs">htmlRequiredAttrs</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>requires</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+</dd><dt>reserved</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+</dd><dt>reset</dt><dd><a href="html/libxml-xmlerror.html#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetBase">xmlNodeSetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetName">xmlNodeSetName</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a><br />
+<a href="html/libxml-parser.html#xmlReadFd">xmlReadFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>resides</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+</dd><dt>resize</dt><dd><a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
+</dd><dt>resolution</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolve">xmlACatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveURI">xmlACatalogResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolve">xmlCatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveURI">xmlCatalogResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</dd><dt>resolveEntity</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+</dd><dt>resolved</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+</dd><dt>resolver</dt><dd><a href="html/libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a><br />
+</dd><dt>resources</dt><dd><a href="html/libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a><br />
+<a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+<a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
+<a href="html/libxml-xmlreader.html#xmlFreeTextReader">xmlFreeTextReader</a><br />
+<a href="html/libxml-xmlwriter.html#xmlFreeTextWriter">xmlFreeTextWriter</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferClose">xmlOutputBufferClose</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFreeParserCtxt">xmlRelaxNGFreeParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFreeValidCtxt">xmlRelaxNGFreeValidCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFreeParserCtxt">xmlSchemaFreeParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFreeValidCtxt">xmlSchemaFreeValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeParserCtxt">xmlSchematronFreeParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeValidCtxt">xmlSchematronFreeValidCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a><br />
+</dd><dt>resp</dt><dd><a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+</dd><dt>respect</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+</dd><dt>respecting</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>response</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
+</dd><dt>responsibility</dt><dd><a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+</dd><dt>responsible</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+</dd><dt>restored</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+</dd><dt>restrict</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>restriction</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a><br />
+</dd><dt>results</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathEqualValues">xmlXPathEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a><br />
+</dd><dt>retValue</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>retrieve</dt><dd><a href="html/libxml-threads.html#xmlGetGlobalState">xmlGetGlobalState</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+</dd><dt>retrieved</dt><dd><a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+</dd><dt>retry</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>returning</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>reusal</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>reuse</dt><dd><a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+</dd><dt>reused</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>reuses</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFd">htmlCtxtReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadMemory">htmlCtxtReadMemory</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadMemory">xmlCtxtReadMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFile">xmlReaderNewFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewMemory">xmlReaderNewMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewWalker">xmlReaderNewWalker</a><br />
+</dd><dt>reusing</dt><dd><a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+</dd><dt>reverse</dt><dd><a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br />
+<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+</dd><dt>rewrite</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>rfc</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>rfc-editor</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>rfc5646</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>right</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-tree.html#xmlSetListDoc">xmlSetListDoc</a><br />
+<a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />
+</dd><dt>role</dt><dd><a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+</dd><dt>roles</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+</dd><dt>rollback</dt><dd><a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+</dd><dt>root</dt><dd><a href="html/libxml-SAX.html#externalSubset">externalSubset</a><br />
+<a href="html/libxml-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a><br />
+<a href="html/libxml-SAX.html#internalSubset">internalSubset</a><br />
+<a href="html/libxml-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-pattern.html#xmlPatternFromRoot">xmlPatternFromRoot</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ExternalSubset">xmlSAX2ExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InternalSubset">xmlSAX2InternalSubset</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoot">xmlXPathRoot</a><br />
+</dd><dt>round</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+</dd><dt>routines</dt><dd><a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a><br />
+</dd><dt>rule</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>rules</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>run</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+</dd><dt>running</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>runtime</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk24.html b/libxml2-2.9.10/doc/APIchunk24.html
new file mode 100644
index 0000000..c545f17
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk24.html
@@ -0,0 +1,996 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index s-s for libxml2</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>API Alphabetic Index s-s for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter s:</h2><dl><dt>s390</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>safe</dt><dd><a href="html/libxml-xmlstring.html#BAD_CAST">BAD_CAST</a><br />
+<a href="html/libxml-catalog.html#xmlInitializeCatalog">xmlInitializeCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+</dd><dt>safety</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+</dd><dt>same</dt><dd><a href="html/libxml-HTMLtree.html#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PI_NODE">HTML_PI_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_TEXT_NODE">HTML_TEXT_NODE</a><br />
+<a href="html/libxml-parserInternals.html#IS_BLANK_CH">IS_BLANK_CH</a><br />
+<a href="html/libxml-SAX.html#checkNamespace">checkNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCmpNodes">xmlXPathCmpNodes</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathSetContextNode">xmlXPathSetContextNode</a><br />
+</dd><dt>save</dt><dd><a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-debugXML.html#xmlShellSave">xmlShellSave</a><br />
+</dd><dt>saved</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+</dd><dt>saves</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+</dd><dt>saving</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveClose">xmlSaveClose</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveFlush">xmlSaveFlush</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetEscape">xmlSaveSetEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToBuffer">xmlSaveToBuffer</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+</dd><dt>sax</dt><dd><a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>say</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>says</dt><dd><a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+</dd><dt>scan</dt><dd><a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+</dd><dt>scanner</dt><dd><a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
+<a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
+</dd><dt>scanning</dt><dd><a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
+<a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
+</dd><dt>schemas</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewMemParserCtxt">xmlRelaxNGNewMemParserCtxt</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+</dd><dt>schematron</dt><dd><a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
+</dd><dt>scheme</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+<a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+</dd><dt>schemes</dt><dd><a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+</dd><dt>scope</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+</dd><dt>scoping</dt><dd><a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+</dd><dt>script</dt><dd><a href="html/libxml-HTMLparser.html#htmlIsScriptAttribute">htmlIsScriptAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>search</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathAxis">_xmlXPathAxis</a><br />
+<a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a><br />
+<a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br />
+<a href="html/libxml-list.html#xmlListSearch">xmlListSearch</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
+</dd><dt>searched</dt><dd><a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
+</dd><dt>section</dt><dd><a href="html/libxml-HTMLtree.html#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a><br />
+<a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartCDATA">xmlTextWriterStartCDATA</a><br />
+</dd><dt>sections</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+</dd><dt>seems</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+</dd><dt>selected</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>selection</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a><br />
+</dd><dt>selects</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>self</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+</dd><dt>semantic</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+</dd><dt>semantics</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>sense</dt><dd><a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+</dd><dt>separated</dt><dd><a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+</dd><dt>separately</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+</dd><dt>seq</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+</dd><dt>sequence</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>sequences</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+</dd><dt>serialization</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToBuffer">xmlSaveToBuffer</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+<a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+</dd><dt>serialized</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+</dd><dt>serializing</dt><dd><a href="html/libxml-xmlsave.html#xmlSaveToBuffer">xmlSaveToBuffer</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+</dd><dt>server</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCloseConnection">xmlNanoFTPCloseConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPQuit">xmlNanoFTPQuit</a><br />
+</dd><dt>set:difference</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+</dd><dt>set:distinct</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+</dd><dt>set:has-same-node</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
+</dd><dt>set:intersection</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+</dd><dt>set:leading</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+</dd><dt>set:trailing</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</dd><dt>sets</dt><dd><a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+</dd><dt>setting</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>setups</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEncodingDecl">xmlParseEncodingDecl</a><br />
+</dd><dt>severity</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+</dd><dt>sgmlsource</dt><dd><a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+</dd><dt>shadowed</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+</dd><dt>shall</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>shared</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+</dd><dt>shares</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
+</dd><dt>shell</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-debugXML.html#xmlShellBase">xmlShellBase</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDir">xmlShellDir</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+<a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+<a href="html/libxml-debugXML.html#xmlShellLoad">xmlShellLoad</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
+<a href="html/libxml-debugXML.html#xmlShellSave">xmlShellSave</a><br />
+<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+</dd><dt>shorten</dt><dd><a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
+</dd><dt>shortest</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>shorthand</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderConstPrefix">xmlTextReaderConstPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPrefix">xmlTextReaderPrefix</a><br />
+</dd><dt>show</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+</dd><dt>shown</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</dd><dt>sibling</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+<a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueAppend">xmlSchemaValueAppend</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+</dd><dt>siblings</dt><dd><a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+<a href="html/libxml-tree.html#xmlFreeNodeList">xmlFreeNodeList</a><br />
+<a href="html/libxml-tree.html#xmlFreePropList">xmlFreePropList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+</dd><dt>sign</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>signal</dt><dd><a href="html/libxml-xmlversion.html#ATTRIBUTE_UNUSED">ATTRIBUTE_UNUSED</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>signature</dt><dd><a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
+</dd><dt>signs</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+</dd><dt>similar</dt><dd><a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+</dd><dt>simple</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+<a href="html/libxml-tree.html#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a><br />
+<a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+<a href="html/libxml-threads.html#xmlMutexLock">xmlMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlMutexUnlock">xmlMutexUnlock</a><br />
+<a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+</dd><dt>simpleType</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a><br />
+</dd><dt>simply</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+</dd><dt>since</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+</dd><dt>single</dt><dd><a href="html/libxml-parserInternals.html#IS_DIGIT_CH">IS_DIGIT_CH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+</dd><dt>single-byte</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR_CH">IS_CHAR_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_EXTENDER_CH">IS_EXTENDER_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_PUBIDCHAR_CH">IS_PUBIDCHAR_CH</a><br />
+</dd><dt>singleton</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>site1</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>site2</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>size_t</dt><dd><a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+</dd><dt>sizes</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+</dd><dt>skip</dt><dd><a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+</dd><dt>skipped</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+</dd><dt>slot</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>slots</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>small</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+</dd><dt>smaller</dt><dd><a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+</dd><dt>smallest</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
+</dd><dt>socket</dt><dd><a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+</dd><dt>sockets</dt><dd><a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br />
+<a href="html/libxml-nanoftp.html#SOCKET">SOCKET</a><br />
+</dd><dt>software</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>solution</dt><dd><a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+</dd><dt>some</dt><dd><a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+<a href="html/libxml-SAX.html#characters">characters</a><br />
+<a href="html/libxml-parser.html#charactersSAXFunc">charactersSAXFunc</a><br />
+<a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Characters">xmlSAX2Characters</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushCData">xmlValidatePushCData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+</dd><dt>somehow</dt><dd><a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+</dd><dt>sometimes</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+</dd><dt>somewhat</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+</dd><dt>sorted</dt><dd><a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</dd><dt>sounds</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>source</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLtree.html#htmlGetMetaEncoding">htmlGetMetaEncoding</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadIO">htmlReadIO</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-xmlerror.html#xmlCopyError">xmlCopyError</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-parser.html#xmlReadIO">xmlReadIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+</dd><dt>sourceDoc</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+</dd><dt>spaces</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileEnc">htmlSaveFileEnc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileFormat">htmlSaveFileFormat</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
+<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
+<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
+<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
+<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
+</dd><dt>span</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
+</dd><dt>spec</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+</dd><dt>spec:</dt><dd><a href="html/libxml-parserInternals.html#IS_BASECHAR">IS_BASECHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_BLANK">IS_BLANK</a><br />
+<a href="html/libxml-parserInternals.html#IS_BYTE_CHAR">IS_BYTE_CHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_COMBINING">IS_COMBINING</a><br />
+<a href="html/libxml-parserInternals.html#IS_DIGIT">IS_DIGIT</a><br />
+<a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+<a href="html/libxml-parserInternals.html#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a><br />
+<a href="html/libxml-parserInternals.html#IS_LETTER">IS_LETTER</a><br />
+<a href="html/libxml-parserInternals.html#IS_PUBIDCHAR">IS_PUBIDCHAR</a><br />
+</dd><dt>special</dt><dd><a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+<a href="html/libxml-tree.html#XML_XML_ID">XML_XML_ID</a><br />
+<a href="html/libxml-tree.html#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</dd><dt>specialized</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+</dd><dt>specific</dt><dd><a href="html/libxml-catalog.html#XML_CATALOG_PI">XML_CATALOG_PI</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
+</dd><dt>specification</dt><dd><a href="html/libxml-tree.html#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a><br />
+<a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>specifications</dt><dd><a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+</dd><dt>specify</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
+</dd><dt>specifying</dt><dd><a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+</dd><dt>speed</dt><dd><a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>speedup</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+</dd><dt>split</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>stacked</dt><dd><a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+</dd><dt>stage</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a><br />
+</dd><dt>stamps</dt><dd><a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>standalone</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-SAX.html#isStandalone">isStandalone</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IsStandalone">xmlSAX2IsStandalone</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
+</dd><dt>standalone=</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>standalone?</dt><dd><a href="html/libxml-parser.html#isStandaloneSAXFunc">isStandaloneSAXFunc</a><br />
+</dd><dt>standard</dt><dd><a href="html/libxml-DOCBparser.html#docbParseDocument">docbParseDocument</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDocument">htmlParseDocument</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>start</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-SAX.html#startDocument">startDocument</a><br />
+<a href="html/libxml-parser.html#startDocumentSAXFunc">startDocumentSAXFunc</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartDocument">xmlSAX2StartDocument</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
+</dd><dt>start-tag</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>started</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+</dd><dt>starting</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-tree.html#xmlNewCharRef">xmlNewCharRef</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodes">xmlXPtrNewRangeNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a><br />
+</dd><dt>starts</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStartsWithFunction">xmlXPathStartsWithFunction</a><br />
+</dd><dt>starts-with</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStartsWithFunction">xmlXPathStartsWithFunction</a><br />
+</dd><dt>startup</dt><dd><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-catalog.html#xmlInitializeCatalog">xmlInitializeCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+</dd><dt>stashed</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br />
+</dd><dt>stat</dt><dd><a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+</dd><dt>stateful</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+</dd><dt>states</dt><dd><a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+</dd><dt>static</dt><dd><a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>status</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderIsValid">xmlTextReaderIsValid</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
+</dd><dt>stderr</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+</dd><dt>stdin</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+</dd><dt>stdout</dt><dd><a href="html/libxml-HTMLtree.html#htmlSaveFile">htmlSaveFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-tree.html#xmlSaveFile">xmlSaveFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+</dd><dt>step</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</dd><dt>steps</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+</dd><dt>still</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>stop</dt><dd><a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
+</dd><dt>stops</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>storage</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+</dd><dt>store</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
+<a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>stored</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>stores</dt><dd><a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+</dd><dt>str</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+</dd><dt>strcasecmp</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
+</dd><dt>strcat</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+</dd><dt>strchr</dt><dd><a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
+</dd><dt>strcmp</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcmp">xmlStrcmp</a><br />
+</dd><dt>strdup</dt><dd><a href="html/libxml-xmlstring.html#xmlCharStrdup">xmlCharStrdup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a><br />
+</dd><dt>streamable</dt><dd><a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
+</dd><dt>streaming</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd><dt>streams</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+</dd><dt>strict</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+</dd><dt>string--that</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+</dd><dt>string-length</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+</dd><dt>string?</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+</dd><dt>stringi</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+</dd><dt>strings</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
+<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+</dd><dt>stripping</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+</dd><dt>strncasecmp</dt><dd><a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />
+</dd><dt>strncat</dt><dd><a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+</dd><dt>strncmp</dt><dd><a href="html/libxml-xmlstring.html#xmlStrncmp">xmlStrncmp</a><br />
+</dd><dt>strndup</dt><dd><a href="html/libxml-xmlstring.html#xmlCharStrndup">xmlCharStrndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrndup">xmlStrndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strndup">xmlUTF8Strndup</a><br />
+</dd><dt>strstr</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
+</dd><dt>struct</dt><dd><a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+<a href="html/libxml-uri.html#xmlFreeURI">xmlFreeURI</a><br />
+<a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+</dd><dt>structured</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserStructuredErrors">xmlSchemaSetParserStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronSetValidStructuredErrors">xmlSchematronSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+</dd><dt>structures</dt><dd><a href="html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a><br />
+<a href="html/libxml-tree.html#xmlFreeNs">xmlFreeNs</a><br />
+<a href="html/libxml-tree.html#xmlFreeNsList">xmlFreeNsList</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a><br />
+</dd><dt>stuff</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>style</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+</dd><dt>sub</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+</dd><dt>sub-elements</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>subelement</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlDefaultSubelement">htmlDefaultSubelement</a><br />
+<a href="html/libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
+</dd><dt>subelements</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>subexpression</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+</dd><dt>subexpressions</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>subject</dt><dd><a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+</dd><dt>sublanguage</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+</dd><dt>submits</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+</dd><dt>subsequent</dt><dd><a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+</dd><dt>subset?</dt><dd><a href="html/libxml-parser.html#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a><br />
+</dd><dt>subsets</dt><dd><a href="html/libxml-entities.html#xmlGetParameterEntity">xmlGetParameterEntity</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>substitute</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>substituted</dt><dd><a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_NONE">XML_SUBSTITUTE_NONE</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a><br />
+<a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+</dd><dt>substituting</dt><dd><a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+</dd><dt>substitutionGroup</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a><br />
+</dd><dt>substitutions</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+</dd><dt>substitutions:</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a><br />
+</dd><dt>substring</dt><dd><a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>substring-after</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+</dd><dt>substring-before</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
+</dd><dt>subtag</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>subtags</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>subtraction</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+</dd><dt>subtree</dt><dd><a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+<a href="html/libxml-valid.html#xmlFreeDocElementContent">xmlFreeDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementContent">xmlFreeElementContent</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNext">xmlTextReaderNext</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+<a href="html/libxml-valid.html#xmlValidateElement">xmlValidateElement</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+</dd><dt>succeed</dt><dd><a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+</dd><dt>succeeded</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueAppend">xmlSchemaValueAppend</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>succeeds</dt><dd><a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+</dd><dt>successful</dt><dd><a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogConvert">xmlCatalogConvert</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a><br />
+<a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+<a href="html/libxml-list.html#xmlListPushBack">xmlListPushBack</a><br />
+<a href="html/libxml-list.html#xmlListPushFront">xmlListPushFront</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetEscape">xmlSaveSetEscape</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+<a href="html/libxml-tree.html#xmlUnsetNsProp">xmlUnsetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlUnsetProp">xmlUnsetProp</a><br />
+<a href="html/libxml-xpath.html#xmlXPathSetContextNode">xmlXPathSetContextNode</a><br />
+</dd><dt>successfully</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNext">xmlTextReaderNext</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
+</dd><dt>succession</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+</dd><dt>successive</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+</dd><dt>successors</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>such</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+</dd><dt>suffix</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+</dd><dt>suggested</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>suitable</dt><dd><a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+</dd><dt>sum</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSumFunction">xmlXPathSumFunction</a><br />
+</dd><dt>super</dt><dd><a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+</dd><dt>super-strict</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+</dd><dt>supplied</dt><dd><a href="html/libxml-valid.html#xmlGetRefs">xmlGetRefs</a><br />
+</dd><dt>supported</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>supposed</dt><dd><a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+</dd><dt>sure</dt><dd><a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveClose">xmlSaveClose</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveFlush">xmlSaveFlush</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+</dd><dt>surprising</dt><dd><a href="html/libxml-encoding.html#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a><br />
+</dd><dt>surrogate</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+</dd><dt>switch</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+</dd><dt>symbol</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+</dd><dt>synchronizing</dt><dd><a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+</dd><dt>syntax</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+</dd><dt>systematically</dt><dd><a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk25.html b/libxml2-2.9.10/doc/APIchunk25.html
new file mode 100644
index 0000000..eaa24de
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk25.html
@@ -0,0 +1,447 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index t-t for libxml2</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>API Alphabetic Index t-t for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter t:</h2><dl><dt>tag</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
+<a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetName">xmlNodeSetName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEndTag">xmlParseEndTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
+</dd><dt>tagged</dt><dd><a href="html/libxml-SAX.html#isStandalone">isStandalone</a><br />
+<a href="html/libxml-parser.html#isStandaloneSAXFunc">isStandaloneSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IsStandalone">xmlSAX2IsStandalone</a><br />
+</dd><dt>tags</dt><dd><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLtree.html#htmlGetMetaEncoding">htmlGetMetaEncoding</a><br />
+<a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
+<a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+</dd><dt>take</dt><dd><a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
+</dd><dt>taken</dt><dd><a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+</dd><dt>takes</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+</dd><dt>tell</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>tells</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+</dd><dt>temporary</dt><dd><a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+</dd><dt>terminal</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+</dd><dt>terminals</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>terminated</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
+<a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlReadDoc">xmlReadDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+<a href="html/libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a><br />
+</dd><dt>termination</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+</dd><dt>terms</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>test</dt><dd><a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEqualValues">xmlXPathEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a><br />
+</dd><dt>tested</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>testing</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+</dd><dt>text-</dt><dd><a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd><dt>text-node</dt><dd><a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
+</dd><dt>textDecl?</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+</dd><dt>their</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+</dd><dt>them</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+</dd><dt>these</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+</dd><dt>they</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+<a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+</dd><dt>third</dt><dd><a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup3">xmlHashQLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>this?</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+</dd><dt>those</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>though</dt><dd><a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+</dd><dt>thread</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-threads.html#xmlGetGlobalState">xmlGetGlobalState</a><br />
+<a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
+<a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+<a href="html/libxml-threads.html#xmlInitThreads">xmlInitThreads</a><br />
+<a href="html/libxml-catalog.html#xmlInitializeCatalog">xmlInitializeCatalog</a><br />
+<a href="html/libxml-threads.html#xmlIsMainThread">xmlIsMainThread</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+</dd><dt>through</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+</dd><dt>thumblers</dt><dd><a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+</dd><dt>thus</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+</dd><dt>tight</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+</dd><dt>time</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>title</dt><dd><a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+</dd><dt>titles</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+</dd><dt>todo:</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+</dd><dt>token</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+<a href="html/libxml-threads.html#xmlMutexLock">xmlMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlMutexUnlock">xmlMutexUnlock</a><br />
+<a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+</dd><dt>token_r</dt><dd><a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
+</dd><dt>tokens</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>too</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-tree.html#xmlElemDump">xmlElemDump</a><br />
+<a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
+<a href="html/libxml-tree.html#xmlFreeNodeList">xmlFreeNodeList</a><br />
+<a href="html/libxml-tree.html#xmlFreeProp">xmlFreeProp</a><br />
+<a href="html/libxml-tree.html#xmlFreePropList">xmlFreePropList</a><br />
+<a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-tree.html#xmlRemoveProp">xmlRemoveProp</a><br />
+</dd><dt>top</dt><dd><a href="html/libxml-xpathInternals.html#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_NUMBER">CAST_TO_NUMBER</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_STRING">CAST_TO_STRING</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_TYPE">CHECK_TYPE</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_TYPE0">CHECK_TYPE0</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a><br />
+<a href="html/libxml-parserInternals.html#inputPop">inputPop</a><br />
+<a href="html/libxml-parserInternals.html#inputPush">inputPush</a><br />
+<a href="html/libxml-parserInternals.html#namePop">namePop</a><br />
+<a href="html/libxml-parserInternals.html#namePush">namePush</a><br />
+<a href="html/libxml-parserInternals.html#nodePop">nodePop</a><br />
+<a href="html/libxml-parserInternals.html#nodePush">nodePush</a><br />
+<a href="html/libxml-xpathInternals.html#valuePop">valuePop</a><br />
+<a href="html/libxml-xpathInternals.html#valuePush">valuePush</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-xmlIO.html#xmlPopInputCallbacks">xmlPopInputCallbacks</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />
+</dd><dt>total</dt><dd><a href="html/libxml-xmlIO.html#_xmlOutputBuffer">_xmlOutputBuffer</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+</dd><dt>touch</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>track</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+</dd><dt>tracking</dt><dd><a href="html/libxml-xmlerror.html#xmlParserPrintFileContext">xmlParserPrintFileContext</a><br />
+</dd><dt>trailing</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</dd><dt>transaction</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
+</dd><dt>transcoding</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+</dd><dt>transferred</dt><dd><a href="html/libxml-parserInternals.html#xmlParsePI">xmlParsePI</a><br />
+</dd><dt>transformation</dt><dd><a href="html/libxml-encoding.html#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</dd><dt>transformed</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGDumpTree">xmlRelaxNGDumpTree</a><br />
+</dd><dt>transitions</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+</dd><dt>translate</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>translation</dt><dd><a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+</dd><dt>transmit</dt><dd><a href="html/libxml-parser.html#errorSAXFunc">errorSAXFunc</a><br />
+<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-parser.html#warningSAXFunc">warningSAXFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserError">xmlParserError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+</dd><dt>transport</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a><br />
+</dd><dt>traversal</dt><dd><a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAttribute">xmlXPathNextAttribute</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextChild">xmlXPathNextChild</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextParent">xmlXPathNextParent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</dd><dt>traverse</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>treated</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+</dd><dt>tried</dt><dd><a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
+<a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a><br />
+</dd><dt>tries</dt><dd><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>trio</dt><dd><a href="html/libxml-xmlversion.html#WITHOUT_TRIO">WITHOUT_TRIO</a><br />
+<a href="html/libxml-xmlversion.html#WITH_TRIO">WITH_TRIO</a><br />
+</dd><dt>troubles</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+</dd><dt>try</dt><dd><a href="html/libxml-xpathInternals.html#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_NUMBER">CAST_TO_NUMBER</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_STRING">CAST_TO_STRING</a><br />
+<a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>tune</dt><dd><a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
+</dd><dt>tuple</dt><dd><a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup2">xmlHashQLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup3">xmlHashQLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+</dd><dt>tuples</dt><dd><a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+</dd><dt>turn</dt><dd><a href="html/libxml-debugXML.html#xmlBoolToText">xmlBoolToText</a><br />
+</dd><dt>turned</dt><dd><a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+</dd><dt>two</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+<a href="html/libxml-tree.html#xmlTextMerge">xmlTextMerge</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Charcmp">xmlUTF8Charcmp</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCmpNodes">xmlXPathCmpNodes</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+</dd><dt>two-character</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+</dd><dt>txt</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>type:</dt><dd><a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>typefixed</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a><br />
+</dd><dt>types</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk26.html b/libxml2-2.9.10/doc/APIchunk26.html
new file mode 100644
index 0000000..77dde40
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk26.html
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index u-v for libxml2</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>API Alphabetic Index u-v for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter u:</h2><dl><dt>ugly</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+</dd><dt>unary</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+</dd><dt>unclean</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+</dd><dt>uncompressed</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-tree.html#xmlGetCompressMode">xmlGetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+</dd><dt>unconditionally</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
+</dd><dt>under</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+<a href="html/libxml-valid.html#xmlValidateElement">xmlValidateElement</a><br />
+</dd><dt>underlying</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+</dd><dt>understand</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>unescape</dt><dd><a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+</dd><dt>unescaped</dt><dd><a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+</dd><dt>unescaping</dt><dd><a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+</dd><dt>unfriendly</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+</dd><dt>unicode</dt><dd><a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
+</dd><dt>unimplemented</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtUseOptions">htmlCtxtUseOptions</a><br />
+<a href="html/libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a><br />
+</dd><dt>union</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>unique</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>uniquely</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>uniqueness</dt><dd><a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+</dd><dt>units</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+</dd><dt>unknown</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtUseOptions">htmlCtxtUseOptions</a><br />
+<a href="html/libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBlock">xmlUCSIsBlock</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCat">xmlUCSIsCat</a><br />
+</dd><dt>unless</dt><dd><a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+</dd><dt>unlink</dt><dd><a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
+<a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+</dd><dt>unlinked</dt><dd><a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+<a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+</dd><dt>unload</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
+</dd><dt>unloaded</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
+</dd><dt>unlock</dt><dd><a href="html/libxml-threads.html#xmlMutexUnlock">xmlMutexUnlock</a><br />
+<a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
+</dd><dt>unparsed</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-SAX.html#unparsedEntityDecl">unparsedEntityDecl</a><br />
+<a href="html/libxml-parser.html#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2UnparsedEntityDecl">xmlSAX2UnparsedEntityDecl</a><br />
+</dd><dt>unplug</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+</dd><dt>unpredictable</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+</dd><dt>unpredictiable</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+</dd><dt>unregisters</dt><dd><a href="html/libxml-encoding.html#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFunc">xmlXPathRegisterFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncNS">xmlXPathRegisterFuncNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterNs">xmlXPathRegisterNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariable">xmlXPathRegisterVariable</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
+</dd><dt>unsafe</dt><dd><a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
+</dd><dt>unsigned</dt><dd><a href="">c</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+</dd><dt>unsupported</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+</dd><dt>until</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>update</dt><dd><a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-tree.html#xmlSetListDoc">xmlSetListDoc</a><br />
+<a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+</dd><dt>updated</dt><dd><a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+</dd><dt>upon</dt><dd><a href="html/libxml-SAX.html#checkNamespace">checkNamespace</a><br />
+<a href="html/libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a><br />
+</dd><dt>upper</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+</dd><dt>uri</dt><dd><a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+</dd><dt>usage</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+</dd><dt>used:</dt><dd><a href="html/libxml-parser.html#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a><br />
+</dd><dt>used?</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaAttribute">_xmlSchemaAttribute</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+</dd><dt>useful</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+</dd><dt>useless</dt><dd><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+</dd><dt>userData</dt><dd><a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>users</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+</dd><dt>uses</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>usual</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>usually</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+<a href="">c</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>utf8</dt><dd><a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</dd></dl><h2>Letter v:</h2><dl><dt>val1</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+</dd><dt>valgrind</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>validated</dt><dd><a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+</dd><dt>validates</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
+<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
+<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
+<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
+</dd><dt>validating</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+<a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+</dd><dt>validator</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+</dd><dt>validity</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsValid">xmlTextReaderIsValid</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>value:</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+</dd><dt>values:</dt><dd><a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+</dd><dt>vararg</dt><dd><a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>varargs</dt><dd><a href="html/libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a><br />
+</dd><dt>variables</dt><dd><a href="html/libxml-xpath.html#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredNsCleanup">xmlXPathRegisteredNsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredVariablesCleanup">xmlXPathRegisteredVariablesCleanup</a><br />
+</dd><dt>variant</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+</dd><dt>variants</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>variety</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a><br />
+</dd><dt>various</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+</dd><dt>versions</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+</dd><dt>very</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>via</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+</dd><dt>view</dt><dd><a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+</dd><dt>violated</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>visible</dt><dd><a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a><br />
+</dd><dt>void</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>volume</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk27.html b/libxml2-2.9.10/doc/APIchunk27.html
new file mode 100644
index 0000000..c015fdd
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk27.html
@@ -0,0 +1,347 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index w-w for libxml2</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>API Alphabetic Index w-w for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter w:</h2><dl><dt>walker</dt><dd><a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
+</dd><dt>walking</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
+</dd><dt>want</dt><dd><a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+</dd><dt>warn</dt><dd><a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+</dd><dt>warning</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-parser.html#warningSAXFunc">warningSAXFunc</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>warnings</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+</dd><dt>way</dt><dd><a href="html/libxml-HTMLtree.html#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PI_NODE">HTML_PI_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_TEXT_NODE">HTML_TEXT_NODE</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-debugXML.html#xmlBoolToText">xmlBoolToText</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+</dd><dt>ways:</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>weird</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>well</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+</dd><dt>well-balanced</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+</dd><dt>well-formed</dt><dd><a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>well-formedness</dt><dd><a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetLastError">xmlResetLastError</a><br />
+</dd><dt>wellformed</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-parser.html#xmlParseFile">xmlParseFile</a><br />
+</dd><dt>were</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaIsValid">xmlSchemaIsValid</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+</dd><dt>what</dt><dd><a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+</dd><dt>where</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-tree.html#xmlCopyProp">xmlCopyProp</a><br />
+<a href="html/libxml-tree.html#xmlCopyPropList">xmlCopyPropList</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileRead">xmlFileRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPRead">xmlIOFTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPRead">xmlIOHTTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+</dd><dt>while</dt><dd><a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNext">xmlTextReaderNext</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>white</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+</dd><dt>whitespace</dt><dd><a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValuesWhtsp">xmlSchemaCompareValuesWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+</dd><dt>whitespace-facet</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a><br />
+</dd><dt>whitespace-separated</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>whitespaces</dt><dd><a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+</dd><dt>whole</dt><dd><a href="html/libxml-valid.html#xmlFreeDocElementContent">xmlFreeDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementContent">xmlFreeElementContent</a><br />
+</dd><dt>whose</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+</dd><dt>why</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+</dd><dt>wildcard</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</a><br />
+</dd><dt>wildcards</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a><br />
+</dd><dt>windows</dt><dd><a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br />
+<a href="html/libxml-nanoftp.html#SOCKET">SOCKET</a><br />
+</dd><dt>with_ns</dt><dd><a href="html/libxml-xpath.html#_xmlNodeSet">_xmlNodeSet</a><br />
+</dd><dt>within</dt><dd><a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-tree.html#xmlNewDocComment">xmlNewDocComment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewDocRawNode">xmlNewDocRawNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocText">xmlNewDocText</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileContext">xmlParserPrintFileContext</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBase64">xmlTextWriterWriteBase64</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBinHex">xmlTextWriterWriteBinHex</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+</dd><dt>without</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-SAX.html#entityDecl">entityDecl</a><br />
+<a href="html/libxml-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EntityDecl">xmlSAX2EntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+</dd><dt>won</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+</dd><dt>word</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>words</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+</dd><dt>work</dt><dd><a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
+<a href="html/libxml-tree.html#xmlRemoveProp">xmlRemoveProp</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>worked</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+</dd><dt>works</dt><dd><a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+</dd><dt>worry</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a><br />
+</dd><dt>worthwhile</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>would</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>wrapper</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>wraps</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+</dd><dt>write</dt><dd><a href="html/libxml-xmlIO.html#xmlFileRead">xmlFileRead</a><br />
+<a href="html/libxml-encoding.html#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPRead">xmlIOFTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPRead">xmlIOHTTPRead</a><br />
+<a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+</dd><dt>writer</dt><dd><a href="html/libxml-xmlwriter.html#xmlFreeTextWriter">xmlFreeTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+</dd><dt>writes</dt><dd><a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+</dd><dt>writing</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+</dd><dt>wrt</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>www</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_NS">XINCLUDE_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
+<a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk28.html b/libxml2-2.9.10/doc/APIchunk28.html
new file mode 100644
index 0000000..e6e5958
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk28.html
@@ -0,0 +1,568 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index x-x for libxml2</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>API Alphabetic Index x-x for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter x:</h2><dl><dt>x00B7</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x02D0</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x02D1</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x0387</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x0640</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x0E46</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x0EC6</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x10000-</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+</dd><dt>x10FFFF</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+</dd><dt>x20</dt><dd><a href="html/libxml-parserInternals.html#IS_BLANK">IS_BLANK</a><br />
+<a href="html/libxml-parserInternals.html#IS_BYTE_CHAR">IS_BYTE_CHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_PUBIDCHAR">IS_PUBIDCHAR</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNmtoken">xmlParseNmtoken</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+</dd><dt>x20-</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+</dd><dt>x3005</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x3007</dt><dd><a href="html/libxml-parserInternals.html#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a><br />
+</dd><dt>x3021-</dt><dd><a href="html/libxml-parserInternals.html#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a><br />
+</dd><dt>x3029</dt><dd><a href="html/libxml-parserInternals.html#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a><br />
+</dd><dt>x3031-</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x3035</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x309D-</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x309E</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x30FC-</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x30FE</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+</dd><dt>x4E00-</dt><dd><a href="html/libxml-parserInternals.html#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a><br />
+</dd><dt>x9FA5</dt><dd><a href="html/libxml-parserInternals.html#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a><br />
+</dd><dt>xD7FF</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+</dd><dt>xE000-</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+</dd><dt>xFFFD</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+</dd><dt>xlink</dt><dd><a href="html/libxml-xlink.html#xlinkGetDefaultDetect">xlinkGetDefaultDetect</a><br />
+<a href="html/libxml-xlink.html#xlinkGetDefaultHandler">xlinkGetDefaultHandler</a><br />
+<a href="html/libxml-xlink.html#xlinkSetDefaultDetect">xlinkSetDefaultDetect</a><br />
+<a href="html/libxml-xlink.html#xlinkSetDefaultHandler">xlinkSetDefaultHandler</a><br />
+</dd><dt>xlinkHandlerPtr</dt><dd><a href="html/libxml-xlink.html#xlinkGetDefaultHandler">xlinkGetDefaultHandler</a><br />
+</dd><dt>xlinkType</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+</dd><dt>xml-c14n</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>xml-exc-c14n</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</dd><dt>xml-name</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>xml:</dt><dd><a href="html/libxml-tree.html#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a><br />
+</dd><dt>xml:base</dt><dd><a href="html/libxml-tree.html#xmlNodeSetBase">xmlNodeSetBase</a><br />
+</dd><dt>xml:id</dt><dd><a href="html/libxml-tree.html#XML_XML_ID">XML_XML_ID</a><br />
+</dd><dt>xml:lang</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetLang">xmlNodeSetLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+</dd><dt>xml:space</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a><br />
+</dd><dt>xmlAddDocEntity</dt><dd><a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+</dd><dt>xmlAttr</dt><dd><a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+</dd><dt>xmlAttrPtr</dt><dd><a href="html/libxml-tree.html#xmlCopyProp">xmlCopyProp</a><br />
+<a href="html/libxml-tree.html#xmlCopyPropList">xmlCopyPropList</a><br />
+<a href="html/libxml-valid.html#xmlGetID">xmlGetID</a><br />
+</dd><dt>xmlAttributePtr</dt><dd><a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+</dd><dt>xmlAttributeTablePtr</dt><dd><a href="html/libxml-valid.html#xmlCopyAttributeTable">xmlCopyAttributeTable</a><br />
+</dd><dt>xmlBufPtr</dt><dd><a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+</dd><dt>xmlBuffer</dt><dd><a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+</dd><dt>xmlBufferPtr</dt><dd><a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+</dd><dt>xmlBufferShrink</dt><dd><a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+</dd><dt>xmlBuildURI</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>xmlBytesConsumed</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+</dd><dt>xmlCatalogAllow</dt><dd><a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
+</dd><dt>xmlCatalogPtr</dt><dd><a href="html/libxml-catalog.html#xmlNewCatalog">xmlNewCatalog</a><br />
+</dd><dt>xmlCatalogResolvePublic</dt><dd><a href="html/libxml-catalog.html#xmlCatalogGetPublic">xmlCatalogGetPublic</a><br />
+</dd><dt>xmlCatalogResolveSystem</dt><dd><a href="html/libxml-catalog.html#xmlCatalogGetSystem">xmlCatalogGetSystem</a><br />
+</dd><dt>xmlCharEncoding</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a><br />
+</dd><dt>xmlCharEncodingHandler</dt><dd><a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+</dd><dt>xmlCharEncodingHandlerPtr</dt><dd><a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a><br />
+</dd><dt>xmlCharEncodingInputFunc</dt><dd><a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+</dd><dt>xmlCharEncodingOutputFunc</dt><dd><a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+</dd><dt>xmlChars</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a><br />
+</dd><dt>xmlCleanupParser</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+</dd><dt>xmlCleanupThreads</dt><dd><a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd><dt>xmlCopyDocElementContent</dt><dd><a href="html/libxml-valid.html#xmlCopyElementContent">xmlCopyElementContent</a><br />
+</dd><dt>xmlCreateIntSubset</dt><dd><a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</a><br />
+</dd><dt>xmlDOMWrapCtxtPtr</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapNewCtxt">xmlDOMWrapNewCtxt</a><br />
+</dd><dt>xmlDefaultSAXLocator</dt><dd><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+</dd><dt>xmlDoc</dt><dd><a href="html/libxml-tree.html#_xmlNs">_xmlNs</a><br />
+</dd><dt>xmlDocCopyNodeList</dt><dd><a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+</dd><dt>xmlDocNewPI</dt><dd><a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+</dd><dt>xmlDocProperties</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+</dd><dt>xmlDocPtr</dt><dd><a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+</dd><dt>xmlDtdPtr</dt><dd><a href="html/libxml-tree.html#xmlCopyDtd">xmlCopyDtd</a><br />
+<a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlParseDTD">xmlParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a><br />
+</dd><dt>xmlElementContentPtr</dt><dd><a href="html/libxml-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementContent">xmlCopyElementContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</dd><dt>xmlElementPtr</dt><dd><a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a><br />
+</dd><dt>xmlElementTablePtr</dt><dd><a href="html/libxml-valid.html#xmlCopyElementTable">xmlCopyElementTable</a><br />
+</dd><dt>xmlEncodeEntities</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+</dd><dt>xmlEncodeEntitiesReentrant</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+</dd><dt>xmlEncodeSpecialChars</dt><dd><a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+</dd><dt>xmlEntitiesTablePtr</dt><dd><a href="html/libxml-entities.html#xmlCopyEntitiesTable">xmlCopyEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+</dd><dt>xmlEntityPtr</dt><dd><a href="html/libxml-SAX.html#getEntity">getEntity</a><br />
+<a href="html/libxml-parser.html#getEntitySAXFunc">getEntitySAXFunc</a><br />
+<a href="html/libxml-SAX.html#getParameterEntity">getParameterEntity</a><br />
+<a href="html/libxml-parser.html#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewEntityInputStream">xmlNewEntityInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetEntity">xmlSAX2GetEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetParameterEntity">xmlSAX2GetParameterEntity</a><br />
+</dd><dt>xmlEnumerationPtr</dt><dd><a href="html/libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a><br />
+<a href="html/libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a><br />
+</dd><dt>xmlExpFree</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+</dd><dt>xmlExpRef</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+</dd><dt>xmlExternalEntityLoader</dt><dd><a href="html/libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a><br />
+</dd><dt>xmlFileOpen_real</dt><dd><a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+</dd><dt>xmlFree</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToString">xmlXPathCastToString</a><br />
+</dd><dt>xmlFreeDoc</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+</dd><dt>xmlFreeDocElementContent</dt><dd><a href="html/libxml-valid.html#xmlFreeElementContent">xmlFreeElementContent</a><br />
+</dd><dt>xmlFreeMutex</dt><dd><a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+</dd><dt>xmlFreeNode</dt><dd><a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+</dd><dt>xmlFreeStreamCtxt</dt><dd><a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
+</dd><dt>xmlGetGlobalState</dt><dd><a href="html/libxml-threads.html#xmlGetGlobalState">xmlGetGlobalState</a><br />
+</dd><dt>xmlGetNoNsProp</dt><dd><a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+</dd><dt>xmlGetNsProp</dt><dd><a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+</dd><dt>xmlGetProp</dt><dd><a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+</dd><dt>xmlGetThreadId</dt><dd><a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+</dd><dt>xmlHashTablePtr</dt><dd><a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br />
+<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
+</dd><dt>xmlIDPtr</dt><dd><a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
+</dd><dt>xmlIndentTreeOutput</dt><dd><a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+</dd><dt>xmlInitParser</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+</dd><dt>xmlInitThreads</dt><dd><a href="html/libxml-threads.html#xmlInitThreads">xmlInitThreads</a><br />
+</dd><dt>xmlInitializeCatalog</dt><dd><a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+</dd><dt>xmlInitializeGlobalState</dt><dd><a href="html/libxml-globals.html#xmlInitializeGlobalState">xmlInitializeGlobalState</a><br />
+</dd><dt>xmlInputCloseCallback</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+</dd><dt>xmlInputMatchCallback</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+</dd><dt>xmlInputOpenCallback</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+</dd><dt>xmlInputReadCallback</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+</dd><dt>xmlIsBaseCharQ</dt><dd><a href="html/libxml-chvalid.html#xmlIsBaseChar">xmlIsBaseChar</a><br />
+</dd><dt>xmlIsBaseChar_ch</dt><dd><a href="html/libxml-chvalid.html#xmlIsBaseChar">xmlIsBaseChar</a><br />
+</dd><dt>xmlIsBlankNode</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>xmlIsBlankQ</dt><dd><a href="html/libxml-chvalid.html#xmlIsBlank">xmlIsBlank</a><br />
+</dd><dt>xmlIsBlank_ch</dt><dd><a href="html/libxml-chvalid.html#xmlIsBlank">xmlIsBlank</a><br />
+</dd><dt>xmlIsCharQ</dt><dd><a href="html/libxml-chvalid.html#xmlIsChar">xmlIsChar</a><br />
+</dd><dt>xmlIsChar_ch</dt><dd><a href="html/libxml-chvalid.html#xmlIsChar">xmlIsChar</a><br />
+</dd><dt>xmlIsCombiningQ</dt><dd><a href="html/libxml-chvalid.html#xmlIsCombining">xmlIsCombining</a><br />
+</dd><dt>xmlIsDigitQ</dt><dd><a href="html/libxml-chvalid.html#xmlIsDigit">xmlIsDigit</a><br />
+</dd><dt>xmlIsDigit_ch</dt><dd><a href="html/libxml-chvalid.html#xmlIsDigit">xmlIsDigit</a><br />
+</dd><dt>xmlIsExtenderQ</dt><dd><a href="html/libxml-chvalid.html#xmlIsExtender">xmlIsExtender</a><br />
+</dd><dt>xmlIsExtender_ch</dt><dd><a href="html/libxml-chvalid.html#xmlIsExtender">xmlIsExtender</a><br />
+</dd><dt>xmlIsIdeographicQ</dt><dd><a href="html/libxml-chvalid.html#xmlIsIdeographic">xmlIsIdeographic</a><br />
+</dd><dt>xmlIsMainThread</dt><dd><a href="html/libxml-threads.html#xmlIsMainThread">xmlIsMainThread</a><br />
+</dd><dt>xmlIsPubidCharQ</dt><dd><a href="html/libxml-chvalid.html#xmlIsPubidChar">xmlIsPubidChar</a><br />
+</dd><dt>xmlIsPubidChar_ch</dt><dd><a href="html/libxml-chvalid.html#xmlIsPubidChar">xmlIsPubidChar</a><br />
+</dd><dt>xmlKeepBlanksDefault</dt><dd><a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+</dd><dt>xmlListWalk</dt><dd><a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
+</dd><dt>xmlLoadExtDtdDefaultValue</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+</dd><dt>xmlLocationSetPtr</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetCreate">xmlXPtrLocationSetCreate</a><br />
+</dd><dt>xmlLockLibrary</dt><dd><a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
+</dd><dt>xmlModuleOption</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+</dd><dt>xmlMutexLock</dt><dd><a href="html/libxml-threads.html#xmlMutexLock">xmlMutexLock</a><br />
+</dd><dt>xmlMutexUnlock</dt><dd><a href="html/libxml-threads.html#xmlMutexUnlock">xmlMutexUnlock</a><br />
+</dd><dt>xmlNanoFTPGet</dt><dd><a href="html/libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a><br />
+</dd><dt>xmlNanoFTPList</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</dd><dt>xmlNewChild</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+</dd><dt>xmlNewDocElementContent</dt><dd><a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
+</dd><dt>xmlNewDocRawNode</dt><dd><a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+</dd><dt>xmlNewMutex</dt><dd><a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+</dd><dt>xmlNewNode</dt><dd><a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
+</dd><dt>xmlNewTextChild</dt><dd><a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+</dd><dt>xmlNewTextWriter</dt><dd><a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterFilename">xmlNewTextWriterFilename</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+</dd><dt>xmlNodeDumpOutput</dt><dd><a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+</dd><dt>xmlNodeListGetString</dt><dd><a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+</dd><dt>xmlNodePtr</dt><dd><a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNodeList">xmlDocCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+</dd><dt>xmlNodeSetContent</dt><dd><a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+</dd><dt>xmlNodeSetContentLen</dt><dd><a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+</dd><dt>xmlNodeSetPtr</dt><dd><a href="html/libxml-xpath.html#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a><br />
+</dd><dt>xmlNotationPtr</dt><dd><a href="html/libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a><br />
+</dd><dt>xmlNotationTablePtr</dt><dd><a href="html/libxml-valid.html#xmlCopyNotationTable">xmlCopyNotationTable</a><br />
+</dd><dt>xmlNs</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+</dd><dt>xmlNsPtr</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-SAX.html#getNamespace">getNamespace</a><br />
+<a href="html/libxml-tree.html#xmlCopyNamespace">xmlCopyNamespace</a><br />
+<a href="html/libxml-tree.html#xmlCopyNamespaceList">xmlCopyNamespaceList</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+<a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
+</dd><dt>xmlOutputBuffer</dt><dd><a href="html/libxml-tree.html#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a><br />
+</dd><dt>xmlOutputBufferClose</dt><dd><a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+</dd><dt>xmlOutputBufferPtr</dt><dd><a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a><br />
+</dd><dt>xmlOutputCloseCallback</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+</dd><dt>xmlOutputMatchCallback</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+</dd><dt>xmlOutputOpenCallback</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+</dd><dt>xmlOutputWriteCallback</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+</dd><dt>xmlParseAttValue</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>xmlParseChunk</dt><dd><a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+</dd><dt>xmlParseElementContentDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</dd><dt>xmlParseElementDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+</dd><dt>xmlParseExternalID</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+</dd><dt>xmlParseFile</dt><dd><a href="html/libxml-catalog.html#xmlParseCatalogFile">xmlParseCatalogFile</a><br />
+</dd><dt>xmlParseNamespace:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>xmlParseURI</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>xmlParserCtxt</dt><dd><a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
+<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
+</dd><dt>xmlParserCtxtPtr</dt><dd><a href="html/libxml-parser.html#xmlNewParserCtxt">xmlNewParserCtxt</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+</dd><dt>xmlParserError</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+</dd><dt>xmlParserErrors</dt><dd><a href="html/libxml-DOCBparser.html#docbParseChunk">docbParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseChunk">htmlParseChunk</a><br />
+<a href="html/libxml-parser.html#xmlParseChunk">xmlParseChunk</a><br />
+</dd><dt>xmlParserFindNodeInfoIndex</dt><dd><a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+</dd><dt>xmlParserHandleReference</dt><dd><a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+</dd><dt>xmlParserInputBuffer</dt><dd><a href="html/libxml-tree.html#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a><br />
+</dd><dt>xmlParserInputBufferPtr</dt><dd><a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
+</dd><dt>xmlParserInputPtr</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlFreeInputStream">xmlFreeInputStream</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileContext">xmlParserPrintFileContext</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileInfo">xmlParserPrintFileInfo</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</dd><dt>xmlParserNodeInfo</dt><dd><a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
+</dd><dt>xmlParserProperties</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+</dd><dt>xmlPattern</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a><br />
+</dd><dt>xmlPatternFlags</dt><dd><a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+</dd><dt>xmlPatternGetStreamCtxt</dt><dd><a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
+</dd><dt>xmlPatterncompile</dt><dd><a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>xmlPopInput:</dt><dd><a href="html/libxml-parserInternals.html#xmlPopInput">xmlPopInput</a><br />
+</dd><dt>xmlPushInput:</dt><dd><a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+</dd><dt>xmlRFreeMutex</dt><dd><a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
+</dd><dt>xmlRMutexLock</dt><dd><a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
+</dd><dt>xmlRMutexUnlock</dt><dd><a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
+</dd><dt>xmlRNewMutex</dt><dd><a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+</dd><dt>xmlReader</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_READER_ENABLED">LIBXML_READER_ENABLED</a><br />
+</dd><dt>xmlReaderTypes</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>xmlRefPtr</dt><dd><a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+</dd><dt>xmlRelaxNGParserFlag</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
+</dd><dt>xmlRelaxNGValidatePushElement</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+</dd><dt>xmlSAX2Attribute</dt><dd><a href="html/libxml-SAX.html#attribute">attribute</a><br />
+</dd><dt>xmlSAX2AttributeDecl</dt><dd><a href="html/libxml-SAX.html#attributeDecl">attributeDecl</a><br />
+</dd><dt>xmlSAX2CDataBlock</dt><dd><a href="html/libxml-SAX.html#cdataBlock">cdataBlock</a><br />
+</dd><dt>xmlSAX2Characters</dt><dd><a href="html/libxml-SAX.html#characters">characters</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+</dd><dt>xmlSAX2Comment</dt><dd><a href="html/libxml-SAX.html#comment">comment</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Comment">xmlSAX2Comment</a><br />
+</dd><dt>xmlSAX2ElementDecl</dt><dd><a href="html/libxml-SAX.html#elementDecl">elementDecl</a><br />
+</dd><dt>xmlSAX2EndDocument</dt><dd><a href="html/libxml-SAX.html#endDocument">endDocument</a><br />
+</dd><dt>xmlSAX2EndElement</dt><dd><a href="html/libxml-SAX.html#endElement">endElement</a><br />
+</dd><dt>xmlSAX2EntityDecl</dt><dd><a href="html/libxml-SAX.html#entityDecl">entityDecl</a><br />
+</dd><dt>xmlSAX2ExternalSubset</dt><dd><a href="html/libxml-SAX.html#externalSubset">externalSubset</a><br />
+</dd><dt>xmlSAX2GetColumnNumber</dt><dd><a href="html/libxml-SAX.html#getColumnNumber">getColumnNumber</a><br />
+</dd><dt>xmlSAX2GetEntity</dt><dd><a href="html/libxml-SAX.html#getEntity">getEntity</a><br />
+</dd><dt>xmlSAX2GetLineNumber</dt><dd><a href="html/libxml-SAX.html#getLineNumber">getLineNumber</a><br />
+</dd><dt>xmlSAX2GetParameterEntity</dt><dd><a href="html/libxml-SAX.html#getParameterEntity">getParameterEntity</a><br />
+</dd><dt>xmlSAX2GetPublicId</dt><dd><a href="html/libxml-SAX.html#getPublicId">getPublicId</a><br />
+</dd><dt>xmlSAX2GetSystemId</dt><dd><a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+</dd><dt>xmlSAX2HasExternalSubset</dt><dd><a href="html/libxml-SAX.html#hasExternalSubset">hasExternalSubset</a><br />
+</dd><dt>xmlSAX2HasInternalSubset</dt><dd><a href="html/libxml-SAX.html#hasInternalSubset">hasInternalSubset</a><br />
+</dd><dt>xmlSAX2IgnorableWhitespace</dt><dd><a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>xmlSAX2InitDefaultSAXHandler</dt><dd><a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+</dd><dt>xmlSAX2InitDocbDefaultSAXHandler</dt><dd><a href="html/libxml-SAX.html#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a><br />
+</dd><dt>xmlSAX2InitHtmlDefaultSAXHandler</dt><dd><a href="html/libxml-SAX.html#inithtmlDefaultSAXHandler">inithtmlDefaultSAXHandler</a><br />
+</dd><dt>xmlSAX2InternalSubset</dt><dd><a href="html/libxml-SAX.html#internalSubset">internalSubset</a><br />
+</dd><dt>xmlSAX2IsStandalone</dt><dd><a href="html/libxml-SAX.html#isStandalone">isStandalone</a><br />
+</dd><dt>xmlSAX2NotationDecl</dt><dd><a href="html/libxml-SAX.html#notationDecl">notationDecl</a><br />
+</dd><dt>xmlSAX2ProcessingInstruction</dt><dd><a href="html/libxml-SAX.html#processingInstruction">processingInstruction</a><br />
+</dd><dt>xmlSAX2Reference</dt><dd><a href="html/libxml-SAX.html#reference">reference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Reference">xmlSAX2Reference</a><br />
+</dd><dt>xmlSAX2ResolveEntity</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</dd><dt>xmlSAX2StartDocument</dt><dd><a href="html/libxml-SAX.html#startDocument">startDocument</a><br />
+</dd><dt>xmlSAX2StartElement</dt><dd><a href="html/libxml-SAX.html#startElement">startElement</a><br />
+</dd><dt>xmlSAX2UnparsedEntityDecl</dt><dd><a href="html/libxml-SAX.html#unparsedEntityDecl">unparsedEntityDecl</a><br />
+</dd><dt>xmlSAXHandlerPtr</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+</dd><dt>xmlSAXVersion</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+</dd><dt>xmlSaveOptions</dt><dd><a href="html/libxml-xmlsave.html#xmlSaveToBuffer">xmlSaveToBuffer</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+</dd><dt>xmlSchemaSAXPlug</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+</dd><dt>xmlSchemaValType</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
+</dd><dt>xmlSchemaValidOption</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+</dd><dt>xmlSchematronValidOptions</dt><dd><a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+</dd><dt>xmlSetExternalEntityLoader</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</dd><dt>xmlSnprintfElementContent</dt><dd><a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
+</dd><dt>xmlStrcmp</dt><dd><a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+</dd><dt>xmlStrdup</dt><dd><a href="html/libxml-tree.html#xmlNewNode">xmlNewNode</a><br />
+</dd><dt>xmlStreamPush</dt><dd><a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+</dd><dt>xmlStringDecodeEntities</dt><dd><a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+</dd><dt>xmlStringGetNodeList</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+</dd><dt>xmlStrncat</dt><dd><a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+</dd><dt>xmlStrncmp</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Charcmp">xmlUTF8Charcmp</a><br />
+</dd><dt>xmlTextReader</dt><dd><a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFile">xmlReaderNewFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewMemory">xmlReaderNewMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewWalker">xmlReaderNewWalker</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+</dd><dt>xmlTextReaderCurrentDoc</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+</dd><dt>xmlTextReaderLocatorPtr</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a><br />
+</dd><dt>xmlTextReaderRead</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+</dd><dt>xmlTextWriterStartDTDEntity</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+</dd><dt>xmlTextWriterWriteDTD</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
+</dd><dt>xmlTextWriterWritePI</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a><br />
+</dd><dt>xmlURI</dt><dd><a href="html/libxml-uri.html#xmlCreateURI">xmlCreateURI</a><br />
+<a href="html/libxml-uri.html#xmlFreeURI">xmlFreeURI</a><br />
+<a href="html/libxml-uri.html#xmlPrintURI">xmlPrintURI</a><br />
+<a href="html/libxml-uri.html#xmlSaveUri">xmlSaveUri</a><br />
+</dd><dt>xmlURIEscapeStr</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>xmlURIFromPath</dt><dd><a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+</dd><dt>xmlURIPtr</dt><dd><a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+</dd><dt>xmlUnlinkNode</dt><dd><a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
+</dd><dt>xmlUnlockLibrary</dt><dd><a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
+</dd><dt>xmlValidCtxtPtr</dt><dd><a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</dd><dt>xmlValidGetValidElements</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</dd><dt>xmlValidateAttributeDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>xmlValidateAttributeValue</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+</dd><dt>xmlValidateOneAttribute</dt><dd><a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+</dd><dt>xmlWriter</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a><br />
+</dd><dt>xmlXPathCheckError</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathPopBoolean">xmlXPathPopBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopExternal">xmlXPathPopExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNumber">xmlXPathPopNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopString">xmlXPathPopString</a><br />
+</dd><dt>xmlXPathCompExprPtr</dt><dd><a href="html/libxml-xpath.html#xmlXPathCompile">xmlXPathCompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a><br />
+</dd><dt>xmlXPathContext</dt><dd><a href="html/libxml-xpath.html#xmlXPathFreeContext">xmlXPathFreeContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</dd><dt>xmlXPathError</dt><dd><a href="">err</a><br />
+</dd><dt>xmlXPathEval</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
+</dd><dt>xmlXPathEvalPredicate</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+</dd><dt>xmlXPathFreeObject</dt><dd><a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+</dd><dt>xmlXPathFunction</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookupNS">xmlXPathFunctionLookupNS</a><br />
+</dd><dt>xmlXPathNodeTrailingSorted</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+</dd><dt>xmlXPathObject</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>xmlXPathObjectPtr</dt><dd><a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeObject">xmlXPathFreeObject</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewBoolean">xmlXPathNewBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewCString">xmlXPathNewCString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewFloat">xmlXPathNewFloat</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSetList">xmlXPathNewNodeSetList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewString">xmlXPathNewString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapNodeSet">xmlXPathWrapNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetCreate">xmlXPtrLocationSetCreate</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodeSet">xmlXPtrNewLocationSetNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodes">xmlXPtrNewRangeNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrWrapLocationSet">xmlXPtrWrapLocationSet</a><br />
+</dd><dt>xmlXPathParserContext</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathFreeParserContext">xmlXPathFreeParserContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewParserContext">xmlXPathNewParserContext</a><br />
+</dd><dt>xmlXPathTrailingSorted</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+</dd><dt>xmlns</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+</dd><dt>xmlns:???</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+</dd><dt>xmltextReader</dt><dd><a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForMemory">xmlReaderForMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewMemory">xmlReaderNewMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewWalker">xmlReaderNewWalker</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderWalker">xmlReaderWalker</a><br />
+</dd><dt>xpath</dt><dd><a href="html/libxml-debugXML.html#xmlShellPrintXPathError">xmlShellPrintXPathError</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</dd><dt>xpointer</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_PARSE_XPOINTER">XINCLUDE_PARSE_XPOINTER</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk29.html b/libxml2-2.9.10/doc/APIchunk29.html
new file mode 100644
index 0000000..b4b7fc0
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk29.html
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index y-z for libxml2</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>API Alphabetic Index y-z for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter y:</h2><dl><dt>year</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</dd><dt>yes</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-tree.html#xmlNodeIsText">xmlNodeIsText</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDocument">xmlTextWriterStartDocument</a><br />
+</dd><dt>yet</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+</dd><dt>you</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+</dd><dt>your</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+</dd></dl><h2>Letter z:</h2><dl><dt>zero</dt><dd><a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseChunk">docbParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseChunk">htmlParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
+<a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseChunk">xmlParseChunk</a><br />
+<a href="html/libxml-parser.html#xmlReadDoc">xmlReadDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>zero-based</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a><br />
+</dd><dt>zeros</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>zlib</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk3.html b/libxml2-2.9.10/doc/APIchunk3.html
new file mode 100644
index 0000000..77ee452
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk3.html
@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index F-I for libxml2</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>API Alphabetic Index F-I for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter F:</h2><dl><dt>FALSE</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a><br />
+</dd><dt>FFFE</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+</dd><dt>FFFF</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+</dd><dt>FIXED</dt><dd><a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>FREE</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>Facet</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewFacet">xmlSchemaNewFacet</a><br />
+</dd><dt>False</dt><dd><a href="html/libxml-debugXML.html#xmlBoolToText">xmlBoolToText</a><br />
+</dd><dt>Fetch</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+</dd><dt>File</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>Fills</dt><dd><a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+</dd><dt>Find</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-valid.html#xmlGetRefs">xmlGetRefs</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup">xmlHashQLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup2">xmlHashQLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup3">xmlHashQLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+</dd><dt>Finds</dt><dd><a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+</dd><dt>First</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+</dd><dt>Fixed</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+</dd><dt>Float</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+</dd><dt>Flush</dt><dd><a href="html/libxml-xmlsave.html#xmlSaveFlush">xmlSaveFlush</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterFlush">xmlTextWriterFlush</a><br />
+</dd><dt>For</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetLastError">xmlResetLastError</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+</dd><dt>Form</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+</dd><dt>Formats</dt><dd><a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPatherror">xmlXPatherror</a><br />
+</dd><dt>Formatting</dt><dd><a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br />
+</dd><dt>Formed</dt><dd><a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>Fragment</dt><dd><a href="html/libxml-tree.html#xmlNewDocFragment">xmlNewDocFragment</a><br />
+</dd><dt>Frameset</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>Frees</dt><dd><a href="html/libxml-tree.html#xmlBufferFree">xmlBufferFree</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapFreeCtxt">xmlDOMWrapFreeCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPFreeCtxt">xmlNanoFTPFreeCtxt</a><br />
+</dd><dt>Front-end</dt><dd><a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+</dd><dt>Function</dt><dd><a href="html/libxml-tree.html#xmlBufContent">xmlBufContent</a><br />
+<a href="html/libxml-tree.html#xmlBufEnd">xmlBufEnd</a><br />
+<a href="html/libxml-tree.html#xmlBufUse">xmlBufUse</a><br />
+<a href="html/libxml-tree.html#xmlBufferContent">xmlBufferContent</a><br />
+<a href="html/libxml-tree.html#xmlBufferLength">xmlBufferLength</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookupNS">xmlXPathFunctionLookupNS</a><br />
+</dd></dl><h2>Letter G:</h2><dl><dt>GCC</dt><dd><a href="html/libxml-xmlversion.html#ATTRIBUTE_UNUSED">ATTRIBUTE_UNUSED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ATTR_ALLOC_SIZE">LIBXML_ATTR_ALLOC_SIZE</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ATTR_FORMAT">LIBXML_ATTR_FORMAT</a><br />
+</dd><dt>GEDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+</dd><dt>GET</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+</dd><dt>GeneralPunctuation</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsGeneralPunctuation">xmlUCSIsGeneralPunctuation</a><br />
+</dd><dt>Generic</dt><dd><a href="html/libxml-encoding.html#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</dd><dt>GeometricShapes</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsGeometricShapes">xmlUCSIsGeometricShapes</a><br />
+</dd><dt>Georgian</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsGeorgian">xmlUCSIsGeorgian</a><br />
+</dd><dt>Gets</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderReadState">xmlTextReaderReadState</a><br />
+</dd><dt>Gives</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
+</dd><dt>Global</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+</dd><dt>Gothic</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsGothic">xmlUCSIsGothic</a><br />
+</dd><dt>Greek</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsGreek">xmlUCSIsGreek</a><br />
+</dd><dt>GreekExtended</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsGreekExtended">xmlUCSIsGreekExtended</a><br />
+</dd><dt>GreekandCoptic</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsGreekandCoptic">xmlUCSIsGreekandCoptic</a><br />
+</dd><dt>Group</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</dd><dt>Grow</dt><dd><a href="html/libxml-tree.html#xmlBufferGrow">xmlBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+</dd><dt>Guess</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+</dd><dt>Gujarati</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsGujarati">xmlUCSIsGujarati</a><br />
+</dd><dt>Gurmukhi</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsGurmukhi">xmlUCSIsGurmukhi</a><br />
+</dd></dl><h2>Letter H:</h2><dl><dt>HTML_DEPRECATED</dt><dd><a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+</dd><dt>HTML_INVALID</dt><dd><a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+</dd><dt>HTML_NA</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</dd><dt>HTML_REQUIRED</dt><dd><a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+</dd><dt>HTML_VALID</dt><dd><a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+</dd><dt>Hacking</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+</dd><dt>HalfwidthandFullwidthForms</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsHalfwidthandFullwidthForms">xmlUCSIsHalfwidthandFullwidthForms</a><br />
+</dd><dt>Handle</dt><dd><a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlErrMemory">xmlErrMemory</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathErr">xmlXPathErr</a><br />
+</dd><dt>Handling</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+</dd><dt>HangulCompatibilityJamo</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsHangulCompatibilityJamo">xmlUCSIsHangulCompatibilityJamo</a><br />
+</dd><dt>HangulJamo</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsHangulJamo">xmlUCSIsHangulJamo</a><br />
+</dd><dt>HangulSyllables</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsHangulSyllables">xmlUCSIsHangulSyllables</a><br />
+</dd><dt>Hanunoo</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsHanunoo">xmlUCSIsHanunoo</a><br />
+</dd><dt>Has</dt><dd><a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+</dd><dt>Hash</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>Hebrew</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsHebrew">xmlUCSIsHebrew</a><br />
+</dd><dt>Hence</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+</dd><dt>HighPrivateUseSurrogates</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsHighPrivateUseSurrogates">xmlUCSIsHighPrivateUseSurrogates</a><br />
+</dd><dt>HighSurrogates</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsHighSurrogates">xmlUCSIsHighSurrogates</a><br />
+</dd><dt>Hiragana</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsHiragana">xmlUCSIsHiragana</a><br />
+</dd><dt>Hmm</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsBoolean">xmlSchemaValueGetAsBoolean</a><br />
+</dd><dt>Holds</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+</dd><dt>How</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+</dd><dt>However</dt><dd><a href="html/libxml-DOCBparser.html#docbFreeParserCtxt">docbFreeParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlFreeParserCtxt">htmlFreeParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+</dd></dl><h2>Letter I:</h2><dl><dt>I18N</dt><dd><a href="html/libxml-xmlIO.html#_xmlOutputBuffer">_xmlOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+</dd><dt>IANA</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>IDREF</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+</dd><dt>IDREFS</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+</dd><dt>IDREFs</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+</dd><dt>IDs</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>IEEE</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>IMPLIED</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>IPAExtensions</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsIPAExtensions">xmlUCSIsIPAExtensions</a><br />
+</dd><dt>ISO</dt><dd><a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>ISO-8859-</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a><br />
+</dd><dt>ISO-Latin</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+</dd><dt>ISO639Code</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>ISOLatin</dt><dd><a href="html/libxml-xmlIO.html#_xmlOutputBuffer">_xmlOutputBuffer</a><br />
+</dd><dt>IS_BLANK</dt><dd><a href="html/libxml-parserInternals.html#IS_BLANK_CH">IS_BLANK_CH</a><br />
+</dd><dt>IS_CHAR</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR_CH">IS_CHAR_CH</a><br />
+</dd><dt>IS_DIGIT</dt><dd><a href="html/libxml-parserInternals.html#IS_DIGIT_CH">IS_DIGIT_CH</a><br />
+</dd><dt>IS_EXTENDER</dt><dd><a href="html/libxml-parserInternals.html#IS_EXTENDER_CH">IS_EXTENDER_CH</a><br />
+</dd><dt>IS_LETTER</dt><dd><a href="html/libxml-parserInternals.html#IS_LETTER_CH">IS_LETTER_CH</a><br />
+</dd><dt>IS_PUBIDCHAR</dt><dd><a href="html/libxml-parserInternals.html#IS_PUBIDCHAR_CH">IS_PUBIDCHAR_CH</a><br />
+</dd><dt>IanaCode</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>Identifier</dt><dd><a href="html/libxml-catalog.html#xmlACatalogResolve">xmlACatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolve">xmlCatalogResolve</a><br />
+</dd><dt>Identifiers</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a><br />
+</dd><dt>Ideographic</dt><dd><a href="html/libxml-parserInternals.html#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a><br />
+<a href="html/libxml-parserInternals.html#IS_LETTER">IS_LETTER</a><br />
+<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
+</dd><dt>IdeographicDescriptionCharacters</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsIdeographicDescriptionCharacters">xmlUCSIsIdeographicDescriptionCharacters</a><br />
+</dd><dt>Ignore</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a><br />
+</dd><dt>Ignored</dt><dd><a href="html/libxml-parserInternals.html#xmlCopyChar">xmlCopyChar</a><br />
+</dd><dt>Implements</dt><dd><a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-debugXML.html#xmlShellBase">xmlShellBase</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDir">xmlShellDir</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+<a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+<a href="html/libxml-debugXML.html#xmlShellLoad">xmlShellLoad</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellSave">xmlShellSave</a><br />
+<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</dd><dt>Included</dt><dd><a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>Increase</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
+</dd><dt>Increment</dt><dd><a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
+</dd><dt>Indicate</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+</dd><dt>Indicates</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaWildcard">_xmlSchemaWildcard</a><br />
+</dd><dt>Infinity</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>Initial</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataGetInitState">xmlAutomataGetInitState</a><br />
+</dd><dt>Initialization</dt><dd><a href="html/libxml-parser.html#xmlInitParser">xmlInitParser</a><br />
+</dd><dt>Initialize</dt><dd><a href="html/libxml-SAX2.html#docbDefaultSAXHandlerInit">docbDefaultSAXHandlerInit</a><br />
+<a href="html/libxml-SAX2.html#htmlDefaultSAXHandlerInit">htmlDefaultSAXHandlerInit</a><br />
+<a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-SAX.html#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#inithtmlDefaultSAXHandler">inithtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlDefaultSAXHandlerInit">xmlDefaultSAXHandlerInit</a><br />
+<a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
+<a href="html/libxml-xmlmemory.html#xmlInitMemory">xmlInitMemory</a><br />
+<a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlInitParserCtxt">xmlInitParserCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGInitTypes">xmlRelaxNGInitTypes</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDocbDefaultSAXHandler">xmlSAX2InitDocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitHtmlDefaultSAXHandler">xmlSAX2InitHtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXVersion">xmlSAXVersion</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaInitTypes">xmlSchemaInitTypes</a><br />
+<a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoot">xmlXPathRoot</a><br />
+</dd><dt>Initially</dt><dd><a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+</dd><dt>Initiate</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+</dd><dt>Input</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a><br />
+<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+</dd><dt>Insert</dt><dd><a href="html/libxml-list.html#xmlListAppend">xmlListAppend</a><br />
+<a href="html/libxml-list.html#xmlListInsert">xmlListInsert</a><br />
+<a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
+</dd><dt>Instruction</dt><dd><a href="html/libxml-catalog.html#XML_CATALOG_PI">XML_CATALOG_PI</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePI">xmlParsePI</a><br />
+</dd><dt>Intended</dt><dd><a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+</dd><dt>Internal</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>Introduced</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+</dd><dt>Irregular</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk4.html b/libxml2-2.9.10/doc/APIchunk4.html
new file mode 100644
index 0000000..30a6846
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk4.html
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index J-N for libxml2</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>API Alphabetic Index J-N for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter J:</h2><dl><dt>Jan</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>Java</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+</dd></dl><h2>Letter K:</h2><dl><dt>Kanbun</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsKanbun">xmlUCSIsKanbun</a><br />
+</dd><dt>KangxiRadicals</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsKangxiRadicals">xmlUCSIsKangxiRadicals</a><br />
+</dd><dt>Kannada</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsKannada">xmlUCSIsKannada</a><br />
+</dd><dt>Katakana</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsKatakana">xmlUCSIsKatakana</a><br />
+</dd><dt>KatakanaPhoneticExtensions</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsKatakanaPhoneticExtensions">xmlUCSIsKatakanaPhoneticExtensions</a><br />
+</dd><dt>Khmer</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsKhmer">xmlUCSIsKhmer</a><br />
+</dd><dt>KhmerSymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsKhmerSymbols">xmlUCSIsKhmerSymbols</a><br />
+</dd></dl><h2>Letter L:</h2><dl><dt>Langcode</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>LanguageID</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>Lao</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsLao">xmlUCSIsLao</a><br />
+</dd><dt>Last</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+</dd><dt>Latin</dt><dd><a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+</dd><dt>Latin-1Supplement</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsLatin1Supplement">xmlUCSIsLatin1Supplement</a><br />
+</dd><dt>LatinExtended-A</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsLatinExtendedA">xmlUCSIsLatinExtendedA</a><br />
+</dd><dt>LatinExtended-B</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsLatinExtendedB">xmlUCSIsLatinExtendedB</a><br />
+</dd><dt>LatinExtendedAdditional</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsLatinExtendedAdditional">xmlUCSIsLatinExtendedAdditional</a><br />
+</dd><dt>Legal</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+</dd><dt>Length</dt><dd><a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+</dd><dt>Letter</dt><dd><a href="html/libxml-parserInternals.html#IS_LETTER">IS_LETTER</a><br />
+<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseName">xmlXPathParseName</a><br />
+</dd><dt>LetterlikeSymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsLetterlikeSymbols">xmlUCSIsLetterlikeSymbols</a><br />
+</dd><dt>Like</dt><dd><a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</dd><dt>Limbu</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsLimbu">xmlUCSIsLimbu</a><br />
+</dd><dt>LinearBIdeograms</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsLinearBIdeograms">xmlUCSIsLinearBIdeograms</a><br />
+</dd><dt>LinearBSyllabary</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsLinearBSyllabary">xmlUCSIsLinearBSyllabary</a><br />
+</dd><dt>List</dt><dd><a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>Literal</dt><dd><a href="html/libxml-parserInternals.html#xmlParseSystemLiteral">xmlParseSystemLiteral</a><br />
+</dd><dt>Load</dt><dd><a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-parser.html#xmlParseDTD">xmlParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a><br />
+</dd><dt>Local</dt><dd><a href="html/libxml-xmlIO.html#_xmlOutputBuffer">_xmlOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+</dd><dt>LocalPart</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+</dd><dt>Location</dt><dd><a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+</dd><dt>LocationSet</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodeSet">xmlXPtrNewLocationSetNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrWrapLocationSet">xmlXPtrWrapLocationSet</a><br />
+</dd><dt>Locator</dt><dd><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+</dd><dt>Lookup</dt><dd><a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
+<a href="html/libxml-encoding.html#xmlGetEncodingAlias">xmlGetEncodingAlias</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+</dd><dt>Loose</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>LowSurrogates</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsLowSurrogates">xmlUCSIsLowSurrogates</a><br />
+</dd><dt>Lzma</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_LZMA_ENABLED">LIBXML_LZMA_ENABLED</a><br />
+</dd></dl><h2>Letter M:</h2><dl><dt>META</dt><dd><a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+</dd><dt>MODIFIER</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>MULT</dt><dd><a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+</dd><dt>MUST</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>Makes</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataSetFinalState">xmlAutomataSetFinalState</a><br />
+</dd><dt>Malayalam</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMalayalam">xmlUCSIsMalayalam</a><br />
+</dd><dt>Maps</dt><dd><a href="html/libxml-tree.html#xmlChildrenNode">xmlChildrenNode</a><br />
+<a href="html/libxml-tree.html#xmlRootNode">xmlRootNode</a><br />
+</dd><dt>Marks</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a><br />
+</dd><dt>Markup</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>Match</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+</dd><dt>MathematicalAlphanumericSymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMathematicalAlphanumericSymbols">xmlUCSIsMathematicalAlphanumericSymbols</a><br />
+</dd><dt>MathematicalOperators</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMathematicalOperators">xmlUCSIsMathematicalOperators</a><br />
+</dd><dt>Max</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+</dd><dt>Maximum</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+</dd><dt>May</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>Memory</dt><dd><a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+</dd><dt>Merge</dt><dd><a href="html/libxml-tree.html#xmlTextMerge">xmlTextMerge</a><br />
+</dd><dt>Merges</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+</dd><dt>Meta</dt><dd><a href="html/libxml-HTMLtree.html#htmlGetMetaEncoding">htmlGetMetaEncoding</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+</dd><dt>Method</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>Mime-Type</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a><br />
+</dd><dt>Minimal</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>Misc</dt><dd><a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMisc">xmlParseMisc</a><br />
+</dd><dt>MiscellaneousMathematicalSymbols-A</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousMathematicalSymbolsA">xmlUCSIsMiscellaneousMathematicalSymbolsA</a><br />
+</dd><dt>MiscellaneousMathematicalSymbols-B</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousMathematicalSymbolsB">xmlUCSIsMiscellaneousMathematicalSymbolsB</a><br />
+</dd><dt>MiscellaneousSymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousSymbols">xmlUCSIsMiscellaneousSymbols</a><br />
+</dd><dt>MiscellaneousSymbolsandArrows</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousSymbolsandArrows">xmlUCSIsMiscellaneousSymbolsandArrows</a><br />
+</dd><dt>MiscellaneousTechnical</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousTechnical">xmlUCSIsMiscellaneousTechnical</a><br />
+</dd><dt>Mixed</dt><dd><a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</dd><dt>Mongolian</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMongolian">xmlUCSIsMongolian</a><br />
+</dd><dt>More</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>Move</dt><dd><a href="html/libxml-list.html#xmlListCopy">xmlListCopy</a><br />
+</dd><dt>Moves</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttribute">xmlTextReaderMoveToAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNs">xmlTextReaderMoveToAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToFirstAttribute">xmlTextReaderMoveToFirstAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToNextAttribute">xmlTextReaderMoveToNextAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
+</dd><dt>MusicalSymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMusicalSymbols">xmlUCSIsMusicalSymbols</a><br />
+</dd><dt>Myanmar</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMyanmar">xmlUCSIsMyanmar</a><br />
+</dd></dl><h2>Letter N:</h2><dl><dt>NAME</dt><dd><a href="html/libxml-parser.html#xmlParseDTD">xmlParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a><br />
+</dd><dt>NCName</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+</dd><dt>NCNameChar</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+</dd><dt>NDATA</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+</dd><dt>NDataDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+</dd><dt>NDataDecl?</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+</dd><dt>NMTOKEN</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+</dd><dt>NMTOKENS</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+</dd><dt>NMToken</dt><dd><a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
+</dd><dt>NOTATION</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>NOTE</dt><dd><a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+<a href="html/libxml-parser.html#xmlReadFd">xmlReadFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+</dd><dt>NOTE:</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+</dd><dt>NRK</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>NSDef</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+</dd><dt>NaN</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>NameChar</dt><dd><a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNmtoken">xmlParseNmtoken</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseName">xmlXPathParseName</a><br />
+</dd><dt>Names</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNamesValue">xmlValidateNamesValue</a><br />
+</dd><dt>Namespace</dt><dd><a href="html/libxml-tree.html#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a><br />
+<a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+</dd><dt>Needed</dt><dd><a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+</dd><dt>Nesting</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>New</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>Nmtoken</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNmtoken">xmlParseNmtoken</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokenValue">xmlValidateNmtokenValue</a><br />
+</dd><dt>Nmtokens</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNmtoken">xmlParseNmtoken</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokensValue">xmlValidateNmtokensValue</a><br />
+</dd><dt>Node</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a><br />
+</dd><dt>NodeInfo</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>NodeList</dt><dd><a href="html/libxml-xpath.html#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+</dd><dt>NodePtr</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapNodeSet">xmlXPathWrapNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+</dd><dt>NodeSet</dt><dd><a href="html/libxml-xpath.html#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSetList">xmlXPathNewNodeSetList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a><br />
+</dd><dt>NodeSetList</dt><dd><a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+</dd><dt>NodeType</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIsNodeType">xmlXPathIsNodeType</a><br />
+</dd><dt>Nodeset</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSetList">xmlXPathNewNodeSetList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapNodeSet">xmlXPathWrapNodeSet</a><br />
+</dd><dt>Non-static</dt><dd><a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+</dd><dt>Normalization</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+</dd><dt>Normalization:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+</dd><dt>Not</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+</dd><dt>Notation</dt><dd><a href="html/libxml-tree.html#_xmlNotation">_xmlNotation</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationUse">xmlValidateNotationUse</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+</dd><dt>NotationDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+</dd><dt>NotationType</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+</dd><dt>Note:</dt><dd><a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-entities.html#xmlGetDtdEntity">xmlGetDtdEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+</dd><dt>Number</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>NumberForms</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsNumberForms">xmlUCSIsNumberForms</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk5.html b/libxml2-2.9.10/doc/APIchunk5.html
new file mode 100644
index 0000000..fe811d5
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk5.html
@@ -0,0 +1,293 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index O-P for libxml2</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>API Alphabetic Index O-P for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter O:</h2><dl><dt>OBSOLETE:</dt><dd><a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+</dd><dt>ONCE</dt><dd><a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+</dd><dt>OPT</dt><dd><a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+</dd><dt>OUT</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+</dd><dt>OUT:</dt><dd><a href="html/libxml-HTMLtree.html#htmlDocDumpMemory">htmlDocDumpMemory</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+</dd><dt>Obsolete</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</dd><dt>Obtain</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a><br />
+</dd><dt>Ogham</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOgham">xmlUCSIsOgham</a><br />
+</dd><dt>OldItalic</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOldItalic">xmlUCSIsOldItalic</a><br />
+</dd><dt>One</dt><dd><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+</dd><dt>Open</dt><dd><a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+</dd><dt>Opens</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+</dd><dt>OpticalCharacterRecognition</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOpticalCharacterRecognition">xmlUCSIsOpticalCharacterRecognition</a><br />
+</dd><dt>Optional</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>Oriya</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOriya">xmlUCSIsOriya</a><br />
+</dd><dt>Osmanya</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOsmanya">xmlUCSIsOsmanya</a><br />
+</dd><dt>Other</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>Otherwise</dt><dd><a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+</dd><dt>Output</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a><br />
+</dd><dt>OutputBufferCreateFilenameFunc</dt><dd><a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a><br />
+</dd><dt>Override</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+</dd></dl><h2>Letter P:</h2><dl><dt>P32</dt><dd><a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+</dd><dt>PCDATA</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</dd><dt>PEDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+</dd><dt>PEDef</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+</dd><dt>PEReference</dt><dd><a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+</dd><dt>PEs</dt><dd><a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>PITarget</dt><dd><a href="html/libxml-parserInternals.html#xmlParsePI">xmlParsePI</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePITarget">xmlParsePITarget</a><br />
+</dd><dt>PIs</dt><dd><a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+</dd><dt>PLUS</dt><dd><a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+</dd><dt>POST</dt><dd><a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+</dd><dt>PSVI</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+</dd><dt>PUBLIC</dt><dd><a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlCreateIntSubset">xmlCreateIntSubset</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+</dd><dt>PUT</dt><dd><a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+</dd><dt>Parameter</dt><dd><a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>Parameter-entity</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>Parse</dt><dd><a href="html/libxml-DOCBparser.html#docbParseChunk">docbParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseChunk">htmlParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+<a href="html/libxml-parser.html#xmlParseChunk">xmlParseChunk</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseContent">xmlParseContent</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvalExpr">xmlXPathEvalExpr</a><br />
+</dd><dt>Parsed</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+</dd><dt>ParserInputBufferCreateFilenameFunc</dt><dd><a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a><br />
+</dd><dt>Parses</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a><br />
+</dd><dt>Parsing</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>Part</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+</dd><dt>Path</dt><dd><a href="html/libxml-tree.html#xmlGetNodePath">xmlGetNodePath</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+</dd><dt>People</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+</dd><dt>PhoneticExtensions</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsPhoneticExtensions">xmlUCSIsPhoneticExtensions</a><br />
+</dd><dt>Please</dt><dd><a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+</dd><dt>Plug</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+</dd><dt>Pointer</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+</dd><dt>Points</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a><br />
+</dd><dt>Pop</dt><dd><a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+</dd><dt>Pops</dt><dd><a href="html/libxml-parserInternals.html#inputPop">inputPop</a><br />
+<a href="html/libxml-parserInternals.html#namePop">namePop</a><br />
+<a href="html/libxml-parserInternals.html#nodePop">nodePop</a><br />
+<a href="html/libxml-xpathInternals.html#valuePop">valuePop</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopBoolean">xmlXPathPopBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopExternal">xmlXPathPopExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNumber">xmlXPathPopNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopString">xmlXPathPopString</a><br />
+</dd><dt>Position</dt><dd><a href="html/libxml-parser.html#_xmlParserNodeInfo">_xmlParserNodeInfo</a><br />
+</dd><dt>Possibility</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>Precompiled</dt><dd><a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
+</dd><dt>Predicate</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+</dd><dt>PredicateExpr</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+</dd><dt>Prefix</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstName">xmlTextReaderConstName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderName">xmlTextReaderName</a><br />
+</dd><dt>PrefixDef</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+</dd><dt>Print</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegexpPrint">xmlRegexpPrint</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintNode">xmlShellPrintNode</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathError">xmlShellPrintXPathError</a><br />
+</dd><dt>Prints</dt><dd><a href="html/libxml-uri.html#xmlPrintURI">xmlPrintURI</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a><br />
+</dd><dt>PrivateUse</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsPrivateUse">xmlUCSIsPrivateUse</a><br />
+</dd><dt>PrivateUseArea</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsPrivateUseArea">xmlUCSIsPrivateUseArea</a><br />
+</dd><dt>Processing</dt><dd><a href="html/libxml-catalog.html#XML_CATALOG_PI">XML_CATALOG_PI</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePI">xmlParsePI</a><br />
+</dd><dt>Productions</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>Proper</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>Prototype</dt><dd><a href="html/libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a><br />
+</dd><dt>Provide</dt><dd><a href="html/libxml-SAX.html#getColumnNumber">getColumnNumber</a><br />
+<a href="html/libxml-SAX.html#getLineNumber">getLineNumber</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetColumnNumber">xmlSAX2GetColumnNumber</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetLineNumber">xmlSAX2GetLineNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserColumnNumber">xmlTextReaderGetParserColumnNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserLineNumber">xmlTextReaderGetParserLineNumber</a><br />
+</dd><dt>Provides</dt><dd><a href="html/libxml-SAX.html#getPublicId">getPublicId</a><br />
+<a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPEncoding">xmlNanoHTTPEncoding</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRedir">xmlNanoHTTPRedir</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetPublicId">xmlSAX2GetPublicId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderAttributeCount">xmlTextReaderAttributeCount</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
+</dd><dt>Proxy</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</dd><dt>Proxy-Authenticate</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br />
+</dd><dt>PubidChar</dt><dd><a href="html/libxml-parserInternals.html#IS_PUBIDCHAR">IS_PUBIDCHAR</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePubidLiteral">xmlParsePubidLiteral</a><br />
+</dd><dt>PubidLiteral</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePubidLiteral">xmlParsePubidLiteral</a><br />
+</dd><dt>Public</dt><dd><a href="html/libxml-tree.html#_xmlNotation">_xmlNotation</a><br />
+<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>PublicID</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+</dd><dt>Push</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+</dd><dt>Pushes</dt><dd><a href="html/libxml-parserInternals.html#inputPush">inputPush</a><br />
+<a href="html/libxml-parserInternals.html#namePush">namePush</a><br />
+<a href="html/libxml-parserInternals.html#nodePush">nodePush</a><br />
+<a href="html/libxml-xpathInternals.html#valuePush">valuePush</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnBoolean">xmlXPathReturnBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnEmptyNodeSet">xmlXPathReturnEmptyNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnEmptyString">xmlXPathReturnEmptyString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnExternal">xmlXPathReturnExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnFalse">xmlXPathReturnFalse</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnNodeSet">xmlXPathReturnNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnNumber">xmlXPathReturnNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnString">xmlXPathReturnString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnTrue">xmlXPathReturnTrue</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk6.html b/libxml2-2.9.10/doc/APIchunk6.html
new file mode 100644
index 0000000..be524d9
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk6.html
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index Q-R for libxml2</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>API Alphabetic Index Q-R for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter Q:</h2><dl><dt>QName</dt><dd><a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup">xmlHashQLookup</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEndTag">xmlParseEndTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
+<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
+</dd><dt>QNames</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup2">xmlHashQLookup2</a><br />
+</dd><dt>QUIT</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPQuit">xmlNanoFTPQuit</a><br />
+</dd><dt>Qualified</dt><dd><a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+</dd><dt>Query</dt><dd><a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
+<a href="html/libxml-hash.html#xmlHashSize">xmlHashSize</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd></dl><h2>Letter R:</h2><dl><dt>REC</dt><dd><a href="html/libxml-parserInternals.html#IS_BASECHAR">IS_BASECHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_COMBINING">IS_COMBINING</a><br />
+<a href="html/libxml-parserInternals.html#IS_DIGIT">IS_DIGIT</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>REC-xml</dt><dd><a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+</dd><dt>REFs</dt><dd><a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+</dd><dt>REQUIRED</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>RFC</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+<a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+</dd><dt>RFC2396</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd><dt>Raises</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSetArityError">xmlXPathSetArityError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSetError">xmlXPathSetError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSetTypeError">xmlXPathSetTypeError</a><br />
+</dd><dt>Read</dt><dd><a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileRead">xmlFileRead</a><br />
+<a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPRead">xmlIOFTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPRead">xmlIOHTTPRead</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+</dd><dt>Reader</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+</dd><dt>Readers</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+</dd><dt>Reads</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+</dd><dt>Rec</dt><dd><a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+</dd><dt>Receive</dt><dd><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+</dd><dt>Receiving</dt><dd><a href="html/libxml-parser.html#charactersSAXFunc">charactersSAXFunc</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+</dd><dt>Recurse</dt><dd><a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+</dd><dt>Recursion</dt><dd><a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>Ref</dt><dd><a href="html/libxml-tree.html#_xmlRef">_xmlRef</a><br />
+<a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+<a href="html/libxml-valid.html#xmlFreeRefTable">xmlFreeRefTable</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+<a href="html/libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a><br />
+</dd><dt>Reference</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseCharRef">htmlParseCharRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseContent">xmlParseContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+</dd><dt>Reference:</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>References</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+</dd><dt>Reflects</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a><br />
+</dd><dt>Refresh</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+</dd><dt>Reg</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+</dd><dt>Register</dt><dd><a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-entities.html#xmlAddDocEntity">xmlAddDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlAddDtdEntity">xmlAddDtdEntity</a><br />
+<a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
+<a href="html/libxml-valid.html#xmlAddNotationDecl">xmlAddNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+<a href="html/libxml-encoding.html#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFunc">xmlXPathRegisterFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncNS">xmlXPathRegisterFuncNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterNs">xmlXPathRegisterNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariable">xmlXPathRegisterVariable</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
+</dd><dt>RegisterNodeFunc</dt><dd><a href="html/libxml-globals.html#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a><br />
+</dd><dt>Registers</dt><dd><a href="html/libxml-encoding.html#xmlAddEncodingAlias">xmlAddEncodingAlias</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterDefaultOutputCallbacks">xmlRegisterDefaultOutputCallbacks</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterAllFunctions">xmlXPathRegisterAllFunctions</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncLookup">xmlXPathRegisterFuncLookup</a><br />
+</dd><dt>Relative</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+</dd><dt>Relax-NG</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserStructuredErrors">xmlRelaxNGSetParserStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a><br />
+</dd><dt>RelaxNG</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGCleanupTypes">xmlRelaxNGCleanupTypes</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGDump">xmlRelaxNGDump</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGDumpTree">xmlRelaxNGDumpTree</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFree">xmlRelaxNGFree</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+</dd><dt>RelaxNGs</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewMemParserCtxt">xmlRelaxNGNewMemParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a><br />
+</dd><dt>Remove</dt><dd><a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-tree.html#xmlBufferShrink">xmlBufferShrink</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-list.html#xmlListClear">xmlListClear</a><br />
+<a href="html/libxml-list.html#xmlListRemoveAll">xmlListRemoveAll</a><br />
+<a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
+<a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-valid.html#xmlRemoveID">xmlRemoveID</a><br />
+<a href="html/libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a><br />
+<a href="html/libxml-tree.html#xmlUnsetNsProp">xmlUnsetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlUnsetProp">xmlUnsetProp</a><br />
+</dd><dt>Removes</dt><dd><a href="html/libxml-list.html#xmlListPopBack">xmlListPopBack</a><br />
+<a href="html/libxml-list.html#xmlListPopFront">xmlListPopFront</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a><br />
+</dd><dt>Replace</dt><dd><a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+</dd><dt>Replaces</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a><br />
+</dd><dt>Required</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+</dd><dt>Reset</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReset">htmlCtxtReset</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReset">xmlCtxtReset</a><br />
+<a href="html/libxml-parser.html#xmlCtxtResetPush">xmlCtxtResetPush</a><br />
+</dd><dt>Resize</dt><dd><a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
+</dd><dt>Resolves</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+</dd><dt>Resolving</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+</dd><dt>Resource</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>Retrieve</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsValid">xmlTextReaderIsValid</a><br />
+</dd><dt>Return</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_TYPE0">CHECK_TYPE0</a><br />
+</dd><dt>Returns</dt><dd><a href="html/libxml-HTMLparser.html#htmlDefaultSubelement">htmlDefaultSubelement</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlRequiredAttrs">htmlRequiredAttrs</a><br />
+<a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetDtdEntity">xmlGetDtdEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetParameterEntity">xmlGetParameterEntity</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-list.html#xmlLinkGetData">xmlLinkGetData</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCheckError">xmlXPathCheckError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathGetContextNode">xmlXPathGetContextNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathGetDocument">xmlXPathGetDocument</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathGetError">xmlXPathGetError</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetIsEmpty">xmlXPathNodeSetIsEmpty</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStackIsExternal">xmlXPathStackIsExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStackIsNodeSet">xmlXPathStackIsNodeSet</a><br />
+</dd><dt>Returns:</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+</dd><dt>Reverse</dt><dd><a href="html/libxml-list.html#xmlListReverse">xmlListReverse</a><br />
+</dd><dt>Root</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>Runic</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsRunic">xmlUCSIsRunic</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk7.html b/libxml2-2.9.10/doc/APIchunk7.html
new file mode 100644
index 0000000..2432975
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk7.html
@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index S-S for libxml2</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>API Alphabetic Index S-S for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter S:</h2><dl><dt>SAX1</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a><br />
+</dd><dt>SAX2</dt><dd><a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
+<a href="html/libxml-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a><br />
+<a href="html/libxml-SAX.html#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#inithtmlDefaultSAXHandler">inithtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-SAX2.html#xmlDefaultSAXHandlerInit">xmlDefaultSAXHandlerInit</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDocbDefaultSAXHandler">xmlSAX2InitDocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitHtmlDefaultSAXHandler">xmlSAX2InitHtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+</dd><dt>SAX::substituteEntities</dt><dd><a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+</dd><dt>SDDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+</dd><dt>SDDecl?</dt><dd><a href="html/libxml-parserInternals.html#xmlParseXMLDecl">xmlParseXMLDecl</a><br />
+</dd><dt>SEQ</dt><dd><a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+</dd><dt>SGML</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-DOCBparser.html#docbFreeParserCtxt">docbFreeParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseDoc">docbParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseDocument">docbParseDocument</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogConvert">xmlCatalogConvert</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogIsEmpty">xmlCatalogIsEmpty</a><br />
+<a href="html/libxml-catalog.html#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlNewCatalog">xmlNewCatalog</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+</dd><dt>SGMLSOURCE</dt><dd><a href="html/libxml-SAX.html#getPublicId">getPublicId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetPublicId">xmlSAX2GetPublicId</a><br />
+</dd><dt>SITE</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+</dd><dt>STag</dt><dd><a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>SYSTEM</dt><dd><a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-SAX.html#externalSubset">externalSubset</a><br />
+<a href="html/libxml-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a><br />
+<a href="html/libxml-SAX.html#internalSubset">internalSubset</a><br />
+<a href="html/libxml-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ExternalSubset">xmlSAX2ExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InternalSubset">xmlSAX2InternalSubset</a><br />
+</dd><dt>Same</dt><dd><a href="html/libxml-parserInternals.html#IS_PUBIDCHAR_CH">IS_PUBIDCHAR_CH</a><br />
+</dd><dt>Save</dt><dd><a href="html/libxml-xmlerror.html#xmlCopyError">xmlCopyError</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-uri.html#xmlSaveUri">xmlSaveUri</a><br />
+</dd><dt>Scan</dt><dd><a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
+<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+</dd><dt>Schema</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaDump">xmlSchemaDump</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFree">xmlSchemaFree</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFreeType">xmlSchemaFreeType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+</dd><dt>Schemas</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGCleanupTypes">xmlRelaxNGCleanupTypes</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCleanupTypes">xmlSchemaCleanupTypes</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeValue">xmlSchemaFreeValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaInitTypes">xmlSchemaInitTypes</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
+</dd><dt>Schematron</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFree">xmlSchematronFree</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronSetValidStructuredErrors">xmlSchematronSetValidStructuredErrors</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
+</dd><dt>Schematrons</dt><dd><a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+</dd><dt>Script</dt><dd><a href="html/libxml-HTMLparser.html#htmlIsScriptAttribute">htmlIsScriptAttribute</a><br />
+</dd><dt>Search</dt><dd><a href="html/libxml-encoding.html#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetID">xmlGetID</a><br />
+<a href="html/libxml-tree.html#xmlGetLastChild">xmlGetLastChild</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br />
+<a href="html/libxml-list.html#xmlListSearch">xmlListSearch</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookupNS">xmlXPathFunctionLookupNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNsLookup">xmlXPathNsLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookup">xmlXPathVariableLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookupNS">xmlXPathVariableLookupNS</a><br />
+</dd><dt>Searches</dt><dd><a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+</dd><dt>Second</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>Section</dt><dd><a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+</dd><dt>See</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-list.html#xmlLinkGetData">xmlLinkGetData</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+</dd><dt>Semi</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
+</dd><dt>Send</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPQuit">xmlNanoFTPQuit</a><br />
+</dd><dt>Serialize</dt><dd><a href="html/libxml-tree.html#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
+</dd><dt>Sets</dt><dd><a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+<a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpath.html#xmlXPathSetContextNode">xmlXPathSetContextNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</dd><dt>Setting</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+</dd><dt>Setup</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewMemory">xmlReaderNewMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewWalker">xmlReaderNewWalker</a><br />
+<a href="html/libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
+</dd><dt>Shavian</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsShavian">xmlUCSIsShavian</a><br />
+</dd><dt>Shell</dt><dd><a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
+</dd><dt>Should</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+</dd><dt>Show</dt><dd><a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+</dd><dt>Signature</dt><dd><a href="html/libxml-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+</dd><dt>Similarly</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+</dd><dt>Simply</dt><dd><a href="html/libxml-uri.html#xmlCreateURI">xmlCreateURI</a><br />
+</dd><dt>Since</dt><dd><a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>Single</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>Sinhala</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSinhala">xmlUCSIsSinhala</a><br />
+</dd><dt>Skip</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a><br />
+<a href="html/libxml-parserInternals.html#xmlNextChar">xmlNextChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNext">xmlTextReaderNext</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+</dd><dt>Skips</dt><dd><a href="html/libxml-parserInternals.html#MOVETO_ENDTAG">MOVETO_ENDTAG</a><br />
+<a href="html/libxml-parserInternals.html#MOVETO_STARTTAG">MOVETO_STARTTAG</a><br />
+<a href="html/libxml-parserInternals.html#SKIP_EOL">SKIP_EOL</a><br />
+</dd><dt>SmallFormVariants</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSmallFormVariants">xmlUCSIsSmallFormVariants</a><br />
+</dd><dt>Some</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>Sort</dt><dd><a href="html/libxml-list.html#xmlListSort">xmlListSort</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetSort">xmlXPathNodeSetSort</a><br />
+</dd><dt>SpacingModifierLetters</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSpacingModifierLetters">xmlUCSIsSpacingModifierLetters</a><br />
+</dd><dt>Spec</dt><dd><a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>Special</dt><dd><a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
+<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
+<a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
+</dd><dt>Specials</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSpecials">xmlUCSIsSpecials</a><br />
+</dd><dt>Speed</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>Standalone</dt><dd><a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+</dd><dt>Start</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPOpen">xmlNanoFTPOpen</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartAttribute">xmlTextWriterStartAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartAttributeNS">xmlTextWriterStartAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartCDATA">xmlTextWriterStartCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartComment">xmlTextWriterStartComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTD">xmlTextWriterStartDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDAttlist">xmlTextWriterStartDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDElement">xmlTextWriterStartDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDocument">xmlTextWriterStartDocument</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartElement">xmlTextWriterStartElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartElementNS">xmlTextWriterStartElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartPI">xmlTextWriterStartPI</a><br />
+</dd><dt>StringType</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+</dd><dt>Strings</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>Subcode</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>Subset</dt><dd><a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>Super</dt><dd><a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+</dd><dt>SuperscriptsandSubscripts</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSuperscriptsandSubscripts">xmlUCSIsSuperscriptsandSubscripts</a><br />
+</dd><dt>SupplementalArrows-A</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementalArrowsA">xmlUCSIsSupplementalArrowsA</a><br />
+</dd><dt>SupplementalArrows-B</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementalArrowsB">xmlUCSIsSupplementalArrowsB</a><br />
+</dd><dt>SupplementalMathematicalOperators</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementalMathematicalOperators">xmlUCSIsSupplementalMathematicalOperators</a><br />
+</dd><dt>SupplementaryPrivateUseArea-A</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementaryPrivateUseAreaA">xmlUCSIsSupplementaryPrivateUseAreaA</a><br />
+</dd><dt>SupplementaryPrivateUseArea-B</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementaryPrivateUseAreaB">xmlUCSIsSupplementaryPrivateUseAreaB</a><br />
+</dd><dt>Syriac</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSyriac">xmlUCSIsSyriac</a><br />
+</dd><dt>System</dt><dd><a href="html/libxml-tree.html#_xmlNotation">_xmlNotation</a><br />
+<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>SystemLiteral</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSystemLiteral">xmlParseSystemLiteral</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk8.html b/libxml2-2.9.10/doc/APIchunk8.html
new file mode 100644
index 0000000..1038288
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk8.html
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index T-U for libxml2</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>API Alphabetic Index T-U for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter T:</h2><dl><dt>TEXT</dt><dd><a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddChildList">xmlAddChildList</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+<a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+</dd><dt>TEXTs</dt><dd><a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+</dd><dt>TODO</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+</dd><dt>TODO:</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAttribute">xmlXPathNextAttribute</a><br />
+</dd><dt>TRUE</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a><br />
+</dd><dt>Tagalog</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsTagalog">xmlUCSIsTagalog</a><br />
+</dd><dt>Tagbanwa</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsTagbanwa">xmlUCSIsTagbanwa</a><br />
+</dd><dt>Tags</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsTags">xmlUCSIsTags</a><br />
+</dd><dt>TaiLe</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsTaiLe">xmlUCSIsTaiLe</a><br />
+</dd><dt>TaiXuanJingSymbols</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsTaiXuanJingSymbols">xmlUCSIsTaiXuanJingSymbols</a><br />
+</dd><dt>Take</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+</dd><dt>Takes</dt><dd><a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+</dd><dt>Tamil</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsTamil">xmlUCSIsTamil</a><br />
+</dd><dt>Telugu</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsTelugu">xmlUCSIsTelugu</a><br />
+</dd><dt>Test</dt><dd><a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
+</dd><dt>Text</dt><dd><a href="html/libxml-tree.html#xmlNodeIsText">xmlNodeIsText</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+</dd><dt>TextDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</a><br />
+</dd><dt>TextDecl?</dt><dd><a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseEntity">xmlParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+</dd><dt>Thaana</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsThaana">xmlUCSIsThaana</a><br />
+</dd><dt>Thai</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsThai">xmlUCSIsThai</a><br />
+</dd><dt>That</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+</dd><dt>Then</dt><dd><a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+</dd><dt>There</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>Those</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>Thus:</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>Tibetan</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsTibetan">xmlUCSIsTibetan</a><br />
+</dd><dt>Token</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokenValue">xmlValidateNmtokenValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokensValue">xmlValidateNmtokensValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+</dd><dt>TokenizedType</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+</dd><dt>Traversal</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAttribute">xmlXPathNextAttribute</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextChild">xmlXPathNextChild</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextParent">xmlXPathNextParent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+</dd><dt>Tree</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+</dd><dt>Tree:-</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>Trickery:</dt><dd><a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+</dd><dt>Tries</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPConnect">xmlNanoFTPConnect</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+</dd><dt>True</dt><dd><a href="html/libxml-debugXML.html#xmlBoolToText">xmlBoolToText</a><br />
+</dd><dt>Try</dt><dd><a href="html/libxml-catalog.html#xmlACatalogResolvePublic">xmlACatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveSystem">xmlACatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetPublic">xmlCatalogGetPublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetSystem">xmlCatalogGetSystem</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolvePublic">xmlCatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveSystem">xmlCatalogResolveSystem</a><br />
+<a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+<a href="html/libxml-tree.html#xmlIsXHTML">xmlIsXHTML</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+<a href="html/libxml-valid.html#xmlValidateElement">xmlValidateElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>Type</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFreeType">xmlSchemaFreeType</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>Types</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+</dd></dl><h2>Letter U:</h2><dl><dt>UCS4</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Charcmp">xmlUTF8Charcmp</a><br />
+</dd><dt>UNICODE</dt><dd><a href="html/libxml-HTMLparser.html#_htmlEntityDesc">_htmlEntityDesc</a><br />
+<a href="">c</a><br />
+</dd><dt>UNIX</dt><dd><a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+</dd><dt>UNUSED:</dt><dd><a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+</dd><dt>URI-reference</dt><dd><a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+</dd><dt>URN</dt><dd><a href="html/libxml-SAX.html#globalNamespace">globalNamespace</a><br />
+<a href="html/libxml-SAX.html#namespaceDecl">namespaceDecl</a><br />
+</dd><dt>USER</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+</dd><dt>UTF-16</dt><dd><a href="html/libxml-encoding.html#_uconv_t">_uconv_t</a><br />
+</dd><dt>UTF16</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</dd><dt>UTF4</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+</dd><dt>UTF8</dt><dd><a href="html/libxml-tree.html#_xmlBuffer">_xmlBuffer</a><br />
+<a href="">p</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Charcmp">xmlUTF8Charcmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Size">xmlUTF8Size</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strndup">xmlUTF8Strndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+</dd><dt>Ugaritic</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsUgaritic">xmlUCSIsUgaritic</a><br />
+</dd><dt>Unescaping</dt><dd><a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+</dd><dt>Unicode</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a><br />
+</dd><dt>UnifiedCanadianAboriginalSyllabics</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsUnifiedCanadianAboriginalSyllabics">xmlUCSIsUnifiedCanadianAboriginalSyllabics</a><br />
+</dd><dt>Unique</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>Unix</dt><dd><a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+</dd><dt>Unlink</dt><dd><a href="html/libxml-tree.html#xmlRemoveProp">xmlRemoveProp</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+<a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+</dd><dt>Unlinks</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</dd><dt>Unplug</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+</dd><dt>Unregisters</dt><dd><a href="html/libxml-encoding.html#xmlCleanupEncodingAliases">xmlCleanupEncodingAliases</a><br />
+<a href="html/libxml-encoding.html#xmlDelEncodingAlias">xmlDelEncodingAlias</a><br />
+</dd><dt>Update</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+</dd><dt>Upgrade</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+</dd><dt>Use</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar">xmlIsBaseChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank">xmlIsBlank</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar">xmlIsChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombining">xmlIsCombining</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit">xmlIsDigit</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender">xmlIsExtender</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographic">xmlIsIdeographic</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar">xmlIsPubidChar</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+</dd><dt>Used</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a><br />
+<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+</dd><dt>User</dt><dd><a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>UserCode</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+</dd><dt>Uses</dt><dd><a href="html/libxml-tree.html#xmlNewNode">xmlNewNode</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIchunk9.html b/libxml2-2.9.10/doc/APIchunk9.html
new file mode 100644
index 0000000..1aba6ea
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIchunk9.html
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>API Alphabetic Index V-X for libxml2</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>API Alphabetic Index V-X for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><h2>Letter V:</h2><dl><dt>Valid</dt><dd><a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+</dd><dt>Validate</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
+<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNameValue">xmlValidateNameValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNamesValue">xmlValidateNamesValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokenValue">xmlValidateNmtokenValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokensValue">xmlValidateNmtokensValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationUse">xmlValidateNotationUse</a><br />
+</dd><dt>Validity</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+</dd><dt>Value</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+</dd><dt>Values</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+</dd><dt>Variable</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathVariableLookup">xmlXPathVariableLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookupNS">xmlXPathVariableLookupNS</a><br />
+</dd><dt>VariationSelectors</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsVariationSelectors">xmlUCSIsVariationSelectors</a><br />
+</dd><dt>VariationSelectorsSupplement</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsVariationSelectorsSupplement">xmlUCSIsVariationSelectorsSupplement</a><br />
+</dd><dt>VersionInfo</dt><dd><a href="html/libxml-parserInternals.html#xmlParseVersionInfo">xmlParseVersionInfo</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseXMLDecl">xmlParseXMLDecl</a><br />
+</dd><dt>VersionInfo?</dt><dd><a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</a><br />
+</dd><dt>VersionNum</dt><dd><a href="html/libxml-parserInternals.html#xmlParseVersionInfo">xmlParseVersionInfo</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
+</dd></dl><h2>Letter W:</h2><dl><dt>W3C</dt><dd><a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+</dd><dt>WARNING:</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+</dd><dt>WFC:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+</dd><dt>WWW-Authenticate</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br />
+</dd><dt>WXS</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+</dd><dt>Walk</dt><dd><a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+</dd><dt>Warning</dt><dd><a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+</dd><dt>Was</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+</dd><dt>Well</dt><dd><a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseEntity">xmlParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+</dd><dt>What</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+<a href="html/libxml-SAX.html#notationDecl">notationDecl</a><br />
+<a href="html/libxml-parser.html#notationDeclSAXFunc">notationDeclSAXFunc</a><br />
+<a href="html/libxml-SAX.html#unparsedEntityDecl">unparsedEntityDecl</a><br />
+<a href="html/libxml-parser.html#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2NotationDecl">xmlSAX2NotationDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2UnparsedEntityDecl">xmlSAX2UnparsedEntityDecl</a><br />
+</dd><dt>When</dt><dd><a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+</dd><dt>Wherever</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+</dd><dt>Whitespace</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+</dd><dt>Will</dt><dd><a href="html/libxml-tree.html#xmlSaveFile">xmlSaveFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+</dd><dt>With</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEndTag">xmlParseEndTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>Workaround</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetFilename">xmlSchemaValidateSetFilename</a><br />
+</dd><dt>Working</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>Wrap</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathWrapNodeSet">xmlXPathWrapNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrWrapLocationSet">xmlXPtrWrapLocationSet</a><br />
+</dd><dt>Wrapper</dt><dd><a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+</dd><dt>Wraps</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathWrapCString">xmlXPathWrapCString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapExternal">xmlXPathWrapExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapString">xmlXPathWrapString</a><br />
+</dd><dt>Writes</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
+</dd></dl><h2>Letter X:</h2><dl><dt>XHTML</dt><dd><a href="html/libxml-tree.html#xmlIsXHTML">xmlIsXHTML</a><br />
+</dd><dt>XInclude</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_XINCLUDE_ENABLED">LIBXML_XINCLUDE_ENABLED</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_NS">XINCLUDE_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeFreeContext">xmlXIncludeFreeContext</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeNewContext">xmlXIncludeNewContext</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a><br />
+</dd><dt>XInclude?</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+</dd><dt>XLINK_TYPE_NONE</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+</dd><dt>XML-1</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</dd><dt>XML-Schema</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
+</dd><dt>XMLDecl</dt><dd><a href="html/libxml-parserInternals.html#xmlParseXMLDecl">xmlParseXMLDecl</a><br />
+</dd><dt>XMLDecl?</dt><dd><a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+</dd><dt>XMLSchema</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+</dd><dt>XML_ATTRIBUTE_DECL</dt><dd><a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
+</dd><dt>XML_ATTRIBUTE_ENUMERATION</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+</dd><dt>XML_ATTRIBUTE_FIXED</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>XML_ATTRIBUTE_IMPLIED</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>XML_ATTRIBUTE_NODE</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+</dd><dt>XML_ATTRIBUTE_NONE</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>XML_ATTRIBUTE_NOTATION</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+</dd><dt>XML_ATTRIBUTE_REQUIRED</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+</dd><dt>XML_BUFFER_ALLOC_DOUBLEIT</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+</dd><dt>XML_BUFFER_ALLOC_EXACT</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+</dd><dt>XML_BUFFER_ALLOC_HYBRID</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+</dd><dt>XML_CAST_FPTR</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>XML_CATA_PREFER_PUBLIC</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+</dd><dt>XML_CATA_PREFER_SYSTEM</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+</dd><dt>XML_CHAR_ENCODING_</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+</dd><dt>XML_CHAR_ENCODING_NONE</dt><dd><a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+</dd><dt>XML_DOCUMENT_NODE</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+</dd><dt>XML_DTD_NODE</dt><dd><a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+</dd><dt>XML_ELEMENT_DECL</dt><dd><a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+</dd><dt>XML_ELEMENT_TYPE_xxx</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+</dd><dt>XML_ENTITY_DECL</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+</dd><dt>XML_ERR_OK</dt><dd><a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+</dd><dt>XML_PARSE_BIG_LINES</dt><dd><a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+</dd><dt>XML_PARSE_HUGE</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+</dd><dt>XML_SCHEMAS_ELEM_GLOBAL</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a><br />
+</dd><dt>XML_SCHEMAS_FACET_PRESERVE</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
+</dd><dt>XML_SCHEMAS_STRING</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+</dd><dt>XML_SUBSTITUTE_PEREF</dt><dd><a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+</dd><dt>XML_SUBSTITUTE_REF</dt><dd><a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+</dd><dt>XML_xxx_yyy_ENTITY</dt><dd><a href="html/libxml-entities.html#xmlAddDocEntity">xmlAddDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlAddDtdEntity">xmlAddDtdEntity</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+</dd><dt>XMl-Schema</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
+</dd><dt>XPATH</dt><dd><a href="html/libxml-xpath.html#xmlXPathFreeCompExpr">xmlXPathFreeCompExpr</a><br />
+</dd><dt>XPATH_INVALID_ARITY</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSetArityError">xmlXPathSetArityError</a><br />
+</dd><dt>XPATH_INVALID_TYPE</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSetTypeError">xmlXPathSetTypeError</a><br />
+</dd><dt>XPointer</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_XPTR_ENABLED">LIBXML_XPTR_ENABLED</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</dd><dt>XSD</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+</dd><dt>XSLT</dt><dd><a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-pattern.html#xmlFreePattern">xmlFreePattern</a><br />
+<a href="html/libxml-pattern.html#xmlFreePatternList">xmlFreePatternList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStackIsNodeSet">xmlXPathStackIsNodeSet</a><br />
+</dd><dt>Xinclude</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_NS">XINCLUDE_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
+</dd><dt>Xml</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd><dt>XmlNodeType</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
+<a href="APIchunk1.html">C-C</a>
+<a href="APIchunk2.html">D-E</a>
+<a href="APIchunk3.html">F-I</a>
+<a href="APIchunk4.html">J-N</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-R</a>
+<a href="APIchunk7.html">S-S</a>
+<a href="APIchunk8.html">T-U</a>
+<a href="APIchunk9.html">V-X</a>
+<a href="APIchunk10.html">Y-a</a>
+<a href="APIchunk11.html">b-b</a>
+<a href="APIchunk12.html">c-c</a>
+<a href="APIchunk13.html">d-d</a>
+<a href="APIchunk14.html">e-e</a>
+<a href="APIchunk15.html">f-f</a>
+<a href="APIchunk16.html">g-h</a>
+<a href="APIchunk17.html">i-i</a>
+<a href="APIchunk18.html">j-l</a>
+<a href="APIchunk19.html">m-m</a>
+<a href="APIchunk20.html">n-n</a>
+<a href="APIchunk21.html">o-o</a>
+<a href="APIchunk22.html">p-p</a>
+<a href="APIchunk23.html">q-r</a>
+<a href="APIchunk24.html">s-s</a>
+<a href="APIchunk25.html">t-t</a>
+<a href="APIchunk26.html">u-v</a>
+<a href="APIchunk27.html">w-w</a>
+<a href="APIchunk28.html">x-x</a>
+<a href="APIchunk29.html">y-z</a>
+</h2><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>
diff --git a/libxml2-2.9.10/doc/APIconstructors.html b/libxml2-2.9.10/doc/APIconstructors.html
new file mode 100644
index 0000000..3a18bce
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIconstructors.html
@@ -0,0 +1,595 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>List of constructors for libxml2</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>List of constructors for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2>Type SOCKET:</h2><p><a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+</p><h2>Type const htmlElemDesc *:</h2><p><a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
+</p><h2>Type const htmlEntityDesc *:</h2><p><a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+</p><h2>Type const xmlChar *:</h2><p><a href="html/libxml-SAX.html#getPublicId">getPublicId</a><br />
+<a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-HTMLtree.html#htmlGetMetaEncoding">htmlGetMetaEncoding</a><br />
+<a href="html/libxml-parserInternals.html#namePop">namePop</a><br />
+<a href="html/libxml-tree.html#xmlBufferContent">xmlBufferContent</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetPublic">xmlCatalogGetPublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetSystem">xmlCatalogGetSystem</a><br />
+<a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
+<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
+<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEncodingDecl">xmlParseEncodingDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePITarget">xmlParsePITarget</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetPublicId">xmlSAX2GetPublicId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsString">xmlSchemaValueGetAsString</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstBaseUri">xmlTextReaderConstBaseUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstEncoding">xmlTextReaderConstEncoding</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstLocalName">xmlTextReaderConstLocalName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstName">xmlTextReaderConstName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstNamespaceUri">xmlTextReaderConstNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstPrefix">xmlTextReaderConstPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlVersion">xmlTextReaderConstXmlVersion</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNsLookup">xmlXPathNsLookup</a><br />
+</p><h2>Type const xmlParserNodeInfo *:</h2><p><a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
+</p><h2>Type docbDocPtr:</h2><p><a href="html/libxml-DOCBparser.html#docbParseDoc">docbParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+</p><h2>Type docbParserCtxtPtr:</h2><p><a href="html/libxml-DOCBparser.html#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+</p><h2>Type double:</h2><p><a href="html/libxml-xpath.html#xmlXPathCastBooleanToNumber">xmlXPathCastBooleanToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToNumber">xmlXPathCastNodeSetToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeToNumber">xmlXPathCastNodeToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastStringToNumber">xmlXPathCastStringToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToNumber">xmlXPathCastToNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNumber">xmlXPathPopNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+</p><h2>Type htmlDocPtr:</h2><p><a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFd">htmlCtxtReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadMemory">htmlCtxtReadMemory</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDoc">htmlNewDoc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseFile">htmlParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFd">htmlReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFile">htmlReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadIO">htmlReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadMemory">htmlReadMemory</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+</p><h2>Type htmlParserCtxtPtr:</h2><p><a href="html/libxml-parserInternals.html#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreateMemoryParserCtxt">htmlCreateMemoryParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNewParserCtxt">htmlNewParserCtxt</a><br />
+</p><h2>Type htmlStatus:</h2><p><a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</p><h2>Type long:</h2><p><a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+</p><h2>Type size_t:</h2><p><a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufUse">xmlBufUse</a><br />
+<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
+<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a><br />
+</p><h2>Type unsigned long:</h2><p><a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
+</p><h2>Type void *:</h2><p><a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup">xmlHashQLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup2">xmlHashQLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup3">xmlHashQLookup3</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPOpen">xmlIOFTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpen">xmlIOHTTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a><br />
+<a href="html/libxml-list.html#xmlLinkGetData">xmlLinkGetData</a><br />
+<a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br />
+<a href="html/libxml-list.html#xmlListSearch">xmlListSearch</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPNewCtxt">xmlNanoFTPNewCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPOpen">xmlNanoFTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopExternal">xmlXPathPopExternal</a><br />
+</p><h2>Type xlinkHandlerPtr:</h2><p><a href="html/libxml-xlink.html#xlinkGetDefaultHandler">xlinkGetDefaultHandler</a><br />
+</p><h2>Type xlinkNodeDetectFunc:</h2><p><a href="html/libxml-xlink.html#xlinkGetDefaultDetect">xlinkGetDefaultDetect</a><br />
+</p><h2>Type xlinkType:</h2><p><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+</p><h2>Type xmlAttrPtr:</h2><p><a href="html/libxml-tree.html#xmlCopyProp">xmlCopyProp</a><br />
+<a href="html/libxml-tree.html#xmlCopyPropList">xmlCopyPropList</a><br />
+<a href="html/libxml-valid.html#xmlGetID">xmlGetID</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-tree.html#xmlNewDocProp">xmlNewDocProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewProp">xmlNewProp</a><br />
+<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+</p><h2>Type xmlAttributePtr:</h2><p><a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+</p><h2>Type xmlAttributeTablePtr:</h2><p><a href="html/libxml-valid.html#xmlCopyAttributeTable">xmlCopyAttributeTable</a><br />
+</p><h2>Type xmlAutomataPtr:</h2><p><a href="html/libxml-xmlautomata.html#xmlNewAutomata">xmlNewAutomata</a><br />
+</p><h2>Type xmlAutomataStatePtr:</h2><p><a href="html/libxml-xmlautomata.html#xmlAutomataGetInitState">xmlAutomataGetInitState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewState">xmlAutomataNewState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+</p><h2>Type xmlBufferAllocationScheme:</h2><p><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-globals.html#xmlThrDefBufferAllocScheme">xmlThrDefBufferAllocScheme</a><br />
+</p><h2>Type xmlBufferPtr:</h2><p><a href="html/libxml-tree.html#xmlBufferCreate">xmlBufferCreate</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateSize">xmlBufferCreateSize</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+</p><h2>Type xmlCatalogAllow:</h2><p><a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
+</p><h2>Type xmlCatalogPrefer:</h2><p><a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+</p><h2>Type xmlCatalogPtr:</h2><p><a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlNewCatalog">xmlNewCatalog</a><br />
+</p><h2>Type xmlChar:</h2><p><a href="html/libxml-parserInternals.html#xmlPopInput">xmlPopInput</a><br />
+</p><h2>Type xmlChar *:</h2><p><a href="html/libxml-catalog.html#xmlACatalogResolve">xmlACatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolvePublic">xmlACatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveSystem">xmlACatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveURI">xmlACatalogResolveURI</a><br />
+<a href="html/libxml-tree.html#xmlBufContent">xmlBufContent</a><br />
+<a href="html/libxml-tree.html#xmlBufEnd">xmlBufEnd</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolve">xmlCatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolvePublic">xmlCatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveSystem">xmlCatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveURI">xmlCatalogResolveURI</a><br />
+<a href="html/libxml-xmlstring.html#xmlCharStrdup">xmlCharStrdup</a><br />
+<a href="html/libxml-xmlstring.html#xmlCharStrndup">xmlCharStrndup</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNodePath">xmlGetNodePath</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEncName">xmlParseEncName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNmtoken">xmlParseNmtoken</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePubidLiteral">xmlParsePubidLiteral</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSystemLiteral">xmlParseSystemLiteral</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionInfo">xmlParseVersionInfo</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+<a href="html/libxml-uri.html#xmlSaveUri">xmlSaveUri</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrndup">xmlStrndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderBaseUri">xmlTextReaderBaseUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocalName">xmlTextReaderLocalName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderName">xmlTextReaderName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNamespaceUri">xmlTextReaderNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPrefix">xmlTextReaderPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strndup">xmlUTF8Strndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastBooleanToString">xmlXPathCastBooleanToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToString">xmlXPathCastNodeSetToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeToString">xmlXPathCastNodeToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNumberToString">xmlXPathCastNumberToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToString">xmlXPathCastToString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseName">xmlXPathParseName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopString">xmlXPathPopString</a><br />
+</p><h2>Type xmlCharEncoding:</h2><p><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+</p><h2>Type xmlCharEncodingHandlerPtr:</h2><p><a href="html/libxml-encoding.html#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+</p><h2>Type xmlDOMWrapCtxtPtr:</h2><p><a href="html/libxml-tree.html#xmlDOMWrapNewCtxt">xmlDOMWrapNewCtxt</a><br />
+</p><h2>Type xmlDeregisterNodeFunc:</h2><p><a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefDeregisterNodeDefault">xmlThrDefDeregisterNodeDefault</a><br />
+</p><h2>Type xmlDictPtr:</h2><p><a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
+<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
+</p><h2>Type xmlDocPtr:</h2><p><a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadMemory">xmlCtxtReadMemory</a><br />
+<a href="html/libxml-tree.html#xmlNewDoc">xmlNewDoc</a><br />
+<a href="html/libxml-catalog.html#xmlParseCatalogFile">xmlParseCatalogFile</a><br />
+<a href="html/libxml-parser.html#xmlParseDoc">xmlParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlParseEntity">xmlParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseFile">xmlParseFile</a><br />
+<a href="html/libxml-parser.html#xmlParseMemory">xmlParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlReadDoc">xmlReadDoc</a><br />
+<a href="html/libxml-parser.html#xmlReadFd">xmlReadFd</a><br />
+<a href="html/libxml-parser.html#xmlReadFile">xmlReadFile</a><br />
+<a href="html/libxml-parser.html#xmlReadIO">xmlReadIO</a><br />
+<a href="html/libxml-parser.html#xmlReadMemory">xmlReadMemory</a><br />
+<a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+</p><h2>Type xmlDtdPtr:</h2><p><a href="html/libxml-tree.html#xmlCopyDtd">xmlCopyDtd</a><br />
+<a href="html/libxml-tree.html#xmlCreateIntSubset">xmlCreateIntSubset</a><br />
+<a href="html/libxml-tree.html#xmlGetIntSubset">xmlGetIntSubset</a><br />
+<a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</a><br />
+<a href="html/libxml-parser.html#xmlParseDTD">xmlParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a><br />
+</p><h2>Type xmlElementContentPtr:</h2><p><a href="html/libxml-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementContent">xmlCopyElementContent</a><br />
+<a href="html/libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+</p><h2>Type xmlElementPtr:</h2><p><a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a><br />
+</p><h2>Type xmlElementTablePtr:</h2><p><a href="html/libxml-valid.html#xmlCopyElementTable">xmlCopyElementTable</a><br />
+</p><h2>Type xmlEntitiesTablePtr:</h2><p><a href="html/libxml-entities.html#xmlCopyEntitiesTable">xmlCopyEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+</p><h2>Type xmlEntityPtr:</h2><p><a href="html/libxml-SAX.html#getEntity">getEntity</a><br />
+<a href="html/libxml-parser.html#getEntitySAXFunc">getEntitySAXFunc</a><br />
+<a href="html/libxml-SAX.html#getParameterEntity">getParameterEntity</a><br />
+<a href="html/libxml-parser.html#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a><br />
+<a href="html/libxml-entities.html#xmlAddDocEntity">xmlAddDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlAddDtdEntity">xmlAddDtdEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetDtdEntity">xmlGetDtdEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetParameterEntity">xmlGetParameterEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetPredefinedEntity">xmlGetPredefinedEntity</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetEntity">xmlSAX2GetEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetParameterEntity">xmlSAX2GetParameterEntity</a><br />
+</p><h2>Type xmlEnumerationPtr:</h2><p><a href="html/libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a><br />
+<a href="html/libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+</p><h2>Type xmlErrorPtr:</h2><p><a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
+<a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
+</p><h2>Type xmlExpCtxtPtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+</p><h2>Type xmlExpNodePtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+</p><h2>Type xmlExternalEntityLoader:</h2><p><a href="html/libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a><br />
+</p><h2>Type xmlGlobalStatePtr:</h2><p><a href="html/libxml-threads.html#xmlGetGlobalState">xmlGetGlobalState</a><br />
+</p><h2>Type xmlHashTablePtr:</h2><p><a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
+<a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br />
+<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
+</p><h2>Type xmlIDPtr:</h2><p><a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
+</p><h2>Type xmlLinkPtr:</h2><p><a href="html/libxml-list.html#xmlListEnd">xmlListEnd</a><br />
+<a href="html/libxml-list.html#xmlListFront">xmlListFront</a><br />
+</p><h2>Type xmlListPtr:</h2><p><a href="html/libxml-valid.html#xmlGetRefs">xmlGetRefs</a><br />
+<a href="html/libxml-list.html#xmlListCreate">xmlListCreate</a><br />
+<a href="html/libxml-list.html#xmlListDup">xmlListDup</a><br />
+</p><h2>Type xmlLocationSetPtr:</h2><p><a href="html/libxml-xpointer.html#xmlXPtrLocationSetCreate">xmlXPtrLocationSetCreate</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+</p><h2>Type xmlModulePtr:</h2><p><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+</p><h2>Type xmlMutexPtr:</h2><p><a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+</p><h2>Type xmlNodePtr:</h2><p><a href="html/libxml-parserInternals.html#nodePop">nodePop</a><br />
+<a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddChildList">xmlAddChildList</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+<a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNodeList">xmlDocCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlGetLastChild">xmlGetLastChild</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-tree.html#xmlNewCDataBlock">xmlNewCDataBlock</a><br />
+<a href="html/libxml-tree.html#xmlNewCharRef">xmlNewCharRef</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewComment">xmlNewComment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocComment">xmlNewDocComment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocFragment">xmlNewDocFragment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewDocPI">xmlNewDocPI</a><br />
+<a href="html/libxml-tree.html#xmlNewDocRawNode">xmlNewDocRawNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocText">xmlNewDocText</a><br />
+<a href="html/libxml-tree.html#xmlNewDocTextLen">xmlNewDocTextLen</a><br />
+<a href="html/libxml-tree.html#xmlNewNode">xmlNewNode</a><br />
+<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+<a href="html/libxml-tree.html#xmlNewReference">xmlNewReference</a><br />
+<a href="html/libxml-tree.html#xmlNewText">xmlNewText</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlNewTextLen">xmlNewTextLen</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlTextMerge">xmlTextMerge</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAttribute">xmlXPathNextAttribute</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextChild">xmlXPathNextChild</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextParent">xmlXPathNextParent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+</p><h2>Type xmlNodeSetPtr:</h2><p><a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+</p><h2>Type xmlNotationPtr:</h2><p><a href="html/libxml-valid.html#xmlAddNotationDecl">xmlAddNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a><br />
+</p><h2>Type xmlNotationTablePtr:</h2><p><a href="html/libxml-valid.html#xmlCopyNotationTable">xmlCopyNotationTable</a><br />
+</p><h2>Type xmlNsPtr:</h2><p><a href="html/libxml-SAX.html#getNamespace">getNamespace</a><br />
+<a href="html/libxml-tree.html#xmlCopyNamespace">xmlCopyNamespace</a><br />
+<a href="html/libxml-tree.html#xmlCopyNamespaceList">xmlCopyNamespaceList</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+</p><h2>Type xmlNsPtr *:</h2><p><a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
+</p><h2>Type xmlOutputBufferCreateFilenameFunc:</h2><p><a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefOutputBufferCreateFilenameDefault">xmlThrDefOutputBufferCreateFilenameDefault</a><br />
+</p><h2>Type xmlOutputBufferPtr:</h2><p><a href="html/libxml-xmlIO.html#xmlAllocOutputBuffer">xmlAllocOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+</p><h2>Type xmlParserCtxtPtr:</h2><p><a href="html/libxml-parser.html#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateFileParserCtxt">xmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateMemoryParserCtxt">xmlCreateMemoryParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlNewParserCtxt">xmlNewParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetParserCtxt">xmlSchemaValidCtxtGetParserCtxt</a><br />
+</p><h2>Type xmlParserErrors:</h2><p><a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+</p><h2>Type xmlParserInputBufferCreateFilenameFunc:</h2><p><a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefParserInputBufferCreateFilenameDefault">xmlThrDefParserInputBufferCreateFilenameDefault</a><br />
+</p><h2>Type xmlParserInputBufferPtr:</h2><p><a href="html/libxml-xmlIO.html#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</p><h2>Type xmlParserInputPtr:</h2><p><a href="html/libxml-parserInternals.html#inputPop">inputPop</a><br />
+<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewEntityInputStream">xmlNewEntityInputStream</a><br />
+<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewInputFromFile">xmlNewInputFromFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewInputStream">xmlNewInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewStringInputStream">xmlNewStringInputStream</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+</p><h2>Type xmlPatternPtr:</h2><p><a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+</p><h2>Type xmlRMutexPtr:</h2><p><a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+</p><h2>Type xmlRefPtr:</h2><p><a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+</p><h2>Type xmlRegExecCtxtPtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+</p><h2>Type xmlRegexpPtr:</h2><p><a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+</p><h2>Type xmlRegisterNodeFunc:</h2><p><a href="html/libxml-globals.html#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefRegisterNodeDefault">xmlThrDefRegisterNodeDefault</a><br />
+</p><h2>Type xmlRelaxNGParserCtxtPtr:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewMemParserCtxt">xmlRelaxNGNewMemParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a><br />
+</p><h2>Type xmlRelaxNGPtr:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
+</p><h2>Type xmlRelaxNGValidCtxtPtr:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a><br />
+</p><h2>Type xmlSaveCtxtPtr:</h2><p><a href="html/libxml-xmlsave.html#xmlSaveToBuffer">xmlSaveToBuffer</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+</p><h2>Type xmlSchemaFacetPtr:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaNewFacet">xmlSchemaNewFacet</a><br />
+</p><h2>Type xmlSchemaParserCtxtPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
+</p><h2>Type xmlSchemaPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+</p><h2>Type xmlSchemaSAXPlugPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+</p><h2>Type xmlSchemaTypePtr:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+</p><h2>Type xmlSchemaValPtr:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a><br />
+</p><h2>Type xmlSchemaValType:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
+</p><h2>Type xmlSchemaValidCtxtPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
+</p><h2>Type xmlSchematronParserCtxtPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+</p><h2>Type xmlSchematronPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+</p><h2>Type xmlSchematronValidCtxtPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+</p><h2>Type xmlStreamCtxtPtr:</h2><p><a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
+</p><h2>Type xmlTextReaderPtr:</h2><p><a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFile">xmlReaderForFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForMemory">xmlReaderForMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderWalker">xmlReaderWalker</a><br />
+</p><h2>Type xmlTextWriterPtr:</h2><p><a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterFilename">xmlNewTextWriterFilename</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+</p><h2>Type xmlURIPtr:</h2><p><a href="html/libxml-uri.html#xmlCreateURI">xmlCreateURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+</p><h2>Type xmlValidCtxtPtr:</h2><p><a href="html/libxml-valid.html#xmlNewValidCtxt">xmlNewValidCtxt</a><br />
+</p><h2>Type xmlXIncludeCtxtPtr:</h2><p><a href="html/libxml-xinclude.html#xmlXIncludeNewContext">xmlXIncludeNewContext</a><br />
+</p><h2>Type xmlXPathCompExprPtr:</h2><p><a href="html/libxml-xpath.html#xmlXPathCompile">xmlXPathCompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a><br />
+</p><h2>Type xmlXPathContextPtr:</h2><p><a href="html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</p><h2>Type xmlXPathFunction:</h2><p><a href="html/libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookupNS">xmlXPathFunctionLookupNS</a><br />
+</p><h2>Type xmlXPathObjectPtr:</h2><p><a href="html/libxml-xpathInternals.html#valuePop">valuePop</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertNumber">xmlXPathConvertNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertString">xmlXPathConvertString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewBoolean">xmlXPathNewBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewCString">xmlXPathNewCString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewFloat">xmlXPathNewFloat</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSetList">xmlXPathNewNodeSetList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewString">xmlXPathNewString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObjectCopy">xmlXPathObjectCopy</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookup">xmlXPathVariableLookup</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookupNS">xmlXPathVariableLookupNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapCString">xmlXPathWrapCString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapExternal">xmlXPathWrapExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapNodeSet">xmlXPathWrapNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapString">xmlXPathWrapString</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodeSet">xmlXPtrNewLocationSetNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodes">xmlXPtrNewRangeNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrWrapLocationSet">xmlXPtrWrapLocationSet</a><br />
+</p><h2>Type xmlXPathParserContextPtr:</h2><p><a href="html/libxml-xpathInternals.html#xmlXPathNewParserContext">xmlXPathNewParserContext</a><br />
+</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>
diff --git a/libxml2-2.9.10/doc/APIfiles.html b/libxml2-2.9.10/doc/APIfiles.html
new file mode 100644
index 0000000..3578056
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIfiles.html
@@ -0,0 +1,3594 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>List of Symbols per Module for libxml2</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>List of Symbols per Module for libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2><a name="DOCBparser" id="DOCBparser">Module DOCBparser</a>:</h2><p><a href="html/libxml-DOCBparser.html#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbDocPtr">docbDocPtr</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-DOCBparser.html#docbFreeParserCtxt">docbFreeParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseChunk">docbParseChunk</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseDoc">docbParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseDocument">docbParseDocument</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbParserCtxt">docbParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a><br />
+<a href="html/libxml-DOCBparser.html#docbParserInput">docbParserInput</a><br />
+<a href="html/libxml-DOCBparser.html#docbParserInputPtr">docbParserInputPtr</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXHandler">docbSAXHandler</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+</p><h2><a name="HTMLparser" id="HTMLparser">Module HTMLparser</a>:</h2><p><a href="html/libxml-HTMLparser.html#HTML_DEPRECATED">HTML_DEPRECATED</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_INVALID">HTML_INVALID</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_NA">HTML_NA</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_COMPACT">HTML_PARSE_COMPACT</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_IGNORE_ENC">HTML_PARSE_IGNORE_ENC</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NOBLANKS">HTML_PARSE_NOBLANKS</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NODEFDTD">HTML_PARSE_NODEFDTD</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NOERROR">HTML_PARSE_NOERROR</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NOIMPLIED">HTML_PARSE_NOIMPLIED</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NONET">HTML_PARSE_NONET</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NOWARNING">HTML_PARSE_NOWARNING</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_PEDANTIC">HTML_PARSE_PEDANTIC</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_RECOVER">HTML_PARSE_RECOVER</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_REQUIRED">HTML_REQUIRED</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_VALID">HTML_VALID</a><br />
+<a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlEntityDesc">_htmlEntityDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreateMemoryParserCtxt">htmlCreateMemoryParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFd">htmlCtxtReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadMemory">htmlCtxtReadMemory</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReset">htmlCtxtReset</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtUseOptions">htmlCtxtUseOptions</a><br />
+<a href="html/libxml-HTMLparser.html#htmlDefaultSubelement">htmlDefaultSubelement</a><br />
+<a href="html/libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElemDescPtr">htmlElemDescPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityDescPtr">htmlEntityDescPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlFreeParserCtxt">htmlFreeParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsScriptAttribute">htmlIsScriptAttribute</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNewParserCtxt">htmlNewParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseCharRef">htmlParseCharRef</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseChunk">htmlParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDocument">htmlParseDocument</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseFile">htmlParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserCtxt">htmlParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserInput">htmlParserInput</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserInputPtr">htmlParserInputPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserNodeInfo">htmlParserNodeInfo</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserOption">htmlParserOption</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFd">htmlReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFile">htmlReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadIO">htmlReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadMemory">htmlReadMemory</a><br />
+<a href="html/libxml-HTMLparser.html#htmlRequiredAttrs">htmlRequiredAttrs</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXHandler">htmlSAXHandler</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlStatus">htmlStatus</a><br />
+<a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
+</p><h2><a name="HTMLtree" id="HTMLtree">Module HTMLtree</a>:</h2><p><a href="html/libxml-HTMLtree.html#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PI_NODE">HTML_PI_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_TEXT_NODE">HTML_TEXT_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDump">htmlDocDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemory">htmlDocDumpMemory</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlGetMetaEncoding">htmlGetMetaEncoding</a><br />
+<a href="html/libxml-HTMLtree.html#htmlIsBooleanAttr">htmlIsBooleanAttr</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDoc">htmlNewDoc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFile">htmlSaveFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileEnc">htmlSaveFileEnc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileFormat">htmlSaveFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+</p><h2><a name="SAX" id="SAX">Module SAX</a>:</h2><p><a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-SAX.html#attributeDecl">attributeDecl</a><br />
+<a href="html/libxml-SAX.html#cdataBlock">cdataBlock</a><br />
+<a href="html/libxml-SAX.html#characters">characters</a><br />
+<a href="html/libxml-SAX.html#checkNamespace">checkNamespace</a><br />
+<a href="html/libxml-SAX.html#comment">comment</a><br />
+<a href="html/libxml-SAX.html#elementDecl">elementDecl</a><br />
+<a href="html/libxml-SAX.html#endDocument">endDocument</a><br />
+<a href="html/libxml-SAX.html#endElement">endElement</a><br />
+<a href="html/libxml-SAX.html#entityDecl">entityDecl</a><br />
+<a href="html/libxml-SAX.html#externalSubset">externalSubset</a><br />
+<a href="html/libxml-SAX.html#getColumnNumber">getColumnNumber</a><br />
+<a href="html/libxml-SAX.html#getEntity">getEntity</a><br />
+<a href="html/libxml-SAX.html#getLineNumber">getLineNumber</a><br />
+<a href="html/libxml-SAX.html#getNamespace">getNamespace</a><br />
+<a href="html/libxml-SAX.html#getParameterEntity">getParameterEntity</a><br />
+<a href="html/libxml-SAX.html#getPublicId">getPublicId</a><br />
+<a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-SAX.html#globalNamespace">globalNamespace</a><br />
+<a href="html/libxml-SAX.html#hasExternalSubset">hasExternalSubset</a><br />
+<a href="html/libxml-SAX.html#hasInternalSubset">hasInternalSubset</a><br />
+<a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-SAX.html#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#inithtmlDefaultSAXHandler">inithtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#internalSubset">internalSubset</a><br />
+<a href="html/libxml-SAX.html#isStandalone">isStandalone</a><br />
+<a href="html/libxml-SAX.html#namespaceDecl">namespaceDecl</a><br />
+<a href="html/libxml-SAX.html#notationDecl">notationDecl</a><br />
+<a href="html/libxml-SAX.html#processingInstruction">processingInstruction</a><br />
+<a href="html/libxml-SAX.html#reference">reference</a><br />
+<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-SAX.html#setNamespace">setNamespace</a><br />
+<a href="html/libxml-SAX.html#startDocument">startDocument</a><br />
+<a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-SAX.html#unparsedEntityDecl">unparsedEntityDecl</a><br />
+</p><h2><a name="SAX2" id="SAX2">Module SAX2</a>:</h2><p><a href="html/libxml-SAX2.html#docbDefaultSAXHandlerInit">docbDefaultSAXHandlerInit</a><br />
+<a href="html/libxml-SAX2.html#htmlDefaultSAXHandlerInit">htmlDefaultSAXHandlerInit</a><br />
+<a href="html/libxml-SAX2.html#xmlDefaultSAXHandlerInit">xmlDefaultSAXHandlerInit</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2AttributeDecl">xmlSAX2AttributeDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2CDataBlock">xmlSAX2CDataBlock</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Characters">xmlSAX2Characters</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Comment">xmlSAX2Comment</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ElementDecl">xmlSAX2ElementDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndDocument">xmlSAX2EndDocument</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElement">xmlSAX2EndElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EntityDecl">xmlSAX2EntityDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ExternalSubset">xmlSAX2ExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetColumnNumber">xmlSAX2GetColumnNumber</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetEntity">xmlSAX2GetEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetLineNumber">xmlSAX2GetLineNumber</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetParameterEntity">xmlSAX2GetParameterEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetPublicId">xmlSAX2GetPublicId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2HasExternalSubset">xmlSAX2HasExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2HasInternalSubset">xmlSAX2HasInternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDocbDefaultSAXHandler">xmlSAX2InitDocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitHtmlDefaultSAXHandler">xmlSAX2InitHtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InternalSubset">xmlSAX2InternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IsStandalone">xmlSAX2IsStandalone</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2NotationDecl">xmlSAX2NotationDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ProcessingInstruction">xmlSAX2ProcessingInstruction</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Reference">xmlSAX2Reference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartDocument">xmlSAX2StartDocument</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2UnparsedEntityDecl">xmlSAX2UnparsedEntityDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXVersion">xmlSAXVersion</a><br />
+</p><h2><a name="c14n" id="c14n">Module c14n</a>:</h2><p><a href="html/libxml-c14n.html#XML_C14N_1_0">XML_C14N_1_0</a><br />
+<a href="html/libxml-c14n.html#XML_C14N_1_1">XML_C14N_1_1</a><br />
+<a href="html/libxml-c14n.html#XML_C14N_EXCLUSIVE_1_0">XML_C14N_EXCLUSIVE_1_0</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a><br />
+<a href="html/libxml-c14n.html#xmlC14NMode">xmlC14NMode</a><br />
+</p><h2><a name="catalog" id="catalog">Module catalog</a>:</h2><p><a href="html/libxml-catalog.html#XML_CATALOGS_NAMESPACE">XML_CATALOGS_NAMESPACE</a><br />
+<a href="html/libxml-catalog.html#XML_CATALOG_PI">XML_CATALOG_PI</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_ALLOW_ALL">XML_CATA_ALLOW_ALL</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_ALLOW_DOCUMENT">XML_CATA_ALLOW_DOCUMENT</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_ALLOW_GLOBAL">XML_CATA_ALLOW_GLOBAL</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_ALLOW_NONE">XML_CATA_ALLOW_NONE</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_PREFER_NONE">XML_CATA_PREFER_NONE</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_PREFER_PUBLIC">XML_CATA_PREFER_PUBLIC</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_PREFER_SYSTEM">XML_CATA_PREFER_SYSTEM</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogDump">xmlACatalogDump</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolve">xmlACatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolvePublic">xmlACatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveSystem">xmlACatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveURI">xmlACatalogResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalog">xmlCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogCleanup">xmlCatalogCleanup</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogConvert">xmlCatalogConvert</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogDump">xmlCatalogDump</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogFreeLocal">xmlCatalogFreeLocal</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetPublic">xmlCatalogGetPublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetSystem">xmlCatalogGetSystem</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogIsEmpty">xmlCatalogIsEmpty</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogPrefer">xmlCatalogPrefer</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolve">xmlCatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolvePublic">xmlCatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveSystem">xmlCatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveURI">xmlCatalogResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a><br />
+<a href="html/libxml-catalog.html#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlFreeCatalog">xmlFreeCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlInitializeCatalog">xmlInitializeCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlNewCatalog">xmlNewCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlParseCatalogFile">xmlParseCatalogFile</a><br />
+</p><h2><a name="chvalid" id="chvalid">Module chvalid</a>:</h2><p><a href="html/libxml-chvalid.html#_xmlChLRange">_xmlChLRange</a><br />
+<a href="html/libxml-chvalid.html#_xmlChRangeGroup">_xmlChRangeGroup</a><br />
+<a href="html/libxml-chvalid.html#_xmlChSRange">_xmlChSRange</a><br />
+<a href="html/libxml-chvalid.html#xmlChLRange">xmlChLRange</a><br />
+<a href="html/libxml-chvalid.html#xmlChLRangePtr">xmlChLRangePtr</a><br />
+<a href="html/libxml-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlChRangeGroupPtr">xmlChRangeGroupPtr</a><br />
+<a href="html/libxml-chvalid.html#xmlChSRange">xmlChSRange</a><br />
+<a href="html/libxml-chvalid.html#xmlChSRangePtr">xmlChSRangePtr</a><br />
+<a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar">xmlIsBaseChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseCharGroup">xmlIsBaseCharGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseCharQ">xmlIsBaseCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar_ch">xmlIsBaseChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank">xmlIsBlank</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlankQ">xmlIsBlankQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank_ch">xmlIsBlank_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar">xmlIsChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCharGroup">xmlIsCharGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCharQ">xmlIsCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar_ch">xmlIsChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombining">xmlIsCombining</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombiningGroup">xmlIsCombiningGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombiningQ">xmlIsCombiningQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit">xmlIsDigit</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigitGroup">xmlIsDigitGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigitQ">xmlIsDigitQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit_ch">xmlIsDigit_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender">xmlIsExtender</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtenderGroup">xmlIsExtenderGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtenderQ">xmlIsExtenderQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender_ch">xmlIsExtender_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographic">xmlIsIdeographic</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographicGroup">xmlIsIdeographicGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographicQ">xmlIsIdeographicQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar">xmlIsPubidChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidCharQ">xmlIsPubidCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar_ch">xmlIsPubidChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar_tab">xmlIsPubidChar_tab</a><br />
+</p><h2><a name="debugXML" id="debugXML">Module debugXML</a>:</h2><p><a href="html/libxml-debugXML.html#_xmlShellCtxt">_xmlShellCtxt</a><br />
+<a href="html/libxml-debugXML.html#xmlBoolToText">xmlBoolToText</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugCheckDocument">xmlDebugCheckDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttr">xmlDebugDumpAttr</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDTD">xmlDebugDumpDTD</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocument">xmlDebugDumpDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpEntities">xmlDebugDumpEntities</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNode">xmlDebugDumpNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
+<a href="html/libxml-debugXML.html#xmlLsCountNode">xmlLsCountNode</a><br />
+<a href="html/libxml-debugXML.html#xmlLsOneNode">xmlLsOneNode</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-debugXML.html#xmlShellBase">xmlShellBase</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCtxt">xmlShellCtxt</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDir">xmlShellDir</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+<a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+<a href="html/libxml-debugXML.html#xmlShellLoad">xmlShellLoad</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintNode">xmlShellPrintNode</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathError">xmlShellPrintXPathError</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
+<a href="html/libxml-debugXML.html#xmlShellSave">xmlShellSave</a><br />
+<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+</p><h2><a name="dict" id="dict">Module dict</a>:</h2><p><a href="html/libxml-dict.html#xmlDict">xmlDict</a><br />
+<a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
+<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
+<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
+<a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
+<a href="html/libxml-dict.html#xmlDictFree">xmlDictFree</a><br />
+<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
+<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
+<a href="html/libxml-dict.html#xmlDictOwns">xmlDictOwns</a><br />
+<a href="html/libxml-dict.html#xmlDictPtr">xmlDictPtr</a><br />
+<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
+<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
+<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
+<a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
+<a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
+</p><h2><a name="encoding" id="encoding">Module encoding</a>:</h2><p><a href="html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_2022_JP">XML_CHAR_ENCODING_2022_JP</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_1">XML_CHAR_ENCODING_8859_1</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_2">XML_CHAR_ENCODING_8859_2</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_3">XML_CHAR_ENCODING_8859_3</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_4">XML_CHAR_ENCODING_8859_4</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_5">XML_CHAR_ENCODING_8859_5</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_6">XML_CHAR_ENCODING_8859_6</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_7">XML_CHAR_ENCODING_8859_7</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_8">XML_CHAR_ENCODING_8859_8</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_9">XML_CHAR_ENCODING_8859_9</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_ASCII">XML_CHAR_ENCODING_ASCII</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_EBCDIC">XML_CHAR_ENCODING_EBCDIC</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_ERROR">XML_CHAR_ENCODING_ERROR</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_EUC_JP">XML_CHAR_ENCODING_EUC_JP</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_SHIFT_JIS">XML_CHAR_ENCODING_SHIFT_JIS</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UCS2">XML_CHAR_ENCODING_UCS2</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UCS4BE">XML_CHAR_ENCODING_UCS4BE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UCS4LE">XML_CHAR_ENCODING_UCS4LE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UCS4_2143">XML_CHAR_ENCODING_UCS4_2143</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UCS4_3412">XML_CHAR_ENCODING_UCS4_3412</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UTF16BE">XML_CHAR_ENCODING_UTF16BE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UTF16LE">XML_CHAR_ENCODING_UTF16LE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UTF8">XML_CHAR_ENCODING_UTF8</a><br />
+<a href="html/libxml-encoding.html#_uconv_t">_uconv_t</a><br />
+<a href="html/libxml-encoding.html#_xmlCharEncodingHandler">_xmlCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-encoding.html#uconv_t">uconv_t</a><br />
+<a href="html/libxml-encoding.html#xmlAddEncodingAlias">xmlAddEncodingAlias</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a><br />
+<a href="html/libxml-encoding.html#xmlCleanupEncodingAliases">xmlCleanupEncodingAliases</a><br />
+<a href="html/libxml-encoding.html#xmlDelEncodingAlias">xmlDelEncodingAlias</a><br />
+<a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+<a href="html/libxml-encoding.html#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-encoding.html#xmlGetEncodingAlias">xmlGetEncodingAlias</a><br />
+<a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
+<a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-encoding.html#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a><br />
+</p><h2><a name="entities" id="entities">Module entities</a>:</h2><p><a href="html/libxml-entities.html#XML_EXTERNAL_GENERAL_PARSED_ENTITY">XML_EXTERNAL_GENERAL_PARSED_ENTITY</a><br />
+<a href="html/libxml-entities.html#XML_EXTERNAL_GENERAL_UNPARSED_ENTITY">XML_EXTERNAL_GENERAL_UNPARSED_ENTITY</a><br />
+<a href="html/libxml-entities.html#XML_EXTERNAL_PARAMETER_ENTITY">XML_EXTERNAL_PARAMETER_ENTITY</a><br />
+<a href="html/libxml-entities.html#XML_INTERNAL_GENERAL_ENTITY">XML_INTERNAL_GENERAL_ENTITY</a><br />
+<a href="html/libxml-entities.html#XML_INTERNAL_PARAMETER_ENTITY">XML_INTERNAL_PARAMETER_ENTITY</a><br />
+<a href="html/libxml-entities.html#XML_INTERNAL_PREDEFINED_ENTITY">XML_INTERNAL_PREDEFINED_ENTITY</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-entities.html#xmlAddDocEntity">xmlAddDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlAddDtdEntity">xmlAddDtdEntity</a><br />
+<a href="html/libxml-entities.html#xmlCleanupPredefinedEntities">xmlCleanupPredefinedEntities</a><br />
+<a href="html/libxml-entities.html#xmlCopyEntitiesTable">xmlCopyEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlDumpEntitiesTable">xmlDumpEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlDumpEntityDecl">xmlDumpEntityDecl</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-entities.html#xmlEntitiesTable">xmlEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a><br />
+<a href="html/libxml-entities.html#xmlEntityType">xmlEntityType</a><br />
+<a href="html/libxml-entities.html#xmlFreeEntitiesTable">xmlFreeEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetDtdEntity">xmlGetDtdEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetParameterEntity">xmlGetParameterEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetPredefinedEntity">xmlGetPredefinedEntity</a><br />
+<a href="html/libxml-entities.html#xmlInitializePredefinedEntities">xmlInitializePredefinedEntities</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+</p><h2><a name="globals" id="globals">Module globals</a>:</h2><p><a href="html/libxml-globals.html#_xmlGlobalState">_xmlGlobalState</a><br />
+<a href="html/libxml-globals.html#docbDefaultSAXHandler">docbDefaultSAXHandler</a><br />
+<a href="html/libxml-globals.html#htmlDefaultSAXHandler">htmlDefaultSAXHandler</a><br />
+<a href="html/libxml-globals.html#oldXMLWDcompatibility">oldXMLWDcompatibility</a><br />
+<a href="html/libxml-globals.html#xmlBufferAllocScheme">xmlBufferAllocScheme</a><br />
+<a href="html/libxml-globals.html#xmlCleanupGlobals">xmlCleanupGlobals</a><br />
+<a href="html/libxml-globals.html#xmlDefaultBufferSize">xmlDefaultBufferSize</a><br />
+<a href="html/libxml-globals.html#xmlDefaultSAXHandler">xmlDefaultSAXHandler</a><br />
+<a href="html/libxml-globals.html#xmlDefaultSAXLocator">xmlDefaultSAXLocator</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeDefaultValue">xmlDeregisterNodeDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a><br />
+<a href="html/libxml-globals.html#xmlDoValidityCheckingDefaultValue">xmlDoValidityCheckingDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlFree">xmlFree</a><br />
+<a href="html/libxml-globals.html#xmlGenericError">xmlGenericError</a><br />
+<a href="html/libxml-globals.html#xmlGenericErrorContext">xmlGenericErrorContext</a><br />
+<a href="html/libxml-globals.html#xmlGetWarningsDefaultValue">xmlGetWarningsDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlGlobalState">xmlGlobalState</a><br />
+<a href="html/libxml-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a><br />
+<a href="html/libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a><br />
+<a href="html/libxml-globals.html#xmlInitGlobals">xmlInitGlobals</a><br />
+<a href="html/libxml-globals.html#xmlInitializeGlobalState">xmlInitializeGlobalState</a><br />
+<a href="html/libxml-globals.html#xmlKeepBlanksDefaultValue">xmlKeepBlanksDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlLastError">xmlLastError</a><br />
+<a href="html/libxml-globals.html#xmlLineNumbersDefaultValue">xmlLineNumbersDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlLoadExtDtdDefaultValue">xmlLoadExtDtdDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlMalloc">xmlMalloc</a><br />
+<a href="html/libxml-globals.html#xmlMallocAtomic">xmlMallocAtomic</a><br />
+<a href="html/libxml-globals.html#xmlMemStrdup">xmlMemStrdup</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameValue">xmlOutputBufferCreateFilenameValue</a><br />
+<a href="html/libxml-globals.html#xmlParserDebugEntities">xmlParserDebugEntities</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameValue">xmlParserInputBufferCreateFilenameValue</a><br />
+<a href="html/libxml-globals.html#xmlParserVersion">xmlParserVersion</a><br />
+<a href="html/libxml-globals.html#xmlPedanticParserDefaultValue">xmlPedanticParserDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlRealloc">xmlRealloc</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeDefaultValue">xmlRegisterNodeDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a><br />
+<a href="html/libxml-globals.html#xmlSaveNoEmptyTags">xmlSaveNoEmptyTags</a><br />
+<a href="html/libxml-globals.html#xmlStructuredError">xmlStructuredError</a><br />
+<a href="html/libxml-globals.html#xmlStructuredErrorContext">xmlStructuredErrorContext</a><br />
+<a href="html/libxml-globals.html#xmlSubstituteEntitiesDefaultValue">xmlSubstituteEntitiesDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefBufferAllocScheme">xmlThrDefBufferAllocScheme</a><br />
+<a href="html/libxml-globals.html#xmlThrDefDefaultBufferSize">xmlThrDefDefaultBufferSize</a><br />
+<a href="html/libxml-globals.html#xmlThrDefDeregisterNodeDefault">xmlThrDefDeregisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefDoValidityCheckingDefaultValue">xmlThrDefDoValidityCheckingDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefGetWarningsDefaultValue">xmlThrDefGetWarningsDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefIndentTreeOutput">xmlThrDefIndentTreeOutput</a><br />
+<a href="html/libxml-globals.html#xmlThrDefKeepBlanksDefaultValue">xmlThrDefKeepBlanksDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefLineNumbersDefaultValue">xmlThrDefLineNumbersDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefLoadExtDtdDefaultValue">xmlThrDefLoadExtDtdDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefOutputBufferCreateFilenameDefault">xmlThrDefOutputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefParserDebugEntities">xmlThrDefParserDebugEntities</a><br />
+<a href="html/libxml-globals.html#xmlThrDefParserInputBufferCreateFilenameDefault">xmlThrDefParserInputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefPedanticParserDefaultValue">xmlThrDefPedanticParserDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefRegisterNodeDefault">xmlThrDefRegisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSaveNoEmptyTags">xmlThrDefSaveNoEmptyTags</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSetGenericErrorFunc">xmlThrDefSetGenericErrorFunc</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSetStructuredErrorFunc">xmlThrDefSetStructuredErrorFunc</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSubstituteEntitiesDefaultValue">xmlThrDefSubstituteEntitiesDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefTreeIndentString">xmlThrDefTreeIndentString</a><br />
+<a href="html/libxml-globals.html#xmlTreeIndentString">xmlTreeIndentString</a><br />
+</p><h2><a name="hash" id="hash">Module hash</a>:</h2><p><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
+<a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
+<a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br />
+<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
+<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup">xmlHashQLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup2">xmlHashQLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup3">xmlHashQLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
+<a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
+<a href="html/libxml-hash.html#xmlHashSize">xmlHashSize</a><br />
+<a href="html/libxml-hash.html#xmlHashTable">xmlHashTable</a><br />
+<a href="html/libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+</p><h2><a name="list" id="list">Module list</a>:</h2><p><a href="html/libxml-list.html#xmlLink">xmlLink</a><br />
+<a href="html/libxml-list.html#xmlLinkGetData">xmlLinkGetData</a><br />
+<a href="html/libxml-list.html#xmlLinkPtr">xmlLinkPtr</a><br />
+<a href="html/libxml-list.html#xmlList">xmlList</a><br />
+<a href="html/libxml-list.html#xmlListAppend">xmlListAppend</a><br />
+<a href="html/libxml-list.html#xmlListClear">xmlListClear</a><br />
+<a href="html/libxml-list.html#xmlListCopy">xmlListCopy</a><br />
+<a href="html/libxml-list.html#xmlListCreate">xmlListCreate</a><br />
+<a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
+<a href="html/libxml-list.html#xmlListDeallocator">xmlListDeallocator</a><br />
+<a href="html/libxml-list.html#xmlListDelete">xmlListDelete</a><br />
+<a href="html/libxml-list.html#xmlListDup">xmlListDup</a><br />
+<a href="html/libxml-list.html#xmlListEmpty">xmlListEmpty</a><br />
+<a href="html/libxml-list.html#xmlListEnd">xmlListEnd</a><br />
+<a href="html/libxml-list.html#xmlListFront">xmlListFront</a><br />
+<a href="html/libxml-list.html#xmlListInsert">xmlListInsert</a><br />
+<a href="html/libxml-list.html#xmlListMerge">xmlListMerge</a><br />
+<a href="html/libxml-list.html#xmlListPopBack">xmlListPopBack</a><br />
+<a href="html/libxml-list.html#xmlListPopFront">xmlListPopFront</a><br />
+<a href="html/libxml-list.html#xmlListPtr">xmlListPtr</a><br />
+<a href="html/libxml-list.html#xmlListPushBack">xmlListPushBack</a><br />
+<a href="html/libxml-list.html#xmlListPushFront">xmlListPushFront</a><br />
+<a href="html/libxml-list.html#xmlListRemoveAll">xmlListRemoveAll</a><br />
+<a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
+<a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
+<a href="html/libxml-list.html#xmlListReverse">xmlListReverse</a><br />
+<a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br />
+<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
+<a href="html/libxml-list.html#xmlListSearch">xmlListSearch</a><br />
+<a href="html/libxml-list.html#xmlListSize">xmlListSize</a><br />
+<a href="html/libxml-list.html#xmlListSort">xmlListSort</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
+</p><h2><a name="nanoftp" id="nanoftp">Module nanoftp</a>:</h2><p><a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br />
+<a href="html/libxml-nanoftp.html#SOCKET">SOCKET</a><br />
+<a href="html/libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a><br />
+<a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCloseConnection">xmlNanoFTPCloseConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnect">xmlNanoFTPConnect</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPFreeCtxt">xmlNanoFTPFreeCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPNewCtxt">xmlNanoFTPNewCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPOpen">xmlNanoFTPOpen</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPQuit">xmlNanoFTPQuit</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+</p><h2><a name="nanohttp" id="nanohttp">Module nanohttp</a>:</h2><p><a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPCleanup">xmlNanoHTTPCleanup</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPClose">xmlNanoHTTPClose</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPEncoding">xmlNanoHTTPEncoding</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRedir">xmlNanoHTTPRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+</p><h2><a name="parser" id="parser">Module parser</a>:</h2><p><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-parser.html#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a><br />
+<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_ATTRIBUTE_VALUE">XML_PARSER_ATTRIBUTE_VALUE</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_CDATA_SECTION">XML_PARSER_CDATA_SECTION</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_COMMENT">XML_PARSER_COMMENT</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_CONTENT">XML_PARSER_CONTENT</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_DTD">XML_PARSER_DTD</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_END_TAG">XML_PARSER_END_TAG</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_ENTITY_DECL">XML_PARSER_ENTITY_DECL</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_ENTITY_VALUE">XML_PARSER_ENTITY_VALUE</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_EOF">XML_PARSER_EOF</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_EPILOG">XML_PARSER_EPILOG</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_IGNORE">XML_PARSER_IGNORE</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_MISC">XML_PARSER_MISC</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_PI">XML_PARSER_PI</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_PROLOG">XML_PARSER_PROLOG</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_PUBLIC_LITERAL">XML_PARSER_PUBLIC_LITERAL</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_START">XML_PARSER_START</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_START_TAG">XML_PARSER_START_TAG</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_SYSTEM_LITERAL">XML_PARSER_SYSTEM_LITERAL</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_BIG_LINES">XML_PARSE_BIG_LINES</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_COMPACT">XML_PARSE_COMPACT</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_DOM">XML_PARSE_DOM</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_DTDATTR">XML_PARSE_DTDATTR</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_DTDLOAD">XML_PARSE_DTDLOAD</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_DTDVALID">XML_PARSE_DTDVALID</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_HUGE">XML_PARSE_HUGE</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_IGNORE_ENC">XML_PARSE_IGNORE_ENC</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOBASEFIX">XML_PARSE_NOBASEFIX</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOBLANKS">XML_PARSE_NOBLANKS</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NODICT">XML_PARSE_NODICT</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOENT">XML_PARSE_NOENT</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOERROR">XML_PARSE_NOERROR</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NONET">XML_PARSE_NONET</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOWARNING">XML_PARSE_NOWARNING</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_OLD10">XML_PARSE_OLD10</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_OLDSAX">XML_PARSE_OLDSAX</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_PEDANTIC">XML_PARSE_PEDANTIC</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_PUSH_DOM">XML_PARSE_PUSH_DOM</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_PUSH_SAX">XML_PARSE_PUSH_SAX</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_READER">XML_PARSE_READER</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_RECOVER">XML_PARSE_RECOVER</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_SAX">XML_PARSE_SAX</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_SAX1">XML_PARSE_SAX1</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_UNKNOWN">XML_PARSE_UNKNOWN</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_XINCLUDE">XML_PARSE_XINCLUDE</a><br />
+<a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
+<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+<a href="html/libxml-parser.html#XML_WITH_AUTOMATA">XML_WITH_AUTOMATA</a><br />
+<a href="html/libxml-parser.html#XML_WITH_C14N">XML_WITH_C14N</a><br />
+<a href="html/libxml-parser.html#XML_WITH_CATALOG">XML_WITH_CATALOG</a><br />
+<a href="html/libxml-parser.html#XML_WITH_DEBUG">XML_WITH_DEBUG</a><br />
+<a href="html/libxml-parser.html#XML_WITH_DEBUG_MEM">XML_WITH_DEBUG_MEM</a><br />
+<a href="html/libxml-parser.html#XML_WITH_DEBUG_RUN">XML_WITH_DEBUG_RUN</a><br />
+<a href="html/libxml-parser.html#XML_WITH_EXPR">XML_WITH_EXPR</a><br />
+<a href="html/libxml-parser.html#XML_WITH_FTP">XML_WITH_FTP</a><br />
+<a href="html/libxml-parser.html#XML_WITH_HTML">XML_WITH_HTML</a><br />
+<a href="html/libxml-parser.html#XML_WITH_HTTP">XML_WITH_HTTP</a><br />
+<a href="html/libxml-parser.html#XML_WITH_ICONV">XML_WITH_ICONV</a><br />
+<a href="html/libxml-parser.html#XML_WITH_ICU">XML_WITH_ICU</a><br />
+<a href="html/libxml-parser.html#XML_WITH_ISO8859X">XML_WITH_ISO8859X</a><br />
+<a href="html/libxml-parser.html#XML_WITH_LEGACY">XML_WITH_LEGACY</a><br />
+<a href="html/libxml-parser.html#XML_WITH_LZMA">XML_WITH_LZMA</a><br />
+<a href="html/libxml-parser.html#XML_WITH_MODULES">XML_WITH_MODULES</a><br />
+<a href="html/libxml-parser.html#XML_WITH_NONE">XML_WITH_NONE</a><br />
+<a href="html/libxml-parser.html#XML_WITH_OUTPUT">XML_WITH_OUTPUT</a><br />
+<a href="html/libxml-parser.html#XML_WITH_PATTERN">XML_WITH_PATTERN</a><br />
+<a href="html/libxml-parser.html#XML_WITH_PUSH">XML_WITH_PUSH</a><br />
+<a href="html/libxml-parser.html#XML_WITH_READER">XML_WITH_READER</a><br />
+<a href="html/libxml-parser.html#XML_WITH_REGEXP">XML_WITH_REGEXP</a><br />
+<a href="html/libxml-parser.html#XML_WITH_SAX1">XML_WITH_SAX1</a><br />
+<a href="html/libxml-parser.html#XML_WITH_SCHEMAS">XML_WITH_SCHEMAS</a><br />
+<a href="html/libxml-parser.html#XML_WITH_SCHEMATRON">XML_WITH_SCHEMATRON</a><br />
+<a href="html/libxml-parser.html#XML_WITH_THREAD">XML_WITH_THREAD</a><br />
+<a href="html/libxml-parser.html#XML_WITH_TREE">XML_WITH_TREE</a><br />
+<a href="html/libxml-parser.html#XML_WITH_UNICODE">XML_WITH_UNICODE</a><br />
+<a href="html/libxml-parser.html#XML_WITH_VALID">XML_WITH_VALID</a><br />
+<a href="html/libxml-parser.html#XML_WITH_WRITER">XML_WITH_WRITER</a><br />
+<a href="html/libxml-parser.html#XML_WITH_XINCLUDE">XML_WITH_XINCLUDE</a><br />
+<a href="html/libxml-parser.html#XML_WITH_XPATH">XML_WITH_XPATH</a><br />
+<a href="html/libxml-parser.html#XML_WITH_XPTR">XML_WITH_XPTR</a><br />
+<a href="html/libxml-parser.html#XML_WITH_ZLIB">XML_WITH_ZLIB</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-parser.html#_xmlParserNodeInfo">_xmlParserNodeInfo</a><br />
+<a href="html/libxml-parser.html#_xmlParserNodeInfoSeq">_xmlParserNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#_xmlSAXHandler">_xmlSAXHandler</a><br />
+<a href="html/libxml-parser.html#_xmlSAXHandlerV1">_xmlSAXHandlerV1</a><br />
+<a href="html/libxml-parser.html#_xmlSAXLocator">_xmlSAXLocator</a><br />
+<a href="html/libxml-parser.html#attributeDeclSAXFunc">attributeDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+<a href="html/libxml-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a><br />
+<a href="html/libxml-parser.html#charactersSAXFunc">charactersSAXFunc</a><br />
+<a href="html/libxml-parser.html#commentSAXFunc">commentSAXFunc</a><br />
+<a href="html/libxml-parser.html#elementDeclSAXFunc">elementDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#endDocumentSAXFunc">endDocumentSAXFunc</a><br />
+<a href="html/libxml-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#endElementSAXFunc">endElementSAXFunc</a><br />
+<a href="html/libxml-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#errorSAXFunc">errorSAXFunc</a><br />
+<a href="html/libxml-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a><br />
+<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-parser.html#getEntitySAXFunc">getEntitySAXFunc</a><br />
+<a href="html/libxml-parser.html#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a><br />
+<a href="html/libxml-parser.html#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a><br />
+<a href="html/libxml-parser.html#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+<a href="html/libxml-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a><br />
+<a href="html/libxml-parser.html#isStandaloneSAXFunc">isStandaloneSAXFunc</a><br />
+<a href="html/libxml-parser.html#notationDeclSAXFunc">notationDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#processingInstructionSAXFunc">processingInstructionSAXFunc</a><br />
+<a href="html/libxml-parser.html#referenceSAXFunc">referenceSAXFunc</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-parser.html#startDocumentSAXFunc">startDocumentSAXFunc</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+<a href="html/libxml-parser.html#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#warningSAXFunc">warningSAXFunc</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadMemory">xmlCtxtReadMemory</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReset">xmlCtxtReset</a><br />
+<a href="html/libxml-parser.html#xmlCtxtResetPush">xmlCtxtResetPush</a><br />
+<a href="html/libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a><br />
+<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlFeature">xmlFeature</a><br />
+<a href="html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlInitParser">xmlInitParser</a><br />
+<a href="html/libxml-parser.html#xmlInitParserCtxt">xmlInitParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+<a href="html/libxml-parser.html#xmlNewParserCtxt">xmlNewParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseChunk">xmlParseChunk</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseDTD">xmlParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlParseDoc">xmlParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+<a href="html/libxml-parser.html#xmlParseEntity">xmlParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseFile">xmlParseFile</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-parser.html#xmlParseMemory">xmlParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+<a href="html/libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-parser.html#xmlParserInputRead">xmlParserInputRead</a><br />
+<a href="html/libxml-parser.html#xmlParserInputState">xmlParserInputState</a><br />
+<a href="html/libxml-parser.html#xmlParserMode">xmlParserMode</a><br />
+<a href="html/libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a><br />
+<a href="html/libxml-parser.html#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a><br />
+<a href="html/libxml-parser.html#xmlParserOption">xmlParserOption</a><br />
+<a href="html/libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a><br />
+<a href="html/libxml-parser.html#xmlReadDoc">xmlReadDoc</a><br />
+<a href="html/libxml-parser.html#xmlReadFd">xmlReadFd</a><br />
+<a href="html/libxml-parser.html#xmlReadFile">xmlReadFile</a><br />
+<a href="html/libxml-parser.html#xmlReadIO">xmlReadIO</a><br />
+<a href="html/libxml-parser.html#xmlReadMemory">xmlReadMemory</a><br />
+<a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a><br />
+<a href="html/libxml-parser.html#xmlSAXHandlerV1Ptr">xmlSAXHandlerV1Ptr</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
+<a href="html/libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a><br />
+<a href="html/libxml-parser.html#xmlStopParser">xmlStopParser</a><br />
+<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+</p><h2><a name="parserInternals" id="parserInternals">Module parserInternals</a>:</h2><p><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+<a href="html/libxml-parserInternals.html#IS_ASCII_DIGIT">IS_ASCII_DIGIT</a><br />
+<a href="html/libxml-parserInternals.html#IS_ASCII_LETTER">IS_ASCII_LETTER</a><br />
+<a href="html/libxml-parserInternals.html#IS_BASECHAR">IS_BASECHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_BLANK">IS_BLANK</a><br />
+<a href="html/libxml-parserInternals.html#IS_BLANK_CH">IS_BLANK_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_BYTE_CHAR">IS_BYTE_CHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_CHAR_CH">IS_CHAR_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_COMBINING">IS_COMBINING</a><br />
+<a href="html/libxml-parserInternals.html#IS_COMBINING_CH">IS_COMBINING_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_DIGIT">IS_DIGIT</a><br />
+<a href="html/libxml-parserInternals.html#IS_DIGIT_CH">IS_DIGIT_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+<a href="html/libxml-parserInternals.html#IS_EXTENDER_CH">IS_EXTENDER_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a><br />
+<a href="html/libxml-parserInternals.html#IS_LETTER">IS_LETTER</a><br />
+<a href="html/libxml-parserInternals.html#IS_LETTER_CH">IS_LETTER_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_PUBIDCHAR">IS_PUBIDCHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_PUBIDCHAR_CH">IS_PUBIDCHAR_CH</a><br />
+<a href="html/libxml-parserInternals.html#MOVETO_ENDTAG">MOVETO_ENDTAG</a><br />
+<a href="html/libxml-parserInternals.html#MOVETO_STARTTAG">MOVETO_STARTTAG</a><br />
+<a href="html/libxml-parserInternals.html#SKIP_EOL">SKIP_EOL</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_NONE">XML_SUBSTITUTE_NONE</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a><br />
+<a href="html/libxml-parserInternals.html#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-parserInternals.html#inputPop">inputPop</a><br />
+<a href="html/libxml-parserInternals.html#inputPush">inputPush</a><br />
+<a href="html/libxml-parserInternals.html#namePop">namePop</a><br />
+<a href="html/libxml-parserInternals.html#namePush">namePush</a><br />
+<a href="html/libxml-parserInternals.html#nodePop">nodePop</a><br />
+<a href="html/libxml-parserInternals.html#nodePush">nodePush</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-parserInternals.html#xmlCopyChar">xmlCopyChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlCopyCharMultiByte">xmlCopyCharMultiByte</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateFileParserCtxt">xmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateMemoryParserCtxt">xmlCreateMemoryParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlErrMemory">xmlErrMemory</a><br />
+<a href="html/libxml-parserInternals.html#xmlFreeInputStream">xmlFreeInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewEntityInputStream">xmlNewEntityInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewInputFromFile">xmlNewInputFromFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewInputStream">xmlNewInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewStringInputStream">xmlNewStringInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlNextChar">xmlNextChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseContent">xmlParseContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEncName">xmlParseEncName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEncodingDecl">xmlParseEncodingDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEndTag">xmlParseEndTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMisc">xmlParseMisc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNmtoken">xmlParseNmtoken</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePI">xmlParsePI</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePITarget">xmlParsePITarget</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePubidLiteral">xmlParsePubidLiteral</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSystemLiteral">xmlParseSystemLiteral</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionInfo">xmlParseVersionInfo</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseXMLDecl">xmlParseXMLDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserInputShrink">xmlParserInputShrink</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserMaxDepth">xmlParserMaxDepth</a><br />
+<a href="html/libxml-parserInternals.html#xmlPopInput">xmlPopInput</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-parserInternals.html#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringComment">xmlStringComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringText">xmlStringText</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringTextNoenc">xmlStringTextNoenc</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchEncoding">xmlSwitchEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchToEncoding">xmlSwitchToEncoding</a><br />
+</p><h2><a name="pattern" id="pattern">Module pattern</a>:</h2><p><a href="html/libxml-pattern.html#XML_PATTERN_DEFAULT">XML_PATTERN_DEFAULT</a><br />
+<a href="html/libxml-pattern.html#XML_PATTERN_XPATH">XML_PATTERN_XPATH</a><br />
+<a href="html/libxml-pattern.html#XML_PATTERN_XSFIELD">XML_PATTERN_XSFIELD</a><br />
+<a href="html/libxml-pattern.html#XML_PATTERN_XSSEL">XML_PATTERN_XSSEL</a><br />
+<a href="html/libxml-pattern.html#xmlFreePattern">xmlFreePattern</a><br />
+<a href="html/libxml-pattern.html#xmlFreePatternList">xmlFreePatternList</a><br />
+<a href="html/libxml-pattern.html#xmlFreeStreamCtxt">xmlFreeStreamCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlPattern">xmlPattern</a><br />
+<a href="html/libxml-pattern.html#xmlPatternFlags">xmlPatternFlags</a><br />
+<a href="html/libxml-pattern.html#xmlPatternFromRoot">xmlPatternFromRoot</a><br />
+<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a><br />
+<a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-pattern.html#xmlStreamCtxt">xmlStreamCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</p><h2><a name="relaxng" id="relaxng">Module relaxng</a>:</h2><p><a href="html/libxml-relaxng.html#XML_RELAXNGP_CRNG">XML_RELAXNGP_CRNG</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNGP_FREE_DOC">XML_RELAXNGP_FREE_DOC</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNGP_NONE">XML_RELAXNGP_NONE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ATTREXTRANS">XML_RELAXNG_ERR_ATTREXTRANS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ATTRNAME">XML_RELAXNG_ERR_ATTRNAME</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ATTRNONS">XML_RELAXNG_ERR_ATTRNONS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ATTRVALID">XML_RELAXNG_ERR_ATTRVALID</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ATTRWRONGNS">XML_RELAXNG_ERR_ATTRWRONGNS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_CONTENTVALID">XML_RELAXNG_ERR_CONTENTVALID</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_DATAELEM">XML_RELAXNG_ERR_DATAELEM</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_DATATYPE">XML_RELAXNG_ERR_DATATYPE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_DUPID">XML_RELAXNG_ERR_DUPID</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMEXTRANS">XML_RELAXNG_ERR_ELEMEXTRANS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMNAME">XML_RELAXNG_ERR_ELEMNAME</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMNONS">XML_RELAXNG_ERR_ELEMNONS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMNOTEMPTY">XML_RELAXNG_ERR_ELEMNOTEMPTY</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMWRONG">XML_RELAXNG_ERR_ELEMWRONG</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMWRONGNS">XML_RELAXNG_ERR_ELEMWRONGNS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_EXTRACONTENT">XML_RELAXNG_ERR_EXTRACONTENT</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_EXTRADATA">XML_RELAXNG_ERR_EXTRADATA</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_INTEREXTRA">XML_RELAXNG_ERR_INTEREXTRA</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_INTERNAL">XML_RELAXNG_ERR_INTERNAL</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_INTERNODATA">XML_RELAXNG_ERR_INTERNODATA</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_INTERSEQ">XML_RELAXNG_ERR_INTERSEQ</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_INVALIDATTR">XML_RELAXNG_ERR_INVALIDATTR</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_LACKDATA">XML_RELAXNG_ERR_LACKDATA</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_LIST">XML_RELAXNG_ERR_LIST</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_LISTELEM">XML_RELAXNG_ERR_LISTELEM</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_LISTEMPTY">XML_RELAXNG_ERR_LISTEMPTY</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_LISTEXTRA">XML_RELAXNG_ERR_LISTEXTRA</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_MEMORY">XML_RELAXNG_ERR_MEMORY</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_NODEFINE">XML_RELAXNG_ERR_NODEFINE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_NOELEM">XML_RELAXNG_ERR_NOELEM</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_NOGRAMMAR">XML_RELAXNG_ERR_NOGRAMMAR</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_NOSTATE">XML_RELAXNG_ERR_NOSTATE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_NOTELEM">XML_RELAXNG_ERR_NOTELEM</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_TEXTWRONG">XML_RELAXNG_ERR_TEXTWRONG</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_TYPE">XML_RELAXNG_ERR_TYPE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_TYPECMP">XML_RELAXNG_ERR_TYPECMP</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_TYPEVAL">XML_RELAXNG_ERR_TYPEVAL</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_VALELEM">XML_RELAXNG_ERR_VALELEM</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_VALUE">XML_RELAXNG_ERR_VALUE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_OK">XML_RELAXNG_OK</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNG">xmlRelaxNG</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGCleanupTypes">xmlRelaxNGCleanupTypes</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGDump">xmlRelaxNGDump</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGDumpTree">xmlRelaxNGDumpTree</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFree">xmlRelaxNGFree</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFreeParserCtxt">xmlRelaxNGFreeParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFreeValidCtxt">xmlRelaxNGFreeValidCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGInitTypes">xmlRelaxNGInitTypes</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewMemParserCtxt">xmlRelaxNGNewMemParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParserCtxt">xmlRelaxNGParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParserFlag">xmlRelaxNGParserFlag</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserStructuredErrors">xmlRelaxNGSetParserStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidCtxt">xmlRelaxNGValidCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidErr">xmlRelaxNGValidErr</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
+</p><h2><a name="schemasInternals" id="schemasInternals">Module schemasInternals</a>:</h2><p><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYSIMPLETYPE">XML_SCHEMAS_ANYSIMPLETYPE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYTYPE">XML_SCHEMAS_ANYTYPE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYURI">XML_SCHEMAS_ANYURI</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BASE64BINARY">XML_SCHEMAS_BASE64BINARY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BOOLEAN">XML_SCHEMAS_BOOLEAN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BYTE">XML_SCHEMAS_BYTE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_DATE">XML_SCHEMAS_DATE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_DATETIME">XML_SCHEMAS_DATETIME</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_DECIMAL">XML_SCHEMAS_DECIMAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_DOUBLE">XML_SCHEMAS_DOUBLE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_DURATION">XML_SCHEMAS_DURATION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ENTITIES">XML_SCHEMAS_ENTITIES</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ENTITY">XML_SCHEMAS_ENTITY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FLOAT">XML_SCHEMAS_FLOAT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_GDAY">XML_SCHEMAS_GDAY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_GMONTH">XML_SCHEMAS_GMONTH</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_GMONTHDAY">XML_SCHEMAS_GMONTHDAY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_GYEAR">XML_SCHEMAS_GYEAR</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_GYEARMONTH">XML_SCHEMAS_GYEARMONTH</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_HEXBINARY">XML_SCHEMAS_HEXBINARY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ID">XML_SCHEMAS_ID</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_IDREF">XML_SCHEMAS_IDREF</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_IDREFS">XML_SCHEMAS_IDREFS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_INT">XML_SCHEMAS_INT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_INTEGER">XML_SCHEMAS_INTEGER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_LANGUAGE">XML_SCHEMAS_LANGUAGE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_LONG">XML_SCHEMAS_LONG</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NAME">XML_SCHEMAS_NAME</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NCNAME">XML_SCHEMAS_NCNAME</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NINTEGER">XML_SCHEMAS_NINTEGER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NMTOKEN">XML_SCHEMAS_NMTOKEN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NMTOKENS">XML_SCHEMAS_NMTOKENS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NNINTEGER">XML_SCHEMAS_NNINTEGER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NORMSTRING">XML_SCHEMAS_NORMSTRING</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NOTATION">XML_SCHEMAS_NOTATION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NPINTEGER">XML_SCHEMAS_NPINTEGER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_PINTEGER">XML_SCHEMAS_PINTEGER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QNAME">XML_SCHEMAS_QNAME</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_SHORT">XML_SCHEMAS_SHORT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_STRING">XML_SCHEMAS_STRING</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TIME">XML_SCHEMAS_TIME</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TOKEN">XML_SCHEMAS_TOKEN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_REDEFINED">XML_SCHEMAS_TYPE_REDEFINED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_UBYTE">XML_SCHEMAS_UBYTE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_UINT">XML_SCHEMAS_UINT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ULONG">XML_SCHEMAS_ULONG</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_UNKNOWN">XML_SCHEMAS_UNKNOWN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_USHORT">XML_SCHEMAS_USHORT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_ANY">XML_SCHEMA_CONTENT_ANY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_BASIC">XML_SCHEMA_CONTENT_BASIC</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_ELEMENTS">XML_SCHEMA_CONTENT_ELEMENTS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_EMPTY">XML_SCHEMA_CONTENT_EMPTY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_MIXED">XML_SCHEMA_CONTENT_MIXED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS">XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_SIMPLE">XML_SCHEMA_CONTENT_SIMPLE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_UNKNOWN">XML_SCHEMA_CONTENT_UNKNOWN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_EXTRA_ATTR_USE_PROHIB">XML_SCHEMA_EXTRA_ATTR_USE_PROHIB</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_EXTRA_QNAMEREF">XML_SCHEMA_EXTRA_QNAMEREF</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_ENUMERATION">XML_SCHEMA_FACET_ENUMERATION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_FRACTIONDIGITS">XML_SCHEMA_FACET_FRACTIONDIGITS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_LENGTH">XML_SCHEMA_FACET_LENGTH</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MAXEXCLUSIVE">XML_SCHEMA_FACET_MAXEXCLUSIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MAXINCLUSIVE">XML_SCHEMA_FACET_MAXINCLUSIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MAXLENGTH">XML_SCHEMA_FACET_MAXLENGTH</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MINEXCLUSIVE">XML_SCHEMA_FACET_MINEXCLUSIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MININCLUSIVE">XML_SCHEMA_FACET_MININCLUSIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MINLENGTH">XML_SCHEMA_FACET_MINLENGTH</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_PATTERN">XML_SCHEMA_FACET_PATTERN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_TOTALDIGITS">XML_SCHEMA_FACET_TOTALDIGITS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_WHITESPACE">XML_SCHEMA_FACET_WHITESPACE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ALL">XML_SCHEMA_TYPE_ALL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ANY">XML_SCHEMA_TYPE_ANY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ANY_ATTRIBUTE">XML_SCHEMA_TYPE_ANY_ATTRIBUTE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ATTRIBUTE">XML_SCHEMA_TYPE_ATTRIBUTE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ATTRIBUTEGROUP">XML_SCHEMA_TYPE_ATTRIBUTEGROUP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ATTRIBUTE_USE">XML_SCHEMA_TYPE_ATTRIBUTE_USE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_BASIC">XML_SCHEMA_TYPE_BASIC</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_CHOICE">XML_SCHEMA_TYPE_CHOICE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_COMPLEX">XML_SCHEMA_TYPE_COMPLEX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_COMPLEX_CONTENT">XML_SCHEMA_TYPE_COMPLEX_CONTENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ELEMENT">XML_SCHEMA_TYPE_ELEMENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_EXTENSION">XML_SCHEMA_TYPE_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_FACET">XML_SCHEMA_TYPE_FACET</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_GROUP">XML_SCHEMA_TYPE_GROUP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_KEY">XML_SCHEMA_TYPE_IDC_KEY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_KEYREF">XML_SCHEMA_TYPE_IDC_KEYREF</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_UNIQUE">XML_SCHEMA_TYPE_IDC_UNIQUE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_LIST">XML_SCHEMA_TYPE_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_NOTATION">XML_SCHEMA_TYPE_NOTATION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_PARTICLE">XML_SCHEMA_TYPE_PARTICLE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_RESTRICTION">XML_SCHEMA_TYPE_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_SEQUENCE">XML_SCHEMA_TYPE_SEQUENCE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_SIMPLE">XML_SCHEMA_TYPE_SIMPLE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_SIMPLE_CONTENT">XML_SCHEMA_TYPE_SIMPLE_CONTENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_UNION">XML_SCHEMA_TYPE_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_UR">XML_SCHEMA_TYPE_UR</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaAnnot">_xmlSchemaAnnot</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaAttribute">_xmlSchemaAttribute</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaAttributeGroup">_xmlSchemaAttributeGroup</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaAttributeLink">_xmlSchemaAttributeLink</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaFacetLink">_xmlSchemaFacetLink</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaNotation">_xmlSchemaNotation</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaTypeLink">_xmlSchemaTypeLink</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaWildcard">_xmlSchemaWildcard</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaWildcardNs">_xmlSchemaWildcardNs</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAnnot">xmlSchemaAnnot</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttribute">xmlSchemaAttribute</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttributeGroup">xmlSchemaAttributeGroup</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttributeGroupPtr">xmlSchemaAttributeGroupPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttributeLink">xmlSchemaAttributeLink</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttributeLinkPtr">xmlSchemaAttributeLinkPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaContentType">xmlSchemaContentType</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaElement">xmlSchemaElement</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaElementPtr">xmlSchemaElementPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFacet">xmlSchemaFacet</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFacetLink">xmlSchemaFacetLink</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFacetLinkPtr">xmlSchemaFacetLinkPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFreeType">xmlSchemaFreeType</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaNotation">xmlSchemaNotation</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaNotationPtr">xmlSchemaNotationPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaType">xmlSchemaType</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaTypeLink">xmlSchemaTypeLink</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaTypeLinkPtr">xmlSchemaTypeLinkPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaVal">xmlSchemaVal</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaWildcard">xmlSchemaWildcard</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaWildcardNs">xmlSchemaWildcardNs</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaWildcardNsPtr">xmlSchemaWildcardNsPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a><br />
+</p><h2><a name="schematron" id="schematron">Module schematron</a>:</h2><p><a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_BUFFER">XML_SCHEMATRON_OUT_BUFFER</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_ERROR">XML_SCHEMATRON_OUT_ERROR</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_FILE">XML_SCHEMATRON_OUT_FILE</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_IO">XML_SCHEMATRON_OUT_IO</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_QUIET">XML_SCHEMATRON_OUT_QUIET</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_TEXT">XML_SCHEMATRON_OUT_TEXT</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_XML">XML_SCHEMATRON_OUT_XML</a><br />
+<a href="html/libxml-schematron.html#xmlSchematron">xmlSchematron</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFree">xmlSchematronFree</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeParserCtxt">xmlSchematronFreeParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeValidCtxt">xmlSchematronFreeValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParserCtxt">xmlSchematronParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronSetValidStructuredErrors">xmlSchematronSetValidStructuredErrors</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidCtxt">xmlSchematronValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidOptions">xmlSchematronValidOptions</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
+</p><h2><a name="threads" id="threads">Module threads</a>:</h2><p><a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-threads.html#xmlDllMain">xmlDllMain</a><br />
+<a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+<a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
+<a href="html/libxml-threads.html#xmlGetGlobalState">xmlGetGlobalState</a><br />
+<a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+<a href="html/libxml-threads.html#xmlInitThreads">xmlInitThreads</a><br />
+<a href="html/libxml-threads.html#xmlIsMainThread">xmlIsMainThread</a><br />
+<a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
+<a href="html/libxml-threads.html#xmlMutex">xmlMutex</a><br />
+<a href="html/libxml-threads.html#xmlMutexLock">xmlMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlMutexPtr">xmlMutexPtr</a><br />
+<a href="html/libxml-threads.html#xmlMutexUnlock">xmlMutexUnlock</a><br />
+<a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-threads.html#xmlRMutex">xmlRMutex</a><br />
+<a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlRMutexPtr">xmlRMutexPtr</a><br />
+<a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
+<a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
+</p><h2><a name="tree" id="tree">Module tree</a>:</h2><p><a href="html/libxml-tree.html#BASE_BUFFER_SIZE">BASE_BUFFER_SIZE</a><br />
+<a href="html/libxml-tree.html#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_CDATA">XML_ATTRIBUTE_CDATA</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_DECL">XML_ATTRIBUTE_DECL</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_ENTITIES">XML_ATTRIBUTE_ENTITIES</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_ENTITY">XML_ATTRIBUTE_ENTITY</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_ENUMERATION">XML_ATTRIBUTE_ENUMERATION</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_FIXED">XML_ATTRIBUTE_FIXED</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_ID">XML_ATTRIBUTE_ID</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_IDREF">XML_ATTRIBUTE_IDREF</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_IDREFS">XML_ATTRIBUTE_IDREFS</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_IMPLIED">XML_ATTRIBUTE_IMPLIED</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_NMTOKEN">XML_ATTRIBUTE_NMTOKEN</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_NMTOKENS">XML_ATTRIBUTE_NMTOKENS</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_NODE">XML_ATTRIBUTE_NODE</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_NONE">XML_ATTRIBUTE_NONE</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_NOTATION">XML_ATTRIBUTE_NOTATION</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_REQUIRED">XML_ATTRIBUTE_REQUIRED</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_IMMUTABLE">XML_BUFFER_ALLOC_IMMUTABLE</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_IO">XML_BUFFER_ALLOC_IO</a><br />
+<a href="html/libxml-tree.html#XML_CDATA_SECTION_NODE">XML_CDATA_SECTION_NODE</a><br />
+<a href="html/libxml-tree.html#XML_COMMENT_NODE">XML_COMMENT_NODE</a><br />
+<a href="html/libxml-tree.html#XML_DOCB_DOCUMENT_NODE">XML_DOCB_DOCUMENT_NODE</a><br />
+<a href="html/libxml-tree.html#XML_DOCUMENT_FRAG_NODE">XML_DOCUMENT_FRAG_NODE</a><br />
+<a href="html/libxml-tree.html#XML_DOCUMENT_NODE">XML_DOCUMENT_NODE</a><br />
+<a href="html/libxml-tree.html#XML_DOCUMENT_TYPE_NODE">XML_DOCUMENT_TYPE_NODE</a><br />
+<a href="html/libxml-tree.html#XML_DOC_DTDVALID">XML_DOC_DTDVALID</a><br />
+<a href="html/libxml-tree.html#XML_DOC_HTML">XML_DOC_HTML</a><br />
+<a href="html/libxml-tree.html#XML_DOC_INTERNAL">XML_DOC_INTERNAL</a><br />
+<a href="html/libxml-tree.html#XML_DOC_NSVALID">XML_DOC_NSVALID</a><br />
+<a href="html/libxml-tree.html#XML_DOC_OLD10">XML_DOC_OLD10</a><br />
+<a href="html/libxml-tree.html#XML_DOC_USERBUILT">XML_DOC_USERBUILT</a><br />
+<a href="html/libxml-tree.html#XML_DOC_WELLFORMED">XML_DOC_WELLFORMED</a><br />
+<a href="html/libxml-tree.html#XML_DOC_XINCLUDE">XML_DOC_XINCLUDE</a><br />
+<a href="html/libxml-tree.html#XML_DTD_NODE">XML_DTD_NODE</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_ELEMENT">XML_ELEMENT_CONTENT_ELEMENT</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_MULT">XML_ELEMENT_CONTENT_MULT</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_ONCE">XML_ELEMENT_CONTENT_ONCE</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_OPT">XML_ELEMENT_CONTENT_OPT</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_OR">XML_ELEMENT_CONTENT_OR</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_PCDATA">XML_ELEMENT_CONTENT_PCDATA</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_PLUS">XML_ELEMENT_CONTENT_PLUS</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_SEQ">XML_ELEMENT_CONTENT_SEQ</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_DECL">XML_ELEMENT_DECL</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_NODE">XML_ELEMENT_NODE</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_TYPE_ANY">XML_ELEMENT_TYPE_ANY</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_TYPE_ELEMENT">XML_ELEMENT_TYPE_ELEMENT</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_TYPE_EMPTY">XML_ELEMENT_TYPE_EMPTY</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_TYPE_MIXED">XML_ELEMENT_TYPE_MIXED</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_TYPE_UNDEFINED">XML_ELEMENT_TYPE_UNDEFINED</a><br />
+<a href="html/libxml-tree.html#XML_ENTITY_DECL">XML_ENTITY_DECL</a><br />
+<a href="html/libxml-tree.html#XML_ENTITY_NODE">XML_ENTITY_NODE</a><br />
+<a href="html/libxml-tree.html#XML_ENTITY_REF_NODE">XML_ENTITY_REF_NODE</a><br />
+<a href="html/libxml-tree.html#XML_GET_CONTENT">XML_GET_CONTENT</a><br />
+<a href="html/libxml-tree.html#XML_GET_LINE">XML_GET_LINE</a><br />
+<a href="html/libxml-tree.html#XML_HTML_DOCUMENT_NODE">XML_HTML_DOCUMENT_NODE</a><br />
+<a href="html/libxml-tree.html#XML_LOCAL_NAMESPACE">XML_LOCAL_NAMESPACE</a><br />
+<a href="html/libxml-tree.html#XML_NAMESPACE_DECL">XML_NAMESPACE_DECL</a><br />
+<a href="html/libxml-tree.html#XML_NOTATION_NODE">XML_NOTATION_NODE</a><br />
+<a href="html/libxml-tree.html#XML_PI_NODE">XML_PI_NODE</a><br />
+<a href="html/libxml-tree.html#XML_TEXT_NODE">XML_TEXT_NODE</a><br />
+<a href="html/libxml-tree.html#XML_XINCLUDE_END">XML_XINCLUDE_END</a><br />
+<a href="html/libxml-tree.html#XML_XINCLUDE_START">XML_XINCLUDE_START</a><br />
+<a href="html/libxml-tree.html#XML_XML_ID">XML_XML_ID</a><br />
+<a href="html/libxml-tree.html#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a><br />
+<a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+<a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
+<a href="html/libxml-tree.html#_xmlBuffer">_xmlBuffer</a><br />
+<a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+<a href="html/libxml-tree.html#_xmlEnumeration">_xmlEnumeration</a><br />
+<a href="html/libxml-tree.html#_xmlID">_xmlID</a><br />
+<a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-tree.html#_xmlNotation">_xmlNotation</a><br />
+<a href="html/libxml-tree.html#_xmlNs">_xmlNs</a><br />
+<a href="html/libxml-tree.html#_xmlRef">_xmlRef</a><br />
+<a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddChildList">xmlAddChildList</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+<a href="html/libxml-tree.html#xmlAttr">xmlAttr</a><br />
+<a href="html/libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a><br />
+<a href="html/libxml-tree.html#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a><br />
+<a href="html/libxml-tree.html#xmlAttribute">xmlAttribute</a><br />
+<a href="html/libxml-tree.html#xmlAttributeDefault">xmlAttributeDefault</a><br />
+<a href="html/libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a><br />
+<a href="html/libxml-tree.html#xmlAttributeType">xmlAttributeType</a><br />
+<a href="html/libxml-tree.html#xmlBuf">xmlBuf</a><br />
+<a href="html/libxml-tree.html#xmlBufContent">xmlBufContent</a><br />
+<a href="html/libxml-tree.html#xmlBufEnd">xmlBufEnd</a><br />
+<a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlBufPtr">xmlBufPtr</a><br />
+<a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufUse">xmlBufUse</a><br />
+<a href="html/libxml-tree.html#xmlBuffer">xmlBuffer</a><br />
+<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferContent">xmlBufferContent</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreate">xmlBufferCreate</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateSize">xmlBufferCreateSize</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-tree.html#xmlBufferDump">xmlBufferDump</a><br />
+<a href="html/libxml-tree.html#xmlBufferEmpty">xmlBufferEmpty</a><br />
+<a href="html/libxml-tree.html#xmlBufferFree">xmlBufferFree</a><br />
+<a href="html/libxml-tree.html#xmlBufferGrow">xmlBufferGrow</a><br />
+<a href="html/libxml-tree.html#xmlBufferLength">xmlBufferLength</a><br />
+<a href="html/libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a><br />
+<a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
+<a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlBufferShrink">xmlBufferShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteChar">xmlBufferWriteChar</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+<a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-tree.html#xmlChildrenNode">xmlChildrenNode</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-tree.html#xmlCopyDtd">xmlCopyDtd</a><br />
+<a href="html/libxml-tree.html#xmlCopyNamespace">xmlCopyNamespace</a><br />
+<a href="html/libxml-tree.html#xmlCopyNamespaceList">xmlCopyNamespaceList</a><br />
+<a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlCopyProp">xmlCopyProp</a><br />
+<a href="html/libxml-tree.html#xmlCopyPropList">xmlCopyPropList</a><br />
+<a href="html/libxml-tree.html#xmlCreateIntSubset">xmlCreateIntSubset</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCtxt">xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapFreeCtxt">xmlDOMWrapFreeCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapNewCtxt">xmlDOMWrapNewCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-tree.html#xmlDoc">xmlDoc</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNodeList">xmlDocCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlDocDump">xmlDocDump</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDocProperties">xmlDocProperties</a><br />
+<a href="html/libxml-tree.html#xmlDocPtr">xmlDocPtr</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDtd">xmlDtd</a><br />
+<a href="html/libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a><br />
+<a href="html/libxml-tree.html#xmlElemDump">xmlElemDump</a><br />
+<a href="html/libxml-tree.html#xmlElement">xmlElement</a><br />
+<a href="html/libxml-tree.html#xmlElementContent">xmlElementContent</a><br />
+<a href="html/libxml-tree.html#xmlElementContentOccur">xmlElementContentOccur</a><br />
+<a href="html/libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a><br />
+<a href="html/libxml-tree.html#xmlElementContentType">xmlElementContentType</a><br />
+<a href="html/libxml-tree.html#xmlElementPtr">xmlElementPtr</a><br />
+<a href="html/libxml-tree.html#xmlElementType">xmlElementType</a><br />
+<a href="html/libxml-tree.html#xmlElementTypeVal">xmlElementTypeVal</a><br />
+<a href="html/libxml-tree.html#xmlEntity">xmlEntity</a><br />
+<a href="html/libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a><br />
+<a href="html/libxml-tree.html#xmlEnumeration">xmlEnumeration</a><br />
+<a href="html/libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a><br />
+<a href="html/libxml-tree.html#xmlFreeDtd">xmlFreeDtd</a><br />
+<a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
+<a href="html/libxml-tree.html#xmlFreeNodeList">xmlFreeNodeList</a><br />
+<a href="html/libxml-tree.html#xmlFreeNs">xmlFreeNs</a><br />
+<a href="html/libxml-tree.html#xmlFreeNsList">xmlFreeNsList</a><br />
+<a href="html/libxml-tree.html#xmlFreeProp">xmlFreeProp</a><br />
+<a href="html/libxml-tree.html#xmlFreePropList">xmlFreePropList</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlGetCompressMode">xmlGetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetIntSubset">xmlGetIntSubset</a><br />
+<a href="html/libxml-tree.html#xmlGetLastChild">xmlGetLastChild</a><br />
+<a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNodePath">xmlGetNodePath</a><br />
+<a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-tree.html#xmlID">xmlID</a><br />
+<a href="html/libxml-tree.html#xmlIDPtr">xmlIDPtr</a><br />
+<a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
+<a href="html/libxml-tree.html#xmlIsXHTML">xmlIsXHTML</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-tree.html#xmlNewCDataBlock">xmlNewCDataBlock</a><br />
+<a href="html/libxml-tree.html#xmlNewCharRef">xmlNewCharRef</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewComment">xmlNewComment</a><br />
+<a href="html/libxml-tree.html#xmlNewDoc">xmlNewDoc</a><br />
+<a href="html/libxml-tree.html#xmlNewDocComment">xmlNewDocComment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocFragment">xmlNewDocFragment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewDocPI">xmlNewDocPI</a><br />
+<a href="html/libxml-tree.html#xmlNewDocProp">xmlNewDocProp</a><br />
+<a href="html/libxml-tree.html#xmlNewDocRawNode">xmlNewDocRawNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocText">xmlNewDocText</a><br />
+<a href="html/libxml-tree.html#xmlNewDocTextLen">xmlNewDocTextLen</a><br />
+<a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-tree.html#xmlNewNode">xmlNewNode</a><br />
+<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+<a href="html/libxml-tree.html#xmlNewProp">xmlNewProp</a><br />
+<a href="html/libxml-tree.html#xmlNewReference">xmlNewReference</a><br />
+<a href="html/libxml-tree.html#xmlNewText">xmlNewText</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlNewTextLen">xmlNewTextLen</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlNode">xmlNode</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-tree.html#xmlNodeIsText">xmlNodeIsText</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-tree.html#xmlNodePtr">xmlNodePtr</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetBase">xmlNodeSetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetLang">xmlNodeSetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetName">xmlNodeSetName</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a><br />
+<a href="html/libxml-tree.html#xmlNotation">xmlNotation</a><br />
+<a href="html/libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a><br />
+<a href="html/libxml-tree.html#xmlNs">xmlNs</a><br />
+<a href="html/libxml-tree.html#xmlNsPtr">xmlNsPtr</a><br />
+<a href="html/libxml-tree.html#xmlNsType">xmlNsType</a><br />
+<a href="html/libxml-tree.html#xmlOutputBuffer">xmlOutputBuffer</a><br />
+<a href="html/libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a><br />
+<a href="html/libxml-tree.html#xmlParserCtxt">xmlParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a><br />
+<a href="html/libxml-tree.html#xmlParserInput">xmlParserInput</a><br />
+<a href="html/libxml-tree.html#xmlParserInputBuffer">xmlParserInputBuffer</a><br />
+<a href="html/libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a><br />
+<a href="html/libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-tree.html#xmlRef">xmlRef</a><br />
+<a href="html/libxml-tree.html#xmlRefPtr">xmlRefPtr</a><br />
+<a href="html/libxml-tree.html#xmlRemoveProp">xmlRemoveProp</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+<a href="html/libxml-tree.html#xmlRootNode">xmlRootNode</a><br />
+<a href="html/libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a><br />
+<a href="html/libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a><br />
+<a href="html/libxml-tree.html#xmlSAXLocator">xmlSAXLocator</a><br />
+<a href="html/libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a><br />
+<a href="html/libxml-tree.html#xmlSaveFile">xmlSaveFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileEnc">xmlSaveFileEnc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetListDoc">xmlSetListDoc</a><br />
+<a href="html/libxml-tree.html#xmlSetNs">xmlSetNs</a><br />
+<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+<a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlTextConcat">xmlTextConcat</a><br />
+<a href="html/libxml-tree.html#xmlTextMerge">xmlTextMerge</a><br />
+<a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+<a href="html/libxml-tree.html#xmlUnsetNsProp">xmlUnsetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlUnsetProp">xmlUnsetProp</a><br />
+<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
+<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
+<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
+<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
+</p><h2><a name="uri" id="uri">Module uri</a>:</h2><p><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-uri.html#xmlCreateURI">xmlCreateURI</a><br />
+<a href="html/libxml-uri.html#xmlFreeURI">xmlFreeURI</a><br />
+<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+<a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+<a href="html/libxml-uri.html#xmlPrintURI">xmlPrintURI</a><br />
+<a href="html/libxml-uri.html#xmlSaveUri">xmlSaveUri</a><br />
+<a href="html/libxml-uri.html#xmlURI">xmlURI</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+<a href="html/libxml-uri.html#xmlURIPtr">xmlURIPtr</a><br />
+<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+</p><h2><a name="valid" id="valid">Module valid</a>:</h2><p><a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
+<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
+<a href="html/libxml-valid.html#xmlAddNotationDecl">xmlAddNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+<a href="html/libxml-valid.html#xmlAttributeTable">xmlAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a><br />
+<a href="html/libxml-valid.html#xmlCopyAttributeTable">xmlCopyAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementContent">xmlCopyElementContent</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementTable">xmlCopyElementTable</a><br />
+<a href="html/libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a><br />
+<a href="html/libxml-valid.html#xmlCopyNotationTable">xmlCopyNotationTable</a><br />
+<a href="html/libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a><br />
+<a href="html/libxml-valid.html#xmlDumpAttributeDecl">xmlDumpAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpAttributeTable">xmlDumpAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlDumpElementDecl">xmlDumpElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpElementTable">xmlDumpElementTable</a><br />
+<a href="html/libxml-valid.html#xmlDumpNotationDecl">xmlDumpNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpNotationTable">xmlDumpNotationTable</a><br />
+<a href="html/libxml-valid.html#xmlElementTable">xmlElementTable</a><br />
+<a href="html/libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a><br />
+<a href="html/libxml-valid.html#xmlFreeAttributeTable">xmlFreeAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeDocElementContent">xmlFreeDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementContent">xmlFreeElementContent</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementTable">xmlFreeElementTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeEnumeration">xmlFreeEnumeration</a><br />
+<a href="html/libxml-valid.html#xmlFreeIDTable">xmlFreeIDTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeNotationTable">xmlFreeNotationTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeRefTable">xmlFreeRefTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeValidCtxt">xmlFreeValidCtxt</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetID">xmlGetID</a><br />
+<a href="html/libxml-valid.html#xmlGetRefs">xmlGetRefs</a><br />
+<a href="html/libxml-valid.html#xmlIDTable">xmlIDTable</a><br />
+<a href="html/libxml-valid.html#xmlIDTablePtr">xmlIDTablePtr</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+<a href="html/libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
+<a href="html/libxml-valid.html#xmlNewValidCtxt">xmlNewValidCtxt</a><br />
+<a href="html/libxml-valid.html#xmlNotationTable">xmlNotationTable</a><br />
+<a href="html/libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a><br />
+<a href="html/libxml-valid.html#xmlRefTable">xmlRefTable</a><br />
+<a href="html/libxml-valid.html#xmlRefTablePtr">xmlRefTablePtr</a><br />
+<a href="html/libxml-valid.html#xmlRemoveID">xmlRemoveID</a><br />
+<a href="html/libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a><br />
+<a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+<a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
+<a href="html/libxml-valid.html#xmlValidBuildContentModel">xmlValidBuildContentModel</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxt">xmlValidCtxt</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a><br />
+<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidState">xmlValidState</a><br />
+<a href="html/libxml-valid.html#xmlValidStatePtr">xmlValidStatePtr</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateElement">xmlValidateElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNameValue">xmlValidateNameValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNamesValue">xmlValidateNamesValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokenValue">xmlValidateNmtokenValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokensValue">xmlValidateNmtokensValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationUse">xmlValidateNotationUse</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushCData">xmlValidatePushCData</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</p><h2><a name="xinclude" id="xinclude">Module xinclude</a>:</h2><p><a href="html/libxml-xinclude.html#XINCLUDE_FALLBACK">XINCLUDE_FALLBACK</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_HREF">XINCLUDE_HREF</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_NODE">XINCLUDE_NODE</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_NS">XINCLUDE_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE">XINCLUDE_PARSE</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_ENCODING">XINCLUDE_PARSE_ENCODING</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_TEXT">XINCLUDE_PARSE_TEXT</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_XML">XINCLUDE_PARSE_XML</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_XPOINTER">XINCLUDE_PARSE_XPOINTER</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeCtxt">xmlXIncludeCtxt</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeFreeContext">xmlXIncludeFreeContext</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeNewContext">xmlXIncludeNewContext</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a><br />
+</p><h2><a name="xlink" id="xlink">Module xlink</a>:</h2><p><a href="html/libxml-xlink.html#XLINK_ACTUATE_AUTO">XLINK_ACTUATE_AUTO</a><br />
+<a href="html/libxml-xlink.html#XLINK_ACTUATE_NONE">XLINK_ACTUATE_NONE</a><br />
+<a href="html/libxml-xlink.html#XLINK_ACTUATE_ONREQUEST">XLINK_ACTUATE_ONREQUEST</a><br />
+<a href="html/libxml-xlink.html#XLINK_SHOW_EMBED">XLINK_SHOW_EMBED</a><br />
+<a href="html/libxml-xlink.html#XLINK_SHOW_NEW">XLINK_SHOW_NEW</a><br />
+<a href="html/libxml-xlink.html#XLINK_SHOW_NONE">XLINK_SHOW_NONE</a><br />
+<a href="html/libxml-xlink.html#XLINK_SHOW_REPLACE">XLINK_SHOW_REPLACE</a><br />
+<a href="html/libxml-xlink.html#XLINK_TYPE_EXTENDED">XLINK_TYPE_EXTENDED</a><br />
+<a href="html/libxml-xlink.html#XLINK_TYPE_EXTENDED_SET">XLINK_TYPE_EXTENDED_SET</a><br />
+<a href="html/libxml-xlink.html#XLINK_TYPE_NONE">XLINK_TYPE_NONE</a><br />
+<a href="html/libxml-xlink.html#XLINK_TYPE_SIMPLE">XLINK_TYPE_SIMPLE</a><br />
+<a href="html/libxml-xlink.html#_xlinkHandler">_xlinkHandler</a><br />
+<a href="html/libxml-xlink.html#xlinkActuate">xlinkActuate</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkGetDefaultDetect">xlinkGetDefaultDetect</a><br />
+<a href="html/libxml-xlink.html#xlinkGetDefaultHandler">xlinkGetDefaultHandler</a><br />
+<a href="html/libxml-xlink.html#xlinkHRef">xlinkHRef</a><br />
+<a href="html/libxml-xlink.html#xlinkHandler">xlinkHandler</a><br />
+<a href="html/libxml-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a><br />
+<a href="html/libxml-xlink.html#xlinkRole">xlinkRole</a><br />
+<a href="html/libxml-xlink.html#xlinkSetDefaultDetect">xlinkSetDefaultDetect</a><br />
+<a href="html/libxml-xlink.html#xlinkSetDefaultHandler">xlinkSetDefaultHandler</a><br />
+<a href="html/libxml-xlink.html#xlinkShow">xlinkShow</a><br />
+<a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkTitle">xlinkTitle</a><br />
+<a href="html/libxml-xlink.html#xlinkType">xlinkType</a><br />
+</p><h2><a name="xmlIO" id="xmlIO">Module xmlIO</a>:</h2><p><a href="html/libxml-xmlIO.html#_xmlOutputBuffer">_xmlOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlAllocOutputBuffer">xmlAllocOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-xmlIO.html#xmlCleanupInputCallbacks">xmlCleanupInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlCleanupOutputCallbacks">xmlCleanupOutputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileClose">xmlFileClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileMatch">xmlFileMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileRead">xmlFileRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlFreeParserInputBuffer">xmlFreeParserInputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPClose">xmlIOFTPClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPMatch">xmlIOFTPMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPOpen">xmlIOFTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPRead">xmlIOFTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPClose">xmlIOHTTPClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPMatch">xmlIOHTTPMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpen">xmlIOHTTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPRead">xmlIOHTTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferClose">xmlOutputBufferClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferFlush">xmlOutputBufferFlush</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserGetDirectory">xmlParserGetDirectory</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlPopInputCallbacks">xmlPopInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterDefaultOutputCallbacks">xmlRegisterDefaultOutputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+</p><h2><a name="xmlautomata" id="xmlautomata">Module xmlautomata</a>:</h2><p><a href="html/libxml-xmlautomata.html#xmlAutomata">xmlAutomata</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataGetInitState">xmlAutomataGetInitState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataIsDeterminist">xmlAutomataIsDeterminist</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewState">xmlAutomataNewState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataSetFinalState">xmlAutomataSetFinalState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataState">xmlAutomataState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a><br />
+<a href="html/libxml-xmlautomata.html#xmlFreeAutomata">xmlFreeAutomata</a><br />
+<a href="html/libxml-xmlautomata.html#xmlNewAutomata">xmlNewAutomata</a><br />
+</p><h2><a name="xmlerror" id="xmlerror">Module xmlerror</a>:</h2><p><a href="html/libxml-xmlerror.html#XML_BUF_OVERFLOW">XML_BUF_OVERFLOW</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_CREATE_CTXT">XML_C14N_CREATE_CTXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_CREATE_STACK">XML_C14N_CREATE_STACK</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_INVALID_NODE">XML_C14N_INVALID_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_RELATIVE_NAMESPACE">XML_C14N_RELATIVE_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_REQUIRES_UTF8">XML_C14N_REQUIRES_UTF8</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_UNKNOW_NODE">XML_C14N_UNKNOW_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CATALOG_ENTRY_BROKEN">XML_CATALOG_ENTRY_BROKEN</a><br />
+<a href="html/libxml-xmlerror.html#XML_CATALOG_MISSING_ATTR">XML_CATALOG_MISSING_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_CATALOG_NOT_CATALOG">XML_CATALOG_NOT_CATALOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_CATALOG_PREFER_VALUE">XML_CATALOG_PREFER_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CATALOG_RECURSION">XML_CATALOG_RECURSION</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_ENTITY_TYPE">XML_CHECK_ENTITY_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_ATTRIBUTE">XML_CHECK_FOUND_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_CDATA">XML_CHECK_FOUND_CDATA</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_COMMENT">XML_CHECK_FOUND_COMMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_DOCTYPE">XML_CHECK_FOUND_DOCTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_ELEMENT">XML_CHECK_FOUND_ELEMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_ENTITY">XML_CHECK_FOUND_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_ENTITYREF">XML_CHECK_FOUND_ENTITYREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_FRAGMENT">XML_CHECK_FOUND_FRAGMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_NOTATION">XML_CHECK_FOUND_NOTATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_PI">XML_CHECK_FOUND_PI</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_TEXT">XML_CHECK_FOUND_TEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NAME_NOT_NULL">XML_CHECK_NAME_NOT_NULL</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_ATTR">XML_CHECK_NOT_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_ATTR_DECL">XML_CHECK_NOT_ATTR_DECL</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_DTD">XML_CHECK_NOT_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_ELEM_DECL">XML_CHECK_NOT_ELEM_DECL</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_ENTITY_DECL">XML_CHECK_NOT_ENTITY_DECL</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_NCNAME">XML_CHECK_NOT_NCNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_NS_DECL">XML_CHECK_NOT_NS_DECL</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_UTF8">XML_CHECK_NOT_UTF8</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_DICT">XML_CHECK_NO_DICT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_DOC">XML_CHECK_NO_DOC</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_ELEM">XML_CHECK_NO_ELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_HREF">XML_CHECK_NO_HREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_NAME">XML_CHECK_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_NEXT">XML_CHECK_NO_NEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_PARENT">XML_CHECK_NO_PARENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_PREV">XML_CHECK_NO_PREV</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NS_ANCESTOR">XML_CHECK_NS_ANCESTOR</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NS_SCOPE">XML_CHECK_NS_SCOPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_OUTSIDE_DICT">XML_CHECK_OUTSIDE_DICT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_UNKNOWN_NODE">XML_CHECK_UNKNOWN_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_WRONG_DOC">XML_CHECK_WRONG_DOC</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_WRONG_NAME">XML_CHECK_WRONG_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_WRONG_NEXT">XML_CHECK_WRONG_NEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_WRONG_PARENT">XML_CHECK_WRONG_PARENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_WRONG_PREV">XML_CHECK_WRONG_PREV</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ATTRIBUTE_DEFAULT">XML_DTD_ATTRIBUTE_DEFAULT</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ATTRIBUTE_REDEFINED">XML_DTD_ATTRIBUTE_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ATTRIBUTE_VALUE">XML_DTD_ATTRIBUTE_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_CONTENT_ERROR">XML_DTD_CONTENT_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_CONTENT_MODEL">XML_DTD_CONTENT_MODEL</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_CONTENT_NOT_DETERMINIST">XML_DTD_CONTENT_NOT_DETERMINIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_DIFFERENT_PREFIX">XML_DTD_DIFFERENT_PREFIX</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_DUP_TOKEN">XML_DTD_DUP_TOKEN</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_DEFAULT_NAMESPACE">XML_DTD_ELEM_DEFAULT_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_NAMESPACE">XML_DTD_ELEM_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_REDEFINED">XML_DTD_ELEM_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_EMPTY_NOTATION">XML_DTD_EMPTY_NOTATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ENTITY_TYPE">XML_DTD_ENTITY_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ID_FIXED">XML_DTD_ID_FIXED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ID_REDEFINED">XML_DTD_ID_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ID_SUBSET">XML_DTD_ID_SUBSET</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_INVALID_CHILD">XML_DTD_INVALID_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_INVALID_DEFAULT">XML_DTD_INVALID_DEFAULT</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_LOAD_ERROR">XML_DTD_LOAD_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_MISSING_ATTRIBUTE">XML_DTD_MISSING_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_MIXED_CORRUPT">XML_DTD_MIXED_CORRUPT</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_MULTIPLE_ID">XML_DTD_MULTIPLE_ID</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NOTATION_REDEFINED">XML_DTD_NOTATION_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NOTATION_VALUE">XML_DTD_NOTATION_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NOT_EMPTY">XML_DTD_NOT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NOT_PCDATA">XML_DTD_NOT_PCDATA</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NOT_STANDALONE">XML_DTD_NOT_STANDALONE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NO_DOC">XML_DTD_NO_DOC</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NO_DTD">XML_DTD_NO_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NO_ELEM_NAME">XML_DTD_NO_ELEM_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NO_PREFIX">XML_DTD_NO_PREFIX</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NO_ROOT">XML_DTD_NO_ROOT</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ROOT_NAME">XML_DTD_ROOT_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_STANDALONE_DEFAULTED">XML_DTD_STANDALONE_DEFAULTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_STANDALONE_WHITE_SPACE">XML_DTD_STANDALONE_WHITE_SPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_UNKNOWN_ATTRIBUTE">XML_DTD_UNKNOWN_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_UNKNOWN_ELEM">XML_DTD_UNKNOWN_ELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_UNKNOWN_ENTITY">XML_DTD_UNKNOWN_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_UNKNOWN_ID">XML_DTD_UNKNOWN_ID</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_UNKNOWN_NOTATION">XML_DTD_UNKNOWN_NOTATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_XMLID_TYPE">XML_DTD_XMLID_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_XMLID_VALUE">XML_DTD_XMLID_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTLIST_NOT_FINISHED">XML_ERR_ATTLIST_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTLIST_NOT_STARTED">XML_ERR_ATTLIST_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTRIBUTE_NOT_FINISHED">XML_ERR_ATTRIBUTE_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTRIBUTE_NOT_STARTED">XML_ERR_ATTRIBUTE_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTRIBUTE_REDEFINED">XML_ERR_ATTRIBUTE_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTRIBUTE_WITHOUT_VALUE">XML_ERR_ATTRIBUTE_WITHOUT_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CDATA_NOT_FINISHED">XML_ERR_CDATA_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CHARREF_AT_EOF">XML_ERR_CHARREF_AT_EOF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CHARREF_IN_DTD">XML_ERR_CHARREF_IN_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CHARREF_IN_EPILOG">XML_ERR_CHARREF_IN_EPILOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CHARREF_IN_PROLOG">XML_ERR_CHARREF_IN_PROLOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_COMMENT_NOT_FINISHED">XML_ERR_COMMENT_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CONDSEC_INVALID">XML_ERR_CONDSEC_INVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CONDSEC_INVALID_KEYWORD">XML_ERR_CONDSEC_INVALID_KEYWORD</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CONDSEC_NOT_FINISHED">XML_ERR_CONDSEC_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CONDSEC_NOT_STARTED">XML_ERR_CONDSEC_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_DOCTYPE_NOT_FINISHED">XML_ERR_DOCTYPE_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_DOCUMENT_EMPTY">XML_ERR_DOCUMENT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_DOCUMENT_END">XML_ERR_DOCUMENT_END</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_DOCUMENT_START">XML_ERR_DOCUMENT_START</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ELEMCONTENT_NOT_FINISHED">XML_ERR_ELEMCONTENT_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ELEMCONTENT_NOT_STARTED">XML_ERR_ELEMCONTENT_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENCODING_NAME">XML_ERR_ENCODING_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_AT_EOF">XML_ERR_ENTITYREF_AT_EOF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_IN_DTD">XML_ERR_ENTITYREF_IN_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_IN_EPILOG">XML_ERR_ENTITYREF_IN_EPILOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_IN_PROLOG">XML_ERR_ENTITYREF_IN_PROLOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_NO_NAME">XML_ERR_ENTITYREF_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_SEMICOL_MISSING">XML_ERR_ENTITYREF_SEMICOL_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_BOUNDARY">XML_ERR_ENTITY_BOUNDARY</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_CHAR_ERROR">XML_ERR_ENTITY_CHAR_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_IS_EXTERNAL">XML_ERR_ENTITY_IS_EXTERNAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_IS_PARAMETER">XML_ERR_ENTITY_IS_PARAMETER</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_LOOP">XML_ERR_ENTITY_LOOP</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_NOT_FINISHED">XML_ERR_ENTITY_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_NOT_STARTED">XML_ERR_ENTITY_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_PE_INTERNAL">XML_ERR_ENTITY_PE_INTERNAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_PROCESSING">XML_ERR_ENTITY_PROCESSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_EQUAL_REQUIRED">XML_ERR_EQUAL_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ERROR">XML_ERR_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_EXTRA_CONTENT">XML_ERR_EXTRA_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_EXT_ENTITY_STANDALONE">XML_ERR_EXT_ENTITY_STANDALONE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_EXT_SUBSET_NOT_FINISHED">XML_ERR_EXT_SUBSET_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_FATAL">XML_ERR_FATAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_GT_REQUIRED">XML_ERR_GT_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_HYPHEN_IN_COMMENT">XML_ERR_HYPHEN_IN_COMMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INTERNAL_ERROR">XML_ERR_INTERNAL_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_CHAR">XML_ERR_INVALID_CHAR</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_CHARREF">XML_ERR_INVALID_CHARREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_DEC_CHARREF">XML_ERR_INVALID_DEC_CHARREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_ENCODING">XML_ERR_INVALID_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_HEX_CHARREF">XML_ERR_INVALID_HEX_CHARREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_URI">XML_ERR_INVALID_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_LITERAL_NOT_FINISHED">XML_ERR_LITERAL_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_LITERAL_NOT_STARTED">XML_ERR_LITERAL_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_LTSLASH_REQUIRED">XML_ERR_LTSLASH_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_LT_IN_ATTRIBUTE">XML_ERR_LT_IN_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_LT_REQUIRED">XML_ERR_LT_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_MISPLACED_CDATA_END">XML_ERR_MISPLACED_CDATA_END</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_MISSING_ENCODING">XML_ERR_MISSING_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_MIXED_NOT_FINISHED">XML_ERR_MIXED_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_MIXED_NOT_STARTED">XML_ERR_MIXED_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NAME_REQUIRED">XML_ERR_NAME_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NAME_TOO_LONG">XML_ERR_NAME_TOO_LONG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NMTOKEN_REQUIRED">XML_ERR_NMTOKEN_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NONE">XML_ERR_NONE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NOTATION_NOT_FINISHED">XML_ERR_NOTATION_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NOTATION_NOT_STARTED">XML_ERR_NOTATION_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NOTATION_PROCESSING">XML_ERR_NOTATION_PROCESSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NOT_STANDALONE">XML_ERR_NOT_STANDALONE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NOT_WELL_BALANCED">XML_ERR_NOT_WELL_BALANCED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NO_DTD">XML_ERR_NO_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NO_MEMORY">XML_ERR_NO_MEMORY</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NS_DECL_ERROR">XML_ERR_NS_DECL_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_OK">XML_ERR_OK</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PCDATA_REQUIRED">XML_ERR_PCDATA_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_AT_EOF">XML_ERR_PEREF_AT_EOF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_IN_EPILOG">XML_ERR_PEREF_IN_EPILOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_IN_INT_SUBSET">XML_ERR_PEREF_IN_INT_SUBSET</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_IN_PROLOG">XML_ERR_PEREF_IN_PROLOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_NO_NAME">XML_ERR_PEREF_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_SEMICOL_MISSING">XML_ERR_PEREF_SEMICOL_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PI_NOT_FINISHED">XML_ERR_PI_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PI_NOT_STARTED">XML_ERR_PI_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PUBID_REQUIRED">XML_ERR_PUBID_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_RESERVED_XML_NAME">XML_ERR_RESERVED_XML_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_SEPARATOR_REQUIRED">XML_ERR_SEPARATOR_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_SPACE_REQUIRED">XML_ERR_SPACE_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_STANDALONE_VALUE">XML_ERR_STANDALONE_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_STRING_NOT_CLOSED">XML_ERR_STRING_NOT_CLOSED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_STRING_NOT_STARTED">XML_ERR_STRING_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_TAG_NAME_MISMATCH">XML_ERR_TAG_NAME_MISMATCH</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_TAG_NOT_FINISHED">XML_ERR_TAG_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_UNDECLARED_ENTITY">XML_ERR_UNDECLARED_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_UNKNOWN_ENCODING">XML_ERR_UNKNOWN_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_UNKNOWN_VERSION">XML_ERR_UNKNOWN_VERSION</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_UNPARSED_ENTITY">XML_ERR_UNPARSED_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_UNSUPPORTED_ENCODING">XML_ERR_UNSUPPORTED_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_URI_FRAGMENT">XML_ERR_URI_FRAGMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_URI_REQUIRED">XML_ERR_URI_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_USER_STOP">XML_ERR_USER_STOP</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_VALUE_REQUIRED">XML_ERR_VALUE_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_VERSION_MISMATCH">XML_ERR_VERSION_MISMATCH</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_VERSION_MISSING">XML_ERR_VERSION_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_WARNING">XML_ERR_WARNING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_XMLDECL_NOT_FINISHED">XML_ERR_XMLDECL_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_XMLDECL_NOT_STARTED">XML_ERR_XMLDECL_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_BUFFER">XML_FROM_BUFFER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_C14N">XML_FROM_C14N</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_CATALOG">XML_FROM_CATALOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_CHECK">XML_FROM_CHECK</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_DATATYPE">XML_FROM_DATATYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_DTD">XML_FROM_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_FTP">XML_FROM_FTP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_HTML">XML_FROM_HTML</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_HTTP">XML_FROM_HTTP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_I18N">XML_FROM_I18N</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_IO">XML_FROM_IO</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_MEMORY">XML_FROM_MEMORY</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_MODULE">XML_FROM_MODULE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_NAMESPACE">XML_FROM_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_NONE">XML_FROM_NONE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_OUTPUT">XML_FROM_OUTPUT</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_PARSER">XML_FROM_PARSER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_REGEXP">XML_FROM_REGEXP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_RELAXNGP">XML_FROM_RELAXNGP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_RELAXNGV">XML_FROM_RELAXNGV</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_SCHEMASP">XML_FROM_SCHEMASP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_SCHEMASV">XML_FROM_SCHEMASV</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_SCHEMATRONV">XML_FROM_SCHEMATRONV</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_TREE">XML_FROM_TREE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_URI">XML_FROM_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_VALID">XML_FROM_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_WRITER">XML_FROM_WRITER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_XINCLUDE">XML_FROM_XINCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_XPATH">XML_FROM_XPATH</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_XPOINTER">XML_FROM_XPOINTER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_XSLT">XML_FROM_XSLT</a><br />
+<a href="html/libxml-xmlerror.html#XML_FTP_ACCNT">XML_FTP_ACCNT</a><br />
+<a href="html/libxml-xmlerror.html#XML_FTP_EPSV_ANSWER">XML_FTP_EPSV_ANSWER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FTP_PASV_ANSWER">XML_FTP_PASV_ANSWER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FTP_URL_SYNTAX">XML_FTP_URL_SYNTAX</a><br />
+<a href="html/libxml-xmlerror.html#XML_HTML_STRUCURE_ERROR">XML_HTML_STRUCURE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_HTML_UNKNOWN_TAG">XML_HTML_UNKNOWN_TAG</a><br />
+<a href="html/libxml-xmlerror.html#XML_HTTP_UNKNOWN_HOST">XML_HTTP_UNKNOWN_HOST</a><br />
+<a href="html/libxml-xmlerror.html#XML_HTTP_URL_SYNTAX">XML_HTTP_URL_SYNTAX</a><br />
+<a href="html/libxml-xmlerror.html#XML_HTTP_USE_IP">XML_HTTP_USE_IP</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_CONV_FAILED">XML_I18N_CONV_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_EXCESS_HANDLER">XML_I18N_EXCESS_HANDLER</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_HANDLER">XML_I18N_NO_HANDLER</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_NAME">XML_I18N_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_OUTPUT">XML_I18N_NO_OUTPUT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_BUFFER_FULL">XML_IO_BUFFER_FULL</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EACCES">XML_IO_EACCES</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EADDRINUSE">XML_IO_EADDRINUSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EAFNOSUPPORT">XML_IO_EAFNOSUPPORT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EAGAIN">XML_IO_EAGAIN</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EALREADY">XML_IO_EALREADY</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EBADF">XML_IO_EBADF</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EBADMSG">XML_IO_EBADMSG</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EBUSY">XML_IO_EBUSY</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ECANCELED">XML_IO_ECANCELED</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ECHILD">XML_IO_ECHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ECONNREFUSED">XML_IO_ECONNREFUSED</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EDEADLK">XML_IO_EDEADLK</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EDOM">XML_IO_EDOM</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EEXIST">XML_IO_EEXIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EFAULT">XML_IO_EFAULT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EFBIG">XML_IO_EFBIG</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EINPROGRESS">XML_IO_EINPROGRESS</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EINTR">XML_IO_EINTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EINVAL">XML_IO_EINVAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EIO">XML_IO_EIO</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EISCONN">XML_IO_EISCONN</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EISDIR">XML_IO_EISDIR</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EMFILE">XML_IO_EMFILE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EMLINK">XML_IO_EMLINK</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EMSGSIZE">XML_IO_EMSGSIZE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENAMETOOLONG">XML_IO_ENAMETOOLONG</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENCODER">XML_IO_ENCODER</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENETUNREACH">XML_IO_ENETUNREACH</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENFILE">XML_IO_ENFILE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENODEV">XML_IO_ENODEV</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOENT">XML_IO_ENOENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOEXEC">XML_IO_ENOEXEC</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOLCK">XML_IO_ENOLCK</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOMEM">XML_IO_ENOMEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOSPC">XML_IO_ENOSPC</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOSYS">XML_IO_ENOSYS</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOTDIR">XML_IO_ENOTDIR</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOTEMPTY">XML_IO_ENOTEMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOTSOCK">XML_IO_ENOTSOCK</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOTSUP">XML_IO_ENOTSUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOTTY">XML_IO_ENOTTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENXIO">XML_IO_ENXIO</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EPERM">XML_IO_EPERM</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EPIPE">XML_IO_EPIPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ERANGE">XML_IO_ERANGE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EROFS">XML_IO_EROFS</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ESPIPE">XML_IO_ESPIPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ESRCH">XML_IO_ESRCH</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ETIMEDOUT">XML_IO_ETIMEDOUT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EXDEV">XML_IO_EXDEV</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_FLUSH">XML_IO_FLUSH</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_LOAD_ERROR">XML_IO_LOAD_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_NETWORK_ATTEMPT">XML_IO_NETWORK_ATTEMPT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_NO_INPUT">XML_IO_NO_INPUT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_UNKNOWN">XML_IO_UNKNOWN</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_WRITE">XML_IO_WRITE</a><br />
+<a href="html/libxml-xmlerror.html#XML_MODULE_CLOSE">XML_MODULE_CLOSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_MODULE_OPEN">XML_MODULE_OPEN</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_ATTRIBUTE_REDEFINED">XML_NS_ERR_ATTRIBUTE_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_COLON">XML_NS_ERR_COLON</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_EMPTY">XML_NS_ERR_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_QNAME">XML_NS_ERR_QNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_UNDEFINED_NAMESPACE">XML_NS_ERR_UNDEFINED_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_XML_NAMESPACE">XML_NS_ERR_XML_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_REGEXP_COMPILE_ERROR">XML_REGEXP_COMPILE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ANYNAME_ATTR_ANCESTOR">XML_RNGP_ANYNAME_ATTR_ANCESTOR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ATTRIBUTE_CHILDREN">XML_RNGP_ATTRIBUTE_CHILDREN</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ATTRIBUTE_CONTENT">XML_RNGP_ATTRIBUTE_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ATTRIBUTE_EMPTY">XML_RNGP_ATTRIBUTE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ATTRIBUTE_NOOP">XML_RNGP_ATTRIBUTE_NOOP</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ATTR_CONFLICT">XML_RNGP_ATTR_CONFLICT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_CHOICE_CONTENT">XML_RNGP_CHOICE_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_CHOICE_EMPTY">XML_RNGP_CHOICE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_CREATE_FAILURE">XML_RNGP_CREATE_FAILURE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DATA_CONTENT">XML_RNGP_DATA_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DEFINE_CREATE_FAILED">XML_RNGP_DEFINE_CREATE_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DEFINE_EMPTY">XML_RNGP_DEFINE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DEFINE_MISSING">XML_RNGP_DEFINE_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DEFINE_NAME_MISSING">XML_RNGP_DEFINE_NAME_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DEF_CHOICE_AND_INTERLEAVE">XML_RNGP_DEF_CHOICE_AND_INTERLEAVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEMENT_CONTENT">XML_RNGP_ELEMENT_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEMENT_EMPTY">XML_RNGP_ELEMENT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEMENT_NAME">XML_RNGP_ELEMENT_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEMENT_NO_CONTENT">XML_RNGP_ELEMENT_NO_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEM_CONTENT_EMPTY">XML_RNGP_ELEM_CONTENT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEM_CONTENT_ERROR">XML_RNGP_ELEM_CONTENT_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEM_TEXT_CONFLICT">XML_RNGP_ELEM_TEXT_CONFLICT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EMPTY">XML_RNGP_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EMPTY_CONSTRUCT">XML_RNGP_EMPTY_CONSTRUCT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EMPTY_CONTENT">XML_RNGP_EMPTY_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EMPTY_NOT_EMPTY">XML_RNGP_EMPTY_NOT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ERROR_TYPE_LIB">XML_RNGP_ERROR_TYPE_LIB</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXCEPT_EMPTY">XML_RNGP_EXCEPT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXCEPT_MISSING">XML_RNGP_EXCEPT_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXCEPT_MULTIPLE">XML_RNGP_EXCEPT_MULTIPLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXCEPT_NO_CONTENT">XML_RNGP_EXCEPT_NO_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXTERNALREF_EMTPY">XML_RNGP_EXTERNALREF_EMTPY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXTERNALREF_RECURSE">XML_RNGP_EXTERNALREF_RECURSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXTERNAL_REF_FAILURE">XML_RNGP_EXTERNAL_REF_FAILURE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_FORBIDDEN_ATTRIBUTE">XML_RNGP_FORBIDDEN_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_FOREIGN_ELEMENT">XML_RNGP_FOREIGN_ELEMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_GRAMMAR_CONTENT">XML_RNGP_GRAMMAR_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_GRAMMAR_EMPTY">XML_RNGP_GRAMMAR_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_GRAMMAR_MISSING">XML_RNGP_GRAMMAR_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_GRAMMAR_NO_START">XML_RNGP_GRAMMAR_NO_START</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_GROUP_ATTR_CONFLICT">XML_RNGP_GROUP_ATTR_CONFLICT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_HREF_ERROR">XML_RNGP_HREF_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INCLUDE_EMPTY">XML_RNGP_INCLUDE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INCLUDE_FAILURE">XML_RNGP_INCLUDE_FAILURE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INCLUDE_RECURSE">XML_RNGP_INCLUDE_RECURSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INTERLEAVE_ADD">XML_RNGP_INTERLEAVE_ADD</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INTERLEAVE_CREATE_FAILED">XML_RNGP_INTERLEAVE_CREATE_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INTERLEAVE_EMPTY">XML_RNGP_INTERLEAVE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INTERLEAVE_NO_CONTENT">XML_RNGP_INTERLEAVE_NO_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INVALID_DEFINE_NAME">XML_RNGP_INVALID_DEFINE_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INVALID_URI">XML_RNGP_INVALID_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INVALID_VALUE">XML_RNGP_INVALID_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_MISSING_HREF">XML_RNGP_MISSING_HREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_NAME_MISSING">XML_RNGP_NAME_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_NEED_COMBINE">XML_RNGP_NEED_COMBINE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_NOTALLOWED_NOT_EMPTY">XML_RNGP_NOTALLOWED_NOT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_NSNAME_ATTR_ANCESTOR">XML_RNGP_NSNAME_ATTR_ANCESTOR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_NSNAME_NO_NS">XML_RNGP_NSNAME_NO_NS</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARAM_FORBIDDEN">XML_RNGP_PARAM_FORBIDDEN</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARAM_NAME_MISSING">XML_RNGP_PARAM_NAME_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARENTREF_CREATE_FAILED">XML_RNGP_PARENTREF_CREATE_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARENTREF_NAME_INVALID">XML_RNGP_PARENTREF_NAME_INVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARENTREF_NOT_EMPTY">XML_RNGP_PARENTREF_NOT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARENTREF_NO_NAME">XML_RNGP_PARENTREF_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARENTREF_NO_PARENT">XML_RNGP_PARENTREF_NO_PARENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARSE_ERROR">XML_RNGP_PARSE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME">XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_ATTR_ATTR">XML_RNGP_PAT_ATTR_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_ATTR_ELEM">XML_RNGP_PAT_ATTR_ELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_ATTR">XML_RNGP_PAT_DATA_EXCEPT_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_ELEM">XML_RNGP_PAT_DATA_EXCEPT_ELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_EMPTY">XML_RNGP_PAT_DATA_EXCEPT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_GROUP">XML_RNGP_PAT_DATA_EXCEPT_GROUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE">XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_LIST">XML_RNGP_PAT_DATA_EXCEPT_LIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_ONEMORE">XML_RNGP_PAT_DATA_EXCEPT_ONEMORE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_REF">XML_RNGP_PAT_DATA_EXCEPT_REF</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_TEXT">XML_RNGP_PAT_DATA_EXCEPT_TEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_ATTR">XML_RNGP_PAT_LIST_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_ELEM">XML_RNGP_PAT_LIST_ELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_INTERLEAVE">XML_RNGP_PAT_LIST_INTERLEAVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_LIST">XML_RNGP_PAT_LIST_LIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_REF">XML_RNGP_PAT_LIST_REF</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_TEXT">XML_RNGP_PAT_LIST_TEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME">XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME">XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_ONEMORE_GROUP_ATTR">XML_RNGP_PAT_ONEMORE_GROUP_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR">XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_ATTR">XML_RNGP_PAT_START_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_DATA">XML_RNGP_PAT_START_DATA</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_EMPTY">XML_RNGP_PAT_START_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_GROUP">XML_RNGP_PAT_START_GROUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_INTERLEAVE">XML_RNGP_PAT_START_INTERLEAVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_LIST">XML_RNGP_PAT_START_LIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_ONEMORE">XML_RNGP_PAT_START_ONEMORE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_TEXT">XML_RNGP_PAT_START_TEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_VALUE">XML_RNGP_PAT_START_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PREFIX_UNDEFINED">XML_RNGP_PREFIX_UNDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_CREATE_FAILED">XML_RNGP_REF_CREATE_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_CYCLE">XML_RNGP_REF_CYCLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_NAME_INVALID">XML_RNGP_REF_NAME_INVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_NOT_EMPTY">XML_RNGP_REF_NOT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_NO_DEF">XML_RNGP_REF_NO_DEF</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_NO_NAME">XML_RNGP_REF_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_START_CHOICE_AND_INTERLEAVE">XML_RNGP_START_CHOICE_AND_INTERLEAVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_START_CONTENT">XML_RNGP_START_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_START_EMPTY">XML_RNGP_START_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_START_MISSING">XML_RNGP_START_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_TEXT_EXPECTED">XML_RNGP_TEXT_EXPECTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_TEXT_HAS_CHILD">XML_RNGP_TEXT_HAS_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_TYPE_MISSING">XML_RNGP_TYPE_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_TYPE_NOT_FOUND">XML_RNGP_TYPE_NOT_FOUND</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_TYPE_VALUE">XML_RNGP_TYPE_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_UNKNOWN_ATTRIBUTE">XML_RNGP_UNKNOWN_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_UNKNOWN_COMBINE">XML_RNGP_UNKNOWN_COMBINE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_UNKNOWN_CONSTRUCT">XML_RNGP_UNKNOWN_CONSTRUCT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_UNKNOWN_TYPE_LIB">XML_RNGP_UNKNOWN_TYPE_LIB</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_URI_FRAGMENT">XML_RNGP_URI_FRAGMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_URI_NOT_ABSOLUTE">XML_RNGP_URI_NOT_ABSOLUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_VALUE_EMPTY">XML_RNGP_VALUE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_VALUE_NO_CONTENT">XML_RNGP_VALUE_NO_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_XMLNS_NAME">XML_RNGP_XMLNS_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_XML_NS">XML_RNGP_XML_NS</a><br />
+<a href="html/libxml-xmlerror.html#XML_SAVE_CHAR_INVALID">XML_SAVE_CHAR_INVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SAVE_NOT_UTF8">XML_SAVE_NOT_UTF8</a><br />
+<a href="html/libxml-xmlerror.html#XML_SAVE_NO_DOCTYPE">XML_SAVE_NO_DOCTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SAVE_UNKNOWN_ENCODING">XML_SAVE_UNKNOWN_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_AG_PROPS_CORRECT">XML_SCHEMAP_AG_PROPS_CORRECT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ATTRFORMDEFAULT_VALUE">XML_SCHEMAP_ATTRFORMDEFAULT_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ATTRGRP_NONAME_NOREF">XML_SCHEMAP_ATTRGRP_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ATTR_NONAME_NOREF">XML_SCHEMAP_ATTR_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_AU_PROPS_CORRECT">XML_SCHEMAP_AU_PROPS_CORRECT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_AU_PROPS_CORRECT_2">XML_SCHEMAP_AU_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_A_PROPS_CORRECT_2">XML_SCHEMAP_A_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_A_PROPS_CORRECT_3">XML_SCHEMAP_A_PROPS_CORRECT_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF">XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ALL_LIMITED">XML_SCHEMAP_COS_ALL_LIMITED</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_CT_EXTENDS_1_1">XML_SCHEMAP_COS_CT_EXTENDS_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_CT_EXTENDS_1_2">XML_SCHEMAP_COS_CT_EXTENDS_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_CT_EXTENDS_1_3">XML_SCHEMAP_COS_CT_EXTENDS_1_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_DERIVED_OK_2_1">XML_SCHEMAP_COS_ST_DERIVED_OK_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_DERIVED_OK_2_2">XML_SCHEMAP_COS_ST_DERIVED_OK_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_1">XML_SCHEMAP_COS_ST_RESTRICTS_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2">XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_1">XML_SCHEMAP_COS_VALID_DEFAULT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_2_1">XML_SCHEMAP_COS_VALID_DEFAULT_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1">XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2">XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_1">XML_SCHEMAP_CT_PROPS_CORRECT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_2">XML_SCHEMAP_CT_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_3">XML_SCHEMAP_CT_PROPS_CORRECT_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_4">XML_SCHEMAP_CT_PROPS_CORRECT_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_5">XML_SCHEMAP_CT_PROPS_CORRECT_5</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CVC_SIMPLE_TYPE">XML_SCHEMAP_CVC_SIMPLE_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_C_PROPS_CORRECT">XML_SCHEMAP_C_PROPS_CORRECT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DEF_AND_PREFIX">XML_SCHEMAP_DEF_AND_PREFIX</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ELEMFORMDEFAULT_VALUE">XML_SCHEMAP_ELEMFORMDEFAULT_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ELEM_DEFAULT_FIXED">XML_SCHEMAP_ELEM_DEFAULT_FIXED</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ELEM_NONAME_NOREF">XML_SCHEMAP_ELEM_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_EXTENSION_NO_BASE">XML_SCHEMAP_EXTENSION_NO_BASE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_2">XML_SCHEMAP_E_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_3">XML_SCHEMAP_E_PROPS_CORRECT_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_4">XML_SCHEMAP_E_PROPS_CORRECT_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_5">XML_SCHEMAP_E_PROPS_CORRECT_5</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_6">XML_SCHEMAP_E_PROPS_CORRECT_6</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_FACET_NO_VALUE">XML_SCHEMAP_FACET_NO_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_FAILED_BUILD_IMPORT">XML_SCHEMAP_FAILED_BUILD_IMPORT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_FAILED_LOAD">XML_SCHEMAP_FAILED_LOAD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_FAILED_PARSE">XML_SCHEMAP_FAILED_PARSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_GROUP_NONAME_NOREF">XML_SCHEMAP_GROUP_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI">XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_IMPORT_REDEFINE_NSNAME">XML_SCHEMAP_IMPORT_REDEFINE_NSNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI">XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI">XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI">XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INTERNAL">XML_SCHEMAP_INTERNAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE">XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_COMBINATION">XML_SCHEMAP_INVALID_ATTR_COMBINATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION">XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_NAME">XML_SCHEMAP_INVALID_ATTR_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_USE">XML_SCHEMAP_INVALID_ATTR_USE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_BOOLEAN">XML_SCHEMAP_INVALID_BOOLEAN</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_ENUM">XML_SCHEMAP_INVALID_ENUM</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_FACET">XML_SCHEMAP_INVALID_FACET</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_FACET_VALUE">XML_SCHEMAP_INVALID_FACET_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_MAXOCCURS">XML_SCHEMAP_INVALID_MAXOCCURS</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_MINOCCURS">XML_SCHEMAP_INVALID_MINOCCURS</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_REF_AND_SUBTYPE">XML_SCHEMAP_INVALID_REF_AND_SUBTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_WHITE_SPACE">XML_SCHEMAP_INVALID_WHITE_SPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_MG_PROPS_CORRECT_1">XML_SCHEMAP_MG_PROPS_CORRECT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_MG_PROPS_CORRECT_2">XML_SCHEMAP_MG_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD">XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOATTR_NOREF">XML_SCHEMAP_NOATTR_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOROOT">XML_SCHEMAP_NOROOT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOTATION_NO_NAME">XML_SCHEMAP_NOTATION_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOTHING_TO_PARSE">XML_SCHEMAP_NOTHING_TO_PARSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOTYPE_NOREF">XML_SCHEMAP_NOTYPE_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOT_DETERMINISTIC">XML_SCHEMAP_NOT_DETERMINISTIC</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOT_SCHEMA">XML_SCHEMAP_NOT_SCHEMA</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NO_XMLNS">XML_SCHEMAP_NO_XMLNS</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NO_XSI">XML_SCHEMAP_NO_XSI</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_PREFIX_UNDEFINED">XML_SCHEMAP_PREFIX_UNDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_P_PROPS_CORRECT_1">XML_SCHEMAP_P_PROPS_CORRECT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_P_PROPS_CORRECT_2_1">XML_SCHEMAP_P_PROPS_CORRECT_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_P_PROPS_CORRECT_2_2">XML_SCHEMAP_P_PROPS_CORRECT_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_RECURSIVE">XML_SCHEMAP_RECURSIVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_ATTR">XML_SCHEMAP_REDEFINED_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_ATTRGROUP">XML_SCHEMAP_REDEFINED_ATTRGROUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_ELEMENT">XML_SCHEMAP_REDEFINED_ELEMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_GROUP">XML_SCHEMAP_REDEFINED_GROUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_NOTATION">XML_SCHEMAP_REDEFINED_NOTATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_TYPE">XML_SCHEMAP_REDEFINED_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REF_AND_CONTENT">XML_SCHEMAP_REF_AND_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REF_AND_SUBTYPE">XML_SCHEMAP_REF_AND_SUBTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REGEXP_INVALID">XML_SCHEMAP_REGEXP_INVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_RESTRICTION_NONAME_NOREF">XML_SCHEMAP_RESTRICTION_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_S4S_ATTR_INVALID_VALUE">XML_SCHEMAP_S4S_ATTR_INVALID_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_S4S_ATTR_MISSING">XML_SCHEMAP_S4S_ATTR_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED">XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_S4S_ELEM_MISSING">XML_SCHEMAP_S4S_ELEM_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED">XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SIMPLETYPE_NONAME">XML_SCHEMAP_SIMPLETYPE_NONAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_1">XML_SCHEMAP_SRC_ATTRIBUTE_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_2">XML_SCHEMAP_SRC_ATTRIBUTE_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_3_1">XML_SCHEMAP_SRC_ATTRIBUTE_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_3_2">XML_SCHEMAP_SRC_ATTRIBUTE_3_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_4">XML_SCHEMAP_SRC_ATTRIBUTE_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_CT_1">XML_SCHEMAP_SRC_CT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_1">XML_SCHEMAP_SRC_ELEMENT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_2_1">XML_SCHEMAP_SRC_ELEMENT_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_2_2">XML_SCHEMAP_SRC_ELEMENT_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_3">XML_SCHEMAP_SRC_ELEMENT_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT">XML_SCHEMAP_SRC_IMPORT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_1_1">XML_SCHEMAP_SRC_IMPORT_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_1_2">XML_SCHEMAP_SRC_IMPORT_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_2">XML_SCHEMAP_SRC_IMPORT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_2_1">XML_SCHEMAP_SRC_IMPORT_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_2_2">XML_SCHEMAP_SRC_IMPORT_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_3_1">XML_SCHEMAP_SRC_IMPORT_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_3_2">XML_SCHEMAP_SRC_IMPORT_3_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_INCLUDE">XML_SCHEMAP_SRC_INCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_REDEFINE">XML_SCHEMAP_SRC_REDEFINE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_RESOLVE">XML_SCHEMAP_SRC_RESOLVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_1">XML_SCHEMAP_SRC_SIMPLE_TYPE_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_2">XML_SCHEMAP_SRC_SIMPLE_TYPE_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_3">XML_SCHEMAP_SRC_SIMPLE_TYPE_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_4">XML_SCHEMAP_SRC_SIMPLE_TYPE_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES">XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ST_PROPS_CORRECT_1">XML_SCHEMAP_ST_PROPS_CORRECT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ST_PROPS_CORRECT_2">XML_SCHEMAP_ST_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ST_PROPS_CORRECT_3">XML_SCHEMAP_ST_PROPS_CORRECT_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE">XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_TYPE_AND_SUBTYPE">XML_SCHEMAP_TYPE_AND_SUBTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNION_NOT_EXPRESSIBLE">XML_SCHEMAP_UNION_NOT_EXPRESSIBLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ALL_CHILD">XML_SCHEMAP_UNKNOWN_ALL_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD">XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD">XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP">XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ATTR_CHILD">XML_SCHEMAP_UNKNOWN_ATTR_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_BASE_TYPE">XML_SCHEMAP_UNKNOWN_BASE_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_CHOICE_CHILD">XML_SCHEMAP_UNKNOWN_CHOICE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD">XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD">XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ELEM_CHILD">XML_SCHEMAP_UNKNOWN_ELEM_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD">XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_FACET_CHILD">XML_SCHEMAP_UNKNOWN_FACET_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_FACET_TYPE">XML_SCHEMAP_UNKNOWN_FACET_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_GROUP_CHILD">XML_SCHEMAP_UNKNOWN_GROUP_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_IMPORT_CHILD">XML_SCHEMAP_UNKNOWN_IMPORT_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD">XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_LIST_CHILD">XML_SCHEMAP_UNKNOWN_LIST_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_MEMBER_TYPE">XML_SCHEMAP_UNKNOWN_MEMBER_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_NOTATION_CHILD">XML_SCHEMAP_UNKNOWN_NOTATION_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_PREFIX">XML_SCHEMAP_UNKNOWN_PREFIX</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD">XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_REF">XML_SCHEMAP_UNKNOWN_REF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD">XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD">XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD">XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD">XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD">XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_TYPE">XML_SCHEMAP_UNKNOWN_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_UNION_CHILD">XML_SCHEMAP_UNKNOWN_UNION_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH">XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_WARN_ATTR_REDECL_PROH">XML_SCHEMAP_WARN_ATTR_REDECL_PROH</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_WARN_SKIP_SCHEMA">XML_SCHEMAP_WARN_SKIP_SCHEMA</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_WARN_UNLOCATED_SCHEMA">XML_SCHEMAP_WARN_UNLOCATED_SCHEMA</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER">XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMATRONV_ASSERT">XML_SCHEMATRONV_ASSERT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMATRONV_REPORT">XML_SCHEMATRONV_REPORT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_ATTRINVALID">XML_SCHEMAV_ATTRINVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_ATTRUNKNOWN">XML_SCHEMAV_ATTRUNKNOWN</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CONSTRUCT">XML_SCHEMAV_CONSTRUCT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_1">XML_SCHEMAV_CVC_ATTRIBUTE_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_2">XML_SCHEMAV_CVC_ATTRIBUTE_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_3">XML_SCHEMAV_CVC_ATTRIBUTE_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_4">XML_SCHEMAV_CVC_ATTRIBUTE_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_AU">XML_SCHEMAV_CVC_AU</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_4">XML_SCHEMAV_CVC_COMPLEX_TYPE_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_1">XML_SCHEMAV_CVC_ELT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_2">XML_SCHEMAV_CVC_ELT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_3_1">XML_SCHEMAV_CVC_ELT_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_3_2_1">XML_SCHEMAV_CVC_ELT_3_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_3_2_2">XML_SCHEMAV_CVC_ELT_3_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_4_1">XML_SCHEMAV_CVC_ELT_4_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_4_2">XML_SCHEMAV_CVC_ELT_4_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_4_3">XML_SCHEMAV_CVC_ELT_4_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_1_1">XML_SCHEMAV_CVC_ELT_5_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_1_2">XML_SCHEMAV_CVC_ELT_5_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_1">XML_SCHEMAV_CVC_ELT_5_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_2_1">XML_SCHEMAV_CVC_ELT_5_2_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_2_2_1">XML_SCHEMAV_CVC_ELT_5_2_2_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_2_2_2">XML_SCHEMAV_CVC_ELT_5_2_2_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_6">XML_SCHEMAV_CVC_ELT_6</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_7">XML_SCHEMAV_CVC_ELT_7</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ENUMERATION_VALID">XML_SCHEMAV_CVC_ENUMERATION_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_FACET_VALID">XML_SCHEMAV_CVC_FACET_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID">XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_IDC">XML_SCHEMAV_CVC_IDC</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_LENGTH_VALID">XML_SCHEMAV_CVC_LENGTH_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MAXLENGTH_VALID">XML_SCHEMAV_CVC_MAXLENGTH_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MININCLUSIVE_VALID">XML_SCHEMAV_CVC_MININCLUSIVE_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MINLENGTH_VALID">XML_SCHEMAV_CVC_MINLENGTH_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_PATTERN_VALID">XML_SCHEMAV_CVC_PATTERN_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_TOTALDIGITS_VALID">XML_SCHEMAV_CVC_TOTALDIGITS_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_TYPE_1">XML_SCHEMAV_CVC_TYPE_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_TYPE_2">XML_SCHEMAV_CVC_TYPE_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_TYPE_3_1_1">XML_SCHEMAV_CVC_TYPE_3_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_TYPE_3_1_2">XML_SCHEMAV_CVC_TYPE_3_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_WILDCARD">XML_SCHEMAV_CVC_WILDCARD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING">XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_ELEMCONT">XML_SCHEMAV_ELEMCONT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_ELEMENT_CONTENT">XML_SCHEMAV_ELEMENT_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_EXTRACONTENT">XML_SCHEMAV_EXTRACONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_FACET">XML_SCHEMAV_FACET</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_HAVEDEFAULT">XML_SCHEMAV_HAVEDEFAULT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_INTERNAL">XML_SCHEMAV_INTERNAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_INVALIDATTR">XML_SCHEMAV_INVALIDATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_INVALIDELEM">XML_SCHEMAV_INVALIDELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_ISABSTRACT">XML_SCHEMAV_ISABSTRACT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_MISC">XML_SCHEMAV_MISC</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_MISSING">XML_SCHEMAV_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOROLLBACK">XML_SCHEMAV_NOROLLBACK</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOROOT">XML_SCHEMAV_NOROOT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTDETERMINIST">XML_SCHEMAV_NOTDETERMINIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTEMPTY">XML_SCHEMAV_NOTEMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTNILLABLE">XML_SCHEMAV_NOTNILLABLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTSIMPLE">XML_SCHEMAV_NOTSIMPLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTTOPLEVEL">XML_SCHEMAV_NOTTOPLEVEL</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTYPE">XML_SCHEMAV_NOTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_UNDECLAREDELEM">XML_SCHEMAV_UNDECLAREDELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_VALUE">XML_SCHEMAV_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_WRONGELEM">XML_SCHEMAV_WRONGELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_TREE_INVALID_DEC">XML_TREE_INVALID_DEC</a><br />
+<a href="html/libxml-xmlerror.html#XML_TREE_INVALID_HEX">XML_TREE_INVALID_HEX</a><br />
+<a href="html/libxml-xmlerror.html#XML_TREE_NOT_UTF8">XML_TREE_NOT_UTF8</a><br />
+<a href="html/libxml-xmlerror.html#XML_TREE_UNTERMINATED_ENTITY">XML_TREE_UNTERMINATED_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_CATALOG_PI">XML_WAR_CATALOG_PI</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_ENTITY_REDEFINED">XML_WAR_ENTITY_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_LANG_VALUE">XML_WAR_LANG_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_NS_COLUMN">XML_WAR_NS_COLUMN</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_NS_URI">XML_WAR_NS_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_NS_URI_RELATIVE">XML_WAR_NS_URI_RELATIVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_SPACE_VALUE">XML_WAR_SPACE_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_UNDECLARED_ENTITY">XML_WAR_UNDECLARED_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_UNKNOWN_VERSION">XML_WAR_UNKNOWN_VERSION</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_BUILD_FAILED">XML_XINCLUDE_BUILD_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_DEPRECATED_NS">XML_XINCLUDE_DEPRECATED_NS</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_ENTITY_DEF_MISMATCH">XML_XINCLUDE_ENTITY_DEF_MISMATCH</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_FALLBACKS_IN_INCLUDE">XML_XINCLUDE_FALLBACKS_IN_INCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE">XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_FRAGMENT_ID">XML_XINCLUDE_FRAGMENT_ID</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_HREF_URI">XML_XINCLUDE_HREF_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_INCLUDE_IN_INCLUDE">XML_XINCLUDE_INCLUDE_IN_INCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_INVALID_CHAR">XML_XINCLUDE_INVALID_CHAR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_MULTIPLE_ROOT">XML_XINCLUDE_MULTIPLE_ROOT</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_NO_FALLBACK">XML_XINCLUDE_NO_FALLBACK</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_NO_HREF">XML_XINCLUDE_NO_HREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_PARSE_VALUE">XML_XINCLUDE_PARSE_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_RECURSION">XML_XINCLUDE_RECURSION</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_TEXT_DOCUMENT">XML_XINCLUDE_TEXT_DOCUMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_TEXT_FRAGMENT">XML_XINCLUDE_TEXT_FRAGMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_UNKNOWN_ENCODING">XML_XINCLUDE_UNKNOWN_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_XPTR_FAILED">XML_XINCLUDE_XPTR_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_XPTR_RESULT">XML_XINCLUDE_XPTR_RESULT</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_ENCODING_ERROR">XML_XPATH_ENCODING_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_EXPRESSION_OK">XML_XPATH_EXPRESSION_OK</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_EXPR_ERROR">XML_XPATH_EXPR_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_ARITY">XML_XPATH_INVALID_ARITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_CHAR_ERROR">XML_XPATH_INVALID_CHAR_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_CTXT_POSITION">XML_XPATH_INVALID_CTXT_POSITION</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_CTXT_SIZE">XML_XPATH_INVALID_CTXT_SIZE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_OPERAND">XML_XPATH_INVALID_OPERAND</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_PREDICATE_ERROR">XML_XPATH_INVALID_PREDICATE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_TYPE">XML_XPATH_INVALID_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_MEMORY_ERROR">XML_XPATH_MEMORY_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_NUMBER_ERROR">XML_XPATH_NUMBER_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_START_LITERAL_ERROR">XML_XPATH_START_LITERAL_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_UNCLOSED_ERROR">XML_XPATH_UNCLOSED_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_UNDEF_PREFIX_ERROR">XML_XPATH_UNDEF_PREFIX_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_UNDEF_VARIABLE_ERROR">XML_XPATH_UNDEF_VARIABLE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_UNFINISHED_LITERAL_ERROR">XML_XPATH_UNFINISHED_LITERAL_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_UNKNOWN_FUNC_ERROR">XML_XPATH_UNKNOWN_FUNC_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_VARIABLE_REF_ERROR">XML_XPATH_VARIABLE_REF_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_CHILDSEQ_START">XML_XPTR_CHILDSEQ_START</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_EVAL_FAILED">XML_XPTR_EVAL_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_EXTRA_OBJECTS">XML_XPTR_EXTRA_OBJECTS</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_RESOURCE_ERROR">XML_XPTR_RESOURCE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_SUB_RESOURCE_ERROR">XML_XPTR_SUB_RESOURCE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_SYNTAX_ERROR">XML_XPTR_SYNTAX_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_UNKNOWN_SCHEME">XML_XPTR_UNKNOWN_SCHEME</a><br />
+<a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+<a href="html/libxml-xmlerror.html#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlCopyError">xmlCopyError</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
+<a href="html/libxml-xmlerror.html#xmlError">xmlError</a><br />
+<a href="html/libxml-xmlerror.html#xmlErrorDomain">xmlErrorDomain</a><br />
+<a href="html/libxml-xmlerror.html#xmlErrorLevel">xmlErrorLevel</a><br />
+<a href="html/libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a><br />
+<a href="html/libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserError">xmlParserError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileContext">xmlParserPrintFileContext</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileInfo">xmlParserPrintFileInfo</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetError">xmlResetError</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetLastError">xmlResetLastError</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+</p><h2><a name="xmlexports" id="xmlexports">Module xmlexports</a>:</h2><p><a href="html/libxml-xmlexports.html#LIBXML_DLL_IMPORT">LIBXML_DLL_IMPORT</a><br />
+<a href="html/libxml-xmlexports.html#XMLCALL">XMLCALL</a><br />
+<a href="html/libxml-xmlexports.html#XMLCDECL">XMLCDECL</a><br />
+<a href="html/libxml-xmlexports.html#XMLPUBFUN">XMLPUBFUN</a><br />
+<a href="html/libxml-xmlexports.html#XMLPUBVAR">XMLPUBVAR</a><br />
+</p><h2><a name="xmlmemory" id="xmlmemory">Module xmlmemory</a>:</h2><p><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-xmlmemory.html#xmlCleanupMemory">xmlCleanupMemory</a><br />
+<a href="html/libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlInitMemory">xmlInitMemory</a><br />
+<a href="html/libxml-globals.html#xmlMalloc">xmlMalloc</a><br />
+<a href="html/libxml-globals.html#xmlMallocAtomic">xmlMallocAtomic</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
+<a href="html/libxml-globals.html#xmlMemStrdup">xmlMemStrdup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-globals.html#xmlRealloc">xmlRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a><br />
+</p><h2><a name="xmlmodule" id="xmlmodule">Module xmlmodule</a>:</h2><p><a href="html/libxml-xmlmodule.html#XML_MODULE_LAZY">XML_MODULE_LAZY</a><br />
+<a href="html/libxml-xmlmodule.html#XML_MODULE_LOCAL">XML_MODULE_LOCAL</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModule">xmlModule</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOption">xmlModuleOption</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModulePtr">xmlModulePtr</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+</p><h2><a name="xmlreader" id="xmlreader">Module xmlreader</a>:</h2><p><a href="html/libxml-xmlreader.html#XML_PARSER_DEFAULTATTRS">XML_PARSER_DEFAULTATTRS</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_LOADDTD">XML_PARSER_LOADDTD</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_SEVERITY_ERROR">XML_PARSER_SEVERITY_ERROR</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_SEVERITY_VALIDITY_ERROR">XML_PARSER_SEVERITY_VALIDITY_ERROR</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_SEVERITY_VALIDITY_WARNING">XML_PARSER_SEVERITY_VALIDITY_WARNING</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_SEVERITY_WARNING">XML_PARSER_SEVERITY_WARNING</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_SUBST_ENTITIES">XML_PARSER_SUBST_ENTITIES</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_VALIDATE">XML_PARSER_VALIDATE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_ATTRIBUTE">XML_READER_TYPE_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_CDATA">XML_READER_TYPE_CDATA</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_COMMENT">XML_READER_TYPE_COMMENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_DOCUMENT">XML_READER_TYPE_DOCUMENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_DOCUMENT_FRAGMENT">XML_READER_TYPE_DOCUMENT_FRAGMENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_DOCUMENT_TYPE">XML_READER_TYPE_DOCUMENT_TYPE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_ELEMENT">XML_READER_TYPE_ELEMENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_END_ELEMENT">XML_READER_TYPE_END_ELEMENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_END_ENTITY">XML_READER_TYPE_END_ENTITY</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_ENTITY">XML_READER_TYPE_ENTITY</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_ENTITY_REFERENCE">XML_READER_TYPE_ENTITY_REFERENCE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_NONE">XML_READER_TYPE_NONE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_NOTATION">XML_READER_TYPE_NOTATION</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_PROCESSING_INSTRUCTION">XML_READER_TYPE_PROCESSING_INSTRUCTION</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_SIGNIFICANT_WHITESPACE">XML_READER_TYPE_SIGNIFICANT_WHITESPACE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_TEXT">XML_READER_TYPE_TEXT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_WHITESPACE">XML_READER_TYPE_WHITESPACE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_XML_DECLARATION">XML_READER_TYPE_XML_DECLARATION</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_CLOSED">XML_TEXTREADER_MODE_CLOSED</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_EOF">XML_TEXTREADER_MODE_EOF</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_ERROR">XML_TEXTREADER_MODE_ERROR</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_INITIAL">XML_TEXTREADER_MODE_INITIAL</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_INTERACTIVE">XML_TEXTREADER_MODE_INTERACTIVE</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_READING">XML_TEXTREADER_MODE_READING</a><br />
+<a href="html/libxml-xmlreader.html#xmlFreeTextReader">xmlFreeTextReader</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a><br />
+<a href="html/libxml-xmlreader.html#xmlParserProperties">xmlParserProperties</a><br />
+<a href="html/libxml-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFile">xmlReaderForFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForMemory">xmlReaderForMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFile">xmlReaderNewFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewMemory">xmlReaderNewMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewWalker">xmlReaderNewWalker</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderTypes">xmlReaderTypes</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderWalker">xmlReaderWalker</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReader">xmlTextReader</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderAttributeCount">xmlTextReaderAttributeCount</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderBaseUri">xmlTextReaderBaseUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstBaseUri">xmlTextReaderConstBaseUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstEncoding">xmlTextReaderConstEncoding</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstLocalName">xmlTextReaderConstLocalName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstName">xmlTextReaderConstName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstNamespaceUri">xmlTextReaderConstNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstPrefix">xmlTextReaderConstPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlVersion">xmlTextReaderConstXmlVersion</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderDepth">xmlTextReaderDepth</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserColumnNumber">xmlTextReaderGetParserColumnNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserLineNumber">xmlTextReaderGetParserLineNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderHasAttributes">xmlTextReaderHasAttributes</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderHasValue">xmlTextReaderHasValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsEmptyElement">xmlTextReaderIsEmptyElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsValid">xmlTextReaderIsValid</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocalName">xmlTextReaderLocalName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMode">xmlTextReaderMode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttribute">xmlTextReaderMoveToAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNs">xmlTextReaderMoveToAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToFirstAttribute">xmlTextReaderMoveToFirstAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToNextAttribute">xmlTextReaderMoveToNextAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderName">xmlTextReaderName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNamespaceUri">xmlTextReaderNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNext">xmlTextReaderNext</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPrefix">xmlTextReaderPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderQuoteChar">xmlTextReaderQuoteChar</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadState">xmlTextReaderReadState</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+</p><h2><a name="xmlregexp" id="xmlregexp">Module xmlregexp</a>:</h2><p><a href="html/libxml-xmlregexp.html#XML_EXP_ATOM">XML_EXP_ATOM</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_COUNT">XML_EXP_COUNT</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_EMPTY">XML_EXP_EMPTY</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_FORBID">XML_EXP_FORBID</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_OR">XML_EXP_OR</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_SEQ">XML_EXP_SEQ</a><br />
+<a href="html/libxml-xmlregexp.html#emptyExp">emptyExp</a><br />
+<a href="html/libxml-xmlregexp.html#forbiddenExp">forbiddenExp</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxt">xmlExpCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFree">xmlExpFree</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFreeCtxt">xmlExpFreeCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNode">xmlExpNode</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNodeType">xmlExpNodeType</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCtxt">xmlRegExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegFreeRegexp">xmlRegFreeRegexp</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexp">xmlRegexp</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpPrint">xmlRegexpPrint</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a><br />
+</p><h2><a name="xmlsave" id="xmlsave">Module xmlsave</a>:</h2><p><a href="html/libxml-xmlsave.html#XML_SAVE_AS_HTML">XML_SAVE_AS_HTML</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_AS_XML">XML_SAVE_AS_XML</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_FORMAT">XML_SAVE_FORMAT</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_NO_DECL">XML_SAVE_NO_DECL</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_NO_EMPTY">XML_SAVE_NO_EMPTY</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_NO_XHTML">XML_SAVE_NO_XHTML</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_WSNONSIG">XML_SAVE_WSNONSIG</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_XHTML">XML_SAVE_XHTML</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveClose">xmlSaveClose</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveCtxt">xmlSaveCtxt</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveFlush">xmlSaveFlush</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveOption">xmlSaveOption</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetEscape">xmlSaveSetEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToBuffer">xmlSaveToBuffer</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+</p><h2><a name="xmlschemas" id="xmlschemas">Module xmlschemas</a>:</h2><p><a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_">XML_SCHEMAS_ERR_</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_ATTRINVALID">XML_SCHEMAS_ERR_ATTRINVALID</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_ATTRUNKNOWN">XML_SCHEMAS_ERR_ATTRUNKNOWN</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_CONSTRUCT">XML_SCHEMAS_ERR_CONSTRUCT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_ELEMCONT">XML_SCHEMAS_ERR_ELEMCONT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_EXTRACONTENT">XML_SCHEMAS_ERR_EXTRACONTENT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_FACET">XML_SCHEMAS_ERR_FACET</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_HAVEDEFAULT">XML_SCHEMAS_ERR_HAVEDEFAULT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_INTERNAL">XML_SCHEMAS_ERR_INTERNAL</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_INVALIDATTR">XML_SCHEMAS_ERR_INVALIDATTR</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_INVALIDELEM">XML_SCHEMAS_ERR_INVALIDELEM</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_ISABSTRACT">XML_SCHEMAS_ERR_ISABSTRACT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_MISSING">XML_SCHEMAS_ERR_MISSING</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOROLLBACK">XML_SCHEMAS_ERR_NOROLLBACK</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOROOT">XML_SCHEMAS_ERR_NOROOT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTDETERMINIST">XML_SCHEMAS_ERR_NOTDETERMINIST</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTEMPTY">XML_SCHEMAS_ERR_NOTEMPTY</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTNILLABLE">XML_SCHEMAS_ERR_NOTNILLABLE</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTSIMPLE">XML_SCHEMAS_ERR_NOTSIMPLE</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTTOPLEVEL">XML_SCHEMAS_ERR_NOTTOPLEVEL</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTYPE">XML_SCHEMAS_ERR_NOTYPE</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_OK">XML_SCHEMAS_ERR_OK</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_UNDECLAREDELEM">XML_SCHEMAS_ERR_UNDECLAREDELEM</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_VALUE">XML_SCHEMAS_ERR_VALUE</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_WRONGELEM">XML_SCHEMAS_ERR_WRONGELEM</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_XXX">XML_SCHEMAS_ERR_XXX</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMA_VAL_VC_I_CREATE">XML_SCHEMA_VAL_VC_I_CREATE</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchema">xmlSchema</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaDump">xmlSchemaDump</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFree">xmlSchemaFree</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFreeParserCtxt">xmlSchemaFreeParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFreeValidCtxt">xmlSchemaFreeValidCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaIsValid">xmlSchemaIsValid</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaParserCtxt">xmlSchemaParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlugStruct">xmlSchemaSAXPlugStruct</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserStructuredErrors">xmlSchemaSetParserStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxt">xmlSchemaValidCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetOptions">xmlSchemaValidCtxtGetOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetParserCtxt">xmlSchemaValidCtxtGetParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidError">xmlSchemaValidError</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidOption">xmlSchemaValidOption</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetFilename">xmlSchemaValidateSetFilename</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a><br />
+</p><h2><a name="xmlschemastypes" id="xmlschemastypes">Module xmlschemastypes</a>:</h2><p><a href="html/libxml-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_COLLAPSE">XML_SCHEMA_WHITESPACE_COLLAPSE</a><br />
+<a href="html/libxml-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_PRESERVE">XML_SCHEMA_WHITESPACE_PRESERVE</a><br />
+<a href="html/libxml-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_REPLACE">XML_SCHEMA_WHITESPACE_REPLACE</a><br />
+<a href="html/libxml-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_UNKNOWN">XML_SCHEMA_WHITESPACE_UNKNOWN</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCleanupTypes">xmlSchemaCleanupTypes</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValues">xmlSchemaCompareValues</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValuesWhtsp">xmlSchemaCompareValuesWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeValue">xmlSchemaFreeValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaInitTypes">xmlSchemaInitTypes</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewFacet">xmlSchemaNewFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueAppend">xmlSchemaValueAppend</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsBoolean">xmlSchemaValueGetAsBoolean</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsString">xmlSchemaValueGetAsString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a><br />
+</p><h2><a name="xmlstring" id="xmlstring">Module xmlstring</a>:</h2><p><a href="html/libxml-xmlstring.html#BAD_CAST">BAD_CAST</a><br />
+<a href="html/libxml-xmlstring.html#xmlChar">xmlChar</a><br />
+<a href="html/libxml-xmlstring.html#xmlCharStrdup">xmlCharStrdup</a><br />
+<a href="html/libxml-xmlstring.html#xmlCharStrndup">xmlCharStrndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcmp">xmlStrcmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrlen">xmlStrlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncmp">xmlStrncmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrndup">xmlStrndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Charcmp">xmlUTF8Charcmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Size">xmlUTF8Size</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strndup">xmlUTF8Strndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+</p><h2><a name="xmlunicode" id="xmlunicode">Module xmlunicode</a>:</h2><p><a href="html/libxml-xmlunicode.html#xmlUCSIsAegeanNumbers">xmlUCSIsAegeanNumbers</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsAlphabeticPresentationForms">xmlUCSIsAlphabeticPresentationForms</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsArabic">xmlUCSIsArabic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsArabicPresentationFormsA">xmlUCSIsArabicPresentationFormsA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsArabicPresentationFormsB">xmlUCSIsArabicPresentationFormsB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsArmenian">xmlUCSIsArmenian</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsArrows">xmlUCSIsArrows</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBasicLatin">xmlUCSIsBasicLatin</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBengali">xmlUCSIsBengali</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBlock">xmlUCSIsBlock</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBlockElements">xmlUCSIsBlockElements</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofo">xmlUCSIsBopomofo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofoExtended">xmlUCSIsBopomofoExtended</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBoxDrawing">xmlUCSIsBoxDrawing</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBraillePatterns">xmlUCSIsBraillePatterns</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBuhid">xmlUCSIsBuhid</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsByzantineMusicalSymbols">xmlUCSIsByzantineMusicalSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibility">xmlUCSIsCJKCompatibility</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibilityForms">xmlUCSIsCJKCompatibilityForms</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibilityIdeographs">xmlUCSIsCJKCompatibilityIdeographs</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibilityIdeographsSupplement">xmlUCSIsCJKCompatibilityIdeographsSupplement</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKRadicalsSupplement">xmlUCSIsCJKRadicalsSupplement</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKSymbolsandPunctuation">xmlUCSIsCJKSymbolsandPunctuation</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographs">xmlUCSIsCJKUnifiedIdeographs</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographsExtensionA">xmlUCSIsCJKUnifiedIdeographsExtensionA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographsExtensionB">xmlUCSIsCJKUnifiedIdeographsExtensionB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCat">xmlUCSIsCat</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatC">xmlUCSIsCatC</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatCc">xmlUCSIsCatCc</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatCf">xmlUCSIsCatCf</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatCo">xmlUCSIsCatCo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatCs">xmlUCSIsCatCs</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatL">xmlUCSIsCatL</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatLl">xmlUCSIsCatLl</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatLm">xmlUCSIsCatLm</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatLo">xmlUCSIsCatLo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatLt">xmlUCSIsCatLt</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatLu">xmlUCSIsCatLu</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatM">xmlUCSIsCatM</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatMc">xmlUCSIsCatMc</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatMe">xmlUCSIsCatMe</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatMn">xmlUCSIsCatMn</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatN">xmlUCSIsCatN</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatNd">xmlUCSIsCatNd</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatNl">xmlUCSIsCatNl</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatNo">xmlUCSIsCatNo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatP">xmlUCSIsCatP</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPc">xmlUCSIsCatPc</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPd">xmlUCSIsCatPd</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPe">xmlUCSIsCatPe</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPf">xmlUCSIsCatPf</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPi">xmlUCSIsCatPi</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPo">xmlUCSIsCatPo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPs">xmlUCSIsCatPs</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatS">xmlUCSIsCatS</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatSc">xmlUCSIsCatSc</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatSk">xmlUCSIsCatSk</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatSm">xmlUCSIsCatSm</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatSo">xmlUCSIsCatSo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatZ">xmlUCSIsCatZ</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatZl">xmlUCSIsCatZl</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatZp">xmlUCSIsCatZp</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatZs">xmlUCSIsCatZs</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCherokee">xmlUCSIsCherokee</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningDiacriticalMarks">xmlUCSIsCombiningDiacriticalMarks</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningDiacriticalMarksforSymbols">xmlUCSIsCombiningDiacriticalMarksforSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningHalfMarks">xmlUCSIsCombiningHalfMarks</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningMarksforSymbols">xmlUCSIsCombiningMarksforSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsControlPictures">xmlUCSIsControlPictures</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCurrencySymbols">xmlUCSIsCurrencySymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCypriotSyllabary">xmlUCSIsCypriotSyllabary</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCyrillic">xmlUCSIsCyrillic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCyrillicSupplement">xmlUCSIsCyrillicSupplement</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsDeseret">xmlUCSIsDeseret</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsDevanagari">xmlUCSIsDevanagari</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsDingbats">xmlUCSIsDingbats</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsEnclosedAlphanumerics">xmlUCSIsEnclosedAlphanumerics</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsEnclosedCJKLettersandMonths">xmlUCSIsEnclosedCJKLettersandMonths</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsEthiopic">xmlUCSIsEthiopic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGeneralPunctuation">xmlUCSIsGeneralPunctuation</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGeometricShapes">xmlUCSIsGeometricShapes</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGeorgian">xmlUCSIsGeorgian</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGothic">xmlUCSIsGothic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGreek">xmlUCSIsGreek</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGreekExtended">xmlUCSIsGreekExtended</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGreekandCoptic">xmlUCSIsGreekandCoptic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGujarati">xmlUCSIsGujarati</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGurmukhi">xmlUCSIsGurmukhi</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHalfwidthandFullwidthForms">xmlUCSIsHalfwidthandFullwidthForms</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHangulCompatibilityJamo">xmlUCSIsHangulCompatibilityJamo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHangulJamo">xmlUCSIsHangulJamo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHangulSyllables">xmlUCSIsHangulSyllables</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHanunoo">xmlUCSIsHanunoo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHebrew">xmlUCSIsHebrew</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHighPrivateUseSurrogates">xmlUCSIsHighPrivateUseSurrogates</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHighSurrogates">xmlUCSIsHighSurrogates</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHiragana">xmlUCSIsHiragana</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsIPAExtensions">xmlUCSIsIPAExtensions</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsIdeographicDescriptionCharacters">xmlUCSIsIdeographicDescriptionCharacters</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKanbun">xmlUCSIsKanbun</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKangxiRadicals">xmlUCSIsKangxiRadicals</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKannada">xmlUCSIsKannada</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKatakana">xmlUCSIsKatakana</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKatakanaPhoneticExtensions">xmlUCSIsKatakanaPhoneticExtensions</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKhmer">xmlUCSIsKhmer</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKhmerSymbols">xmlUCSIsKhmerSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLao">xmlUCSIsLao</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLatin1Supplement">xmlUCSIsLatin1Supplement</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLatinExtendedA">xmlUCSIsLatinExtendedA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLatinExtendedAdditional">xmlUCSIsLatinExtendedAdditional</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLatinExtendedB">xmlUCSIsLatinExtendedB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLetterlikeSymbols">xmlUCSIsLetterlikeSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLimbu">xmlUCSIsLimbu</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLinearBIdeograms">xmlUCSIsLinearBIdeograms</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLinearBSyllabary">xmlUCSIsLinearBSyllabary</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLowSurrogates">xmlUCSIsLowSurrogates</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMalayalam">xmlUCSIsMalayalam</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMathematicalAlphanumericSymbols">xmlUCSIsMathematicalAlphanumericSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMathematicalOperators">xmlUCSIsMathematicalOperators</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousMathematicalSymbolsA">xmlUCSIsMiscellaneousMathematicalSymbolsA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousMathematicalSymbolsB">xmlUCSIsMiscellaneousMathematicalSymbolsB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousSymbols">xmlUCSIsMiscellaneousSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousSymbolsandArrows">xmlUCSIsMiscellaneousSymbolsandArrows</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousTechnical">xmlUCSIsMiscellaneousTechnical</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMongolian">xmlUCSIsMongolian</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMusicalSymbols">xmlUCSIsMusicalSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMyanmar">xmlUCSIsMyanmar</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsNumberForms">xmlUCSIsNumberForms</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsOgham">xmlUCSIsOgham</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsOldItalic">xmlUCSIsOldItalic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsOpticalCharacterRecognition">xmlUCSIsOpticalCharacterRecognition</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsOriya">xmlUCSIsOriya</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsOsmanya">xmlUCSIsOsmanya</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsPhoneticExtensions">xmlUCSIsPhoneticExtensions</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsPrivateUse">xmlUCSIsPrivateUse</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsPrivateUseArea">xmlUCSIsPrivateUseArea</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsRunic">xmlUCSIsRunic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsShavian">xmlUCSIsShavian</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSinhala">xmlUCSIsSinhala</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSmallFormVariants">xmlUCSIsSmallFormVariants</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSpacingModifierLetters">xmlUCSIsSpacingModifierLetters</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSpecials">xmlUCSIsSpecials</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSuperscriptsandSubscripts">xmlUCSIsSuperscriptsandSubscripts</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementalArrowsA">xmlUCSIsSupplementalArrowsA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementalArrowsB">xmlUCSIsSupplementalArrowsB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementalMathematicalOperators">xmlUCSIsSupplementalMathematicalOperators</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementaryPrivateUseAreaA">xmlUCSIsSupplementaryPrivateUseAreaA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementaryPrivateUseAreaB">xmlUCSIsSupplementaryPrivateUseAreaB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSyriac">xmlUCSIsSyriac</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTagalog">xmlUCSIsTagalog</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTagbanwa">xmlUCSIsTagbanwa</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTags">xmlUCSIsTags</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTaiLe">xmlUCSIsTaiLe</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTaiXuanJingSymbols">xmlUCSIsTaiXuanJingSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTamil">xmlUCSIsTamil</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTelugu">xmlUCSIsTelugu</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsThaana">xmlUCSIsThaana</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsThai">xmlUCSIsThai</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTibetan">xmlUCSIsTibetan</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsUgaritic">xmlUCSIsUgaritic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsUnifiedCanadianAboriginalSyllabics">xmlUCSIsUnifiedCanadianAboriginalSyllabics</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsVariationSelectors">xmlUCSIsVariationSelectors</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsVariationSelectorsSupplement">xmlUCSIsVariationSelectorsSupplement</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsYiRadicals">xmlUCSIsYiRadicals</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsYiSyllables">xmlUCSIsYiSyllables</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsYijingHexagramSymbols">xmlUCSIsYijingHexagramSymbols</a><br />
+</p><h2><a name="xmlversion" id="xmlversion">Module xmlversion</a>:</h2><p><a href="html/libxml-xmlversion.html#ATTRIBUTE_UNUSED">ATTRIBUTE_UNUSED</a><br />
+<a href="html/libxml-xmlversion.html#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ATTR_ALLOC_SIZE">LIBXML_ATTR_ALLOC_SIZE</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ATTR_FORMAT">LIBXML_ATTR_FORMAT</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_AUTOMATA_ENABLED">LIBXML_AUTOMATA_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_C14N_ENABLED">LIBXML_C14N_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_CATALOG_ENABLED">LIBXML_CATALOG_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DOTTED_VERSION">LIBXML_DOTTED_VERSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_FTP_ENABLED">LIBXML_FTP_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_HTML_ENABLED">LIBXML_HTML_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_HTTP_ENABLED">LIBXML_HTTP_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ICONV_ENABLED">LIBXML_ICONV_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ICU_ENABLED">LIBXML_ICU_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_LZMA_ENABLED">LIBXML_LZMA_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_READER_ENABLED">LIBXML_READER_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_THREAD_ALLOC_ENABLED">LIBXML_THREAD_ALLOC_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_VALID_ENABLED">LIBXML_VALID_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_VERSION">LIBXML_VERSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_VERSION_STRING">LIBXML_VERSION_STRING</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_XINCLUDE_ENABLED">LIBXML_XINCLUDE_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_XPATH_ENABLED">LIBXML_XPATH_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_XPTR_ENABLED">LIBXML_XPTR_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ZLIB_ENABLED">LIBXML_ZLIB_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#WITHOUT_TRIO">WITHOUT_TRIO</a><br />
+<a href="html/libxml-xmlversion.html#WITH_TRIO">WITH_TRIO</a><br />
+<a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+</p><h2><a name="xmlwriter" id="xmlwriter">Module xmlwriter</a>:</h2><p><a href="html/libxml-xmlwriter.html#xmlFreeTextWriter">xmlFreeTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterFilename">xmlNewTextWriterFilename</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriter">xmlTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndAttribute">xmlTextWriterEndAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndComment">xmlTextWriterEndComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndElement">xmlTextWriterEndElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndPI">xmlTextWriterEndPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterFlush">xmlTextWriterFlush</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndent">xmlTextWriterSetIndent</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndentString">xmlTextWriterSetIndentString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetQuoteChar">xmlTextWriterSetQuoteChar</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartAttribute">xmlTextWriterStartAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartAttributeNS">xmlTextWriterStartAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartCDATA">xmlTextWriterStartCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartComment">xmlTextWriterStartComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTD">xmlTextWriterStartDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDAttlist">xmlTextWriterStartDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDElement">xmlTextWriterStartDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDocument">xmlTextWriterStartDocument</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartElement">xmlTextWriterStartElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartElementNS">xmlTextWriterStartElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartPI">xmlTextWriterStartPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteAttribute">xmlTextWriterWriteAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteAttributeNS">xmlTextWriterWriteAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBase64">xmlTextWriterWriteBase64</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBinHex">xmlTextWriterWriteBinHex</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteCDATA">xmlTextWriterWriteCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteComment">xmlTextWriterWriteComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDAttlist">xmlTextWriterWriteDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteElement">xmlTextWriterWriteElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteElementNS">xmlTextWriterWriteElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatCDATA">xmlTextWriterWriteFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatComment">xmlTextWriterWriteFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDAttlist">xmlTextWriterWriteFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDElement">xmlTextWriterWriteFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElement">xmlTextWriterWriteFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElementNS">xmlTextWriterWriteFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatPI">xmlTextWriterWriteFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatRaw">xmlTextWriterWriteFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatString">xmlTextWriterWriteFormatString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWritePI">xmlTextWriterWritePI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRaw">xmlTextWriterWriteRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteString">xmlTextWriterWriteString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttribute">xmlTextWriterWriteVFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttributeNS">xmlTextWriterWriteVFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatCDATA">xmlTextWriterWriteVFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatComment">xmlTextWriterWriteVFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDAttlist">xmlTextWriterWriteVFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDElement">xmlTextWriterWriteVFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElement">xmlTextWriterWriteVFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElementNS">xmlTextWriterWriteVFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatPI">xmlTextWriterWriteVFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatString">xmlTextWriterWriteVFormatString</a><br />
+</p><h2><a name="xpath" id="xpath">Module xpath</a>:</h2><p><a href="html/libxml-xpath.html#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a><br />
+<a href="html/libxml-xpath.html#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a><br />
+<a href="html/libxml-xpath.html#XPATH_BOOLEAN">XPATH_BOOLEAN</a><br />
+<a href="html/libxml-xpath.html#XPATH_ENCODING_ERROR">XPATH_ENCODING_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_EXPRESSION_OK">XPATH_EXPRESSION_OK</a><br />
+<a href="html/libxml-xpath.html#XPATH_EXPR_ERROR">XPATH_EXPR_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_FORBID_VARIABLE_ERROR">XPATH_FORBID_VARIABLE_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_ARITY">XPATH_INVALID_ARITY</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_CHAR_ERROR">XPATH_INVALID_CHAR_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_CTXT">XPATH_INVALID_CTXT</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_CTXT_POSITION">XPATH_INVALID_CTXT_POSITION</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_CTXT_SIZE">XPATH_INVALID_CTXT_SIZE</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_OPERAND">XPATH_INVALID_OPERAND</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_PREDICATE_ERROR">XPATH_INVALID_PREDICATE_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_TYPE">XPATH_INVALID_TYPE</a><br />
+<a href="html/libxml-xpath.html#XPATH_LOCATIONSET">XPATH_LOCATIONSET</a><br />
+<a href="html/libxml-xpath.html#XPATH_MEMORY_ERROR">XPATH_MEMORY_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_NODESET">XPATH_NODESET</a><br />
+<a href="html/libxml-xpath.html#XPATH_NUMBER">XPATH_NUMBER</a><br />
+<a href="html/libxml-xpath.html#XPATH_NUMBER_ERROR">XPATH_NUMBER_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_OP_LIMIT_EXCEEDED">XPATH_OP_LIMIT_EXCEEDED</a><br />
+<a href="html/libxml-xpath.html#XPATH_POINT">XPATH_POINT</a><br />
+<a href="html/libxml-xpath.html#XPATH_RANGE">XPATH_RANGE</a><br />
+<a href="html/libxml-xpath.html#XPATH_RECURSION_LIMIT_EXCEEDED">XPATH_RECURSION_LIMIT_EXCEEDED</a><br />
+<a href="html/libxml-xpath.html#XPATH_STACK_ERROR">XPATH_STACK_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_START_LITERAL_ERROR">XPATH_START_LITERAL_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_STRING">XPATH_STRING</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNCLOSED_ERROR">XPATH_UNCLOSED_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNDEFINED">XPATH_UNDEFINED</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNDEF_PREFIX_ERROR">XPATH_UNDEF_PREFIX_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNDEF_VARIABLE_ERROR">XPATH_UNDEF_VARIABLE_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNFINISHED_LITERAL_ERROR">XPATH_UNFINISHED_LITERAL_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNKNOWN_FUNC_ERROR">XPATH_UNKNOWN_FUNC_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_USERS">XPATH_USERS</a><br />
+<a href="html/libxml-xpath.html#XPATH_VARIABLE_REF_ERROR">XPATH_VARIABLE_REF_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_XSLT_TREE">XPATH_XSLT_TREE</a><br />
+<a href="html/libxml-xpath.html#XPTR_RESOURCE_ERROR">XPTR_RESOURCE_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPTR_SUB_RESOURCE_ERROR">XPTR_SUB_RESOURCE_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPTR_SYNTAX_ERROR">XPTR_SYNTAX_ERROR</a><br />
+<a href="html/libxml-xpath.html#_xmlNodeSet">_xmlNodeSet</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathAxis">_xmlXPathAxis</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathFunct">_xmlXPathFunct</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathObject">_xmlXPathObject</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathType">_xmlXPathType</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathVariable">_xmlXPathVariable</a><br />
+<a href="html/libxml-xpath.html#xmlNodeSet">xmlNodeSet</a><br />
+<a href="html/libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxis">xmlXPathAxis</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisPtr">xmlXPathAxisPtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastBooleanToNumber">xmlXPathCastBooleanToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastBooleanToString">xmlXPathCastBooleanToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToBoolean">xmlXPathCastNodeSetToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToNumber">xmlXPathCastNodeSetToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToString">xmlXPathCastNodeSetToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeToNumber">xmlXPathCastNodeToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeToString">xmlXPathCastNodeToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNumberToBoolean">xmlXPathCastNumberToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNumberToString">xmlXPathCastNumberToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastStringToBoolean">xmlXPathCastStringToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastStringToNumber">xmlXPathCastStringToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToBoolean">xmlXPathCastToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToNumber">xmlXPathCastToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToString">xmlXPathCastToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCmpNodes">xmlXPathCmpNodes</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompExpr">xmlXPathCompExpr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompile">xmlXPathCompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompiledEvalToBoolean">xmlXPathCompiledEvalToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContext">xmlXPathContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertFunc">xmlXPathConvertFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertNumber">xmlXPathConvertNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertString">xmlXPathConvertString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathError">xmlXPathError</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalFunc">xmlXPathEvalFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeCompExpr">xmlXPathFreeCompExpr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeContext">xmlXPathFreeContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeObject">xmlXPathFreeObject</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFuncPtr">xmlXPathFuncPtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFunct">xmlXPathFunct</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br />
+<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
+<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNAN">xmlXPathNAN</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNINF">xmlXPathNINF</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetIsEmpty">xmlXPathNodeSetIsEmpty</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObject">xmlXPathObject</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObjectCopy">xmlXPathObjectCopy</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObjectType">xmlXPathObjectType</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+<a href="html/libxml-xpath.html#xmlXPathPINF">xmlXPathPINF</a><br />
+<a href="html/libxml-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathSetContextNode">xmlXPathSetContextNode</a><br />
+<a href="html/libxml-xpath.html#xmlXPathType">xmlXPathType</a><br />
+<a href="html/libxml-xpath.html#xmlXPathTypePtr">xmlXPathTypePtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariable">xmlXPathVariable</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariablePtr">xmlXPathVariablePtr</a><br />
+</p><h2><a name="xpathInternals" id="xpathInternals">Module xpathInternals</a>:</h2><p><a href="html/libxml-xpathInternals.html#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_NUMBER">CAST_TO_NUMBER</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_STRING">CAST_TO_STRING</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_ARITY">CHECK_ARITY</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_ERROR">CHECK_ERROR</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_ERROR0">CHECK_ERROR0</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_TYPE">CHECK_TYPE</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_TYPE0">CHECK_TYPE0</a><br />
+<a href="html/libxml-xpathInternals.html#XP_ERROR">XP_ERROR</a><br />
+<a href="html/libxml-xpathInternals.html#XP_ERROR0">XP_ERROR0</a><br />
+<a href="html/libxml-xpathInternals.html#valuePop">valuePop</a><br />
+<a href="html/libxml-xpathInternals.html#valuePush">valuePush</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCheckError">xmlXPathCheckError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathConcatFunction">xmlXPathConcatFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathContainsFunction">xmlXPathContainsFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCountFunction">xmlXPathCountFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEmptyNodeSet">xmlXPathEmptyNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEqualValues">xmlXPathEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathErr">xmlXPathErr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvalExpr">xmlXPathEvalExpr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFalseFunction">xmlXPathFalseFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFreeParserContext">xmlXPathFreeParserContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookupNS">xmlXPathFunctionLookupNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathGetContextNode">xmlXPathGetContextNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathGetDocument">xmlXPathGetDocument</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathGetError">xmlXPathGetError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIsNodeType">xmlXPathIsNodeType</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLastFunction">xmlXPathLastFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLocalNameFunction">xmlXPathLocalNameFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNamespaceURIFunction">xmlXPathNamespaceURIFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewBoolean">xmlXPathNewBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewCString">xmlXPathNewCString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewFloat">xmlXPathNewFloat</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSetList">xmlXPathNewNodeSetList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewParserContext">xmlXPathNewParserContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewString">xmlXPathNewString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAttribute">xmlXPathNextAttribute</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextChild">xmlXPathNextChild</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextParent">xmlXPathNextParent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetContains">xmlXPathNodeSetContains</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetSort">xmlXPathNodeSetSort</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotFunction">xmlXPathNotFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNsLookup">xmlXPathNsLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNumberFunction">xmlXPathNumberFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseName">xmlXPathParseName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopBoolean">xmlXPathPopBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopExternal">xmlXPathPopExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNumber">xmlXPathPopNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopString">xmlXPathPopString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPositionFunction">xmlXPathPositionFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterAllFunctions">xmlXPathRegisterAllFunctions</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFunc">xmlXPathRegisterFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncLookup">xmlXPathRegisterFuncLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncNS">xmlXPathRegisterFuncNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterNs">xmlXPathRegisterNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariable">xmlXPathRegisterVariable</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableLookup">xmlXPathRegisterVariableLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredFuncsCleanup">xmlXPathRegisteredFuncsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredNsCleanup">xmlXPathRegisteredNsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredVariablesCleanup">xmlXPathRegisteredVariablesCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnBoolean">xmlXPathReturnBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnEmptyNodeSet">xmlXPathReturnEmptyNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnEmptyString">xmlXPathReturnEmptyString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnExternal">xmlXPathReturnExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnFalse">xmlXPathReturnFalse</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnNodeSet">xmlXPathReturnNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnNumber">xmlXPathReturnNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnString">xmlXPathReturnString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnTrue">xmlXPathReturnTrue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoot">xmlXPathRoot</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSetArityError">xmlXPathSetArityError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSetError">xmlXPathSetError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSetTypeError">xmlXPathSetTypeError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStackIsExternal">xmlXPathStackIsExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStackIsNodeSet">xmlXPathStackIsNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStartsWithFunction">xmlXPathStartsWithFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSumFunction">xmlXPathSumFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrueFunction">xmlXPathTrueFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookup">xmlXPathVariableLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookupNS">xmlXPathVariableLookupNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapCString">xmlXPathWrapCString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapExternal">xmlXPathWrapExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapNodeSet">xmlXPathWrapNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapString">xmlXPathWrapString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPatherror">xmlXPatherror</a><br />
+</p><h2><a name="xpointer" id="xpointer">Module xpointer</a>:</h2><p><a href="html/libxml-xpointer.html#_xmlLocationSet">_xmlLocationSet</a><br />
+<a href="html/libxml-xpointer.html#xmlLocationSet">xmlLocationSet</a><br />
+<a href="html/libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetCreate">xmlXPtrLocationSetCreate</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodeSet">xmlXPtrNewLocationSetNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodes">xmlXPtrNewRangeNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrWrapLocationSet">xmlXPtrWrapLocationSet</a><br />
+</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>
diff --git a/libxml2-2.9.10/doc/APIfunctions.html b/libxml2-2.9.10/doc/APIfunctions.html
new file mode 100644
index 0000000..14995a2
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIfunctions.html
@@ -0,0 +1,2348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>List of function manipulating types in libxml2</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>List of function manipulating types in libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2>Type ...:</h2><p><a href="html/libxml-parser.html#errorSAXFunc">errorSAXFunc</a><br />
+<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-parser.html#warningSAXFunc">warningSAXFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserError">xmlParserError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatCDATA">xmlTextWriterWriteFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatComment">xmlTextWriterWriteFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDAttlist">xmlTextWriterWriteFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDElement">xmlTextWriterWriteFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElement">xmlTextWriterWriteFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElementNS">xmlTextWriterWriteFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatPI">xmlTextWriterWriteFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatRaw">xmlTextWriterWriteFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatString">xmlTextWriterWriteFormatString</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+</p><h2>Type FILE *:</h2><p><a href="html/libxml-HTMLtree.html#htmlDocDump">htmlDocDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogDump">xmlACatalogDump</a><br />
+<a href="html/libxml-tree.html#xmlBufferDump">xmlBufferDump</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogDump">xmlCatalogDump</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugCheckDocument">xmlDebugCheckDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttr">xmlDebugDumpAttr</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDTD">xmlDebugDumpDTD</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocument">xmlDebugDumpDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpEntities">xmlDebugDumpEntities</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNode">xmlDebugDumpNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
+<a href="html/libxml-tree.html#xmlDocDump">xmlDocDump</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-tree.html#xmlElemDump">xmlElemDump</a><br />
+<a href="html/libxml-debugXML.html#xmlLsOneNode">xmlLsOneNode</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a><br />
+<a href="html/libxml-uri.html#xmlPrintURI">xmlPrintURI</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpPrint">xmlRegexpPrint</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGDump">xmlRelaxNGDump</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGDumpTree">xmlRelaxNGDumpTree</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaDump">xmlSchemaDump</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+</p><h2>Type char **:</h2><p><a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+</p><h2>Type char const *:</h2><p><a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a><br />
+</p><h2>Type const char **:</h2><p><a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+</p><h2>Type const htmlElemDesc *:</h2><p><a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+</p><h2>Type const htmlNodePtr:</h2><p><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+</p><h2>Type const unsigned char *:</h2><p><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+</p><h2>Type const void *:</h2><p><a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
+<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
+</p><h2>Type const xlinkHRef:</h2><p><a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+</p><h2>Type const xlinkHRef *:</h2><p><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+</p><h2>Type const xlinkRole:</h2><p><a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+</p><h2>Type const xlinkRole *:</h2><p><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+</p><h2>Type const xlinkTitle:</h2><p><a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+</p><h2>Type const xlinkTitle *:</h2><p><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+</p><h2>Type const xmlBuf *:</h2><p><a href="html/libxml-tree.html#xmlBufContent">xmlBufContent</a><br />
+</p><h2>Type const xmlBufPtr:</h2><p><a href="html/libxml-tree.html#xmlBufUse">xmlBufUse</a><br />
+</p><h2>Type const xmlBuffer *:</h2><p><a href="html/libxml-tree.html#xmlBufferContent">xmlBufferContent</a><br />
+<a href="html/libxml-tree.html#xmlBufferLength">xmlBufferLength</a><br />
+</p><h2>Type const xmlChRangeGroup *:</h2><p><a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+</p><h2>Type const xmlChar *:</h2><p><a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-SAX.html#attributeDecl">attributeDecl</a><br />
+<a href="html/libxml-parser.html#attributeDeclSAXFunc">attributeDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+<a href="html/libxml-SAX.html#cdataBlock">cdataBlock</a><br />
+<a href="html/libxml-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a><br />
+<a href="html/libxml-SAX.html#characters">characters</a><br />
+<a href="html/libxml-parser.html#charactersSAXFunc">charactersSAXFunc</a><br />
+<a href="html/libxml-SAX.html#comment">comment</a><br />
+<a href="html/libxml-parser.html#commentSAXFunc">commentSAXFunc</a><br />
+<a href="html/libxml-SAX.html#elementDecl">elementDecl</a><br />
+<a href="html/libxml-parser.html#elementDeclSAXFunc">elementDeclSAXFunc</a><br />
+<a href="html/libxml-SAX.html#endElement">endElement</a><br />
+<a href="html/libxml-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#endElementSAXFunc">endElementSAXFunc</a><br />
+<a href="html/libxml-SAX.html#entityDecl">entityDecl</a><br />
+<a href="html/libxml-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a><br />
+<a href="html/libxml-SAX.html#externalSubset">externalSubset</a><br />
+<a href="html/libxml-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a><br />
+<a href="html/libxml-SAX.html#getEntity">getEntity</a><br />
+<a href="html/libxml-parser.html#getEntitySAXFunc">getEntitySAXFunc</a><br />
+<a href="html/libxml-SAX.html#getParameterEntity">getParameterEntity</a><br />
+<a href="html/libxml-parser.html#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a><br />
+<a href="html/libxml-SAX.html#globalNamespace">globalNamespace</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLtree.html#htmlIsBooleanAttr">htmlIsBooleanAttr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsScriptAttribute">htmlIsScriptAttribute</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDoc">htmlNewDoc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+<a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
+<a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+<a href="html/libxml-SAX.html#internalSubset">internalSubset</a><br />
+<a href="html/libxml-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a><br />
+<a href="html/libxml-parserInternals.html#namePush">namePush</a><br />
+<a href="html/libxml-SAX.html#namespaceDecl">namespaceDecl</a><br />
+<a href="html/libxml-SAX.html#notationDecl">notationDecl</a><br />
+<a href="html/libxml-parser.html#notationDeclSAXFunc">notationDeclSAXFunc</a><br />
+<a href="html/libxml-SAX.html#processingInstruction">processingInstruction</a><br />
+<a href="html/libxml-parser.html#processingInstructionSAXFunc">processingInstructionSAXFunc</a><br />
+<a href="html/libxml-SAX.html#reference">reference</a><br />
+<a href="html/libxml-parser.html#referenceSAXFunc">referenceSAXFunc</a><br />
+<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-SAX.html#setNamespace">setNamespace</a><br />
+<a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+<a href="html/libxml-SAX.html#unparsedEntityDecl">unparsedEntityDecl</a><br />
+<a href="html/libxml-parser.html#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolve">xmlACatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolvePublic">xmlACatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveSystem">xmlACatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveURI">xmlACatalogResolveURI</a><br />
+<a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-entities.html#xmlAddDocEntity">xmlAddDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlAddDtdEntity">xmlAddDtdEntity</a><br />
+<a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
+<a href="html/libxml-valid.html#xmlAddNotationDecl">xmlAddNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+<a href="html/libxml-tree.html#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetPublic">xmlCatalogGetPublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetSystem">xmlCatalogGetSystem</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolve">xmlCatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolvePublic">xmlCatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveSystem">xmlCatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveURI">xmlCatalogResolveURI</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-parser.html#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a><br />
+<a href="html/libxml-tree.html#xmlCreateIntSubset">xmlCreateIntSubset</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
+<a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
+<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
+<a href="html/libxml-dict.html#xmlDictOwns">xmlDictOwns</a><br />
+<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
+<a href="html/libxml-entities.html#xmlGetDtdEntity">xmlGetDtdEntity</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetID">xmlGetID</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-entities.html#xmlGetParameterEntity">xmlGetParameterEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetPredefinedEntity">xmlGetPredefinedEntity</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-valid.html#xmlGetRefs">xmlGetRefs</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
+<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup">xmlHashQLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup2">xmlHashQLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup3">xmlHashQLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
+<a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-tree.html#xmlIsXHTML">xmlIsXHTML</a><br />
+<a href="html/libxml-tree.html#xmlNewCDataBlock">xmlNewCDataBlock</a><br />
+<a href="html/libxml-tree.html#xmlNewCharRef">xmlNewCharRef</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewComment">xmlNewComment</a><br />
+<a href="html/libxml-tree.html#xmlNewDoc">xmlNewDoc</a><br />
+<a href="html/libxml-tree.html#xmlNewDocComment">xmlNewDocComment</a><br />
+<a href="html/libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewDocPI">xmlNewDocPI</a><br />
+<a href="html/libxml-tree.html#xmlNewDocProp">xmlNewDocProp</a><br />
+<a href="html/libxml-tree.html#xmlNewDocRawNode">xmlNewDocRawNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocText">xmlNewDocText</a><br />
+<a href="html/libxml-tree.html#xmlNewDocTextLen">xmlNewDocTextLen</a><br />
+<a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</a><br />
+<a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-tree.html#xmlNewNode">xmlNewNode</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+<a href="html/libxml-tree.html#xmlNewProp">xmlNewProp</a><br />
+<a href="html/libxml-tree.html#xmlNewReference">xmlNewReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewStringInputStream">xmlNewStringInputStream</a><br />
+<a href="html/libxml-tree.html#xmlNewText">xmlNewText</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlNewTextLen">xmlNewTextLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetBase">xmlNodeSetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetLang">xmlNodeSetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetName">xmlNodeSetName</a><br />
+<a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseDTD">xmlParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlParseDoc">xmlParseDoc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-parser.html#xmlReadDoc">xmlReadDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2AttributeDecl">xmlSAX2AttributeDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2CDataBlock">xmlSAX2CDataBlock</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Characters">xmlSAX2Characters</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Comment">xmlSAX2Comment</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ElementDecl">xmlSAX2ElementDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElement">xmlSAX2EndElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EntityDecl">xmlSAX2EntityDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ExternalSubset">xmlSAX2ExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetEntity">xmlSAX2GetEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetParameterEntity">xmlSAX2GetParameterEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InternalSubset">xmlSAX2InternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2NotationDecl">xmlSAX2NotationDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ProcessingInstruction">xmlSAX2ProcessingInstruction</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Reference">xmlSAX2Reference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2UnparsedEntityDecl">xmlSAX2UnparsedEntityDecl</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+<a href="html/libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcmp">xmlStrcmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrlen">xmlStrlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncmp">xmlStrncmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrndup">xmlStrndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+<a href="html/libxml-tree.html#xmlTextConcat">xmlTextConcat</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttribute">xmlTextReaderMoveToAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNs">xmlTextReaderMoveToAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndentString">xmlTextWriterSetIndentString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartAttribute">xmlTextWriterStartAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartAttributeNS">xmlTextWriterStartAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTD">xmlTextWriterStartDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDAttlist">xmlTextWriterStartDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDElement">xmlTextWriterStartDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartElement">xmlTextWriterStartElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartElementNS">xmlTextWriterStartElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartPI">xmlTextWriterStartPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteAttribute">xmlTextWriterWriteAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteAttributeNS">xmlTextWriterWriteAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteCDATA">xmlTextWriterWriteCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteComment">xmlTextWriterWriteComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDAttlist">xmlTextWriterWriteDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteElement">xmlTextWriterWriteElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteElementNS">xmlTextWriterWriteElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDAttlist">xmlTextWriterWriteFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDElement">xmlTextWriterWriteFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElement">xmlTextWriterWriteFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElementNS">xmlTextWriterWriteFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatPI">xmlTextWriterWriteFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWritePI">xmlTextWriterWritePI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRaw">xmlTextWriterWriteRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteString">xmlTextWriterWriteString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttribute">xmlTextWriterWriteVFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttributeNS">xmlTextWriterWriteVFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDAttlist">xmlTextWriterWriteVFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDElement">xmlTextWriterWriteVFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElement">xmlTextWriterWriteVFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElementNS">xmlTextWriterWriteVFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatPI">xmlTextWriterWriteVFormatPI</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Charcmp">xmlUTF8Charcmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Size">xmlUTF8Size</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strndup">xmlUTF8Strndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+<a href="html/libxml-tree.html#xmlUnsetNsProp">xmlUnsetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlUnsetProp">xmlUnsetProp</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
+<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
+<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
+<a href="html/libxml-valid.html#xmlValidateNameValue">xmlValidateNameValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNamesValue">xmlValidateNamesValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokenValue">xmlValidateNmtokenValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokensValue">xmlValidateNmtokensValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationUse">xmlValidateNotationUse</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushCData">xmlValidatePushCData</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastStringToBoolean">xmlXPathCastStringToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastStringToNumber">xmlXPathCastStringToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompile">xmlXPathCompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookupNS">xmlXPathFunctionLookupNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIsNodeType">xmlXPathIsNodeType</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewParserContext">xmlXPathNewParserContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewString">xmlXPathNewString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNsLookup">xmlXPathNsLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFunc">xmlXPathRegisterFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncNS">xmlXPathRegisterFuncNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterNs">xmlXPathRegisterNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariable">xmlXPathRegisterVariable</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookup">xmlXPathVariableLookup</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookupNS">xmlXPathVariableLookupNS</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+</p><h2>Type const xmlChar **:</h2><p><a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+<a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</p><h2>Type const xmlDoc *:</h2><p><a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
+<a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
+<a href="html/libxml-tree.html#xmlGetIntSubset">xmlGetIntSubset</a><br />
+<a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
+<a href="html/libxml-tree.html#xmlNewDocText">xmlNewDocText</a><br />
+<a href="html/libxml-tree.html#xmlNewReference">xmlNewReference</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+</p><h2>Type const xmlListPtr:</h2><p><a href="html/libxml-list.html#xmlListCopy">xmlListCopy</a><br />
+<a href="html/libxml-list.html#xmlListDup">xmlListDup</a><br />
+</p><h2>Type const xmlNode *:</h2><p><a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlGetLastChild">xmlGetLastChild</a><br />
+<a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNodePath">xmlGetNodePath</a><br />
+<a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-tree.html#xmlNodeIsText">xmlNodeIsText</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+</p><h2>Type const xmlNodePtr:</h2><p><a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+</p><h2>Type const xmlParserCtxtPtr:</h2><p><a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
+</p><h2>Type const xmlParserNodeInfoPtr:</h2><p><a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
+</p><h2>Type const xmlParserNodeInfoSeqPtr:</h2><p><a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+</p><h2>Type docbParserCtxtPtr:</h2><p><a href="html/libxml-DOCBparser.html#docbFreeParserCtxt">docbFreeParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseChunk">docbParseChunk</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseDocument">docbParseDocument</a><br />
+</p><h2>Type docbSAXHandlerPtr:</h2><p><a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+</p><h2>Type double:</h2><p><a href="html/libxml-xpath.html#xmlXPathCastNumberToBoolean">xmlXPathCastNumberToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNumberToString">xmlXPathCastNumberToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
+<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewFloat">xmlXPathNewFloat</a><br />
+</p><h2>Type ftpDataCallback:</h2><p><a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+</p><h2>Type ftpListCallback:</h2><p><a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+</p><h2>Type htmlDocPtr:</h2><p><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLtree.html#htmlGetMetaEncoding">htmlGetMetaEncoding</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+</p><h2>Type htmlNodePtr:</h2><p><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+</p><h2>Type htmlParserCtxtPtr:</h2><p><a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFd">htmlCtxtReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadMemory">htmlCtxtReadMemory</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReset">htmlCtxtReset</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtUseOptions">htmlCtxtUseOptions</a><br />
+<a href="html/libxml-HTMLparser.html#htmlFreeParserCtxt">htmlFreeParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseCharRef">htmlParseCharRef</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseChunk">htmlParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDocument">htmlParseDocument</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+</p><h2>Type htmlSAXHandlerPtr:</h2><p><a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+</p><h2>Type int *:</h2><p><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemory">htmlDocDumpMemory</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
+<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+</p><h2>Type long:</h2><p><a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+</p><h2>Type size_t:</h2><p><a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateSize">xmlBufferCreateSize</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+</p><h2>Type unsigned char *:</h2><p><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+</p><h2>Type unsigned int:</h2><p><a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-tree.html#xmlBufferGrow">xmlBufferGrow</a><br />
+<a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
+<a href="html/libxml-tree.html#xmlBufferShrink">xmlBufferShrink</a><br />
+<a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar">xmlIsBaseChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank">xmlIsBlank</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar">xmlIsChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombining">xmlIsCombining</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit">xmlIsDigit</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender">xmlIsExtender</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographic">xmlIsIdeographic</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar">xmlIsPubidChar</a><br />
+</p><h2>Type unsigned long:</h2><p><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+<a href="html/libxml-threads.html#xmlDllMain">xmlDllMain</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+</p><h2>Type unsigned long *:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+</p><h2>Type va_list:</h2><p><a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttribute">xmlTextWriterWriteVFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttributeNS">xmlTextWriterWriteVFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatCDATA">xmlTextWriterWriteVFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatComment">xmlTextWriterWriteVFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDAttlist">xmlTextWriterWriteVFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDElement">xmlTextWriterWriteVFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElement">xmlTextWriterWriteVFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElementNS">xmlTextWriterWriteVFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatPI">xmlTextWriterWriteVFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatString">xmlTextWriterWriteVFormatString</a><br />
+</p><h2>Type void *:</h2><p><a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-SAX.html#attributeDecl">attributeDecl</a><br />
+<a href="html/libxml-parser.html#attributeDeclSAXFunc">attributeDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+<a href="html/libxml-SAX.html#cdataBlock">cdataBlock</a><br />
+<a href="html/libxml-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a><br />
+<a href="html/libxml-SAX.html#characters">characters</a><br />
+<a href="html/libxml-parser.html#charactersSAXFunc">charactersSAXFunc</a><br />
+<a href="html/libxml-SAX.html#checkNamespace">checkNamespace</a><br />
+<a href="html/libxml-SAX.html#comment">comment</a><br />
+<a href="html/libxml-parser.html#commentSAXFunc">commentSAXFunc</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+<a href="html/libxml-SAX.html#elementDecl">elementDecl</a><br />
+<a href="html/libxml-parser.html#elementDeclSAXFunc">elementDeclSAXFunc</a><br />
+<a href="html/libxml-SAX.html#endDocument">endDocument</a><br />
+<a href="html/libxml-parser.html#endDocumentSAXFunc">endDocumentSAXFunc</a><br />
+<a href="html/libxml-SAX.html#endElement">endElement</a><br />
+<a href="html/libxml-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#endElementSAXFunc">endElementSAXFunc</a><br />
+<a href="html/libxml-SAX.html#entityDecl">entityDecl</a><br />
+<a href="html/libxml-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#errorSAXFunc">errorSAXFunc</a><br />
+<a href="html/libxml-SAX.html#externalSubset">externalSubset</a><br />
+<a href="html/libxml-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a><br />
+<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a><br />
+<a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+<a href="html/libxml-SAX.html#getColumnNumber">getColumnNumber</a><br />
+<a href="html/libxml-SAX.html#getEntity">getEntity</a><br />
+<a href="html/libxml-parser.html#getEntitySAXFunc">getEntitySAXFunc</a><br />
+<a href="html/libxml-SAX.html#getLineNumber">getLineNumber</a><br />
+<a href="html/libxml-SAX.html#getNamespace">getNamespace</a><br />
+<a href="html/libxml-SAX.html#getParameterEntity">getParameterEntity</a><br />
+<a href="html/libxml-parser.html#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a><br />
+<a href="html/libxml-SAX.html#getPublicId">getPublicId</a><br />
+<a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-SAX.html#globalNamespace">globalNamespace</a><br />
+<a href="html/libxml-SAX.html#hasExternalSubset">hasExternalSubset</a><br />
+<a href="html/libxml-parser.html#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a><br />
+<a href="html/libxml-SAX.html#hasInternalSubset">hasInternalSubset</a><br />
+<a href="html/libxml-parser.html#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadIO">htmlReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+<a href="html/libxml-SAX.html#internalSubset">internalSubset</a><br />
+<a href="html/libxml-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a><br />
+<a href="html/libxml-SAX.html#isStandalone">isStandalone</a><br />
+<a href="html/libxml-parser.html#isStandaloneSAXFunc">isStandaloneSAXFunc</a><br />
+<a href="html/libxml-SAX.html#namespaceDecl">namespaceDecl</a><br />
+<a href="html/libxml-SAX.html#notationDecl">notationDecl</a><br />
+<a href="html/libxml-parser.html#notationDeclSAXFunc">notationDeclSAXFunc</a><br />
+<a href="html/libxml-SAX.html#processingInstruction">processingInstruction</a><br />
+<a href="html/libxml-parser.html#processingInstructionSAXFunc">processingInstructionSAXFunc</a><br />
+<a href="html/libxml-SAX.html#reference">reference</a><br />
+<a href="html/libxml-parser.html#referenceSAXFunc">referenceSAXFunc</a><br />
+<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+<a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-SAX.html#setNamespace">setNamespace</a><br />
+<a href="html/libxml-SAX.html#startDocument">startDocument</a><br />
+<a href="html/libxml-parser.html#startDocumentSAXFunc">startDocumentSAXFunc</a><br />
+<a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+<a href="html/libxml-SAX.html#unparsedEntityDecl">unparsedEntityDecl</a><br />
+<a href="html/libxml-parser.html#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#warningSAXFunc">warningSAXFunc</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a><br />
+<a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogFreeLocal">xmlCatalogFreeLocal</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a><br />
+<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
+<a href="html/libxml-threads.html#xmlDllMain">xmlDllMain</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileClose">xmlFileClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileRead">xmlFileRead</a><br />
+<a href="html/libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a><br />
+<a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
+<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
+<a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPClose">xmlIOFTPClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPRead">xmlIOFTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPClose">xmlIOHTTPClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPRead">xmlIOHTTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a><br />
+<a href="html/libxml-list.html#xmlListAppend">xmlListAppend</a><br />
+<a href="html/libxml-list.html#xmlListInsert">xmlListInsert</a><br />
+<a href="html/libxml-list.html#xmlListPushBack">xmlListPushBack</a><br />
+<a href="html/libxml-list.html#xmlListPushFront">xmlListPushFront</a><br />
+<a href="html/libxml-list.html#xmlListRemoveAll">xmlListRemoveAll</a><br />
+<a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
+<a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
+<a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br />
+<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
+<a href="html/libxml-list.html#xmlListSearch">xmlListSearch</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCloseConnection">xmlNanoFTPCloseConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnect">xmlNanoFTPConnect</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPFreeCtxt">xmlNanoFTPFreeCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPQuit">xmlNanoFTPQuit</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPClose">xmlNanoHTTPClose</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPEncoding">xmlNanoHTTPEncoding</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRedir">xmlNanoHTTPRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserError">xmlParserError</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+<a href="html/libxml-parser.html#xmlReadIO">xmlReadIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserStructuredErrors">xmlRelaxNGSetParserStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2AttributeDecl">xmlSAX2AttributeDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2CDataBlock">xmlSAX2CDataBlock</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Characters">xmlSAX2Characters</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Comment">xmlSAX2Comment</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ElementDecl">xmlSAX2ElementDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndDocument">xmlSAX2EndDocument</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElement">xmlSAX2EndElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EntityDecl">xmlSAX2EntityDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ExternalSubset">xmlSAX2ExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetColumnNumber">xmlSAX2GetColumnNumber</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetEntity">xmlSAX2GetEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetLineNumber">xmlSAX2GetLineNumber</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetParameterEntity">xmlSAX2GetParameterEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetPublicId">xmlSAX2GetPublicId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2HasExternalSubset">xmlSAX2HasExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2HasInternalSubset">xmlSAX2HasInternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InternalSubset">xmlSAX2InternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IsStandalone">xmlSAX2IsStandalone</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2NotationDecl">xmlSAX2NotationDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ProcessingInstruction">xmlSAX2ProcessingInstruction</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Reference">xmlSAX2Reference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartDocument">xmlSAX2StartDocument</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2UnparsedEntityDecl">xmlSAX2UnparsedEntityDecl</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserStructuredErrors">xmlSchemaSetParserStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronSetValidStructuredErrors">xmlSchematronSetValidStructuredErrors</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
+<a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSetGenericErrorFunc">xmlThrDefSetGenericErrorFunc</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSetStructuredErrorFunc">xmlThrDefSetStructuredErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncLookup">xmlXPathRegisterFuncLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableLookup">xmlXPathRegisterVariableLookup</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapExternal">xmlXPathWrapExternal</a><br />
+</p><h2>Type void **:</h2><p><a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a><br />
+</p><h2>Type xlinkActuate *:</h2><p><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+</p><h2>Type xlinkHandlerPtr:</h2><p><a href="html/libxml-xlink.html#xlinkSetDefaultHandler">xlinkSetDefaultHandler</a><br />
+</p><h2>Type xlinkNodeDetectFunc:</h2><p><a href="html/libxml-xlink.html#xlinkSetDefaultDetect">xlinkSetDefaultDetect</a><br />
+</p><h2>Type xlinkShow *:</h2><p><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+</p><h2>Type xmlAttrPtr:</h2><p><a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
+<a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+<a href="html/libxml-tree.html#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a><br />
+<a href="html/libxml-tree.html#xmlCopyProp">xmlCopyProp</a><br />
+<a href="html/libxml-tree.html#xmlCopyPropList">xmlCopyPropList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttr">xmlDebugDumpAttr</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a><br />
+<a href="html/libxml-tree.html#xmlFreeProp">xmlFreeProp</a><br />
+<a href="html/libxml-tree.html#xmlFreePropList">xmlFreePropList</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+<a href="html/libxml-valid.html#xmlRemoveID">xmlRemoveID</a><br />
+<a href="html/libxml-tree.html#xmlRemoveProp">xmlRemoveProp</a><br />
+<a href="html/libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+</p><h2>Type xmlAttributeDefault:</h2><p><a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+</p><h2>Type xmlAttributePtr:</h2><p><a href="html/libxml-valid.html#xmlDumpAttributeDecl">xmlDumpAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+</p><h2>Type xmlAttributeTablePtr:</h2><p><a href="html/libxml-valid.html#xmlCopyAttributeTable">xmlCopyAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlDumpAttributeTable">xmlDumpAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeAttributeTable">xmlFreeAttributeTable</a><br />
+</p><h2>Type xmlAttributeType:</h2><p><a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+</p><h2>Type xmlAutomataPtr:</h2><p><a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataGetInitState">xmlAutomataGetInitState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataIsDeterminist">xmlAutomataIsDeterminist</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewState">xmlAutomataNewState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataSetFinalState">xmlAutomataSetFinalState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlFreeAutomata">xmlFreeAutomata</a><br />
+</p><h2>Type xmlAutomataStatePtr:</h2><p><a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataSetFinalState">xmlAutomataSetFinalState</a><br />
+</p><h2>Type xmlBufPtr:</h2><p><a href="html/libxml-tree.html#xmlBufEnd">xmlBufEnd</a><br />
+<a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+</p><h2>Type xmlBufferAllocationScheme:</h2><p><a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+<a href="html/libxml-globals.html#xmlThrDefBufferAllocScheme">xmlThrDefBufferAllocScheme</a><br />
+</p><h2>Type xmlBufferPtr:</h2><p><a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a><br />
+<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-tree.html#xmlBufferDump">xmlBufferDump</a><br />
+<a href="html/libxml-tree.html#xmlBufferEmpty">xmlBufferEmpty</a><br />
+<a href="html/libxml-tree.html#xmlBufferFree">xmlBufferFree</a><br />
+<a href="html/libxml-tree.html#xmlBufferGrow">xmlBufferGrow</a><br />
+<a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
+<a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlBufferShrink">xmlBufferShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteChar">xmlBufferWriteChar</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-valid.html#xmlDumpAttributeDecl">xmlDumpAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpAttributeTable">xmlDumpAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlDumpElementDecl">xmlDumpElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpElementTable">xmlDumpElementTable</a><br />
+<a href="html/libxml-entities.html#xmlDumpEntitiesTable">xmlDumpEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlDumpEntityDecl">xmlDumpEntityDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpNotationDecl">xmlDumpNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpNotationTable">xmlDumpNotationTable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToBuffer">xmlSaveToBuffer</a><br />
+</p><h2>Type xmlC14NIsVisibleCallback:</h2><p><a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+</p><h2>Type xmlCatalogAllow:</h2><p><a href="html/libxml-catalog.html#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a><br />
+</p><h2>Type xmlCatalogPrefer:</h2><p><a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+</p><h2>Type xmlCatalogPtr:</h2><p><a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogDump">xmlACatalogDump</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolve">xmlACatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolvePublic">xmlACatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveSystem">xmlACatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveURI">xmlACatalogResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogIsEmpty">xmlCatalogIsEmpty</a><br />
+<a href="html/libxml-catalog.html#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlFreeCatalog">xmlFreeCatalog</a><br />
+</p><h2>Type xmlChar:</h2><p><a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetQuoteChar">xmlTextWriterSetQuoteChar</a><br />
+</p><h2>Type xmlChar *:</h2><p><a href="html/libxml-SAX.html#checkNamespace">checkNamespace</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseDoc">docbParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-SAX.html#entityDecl">entityDecl</a><br />
+<a href="html/libxml-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a><br />
+<a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlCopyChar">xmlCopyChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlCopyCharMultiByte">xmlCopyCharMultiByte</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EntityDecl">xmlSAX2EntityDecl</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapString">xmlXPathWrapString</a><br />
+</p><h2>Type xmlChar **:</h2><p><a href="html/libxml-HTMLtree.html#htmlDocDumpMemory">htmlDocDumpMemory</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+</p><h2>Type xmlCharEncoding:</h2><p><a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a><br />
+<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchEncoding">xmlSwitchEncoding</a><br />
+</p><h2>Type xmlCharEncodingHandler *:</h2><p><a href="html/libxml-encoding.html#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+</p><h2>Type xmlCharEncodingHandlerPtr:</h2><p><a href="html/libxml-xmlIO.html#xmlAllocOutputBuffer">xmlAllocOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-encoding.html#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchToEncoding">xmlSwitchToEncoding</a><br />
+</p><h2>Type xmlCharEncodingInputFunc:</h2><p><a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+</p><h2>Type xmlCharEncodingOutputFunc:</h2><p><a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetEscape">xmlSaveSetEscape</a><br />
+</p><h2>Type xmlDOMWrapCtxtPtr:</h2><p><a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapFreeCtxt">xmlDOMWrapFreeCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+</p><h2>Type xmlDeregisterNodeFunc:</h2><p><a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefDeregisterNodeDefault">xmlThrDefDeregisterNodeDefault</a><br />
+</p><h2>Type xmlDict *:</h2><p><a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+</p><h2>Type xmlDictPtr:</h2><p><a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
+<a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
+<a href="html/libxml-dict.html#xmlDictFree">xmlDictFree</a><br />
+<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
+<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
+<a href="html/libxml-dict.html#xmlDictOwns">xmlDictOwns</a><br />
+<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
+<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
+<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
+<a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
+</p><h2>Type xmlDocPtr:</h2><p><a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDump">htmlDocDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemory">htmlDocDumpMemory</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFile">htmlSaveFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileEnc">htmlSaveFileEnc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileFormat">htmlSaveFileFormat</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-entities.html#xmlAddDocEntity">xmlAddDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlAddDtdEntity">xmlAddDtdEntity</a><br />
+<a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
+<a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+<a href="html/libxml-tree.html#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a><br />
+<a href="html/libxml-tree.html#xmlCreateIntSubset">xmlCreateIntSubset</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugCheckDocument">xmlDebugCheckDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocument">xmlDebugDumpDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpEntities">xmlDebugDumpEntities</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNodeList">xmlDocCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlDocDump">xmlDocDump</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlElemDump">xmlElemDump</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a><br />
+<a href="html/libxml-valid.html#xmlFreeDocElementContent">xmlFreeDocElementContent</a><br />
+<a href="html/libxml-entities.html#xmlGetDtdEntity">xmlGetDtdEntity</a><br />
+<a href="html/libxml-valid.html#xmlGetID">xmlGetID</a><br />
+<a href="html/libxml-entities.html#xmlGetParameterEntity">xmlGetParameterEntity</a><br />
+<a href="html/libxml-valid.html#xmlGetRefs">xmlGetRefs</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+<a href="html/libxml-tree.html#xmlNewCDataBlock">xmlNewCDataBlock</a><br />
+<a href="html/libxml-tree.html#xmlNewCharRef">xmlNewCharRef</a><br />
+<a href="html/libxml-tree.html#xmlNewDocComment">xmlNewDocComment</a><br />
+<a href="html/libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a><br />
+<a href="html/libxml-tree.html#xmlNewDocFragment">xmlNewDocFragment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewDocPI">xmlNewDocPI</a><br />
+<a href="html/libxml-tree.html#xmlNewDocProp">xmlNewDocProp</a><br />
+<a href="html/libxml-tree.html#xmlNewDocRawNode">xmlNewDocRawNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocTextLen">xmlNewDocTextLen</a><br />
+<a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewWalker">xmlReaderNewWalker</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderWalker">xmlReaderWalker</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-valid.html#xmlRemoveID">xmlRemoveID</a><br />
+<a href="html/libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFile">xmlSaveFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileEnc">xmlSaveFileEnc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetListDoc">xmlSetListDoc</a><br />
+<a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateElement">xmlValidateElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationUse">xmlValidateNotationUse</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeNewContext">xmlXIncludeNewContext</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</p><h2>Type xmlDocPtr *:</h2><p><a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+</p><h2>Type xmlDtdPtr:</h2><p><a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddNotationDecl">xmlAddNotationDecl</a><br />
+<a href="html/libxml-tree.html#xmlCopyDtd">xmlCopyDtd</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDTD">xmlDebugDumpDTD</a><br />
+<a href="html/libxml-tree.html#xmlFreeDtd">xmlFreeDtd</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+</p><h2>Type xmlElementContent *:</h2><p><a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+</p><h2>Type xmlElementContentPtr:</h2><p><a href="html/libxml-SAX.html#elementDecl">elementDecl</a><br />
+<a href="html/libxml-parser.html#elementDeclSAXFunc">elementDeclSAXFunc</a><br />
+<a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementContent">xmlCopyElementContent</a><br />
+<a href="html/libxml-valid.html#xmlFreeDocElementContent">xmlFreeDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementContent">xmlFreeElementContent</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ElementDecl">xmlSAX2ElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+<a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
+</p><h2>Type xmlElementContentPtr *:</h2><p><a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+</p><h2>Type xmlElementContentType:</h2><p><a href="html/libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a><br />
+<a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
+</p><h2>Type xmlElementPtr:</h2><p><a href="html/libxml-valid.html#xmlDumpElementDecl">xmlDumpElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidBuildContentModel">xmlValidBuildContentModel</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+</p><h2>Type xmlElementTablePtr:</h2><p><a href="html/libxml-valid.html#xmlCopyElementTable">xmlCopyElementTable</a><br />
+<a href="html/libxml-valid.html#xmlDumpElementTable">xmlDumpElementTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementTable">xmlFreeElementTable</a><br />
+</p><h2>Type xmlElementTypeVal:</h2><p><a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
+</p><h2>Type xmlEntitiesTablePtr:</h2><p><a href="html/libxml-entities.html#xmlCopyEntitiesTable">xmlCopyEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlDumpEntitiesTable">xmlDumpEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlFreeEntitiesTable">xmlFreeEntitiesTable</a><br />
+</p><h2>Type xmlEntityPtr:</h2><p><a href="html/libxml-entities.html#xmlDumpEntityDecl">xmlDumpEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewEntityInputStream">xmlNewEntityInputStream</a><br />
+</p><h2>Type xmlEntityReferenceFunc:</h2><p><a href="html/libxml-parserInternals.html#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a><br />
+</p><h2>Type xmlEnumerationPtr:</h2><p><a href="html/libxml-SAX.html#attributeDecl">attributeDecl</a><br />
+<a href="html/libxml-parser.html#attributeDeclSAXFunc">attributeDeclSAXFunc</a><br />
+<a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a><br />
+<a href="html/libxml-valid.html#xmlFreeEnumeration">xmlFreeEnumeration</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2AttributeDecl">xmlSAX2AttributeDecl</a><br />
+</p><h2>Type xmlEnumerationPtr *:</h2><p><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+</p><h2>Type xmlErrorPtr:</h2><p><a href="html/libxml-xmlerror.html#xmlCopyError">xmlCopyError</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetError">xmlResetError</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+</p><h2>Type xmlExpCtxtPtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFree">xmlExpFree</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFreeCtxt">xmlExpFreeCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+</p><h2>Type xmlExpNodePtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFree">xmlExpFree</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+</p><h2>Type xmlExternalEntityLoader:</h2><p><a href="html/libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a><br />
+</p><h2>Type xmlFeature:</h2><p><a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+</p><h2>Type xmlFreeFunc:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+</p><h2>Type xmlFreeFunc *:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+</p><h2>Type xmlGenericErrorFunc:</h2><p><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSetGenericErrorFunc">xmlThrDefSetGenericErrorFunc</a><br />
+</p><h2>Type xmlGenericErrorFunc *:</h2><p><a href="html/libxml-xmlerror.html#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a><br />
+</p><h2>Type xmlGlobalStatePtr:</h2><p><a href="html/libxml-globals.html#xmlInitializeGlobalState">xmlInitializeGlobalState</a><br />
+</p><h2>Type xmlHashCopier:</h2><p><a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
+</p><h2>Type xmlHashDeallocator:</h2><p><a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+</p><h2>Type xmlHashScanner:</h2><p><a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+</p><h2>Type xmlHashScannerFull:</h2><p><a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+</p><h2>Type xmlHashTablePtr:</h2><p><a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
+<a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup">xmlHashQLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup2">xmlHashQLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup3">xmlHashQLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-hash.html#xmlHashSize">xmlHashSize</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+</p><h2>Type xmlIDTablePtr:</h2><p><a href="html/libxml-valid.html#xmlFreeIDTable">xmlFreeIDTable</a><br />
+</p><h2>Type xmlInputCloseCallback:</h2><p><a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadIO">htmlReadIO</a><br />
+<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-parser.html#xmlReadIO">xmlReadIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+</p><h2>Type xmlInputMatchCallback:</h2><p><a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+</p><h2>Type xmlInputOpenCallback:</h2><p><a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+</p><h2>Type xmlInputReadCallback:</h2><p><a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadIO">htmlReadIO</a><br />
+<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-parser.html#xmlReadIO">xmlReadIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+</p><h2>Type xmlLinkPtr:</h2><p><a href="html/libxml-list.html#xmlLinkGetData">xmlLinkGetData</a><br />
+<a href="html/libxml-list.html#xmlListDeallocator">xmlListDeallocator</a><br />
+</p><h2>Type xmlListDataCompare:</h2><p><a href="html/libxml-list.html#xmlListCreate">xmlListCreate</a><br />
+</p><h2>Type xmlListDeallocator:</h2><p><a href="html/libxml-list.html#xmlListCreate">xmlListCreate</a><br />
+</p><h2>Type xmlListPtr:</h2><p><a href="html/libxml-list.html#xmlListAppend">xmlListAppend</a><br />
+<a href="html/libxml-list.html#xmlListClear">xmlListClear</a><br />
+<a href="html/libxml-list.html#xmlListCopy">xmlListCopy</a><br />
+<a href="html/libxml-list.html#xmlListDelete">xmlListDelete</a><br />
+<a href="html/libxml-list.html#xmlListEmpty">xmlListEmpty</a><br />
+<a href="html/libxml-list.html#xmlListEnd">xmlListEnd</a><br />
+<a href="html/libxml-list.html#xmlListFront">xmlListFront</a><br />
+<a href="html/libxml-list.html#xmlListInsert">xmlListInsert</a><br />
+<a href="html/libxml-list.html#xmlListMerge">xmlListMerge</a><br />
+<a href="html/libxml-list.html#xmlListPopBack">xmlListPopBack</a><br />
+<a href="html/libxml-list.html#xmlListPopFront">xmlListPopFront</a><br />
+<a href="html/libxml-list.html#xmlListPushBack">xmlListPushBack</a><br />
+<a href="html/libxml-list.html#xmlListPushFront">xmlListPushFront</a><br />
+<a href="html/libxml-list.html#xmlListRemoveAll">xmlListRemoveAll</a><br />
+<a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
+<a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
+<a href="html/libxml-list.html#xmlListReverse">xmlListReverse</a><br />
+<a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br />
+<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
+<a href="html/libxml-list.html#xmlListSearch">xmlListSearch</a><br />
+<a href="html/libxml-list.html#xmlListSize">xmlListSize</a><br />
+<a href="html/libxml-list.html#xmlListSort">xmlListSort</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+</p><h2>Type xmlListWalker:</h2><p><a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+</p><h2>Type xmlLocationSetPtr:</h2><p><a href="html/libxml-xpointer.html#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrWrapLocationSet">xmlXPtrWrapLocationSet</a><br />
+</p><h2>Type xmlMallocFunc:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+</p><h2>Type xmlMallocFunc *:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+</p><h2>Type xmlModulePtr:</h2><p><a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+</p><h2>Type xmlMutexPtr:</h2><p><a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+<a href="html/libxml-threads.html#xmlMutexLock">xmlMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlMutexUnlock">xmlMutexUnlock</a><br />
+</p><h2>Type xmlNode *:</h2><p><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+</p><h2>Type xmlNodePtr:</h2><p><a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-parserInternals.html#nodePush">nodePush</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a><br />
+<a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+<a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddChildList">xmlAddChildList</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a><br />
+<a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlCopyProp">xmlCopyProp</a><br />
+<a href="html/libxml-tree.html#xmlCopyPropList">xmlCopyPropList</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNode">xmlDebugDumpNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNodeList">xmlDocCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlElemDump">xmlElemDump</a><br />
+<a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
+<a href="html/libxml-tree.html#xmlFreeNodeList">xmlFreeNodeList</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-debugXML.html#xmlLsCountNode">xmlLsCountNode</a><br />
+<a href="html/libxml-debugXML.html#xmlLsOneNode">xmlLsOneNode</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewProp">xmlNewProp</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetBase">xmlNodeSetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetLang">xmlNodeSetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetName">xmlNodeSetName</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+<a href="html/libxml-tree.html#xmlSetListDoc">xmlSetListDoc</a><br />
+<a href="html/libxml-tree.html#xmlSetNs">xmlSetNs</a><br />
+<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+<a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />
+<a href="html/libxml-debugXML.html#xmlShellBase">xmlShellBase</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDir">xmlShellDir</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+<a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+<a href="html/libxml-debugXML.html#xmlShellLoad">xmlShellLoad</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintNode">xmlShellPrintNode</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellSave">xmlShellSave</a><br />
+<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+<a href="html/libxml-tree.html#xmlTextConcat">xmlTextConcat</a><br />
+<a href="html/libxml-tree.html#xmlTextMerge">xmlTextMerge</a><br />
+<a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+<a href="html/libxml-tree.html#xmlUnsetNsProp">xmlUnsetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlUnsetProp">xmlUnsetProp</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateElement">xmlValidateElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeToNumber">xmlXPathCastNodeToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeToString">xmlXPathCastNodeToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCmpNodes">xmlXPathCmpNodes</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAttribute">xmlXPathNextAttribute</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextChild">xmlXPathNextChild</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextParent">xmlXPathNextParent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetContains">xmlXPathNodeSetContains</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpath.html#xmlXPathSetContextNode">xmlXPathSetContextNode</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodes">xmlXPtrNewRangeNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a><br />
+</p><h2>Type xmlNodePtr *:</h2><p><a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+</p><h2>Type xmlNodeSetPtr:</h2><p><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToBoolean">xmlXPathCastNodeSetToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToNumber">xmlXPathCastNodeSetToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToString">xmlXPathCastNodeSetToString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSetList">xmlXPathNewNodeSetList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetContains">xmlXPathNodeSetContains</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetSort">xmlXPathNodeSetSort</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapNodeSet">xmlXPathWrapNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodeSet">xmlXPtrNewLocationSetNodeSet</a><br />
+</p><h2>Type xmlNotationPtr:</h2><p><a href="html/libxml-valid.html#xmlDumpNotationDecl">xmlDumpNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+</p><h2>Type xmlNotationTablePtr:</h2><p><a href="html/libxml-valid.html#xmlCopyNotationTable">xmlCopyNotationTable</a><br />
+<a href="html/libxml-valid.html#xmlDumpNotationTable">xmlDumpNotationTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeNotationTable">xmlFreeNotationTable</a><br />
+</p><h2>Type xmlNsPtr:</h2><p><a href="html/libxml-tree.html#xmlCopyNamespace">xmlCopyNamespace</a><br />
+<a href="html/libxml-tree.html#xmlCopyNamespaceList">xmlCopyNamespaceList</a><br />
+<a href="html/libxml-tree.html#xmlFreeNs">xmlFreeNs</a><br />
+<a href="html/libxml-tree.html#xmlFreeNsList">xmlFreeNsList</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewDocRawNode">xmlNewDocRawNode</a><br />
+<a href="html/libxml-tree.html#xmlNewNode">xmlNewNode</a><br />
+<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlSetNs">xmlSetNs</a><br />
+<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlUnsetNsProp">xmlUnsetNsProp</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+</p><h2>Type xmlOutputBufferCreateFilenameFunc:</h2><p><a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefOutputBufferCreateFilenameDefault">xmlThrDefOutputBufferCreateFilenameDefault</a><br />
+</p><h2>Type xmlOutputBufferPtr:</h2><p><a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferClose">xmlOutputBufferClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferFlush">xmlOutputBufferFlush</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+</p><h2>Type xmlOutputCloseCallback:</h2><p><a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+</p><h2>Type xmlOutputMatchCallback:</h2><p><a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+</p><h2>Type xmlOutputOpenCallback:</h2><p><a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+</p><h2>Type xmlOutputWriteCallback:</h2><p><a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+</p><h2>Type xmlParserCtxtPtr:</h2><p><a href="html/libxml-parserInternals.html#inputPop">inputPop</a><br />
+<a href="html/libxml-parserInternals.html#inputPush">inputPush</a><br />
+<a href="html/libxml-parserInternals.html#namePop">namePop</a><br />
+<a href="html/libxml-parserInternals.html#namePush">namePush</a><br />
+<a href="html/libxml-parserInternals.html#nodePop">nodePop</a><br />
+<a href="html/libxml-parserInternals.html#nodePush">nodePush</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadMemory">xmlCtxtReadMemory</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReset">xmlCtxtReset</a><br />
+<a href="html/libxml-parser.html#xmlCtxtResetPush">xmlCtxtResetPush</a><br />
+<a href="html/libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlErrMemory">xmlErrMemory</a><br />
+<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
+<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-parser.html#xmlInitParserCtxt">xmlInitParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewEntityInputStream">xmlNewEntityInputStream</a><br />
+<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewInputFromFile">xmlNewInputFromFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewInputStream">xmlNewInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewStringInputStream">xmlNewStringInputStream</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-parserInternals.html#xmlNextChar">xmlNextChar</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+<a href="html/libxml-parser.html#xmlParseChunk">xmlParseChunk</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseContent">xmlParseContent</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEncName">xmlParseEncName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEncodingDecl">xmlParseEncodingDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEndTag">xmlParseEndTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+<a href="html/libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMisc">xmlParseMisc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNmtoken">xmlParseNmtoken</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePI">xmlParsePI</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePITarget">xmlParsePITarget</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePubidLiteral">xmlParsePubidLiteral</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSystemLiteral">xmlParseSystemLiteral</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionInfo">xmlParseVersionInfo</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseXMLDecl">xmlParseXMLDecl</a><br />
+<a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlPopInput">xmlPopInput</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
+<a href="html/libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a><br />
+<a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-parser.html#xmlStopParser">xmlStopParser</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchEncoding">xmlSwitchEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchToEncoding">xmlSwitchToEncoding</a><br />
+</p><h2>Type xmlParserInputBufferCreateFilenameFunc:</h2><p><a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefParserInputBufferCreateFilenameDefault">xmlThrDefParserInputBufferCreateFilenameDefault</a><br />
+</p><h2>Type xmlParserInputBufferPtr:</h2><p><a href="html/libxml-xmlIO.html#xmlFreeParserInputBuffer">xmlFreeParserInputBuffer</a><br />
+<a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
+</p><h2>Type xmlParserInputPtr:</h2><p><a href="html/libxml-parserInternals.html#inputPush">inputPush</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-parserInternals.html#xmlFreeInputStream">xmlFreeInputStream</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-parser.html#xmlParserInputRead">xmlParserInputRead</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserInputShrink">xmlParserInputShrink</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileContext">xmlParserPrintFileContext</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileInfo">xmlParserPrintFileInfo</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a><br />
+</p><h2>Type xmlParserNodeInfoSeqPtr:</h2><p><a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
+</p><h2>Type xmlParserSeverities:</h2><p><a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+</p><h2>Type xmlPatternPtr:</h2><p><a href="html/libxml-pattern.html#xmlFreePattern">xmlFreePattern</a><br />
+<a href="html/libxml-pattern.html#xmlFreePatternList">xmlFreePatternList</a><br />
+<a href="html/libxml-pattern.html#xmlPatternFromRoot">xmlPatternFromRoot</a><br />
+<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
+</p><h2>Type xmlRMutexPtr:</h2><p><a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
+<a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
+</p><h2>Type xmlReallocFunc:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+</p><h2>Type xmlReallocFunc *:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+</p><h2>Type xmlRefTablePtr:</h2><p><a href="html/libxml-valid.html#xmlFreeRefTable">xmlFreeRefTable</a><br />
+</p><h2>Type xmlRegExecCallbacks:</h2><p><a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+</p><h2>Type xmlRegExecCtxtPtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a><br />
+</p><h2>Type xmlRegexpPtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlRegFreeRegexp">xmlRegFreeRegexp</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpPrint">xmlRegexpPrint</a><br />
+</p><h2>Type xmlRegisterNodeFunc:</h2><p><a href="html/libxml-globals.html#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefRegisterNodeDefault">xmlThrDefRegisterNodeDefault</a><br />
+</p><h2>Type xmlRelaxNGParserCtxtPtr:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGFreeParserCtxt">xmlRelaxNGFreeParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserStructuredErrors">xmlRelaxNGSetParserStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
+</p><h2>Type xmlRelaxNGPtr:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGDump">xmlRelaxNGDump</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGDumpTree">xmlRelaxNGDumpTree</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFree">xmlRelaxNGFree</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+</p><h2>Type xmlRelaxNGValidCtxtPtr:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGFreeValidCtxt">xmlRelaxNGFreeValidCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+</p><h2>Type xmlRelaxNGValidityErrorFunc:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+</p><h2>Type xmlRelaxNGValidityErrorFunc *:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
+</p><h2>Type xmlRelaxNGValidityWarningFunc:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+</p><h2>Type xmlRelaxNGValidityWarningFunc *:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
+</p><h2>Type xmlSAXHandler *:</h2><p><a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDocbDefaultSAXHandler">xmlSAX2InitDocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitHtmlDefaultSAXHandler">xmlSAX2InitHtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXVersion">xmlSAXVersion</a><br />
+</p><h2>Type xmlSAXHandlerPtr:</h2><p><a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+</p><h2>Type xmlSAXHandlerPtr *:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+</p><h2>Type xmlSAXHandlerV1 *:</h2><p><a href="html/libxml-SAX.html#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#inithtmlDefaultSAXHandler">inithtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+</p><h2>Type xmlSAXLocatorPtr:</h2><p><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+</p><h2>Type xmlSaveCtxtPtr:</h2><p><a href="html/libxml-xmlsave.html#xmlSaveClose">xmlSaveClose</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveFlush">xmlSaveFlush</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetEscape">xmlSaveSetEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+</p><h2>Type xmlSchemaFacetPtr:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+</p><h2>Type xmlSchemaParserCtxtPtr:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFreeParserCtxt">xmlSchemaFreeParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserStructuredErrors">xmlSchemaSetParserStructuredErrors</a><br />
+</p><h2>Type xmlSchemaPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaDump">xmlSchemaDump</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFree">xmlSchemaFree</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+</p><h2>Type xmlSchemaSAXPlugPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+</p><h2>Type xmlSchemaTypePtr:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFreeType">xmlSchemaFreeType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
+</p><h2>Type xmlSchemaValPtr:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValues">xmlSchemaCompareValues</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValuesWhtsp">xmlSchemaCompareValuesWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeValue">xmlSchemaFreeValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueAppend">xmlSchemaValueAppend</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsBoolean">xmlSchemaValueGetAsBoolean</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsString">xmlSchemaValueGetAsString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a><br />
+</p><h2>Type xmlSchemaValPtr *:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
+</p><h2>Type xmlSchemaValType:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+</p><h2>Type xmlSchemaValidCtxtPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaFreeValidCtxt">xmlSchemaFreeValidCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaIsValid">xmlSchemaIsValid</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetOptions">xmlSchemaValidCtxtGetOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetParserCtxt">xmlSchemaValidCtxtGetParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetFilename">xmlSchemaValidateSetFilename</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+</p><h2>Type xmlSchemaValidityErrorFunc:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+</p><h2>Type xmlSchemaValidityErrorFunc *:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
+</p><h2>Type xmlSchemaValidityLocatorFunc:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+</p><h2>Type xmlSchemaValidityWarningFunc:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+</p><h2>Type xmlSchemaValidityWarningFunc *:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
+</p><h2>Type xmlSchemaWhitespaceValueType:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValuesWhtsp">xmlSchemaCompareValuesWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+</p><h2>Type xmlSchemaWildcardPtr:</h2><p><a href="html/libxml-schemasInternals.html#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</a><br />
+</p><h2>Type xmlSchematronParserCtxtPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronFreeParserCtxt">xmlSchematronFreeParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+</p><h2>Type xmlSchematronPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronFree">xmlSchematronFree</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+</p><h2>Type xmlSchematronValidCtxtPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronFreeValidCtxt">xmlSchematronFreeValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronSetValidStructuredErrors">xmlSchematronSetValidStructuredErrors</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
+</p><h2>Type xmlShellCtxtPtr:</h2><p><a href="html/libxml-debugXML.html#xmlShellBase">xmlShellBase</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDir">xmlShellDir</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+<a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+<a href="html/libxml-debugXML.html#xmlShellLoad">xmlShellLoad</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellSave">xmlShellSave</a><br />
+<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+</p><h2>Type xmlShellReadlineFunc:</h2><p><a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+</p><h2>Type xmlStrdupFunc:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+</p><h2>Type xmlStrdupFunc *:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+</p><h2>Type xmlStreamCtxtPtr:</h2><p><a href="html/libxml-pattern.html#xmlFreeStreamCtxt">xmlFreeStreamCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</p><h2>Type xmlStructuredErrorFunc:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGSetParserStructuredErrors">xmlRelaxNGSetParserStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserStructuredErrors">xmlSchemaSetParserStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronSetValidStructuredErrors">xmlSchematronSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSetStructuredErrorFunc">xmlThrDefSetStructuredErrorFunc</a><br />
+</p><h2>Type xmlTextReaderErrorFunc:</h2><p><a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+</p><h2>Type xmlTextReaderErrorFunc *:</h2><p><a href="html/libxml-xmlreader.html#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a><br />
+</p><h2>Type xmlTextReaderLocatorPtr:</h2><p><a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a><br />
+</p><h2>Type xmlTextReaderPtr:</h2><p><a href="html/libxml-xmlreader.html#xmlFreeTextReader">xmlFreeTextReader</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFile">xmlReaderNewFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewMemory">xmlReaderNewMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewWalker">xmlReaderNewWalker</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderAttributeCount">xmlTextReaderAttributeCount</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderBaseUri">xmlTextReaderBaseUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstBaseUri">xmlTextReaderConstBaseUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstEncoding">xmlTextReaderConstEncoding</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstLocalName">xmlTextReaderConstLocalName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstName">xmlTextReaderConstName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstNamespaceUri">xmlTextReaderConstNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstPrefix">xmlTextReaderConstPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlVersion">xmlTextReaderConstXmlVersion</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderDepth">xmlTextReaderDepth</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserColumnNumber">xmlTextReaderGetParserColumnNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserLineNumber">xmlTextReaderGetParserLineNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderHasAttributes">xmlTextReaderHasAttributes</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderHasValue">xmlTextReaderHasValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsEmptyElement">xmlTextReaderIsEmptyElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsValid">xmlTextReaderIsValid</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocalName">xmlTextReaderLocalName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttribute">xmlTextReaderMoveToAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNs">xmlTextReaderMoveToAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToFirstAttribute">xmlTextReaderMoveToFirstAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToNextAttribute">xmlTextReaderMoveToNextAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderName">xmlTextReaderName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNamespaceUri">xmlTextReaderNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNext">xmlTextReaderNext</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPrefix">xmlTextReaderPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderQuoteChar">xmlTextReaderQuoteChar</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadState">xmlTextReaderReadState</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+</p><h2>Type xmlTextWriterPtr:</h2><p><a href="html/libxml-xmlwriter.html#xmlFreeTextWriter">xmlFreeTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndAttribute">xmlTextWriterEndAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndComment">xmlTextWriterEndComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndElement">xmlTextWriterEndElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndPI">xmlTextWriterEndPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterFlush">xmlTextWriterFlush</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndent">xmlTextWriterSetIndent</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndentString">xmlTextWriterSetIndentString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetQuoteChar">xmlTextWriterSetQuoteChar</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartAttribute">xmlTextWriterStartAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartAttributeNS">xmlTextWriterStartAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartCDATA">xmlTextWriterStartCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartComment">xmlTextWriterStartComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTD">xmlTextWriterStartDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDAttlist">xmlTextWriterStartDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDElement">xmlTextWriterStartDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDocument">xmlTextWriterStartDocument</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartElement">xmlTextWriterStartElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartElementNS">xmlTextWriterStartElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartPI">xmlTextWriterStartPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteAttribute">xmlTextWriterWriteAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteAttributeNS">xmlTextWriterWriteAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBase64">xmlTextWriterWriteBase64</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBinHex">xmlTextWriterWriteBinHex</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteCDATA">xmlTextWriterWriteCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteComment">xmlTextWriterWriteComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDAttlist">xmlTextWriterWriteDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteElement">xmlTextWriterWriteElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteElementNS">xmlTextWriterWriteElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatCDATA">xmlTextWriterWriteFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatComment">xmlTextWriterWriteFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDAttlist">xmlTextWriterWriteFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDElement">xmlTextWriterWriteFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElement">xmlTextWriterWriteFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElementNS">xmlTextWriterWriteFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatPI">xmlTextWriterWriteFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatRaw">xmlTextWriterWriteFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatString">xmlTextWriterWriteFormatString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWritePI">xmlTextWriterWritePI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRaw">xmlTextWriterWriteRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteString">xmlTextWriterWriteString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttribute">xmlTextWriterWriteVFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttributeNS">xmlTextWriterWriteVFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatCDATA">xmlTextWriterWriteVFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatComment">xmlTextWriterWriteVFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDAttlist">xmlTextWriterWriteVFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDElement">xmlTextWriterWriteVFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElement">xmlTextWriterWriteVFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElementNS">xmlTextWriterWriteVFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatPI">xmlTextWriterWriteVFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatString">xmlTextWriterWriteVFormatString</a><br />
+</p><h2>Type xmlURIPtr:</h2><p><a href="html/libxml-uri.html#xmlFreeURI">xmlFreeURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+<a href="html/libxml-uri.html#xmlPrintURI">xmlPrintURI</a><br />
+<a href="html/libxml-uri.html#xmlSaveUri">xmlSaveUri</a><br />
+</p><h2>Type xmlValidCtxtPtr:</h2><p><a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
+<a href="html/libxml-valid.html#xmlAddNotationDecl">xmlAddNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+<a href="html/libxml-valid.html#xmlFreeValidCtxt">xmlFreeValidCtxt</a><br />
+<a href="html/libxml-valid.html#xmlValidBuildContentModel">xmlValidBuildContentModel</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateElement">xmlValidateElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationUse">xmlValidateNotationUse</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushCData">xmlValidatePushCData</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+</p><h2>Type xmlXIncludeCtxtPtr:</h2><p><a href="html/libxml-xinclude.html#xmlXIncludeFreeContext">xmlXIncludeFreeContext</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a><br />
+</p><h2>Type xmlXPathCompExprPtr:</h2><p><a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompiledEvalToBoolean">xmlXPathCompiledEvalToBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeCompExpr">xmlXPathFreeCompExpr</a><br />
+</p><h2>Type xmlXPathContextPtr:</h2><p><a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompiledEvalToBoolean">xmlXPathCompiledEvalToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeContext">xmlXPathFreeContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookupNS">xmlXPathFunctionLookupNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewParserContext">xmlXPathNewParserContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNsLookup">xmlXPathNsLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterAllFunctions">xmlXPathRegisterAllFunctions</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFunc">xmlXPathRegisterFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncLookup">xmlXPathRegisterFuncLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncNS">xmlXPathRegisterFuncNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterNs">xmlXPathRegisterNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariable">xmlXPathRegisterVariable</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableLookup">xmlXPathRegisterVariableLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredFuncsCleanup">xmlXPathRegisteredFuncsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredNsCleanup">xmlXPathRegisteredNsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredVariablesCleanup">xmlXPathRegisteredVariablesCleanup</a><br />
+<a href="html/libxml-xpath.html#xmlXPathSetContextNode">xmlXPathSetContextNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookup">xmlXPathVariableLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookupNS">xmlXPathVariableLookupNS</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+</p><h2>Type xmlXPathFuncLookupFunc:</h2><p><a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncLookup">xmlXPathRegisterFuncLookup</a><br />
+</p><h2>Type xmlXPathFunction:</h2><p><a href="html/libxml-xpathInternals.html#xmlXPathRegisterFunc">xmlXPathRegisterFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncNS">xmlXPathRegisterFuncNS</a><br />
+</p><h2>Type xmlXPathObjectPtr:</h2><p><a href="html/libxml-xpathInternals.html#valuePush">valuePush</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToBoolean">xmlXPathCastToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToNumber">xmlXPathCastToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToString">xmlXPathCastToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertFunc">xmlXPathConvertFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertNumber">xmlXPathConvertNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertString">xmlXPathConvertString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeObject">xmlXPathFreeObject</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObjectCopy">xmlXPathObjectCopy</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariable">xmlXPathRegisterVariable</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetCreate">xmlXPtrLocationSetCreate</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a><br />
+</p><h2>Type xmlXPathParserContextPtr:</h2><p><a href="html/libxml-xpathInternals.html#valuePop">valuePop</a><br />
+<a href="html/libxml-xpathInternals.html#valuePush">valuePush</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathConcatFunction">xmlXPathConcatFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathContainsFunction">xmlXPathContainsFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCountFunction">xmlXPathCountFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEqualValues">xmlXPathEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathErr">xmlXPathErr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvalExpr">xmlXPathEvalExpr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalFunc">xmlXPathEvalFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFalseFunction">xmlXPathFalseFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFreeParserContext">xmlXPathFreeParserContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLastFunction">xmlXPathLastFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLocalNameFunction">xmlXPathLocalNameFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNamespaceURIFunction">xmlXPathNamespaceURIFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAttribute">xmlXPathNextAttribute</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextChild">xmlXPathNextChild</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextParent">xmlXPathNextParent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotFunction">xmlXPathNotFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNumberFunction">xmlXPathNumberFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseName">xmlXPathParseName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopBoolean">xmlXPathPopBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopExternal">xmlXPathPopExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNumber">xmlXPathPopNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopString">xmlXPathPopString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPositionFunction">xmlXPathPositionFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoot">xmlXPathRoot</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStartsWithFunction">xmlXPathStartsWithFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSumFunction">xmlXPathSumFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrueFunction">xmlXPathTrueFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPatherror">xmlXPatherror</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+</p><h2>Type xmlXPathVariableLookupFunc:</h2><p><a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableLookup">xmlXPathRegisterVariableLookup</a><br />
+</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>
diff --git a/libxml2-2.9.10/doc/APIsymbols.html b/libxml2-2.9.10/doc/APIsymbols.html
new file mode 100644
index 0000000..1af527a
--- /dev/null
+++ b/libxml2-2.9.10/doc/APIsymbols.html
@@ -0,0 +1,3590 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Alphabetic List of Symbols in libxml2</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>Alphabetic List of Symbols in libxml2</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2>Letter A:</h2><p><a href="html/libxml-xmlversion.html#ATTRIBUTE_UNUSED">ATTRIBUTE_UNUSED</a><br />
+</p><h2>Letter B:</h2><p><a href="html/libxml-xmlstring.html#BAD_CAST">BAD_CAST</a><br />
+<a href="html/libxml-tree.html#BASE_BUFFER_SIZE">BASE_BUFFER_SIZE</a><br />
+</p><h2>Letter C:</h2><p><a href="html/libxml-xpathInternals.html#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_NUMBER">CAST_TO_NUMBER</a><br />
+<a href="html/libxml-xpathInternals.html#CAST_TO_STRING">CAST_TO_STRING</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_ARITY">CHECK_ARITY</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_ERROR">CHECK_ERROR</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_ERROR0">CHECK_ERROR0</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_TYPE">CHECK_TYPE</a><br />
+<a href="html/libxml-xpathInternals.html#CHECK_TYPE0">CHECK_TYPE0</a><br />
+</p><h2>Letter D:</h2><p><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
+<a href="html/libxml-xmlversion.html#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a><br />
+</p><h2>Letter H:</h2><p><a href="html/libxml-HTMLtree.html#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_DEPRECATED">HTML_DEPRECATED</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_INVALID">HTML_INVALID</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_NA">HTML_NA</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_COMPACT">HTML_PARSE_COMPACT</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_IGNORE_ENC">HTML_PARSE_IGNORE_ENC</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NOBLANKS">HTML_PARSE_NOBLANKS</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NODEFDTD">HTML_PARSE_NODEFDTD</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NOERROR">HTML_PARSE_NOERROR</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NOIMPLIED">HTML_PARSE_NOIMPLIED</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NONET">HTML_PARSE_NONET</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_NOWARNING">HTML_PARSE_NOWARNING</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_PEDANTIC">HTML_PARSE_PEDANTIC</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_RECOVER">HTML_PARSE_RECOVER</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PI_NODE">HTML_PI_NODE</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_REQUIRED">HTML_REQUIRED</a><br />
+<a href="html/libxml-HTMLtree.html#HTML_TEXT_NODE">HTML_TEXT_NODE</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_VALID">HTML_VALID</a><br />
+</p><h2>Letter I:</h2><p><a href="html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a><br />
+<a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+<a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br />
+<a href="html/libxml-parserInternals.html#IS_ASCII_DIGIT">IS_ASCII_DIGIT</a><br />
+<a href="html/libxml-parserInternals.html#IS_ASCII_LETTER">IS_ASCII_LETTER</a><br />
+<a href="html/libxml-parserInternals.html#IS_BASECHAR">IS_BASECHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_BLANK">IS_BLANK</a><br />
+<a href="html/libxml-parserInternals.html#IS_BLANK_CH">IS_BLANK_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_BYTE_CHAR">IS_BYTE_CHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_CHAR">IS_CHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_CHAR_CH">IS_CHAR_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_COMBINING">IS_COMBINING</a><br />
+<a href="html/libxml-parserInternals.html#IS_COMBINING_CH">IS_COMBINING_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_DIGIT">IS_DIGIT</a><br />
+<a href="html/libxml-parserInternals.html#IS_DIGIT_CH">IS_DIGIT_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a><br />
+<a href="html/libxml-parserInternals.html#IS_EXTENDER_CH">IS_EXTENDER_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a><br />
+<a href="html/libxml-parserInternals.html#IS_LETTER">IS_LETTER</a><br />
+<a href="html/libxml-parserInternals.html#IS_LETTER_CH">IS_LETTER_CH</a><br />
+<a href="html/libxml-parserInternals.html#IS_PUBIDCHAR">IS_PUBIDCHAR</a><br />
+<a href="html/libxml-parserInternals.html#IS_PUBIDCHAR_CH">IS_PUBIDCHAR_CH</a><br />
+</p><h2>Letter L:</h2><p><a href="html/libxml-tree.html#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ATTR_ALLOC_SIZE">LIBXML_ATTR_ALLOC_SIZE</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ATTR_FORMAT">LIBXML_ATTR_FORMAT</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_AUTOMATA_ENABLED">LIBXML_AUTOMATA_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_C14N_ENABLED">LIBXML_C14N_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_CATALOG_ENABLED">LIBXML_CATALOG_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a><br />
+<a href="html/libxml-xmlexports.html#LIBXML_DLL_IMPORT">LIBXML_DLL_IMPORT</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_DOTTED_VERSION">LIBXML_DOTTED_VERSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_FTP_ENABLED">LIBXML_FTP_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_HTML_ENABLED">LIBXML_HTML_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_HTTP_ENABLED">LIBXML_HTTP_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ICONV_ENABLED">LIBXML_ICONV_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ICU_ENABLED">LIBXML_ICU_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_LZMA_ENABLED">LIBXML_LZMA_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_READER_ENABLED">LIBXML_READER_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_THREAD_ALLOC_ENABLED">LIBXML_THREAD_ALLOC_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_VALID_ENABLED">LIBXML_VALID_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_VERSION">LIBXML_VERSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_VERSION_STRING">LIBXML_VERSION_STRING</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_XINCLUDE_ENABLED">LIBXML_XINCLUDE_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_XPATH_ENABLED">LIBXML_XPATH_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_XPTR_ENABLED">LIBXML_XPTR_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_ZLIB_ENABLED">LIBXML_ZLIB_ENABLED</a><br />
+</p><h2>Letter M:</h2><p><a href="html/libxml-parserInternals.html#MOVETO_ENDTAG">MOVETO_ENDTAG</a><br />
+<a href="html/libxml-parserInternals.html#MOVETO_STARTTAG">MOVETO_STARTTAG</a><br />
+</p><h2>Letter S:</h2><p><a href="html/libxml-parserInternals.html#SKIP_EOL">SKIP_EOL</a><br />
+<a href="html/libxml-nanoftp.html#SOCKET">SOCKET</a><br />
+</p><h2>Letter U:</h2><p><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+</p><h2>Letter W:</h2><p><a href="html/libxml-xmlversion.html#WITHOUT_TRIO">WITHOUT_TRIO</a><br />
+<a href="html/libxml-xmlversion.html#WITH_TRIO">WITH_TRIO</a><br />
+</p><h2>Letter X:</h2><p><a href="html/libxml-xinclude.html#XINCLUDE_FALLBACK">XINCLUDE_FALLBACK</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_HREF">XINCLUDE_HREF</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_NODE">XINCLUDE_NODE</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_NS">XINCLUDE_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE">XINCLUDE_PARSE</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_ENCODING">XINCLUDE_PARSE_ENCODING</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_TEXT">XINCLUDE_PARSE_TEXT</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_XML">XINCLUDE_PARSE_XML</a><br />
+<a href="html/libxml-xinclude.html#XINCLUDE_PARSE_XPOINTER">XINCLUDE_PARSE_XPOINTER</a><br />
+<a href="html/libxml-xlink.html#XLINK_ACTUATE_AUTO">XLINK_ACTUATE_AUTO</a><br />
+<a href="html/libxml-xlink.html#XLINK_ACTUATE_NONE">XLINK_ACTUATE_NONE</a><br />
+<a href="html/libxml-xlink.html#XLINK_ACTUATE_ONREQUEST">XLINK_ACTUATE_ONREQUEST</a><br />
+<a href="html/libxml-xlink.html#XLINK_SHOW_EMBED">XLINK_SHOW_EMBED</a><br />
+<a href="html/libxml-xlink.html#XLINK_SHOW_NEW">XLINK_SHOW_NEW</a><br />
+<a href="html/libxml-xlink.html#XLINK_SHOW_NONE">XLINK_SHOW_NONE</a><br />
+<a href="html/libxml-xlink.html#XLINK_SHOW_REPLACE">XLINK_SHOW_REPLACE</a><br />
+<a href="html/libxml-xlink.html#XLINK_TYPE_EXTENDED">XLINK_TYPE_EXTENDED</a><br />
+<a href="html/libxml-xlink.html#XLINK_TYPE_EXTENDED_SET">XLINK_TYPE_EXTENDED_SET</a><br />
+<a href="html/libxml-xlink.html#XLINK_TYPE_NONE">XLINK_TYPE_NONE</a><br />
+<a href="html/libxml-xlink.html#XLINK_TYPE_SIMPLE">XLINK_TYPE_SIMPLE</a><br />
+<a href="html/libxml-xmlexports.html#XMLCALL">XMLCALL</a><br />
+<a href="html/libxml-xmlexports.html#XMLCDECL">XMLCDECL</a><br />
+<a href="html/libxml-xmlexports.html#XMLPUBFUN">XMLPUBFUN</a><br />
+<a href="html/libxml-xmlexports.html#XMLPUBVAR">XMLPUBVAR</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_CDATA">XML_ATTRIBUTE_CDATA</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_DECL">XML_ATTRIBUTE_DECL</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_ENTITIES">XML_ATTRIBUTE_ENTITIES</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_ENTITY">XML_ATTRIBUTE_ENTITY</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_ENUMERATION">XML_ATTRIBUTE_ENUMERATION</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_FIXED">XML_ATTRIBUTE_FIXED</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_ID">XML_ATTRIBUTE_ID</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_IDREF">XML_ATTRIBUTE_IDREF</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_IDREFS">XML_ATTRIBUTE_IDREFS</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_IMPLIED">XML_ATTRIBUTE_IMPLIED</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_NMTOKEN">XML_ATTRIBUTE_NMTOKEN</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_NMTOKENS">XML_ATTRIBUTE_NMTOKENS</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_NODE">XML_ATTRIBUTE_NODE</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_NONE">XML_ATTRIBUTE_NONE</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_NOTATION">XML_ATTRIBUTE_NOTATION</a><br />
+<a href="html/libxml-tree.html#XML_ATTRIBUTE_REQUIRED">XML_ATTRIBUTE_REQUIRED</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_IMMUTABLE">XML_BUFFER_ALLOC_IMMUTABLE</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_IO">XML_BUFFER_ALLOC_IO</a><br />
+<a href="html/libxml-xmlerror.html#XML_BUF_OVERFLOW">XML_BUF_OVERFLOW</a><br />
+<a href="html/libxml-c14n.html#XML_C14N_1_0">XML_C14N_1_0</a><br />
+<a href="html/libxml-c14n.html#XML_C14N_1_1">XML_C14N_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_CREATE_CTXT">XML_C14N_CREATE_CTXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_CREATE_STACK">XML_C14N_CREATE_STACK</a><br />
+<a href="html/libxml-c14n.html#XML_C14N_EXCLUSIVE_1_0">XML_C14N_EXCLUSIVE_1_0</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_INVALID_NODE">XML_C14N_INVALID_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_RELATIVE_NAMESPACE">XML_C14N_RELATIVE_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_REQUIRES_UTF8">XML_C14N_REQUIRES_UTF8</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_UNKNOW_NODE">XML_C14N_UNKNOW_NODE</a><br />
+<a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxml-catalog.html#XML_CATALOGS_NAMESPACE">XML_CATALOGS_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CATALOG_ENTRY_BROKEN">XML_CATALOG_ENTRY_BROKEN</a><br />
+<a href="html/libxml-xmlerror.html#XML_CATALOG_MISSING_ATTR">XML_CATALOG_MISSING_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_CATALOG_NOT_CATALOG">XML_CATALOG_NOT_CATALOG</a><br />
+<a href="html/libxml-catalog.html#XML_CATALOG_PI">XML_CATALOG_PI</a><br />
+<a href="html/libxml-xmlerror.html#XML_CATALOG_PREFER_VALUE">XML_CATALOG_PREFER_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CATALOG_RECURSION">XML_CATALOG_RECURSION</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_ALLOW_ALL">XML_CATA_ALLOW_ALL</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_ALLOW_DOCUMENT">XML_CATA_ALLOW_DOCUMENT</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_ALLOW_GLOBAL">XML_CATA_ALLOW_GLOBAL</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_ALLOW_NONE">XML_CATA_ALLOW_NONE</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_PREFER_NONE">XML_CATA_PREFER_NONE</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_PREFER_PUBLIC">XML_CATA_PREFER_PUBLIC</a><br />
+<a href="html/libxml-catalog.html#XML_CATA_PREFER_SYSTEM">XML_CATA_PREFER_SYSTEM</a><br />
+<a href="html/libxml-tree.html#XML_CDATA_SECTION_NODE">XML_CDATA_SECTION_NODE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_2022_JP">XML_CHAR_ENCODING_2022_JP</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_1">XML_CHAR_ENCODING_8859_1</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_2">XML_CHAR_ENCODING_8859_2</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_3">XML_CHAR_ENCODING_8859_3</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_4">XML_CHAR_ENCODING_8859_4</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_5">XML_CHAR_ENCODING_8859_5</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_6">XML_CHAR_ENCODING_8859_6</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_7">XML_CHAR_ENCODING_8859_7</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_8">XML_CHAR_ENCODING_8859_8</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_9">XML_CHAR_ENCODING_8859_9</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_ASCII">XML_CHAR_ENCODING_ASCII</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_EBCDIC">XML_CHAR_ENCODING_EBCDIC</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_ERROR">XML_CHAR_ENCODING_ERROR</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_EUC_JP">XML_CHAR_ENCODING_EUC_JP</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_SHIFT_JIS">XML_CHAR_ENCODING_SHIFT_JIS</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UCS2">XML_CHAR_ENCODING_UCS2</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UCS4BE">XML_CHAR_ENCODING_UCS4BE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UCS4LE">XML_CHAR_ENCODING_UCS4LE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UCS4_2143">XML_CHAR_ENCODING_UCS4_2143</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UCS4_3412">XML_CHAR_ENCODING_UCS4_3412</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UTF16BE">XML_CHAR_ENCODING_UTF16BE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UTF16LE">XML_CHAR_ENCODING_UTF16LE</a><br />
+<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_UTF8">XML_CHAR_ENCODING_UTF8</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_ENTITY_TYPE">XML_CHECK_ENTITY_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_ATTRIBUTE">XML_CHECK_FOUND_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_CDATA">XML_CHECK_FOUND_CDATA</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_COMMENT">XML_CHECK_FOUND_COMMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_DOCTYPE">XML_CHECK_FOUND_DOCTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_ELEMENT">XML_CHECK_FOUND_ELEMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_ENTITY">XML_CHECK_FOUND_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_ENTITYREF">XML_CHECK_FOUND_ENTITYREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_FRAGMENT">XML_CHECK_FOUND_FRAGMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_NOTATION">XML_CHECK_FOUND_NOTATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_PI">XML_CHECK_FOUND_PI</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_FOUND_TEXT">XML_CHECK_FOUND_TEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NAME_NOT_NULL">XML_CHECK_NAME_NOT_NULL</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_ATTR">XML_CHECK_NOT_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_ATTR_DECL">XML_CHECK_NOT_ATTR_DECL</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_DTD">XML_CHECK_NOT_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_ELEM_DECL">XML_CHECK_NOT_ELEM_DECL</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_ENTITY_DECL">XML_CHECK_NOT_ENTITY_DECL</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_NCNAME">XML_CHECK_NOT_NCNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_NS_DECL">XML_CHECK_NOT_NS_DECL</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NOT_UTF8">XML_CHECK_NOT_UTF8</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_DICT">XML_CHECK_NO_DICT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_DOC">XML_CHECK_NO_DOC</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_ELEM">XML_CHECK_NO_ELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_HREF">XML_CHECK_NO_HREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_NAME">XML_CHECK_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_NEXT">XML_CHECK_NO_NEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_PARENT">XML_CHECK_NO_PARENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NO_PREV">XML_CHECK_NO_PREV</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NS_ANCESTOR">XML_CHECK_NS_ANCESTOR</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_NS_SCOPE">XML_CHECK_NS_SCOPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_OUTSIDE_DICT">XML_CHECK_OUTSIDE_DICT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_UNKNOWN_NODE">XML_CHECK_UNKNOWN_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_WRONG_DOC">XML_CHECK_WRONG_DOC</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_WRONG_NAME">XML_CHECK_WRONG_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_WRONG_NEXT">XML_CHECK_WRONG_NEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_WRONG_PARENT">XML_CHECK_WRONG_PARENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_CHECK_WRONG_PREV">XML_CHECK_WRONG_PREV</a><br />
+<a href="html/libxml-tree.html#XML_COMMENT_NODE">XML_COMMENT_NODE</a><br />
+<a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
+<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
+<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
+<a href="html/libxml-parser.html#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a><br />
+<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-tree.html#XML_DOCB_DOCUMENT_NODE">XML_DOCB_DOCUMENT_NODE</a><br />
+<a href="html/libxml-tree.html#XML_DOCUMENT_FRAG_NODE">XML_DOCUMENT_FRAG_NODE</a><br />
+<a href="html/libxml-tree.html#XML_DOCUMENT_NODE">XML_DOCUMENT_NODE</a><br />
+<a href="html/libxml-tree.html#XML_DOCUMENT_TYPE_NODE">XML_DOCUMENT_TYPE_NODE</a><br />
+<a href="html/libxml-tree.html#XML_DOC_DTDVALID">XML_DOC_DTDVALID</a><br />
+<a href="html/libxml-tree.html#XML_DOC_HTML">XML_DOC_HTML</a><br />
+<a href="html/libxml-tree.html#XML_DOC_INTERNAL">XML_DOC_INTERNAL</a><br />
+<a href="html/libxml-tree.html#XML_DOC_NSVALID">XML_DOC_NSVALID</a><br />
+<a href="html/libxml-tree.html#XML_DOC_OLD10">XML_DOC_OLD10</a><br />
+<a href="html/libxml-tree.html#XML_DOC_USERBUILT">XML_DOC_USERBUILT</a><br />
+<a href="html/libxml-tree.html#XML_DOC_WELLFORMED">XML_DOC_WELLFORMED</a><br />
+<a href="html/libxml-tree.html#XML_DOC_XINCLUDE">XML_DOC_XINCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ATTRIBUTE_DEFAULT">XML_DTD_ATTRIBUTE_DEFAULT</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ATTRIBUTE_REDEFINED">XML_DTD_ATTRIBUTE_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ATTRIBUTE_VALUE">XML_DTD_ATTRIBUTE_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_CONTENT_ERROR">XML_DTD_CONTENT_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_CONTENT_MODEL">XML_DTD_CONTENT_MODEL</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_CONTENT_NOT_DETERMINIST">XML_DTD_CONTENT_NOT_DETERMINIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_DIFFERENT_PREFIX">XML_DTD_DIFFERENT_PREFIX</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_DUP_TOKEN">XML_DTD_DUP_TOKEN</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_DEFAULT_NAMESPACE">XML_DTD_ELEM_DEFAULT_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_NAMESPACE">XML_DTD_ELEM_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_REDEFINED">XML_DTD_ELEM_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_EMPTY_NOTATION">XML_DTD_EMPTY_NOTATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ENTITY_TYPE">XML_DTD_ENTITY_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ID_FIXED">XML_DTD_ID_FIXED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ID_REDEFINED">XML_DTD_ID_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ID_SUBSET">XML_DTD_ID_SUBSET</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_INVALID_CHILD">XML_DTD_INVALID_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_INVALID_DEFAULT">XML_DTD_INVALID_DEFAULT</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_LOAD_ERROR">XML_DTD_LOAD_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_MISSING_ATTRIBUTE">XML_DTD_MISSING_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_MIXED_CORRUPT">XML_DTD_MIXED_CORRUPT</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_MULTIPLE_ID">XML_DTD_MULTIPLE_ID</a><br />
+<a href="html/libxml-tree.html#XML_DTD_NODE">XML_DTD_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NOTATION_REDEFINED">XML_DTD_NOTATION_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NOTATION_VALUE">XML_DTD_NOTATION_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NOT_EMPTY">XML_DTD_NOT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NOT_PCDATA">XML_DTD_NOT_PCDATA</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NOT_STANDALONE">XML_DTD_NOT_STANDALONE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NO_DOC">XML_DTD_NO_DOC</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NO_DTD">XML_DTD_NO_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NO_ELEM_NAME">XML_DTD_NO_ELEM_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NO_PREFIX">XML_DTD_NO_PREFIX</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_NO_ROOT">XML_DTD_NO_ROOT</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_ROOT_NAME">XML_DTD_ROOT_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_STANDALONE_DEFAULTED">XML_DTD_STANDALONE_DEFAULTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_STANDALONE_WHITE_SPACE">XML_DTD_STANDALONE_WHITE_SPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_UNKNOWN_ATTRIBUTE">XML_DTD_UNKNOWN_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_UNKNOWN_ELEM">XML_DTD_UNKNOWN_ELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_UNKNOWN_ENTITY">XML_DTD_UNKNOWN_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_UNKNOWN_ID">XML_DTD_UNKNOWN_ID</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_UNKNOWN_NOTATION">XML_DTD_UNKNOWN_NOTATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_XMLID_TYPE">XML_DTD_XMLID_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_XMLID_VALUE">XML_DTD_XMLID_VALUE</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_ELEMENT">XML_ELEMENT_CONTENT_ELEMENT</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_MULT">XML_ELEMENT_CONTENT_MULT</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_ONCE">XML_ELEMENT_CONTENT_ONCE</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_OPT">XML_ELEMENT_CONTENT_OPT</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_OR">XML_ELEMENT_CONTENT_OR</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_PCDATA">XML_ELEMENT_CONTENT_PCDATA</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_PLUS">XML_ELEMENT_CONTENT_PLUS</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_CONTENT_SEQ">XML_ELEMENT_CONTENT_SEQ</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_DECL">XML_ELEMENT_DECL</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_NODE">XML_ELEMENT_NODE</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_TYPE_ANY">XML_ELEMENT_TYPE_ANY</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_TYPE_ELEMENT">XML_ELEMENT_TYPE_ELEMENT</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_TYPE_EMPTY">XML_ELEMENT_TYPE_EMPTY</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_TYPE_MIXED">XML_ELEMENT_TYPE_MIXED</a><br />
+<a href="html/libxml-tree.html#XML_ELEMENT_TYPE_UNDEFINED">XML_ELEMENT_TYPE_UNDEFINED</a><br />
+<a href="html/libxml-tree.html#XML_ENTITY_DECL">XML_ENTITY_DECL</a><br />
+<a href="html/libxml-tree.html#XML_ENTITY_NODE">XML_ENTITY_NODE</a><br />
+<a href="html/libxml-tree.html#XML_ENTITY_REF_NODE">XML_ENTITY_REF_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTLIST_NOT_FINISHED">XML_ERR_ATTLIST_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTLIST_NOT_STARTED">XML_ERR_ATTLIST_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTRIBUTE_NOT_FINISHED">XML_ERR_ATTRIBUTE_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTRIBUTE_NOT_STARTED">XML_ERR_ATTRIBUTE_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTRIBUTE_REDEFINED">XML_ERR_ATTRIBUTE_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ATTRIBUTE_WITHOUT_VALUE">XML_ERR_ATTRIBUTE_WITHOUT_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CDATA_NOT_FINISHED">XML_ERR_CDATA_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CHARREF_AT_EOF">XML_ERR_CHARREF_AT_EOF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CHARREF_IN_DTD">XML_ERR_CHARREF_IN_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CHARREF_IN_EPILOG">XML_ERR_CHARREF_IN_EPILOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CHARREF_IN_PROLOG">XML_ERR_CHARREF_IN_PROLOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_COMMENT_NOT_FINISHED">XML_ERR_COMMENT_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CONDSEC_INVALID">XML_ERR_CONDSEC_INVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CONDSEC_INVALID_KEYWORD">XML_ERR_CONDSEC_INVALID_KEYWORD</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CONDSEC_NOT_FINISHED">XML_ERR_CONDSEC_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_CONDSEC_NOT_STARTED">XML_ERR_CONDSEC_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_DOCTYPE_NOT_FINISHED">XML_ERR_DOCTYPE_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_DOCUMENT_EMPTY">XML_ERR_DOCUMENT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_DOCUMENT_END">XML_ERR_DOCUMENT_END</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_DOCUMENT_START">XML_ERR_DOCUMENT_START</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ELEMCONTENT_NOT_FINISHED">XML_ERR_ELEMCONTENT_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ELEMCONTENT_NOT_STARTED">XML_ERR_ELEMCONTENT_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENCODING_NAME">XML_ERR_ENCODING_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_AT_EOF">XML_ERR_ENTITYREF_AT_EOF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_IN_DTD">XML_ERR_ENTITYREF_IN_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_IN_EPILOG">XML_ERR_ENTITYREF_IN_EPILOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_IN_PROLOG">XML_ERR_ENTITYREF_IN_PROLOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_NO_NAME">XML_ERR_ENTITYREF_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITYREF_SEMICOL_MISSING">XML_ERR_ENTITYREF_SEMICOL_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_BOUNDARY">XML_ERR_ENTITY_BOUNDARY</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_CHAR_ERROR">XML_ERR_ENTITY_CHAR_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_IS_EXTERNAL">XML_ERR_ENTITY_IS_EXTERNAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_IS_PARAMETER">XML_ERR_ENTITY_IS_PARAMETER</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_LOOP">XML_ERR_ENTITY_LOOP</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_NOT_FINISHED">XML_ERR_ENTITY_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_NOT_STARTED">XML_ERR_ENTITY_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_PE_INTERNAL">XML_ERR_ENTITY_PE_INTERNAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ENTITY_PROCESSING">XML_ERR_ENTITY_PROCESSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_EQUAL_REQUIRED">XML_ERR_EQUAL_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_ERROR">XML_ERR_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_EXTRA_CONTENT">XML_ERR_EXTRA_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_EXT_ENTITY_STANDALONE">XML_ERR_EXT_ENTITY_STANDALONE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_EXT_SUBSET_NOT_FINISHED">XML_ERR_EXT_SUBSET_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_FATAL">XML_ERR_FATAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_GT_REQUIRED">XML_ERR_GT_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_HYPHEN_IN_COMMENT">XML_ERR_HYPHEN_IN_COMMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INTERNAL_ERROR">XML_ERR_INTERNAL_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_CHAR">XML_ERR_INVALID_CHAR</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_CHARREF">XML_ERR_INVALID_CHARREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_DEC_CHARREF">XML_ERR_INVALID_DEC_CHARREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_ENCODING">XML_ERR_INVALID_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_HEX_CHARREF">XML_ERR_INVALID_HEX_CHARREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_INVALID_URI">XML_ERR_INVALID_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_LITERAL_NOT_FINISHED">XML_ERR_LITERAL_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_LITERAL_NOT_STARTED">XML_ERR_LITERAL_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_LTSLASH_REQUIRED">XML_ERR_LTSLASH_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_LT_IN_ATTRIBUTE">XML_ERR_LT_IN_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_LT_REQUIRED">XML_ERR_LT_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_MISPLACED_CDATA_END">XML_ERR_MISPLACED_CDATA_END</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_MISSING_ENCODING">XML_ERR_MISSING_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_MIXED_NOT_FINISHED">XML_ERR_MIXED_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_MIXED_NOT_STARTED">XML_ERR_MIXED_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NAME_REQUIRED">XML_ERR_NAME_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NAME_TOO_LONG">XML_ERR_NAME_TOO_LONG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NMTOKEN_REQUIRED">XML_ERR_NMTOKEN_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NONE">XML_ERR_NONE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NOTATION_NOT_FINISHED">XML_ERR_NOTATION_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NOTATION_NOT_STARTED">XML_ERR_NOTATION_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NOTATION_PROCESSING">XML_ERR_NOTATION_PROCESSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NOT_STANDALONE">XML_ERR_NOT_STANDALONE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NOT_WELL_BALANCED">XML_ERR_NOT_WELL_BALANCED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NO_DTD">XML_ERR_NO_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NO_MEMORY">XML_ERR_NO_MEMORY</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_NS_DECL_ERROR">XML_ERR_NS_DECL_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_OK">XML_ERR_OK</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PCDATA_REQUIRED">XML_ERR_PCDATA_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_AT_EOF">XML_ERR_PEREF_AT_EOF</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_IN_EPILOG">XML_ERR_PEREF_IN_EPILOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_IN_INT_SUBSET">XML_ERR_PEREF_IN_INT_SUBSET</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_IN_PROLOG">XML_ERR_PEREF_IN_PROLOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_NO_NAME">XML_ERR_PEREF_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PEREF_SEMICOL_MISSING">XML_ERR_PEREF_SEMICOL_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PI_NOT_FINISHED">XML_ERR_PI_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PI_NOT_STARTED">XML_ERR_PI_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_PUBID_REQUIRED">XML_ERR_PUBID_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_RESERVED_XML_NAME">XML_ERR_RESERVED_XML_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_SEPARATOR_REQUIRED">XML_ERR_SEPARATOR_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_SPACE_REQUIRED">XML_ERR_SPACE_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_STANDALONE_VALUE">XML_ERR_STANDALONE_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_STRING_NOT_CLOSED">XML_ERR_STRING_NOT_CLOSED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_STRING_NOT_STARTED">XML_ERR_STRING_NOT_STARTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_TAG_NAME_MISMATCH">XML_ERR_TAG_NAME_MISMATCH</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_TAG_NOT_FINISHED">XML_ERR_TAG_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_UNDECLARED_ENTITY">XML_ERR_UNDECLARED_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_UNKNOWN_ENCODING">XML_ERR_UNKNOWN_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_UNKNOWN_VERSION">XML_ERR_UNKNOWN_VERSION</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_UNPARSED_ENTITY">XML_ERR_UNPARSED_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_UNSUPPORTED_ENCODING">XML_ERR_UNSUPPORTED_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_URI_FRAGMENT">XML_ERR_URI_FRAGMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_URI_REQUIRED">XML_ERR_URI_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_USER_STOP">XML_ERR_USER_STOP</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_VALUE_REQUIRED">XML_ERR_VALUE_REQUIRED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_VERSION_MISMATCH">XML_ERR_VERSION_MISMATCH</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_VERSION_MISSING">XML_ERR_VERSION_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_WARNING">XML_ERR_WARNING</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_XMLDECL_NOT_FINISHED">XML_ERR_XMLDECL_NOT_FINISHED</a><br />
+<a href="html/libxml-xmlerror.html#XML_ERR_XMLDECL_NOT_STARTED">XML_ERR_XMLDECL_NOT_STARTED</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_ATOM">XML_EXP_ATOM</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_COUNT">XML_EXP_COUNT</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_EMPTY">XML_EXP_EMPTY</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_FORBID">XML_EXP_FORBID</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_OR">XML_EXP_OR</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_SEQ">XML_EXP_SEQ</a><br />
+<a href="html/libxml-entities.html#XML_EXTERNAL_GENERAL_PARSED_ENTITY">XML_EXTERNAL_GENERAL_PARSED_ENTITY</a><br />
+<a href="html/libxml-entities.html#XML_EXTERNAL_GENERAL_UNPARSED_ENTITY">XML_EXTERNAL_GENERAL_UNPARSED_ENTITY</a><br />
+<a href="html/libxml-entities.html#XML_EXTERNAL_PARAMETER_ENTITY">XML_EXTERNAL_PARAMETER_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_BUFFER">XML_FROM_BUFFER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_C14N">XML_FROM_C14N</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_CATALOG">XML_FROM_CATALOG</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_CHECK">XML_FROM_CHECK</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_DATATYPE">XML_FROM_DATATYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_DTD">XML_FROM_DTD</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_FTP">XML_FROM_FTP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_HTML">XML_FROM_HTML</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_HTTP">XML_FROM_HTTP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_I18N">XML_FROM_I18N</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_IO">XML_FROM_IO</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_MEMORY">XML_FROM_MEMORY</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_MODULE">XML_FROM_MODULE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_NAMESPACE">XML_FROM_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_NONE">XML_FROM_NONE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_OUTPUT">XML_FROM_OUTPUT</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_PARSER">XML_FROM_PARSER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_REGEXP">XML_FROM_REGEXP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_RELAXNGP">XML_FROM_RELAXNGP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_RELAXNGV">XML_FROM_RELAXNGV</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_SCHEMASP">XML_FROM_SCHEMASP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_SCHEMASV">XML_FROM_SCHEMASV</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_SCHEMATRONV">XML_FROM_SCHEMATRONV</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_TREE">XML_FROM_TREE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_URI">XML_FROM_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_VALID">XML_FROM_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_WRITER">XML_FROM_WRITER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_XINCLUDE">XML_FROM_XINCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_XPATH">XML_FROM_XPATH</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_XPOINTER">XML_FROM_XPOINTER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_XSLT">XML_FROM_XSLT</a><br />
+<a href="html/libxml-xmlerror.html#XML_FTP_ACCNT">XML_FTP_ACCNT</a><br />
+<a href="html/libxml-xmlerror.html#XML_FTP_EPSV_ANSWER">XML_FTP_EPSV_ANSWER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FTP_PASV_ANSWER">XML_FTP_PASV_ANSWER</a><br />
+<a href="html/libxml-xmlerror.html#XML_FTP_URL_SYNTAX">XML_FTP_URL_SYNTAX</a><br />
+<a href="html/libxml-tree.html#XML_GET_CONTENT">XML_GET_CONTENT</a><br />
+<a href="html/libxml-tree.html#XML_GET_LINE">XML_GET_LINE</a><br />
+<a href="html/libxml-tree.html#XML_HTML_DOCUMENT_NODE">XML_HTML_DOCUMENT_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_HTML_STRUCURE_ERROR">XML_HTML_STRUCURE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_HTML_UNKNOWN_TAG">XML_HTML_UNKNOWN_TAG</a><br />
+<a href="html/libxml-xmlerror.html#XML_HTTP_UNKNOWN_HOST">XML_HTTP_UNKNOWN_HOST</a><br />
+<a href="html/libxml-xmlerror.html#XML_HTTP_URL_SYNTAX">XML_HTTP_URL_SYNTAX</a><br />
+<a href="html/libxml-xmlerror.html#XML_HTTP_USE_IP">XML_HTTP_USE_IP</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_CONV_FAILED">XML_I18N_CONV_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_EXCESS_HANDLER">XML_I18N_EXCESS_HANDLER</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_HANDLER">XML_I18N_NO_HANDLER</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_NAME">XML_I18N_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_OUTPUT">XML_I18N_NO_OUTPUT</a><br />
+<a href="html/libxml-entities.html#XML_INTERNAL_GENERAL_ENTITY">XML_INTERNAL_GENERAL_ENTITY</a><br />
+<a href="html/libxml-entities.html#XML_INTERNAL_PARAMETER_ENTITY">XML_INTERNAL_PARAMETER_ENTITY</a><br />
+<a href="html/libxml-entities.html#XML_INTERNAL_PREDEFINED_ENTITY">XML_INTERNAL_PREDEFINED_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_BUFFER_FULL">XML_IO_BUFFER_FULL</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EACCES">XML_IO_EACCES</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EADDRINUSE">XML_IO_EADDRINUSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EAFNOSUPPORT">XML_IO_EAFNOSUPPORT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EAGAIN">XML_IO_EAGAIN</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EALREADY">XML_IO_EALREADY</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EBADF">XML_IO_EBADF</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EBADMSG">XML_IO_EBADMSG</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EBUSY">XML_IO_EBUSY</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ECANCELED">XML_IO_ECANCELED</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ECHILD">XML_IO_ECHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ECONNREFUSED">XML_IO_ECONNREFUSED</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EDEADLK">XML_IO_EDEADLK</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EDOM">XML_IO_EDOM</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EEXIST">XML_IO_EEXIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EFAULT">XML_IO_EFAULT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EFBIG">XML_IO_EFBIG</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EINPROGRESS">XML_IO_EINPROGRESS</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EINTR">XML_IO_EINTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EINVAL">XML_IO_EINVAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EIO">XML_IO_EIO</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EISCONN">XML_IO_EISCONN</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EISDIR">XML_IO_EISDIR</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EMFILE">XML_IO_EMFILE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EMLINK">XML_IO_EMLINK</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EMSGSIZE">XML_IO_EMSGSIZE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENAMETOOLONG">XML_IO_ENAMETOOLONG</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENCODER">XML_IO_ENCODER</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENETUNREACH">XML_IO_ENETUNREACH</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENFILE">XML_IO_ENFILE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENODEV">XML_IO_ENODEV</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOENT">XML_IO_ENOENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOEXEC">XML_IO_ENOEXEC</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOLCK">XML_IO_ENOLCK</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOMEM">XML_IO_ENOMEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOSPC">XML_IO_ENOSPC</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOSYS">XML_IO_ENOSYS</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOTDIR">XML_IO_ENOTDIR</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOTEMPTY">XML_IO_ENOTEMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOTSOCK">XML_IO_ENOTSOCK</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOTSUP">XML_IO_ENOTSUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENOTTY">XML_IO_ENOTTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ENXIO">XML_IO_ENXIO</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EPERM">XML_IO_EPERM</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EPIPE">XML_IO_EPIPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ERANGE">XML_IO_ERANGE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EROFS">XML_IO_EROFS</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ESPIPE">XML_IO_ESPIPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ESRCH">XML_IO_ESRCH</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_ETIMEDOUT">XML_IO_ETIMEDOUT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_EXDEV">XML_IO_EXDEV</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_FLUSH">XML_IO_FLUSH</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_LOAD_ERROR">XML_IO_LOAD_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_NETWORK_ATTEMPT">XML_IO_NETWORK_ATTEMPT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_NO_INPUT">XML_IO_NO_INPUT</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_UNKNOWN">XML_IO_UNKNOWN</a><br />
+<a href="html/libxml-xmlerror.html#XML_IO_WRITE">XML_IO_WRITE</a><br />
+<a href="html/libxml-tree.html#XML_LOCAL_NAMESPACE">XML_LOCAL_NAMESPACE</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a><br />
+<a href="html/libxml-xmlerror.html#XML_MODULE_CLOSE">XML_MODULE_CLOSE</a><br />
+<a href="html/libxml-xmlmodule.html#XML_MODULE_LAZY">XML_MODULE_LAZY</a><br />
+<a href="html/libxml-xmlmodule.html#XML_MODULE_LOCAL">XML_MODULE_LOCAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_MODULE_OPEN">XML_MODULE_OPEN</a><br />
+<a href="html/libxml-tree.html#XML_NAMESPACE_DECL">XML_NAMESPACE_DECL</a><br />
+<a href="html/libxml-tree.html#XML_NOTATION_NODE">XML_NOTATION_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_ATTRIBUTE_REDEFINED">XML_NS_ERR_ATTRIBUTE_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_COLON">XML_NS_ERR_COLON</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_EMPTY">XML_NS_ERR_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_QNAME">XML_NS_ERR_QNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_UNDEFINED_NAMESPACE">XML_NS_ERR_UNDEFINED_NAMESPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_NS_ERR_XML_NAMESPACE">XML_NS_ERR_XML_NAMESPACE</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_ATTRIBUTE_VALUE">XML_PARSER_ATTRIBUTE_VALUE</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_CDATA_SECTION">XML_PARSER_CDATA_SECTION</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_COMMENT">XML_PARSER_COMMENT</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_CONTENT">XML_PARSER_CONTENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_DEFAULTATTRS">XML_PARSER_DEFAULTATTRS</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_DTD">XML_PARSER_DTD</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_END_TAG">XML_PARSER_END_TAG</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_ENTITY_DECL">XML_PARSER_ENTITY_DECL</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_ENTITY_VALUE">XML_PARSER_ENTITY_VALUE</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_EOF">XML_PARSER_EOF</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_EPILOG">XML_PARSER_EPILOG</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_IGNORE">XML_PARSER_IGNORE</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_LOADDTD">XML_PARSER_LOADDTD</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_MISC">XML_PARSER_MISC</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_PI">XML_PARSER_PI</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_PROLOG">XML_PARSER_PROLOG</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_PUBLIC_LITERAL">XML_PARSER_PUBLIC_LITERAL</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_SEVERITY_ERROR">XML_PARSER_SEVERITY_ERROR</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_SEVERITY_VALIDITY_ERROR">XML_PARSER_SEVERITY_VALIDITY_ERROR</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_SEVERITY_VALIDITY_WARNING">XML_PARSER_SEVERITY_VALIDITY_WARNING</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_SEVERITY_WARNING">XML_PARSER_SEVERITY_WARNING</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_START">XML_PARSER_START</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_START_TAG">XML_PARSER_START_TAG</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_SUBST_ENTITIES">XML_PARSER_SUBST_ENTITIES</a><br />
+<a href="html/libxml-parser.html#XML_PARSER_SYSTEM_LITERAL">XML_PARSER_SYSTEM_LITERAL</a><br />
+<a href="html/libxml-xmlreader.html#XML_PARSER_VALIDATE">XML_PARSER_VALIDATE</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_BIG_LINES">XML_PARSE_BIG_LINES</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_COMPACT">XML_PARSE_COMPACT</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_DOM">XML_PARSE_DOM</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_DTDATTR">XML_PARSE_DTDATTR</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_DTDLOAD">XML_PARSE_DTDLOAD</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_DTDVALID">XML_PARSE_DTDVALID</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_HUGE">XML_PARSE_HUGE</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_IGNORE_ENC">XML_PARSE_IGNORE_ENC</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOBASEFIX">XML_PARSE_NOBASEFIX</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOBLANKS">XML_PARSE_NOBLANKS</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NODICT">XML_PARSE_NODICT</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOENT">XML_PARSE_NOENT</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOERROR">XML_PARSE_NOERROR</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NONET">XML_PARSE_NONET</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOWARNING">XML_PARSE_NOWARNING</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_OLD10">XML_PARSE_OLD10</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_OLDSAX">XML_PARSE_OLDSAX</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_PEDANTIC">XML_PARSE_PEDANTIC</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_PUSH_DOM">XML_PARSE_PUSH_DOM</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_PUSH_SAX">XML_PARSE_PUSH_SAX</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_READER">XML_PARSE_READER</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_RECOVER">XML_PARSE_RECOVER</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_SAX">XML_PARSE_SAX</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_SAX1">XML_PARSE_SAX1</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_UNKNOWN">XML_PARSE_UNKNOWN</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_XINCLUDE">XML_PARSE_XINCLUDE</a><br />
+<a href="html/libxml-pattern.html#XML_PATTERN_DEFAULT">XML_PATTERN_DEFAULT</a><br />
+<a href="html/libxml-pattern.html#XML_PATTERN_XPATH">XML_PATTERN_XPATH</a><br />
+<a href="html/libxml-pattern.html#XML_PATTERN_XSFIELD">XML_PATTERN_XSFIELD</a><br />
+<a href="html/libxml-pattern.html#XML_PATTERN_XSSEL">XML_PATTERN_XSSEL</a><br />
+<a href="html/libxml-tree.html#XML_PI_NODE">XML_PI_NODE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_ATTRIBUTE">XML_READER_TYPE_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_CDATA">XML_READER_TYPE_CDATA</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_COMMENT">XML_READER_TYPE_COMMENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_DOCUMENT">XML_READER_TYPE_DOCUMENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_DOCUMENT_FRAGMENT">XML_READER_TYPE_DOCUMENT_FRAGMENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_DOCUMENT_TYPE">XML_READER_TYPE_DOCUMENT_TYPE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_ELEMENT">XML_READER_TYPE_ELEMENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_END_ELEMENT">XML_READER_TYPE_END_ELEMENT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_END_ENTITY">XML_READER_TYPE_END_ENTITY</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_ENTITY">XML_READER_TYPE_ENTITY</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_ENTITY_REFERENCE">XML_READER_TYPE_ENTITY_REFERENCE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_NONE">XML_READER_TYPE_NONE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_NOTATION">XML_READER_TYPE_NOTATION</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_PROCESSING_INSTRUCTION">XML_READER_TYPE_PROCESSING_INSTRUCTION</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_SIGNIFICANT_WHITESPACE">XML_READER_TYPE_SIGNIFICANT_WHITESPACE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_TEXT">XML_READER_TYPE_TEXT</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_WHITESPACE">XML_READER_TYPE_WHITESPACE</a><br />
+<a href="html/libxml-xmlreader.html#XML_READER_TYPE_XML_DECLARATION">XML_READER_TYPE_XML_DECLARATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_REGEXP_COMPILE_ERROR">XML_REGEXP_COMPILE_ERROR</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNGP_CRNG">XML_RELAXNGP_CRNG</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNGP_FREE_DOC">XML_RELAXNGP_FREE_DOC</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNGP_NONE">XML_RELAXNGP_NONE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ATTREXTRANS">XML_RELAXNG_ERR_ATTREXTRANS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ATTRNAME">XML_RELAXNG_ERR_ATTRNAME</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ATTRNONS">XML_RELAXNG_ERR_ATTRNONS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ATTRVALID">XML_RELAXNG_ERR_ATTRVALID</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ATTRWRONGNS">XML_RELAXNG_ERR_ATTRWRONGNS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_CONTENTVALID">XML_RELAXNG_ERR_CONTENTVALID</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_DATAELEM">XML_RELAXNG_ERR_DATAELEM</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_DATATYPE">XML_RELAXNG_ERR_DATATYPE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_DUPID">XML_RELAXNG_ERR_DUPID</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMEXTRANS">XML_RELAXNG_ERR_ELEMEXTRANS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMNAME">XML_RELAXNG_ERR_ELEMNAME</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMNONS">XML_RELAXNG_ERR_ELEMNONS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMNOTEMPTY">XML_RELAXNG_ERR_ELEMNOTEMPTY</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMWRONG">XML_RELAXNG_ERR_ELEMWRONG</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_ELEMWRONGNS">XML_RELAXNG_ERR_ELEMWRONGNS</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_EXTRACONTENT">XML_RELAXNG_ERR_EXTRACONTENT</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_EXTRADATA">XML_RELAXNG_ERR_EXTRADATA</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_INTEREXTRA">XML_RELAXNG_ERR_INTEREXTRA</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_INTERNAL">XML_RELAXNG_ERR_INTERNAL</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_INTERNODATA">XML_RELAXNG_ERR_INTERNODATA</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_INTERSEQ">XML_RELAXNG_ERR_INTERSEQ</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_INVALIDATTR">XML_RELAXNG_ERR_INVALIDATTR</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_LACKDATA">XML_RELAXNG_ERR_LACKDATA</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_LIST">XML_RELAXNG_ERR_LIST</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_LISTELEM">XML_RELAXNG_ERR_LISTELEM</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_LISTEMPTY">XML_RELAXNG_ERR_LISTEMPTY</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_LISTEXTRA">XML_RELAXNG_ERR_LISTEXTRA</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_MEMORY">XML_RELAXNG_ERR_MEMORY</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_NODEFINE">XML_RELAXNG_ERR_NODEFINE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_NOELEM">XML_RELAXNG_ERR_NOELEM</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_NOGRAMMAR">XML_RELAXNG_ERR_NOGRAMMAR</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_NOSTATE">XML_RELAXNG_ERR_NOSTATE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_NOTELEM">XML_RELAXNG_ERR_NOTELEM</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_TEXTWRONG">XML_RELAXNG_ERR_TEXTWRONG</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_TYPE">XML_RELAXNG_ERR_TYPE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_TYPECMP">XML_RELAXNG_ERR_TYPECMP</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_TYPEVAL">XML_RELAXNG_ERR_TYPEVAL</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_VALELEM">XML_RELAXNG_ERR_VALELEM</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_ERR_VALUE">XML_RELAXNG_ERR_VALUE</a><br />
+<a href="html/libxml-relaxng.html#XML_RELAXNG_OK">XML_RELAXNG_OK</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ANYNAME_ATTR_ANCESTOR">XML_RNGP_ANYNAME_ATTR_ANCESTOR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ATTRIBUTE_CHILDREN">XML_RNGP_ATTRIBUTE_CHILDREN</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ATTRIBUTE_CONTENT">XML_RNGP_ATTRIBUTE_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ATTRIBUTE_EMPTY">XML_RNGP_ATTRIBUTE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ATTRIBUTE_NOOP">XML_RNGP_ATTRIBUTE_NOOP</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ATTR_CONFLICT">XML_RNGP_ATTR_CONFLICT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_CHOICE_CONTENT">XML_RNGP_CHOICE_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_CHOICE_EMPTY">XML_RNGP_CHOICE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_CREATE_FAILURE">XML_RNGP_CREATE_FAILURE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DATA_CONTENT">XML_RNGP_DATA_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DEFINE_CREATE_FAILED">XML_RNGP_DEFINE_CREATE_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DEFINE_EMPTY">XML_RNGP_DEFINE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DEFINE_MISSING">XML_RNGP_DEFINE_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DEFINE_NAME_MISSING">XML_RNGP_DEFINE_NAME_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_DEF_CHOICE_AND_INTERLEAVE">XML_RNGP_DEF_CHOICE_AND_INTERLEAVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEMENT_CONTENT">XML_RNGP_ELEMENT_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEMENT_EMPTY">XML_RNGP_ELEMENT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEMENT_NAME">XML_RNGP_ELEMENT_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEMENT_NO_CONTENT">XML_RNGP_ELEMENT_NO_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEM_CONTENT_EMPTY">XML_RNGP_ELEM_CONTENT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEM_CONTENT_ERROR">XML_RNGP_ELEM_CONTENT_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ELEM_TEXT_CONFLICT">XML_RNGP_ELEM_TEXT_CONFLICT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EMPTY">XML_RNGP_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EMPTY_CONSTRUCT">XML_RNGP_EMPTY_CONSTRUCT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EMPTY_CONTENT">XML_RNGP_EMPTY_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EMPTY_NOT_EMPTY">XML_RNGP_EMPTY_NOT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_ERROR_TYPE_LIB">XML_RNGP_ERROR_TYPE_LIB</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXCEPT_EMPTY">XML_RNGP_EXCEPT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXCEPT_MISSING">XML_RNGP_EXCEPT_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXCEPT_MULTIPLE">XML_RNGP_EXCEPT_MULTIPLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXCEPT_NO_CONTENT">XML_RNGP_EXCEPT_NO_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXTERNALREF_EMTPY">XML_RNGP_EXTERNALREF_EMTPY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXTERNALREF_RECURSE">XML_RNGP_EXTERNALREF_RECURSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_EXTERNAL_REF_FAILURE">XML_RNGP_EXTERNAL_REF_FAILURE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_FORBIDDEN_ATTRIBUTE">XML_RNGP_FORBIDDEN_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_FOREIGN_ELEMENT">XML_RNGP_FOREIGN_ELEMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_GRAMMAR_CONTENT">XML_RNGP_GRAMMAR_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_GRAMMAR_EMPTY">XML_RNGP_GRAMMAR_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_GRAMMAR_MISSING">XML_RNGP_GRAMMAR_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_GRAMMAR_NO_START">XML_RNGP_GRAMMAR_NO_START</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_GROUP_ATTR_CONFLICT">XML_RNGP_GROUP_ATTR_CONFLICT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_HREF_ERROR">XML_RNGP_HREF_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INCLUDE_EMPTY">XML_RNGP_INCLUDE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INCLUDE_FAILURE">XML_RNGP_INCLUDE_FAILURE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INCLUDE_RECURSE">XML_RNGP_INCLUDE_RECURSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INTERLEAVE_ADD">XML_RNGP_INTERLEAVE_ADD</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INTERLEAVE_CREATE_FAILED">XML_RNGP_INTERLEAVE_CREATE_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INTERLEAVE_EMPTY">XML_RNGP_INTERLEAVE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INTERLEAVE_NO_CONTENT">XML_RNGP_INTERLEAVE_NO_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INVALID_DEFINE_NAME">XML_RNGP_INVALID_DEFINE_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INVALID_URI">XML_RNGP_INVALID_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_INVALID_VALUE">XML_RNGP_INVALID_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_MISSING_HREF">XML_RNGP_MISSING_HREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_NAME_MISSING">XML_RNGP_NAME_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_NEED_COMBINE">XML_RNGP_NEED_COMBINE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_NOTALLOWED_NOT_EMPTY">XML_RNGP_NOTALLOWED_NOT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_NSNAME_ATTR_ANCESTOR">XML_RNGP_NSNAME_ATTR_ANCESTOR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_NSNAME_NO_NS">XML_RNGP_NSNAME_NO_NS</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARAM_FORBIDDEN">XML_RNGP_PARAM_FORBIDDEN</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARAM_NAME_MISSING">XML_RNGP_PARAM_NAME_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARENTREF_CREATE_FAILED">XML_RNGP_PARENTREF_CREATE_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARENTREF_NAME_INVALID">XML_RNGP_PARENTREF_NAME_INVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARENTREF_NOT_EMPTY">XML_RNGP_PARENTREF_NOT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARENTREF_NO_NAME">XML_RNGP_PARENTREF_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARENTREF_NO_PARENT">XML_RNGP_PARENTREF_NO_PARENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PARSE_ERROR">XML_RNGP_PARSE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME">XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_ATTR_ATTR">XML_RNGP_PAT_ATTR_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_ATTR_ELEM">XML_RNGP_PAT_ATTR_ELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_ATTR">XML_RNGP_PAT_DATA_EXCEPT_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_ELEM">XML_RNGP_PAT_DATA_EXCEPT_ELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_EMPTY">XML_RNGP_PAT_DATA_EXCEPT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_GROUP">XML_RNGP_PAT_DATA_EXCEPT_GROUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE">XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_LIST">XML_RNGP_PAT_DATA_EXCEPT_LIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_ONEMORE">XML_RNGP_PAT_DATA_EXCEPT_ONEMORE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_REF">XML_RNGP_PAT_DATA_EXCEPT_REF</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_TEXT">XML_RNGP_PAT_DATA_EXCEPT_TEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_ATTR">XML_RNGP_PAT_LIST_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_ELEM">XML_RNGP_PAT_LIST_ELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_INTERLEAVE">XML_RNGP_PAT_LIST_INTERLEAVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_LIST">XML_RNGP_PAT_LIST_LIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_REF">XML_RNGP_PAT_LIST_REF</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_LIST_TEXT">XML_RNGP_PAT_LIST_TEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME">XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME">XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_ONEMORE_GROUP_ATTR">XML_RNGP_PAT_ONEMORE_GROUP_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR">XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_ATTR">XML_RNGP_PAT_START_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_DATA">XML_RNGP_PAT_START_DATA</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_EMPTY">XML_RNGP_PAT_START_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_GROUP">XML_RNGP_PAT_START_GROUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_INTERLEAVE">XML_RNGP_PAT_START_INTERLEAVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_LIST">XML_RNGP_PAT_START_LIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_ONEMORE">XML_RNGP_PAT_START_ONEMORE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_TEXT">XML_RNGP_PAT_START_TEXT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PAT_START_VALUE">XML_RNGP_PAT_START_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_PREFIX_UNDEFINED">XML_RNGP_PREFIX_UNDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_CREATE_FAILED">XML_RNGP_REF_CREATE_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_CYCLE">XML_RNGP_REF_CYCLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_NAME_INVALID">XML_RNGP_REF_NAME_INVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_NOT_EMPTY">XML_RNGP_REF_NOT_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_NO_DEF">XML_RNGP_REF_NO_DEF</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_REF_NO_NAME">XML_RNGP_REF_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_START_CHOICE_AND_INTERLEAVE">XML_RNGP_START_CHOICE_AND_INTERLEAVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_START_CONTENT">XML_RNGP_START_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_START_EMPTY">XML_RNGP_START_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_START_MISSING">XML_RNGP_START_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_TEXT_EXPECTED">XML_RNGP_TEXT_EXPECTED</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_TEXT_HAS_CHILD">XML_RNGP_TEXT_HAS_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_TYPE_MISSING">XML_RNGP_TYPE_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_TYPE_NOT_FOUND">XML_RNGP_TYPE_NOT_FOUND</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_TYPE_VALUE">XML_RNGP_TYPE_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_UNKNOWN_ATTRIBUTE">XML_RNGP_UNKNOWN_ATTRIBUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_UNKNOWN_COMBINE">XML_RNGP_UNKNOWN_COMBINE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_UNKNOWN_CONSTRUCT">XML_RNGP_UNKNOWN_CONSTRUCT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_UNKNOWN_TYPE_LIB">XML_RNGP_UNKNOWN_TYPE_LIB</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_URI_FRAGMENT">XML_RNGP_URI_FRAGMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_URI_NOT_ABSOLUTE">XML_RNGP_URI_NOT_ABSOLUTE</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_VALUE_EMPTY">XML_RNGP_VALUE_EMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_VALUE_NO_CONTENT">XML_RNGP_VALUE_NO_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_XMLNS_NAME">XML_RNGP_XMLNS_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_RNGP_XML_NS">XML_RNGP_XML_NS</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_AS_HTML">XML_SAVE_AS_HTML</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_AS_XML">XML_SAVE_AS_XML</a><br />
+<a href="html/libxml-xmlerror.html#XML_SAVE_CHAR_INVALID">XML_SAVE_CHAR_INVALID</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_FORMAT">XML_SAVE_FORMAT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SAVE_NOT_UTF8">XML_SAVE_NOT_UTF8</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_NO_DECL">XML_SAVE_NO_DECL</a><br />
+<a href="html/libxml-xmlerror.html#XML_SAVE_NO_DOCTYPE">XML_SAVE_NO_DOCTYPE</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_NO_EMPTY">XML_SAVE_NO_EMPTY</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_NO_XHTML">XML_SAVE_NO_XHTML</a><br />
+<a href="html/libxml-xmlerror.html#XML_SAVE_UNKNOWN_ENCODING">XML_SAVE_UNKNOWN_ENCODING</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_WSNONSIG">XML_SAVE_WSNONSIG</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_XHTML">XML_SAVE_XHTML</a><br />
+<a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_AG_PROPS_CORRECT">XML_SCHEMAP_AG_PROPS_CORRECT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ATTRFORMDEFAULT_VALUE">XML_SCHEMAP_ATTRFORMDEFAULT_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ATTRGRP_NONAME_NOREF">XML_SCHEMAP_ATTRGRP_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ATTR_NONAME_NOREF">XML_SCHEMAP_ATTR_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_AU_PROPS_CORRECT">XML_SCHEMAP_AU_PROPS_CORRECT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_AU_PROPS_CORRECT_2">XML_SCHEMAP_AU_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_A_PROPS_CORRECT_2">XML_SCHEMAP_A_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_A_PROPS_CORRECT_3">XML_SCHEMAP_A_PROPS_CORRECT_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF">XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ALL_LIMITED">XML_SCHEMAP_COS_ALL_LIMITED</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_CT_EXTENDS_1_1">XML_SCHEMAP_COS_CT_EXTENDS_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_CT_EXTENDS_1_2">XML_SCHEMAP_COS_CT_EXTENDS_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_CT_EXTENDS_1_3">XML_SCHEMAP_COS_CT_EXTENDS_1_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_DERIVED_OK_2_1">XML_SCHEMAP_COS_ST_DERIVED_OK_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_DERIVED_OK_2_2">XML_SCHEMAP_COS_ST_DERIVED_OK_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_1">XML_SCHEMAP_COS_ST_RESTRICTS_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2">XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_1">XML_SCHEMAP_COS_VALID_DEFAULT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_2_1">XML_SCHEMAP_COS_VALID_DEFAULT_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1">XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2">XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_1">XML_SCHEMAP_CT_PROPS_CORRECT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_2">XML_SCHEMAP_CT_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_3">XML_SCHEMAP_CT_PROPS_CORRECT_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_4">XML_SCHEMAP_CT_PROPS_CORRECT_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_5">XML_SCHEMAP_CT_PROPS_CORRECT_5</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_CVC_SIMPLE_TYPE">XML_SCHEMAP_CVC_SIMPLE_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_C_PROPS_CORRECT">XML_SCHEMAP_C_PROPS_CORRECT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DEF_AND_PREFIX">XML_SCHEMAP_DEF_AND_PREFIX</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ELEMFORMDEFAULT_VALUE">XML_SCHEMAP_ELEMFORMDEFAULT_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ELEM_DEFAULT_FIXED">XML_SCHEMAP_ELEM_DEFAULT_FIXED</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ELEM_NONAME_NOREF">XML_SCHEMAP_ELEM_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_EXTENSION_NO_BASE">XML_SCHEMAP_EXTENSION_NO_BASE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_2">XML_SCHEMAP_E_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_3">XML_SCHEMAP_E_PROPS_CORRECT_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_4">XML_SCHEMAP_E_PROPS_CORRECT_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_5">XML_SCHEMAP_E_PROPS_CORRECT_5</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_6">XML_SCHEMAP_E_PROPS_CORRECT_6</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_FACET_NO_VALUE">XML_SCHEMAP_FACET_NO_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_FAILED_BUILD_IMPORT">XML_SCHEMAP_FAILED_BUILD_IMPORT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_FAILED_LOAD">XML_SCHEMAP_FAILED_LOAD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_FAILED_PARSE">XML_SCHEMAP_FAILED_PARSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_GROUP_NONAME_NOREF">XML_SCHEMAP_GROUP_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI">XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_IMPORT_REDEFINE_NSNAME">XML_SCHEMAP_IMPORT_REDEFINE_NSNAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI">XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI">XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI">XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INTERNAL">XML_SCHEMAP_INTERNAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE">XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_COMBINATION">XML_SCHEMAP_INVALID_ATTR_COMBINATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION">XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_NAME">XML_SCHEMAP_INVALID_ATTR_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_USE">XML_SCHEMAP_INVALID_ATTR_USE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_BOOLEAN">XML_SCHEMAP_INVALID_BOOLEAN</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_ENUM">XML_SCHEMAP_INVALID_ENUM</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_FACET">XML_SCHEMAP_INVALID_FACET</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_FACET_VALUE">XML_SCHEMAP_INVALID_FACET_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_MAXOCCURS">XML_SCHEMAP_INVALID_MAXOCCURS</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_MINOCCURS">XML_SCHEMAP_INVALID_MINOCCURS</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_REF_AND_SUBTYPE">XML_SCHEMAP_INVALID_REF_AND_SUBTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_INVALID_WHITE_SPACE">XML_SCHEMAP_INVALID_WHITE_SPACE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_MG_PROPS_CORRECT_1">XML_SCHEMAP_MG_PROPS_CORRECT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_MG_PROPS_CORRECT_2">XML_SCHEMAP_MG_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD">XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOATTR_NOREF">XML_SCHEMAP_NOATTR_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOROOT">XML_SCHEMAP_NOROOT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOTATION_NO_NAME">XML_SCHEMAP_NOTATION_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOTHING_TO_PARSE">XML_SCHEMAP_NOTHING_TO_PARSE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOTYPE_NOREF">XML_SCHEMAP_NOTYPE_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOT_DETERMINISTIC">XML_SCHEMAP_NOT_DETERMINISTIC</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NOT_SCHEMA">XML_SCHEMAP_NOT_SCHEMA</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NO_XMLNS">XML_SCHEMAP_NO_XMLNS</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_NO_XSI">XML_SCHEMAP_NO_XSI</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_PREFIX_UNDEFINED">XML_SCHEMAP_PREFIX_UNDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_P_PROPS_CORRECT_1">XML_SCHEMAP_P_PROPS_CORRECT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_P_PROPS_CORRECT_2_1">XML_SCHEMAP_P_PROPS_CORRECT_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_P_PROPS_CORRECT_2_2">XML_SCHEMAP_P_PROPS_CORRECT_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_RECURSIVE">XML_SCHEMAP_RECURSIVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_ATTR">XML_SCHEMAP_REDEFINED_ATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_ATTRGROUP">XML_SCHEMAP_REDEFINED_ATTRGROUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_ELEMENT">XML_SCHEMAP_REDEFINED_ELEMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_GROUP">XML_SCHEMAP_REDEFINED_GROUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_NOTATION">XML_SCHEMAP_REDEFINED_NOTATION</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REDEFINED_TYPE">XML_SCHEMAP_REDEFINED_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REF_AND_CONTENT">XML_SCHEMAP_REF_AND_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REF_AND_SUBTYPE">XML_SCHEMAP_REF_AND_SUBTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_REGEXP_INVALID">XML_SCHEMAP_REGEXP_INVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_RESTRICTION_NONAME_NOREF">XML_SCHEMAP_RESTRICTION_NONAME_NOREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_S4S_ATTR_INVALID_VALUE">XML_SCHEMAP_S4S_ATTR_INVALID_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_S4S_ATTR_MISSING">XML_SCHEMAP_S4S_ATTR_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED">XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_S4S_ELEM_MISSING">XML_SCHEMAP_S4S_ELEM_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED">XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SIMPLETYPE_NONAME">XML_SCHEMAP_SIMPLETYPE_NONAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_1">XML_SCHEMAP_SRC_ATTRIBUTE_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_2">XML_SCHEMAP_SRC_ATTRIBUTE_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_3_1">XML_SCHEMAP_SRC_ATTRIBUTE_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_3_2">XML_SCHEMAP_SRC_ATTRIBUTE_3_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_4">XML_SCHEMAP_SRC_ATTRIBUTE_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_CT_1">XML_SCHEMAP_SRC_CT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_1">XML_SCHEMAP_SRC_ELEMENT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_2_1">XML_SCHEMAP_SRC_ELEMENT_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_2_2">XML_SCHEMAP_SRC_ELEMENT_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_3">XML_SCHEMAP_SRC_ELEMENT_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT">XML_SCHEMAP_SRC_IMPORT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_1_1">XML_SCHEMAP_SRC_IMPORT_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_1_2">XML_SCHEMAP_SRC_IMPORT_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_2">XML_SCHEMAP_SRC_IMPORT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_2_1">XML_SCHEMAP_SRC_IMPORT_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_2_2">XML_SCHEMAP_SRC_IMPORT_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_3_1">XML_SCHEMAP_SRC_IMPORT_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_3_2">XML_SCHEMAP_SRC_IMPORT_3_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_INCLUDE">XML_SCHEMAP_SRC_INCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_REDEFINE">XML_SCHEMAP_SRC_REDEFINE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_RESOLVE">XML_SCHEMAP_SRC_RESOLVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_1">XML_SCHEMAP_SRC_SIMPLE_TYPE_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_2">XML_SCHEMAP_SRC_SIMPLE_TYPE_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_3">XML_SCHEMAP_SRC_SIMPLE_TYPE_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_4">XML_SCHEMAP_SRC_SIMPLE_TYPE_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES">XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ST_PROPS_CORRECT_1">XML_SCHEMAP_ST_PROPS_CORRECT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ST_PROPS_CORRECT_2">XML_SCHEMAP_ST_PROPS_CORRECT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_ST_PROPS_CORRECT_3">XML_SCHEMAP_ST_PROPS_CORRECT_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE">XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_TYPE_AND_SUBTYPE">XML_SCHEMAP_TYPE_AND_SUBTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNION_NOT_EXPRESSIBLE">XML_SCHEMAP_UNION_NOT_EXPRESSIBLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ALL_CHILD">XML_SCHEMAP_UNKNOWN_ALL_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD">XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD">XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP">XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ATTR_CHILD">XML_SCHEMAP_UNKNOWN_ATTR_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_BASE_TYPE">XML_SCHEMAP_UNKNOWN_BASE_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_CHOICE_CHILD">XML_SCHEMAP_UNKNOWN_CHOICE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD">XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD">XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_ELEM_CHILD">XML_SCHEMAP_UNKNOWN_ELEM_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD">XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_FACET_CHILD">XML_SCHEMAP_UNKNOWN_FACET_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_FACET_TYPE">XML_SCHEMAP_UNKNOWN_FACET_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_GROUP_CHILD">XML_SCHEMAP_UNKNOWN_GROUP_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_IMPORT_CHILD">XML_SCHEMAP_UNKNOWN_IMPORT_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD">XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_LIST_CHILD">XML_SCHEMAP_UNKNOWN_LIST_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_MEMBER_TYPE">XML_SCHEMAP_UNKNOWN_MEMBER_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_NOTATION_CHILD">XML_SCHEMAP_UNKNOWN_NOTATION_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_PREFIX">XML_SCHEMAP_UNKNOWN_PREFIX</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD">XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_REF">XML_SCHEMAP_UNKNOWN_REF</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD">XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD">XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD">XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD">XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD">XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_TYPE">XML_SCHEMAP_UNKNOWN_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_UNKNOWN_UNION_CHILD">XML_SCHEMAP_UNKNOWN_UNION_CHILD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH">XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_WARN_ATTR_REDECL_PROH">XML_SCHEMAP_WARN_ATTR_REDECL_PROH</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_WARN_SKIP_SCHEMA">XML_SCHEMAP_WARN_SKIP_SCHEMA</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_WARN_UNLOCATED_SCHEMA">XML_SCHEMAP_WARN_UNLOCATED_SCHEMA</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER">XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYSIMPLETYPE">XML_SCHEMAS_ANYSIMPLETYPE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYTYPE">XML_SCHEMAS_ANYTYPE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYURI">XML_SCHEMAS_ANYURI</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BASE64BINARY">XML_SCHEMAS_BASE64BINARY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BOOLEAN">XML_SCHEMAS_BOOLEAN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BYTE">XML_SCHEMAS_BYTE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_DATE">XML_SCHEMAS_DATE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_DATETIME">XML_SCHEMAS_DATETIME</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_DECIMAL">XML_SCHEMAS_DECIMAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_DOUBLE">XML_SCHEMAS_DOUBLE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_DURATION">XML_SCHEMAS_DURATION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ENTITIES">XML_SCHEMAS_ENTITIES</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ENTITY">XML_SCHEMAS_ENTITY</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_">XML_SCHEMAS_ERR_</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_ATTRINVALID">XML_SCHEMAS_ERR_ATTRINVALID</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_ATTRUNKNOWN">XML_SCHEMAS_ERR_ATTRUNKNOWN</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_CONSTRUCT">XML_SCHEMAS_ERR_CONSTRUCT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_ELEMCONT">XML_SCHEMAS_ERR_ELEMCONT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_EXTRACONTENT">XML_SCHEMAS_ERR_EXTRACONTENT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_FACET">XML_SCHEMAS_ERR_FACET</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_HAVEDEFAULT">XML_SCHEMAS_ERR_HAVEDEFAULT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_INTERNAL">XML_SCHEMAS_ERR_INTERNAL</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_INVALIDATTR">XML_SCHEMAS_ERR_INVALIDATTR</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_INVALIDELEM">XML_SCHEMAS_ERR_INVALIDELEM</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_ISABSTRACT">XML_SCHEMAS_ERR_ISABSTRACT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_MISSING">XML_SCHEMAS_ERR_MISSING</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOROLLBACK">XML_SCHEMAS_ERR_NOROLLBACK</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOROOT">XML_SCHEMAS_ERR_NOROOT</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTDETERMINIST">XML_SCHEMAS_ERR_NOTDETERMINIST</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTEMPTY">XML_SCHEMAS_ERR_NOTEMPTY</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTNILLABLE">XML_SCHEMAS_ERR_NOTNILLABLE</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTSIMPLE">XML_SCHEMAS_ERR_NOTSIMPLE</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTTOPLEVEL">XML_SCHEMAS_ERR_NOTTOPLEVEL</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_NOTYPE">XML_SCHEMAS_ERR_NOTYPE</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_OK">XML_SCHEMAS_ERR_OK</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_UNDECLAREDELEM">XML_SCHEMAS_ERR_UNDECLAREDELEM</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_VALUE">XML_SCHEMAS_ERR_VALUE</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_WRONGELEM">XML_SCHEMAS_ERR_WRONGELEM</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMAS_ERR_XXX">XML_SCHEMAS_ERR_XXX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FLOAT">XML_SCHEMAS_FLOAT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_GDAY">XML_SCHEMAS_GDAY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_GMONTH">XML_SCHEMAS_GMONTH</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_GMONTHDAY">XML_SCHEMAS_GMONTHDAY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_GYEAR">XML_SCHEMAS_GYEAR</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_GYEARMONTH">XML_SCHEMAS_GYEARMONTH</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_HEXBINARY">XML_SCHEMAS_HEXBINARY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ID">XML_SCHEMAS_ID</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_IDREF">XML_SCHEMAS_IDREF</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_IDREFS">XML_SCHEMAS_IDREFS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_INT">XML_SCHEMAS_INT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_INTEGER">XML_SCHEMAS_INTEGER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_LANGUAGE">XML_SCHEMAS_LANGUAGE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_LONG">XML_SCHEMAS_LONG</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NAME">XML_SCHEMAS_NAME</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NCNAME">XML_SCHEMAS_NCNAME</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NINTEGER">XML_SCHEMAS_NINTEGER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NMTOKEN">XML_SCHEMAS_NMTOKEN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NMTOKENS">XML_SCHEMAS_NMTOKENS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NNINTEGER">XML_SCHEMAS_NNINTEGER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NORMSTRING">XML_SCHEMAS_NORMSTRING</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NOTATION">XML_SCHEMAS_NOTATION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_NPINTEGER">XML_SCHEMAS_NPINTEGER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_PINTEGER">XML_SCHEMAS_PINTEGER</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QNAME">XML_SCHEMAS_QNAME</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_SHORT">XML_SCHEMAS_SHORT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_STRING">XML_SCHEMAS_STRING</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TIME">XML_SCHEMAS_TIME</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TOKEN">XML_SCHEMAS_TOKEN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_REDEFINED">XML_SCHEMAS_TYPE_REDEFINED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_UBYTE">XML_SCHEMAS_UBYTE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_UINT">XML_SCHEMAS_UINT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ULONG">XML_SCHEMAS_ULONG</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_UNKNOWN">XML_SCHEMAS_UNKNOWN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_USHORT">XML_SCHEMAS_USHORT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMATRONV_ASSERT">XML_SCHEMATRONV_ASSERT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMATRONV_REPORT">XML_SCHEMATRONV_REPORT</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_BUFFER">XML_SCHEMATRON_OUT_BUFFER</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_ERROR">XML_SCHEMATRON_OUT_ERROR</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_FILE">XML_SCHEMATRON_OUT_FILE</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_IO">XML_SCHEMATRON_OUT_IO</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_QUIET">XML_SCHEMATRON_OUT_QUIET</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_TEXT">XML_SCHEMATRON_OUT_TEXT</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_XML">XML_SCHEMATRON_OUT_XML</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_ATTRINVALID">XML_SCHEMAV_ATTRINVALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_ATTRUNKNOWN">XML_SCHEMAV_ATTRUNKNOWN</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CONSTRUCT">XML_SCHEMAV_CONSTRUCT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_1">XML_SCHEMAV_CVC_ATTRIBUTE_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_2">XML_SCHEMAV_CVC_ATTRIBUTE_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_3">XML_SCHEMAV_CVC_ATTRIBUTE_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_4">XML_SCHEMAV_CVC_ATTRIBUTE_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_AU">XML_SCHEMAV_CVC_AU</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_4">XML_SCHEMAV_CVC_COMPLEX_TYPE_4</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_1">XML_SCHEMAV_CVC_ELT_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_2">XML_SCHEMAV_CVC_ELT_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_3_1">XML_SCHEMAV_CVC_ELT_3_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_3_2_1">XML_SCHEMAV_CVC_ELT_3_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_3_2_2">XML_SCHEMAV_CVC_ELT_3_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_4_1">XML_SCHEMAV_CVC_ELT_4_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_4_2">XML_SCHEMAV_CVC_ELT_4_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_4_3">XML_SCHEMAV_CVC_ELT_4_3</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_1_1">XML_SCHEMAV_CVC_ELT_5_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_1_2">XML_SCHEMAV_CVC_ELT_5_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_1">XML_SCHEMAV_CVC_ELT_5_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_2_1">XML_SCHEMAV_CVC_ELT_5_2_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_2_2_1">XML_SCHEMAV_CVC_ELT_5_2_2_2_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_2_2_2">XML_SCHEMAV_CVC_ELT_5_2_2_2_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_6">XML_SCHEMAV_CVC_ELT_6</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ELT_7">XML_SCHEMAV_CVC_ELT_7</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ENUMERATION_VALID">XML_SCHEMAV_CVC_ENUMERATION_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_FACET_VALID">XML_SCHEMAV_CVC_FACET_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID">XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_IDC">XML_SCHEMAV_CVC_IDC</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_LENGTH_VALID">XML_SCHEMAV_CVC_LENGTH_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MAXLENGTH_VALID">XML_SCHEMAV_CVC_MAXLENGTH_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MININCLUSIVE_VALID">XML_SCHEMAV_CVC_MININCLUSIVE_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MINLENGTH_VALID">XML_SCHEMAV_CVC_MINLENGTH_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_PATTERN_VALID">XML_SCHEMAV_CVC_PATTERN_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_TOTALDIGITS_VALID">XML_SCHEMAV_CVC_TOTALDIGITS_VALID</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_TYPE_1">XML_SCHEMAV_CVC_TYPE_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_TYPE_2">XML_SCHEMAV_CVC_TYPE_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_TYPE_3_1_1">XML_SCHEMAV_CVC_TYPE_3_1_1</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_TYPE_3_1_2">XML_SCHEMAV_CVC_TYPE_3_1_2</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_WILDCARD">XML_SCHEMAV_CVC_WILDCARD</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING">XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_ELEMCONT">XML_SCHEMAV_ELEMCONT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_ELEMENT_CONTENT">XML_SCHEMAV_ELEMENT_CONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_EXTRACONTENT">XML_SCHEMAV_EXTRACONTENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_FACET">XML_SCHEMAV_FACET</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_HAVEDEFAULT">XML_SCHEMAV_HAVEDEFAULT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_INTERNAL">XML_SCHEMAV_INTERNAL</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_INVALIDATTR">XML_SCHEMAV_INVALIDATTR</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_INVALIDELEM">XML_SCHEMAV_INVALIDELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_ISABSTRACT">XML_SCHEMAV_ISABSTRACT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_MISC">XML_SCHEMAV_MISC</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_MISSING">XML_SCHEMAV_MISSING</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOROLLBACK">XML_SCHEMAV_NOROLLBACK</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOROOT">XML_SCHEMAV_NOROOT</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTDETERMINIST">XML_SCHEMAV_NOTDETERMINIST</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTEMPTY">XML_SCHEMAV_NOTEMPTY</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTNILLABLE">XML_SCHEMAV_NOTNILLABLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTSIMPLE">XML_SCHEMAV_NOTSIMPLE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTTOPLEVEL">XML_SCHEMAV_NOTTOPLEVEL</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_NOTYPE">XML_SCHEMAV_NOTYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_UNDECLAREDELEM">XML_SCHEMAV_UNDECLAREDELEM</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_VALUE">XML_SCHEMAV_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAV_WRONGELEM">XML_SCHEMAV_WRONGELEM</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_ANY">XML_SCHEMA_CONTENT_ANY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_BASIC">XML_SCHEMA_CONTENT_BASIC</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_ELEMENTS">XML_SCHEMA_CONTENT_ELEMENTS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_EMPTY">XML_SCHEMA_CONTENT_EMPTY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_MIXED">XML_SCHEMA_CONTENT_MIXED</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS">XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_SIMPLE">XML_SCHEMA_CONTENT_SIMPLE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_UNKNOWN">XML_SCHEMA_CONTENT_UNKNOWN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_EXTRA_ATTR_USE_PROHIB">XML_SCHEMA_EXTRA_ATTR_USE_PROHIB</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_EXTRA_QNAMEREF">XML_SCHEMA_EXTRA_QNAMEREF</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_ENUMERATION">XML_SCHEMA_FACET_ENUMERATION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_FRACTIONDIGITS">XML_SCHEMA_FACET_FRACTIONDIGITS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_LENGTH">XML_SCHEMA_FACET_LENGTH</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MAXEXCLUSIVE">XML_SCHEMA_FACET_MAXEXCLUSIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MAXINCLUSIVE">XML_SCHEMA_FACET_MAXINCLUSIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MAXLENGTH">XML_SCHEMA_FACET_MAXLENGTH</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MINEXCLUSIVE">XML_SCHEMA_FACET_MINEXCLUSIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MININCLUSIVE">XML_SCHEMA_FACET_MININCLUSIVE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_MINLENGTH">XML_SCHEMA_FACET_MINLENGTH</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_PATTERN">XML_SCHEMA_FACET_PATTERN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_TOTALDIGITS">XML_SCHEMA_FACET_TOTALDIGITS</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_WHITESPACE">XML_SCHEMA_FACET_WHITESPACE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ALL">XML_SCHEMA_TYPE_ALL</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ANY">XML_SCHEMA_TYPE_ANY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ANY_ATTRIBUTE">XML_SCHEMA_TYPE_ANY_ATTRIBUTE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ATTRIBUTE">XML_SCHEMA_TYPE_ATTRIBUTE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ATTRIBUTEGROUP">XML_SCHEMA_TYPE_ATTRIBUTEGROUP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ATTRIBUTE_USE">XML_SCHEMA_TYPE_ATTRIBUTE_USE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_BASIC">XML_SCHEMA_TYPE_BASIC</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_CHOICE">XML_SCHEMA_TYPE_CHOICE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_COMPLEX">XML_SCHEMA_TYPE_COMPLEX</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_COMPLEX_CONTENT">XML_SCHEMA_TYPE_COMPLEX_CONTENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_ELEMENT">XML_SCHEMA_TYPE_ELEMENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_EXTENSION">XML_SCHEMA_TYPE_EXTENSION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_FACET">XML_SCHEMA_TYPE_FACET</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_GROUP">XML_SCHEMA_TYPE_GROUP</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_KEY">XML_SCHEMA_TYPE_IDC_KEY</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_KEYREF">XML_SCHEMA_TYPE_IDC_KEYREF</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_UNIQUE">XML_SCHEMA_TYPE_IDC_UNIQUE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_LIST">XML_SCHEMA_TYPE_LIST</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_NOTATION">XML_SCHEMA_TYPE_NOTATION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_PARTICLE">XML_SCHEMA_TYPE_PARTICLE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_RESTRICTION">XML_SCHEMA_TYPE_RESTRICTION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_SEQUENCE">XML_SCHEMA_TYPE_SEQUENCE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_SIMPLE">XML_SCHEMA_TYPE_SIMPLE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_SIMPLE_CONTENT">XML_SCHEMA_TYPE_SIMPLE_CONTENT</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_UNION">XML_SCHEMA_TYPE_UNION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_UR">XML_SCHEMA_TYPE_UR</a><br />
+<a href="html/libxml-xmlschemas.html#XML_SCHEMA_VAL_VC_I_CREATE">XML_SCHEMA_VAL_VC_I_CREATE</a><br />
+<a href="html/libxml-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_COLLAPSE">XML_SCHEMA_WHITESPACE_COLLAPSE</a><br />
+<a href="html/libxml-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_PRESERVE">XML_SCHEMA_WHITESPACE_PRESERVE</a><br />
+<a href="html/libxml-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_REPLACE">XML_SCHEMA_WHITESPACE_REPLACE</a><br />
+<a href="html/libxml-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_UNKNOWN">XML_SCHEMA_WHITESPACE_UNKNOWN</a><br />
+<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_NONE">XML_SUBSTITUTE_NONE</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a><br />
+<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_CLOSED">XML_TEXTREADER_MODE_CLOSED</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_EOF">XML_TEXTREADER_MODE_EOF</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_ERROR">XML_TEXTREADER_MODE_ERROR</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_INITIAL">XML_TEXTREADER_MODE_INITIAL</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_INTERACTIVE">XML_TEXTREADER_MODE_INTERACTIVE</a><br />
+<a href="html/libxml-xmlreader.html#XML_TEXTREADER_MODE_READING">XML_TEXTREADER_MODE_READING</a><br />
+<a href="html/libxml-tree.html#XML_TEXT_NODE">XML_TEXT_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_TREE_INVALID_DEC">XML_TREE_INVALID_DEC</a><br />
+<a href="html/libxml-xmlerror.html#XML_TREE_INVALID_HEX">XML_TREE_INVALID_HEX</a><br />
+<a href="html/libxml-xmlerror.html#XML_TREE_NOT_UTF8">XML_TREE_NOT_UTF8</a><br />
+<a href="html/libxml-xmlerror.html#XML_TREE_UNTERMINATED_ENTITY">XML_TREE_UNTERMINATED_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_CATALOG_PI">XML_WAR_CATALOG_PI</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_ENTITY_REDEFINED">XML_WAR_ENTITY_REDEFINED</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_LANG_VALUE">XML_WAR_LANG_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_NS_COLUMN">XML_WAR_NS_COLUMN</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_NS_URI">XML_WAR_NS_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_NS_URI_RELATIVE">XML_WAR_NS_URI_RELATIVE</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_SPACE_VALUE">XML_WAR_SPACE_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_UNDECLARED_ENTITY">XML_WAR_UNDECLARED_ENTITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_WAR_UNKNOWN_VERSION">XML_WAR_UNKNOWN_VERSION</a><br />
+<a href="html/libxml-parser.html#XML_WITH_AUTOMATA">XML_WITH_AUTOMATA</a><br />
+<a href="html/libxml-parser.html#XML_WITH_C14N">XML_WITH_C14N</a><br />
+<a href="html/libxml-parser.html#XML_WITH_CATALOG">XML_WITH_CATALOG</a><br />
+<a href="html/libxml-parser.html#XML_WITH_DEBUG">XML_WITH_DEBUG</a><br />
+<a href="html/libxml-parser.html#XML_WITH_DEBUG_MEM">XML_WITH_DEBUG_MEM</a><br />
+<a href="html/libxml-parser.html#XML_WITH_DEBUG_RUN">XML_WITH_DEBUG_RUN</a><br />
+<a href="html/libxml-parser.html#XML_WITH_EXPR">XML_WITH_EXPR</a><br />
+<a href="html/libxml-parser.html#XML_WITH_FTP">XML_WITH_FTP</a><br />
+<a href="html/libxml-parser.html#XML_WITH_HTML">XML_WITH_HTML</a><br />
+<a href="html/libxml-parser.html#XML_WITH_HTTP">XML_WITH_HTTP</a><br />
+<a href="html/libxml-parser.html#XML_WITH_ICONV">XML_WITH_ICONV</a><br />
+<a href="html/libxml-parser.html#XML_WITH_ICU">XML_WITH_ICU</a><br />
+<a href="html/libxml-parser.html#XML_WITH_ISO8859X">XML_WITH_ISO8859X</a><br />
+<a href="html/libxml-parser.html#XML_WITH_LEGACY">XML_WITH_LEGACY</a><br />
+<a href="html/libxml-parser.html#XML_WITH_LZMA">XML_WITH_LZMA</a><br />
+<a href="html/libxml-parser.html#XML_WITH_MODULES">XML_WITH_MODULES</a><br />
+<a href="html/libxml-parser.html#XML_WITH_NONE">XML_WITH_NONE</a><br />
+<a href="html/libxml-parser.html#XML_WITH_OUTPUT">XML_WITH_OUTPUT</a><br />
+<a href="html/libxml-parser.html#XML_WITH_PATTERN">XML_WITH_PATTERN</a><br />
+<a href="html/libxml-parser.html#XML_WITH_PUSH">XML_WITH_PUSH</a><br />
+<a href="html/libxml-parser.html#XML_WITH_READER">XML_WITH_READER</a><br />
+<a href="html/libxml-parser.html#XML_WITH_REGEXP">XML_WITH_REGEXP</a><br />
+<a href="html/libxml-parser.html#XML_WITH_SAX1">XML_WITH_SAX1</a><br />
+<a href="html/libxml-parser.html#XML_WITH_SCHEMAS">XML_WITH_SCHEMAS</a><br />
+<a href="html/libxml-parser.html#XML_WITH_SCHEMATRON">XML_WITH_SCHEMATRON</a><br />
+<a href="html/libxml-parser.html#XML_WITH_THREAD">XML_WITH_THREAD</a><br />
+<a href="html/libxml-parser.html#XML_WITH_TREE">XML_WITH_TREE</a><br />
+<a href="html/libxml-parser.html#XML_WITH_UNICODE">XML_WITH_UNICODE</a><br />
+<a href="html/libxml-parser.html#XML_WITH_VALID">XML_WITH_VALID</a><br />
+<a href="html/libxml-parser.html#XML_WITH_WRITER">XML_WITH_WRITER</a><br />
+<a href="html/libxml-parser.html#XML_WITH_XINCLUDE">XML_WITH_XINCLUDE</a><br />
+<a href="html/libxml-parser.html#XML_WITH_XPATH">XML_WITH_XPATH</a><br />
+<a href="html/libxml-parser.html#XML_WITH_XPTR">XML_WITH_XPTR</a><br />
+<a href="html/libxml-parser.html#XML_WITH_ZLIB">XML_WITH_ZLIB</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_BUILD_FAILED">XML_XINCLUDE_BUILD_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_DEPRECATED_NS">XML_XINCLUDE_DEPRECATED_NS</a><br />
+<a href="html/libxml-tree.html#XML_XINCLUDE_END">XML_XINCLUDE_END</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_ENTITY_DEF_MISMATCH">XML_XINCLUDE_ENTITY_DEF_MISMATCH</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_FALLBACKS_IN_INCLUDE">XML_XINCLUDE_FALLBACKS_IN_INCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE">XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_FRAGMENT_ID">XML_XINCLUDE_FRAGMENT_ID</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_HREF_URI">XML_XINCLUDE_HREF_URI</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_INCLUDE_IN_INCLUDE">XML_XINCLUDE_INCLUDE_IN_INCLUDE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_INVALID_CHAR">XML_XINCLUDE_INVALID_CHAR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_MULTIPLE_ROOT">XML_XINCLUDE_MULTIPLE_ROOT</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_NO_FALLBACK">XML_XINCLUDE_NO_FALLBACK</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_NO_HREF">XML_XINCLUDE_NO_HREF</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_PARSE_VALUE">XML_XINCLUDE_PARSE_VALUE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_RECURSION">XML_XINCLUDE_RECURSION</a><br />
+<a href="html/libxml-tree.html#XML_XINCLUDE_START">XML_XINCLUDE_START</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_TEXT_DOCUMENT">XML_XINCLUDE_TEXT_DOCUMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_TEXT_FRAGMENT">XML_XINCLUDE_TEXT_FRAGMENT</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_UNKNOWN_ENCODING">XML_XINCLUDE_UNKNOWN_ENCODING</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_XPTR_FAILED">XML_XINCLUDE_XPTR_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_XINCLUDE_XPTR_RESULT">XML_XINCLUDE_XPTR_RESULT</a><br />
+<a href="html/libxml-tree.html#XML_XML_ID">XML_XML_ID</a><br />
+<a href="html/libxml-tree.html#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a><br />
+<a href="html/libxml-xpath.html#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_ENCODING_ERROR">XML_XPATH_ENCODING_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_EXPRESSION_OK">XML_XPATH_EXPRESSION_OK</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_EXPR_ERROR">XML_XPATH_EXPR_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_ARITY">XML_XPATH_INVALID_ARITY</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_CHAR_ERROR">XML_XPATH_INVALID_CHAR_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_CTXT_POSITION">XML_XPATH_INVALID_CTXT_POSITION</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_CTXT_SIZE">XML_XPATH_INVALID_CTXT_SIZE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_OPERAND">XML_XPATH_INVALID_OPERAND</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_PREDICATE_ERROR">XML_XPATH_INVALID_PREDICATE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_TYPE">XML_XPATH_INVALID_TYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_MEMORY_ERROR">XML_XPATH_MEMORY_ERROR</a><br />
+<a href="html/libxml-xpath.html#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_NUMBER_ERROR">XML_XPATH_NUMBER_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_START_LITERAL_ERROR">XML_XPATH_START_LITERAL_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_UNCLOSED_ERROR">XML_XPATH_UNCLOSED_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_UNDEF_PREFIX_ERROR">XML_XPATH_UNDEF_PREFIX_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_UNDEF_VARIABLE_ERROR">XML_XPATH_UNDEF_VARIABLE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_UNFINISHED_LITERAL_ERROR">XML_XPATH_UNFINISHED_LITERAL_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_UNKNOWN_FUNC_ERROR">XML_XPATH_UNKNOWN_FUNC_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPATH_VARIABLE_REF_ERROR">XML_XPATH_VARIABLE_REF_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_CHILDSEQ_START">XML_XPTR_CHILDSEQ_START</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_EVAL_FAILED">XML_XPTR_EVAL_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_EXTRA_OBJECTS">XML_XPTR_EXTRA_OBJECTS</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_RESOURCE_ERROR">XML_XPTR_RESOURCE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_SUB_RESOURCE_ERROR">XML_XPTR_SUB_RESOURCE_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_SYNTAX_ERROR">XML_XPTR_SYNTAX_ERROR</a><br />
+<a href="html/libxml-xmlerror.html#XML_XPTR_UNKNOWN_SCHEME">XML_XPTR_UNKNOWN_SCHEME</a><br />
+<a href="html/libxml-xpath.html#XPATH_BOOLEAN">XPATH_BOOLEAN</a><br />
+<a href="html/libxml-xpath.html#XPATH_ENCODING_ERROR">XPATH_ENCODING_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_EXPRESSION_OK">XPATH_EXPRESSION_OK</a><br />
+<a href="html/libxml-xpath.html#XPATH_EXPR_ERROR">XPATH_EXPR_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_FORBID_VARIABLE_ERROR">XPATH_FORBID_VARIABLE_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_ARITY">XPATH_INVALID_ARITY</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_CHAR_ERROR">XPATH_INVALID_CHAR_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_CTXT">XPATH_INVALID_CTXT</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_CTXT_POSITION">XPATH_INVALID_CTXT_POSITION</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_CTXT_SIZE">XPATH_INVALID_CTXT_SIZE</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_OPERAND">XPATH_INVALID_OPERAND</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_PREDICATE_ERROR">XPATH_INVALID_PREDICATE_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_INVALID_TYPE">XPATH_INVALID_TYPE</a><br />
+<a href="html/libxml-xpath.html#XPATH_LOCATIONSET">XPATH_LOCATIONSET</a><br />
+<a href="html/libxml-xpath.html#XPATH_MEMORY_ERROR">XPATH_MEMORY_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_NODESET">XPATH_NODESET</a><br />
+<a href="html/libxml-xpath.html#XPATH_NUMBER">XPATH_NUMBER</a><br />
+<a href="html/libxml-xpath.html#XPATH_NUMBER_ERROR">XPATH_NUMBER_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_OP_LIMIT_EXCEEDED">XPATH_OP_LIMIT_EXCEEDED</a><br />
+<a href="html/libxml-xpath.html#XPATH_POINT">XPATH_POINT</a><br />
+<a href="html/libxml-xpath.html#XPATH_RANGE">XPATH_RANGE</a><br />
+<a href="html/libxml-xpath.html#XPATH_RECURSION_LIMIT_EXCEEDED">XPATH_RECURSION_LIMIT_EXCEEDED</a><br />
+<a href="html/libxml-xpath.html#XPATH_STACK_ERROR">XPATH_STACK_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_START_LITERAL_ERROR">XPATH_START_LITERAL_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_STRING">XPATH_STRING</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNCLOSED_ERROR">XPATH_UNCLOSED_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNDEFINED">XPATH_UNDEFINED</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNDEF_PREFIX_ERROR">XPATH_UNDEF_PREFIX_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNDEF_VARIABLE_ERROR">XPATH_UNDEF_VARIABLE_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNFINISHED_LITERAL_ERROR">XPATH_UNFINISHED_LITERAL_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_UNKNOWN_FUNC_ERROR">XPATH_UNKNOWN_FUNC_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_USERS">XPATH_USERS</a><br />
+<a href="html/libxml-xpath.html#XPATH_VARIABLE_REF_ERROR">XPATH_VARIABLE_REF_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPATH_XSLT_TREE">XPATH_XSLT_TREE</a><br />
+<a href="html/libxml-xpath.html#XPTR_RESOURCE_ERROR">XPTR_RESOURCE_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPTR_SUB_RESOURCE_ERROR">XPTR_SUB_RESOURCE_ERROR</a><br />
+<a href="html/libxml-xpath.html#XPTR_SYNTAX_ERROR">XPTR_SYNTAX_ERROR</a><br />
+<a href="html/libxml-xpathInternals.html#XP_ERROR">XP_ERROR</a><br />
+<a href="html/libxml-xpathInternals.html#XP_ERROR0">XP_ERROR0</a><br />
+</p><h2>Letter _:</h2><p><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+<a href="html/libxml-HTMLparser.html#_htmlEntityDesc">_htmlEntityDesc</a><br />
+<a href="html/libxml-encoding.html#_uconv_t">_uconv_t</a><br />
+<a href="html/libxml-xlink.html#_xlinkHandler">_xlinkHandler</a><br />
+<a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
+<a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
+<a href="html/libxml-tree.html#_xmlBuffer">_xmlBuffer</a><br />
+<a href="html/libxml-chvalid.html#_xmlChLRange">_xmlChLRange</a><br />
+<a href="html/libxml-chvalid.html#_xmlChRangeGroup">_xmlChRangeGroup</a><br />
+<a href="html/libxml-chvalid.html#_xmlChSRange">_xmlChSRange</a><br />
+<a href="html/libxml-encoding.html#_xmlCharEncodingHandler">_xmlCharEncodingHandler</a><br />
+<a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
+<a href="html/libxml-tree.html#_xmlElement">_xmlElement</a><br />
+<a href="html/libxml-tree.html#_xmlElementContent">_xmlElementContent</a><br />
+<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
+<a href="html/libxml-tree.html#_xmlEnumeration">_xmlEnumeration</a><br />
+<a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
+<a href="html/libxml-globals.html#_xmlGlobalState">_xmlGlobalState</a><br />
+<a href="html/libxml-tree.html#_xmlID">_xmlID</a><br />
+<a href="html/libxml-xpointer.html#_xmlLocationSet">_xmlLocationSet</a><br />
+<a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
+<a href="html/libxml-xpath.html#_xmlNodeSet">_xmlNodeSet</a><br />
+<a href="html/libxml-tree.html#_xmlNotation">_xmlNotation</a><br />
+<a href="html/libxml-tree.html#_xmlNs">_xmlNs</a><br />
+<a href="html/libxml-xmlIO.html#_xmlOutputBuffer">_xmlOutputBuffer</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-xmlIO.html#_xmlParserInputBuffer">_xmlParserInputBuffer</a><br />
+<a href="html/libxml-parser.html#_xmlParserNodeInfo">_xmlParserNodeInfo</a><br />
+<a href="html/libxml-parser.html#_xmlParserNodeInfoSeq">_xmlParserNodeInfoSeq</a><br />
+<a href="html/libxml-tree.html#_xmlRef">_xmlRef</a><br />
+<a href="html/libxml-parser.html#_xmlSAXHandler">_xmlSAXHandler</a><br />
+<a href="html/libxml-parser.html#_xmlSAXHandlerV1">_xmlSAXHandlerV1</a><br />
+<a href="html/libxml-parser.html#_xmlSAXLocator">_xmlSAXLocator</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaAnnot">_xmlSchemaAnnot</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaAttribute">_xmlSchemaAttribute</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaAttributeGroup">_xmlSchemaAttributeGroup</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaAttributeLink">_xmlSchemaAttributeLink</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaFacetLink">_xmlSchemaFacetLink</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaNotation">_xmlSchemaNotation</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaTypeLink">_xmlSchemaTypeLink</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaWildcard">_xmlSchemaWildcard</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchemaWildcardNs">_xmlSchemaWildcardNs</a><br />
+<a href="html/libxml-debugXML.html#_xmlShellCtxt">_xmlShellCtxt</a><br />
+<a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
+<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathAxis">_xmlXPathAxis</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathFunct">_xmlXPathFunct</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathObject">_xmlXPathObject</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathType">_xmlXPathType</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathVariable">_xmlXPathVariable</a><br />
+</p><h2>Letter a:</h2><p><a href="html/libxml-SAX.html#attribute">attribute</a><br />
+<a href="html/libxml-SAX.html#attributeDecl">attributeDecl</a><br />
+<a href="html/libxml-parser.html#attributeDeclSAXFunc">attributeDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#attributeSAXFunc">attributeSAXFunc</a><br />
+</p><h2>Letter c:</h2><p><a href="html/libxml-SAX.html#cdataBlock">cdataBlock</a><br />
+<a href="html/libxml-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a><br />
+<a href="html/libxml-SAX.html#characters">characters</a><br />
+<a href="html/libxml-parser.html#charactersSAXFunc">charactersSAXFunc</a><br />
+<a href="html/libxml-SAX.html#checkNamespace">checkNamespace</a><br />
+<a href="html/libxml-SAX.html#comment">comment</a><br />
+<a href="html/libxml-parser.html#commentSAXFunc">commentSAXFunc</a><br />
+</p><h2>Letter d:</h2><p><a href="html/libxml-DOCBparser.html#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a><br />
+<a href="html/libxml-globals.html#docbDefaultSAXHandler">docbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#docbDefaultSAXHandlerInit">docbDefaultSAXHandlerInit</a><br />
+<a href="html/libxml-DOCBparser.html#docbDocPtr">docbDocPtr</a><br />
+<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
+<a href="html/libxml-DOCBparser.html#docbFreeParserCtxt">docbFreeParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseChunk">docbParseChunk</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseDoc">docbParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseDocument">docbParseDocument</a><br />
+<a href="html/libxml-DOCBparser.html#docbParseFile">docbParseFile</a><br />
+<a href="html/libxml-DOCBparser.html#docbParserCtxt">docbParserCtxt</a><br />
+<a href="html/libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a><br />
+<a href="html/libxml-DOCBparser.html#docbParserInput">docbParserInput</a><br />
+<a href="html/libxml-DOCBparser.html#docbParserInputPtr">docbParserInputPtr</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXHandler">docbSAXHandler</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
+<a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
+</p><h2>Letter e:</h2><p><a href="html/libxml-SAX.html#elementDecl">elementDecl</a><br />
+<a href="html/libxml-parser.html#elementDeclSAXFunc">elementDeclSAXFunc</a><br />
+<a href="html/libxml-xmlregexp.html#emptyExp">emptyExp</a><br />
+<a href="html/libxml-SAX.html#endDocument">endDocument</a><br />
+<a href="html/libxml-parser.html#endDocumentSAXFunc">endDocumentSAXFunc</a><br />
+<a href="html/libxml-SAX.html#endElement">endElement</a><br />
+<a href="html/libxml-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#endElementSAXFunc">endElementSAXFunc</a><br />
+<a href="html/libxml-SAX.html#entityDecl">entityDecl</a><br />
+<a href="html/libxml-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a><br />
+<a href="html/libxml-parser.html#errorSAXFunc">errorSAXFunc</a><br />
+<a href="html/libxml-SAX.html#externalSubset">externalSubset</a><br />
+<a href="html/libxml-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a><br />
+</p><h2>Letter f:</h2><p><a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-xmlregexp.html#forbiddenExp">forbiddenExp</a><br />
+<a href="html/libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a><br />
+<a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+</p><h2>Letter g:</h2><p><a href="html/libxml-SAX.html#getColumnNumber">getColumnNumber</a><br />
+<a href="html/libxml-SAX.html#getEntity">getEntity</a><br />
+<a href="html/libxml-parser.html#getEntitySAXFunc">getEntitySAXFunc</a><br />
+<a href="html/libxml-SAX.html#getLineNumber">getLineNumber</a><br />
+<a href="html/libxml-SAX.html#getNamespace">getNamespace</a><br />
+<a href="html/libxml-SAX.html#getParameterEntity">getParameterEntity</a><br />
+<a href="html/libxml-parser.html#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a><br />
+<a href="html/libxml-SAX.html#getPublicId">getPublicId</a><br />
+<a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
+<a href="html/libxml-SAX.html#globalNamespace">globalNamespace</a><br />
+</p><h2>Letter h:</h2><p><a href="html/libxml-SAX.html#hasExternalSubset">hasExternalSubset</a><br />
+<a href="html/libxml-parser.html#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a><br />
+<a href="html/libxml-SAX.html#hasInternalSubset">hasInternalSubset</a><br />
+<a href="html/libxml-parser.html#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
+<a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-parserInternals.html#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreateMemoryParserCtxt">htmlCreateMemoryParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFd">htmlCtxtReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadIO">htmlCtxtReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReadMemory">htmlCtxtReadMemory</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtReset">htmlCtxtReset</a><br />
+<a href="html/libxml-HTMLparser.html#htmlCtxtUseOptions">htmlCtxtUseOptions</a><br />
+<a href="html/libxml-globals.html#htmlDefaultSAXHandler">htmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#htmlDefaultSAXHandlerInit">htmlDefaultSAXHandlerInit</a><br />
+<a href="html/libxml-HTMLparser.html#htmlDefaultSubelement">htmlDefaultSubelement</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDump">htmlDocDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemory">htmlDocDumpMemory</a><br />
+<a href="html/libxml-HTMLtree.html#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a><br />
+<a href="html/libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElemDescPtr">htmlElemDescPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityDescPtr">htmlEntityDescPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-HTMLparser.html#htmlFreeParserCtxt">htmlFreeParserCtxt</a><br />
+<a href="html/libxml-HTMLtree.html#htmlGetMetaEncoding">htmlGetMetaEncoding</a><br />
+<a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
+<a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
+<a href="html/libxml-HTMLtree.html#htmlIsBooleanAttr">htmlIsBooleanAttr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlIsScriptAttribute">htmlIsScriptAttribute</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDoc">htmlNewDoc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNewParserCtxt">htmlNewParserCtxt</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
+<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseCharRef">htmlParseCharRef</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseChunk">htmlParseChunk</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDocument">htmlParseDocument</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseEntityRef">htmlParseEntityRef</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseFile">htmlParseFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserCtxt">htmlParserCtxt</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserInput">htmlParserInput</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserInputPtr">htmlParserInputPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserNodeInfo">htmlParserNodeInfo</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParserOption">htmlParserOption</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFd">htmlReadFd</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadFile">htmlReadFile</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadIO">htmlReadIO</a><br />
+<a href="html/libxml-HTMLparser.html#htmlReadMemory">htmlReadMemory</a><br />
+<a href="html/libxml-HTMLparser.html#htmlRequiredAttrs">htmlRequiredAttrs</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXHandler">htmlSAXHandler</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFile">htmlSaveFile</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileEnc">htmlSaveFileEnc</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSaveFileFormat">htmlSaveFileFormat</a><br />
+<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
+<a href="html/libxml-HTMLparser.html#htmlStatus">htmlStatus</a><br />
+<a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
+</p><h2>Letter i:</h2><p><a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
+<a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
+<a href="html/libxml-xmlerror.html#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a><br />
+<a href="html/libxml-SAX.html#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#inithtmlDefaultSAXHandler">inithtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-parserInternals.html#inputPop">inputPop</a><br />
+<a href="html/libxml-parserInternals.html#inputPush">inputPush</a><br />
+<a href="html/libxml-SAX.html#internalSubset">internalSubset</a><br />
+<a href="html/libxml-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a><br />
+<a href="html/libxml-SAX.html#isStandalone">isStandalone</a><br />
+<a href="html/libxml-parser.html#isStandaloneSAXFunc">isStandaloneSAXFunc</a><br />
+<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
+</p><h2>Letter n:</h2><p><a href="html/libxml-parserInternals.html#namePop">namePop</a><br />
+<a href="html/libxml-parserInternals.html#namePush">namePush</a><br />
+<a href="html/libxml-SAX.html#namespaceDecl">namespaceDecl</a><br />
+<a href="html/libxml-parserInternals.html#nodePop">nodePop</a><br />
+<a href="html/libxml-parserInternals.html#nodePush">nodePush</a><br />
+<a href="html/libxml-SAX.html#notationDecl">notationDecl</a><br />
+<a href="html/libxml-parser.html#notationDeclSAXFunc">notationDeclSAXFunc</a><br />
+</p><h2>Letter o:</h2><p><a href="html/libxml-globals.html#oldXMLWDcompatibility">oldXMLWDcompatibility</a><br />
+</p><h2>Letter p:</h2><p><a href="html/libxml-SAX.html#processingInstruction">processingInstruction</a><br />
+<a href="html/libxml-parser.html#processingInstructionSAXFunc">processingInstructionSAXFunc</a><br />
+</p><h2>Letter r:</h2><p><a href="html/libxml-SAX.html#reference">reference</a><br />
+<a href="html/libxml-parser.html#referenceSAXFunc">referenceSAXFunc</a><br />
+<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
+<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
+</p><h2>Letter s:</h2><p><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
+<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
+<a href="html/libxml-SAX.html#setNamespace">setNamespace</a><br />
+<a href="html/libxml-SAX.html#startDocument">startDocument</a><br />
+<a href="html/libxml-parser.html#startDocumentSAXFunc">startDocumentSAXFunc</a><br />
+<a href="html/libxml-SAX.html#startElement">startElement</a><br />
+<a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
+<a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
+</p><h2>Letter u:</h2><p><a href="html/libxml-encoding.html#uconv_t">uconv_t</a><br />
+<a href="html/libxml-SAX.html#unparsedEntityDecl">unparsedEntityDecl</a><br />
+<a href="html/libxml-parser.html#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a><br />
+</p><h2>Letter v:</h2><p><a href="html/libxml-xpathInternals.html#valuePop">valuePop</a><br />
+<a href="html/libxml-xpathInternals.html#valuePush">valuePush</a><br />
+</p><h2>Letter w:</h2><p><a href="html/libxml-parser.html#warningSAXFunc">warningSAXFunc</a><br />
+</p><h2>Letter x:</h2><p><a href="html/libxml-xlink.html#xlinkActuate">xlinkActuate</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkGetDefaultDetect">xlinkGetDefaultDetect</a><br />
+<a href="html/libxml-xlink.html#xlinkGetDefaultHandler">xlinkGetDefaultHandler</a><br />
+<a href="html/libxml-xlink.html#xlinkHRef">xlinkHRef</a><br />
+<a href="html/libxml-xlink.html#xlinkHandler">xlinkHandler</a><br />
+<a href="html/libxml-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a><br />
+<a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
+<a href="html/libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a><br />
+<a href="html/libxml-xlink.html#xlinkRole">xlinkRole</a><br />
+<a href="html/libxml-xlink.html#xlinkSetDefaultDetect">xlinkSetDefaultDetect</a><br />
+<a href="html/libxml-xlink.html#xlinkSetDefaultHandler">xlinkSetDefaultHandler</a><br />
+<a href="html/libxml-xlink.html#xlinkShow">xlinkShow</a><br />
+<a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+<a href="html/libxml-xlink.html#xlinkTitle">xlinkTitle</a><br />
+<a href="html/libxml-xlink.html#xlinkType">xlinkType</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogDump">xmlACatalogDump</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogRemove">xmlACatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolve">xmlACatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolvePublic">xmlACatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveSystem">xmlACatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlACatalogResolveURI">xmlACatalogResolveURI</a><br />
+<a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
+<a href="html/libxml-tree.html#xmlAddChildList">xmlAddChildList</a><br />
+<a href="html/libxml-entities.html#xmlAddDocEntity">xmlAddDocEntity</a><br />
+<a href="html/libxml-entities.html#xmlAddDtdEntity">xmlAddDtdEntity</a><br />
+<a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
+<a href="html/libxml-encoding.html#xmlAddEncodingAlias">xmlAddEncodingAlias</a><br />
+<a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
+<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
+<a href="html/libxml-valid.html#xmlAddNotationDecl">xmlAddNotationDecl</a><br />
+<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-valid.html#xmlAddRef">xmlAddRef</a><br />
+<a href="html/libxml-tree.html#xmlAddSibling">xmlAddSibling</a><br />
+<a href="html/libxml-xmlIO.html#xmlAllocOutputBuffer">xmlAllocOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a><br />
+<a href="html/libxml-tree.html#xmlAttr">xmlAttr</a><br />
+<a href="html/libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a><br />
+<a href="html/libxml-tree.html#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a><br />
+<a href="html/libxml-tree.html#xmlAttribute">xmlAttribute</a><br />
+<a href="html/libxml-tree.html#xmlAttributeDefault">xmlAttributeDefault</a><br />
+<a href="html/libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a><br />
+<a href="html/libxml-valid.html#xmlAttributeTable">xmlAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a><br />
+<a href="html/libxml-tree.html#xmlAttributeType">xmlAttributeType</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomata">xmlAutomata</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataGetInitState">xmlAutomataGetInitState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataIsDeterminist">xmlAutomataIsDeterminist</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewState">xmlAutomataNewState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataSetFinalState">xmlAutomataSetFinalState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataState">xmlAutomataState</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a><br />
+<a href="html/libxml-debugXML.html#xmlBoolToText">xmlBoolToText</a><br />
+<a href="html/libxml-tree.html#xmlBuf">xmlBuf</a><br />
+<a href="html/libxml-tree.html#xmlBufContent">xmlBufContent</a><br />
+<a href="html/libxml-tree.html#xmlBufEnd">xmlBufEnd</a><br />
+<a href="html/libxml-tree.html#xmlBufGetNodeContent">xmlBufGetNodeContent</a><br />
+<a href="html/libxml-tree.html#xmlBufNodeDump">xmlBufNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlBufPtr">xmlBufPtr</a><br />
+<a href="html/libxml-tree.html#xmlBufShrink">xmlBufShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufUse">xmlBufUse</a><br />
+<a href="html/libxml-tree.html#xmlBuffer">xmlBuffer</a><br />
+<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
+<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
+<a href="html/libxml-globals.html#xmlBufferAllocScheme">xmlBufferAllocScheme</a><br />
+<a href="html/libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
+<a href="html/libxml-tree.html#xmlBufferContent">xmlBufferContent</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreate">xmlBufferCreate</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateSize">xmlBufferCreateSize</a><br />
+<a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-tree.html#xmlBufferDetach">xmlBufferDetach</a><br />
+<a href="html/libxml-tree.html#xmlBufferDump">xmlBufferDump</a><br />
+<a href="html/libxml-tree.html#xmlBufferEmpty">xmlBufferEmpty</a><br />
+<a href="html/libxml-tree.html#xmlBufferFree">xmlBufferFree</a><br />
+<a href="html/libxml-tree.html#xmlBufferGrow">xmlBufferGrow</a><br />
+<a href="html/libxml-tree.html#xmlBufferLength">xmlBufferLength</a><br />
+<a href="html/libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a><br />
+<a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
+<a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlBufferShrink">xmlBufferShrink</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteChar">xmlBufferWriteChar</a><br />
+<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
+<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
+<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
+<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a><br />
+<a href="html/libxml-c14n.html#xmlC14NMode">xmlC14NMode</a><br />
+<a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+<a href="html/libxml-catalog.html#xmlCatalog">xmlCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogCleanup">xmlCatalogCleanup</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogConvert">xmlCatalogConvert</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogDump">xmlCatalogDump</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogFreeLocal">xmlCatalogFreeLocal</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetPublic">xmlCatalogGetPublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogGetSystem">xmlCatalogGetSystem</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogIsEmpty">xmlCatalogIsEmpty</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogPrefer">xmlCatalogPrefer</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolve">xmlCatalogResolve</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolvePublic">xmlCatalogResolvePublic</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveSystem">xmlCatalogResolveSystem</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogResolveURI">xmlCatalogResolveURI</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a><br />
+<a href="html/libxml-chvalid.html#xmlChLRange">xmlChLRange</a><br />
+<a href="html/libxml-chvalid.html#xmlChLRangePtr">xmlChLRangePtr</a><br />
+<a href="html/libxml-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlChRangeGroupPtr">xmlChRangeGroupPtr</a><br />
+<a href="html/libxml-chvalid.html#xmlChSRange">xmlChSRange</a><br />
+<a href="html/libxml-chvalid.html#xmlChSRangePtr">xmlChSRangePtr</a><br />
+<a href="html/libxml-xmlstring.html#xmlChar">xmlChar</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncInFunc">xmlCharEncInFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
+<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+<a href="html/libxml-xmlstring.html#xmlCharStrdup">xmlCharStrdup</a><br />
+<a href="html/libxml-xmlstring.html#xmlCharStrndup">xmlCharStrndup</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
+<a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+<a href="html/libxml-tree.html#xmlChildElementCount">xmlChildElementCount</a><br />
+<a href="html/libxml-tree.html#xmlChildrenNode">xmlChildrenNode</a><br />
+<a href="html/libxml-encoding.html#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a><br />
+<a href="html/libxml-encoding.html#xmlCleanupEncodingAliases">xmlCleanupEncodingAliases</a><br />
+<a href="html/libxml-globals.html#xmlCleanupGlobals">xmlCleanupGlobals</a><br />
+<a href="html/libxml-xmlIO.html#xmlCleanupInputCallbacks">xmlCleanupInputCallbacks</a><br />
+<a href="html/libxml-xmlmemory.html#xmlCleanupMemory">xmlCleanupMemory</a><br />
+<a href="html/libxml-xmlIO.html#xmlCleanupOutputCallbacks">xmlCleanupOutputCallbacks</a><br />
+<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
+<a href="html/libxml-entities.html#xmlCleanupPredefinedEntities">xmlCleanupPredefinedEntities</a><br />
+<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a><br />
+<a href="html/libxml-catalog.html#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a><br />
+<a href="html/libxml-valid.html#xmlCopyAttributeTable">xmlCopyAttributeTable</a><br />
+<a href="html/libxml-parserInternals.html#xmlCopyChar">xmlCopyChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlCopyCharMultiByte">xmlCopyCharMultiByte</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a><br />
+<a href="html/libxml-tree.html#xmlCopyDtd">xmlCopyDtd</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementContent">xmlCopyElementContent</a><br />
+<a href="html/libxml-valid.html#xmlCopyElementTable">xmlCopyElementTable</a><br />
+<a href="html/libxml-entities.html#xmlCopyEntitiesTable">xmlCopyEntitiesTable</a><br />
+<a href="html/libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a><br />
+<a href="html/libxml-xmlerror.html#xmlCopyError">xmlCopyError</a><br />
+<a href="html/libxml-tree.html#xmlCopyNamespace">xmlCopyNamespace</a><br />
+<a href="html/libxml-tree.html#xmlCopyNamespaceList">xmlCopyNamespaceList</a><br />
+<a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
+<a href="html/libxml-valid.html#xmlCopyNotationTable">xmlCopyNotationTable</a><br />
+<a href="html/libxml-tree.html#xmlCopyProp">xmlCopyProp</a><br />
+<a href="html/libxml-tree.html#xmlCopyPropList">xmlCopyPropList</a><br />
+<a href="html/libxml-parser.html#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a><br />
+<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
+<a href="html/libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateFileParserCtxt">xmlCreateFileParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlCreateIntSubset">xmlCreateIntSubset</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateMemoryParserCtxt">xmlCreateMemoryParserCtxt</a><br />
+<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
+<a href="html/libxml-uri.html#xmlCreateURI">xmlCreateURI</a><br />
+<a href="html/libxml-parserInternals.html#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReadMemory">xmlCtxtReadMemory</a><br />
+<a href="html/libxml-parser.html#xmlCtxtReset">xmlCtxtReset</a><br />
+<a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
+<a href="html/libxml-parser.html#xmlCtxtResetPush">xmlCtxtResetPush</a><br />
+<a href="html/libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a><br />
+<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCtxt">xmlDOMWrapCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapFreeCtxt">xmlDOMWrapFreeCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapNewCtxt">xmlDOMWrapNewCtxt</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugCheckDocument">xmlDebugCheckDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttr">xmlDebugDumpAttr</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDTD">xmlDebugDumpDTD</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocument">xmlDebugDumpDocument</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpEntities">xmlDebugDumpEntities</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNode">xmlDebugDumpNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a><br />
+<a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
+<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-globals.html#xmlDefaultBufferSize">xmlDefaultBufferSize</a><br />
+<a href="html/libxml-globals.html#xmlDefaultSAXHandler">xmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlDefaultSAXHandlerInit">xmlDefaultSAXHandlerInit</a><br />
+<a href="html/libxml-globals.html#xmlDefaultSAXLocator">xmlDefaultSAXLocator</a><br />
+<a href="html/libxml-encoding.html#xmlDelEncodingAlias">xmlDelEncodingAlias</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeDefaultValue">xmlDeregisterNodeDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a><br />
+<a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+<a href="html/libxml-dict.html#xmlDict">xmlDict</a><br />
+<a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
+<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
+<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
+<a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
+<a href="html/libxml-dict.html#xmlDictFree">xmlDictFree</a><br />
+<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
+<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
+<a href="html/libxml-dict.html#xmlDictOwns">xmlDictOwns</a><br />
+<a href="html/libxml-dict.html#xmlDictPtr">xmlDictPtr</a><br />
+<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
+<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
+<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
+<a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
+<a href="html/libxml-threads.html#xmlDllMain">xmlDllMain</a><br />
+<a href="html/libxml-globals.html#xmlDoValidityCheckingDefaultValue">xmlDoValidityCheckingDefaultValue</a><br />
+<a href="html/libxml-tree.html#xmlDoc">xmlDoc</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNodeList">xmlDocCopyNodeList</a><br />
+<a href="html/libxml-tree.html#xmlDocDump">xmlDocDump</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDocProperties">xmlDocProperties</a><br />
+<a href="html/libxml-tree.html#xmlDocPtr">xmlDocPtr</a><br />
+<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
+<a href="html/libxml-tree.html#xmlDtd">xmlDtd</a><br />
+<a href="html/libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a><br />
+<a href="html/libxml-valid.html#xmlDumpAttributeDecl">xmlDumpAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpAttributeTable">xmlDumpAttributeTable</a><br />
+<a href="html/libxml-valid.html#xmlDumpElementDecl">xmlDumpElementDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpElementTable">xmlDumpElementTable</a><br />
+<a href="html/libxml-entities.html#xmlDumpEntitiesTable">xmlDumpEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlDumpEntityDecl">xmlDumpEntityDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpNotationDecl">xmlDumpNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlDumpNotationTable">xmlDumpNotationTable</a><br />
+<a href="html/libxml-tree.html#xmlElemDump">xmlElemDump</a><br />
+<a href="html/libxml-tree.html#xmlElement">xmlElement</a><br />
+<a href="html/libxml-tree.html#xmlElementContent">xmlElementContent</a><br />
+<a href="html/libxml-tree.html#xmlElementContentOccur">xmlElementContentOccur</a><br />
+<a href="html/libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a><br />
+<a href="html/libxml-tree.html#xmlElementContentType">xmlElementContentType</a><br />
+<a href="html/libxml-tree.html#xmlElementPtr">xmlElementPtr</a><br />
+<a href="html/libxml-valid.html#xmlElementTable">xmlElementTable</a><br />
+<a href="html/libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a><br />
+<a href="html/libxml-tree.html#xmlElementType">xmlElementType</a><br />
+<a href="html/libxml-tree.html#xmlElementTypeVal">xmlElementTypeVal</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
+<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-entities.html#xmlEntitiesTable">xmlEntitiesTable</a><br />
+<a href="html/libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a><br />
+<a href="html/libxml-tree.html#xmlEntity">xmlEntity</a><br />
+<a href="html/libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a><br />
+<a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-entities.html#xmlEntityType">xmlEntityType</a><br />
+<a href="html/libxml-tree.html#xmlEnumeration">xmlEnumeration</a><br />
+<a href="html/libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a><br />
+<a href="html/libxml-parserInternals.html#xmlErrMemory">xmlErrMemory</a><br />
+<a href="html/libxml-xmlerror.html#xmlError">xmlError</a><br />
+<a href="html/libxml-xmlerror.html#xmlErrorDomain">xmlErrorDomain</a><br />
+<a href="html/libxml-xmlerror.html#xmlErrorLevel">xmlErrorLevel</a><br />
+<a href="html/libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxt">xmlExpCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFree">xmlExpFree</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFreeCtxt">xmlExpFreeCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNode">xmlExpNode</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNodeType">xmlExpNodeType</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlFeature">xmlFeature</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileClose">xmlFileClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileMatch">xmlFileMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlFileRead">xmlFileRead</a><br />
+<a href="html/libxml-encoding.html#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a><br />
+<a href="html/libxml-tree.html#xmlFirstElementChild">xmlFirstElementChild</a><br />
+<a href="html/libxml-globals.html#xmlFree">xmlFree</a><br />
+<a href="html/libxml-valid.html#xmlFreeAttributeTable">xmlFreeAttributeTable</a><br />
+<a href="html/libxml-xmlautomata.html#xmlFreeAutomata">xmlFreeAutomata</a><br />
+<a href="html/libxml-catalog.html#xmlFreeCatalog">xmlFreeCatalog</a><br />
+<a href="html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a><br />
+<a href="html/libxml-valid.html#xmlFreeDocElementContent">xmlFreeDocElementContent</a><br />
+<a href="html/libxml-tree.html#xmlFreeDtd">xmlFreeDtd</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementContent">xmlFreeElementContent</a><br />
+<a href="html/libxml-valid.html#xmlFreeElementTable">xmlFreeElementTable</a><br />
+<a href="html/libxml-entities.html#xmlFreeEntitiesTable">xmlFreeEntitiesTable</a><br />
+<a href="html/libxml-valid.html#xmlFreeEnumeration">xmlFreeEnumeration</a><br />
+<a href="html/libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a><br />
+<a href="html/libxml-valid.html#xmlFreeIDTable">xmlFreeIDTable</a><br />
+<a href="html/libxml-parserInternals.html#xmlFreeInputStream">xmlFreeInputStream</a><br />
+<a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
+<a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
+<a href="html/libxml-tree.html#xmlFreeNodeList">xmlFreeNodeList</a><br />
+<a href="html/libxml-valid.html#xmlFreeNotationTable">xmlFreeNotationTable</a><br />
+<a href="html/libxml-tree.html#xmlFreeNs">xmlFreeNs</a><br />
+<a href="html/libxml-tree.html#xmlFreeNsList">xmlFreeNsList</a><br />
+<a href="html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a><br />
+<a href="html/libxml-xmlIO.html#xmlFreeParserInputBuffer">xmlFreeParserInputBuffer</a><br />
+<a href="html/libxml-pattern.html#xmlFreePattern">xmlFreePattern</a><br />
+<a href="html/libxml-pattern.html#xmlFreePatternList">xmlFreePatternList</a><br />
+<a href="html/libxml-tree.html#xmlFreeProp">xmlFreeProp</a><br />
+<a href="html/libxml-tree.html#xmlFreePropList">xmlFreePropList</a><br />
+<a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
+<a href="html/libxml-valid.html#xmlFreeRefTable">xmlFreeRefTable</a><br />
+<a href="html/libxml-pattern.html#xmlFreeStreamCtxt">xmlFreeStreamCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlFreeTextReader">xmlFreeTextReader</a><br />
+<a href="html/libxml-xmlwriter.html#xmlFreeTextWriter">xmlFreeTextWriter</a><br />
+<a href="html/libxml-uri.html#xmlFreeURI">xmlFreeURI</a><br />
+<a href="html/libxml-valid.html#xmlFreeValidCtxt">xmlFreeValidCtxt</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
+<a href="html/libxml-globals.html#xmlGenericError">xmlGenericError</a><br />
+<a href="html/libxml-globals.html#xmlGenericErrorContext">xmlGenericErrorContext</a><br />
+<a href="html/libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a><br />
+<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a><br />
+<a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
+<a href="html/libxml-tree.html#xmlGetCompressMode">xmlGetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
+<a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
+<a href="html/libxml-entities.html#xmlGetDtdEntity">xmlGetDtdEntity</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a><br />
+<a href="html/libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a><br />
+<a href="html/libxml-encoding.html#xmlGetEncodingAlias">xmlGetEncodingAlias</a><br />
+<a href="html/libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
+<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-threads.html#xmlGetGlobalState">xmlGetGlobalState</a><br />
+<a href="html/libxml-valid.html#xmlGetID">xmlGetID</a><br />
+<a href="html/libxml-tree.html#xmlGetIntSubset">xmlGetIntSubset</a><br />
+<a href="html/libxml-tree.html#xmlGetLastChild">xmlGetLastChild</a><br />
+<a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
+<a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+<a href="html/libxml-tree.html#xmlGetNodePath">xmlGetNodePath</a><br />
+<a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
+<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
+<a href="html/libxml-entities.html#xmlGetParameterEntity">xmlGetParameterEntity</a><br />
+<a href="html/libxml-entities.html#xmlGetPredefinedEntity">xmlGetPredefinedEntity</a><br />
+<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-valid.html#xmlGetRefs">xmlGetRefs</a><br />
+<a href="html/libxml-threads.html#xmlGetThreadId">xmlGetThreadId</a><br />
+<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-globals.html#xmlGetWarningsDefaultValue">xmlGetWarningsDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlGlobalState">xmlGlobalState</a><br />
+<a href="html/libxml-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a><br />
+<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
+<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
+<a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
+<a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br />
+<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
+<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup">xmlHashQLookup</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup2">xmlHashQLookup2</a><br />
+<a href="html/libxml-hash.html#xmlHashQLookup3">xmlHashQLookup3</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
+<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
+<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
+<a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
+<a href="html/libxml-hash.html#xmlHashSize">xmlHashSize</a><br />
+<a href="html/libxml-hash.html#xmlHashTable">xmlHashTable</a><br />
+<a href="html/libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
+<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
+<a href="html/libxml-tree.html#xmlID">xmlID</a><br />
+<a href="html/libxml-tree.html#xmlIDPtr">xmlIDPtr</a><br />
+<a href="html/libxml-valid.html#xmlIDTable">xmlIDTable</a><br />
+<a href="html/libxml-valid.html#xmlIDTablePtr">xmlIDTablePtr</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPClose">xmlIOFTPClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPMatch">xmlIOFTPMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPOpen">xmlIOFTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOFTPRead">xmlIOFTPRead</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPClose">xmlIOHTTPClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPMatch">xmlIOHTTPMatch</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpen">xmlIOHTTPOpen</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
+<a href="html/libxml-xmlIO.html#xmlIOHTTPRead">xmlIOHTTPRead</a><br />
+<a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
+<a href="html/libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a><br />
+<a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
+<a href="html/libxml-globals.html#xmlInitGlobals">xmlInitGlobals</a><br />
+<a href="html/libxml-xmlmemory.html#xmlInitMemory">xmlInitMemory</a><br />
+<a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlInitParser">xmlInitParser</a><br />
+<a href="html/libxml-parser.html#xmlInitParserCtxt">xmlInitParserCtxt</a><br />
+<a href="html/libxml-threads.html#xmlInitThreads">xmlInitThreads</a><br />
+<a href="html/libxml-catalog.html#xmlInitializeCatalog">xmlInitializeCatalog</a><br />
+<a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
+<a href="html/libxml-globals.html#xmlInitializeGlobalState">xmlInitializeGlobalState</a><br />
+<a href="html/libxml-entities.html#xmlInitializePredefinedEntities">xmlInitializePredefinedEntities</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar">xmlIsBaseChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseCharGroup">xmlIsBaseCharGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseCharQ">xmlIsBaseCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBaseChar_ch">xmlIsBaseChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank">xmlIsBlank</a><br />
+<a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlankQ">xmlIsBlankQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsBlank_ch">xmlIsBlank_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar">xmlIsChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCharGroup">xmlIsCharGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCharQ">xmlIsCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsChar_ch">xmlIsChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombining">xmlIsCombining</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombiningGroup">xmlIsCombiningGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsCombiningQ">xmlIsCombiningQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit">xmlIsDigit</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigitGroup">xmlIsDigitGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigitQ">xmlIsDigitQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsDigit_ch">xmlIsDigit_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender">xmlIsExtender</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtenderGroup">xmlIsExtenderGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtenderQ">xmlIsExtenderQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsExtender_ch">xmlIsExtender_ch</a><br />
+<a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographic">xmlIsIdeographic</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographicGroup">xmlIsIdeographicGroup</a><br />
+<a href="html/libxml-chvalid.html#xmlIsIdeographicQ">xmlIsIdeographicQ</a><br />
+<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
+<a href="html/libxml-threads.html#xmlIsMainThread">xmlIsMainThread</a><br />
+<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar">xmlIsPubidChar</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidCharQ">xmlIsPubidCharQ</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar_ch">xmlIsPubidChar_ch</a><br />
+<a href="html/libxml-chvalid.html#xmlIsPubidChar_tab">xmlIsPubidChar_tab</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+<a href="html/libxml-tree.html#xmlIsXHTML">xmlIsXHTML</a><br />
+<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-globals.html#xmlKeepBlanksDefaultValue">xmlKeepBlanksDefaultValue</a><br />
+<a href="html/libxml-tree.html#xmlLastElementChild">xmlLastElementChild</a><br />
+<a href="html/libxml-globals.html#xmlLastError">xmlLastError</a><br />
+<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
+<a href="html/libxml-globals.html#xmlLineNumbersDefaultValue">xmlLineNumbersDefaultValue</a><br />
+<a href="html/libxml-list.html#xmlLink">xmlLink</a><br />
+<a href="html/libxml-list.html#xmlLinkGetData">xmlLinkGetData</a><br />
+<a href="html/libxml-list.html#xmlLinkPtr">xmlLinkPtr</a><br />
+<a href="html/libxml-list.html#xmlList">xmlList</a><br />
+<a href="html/libxml-list.html#xmlListAppend">xmlListAppend</a><br />
+<a href="html/libxml-list.html#xmlListClear">xmlListClear</a><br />
+<a href="html/libxml-list.html#xmlListCopy">xmlListCopy</a><br />
+<a href="html/libxml-list.html#xmlListCreate">xmlListCreate</a><br />
+<a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
+<a href="html/libxml-list.html#xmlListDeallocator">xmlListDeallocator</a><br />
+<a href="html/libxml-list.html#xmlListDelete">xmlListDelete</a><br />
+<a href="html/libxml-list.html#xmlListDup">xmlListDup</a><br />
+<a href="html/libxml-list.html#xmlListEmpty">xmlListEmpty</a><br />
+<a href="html/libxml-list.html#xmlListEnd">xmlListEnd</a><br />
+<a href="html/libxml-list.html#xmlListFront">xmlListFront</a><br />
+<a href="html/libxml-list.html#xmlListInsert">xmlListInsert</a><br />
+<a href="html/libxml-list.html#xmlListMerge">xmlListMerge</a><br />
+<a href="html/libxml-list.html#xmlListPopBack">xmlListPopBack</a><br />
+<a href="html/libxml-list.html#xmlListPopFront">xmlListPopFront</a><br />
+<a href="html/libxml-list.html#xmlListPtr">xmlListPtr</a><br />
+<a href="html/libxml-list.html#xmlListPushBack">xmlListPushBack</a><br />
+<a href="html/libxml-list.html#xmlListPushFront">xmlListPushFront</a><br />
+<a href="html/libxml-list.html#xmlListRemoveAll">xmlListRemoveAll</a><br />
+<a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
+<a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
+<a href="html/libxml-list.html#xmlListReverse">xmlListReverse</a><br />
+<a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br />
+<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
+<a href="html/libxml-list.html#xmlListSearch">xmlListSearch</a><br />
+<a href="html/libxml-list.html#xmlListSize">xmlListSize</a><br />
+<a href="html/libxml-list.html#xmlListSort">xmlListSort</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
+<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalog">xmlLoadCatalog</a><br />
+<a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
+<a href="html/libxml-globals.html#xmlLoadExtDtdDefaultValue">xmlLoadExtDtdDefaultValue</a><br />
+<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+<a href="html/libxml-xpointer.html#xmlLocationSet">xmlLocationSet</a><br />
+<a href="html/libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a><br />
+<a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
+<a href="html/libxml-debugXML.html#xmlLsCountNode">xmlLsCountNode</a><br />
+<a href="html/libxml-debugXML.html#xmlLsOneNode">xmlLsOneNode</a><br />
+<a href="html/libxml-globals.html#xmlMalloc">xmlMalloc</a><br />
+<a href="html/libxml-globals.html#xmlMallocAtomic">xmlMallocAtomic</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemDisplayLast">xmlMemDisplayLast</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
+<a href="html/libxml-globals.html#xmlMemStrdup">xmlMemStrdup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModule">xmlModule</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleOption">xmlModuleOption</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModulePtr">xmlModulePtr</a><br />
+<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-threads.html#xmlMutex">xmlMutex</a><br />
+<a href="html/libxml-threads.html#xmlMutexLock">xmlMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlMutexPtr">xmlMutexPtr</a><br />
+<a href="html/libxml-threads.html#xmlMutexUnlock">xmlMutexUnlock</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
+<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCloseConnection">xmlNanoFTPCloseConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnect">xmlNanoFTPConnect</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPFreeCtxt">xmlNanoFTPFreeCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPNewCtxt">xmlNanoFTPNewCtxt</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPOpen">xmlNanoFTPOpen</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPQuit">xmlNanoFTPQuit</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPCleanup">xmlNanoHTTPCleanup</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPClose">xmlNanoHTTPClose</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPEncoding">xmlNanoHTTPEncoding</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPRedir">xmlNanoHTTPRedir</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
+<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
+<a href="html/libxml-xmlautomata.html#xmlNewAutomata">xmlNewAutomata</a><br />
+<a href="html/libxml-tree.html#xmlNewCDataBlock">xmlNewCDataBlock</a><br />
+<a href="html/libxml-catalog.html#xmlNewCatalog">xmlNewCatalog</a><br />
+<a href="html/libxml-encoding.html#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a><br />
+<a href="html/libxml-tree.html#xmlNewCharRef">xmlNewCharRef</a><br />
+<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNewComment">xmlNewComment</a><br />
+<a href="html/libxml-tree.html#xmlNewDoc">xmlNewDoc</a><br />
+<a href="html/libxml-tree.html#xmlNewDocComment">xmlNewDocComment</a><br />
+<a href="html/libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a><br />
+<a href="html/libxml-tree.html#xmlNewDocFragment">xmlNewDocFragment</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewDocPI">xmlNewDocPI</a><br />
+<a href="html/libxml-tree.html#xmlNewDocProp">xmlNewDocProp</a><br />
+<a href="html/libxml-tree.html#xmlNewDocRawNode">xmlNewDocRawNode</a><br />
+<a href="html/libxml-tree.html#xmlNewDocText">xmlNewDocText</a><br />
+<a href="html/libxml-tree.html#xmlNewDocTextLen">xmlNewDocTextLen</a><br />
+<a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</a><br />
+<a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
+<a href="html/libxml-entities.html#xmlNewEntity">xmlNewEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewEntityInputStream">xmlNewEntityInputStream</a><br />
+<a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
+<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewInputFromFile">xmlNewInputFromFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewInputStream">xmlNewInputStream</a><br />
+<a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
+<a href="html/libxml-tree.html#xmlNewNode">xmlNewNode</a><br />
+<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
+<a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
+<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
+<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
+<a href="html/libxml-parser.html#xmlNewParserCtxt">xmlNewParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlNewProp">xmlNewProp</a><br />
+<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
+<a href="html/libxml-tree.html#xmlNewReference">xmlNewReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlNewStringInputStream">xmlNewStringInputStream</a><br />
+<a href="html/libxml-tree.html#xmlNewText">xmlNewText</a><br />
+<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlNewTextLen">xmlNewTextLen</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
+<a href="html/libxml-xmlreader.html#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterFilename">xmlNewTextWriterFilename</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
+<a href="html/libxml-valid.html#xmlNewValidCtxt">xmlNewValidCtxt</a><br />
+<a href="html/libxml-parserInternals.html#xmlNextChar">xmlNextChar</a><br />
+<a href="html/libxml-tree.html#xmlNextElementSibling">xmlNextElementSibling</a><br />
+<a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+<a href="html/libxml-tree.html#xmlNode">xmlNode</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
+<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a><br />
+<a href="html/libxml-tree.html#xmlNodeIsText">xmlNodeIsText</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
+<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
+<a href="html/libxml-tree.html#xmlNodePtr">xmlNodePtr</a><br />
+<a href="html/libxml-xpath.html#xmlNodeSet">xmlNodeSet</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetBase">xmlNodeSetBase</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetLang">xmlNodeSetLang</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetName">xmlNodeSetName</a><br />
+<a href="html/libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a><br />
+<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
+<a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
+<a href="html/libxml-tree.html#xmlNotation">xmlNotation</a><br />
+<a href="html/libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a><br />
+<a href="html/libxml-valid.html#xmlNotationTable">xmlNotationTable</a><br />
+<a href="html/libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a><br />
+<a href="html/libxml-tree.html#xmlNs">xmlNs</a><br />
+<a href="html/libxml-tree.html#xmlNsPtr">xmlNsPtr</a><br />
+<a href="html/libxml-tree.html#xmlNsType">xmlNsType</a><br />
+<a href="html/libxml-tree.html#xmlOutputBuffer">xmlOutputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferClose">xmlOutputBufferClose</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-globals.html#xmlOutputBufferCreateFilenameValue">xmlOutputBufferCreateFilenameValue</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferFlush">xmlOutputBufferFlush</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a><br />
+<a href="html/libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a><br />
+<a href="html/libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
+<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
+<a href="html/libxml-catalog.html#xmlParseCatalogFile">xmlParseCatalogFile</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+<a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
+<a href="html/libxml-parser.html#xmlParseChunk">xmlParseChunk</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseContent">xmlParseContent</a><br />
+<a href="html/libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
+<a href="html/libxml-parser.html#xmlParseDTD">xmlParseDTD</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-parser.html#xmlParseDoc">xmlParseDoc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a><br />
+<a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEncName">xmlParseEncName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEncodingDecl">xmlParseEncodingDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEndTag">xmlParseEndTag</a><br />
+<a href="html/libxml-parser.html#xmlParseEntity">xmlParseEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumeratedType">xmlParseEnumeratedType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+<a href="html/libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a><br />
+<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
+<a href="html/libxml-parser.html#xmlParseFile">xmlParseFile</a><br />
+<a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
+<a href="html/libxml-parser.html#xmlParseMemory">xmlParseMemory</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseMisc">xmlParseMisc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseName">xmlParseName</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNmtoken">xmlParseNmtoken</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePI">xmlParsePI</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePITarget">xmlParsePITarget</a><br />
+<a href="html/libxml-parserInternals.html#xmlParsePubidLiteral">xmlParsePubidLiteral</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSystemLiteral">xmlParseSystemLiteral</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</a><br />
+<a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionInfo">xmlParseVersionInfo</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseXMLDecl">xmlParseXMLDecl</a><br />
+<a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
+<a href="html/libxml-tree.html#xmlParserCtxt">xmlParserCtxt</a><br />
+<a href="html/libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a><br />
+<a href="html/libxml-globals.html#xmlParserDebugEntities">xmlParserDebugEntities</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserError">xmlParserError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserGetDirectory">xmlParserGetDirectory</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
+<a href="html/libxml-tree.html#xmlParserInput">xmlParserInput</a><br />
+<a href="html/libxml-tree.html#xmlParserInputBuffer">xmlParserInputBuffer</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a><br />
+<a href="html/libxml-globals.html#xmlParserInputBufferCreateFilenameValue">xmlParserInputBufferCreateFilenameValue</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
+<a href="html/libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
+<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
+<a href="html/libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a><br />
+<a href="html/libxml-parser.html#xmlParserInputRead">xmlParserInputRead</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserInputShrink">xmlParserInputShrink</a><br />
+<a href="html/libxml-parser.html#xmlParserInputState">xmlParserInputState</a><br />
+<a href="html/libxml-parserInternals.html#xmlParserMaxDepth">xmlParserMaxDepth</a><br />
+<a href="html/libxml-parser.html#xmlParserMode">xmlParserMode</a><br />
+<a href="html/libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a><br />
+<a href="html/libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a><br />
+<a href="html/libxml-parser.html#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a><br />
+<a href="html/libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a><br />
+<a href="html/libxml-parser.html#xmlParserOption">xmlParserOption</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileContext">xmlParserPrintFileContext</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserPrintFileInfo">xmlParserPrintFileInfo</a><br />
+<a href="html/libxml-xmlreader.html#xmlParserProperties">xmlParserProperties</a><br />
+<a href="html/libxml-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityError">xmlParserValidityError</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserValidityWarning">xmlParserValidityWarning</a><br />
+<a href="html/libxml-globals.html#xmlParserVersion">xmlParserVersion</a><br />
+<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
+<a href="html/libxml-uri.html#xmlPathToURI">xmlPathToURI</a><br />
+<a href="html/libxml-pattern.html#xmlPattern">xmlPattern</a><br />
+<a href="html/libxml-pattern.html#xmlPatternFlags">xmlPatternFlags</a><br />
+<a href="html/libxml-pattern.html#xmlPatternFromRoot">xmlPatternFromRoot</a><br />
+<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a><br />
+<a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
+<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a><br />
+<a href="html/libxml-globals.html#xmlPedanticParserDefaultValue">xmlPedanticParserDefaultValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlPopInput">xmlPopInput</a><br />
+<a href="html/libxml-xmlIO.html#xmlPopInputCallbacks">xmlPopInputCallbacks</a><br />
+<a href="html/libxml-tree.html#xmlPreviousElementSibling">xmlPreviousElementSibling</a><br />
+<a href="html/libxml-uri.html#xmlPrintURI">xmlPrintURI</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+<a href="html/libxml-threads.html#xmlRMutex">xmlRMutex</a><br />
+<a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
+<a href="html/libxml-threads.html#xmlRMutexPtr">xmlRMutexPtr</a><br />
+<a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
+<a href="html/libxml-parser.html#xmlReadDoc">xmlReadDoc</a><br />
+<a href="html/libxml-parser.html#xmlReadFd">xmlReadFd</a><br />
+<a href="html/libxml-parser.html#xmlReadFile">xmlReadFile</a><br />
+<a href="html/libxml-parser.html#xmlReadIO">xmlReadIO</a><br />
+<a href="html/libxml-parser.html#xmlReadMemory">xmlReadMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForFile">xmlReaderForFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForIO">xmlReaderForIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderForMemory">xmlReaderForMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewDoc">xmlReaderNewDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewFile">xmlReaderNewFile</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewMemory">xmlReaderNewMemory</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderNewWalker">xmlReaderNewWalker</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderTypes">xmlReaderTypes</a><br />
+<a href="html/libxml-xmlreader.html#xmlReaderWalker">xmlReaderWalker</a><br />
+<a href="html/libxml-globals.html#xmlRealloc">xmlRealloc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+<a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
+<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
+<a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a><br />
+<a href="html/libxml-tree.html#xmlRef">xmlRef</a><br />
+<a href="html/libxml-tree.html#xmlRefPtr">xmlRefPtr</a><br />
+<a href="html/libxml-valid.html#xmlRefTable">xmlRefTable</a><br />
+<a href="html/libxml-valid.html#xmlRefTablePtr">xmlRefTablePtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCtxt">xmlRegExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegFreeRegexp">xmlRegFreeRegexp</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexp">xmlRegexp</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpPrint">xmlRegexpPrint</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a><br />
+<a href="html/libxml-encoding.html#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterDefaultOutputCallbacks">xmlRegisterDefaultOutputCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeDefaultValue">xmlRegisterNodeDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a><br />
+<a href="html/libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNG">xmlRelaxNG</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGCleanupTypes">xmlRelaxNGCleanupTypes</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGDump">xmlRelaxNGDump</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGDumpTree">xmlRelaxNGDumpTree</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFree">xmlRelaxNGFree</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFreeParserCtxt">xmlRelaxNGFreeParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGFreeValidCtxt">xmlRelaxNGFreeValidCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGInitTypes">xmlRelaxNGInitTypes</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewMemParserCtxt">xmlRelaxNGNewMemParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParserCtxt">xmlRelaxNGParserCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGParserFlag">xmlRelaxNGParserFlag</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserStructuredErrors">xmlRelaxNGSetParserStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidCtxt">xmlRelaxNGValidCtxt</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidErr">xmlRelaxNGValidErr</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
+<a href="html/libxml-valid.html#xmlRemoveID">xmlRemoveID</a><br />
+<a href="html/libxml-tree.html#xmlRemoveProp">xmlRemoveProp</a><br />
+<a href="html/libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a><br />
+<a href="html/libxml-tree.html#xmlReplaceNode">xmlReplaceNode</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetError">xmlResetError</a><br />
+<a href="html/libxml-xmlerror.html#xmlResetLastError">xmlResetLastError</a><br />
+<a href="html/libxml-tree.html#xmlRootNode">xmlRootNode</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2AttributeDecl">xmlSAX2AttributeDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2CDataBlock">xmlSAX2CDataBlock</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Characters">xmlSAX2Characters</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Comment">xmlSAX2Comment</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ElementDecl">xmlSAX2ElementDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndDocument">xmlSAX2EndDocument</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElement">xmlSAX2EndElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2EntityDecl">xmlSAX2EntityDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ExternalSubset">xmlSAX2ExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetColumnNumber">xmlSAX2GetColumnNumber</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetEntity">xmlSAX2GetEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetLineNumber">xmlSAX2GetLineNumber</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetParameterEntity">xmlSAX2GetParameterEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetPublicId">xmlSAX2GetPublicId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2HasExternalSubset">xmlSAX2HasExternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2HasInternalSubset">xmlSAX2HasInternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitDocbDefaultSAXHandler">xmlSAX2InitDocbDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InitHtmlDefaultSAXHandler">xmlSAX2InitHtmlDefaultSAXHandler</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2InternalSubset">xmlSAX2InternalSubset</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2IsStandalone">xmlSAX2IsStandalone</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2NotationDecl">xmlSAX2NotationDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ProcessingInstruction">xmlSAX2ProcessingInstruction</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2Reference">xmlSAX2Reference</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartDocument">xmlSAX2StartDocument</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2UnparsedEntityDecl">xmlSAX2UnparsedEntityDecl</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+<a href="html/libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a><br />
+<a href="html/libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a><br />
+<a href="html/libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a><br />
+<a href="html/libxml-parser.html#xmlSAXHandlerV1Ptr">xmlSAXHandlerV1Ptr</a><br />
+<a href="html/libxml-tree.html#xmlSAXLocator">xmlSAXLocator</a><br />
+<a href="html/libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a><br />
+<a href="html/libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a><br />
+<a href="html/libxml-SAX2.html#xmlSAXVersion">xmlSAXVersion</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveClose">xmlSaveClose</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveCtxt">xmlSaveCtxt</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFile">xmlSaveFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileEnc">xmlSaveFileEnc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveFlush">xmlSaveFlush</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
+<a href="html/libxml-globals.html#xmlSaveNoEmptyTags">xmlSaveNoEmptyTags</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveOption">xmlSaveOption</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveSetEscape">xmlSaveSetEscape</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToBuffer">xmlSaveToBuffer</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-uri.html#xmlSaveUri">xmlSaveUri</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchema">xmlSchema</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAnnot">xmlSchemaAnnot</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttribute">xmlSchemaAttribute</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttributeGroup">xmlSchemaAttributeGroup</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttributeGroupPtr">xmlSchemaAttributeGroupPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttributeLink">xmlSchemaAttributeLink</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttributeLinkPtr">xmlSchemaAttributeLinkPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCleanupTypes">xmlSchemaCleanupTypes</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValues">xmlSchemaCompareValues</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValuesWhtsp">xmlSchemaCompareValuesWhtsp</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaContentType">xmlSchemaContentType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaDump">xmlSchemaDump</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaElement">xmlSchemaElement</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaElementPtr">xmlSchemaElementPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFacet">xmlSchemaFacet</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFacetLink">xmlSchemaFacetLink</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFacetLinkPtr">xmlSchemaFacetLinkPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFree">xmlSchemaFree</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFreeParserCtxt">xmlSchemaFreeParserCtxt</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFreeType">xmlSchemaFreeType</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaFreeValidCtxt">xmlSchemaFreeValidCtxt</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeValue">xmlSchemaFreeValue</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaInitTypes">xmlSchemaInitTypes</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaIsValid">xmlSchemaIsValid</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewFacet">xmlSchemaNewFacet</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaNotation">xmlSchemaNotation</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaNotationPtr">xmlSchemaNotationPtr</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaParserCtxt">xmlSchemaParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlugStruct">xmlSchemaSAXPlugStruct</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserStructuredErrors">xmlSchemaSetParserStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaType">xmlSchemaType</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaTypeLink">xmlSchemaTypeLink</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaTypeLinkPtr">xmlSchemaTypeLinkPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaVal">xmlSchemaVal</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxt">xmlSchemaValidCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetOptions">xmlSchemaValidCtxtGetOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetParserCtxt">xmlSchemaValidCtxtGetParserCtxt</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidError">xmlSchemaValidError</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidOption">xmlSchemaValidOption</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetFilename">xmlSchemaValidateSetFilename</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueAppend">xmlSchemaValueAppend</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsBoolean">xmlSchemaValueGetAsBoolean</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsString">xmlSchemaValueGetAsString</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaWildcard">xmlSchemaWildcard</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaWildcardNs">xmlSchemaWildcardNs</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaWildcardNsPtr">xmlSchemaWildcardNsPtr</a><br />
+<a href="html/libxml-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematron">xmlSchematron</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFree">xmlSchematronFree</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeParserCtxt">xmlSchematronFreeParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeValidCtxt">xmlSchematronFreeValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParserCtxt">xmlSchematronParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronSetValidStructuredErrors">xmlSchematronSetValidStructuredErrors</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidCtxt">xmlSchematronValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidOptions">xmlSchematronValidOptions</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
+<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
+<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
+<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+<a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
+<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
+<a href="html/libxml-parserInternals.html#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a><br />
+<a href="html/libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-tree.html#xmlSetListDoc">xmlSetListDoc</a><br />
+<a href="html/libxml-tree.html#xmlSetNs">xmlSetNs</a><br />
+<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+<a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />
+<a href="html/libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a><br />
+<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
+<a href="html/libxml-debugXML.html#xmlShellBase">xmlShellBase</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCtxt">xmlShellCtxt</a><br />
+<a href="html/libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDir">xmlShellDir</a><br />
+<a href="html/libxml-debugXML.html#xmlShellDu">xmlShellDu</a><br />
+<a href="html/libxml-debugXML.html#xmlShellList">xmlShellList</a><br />
+<a href="html/libxml-debugXML.html#xmlShellLoad">xmlShellLoad</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintNode">xmlShellPrintNode</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathError">xmlShellPrintXPathError</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a><br />
+<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
+<a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
+<a href="html/libxml-debugXML.html#xmlShellSave">xmlShellSave</a><br />
+<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
+<a href="html/libxml-debugXML.html#xmlShellWrite">xmlShellWrite</a><br />
+<a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
+<a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+<a href="html/libxml-parserInternals.html#xmlSplitQName">xmlSplitQName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
+<a href="html/libxml-parser.html#xmlStopParser">xmlStopParser</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcmp">xmlStrcmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
+<a href="html/libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a><br />
+<a href="html/libxml-pattern.html#xmlStreamCtxt">xmlStreamCtxt</a><br />
+<a href="html/libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
+<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringComment">xmlStringComment</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
+<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
+<a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringText">xmlStringText</a><br />
+<a href="html/libxml-parserInternals.html#xmlStringTextNoenc">xmlStringTextNoenc</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrlen">xmlStrlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrncmp">xmlStrncmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrndup">xmlStrndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
+<a href="html/libxml-globals.html#xmlStructuredError">xmlStructuredError</a><br />
+<a href="html/libxml-globals.html#xmlStructuredErrorContext">xmlStructuredErrorContext</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
+<a href="html/libxml-globals.html#xmlSubstituteEntitiesDefaultValue">xmlSubstituteEntitiesDefaultValue</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchEncoding">xmlSwitchEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a><br />
+<a href="html/libxml-parserInternals.html#xmlSwitchToEncoding">xmlSwitchToEncoding</a><br />
+<a href="html/libxml-tree.html#xmlTextConcat">xmlTextConcat</a><br />
+<a href="html/libxml-tree.html#xmlTextMerge">xmlTextMerge</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReader">xmlTextReader</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderAttributeCount">xmlTextReaderAttributeCount</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderBaseUri">xmlTextReaderBaseUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstBaseUri">xmlTextReaderConstBaseUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstEncoding">xmlTextReaderConstEncoding</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstLocalName">xmlTextReaderConstLocalName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstName">xmlTextReaderConstName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstNamespaceUri">xmlTextReaderConstNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstPrefix">xmlTextReaderConstPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlVersion">xmlTextReaderConstXmlVersion</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderDepth">xmlTextReaderDepth</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserColumnNumber">xmlTextReaderGetParserColumnNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserLineNumber">xmlTextReaderGetParserLineNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderHasAttributes">xmlTextReaderHasAttributes</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderHasValue">xmlTextReaderHasValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsEmptyElement">xmlTextReaderIsEmptyElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderIsValid">xmlTextReaderIsValid</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocalName">xmlTextReaderLocalName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMode">xmlTextReaderMode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttribute">xmlTextReaderMoveToAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNs">xmlTextReaderMoveToAttributeNs</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToFirstAttribute">xmlTextReaderMoveToFirstAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToNextAttribute">xmlTextReaderMoveToNextAttribute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderName">xmlTextReaderName</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNamespaceUri">xmlTextReaderNamespaceUri</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNext">xmlTextReaderNext</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPrefix">xmlTextReaderPrefix</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderQuoteChar">xmlTextReaderQuoteChar</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadState">xmlTextReaderReadState</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriter">xmlTextWriter</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndAttribute">xmlTextWriterEndAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndComment">xmlTextWriterEndComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndElement">xmlTextWriterEndElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndPI">xmlTextWriterEndPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterFlush">xmlTextWriterFlush</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndent">xmlTextWriterSetIndent</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndentString">xmlTextWriterSetIndentString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterSetQuoteChar">xmlTextWriterSetQuoteChar</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartAttribute">xmlTextWriterStartAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartAttributeNS">xmlTextWriterStartAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartCDATA">xmlTextWriterStartCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartComment">xmlTextWriterStartComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTD">xmlTextWriterStartDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDAttlist">xmlTextWriterStartDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDElement">xmlTextWriterStartDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartDocument">xmlTextWriterStartDocument</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartElement">xmlTextWriterStartElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartElementNS">xmlTextWriterStartElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterStartPI">xmlTextWriterStartPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteAttribute">xmlTextWriterWriteAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteAttributeNS">xmlTextWriterWriteAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBase64">xmlTextWriterWriteBase64</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteBinHex">xmlTextWriterWriteBinHex</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteCDATA">xmlTextWriterWriteCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteComment">xmlTextWriterWriteComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDAttlist">xmlTextWriterWriteDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteElement">xmlTextWriterWriteElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteElementNS">xmlTextWriterWriteElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatCDATA">xmlTextWriterWriteFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatComment">xmlTextWriterWriteFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDAttlist">xmlTextWriterWriteFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDElement">xmlTextWriterWriteFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElement">xmlTextWriterWriteFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElementNS">xmlTextWriterWriteFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatPI">xmlTextWriterWriteFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatRaw">xmlTextWriterWriteFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatString">xmlTextWriterWriteFormatString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWritePI">xmlTextWriterWritePI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRaw">xmlTextWriterWriteRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteString">xmlTextWriterWriteString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttribute">xmlTextWriterWriteVFormatAttribute</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttributeNS">xmlTextWriterWriteVFormatAttributeNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatCDATA">xmlTextWriterWriteVFormatCDATA</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatComment">xmlTextWriterWriteVFormatComment</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDAttlist">xmlTextWriterWriteVFormatDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDElement">xmlTextWriterWriteVFormatDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElement">xmlTextWriterWriteVFormatElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatElementNS">xmlTextWriterWriteVFormatElementNS</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatPI">xmlTextWriterWriteVFormatPI</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatString">xmlTextWriterWriteVFormatString</a><br />
+<a href="html/libxml-globals.html#xmlThrDefBufferAllocScheme">xmlThrDefBufferAllocScheme</a><br />
+<a href="html/libxml-globals.html#xmlThrDefDefaultBufferSize">xmlThrDefDefaultBufferSize</a><br />
+<a href="html/libxml-globals.html#xmlThrDefDeregisterNodeDefault">xmlThrDefDeregisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefDoValidityCheckingDefaultValue">xmlThrDefDoValidityCheckingDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefGetWarningsDefaultValue">xmlThrDefGetWarningsDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefIndentTreeOutput">xmlThrDefIndentTreeOutput</a><br />
+<a href="html/libxml-globals.html#xmlThrDefKeepBlanksDefaultValue">xmlThrDefKeepBlanksDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefLineNumbersDefaultValue">xmlThrDefLineNumbersDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefLoadExtDtdDefaultValue">xmlThrDefLoadExtDtdDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefOutputBufferCreateFilenameDefault">xmlThrDefOutputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefParserDebugEntities">xmlThrDefParserDebugEntities</a><br />
+<a href="html/libxml-globals.html#xmlThrDefParserInputBufferCreateFilenameDefault">xmlThrDefParserInputBufferCreateFilenameDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefPedanticParserDefaultValue">xmlThrDefPedanticParserDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefRegisterNodeDefault">xmlThrDefRegisterNodeDefault</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSaveNoEmptyTags">xmlThrDefSaveNoEmptyTags</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSetGenericErrorFunc">xmlThrDefSetGenericErrorFunc</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSetStructuredErrorFunc">xmlThrDefSetStructuredErrorFunc</a><br />
+<a href="html/libxml-globals.html#xmlThrDefSubstituteEntitiesDefaultValue">xmlThrDefSubstituteEntitiesDefaultValue</a><br />
+<a href="html/libxml-globals.html#xmlThrDefTreeIndentString">xmlThrDefTreeIndentString</a><br />
+<a href="html/libxml-globals.html#xmlTreeIndentString">xmlTreeIndentString</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsAegeanNumbers">xmlUCSIsAegeanNumbers</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsAlphabeticPresentationForms">xmlUCSIsAlphabeticPresentationForms</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsArabic">xmlUCSIsArabic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsArabicPresentationFormsA">xmlUCSIsArabicPresentationFormsA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsArabicPresentationFormsB">xmlUCSIsArabicPresentationFormsB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsArmenian">xmlUCSIsArmenian</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsArrows">xmlUCSIsArrows</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBasicLatin">xmlUCSIsBasicLatin</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBengali">xmlUCSIsBengali</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBlock">xmlUCSIsBlock</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBlockElements">xmlUCSIsBlockElements</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofo">xmlUCSIsBopomofo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofoExtended">xmlUCSIsBopomofoExtended</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBoxDrawing">xmlUCSIsBoxDrawing</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBraillePatterns">xmlUCSIsBraillePatterns</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsBuhid">xmlUCSIsBuhid</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsByzantineMusicalSymbols">xmlUCSIsByzantineMusicalSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibility">xmlUCSIsCJKCompatibility</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibilityForms">xmlUCSIsCJKCompatibilityForms</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibilityIdeographs">xmlUCSIsCJKCompatibilityIdeographs</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKCompatibilityIdeographsSupplement">xmlUCSIsCJKCompatibilityIdeographsSupplement</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKRadicalsSupplement">xmlUCSIsCJKRadicalsSupplement</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKSymbolsandPunctuation">xmlUCSIsCJKSymbolsandPunctuation</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographs">xmlUCSIsCJKUnifiedIdeographs</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographsExtensionA">xmlUCSIsCJKUnifiedIdeographsExtensionA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographsExtensionB">xmlUCSIsCJKUnifiedIdeographsExtensionB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCat">xmlUCSIsCat</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatC">xmlUCSIsCatC</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatCc">xmlUCSIsCatCc</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatCf">xmlUCSIsCatCf</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatCo">xmlUCSIsCatCo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatCs">xmlUCSIsCatCs</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatL">xmlUCSIsCatL</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatLl">xmlUCSIsCatLl</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatLm">xmlUCSIsCatLm</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatLo">xmlUCSIsCatLo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatLt">xmlUCSIsCatLt</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatLu">xmlUCSIsCatLu</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatM">xmlUCSIsCatM</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatMc">xmlUCSIsCatMc</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatMe">xmlUCSIsCatMe</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatMn">xmlUCSIsCatMn</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatN">xmlUCSIsCatN</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatNd">xmlUCSIsCatNd</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatNl">xmlUCSIsCatNl</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatNo">xmlUCSIsCatNo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatP">xmlUCSIsCatP</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPc">xmlUCSIsCatPc</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPd">xmlUCSIsCatPd</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPe">xmlUCSIsCatPe</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPf">xmlUCSIsCatPf</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPi">xmlUCSIsCatPi</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPo">xmlUCSIsCatPo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatPs">xmlUCSIsCatPs</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatS">xmlUCSIsCatS</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatSc">xmlUCSIsCatSc</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatSk">xmlUCSIsCatSk</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatSm">xmlUCSIsCatSm</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatSo">xmlUCSIsCatSo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatZ">xmlUCSIsCatZ</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatZl">xmlUCSIsCatZl</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatZp">xmlUCSIsCatZp</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCatZs">xmlUCSIsCatZs</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCherokee">xmlUCSIsCherokee</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningDiacriticalMarks">xmlUCSIsCombiningDiacriticalMarks</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningDiacriticalMarksforSymbols">xmlUCSIsCombiningDiacriticalMarksforSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningHalfMarks">xmlUCSIsCombiningHalfMarks</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCombiningMarksforSymbols">xmlUCSIsCombiningMarksforSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsControlPictures">xmlUCSIsControlPictures</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCurrencySymbols">xmlUCSIsCurrencySymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCypriotSyllabary">xmlUCSIsCypriotSyllabary</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCyrillic">xmlUCSIsCyrillic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsCyrillicSupplement">xmlUCSIsCyrillicSupplement</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsDeseret">xmlUCSIsDeseret</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsDevanagari">xmlUCSIsDevanagari</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsDingbats">xmlUCSIsDingbats</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsEnclosedAlphanumerics">xmlUCSIsEnclosedAlphanumerics</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsEnclosedCJKLettersandMonths">xmlUCSIsEnclosedCJKLettersandMonths</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsEthiopic">xmlUCSIsEthiopic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGeneralPunctuation">xmlUCSIsGeneralPunctuation</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGeometricShapes">xmlUCSIsGeometricShapes</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGeorgian">xmlUCSIsGeorgian</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGothic">xmlUCSIsGothic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGreek">xmlUCSIsGreek</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGreekExtended">xmlUCSIsGreekExtended</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGreekandCoptic">xmlUCSIsGreekandCoptic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGujarati">xmlUCSIsGujarati</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsGurmukhi">xmlUCSIsGurmukhi</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHalfwidthandFullwidthForms">xmlUCSIsHalfwidthandFullwidthForms</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHangulCompatibilityJamo">xmlUCSIsHangulCompatibilityJamo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHangulJamo">xmlUCSIsHangulJamo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHangulSyllables">xmlUCSIsHangulSyllables</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHanunoo">xmlUCSIsHanunoo</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHebrew">xmlUCSIsHebrew</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHighPrivateUseSurrogates">xmlUCSIsHighPrivateUseSurrogates</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHighSurrogates">xmlUCSIsHighSurrogates</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsHiragana">xmlUCSIsHiragana</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsIPAExtensions">xmlUCSIsIPAExtensions</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsIdeographicDescriptionCharacters">xmlUCSIsIdeographicDescriptionCharacters</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKanbun">xmlUCSIsKanbun</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKangxiRadicals">xmlUCSIsKangxiRadicals</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKannada">xmlUCSIsKannada</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKatakana">xmlUCSIsKatakana</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKatakanaPhoneticExtensions">xmlUCSIsKatakanaPhoneticExtensions</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKhmer">xmlUCSIsKhmer</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsKhmerSymbols">xmlUCSIsKhmerSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLao">xmlUCSIsLao</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLatin1Supplement">xmlUCSIsLatin1Supplement</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLatinExtendedA">xmlUCSIsLatinExtendedA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLatinExtendedAdditional">xmlUCSIsLatinExtendedAdditional</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLatinExtendedB">xmlUCSIsLatinExtendedB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLetterlikeSymbols">xmlUCSIsLetterlikeSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLimbu">xmlUCSIsLimbu</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLinearBIdeograms">xmlUCSIsLinearBIdeograms</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLinearBSyllabary">xmlUCSIsLinearBSyllabary</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsLowSurrogates">xmlUCSIsLowSurrogates</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMalayalam">xmlUCSIsMalayalam</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMathematicalAlphanumericSymbols">xmlUCSIsMathematicalAlphanumericSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMathematicalOperators">xmlUCSIsMathematicalOperators</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousMathematicalSymbolsA">xmlUCSIsMiscellaneousMathematicalSymbolsA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousMathematicalSymbolsB">xmlUCSIsMiscellaneousMathematicalSymbolsB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousSymbols">xmlUCSIsMiscellaneousSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousSymbolsandArrows">xmlUCSIsMiscellaneousSymbolsandArrows</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousTechnical">xmlUCSIsMiscellaneousTechnical</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMongolian">xmlUCSIsMongolian</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMusicalSymbols">xmlUCSIsMusicalSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsMyanmar">xmlUCSIsMyanmar</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsNumberForms">xmlUCSIsNumberForms</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsOgham">xmlUCSIsOgham</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsOldItalic">xmlUCSIsOldItalic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsOpticalCharacterRecognition">xmlUCSIsOpticalCharacterRecognition</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsOriya">xmlUCSIsOriya</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsOsmanya">xmlUCSIsOsmanya</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsPhoneticExtensions">xmlUCSIsPhoneticExtensions</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsPrivateUse">xmlUCSIsPrivateUse</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsPrivateUseArea">xmlUCSIsPrivateUseArea</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsRunic">xmlUCSIsRunic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsShavian">xmlUCSIsShavian</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSinhala">xmlUCSIsSinhala</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSmallFormVariants">xmlUCSIsSmallFormVariants</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSpacingModifierLetters">xmlUCSIsSpacingModifierLetters</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSpecials">xmlUCSIsSpecials</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSuperscriptsandSubscripts">xmlUCSIsSuperscriptsandSubscripts</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementalArrowsA">xmlUCSIsSupplementalArrowsA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementalArrowsB">xmlUCSIsSupplementalArrowsB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementalMathematicalOperators">xmlUCSIsSupplementalMathematicalOperators</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementaryPrivateUseAreaA">xmlUCSIsSupplementaryPrivateUseAreaA</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSupplementaryPrivateUseAreaB">xmlUCSIsSupplementaryPrivateUseAreaB</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsSyriac">xmlUCSIsSyriac</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTagalog">xmlUCSIsTagalog</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTagbanwa">xmlUCSIsTagbanwa</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTags">xmlUCSIsTags</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTaiLe">xmlUCSIsTaiLe</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTaiXuanJingSymbols">xmlUCSIsTaiXuanJingSymbols</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTamil">xmlUCSIsTamil</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTelugu">xmlUCSIsTelugu</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsThaana">xmlUCSIsThaana</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsThai">xmlUCSIsThai</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsTibetan">xmlUCSIsTibetan</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsUgaritic">xmlUCSIsUgaritic</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsUnifiedCanadianAboriginalSyllabics">xmlUCSIsUnifiedCanadianAboriginalSyllabics</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsVariationSelectors">xmlUCSIsVariationSelectors</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsVariationSelectorsSupplement">xmlUCSIsVariationSelectorsSupplement</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsYiRadicals">xmlUCSIsYiRadicals</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsYiSyllables">xmlUCSIsYiSyllables</a><br />
+<a href="html/libxml-xmlunicode.html#xmlUCSIsYijingHexagramSymbols">xmlUCSIsYijingHexagramSymbols</a><br />
+<a href="html/libxml-uri.html#xmlURI">xmlURI</a><br />
+<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
+<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
+<a href="html/libxml-uri.html#xmlURIPtr">xmlURIPtr</a><br />
+<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Charcmp">xmlUTF8Charcmp</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Size">xmlUTF8Size</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strndup">xmlUTF8Strndup</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
+<a href="html/libxml-tree.html#xmlUnlinkNode">xmlUnlinkNode</a><br />
+<a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
+<a href="html/libxml-tree.html#xmlUnsetNsProp">xmlUnsetNsProp</a><br />
+<a href="html/libxml-tree.html#xmlUnsetProp">xmlUnsetProp</a><br />
+<a href="html/libxml-valid.html#xmlValidBuildContentModel">xmlValidBuildContentModel</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxt">xmlValidCtxt</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a><br />
+<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
+<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
+<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidState">xmlValidState</a><br />
+<a href="html/libxml-valid.html#xmlValidStatePtr">xmlValidStatePtr</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
+<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
+<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-valid.html#xmlValidateElement">xmlValidateElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
+<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
+<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
+<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
+<a href="html/libxml-valid.html#xmlValidateNameValue">xmlValidateNameValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNamesValue">xmlValidateNamesValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokenValue">xmlValidateNmtokenValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNmtokensValue">xmlValidateNmtokensValue</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
+<a href="html/libxml-valid.html#xmlValidateNotationUse">xmlValidateNotationUse</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
+<a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushCData">xmlValidatePushCData</a><br />
+<a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
+<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
+<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
+<a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
+<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeCtxt">xmlXIncludeCtxt</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeFreeContext">xmlXIncludeFreeContext</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeNewContext">xmlXIncludeNewContext</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxis">xmlXPathAxis</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisPtr">xmlXPathAxisPtr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastBooleanToNumber">xmlXPathCastBooleanToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastBooleanToString">xmlXPathCastBooleanToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToBoolean">xmlXPathCastNodeSetToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToNumber">xmlXPathCastNodeSetToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeSetToString">xmlXPathCastNodeSetToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeToNumber">xmlXPathCastNodeToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNodeToString">xmlXPathCastNodeToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNumberToBoolean">xmlXPathCastNumberToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastNumberToString">xmlXPathCastNumberToString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastStringToBoolean">xmlXPathCastStringToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastStringToNumber">xmlXPathCastStringToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToBoolean">xmlXPathCastToBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToNumber">xmlXPathCastToNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCastToString">xmlXPathCastToString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCheckError">xmlXPathCheckError</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCmpNodes">xmlXPathCmpNodes</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompExpr">xmlXPathCompExpr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompile">xmlXPathCompile</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCompiledEvalToBoolean">xmlXPathCompiledEvalToBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathConcatFunction">xmlXPathConcatFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathContainsFunction">xmlXPathContainsFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContext">xmlXPathContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertFunc">xmlXPathConvertFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertNumber">xmlXPathConvertNumber</a><br />
+<a href="html/libxml-xpath.html#xmlXPathConvertString">xmlXPathConvertString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCountFunction">xmlXPathCountFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEmptyNodeSet">xmlXPathEmptyNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEqualValues">xmlXPathEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathErr">xmlXPathErr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathError">xmlXPathError</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvalExpr">xmlXPathEvalExpr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalFunc">xmlXPathEvalFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFalseFunction">xmlXPathFalseFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeCompExpr">xmlXPathFreeCompExpr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeContext">xmlXPathFreeContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFreeObject">xmlXPathFreeObject</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFreeParserContext">xmlXPathFreeParserContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFuncPtr">xmlXPathFuncPtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFunct">xmlXPathFunct</a><br />
+<a href="html/libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookupNS">xmlXPathFunctionLookupNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathGetContextNode">xmlXPathGetContextNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathGetDocument">xmlXPathGetDocument</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathGetError">xmlXPathGetError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
+<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathIsNodeType">xmlXPathIsNodeType</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLastFunction">xmlXPathLastFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathLocalNameFunction">xmlXPathLocalNameFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNAN">xmlXPathNAN</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNINF">xmlXPathNINF</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNamespaceURIFunction">xmlXPathNamespaceURIFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewBoolean">xmlXPathNewBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewCString">xmlXPathNewCString</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewFloat">xmlXPathNewFloat</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewNodeSetList">xmlXPathNewNodeSetList</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewParserContext">xmlXPathNewParserContext</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewString">xmlXPathNewString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextAttribute">xmlXPathNextAttribute</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextChild">xmlXPathNextChild</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowing">xmlXPathNextFollowing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextNamespace">xmlXPathNextNamespace</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextParent">xmlXPathNextParent</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPreceding">xmlXPathNextPreceding</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetContains">xmlXPathNodeSetContains</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetIsEmpty">xmlXPathNodeSetIsEmpty</a><br />
+<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetSort">xmlXPathNodeSetSort</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNotFunction">xmlXPathNotFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNsLookup">xmlXPathNsLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNumberFunction">xmlXPathNumberFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObject">xmlXPathObject</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObjectCopy">xmlXPathObjectCopy</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a><br />
+<a href="html/libxml-xpath.html#xmlXPathObjectType">xmlXPathObjectType</a><br />
+<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
+<a href="html/libxml-xpath.html#xmlXPathPINF">xmlXPathPINF</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseNCName">xmlXPathParseNCName</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathParseName">xmlXPathParseName</a><br />
+<a href="html/libxml-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a><br />
+<a href="html/libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopBoolean">xmlXPathPopBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopExternal">xmlXPathPopExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopNumber">xmlXPathPopNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPopString">xmlXPathPopString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathPositionFunction">xmlXPathPositionFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterAllFunctions">xmlXPathRegisterAllFunctions</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFunc">xmlXPathRegisterFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncLookup">xmlXPathRegisterFuncLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncNS">xmlXPathRegisterFuncNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterNs">xmlXPathRegisterNs</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariable">xmlXPathRegisterVariable</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableLookup">xmlXPathRegisterVariableLookup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredFuncsCleanup">xmlXPathRegisteredFuncsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredNsCleanup">xmlXPathRegisteredNsCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRegisteredVariablesCleanup">xmlXPathRegisteredVariablesCleanup</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnBoolean">xmlXPathReturnBoolean</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnEmptyNodeSet">xmlXPathReturnEmptyNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnEmptyString">xmlXPathReturnEmptyString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnExternal">xmlXPathReturnExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnFalse">xmlXPathReturnFalse</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnNodeSet">xmlXPathReturnNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnNumber">xmlXPathReturnNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnString">xmlXPathReturnString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathReturnTrue">xmlXPathReturnTrue</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoot">xmlXPathRoot</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSetArityError">xmlXPathSetArityError</a><br />
+<a href="html/libxml-xpath.html#xmlXPathSetContextNode">xmlXPathSetContextNode</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSetError">xmlXPathSetError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSetTypeError">xmlXPathSetTypeError</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStackIsExternal">xmlXPathStackIsExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStackIsNodeSet">xmlXPathStackIsNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStartsWithFunction">xmlXPathStartsWithFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathSumFunction">xmlXPathSumFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathTrueFunction">xmlXPathTrueFunction</a><br />
+<a href="html/libxml-xpath.html#xmlXPathType">xmlXPathType</a><br />
+<a href="html/libxml-xpath.html#xmlXPathTypePtr">xmlXPathTypePtr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariable">xmlXPathVariable</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookup">xmlXPathVariableLookup</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookupNS">xmlXPathVariableLookupNS</a><br />
+<a href="html/libxml-xpath.html#xmlXPathVariablePtr">xmlXPathVariablePtr</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapCString">xmlXPathWrapCString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapExternal">xmlXPathWrapExternal</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapNodeSet">xmlXPathWrapNodeSet</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathWrapString">xmlXPathWrapString</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPatherror">xmlXPatherror</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetCreate">xmlXPtrLocationSetCreate</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodeSet">xmlXPtrNewLocationSetNodeSet</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangeNodes">xmlXPtrNewRangeNodes</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrWrapLocationSet">xmlXPtrWrapLocationSet</a><br />
+</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>
diff --git a/libxml2-2.9.10/doc/ChangeLog.xsl b/libxml2-2.9.10/doc/ChangeLog.xsl
new file mode 100644
index 0000000..7073ba2
--- /dev/null
+++ b/libxml2-2.9.10/doc/ChangeLog.xsl
@@ -0,0 +1,117 @@
+<?xml version="1.0"?>
+<!-- this stylesheet builds the ChangeLog.html -->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+ <!-- Import the rest of the site stylesheets -->
+ <xsl:import href="site.xsl"/>
+
+ <!-- Generate XHTML-1.0 transitional -->
+ <xsl:output method="xml" encoding="UTF-8" indent="yes"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+ <xsl:param name="module">libxml2</xsl:param>
+
+ <!-- The table of content for the HTML page -->
+ <xsl:variable name="menu_name">API Menu</xsl:variable>
+ <xsl:variable name="develtoc">
+ <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><!-- style="margin-left: -1em" -->
+ <li><a style="font-weight:bold"
+ href="{$href_base}index.html">Main Menu</a></li>
+ <li><a style="font-weight:bold"
+ href="{$href_base}docs.html">Developer Menu</a></li>
+ <li><a style="font-weight:bold"
+ href="{$href_base}html/index.html">Modules Index</a></li>
+ <li><a style="font-weight:bold"
+ href="{$href_base}examples/index.html">Code Examples</a></li>
+ <li><a style="font-weight:bold"
+ href="index.html">API Menu</a></li>
+ <li><a href="html/libxml-parser.html">Parser API</a></li>
+ <li><a href="html/libxml-tree.html">Tree API</a></li>
+ <li><a href="html/libxml-xmlreader.html">Reader API</a></li>
+ <li><a href="{$href_base}guidelines.html">XML Guidelines</a></li>
+ </ul>
+ </xsl:variable>
+
+ <xsl:template match="bug">
+ <a href="http://bugzilla.gnome.org/show_bug.cgi?id={@number}">
+ <xsl:value-of select="@number"/></a>
+ </xsl:template>
+
+ <xsl:template match="item">
+ <li><xsl:apply-templates/></li>
+ </xsl:template>
+
+ <xsl:template match="entry">
+
+ <p>
+ <b><xsl:value-of select="@who"/></b>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@date"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@timezone"/>
+ <ul>
+ <xsl:apply-templates select="item"/>
+ </ul>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="log">
+ <xsl:variable name="title">ChangeLog last entries of <xsl:value-of select="$module"/></xsl:variable>
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:element name="title">
+ <xsl:value-of select="$title"/>
+ </xsl:element>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="develtoc"/>
+ </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">
+ <xsl:apply-templates select="entry"/>
+ <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libxml2-2.9.10/doc/DOM.gif b/libxml2-2.9.10/doc/DOM.gif
new file mode 100644
index 0000000..a44882f
--- /dev/null
+++ b/libxml2-2.9.10/doc/DOM.gif
Binary files differ
diff --git a/libxml2-2.9.10/doc/DOM.html b/libxml2-2.9.10/doc/DOM.html
new file mode 100644
index 0000000..3266788
--- /dev/null
+++ b/libxml2-2.9.10/doc/DOM.html
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>DOM Principles</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>DOM Principles</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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/DOM/">DOM</a> stands for the <em>Document
+Object Model</em>; this is an API for accessing XML or HTML structured
+documents. Native support for DOM in Gnome is on the way (module gnome-dom),
+and will be based on gnome-xml. This will be a far cleaner interface to
+manipulate XML files within Gnome since it won't expose the internal
+structure.</p><p>The current DOM implementation on top of libxml2 is the <a href="http://svn.gnome.org/viewvc/gdome2/trunk/">gdome2 Gnome module</a>, this
+is a full DOM interface, thanks to Paolo Casarini, check the <a href="http://gdome2.cs.unibo.it/">Gdome2 homepage</a> for more
+information.</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>
diff --git a/libxml2-2.9.10/doc/FAQ.html b/libxml2-2.9.10/doc/FAQ.html
new file mode 100644
index 0000000..e80cef6
--- /dev/null
+++ b/libxml2-2.9.10/doc/FAQ.html
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>FAQ</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>FAQ</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>Table of Contents:</p><ul>
+ <li><a href="FAQ.html#License">License(s)</a></li>
+ <li><a href="FAQ.html#Installati">Installation</a></li>
+ <li><a href="FAQ.html#Compilatio">Compilation</a></li>
+ <li><a href="FAQ.html#Developer">Developer corner</a></li>
+</ul><h3><a name="License" id="License">License</a>(s)</h3><ol>
+ <li><em>Licensing Terms for libxml</em>
+ <p>libxml2 is released under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
+ License</a>; see the file Copyright in the distribution for the precise
+ wording</p>
+ </li>
+ <li><em>Can I embed libxml2 in a proprietary application ?</em>
+ <p>Yes. The MIT License allows you to keep proprietary the changes you
+ made to libxml, but it would be graceful to send-back bug fixes and
+ improvements as patches for possible incorporation in the main
+ development tree.</p>
+ </li>
+</ol><h3><a name="Installati" id="Installati">Installation</a></h3><ol>
+ <li><strong><span style="background-color: #FF0000">Do Not Use
+ libxml1</span></strong>, use libxml2</li>
+ <p></p>
+ <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>Most Linux and BSD distributions include libxml, this is probably the
+ safer 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>
+ </li>
+ <p></p>
+ <li><em>I see libxml and libxml2 releases, which one should I install ?</em>
+ <ul>
+ <li>If you are not constrained by backward compatibility issues with
+ existing applications, install libxml2 only</li>
+ <li>If you are not doing development, you can safely install both.
+ Usually the packages <a href="http://rpmfind.net/linux/RPM/libxml.html">libxml</a> and <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml2</a> are
+ compatible (this is not the case for development packages).</li>
+ <li>If you are a developer and your system provides separate packaging
+ for shared libraries and the development components, it is possible
+ to 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>
+ too for libxml2 &gt;= 2.3.0</li>
+ <li>If you are developing a new application, please develop against
+ libxml2(-devel)</li>
+ </ul>
+ </li>
+ <li><em>I can't install the libxml package, it conflicts with libxml0</em>
+ <p>You probably have an old libxml0 package used to provide the shared
+ library for libxml.so.0, you can probably safely remove it. The libxml
+ packages provided on <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a> provide
+ libxml.so.0</p>
+ </li>
+ <li><em>I can't install the libxml(2) RPM package due to failed
+ dependencies</em>
+ <p>The most generic solution is to re-fetch the latest src.rpm , and
+ rebuild it locally with</p>
+ <p><code>rpm --rebuild libxml(2)-xxx.src.rpm</code>.</p>
+ <p>If everything goes well it will generate two binary rpm packages (one
+ providing the shared libs and xmllint, and the other one, the -devel
+ package, providing includes, static libraries and scripts needed to build
+ applications with libxml(2)) that you can install locally.</p>
+ </li>
+</ol><h3><a name="Compilatio" id="Compilatio">Compilation</a></h3><ol>
+ <li><em>What is the process to compile libxml2 ?</em>
+ <p>As most UNIX libraries libxml2 follows the "standard":</p>
+ <p><code>gunzip -c xxx.tar.gz | tar xvf -</code></p>
+ <p><code>cd libxml-xxxx</code></p>
+ <p><code>./configure --help</code></p>
+ <p>to see the options, then the compilation/installation proper</p>
+ <p><code>./configure [possible options]</code></p>
+ <p><code>make</code></p>
+ <p><code>make install</code></p>
+ <p>At that point you may have to rerun ldconfig or a similar utility to
+ update your list of installed shared libs.</p>
+ </li>
+ <li><em>What other libraries are needed to compile/install libxml2 ?</em>
+ <p>Libxml2 does not require any other library, the normal C ANSI API
+ should be sufficient (please report any violation to this rule you may
+ find).</p>
+ <p>However if found at configuration time libxml2 will detect and use the
+ following libs:</p>
+ <ul>
+ <li><a href="http://www.info-zip.org/pub/infozip/zlib/">libz</a> : a
+ highly portable and available widely compression library.</li>
+ <li>iconv: a powerful character encoding conversion library. It is
+ included by default in recent glibc libraries, so it doesn't need to
+ be installed specifically on Linux. It now seems a <a href="http://www.opennc.org/onlinepubs/7908799/xsh/iconv.html">part
+ of the official UNIX</a> specification. Here is one <a href="http://www.gnu.org/software/libiconv/">implementation of the
+ library</a> which source can be found <a href="ftp://ftp.ilog.fr/pub/Users/haible/gnu/">here</a>.</li>
+ </ul>
+ </li>
+ <p></p>
+ <li><em>Make check fails on some platforms</em>
+ <p>Sometimes the regression tests' results don't completely match the
+ value produced by the parser, and the makefile uses diff to print the
+ delta. On some platforms the diff return breaks the compilation process;
+ if the diff is small this is probably not a serious problem.</p>
+ <p>Sometimes (especially on Solaris) make checks fail due to limitations
+ in make. Try using GNU-make instead.</p>
+ </li>
+ <li><em>I use the SVN version and there is no configure script</em>
+ <p>The configure script (and other Makefiles) are generated. Use the
+ autogen.sh script to regenerate the configure script and Makefiles,
+ like:</p>
+ <p><code>./autogen.sh --prefix=/usr --disable-shared</code></p>
+ </li>
+ <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 the
+ optimizer which miscompiles the URI module. Please use another
+ compiler.</p>
+ </li>
+</ol><h3><a name="Developer" id="Developer">Developer</a> corner</h3><ol>
+ <li><em>Troubles compiling or linking programs using libxml2</em>
+ <p>Usually the problem comes from the fact that the compiler doesn't get
+ the right compilation or linking flags. There is a small shell script
+ <code>xml2-config</code> which is installed as part of libxml2 usual
+ install process which provides those flags. Use</p>
+ <p><code>xml2-config --cflags</code></p>
+ <p>to get the compilation flags and</p>
+ <p><code>xml2-config --libs</code></p>
+ <p>to get the linker flags. Usually this is done directly from the
+ Makefile as:</p>
+ <p><code>CFLAGS=`xml2-config --cflags`</code></p>
+ <p><code>LIBS=`xml2-config --libs`</code></p>
+ </li>
+ <li><em>I want to install my own copy of libxml2 in my home directory and
+ link my programs against it, but it doesn't work</em>
+ <p>There are many different ways to accomplish this. Here is one way to
+ do this under Linux. Suppose your home directory is <code>/home/user.
+ </code>Then:</p>
+ <ul>
+ <li>Create a subdirectory, let's call it <code>myxml</code></li>
+ <li>unpack the libxml2 distribution into that subdirectory</li>
+ <li>chdir into the unpacked distribution
+ (<code>/home/user/myxml/libxml2 </code>)</li>
+ <li>configure the library using the "<code>--prefix</code>" switch,
+ specifying an installation subdirectory in
+ <code>/home/user/myxml</code>, e.g.
+ <p><code>./configure --prefix /home/user/myxml/xmlinst</code> {other
+ configuration options}</p>
+ </li>
+ <li>now run <code>make</code> followed by <code>make install</code></li>
+ <li>At this point, the installation subdirectory contains the complete
+ "private" include files, library files and binary program files (e.g.
+ xmllint), located in
+ <p><code>/home/user/myxml/xmlinst/lib,
+ /home/user/myxml/xmlinst/include </code> and <code>
+ /home/user/myxml/xmlinst/bin</code></p>
+ respectively.</li>
+ <li>In order to use this "private" library, you should first add it to
+ the beginning of your default PATH (so that your own private program
+ files such as xmllint will be used instead of the normal system
+ ones). To do this, the Bash command would be
+ <p><code>export PATH=/home/user/myxml/xmlinst/bin:$PATH</code></p>
+ </li>
+ <li>Now suppose you have a program <code>test1.c</code> that you would
+ like to compile with your "private" library. Simply compile it using
+ the command
+ <p><code>gcc `xml2-config --cflags --libs` -o test test.c</code></p>
+ Note that, because your PATH has been set with <code>
+ /home/user/myxml/xmlinst/bin</code> at the beginning, the xml2-config
+ program which you just installed will be used instead of the system
+ default one, and this will <em>automatically</em> get the correct
+ libraries linked with your program.</li>
+ </ul>
+ </li>
+
+ <p></p>
+ <li><em>xmlDocDump() generates output on one line.</em>
+ <p>Libxml2 will not <strong>invent</strong> spaces in the content of a
+ document since <strong>all spaces in the content of a document are
+ significant</strong>. If you build a tree from the API and want
+ indentation:</p>
+ <ol>
+ <li>the correct way is to generate those yourself too.</li>
+ <li>the dangerous way is to ask libxml2 to add those blanks to your
+ content <strong>modifying the content of your document in the
+ process</strong>. The result may not be what you expect. There is
+ <strong>NO</strong> way to guarantee that such a modification won't
+ affect other parts of the content of your document. See <a href="http://xmlsoft.org/html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault
+ ()</a> and <a href="http://xmlsoft.org/html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile
+ ()</a></li>
+ </ol>
+ </li>
+ <p></p>
+ <li><em>Extra nodes in the document:</em>
+ <p><em>For an XML file as below:</em></p>
+ <pre>&lt;?xml version="1.0"?&gt;
+&lt;PLAN xmlns="http://www.argus.ca/autotest/1.0/"&gt;
+&lt;NODE CommFlag="0"/&gt;
+&lt;NODE CommFlag="1"/&gt;
+&lt;/PLAN&gt;</pre>
+ <p><em>after parsing it with the function
+ pxmlDoc=xmlParseFile(...);</em></p>
+ <p><em>I want to the get the content of the first node (node with the
+ CommFlag="0")</em></p>
+ <p><em>so I did it as following;</em></p>
+ <pre>xmlNodePtr pnode;
+pnode=pxmlDoc-&gt;children-&gt;children;</pre>
+ <p><em>but it does not work. If I change it to</em></p>
+ <pre>pnode=pxmlDoc-&gt;children-&gt;children-&gt;next;</pre>
+ <p><em>then it works. Can someone explain it to me.</em></p>
+ <p></p>
+ <p>In XML all characters in the content of the document are significant
+ <strong>including blanks and formatting line breaks</strong>.</p>
+ <p>The extra nodes you are wondering about are just that, text nodes with
+ the formatting spaces which are part of the document but that people tend
+ to forget. There is a function <a href="http://xmlsoft.org/html/libxml-parser.html">xmlKeepBlanksDefault
+ ()</a> to remove those at parse time, but that's an heuristic, and its
+ use should be limited to cases where you are certain there is no
+ mixed-content in the document.</p>
+ </li>
+ <li><em>I get compilation errors of existing code like when accessing
+ <strong>root</strong> or <strong>child fields</strong> of nodes.</em>
+ <p>You are compiling code developed for libxml version 1 and using a
+ libxml2 development environment. Either switch back to libxml v1 devel or
+ even better fix the code to compile with libxml2 (or both) by <a href="upgrade.html">following the instructions</a>.</p>
+ </li>
+ <li><em>I get compilation errors about non existing
+ <strong>xmlRootNode</strong> or <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 libxml
+ and libxml2, but you need to install a more recent version:
+ libxml(-devel) &gt;= 1.8.8 or libxml2(-devel) &gt;= 2.1.0</p>
+ </li>
+ <li><em>Random crashes in threaded applications</em>
+ <p>Read and follow all advices on the <a href="threads.html">thread
+ safety</a> page, and make 100% sure you never call xmlCleanupParser()
+ while the library or an XML document might still be in use by another
+ thread.</p>
+ </li>
+ <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 code
+ &lt;grin/&gt; ...</p>
+ <p>Check the previous points 1/ and 2/ raised before, and please send
+ patches.</p>
+ </li>
+ <li><em>Where can I get more examples and information than provided on the
+ web page?</em>
+ <p>Ideally a libxml2 book would be nice. I have no such plan ... But you
+ can:</p>
+ <ul>
+ <li>check more deeply the <a href="html/libxml-lib.html">existing
+ generated doc</a></li>
+ <li>have a look at <a href="examples/index.html">the set of
+ examples</a>.</li>
+ <li>look for examples of use for libxml2 function using the Gnome code
+ or by asking on Google.</li>
+ <li><a href="http://svn.gnome.org/viewvc/libxml2/trunk/">Browse
+ the libxml2 source</a> , I try to write code as clean and documented
+ as possible, so looking at it may be helpful. In particular the code
+ of <a href="http://svn.gnome.org/viewvc/libxml2/trunk/xmllint.c?view=markup">xmllint.c</a> and of the various testXXX.c test programs should
+ provide good examples of how to do things with the library.</li>
+ </ul>
+ </li>
+ <p></p>
+ <li><em>What about C++ ?</em>
+ <p>libxml2 is written in pure C in order to allow easy reuse on a number
+ of platforms, including embedded systems. I don't intend to convert to
+ C++.</p>
+ <p>There is however a C++ wrapper which may fulfill your needs:</p>
+ <ul>
+ <li>by Ari Johnson &lt;ari@btigate.com&gt;:
+ <p>Website: <a href="http://libxmlplusplus.sourceforge.net/">http://libxmlplusplus.sourceforge.net/</a></p>
+ <p>Download: <a href="http://sourceforge.net/project/showfiles.php?group_id=12999">http://sourceforge.net/project/showfiles.php?group_id=12999</a></p>
+ </li>
+ </ul>
+ </li>
+ <li><em>How to validate a document a posteriori ?</em>
+ <p>It is possible to validate documents which had not been validated at
+ initial parsing time or documents which have been built from scratch
+ using the API. Use the <a href="http://xmlsoft.org/html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd()</a>
+ function. It is also possible to simply add a DTD to an existing
+ document:</p>
+ <pre>xmlDocPtr doc; /* your existing document */
+xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */
+
+ dtd-&gt;name = xmlStrDup((xmlChar*)"root_name"); /* use the given root */
+
+ doc-&gt;intSubset = dtd;
+ if (doc-&gt;children == NULL) xmlAddChild((xmlNodePtr)doc, (xmlNodePtr)dtd);
+ else xmlAddPrevSibling(doc-&gt;children, (xmlNodePtr)dtd);
+ </pre>
+ </li>
+ <li><em>So what is this funky "xmlChar" used all the time?</em>
+ <p>It is a null terminated sequence of utf-8 characters. And only utf-8!
+ You need to convert strings encoded in different ways to utf-8 before
+ passing them to the API. This can be accomplished with the iconv library
+ for instance.</p>
+ </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>
diff --git a/libxml2-2.9.10/doc/Libxml2-Logo-180x168.gif b/libxml2-2.9.10/doc/Libxml2-Logo-180x168.gif
new file mode 100644
index 0000000..ebded4f
--- /dev/null
+++ b/libxml2-2.9.10/doc/Libxml2-Logo-180x168.gif
Binary files differ
diff --git a/libxml2-2.9.10/doc/Libxml2-Logo-90x34.gif b/libxml2-2.9.10/doc/Libxml2-Logo-90x34.gif
new file mode 100644
index 0000000..b96fff0
--- /dev/null
+++ b/libxml2-2.9.10/doc/Libxml2-Logo-90x34.gif
Binary files differ
diff --git a/libxml2-2.9.10/doc/Makefile.am b/libxml2-2.9.10/doc/Makefile.am
new file mode 100644
index 0000000..56cac84
--- /dev/null
+++ b/libxml2-2.9.10/doc/Makefile.am
@@ -0,0 +1,356 @@
+## Process this file with automake to produce Makefile.in
+SUBDIRS = . devhelp examples
+
+# The top-level SGML file.
+DOC_MAIN_XML_FILE=gnome-xml.xml
+
+# The directory containing the source code (if it contains documentation).
+DOC_SOURCE_DIR=..
+
+# A file in win32 depends upon one of the doc files
+WIN32_DIR=$(top_srcdir)/win32
+
+PAGES= architecture.html bugs.html contribs.html docs.html DOM.html \
+ downloads.html entities.html example.html help.html index.html \
+ interface.html intro.html library.html namespaces.html news.html \
+ tree.html xmldtd.html XMLinfo.html XSLT.html
+APIPAGES=APIconstructors.html APIfiles.html APIfunctions.html \
+ APIsymbols.html APIchunk0.html
+
+if REBUILD_DOCS
+EXTRA_DIST_wc = xmlcatalog_man.xml $(wildcard tutorial/*.html) \
+ $(wildcard tutorial/*.c) $(wildcard tutorial/*.pdf) \
+ $(wildcard tutorial/images/*.png) \
+ $(wildcard tutorial/images/callouts/*.png) $(wildcard API*.html) \
+ $(wildcard *.1) $(wildcard *.xsl) $(wildcard *.html) \
+ $(wildcard *.gif) w3c.png $(wildcard html/*.html) \
+ $(wildcard html/*.png) libxml2-api.xml index.py search.php \
+ apibuild.py libxml2.xsa xmllint.xml xmlcatalog_man.xml \
+ README.docs symbols.xml
+endif
+
+# Expanded form of EXTRA_DIST_wc
+#
+EXTRA_DIST = \
+ APIchunk0.html \
+ APIchunk1.html \
+ APIchunk2.html \
+ APIchunk3.html \
+ APIchunk4.html \
+ APIchunk5.html \
+ APIchunk6.html \
+ APIchunk7.html \
+ APIchunk8.html \
+ APIchunk9.html \
+ APIchunk10.html \
+ APIchunk11.html \
+ APIchunk12.html \
+ APIchunk13.html \
+ APIchunk14.html \
+ APIchunk15.html \
+ APIchunk16.html \
+ APIchunk17.html \
+ APIchunk18.html \
+ APIchunk19.html \
+ APIchunk20.html \
+ APIchunk21.html \
+ APIchunk22.html \
+ APIchunk23.html \
+ APIchunk24.html \
+ APIchunk25.html \
+ APIchunk26.html \
+ APIchunk27.html \
+ APIchunk28.html \
+ APIchunk29.html \
+ APIconstructors.html \
+ APIfiles.html \
+ APIfunctions.html \
+ APIsymbols.html \
+ ChangeLog.xsl \
+ DOM.gif \
+ DOM.html \
+ FAQ.html \
+ Libxml2-Logo-180x168.gif \
+ Libxml2-Logo-90x34.gif \
+ README.docs \
+ XMLinfo.html \
+ XSLT.html \
+ api.xsl \
+ apibuild.py \
+ architecture.html \
+ bugs.html \
+ catalog.gif \
+ catalog.html \
+ checkapisym.xsl \
+ contribs.html \
+ docs.html \
+ downloads.html \
+ elfgcchack.xsl \
+ encoding.html \
+ entities.html \
+ example.html \
+ guidelines.html \
+ help.html \
+ html/book1.html \
+ html/home.png \
+ html/index.html \
+ html/left.png \
+ html/libxml-DOCBparser.html \
+ html/libxml-HTMLparser.html \
+ html/libxml-HTMLtree.html \
+ html/libxml-SAX.html \
+ html/libxml-SAX2.html \
+ html/libxml-c14n.html \
+ html/libxml-catalog.html \
+ html/libxml-chvalid.html \
+ html/libxml-debugXML.html \
+ html/libxml-dict.html \
+ html/libxml-encoding.html \
+ html/libxml-entities.html \
+ html/libxml-globals.html \
+ html/libxml-hash.html \
+ html/libxml-lib.html \
+ html/libxml-list.html \
+ html/libxml-nanoftp.html \
+ html/libxml-nanohttp.html \
+ html/libxml-parser.html \
+ html/libxml-parserInternals.html \
+ html/libxml-pattern.html \
+ html/libxml-relaxng.html \
+ html/libxml-schemasInternals.html \
+ html/libxml-schematron.html \
+ html/libxml-threads.html \
+ html/libxml-tree.html \
+ html/libxml-uri.html \
+ html/libxml-valid.html \
+ html/libxml-xinclude.html \
+ html/libxml-xlink.html \
+ html/libxml-xmlIO.html \
+ html/libxml-xmlautomata.html \
+ html/libxml-xmlerror.html \
+ html/libxml-xmlexports.html \
+ html/libxml-xmlmemory.html \
+ html/libxml-xmlmodule.html \
+ html/libxml-xmlreader.html \
+ html/libxml-xmlregexp.html \
+ html/libxml-xmlsave.html \
+ html/libxml-xmlschemas.html \
+ html/libxml-xmlschemastypes.html \
+ html/libxml-xmlstring.html \
+ html/libxml-xmlunicode.html \
+ html/libxml-xmlversion.html \
+ html/libxml-xmlwriter.html \
+ html/libxml-xpath.html \
+ html/libxml-xpathInternals.html \
+ html/libxml-xpointer.html \
+ html/right.png \
+ html/up.png \
+ index.html \
+ index.py \
+ interface.html \
+ intro.html \
+ library.html \
+ libxml.gif \
+ libxml2-api.xml \
+ libxml2.xsa \
+ namespaces.html \
+ newapi.xsl \
+ news.html \
+ news.xsl \
+ python.html \
+ redhat.gif \
+ search.php \
+ searches.html \
+ searches.xsl \
+ site.xsl \
+ smallfootonly.gif \
+ structure.gif \
+ symbols.xml \
+ syms.xsl \
+ threads.html \
+ tree.html \
+ tutorial/apa.html \
+ tutorial/apb.html \
+ tutorial/apc.html \
+ tutorial/apd.html \
+ tutorial/ape.html \
+ tutorial/apf.html \
+ tutorial/apg.html \
+ tutorial/aph.html \
+ tutorial/api.html \
+ tutorial/ar01s02.html \
+ tutorial/ar01s03.html \
+ tutorial/ar01s04.html \
+ tutorial/ar01s05.html \
+ tutorial/ar01s06.html \
+ tutorial/ar01s07.html \
+ tutorial/ar01s08.html \
+ tutorial/ar01s09.html \
+ tutorial/images/blank.png \
+ tutorial/images/callouts/1.png \
+ tutorial/images/callouts/10.png \
+ tutorial/images/callouts/2.png \
+ tutorial/images/callouts/3.png \
+ tutorial/images/callouts/4.png \
+ tutorial/images/callouts/5.png \
+ tutorial/images/callouts/6.png \
+ tutorial/images/callouts/7.png \
+ tutorial/images/callouts/8.png \
+ tutorial/images/callouts/9.png \
+ tutorial/images/caution.png \
+ tutorial/images/draft.png \
+ tutorial/images/home.png \
+ tutorial/images/important.png \
+ tutorial/images/next.png \
+ tutorial/images/note.png \
+ tutorial/images/prev.png \
+ tutorial/images/tip.png \
+ tutorial/images/toc-blank.png \
+ tutorial/images/toc-minus.png \
+ tutorial/images/toc-plus.png \
+ tutorial/images/up.png \
+ tutorial/images/warning.png \
+ tutorial/includeaddattribute.c \
+ tutorial/includeaddkeyword.c \
+ tutorial/includeconvert.c \
+ tutorial/includegetattribute.c \
+ tutorial/includekeyword.c \
+ tutorial/includexpath.c \
+ tutorial/index.html \
+ tutorial/ix01.html \
+ tutorial/xmltutorial.pdf \
+ upgrade.html \
+ w3c.png \
+ wiki.xsl \
+ xml.html \
+ xmlcatalog.1 \
+ xmlcatalog_man.html \
+ xmlcatalog_man.xml \
+ xmldtd.html \
+ xmlio.html \
+ xmllint.1 \
+ xmllint.html \
+ xmllint.xml \
+ xmlmem.html \
+ xmlreader.html \
+ xsa.xsl
+
+man_MANS = xmllint.1 xmlcatalog.1
+
+if REBUILD_DOCS
+docs: web $(top_builddir)/NEWS libxml2.xsa $(man_MANS)
+
+api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src ../elfgcchack.h $(srcdir)/site.xsl
+
+web: $(PAGES) xmllint.html xmlcatalog_man.html
+
+../elfgcchack.h: $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml
+ -@(if [ -x $(XSLTPROC) ] ; then \
+ echo "Rebuilding the elfgcchack.h header" ; \
+ $(XSLTPROC) --nonet $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml > elfgcchack.h ; \
+ if [ "`diff -q elfgcchack.h ../elfgcchack.h`" ] ; then \
+ echo "updating ../elfgcchack.h"; \
+ cp elfgcchack.h ../elfgcchack.h; \
+ fi ; rm -f elfgcchack.h ; fi );
+
+$(PAGES): xml.html $(srcdir)/site.xsl
+ -@(if [ -x $(XSLTPROC) ] ; then \
+ echo "Rebuilding the HTML Web pages from xml.html" ; \
+ $(XSLTPROC) --nonet --html --path $(srcdir) $(srcdir)/site.xsl $(srcdir)/xml.html > index.html ; fi );
+ -@(if [ -x $(XMLLINT) ] ; then \
+ echo "Validating the HTML Web pages" ; \
+ $(XMLLINT) --nonet --valid --noout $(PAGES) ; fi );
+
+$(top_builddir)/NEWS: $(srcdir)/news.xsl $(srcdir)/news.html
+ -@(if [ -x $(XSLTPROC) ] ; then \
+ $(XSLTPROC) --nonet $(srcdir)/news.xsl $(srcdir)/news.html > $(top_builddir)/NEWS ; fi );
+
+libxml2.xsa: $(srcdir)/xsa.xsl $(srcdir)/news.html
+ -@(if [ -x $(XSLTPROC) ] ; then \
+ echo "Rebuilding the NEWS file" ; \
+ $(XSLTPROC) --nonet $(srcdir)/xsa.xsl $(srcdir)/news.html > libxml2.xsa ; fi );
+
+$(APIPAGES): libxml2-api.xml libxml2-refs.xml $(srcdir)/site.xsl $(srcdir)/api.xsl
+ -@(if [ -x $(XSLTPROC) ] ; then \
+ echo "Rebuilding the HTML API pages from libxml2-refs.xml" ; \
+ $(XSLTPROC) --nonet --html $(srcdir)/api.xsl \
+ $(srcdir)/xml.html ; fi );
+ -@(if [ -x $(XMLLINT) ] ; then \
+ echo "Validating the HTML API pages" ; \
+ $(XMLLINT) --nonet --valid --noout API*.html ; fi );
+
+$(srcdir)/html/index.html: libxml2-api.xml $(srcdir)/newapi.xsl
+ -@(if [ -x $(XSLTPROC) ] ; then \
+ echo "Rebuilding the HTML pages from the XML API" ; \
+ $(XSLTPROC) --nonet $(srcdir)/newapi.xsl $(srcdir)/libxml2-api.xml ; fi )
+ -@(if [ -x $(XMLLINT) ] ; then \
+ echo "Validating the resulting XHTML pages" ; \
+ $(XMLLINT) --nonet --valid --noout html/*.html ; fi );
+
+wiki: libxml2-api.xml $(srcdir)/wiki.xsl
+ -@(if [ -x $(XSLTPROC) ] ; then \
+ echo "Rebuilding the wiki HTML pages from the XML API" ; \
+ $(XSLTPROC) --nonet $(srcdir)/wiki.xsl $(srcdir)/libxml2-api.xml; fi )
+
+$(WIN32_DIR)/libxml2.def.src: libxml2-api.xml
+ -@(if [ -x $(XSLTPROC) ] ; then \
+ $(XSLTPROC) -o $(WIN32_DIR)/libxml2.def.src \
+ --nonet $(WIN32_DIR)/defgen.xsl libxml2-api.xml ; fi )
+
+source_file_deps = \
+ $(filter-out %/xmlversion.h, $(wildcard $(top_srcdir)/include/libxml/*.h)) \
+ $(top_srcdir)/include/libxml/xmlversion.h.in \
+ $(wildcard $(top_srcdir)/*.c)
+
+libxml2-api.xml libxml2-refs.xml ../libxml2.syms: apibuild.py symbols.xml syms.xsl checkapisym.xsl $(source_file_deps)
+ test -f $(top_srcdir)/include/libxml/xmlversion.h
+ (cd $(srcdir) && ./apibuild.py)
+ ($(XSLTPROC) $(srcdir)/checkapisym.xsl $(srcdir)/libxml2-api.xml)
+ ($(XSLTPROC) -o ../libxml2.syms $(srcdir)/syms.xsl $(srcdir)/symbols.xml)
+ -@(cd .. ; $(MAKE) rebuild_testapi)
+
+
+xmllint.1: xmllint.xml
+ -@($(XSLTPROC) --nonet xmllint.xml)
+
+xmllint.html: xmllint.xml
+ -@($(XSLTPROC) --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl xmllint.xml)
+
+xmlcatalog.1: xmlcatalog_man.xml
+ -@($(XSLTPROC) --nonet xmlcatalog_man.xml)
+
+xmlcatalog_man.html: xmlcatalog_man.xml
+ -@($(XSLTPROC) --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl xmlcatalog_man.xml)
+
+check-extra-dist:
+ for f in $(EXTRA_DIST_wc) ; do echo $$f; done | sort -u >tmp.EXTRA_DIST_wc
+ for f in $(EXTRA_DIST) ; do echo $$f; done | sort >tmp.EXTRA_DIST
+ diff -u tmp.EXTRA_DIST_wc tmp.EXTRA_DIST
+ rm -f tmp.EXTRA_DIST_wc tmp.EXTRA_DIST
+endif
+
+clean-local:
+ rm -f *~ *.bak *.hierarchy *.signals *-unused.txt
+
+maintainer-clean-local: clean-local
+ rm -rf libxml-decl-list.txt libxml-decl.txt
+
+rebuild: api docs
+
+install-data-local:
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/xml.html $(srcdir)/encoding.html $(srcdir)/FAQ.html $(srcdir)/structure.gif $(srcdir)/DOM.gif $(srcdir)/smallfootonly.gif $(srcdir)/redhat.gif $(srcdir)/libxml.gif $(srcdir)/w3c.png $(srcdir)/Libxml2-Logo-180x168.gif $(srcdir)/Libxml2-Logo-90x34.gif $(DESTDIR)$(HTML_DIR)
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/html
+ -$(INSTALL) -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(HTML_DIR)/html
+ -$(INSTALL) -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(HTML_DIR)/html
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial
+ -$(INSTALL) -m 0644 $(srcdir)/tutorial/*.* \
+ $(DESTDIR)$(HTML_DIR)/tutorial
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial/images
+ -$(INSTALL) -m 0644 $(srcdir)/tutorial/images/*.* \
+ $(DESTDIR)$(HTML_DIR)/tutorial/images
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial/images/callouts
+ -$(INSTALL) -m 0644 $(srcdir)/tutorial/images/callouts/*.* \
+ $(DESTDIR)$(HTML_DIR)/tutorial/images/callouts
+
+.PHONY: docs api web wiki rebuild
diff --git a/libxml2-2.9.10/doc/Makefile.in b/libxml2-2.9.10/doc/Makefile.in
new file mode 100644
index 0000000..a19592c
--- /dev/null
+++ b/libxml2-2.9.10/doc/Makefile.in
@@ -0,0 +1,1170 @@
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+man1dir = $(mandir)/man1
+am__installdirs = "$(DESTDIR)$(man1dir)"
+NROFF = nroff
+MANS = $(man_MANS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ distdir distdir-am
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BASE_THREAD_LIBS = @BASE_THREAD_LIBS@
+C14N_OBJ = @C14N_OBJ@
+CATALOG_OBJ = @CATALOG_OBJ@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+CYGWIN_EXTRA_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@
+CYGWIN_EXTRA_PYTHON_LIBADD = @CYGWIN_EXTRA_PYTHON_LIBADD@
+DEBUG_OBJ = @DEBUG_OBJ@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOCB_OBJ = @DOCB_OBJ@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+FGREP = @FGREP@
+FTP_OBJ = @FTP_OBJ@
+GREP = @GREP@
+HAVE_ISINF = @HAVE_ISINF@
+HAVE_ISNAN = @HAVE_ISNAN@
+HTML_DIR = @HTML_DIR@
+HTML_OBJ = @HTML_OBJ@
+HTTP_OBJ = @HTTP_OBJ@
+ICONV_LIBS = @ICONV_LIBS@
+ICU_CFLAGS = @ICU_CFLAGS@
+ICU_LIBS = @ICU_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_MAJOR_VERSION = @LIBXML_MAJOR_VERSION@
+LIBXML_MICRO_VERSION = @LIBXML_MICRO_VERSION@
+LIBXML_MINOR_VERSION = @LIBXML_MINOR_VERSION@
+LIBXML_VERSION = @LIBXML_VERSION@
+LIBXML_VERSION_EXTRA = @LIBXML_VERSION_EXTRA@
+LIBXML_VERSION_INFO = @LIBXML_VERSION_INFO@
+LIBXML_VERSION_NUMBER = @LIBXML_VERSION_NUMBER@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+LZMA_CFLAGS = @LZMA_CFLAGS@
+LZMA_LIBS = @LZMA_LIBS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MODULE_EXTENSION = @MODULE_EXTENSION@
+MODULE_PLATFORM_LIBS = @MODULE_PLATFORM_LIBS@
+MV = @MV@
+M_LIBS = @M_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_TESTS = @PYTHON_TESTS@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RDL_LIBS = @RDL_LIBS@
+READER_TEST = @READER_TEST@
+RELDATE = @RELDATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+TEST_C14N = @TEST_C14N@
+TEST_CATALOG = @TEST_CATALOG@
+TEST_DEBUG = @TEST_DEBUG@
+TEST_HTML = @TEST_HTML@
+TEST_MODULES = @TEST_MODULES@
+TEST_PATTERN = @TEST_PATTERN@
+TEST_PHTML = @TEST_PHTML@
+TEST_PUSH = @TEST_PUSH@
+TEST_REGEXPS = @TEST_REGEXPS@
+TEST_SAX = @TEST_SAX@
+TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
+TEST_THREADS = @TEST_THREADS@
+TEST_VALID = @TEST_VALID@
+TEST_VTIME = @TEST_VTIME@
+TEST_XINCLUDE = @TEST_XINCLUDE@
+TEST_XPATH = @TEST_XPATH@
+TEST_XPTR = @TEST_XPTR@
+THREAD_CFLAGS = @THREAD_CFLAGS@
+THREAD_LIBS = @THREAD_LIBS@
+VERSION = @VERSION@
+VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
+WGET = @WGET@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WIN32_EXTRA_PYTHON_LIBADD = @WIN32_EXTRA_PYTHON_LIBADD@
+WITH_C14N = @WITH_C14N@
+WITH_CATALOG = @WITH_CATALOG@
+WITH_DEBUG = @WITH_DEBUG@
+WITH_DOCB = @WITH_DOCB@
+WITH_FTP = @WITH_FTP@
+WITH_HTML = @WITH_HTML@
+WITH_HTTP = @WITH_HTTP@
+WITH_ICONV = @WITH_ICONV@
+WITH_ICU = @WITH_ICU@
+WITH_ISO8859X = @WITH_ISO8859X@
+WITH_LEGACY = @WITH_LEGACY@
+WITH_LZMA = @WITH_LZMA@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_OUTPUT = @WITH_OUTPUT@
+WITH_PATTERN = @WITH_PATTERN@
+WITH_PUSH = @WITH_PUSH@
+WITH_READER = @WITH_READER@
+WITH_REGEXPS = @WITH_REGEXPS@
+WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
+WITH_SAX1 = @WITH_SAX1@
+WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
+WITH_THREADS = @WITH_THREADS@
+WITH_THREAD_ALLOC = @WITH_THREAD_ALLOC@
+WITH_TREE = @WITH_TREE@
+WITH_TRIO = @WITH_TRIO@
+WITH_VALID = @WITH_VALID@
+WITH_WRITER = @WITH_WRITER@
+WITH_XINCLUDE = @WITH_XINCLUDE@
+WITH_XPATH = @WITH_XPATH@
+WITH_XPTR = @WITH_XPTR@
+WITH_ZLIB = @WITH_ZLIB@
+XINCLUDE_OBJ = @XINCLUDE_OBJ@
+XMLLINT = @XMLLINT@
+XML_CFLAGS = @XML_CFLAGS@
+XML_INCLUDEDIR = @XML_INCLUDEDIR@
+XML_LIBDIR = @XML_LIBDIR@
+XML_LIBS = @XML_LIBS@
+XML_LIBTOOLLIBS = @XML_LIBTOOLLIBS@
+XML_PRIVATE_LIBS = @XML_PRIVATE_LIBS@
+XPATH_OBJ = @XPATH_OBJ@
+XPTR_OBJ = @XPTR_OBJ@
+XSLTPROC = @XSLTPROC@
+Z_CFLAGS = @Z_CFLAGS@
+Z_LIBS = @Z_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pythondir = @pythondir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = . devhelp examples
+
+# The top-level SGML file.
+DOC_MAIN_XML_FILE = gnome-xml.xml
+
+# The directory containing the source code (if it contains documentation).
+DOC_SOURCE_DIR = ..
+
+# A file in win32 depends upon one of the doc files
+WIN32_DIR = $(top_srcdir)/win32
+PAGES = architecture.html bugs.html contribs.html docs.html DOM.html \
+ downloads.html entities.html example.html help.html index.html \
+ interface.html intro.html library.html namespaces.html news.html \
+ tree.html xmldtd.html XMLinfo.html XSLT.html
+
+APIPAGES = APIconstructors.html APIfiles.html APIfunctions.html \
+ APIsymbols.html APIchunk0.html
+
+@REBUILD_DOCS_TRUE@EXTRA_DIST_wc = xmlcatalog_man.xml $(wildcard tutorial/*.html) \
+@REBUILD_DOCS_TRUE@ $(wildcard tutorial/*.c) $(wildcard tutorial/*.pdf) \
+@REBUILD_DOCS_TRUE@ $(wildcard tutorial/images/*.png) \
+@REBUILD_DOCS_TRUE@ $(wildcard tutorial/images/callouts/*.png) $(wildcard API*.html) \
+@REBUILD_DOCS_TRUE@ $(wildcard *.1) $(wildcard *.xsl) $(wildcard *.html) \
+@REBUILD_DOCS_TRUE@ $(wildcard *.gif) w3c.png $(wildcard html/*.html) \
+@REBUILD_DOCS_TRUE@ $(wildcard html/*.png) libxml2-api.xml index.py search.php \
+@REBUILD_DOCS_TRUE@ apibuild.py libxml2.xsa xmllint.xml xmlcatalog_man.xml \
+@REBUILD_DOCS_TRUE@ README.docs symbols.xml
+
+
+# Expanded form of EXTRA_DIST_wc
+#
+EXTRA_DIST = \
+ APIchunk0.html \
+ APIchunk1.html \
+ APIchunk2.html \
+ APIchunk3.html \
+ APIchunk4.html \
+ APIchunk5.html \
+ APIchunk6.html \
+ APIchunk7.html \
+ APIchunk8.html \
+ APIchunk9.html \
+ APIchunk10.html \
+ APIchunk11.html \
+ APIchunk12.html \
+ APIchunk13.html \
+ APIchunk14.html \
+ APIchunk15.html \
+ APIchunk16.html \
+ APIchunk17.html \
+ APIchunk18.html \
+ APIchunk19.html \
+ APIchunk20.html \
+ APIchunk21.html \
+ APIchunk22.html \
+ APIchunk23.html \
+ APIchunk24.html \
+ APIchunk25.html \
+ APIchunk26.html \
+ APIchunk27.html \
+ APIchunk28.html \
+ APIchunk29.html \
+ APIconstructors.html \
+ APIfiles.html \
+ APIfunctions.html \
+ APIsymbols.html \
+ ChangeLog.xsl \
+ DOM.gif \
+ DOM.html \
+ FAQ.html \
+ Libxml2-Logo-180x168.gif \
+ Libxml2-Logo-90x34.gif \
+ README.docs \
+ XMLinfo.html \
+ XSLT.html \
+ api.xsl \
+ apibuild.py \
+ architecture.html \
+ bugs.html \
+ catalog.gif \
+ catalog.html \
+ checkapisym.xsl \
+ contribs.html \
+ docs.html \
+ downloads.html \
+ elfgcchack.xsl \
+ encoding.html \
+ entities.html \
+ example.html \
+ guidelines.html \
+ help.html \
+ html/book1.html \
+ html/home.png \
+ html/index.html \
+ html/left.png \
+ html/libxml-DOCBparser.html \
+ html/libxml-HTMLparser.html \
+ html/libxml-HTMLtree.html \
+ html/libxml-SAX.html \
+ html/libxml-SAX2.html \
+ html/libxml-c14n.html \
+ html/libxml-catalog.html \
+ html/libxml-chvalid.html \
+ html/libxml-debugXML.html \
+ html/libxml-dict.html \
+ html/libxml-encoding.html \
+ html/libxml-entities.html \
+ html/libxml-globals.html \
+ html/libxml-hash.html \
+ html/libxml-lib.html \
+ html/libxml-list.html \
+ html/libxml-nanoftp.html \
+ html/libxml-nanohttp.html \
+ html/libxml-parser.html \
+ html/libxml-parserInternals.html \
+ html/libxml-pattern.html \
+ html/libxml-relaxng.html \
+ html/libxml-schemasInternals.html \
+ html/libxml-schematron.html \
+ html/libxml-threads.html \
+ html/libxml-tree.html \
+ html/libxml-uri.html \
+ html/libxml-valid.html \
+ html/libxml-xinclude.html \
+ html/libxml-xlink.html \
+ html/libxml-xmlIO.html \
+ html/libxml-xmlautomata.html \
+ html/libxml-xmlerror.html \
+ html/libxml-xmlexports.html \
+ html/libxml-xmlmemory.html \
+ html/libxml-xmlmodule.html \
+ html/libxml-xmlreader.html \
+ html/libxml-xmlregexp.html \
+ html/libxml-xmlsave.html \
+ html/libxml-xmlschemas.html \
+ html/libxml-xmlschemastypes.html \
+ html/libxml-xmlstring.html \
+ html/libxml-xmlunicode.html \
+ html/libxml-xmlversion.html \
+ html/libxml-xmlwriter.html \
+ html/libxml-xpath.html \
+ html/libxml-xpathInternals.html \
+ html/libxml-xpointer.html \
+ html/right.png \
+ html/up.png \
+ index.html \
+ index.py \
+ interface.html \
+ intro.html \
+ library.html \
+ libxml.gif \
+ libxml2-api.xml \
+ libxml2.xsa \
+ namespaces.html \
+ newapi.xsl \
+ news.html \
+ news.xsl \
+ python.html \
+ redhat.gif \
+ search.php \
+ searches.html \
+ searches.xsl \
+ site.xsl \
+ smallfootonly.gif \
+ structure.gif \
+ symbols.xml \
+ syms.xsl \
+ threads.html \
+ tree.html \
+ tutorial/apa.html \
+ tutorial/apb.html \
+ tutorial/apc.html \
+ tutorial/apd.html \
+ tutorial/ape.html \
+ tutorial/apf.html \
+ tutorial/apg.html \
+ tutorial/aph.html \
+ tutorial/api.html \
+ tutorial/ar01s02.html \
+ tutorial/ar01s03.html \
+ tutorial/ar01s04.html \
+ tutorial/ar01s05.html \
+ tutorial/ar01s06.html \
+ tutorial/ar01s07.html \
+ tutorial/ar01s08.html \
+ tutorial/ar01s09.html \
+ tutorial/images/blank.png \
+ tutorial/images/callouts/1.png \
+ tutorial/images/callouts/10.png \
+ tutorial/images/callouts/2.png \
+ tutorial/images/callouts/3.png \
+ tutorial/images/callouts/4.png \
+ tutorial/images/callouts/5.png \
+ tutorial/images/callouts/6.png \
+ tutorial/images/callouts/7.png \
+ tutorial/images/callouts/8.png \
+ tutorial/images/callouts/9.png \
+ tutorial/images/caution.png \
+ tutorial/images/draft.png \
+ tutorial/images/home.png \
+ tutorial/images/important.png \
+ tutorial/images/next.png \
+ tutorial/images/note.png \
+ tutorial/images/prev.png \
+ tutorial/images/tip.png \
+ tutorial/images/toc-blank.png \
+ tutorial/images/toc-minus.png \
+ tutorial/images/toc-plus.png \
+ tutorial/images/up.png \
+ tutorial/images/warning.png \
+ tutorial/includeaddattribute.c \
+ tutorial/includeaddkeyword.c \
+ tutorial/includeconvert.c \
+ tutorial/includegetattribute.c \
+ tutorial/includekeyword.c \
+ tutorial/includexpath.c \
+ tutorial/index.html \
+ tutorial/ix01.html \
+ tutorial/xmltutorial.pdf \
+ upgrade.html \
+ w3c.png \
+ wiki.xsl \
+ xml.html \
+ xmlcatalog.1 \
+ xmlcatalog_man.html \
+ xmlcatalog_man.xml \
+ xmldtd.html \
+ xmlio.html \
+ xmllint.1 \
+ xmllint.html \
+ xmllint.xml \
+ xmlmem.html \
+ xmlreader.html \
+ xsa.xsl
+
+man_MANS = xmllint.1 xmlcatalog.1
+@REBUILD_DOCS_TRUE@source_file_deps = \
+@REBUILD_DOCS_TRUE@ $(filter-out %/xmlversion.h, $(wildcard $(top_srcdir)/include/libxml/*.h)) \
+@REBUILD_DOCS_TRUE@ $(top_srcdir)/include/libxml/xmlversion.h.in \
+@REBUILD_DOCS_TRUE@ $(wildcard $(top_srcdir)/*.c)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-man1: $(man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(MANS)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-data-local install-man
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man: install-man1
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic \
+ maintainer-clean-local
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+ check-am clean clean-generic clean-libtool clean-local \
+ cscopelist-am ctags ctags-am distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-data-local install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-man1 \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ maintainer-clean-local mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am uninstall-man uninstall-man1
+
+.PRECIOUS: Makefile
+
+
+@REBUILD_DOCS_TRUE@docs: web $(top_builddir)/NEWS libxml2.xsa $(man_MANS)
+
+@REBUILD_DOCS_TRUE@api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src ../elfgcchack.h $(srcdir)/site.xsl
+
+@REBUILD_DOCS_TRUE@web: $(PAGES) xmllint.html xmlcatalog_man.html
+
+@REBUILD_DOCS_TRUE@../elfgcchack.h: $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \
+@REBUILD_DOCS_TRUE@ echo "Rebuilding the elfgcchack.h header" ; \
+@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml > elfgcchack.h ; \
+@REBUILD_DOCS_TRUE@ if [ "`diff -q elfgcchack.h ../elfgcchack.h`" ] ; then \
+@REBUILD_DOCS_TRUE@ echo "updating ../elfgcchack.h"; \
+@REBUILD_DOCS_TRUE@ cp elfgcchack.h ../elfgcchack.h; \
+@REBUILD_DOCS_TRUE@ fi ; rm -f elfgcchack.h ; fi );
+
+@REBUILD_DOCS_TRUE@$(PAGES): xml.html $(srcdir)/site.xsl
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \
+@REBUILD_DOCS_TRUE@ echo "Rebuilding the HTML Web pages from xml.html" ; \
+@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet --html --path $(srcdir) $(srcdir)/site.xsl $(srcdir)/xml.html > index.html ; fi );
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XMLLINT) ] ; then \
+@REBUILD_DOCS_TRUE@ echo "Validating the HTML Web pages" ; \
+@REBUILD_DOCS_TRUE@ $(XMLLINT) --nonet --valid --noout $(PAGES) ; fi );
+
+@REBUILD_DOCS_TRUE@$(top_builddir)/NEWS: $(srcdir)/news.xsl $(srcdir)/news.html
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \
+@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet $(srcdir)/news.xsl $(srcdir)/news.html > $(top_builddir)/NEWS ; fi );
+
+@REBUILD_DOCS_TRUE@libxml2.xsa: $(srcdir)/xsa.xsl $(srcdir)/news.html
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \
+@REBUILD_DOCS_TRUE@ echo "Rebuilding the NEWS file" ; \
+@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet $(srcdir)/xsa.xsl $(srcdir)/news.html > libxml2.xsa ; fi );
+
+@REBUILD_DOCS_TRUE@$(APIPAGES): libxml2-api.xml libxml2-refs.xml $(srcdir)/site.xsl $(srcdir)/api.xsl
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \
+@REBUILD_DOCS_TRUE@ echo "Rebuilding the HTML API pages from libxml2-refs.xml" ; \
+@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet --html $(srcdir)/api.xsl \
+@REBUILD_DOCS_TRUE@ $(srcdir)/xml.html ; fi );
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XMLLINT) ] ; then \
+@REBUILD_DOCS_TRUE@ echo "Validating the HTML API pages" ; \
+@REBUILD_DOCS_TRUE@ $(XMLLINT) --nonet --valid --noout API*.html ; fi );
+
+@REBUILD_DOCS_TRUE@$(srcdir)/html/index.html: libxml2-api.xml $(srcdir)/newapi.xsl
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \
+@REBUILD_DOCS_TRUE@ echo "Rebuilding the HTML pages from the XML API" ; \
+@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet $(srcdir)/newapi.xsl $(srcdir)/libxml2-api.xml ; fi )
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XMLLINT) ] ; then \
+@REBUILD_DOCS_TRUE@ echo "Validating the resulting XHTML pages" ; \
+@REBUILD_DOCS_TRUE@ $(XMLLINT) --nonet --valid --noout html/*.html ; fi );
+
+@REBUILD_DOCS_TRUE@wiki: libxml2-api.xml $(srcdir)/wiki.xsl
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \
+@REBUILD_DOCS_TRUE@ echo "Rebuilding the wiki HTML pages from the XML API" ; \
+@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet $(srcdir)/wiki.xsl $(srcdir)/libxml2-api.xml; fi )
+
+@REBUILD_DOCS_TRUE@$(WIN32_DIR)/libxml2.def.src: libxml2-api.xml
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \
+@REBUILD_DOCS_TRUE@ $(XSLTPROC) -o $(WIN32_DIR)/libxml2.def.src \
+@REBUILD_DOCS_TRUE@ --nonet $(WIN32_DIR)/defgen.xsl libxml2-api.xml ; fi )
+
+@REBUILD_DOCS_TRUE@libxml2-api.xml libxml2-refs.xml ../libxml2.syms: apibuild.py symbols.xml syms.xsl checkapisym.xsl $(source_file_deps)
+@REBUILD_DOCS_TRUE@ test -f $(top_srcdir)/include/libxml/xmlversion.h
+@REBUILD_DOCS_TRUE@ (cd $(srcdir) && ./apibuild.py)
+@REBUILD_DOCS_TRUE@ ($(XSLTPROC) $(srcdir)/checkapisym.xsl $(srcdir)/libxml2-api.xml)
+@REBUILD_DOCS_TRUE@ ($(XSLTPROC) -o ../libxml2.syms $(srcdir)/syms.xsl $(srcdir)/symbols.xml)
+@REBUILD_DOCS_TRUE@ -@(cd .. ; $(MAKE) rebuild_testapi)
+
+@REBUILD_DOCS_TRUE@xmllint.1: xmllint.xml
+@REBUILD_DOCS_TRUE@ -@($(XSLTPROC) --nonet xmllint.xml)
+
+@REBUILD_DOCS_TRUE@xmllint.html: xmllint.xml
+@REBUILD_DOCS_TRUE@ -@($(XSLTPROC) --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl xmllint.xml)
+
+@REBUILD_DOCS_TRUE@xmlcatalog.1: xmlcatalog_man.xml
+@REBUILD_DOCS_TRUE@ -@($(XSLTPROC) --nonet xmlcatalog_man.xml)
+
+@REBUILD_DOCS_TRUE@xmlcatalog_man.html: xmlcatalog_man.xml
+@REBUILD_DOCS_TRUE@ -@($(XSLTPROC) --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl xmlcatalog_man.xml)
+
+@REBUILD_DOCS_TRUE@check-extra-dist:
+@REBUILD_DOCS_TRUE@ for f in $(EXTRA_DIST_wc) ; do echo $$f; done | sort -u >tmp.EXTRA_DIST_wc
+@REBUILD_DOCS_TRUE@ for f in $(EXTRA_DIST) ; do echo $$f; done | sort >tmp.EXTRA_DIST
+@REBUILD_DOCS_TRUE@ diff -u tmp.EXTRA_DIST_wc tmp.EXTRA_DIST
+@REBUILD_DOCS_TRUE@ rm -f tmp.EXTRA_DIST_wc tmp.EXTRA_DIST
+
+clean-local:
+ rm -f *~ *.bak *.hierarchy *.signals *-unused.txt
+
+maintainer-clean-local: clean-local
+ rm -rf libxml-decl-list.txt libxml-decl.txt
+
+rebuild: api docs
+
+install-data-local:
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/xml.html $(srcdir)/encoding.html $(srcdir)/FAQ.html $(srcdir)/structure.gif $(srcdir)/DOM.gif $(srcdir)/smallfootonly.gif $(srcdir)/redhat.gif $(srcdir)/libxml.gif $(srcdir)/w3c.png $(srcdir)/Libxml2-Logo-180x168.gif $(srcdir)/Libxml2-Logo-90x34.gif $(DESTDIR)$(HTML_DIR)
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/html
+ -$(INSTALL) -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(HTML_DIR)/html
+ -$(INSTALL) -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(HTML_DIR)/html
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial
+ -$(INSTALL) -m 0644 $(srcdir)/tutorial/*.* \
+ $(DESTDIR)$(HTML_DIR)/tutorial
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial/images
+ -$(INSTALL) -m 0644 $(srcdir)/tutorial/images/*.* \
+ $(DESTDIR)$(HTML_DIR)/tutorial/images
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial/images/callouts
+ -$(INSTALL) -m 0644 $(srcdir)/tutorial/images/callouts/*.* \
+ $(DESTDIR)$(HTML_DIR)/tutorial/images/callouts
+
+.PHONY: docs api web wiki rebuild
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libxml2-2.9.10/doc/README.docs b/libxml2-2.9.10/doc/README.docs
new file mode 100644
index 0000000..ef30e43
--- /dev/null
+++ b/libxml2-2.9.10/doc/README.docs
@@ -0,0 +1,24 @@
+
+ XML toolkit from the GNOME project
+
+Full documentation is available on-line at
+ http://xmlsoft.org/
+
+This code is released under the MIT Licence see the Copyright file.
+
+To report bugs, follow the instructions at:
+ http://xmlsoft.org/bugs.html
+
+A mailing-list xml@gnome.org is available, to subscribe:
+ http://mail.gnome.org/mailman/listinfo/xml
+
+The list archive is at:
+ http://mail.gnome.org/archives/xml/
+
+All technical answers asked privately will be automatically answered on
+the list and archived for public access unless pricacy is explicitly
+required and justified.
+
+Daniel Veillard
+
+$Id$
diff --git a/libxml2-2.9.10/doc/XMLinfo.html b/libxml2-2.9.10/doc/XMLinfo.html
new file mode 100644
index 0000000..de05bcf
--- /dev/null
+++ b/libxml2-2.9.10/doc/XMLinfo.html
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+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 &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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 standard</a> for
+markup-based structured documents. Here is <a name="example" id="example">an example XML
+document</a>:</p><pre>&lt;?xml version="1.0"?&gt;
+&lt;EXAMPLE prop1="gnome is great" prop2="&amp;amp; linux too"&gt;
+ &lt;head&gt;
+ &lt;title&gt;Welcome to Gnome&lt;/title&gt;
+ &lt;/head&gt;
+ &lt;chapter&gt;
+ &lt;title&gt;The Linux adventure&lt;/title&gt;
+ &lt;p&gt;bla bla bla ...&lt;/p&gt;
+ &lt;image href="linus.gif"/&gt;
+ &lt;p&gt;...&lt;/p&gt;
+ &lt;/chapter&gt;
+&lt;/EXAMPLE&gt;</pre><p>The first line specifies that it is an XML document and gives useful
+information about its encoding. Then the rest of the document is a text
+format whose structure is specified by tags between brackets. <strong>Each
+tag opened has to be closed</strong>. XML is pedantic about this. However, if
+a tag is empty (no content), a single tag can serve as both the opening and
+closing tag if it ends with <code>/&gt;</code> rather than with
+<code>&gt;</code>. Note that, for example, the image tag has no content (just
+an attribute) and is closed by ending the tag with <code>/&gt;</code>.</p><p>XML can be applied successfully to a wide range of tasks, ranging from
+long term structured document maintenance (where it follows the steps of
+SGML) to simple data encoding mechanisms like configuration file formatting
+(glade), spreadsheets (gnumeric), or even shorter lived documents such as
+WebDAV where it is used to encode remote calls between a client and a
+server.</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>
diff --git a/libxml2-2.9.10/doc/XSLT.html b/libxml2-2.9.10/doc/XSLT.html
new file mode 100644
index 0000000..d639f42
--- /dev/null
+++ b/libxml2-2.9.10/doc/XSLT.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+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 &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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 a
+language for transforming XML documents into other XML documents (or
+HTML/textual output).</p><p>A separate library called libxslt is available implementing XSLT-1.0 for
+libxml2. This module "libxslt" too can be found in the Gnome SVN 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>
diff --git a/libxml2-2.9.10/doc/api.xsl b/libxml2-2.9.10/doc/api.xsl
new file mode 100644
index 0000000..6f9007f
--- /dev/null
+++ b/libxml2-2.9.10/doc/api.xsl
@@ -0,0 +1,394 @@
+<?xml version="1.0"?>
+<!-- this stylesheet builds the API*.html , it works based on libxml2-refs.xml
+ -->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ extension-element-prefixes="exsl"
+ exclude-result-prefixes="exsl">
+
+ <!-- Import the rest of the site stylesheets -->
+ <xsl:import href="site.xsl"/>
+
+ <!-- Generate XHTML-1.0 transitional -->
+ <xsl:output method="xml" encoding="UTF-8" indent="yes"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+ <xsl:variable name="href_base" select="''"/>
+ <xsl:variable name="apirefs" select="document('libxml2-refs.xml')"/>
+ <xsl:variable name="module" select="$apirefs/apirefs/@name"/>
+ <xsl:key name="refhref" match="reference" use="@name"/>
+
+ <xsl:template match="ref" mode="anchor">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:for-each select="document('libxml2-refs.xml')">
+ <a href="{key('refhref', $name)/@href}"><xsl:value-of select="$name"/></a><br/>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="type" mode="reflist">
+ <h2>Type <xsl:value-of select="@name"/>:</h2>
+ <p>
+ <xsl:for-each select="ref">
+ <xsl:apply-templates mode="anchor" select="."/>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ </p>
+ </xsl:template>
+ <xsl:template match="letter" mode="reflist">
+ <h2>Letter <xsl:value-of select="@name"/>:</h2>
+ <p>
+ <xsl:for-each select="ref">
+ <xsl:apply-templates mode="anchor" select="."/>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ </p>
+ </xsl:template>
+ <xsl:template match="file" mode="reflist">
+ <h2><a name="{@name}">Module <xsl:value-of select="@name"/></a>:</h2>
+ <p>
+ <xsl:for-each select="ref">
+ <xsl:apply-templates mode="anchor" select="."/>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ </p>
+ </xsl:template>
+ <xsl:template match="letter" mode="wordlist">
+ <h2>Letter <xsl:value-of select="@name"/>:</h2>
+ <dl>
+ <xsl:for-each select="word">
+ <dt><xsl:value-of select="@name"/></dt>
+ <dd>
+ <xsl:for-each select="ref">
+ <xsl:apply-templates mode="anchor" select="."/>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ </dd>
+ </xsl:for-each>
+ </dl>
+ </xsl:template>
+
+ <xsl:template match="constructors">
+ <xsl:message>Generating API Constructors</xsl:message>
+ <xsl:variable name="title">List of constructors for <xsl:value-of select="$module"/></xsl:variable>
+ <xsl:document href="APIconstructors.html" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:element name="title">
+ <xsl:value-of select="$title"/>
+ </xsl:element>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="develtoc"/>
+ </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">
+ <xsl:apply-templates mode="reflist" select="type"/>
+ <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+ <xsl:template match="files">
+ <xsl:message>Generating API List of synbols per file</xsl:message>
+ <xsl:variable name="title">List of Symbols per Module for <xsl:value-of select="$module"/></xsl:variable>
+ <xsl:document href="APIfiles.html" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:element name="title">
+ <xsl:value-of select="$title"/>
+ </xsl:element>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="develtoc"/>
+ </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">
+ <xsl:apply-templates mode="reflist" select="file"/>
+ <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+ <xsl:template match="functions">
+ <xsl:message>Generating API Functions by Type</xsl:message>
+ <xsl:variable name="title">List of function manipulating types in <xsl:value-of select="$module"/></xsl:variable>
+ <xsl:document href="APIfunctions.html" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:element name="title">
+ <xsl:value-of select="$title"/>
+ </xsl:element>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="develtoc"/>
+ </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">
+ <xsl:apply-templates mode="reflist" select="type"/>
+ <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+ <xsl:template match="alpha">
+ <xsl:message>Generating API Alphabetic list</xsl:message>
+ <xsl:variable name="title">Alphabetic List of Symbols in <xsl:value-of select="$module"/></xsl:variable>
+ <xsl:document href="APIsymbols.html" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:element name="title">
+ <xsl:value-of select="$title"/>
+ </xsl:element>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="develtoc"/>
+ </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">
+ <xsl:apply-templates mode="reflist" select="letter"/>
+ <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+ <xsl:template name="apichunks">
+ <h2 align="center">
+ <xsl:for-each select="/apirefs/index/chunks/chunk">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="start" select="@start"/>
+ <xsl:variable name="end" select="@end"/>
+ <xsl:variable name="block" select="concat($start, '-', $end)"/>
+ <a href="API{$name}.html"><xsl:value-of select="$block"/></a>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ </h2>
+ </xsl:template>
+ <xsl:template match="chunk">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="start" select="@start"/>
+ <xsl:variable name="end" select="@end"/>
+ <xsl:variable name="block" select="concat($start, '-', $end)"/>
+ <xsl:variable name="target" select="/apirefs/index/chunk[@name = $name]"/>
+ <xsl:variable name="title">API Alphabetic Index <xsl:value-of select="$block"/> for <xsl:value-of select="$module"/></xsl:variable>
+ <xsl:document href="API{$name}.html" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:element name="title">
+ <xsl:value-of select="$title"/>
+ </xsl:element>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="develtoc"/>
+ </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">
+ <xsl:call-template name="apichunks"/>
+ <xsl:apply-templates mode="wordlist"
+ select="$target/letter"/>
+ <xsl:call-template name="apichunks"/>
+ <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+
+ <xsl:template match="index">
+ <xsl:message>Generating API Index</xsl:message>
+ <xsl:apply-templates select="chunks/chunk"/>
+ </xsl:template>
+
+ <xsl:template match="apirefs">
+ <xsl:message>Generating API Cross References</xsl:message>
+ <xsl:apply-templates select="constructors"/>
+ <xsl:apply-templates select="functions"/>
+ <xsl:apply-templates select="alpha"/>
+ <xsl:apply-templates select="files"/>
+ <xsl:apply-templates select="index"/>
+ </xsl:template>
+
+ <xsl:template match="/">
+ <xsl:apply-templates select="$apirefs/apirefs"/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libxml2-2.9.10/doc/apibuild.py b/libxml2-2.9.10/doc/apibuild.py
new file mode 100755
index 0000000..95d7d04
--- /dev/null
+++ b/libxml2-2.9.10/doc/apibuild.py
@@ -0,0 +1,2151 @@
+#!/usr/bin/python -u
+#
+# This is the API builder, it parses the C sources and build the
+# API formal description in XML.
+#
+# See Copyright for the status of this software.
+#
+# daniel@veillard.com
+#
+import os, sys
+import string
+import glob
+
+debug=0
+#debugsym='ignorableWhitespaceSAXFunc'
+debugsym=None
+
+#
+# C parser analysis code
+#
+ignored_files = {
+ "trio": "too many non standard macros",
+ "trio.c": "too many non standard macros",
+ "trionan.c": "too many non standard macros",
+ "triostr.c": "too many non standard macros",
+ "acconfig.h": "generated portability layer",
+ "config.h": "generated portability layer",
+ "libxml.h": "internal only",
+ "testOOM.c": "out of memory tester",
+ "testOOMlib.h": "out of memory tester",
+ "testOOMlib.c": "out of memory tester",
+ "rngparser.c": "not yet integrated",
+ "rngparser.h": "not yet integrated",
+ "elfgcchack.h": "not a normal header",
+ "testHTML.c": "test tool",
+ "testReader.c": "test tool",
+ "testSchemas.c": "test tool",
+ "testXPath.c": "test tool",
+ "testAutomata.c": "test tool",
+ "testModule.c": "test tool",
+ "testRegexp.c": "test tool",
+ "testThreads.c": "test tool",
+ "testC14N.c": "test tool",
+ "testRelax.c": "test tool",
+ "testSAX.c": "test tool",
+ "testURI.c": "test tool",
+ "testapi.c": "generated regression tests",
+ "runtest.c": "regression tests program",
+ "runsuite.c": "regression tests program",
+ "tst.c": "not part of the library",
+ "test.c": "not part of the library",
+ "testdso.c": "test for dynamid shared libraries",
+ "testrecurse.c": "test for entities recursions",
+ "xzlib.h": "Internal API only 2.8.0",
+ "buf.h": "Internal API only 2.9.0",
+ "enc.h": "Internal API only 2.9.0",
+ "/save.h": "Internal API only 2.9.0",
+ "timsort.h": "Internal header only for xpath.c 2.9.0",
+}
+
+ignored_words = {
+ "WINAPI": (0, "Windows keyword"),
+ "LIBXML_DLL_IMPORT": (0, "Special macro to flag external keywords"),
+ "XMLPUBVAR": (0, "Special macro for extern vars for win32"),
+ "XSLTPUBVAR": (0, "Special macro for extern vars for win32"),
+ "EXSLTPUBVAR": (0, "Special macro for extern vars for win32"),
+ "XMLPUBFUN": (0, "Special macro for extern funcs for win32"),
+ "XSLTPUBFUN": (0, "Special macro for extern funcs for win32"),
+ "EXSLTPUBFUN": (0, "Special macro for extern funcs for win32"),
+ "XMLCALL": (0, "Special macro for win32 calls"),
+ "XSLTCALL": (0, "Special macro for win32 calls"),
+ "XMLCDECL": (0, "Special macro for win32 calls"),
+ "EXSLTCALL": (0, "Special macro for win32 calls"),
+ "__declspec": (3, "Windows keyword"),
+ "__stdcall": (0, "Windows keyword"),
+ "ATTRIBUTE_UNUSED": (0, "macro keyword"),
+ "LIBEXSLT_PUBLIC": (0, "macro keyword"),
+ "X_IN_Y": (5, "macro function builder"),
+ "ATTRIBUTE_ALLOC_SIZE": (3, "macro for gcc checking extension"),
+ "ATTRIBUTE_PRINTF": (5, "macro for gcc printf args checking extension"),
+ "LIBXML_ATTR_FORMAT": (5, "macro for gcc printf args checking extension"),
+ "LIBXML_ATTR_ALLOC_SIZE": (3, "macro for gcc checking extension"),
+ "ATTRIBUTE_NO_SANITIZE": (3, "macro keyword"),
+}
+
+def escape(raw):
+ raw = raw.replace('&', '&amp;')
+ raw = raw.replace('<', '&lt;')
+ raw = raw.replace('>', '&gt;')
+ raw = raw.replace("'", '&apos;')
+ raw = raw.replace('"', '&quot;')
+ return raw
+
+def uniq(items):
+ d = {}
+ for item in items:
+ d[item]=1
+ return list(d.keys())
+
+class identifier:
+ def __init__(self, name, header=None, module=None, type=None, lineno = 0,
+ info=None, extra=None, conditionals = None):
+ self.name = name
+ self.header = header
+ self.module = module
+ self.type = type
+ self.info = info
+ self.extra = extra
+ self.lineno = lineno
+ self.static = 0
+ if conditionals == None or len(conditionals) == 0:
+ self.conditionals = None
+ else:
+ self.conditionals = conditionals[:]
+ if self.name == debugsym:
+ print("=> define %s : %s" % (debugsym, (module, type, info,
+ extra, conditionals)))
+
+ def __repr__(self):
+ r = "%s %s:" % (self.type, self.name)
+ if self.static:
+ r = r + " static"
+ if self.module != None:
+ r = r + " from %s" % (self.module)
+ if self.info != None:
+ r = r + " " + repr(self.info)
+ if self.extra != None:
+ r = r + " " + repr(self.extra)
+ if self.conditionals != None:
+ r = r + " " + repr(self.conditionals)
+ return r
+
+
+ def set_header(self, header):
+ self.header = header
+ def set_module(self, module):
+ self.module = module
+ def set_type(self, type):
+ self.type = type
+ def set_info(self, info):
+ self.info = info
+ def set_extra(self, extra):
+ self.extra = extra
+ def set_lineno(self, lineno):
+ self.lineno = lineno
+ def set_static(self, static):
+ self.static = static
+ def set_conditionals(self, conditionals):
+ if conditionals == None or len(conditionals) == 0:
+ self.conditionals = None
+ else:
+ self.conditionals = conditionals[:]
+
+ def get_name(self):
+ return self.name
+ def get_header(self):
+ return self.module
+ def get_module(self):
+ return self.module
+ def get_type(self):
+ return self.type
+ def get_info(self):
+ return self.info
+ def get_lineno(self):
+ return self.lineno
+ def get_extra(self):
+ return self.extra
+ def get_static(self):
+ return self.static
+ def get_conditionals(self):
+ return self.conditionals
+
+ def update(self, header, module, type = None, info = None, extra=None,
+ conditionals=None):
+ if self.name == debugsym:
+ print("=> update %s : %s" % (debugsym, (module, type, info,
+ extra, conditionals)))
+ if header != None and self.header == None:
+ self.set_header(module)
+ if module != None and (self.module == None or self.header == self.module):
+ self.set_module(module)
+ if type != None and self.type == None:
+ self.set_type(type)
+ if info != None:
+ self.set_info(info)
+ if extra != None:
+ self.set_extra(extra)
+ if conditionals != None:
+ self.set_conditionals(conditionals)
+
+class index:
+ def __init__(self, name = "noname"):
+ self.name = name
+ self.identifiers = {}
+ self.functions = {}
+ self.variables = {}
+ self.includes = {}
+ self.structs = {}
+ self.enums = {}
+ self.typedefs = {}
+ self.macros = {}
+ self.references = {}
+ self.info = {}
+
+ def add_ref(self, name, header, module, static, type, lineno, info=None, extra=None, conditionals = None):
+ if name[0:2] == '__':
+ return None
+ d = None
+ try:
+ d = self.identifiers[name]
+ d.update(header, module, type, lineno, info, extra, conditionals)
+ except:
+ d = identifier(name, header, module, type, lineno, info, extra, conditionals)
+ self.identifiers[name] = d
+
+ if d != None and static == 1:
+ d.set_static(1)
+
+ if d != None and name != None and type != None:
+ self.references[name] = d
+
+ if name == debugsym:
+ print("New ref: %s" % (d))
+
+ return d
+
+ def add(self, name, header, module, static, type, lineno, info=None, extra=None, conditionals = None):
+ if name[0:2] == '__':
+ return None
+ d = None
+ try:
+ d = self.identifiers[name]
+ d.update(header, module, type, lineno, info, extra, conditionals)
+ except:
+ d = identifier(name, header, module, type, lineno, info, extra, conditionals)
+ self.identifiers[name] = d
+
+ if d != None and static == 1:
+ d.set_static(1)
+
+ if d != None and name != None and type != None:
+ if type == "function":
+ self.functions[name] = d
+ elif type == "functype":
+ self.functions[name] = d
+ elif type == "variable":
+ self.variables[name] = d
+ elif type == "include":
+ self.includes[name] = d
+ elif type == "struct":
+ self.structs[name] = d
+ elif type == "enum":
+ self.enums[name] = d
+ elif type == "typedef":
+ self.typedefs[name] = d
+ elif type == "macro":
+ self.macros[name] = d
+ else:
+ print("Unable to register type ", type)
+
+ if name == debugsym:
+ print("New symbol: %s" % (d))
+
+ return d
+
+ def merge(self, idx):
+ for id in list(idx.functions.keys()):
+ #
+ # macro might be used to override functions or variables
+ # definitions
+ #
+ if id in self.macros:
+ del self.macros[id]
+ if id in self.functions:
+ print("function %s from %s redeclared in %s" % (
+ id, self.functions[id].header, idx.functions[id].header))
+ else:
+ self.functions[id] = idx.functions[id]
+ self.identifiers[id] = idx.functions[id]
+ for id in list(idx.variables.keys()):
+ #
+ # macro might be used to override functions or variables
+ # definitions
+ #
+ if id in self.macros:
+ del self.macros[id]
+ if id in self.variables:
+ print("variable %s from %s redeclared in %s" % (
+ id, self.variables[id].header, idx.variables[id].header))
+ else:
+ self.variables[id] = idx.variables[id]
+ self.identifiers[id] = idx.variables[id]
+ for id in list(idx.structs.keys()):
+ if id in self.structs:
+ print("struct %s from %s redeclared in %s" % (
+ id, self.structs[id].header, idx.structs[id].header))
+ else:
+ self.structs[id] = idx.structs[id]
+ self.identifiers[id] = idx.structs[id]
+ for id in list(idx.typedefs.keys()):
+ if id in self.typedefs:
+ print("typedef %s from %s redeclared in %s" % (
+ id, self.typedefs[id].header, idx.typedefs[id].header))
+ else:
+ self.typedefs[id] = idx.typedefs[id]
+ self.identifiers[id] = idx.typedefs[id]
+ for id in list(idx.macros.keys()):
+ #
+ # macro might be used to override functions or variables
+ # definitions
+ #
+ if id in self.variables:
+ continue
+ if id in self.functions:
+ continue
+ if id in self.enums:
+ continue
+ if id in self.macros:
+ print("macro %s from %s redeclared in %s" % (
+ id, self.macros[id].header, idx.macros[id].header))
+ else:
+ self.macros[id] = idx.macros[id]
+ self.identifiers[id] = idx.macros[id]
+ for id in list(idx.enums.keys()):
+ if id in self.enums:
+ print("enum %s from %s redeclared in %s" % (
+ id, self.enums[id].header, idx.enums[id].header))
+ else:
+ self.enums[id] = idx.enums[id]
+ self.identifiers[id] = idx.enums[id]
+
+ def merge_public(self, idx):
+ for id in list(idx.functions.keys()):
+ if id in self.functions:
+ # check that function condition agrees with header
+ if idx.functions[id].conditionals != \
+ self.functions[id].conditionals:
+ print("Header condition differs from Function for %s:" \
+ % id)
+ print(" H: %s" % self.functions[id].conditionals)
+ print(" C: %s" % idx.functions[id].conditionals)
+ up = idx.functions[id]
+ self.functions[id].update(None, up.module, up.type, up.info, up.extra)
+ # else:
+ # print "Function %s from %s is not declared in headers" % (
+ # id, idx.functions[id].module)
+ # TODO: do the same for variables.
+
+ def analyze_dict(self, type, dict):
+ count = 0
+ public = 0
+ for name in list(dict.keys()):
+ id = dict[name]
+ count = count + 1
+ if id.static == 0:
+ public = public + 1
+ if count != public:
+ print(" %d %s , %d public" % (count, type, public))
+ elif count != 0:
+ print(" %d public %s" % (count, type))
+
+
+ def analyze(self):
+ self.analyze_dict("functions", self.functions)
+ self.analyze_dict("variables", self.variables)
+ self.analyze_dict("structs", self.structs)
+ self.analyze_dict("typedefs", self.typedefs)
+ self.analyze_dict("macros", self.macros)
+
+class CLexer:
+ """A lexer for the C language, tokenize the input by reading and
+ analyzing it line by line"""
+ def __init__(self, input):
+ self.input = input
+ self.tokens = []
+ self.line = ""
+ self.lineno = 0
+
+ def getline(self):
+ line = ''
+ while line == '':
+ line = self.input.readline()
+ if not line:
+ return None
+ self.lineno = self.lineno + 1
+ line = line.lstrip()
+ line = line.rstrip()
+ if line == '':
+ continue
+ while line[-1] == '\\':
+ line = line[:-1]
+ n = self.input.readline()
+ self.lineno = self.lineno + 1
+ n = n.lstrip()
+ n = n.rstrip()
+ if not n:
+ break
+ else:
+ line = line + n
+ return line
+
+ def getlineno(self):
+ return self.lineno
+
+ def push(self, token):
+ self.tokens.insert(0, token);
+
+ def debug(self):
+ print("Last token: ", self.last)
+ print("Token queue: ", self.tokens)
+ print("Line %d end: " % (self.lineno), self.line)
+
+ def token(self):
+ while self.tokens == []:
+ if self.line == "":
+ line = self.getline()
+ else:
+ line = self.line
+ self.line = ""
+ if line == None:
+ return None
+
+ if line[0] == '#':
+ self.tokens = list(map((lambda x: ('preproc', x)),
+ line.split()))
+ break;
+ l = len(line)
+ if line[0] == '"' or line[0] == "'":
+ end = line[0]
+ line = line[1:]
+ found = 0
+ tok = ""
+ while found == 0:
+ i = 0
+ l = len(line)
+ while i < l:
+ if line[i] == end:
+ self.line = line[i+1:]
+ line = line[:i]
+ l = i
+ found = 1
+ break
+ if line[i] == '\\':
+ i = i + 1
+ i = i + 1
+ tok = tok + line
+ if found == 0:
+ line = self.getline()
+ if line == None:
+ return None
+ self.last = ('string', tok)
+ return self.last
+
+ if l >= 2 and line[0] == '/' and line[1] == '*':
+ line = line[2:]
+ found = 0
+ tok = ""
+ while found == 0:
+ i = 0
+ l = len(line)
+ while i < l:
+ if line[i] == '*' and i+1 < l and line[i+1] == '/':
+ self.line = line[i+2:]
+ line = line[:i-1]
+ l = i
+ found = 1
+ break
+ i = i + 1
+ if tok != "":
+ tok = tok + "\n"
+ tok = tok + line
+ if found == 0:
+ line = self.getline()
+ if line == None:
+ return None
+ self.last = ('comment', tok)
+ return self.last
+ if l >= 2 and line[0] == '/' and line[1] == '/':
+ line = line[2:]
+ self.last = ('comment', line)
+ return self.last
+ i = 0
+ while i < l:
+ if line[i] == '/' and i+1 < l and line[i+1] == '/':
+ self.line = line[i:]
+ line = line[:i]
+ break
+ if line[i] == '/' and i+1 < l and line[i+1] == '*':
+ self.line = line[i:]
+ line = line[:i]
+ break
+ if line[i] == '"' or line[i] == "'":
+ self.line = line[i:]
+ line = line[:i]
+ break
+ i = i + 1
+ l = len(line)
+ i = 0
+ while i < l:
+ if line[i] == ' ' or line[i] == '\t':
+ i = i + 1
+ continue
+ o = ord(line[i])
+ if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
+ (o >= 48 and o <= 57):
+ s = i
+ while i < l:
+ o = ord(line[i])
+ if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
+ (o >= 48 and o <= 57) or \
+ (" \t(){}:;,+-*/%&!|[]=><".find(line[i])) == -1:
+ i = i + 1
+ else:
+ break
+ self.tokens.append(('name', line[s:i]))
+ continue
+ if "(){}:;,[]".find(line[i]) != -1:
+# if line[i] == '(' or line[i] == ')' or line[i] == '{' or \
+# line[i] == '}' or line[i] == ':' or line[i] == ';' or \
+# line[i] == ',' or line[i] == '[' or line[i] == ']':
+ self.tokens.append(('sep', line[i]))
+ i = i + 1
+ continue
+ if "+-*><=/%&!|.".find(line[i]) != -1:
+# if line[i] == '+' or line[i] == '-' or line[i] == '*' or \
+# line[i] == '>' or line[i] == '<' or line[i] == '=' or \
+# line[i] == '/' or line[i] == '%' or line[i] == '&' or \
+# line[i] == '!' or line[i] == '|' or line[i] == '.':
+ if line[i] == '.' and i + 2 < l and \
+ line[i+1] == '.' and line[i+2] == '.':
+ self.tokens.append(('name', '...'))
+ i = i + 3
+ continue
+
+ j = i + 1
+ if j < l and (
+ "+-*><=/%&!|".find(line[j]) != -1):
+# line[j] == '+' or line[j] == '-' or line[j] == '*' or \
+# line[j] == '>' or line[j] == '<' or line[j] == '=' or \
+# line[j] == '/' or line[j] == '%' or line[j] == '&' or \
+# line[j] == '!' or line[j] == '|'):
+ self.tokens.append(('op', line[i:j+1]))
+ i = j + 1
+ else:
+ self.tokens.append(('op', line[i]))
+ i = i + 1
+ continue
+ s = i
+ while i < l:
+ o = ord(line[i])
+ if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
+ (o >= 48 and o <= 57) or (
+ " \t(){}:;,+-*/%&!|[]=><".find(line[i]) == -1):
+# line[i] != ' ' and line[i] != '\t' and
+# line[i] != '(' and line[i] != ')' and
+# line[i] != '{' and line[i] != '}' and
+# line[i] != ':' and line[i] != ';' and
+# line[i] != ',' and line[i] != '+' and
+# line[i] != '-' and line[i] != '*' and
+# line[i] != '/' and line[i] != '%' and
+# line[i] != '&' and line[i] != '!' and
+# line[i] != '|' and line[i] != '[' and
+# line[i] != ']' and line[i] != '=' and
+# line[i] != '*' and line[i] != '>' and
+# line[i] != '<'):
+ i = i + 1
+ else:
+ break
+ self.tokens.append(('name', line[s:i]))
+
+ tok = self.tokens[0]
+ self.tokens = self.tokens[1:]
+ self.last = tok
+ return tok
+
+class CParser:
+ """The C module parser"""
+ def __init__(self, filename, idx = None):
+ self.filename = filename
+ if len(filename) > 2 and filename[-2:] == '.h':
+ self.is_header = 1
+ else:
+ self.is_header = 0
+ self.input = open(filename)
+ self.lexer = CLexer(self.input)
+ if idx == None:
+ self.index = index()
+ else:
+ self.index = idx
+ self.top_comment = ""
+ self.last_comment = ""
+ self.comment = None
+ self.collect_ref = 0
+ self.no_error = 0
+ self.conditionals = []
+ self.defines = []
+
+ def collect_references(self):
+ self.collect_ref = 1
+
+ def stop_error(self):
+ self.no_error = 1
+
+ def start_error(self):
+ self.no_error = 0
+
+ def lineno(self):
+ return self.lexer.getlineno()
+
+ def index_add(self, name, module, static, type, info=None, extra = None):
+ if self.is_header == 1:
+ self.index.add(name, module, module, static, type, self.lineno(),
+ info, extra, self.conditionals)
+ else:
+ self.index.add(name, None, module, static, type, self.lineno(),
+ info, extra, self.conditionals)
+
+ def index_add_ref(self, name, module, static, type, info=None,
+ extra = None):
+ if self.is_header == 1:
+ self.index.add_ref(name, module, module, static, type,
+ self.lineno(), info, extra, self.conditionals)
+ else:
+ self.index.add_ref(name, None, module, static, type, self.lineno(),
+ info, extra, self.conditionals)
+
+ def warning(self, msg):
+ if self.no_error:
+ return
+ print(msg)
+
+ def error(self, msg, token=-1):
+ if self.no_error:
+ return
+
+ print("Parse Error: " + msg)
+ if token != -1:
+ print("Got token ", token)
+ self.lexer.debug()
+ sys.exit(1)
+
+ def debug(self, msg, token=-1):
+ print("Debug: " + msg)
+ if token != -1:
+ print("Got token ", token)
+ self.lexer.debug()
+
+ def parseTopComment(self, comment):
+ res = {}
+ lines = comment.split("\n")
+ item = None
+ for line in lines:
+ while line != "" and (line[0] == ' ' or line[0] == '\t'):
+ line = line[1:]
+ while line != "" and line[0] == '*':
+ line = line[1:]
+ while line != "" and (line[0] == ' ' or line[0] == '\t'):
+ line = line[1:]
+ try:
+ (it, line) = line.split(":", 1)
+ item = it
+ while line != "" and (line[0] == ' ' or line[0] == '\t'):
+ line = line[1:]
+ if item in res:
+ res[item] = res[item] + " " + line
+ else:
+ res[item] = line
+ except:
+ if item != None:
+ if item in res:
+ res[item] = res[item] + " " + line
+ else:
+ res[item] = line
+ self.index.info = res
+
+ def parseComment(self, token):
+ if self.top_comment == "":
+ self.top_comment = token[1]
+ if self.comment == None or token[1][0] == '*':
+ self.comment = token[1];
+ else:
+ self.comment = self.comment + token[1]
+ token = self.lexer.token()
+
+ if self.comment.find("DOC_DISABLE") != -1:
+ self.stop_error()
+
+ if self.comment.find("DOC_ENABLE") != -1:
+ self.start_error()
+
+ return token
+
+ #
+ # Parse a comment block associate to a typedef
+ #
+ def parseTypeComment(self, name, quiet = 0):
+ if name[0:2] == '__':
+ quiet = 1
+
+ args = []
+ desc = ""
+
+ if self.comment == None:
+ if not quiet:
+ self.warning("Missing comment for type %s" % (name))
+ return((args, desc))
+ if self.comment[0] != '*':
+ if not quiet:
+ self.warning("Missing * in type comment for %s" % (name))
+ return((args, desc))
+ lines = self.comment.split('\n')
+ if lines[0] == '*':
+ del lines[0]
+ if lines[0] != "* %s:" % (name):
+ if not quiet:
+ self.warning("Misformatted type comment for %s" % (name))
+ self.warning(" Expecting '* %s:' got '%s'" % (name, lines[0]))
+ return((args, desc))
+ del lines[0]
+ while len(lines) > 0 and lines[0] == '*':
+ del lines[0]
+ desc = ""
+ while len(lines) > 0:
+ l = lines[0]
+ while len(l) > 0 and l[0] == '*':
+ l = l[1:]
+ l = l.strip()
+ desc = desc + " " + l
+ del lines[0]
+
+ desc = desc.strip()
+
+ if quiet == 0:
+ if desc == "":
+ self.warning("Type comment for %s lack description of the macro" % (name))
+
+ return(desc)
+ #
+ # Parse a comment block associate to a macro
+ #
+ def parseMacroComment(self, name, quiet = 0):
+ if name[0:2] == '__':
+ quiet = 1
+
+ args = []
+ desc = ""
+
+ if self.comment == None:
+ if not quiet:
+ self.warning("Missing comment for macro %s" % (name))
+ return((args, desc))
+ if self.comment[0] != '*':
+ if not quiet:
+ self.warning("Missing * in macro comment for %s" % (name))
+ return((args, desc))
+ lines = self.comment.split('\n')
+ if lines[0] == '*':
+ del lines[0]
+ if lines[0] != "* %s:" % (name):
+ if not quiet:
+ self.warning("Misformatted macro comment for %s" % (name))
+ self.warning(" Expecting '* %s:' got '%s'" % (name, lines[0]))
+ return((args, desc))
+ del lines[0]
+ while lines[0] == '*':
+ del lines[0]
+ while len(lines) > 0 and lines[0][0:3] == '* @':
+ l = lines[0][3:]
+ try:
+ (arg, desc) = l.split(':', 1)
+ desc=desc.strip()
+ arg=arg.strip()
+ except:
+ if not quiet:
+ self.warning("Misformatted macro comment for %s" % (name))
+ self.warning(" problem with '%s'" % (lines[0]))
+ del lines[0]
+ continue
+ del lines[0]
+ l = lines[0].strip()
+ while len(l) > 2 and l[0:3] != '* @':
+ while l[0] == '*':
+ l = l[1:]
+ desc = desc + ' ' + l.strip()
+ del lines[0]
+ if len(lines) == 0:
+ break
+ l = lines[0]
+ args.append((arg, desc))
+ while len(lines) > 0 and lines[0] == '*':
+ del lines[0]
+ desc = ""
+ while len(lines) > 0:
+ l = lines[0]
+ while len(l) > 0 and l[0] == '*':
+ l = l[1:]
+ l = l.strip()
+ desc = desc + " " + l
+ del lines[0]
+
+ desc = desc.strip()
+
+ if quiet == 0:
+ if desc == "":
+ self.warning("Macro comment for %s lack description of the macro" % (name))
+
+ return((args, desc))
+
+ #
+ # Parse a comment block and merge the informations found in the
+ # parameters descriptions, finally returns a block as complete
+ # as possible
+ #
+ def mergeFunctionComment(self, name, description, quiet = 0):
+ if name == 'main':
+ quiet = 1
+ if name[0:2] == '__':
+ quiet = 1
+
+ (ret, args) = description
+ desc = ""
+ retdesc = ""
+
+ if self.comment == None:
+ if not quiet:
+ self.warning("Missing comment for function %s" % (name))
+ return(((ret[0], retdesc), args, desc))
+ if self.comment[0] != '*':
+ if not quiet:
+ self.warning("Missing * in function comment for %s" % (name))
+ return(((ret[0], retdesc), args, desc))
+ lines = self.comment.split('\n')
+ if lines[0] == '*':
+ del lines[0]
+ if lines[0] != "* %s:" % (name):
+ if not quiet:
+ self.warning("Misformatted function comment for %s" % (name))
+ self.warning(" Expecting '* %s:' got '%s'" % (name, lines[0]))
+ return(((ret[0], retdesc), args, desc))
+ del lines[0]
+ while lines[0] == '*':
+ del lines[0]
+ nbargs = len(args)
+ while len(lines) > 0 and lines[0][0:3] == '* @':
+ l = lines[0][3:]
+ try:
+ (arg, desc) = l.split(':', 1)
+ desc=desc.strip()
+ arg=arg.strip()
+ except:
+ if not quiet:
+ self.warning("Misformatted function comment for %s" % (name))
+ self.warning(" problem with '%s'" % (lines[0]))
+ del lines[0]
+ continue
+ del lines[0]
+ l = lines[0].strip()
+ while len(l) > 2 and l[0:3] != '* @':
+ while l[0] == '*':
+ l = l[1:]
+ desc = desc + ' ' + l.strip()
+ del lines[0]
+ if len(lines) == 0:
+ break
+ l = lines[0]
+ i = 0
+ while i < nbargs:
+ if args[i][1] == arg:
+ args[i] = (args[i][0], arg, desc)
+ break;
+ i = i + 1
+ if i >= nbargs:
+ if not quiet:
+ self.warning("Unable to find arg %s from function comment for %s" % (
+ arg, name))
+ while len(lines) > 0 and lines[0] == '*':
+ del lines[0]
+ desc = ""
+ while len(lines) > 0:
+ l = lines[0]
+ while len(l) > 0 and l[0] == '*':
+ l = l[1:]
+ l = l.strip()
+ if len(l) >= 6 and l[0:6] == "return" or l[0:6] == "Return":
+ try:
+ l = l.split(' ', 1)[1]
+ except:
+ l = ""
+ retdesc = l.strip()
+ del lines[0]
+ while len(lines) > 0:
+ l = lines[0]
+ while len(l) > 0 and l[0] == '*':
+ l = l[1:]
+ l = l.strip()
+ retdesc = retdesc + " " + l
+ del lines[0]
+ else:
+ desc = desc + " " + l
+ del lines[0]
+
+ retdesc = retdesc.strip()
+ desc = desc.strip()
+
+ if quiet == 0:
+ #
+ # report missing comments
+ #
+ i = 0
+ while i < nbargs:
+ if args[i][2] == None and args[i][0] != "void" and \
+ ((args[i][1] != None) or (args[i][1] == '')):
+ self.warning("Function comment for %s lacks description of arg %s" % (name, args[i][1]))
+ i = i + 1
+ if retdesc == "" and ret[0] != "void":
+ self.warning("Function comment for %s lacks description of return value" % (name))
+ if desc == "":
+ self.warning("Function comment for %s lacks description of the function" % (name))
+
+ return(((ret[0], retdesc), args, desc))
+
+ def parsePreproc(self, token):
+ if debug:
+ print("=> preproc ", token, self.lexer.tokens)
+ name = token[1]
+ if name == "#include":
+ token = self.lexer.token()
+ if token == None:
+ return None
+ if token[0] == 'preproc':
+ self.index_add(token[1], self.filename, not self.is_header,
+ "include")
+ return self.lexer.token()
+ return token
+ if name == "#define":
+ token = self.lexer.token()
+ if token == None:
+ return None
+ if token[0] == 'preproc':
+ # TODO macros with arguments
+ name = token[1]
+ lst = []
+ token = self.lexer.token()
+ while token != None and token[0] == 'preproc' and \
+ token[1][0] != '#':
+ lst.append(token[1])
+ token = self.lexer.token()
+ try:
+ name = name.split('(') [0]
+ except:
+ pass
+ info = self.parseMacroComment(name, not self.is_header)
+ self.index_add(name, self.filename, not self.is_header,
+ "macro", info)
+ return token
+
+ #
+ # Processing of conditionals modified by Bill 1/1/05
+ #
+ # We process conditionals (i.e. tokens from #ifdef, #ifndef,
+ # #if, #else and #endif) for headers and mainline code,
+ # store the ones from the header in libxml2-api.xml, and later
+ # (in the routine merge_public) verify that the two (header and
+ # mainline code) agree.
+ #
+ # There is a small problem with processing the headers. Some of
+ # the variables are not concerned with enabling / disabling of
+ # library functions (e.g. '__XML_PARSER_H__'), and we don't want
+ # them to be included in libxml2-api.xml, or involved in
+ # the check between the header and the mainline code. To
+ # accomplish this, we ignore any conditional which doesn't include
+ # the string 'ENABLED'
+ #
+ if name == "#ifdef":
+ apstr = self.lexer.tokens[0][1]
+ try:
+ self.defines.append(apstr)
+ if apstr.find('ENABLED') != -1:
+ self.conditionals.append("defined(%s)" % apstr)
+ except:
+ pass
+ elif name == "#ifndef":
+ apstr = self.lexer.tokens[0][1]
+ try:
+ self.defines.append(apstr)
+ if apstr.find('ENABLED') != -1:
+ self.conditionals.append("!defined(%s)" % apstr)
+ except:
+ pass
+ elif name == "#if":
+ apstr = ""
+ for tok in self.lexer.tokens:
+ if apstr != "":
+ apstr = apstr + " "
+ apstr = apstr + tok[1]
+ try:
+ self.defines.append(apstr)
+ if apstr.find('ENABLED') != -1:
+ self.conditionals.append(apstr)
+ except:
+ pass
+ elif name == "#else":
+ if self.conditionals != [] and \
+ self.defines[-1].find('ENABLED') != -1:
+ self.conditionals[-1] = "!(%s)" % self.conditionals[-1]
+ elif name == "#endif":
+ if self.conditionals != [] and \
+ self.defines[-1].find('ENABLED') != -1:
+ self.conditionals = self.conditionals[:-1]
+ self.defines = self.defines[:-1]
+ token = self.lexer.token()
+ while token != None and token[0] == 'preproc' and \
+ token[1][0] != '#':
+ token = self.lexer.token()
+ return token
+
+ #
+ # token acquisition on top of the lexer, it handle internally
+ # preprocessor and comments since they are logically not part of
+ # the program structure.
+ #
+ def token(self):
+ global ignored_words
+
+ token = self.lexer.token()
+ while token != None:
+ if token[0] == 'comment':
+ token = self.parseComment(token)
+ continue
+ elif token[0] == 'preproc':
+ token = self.parsePreproc(token)
+ continue
+ elif token[0] == "name" and token[1] == "__const":
+ token = ("name", "const")
+ return token
+ elif token[0] == "name" and token[1] == "__attribute":
+ token = self.lexer.token()
+ while token != None and token[1] != ";":
+ token = self.lexer.token()
+ return token
+ elif token[0] == "name" and token[1] in ignored_words:
+ (n, info) = ignored_words[token[1]]
+ i = 0
+ while i < n:
+ token = self.lexer.token()
+ i = i + 1
+ token = self.lexer.token()
+ continue
+ else:
+ if debug:
+ print("=> ", token)
+ return token
+ return None
+
+ #
+ # Parse a typedef, it records the type and its name.
+ #
+ def parseTypedef(self, token):
+ if token == None:
+ return None
+ token = self.parseType(token)
+ if token == None:
+ self.error("parsing typedef")
+ return None
+ base_type = self.type
+ type = base_type
+ #self.debug("end typedef type", token)
+ while token != None:
+ if token[0] == "name":
+ name = token[1]
+ signature = self.signature
+ if signature != None:
+ type = type.split('(')[0]
+ d = self.mergeFunctionComment(name,
+ ((type, None), signature), 1)
+ self.index_add(name, self.filename, not self.is_header,
+ "functype", d)
+ else:
+ if base_type == "struct":
+ self.index_add(name, self.filename, not self.is_header,
+ "struct", type)
+ base_type = "struct " + name
+ else:
+ # TODO report missing or misformatted comments
+ info = self.parseTypeComment(name, 1)
+ self.index_add(name, self.filename, not self.is_header,
+ "typedef", type, info)
+ token = self.token()
+ else:
+ self.error("parsing typedef: expecting a name")
+ return token
+ #self.debug("end typedef", token)
+ if token != None and token[0] == 'sep' and token[1] == ',':
+ type = base_type
+ token = self.token()
+ while token != None and token[0] == "op":
+ type = type + token[1]
+ token = self.token()
+ elif token != None and token[0] == 'sep' and token[1] == ';':
+ break;
+ elif token != None and token[0] == 'name':
+ type = base_type
+ continue;
+ else:
+ self.error("parsing typedef: expecting ';'", token)
+ return token
+ token = self.token()
+ return token
+
+ #
+ # Parse a C code block, used for functions it parse till
+ # the balancing } included
+ #
+ def parseBlock(self, token):
+ while token != None:
+ if token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseBlock(token)
+ elif token[0] == "sep" and token[1] == "}":
+ self.comment = None
+ token = self.token()
+ return token
+ else:
+ if self.collect_ref == 1:
+ oldtok = token
+ token = self.token()
+ if oldtok[0] == "name" and oldtok[1][0:3] == "xml":
+ if token[0] == "sep" and token[1] == "(":
+ self.index_add_ref(oldtok[1], self.filename,
+ 0, "function")
+ token = self.token()
+ elif token[0] == "name":
+ token = self.token()
+ if token[0] == "sep" and (token[1] == ";" or
+ token[1] == "," or token[1] == "="):
+ self.index_add_ref(oldtok[1], self.filename,
+ 0, "type")
+ elif oldtok[0] == "name" and oldtok[1][0:4] == "XML_":
+ self.index_add_ref(oldtok[1], self.filename,
+ 0, "typedef")
+ elif oldtok[0] == "name" and oldtok[1][0:7] == "LIBXML_":
+ self.index_add_ref(oldtok[1], self.filename,
+ 0, "typedef")
+
+ else:
+ token = self.token()
+ return token
+
+ #
+ # Parse a C struct definition till the balancing }
+ #
+ def parseStruct(self, token):
+ fields = []
+ #self.debug("start parseStruct", token)
+ while token != None:
+ if token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseTypeBlock(token)
+ elif token[0] == "sep" and token[1] == "}":
+ self.struct_fields = fields
+ #self.debug("end parseStruct", token)
+ #print fields
+ token = self.token()
+ return token
+ else:
+ base_type = self.type
+ #self.debug("before parseType", token)
+ token = self.parseType(token)
+ #self.debug("after parseType", token)
+ if token != None and token[0] == "name":
+ fname = token[1]
+ token = self.token()
+ if token[0] == "sep" and token[1] == ";":
+ self.comment = None
+ token = self.token()
+ fields.append((self.type, fname, self.comment))
+ self.comment = None
+ else:
+ self.error("parseStruct: expecting ;", token)
+ elif token != None and token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseTypeBlock(token)
+ if token != None and token[0] == "name":
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == ";":
+ token = self.token()
+ else:
+ self.error("parseStruct: expecting ;", token)
+ else:
+ self.error("parseStruct: name", token)
+ token = self.token()
+ self.type = base_type;
+ self.struct_fields = fields
+ #self.debug("end parseStruct", token)
+ #print fields
+ return token
+
+ #
+ # Parse a C enum block, parse till the balancing }
+ #
+ def parseEnumBlock(self, token):
+ self.enums = []
+ name = None
+ self.comment = None
+ comment = ""
+ value = "0"
+ while token != None:
+ if token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseTypeBlock(token)
+ elif token[0] == "sep" and token[1] == "}":
+ if name != None:
+ if self.comment != None:
+ comment = self.comment
+ self.comment = None
+ self.enums.append((name, value, comment))
+ token = self.token()
+ return token
+ elif token[0] == "name":
+ if name != None:
+ if self.comment != None:
+ comment = self.comment.strip()
+ self.comment = None
+ self.enums.append((name, value, comment))
+ name = token[1]
+ comment = ""
+ token = self.token()
+ if token[0] == "op" and token[1][0] == "=":
+ value = ""
+ if len(token[1]) > 1:
+ value = token[1][1:]
+ token = self.token()
+ while token[0] != "sep" or (token[1] != ',' and
+ token[1] != '}'):
+ value = value + token[1]
+ token = self.token()
+ else:
+ try:
+ value = "%d" % (int(value) + 1)
+ except:
+ self.warning("Failed to compute value of enum %s" % (name))
+ value=""
+ if token[0] == "sep" and token[1] == ",":
+ token = self.token()
+ else:
+ token = self.token()
+ return token
+
+ #
+ # Parse a C definition block, used for structs it parse till
+ # the balancing }
+ #
+ def parseTypeBlock(self, token):
+ while token != None:
+ if token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseTypeBlock(token)
+ elif token[0] == "sep" and token[1] == "}":
+ token = self.token()
+ return token
+ else:
+ token = self.token()
+ return token
+
+ #
+ # Parse a type: the fact that the type name can either occur after
+ # the definition or within the definition makes it a little harder
+ # if inside, the name token is pushed back before returning
+ #
+ def parseType(self, token):
+ self.type = ""
+ self.struct_fields = []
+ self.signature = None
+ if token == None:
+ return token
+
+ while token[0] == "name" and (
+ token[1] == "const" or \
+ token[1] == "unsigned" or \
+ token[1] == "signed"):
+ if self.type == "":
+ self.type = token[1]
+ else:
+ self.type = self.type + " " + token[1]
+ token = self.token()
+
+ if token[0] == "name" and (token[1] == "long" or token[1] == "short"):
+ if self.type == "":
+ self.type = token[1]
+ else:
+ self.type = self.type + " " + token[1]
+ if token[0] == "name" and token[1] == "int":
+ if self.type == "":
+ self.type = tmp[1]
+ else:
+ self.type = self.type + " " + tmp[1]
+
+ elif token[0] == "name" and token[1] == "struct":
+ if self.type == "":
+ self.type = token[1]
+ else:
+ self.type = self.type + " " + token[1]
+ token = self.token()
+ nametok = None
+ if token[0] == "name":
+ nametok = token
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseStruct(token)
+ elif token != None and token[0] == "op" and token[1] == "*":
+ self.type = self.type + " " + nametok[1] + " *"
+ token = self.token()
+ while token != None and token[0] == "op" and token[1] == "*":
+ self.type = self.type + " *"
+ token = self.token()
+ if token[0] == "name":
+ nametok = token
+ token = self.token()
+ else:
+ self.error("struct : expecting name", token)
+ return token
+ elif token != None and token[0] == "name" and nametok != None:
+ self.type = self.type + " " + nametok[1]
+ return token
+
+ if nametok != None:
+ self.lexer.push(token)
+ token = nametok
+ return token
+
+ elif token[0] == "name" and token[1] == "enum":
+ if self.type == "":
+ self.type = token[1]
+ else:
+ self.type = self.type + " " + token[1]
+ self.enums = []
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseEnumBlock(token)
+ else:
+ self.error("parsing enum: expecting '{'", token)
+ enum_type = None
+ if token != None and token[0] != "name":
+ self.lexer.push(token)
+ token = ("name", "enum")
+ else:
+ enum_type = token[1]
+ for enum in self.enums:
+ self.index_add(enum[0], self.filename,
+ not self.is_header, "enum",
+ (enum[1], enum[2], enum_type))
+ return token
+
+ elif token[0] == "name":
+ if self.type == "":
+ self.type = token[1]
+ else:
+ self.type = self.type + " " + token[1]
+ else:
+ self.error("parsing type %s: expecting a name" % (self.type),
+ token)
+ return token
+ token = self.token()
+ while token != None and (token[0] == "op" or
+ token[0] == "name" and token[1] == "const"):
+ self.type = self.type + " " + token[1]
+ token = self.token()
+
+ #
+ # if there is a parenthesis here, this means a function type
+ #
+ if token != None and token[0] == "sep" and token[1] == '(':
+ self.type = self.type + token[1]
+ token = self.token()
+ while token != None and token[0] == "op" and token[1] == '*':
+ self.type = self.type + token[1]
+ token = self.token()
+ if token == None or token[0] != "name" :
+ self.error("parsing function type, name expected", token);
+ return token
+ self.type = self.type + token[1]
+ nametok = token
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == ')':
+ self.type = self.type + token[1]
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == '(':
+ token = self.token()
+ type = self.type;
+ token = self.parseSignature(token);
+ self.type = type;
+ else:
+ self.error("parsing function type, '(' expected", token);
+ return token
+ else:
+ self.error("parsing function type, ')' expected", token);
+ return token
+ self.lexer.push(token)
+ token = nametok
+ return token
+
+ #
+ # do some lookahead for arrays
+ #
+ if token != None and token[0] == "name":
+ nametok = token
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == '[':
+ self.type = self.type + nametok[1]
+ while token != None and token[0] == "sep" and token[1] == '[':
+ self.type = self.type + token[1]
+ token = self.token()
+ while token != None and token[0] != 'sep' and \
+ token[1] != ']' and token[1] != ';':
+ self.type = self.type + token[1]
+ token = self.token()
+ if token != None and token[0] == 'sep' and token[1] == ']':
+ self.type = self.type + token[1]
+ token = self.token()
+ else:
+ self.error("parsing array type, ']' expected", token);
+ return token
+ elif token != None and token[0] == "sep" and token[1] == ':':
+ # remove :12 in case it's a limited int size
+ token = self.token()
+ token = self.token()
+ self.lexer.push(token)
+ token = nametok
+
+ return token
+
+ #
+ # Parse a signature: '(' has been parsed and we scan the type definition
+ # up to the ')' included
+ def parseSignature(self, token):
+ signature = []
+ if token != None and token[0] == "sep" and token[1] == ')':
+ self.signature = []
+ token = self.token()
+ return token
+ while token != None:
+ token = self.parseType(token)
+ if token != None and token[0] == "name":
+ signature.append((self.type, token[1], None))
+ token = self.token()
+ elif token != None and token[0] == "sep" and token[1] == ',':
+ token = self.token()
+ continue
+ elif token != None and token[0] == "sep" and token[1] == ')':
+ # only the type was provided
+ if self.type == "...":
+ signature.append((self.type, "...", None))
+ else:
+ signature.append((self.type, None, None))
+ if token != None and token[0] == "sep":
+ if token[1] == ',':
+ token = self.token()
+ continue
+ elif token[1] == ')':
+ token = self.token()
+ break
+ self.signature = signature
+ return token
+
+ #
+ # Parse a global definition, be it a type, variable or function
+ # the extern "C" blocks are a bit nasty and require it to recurse.
+ #
+ def parseGlobal(self, token):
+ static = 0
+ if token[1] == 'extern':
+ token = self.token()
+ if token == None:
+ return token
+ if token[0] == 'string':
+ if token[1] == 'C':
+ token = self.token()
+ if token == None:
+ return token
+ if token[0] == 'sep' and token[1] == "{":
+ token = self.token()
+# print 'Entering extern "C line ', self.lineno()
+ while token != None and (token[0] != 'sep' or
+ token[1] != "}"):
+ if token[0] == 'name':
+ token = self.parseGlobal(token)
+ else:
+ self.error(
+ "token %s %s unexpected at the top level" % (
+ token[0], token[1]))
+ token = self.parseGlobal(token)
+# print 'Exiting extern "C" line', self.lineno()
+ token = self.token()
+ return token
+ else:
+ return token
+ elif token[1] == 'static':
+ static = 1
+ token = self.token()
+ if token == None or token[0] != 'name':
+ return token
+
+ if token[1] == 'typedef':
+ token = self.token()
+ return self.parseTypedef(token)
+ else:
+ token = self.parseType(token)
+ type_orig = self.type
+ if token == None or token[0] != "name":
+ return token
+ type = type_orig
+ self.name = token[1]
+ token = self.token()
+ while token != None and (token[0] == "sep" or token[0] == "op"):
+ if token[0] == "sep":
+ if token[1] == "[":
+ type = type + token[1]
+ token = self.token()
+ while token != None and (token[0] != "sep" or \
+ token[1] != ";"):
+ type = type + token[1]
+ token = self.token()
+
+ if token != None and token[0] == "op" and token[1] == "=":
+ #
+ # Skip the initialization of the variable
+ #
+ token = self.token()
+ if token[0] == 'sep' and token[1] == '{':
+ token = self.token()
+ token = self.parseBlock(token)
+ else:
+ self.comment = None
+ while token != None and (token[0] != "sep" or \
+ (token[1] != ';' and token[1] != ',')):
+ token = self.token()
+ self.comment = None
+ if token == None or token[0] != "sep" or (token[1] != ';' and
+ token[1] != ','):
+ self.error("missing ';' or ',' after value")
+
+ if token != None and token[0] == "sep":
+ if token[1] == ";":
+ self.comment = None
+ token = self.token()
+ if type == "struct":
+ self.index_add(self.name, self.filename,
+ not self.is_header, "struct", self.struct_fields)
+ else:
+ self.index_add(self.name, self.filename,
+ not self.is_header, "variable", type)
+ break
+ elif token[1] == "(":
+ token = self.token()
+ token = self.parseSignature(token)
+ if token == None:
+ return None
+ if token[0] == "sep" and token[1] == ";":
+ d = self.mergeFunctionComment(self.name,
+ ((type, None), self.signature), 1)
+ self.index_add(self.name, self.filename, static,
+ "function", d)
+ token = self.token()
+ elif token[0] == "sep" and token[1] == "{":
+ d = self.mergeFunctionComment(self.name,
+ ((type, None), self.signature), static)
+ self.index_add(self.name, self.filename, static,
+ "function", d)
+ token = self.token()
+ token = self.parseBlock(token);
+ elif token[1] == ',':
+ self.comment = None
+ self.index_add(self.name, self.filename, static,
+ "variable", type)
+ type = type_orig
+ token = self.token()
+ while token != None and token[0] == "sep":
+ type = type + token[1]
+ token = self.token()
+ if token != None and token[0] == "name":
+ self.name = token[1]
+ token = self.token()
+ else:
+ break
+
+ return token
+
+ def parse(self):
+ self.warning("Parsing %s" % (self.filename))
+ token = self.token()
+ while token != None:
+ if token[0] == 'name':
+ token = self.parseGlobal(token)
+ else:
+ self.error("token %s %s unexpected at the top level" % (
+ token[0], token[1]))
+ token = self.parseGlobal(token)
+ return
+ self.parseTopComment(self.top_comment)
+ return self.index
+
+
+class docBuilder:
+ """A documentation builder"""
+ def __init__(self, name, directories=['.'], excludes=[]):
+ self.name = name
+ self.directories = directories
+ self.excludes = excludes + list(ignored_files.keys())
+ self.modules = {}
+ self.headers = {}
+ self.idx = index()
+ self.xref = {}
+ self.index = {}
+ if name == 'libxml2':
+ self.basename = 'libxml'
+ else:
+ self.basename = name
+
+ def indexString(self, id, str):
+ if str == None:
+ return
+ str = str.replace("'", ' ')
+ str = str.replace('"', ' ')
+ str = str.replace("/", ' ')
+ str = str.replace('*', ' ')
+ str = str.replace("[", ' ')
+ str = str.replace("]", ' ')
+ str = str.replace("(", ' ')
+ str = str.replace(")", ' ')
+ str = str.replace("<", ' ')
+ str = str.replace('>', ' ')
+ str = str.replace("&", ' ')
+ str = str.replace('#', ' ')
+ str = str.replace(",", ' ')
+ str = str.replace('.', ' ')
+ str = str.replace(';', ' ')
+ tokens = str.split()
+ for token in tokens:
+ try:
+ c = token[0]
+ if string.ascii_letters.find(c) < 0:
+ pass
+ elif len(token) < 3:
+ pass
+ else:
+ lower = token.lower()
+ # TODO: generalize this a bit
+ if lower == 'and' or lower == 'the':
+ pass
+ elif token in self.xref:
+ self.xref[token].append(id)
+ else:
+ self.xref[token] = [id]
+ except:
+ pass
+
+ def analyze(self):
+ print("Project %s : %d headers, %d modules" % (self.name, len(list(self.headers.keys())), len(list(self.modules.keys()))))
+ self.idx.analyze()
+
+ def scanHeaders(self):
+ for header in list(self.headers.keys()):
+ parser = CParser(header)
+ idx = parser.parse()
+ self.headers[header] = idx;
+ self.idx.merge(idx)
+
+ def scanModules(self):
+ for module in list(self.modules.keys()):
+ parser = CParser(module)
+ idx = parser.parse()
+ # idx.analyze()
+ self.modules[module] = idx
+ self.idx.merge_public(idx)
+
+ def scan(self):
+ for directory in self.directories:
+ files = glob.glob(directory + "/*.c")
+ for file in files:
+ skip = 0
+ for excl in self.excludes:
+ if file.find(excl) != -1:
+ print("Skipping %s" % file)
+ skip = 1
+ break
+ if skip == 0:
+ self.modules[file] = None;
+ files = glob.glob(directory + "/*.h")
+ for file in files:
+ skip = 0
+ for excl in self.excludes:
+ if file.find(excl) != -1:
+ print("Skipping %s" % file)
+ skip = 1
+ break
+ if skip == 0:
+ self.headers[file] = None;
+ self.scanHeaders()
+ self.scanModules()
+
+ def modulename_file(self, file):
+ module = os.path.basename(file)
+ if module[-2:] == '.h':
+ module = module[:-2]
+ elif module[-2:] == '.c':
+ module = module[:-2]
+ return module
+
+ def serialize_enum(self, output, name):
+ id = self.idx.enums[name]
+ output.write(" <enum name='%s' file='%s'" % (name,
+ self.modulename_file(id.header)))
+ if id.info != None:
+ info = id.info
+ if info[0] != None and info[0] != '':
+ try:
+ val = eval(info[0])
+ except:
+ val = info[0]
+ output.write(" value='%s'" % (val));
+ if info[2] != None and info[2] != '':
+ output.write(" type='%s'" % info[2]);
+ if info[1] != None and info[1] != '':
+ output.write(" info='%s'" % escape(info[1]));
+ output.write("/>\n")
+
+ def serialize_macro(self, output, name):
+ id = self.idx.macros[name]
+ output.write(" <macro name='%s' file='%s'>\n" % (name,
+ self.modulename_file(id.header)))
+ if id.info != None:
+ try:
+ (args, desc) = id.info
+ if desc != None and desc != "":
+ output.write(" <info>%s</info>\n" % (escape(desc)))
+ self.indexString(name, desc)
+ for arg in args:
+ (name, desc) = arg
+ if desc != None and desc != "":
+ output.write(" <arg name='%s' info='%s'/>\n" % (
+ name, escape(desc)))
+ self.indexString(name, desc)
+ else:
+ output.write(" <arg name='%s'/>\n" % (name))
+ except:
+ pass
+ output.write(" </macro>\n")
+
+ def serialize_typedef(self, output, name):
+ id = self.idx.typedefs[name]
+ if id.info[0:7] == 'struct ':
+ output.write(" <struct name='%s' file='%s' type='%s'" % (
+ name, self.modulename_file(id.header), id.info))
+ name = id.info[7:]
+ if name in self.idx.structs and ( \
+ type(self.idx.structs[name].info) == type(()) or
+ type(self.idx.structs[name].info) == type([])):
+ output.write(">\n");
+ try:
+ for field in self.idx.structs[name].info:
+ desc = field[2]
+ self.indexString(name, desc)
+ if desc == None:
+ desc = ''
+ else:
+ desc = escape(desc)
+ output.write(" <field name='%s' type='%s' info='%s'/>\n" % (field[1] , field[0], desc))
+ except:
+ print("Failed to serialize struct %s" % (name))
+ output.write(" </struct>\n")
+ else:
+ output.write("/>\n");
+ else :
+ output.write(" <typedef name='%s' file='%s' type='%s'" % (
+ name, self.modulename_file(id.header), id.info))
+ try:
+ desc = id.extra
+ if desc != None and desc != "":
+ output.write(">\n <info>%s</info>\n" % (escape(desc)))
+ output.write(" </typedef>\n")
+ else:
+ output.write("/>\n")
+ except:
+ output.write("/>\n")
+
+ def serialize_variable(self, output, name):
+ id = self.idx.variables[name]
+ if id.info != None:
+ output.write(" <variable name='%s' file='%s' type='%s'/>\n" % (
+ name, self.modulename_file(id.header), id.info))
+ else:
+ output.write(" <variable name='%s' file='%s'/>\n" % (
+ name, self.modulename_file(id.header)))
+
+ def serialize_function(self, output, name):
+ id = self.idx.functions[name]
+ if name == debugsym:
+ print("=>", id)
+
+ output.write(" <%s name='%s' file='%s' module='%s'>\n" % (id.type,
+ name, self.modulename_file(id.header),
+ self.modulename_file(id.module)))
+ #
+ # Processing of conditionals modified by Bill 1/1/05
+ #
+ if id.conditionals != None:
+ apstr = ""
+ for cond in id.conditionals:
+ if apstr != "":
+ apstr = apstr + " &amp;&amp; "
+ apstr = apstr + cond
+ output.write(" <cond>%s</cond>\n"% (apstr));
+ try:
+ (ret, params, desc) = id.info
+ if (desc == None or desc == '') and \
+ name[0:9] != "xmlThrDef" and name != "xmlDllMain":
+ print("%s %s from %s has no description" % (id.type, name,
+ self.modulename_file(id.module)))
+
+ output.write(" <info>%s</info>\n" % (escape(desc)))
+ self.indexString(name, desc)
+ if ret[0] != None:
+ if ret[0] == "void":
+ output.write(" <return type='void'/>\n")
+ else:
+ output.write(" <return type='%s' info='%s'/>\n" % (
+ ret[0], escape(ret[1])))
+ self.indexString(name, ret[1])
+ for param in params:
+ if param[0] == 'void':
+ continue
+ if param[2] == None:
+ output.write(" <arg name='%s' type='%s' info=''/>\n" % (param[1], param[0]))
+ else:
+ output.write(" <arg name='%s' type='%s' info='%s'/>\n" % (param[1], param[0], escape(param[2])))
+ self.indexString(name, param[2])
+ except:
+ print("Failed to save function %s info: " % name, repr(id.info))
+ output.write(" </%s>\n" % (id.type))
+
+ def serialize_exports(self, output, file):
+ module = self.modulename_file(file)
+ output.write(" <file name='%s'>\n" % (module))
+ dict = self.headers[file]
+ if dict.info != None:
+ for data in ('Summary', 'Description', 'Author'):
+ try:
+ output.write(" <%s>%s</%s>\n" % (
+ data.lower(),
+ escape(dict.info[data]),
+ data.lower()))
+ except:
+ print("Header %s lacks a %s description" % (module, data))
+ if 'Description' in dict.info:
+ desc = dict.info['Description']
+ if desc.find("DEPRECATED") != -1:
+ output.write(" <deprecated/>\n")
+
+ ids = list(dict.macros.keys())
+ ids.sort()
+ for id in uniq(ids):
+ # Macros are sometime used to masquerade other types.
+ if id in dict.functions:
+ continue
+ if id in dict.variables:
+ continue
+ if id in dict.typedefs:
+ continue
+ if id in dict.structs:
+ continue
+ if id in dict.enums:
+ continue
+ output.write(" <exports symbol='%s' type='macro'/>\n" % (id))
+ ids = list(dict.enums.keys())
+ ids.sort()
+ for id in uniq(ids):
+ output.write(" <exports symbol='%s' type='enum'/>\n" % (id))
+ ids = list(dict.typedefs.keys())
+ ids.sort()
+ for id in uniq(ids):
+ output.write(" <exports symbol='%s' type='typedef'/>\n" % (id))
+ ids = list(dict.structs.keys())
+ ids.sort()
+ for id in uniq(ids):
+ output.write(" <exports symbol='%s' type='struct'/>\n" % (id))
+ ids = list(dict.variables.keys())
+ ids.sort()
+ for id in uniq(ids):
+ output.write(" <exports symbol='%s' type='variable'/>\n" % (id))
+ ids = list(dict.functions.keys())
+ ids.sort()
+ for id in uniq(ids):
+ output.write(" <exports symbol='%s' type='function'/>\n" % (id))
+ output.write(" </file>\n")
+
+ def serialize_xrefs_files(self, output):
+ headers = list(self.headers.keys())
+ headers.sort()
+ for file in headers:
+ module = self.modulename_file(file)
+ output.write(" <file name='%s'>\n" % (module))
+ dict = self.headers[file]
+ ids = uniq(list(dict.functions.keys()) + list(dict.variables.keys()) + \
+ list(dict.macros.keys()) + list(dict.typedefs.keys()) + \
+ list(dict.structs.keys()) + list(dict.enums.keys()))
+ ids.sort()
+ for id in ids:
+ output.write(" <ref name='%s'/>\n" % (id))
+ output.write(" </file>\n")
+ pass
+
+ def serialize_xrefs_functions(self, output):
+ funcs = {}
+ for name in list(self.idx.functions.keys()):
+ id = self.idx.functions[name]
+ try:
+ (ret, params, desc) = id.info
+ for param in params:
+ if param[0] == 'void':
+ continue
+ if param[0] in funcs:
+ funcs[param[0]].append(name)
+ else:
+ funcs[param[0]] = [name]
+ except:
+ pass
+ typ = list(funcs.keys())
+ typ.sort()
+ for type in typ:
+ if type == '' or type == 'void' or type == "int" or \
+ type == "char *" or type == "const char *" :
+ continue
+ output.write(" <type name='%s'>\n" % (type))
+ ids = funcs[type]
+ ids.sort()
+ pid = '' # not sure why we have dups, but get rid of them!
+ for id in ids:
+ if id != pid:
+ output.write(" <ref name='%s'/>\n" % (id))
+ pid = id
+ output.write(" </type>\n")
+
+ def serialize_xrefs_constructors(self, output):
+ funcs = {}
+ for name in list(self.idx.functions.keys()):
+ id = self.idx.functions[name]
+ try:
+ (ret, params, desc) = id.info
+ if ret[0] == "void":
+ continue
+ if ret[0] in funcs:
+ funcs[ret[0]].append(name)
+ else:
+ funcs[ret[0]] = [name]
+ except:
+ pass
+ typ = list(funcs.keys())
+ typ.sort()
+ for type in typ:
+ if type == '' or type == 'void' or type == "int" or \
+ type == "char *" or type == "const char *" :
+ continue
+ output.write(" <type name='%s'>\n" % (type))
+ ids = funcs[type]
+ ids.sort()
+ for id in ids:
+ output.write(" <ref name='%s'/>\n" % (id))
+ output.write(" </type>\n")
+
+ def serialize_xrefs_alpha(self, output):
+ letter = None
+ ids = list(self.idx.identifiers.keys())
+ ids.sort()
+ for id in ids:
+ if id[0] != letter:
+ if letter != None:
+ output.write(" </letter>\n")
+ letter = id[0]
+ output.write(" <letter name='%s'>\n" % (letter))
+ output.write(" <ref name='%s'/>\n" % (id))
+ if letter != None:
+ output.write(" </letter>\n")
+
+ def serialize_xrefs_references(self, output):
+ typ = list(self.idx.identifiers.keys())
+ typ.sort()
+ for id in typ:
+ idf = self.idx.identifiers[id]
+ module = idf.header
+ output.write(" <reference name='%s' href='%s'/>\n" % (id,
+ 'html/' + self.basename + '-' +
+ self.modulename_file(module) + '.html#' +
+ id))
+
+ def serialize_xrefs_index(self, output):
+ index = self.xref
+ typ = list(index.keys())
+ typ.sort()
+ letter = None
+ count = 0
+ chunk = 0
+ chunks = []
+ for id in typ:
+ if len(index[id]) > 30:
+ continue
+ if id[0] != letter:
+ if letter == None or count > 200:
+ if letter != None:
+ output.write(" </letter>\n")
+ output.write(" </chunk>\n")
+ count = 0
+ chunks.append(["chunk%s" % (chunk -1), first_letter, letter])
+ output.write(" <chunk name='chunk%s'>\n" % (chunk))
+ first_letter = id[0]
+ chunk = chunk + 1
+ elif letter != None:
+ output.write(" </letter>\n")
+ letter = id[0]
+ output.write(" <letter name='%s'>\n" % (letter))
+ output.write(" <word name='%s'>\n" % (id))
+ tokens = index[id];
+ tokens.sort()
+ tok = None
+ for token in tokens:
+ if tok == token:
+ continue
+ tok = token
+ output.write(" <ref name='%s'/>\n" % (token))
+ count = count + 1
+ output.write(" </word>\n")
+ if letter != None:
+ output.write(" </letter>\n")
+ output.write(" </chunk>\n")
+ if count != 0:
+ chunks.append(["chunk%s" % (chunk -1), first_letter, letter])
+ output.write(" <chunks>\n")
+ for ch in chunks:
+ output.write(" <chunk name='%s' start='%s' end='%s'/>\n" % (
+ ch[0], ch[1], ch[2]))
+ output.write(" </chunks>\n")
+
+ def serialize_xrefs(self, output):
+ output.write(" <references>\n")
+ self.serialize_xrefs_references(output)
+ output.write(" </references>\n")
+ output.write(" <alpha>\n")
+ self.serialize_xrefs_alpha(output)
+ output.write(" </alpha>\n")
+ output.write(" <constructors>\n")
+ self.serialize_xrefs_constructors(output)
+ output.write(" </constructors>\n")
+ output.write(" <functions>\n")
+ self.serialize_xrefs_functions(output)
+ output.write(" </functions>\n")
+ output.write(" <files>\n")
+ self.serialize_xrefs_files(output)
+ output.write(" </files>\n")
+ output.write(" <index>\n")
+ self.serialize_xrefs_index(output)
+ output.write(" </index>\n")
+
+ def serialize(self):
+ filename = "%s-api.xml" % self.name
+ print("Saving XML description %s" % (filename))
+ output = open(filename, "w")
+ output.write('<?xml version="1.0" encoding="ISO-8859-1"?>\n')
+ output.write("<api name='%s'>\n" % self.name)
+ output.write(" <files>\n")
+ headers = list(self.headers.keys())
+ headers.sort()
+ for file in headers:
+ self.serialize_exports(output, file)
+ output.write(" </files>\n")
+ output.write(" <symbols>\n")
+ macros = list(self.idx.macros.keys())
+ macros.sort()
+ for macro in macros:
+ self.serialize_macro(output, macro)
+ enums = list(self.idx.enums.keys())
+ enums.sort()
+ for enum in enums:
+ self.serialize_enum(output, enum)
+ typedefs = list(self.idx.typedefs.keys())
+ typedefs.sort()
+ for typedef in typedefs:
+ self.serialize_typedef(output, typedef)
+ variables = list(self.idx.variables.keys())
+ variables.sort()
+ for variable in variables:
+ self.serialize_variable(output, variable)
+ functions = list(self.idx.functions.keys())
+ functions.sort()
+ for function in functions:
+ self.serialize_function(output, function)
+ output.write(" </symbols>\n")
+ output.write("</api>\n")
+ output.close()
+
+ filename = "%s-refs.xml" % self.name
+ print("Saving XML Cross References %s" % (filename))
+ output = open(filename, "w")
+ output.write('<?xml version="1.0" encoding="ISO-8859-1"?>\n')
+ output.write("<apirefs name='%s'>\n" % self.name)
+ self.serialize_xrefs(output)
+ output.write("</apirefs>\n")
+ output.close()
+
+
+def rebuild():
+ builder = None
+ if glob.glob("parser.c") != [] :
+ print("Rebuilding API description for libxml2")
+ builder = docBuilder("libxml2", [".", "."],
+ ["xmlwin32version.h", "tst.c"])
+ elif glob.glob("../parser.c") != [] :
+ print("Rebuilding API description for libxml2")
+ builder = docBuilder("libxml2", ["..", "../include/libxml"],
+ ["xmlwin32version.h", "tst.c"])
+ elif glob.glob("../libxslt/transform.c") != [] :
+ print("Rebuilding API description for libxslt")
+ builder = docBuilder("libxslt", ["../libxslt"],
+ ["win32config.h", "libxslt.h", "tst.c"])
+ else:
+ print("rebuild() failed, unable to guess the module")
+ return None
+ builder.scan()
+ builder.analyze()
+ builder.serialize()
+ if glob.glob("../libexslt/exslt.c") != [] :
+ extra = docBuilder("libexslt", ["../libexslt"], ["libexslt.h"])
+ extra.scan()
+ extra.analyze()
+ extra.serialize()
+ return builder
+
+#
+# for debugging the parser
+#
+def parse(filename):
+ parser = CParser(filename)
+ idx = parser.parse()
+ return idx
+
+if __name__ == "__main__":
+ if len(sys.argv) > 1:
+ debug = 1
+ parse(sys.argv[1])
+ else:
+ rebuild()
diff --git a/libxml2-2.9.10/doc/architecture.html b/libxml2-2.9.10/doc/architecture.html
new file mode 100644
index 0000000..e08a102
--- /dev/null
+++ b/libxml2-2.9.10/doc/architecture.html
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>libxml2 architecture</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>libxml2 architecture</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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>Libxml2 is made of multiple components; some of them are optional, and
+most of the block interfaces are public. The main components are:</p><ul>
+ <li>an Input/Output layer</li>
+ <li>FTP and HTTP client layers (optional)</li>
+ <li>an Internationalization layer managing the encodings support</li>
+ <li>a URI module</li>
+ <li>the XML parser and its basic SAX interface</li>
+ <li>an HTML parser using the same SAX interface (optional)</li>
+ <li>a SAX tree module to build an in-memory DOM representation</li>
+ <li>a tree module to manipulate the DOM representation</li>
+ <li>a validation module using the DOM representation (optional)</li>
+ <li>an XPath module for global lookup in a DOM representation
+ (optional)</li>
+ <li>a debug module (optional)</li>
+</ul><p>Graphically this gives the following:</p><p><img src="libxml.gif" alt="a graphical view of the various" /></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>
diff --git a/libxml2-2.9.10/doc/bugs.html b/libxml2-2.9.10/doc/bugs.html
new file mode 100644
index 0000000..e5ccea8
--- /dev/null
+++ b/libxml2-2.9.10/doc/bugs.html
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+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 &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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 a
+point of fixing them in a timely fashion. The best way to report a bug is to
+use the <a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Gnome
+bug tracking database</a> (make sure to use the "libxml2" module name). I
+look at reports there regularly and it's good to have a reminder when a bug
+is still 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 on
+irc.gnome.org (port 6667) usually has a few people subscribed which may help
+(but there is no guarantee and if a real issue is raised it should go on the
+mailing-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 visit the <a href="http://mail.gnome.org/mailman/listinfo/xml">associated Web</a> page and
+follow the instructions. <strong>Do not send code, I won't debug it</strong>
+(but patches are really appreciated!).</p><p>Please note that with the current amount of virus and SPAM, sending mail
+to the list without being subscribed won't work. There is *far too many
+bounces* (in the order of a thousand a day !) I cannot approve them manually
+anymore. If your mail to the list bounced waiting for administrator approval,
+it is LOST ! Repost it and fix the problem triggering the error. Also please
+note that <span style="color: #FF0000; background-color: #FFFFFF">emails with
+a legal warning asking to not copy or redistribute freely the information
+they contain</span> are <strong>NOT</strong> acceptable for the mailing-list,
+such mail will as much as possible be discarded automatically, and are less
+likely to be answered if they made it to the list, <strong>DO NOT</strong>
+post to the list from an email address where such legal requirements are
+automatically added, get private paying support if you can't share
+information.</p><p>Check the following <strong><span style="color: #FF0000">before
+posting</span></strong>:</p><ul>
+ <li>Read the <a href="FAQ.html">FAQ</a> and <a href="search.php">use the
+ search engine</a> to get information related to your problem.</li>
+ <li>Make sure you are <a href="ftp://xmlsoft.org/libxml2/">using a recent
+ version</a>, and that the problem still shows up in a recent version.</li>
+ <li>Check the <a href="http://mail.gnome.org/archives/xml/">list
+ archives</a> to see if the problem was reported already. In this case
+ there is probably a fix available, similarly check the <a href="https://gitlab.gnome.org/GNOME/libxml2/issues">registered
+ open bugs</a>.</li>
+ <li>Make sure you can reproduce the bug with xmllint or one of the test
+ programs found in source in the distribution.</li>
+ <li>Please send the command showing the error as well as the input (as an
+ attachment)</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 libxml
+related I will approve it. Please do not send mail to me directly, it makes
+things really hard to track and in some cases I am not the best person to
+answer a given question, ask on the list.</p><p>To <span style="color: #E50000">be really clear about support</span>:</p><ul>
+ <li>Support or help <span style="color: #E50000">requests MUST be sent to
+ the list or the bug tracker</span> in case of problems, so that the Question
+ and Answers can be shared publicly. Failing to do so carries the implicit
+ message "I want free support but I don't want to share the benefits with
+ others" and is not welcome. I will automatically Carbon-Copy the
+ xml@gnome.org mailing list for any technical reply made about libxml2 or
+ libxslt.</li>
+ <li>There is <span style="color: #E50000">no guarantee of support</span>. If
+ your question remains unanswered after a week, repost it, making sure you
+ gave all the detail needed and the information requested.</li>
+ <li>Failing to provide information as requested or double checking first
+ for prior feedback also carries the implicit message "the time of the
+ library maintainers is less valuable than my time" and might not be
+ welcome.</li>
+</ul><p>Of course, bugs reported with a suggested patch for fixing them will
+probably 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 actually
+provide the answer. I usually send source samples when answering libxml2
+usage questions. The <a href="http://xmlsoft.org/html/book1.html">auto-generated documentation</a> is
+not as polished as I would like (i need to learn more about DocBook), but
+it'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>
diff --git a/libxml2-2.9.10/doc/catalog.gif b/libxml2-2.9.10/doc/catalog.gif
new file mode 100644
index 0000000..f2e2bd3
--- /dev/null
+++ b/libxml2-2.9.10/doc/catalog.gif
Binary files differ
diff --git a/libxml2-2.9.10/doc/catalog.html b/libxml2-2.9.10/doc/catalog.html
new file mode 100644
index 0000000..42be5e7
--- /dev/null
+++ b/libxml2-2.9.10/doc/catalog.html
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Catalog support</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>Catalog support</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>Table of Content:</p><ol>
+ <li><a href="General2">General overview</a></li>
+ <li><a href="#definition">The definition</a></li>
+ <li><a href="#Simple">Using catalogs</a></li>
+ <li><a href="#Some">Some examples</a></li>
+ <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="#Declaring">How to create and maintain catalogs</a></li>
+ <li><a href="#implemento">The implementor corner quick review of the
+ API</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 file or a remote resource) references another entity. The catalog lookup
+is inserted between the moment the reference is recognized by the software
+(XML parser, stylesheet processing, or even images referenced for inclusion
+in a rendering) and the time where loading that resource is actually
+started.</p><p>It is basically used for 3 things:</p><ul>
+ <li>mapping from "logical" names, the public identifiers and a more
+ concrete name usable for download (and URI). For example it can associate
+ the logical name
+ <p>"-//OASIS//DTD DocBook XML V4.1.2//EN"</p>
+ <p>of the DocBook 4.1.2 XML DTD with the actual URL where it can be
+ downloaded</p>
+ <p>http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd</p>
+ </li>
+ <li>remapping from a given URL to another one, like an HTTP indirection
+ saying that
+ <p>"http://www.oasis-open.org/committes/tr.xsl"</p>
+ <p>should really be looked at</p>
+ <p>"http://www.oasis-open.org/committes/entity/stylesheets/base/tr.xsl"</p>
+ </li>
+ <li>providing a local cache mechanism allowing to load the entities
+ associated to public identifiers or remote resources, this is a really
+ important feature for any significant deployment of XML or SGML since it
+ allows to avoid the aleas and delays associated to fetching remote
+ resources.</li>
+</ul><h3><a name="definition" id="definition">The definitions</a></h3><p>Libxml, as of 2.4.3 implements 2 kind of catalogs:</p><ul>
+ <li>the older SGML catalogs, the official spec is SGML Open Technical
+ Resolution TR9401:1997, but is better understood by reading <a href="http://www.jclark.com/sp/catalog.htm">the SP Catalog page</a> from
+ James Clark. This is relatively old and not the preferred mode of
+ operation of libxml.</li>
+ <li><a href="http://www.oasis-open.org/committees/entity/spec.html">XML
+ Catalogs</a> is far more flexible, more recent, uses an XML syntax and
+ should scale quite better. This is the default option of libxml.</li>
+</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 a
+catalog in /etc/xml/catalog, and assuming it has been correctly populated,
+the processing is completely transparent to the document user. To take a
+concrete example, suppose you are authoring a DocBook document, this one
+starts with the following DOCTYPE definition:</p><pre>&lt;?xml version='1.0'?&gt;
+&lt;!DOCTYPE book PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.4//EN"
+ "http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd"&gt;</pre><p>When validating the document with libxml, the catalog will be
+automatically consulted to lookup the public identifier "-//Norman Walsh//DTD
+DocBk XML V3.1.4//EN" and the system identifier
+"http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd", and if these entities have
+been installed on your system and the catalogs actually point to them, libxml
+will fetch them from the local disk.</p><p style="font-size: 10pt"><strong>Note</strong>: Really don't use this
+DOCTYPE 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 an
+entity, this includes DTD, external parsed entities, stylesheets, etc ... If
+your system is correctly configured all the authoring phase and processing
+should use only local files, even if your document stays portable because it
+uses the canonical public and system ID, referencing the remote 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 early
+regression tests in <code>test/catalogs</code> :</p><pre>&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE catalog PUBLIC
+ "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
+ "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;
+&lt;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"&gt;
+ &lt;public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
+ uri="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/&gt;
+...</pre><p>This is the beginning of a catalog for DocBook 4.1.2, XML Catalogs are
+written in XML, there is a specific namespace for catalog elements
+"urn:oasis:names:tc:entity:xmlns:xml:catalog". The first entry in this
+catalog is a <code>public</code> mapping it allows to associate a Public
+Identifier with an URI.</p><pre>...
+ &lt;rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/"
+ rewritePrefix="file:///usr/share/xml/docbook/"/&gt;
+...</pre><p>A <code>rewriteSystem</code> is a very powerful instruction, it says that
+any URI starting with a given prefix should be looked at another URI
+constructed by replacing the prefix with an new one. In effect this acts like
+a cache system for a full area of the Web. In practice it is extremely useful
+with a file prefix if you have installed a copy of those resources on your
+local system.</p><pre>...
+&lt;delegatePublic publicIdStartString="-//OASIS//DTD XML Catalog //"
+ catalog="file:///usr/share/xml/docbook.xml"/&gt;
+&lt;delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook XML"
+ catalog="file:///usr/share/xml/docbook.xml"/&gt;
+&lt;delegatePublic publicIdStartString="-//OASIS//DTD DocBook XML"
+ catalog="file:///usr/share/xml/docbook.xml"/&gt;
+&lt;delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/"
+ catalog="file:///usr/share/xml/docbook.xml"/&gt;
+&lt;delegateURI uriStartString="http://www.oasis-open.org/docbook/"
+ catalog="file:///usr/share/xml/docbook.xml"/&gt;
+...</pre><p>Delegation is the core features which allows to build a tree of catalogs,
+easier to maintain than a single catalog, based on Public Identifier, System
+Identifier or URI prefixes it instructs the catalog software to look up
+entries in another resource. This feature allow to build hierarchies of
+catalogs, the set of entries presented should be sufficient to redirect the
+resolution of all DocBook references to the specific catalog in
+<code>/usr/share/xml/docbook.xml</code> this one in turn could delegate all
+references for DocBook 4.2.1 to a specific catalog installed at the same time
+as 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 queries
+to its own set of catalogs, this can be done by setting the
+<code>XML_CATALOG_FILES</code> environment variable to a list of catalogs, an
+empty one should deactivate loading the 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 will
+make libxml2 output debugging information for each catalog operations, for
+example:</p><pre>orchis:~/XML -&gt; xmllint --memory --noout test/ent2
+warning: failed to load external entity "title.xml"
+orchis:~/XML -&gt; export XML_DEBUG_CATALOG=
+orchis:~/XML -&gt; xmllint --memory --noout test/ent2
+Failed to parse catalog /etc/xml/catalog
+Failed to parse catalog /etc/xml/catalog
+warning: failed to load external entity "title.xml"
+Catalogs cleanup
+orchis:~/XML -&gt; </pre><p>The test/ent2 references an entity, running the parser from memory makes
+the base URI unavailable and the the "title.xml" entity cannot be loaded.
+Setting up the debug environment variable allows to detect that an attempt is
+made to load the <code>/etc/xml/catalog</code> but since it's not present the
+resolution fails.</p><p>But the most advanced way to debug XML catalog processing is to use the
+<strong>xmlcatalog</strong> command shipped with libxml2, it allows to load
+catalogs and make resolution queries to see what is going on. This is also
+used for the regression tests:</p><pre>orchis:~/XML -&gt; ./xmlcatalog test/catalogs/docbook.xml \
+ "-//OASIS//DTD DocBook XML V4.1.2//EN"
+http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+orchis:~/XML -&gt; </pre><p>For debugging what is going on, adding one -v flags increase the verbosity
+level to indicate the processing done (adding a second flag also indicate
+what elements are recognized at parsing):</p><pre>orchis:~/XML -&gt; ./xmlcatalog -v test/catalogs/docbook.xml \
+ "-//OASIS//DTD DocBook XML V4.1.2//EN"
+Parsing catalog test/catalogs/docbook.xml's content
+Found public match -//OASIS//DTD DocBook XML V4.1.2//EN
+http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+Catalogs cleanup
+orchis:~/XML -&gt; </pre><p>A shell interface is also available to debug and process multiple queries
+(and for regression tests):</p><pre>orchis:~/XML -&gt; ./xmlcatalog -shell test/catalogs/docbook.xml \
+ "-//OASIS//DTD DocBook XML V4.1.2//EN"
+&gt; help
+Commands available:
+public PublicID: make a PUBLIC identifier lookup
+system SystemID: make a SYSTEM identifier lookup
+resolve PublicID SystemID: do a full resolver lookup
+add 'type' 'orig' 'replace' : add an entry
+del 'values' : remove values
+dump: print the current catalog state
+debug: increase the verbosity level
+quiet: decrease the verbosity level
+exit: quit the shell
+&gt; public "-//OASIS//DTD DocBook XML V4.1.2//EN"
+http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+&gt; quit
+orchis:~/XML -&gt; </pre><p>This should be sufficient for most debugging purpose, this was actually
+used 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 to
+manage them or use <strong>xmlcatalog</strong> for this. The basic step is
+to create a catalog the -create option provide this facility:</p><pre>orchis:~/XML -&gt; ./xmlcatalog --create tst.xml
+&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
+ "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;
+&lt;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"/&gt;
+orchis:~/XML -&gt; </pre><p>By default xmlcatalog does not overwrite the original catalog and save the
+result on the standard output, this can be overridden using the -noout
+option. The <code>-add</code> command allows to add entries in the
+catalog:</p><pre>orchis:~/XML -&gt; ./xmlcatalog --noout --create --add "public" \
+ "-//OASIS//DTD DocBook XML V4.1.2//EN" \
+ http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd tst.xml
+orchis:~/XML -&gt; cat tst.xml
+&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" \
+ "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;
+&lt;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"&gt;
+&lt;public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
+ uri="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/&gt;
+&lt;/catalog&gt;
+orchis:~/XML -&gt; </pre><p>The <code>-add</code> option will always take 3 parameters even if some of
+the XML Catalog constructs (like nextCatalog) will have only a single
+argument, just pass a third empty string, it will be ignored.</p><p>Similarly the <code>-del</code> option remove matching entries from the
+catalog:</p><pre>orchis:~/XML -&gt; ./xmlcatalog --del \
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" tst.xml
+&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
+ "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;
+&lt;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"/&gt;
+orchis:~/XML -&gt; </pre><p>The catalog is now empty. Note that the matching of <code>-del</code> is
+exact and would have worked in a similar fashion with the Public ID
+string.</p><p>This is rudimentary but should be sufficient to manage a not too complex
+catalog tree of resources.</p><h3><a name="implemento" id="implemento">The implementor corner quick review of the
+API:</a></h3><p>First, and like for every other module of libxml, there is an
+automatically generated <a href="html/libxml-catalog.html">API page for
+catalog support</a>.</p><p>The header for the catalog interfaces should be included as:</p><pre>#include &lt;libxml/catalog.h&gt;</pre><p>The API is voluntarily kept very simple. First it is not obvious that
+applications really need access to it since it is the default behaviour of
+libxml2 (Note: it is possible to completely override libxml2 default catalog
+by using <a href="html/libxml-parser.html">xmlSetExternalEntityLoader</a> to
+plug an application specific resolver).</p><p>Basically libxml2 support 2 catalog lists:</p><ul>
+ <li>the default one, global shared by all the application</li>
+ <li>a per-document catalog, this one is built if the document uses the
+ <code>oasis-xml-catalog</code> PIs to specify its own catalog list, it is
+ associated to the parser context and destroyed when the parsing context
+ is 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 be
+used at startup to initialize the catalog, if the catalog should be
+initialized with specific values xmlLoadCatalog() or xmlLoadCatalogs()
+should be called before xmlInitializeCatalog() which would otherwise do a
+default initialization first.</p><p>The xmlCatalogAddLocal() call is used by the parser to grow the document
+own catalog list if needed.</p><h4>Preferences setup:</h4><p>The XML Catalog spec requires the possibility to select default
+preferences between public and system delegation,
+xmlCatalogSetDefaultPrefer() allows this, xmlCatalogSetDefaults() and
+xmlCatalogGetDefaults() allow to control if XML Catalogs resolution should
+be forbidden, allowed for global catalog, for document catalog or both, the
+default is to allow both.</p><p>And of course xmlCatalogSetDebug() allows to generate debug messages
+(through the xmlGenericError() mechanism).</p><h4>Querying routines:</h4><p>xmlCatalogResolve(), xmlCatalogResolveSystem(), xmlCatalogResolvePublic()
+and xmlCatalogResolveURI() are relatively explicit if you read the XML
+Catalog specification they correspond to section 7 algorithms, they should
+also work if you have loaded an SGML catalog with a simplified semantic.</p><p>xmlCatalogLocalResolve() and xmlCatalogLocalResolveURI() are the same but
+operate on the document catalog list</p><h4>Cleanup and Miscellaneous:</h4><p>xmlCatalogCleanup() free-up the global catalog, xmlCatalogFreeLocal() is
+the per-document equivalent.</p><p>xmlCatalogAdd() and xmlCatalogRemove() are used to dynamically modify the
+first catalog in the global list, and xmlCatalogDump() allows to dump a
+catalog state, those routines are primarily designed for xmlcatalog, I'm not
+sure that exposing more complex interfaces (like navigation ones) would be
+really useful.</p><p>The xmlParseCatalogFile() is a function used to load XML Catalog files,
+it's similar as xmlParseFile() except it bypass all catalog lookups, it's
+provided 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 to
+try to avoid troubles in multithreaded environments. The code is now thread
+safe assuming that the libxml2 library has been compiled with threads
+support.</p><p></p><h3><a name="Other" id="Other">Other resources</a></h3><p>The XML Catalog specification is relatively recent so there isn't much
+literature to point at:</p><ul>
+ <li>You can find a good rant from Norm Walsh about <a href="http://www.arbortext.com/Think_Tank/XML_Resources/Issue_Three/issue_three.html">the
+ need for catalogs</a>, it provides a lot of context information even if
+ I don't agree with everything presented. Norm also wrote a more recent
+ article <a href="http://wwws.sun.com/software/xml/developers/resolver/article/">XML
+ entities and URI resolvers</a> describing them.</li>
+ <li>An <a href="http://home.ccil.org/~cowan/XML/XCatalog.html">old XML
+ catalog proposal</a> from John Cowan</li>
+ <li>The <a href="http://www.rddl.org/">Resource Directory Description
+ Language</a> (RDDL) another catalog system but more oriented toward
+ providing metadata for XML namespaces.</li>
+ <li>the page from the OASIS Technical <a href="http://www.oasis-open.org/committees/entity/">Committee on Entity
+ Resolution</a> who maintains XML Catalog, you will find pointers to the
+ specification update, some background and pointers to others tools
+ providing XML Catalog support</li>
+ <li>There is a <a href="buildDocBookCatalog">shell script</a> to generate
+ XML Catalogs for DocBook 4.1.2 . If it can write to the /etc/xml/
+ directory, it will set-up /etc/xml/catalog and /etc/xml/docbook based on
+ the resources found on the system. Otherwise it will just create
+ ~/xmlcatalog and ~/dbkxmlcatalog and doing:
+ <p><code>export XML_CATALOG_FILES=$HOME/xmlcatalog</code></p>
+ <p>should allow to process DocBook documentations without requiring
+ network accesses for the DTD or stylesheets</p>
+ </li>
+ <li>I have uploaded <a href="ftp://xmlsoft.org/libxml2/test/dbk412catalog.tar.gz">a
+ small tarball</a> containing XML Catalogs for DocBook 4.1.2 which seems
+ to work fine for me too</li>
+ <li>The <a href="http://www.xmlsoft.org/xmlcatalog_man.html">xmlcatalog
+ manual page</a></li>
+</ul><p>If you have suggestions for corrections or additions, simply contact
+me:</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>
diff --git a/libxml2-2.9.10/doc/checkapisym.xsl b/libxml2-2.9.10/doc/checkapisym.xsl
new file mode 100644
index 0000000..8591393
--- /dev/null
+++ b/libxml2-2.9.10/doc/checkapisym.xsl
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!-- This stylesheet is used to check that symbols exported
+ from libxml2-api.xml are also present in the symbol file
+ symbols.xml which is used to generate libxml2.syms setting
+ up the allowed access point to the shared libraries -->
+
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+ <xsl:output method="text" encoding="UTF-8"/>
+
+ <xsl:variable name="syms" select="document('symbols.xml')"/>
+
+ <xsl:template match="/">
+ <xsl:message terminate="no">
+ <xsl:text>Looking for functions in symbols.xml</xsl:text>
+ </xsl:message>
+ <xsl:apply-templates select="/api/symbols/function"/>
+ <xsl:message terminate="no">
+ <xsl:text>Found </xsl:text>
+ <xsl:value-of select="count(/api/symbols/function)"/>
+ <xsl:text> functions</xsl:text>
+ </xsl:message>
+ <xsl:message terminate="no">
+ <xsl:text>Looking for variables in symbols.xml</xsl:text>
+ </xsl:message>
+ <xsl:apply-templates select="/api/symbols/variable"/>
+ <xsl:message terminate="no">
+ <xsl:text>Found </xsl:text>
+ <xsl:value-of select="count(/api/symbols/variable)"/>
+ <xsl:text> variables</xsl:text>
+ </xsl:message>
+ </xsl:template>
+
+ <xsl:template match="function|variable">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="symbol"
+ select="$syms/symbols/release/symbol[. = $name]"/>
+ <xsl:if test="string($symbol) != $name">
+ <xsl:message terminate="yes">
+ <xsl:text>Failed to find export in symbols.xml: </xsl:text>
+ <xsl:value-of select="$name"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/libxml2-2.9.10/doc/contribs.html b/libxml2-2.9.10/doc/contribs.html
new file mode 100644
index 0000000..876cb5a
--- /dev/null
+++ b/libxml2-2.9.10/doc/contribs.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Contributions</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>Contributions</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><ul>
+ <li>Bjorn Reese, William Brack and Thomas Broyer have provided a number of
+ patches, Gary Pennington worked on the validation API, threading support
+ and Solaris port.</li>
+ <li>John Fleck helps maintaining the documentation and man pages.</li>
+ <li><a href="mailto:igor@zlatkovic.com">Igor Zlatkovic</a> is now the
+ maintainer of the Windows port, <a href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
+ 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">Matt
+ Sergeant</a> developed <a href="http://axkit.org/download/">XML::LibXSLT</a>, a Perl wrapper for
+ libxml2/libxslt as part of the <a href="http://axkit.com/">AxKit XML
+ application server</a></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) functions
+ documentation</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 support
+ in OpenNSD/AOLServer</a></li>
+ <li><a href="mailto:dkuhlman@cutter.rexx.com">Dave Kuhlman</a> provided the
+ first 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 glue
+ libxml2</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 XML
+ Digital Signature</a> <a href="http://www.aleksey.com/xmlsec/">implementations for libxml2</a></li>
+ <li><a href="mailto:Steve.Ball@explain.com.au">Steve Ball</a> and
+ contributors maintain <a href="http://tclxml.sourceforge.net/">tcl
+ bindings for libxml2 and libxslt</a>, as well as <a href="http://tclxml.sf.net/tkxmllint.html">tkxmllint</a> a GUI for
+ xmllint and <a href="http://tclxml.sf.net/tkxsltproc.html">tkxsltproc</a>
+ a GUI 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>
diff --git a/libxml2-2.9.10/doc/devhelp/Makefile.am b/libxml2-2.9.10/doc/devhelp/Makefile.am
new file mode 100644
index 0000000..dad7975
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/Makefile.am
@@ -0,0 +1,79 @@
+devhelpdir = $(datadir)/gtk-doc/html/libxml2
+
+dist_devhelp_DATA = \
+ libxml2.devhelp \
+ $(HTML_FILES) \
+ $(EXTRA_FORMAT)
+
+HTML_FILES = \
+ general.html \
+ index.html \
+ $(HTML_MODULES)
+
+HTML_MODULES= \
+ libxml2-c14n.html \
+ libxml2-catalog.html \
+ libxml2-chvalid.html \
+ libxml2-debugXML.html \
+ libxml2-dict.html \
+ libxml2-DOCBparser.html \
+ libxml2-encoding.html \
+ libxml2-entities.html \
+ libxml2-globals.html \
+ libxml2-hash.html \
+ libxml2-HTMLparser.html \
+ libxml2-HTMLtree.html \
+ libxml2-list.html \
+ libxml2-nanoftp.html \
+ libxml2-nanohttp.html \
+ libxml2-parser.html \
+ libxml2-parserInternals.html \
+ libxml2-pattern.html \
+ libxml2-relaxng.html \
+ libxml2-SAX2.html \
+ libxml2-SAX.html \
+ libxml2-schemasInternals.html \
+ libxml2-schematron.html \
+ libxml2-threads.html \
+ libxml2-tree.html \
+ libxml2-uri.html \
+ libxml2-valid.html \
+ libxml2-xinclude.html \
+ libxml2-xlink.html \
+ libxml2-xmlautomata.html \
+ libxml2-xmlerror.html \
+ libxml2-xmlexports.html \
+ libxml2-xmlIO.html \
+ libxml2-xmlmemory.html \
+ libxml2-xmlmodule.html \
+ libxml2-xmlreader.html \
+ libxml2-xmlregexp.html \
+ libxml2-xmlsave.html \
+ libxml2-xmlschemas.html \
+ libxml2-xmlschemastypes.html \
+ libxml2-xmlstring.html \
+ libxml2-xmlunicode.html \
+ libxml2-xmlversion.html \
+ libxml2-xmlwriter.html \
+ libxml2-xpath.html \
+ libxml2-xpathInternals.html \
+ libxml2-xpointer.html
+
+EXTRA_FORMAT= \
+ home.png \
+ left.png \
+ right.png \
+ up.png \
+ style.css
+
+EXTRA_DIST = devhelp.xsl html.xsl
+
+if REBUILD_DOCS
+rebuild: libxml2.devhelp $(HTML_FILES)
+.PHONY: rebuild
+
+libxml2.devhelp $(HTML_FILES): devhelp.xsl html.xsl $(top_srcdir)/doc/libxml2-api.xml
+ -@(if [ -x $(XSLTPROC) ] ; then \
+ echo Rebuilding devhelp files ; \
+ $(XSLTPROC) --nonet -o $(srcdir)/libxml2.devhelp $(srcdir)/devhelp.xsl $(top_srcdir)/doc/libxml2-api.xml ; fi );
+endif
diff --git a/libxml2-2.9.10/doc/devhelp/Makefile.in b/libxml2-2.9.10/doc/devhelp/Makefile.in
new file mode 100644
index 0000000..1445034
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/Makefile.in
@@ -0,0 +1,689 @@
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc/devhelp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(dist_devhelp_DATA) \
+ $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(devhelpdir)"
+DATA = $(dist_devhelp_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BASE_THREAD_LIBS = @BASE_THREAD_LIBS@
+C14N_OBJ = @C14N_OBJ@
+CATALOG_OBJ = @CATALOG_OBJ@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+CYGWIN_EXTRA_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@
+CYGWIN_EXTRA_PYTHON_LIBADD = @CYGWIN_EXTRA_PYTHON_LIBADD@
+DEBUG_OBJ = @DEBUG_OBJ@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOCB_OBJ = @DOCB_OBJ@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+FGREP = @FGREP@
+FTP_OBJ = @FTP_OBJ@
+GREP = @GREP@
+HAVE_ISINF = @HAVE_ISINF@
+HAVE_ISNAN = @HAVE_ISNAN@
+HTML_DIR = @HTML_DIR@
+HTML_OBJ = @HTML_OBJ@
+HTTP_OBJ = @HTTP_OBJ@
+ICONV_LIBS = @ICONV_LIBS@
+ICU_CFLAGS = @ICU_CFLAGS@
+ICU_LIBS = @ICU_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_MAJOR_VERSION = @LIBXML_MAJOR_VERSION@
+LIBXML_MICRO_VERSION = @LIBXML_MICRO_VERSION@
+LIBXML_MINOR_VERSION = @LIBXML_MINOR_VERSION@
+LIBXML_VERSION = @LIBXML_VERSION@
+LIBXML_VERSION_EXTRA = @LIBXML_VERSION_EXTRA@
+LIBXML_VERSION_INFO = @LIBXML_VERSION_INFO@
+LIBXML_VERSION_NUMBER = @LIBXML_VERSION_NUMBER@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+LZMA_CFLAGS = @LZMA_CFLAGS@
+LZMA_LIBS = @LZMA_LIBS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MODULE_EXTENSION = @MODULE_EXTENSION@
+MODULE_PLATFORM_LIBS = @MODULE_PLATFORM_LIBS@
+MV = @MV@
+M_LIBS = @M_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_TESTS = @PYTHON_TESTS@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RDL_LIBS = @RDL_LIBS@
+READER_TEST = @READER_TEST@
+RELDATE = @RELDATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+TEST_C14N = @TEST_C14N@
+TEST_CATALOG = @TEST_CATALOG@
+TEST_DEBUG = @TEST_DEBUG@
+TEST_HTML = @TEST_HTML@
+TEST_MODULES = @TEST_MODULES@
+TEST_PATTERN = @TEST_PATTERN@
+TEST_PHTML = @TEST_PHTML@
+TEST_PUSH = @TEST_PUSH@
+TEST_REGEXPS = @TEST_REGEXPS@
+TEST_SAX = @TEST_SAX@
+TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
+TEST_THREADS = @TEST_THREADS@
+TEST_VALID = @TEST_VALID@
+TEST_VTIME = @TEST_VTIME@
+TEST_XINCLUDE = @TEST_XINCLUDE@
+TEST_XPATH = @TEST_XPATH@
+TEST_XPTR = @TEST_XPTR@
+THREAD_CFLAGS = @THREAD_CFLAGS@
+THREAD_LIBS = @THREAD_LIBS@
+VERSION = @VERSION@
+VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
+WGET = @WGET@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WIN32_EXTRA_PYTHON_LIBADD = @WIN32_EXTRA_PYTHON_LIBADD@
+WITH_C14N = @WITH_C14N@
+WITH_CATALOG = @WITH_CATALOG@
+WITH_DEBUG = @WITH_DEBUG@
+WITH_DOCB = @WITH_DOCB@
+WITH_FTP = @WITH_FTP@
+WITH_HTML = @WITH_HTML@
+WITH_HTTP = @WITH_HTTP@
+WITH_ICONV = @WITH_ICONV@
+WITH_ICU = @WITH_ICU@
+WITH_ISO8859X = @WITH_ISO8859X@
+WITH_LEGACY = @WITH_LEGACY@
+WITH_LZMA = @WITH_LZMA@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_OUTPUT = @WITH_OUTPUT@
+WITH_PATTERN = @WITH_PATTERN@
+WITH_PUSH = @WITH_PUSH@
+WITH_READER = @WITH_READER@
+WITH_REGEXPS = @WITH_REGEXPS@
+WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
+WITH_SAX1 = @WITH_SAX1@
+WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
+WITH_THREADS = @WITH_THREADS@
+WITH_THREAD_ALLOC = @WITH_THREAD_ALLOC@
+WITH_TREE = @WITH_TREE@
+WITH_TRIO = @WITH_TRIO@
+WITH_VALID = @WITH_VALID@
+WITH_WRITER = @WITH_WRITER@
+WITH_XINCLUDE = @WITH_XINCLUDE@
+WITH_XPATH = @WITH_XPATH@
+WITH_XPTR = @WITH_XPTR@
+WITH_ZLIB = @WITH_ZLIB@
+XINCLUDE_OBJ = @XINCLUDE_OBJ@
+XMLLINT = @XMLLINT@
+XML_CFLAGS = @XML_CFLAGS@
+XML_INCLUDEDIR = @XML_INCLUDEDIR@
+XML_LIBDIR = @XML_LIBDIR@
+XML_LIBS = @XML_LIBS@
+XML_LIBTOOLLIBS = @XML_LIBTOOLLIBS@
+XML_PRIVATE_LIBS = @XML_PRIVATE_LIBS@
+XPATH_OBJ = @XPATH_OBJ@
+XPTR_OBJ = @XPTR_OBJ@
+XSLTPROC = @XSLTPROC@
+Z_CFLAGS = @Z_CFLAGS@
+Z_LIBS = @Z_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pythondir = @pythondir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+devhelpdir = $(datadir)/gtk-doc/html/libxml2
+dist_devhelp_DATA = \
+ libxml2.devhelp \
+ $(HTML_FILES) \
+ $(EXTRA_FORMAT)
+
+HTML_FILES = \
+ general.html \
+ index.html \
+ $(HTML_MODULES)
+
+HTML_MODULES = \
+ libxml2-c14n.html \
+ libxml2-catalog.html \
+ libxml2-chvalid.html \
+ libxml2-debugXML.html \
+ libxml2-dict.html \
+ libxml2-DOCBparser.html \
+ libxml2-encoding.html \
+ libxml2-entities.html \
+ libxml2-globals.html \
+ libxml2-hash.html \
+ libxml2-HTMLparser.html \
+ libxml2-HTMLtree.html \
+ libxml2-list.html \
+ libxml2-nanoftp.html \
+ libxml2-nanohttp.html \
+ libxml2-parser.html \
+ libxml2-parserInternals.html \
+ libxml2-pattern.html \
+ libxml2-relaxng.html \
+ libxml2-SAX2.html \
+ libxml2-SAX.html \
+ libxml2-schemasInternals.html \
+ libxml2-schematron.html \
+ libxml2-threads.html \
+ libxml2-tree.html \
+ libxml2-uri.html \
+ libxml2-valid.html \
+ libxml2-xinclude.html \
+ libxml2-xlink.html \
+ libxml2-xmlautomata.html \
+ libxml2-xmlerror.html \
+ libxml2-xmlexports.html \
+ libxml2-xmlIO.html \
+ libxml2-xmlmemory.html \
+ libxml2-xmlmodule.html \
+ libxml2-xmlreader.html \
+ libxml2-xmlregexp.html \
+ libxml2-xmlsave.html \
+ libxml2-xmlschemas.html \
+ libxml2-xmlschemastypes.html \
+ libxml2-xmlstring.html \
+ libxml2-xmlunicode.html \
+ libxml2-xmlversion.html \
+ libxml2-xmlwriter.html \
+ libxml2-xpath.html \
+ libxml2-xpathInternals.html \
+ libxml2-xpointer.html
+
+EXTRA_FORMAT = \
+ home.png \
+ left.png \
+ right.png \
+ up.png \
+ style.css
+
+EXTRA_DIST = devhelp.xsl html.xsl
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/devhelp/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/devhelp/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-dist_devhelpDATA: $(dist_devhelp_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(dist_devhelp_DATA)'; test -n "$(devhelpdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(devhelpdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(devhelpdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(devhelpdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(devhelpdir)" || exit $$?; \
+ done
+
+uninstall-dist_devhelpDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_devhelp_DATA)'; test -n "$(devhelpdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(devhelpdir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(devhelpdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_devhelpDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_devhelpDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ cscopelist-am ctags-am distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-dist_devhelpDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-dist_devhelpDATA
+
+.PRECIOUS: Makefile
+
+
+@REBUILD_DOCS_TRUE@rebuild: libxml2.devhelp $(HTML_FILES)
+@REBUILD_DOCS_TRUE@.PHONY: rebuild
+
+@REBUILD_DOCS_TRUE@libxml2.devhelp $(HTML_FILES): devhelp.xsl html.xsl $(top_srcdir)/doc/libxml2-api.xml
+@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \
+@REBUILD_DOCS_TRUE@ echo Rebuilding devhelp files ; \
+@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet -o $(srcdir)/libxml2.devhelp $(srcdir)/devhelp.xsl $(top_srcdir)/doc/libxml2-api.xml ; fi );
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libxml2-2.9.10/doc/devhelp/devhelp.xsl b/libxml2-2.9.10/doc/devhelp/devhelp.xsl
new file mode 100644
index 0000000..f19c3f1
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/devhelp.xsl
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+ xmlns="http://www.devhelp.net/book"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:str="http://exslt.org/strings"
+ extension-element-prefixes="exsl str"
+ exclude-result-prefixes="exsl str">
+ <!-- The stylesheet for the html pages -->
+ <xsl:import href="html.xsl"/>
+
+ <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+ <!-- Build keys for all symbols -->
+ <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
+
+ <xsl:template match="/api">
+ <book title="{@name} Reference Manual" link="index.html" author="" name="{@name}">
+ <xsl:apply-templates select="files"/>
+ <xsl:apply-templates select="symbols"/>
+ </book>
+ <xsl:call-template name="generate_index"/>
+ <xsl:call-template name="generate_general"/>
+ </xsl:template>
+ <xsl:template match="/api/files">
+ <chapters>
+ <sub name="API" link="general.html">
+ <xsl:apply-templates select="file"/>
+ </sub>
+ </chapters>
+ </xsl:template>
+ <xsl:template match="/api/files/file">
+ <xsl:variable name="module" select="@name"/>
+ <xsl:variable name="prev" select="string(preceding-sibling::file[position()=1]/@name)"/>
+ <xsl:variable name="next" select="string(following-sibling::file[position()=1]/@name)"/>
+ <sub name="{@name}" link="libxml2-{@name}.html"/>
+ <xsl:document xmlns="" href="libxml2-{@name}.html" method="xml" indent="yes" encoding="UTF-8">
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <xsl:if test="$prev != ''">
+ <td><a accesskey="p" href="libxml2-{$prev}.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"/></a></td>
+ </xsl:if>
+ <td><a accesskey="u" href="general.html"><img src="up.png" width="24" height="24" border="0" alt="Up"/></a></td>
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td>
+ <xsl:if test="$next != ''">
+ <td><a accesskey="n" href="libxml2-{$next}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td>
+ </xsl:if>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2><span class="refentrytitle"><xsl:value-of select="@name"/></span></h2>
+ <p><xsl:value-of select="@name"/> - <xsl:value-of select="summary"/></p>
+ <p><xsl:value-of select="description"/></p>
+ <xsl:if test="deprecated">
+ <p> WARNING: this module is deprecated !</p>
+ </xsl:if>
+ <p>Author(s): <xsl:value-of select="author"/></p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">
+ <xsl:apply-templates mode="synopsis" select="exports"/>
+ </pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <xsl:apply-templates mode="details" select="/api/symbols/macro[@file=$module]"/>
+ <xsl:apply-templates mode="details" select="/api/symbols/typedef[@file=$module] | /api/symbols/struct[@file=$module]"/>
+ <xsl:apply-templates mode="details" select="/api/symbols/functype[@file=$module]"/>
+ <xsl:apply-templates mode="details" select="/api/symbols/variable[@file=$module]"/>
+ <xsl:apply-templates mode="details" select="/api/symbols/function[@file=$module]"/>
+ </div>
+ </div>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+ <xsl:template match="/api/symbols">
+ <functions>
+ <xsl:apply-templates select="macro"/>
+ <xsl:apply-templates select="enum"/>
+ <xsl:apply-templates select="typedef"/>
+ <xsl:apply-templates select="struct"/>
+ <xsl:apply-templates select="functype"/>
+ <xsl:apply-templates select="variable"/>
+ <xsl:apply-templates select="function"/>
+ </functions>
+ </xsl:template>
+ <xsl:template match="/api/symbols/functype">
+ <function name="{@name}" link="libxml2-{@file}.html#{@name}"/>
+ </xsl:template>
+ <xsl:template match="/api/symbols/function">
+ <function name="{@name} ()" link="libxml2-{@file}.html#{@name}"/>
+ </xsl:template>
+ <xsl:template match="/api/symbols/typedef">
+ <function name="{@name}" link="libxml2-{@file}.html#{@name}"/>
+ </xsl:template>
+ <xsl:template match="/api/symbols/enum">
+ <function name="{@name}" link="libxml2-{@file}.html#{@name}"/>
+ </xsl:template>
+ <xsl:template match="/api/symbols/struct">
+ <function name="{@name}" link="libxml2-{@file}.html#{@name}"/>
+ </xsl:template>
+ <xsl:template match="/api/symbols/macro">
+ <function name="{@name}" link="libxml2-{@file}.html#{@name}"/>
+ </xsl:template>
+ <xsl:template match="/api/symbols/variable">
+ <function name="{@name}" link="libxml2-{@file}.html#{@name}"/>
+ </xsl:template>
+
+</xsl:stylesheet>
+
+
diff --git a/libxml2-2.9.10/doc/devhelp/general.html b/libxml2-2.9.10/doc/devhelp/general.html
new file mode 100644
index 0000000..90f0d39
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/general.html
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>libxml2: </title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="index.html" title="libxml2 Reference Manual"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="u" href="index.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-DOCBparser.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">libxml2 API Modules</span>
+ </h2>
+ <p><a href="libxml2-DOCBparser.html">DOCBparser</a> - old DocBook SGML parser<br/><a href="libxml2-HTMLparser.html">HTMLparser</a> - interface for an HTML 4.0 non-verifying parser<br/><a href="libxml2-HTMLtree.html">HTMLtree</a> - specific APIs to process HTML tree, especially serialization<br/><a href="libxml2-SAX.html">SAX</a> - Old SAX version 1 handler, deprecated<br/><a href="libxml2-SAX2.html">SAX2</a> - SAX2 parser interface used to build the DOM tree<br/><a href="libxml2-c14n.html">c14n</a> - Provide Canonical XML and Exclusive XML Canonicalization<br/><a href="libxml2-catalog.html">catalog</a> - interfaces to the Catalog handling system<br/><a href="libxml2-chvalid.html">chvalid</a> - Unicode character range checking<br/><a href="libxml2-debugXML.html">debugXML</a> - Tree debugging APIs<br/><a href="libxml2-dict.html">dict</a> - string dictionary<br/><a href="libxml2-encoding.html">encoding</a> - interface for the encoding conversion functions<br/><a href="libxml2-entities.html">entities</a> - interface for the XML entities handling<br/><a href="libxml2-globals.html">globals</a> - interface for all global variables of the library<br/><a href="libxml2-hash.html">hash</a> - Chained hash tables<br/><a href="libxml2-list.html">list</a> - lists interfaces<br/><a href="libxml2-nanoftp.html">nanoftp</a> - minimal FTP implementation<br/><a href="libxml2-nanohttp.html">nanohttp</a> - minimal HTTP implementation<br/><a href="libxml2-parser.html">parser</a> - the core parser module<br/><a href="libxml2-parserInternals.html">parserInternals</a> - internals routines and limits exported by the parser.<br/><a href="libxml2-pattern.html">pattern</a> - pattern expression handling<br/><a href="libxml2-relaxng.html">relaxng</a> - implementation of the Relax-NG validation<br/><a href="libxml2-schemasInternals.html">schemasInternals</a> - internal interfaces for XML Schemas<br/><a href="libxml2-schematron.html">schematron</a> - XML Schemastron implementation<br/><a href="libxml2-threads.html">threads</a> - interfaces for thread handling<br/><a href="libxml2-tree.html">tree</a> - interfaces for tree manipulation<br/><a href="libxml2-uri.html">uri</a> - library of generic URI related routines<br/><a href="libxml2-valid.html">valid</a> - The DTD validation<br/><a href="libxml2-xinclude.html">xinclude</a> - implementation of XInclude<br/><a href="libxml2-xlink.html">xlink</a> - unfinished XLink detection module<br/><a href="libxml2-xmlIO.html">xmlIO</a> - interface for the I/O interfaces used by the parser<br/><a href="libxml2-xmlautomata.html">xmlautomata</a> - API to build regexp automata<br/><a href="libxml2-xmlerror.html">xmlerror</a> - error handling<br/><a href="libxml2-xmlexports.html">xmlexports</a> - macros for marking symbols as exportable/importable.<br/><a href="libxml2-xmlmemory.html">xmlmemory</a> - interface for the memory allocator<br/><a href="libxml2-xmlmodule.html">xmlmodule</a> - dynamic module loading<br/><a href="libxml2-xmlreader.html">xmlreader</a> - the XMLReader implementation<br/><a href="libxml2-xmlregexp.html">xmlregexp</a> - regular expressions handling<br/><a href="libxml2-xmlsave.html">xmlsave</a> - the XML document serializer<br/><a href="libxml2-xmlschemas.html">xmlschemas</a> - incomplete XML Schemas structure implementation<br/><a href="libxml2-xmlschemastypes.html">xmlschemastypes</a> - implementation of XML Schema Datatypes<br/><a href="libxml2-xmlstring.html">xmlstring</a> - set of routines to process strings<br/><a href="libxml2-xmlunicode.html">xmlunicode</a> - Unicode character APIs<br/><a href="libxml2-xmlversion.html">xmlversion</a> - compile-time version informations<br/><a href="libxml2-xmlwriter.html">xmlwriter</a> - text writing API for XML<br/><a href="libxml2-xpath.html">xpath</a> - XML Path Language implementation<br/><a href="libxml2-xpathInternals.html">xpathInternals</a> - internal interfaces for XML Path Language implementation<br/><a href="libxml2-xpointer.html">xpointer</a> - API to handle XML Pointers<br/></p>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/home.png b/libxml2-2.9.10/doc/devhelp/home.png
new file mode 100644
index 0000000..1700361
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/home.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/devhelp/html.xsl b/libxml2-2.9.10/doc/devhelp/html.xsl
new file mode 100644
index 0000000..1720b29
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/html.xsl
@@ -0,0 +1,602 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:str="http://exslt.org/strings"
+ extension-element-prefixes="exsl str"
+ exclude-result-prefixes="exsl str">
+ <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+ <!-- This is convoluted but needed to force the current document to
+ be the API one and not the result tree from the tokenize() result,
+ because the keys are only defined on the main document -->
+ <xsl:template mode="dumptoken" match='*'>
+ <xsl:param name="token"/>
+ <xsl:variable name="ref" select="key('symbols', $token)"/>
+ <xsl:choose>
+ <xsl:when test="$ref">
+ <a href="libxml2-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$token"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- dumps a string, making cross-reference links -->
+ <xsl:template name="dumptext">
+ <xsl:param name="text"/>
+ <xsl:variable name="ctxt" select='.'/>
+ <!-- <xsl:value-of select="$text"/> -->
+ <xsl:for-each select="str:tokenize($text, ' &#9;')">
+ <xsl:apply-templates select="$ctxt" mode='dumptoken'>
+ <xsl:with-param name="token" select="string(.)"/>
+ </xsl:apply-templates>
+ <xsl:if test="position() != last()">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+
+<!--
+
+ The following builds the Synopsis section
+
+-->
+ <xsl:template mode="synopsis" match="function">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>);</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="synopsis" match="functype">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <xsl:text>typedef </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>);</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="synopsis" match="exports[@type='function']">
+ <xsl:variable name="def" select="key('symbols',@symbol)"/>
+ <xsl:apply-templates mode="synopsis" select="$def"/>
+ </xsl:template>
+
+ <xsl:template mode="synopsis" match="exports[@type='typedef']">
+ <xsl:text>typedef </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="string(key('symbols',@symbol)/@type)"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>
+ <xsl:text>;
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="synopsis" match="exports[@type='macro']">
+ <xsl:variable name="def" select="key('symbols',@symbol)"/>
+ <xsl:text>#define </xsl:text>
+ <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>
+ <xsl:if test="$def/arg">
+ <xsl:text>(</xsl:text>
+ <xsl:for-each select="$def/arg">
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ <xsl:text>;
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="synopsis" match="exports[@type='enum']">
+ </xsl:template>
+ <xsl:template mode="synopsis" match="exports[@type='struct']">
+ </xsl:template>
+
+<!--
+
+ The following builds the Details section
+
+-->
+ <xsl:template mode="details" match="struct">
+ <xsl:variable name="name" select="string(@name)"/>
+ <div class="refsect2" lang="en">
+ <h3><a name="{$name}">Structure </a><xsl:value-of select="$name"/></h3>
+ <pre class="programlisting">
+ <xsl:value-of select="@type"/><xsl:text> {
+</xsl:text>
+ <xsl:if test="not(field)">
+ <xsl:text>The content of this structure is not made public by the API.
+</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="field">
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="@info != ''">
+ <xsl:text>&#9;: </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="substring(@info, 1, 70)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>} </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>;
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p><xsl:text>
+</xsl:text>
+ </div><hr/>
+ </xsl:template>
+
+ <xsl:template mode="details" match="typedef[@type != 'enum']">
+ <xsl:variable name="name" select="string(@name)"/>
+ <div class="refsect2" lang="en">
+ <h3><a name="{$name}">Typedef </a><xsl:value-of select="$name"/></h3>
+ <pre class="programlisting">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="string(@type)"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>;
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p><xsl:text>
+</xsl:text>
+ </div><hr/>
+ </xsl:template>
+
+ <xsl:template mode="details" match="variable">
+ <xsl:variable name="name" select="string(@name)"/>
+ <div class="refsect2" lang="en">
+ <h3><a name="{$name}">Variable </a><xsl:value-of select="$name"/></h3>
+ <pre class="programlisting">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="string(@type)"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>;
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p><xsl:text>
+</xsl:text>
+ </div><hr/>
+ </xsl:template>
+
+ <xsl:template mode="details" match="typedef[@type = 'enum']">
+ <xsl:variable name="name" select="string(@name)"/>
+ <div class="refsect2" lang="en">
+ <h3><a name="{$name}">Enum </a><xsl:value-of select="$name"/></h3>
+ <pre class="programlisting">
+ <xsl:text>enum </xsl:text>
+ <a href="#{$name}"><xsl:value-of select="$name"/></a>
+ <xsl:text> {
+</xsl:text>
+ <xsl:for-each select="/api/symbols/enum[@type=$name]">
+ <xsl:sort select="@value" data-type="number" order="ascending"/>
+ <xsl:text> </xsl:text>
+ <a name="{@name}"><xsl:value-of select="@name"/></a>
+ <xsl:if test="@value">
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="@value"/>
+ </xsl:if>
+ <xsl:if test="@info">
+ <xsl:text> /* </xsl:text>
+ <xsl:value-of select="@info"/>
+ <xsl:text> */</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>};
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p><xsl:text>
+</xsl:text>
+ </div><hr/>
+ </xsl:template>
+
+ <xsl:template mode="details" match="macro">
+ <xsl:variable name="name" select="string(@name)"/>
+ <div class="refsect2" lang="en">
+ <h3><a name="{$name}">Macro </a><xsl:value-of select="$name"/></h3>
+ <pre class="programlisting">
+ <xsl:text>#define </xsl:text>
+ <a href="#{$name}"><xsl:value-of select="$name"/></a>
+ <xsl:if test="arg">
+ <xsl:text>(</xsl:text>
+ <xsl:for-each select="arg">
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ <xsl:text>;
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p>
+ <xsl:if test="arg">
+ <div class="variablelist"><table border="0"><col align="left"/><tbody>
+ <xsl:for-each select="arg">
+ <tr>
+ <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </tbody></table></div>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </div><hr/>
+ </xsl:template>
+
+ <xsl:template mode="details" match="function">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <div class="refsect2" lang="en">
+ <h3><a name="{$name}"></a><xsl:value-of select="$name"/> ()</h3>
+ <pre class="programlisting">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)</xsl:text><br/>
+ <xsl:text>
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p><xsl:text>
+</xsl:text>
+ <xsl:if test="arg | return/@info">
+ <div class="variablelist"><table border="0"><col align="left"/><tbody>
+ <xsl:for-each select="arg">
+ <tr>
+ <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:for-each>
+ <xsl:if test="return/@info">
+ <tr>
+ <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:if>
+ </tbody></table></div>
+ </xsl:if>
+ </div><hr/>
+ </xsl:template>
+
+ <xsl:template mode="details" match="functype">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <div class="refsect2" lang="en">
+ <h3><a name="{$name}"></a>Function type <xsl:value-of select="$name"/> </h3>
+ <pre class="programlisting">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)</xsl:text><br/>
+ <xsl:text>
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p><xsl:text>
+</xsl:text>
+ <xsl:if test="arg | return/@info">
+ <div class="variablelist"><table border="0"><col align="left"/><tbody>
+ <xsl:for-each select="arg">
+ <tr>
+ <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:for-each>
+ <xsl:if test="return/@info">
+ <tr>
+ <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:if>
+ </tbody></table></div>
+ </xsl:if>
+ </div><hr/>
+ </xsl:template>
+
+<!--
+
+ The following builds the general.html page
+
+-->
+ <xsl:template name="generate_general">
+ <xsl:variable name="next" select="string(/api/files/file[position()=1]/@name)"/>
+ <xsl:document xmlns="" href="general.html" method="xml" indent="yes" encoding="UTF-8">
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="index.html" title="libxml2 Reference Manual"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up"/></a></td>
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td>
+ <xsl:if test="$next != ''">
+ <td><a accesskey="n" href="libxml2-{$next}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td>
+ </xsl:if>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2><span class="refentrytitle">libxml2 API Modules</span></h2>
+ <p>
+ <xsl:for-each select="/api/files/file">
+ <a href="libxml2-{@name}.html"><xsl:value-of select="@name"/></a> - <xsl:value-of select="summary"/><br/>
+ </xsl:for-each>
+ </p>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+
+<!--
+
+ The following builds the index.html page
+
+-->
+ <xsl:template name="generate_index">
+ <xsl:document xmlns="" href="index.html" method="xml" indent="yes" encoding="UTF-8">
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>libxml2 Reference Manual</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td>
+ <td><a accesskey="n" href="general.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2><span class="refentrytitle">libxml2 Reference Manual</span></h2>
+<p>Libxml2 is the XML C parser and toolkit developed for the Gnome project
+(but usable outside of the Gnome platform), it is free software available
+under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
+License</a>. XML itself is a metalanguage to design markup languages, i.e.
+text language where semantic and structure are added to the content using
+extra "markup" information enclosed between angle brackets. HTML is the most
+well-known markup language. Though the library is written in C <a href="http://xmlsoft.org/python.html">a variety of language bindings</a> make it available in
+other environments.</p>
+<p>Libxml2 implements a number of existing standards related to markup
+languages:</p>
+<ul><li>the XML standard: <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></li>
+<li>Namespaces in XML: <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a></li>
+<li>XML Base: <a href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a></li>
+<li><a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC 2396</a> :
+Uniform 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>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 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 <a href="http://www.cis.ohio-state.edu/rfc/rfc2781.txt">rfc2781</a>
+[UTF-16] Unicode encodings, and more if using iconv support</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>Canonical XML Version 1.0: <a href="http://www.w3.org/TR/xml-c14n">http://www.w3.org/TR/xml-c14n</a>
+and 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>
+<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 May
+2001</a></li>
+<li>W3C <a href="http://www.w3.org/TR/xml-id/">xml:id</a> Working Draft 7
+April 2004</li>
+</ul>
+ <p> As a result the <a href="general.html">libxml2 API</a> is very
+ large. If you get lost searching for some specific API use
+ <a href="http://xmlsoft.org/search.php">the online search
+ engine</a> hosted on <a href="http://xmlsoft.org/">xmlsoft.org</a>
+ the libxml2 and libxslt project page. </p>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+
+</xsl:stylesheet>
+
+
diff --git a/libxml2-2.9.10/doc/devhelp/index.html b/libxml2-2.9.10/doc/devhelp/index.html
new file mode 100644
index 0000000..26c2839
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/index.html
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>libxml2 Reference Manual</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="general.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">libxml2 Reference Manual</span>
+ </h2>
+ <p>Libxml2 is the XML C parser and toolkit developed for the Gnome project
+(but usable outside of the Gnome platform), it is free software available
+under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
+License</a>. XML itself is a metalanguage to design markup languages, i.e.
+text language where semantic and structure are added to the content using
+extra "markup" information enclosed between angle brackets. HTML is the most
+well-known markup language. Though the library is written in C <a href="http://xmlsoft.org/python.html">a variety of language bindings</a> make it available in
+other environments.</p>
+ <p>Libxml2 implements a number of existing standards related to markup
+languages:</p>
+ <ul>
+ <li>the XML standard: <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></li>
+ <li>Namespaces in XML: <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a></li>
+ <li>XML Base: <a href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a></li>
+ <li><a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC 2396</a> :
+Uniform 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>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 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 <a href="http://www.cis.ohio-state.edu/rfc/rfc2781.txt">rfc2781</a>
+[UTF-16] Unicode encodings, and more if using iconv support</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>Canonical XML Version 1.0: <a href="http://www.w3.org/TR/xml-c14n">http://www.w3.org/TR/xml-c14n</a>
+and 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>
+ <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 May
+2001</a></li>
+ <li>W3C <a href="http://www.w3.org/TR/xml-id/">xml:id</a> Working Draft 7
+April 2004</li>
+ </ul>
+ <p> As a result the <a href="general.html">libxml2 API</a> is very
+ large. If you get lost searching for some specific API use
+ <a href="http://xmlsoft.org/search.php">the online search
+ engine</a> hosted on <a href="http://xmlsoft.org/">xmlsoft.org</a>
+ the libxml2 and libxslt project page. </p>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/left.png b/libxml2-2.9.10/doc/devhelp/left.png
new file mode 100644
index 0000000..2d05b3d
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/left.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-DOCBparser.html b/libxml2-2.9.10/doc/devhelp/libxml2-DOCBparser.html
new file mode 100644
index 0000000..a7b514e
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-DOCBparser.html
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>DOCBparser: old DocBook SGML parser</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-HTMLparser.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">DOCBparser</span>
+ </h2>
+ <p>DOCBparser - old DocBook SGML parser</p>
+ <p>interface for a DocBook SGML non-verifying parser This code is DEPRECATED, and should not be used anymore. </p>
+ <p> WARNING: this module is deprecated !</p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#docbParserInputPtr">docbParserInputPtr</a>;
+typedef <a href="libxml2-tree.html#xmlParserCtxt">xmlParserCtxt</a> <a href="#docbParserCtxt">docbParserCtxt</a>;
+typedef <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#docbParserCtxtPtr">docbParserCtxtPtr</a>;
+typedef <a href="libxml2-tree.html#xmlParserInput">xmlParserInput</a> <a href="#docbParserInput">docbParserInput</a>;
+typedef <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#docbDocPtr">docbDocPtr</a>;
+typedef <a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> <a href="#docbSAXHandler">docbSAXHandler</a>;
+typedef <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> <a href="#docbSAXHandlerPtr">docbSAXHandlerPtr</a>;
+void <a href="#docbFreeParserCtxt">docbFreeParserCtxt</a> (<a href="libxml2-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt);
+<a href="libxml2-DOCBparser.html#docbDocPtr">docbDocPtr</a> <a href="#docbParseDoc">docbParseDoc</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding);
+<a href="libxml2-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> <a href="#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a> (const char * filename, <br/> const char * encoding);
+<a href="libxml2-DOCBparser.html#docbDocPtr">docbDocPtr</a> <a href="#docbSAXParseFile">docbSAXParseFile</a> (const char * filename, <br/> const char * encoding, <br/> <a href="libxml2-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br/> void * userData);
+<a href="libxml2-DOCBparser.html#docbDocPtr">docbDocPtr</a> <a href="#docbSAXParseDoc">docbSAXParseDoc</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding, <br/> <a href="libxml2-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br/> void * userData);
+<a href="libxml2-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> <a href="#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a> (<a href="libxml2-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> const char * chunk, <br/> int size, <br/> const char * filename, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+int <a href="#docbEncodeEntities">docbEncodeEntities</a> (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen, <br/> int quoteChar);
+<a href="libxml2-DOCBparser.html#docbDocPtr">docbDocPtr</a> <a href="#docbParseFile">docbParseFile</a> (const char * filename, <br/> const char * encoding);
+int <a href="#docbParseDocument">docbParseDocument</a> (<a href="libxml2-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt);
+int <a href="#docbParseChunk">docbParseChunk</a> (<a href="libxml2-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt, <br/> const char * chunk, <br/> int size, <br/> int terminate);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="docbDocPtr">Typedef </a>docbDocPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> docbDocPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbParserCtxt">Typedef </a>docbParserCtxt</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxt">xmlParserCtxt</a> docbParserCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbParserCtxtPtr">Typedef </a>docbParserCtxtPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> docbParserCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbParserInput">Typedef </a>docbParserInput</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInput">xmlParserInput</a> docbParserInput;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbParserInputPtr">Typedef </a>docbParserInputPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> docbParserInputPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbSAXHandler">Typedef </a>docbSAXHandler</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> docbSAXHandler;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbSAXHandlerPtr">Typedef </a>docbSAXHandlerPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> docbSAXHandlerPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbCreateFileParserCtxt"/>docbCreateFileParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> docbCreateFileParserCtxt (const char * filename, <br/> const char * encoding)<br/>
+</pre><p>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the SGML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbCreatePushParserCtxt"/>docbCreatePushParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> docbCreatePushParserCtxt (<a href="libxml2-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> const char * chunk, <br/> int size, <br/> const char * filename, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a parser context for using the DocBook SGML parser in push mode To allow content encoding detection, @size should be &gt;= 4 The value of @filename is used for fetching external entities and error/warning reports.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>a pointer to an array of chars</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>number of chars in the array</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>an optional file name or URI</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>an optional encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbEncodeEntities"/>docbEncodeEntities ()</h3><pre class="programlisting">int docbEncodeEntities (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen, <br/> int quoteChar)<br/>
+</pre><p>Take a block of UTF-8 chars in and try to convert it to an ASCII plus SGML entities block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of UTF-8 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>quoteChar</tt></i>:</span></td><td>the quote character to escape (' or ") or zero.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbFreeParserCtxt"/>docbFreeParserCtxt ()</h3><pre class="programlisting">void docbFreeParserCtxt (<a href="libxml2-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an SGML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbParseChunk"/>docbParseChunk ()</h3><pre class="programlisting">int docbParseChunk (<a href="libxml2-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt, <br/> const char * chunk, <br/> int size, <br/> int terminate)<br/>
+</pre><p>Parse a Chunk of memory</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml2-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbParseDoc"/>docbParseDoc ()</h3><pre class="programlisting"><a href="libxml2-DOCBparser.html#docbDocPtr">docbDocPtr</a> docbParseDoc (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding)<br/>
+</pre><p>parse an SGML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the SGML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbParseDocument"/>docbParseDocument ()</h3><pre class="programlisting">int docbParseDocument (<a href="libxml2-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an SGML document (and build a tree if using the standard SAX interface).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an SGML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0, -1 in case of error. the parser context is augmented as a result of the parsing.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbParseFile"/>docbParseFile ()</h3><pre class="programlisting"><a href="libxml2-DOCBparser.html#docbDocPtr">docbDocPtr</a> docbParseFile (const char * filename, <br/> const char * encoding)<br/>
+</pre><p>parse a Docbook SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbSAXParseDoc"/>docbSAXParseDoc ()</h3><pre class="programlisting"><a href="libxml2-DOCBparser.html#docbDocPtr">docbDocPtr</a> docbSAXParseDoc (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding, <br/> <a href="libxml2-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br/> void * userData)<br/>
+</pre><p>parse an SGML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the SGML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbSAXParseFile"/>docbSAXParseFile ()</h3><pre class="programlisting"><a href="libxml2-DOCBparser.html#docbDocPtr">docbDocPtr</a> docbSAXParseFile (const char * filename, <br/> const char * encoding, <br/> <a href="libxml2-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br/> void * userData)<br/>
+</pre><p>parse an SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the SGML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-HTMLparser.html b/libxml2-2.9.10/doc/devhelp/libxml2-HTMLparser.html
new file mode 100644
index 0000000..3af5a9c
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-HTMLparser.html
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>HTMLparser: interface for an HTML 4.0 non-verifying parser</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-DOCBparser.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-HTMLtree.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">HTMLparser</span>
+ </h2>
+ <p>HTMLparser - interface for an HTML 4.0 non-verifying parser</p>
+ <p>this module implements an HTML 4.0 non-verifying parser with API compatible with the XML parser ones. It should be able to parse "real world" HTML, even if severely broken from a specification point of view. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#htmlDefaultSubelement">htmlDefaultSubelement</a>(elt);
+#define <a href="#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a>(parent, elt);
+#define <a href="#htmlRequiredAttrs">htmlRequiredAttrs</a>(elt);
+typedef <a href="libxml2-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> <a href="#htmlParserNodeInfo">htmlParserNodeInfo</a>;
+typedef <a href="libxml2-tree.html#xmlParserInput">xmlParserInput</a> <a href="#htmlParserInput">htmlParserInput</a>;
+typedef <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#htmlParserCtxtPtr">htmlParserCtxtPtr</a>;
+typedef struct _htmlEntityDesc <a href="#htmlEntityDesc">htmlEntityDesc</a>;
+typedef <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#htmlDocPtr">htmlDocPtr</a>;
+typedef <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> <a href="#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a>;
+typedef enum <a href="#htmlStatus">htmlStatus</a>;
+typedef <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#htmlNodePtr">htmlNodePtr</a>;
+typedef <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * <a href="#htmlElemDescPtr">htmlElemDescPtr</a>;
+typedef struct _htmlElemDesc <a href="#htmlElemDesc">htmlElemDesc</a>;
+typedef <a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> <a href="#htmlSAXHandler">htmlSAXHandler</a>;
+typedef <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#htmlParserInputPtr">htmlParserInputPtr</a>;
+typedef enum <a href="#htmlParserOption">htmlParserOption</a>;
+typedef <a href="libxml2-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * <a href="#htmlEntityDescPtr">htmlEntityDescPtr</a>;
+typedef <a href="libxml2-tree.html#xmlParserCtxt">xmlParserCtxt</a> <a href="#htmlParserCtxt">htmlParserCtxt</a>;
+int <a href="#htmlIsScriptAttribute">htmlIsScriptAttribute</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#htmlHandleOmittedElem">htmlHandleOmittedElem</a> (int val);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadFd">htmlReadFd</a> (int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadIO">htmlReadIO</a> (<a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlParseFile">htmlParseFile</a> (const char * filename, <br/> const char * encoding);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadDoc">htmlCtxtReadDoc</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#htmlAutoCloseTag">htmlAutoCloseTag</a> (<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> elem);
+int <a href="#htmlParseChunk">htmlParseChunk</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const char * chunk, <br/> int size, <br/> int terminate);
+const <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * <a href="#htmlTagLookup">htmlTagLookup</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * tag);
+<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> <a href="#htmlCreateMemoryParserCtxt">htmlCreateMemoryParserCtxt</a> (const char * buffer, <br/> int size);
+void <a href="#htmlCtxtReset">htmlCtxtReset</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt);
+int <a href="#htmlElementAllowedHere">htmlElementAllowedHere</a> (const <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * parent, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elt);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadIO">htmlCtxtReadIO</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> <a href="#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a> (<a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> const char * chunk, <br/> int size, <br/> const char * filename, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadMemory">htmlReadMemory</a> (const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#htmlIsAutoClosed">htmlIsAutoClosed</a> (<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br/> <a href="libxml2-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> elem);
+int <a href="#htmlParseCharRef">htmlParseCharRef</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadDoc">htmlReadDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#htmlEncodeEntities">htmlEncodeEntities</a> (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen, <br/> int quoteChar);
+<a href="libxml2-HTMLparser.html#htmlStatus">htmlStatus</a> <a href="#htmlNodeStatus">htmlNodeStatus</a> (const <a href="libxml2-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> node, <br/> int legacy);
+<a href="libxml2-HTMLparser.html#htmlStatus">htmlStatus</a> <a href="#htmlAttrAllowed">htmlAttrAllowed</a> (const <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * elt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * attr, <br/> int legacy);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlSAXParseFile">htmlSAXParseFile</a> (const char * filename, <br/> const char * encoding, <br/> <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/> void * userData);
+const <a href="libxml2-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * <a href="#htmlParseEntityRef">htmlParseEntityRef</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** str);
+<a href="libxml2-HTMLparser.html#htmlStatus">htmlStatus</a> <a href="#htmlElementStatusHere">htmlElementStatusHere</a> (const <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * parent, <br/> const <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * elt);
+const <a href="libxml2-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * <a href="#htmlEntityValueLookup">htmlEntityValueLookup</a> (unsigned int value);
+void <a href="#htmlParseElement">htmlParseElement</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt);
+int <a href="#UTF8ToHtml">UTF8ToHtml</a> (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen);
+const <a href="libxml2-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * <a href="#htmlEntityLookup">htmlEntityLookup</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#htmlFreeParserCtxt">htmlFreeParserCtxt</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadMemory">htmlCtxtReadMemory</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadFd">htmlCtxtReadFd</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadFile">htmlReadFile</a> (const char * filename, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadFile">htmlCtxtReadFile</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const char * filename, <br/> const char * encoding, <br/> int options);
+int <a href="#htmlParseDocument">htmlParseDocument</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> <a href="#htmlNewParserCtxt">htmlNewParserCtxt</a> (void);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlSAXParseDoc">htmlSAXParseDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding, <br/> <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/> void * userData);
+int <a href="#htmlCtxtUseOptions">htmlCtxtUseOptions</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> int options);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlParseDoc">htmlParseDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="htmlDefaultSubelement">Macro </a>htmlDefaultSubelement</h3><pre class="programlisting">#define <a href="#htmlDefaultSubelement">htmlDefaultSubelement</a>(elt);
+</pre><p>Returns the default subelement for this element</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>elt</tt></i>:</span></td><td>HTML element</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlElementAllowedHereDesc">Macro </a>htmlElementAllowedHereDesc</h3><pre class="programlisting">#define <a href="#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a>(parent, elt);
+</pre><p>Checks whether an HTML element description may be a direct child of the specified element. Returns 1 if allowed; 0 otherwise.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>HTML parent element</td></tr><tr><td><span class="term"><i><tt>elt</tt></i>:</span></td><td>HTML element</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlRequiredAttrs">Macro </a>htmlRequiredAttrs</h3><pre class="programlisting">#define <a href="#htmlRequiredAttrs">htmlRequiredAttrs</a>(elt);
+</pre><p>Returns the attributes required for the specified element.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>elt</tt></i>:</span></td><td>HTML element</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlDocPtr">Typedef </a>htmlDocPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> htmlDocPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlElemDesc">Structure </a>htmlElemDesc</h3><pre class="programlisting">struct _htmlElemDesc {
+ const char * name : The tag name
+ char startTag : Whether the start tag can be implied
+ char endTag : Whether the end tag can be implied
+ char saveEndTag : Whether the end tag should be saved
+ char empty : Is this an empty element ?
+ char depr : Is this a deprecated element ?
+ char dtd : 1: only in Loose DTD, 2: only Frameset one
+ char isinline : is this a block 0 or inline 1 element
+ const char * desc : the description NRK Jan.2003 * New fields encapsulating HTML structur
+ const char ** subelts : allowed sub-elements of this element
+ const char * defaultsubelt : subelement for suggested auto-repair if necessary or NULL
+ const char ** attrs_opt : Optional Attributes
+ const char ** attrs_depr : Additional deprecated attributes
+ const char ** attrs_req : Required attributes
+} htmlElemDesc;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlElemDescPtr">Typedef </a>htmlElemDescPtr</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * htmlElemDescPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlEntityDesc">Structure </a>htmlEntityDesc</h3><pre class="programlisting">struct _htmlEntityDesc {
+ unsigned int value : the UNICODE value for the character
+ const char * name : The entity name
+ const char * desc : the description
+} htmlEntityDesc;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlEntityDescPtr">Typedef </a>htmlEntityDescPtr</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * htmlEntityDescPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlNodePtr">Typedef </a>htmlNodePtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> htmlNodePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParserCtxt">Typedef </a>htmlParserCtxt</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxt">xmlParserCtxt</a> htmlParserCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParserCtxtPtr">Typedef </a>htmlParserCtxtPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> htmlParserCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParserInput">Typedef </a>htmlParserInput</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInput">xmlParserInput</a> htmlParserInput;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParserInputPtr">Typedef </a>htmlParserInputPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> htmlParserInputPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParserNodeInfo">Typedef </a>htmlParserNodeInfo</h3><pre class="programlisting"><a href="libxml2-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> htmlParserNodeInfo;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParserOption">Enum </a>htmlParserOption</h3><pre class="programlisting">enum <a href="#htmlParserOption">htmlParserOption</a> {
+ <a name="HTML_PARSE_RECOVER">HTML_PARSE_RECOVER</a> = 1 /* Relaxed parsing */
+ <a name="HTML_PARSE_NODEFDTD">HTML_PARSE_NODEFDTD</a> = 4 /* do not default a doctype if not found */
+ <a name="HTML_PARSE_NOERROR">HTML_PARSE_NOERROR</a> = 32 /* suppress error reports */
+ <a name="HTML_PARSE_NOWARNING">HTML_PARSE_NOWARNING</a> = 64 /* suppress warning reports */
+ <a name="HTML_PARSE_PEDANTIC">HTML_PARSE_PEDANTIC</a> = 128 /* pedantic error reporting */
+ <a name="HTML_PARSE_NOBLANKS">HTML_PARSE_NOBLANKS</a> = 256 /* remove blank nodes */
+ <a name="HTML_PARSE_NONET">HTML_PARSE_NONET</a> = 2048 /* Forbid network access */
+ <a name="HTML_PARSE_NOIMPLIED">HTML_PARSE_NOIMPLIED</a> = 8192 /* Do not add implied html/body... elements */
+ <a name="HTML_PARSE_COMPACT">HTML_PARSE_COMPACT</a> = 65536 /* compact small text nodes */
+ <a name="HTML_PARSE_IGNORE_ENC">HTML_PARSE_IGNORE_ENC</a> = 2097152 /* ignore internal document encoding hint */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlSAXHandler">Typedef </a>htmlSAXHandler</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> htmlSAXHandler;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlSAXHandlerPtr">Typedef </a>htmlSAXHandlerPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> htmlSAXHandlerPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlStatus">Enum </a>htmlStatus</h3><pre class="programlisting">enum <a href="#htmlStatus">htmlStatus</a> {
+ <a name="HTML_NA">HTML_NA</a> = 0 /* something we don't check at all */
+ <a name="HTML_INVALID">HTML_INVALID</a> = 1
+ <a name="HTML_DEPRECATED">HTML_DEPRECATED</a> = 2
+ <a name="HTML_VALID">HTML_VALID</a> = 4
+ <a name="HTML_REQUIRED">HTML_REQUIRED</a> = 12 /* VALID bit set so ( &amp; HTML_VALID ) is TRUE */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="UTF8ToHtml"/>UTF8ToHtml ()</h3><pre class="programlisting">int UTF8ToHtml (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen)<br/>
+</pre><p>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of UTF-8 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlAttrAllowed"/>htmlAttrAllowed ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlStatus">htmlStatus</a> htmlAttrAllowed (const <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * elt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * attr, <br/> int legacy)<br/>
+</pre><p>Checks whether an <a href="libxml2-SAX.html#attribute">attribute</a> is valid for an element Has full knowledge of Required and Deprecated attributes</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>elt</tt></i>:</span></td><td>HTML element</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>HTML <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>legacy</tt></i>:</span></td><td>whether to allow deprecated attributes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>one of HTML_REQUIRED, HTML_VALID, HTML_DEPRECATED, <a href="libxml2-HTMLparser.html#HTML_INVALID">HTML_INVALID</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlAutoCloseTag"/>htmlAutoCloseTag ()</h3><pre class="programlisting">int htmlAutoCloseTag (<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> elem)<br/>
+</pre><p>The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if the element or one of it's children would autoclose the given tag.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the HTML document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The tag name</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the HTML element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if autoclose, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlCreateMemoryParserCtxt"/>htmlCreateMemoryParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> htmlCreateMemoryParserCtxt (const char * buffer, <br/> int size)<br/>
+</pre><p>Create a parser context for an HTML in-memory document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlCreatePushParserCtxt"/>htmlCreatePushParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> htmlCreatePushParserCtxt (<a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> const char * chunk, <br/> int size, <br/> const char * filename, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a parser context for using the HTML parser in push mode The value of @filename is used for fetching external entities and error/warning reports.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>a pointer to an array of chars</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>number of chars in the array</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>an optional file name or URI</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>an optional encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlCtxtReadDoc"/>htmlCtxtReadDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlCtxtReadDoc (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlCtxtReadFd"/>htmlCtxtReadFd ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlCtxtReadFd (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlCtxtReadFile"/>htmlCtxtReadFile ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlCtxtReadFile (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const char * filename, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlCtxtReadIO"/>htmlCtxtReadIO ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlCtxtReadIO (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an HTML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlCtxtReadMemory"/>htmlCtxtReadMemory ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlCtxtReadMemory (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlCtxtReset"/>htmlCtxtReset ()</h3><pre class="programlisting">void htmlCtxtReset (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Reset a parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlCtxtUseOptions"/>htmlCtxtUseOptions ()</h3><pre class="programlisting">int htmlCtxtUseOptions (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> int options)<br/>
+</pre><p>Applies the options to the parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, the set of unknown or unimplemented options in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlElementAllowedHere"/>htmlElementAllowedHere ()</h3><pre class="programlisting">int htmlElementAllowedHere (const <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * parent, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elt)<br/>
+</pre><p>Checks whether an HTML element may be a direct child of a parent element. Note - doesn't check for deprecated elements</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>HTML parent element</td></tr><tr><td><span class="term"><i><tt>elt</tt></i>:</span></td><td>HTML element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if allowed; 0 otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlElementStatusHere"/>htmlElementStatusHere ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlStatus">htmlStatus</a> htmlElementStatusHere (const <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * parent, <br/> const <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * elt)<br/>
+</pre><p>Checks whether an HTML element may be a direct child of a parent element. and if so whether it is valid or deprecated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>HTML parent element</td></tr><tr><td><span class="term"><i><tt>elt</tt></i>:</span></td><td>HTML element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>one of HTML_VALID, HTML_DEPRECATED, <a href="libxml2-HTMLparser.html#HTML_INVALID">HTML_INVALID</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlEncodeEntities"/>htmlEncodeEntities ()</h3><pre class="programlisting">int htmlEncodeEntities (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen, <br/> int quoteChar)<br/>
+</pre><p>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of UTF-8 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>quoteChar</tt></i>:</span></td><td>the quote character to escape (' or ") or zero.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlEntityLookup"/>htmlEntityLookup ()</h3><pre class="programlisting">const <a href="libxml2-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * htmlEntityLookup (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Lookup the given entity in EntitiesTable TODO: the linear scan is really ugly, an hash table is really needed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the associated <a href="libxml2-HTMLparser.html#htmlEntityDescPtr">htmlEntityDescPtr</a> if found, NULL otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlEntityValueLookup"/>htmlEntityValueLookup ()</h3><pre class="programlisting">const <a href="libxml2-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * htmlEntityValueLookup (unsigned int value)<br/>
+</pre><p>Lookup the given entity in EntitiesTable TODO: the linear scan is really ugly, an hash table is really needed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the entity's unicode value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the associated <a href="libxml2-HTMLparser.html#htmlEntityDescPtr">htmlEntityDescPtr</a> if found, NULL otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlFreeParserCtxt"/>htmlFreeParserCtxt ()</h3><pre class="programlisting">void htmlFreeParserCtxt (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlHandleOmittedElem"/>htmlHandleOmittedElem ()</h3><pre class="programlisting">int htmlHandleOmittedElem (int val)<br/>
+</pre><p>Set and return the previous value for handling HTML omitted tags.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no handling, 1 for auto insertion.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlIsAutoClosed"/>htmlIsAutoClosed ()</h3><pre class="programlisting">int htmlIsAutoClosed (<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br/> <a href="libxml2-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> elem)<br/>
+</pre><p>The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if a tag is autoclosed by one of it's child</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the HTML document</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the HTML element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if autoclosed, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlIsScriptAttribute"/>htmlIsScriptAttribute ()</h3><pre class="programlisting">int htmlIsScriptAttribute (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Check if an <a href="libxml2-SAX.html#attribute">attribute</a> is of content type Script</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>an <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 is the <a href="libxml2-SAX.html#attribute">attribute</a> is a script 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlNewParserCtxt"/>htmlNewParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> htmlNewParserCtxt (void)<br/>
+</pre><p>Allocate and initialize a new parser context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> or NULL in case of allocation error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlNodeStatus"/>htmlNodeStatus ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlStatus">htmlStatus</a> htmlNodeStatus (const <a href="libxml2-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> node, <br/> int legacy)<br/>
+</pre><p>Checks whether the tree node is valid. Experimental (the author only uses the HTML enhancements in a SAX parser)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>an <a href="libxml2-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> in a tree</td></tr><tr><td><span class="term"><i><tt>legacy</tt></i>:</span></td><td>whether to allow deprecated elements (YES is faster here for Element nodes)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>for Element nodes, a return from <a href="libxml2-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a> (if legacy allowed) or <a href="libxml2-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a> (otherwise). for Attribute nodes, a return from <a href="libxml2-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a> for other nodes, <a href="libxml2-HTMLparser.html#HTML_NA">HTML_NA</a> (no checks performed)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParseCharRef"/>htmlParseCharRef ()</h3><pre class="programlisting">int htmlParseCharRef (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse Reference declarations [66] CharRef ::= '&amp;#' [0-9]+ ';' | '&amp;#x' [0-9a-fA-F]+ ';'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value parsed (as an int)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParseChunk"/>htmlParseChunk ()</h3><pre class="programlisting">int htmlParseChunk (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const char * chunk, <br/> int size, <br/> int terminate)<br/>
+</pre><p>Parse a Chunk of memory</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml2-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParseDoc"/>htmlParseDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlParseDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding)<br/>
+</pre><p>parse an HTML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParseDocument"/>htmlParseDocument ()</h3><pre class="programlisting">int htmlParseDocument (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an HTML document (and build a tree if using the standard SAX interface).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0, -1 in case of error. the parser context is augmented as a result of the parsing.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParseElement"/>htmlParseElement ()</h3><pre class="programlisting">void htmlParseElement (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an HTML element, this is highly recursive this is kept for compatibility with previous code versions [39] element ::= EmptyElemTag | STag content ETag [41] Attribute ::= Name Eq AttValue</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParseEntityRef"/>htmlParseEntityRef ()</h3><pre class="programlisting">const <a href="libxml2-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * htmlParseEntityRef (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** str)<br/>
+</pre><p>parse an HTML ENTITY references [68] EntityRef ::= '&amp;' Name ';'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>location to store the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the associated <a href="libxml2-HTMLparser.html#htmlEntityDescPtr">htmlEntityDescPtr</a> if found, or NULL otherwise, if non-NULL *str will have to be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParseFile"/>htmlParseFile ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlParseFile (const char * filename, <br/> const char * encoding)<br/>
+</pre><p>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlReadDoc"/>htmlReadDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlReadFd"/>htmlReadFd ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadFd (int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML from a file descriptor and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlReadFile"/>htmlReadFile ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadFile (const char * filename, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML file from the filesystem or the network.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlReadIO"/>htmlReadIO ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadIO (<a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an HTML document from I/O functions and source and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlReadMemory"/>htmlReadMemory ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadMemory (const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlSAXParseDoc"/>htmlSAXParseDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlSAXParseDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding, <br/> <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/> void * userData)<br/>
+</pre><p>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree unless SAX is NULL or the document is not well formed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlSAXParseFile"/>htmlSAXParseFile ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlSAXParseFile (const char * filename, <br/> const char * encoding, <br/> <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/> void * userData)<br/>
+</pre><p>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree unless SAX is NULL or the document is not well formed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlTagLookup"/>htmlTagLookup ()</h3><pre class="programlisting">const <a href="libxml2-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * htmlTagLookup (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * tag)<br/>
+</pre><p>Lookup the HTML tag in the ElementTable</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tag</tt></i>:</span></td><td>The tag name in lowercase</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the related <a href="libxml2-HTMLparser.html#htmlElemDescPtr">htmlElemDescPtr</a> or NULL if not found.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-HTMLtree.html b/libxml2-2.9.10/doc/devhelp/libxml2-HTMLtree.html
new file mode 100644
index 0000000..f170340
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-HTMLtree.html
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>HTMLtree: specific APIs to process HTML tree, especially serialization</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-HTMLparser.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-SAX.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">HTMLtree</span>
+ </h2>
+ <p>HTMLtree - specific APIs to process HTML tree, especially serialization</p>
+ <p>this module implements a few function needed to process tree in an HTML specific way. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a>;
+#define <a href="#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a>;
+#define <a href="#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a>;
+#define <a href="#HTML_TEXT_NODE">HTML_TEXT_NODE</a>;
+#define <a href="#HTML_PI_NODE">HTML_PI_NODE</a>;
+int <a href="#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a> (FILE * out, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const char * encoding, <br/> int format);
+void <a href="#htmlDocDumpMemory">htmlDocDumpMemory</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br/> int * size);
+int <a href="#htmlSaveFile">htmlSaveFile</a> (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur);
+int <a href="#htmlDocDump">htmlDocDump</a> (FILE * f, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur);
+void <a href="#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br/> int * size, <br/> int format);
+int <a href="#htmlIsBooleanAttr">htmlIsBooleanAttr</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#htmlSaveFileFormat">htmlSaveFileFormat</a> (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding, <br/> int format);
+void <a href="#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const char * encoding, <br/> int format);
+int <a href="#htmlSetMetaEncoding">htmlSetMetaEncoding</a> (<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * encoding);
+int <a href="#htmlSaveFileEnc">htmlSaveFileEnc</a> (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding);
+void <a href="#htmlNodeDumpOutput">htmlNodeDumpOutput</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const char * encoding);
+int <a href="#htmlNodeDump">htmlNodeDump</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlNewDoc">htmlNewDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#htmlGetMetaEncoding">htmlGetMetaEncoding</a> (<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc);
+void <a href="#htmlNodeDumpFile">htmlNodeDumpFile</a> (FILE * out, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+void <a href="#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding, <br/> int format);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlNewDocNoDtD">htmlNewDocNoDtD</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID);
+void <a href="#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="HTML_COMMENT_NODE">Macro </a>HTML_COMMENT_NODE</h3><pre class="programlisting">#define <a href="#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a>;
+</pre><p>Macro. A <a href="libxml2-SAX.html#comment">comment</a> in a HTML document is really implemented the same way as a <a href="libxml2-SAX.html#comment">comment</a> in an XML document.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="HTML_ENTITY_REF_NODE">Macro </a>HTML_ENTITY_REF_NODE</h3><pre class="programlisting">#define <a href="#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a>;
+</pre><p>Macro. An entity <a href="libxml2-SAX.html#reference">reference</a> in a HTML document is really implemented the same way as an entity <a href="libxml2-SAX.html#reference">reference</a> in an XML document.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="HTML_PI_NODE">Macro </a>HTML_PI_NODE</h3><pre class="programlisting">#define <a href="#HTML_PI_NODE">HTML_PI_NODE</a>;
+</pre><p>Macro. A processing instruction in a HTML document is really implemented the same way as a processing instruction in an XML document.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="HTML_PRESERVE_NODE">Macro </a>HTML_PRESERVE_NODE</h3><pre class="programlisting">#define <a href="#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a>;
+</pre><p>Macro. A preserved node in a HTML document is really implemented the same way as a CDATA section in an XML document.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="HTML_TEXT_NODE">Macro </a>HTML_TEXT_NODE</h3><pre class="programlisting">#define <a href="#HTML_TEXT_NODE">HTML_TEXT_NODE</a>;
+</pre><p>Macro. A text node in a HTML document is really implemented the same way as a text node in an XML document.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlDocContentDumpFormatOutput"/>htmlDocContentDumpFormatOutput ()</h3><pre class="programlisting">void htmlDocContentDumpFormatOutput (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding, <br/> int format)<br/>
+</pre><p>Dump an HTML document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the HTML buffer output</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding string</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlDocContentDumpOutput"/>htmlDocContentDumpOutput ()</h3><pre class="programlisting">void htmlDocContentDumpOutput (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding)<br/>
+</pre><p>Dump an HTML document. Formatting return/spaces are added.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the HTML buffer output</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding string</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlDocDump"/>htmlDocDump ()</h3><pre class="programlisting">int htmlDocDump (FILE * f, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br/>
+</pre><p>Dump an HTML document to an open FILE.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the FILE*</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlDocDumpMemory"/>htmlDocDumpMemory ()</h3><pre class="programlisting">void htmlDocDumpMemory (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br/> int * size)<br/>
+</pre><p>Dump an HTML document in memory and return the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * and it's size. It's up to the caller to free the memory.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>OUT: the memory pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>OUT: the memory length</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlDocDumpMemoryFormat"/>htmlDocDumpMemoryFormat ()</h3><pre class="programlisting">void htmlDocDumpMemoryFormat (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br/> int * size, <br/> int format)<br/>
+</pre><p>Dump an HTML document in memory and return the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * and it's size. It's up to the caller to free the memory.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>OUT: the memory pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>OUT: the memory length</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlGetMetaEncoding"/>htmlGetMetaEncoding ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * htmlGetMetaEncoding (<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc)<br/>
+</pre><p>Encoding definition lookup in the Meta tags</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current encoding as flagged in the HTML source</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlIsBooleanAttr"/>htmlIsBooleanAttr ()</h3><pre class="programlisting">int htmlIsBooleanAttr (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Determine if a given <a href="libxml2-SAX.html#attribute">attribute</a> is a boolean attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the <a href="libxml2-SAX.html#attribute">attribute</a> to check</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>false if the <a href="libxml2-SAX.html#attribute">attribute</a> is not boolean, true otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlNewDoc"/>htmlNewDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlNewDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID)<br/>
+</pre><p>Creates a new HTML document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>URI for the dtd, or NULL</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID of the DTD, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new document</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlNewDocNoDtD"/>htmlNewDocNoDtD ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlNewDocNoDtD (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID)<br/>
+</pre><p>Creates a new HTML document without a DTD node if @URI and @ExternalID are NULL</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>URI for the dtd, or NULL</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID of the DTD, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new document, do not initialize the DTD if not provided</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlNodeDump"/>htmlNodeDump ()</h3><pre class="programlisting">int htmlNodeDump (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns are added.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the HTML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlNodeDumpFile"/>htmlNodeDumpFile ()</h3><pre class="programlisting">void htmlNodeDumpFile (FILE * out, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns are added.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the FILE pointer</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlNodeDumpFileFormat"/>htmlNodeDumpFileFormat ()</h3><pre class="programlisting">int htmlNodeDumpFileFormat (FILE * out, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const char * encoding, <br/> int format)<br/>
+</pre><p>Dump an HTML node, recursive behaviour,children are printed too. TODO: if encoding == NULL try to save in the doc encoding</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the FILE pointer</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlNodeDumpFormatOutput"/>htmlNodeDumpFormatOutput ()</h3><pre class="programlisting">void htmlNodeDumpFormatOutput (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const char * encoding, <br/> int format)<br/>
+</pre><p>Dump an HTML node, recursive behaviour,children are printed too.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the HTML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding string</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlNodeDumpOutput"/>htmlNodeDumpOutput ()</h3><pre class="programlisting">void htmlNodeDumpOutput (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const char * encoding)<br/>
+</pre><p>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns/spaces are added.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the HTML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding string</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlSaveFile"/>htmlSaveFile ()</h3><pre class="programlisting">int htmlSaveFile (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br/>
+</pre><p>Dump an HTML document to a file. If @filename is "-" the stdout file is used.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename (or URL)</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlSaveFileEnc"/>htmlSaveFileEnc ()</h3><pre class="programlisting">int htmlSaveFileEnc (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding)<br/>
+</pre><p>Dump an HTML document to a file using a given encoding and formatting returns/spaces are added.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlSaveFileFormat"/>htmlSaveFileFormat ()</h3><pre class="programlisting">int htmlSaveFileFormat (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding, <br/> int format)<br/>
+</pre><p>Dump an HTML document to a file using a given encoding.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlSetMetaEncoding"/>htmlSetMetaEncoding ()</h3><pre class="programlisting">int htmlSetMetaEncoding (<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * encoding)<br/>
+</pre><p>Sets the current encoding in the Meta tags NOTE: this will not change the document content encoding, just the META flag associated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-SAX.html b/libxml2-2.9.10/doc/devhelp/libxml2-SAX.html
new file mode 100644
index 0000000..5163b7b
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-SAX.html
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>SAX: Old SAX version 1 handler, deprecated</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-HTMLtree.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-SAX2.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">SAX</span>
+ </h2>
+ <p>SAX - Old SAX version 1 handler, deprecated</p>
+ <p>DEPRECATED set of SAX version 1 interfaces used to build the DOM tree. </p>
+ <p> WARNING: this module is deprecated !</p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">void <a href="#comment">comment</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#checkNamespace">checkNamespace</a> (void * ctx, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespace);
+int <a href="#getColumnNumber">getColumnNumber</a> (void * ctx);
+void <a href="#entityDecl">entityDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+void <a href="#attribute">attribute</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#getNamespace">getNamespace</a> (void * ctx);
+void <a href="#setDocumentLocator">setDocumentLocator</a> (void * ctx, <br/> <a href="libxml2-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc);
+void <a href="#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a> (<a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr, <br/> int warning);
+void <a href="#ignorableWhitespace">ignorableWhitespace</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len);
+int <a href="#hasExternalSubset">hasExternalSubset</a> (void * ctx);
+void <a href="#unparsedEntityDecl">unparsedEntityDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * notationName);
+void <a href="#globalNamespace">globalNamespace</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix);
+int <a href="#hasInternalSubset">hasInternalSubset</a> (void * ctx);
+void <a href="#reference">reference</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#notationDecl">notationDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#getSystemId">getSystemId</a> (void * ctx);
+void <a href="#externalSubset">externalSubset</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#resolveEntity">resolveEntity</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId);
+void <a href="#startDocument">startDocument</a> (void * ctx);
+void <a href="#setNamespace">setNamespace</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#cdataBlock">cdataBlock</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int len);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#getPublicId">getPublicId</a> (void * ctx);
+void <a href="#inithtmlDefaultSAXHandler">inithtmlDefaultSAXHandler</a> (<a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr);
+void <a href="#processingInstruction">processingInstruction</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * data);
+void <a href="#endElement">endElement</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#namespaceDecl">namespaceDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix);
+void <a href="#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a> (<a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#getEntity">getEntity</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#characters">characters</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len);
+void <a href="#elementDecl">elementDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);
+void <a href="#startElement">startElement</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** atts);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#getParameterEntity">getParameterEntity</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#attributeDecl">attributeDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> int type, <br/> int def, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);
+int <a href="#isStandalone">isStandalone</a> (void * ctx);
+void <a href="#internalSubset">internalSubset</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+void <a href="#endDocument">endDocument</a> (void * ctx);
+int <a href="#getLineNumber">getLineNumber</a> (void * ctx);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="attribute"/>attribute ()</h3><pre class="programlisting">void attribute (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Handle an <a href="libxml2-SAX.html#attribute">attribute</a> that has been read by the parser. The default handling is to convert the <a href="libxml2-SAX.html#attribute">attribute</a> into an DOM subtree and past it in a new <a href="libxml2-tree.html#xmlAttr">xmlAttr</a> element added to the element. DEPRECATED: use xmlSAX2Attribute()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>The <a href="libxml2-SAX.html#attribute">attribute</a> name, including namespace prefix</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>The <a href="libxml2-SAX.html#attribute">attribute</a> value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="attributeDecl"/>attributeDecl ()</h3><pre class="programlisting">void attributeDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> int type, <br/> int def, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)<br/>
+</pre><p>An <a href="libxml2-SAX.html#attribute">attribute</a> definition has been parsed DEPRECATED: use xmlSAX2AttributeDecl()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> type</td></tr><tr><td><span class="term"><i><tt>def</tt></i>:</span></td><td>the type of default value</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> default value</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the tree of enumerated value set</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="cdataBlock"/>cdataBlock ()</h3><pre class="programlisting">void cdataBlock (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int len)<br/>
+</pre><p>called when a pcdata block has been parsed DEPRECATED: use xmlSAX2CDataBlock()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>The pcdata content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the block length</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="characters"/>characters ()</h3><pre class="programlisting">void characters (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len)<br/>
+</pre><p>receiving some chars from the parser. DEPRECATED: use xmlSAX2Characters()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="checkNamespace"/>checkNamespace ()</h3><pre class="programlisting">int checkNamespace (void * ctx, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespace)<br/>
+</pre><p>Check that the current element namespace is the same as the one read upon parsing. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>namespace</tt></i>:</span></td><td>the namespace to check against</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="comment"/>comment ()</h3><pre class="programlisting">void comment (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>A <a href="libxml2-SAX.html#comment">comment</a> has been parsed. DEPRECATED: use xmlSAX2Comment()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#comment">comment</a> content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="elementDecl"/>elementDecl ()</h3><pre class="programlisting">void elementDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)<br/>
+</pre><p>An element definition has been parsed DEPRECATED: use xmlSAX2ElementDecl()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the element type</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the element value tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="endDocument"/>endDocument ()</h3><pre class="programlisting">void endDocument (void * ctx)<br/>
+</pre><p>called when the document end has been detected. DEPRECATED: use xmlSAX2EndDocument()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="endElement"/>endElement ()</h3><pre class="programlisting">void endElement (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>called when the end of an element has been detected. DEPRECATED: use xmlSAX2EndElement()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The element name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="entityDecl"/>entityDecl ()</h3><pre class="programlisting">void entityDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>An entity definition has been parsed DEPRECATED: use xmlSAX2EntityDecl()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity value (without processing).</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="externalSubset"/>externalSubset ()</h3><pre class="programlisting">void externalSubset (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Callback on external subset declaration. DEPRECATED: use xmlSAX2ExternalSubset()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="getColumnNumber"/>getColumnNumber ()</h3><pre class="programlisting">int getColumnNumber (void * ctx)<br/>
+</pre><p>Provide the column number of the current parsing point. DEPRECATED: use xmlSAX2GetColumnNumber()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="getEntity"/>getEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> getEntity (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Get an entity by name DEPRECATED: use xmlSAX2GetEntity()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="getLineNumber"/>getLineNumber ()</h3><pre class="programlisting">int getLineNumber (void * ctx)<br/>
+</pre><p>Provide the line number of the current parsing point. DEPRECATED: use xmlSAX2GetLineNumber()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="getNamespace"/>getNamespace ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> getNamespace (void * ctx)<br/>
+</pre><p>Get the current element namespace. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> or NULL if none</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="getParameterEntity"/>getParameterEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> getParameterEntity (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Get a parameter entity by name DEPRECATED: use xmlSAX2GetParameterEntity()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="getPublicId"/>getPublicId ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * getPublicId (void * ctx)<br/>
+</pre><p>Provides the public ID e.g. "-//SGMLSOURCE//DTD DEMO//EN" DEPRECATED: use xmlSAX2GetPublicId()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="getSystemId"/>getSystemId ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * getSystemId (void * ctx)<br/>
+</pre><p>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd DEPRECATED: use xmlSAX2GetSystemId()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="globalNamespace"/>globalNamespace ()</h3><pre class="programlisting">void globalNamespace (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br/>
+</pre><p>An old global namespace has been parsed. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the namespace associated URN</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="hasExternalSubset"/>hasExternalSubset ()</h3><pre class="programlisting">int hasExternalSubset (void * ctx)<br/>
+</pre><p>Does this document has an external subset DEPRECATED: use xmlSAX2HasExternalSubset()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="hasInternalSubset"/>hasInternalSubset ()</h3><pre class="programlisting">int hasInternalSubset (void * ctx)<br/>
+</pre><p>Does this document has an internal subset DEPRECATED: use xmlSAX2HasInternalSubset()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="ignorableWhitespace"/>ignorableWhitespace ()</h3><pre class="programlisting">void ignorableWhitespace (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len)<br/>
+</pre><p>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use <a href="libxml2-SAX.html#characters">characters</a> DEPRECATED: use xmlSAX2IgnorableWhitespace()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="initdocbDefaultSAXHandler"/>initdocbDefaultSAXHandler ()</h3><pre class="programlisting">void initdocbDefaultSAXHandler (<a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr)<br/>
+</pre><p>Initialize the default DocBook SAX version 1 handler DEPRECATED: use xmlSAX2InitDocbDefaultSAXHandler() for the new SAX2 blocks</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="inithtmlDefaultSAXHandler"/>inithtmlDefaultSAXHandler ()</h3><pre class="programlisting">void inithtmlDefaultSAXHandler (<a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr)<br/>
+</pre><p>Initialize the default HTML SAX version 1 handler DEPRECATED: use xmlSAX2InitHtmlDefaultSAXHandler() for the new SAX2 blocks</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="initxmlDefaultSAXHandler"/>initxmlDefaultSAXHandler ()</h3><pre class="programlisting">void initxmlDefaultSAXHandler (<a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr, <br/> int warning)<br/>
+</pre><p>Initialize the default XML SAX version 1 handler DEPRECATED: use xmlSAX2InitDefaultSAXHandler() for the new SAX2 blocks</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr><tr><td><span class="term"><i><tt>warning</tt></i>:</span></td><td>flag if non-zero sets the handler warning procedure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="internalSubset"/>internalSubset ()</h3><pre class="programlisting">void internalSubset (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Callback on internal subset declaration. DEPRECATED: use xmlSAX2InternalSubset()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="isStandalone"/>isStandalone ()</h3><pre class="programlisting">int isStandalone (void * ctx)<br/>
+</pre><p>Is this document tagged standalone ? DEPRECATED: use xmlSAX2IsStandalone()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="namespaceDecl"/>namespaceDecl ()</h3><pre class="programlisting">void namespaceDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br/>
+</pre><p>A namespace has been parsed. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the namespace associated URN</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="notationDecl"/>notationDecl ()</h3><pre class="programlisting">void notationDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId)<br/>
+</pre><p>What to do when a notation declaration has been parsed. DEPRECATED: use xmlSAX2NotationDecl()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the notation</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="processingInstruction"/>processingInstruction ()</h3><pre class="programlisting">void processingInstruction (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * data)<br/>
+</pre><p>A processing instruction has been parsed. DEPRECATED: use xmlSAX2ProcessingInstruction()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the target name</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the PI data's</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="reference"/>reference ()</h3><pre class="programlisting">void reference (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>called when an entity <a href="libxml2-SAX.html#reference">reference</a> is detected. DEPRECATED: use xmlSAX2Reference()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="resolveEntity"/>resolveEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> resolveEntity (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId)<br/>
+</pre><p>The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it's own entity resolution routine DEPRECATED: use xmlSAX2ResolveEntity()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> if inlined or NULL for DOM behaviour.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="setDocumentLocator"/>setDocumentLocator ()</h3><pre class="programlisting">void setDocumentLocator (void * ctx, <br/> <a href="libxml2-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc)<br/>
+</pre><p>Receive the document locator at startup, actually <a href="libxml2-globals.html#xmlDefaultSAXLocator">xmlDefaultSAXLocator</a> Everything is available on the context, so this is useless in our case. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>loc</tt></i>:</span></td><td>A SAX Locator</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="setNamespace"/>setNamespace ()</h3><pre class="programlisting">void setNamespace (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Set the current element namespace. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the namespace prefix</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="startDocument"/>startDocument ()</h3><pre class="programlisting">void startDocument (void * ctx)<br/>
+</pre><p>called when the document start being processed. DEPRECATED: use xmlSAX2StartDocument()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="startElement"/>startElement ()</h3><pre class="programlisting">void startElement (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** atts)<br/>
+</pre><p>called when an opening tag has been processed. DEPRECATED: use xmlSAX2StartElement()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>The element name, including namespace prefix</td></tr><tr><td><span class="term"><i><tt>atts</tt></i>:</span></td><td>An array of name/value attributes pairs, NULL terminated</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="unparsedEntityDecl"/>unparsedEntityDecl ()</h3><pre class="programlisting">void unparsedEntityDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * notationName)<br/>
+</pre><p>What to do when an unparsed entity declaration is parsed DEPRECATED: use xmlSAX2UnparsedEntityDecl()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the entity</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i>:</span></td><td>the name of the notation</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-SAX2.html b/libxml2-2.9.10/doc/devhelp/libxml2-SAX2.html
new file mode 100644
index 0000000..e80199e
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-SAX2.html
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>SAX2: SAX2 parser interface used to build the DOM tree</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-SAX.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-c14n.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">SAX2</span>
+ </h2>
+ <p>SAX2 - SAX2 parser interface used to build the DOM tree</p>
+ <p>those are the default SAX2 interfaces used by the library when building DOM tree. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">void <a href="#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI);
+void <a href="#xmlSAX2Reference">xmlSAX2Reference</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#xmlSAX2ElementDecl">xmlSAX2ElementDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);
+void <a href="#xmlSAX2AttributeDecl">xmlSAX2AttributeDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> int type, <br/> int def, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);
+void <a href="#xmlSAX2Comment">xmlSAX2Comment</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlSAX2GetColumnNumber">xmlSAX2GetColumnNumber</a> (void * ctx);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlSAX2GetEntity">xmlSAX2GetEntity</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#xmlSAX2UnparsedEntityDecl">xmlSAX2UnparsedEntityDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * notationName);
+void <a href="#xmlSAX2InitDocbDefaultSAXHandler">xmlSAX2InitDocbDefaultSAXHandler</a> (<a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr);
+int <a href="#xmlSAXVersion">xmlSAXVersion</a> (<a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr, <br/> int version);
+void <a href="#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len);
+void <a href="#xmlSAX2NotationDecl">xmlSAX2NotationDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId);
+void <a href="#xmlSAX2StartDocument">xmlSAX2StartDocument</a> (void * ctx);
+void <a href="#xmlSAX2EndElement">xmlSAX2EndElement</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId);
+void <a href="#xmlSAX2ExternalSubset">xmlSAX2ExternalSubset</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSAX2GetPublicId">xmlSAX2GetPublicId</a> (void * ctx);
+int <a href="#xmlSAX2IsStandalone">xmlSAX2IsStandalone</a> (void * ctx);
+void <a href="#xmlSAX2EndDocument">xmlSAX2EndDocument</a> (void * ctx);
+void <a href="#xmlSAX2ProcessingInstruction">xmlSAX2ProcessingInstruction</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * data);
+void <a href="#xmlSAX2InternalSubset">xmlSAX2InternalSubset</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+void <a href="#xmlSAX2Characters">xmlSAX2Characters</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len);
+int <a href="#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a> (int version);
+void <a href="#xmlSAX2StartElement">xmlSAX2StartElement</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** atts);
+void <a href="#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a> (void * ctx, <br/> <a href="libxml2-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc);
+void <a href="#xmlSAX2CDataBlock">xmlSAX2CDataBlock</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int len);
+void <a href="#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> int nb_namespaces, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces, <br/> int nb_attributes, <br/> int nb_defaulted, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** attributes);
+int <a href="#xmlSAX2HasExternalSubset">xmlSAX2HasExternalSubset</a> (void * ctx);
+void <a href="#htmlDefaultSAXHandlerInit">htmlDefaultSAXHandlerInit</a> (void);
+int <a href="#xmlSAX2GetLineNumber">xmlSAX2GetLineNumber</a> (void * ctx);
+int <a href="#xmlSAX2HasInternalSubset">xmlSAX2HasInternalSubset</a> (void * ctx);
+void <a href="#xmlSAX2InitHtmlDefaultSAXHandler">xmlSAX2InitHtmlDefaultSAXHandler</a> (<a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr);
+void <a href="#docbDefaultSAXHandlerInit">docbDefaultSAXHandlerInit</a> (void);
+void <a href="#xmlDefaultSAXHandlerInit">xmlDefaultSAXHandlerInit</a> (void);
+void <a href="#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a> (<a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr, <br/> int warning);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlSAX2GetParameterEntity">xmlSAX2GetParameterEntity</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a> (void * ctx);
+void <a href="#xmlSAX2EntityDecl">xmlSAX2EntityDecl</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="docbDefaultSAXHandlerInit"/>docbDefaultSAXHandlerInit ()</h3><pre class="programlisting">void docbDefaultSAXHandlerInit (void)<br/>
+</pre><p>Initialize the default SAX handler</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlDefaultSAXHandlerInit"/>htmlDefaultSAXHandlerInit ()</h3><pre class="programlisting">void htmlDefaultSAXHandlerInit (void)<br/>
+</pre><p>Initialize the default SAX handler</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDefaultSAXHandlerInit"/>xmlDefaultSAXHandlerInit ()</h3><pre class="programlisting">void xmlDefaultSAXHandlerInit (void)<br/>
+</pre><p>Initialize the default SAX2 handler</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2AttributeDecl"/>xmlSAX2AttributeDecl ()</h3><pre class="programlisting">void xmlSAX2AttributeDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> int type, <br/> int def, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)<br/>
+</pre><p>An <a href="libxml2-SAX.html#attribute">attribute</a> definition has been parsed</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> type</td></tr><tr><td><span class="term"><i><tt>def</tt></i>:</span></td><td>the type of default value</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> default value</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the tree of enumerated value set</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2CDataBlock"/>xmlSAX2CDataBlock ()</h3><pre class="programlisting">void xmlSAX2CDataBlock (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int len)<br/>
+</pre><p>called when a pcdata block has been parsed</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>The pcdata content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the block length</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2Characters"/>xmlSAX2Characters ()</h3><pre class="programlisting">void xmlSAX2Characters (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len)<br/>
+</pre><p>receiving some chars from the parser.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2Comment"/>xmlSAX2Comment ()</h3><pre class="programlisting">void xmlSAX2Comment (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>A <a href="libxml2-SAX2.html#xmlSAX2Comment">xmlSAX2Comment</a> has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml2-SAX2.html#xmlSAX2Comment">xmlSAX2Comment</a> content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2ElementDecl"/>xmlSAX2ElementDecl ()</h3><pre class="programlisting">void xmlSAX2ElementDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)<br/>
+</pre><p>An element definition has been parsed</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the element type</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the element value tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2EndDocument"/>xmlSAX2EndDocument ()</h3><pre class="programlisting">void xmlSAX2EndDocument (void * ctx)<br/>
+</pre><p>called when the document end has been detected.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2EndElement"/>xmlSAX2EndElement ()</h3><pre class="programlisting">void xmlSAX2EndElement (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>called when the end of an element has been detected.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The element name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2EndElementNs"/>xmlSAX2EndElementNs ()</h3><pre class="programlisting">void xmlSAX2EndElementNs (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI)<br/>
+</pre><p>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>localname</tt></i>:</span></td><td>the local name of the element</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the element namespace prefix if available</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace name if available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2EntityDecl"/>xmlSAX2EntityDecl ()</h3><pre class="programlisting">void xmlSAX2EntityDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>An entity definition has been parsed</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity value (without processing).</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2ExternalSubset"/>xmlSAX2ExternalSubset ()</h3><pre class="programlisting">void xmlSAX2ExternalSubset (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Callback on external subset declaration.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2GetColumnNumber"/>xmlSAX2GetColumnNumber ()</h3><pre class="programlisting">int xmlSAX2GetColumnNumber (void * ctx)<br/>
+</pre><p>Provide the column number of the current parsing point.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2GetEntity"/>xmlSAX2GetEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlSAX2GetEntity (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Get an entity by name</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2GetLineNumber"/>xmlSAX2GetLineNumber ()</h3><pre class="programlisting">int xmlSAX2GetLineNumber (void * ctx)<br/>
+</pre><p>Provide the line number of the current parsing point.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2GetParameterEntity"/>xmlSAX2GetParameterEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlSAX2GetParameterEntity (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Get a parameter entity by name</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2GetPublicId"/>xmlSAX2GetPublicId ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSAX2GetPublicId (void * ctx)<br/>
+</pre><p>Provides the public ID e.g. "-//SGMLSOURCE//DTD DEMO//EN"</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2GetSystemId"/>xmlSAX2GetSystemId ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSAX2GetSystemId (void * ctx)<br/>
+</pre><p>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2HasExternalSubset"/>xmlSAX2HasExternalSubset ()</h3><pre class="programlisting">int xmlSAX2HasExternalSubset (void * ctx)<br/>
+</pre><p>Does this document has an external subset</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2HasInternalSubset"/>xmlSAX2HasInternalSubset ()</h3><pre class="programlisting">int xmlSAX2HasInternalSubset (void * ctx)<br/>
+</pre><p>Does this document has an internal subset</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2IgnorableWhitespace"/>xmlSAX2IgnorableWhitespace ()</h3><pre class="programlisting">void xmlSAX2IgnorableWhitespace (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len)<br/>
+</pre><p>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use <a href="libxml2-SAX2.html#xmlSAX2Characters">xmlSAX2Characters</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2InitDefaultSAXHandler"/>xmlSAX2InitDefaultSAXHandler ()</h3><pre class="programlisting">void xmlSAX2InitDefaultSAXHandler (<a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr, <br/> int warning)<br/>
+</pre><p>Initialize the default XML SAX2 handler</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr><tr><td><span class="term"><i><tt>warning</tt></i>:</span></td><td>flag if non-zero sets the handler warning procedure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2InitDocbDefaultSAXHandler"/>xmlSAX2InitDocbDefaultSAXHandler ()</h3><pre class="programlisting">void xmlSAX2InitDocbDefaultSAXHandler (<a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr)<br/>
+</pre><p>Initialize the default DocBook SAX2 handler</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2InitHtmlDefaultSAXHandler"/>xmlSAX2InitHtmlDefaultSAXHandler ()</h3><pre class="programlisting">void xmlSAX2InitHtmlDefaultSAXHandler (<a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr)<br/>
+</pre><p>Initialize the default HTML SAX2 handler</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2InternalSubset"/>xmlSAX2InternalSubset ()</h3><pre class="programlisting">void xmlSAX2InternalSubset (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Callback on internal subset declaration.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2IsStandalone"/>xmlSAX2IsStandalone ()</h3><pre class="programlisting">int xmlSAX2IsStandalone (void * ctx)<br/>
+</pre><p>Is this document tagged standalone ?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2NotationDecl"/>xmlSAX2NotationDecl ()</h3><pre class="programlisting">void xmlSAX2NotationDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId)<br/>
+</pre><p>What to do when a notation declaration has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the notation</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2ProcessingInstruction"/>xmlSAX2ProcessingInstruction ()</h3><pre class="programlisting">void xmlSAX2ProcessingInstruction (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * data)<br/>
+</pre><p>A processing instruction has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the target name</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the PI data's</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2Reference"/>xmlSAX2Reference ()</h3><pre class="programlisting">void xmlSAX2Reference (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>called when an entity <a href="libxml2-SAX2.html#xmlSAX2Reference">xmlSAX2Reference</a> is detected.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2ResolveEntity"/>xmlSAX2ResolveEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlSAX2ResolveEntity (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId)<br/>
+</pre><p>The entity loader, to control the loading of external entities, the application can either: - override this xmlSAX2ResolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it's own entity resolution routine</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> if inlined or NULL for DOM behaviour.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2SetDocumentLocator"/>xmlSAX2SetDocumentLocator ()</h3><pre class="programlisting">void xmlSAX2SetDocumentLocator (void * ctx, <br/> <a href="libxml2-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc)<br/>
+</pre><p>Receive the document locator at startup, actually <a href="libxml2-globals.html#xmlDefaultSAXLocator">xmlDefaultSAXLocator</a> Everything is available on the context, so this is useless in our case.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>loc</tt></i>:</span></td><td>A SAX Locator</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2StartDocument"/>xmlSAX2StartDocument ()</h3><pre class="programlisting">void xmlSAX2StartDocument (void * ctx)<br/>
+</pre><p>called when the document start being processed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2StartElement"/>xmlSAX2StartElement ()</h3><pre class="programlisting">void xmlSAX2StartElement (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** atts)<br/>
+</pre><p>called when an opening tag has been processed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>The element name, including namespace prefix</td></tr><tr><td><span class="term"><i><tt>atts</tt></i>:</span></td><td>An array of name/value attributes pairs, NULL terminated</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2StartElementNs"/>xmlSAX2StartElementNs ()</h3><pre class="programlisting">void xmlSAX2StartElementNs (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> int nb_namespaces, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces, <br/> int nb_attributes, <br/> int nb_defaulted, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** attributes)<br/>
+</pre><p>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>localname</tt></i>:</span></td><td>the local name of the element</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the element namespace prefix if available</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace name if available</td></tr><tr><td><span class="term"><i><tt>nb_namespaces</tt></i>:</span></td><td>number of namespace definitions on that node</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>pointer to the array of prefix/URI pairs namespace definitions</td></tr><tr><td><span class="term"><i><tt>nb_attributes</tt></i>:</span></td><td>the number of attributes on that node</td></tr><tr><td><span class="term"><i><tt>nb_defaulted</tt></i>:</span></td><td>the number of defaulted attributes.</td></tr><tr><td><span class="term"><i><tt>attributes</tt></i>:</span></td><td>pointer to the array of (localname/prefix/URI/value/end) <a href="libxml2-SAX.html#attribute">attribute</a> values.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAX2UnparsedEntityDecl"/>xmlSAX2UnparsedEntityDecl ()</h3><pre class="programlisting">void xmlSAX2UnparsedEntityDecl (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * notationName)<br/>
+</pre><p>What to do when an unparsed entity declaration is parsed</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the entity</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i>:</span></td><td>the name of the notation</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXDefaultVersion"/>xmlSAXDefaultVersion ()</h3><pre class="programlisting">int xmlSAXDefaultVersion (int version)<br/>
+</pre><p>Set the default version of SAX used globally by the library. By default, during initialization the default is set to 2. Note that it is generally a better coding style to use xmlSAXVersion() to set up the version explicitly for a given parsing context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>version</tt></i>:</span></td><td>the version, 1 or 2</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous value in case of success and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXVersion"/>xmlSAXVersion ()</h3><pre class="programlisting">int xmlSAXVersion (<a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr, <br/> int version)<br/>
+</pre><p>Initialize the default XML SAX handler according to the version</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr><tr><td><span class="term"><i><tt>version</tt></i>:</span></td><td>the version, 1 or 2</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-c14n.html b/libxml2-2.9.10/doc/devhelp/libxml2-c14n.html
new file mode 100644
index 0000000..602d932
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-c14n.html
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>c14n: Provide Canonical XML and Exclusive XML Canonicalization</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-SAX2.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-catalog.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">c14n</span>
+ </h2>
+ <p>c14n - Provide Canonical XML and Exclusive XML Canonicalization</p>
+ <p>the c14n modules provides a "Canonical XML" implementation</p>
+ <p>Author(s): Aleksey Sanin &lt;aleksey@aleksey.com&gt; </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef enum <a href="#xmlC14NMode">xmlC14NMode</a>;
+int <a href="#xmlC14NExecute">xmlC14NExecute</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a> is_visible_callback, <br/> void * user_data, <br/> int mode, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br/> int with_comments, <br/> <a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf);
+int <a href="#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> int mode, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br/> int with_comments, <br/> <a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf);
+typedef int <a href="#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a> (void * user_data, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent);
+int <a href="#xmlC14NDocSave">xmlC14NDocSave</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> int mode, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br/> int with_comments, <br/> const char * filename, <br/> int compression);
+int <a href="#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> int mode, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br/> int with_comments, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlC14NMode">Enum </a>xmlC14NMode</h3><pre class="programlisting">enum <a href="#xmlC14NMode">xmlC14NMode</a> {
+ <a name="XML_C14N_1_0">XML_C14N_1_0</a> = 0 /* Original C14N 1.0 spec */
+ <a name="XML_C14N_EXCLUSIVE_1_0">XML_C14N_EXCLUSIVE_1_0</a> = 1 /* Exclusive C14N 1.0 spec */
+ <a name="XML_C14N_1_1">XML_C14N_1_1</a> = 2 /* C14N 1.1 spec */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlC14NIsVisibleCallback"/>Function type xmlC14NIsVisibleCallback</h3><pre class="programlisting">int xmlC14NIsVisibleCallback (void * user_data, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent)<br/>
+</pre><p>Signature for a C14N callback on visible nodes</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>user data</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the node should be included</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlC14NDocDumpMemory"/>xmlC14NDocDumpMemory ()</h3><pre class="programlisting">int xmlC14NDocDumpMemory (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> int mode, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br/> int with_comments, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr)<br/>
+</pre><p>Dumps the canonized image of given XML document into memory. For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document for canonization</td></tr><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>the nodes set to be included in the canonized image or NULL if all document nodes should be included</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the c14n mode (see @xmlC14NMode)</td></tr><tr><td><span class="term"><i><tt>inclusive_ns_prefixes</tt></i>:</span></td><td>the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)</td></tr><tr><td><span class="term"><i><tt>with_comments</tt></i>:</span></td><td>include comments in the result (!=0) or not (==0)</td></tr><tr><td><span class="term"><i><tt>doc_txt_ptr</tt></i>:</span></td><td>the memory pointer for allocated canonical XML text; the caller of this functions is responsible for calling xmlFree() to free allocated memory</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written on success or a negative value on fail</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlC14NDocSave"/>xmlC14NDocSave ()</h3><pre class="programlisting">int xmlC14NDocSave (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> int mode, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br/> int with_comments, <br/> const char * filename, <br/> int compression)<br/>
+</pre><p>Dumps the canonized image of given XML document into the file. For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document for canonization</td></tr><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>the nodes set to be included in the canonized image or NULL if all document nodes should be included</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the c14n mode (see @xmlC14NMode)</td></tr><tr><td><span class="term"><i><tt>inclusive_ns_prefixes</tt></i>:</span></td><td>the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)</td></tr><tr><td><span class="term"><i><tt>with_comments</tt></i>:</span></td><td>include comments in the result (!=0) or not (==0)</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename to store canonical XML image</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>the compression level (zlib required): -1 - libxml default, 0 - uncompressed, &gt;0 - compression level</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written success or a negative value on fail</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlC14NDocSaveTo"/>xmlC14NDocSaveTo ()</h3><pre class="programlisting">int xmlC14NDocSaveTo (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> int mode, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br/> int with_comments, <br/> <a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf)<br/>
+</pre><p>Dumps the canonized image of given XML document into the provided buffer. For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document for canonization</td></tr><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>the nodes set to be included in the canonized image or NULL if all document nodes should be included</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the c14n mode (see @xmlC14NMode)</td></tr><tr><td><span class="term"><i><tt>inclusive_ns_prefixes</tt></i>:</span></td><td>the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)</td></tr><tr><td><span class="term"><i><tt>with_comments</tt></i>:</span></td><td>include comments in the result (!=0) or not (==0)</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>non-negative value on success or a negative value on fail</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlC14NExecute"/>xmlC14NExecute ()</h3><pre class="programlisting">int xmlC14NExecute (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a> is_visible_callback, <br/> void * user_data, <br/> int mode, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br/> int with_comments, <br/> <a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf)<br/>
+</pre><p>Dumps the canonized image of given XML document into the provided buffer. For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document for canonization</td></tr><tr><td><span class="term"><i><tt>is_visible_callback</tt></i>:</span></td><td>the function to use to determine is node visible or not</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>the first parameter for @is_visible_callback function (in most cases, it is nodes set)</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the c14n mode (see @xmlC14NMode)</td></tr><tr><td><span class="term"><i><tt>inclusive_ns_prefixes</tt></i>:</span></td><td>the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)</td></tr><tr><td><span class="term"><i><tt>with_comments</tt></i>:</span></td><td>include comments in the result (!=0) or not (==0)</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>non-negative value on success or a negative value on fail</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-catalog.html b/libxml2-2.9.10/doc/devhelp/libxml2-catalog.html
new file mode 100644
index 0000000..04dedd8
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-catalog.html
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>catalog: interfaces to the Catalog handling system</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-c14n.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-chvalid.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">catalog</span>
+ </h2>
+ <p>catalog - interfaces to the Catalog handling system</p>
+ <p>the catalog module implements the support for XML Catalogs and SGML catalogs </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#XML_CATALOG_PI">XML_CATALOG_PI</a>;
+#define <a href="#XML_CATALOGS_NAMESPACE">XML_CATALOGS_NAMESPACE</a>;
+typedef enum <a href="#xmlCatalogAllow">xmlCatalogAllow</a>;
+typedef enum <a href="#xmlCatalogPrefer">xmlCatalogPrefer</a>;
+typedef struct _xmlCatalog <a href="#xmlCatalog">xmlCatalog</a>;
+typedef <a href="libxml2-catalog.html#xmlCatalog">xmlCatalog</a> * <a href="#xmlCatalogPtr">xmlCatalogPtr</a>;
+void <a href="#xmlFreeCatalog">xmlFreeCatalog</a> (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal);
+void <a href="#xmlLoadCatalogs">xmlLoadCatalogs</a> (const char * pathss);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a> (void * catalogs, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID);
+int <a href="#xmlACatalogAdd">xmlACatalogAdd</a> (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * orig, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * replace);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlACatalogResolvePublic">xmlACatalogResolvePublic</a> (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID);
+<a href="libxml2-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a> <a href="#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a> (void);
+int <a href="#xmlACatalogRemove">xmlACatalogRemove</a> (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+<a href="libxml2-catalog.html#xmlCatalogPrefer">xmlCatalogPrefer</a> <a href="#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a> (<a href="libxml2-catalog.html#xmlCatalogPrefer">xmlCatalogPrefer</a> prefer);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlACatalogResolveURI">xmlACatalogResolveURI</a> (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI);
+int <a href="#xmlCatalogAdd">xmlCatalogAdd</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * orig, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * replace);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogResolvePublic">xmlCatalogResolvePublic</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogGetSystem">xmlCatalogGetSystem</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID);
+void <a href="#xmlInitializeCatalog">xmlInitializeCatalog</a> (void);
+int <a href="#xmlLoadCatalog">xmlLoadCatalog</a> (const char * filename);
+int <a href="#xmlCatalogRemove">xmlCatalogRemove</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlCatalogIsEmpty">xmlCatalogIsEmpty</a> (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal);
+void <a href="#xmlACatalogDump">xmlACatalogDump</a> (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> FILE * out);
+void <a href="#xmlCatalogFreeLocal">xmlCatalogFreeLocal</a> (void * catalogs);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlACatalogResolve">xmlACatalogResolve</a> (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogResolveSystem">xmlCatalogResolveSystem</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID);
+<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> <a href="#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a> (const char * filename);
+int <a href="#xmlCatalogConvert">xmlCatalogConvert</a> (void);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogGetPublic">xmlCatalogGetPublic</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID);
+<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> <a href="#xmlLoadACatalog">xmlLoadACatalog</a> (const char * filename);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlACatalogResolveSystem">xmlACatalogResolveSystem</a> (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a> (void * catalogs, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI);
+int <a href="#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a> (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal);
+void * <a href="#xmlCatalogAddLocal">xmlCatalogAddLocal</a> (void * catalogs, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URL);
+<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> <a href="#xmlNewCatalog">xmlNewCatalog</a> (int sgml);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseCatalogFile">xmlParseCatalogFile</a> (const char * filename);
+int <a href="#xmlCatalogSetDebug">xmlCatalogSetDebug</a> (int level);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogResolve">xmlCatalogResolve</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID);
+void <a href="#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a> (<a href="libxml2-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a> allow);
+void <a href="#xmlCatalogDump">xmlCatalogDump</a> (FILE * out);
+void <a href="#xmlCatalogCleanup">xmlCatalogCleanup</a> (void);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogResolveURI">xmlCatalogResolveURI</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="XML_CATALOGS_NAMESPACE">Macro </a>XML_CATALOGS_NAMESPACE</h3><pre class="programlisting">#define <a href="#XML_CATALOGS_NAMESPACE">XML_CATALOGS_NAMESPACE</a>;
+</pre><p>The namespace for the XML Catalogs elements.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_CATALOG_PI">Macro </a>XML_CATALOG_PI</h3><pre class="programlisting">#define <a href="#XML_CATALOG_PI">XML_CATALOG_PI</a>;
+</pre><p>The specific XML Catalog Processing Instruction name.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalog">Structure </a>xmlCatalog</h3><pre class="programlisting">struct _xmlCatalog {
+The content of this structure is not made public by the API.
+} xmlCatalog;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogAllow">Enum </a>xmlCatalogAllow</h3><pre class="programlisting">enum <a href="#xmlCatalogAllow">xmlCatalogAllow</a> {
+ <a name="XML_CATA_ALLOW_NONE">XML_CATA_ALLOW_NONE</a> = 0
+ <a name="XML_CATA_ALLOW_GLOBAL">XML_CATA_ALLOW_GLOBAL</a> = 1
+ <a name="XML_CATA_ALLOW_DOCUMENT">XML_CATA_ALLOW_DOCUMENT</a> = 2
+ <a name="XML_CATA_ALLOW_ALL">XML_CATA_ALLOW_ALL</a> = 3
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogPrefer">Enum </a>xmlCatalogPrefer</h3><pre class="programlisting">enum <a href="#xmlCatalogPrefer">xmlCatalogPrefer</a> {
+ <a name="XML_CATA_PREFER_NONE">XML_CATA_PREFER_NONE</a> = 0
+ <a name="XML_CATA_PREFER_PUBLIC">XML_CATA_PREFER_PUBLIC</a> = 1
+ <a name="XML_CATA_PREFER_SYSTEM">XML_CATA_PREFER_SYSTEM</a> = 2
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogPtr">Typedef </a>xmlCatalogPtr</h3><pre class="programlisting"><a href="libxml2-catalog.html#xmlCatalog">xmlCatalog</a> * xmlCatalogPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlACatalogAdd"/>xmlACatalogAdd ()</h3><pre class="programlisting">int xmlACatalogAdd (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * orig, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * replace)<br/>
+</pre><p>Add an entry in the catalog, it may overwrite existing but different entries.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of record to add to the catalog</td></tr><tr><td><span class="term"><i><tt>orig</tt></i>:</span></td><td>the system, public or prefix to match</td></tr><tr><td><span class="term"><i><tt>replace</tt></i>:</span></td><td>the replacement value for the match</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlACatalogDump"/>xmlACatalogDump ()</h3><pre class="programlisting">void xmlACatalogDump (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> FILE * out)<br/>
+</pre><p>Dump the given catalog to the given file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the file.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlACatalogRemove"/>xmlACatalogRemove ()</h3><pre class="programlisting">int xmlACatalogRemove (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Remove an entry from the catalog</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to remove</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries removed if successful, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlACatalogResolve"/>xmlACatalogResolve ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlACatalogResolve (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br/>
+</pre><p>Do a complete resolution lookup of an External Identifier</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlACatalogResolvePublic"/>xmlACatalogResolvePublic ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlACatalogResolvePublic (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID)<br/>
+</pre><p>Try to lookup the catalog local <a href="libxml2-SAX.html#reference">reference</a> associated to a public ID in that catalog</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local resource if found or NULL otherwise, the value returned must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlACatalogResolveSystem"/>xmlACatalogResolveSystem ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlACatalogResolveSystem (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br/>
+</pre><p>Try to lookup the catalog resource for a system ID</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resource if found or NULL otherwise, the value returned must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlACatalogResolveURI"/>xmlACatalogResolveURI ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlACatalogResolveURI (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI)<br/>
+</pre><p>Do a complete resolution lookup of an URI</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogAdd"/>xmlCatalogAdd ()</h3><pre class="programlisting">int xmlCatalogAdd (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * orig, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * replace)<br/>
+</pre><p>Add an entry in the catalog, it may overwrite existing but different entries. If called before any other catalog routine, allows to override the default shared catalog put in place by xmlInitializeCatalog();</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of record to add to the catalog</td></tr><tr><td><span class="term"><i><tt>orig</tt></i>:</span></td><td>the system, public or prefix to match</td></tr><tr><td><span class="term"><i><tt>replace</tt></i>:</span></td><td>the replacement value for the match</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogAddLocal"/>xmlCatalogAddLocal ()</h3><pre class="programlisting">void * xmlCatalogAddLocal (void * catalogs, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URL)<br/>
+</pre><p>Add the new entry to the catalog list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catalogs</tt></i>:</span></td><td>a document's list of catalogs</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL to a new local catalog</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the updated list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogCleanup"/>xmlCatalogCleanup ()</h3><pre class="programlisting">void xmlCatalogCleanup (void)<br/>
+</pre><p>Free up all the memory associated with catalogs</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogConvert"/>xmlCatalogConvert ()</h3><pre class="programlisting">int xmlCatalogConvert (void)<br/>
+</pre><p>Convert all the SGML catalog entries as XML ones</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries converted if successful, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogDump"/>xmlCatalogDump ()</h3><pre class="programlisting">void xmlCatalogDump (FILE * out)<br/>
+</pre><p>Dump all the global catalog content to the given file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the file.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogFreeLocal"/>xmlCatalogFreeLocal ()</h3><pre class="programlisting">void xmlCatalogFreeLocal (void * catalogs)<br/>
+</pre><p>Free up the memory associated to the catalog list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catalogs</tt></i>:</span></td><td>a document's list of catalogs</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogGetDefaults"/>xmlCatalogGetDefaults ()</h3><pre class="programlisting"><a href="libxml2-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a> xmlCatalogGetDefaults (void)<br/>
+</pre><p>Used to get the user preference w.r.t. to what catalogs should be accepted</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a href="libxml2-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a> value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogGetPublic"/>xmlCatalogGetPublic ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogGetPublic (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID)<br/>
+</pre><p>Try to lookup the catalog <a href="libxml2-SAX.html#reference">reference</a> associated to a public ID DEPRECATED, use xmlCatalogResolvePublic()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resource if found or NULL otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogGetSystem"/>xmlCatalogGetSystem ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogGetSystem (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br/>
+</pre><p>Try to lookup the catalog <a href="libxml2-SAX.html#reference">reference</a> associated to a system ID DEPRECATED, use xmlCatalogResolveSystem()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resource if found or NULL otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogIsEmpty"/>xmlCatalogIsEmpty ()</h3><pre class="programlisting">int xmlCatalogIsEmpty (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal)<br/>
+</pre><p>Check is a catalog is empty</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>should this create an SGML catalog</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the catalog is empty, 0 if not, amd -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogLocalResolve"/>xmlCatalogLocalResolve ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogLocalResolve (void * catalogs, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br/>
+</pre><p>Do a complete resolution lookup of an External Identifier using a document's private catalog list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catalogs</tt></i>:</span></td><td>a document's list of catalogs</td></tr><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogLocalResolveURI"/>xmlCatalogLocalResolveURI ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogLocalResolveURI (void * catalogs, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI)<br/>
+</pre><p>Do a complete resolution lookup of an URI using a document's private catalog list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catalogs</tt></i>:</span></td><td>a document's list of catalogs</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogRemove"/>xmlCatalogRemove ()</h3><pre class="programlisting">int xmlCatalogRemove (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Remove an entry from the catalog</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to remove</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries removed if successful, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogResolve"/>xmlCatalogResolve ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogResolve (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br/>
+</pre><p>Do a complete resolution lookup of an External Identifier</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogResolvePublic"/>xmlCatalogResolvePublic ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogResolvePublic (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubID)<br/>
+</pre><p>Try to lookup the catalog <a href="libxml2-SAX.html#reference">reference</a> associated to a public ID</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resource if found or NULL otherwise, the value returned must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogResolveSystem"/>xmlCatalogResolveSystem ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogResolveSystem (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br/>
+</pre><p>Try to lookup the catalog resource for a system ID</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resource if found or NULL otherwise, the value returned must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogResolveURI"/>xmlCatalogResolveURI ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogResolveURI (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI)<br/>
+</pre><p>Do a complete resolution lookup of an URI</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogSetDebug"/>xmlCatalogSetDebug ()</h3><pre class="programlisting">int xmlCatalogSetDebug (int level)<br/>
+</pre><p>Used to set the debug level for catalog operation, 0 disable debugging, 1 enable it</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>level</tt></i>:</span></td><td>the debug level of catalogs required</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous value of the catalog debugging level</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogSetDefaultPrefer"/>xmlCatalogSetDefaultPrefer ()</h3><pre class="programlisting"><a href="libxml2-catalog.html#xmlCatalogPrefer">xmlCatalogPrefer</a> xmlCatalogSetDefaultPrefer (<a href="libxml2-catalog.html#xmlCatalogPrefer">xmlCatalogPrefer</a> prefer)<br/>
+</pre><p>Allows to set the preference between public and system for deletion in XML Catalog resolution. C.f. section 4.1.1 of the spec Values accepted are <a href="libxml2-catalog.html#XML_CATA_PREFER_PUBLIC">XML_CATA_PREFER_PUBLIC</a> or <a href="libxml2-catalog.html#XML_CATA_PREFER_SYSTEM">XML_CATA_PREFER_SYSTEM</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>prefer</tt></i>:</span></td><td>the default preference for delegation</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous value of the default preference for delegation</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCatalogSetDefaults"/>xmlCatalogSetDefaults ()</h3><pre class="programlisting">void xmlCatalogSetDefaults (<a href="libxml2-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a> allow)<br/>
+</pre><p>Used to set the user preference w.r.t. to what catalogs should be accepted</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>allow</tt></i>:</span></td><td>what catalogs should be accepted</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlConvertSGMLCatalog"/>xmlConvertSGMLCatalog ()</h3><pre class="programlisting">int xmlConvertSGMLCatalog (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal)<br/>
+</pre><p>Convert all the SGML catalog entries as XML ones</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>the catalog</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries converted if successful, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeCatalog"/>xmlFreeCatalog ()</h3><pre class="programlisting">void xmlFreeCatalog (<a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal)<br/>
+</pre><p>Free the memory allocated to a Catalog</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitializeCatalog"/>xmlInitializeCatalog ()</h3><pre class="programlisting">void xmlInitializeCatalog (void)<br/>
+</pre><p>Do the catalog initialization. this function is not thread safe, catalog initialization should preferably be done once at startup</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLoadACatalog"/>xmlLoadACatalog ()</h3><pre class="programlisting"><a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> xmlLoadACatalog (const char * filename)<br/>
+</pre><p>Load the catalog and build the associated data structures. This can be either an XML Catalog or an SGML Catalog It will recurse in SGML CATALOG entries. On the other hand XML Catalogs are not handled recursively.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file path</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the catalog parsed or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLoadCatalog"/>xmlLoadCatalog ()</h3><pre class="programlisting">int xmlLoadCatalog (const char * filename)<br/>
+</pre><p>Load the catalog and makes its definitions effective for the default external entity loader. It will recurse in SGML CATALOG entries. this function is not thread safe, catalog initialization should preferably be done once at startup</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file path</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLoadCatalogs"/>xmlLoadCatalogs ()</h3><pre class="programlisting">void xmlLoadCatalogs (const char * pathss)<br/>
+</pre><p>Load the catalogs and makes their definitions effective for the default external entity loader. this function is not thread safe, catalog initialization should preferably be done once at startup</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pathss</tt></i>:</span></td><td>a list of directories separated by a colon or a space.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLoadSGMLSuperCatalog"/>xmlLoadSGMLSuperCatalog ()</h3><pre class="programlisting"><a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> xmlLoadSGMLSuperCatalog (const char * filename)<br/>
+</pre><p>Load an SGML super catalog. It won't expand CATALOG or DELEGATE references. This is only needed for manipulating SGML Super Catalogs like adding and removing CATALOG or DELEGATE entries.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file path</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the catalog parsed or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewCatalog"/>xmlNewCatalog ()</h3><pre class="programlisting"><a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> xmlNewCatalog (int sgml)<br/>
+</pre><p>create a new Catalog.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sgml</tt></i>:</span></td><td>should this create an SGML catalog</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseCatalogFile"/>xmlParseCatalogFile ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseCatalogFile (const char * filename)<br/>
+</pre><p>parse an XML file and build a tree. It's like xmlParseFile() except it bypass all catalog lookups.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-chvalid.html b/libxml2-2.9.10/doc/devhelp/libxml2-chvalid.html
new file mode 100644
index 0000000..9c77158
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-chvalid.html
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>chvalid: Unicode character range checking</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-catalog.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-debugXML.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">chvalid</span>
+ </h2>
+ <p>chvalid - Unicode character range checking</p>
+ <p>this module exports interfaces for the character range validation APIs This file is automatically generated from the cvs source definition files using the genChRanges.py Python script </p>
+ <p>Author(s): William Brack &lt;wbrack@mmm.com.hk&gt; </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#xmlIsExtender_ch">xmlIsExtender_ch</a>(c);
+#define <a href="#xmlIsPubidCharQ">xmlIsPubidCharQ</a>(c);
+#define <a href="#xmlIsPubidChar_ch">xmlIsPubidChar_ch</a>(c);
+#define <a href="#xmlIsIdeographicQ">xmlIsIdeographicQ</a>(c);
+#define <a href="#xmlIsExtenderQ">xmlIsExtenderQ</a>(c);
+#define <a href="#xmlIsChar_ch">xmlIsChar_ch</a>(c);
+#define <a href="#xmlIsDigitQ">xmlIsDigitQ</a>(c);
+#define <a href="#xmlIsDigit_ch">xmlIsDigit_ch</a>(c);
+#define <a href="#xmlIsBaseChar_ch">xmlIsBaseChar_ch</a>(c);
+#define <a href="#xmlIsCombiningQ">xmlIsCombiningQ</a>(c);
+#define <a href="#xmlIsBlankQ">xmlIsBlankQ</a>(c);
+#define <a href="#xmlIsCharQ">xmlIsCharQ</a>(c);
+#define <a href="#xmlIsBaseCharQ">xmlIsBaseCharQ</a>(c);
+#define <a href="#xmlIsBlank_ch">xmlIsBlank_ch</a>(c);
+typedef struct _xmlChLRange <a href="#xmlChLRange">xmlChLRange</a>;
+typedef <a href="libxml2-chvalid.html#xmlChSRange">xmlChSRange</a> * <a href="#xmlChSRangePtr">xmlChSRangePtr</a>;
+typedef <a href="libxml2-chvalid.html#xmlChLRange">xmlChLRange</a> * <a href="#xmlChLRangePtr">xmlChLRangePtr</a>;
+typedef <a href="libxml2-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> * <a href="#xmlChRangeGroupPtr">xmlChRangeGroupPtr</a>;
+typedef struct _xmlChSRange <a href="#xmlChSRange">xmlChSRange</a>;
+typedef struct _xmlChRangeGroup <a href="#xmlChRangeGroup">xmlChRangeGroup</a>;
+int <a href="#xmlIsChar">xmlIsChar</a> (unsigned int ch);
+int <a href="#xmlIsDigit">xmlIsDigit</a> (unsigned int ch);
+int <a href="#xmlIsBlank">xmlIsBlank</a> (unsigned int ch);
+int <a href="#xmlIsIdeographic">xmlIsIdeographic</a> (unsigned int ch);
+int <a href="#xmlCharInRange">xmlCharInRange</a> (unsigned int val, <br/> const <a href="libxml2-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> * rptr);
+int <a href="#xmlIsPubidChar">xmlIsPubidChar</a> (unsigned int ch);
+int <a href="#xmlIsCombining">xmlIsCombining</a> (unsigned int ch);
+int <a href="#xmlIsBaseChar">xmlIsBaseChar</a> (unsigned int ch);
+int <a href="#xmlIsExtender">xmlIsExtender</a> (unsigned int ch);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlIsBaseCharQ">Macro </a>xmlIsBaseCharQ</h3><pre class="programlisting">#define <a href="#xmlIsBaseCharQ">xmlIsBaseCharQ</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsBaseChar_ch">Macro </a>xmlIsBaseChar_ch</h3><pre class="programlisting">#define <a href="#xmlIsBaseChar_ch">xmlIsBaseChar_ch</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsBlankQ">Macro </a>xmlIsBlankQ</h3><pre class="programlisting">#define <a href="#xmlIsBlankQ">xmlIsBlankQ</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsBlank_ch">Macro </a>xmlIsBlank_ch</h3><pre class="programlisting">#define <a href="#xmlIsBlank_ch">xmlIsBlank_ch</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsCharQ">Macro </a>xmlIsCharQ</h3><pre class="programlisting">#define <a href="#xmlIsCharQ">xmlIsCharQ</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsChar_ch">Macro </a>xmlIsChar_ch</h3><pre class="programlisting">#define <a href="#xmlIsChar_ch">xmlIsChar_ch</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsCombiningQ">Macro </a>xmlIsCombiningQ</h3><pre class="programlisting">#define <a href="#xmlIsCombiningQ">xmlIsCombiningQ</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsDigitQ">Macro </a>xmlIsDigitQ</h3><pre class="programlisting">#define <a href="#xmlIsDigitQ">xmlIsDigitQ</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsDigit_ch">Macro </a>xmlIsDigit_ch</h3><pre class="programlisting">#define <a href="#xmlIsDigit_ch">xmlIsDigit_ch</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsExtenderQ">Macro </a>xmlIsExtenderQ</h3><pre class="programlisting">#define <a href="#xmlIsExtenderQ">xmlIsExtenderQ</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsExtender_ch">Macro </a>xmlIsExtender_ch</h3><pre class="programlisting">#define <a href="#xmlIsExtender_ch">xmlIsExtender_ch</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsIdeographicQ">Macro </a>xmlIsIdeographicQ</h3><pre class="programlisting">#define <a href="#xmlIsIdeographicQ">xmlIsIdeographicQ</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsPubidCharQ">Macro </a>xmlIsPubidCharQ</h3><pre class="programlisting">#define <a href="#xmlIsPubidCharQ">xmlIsPubidCharQ</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsPubidChar_ch">Macro </a>xmlIsPubidChar_ch</h3><pre class="programlisting">#define <a href="#xmlIsPubidChar_ch">xmlIsPubidChar_ch</a>(c);
+</pre><p>Automatically generated by genChRanges.py</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>char to validate</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlChLRange">Structure </a>xmlChLRange</h3><pre class="programlisting">struct _xmlChLRange {
+ unsigned int low
+ unsigned int high
+} xmlChLRange;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlChLRangePtr">Typedef </a>xmlChLRangePtr</h3><pre class="programlisting"><a href="libxml2-chvalid.html#xmlChLRange">xmlChLRange</a> * xmlChLRangePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlChRangeGroup">Structure </a>xmlChRangeGroup</h3><pre class="programlisting">struct _xmlChRangeGroup {
+ int nbShortRange
+ int nbLongRange
+ const <a href="libxml2-chvalid.html#xmlChSRange">xmlChSRange</a> * shortRange : points to an array of ranges
+ const <a href="libxml2-chvalid.html#xmlChLRange">xmlChLRange</a> * longRange
+} xmlChRangeGroup;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlChRangeGroupPtr">Typedef </a>xmlChRangeGroupPtr</h3><pre class="programlisting"><a href="libxml2-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> * xmlChRangeGroupPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlChSRange">Structure </a>xmlChSRange</h3><pre class="programlisting">struct _xmlChSRange {
+ unsigned short low
+ unsigned short high
+} xmlChSRange;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlChSRangePtr">Typedef </a>xmlChSRangePtr</h3><pre class="programlisting"><a href="libxml2-chvalid.html#xmlChSRange">xmlChSRange</a> * xmlChSRangePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsBaseCharGroup">Variable </a>xmlIsBaseCharGroup</h3><pre class="programlisting">const <a href="libxml2-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> xmlIsBaseCharGroup;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsCharGroup">Variable </a>xmlIsCharGroup</h3><pre class="programlisting">const <a href="libxml2-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> xmlIsCharGroup;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsCombiningGroup">Variable </a>xmlIsCombiningGroup</h3><pre class="programlisting">const <a href="libxml2-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> xmlIsCombiningGroup;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsDigitGroup">Variable </a>xmlIsDigitGroup</h3><pre class="programlisting">const <a href="libxml2-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> xmlIsDigitGroup;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsExtenderGroup">Variable </a>xmlIsExtenderGroup</h3><pre class="programlisting">const <a href="libxml2-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> xmlIsExtenderGroup;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsIdeographicGroup">Variable </a>xmlIsIdeographicGroup</h3><pre class="programlisting">const <a href="libxml2-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> xmlIsIdeographicGroup;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsPubidChar_tab">Variable </a>xmlIsPubidChar_tab</h3><pre class="programlisting">const unsigned charxmlIsPubidChar_tab[256] xmlIsPubidChar_tab;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharInRange"/>xmlCharInRange ()</h3><pre class="programlisting">int xmlCharInRange (unsigned int val, <br/> const <a href="libxml2-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> * rptr)<br/>
+</pre><p>Does a binary search of the range table to determine if char is valid</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>character to be validated</td></tr><tr><td><span class="term"><i><tt>rptr</tt></i>:</span></td><td>pointer to range to be used to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if character valid, false otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsBaseChar"/>xmlIsBaseChar ()</h3><pre class="programlisting">int xmlIsBaseChar (unsigned int ch)<br/>
+</pre><p>This function is DEPRECATED. Use <a href="libxml2-chvalid.html#xmlIsBaseChar_ch">xmlIsBaseChar_ch</a> or <a href="libxml2-chvalid.html#xmlIsBaseCharQ">xmlIsBaseCharQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsBlank"/>xmlIsBlank ()</h3><pre class="programlisting">int xmlIsBlank (unsigned int ch)<br/>
+</pre><p>This function is DEPRECATED. Use <a href="libxml2-chvalid.html#xmlIsBlank_ch">xmlIsBlank_ch</a> or <a href="libxml2-chvalid.html#xmlIsBlankQ">xmlIsBlankQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsChar"/>xmlIsChar ()</h3><pre class="programlisting">int xmlIsChar (unsigned int ch)<br/>
+</pre><p>This function is DEPRECATED. Use <a href="libxml2-chvalid.html#xmlIsChar_ch">xmlIsChar_ch</a> or <a href="libxml2-chvalid.html#xmlIsCharQ">xmlIsCharQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsCombining"/>xmlIsCombining ()</h3><pre class="programlisting">int xmlIsCombining (unsigned int ch)<br/>
+</pre><p>This function is DEPRECATED. Use <a href="libxml2-chvalid.html#xmlIsCombiningQ">xmlIsCombiningQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsDigit"/>xmlIsDigit ()</h3><pre class="programlisting">int xmlIsDigit (unsigned int ch)<br/>
+</pre><p>This function is DEPRECATED. Use <a href="libxml2-chvalid.html#xmlIsDigit_ch">xmlIsDigit_ch</a> or <a href="libxml2-chvalid.html#xmlIsDigitQ">xmlIsDigitQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsExtender"/>xmlIsExtender ()</h3><pre class="programlisting">int xmlIsExtender (unsigned int ch)<br/>
+</pre><p>This function is DEPRECATED. Use <a href="libxml2-chvalid.html#xmlIsExtender_ch">xmlIsExtender_ch</a> or <a href="libxml2-chvalid.html#xmlIsExtenderQ">xmlIsExtenderQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsIdeographic"/>xmlIsIdeographic ()</h3><pre class="programlisting">int xmlIsIdeographic (unsigned int ch)<br/>
+</pre><p>This function is DEPRECATED. Use <a href="libxml2-chvalid.html#xmlIsIdeographicQ">xmlIsIdeographicQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsPubidChar"/>xmlIsPubidChar ()</h3><pre class="programlisting">int xmlIsPubidChar (unsigned int ch)<br/>
+</pre><p>This function is DEPRECATED. Use <a href="libxml2-chvalid.html#xmlIsPubidChar_ch">xmlIsPubidChar_ch</a> or <a href="libxml2-chvalid.html#xmlIsPubidCharQ">xmlIsPubidCharQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-debugXML.html b/libxml2-2.9.10/doc/devhelp/libxml2-debugXML.html
new file mode 100644
index 0000000..0eefb4e
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-debugXML.html
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>debugXML: Tree debugging APIs</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-chvalid.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-dict.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">debugXML</span>
+ </h2>
+ <p>debugXML - Tree debugging APIs</p>
+ <p>Interfaces to a set of routines used for debugging the tree produced by the XML parser. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef struct _xmlShellCtxt <a href="#xmlShellCtxt">xmlShellCtxt</a>;
+typedef <a href="libxml2-debugXML.html#xmlShellCtxt">xmlShellCtxt</a> * <a href="#xmlShellCtxtPtr">xmlShellCtxtPtr</a>;
+void <a href="#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br/> int depth);
+void <a href="#xmlLsOneNode">xmlLsOneNode</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+typedef char * <a href="#xmlShellReadlineFunc">xmlShellReadlineFunc</a> (char * prompt);
+int <a href="#xmlShellSave">xmlShellSave</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * filename, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+const char * <a href="#xmlBoolToText">xmlBoolToText</a> (int boolval);
+int <a href="#xmlShellWrite">xmlShellWrite</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * filename, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+int <a href="#xmlShellDu">xmlShellDu</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+int <a href="#xmlShellValidate">xmlShellValidate</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * dtd, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+int <a href="#xmlDebugCheckDocument">xmlDebugCheckDocument</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+void <a href="#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> list);
+typedef int <a href="#xmlShellCmd">xmlShellCmd</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+int <a href="#xmlShellLoad">xmlShellLoad</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * filename, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+void <a href="#xmlDebugDumpString">xmlDebugDumpString</a> (FILE * output, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+int <a href="#xmlShellBase">xmlShellBase</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+int <a href="#xmlShellCat">xmlShellCat</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+void <a href="#xmlDebugDumpDTD">xmlDebugDumpDTD</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd);
+void <a href="#xmlDebugDumpNode">xmlDebugDumpNode</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int depth);
+void <a href="#xmlDebugDumpEntities">xmlDebugDumpEntities</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+void <a href="#xmlShellPrintNode">xmlShellPrintNode</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+int <a href="#xmlShellPwd">xmlShellPwd</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * buffer, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+void <a href="#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int depth);
+void <a href="#xmlDebugDumpAttr">xmlDebugDumpAttr</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br/> int depth);
+void <a href="#xmlDebugDumpDocument">xmlDebugDumpDocument</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+int <a href="#xmlLsCountNode">xmlLsCountNode</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+void <a href="#xmlShellPrintXPathError">xmlShellPrintXPathError</a> (int errorType, <br/> const char * arg);
+int <a href="#xmlShellDir">xmlShellDir</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+void <a href="#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int depth);
+int <a href="#xmlShellList">xmlShellList</a> (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+void <a href="#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a> (FILE * output, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+void <a href="#xmlShell">xmlShell</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> char * filename, <br/> <a href="libxml2-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a> input, <br/> FILE * output);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlShellCtxt">Structure </a>xmlShellCtxt</h3><pre class="programlisting">struct _xmlShellCtxt {
+ char * filename
+ <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> pctxt
+ int loaded
+ FILE * output
+ <a href="libxml2-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a> input
+} xmlShellCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellCtxtPtr">Typedef </a>xmlShellCtxtPtr</h3><pre class="programlisting"><a href="libxml2-debugXML.html#xmlShellCtxt">xmlShellCtxt</a> * xmlShellCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellCmd"/>Function type xmlShellCmd</h3><pre class="programlisting">int xmlShellCmd (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>This is a generic signature for the XML shell functions.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a string argument</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a first node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>a second node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int, negative returns indicating errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellReadlineFunc"/>Function type xmlShellReadlineFunc</h3><pre class="programlisting">char * xmlShellReadlineFunc (char * prompt)<br/>
+</pre><p>This is a generic signature for the XML shell input function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>prompt</tt></i>:</span></td><td>a string prompt</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string which will be freed by the Shell.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBoolToText"/>xmlBoolToText ()</h3><pre class="programlisting">const char * xmlBoolToText (int boolval)<br/>
+</pre><p>Convenient way to turn bool into text</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>boolval</tt></i>:</span></td><td>a bool to turn into text</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to either "True" or "False"</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugCheckDocument"/>xmlDebugCheckDocument ()</h3><pre class="programlisting">int xmlDebugCheckDocument (FILE * output, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Check the document for potential content problems, and output the errors to @output</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of errors found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugDumpAttr"/>xmlDebugDumpAttr ()</h3><pre class="programlisting">void xmlDebugDumpAttr (FILE * output, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br/> int depth)<br/>
+</pre><p>Dumps debug information for the <a href="libxml2-SAX.html#attribute">attribute</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugDumpAttrList"/>xmlDebugDumpAttrList ()</h3><pre class="programlisting">void xmlDebugDumpAttrList (FILE * output, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br/> int depth)<br/>
+</pre><p>Dumps debug information for the <a href="libxml2-SAX.html#attribute">attribute</a> list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> list</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugDumpDTD"/>xmlDebugDumpDTD ()</h3><pre class="programlisting">void xmlDebugDumpDTD (FILE * output, <br/> <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)<br/>
+</pre><p>Dumps debug information for the DTD</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>the DTD</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugDumpDocument"/>xmlDebugDumpDocument ()</h3><pre class="programlisting">void xmlDebugDumpDocument (FILE * output, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Dumps debug information for the document, it's recursive</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugDumpDocumentHead"/>xmlDebugDumpDocumentHead ()</h3><pre class="programlisting">void xmlDebugDumpDocumentHead (FILE * output, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Dumps debug information concerning the document, not recursive</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugDumpEntities"/>xmlDebugDumpEntities ()</h3><pre class="programlisting">void xmlDebugDumpEntities (FILE * output, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Dumps debug information for all the entities in use by the document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugDumpNode"/>xmlDebugDumpNode ()</h3><pre class="programlisting">void xmlDebugDumpNode (FILE * output, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int depth)<br/>
+</pre><p>Dumps debug information for the element node, it is recursive</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugDumpNodeList"/>xmlDebugDumpNodeList ()</h3><pre class="programlisting">void xmlDebugDumpNodeList (FILE * output, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int depth)<br/>
+</pre><p>Dumps debug information for the list of element node, it is recursive</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node list</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugDumpOneNode"/>xmlDebugDumpOneNode ()</h3><pre class="programlisting">void xmlDebugDumpOneNode (FILE * output, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int depth)<br/>
+</pre><p>Dumps debug information for the element node, it is not recursive</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDebugDumpString"/>xmlDebugDumpString ()</h3><pre class="programlisting">void xmlDebugDumpString (FILE * output, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>Dumps informations about the string, shorten it if necessary</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLsCountNode"/>xmlLsCountNode ()</h3><pre class="programlisting">int xmlLsCountNode (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Count the children of @node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to count</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of children of @node.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLsOneNode"/>xmlLsOneNode ()</h3><pre class="programlisting">void xmlLsOneNode (FILE * output, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Dump to @output the type and name of @node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to dump</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShell"/>xmlShell ()</h3><pre class="programlisting">void xmlShell (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> char * filename, <br/> <a href="libxml2-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a> input, <br/> FILE * output)<br/>
+</pre><p>Implements the XML shell This allow to load, validate, view, modify and save a document using a environment similar to a UNIX commandline.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the initial document</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the output buffer</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the line reading function</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the output FILE*, defaults to stdout if NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellBase"/>xmlShellBase ()</h3><pre class="programlisting">int xmlShellBase (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Implements the XML shell function "base" dumps the current XML base of the node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellCat"/>xmlShellCat ()</h3><pre class="programlisting">int xmlShellCat (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Implements the XML shell function "cat" dumps the serialization node content (XML or HTML).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellDir"/>xmlShellDir ()</h3><pre class="programlisting">int xmlShellDir (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Implements the XML shell function "dir" dumps informations about the node (namespace, attributes, content).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellDu"/>xmlShellDu ()</h3><pre class="programlisting">int xmlShellDu (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Implements the XML shell function "du" show the structure of the subtree under node @tree If @tree is null, the command works on the current node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>a node defining a subtree</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellList"/>xmlShellList ()</h3><pre class="programlisting">int xmlShellList (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * arg, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Implements the XML shell function "ls" Does an Unix like listing of the given node (like a directory)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellLoad"/>xmlShellLoad ()</h3><pre class="programlisting">int xmlShellLoad (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * filename, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Implements the XML shell function "load" loads a new document specified by the filename</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file name</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 if loading failed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellPrintNode"/>xmlShellPrintNode ()</h3><pre class="programlisting">void xmlShellPrintNode (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Print node to the output FILE</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a non-null node to print to the output FILE</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellPrintXPathError"/>xmlShellPrintXPathError ()</h3><pre class="programlisting">void xmlShellPrintXPathError (int errorType, <br/> const char * arg)<br/>
+</pre><p>Print the xpath error to libxml default error channel</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>errorType</tt></i>:</span></td><td>valid xpath error id</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the argument that cause xpath to fail</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellPrintXPathResult"/>xmlShellPrintXPathResult ()</h3><pre class="programlisting">void xmlShellPrintXPathResult (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> list)<br/>
+</pre><p>Prints result to the output FILE</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>a valid result generated by an xpath evaluation</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellPwd"/>xmlShellPwd ()</h3><pre class="programlisting">int xmlShellPwd (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * buffer, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Implements the XML shell function "pwd" Show the full path from the root to the node, if needed building thumblers when similar elements exists at a given ancestor level. The output is compatible with XPath commands.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>the output buffer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellSave"/>xmlShellSave ()</h3><pre class="programlisting">int xmlShellSave (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * filename, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Implements the XML shell function "save" Write the current document to the filename, or it's original name</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file name (optional)</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellValidate"/>xmlShellValidate ()</h3><pre class="programlisting">int xmlShellValidate (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * dtd, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Implements the XML shell function "validate" Validate the document, if a DTD path is provided, then the validation is done against the given DTD.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>the DTD URI (optional)</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlShellWrite"/>xmlShellWrite ()</h3><pre class="programlisting">int xmlShellWrite (<a href="libxml2-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br/> char * filename, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Implements the XML shell function "write" Write the current node to the filename, it saves the serialization of the subtree under the @node specified</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file name</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node in the tree</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-dict.html b/libxml2-2.9.10/doc/devhelp/libxml2-dict.html
new file mode 100644
index 0000000..a0c5415
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-dict.html
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>dict: string dictionary</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-debugXML.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-encoding.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">dict</span>
+ </h2>
+ <p>dict - string dictionary</p>
+ <p>dictionary of reusable strings, just used to avoid allocation and freeing operations. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef struct _xmlDict <a href="#xmlDict">xmlDict</a>;
+typedef <a href="libxml2-dict.html#xmlDict">xmlDict</a> * <a href="#xmlDictPtr">xmlDictPtr</a>;
+size_t <a href="#xmlDictGetUsage">xmlDictGetUsage</a> (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict);
+int <a href="#xmlDictReference">xmlDictReference</a> (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict);
+void <a href="#xmlDictCleanup">xmlDictCleanup</a> (void);
+int <a href="#xmlDictSize">xmlDictSize</a> (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlDictExists">xmlDictExists</a> (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int len);
+size_t <a href="#xmlDictSetLimit">xmlDictSetLimit</a> (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> size_t limit);
+int <a href="#xmlDictOwns">xmlDictOwns</a> (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlDictQLookup">xmlDictQLookup</a> (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlInitializeDict">xmlInitializeDict</a> (void);
+<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> <a href="#xmlDictCreateSub">xmlDictCreateSub</a> (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> sub);
+void <a href="#xmlDictFree">xmlDictFree</a> (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlDictLookup">xmlDictLookup</a> (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int len);
+<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> <a href="#xmlDictCreate">xmlDictCreate</a> (void);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlDict">Structure </a>xmlDict</h3><pre class="programlisting">struct _xmlDict {
+The content of this structure is not made public by the API.
+} xmlDict;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictPtr">Typedef </a>xmlDictPtr</h3><pre class="programlisting"><a href="libxml2-dict.html#xmlDict">xmlDict</a> * xmlDictPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictCleanup"/>xmlDictCleanup ()</h3><pre class="programlisting">void xmlDictCleanup (void)<br/>
+</pre><p>Free the dictionary mutex. Do not call unless sure the library is not in use anymore !</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictCreate"/>xmlDictCreate ()</h3><pre class="programlisting"><a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreate (void)<br/>
+</pre><p>Create a new dictionary</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictCreateSub"/>xmlDictCreateSub ()</h3><pre class="programlisting"><a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreateSub (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br/>
+</pre><p>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictExists"/>xmlDictExists ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlDictExists (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int len)<br/>
+</pre><p>Check if the @name exists in the dictionary @dict.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictFree"/>xmlDictFree ()</h3><pre class="programlisting">void xmlDictFree (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
+</pre><p>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictGetUsage"/>xmlDictGetUsage ()</h3><pre class="programlisting">size_t xmlDictGetUsage (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
+</pre><p>Get how much memory is used by a dictionary for strings Added in 2.9.0</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictLookup"/>xmlDictLookup ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlDictLookup (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int len)<br/>
+</pre><p>Add the @name to the dictionary @dict if not present.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictOwns"/>xmlDictOwns ()</h3><pre class="programlisting">int xmlDictOwns (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>check if a string is owned by the dictionary</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictQLookup"/>xmlDictQLookup ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlDictQLookup (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Add the QName @prefix:@name to the hash @dict if not present.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictReference"/>xmlDictReference ()</h3><pre class="programlisting">int xmlDictReference (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
+</pre><p>Increment the <a href="libxml2-SAX.html#reference">reference</a> counter of a dictionary</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictSetLimit"/>xmlDictSetLimit ()</h3><pre class="programlisting">size_t xmlDictSetLimit (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> size_t limit)<br/>
+</pre><p>Set a size limit for the dictionary Added in 2.9.0</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDictSize"/>xmlDictSize ()</h3><pre class="programlisting">int xmlDictSize (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
+</pre><p>Query the number of elements installed in the hash @dict.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionary or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitializeDict"/>xmlInitializeDict ()</h3><pre class="programlisting">int xmlInitializeDict (void)<br/>
+</pre><p>Do the dictionary mutex initialization. this function is deprecated</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if initialization was already done, and 1 if that call led to the initialization</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-encoding.html b/libxml2-2.9.10/doc/devhelp/libxml2-encoding.html
new file mode 100644
index 0000000..0190bd3
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-encoding.html
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>encoding: interface for the encoding conversion functions</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-dict.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-entities.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">encoding</span>
+ </h2>
+ <p>encoding - interface for the encoding conversion functions</p>
+ <p>interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a>;
+typedef struct _uconv_t <a href="#uconv_t">uconv_t</a>;
+typedef enum <a href="#xmlCharEncoding">xmlCharEncoding</a>;
+typedef struct _xmlCharEncodingHandler <a href="#xmlCharEncodingHandler">xmlCharEncodingHandler</a>;
+typedef <a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * <a href="#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>;
+int <a href="#xmlDelEncodingAlias">xmlDelEncodingAlias</a> (const char * alias);
+const char * <a href="#xmlGetEncodingAlias">xmlGetEncodingAlias</a> (const char * alias);
+void <a href="#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a> (<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler);
+int <a href="#UTF8Toisolat1">UTF8Toisolat1</a> (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen);
+void <a href="#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a> (void);
+int <a href="#xmlAddEncodingAlias">xmlAddEncodingAlias</a> (const char * name, <br/> const char * alias);
+void <a href="#xmlCleanupEncodingAliases">xmlCleanupEncodingAliases</a> (void);
+int <a href="#xmlCharEncOutFunc">xmlCharEncOutFunc</a> (<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in);
+<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> <a href="#xmlParseCharEncoding">xmlParseCharEncoding</a> (const char * name);
+typedef int <a href="#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen);
+void <a href="#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a> (void);
+<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> <a href="#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a> (const char * name, <br/> <a href="libxml2-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> input, <br/> <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> output);
+typedef int <a href="#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen);
+int <a href="#isolat1ToUTF8">isolat1ToUTF8</a> (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen);
+<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> <a href="#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a> (const char * name);
+int <a href="#xmlCharEncInFunc">xmlCharEncInFunc</a> (<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in);
+<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> <a href="#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a> (<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+int <a href="#xmlCharEncFirstLine">xmlCharEncFirstLine</a> (<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in);
+<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> <a href="#xmlDetectCharEncoding">xmlDetectCharEncoding</a> (const unsigned char * in, <br/> int len);
+int <a href="#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a> (<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler);
+const char * <a href="#xmlGetCharEncodingName">xmlGetCharEncodingName</a> (<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="ICU_PIVOT_BUF_SIZE">Macro </a>ICU_PIVOT_BUF_SIZE</h3><pre class="programlisting">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a>;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="uconv_t">Structure </a>uconv_t</h3><pre class="programlisting">struct _uconv_t {
+ UConverter * uconv : for conversion between an encoding and UTF-16
+ UConverter * utf8 : for conversion between UTF-8 and UTF-16
+ UCharpivot_buf[ICU_PIVOT_BUF_SIZE] pivot_buf
+ UChar * pivot_source
+ UChar * pivot_target
+} uconv_t;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharEncoding">Enum </a>xmlCharEncoding</h3><pre class="programlisting">enum <a href="#xmlCharEncoding">xmlCharEncoding</a> {
+ <a name="XML_CHAR_ENCODING_ERROR">XML_CHAR_ENCODING_ERROR</a> = -1 /* No char encoding detected */
+ <a name="XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a> = 0 /* No char encoding detected */
+ <a name="XML_CHAR_ENCODING_UTF8">XML_CHAR_ENCODING_UTF8</a> = 1 /* UTF-8 */
+ <a name="XML_CHAR_ENCODING_UTF16LE">XML_CHAR_ENCODING_UTF16LE</a> = 2 /* UTF-16 little endian */
+ <a name="XML_CHAR_ENCODING_UTF16BE">XML_CHAR_ENCODING_UTF16BE</a> = 3 /* UTF-16 big endian */
+ <a name="XML_CHAR_ENCODING_UCS4LE">XML_CHAR_ENCODING_UCS4LE</a> = 4 /* UCS-4 little endian */
+ <a name="XML_CHAR_ENCODING_UCS4BE">XML_CHAR_ENCODING_UCS4BE</a> = 5 /* UCS-4 big endian */
+ <a name="XML_CHAR_ENCODING_EBCDIC">XML_CHAR_ENCODING_EBCDIC</a> = 6 /* EBCDIC uh! */
+ <a name="XML_CHAR_ENCODING_UCS4_2143">XML_CHAR_ENCODING_UCS4_2143</a> = 7 /* UCS-4 unusual ordering */
+ <a name="XML_CHAR_ENCODING_UCS4_3412">XML_CHAR_ENCODING_UCS4_3412</a> = 8 /* UCS-4 unusual ordering */
+ <a name="XML_CHAR_ENCODING_UCS2">XML_CHAR_ENCODING_UCS2</a> = 9 /* UCS-2 */
+ <a name="XML_CHAR_ENCODING_8859_1">XML_CHAR_ENCODING_8859_1</a> = 10 /* ISO-8859-1 ISO Latin 1 */
+ <a name="XML_CHAR_ENCODING_8859_2">XML_CHAR_ENCODING_8859_2</a> = 11 /* ISO-8859-2 ISO Latin 2 */
+ <a name="XML_CHAR_ENCODING_8859_3">XML_CHAR_ENCODING_8859_3</a> = 12 /* ISO-8859-3 */
+ <a name="XML_CHAR_ENCODING_8859_4">XML_CHAR_ENCODING_8859_4</a> = 13 /* ISO-8859-4 */
+ <a name="XML_CHAR_ENCODING_8859_5">XML_CHAR_ENCODING_8859_5</a> = 14 /* ISO-8859-5 */
+ <a name="XML_CHAR_ENCODING_8859_6">XML_CHAR_ENCODING_8859_6</a> = 15 /* ISO-8859-6 */
+ <a name="XML_CHAR_ENCODING_8859_7">XML_CHAR_ENCODING_8859_7</a> = 16 /* ISO-8859-7 */
+ <a name="XML_CHAR_ENCODING_8859_8">XML_CHAR_ENCODING_8859_8</a> = 17 /* ISO-8859-8 */
+ <a name="XML_CHAR_ENCODING_8859_9">XML_CHAR_ENCODING_8859_9</a> = 18 /* ISO-8859-9 */
+ <a name="XML_CHAR_ENCODING_2022_JP">XML_CHAR_ENCODING_2022_JP</a> = 19 /* ISO-2022-JP */
+ <a name="XML_CHAR_ENCODING_SHIFT_JIS">XML_CHAR_ENCODING_SHIFT_JIS</a> = 20 /* Shift_JIS */
+ <a name="XML_CHAR_ENCODING_EUC_JP">XML_CHAR_ENCODING_EUC_JP</a> = 21 /* EUC-JP */
+ <a name="XML_CHAR_ENCODING_ASCII">XML_CHAR_ENCODING_ASCII</a> = 22 /* pure ASCII */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharEncodingHandler">Structure </a>xmlCharEncodingHandler</h3><pre class="programlisting">struct _xmlCharEncodingHandler {
+ char * name
+ <a href="libxml2-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> input
+ <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> output
+ iconv_t iconv_in
+ iconv_t iconv_out
+ <a href="libxml2-encoding.html#uconv_t">uconv_t</a> * uconv_in
+ <a href="libxml2-encoding.html#uconv_t">uconv_t</a> * uconv_out
+} xmlCharEncodingHandler;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharEncodingHandlerPtr">Typedef </a>xmlCharEncodingHandlerPtr</h3><pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * xmlCharEncodingHandlerPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharEncodingInputFunc"/>Function type xmlCharEncodingInputFunc</h3><pre class="programlisting">int xmlCharEncodingInputFunc (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen)<br/>
+</pre><p>Take a block of chars in the original encoding and try to convert it to an UTF-8 block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the UTF-8 result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of chars in the original encoding</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharEncodingOutputFunc"/>Function type xmlCharEncodingOutputFunc</h3><pre class="programlisting">int xmlCharEncodingOutputFunc (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen)<br/>
+</pre><p>Take a block of UTF-8 chars in and try to convert it to another encoding. Note: a first call designed to produce heading info is called with in = NULL. If stateful this should also initialize the encoder state.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of UTF-8 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets produced.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="UTF8Toisolat1"/>UTF8Toisolat1 ()</h3><pre class="programlisting">int UTF8Toisolat1 (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen)<br/>
+</pre><p>Take a block of UTF-8 chars in and try to convert it to an ISO Latin 1 block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of UTF-8 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="isolat1ToUTF8"/>isolat1ToUTF8 ()</h3><pre class="programlisting">int isolat1ToUTF8 (unsigned char * out, <br/> int * outlen, <br/> const unsigned char * in, <br/> int * inlen)<br/>
+</pre><p>Take a block of ISO Latin 1 chars in and try to convert it to an UTF-8 block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of ISO Latin 1 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written if success, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddEncodingAlias"/>xmlAddEncodingAlias ()</h3><pre class="programlisting">int xmlAddEncodingAlias (const char * name, <br/> const char * alias)<br/>
+</pre><p>Registers an alias @alias for an encoding named @name. Existing alias will be overwritten.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the encoding name as parsed, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>alias</tt></i>:</span></td><td>the alias name as parsed, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharEncCloseFunc"/>xmlCharEncCloseFunc ()</h3><pre class="programlisting">int xmlCharEncCloseFunc (<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler)<br/>
+</pre><p>Generic front-end for encoding handler close function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>char encoding transformation data structure</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success, or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharEncFirstLine"/>xmlCharEncFirstLine ()</h3><pre class="programlisting">int xmlCharEncFirstLine (<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)<br/>
+</pre><p>Front-end for the encoding handler input function, but handle only the very first line, i.e. limit itself to 45 chars.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>char encoding transformation data structure</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the output.</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can't fit into the encoding we want), or</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharEncInFunc"/>xmlCharEncInFunc ()</h3><pre class="programlisting">int xmlCharEncInFunc (<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)<br/>
+</pre><p>Generic front-end for the encoding handler input function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>char encoding transformation data structure</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the output.</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can't fit into the encoding we want), or</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharEncOutFunc"/>xmlCharEncOutFunc ()</h3><pre class="programlisting">int xmlCharEncOutFunc (<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)<br/>
+</pre><p>Generic front-end for the encoding handler output function a first call with @in == NULL has to be made firs to initiate the output in case of non-stateless encoding needing to initiate their state or the output (like the BOM in UTF16). In case of UTF8 sequence conversion errors for the given encoder, the content will be automatically remapped to a CharRef sequence.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>char encoding transformation data structure</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the output.</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can't fit into the encoding we want), or</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCleanupCharEncodingHandlers"/>xmlCleanupCharEncodingHandlers ()</h3><pre class="programlisting">void xmlCleanupCharEncodingHandlers (void)<br/>
+</pre><p>Cleanup the memory allocated for the char encoding support, it unregisters all the encoding handlers and the aliases.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCleanupEncodingAliases"/>xmlCleanupEncodingAliases ()</h3><pre class="programlisting">void xmlCleanupEncodingAliases (void)<br/>
+</pre><p>Unregisters all aliases</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDelEncodingAlias"/>xmlDelEncodingAlias ()</h3><pre class="programlisting">int xmlDelEncodingAlias (const char * alias)<br/>
+</pre><p>Unregisters an encoding alias @alias</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>alias</tt></i>:</span></td><td>the alias name as parsed, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDetectCharEncoding"/>xmlDetectCharEncoding ()</h3><pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> xmlDetectCharEncoding (const unsigned char * in, <br/> int len)<br/>
+</pre><p>Guess the encoding of the entity using the first bytes of the entity content according to the non-normative appendix F of the XML-1.0 recommendation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to the first bytes of the XML entity, must be at least 2 bytes long (at least 4 if encoding is UTF4 variant).</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>pointer to the length of the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>one of the XML_CHAR_ENCODING_... values.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFindCharEncodingHandler"/>xmlFindCharEncodingHandler ()</h3><pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> xmlFindCharEncodingHandler (const char * name)<br/>
+</pre><p>Search in the registered set the handler able to read/write that encoding.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>a string describing the char encoding.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the handler or NULL if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetCharEncodingHandler"/>xmlGetCharEncodingHandler ()</h3><pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> xmlGetCharEncodingHandler (<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Search in the registered set the handler able to read/write that encoding.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>an <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> value.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the handler or NULL if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetCharEncodingName"/>xmlGetCharEncodingName ()</h3><pre class="programlisting">const char * xmlGetCharEncodingName (<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>The "canonical" name for XML encoding. C.f. http://www.w3.org/TR/REC-xml#charencoding Section 4.3.3 Character Encoding in Entities</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the canonical name for the given encoding</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetEncodingAlias"/>xmlGetEncodingAlias ()</h3><pre class="programlisting">const char * xmlGetEncodingAlias (const char * alias)<br/>
+</pre><p>Lookup an encoding name for the given alias.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>alias</tt></i>:</span></td><td>the alias name as parsed, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not found, otherwise the original name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitCharEncodingHandlers"/>xmlInitCharEncodingHandlers ()</h3><pre class="programlisting">void xmlInitCharEncodingHandlers (void)<br/>
+</pre><p>Initialize the char encoding support, it registers the default encoding supported. NOTE: while public, this function usually doesn't need to be called in normal processing.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewCharEncodingHandler"/>xmlNewCharEncodingHandler ()</h3><pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> xmlNewCharEncodingHandler (const char * name, <br/> <a href="libxml2-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> input, <br/> <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> output)<br/>
+</pre><p>Create and registers an xmlCharEncodingHandler.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the encoding name, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the <a href="libxml2-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> to read that encoding</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> to write that encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> created (or NULL in case of error).</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseCharEncoding"/>xmlParseCharEncoding ()</h3><pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> xmlParseCharEncoding (const char * name)<br/>
+</pre><p>Compare the string to the encoding schemes already known. Note that the comparison is case insensitive accordingly to the section [XML] 4.3.3 Character Encoding in Entities.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the encoding name as parsed, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>one of the XML_CHAR_ENCODING_... values or <a href="libxml2-encoding.html#XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a> if not recognized.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegisterCharEncodingHandler"/>xmlRegisterCharEncodingHandler ()</h3><pre class="programlisting">void xmlRegisterCharEncodingHandler (<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)<br/>
+</pre><p>Register the char encoding handler, surprising, isn't it ?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler block</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-entities.html b/libxml2-2.9.10/doc/devhelp/libxml2-entities.html
new file mode 100644
index 0000000..a40104c
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-entities.html
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>entities: interface for the XML entities handling</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-encoding.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-globals.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">entities</span>
+ </h2>
+ <p>entities - interface for the XML entities handling</p>
+ <p>this module provides some of the entity API needed for the parser and applications. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef enum <a href="#xmlEntityType">xmlEntityType</a>;
+typedef struct _xmlHashTable <a href="#xmlEntitiesTable">xmlEntitiesTable</a>;
+typedef <a href="libxml2-entities.html#xmlEntitiesTable">xmlEntitiesTable</a> * <a href="#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a>;
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlAddDocEntity">xmlAddDocEntity</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlNewEntity">xmlNewEntity</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * input);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlGetDocEntity">xmlGetDocEntity</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlGetDtdEntity">xmlGetDtdEntity</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlAddDtdEntity">xmlAddDtdEntity</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+<a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> <a href="#xmlCopyEntitiesTable">xmlCopyEntitiesTable</a> (<a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table);
+void <a href="#xmlFreeEntitiesTable">xmlFreeEntitiesTable</a> (<a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlGetParameterEntity">xmlGetParameterEntity</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#xmlDumpEntitiesTable">xmlDumpEntitiesTable</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table);
+void <a href="#xmlDumpEntityDecl">xmlDumpEntityDecl</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> ent);
+void <a href="#xmlCleanupPredefinedEntities">xmlCleanupPredefinedEntities</a> (void);
+<a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> <a href="#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a> (void);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlEncodeEntities">xmlEncodeEntities</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * input);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * input);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlGetPredefinedEntity">xmlGetPredefinedEntity</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#xmlInitializePredefinedEntities">xmlInitializePredefinedEntities</a> (void);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlEntitiesTable">Structure </a>xmlEntitiesTable</h3><pre class="programlisting">struct _xmlHashTable {
+The content of this structure is not made public by the API.
+} xmlEntitiesTable;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlEntitiesTablePtr">Typedef </a>xmlEntitiesTablePtr</h3><pre class="programlisting"><a href="libxml2-entities.html#xmlEntitiesTable">xmlEntitiesTable</a> * xmlEntitiesTablePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlEntityType">Enum </a>xmlEntityType</h3><pre class="programlisting">enum <a href="#xmlEntityType">xmlEntityType</a> {
+ <a name="XML_INTERNAL_GENERAL_ENTITY">XML_INTERNAL_GENERAL_ENTITY</a> = 1
+ <a name="XML_EXTERNAL_GENERAL_PARSED_ENTITY">XML_EXTERNAL_GENERAL_PARSED_ENTITY</a> = 2
+ <a name="XML_EXTERNAL_GENERAL_UNPARSED_ENTITY">XML_EXTERNAL_GENERAL_UNPARSED_ENTITY</a> = 3
+ <a name="XML_INTERNAL_PARAMETER_ENTITY">XML_INTERNAL_PARAMETER_ENTITY</a> = 4
+ <a name="XML_EXTERNAL_PARAMETER_ENTITY">XML_EXTERNAL_PARAMETER_ENTITY</a> = 5
+ <a name="XML_INTERNAL_PREDEFINED_ENTITY">XML_INTERNAL_PREDEFINED_ENTITY</a> = 6
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddDocEntity"/>xmlAddDocEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlAddDocEntity (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Register a new entity for this document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type XML_xxx_yyy_ENTITY</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the entity external ID if available</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the entity system ID if available</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the entity or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddDtdEntity"/>xmlAddDtdEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlAddDtdEntity (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Register a new entity for this document DTD external subset.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type XML_xxx_yyy_ENTITY</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the entity external ID if available</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the entity system ID if available</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the entity or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCleanupPredefinedEntities"/>xmlCleanupPredefinedEntities ()</h3><pre class="programlisting">void xmlCleanupPredefinedEntities (void)<br/>
+</pre><p>Cleanup up the predefined entities table. Deprecated call</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyEntitiesTable"/>xmlCopyEntitiesTable ()</h3><pre class="programlisting"><a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> xmlCopyEntitiesTable (<a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table)<br/>
+</pre><p>Build a copy of an entity table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An entity table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreateEntitiesTable"/>xmlCreateEntitiesTable ()</h3><pre class="programlisting"><a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> xmlCreateEntitiesTable (void)<br/>
+</pre><p>create and initialize an empty entities hash table. This really doesn't make sense and should be deprecated</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> just created or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDumpEntitiesTable"/>xmlDumpEntitiesTable ()</h3><pre class="programlisting">void xmlDumpEntitiesTable (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table)<br/>
+</pre><p>This will dump the content of the entity table as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>An XML buffer.</td></tr><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An entity table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDumpEntityDecl"/>xmlDumpEntityDecl ()</h3><pre class="programlisting">void xmlDumpEntityDecl (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> ent)<br/>
+</pre><p>This will dump the content of the entity table as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>An XML buffer.</td></tr><tr><td><span class="term"><i><tt>ent</tt></i>:</span></td><td>An entity table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlEncodeEntities"/>xmlEncodeEntities ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlEncodeEntities (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * input)<br/>
+</pre><p>TODO: remove xmlEncodeEntities, once we are not afraid of breaking binary compatibility People must migrate their code to <a href="libxml2-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a> ! This routine will issue a warning when encountered.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document containing the string</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>A string to convert to XML.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlEncodeEntitiesReentrant"/>xmlEncodeEntitiesReentrant ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlEncodeEntitiesReentrant (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * input)<br/>
+</pre><p>Do a global encoding of a string, replacing the predefined entities and non ASCII values with their entities and CharRef counterparts. Contrary to xmlEncodeEntities, this routine is reentrant, and result must be deallocated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document containing the string</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>A string to convert to XML.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>A newly allocated string with the substitution done.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlEncodeSpecialChars"/>xmlEncodeSpecialChars ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlEncodeSpecialChars (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * input)<br/>
+</pre><p>Do a global encoding of a string, replacing the predefined entities this routine is reentrant, and result must be deallocated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document containing the string</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>A string to convert to XML.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>A newly allocated string with the substitution done.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeEntitiesTable"/>xmlFreeEntitiesTable ()</h3><pre class="programlisting">void xmlFreeEntitiesTable (<a href="libxml2-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table)<br/>
+</pre><p>Deallocate the memory used by an entities hash table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An entity table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetDocEntity"/>xmlGetDocEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlGetDocEntity (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Do an entity lookup in the document entity hash table and</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document referencing the entity</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the corresponding entity, otherwise a lookup is done in the predefined entities too. Returns A pointer to the entity structure or NULL if not found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetDtdEntity"/>xmlGetDtdEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlGetDtdEntity (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Do an entity lookup in the DTD entity hash table and</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document referencing the entity</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the corresponding entity, if found. Note: the first argument is the document node, not the DTD node. Returns A pointer to the entity structure or NULL if not found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetParameterEntity"/>xmlGetParameterEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlGetParameterEntity (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Do an entity lookup in the internal and external subsets and</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document referencing the entity</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the corresponding parameter entity, if found. Returns A pointer to the entity structure or NULL if not found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetPredefinedEntity"/>xmlGetPredefinedEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlGetPredefinedEntity (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Check whether this name is an predefined entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the entity</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitializePredefinedEntities"/>xmlInitializePredefinedEntities ()</h3><pre class="programlisting">void xmlInitializePredefinedEntities (void)<br/>
+</pre><p>Set up the predefined entities. Deprecated call</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewEntity"/>xmlNewEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlNewEntity (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Create a new entity, this differs from xmlAddDocEntity() that if the document is NULL or has no internal subset defined, then an unlinked entity structure will be returned, it is then the responsibility of the caller to link it to the document later or free it when not needed anymore.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type XML_xxx_yyy_ENTITY</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the entity external ID if available</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the entity system ID if available</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the entity or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-globals.html b/libxml2-2.9.10/doc/devhelp/libxml2-globals.html
new file mode 100644
index 0000000..415492b
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-globals.html
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>globals: interface for all global variables of the library</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-entities.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-hash.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">globals</span>
+ </h2>
+ <p>globals - interface for all global variables of the library</p>
+ <p>all the global variables and thread handling for those variables is handled by this module. The bottom of this file is automatically generated by build_glob.py based on the description file global.data </p>
+ <p>Author(s): Gary Pennington &lt;Gary.Pennington@uk.sun.com&gt;, Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef <a href="libxml2-globals.html#xmlGlobalState">xmlGlobalState</a> * <a href="#xmlGlobalStatePtr">xmlGlobalStatePtr</a>;
+typedef struct _xmlGlobalState <a href="#xmlGlobalState">xmlGlobalState</a>;
+void <a href="#xmlThrDefSetStructuredErrorFunc">xmlThrDefSetStructuredErrorFunc</a> (void * ctx, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> handler);
+void <a href="#xmlInitializeGlobalState">xmlInitializeGlobalState</a> (<a href="libxml2-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a> gs);
+<a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> <a href="#xmlThrDefBufferAllocScheme">xmlThrDefBufferAllocScheme</a> (<a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> v);
+int <a href="#xmlThrDefPedanticParserDefaultValue">xmlThrDefPedanticParserDefaultValue</a> (int v);
+<a href="libxml2-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> <a href="#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a> (<a href="libxml2-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> func);
+typedef <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> (const char * URI, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+<a href="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> <a href="#xmlThrDefOutputBufferCreateFilenameDefault">xmlThrDefOutputBufferCreateFilenameDefault</a> (<a href="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> func);
+<a href="libxml2-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> <a href="#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a> (<a href="libxml2-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> func);
+int <a href="#xmlThrDefDefaultBufferSize">xmlThrDefDefaultBufferSize</a> (int v);
+<a href="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> <a href="#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a> (<a href="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> func);
+int <a href="#xmlThrDefLoadExtDtdDefaultValue">xmlThrDefLoadExtDtdDefaultValue</a> (int v);
+<a href="libxml2-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> <a href="#xmlThrDefRegisterNodeDefault">xmlThrDefRegisterNodeDefault</a> (<a href="libxml2-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> func);
+int <a href="#xmlThrDefKeepBlanksDefaultValue">xmlThrDefKeepBlanksDefaultValue</a> (int v);
+typedef void <a href="#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+int <a href="#xmlThrDefParserDebugEntities">xmlThrDefParserDebugEntities</a> (int v);
+<a href="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> <a href="#xmlThrDefParserInputBufferCreateFilenameDefault">xmlThrDefParserInputBufferCreateFilenameDefault</a> (<a href="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> func);
+void <a href="#xmlThrDefSetGenericErrorFunc">xmlThrDefSetGenericErrorFunc</a> (void * ctx, <br/> <a href="libxml2-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> handler);
+<a href="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> <a href="#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a> (<a href="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> func);
+int <a href="#xmlThrDefDoValidityCheckingDefaultValue">xmlThrDefDoValidityCheckingDefaultValue</a> (int v);
+void <a href="#xmlCleanupGlobals">xmlCleanupGlobals</a> (void);
+int <a href="#xmlThrDefGetWarningsDefaultValue">xmlThrDefGetWarningsDefaultValue</a> (int v);
+<a href="libxml2-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> <a href="#xmlThrDefDeregisterNodeDefault">xmlThrDefDeregisterNodeDefault</a> (<a href="libxml2-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> func);
+int <a href="#xmlThrDefSubstituteEntitiesDefaultValue">xmlThrDefSubstituteEntitiesDefaultValue</a> (int v);
+typedef void <a href="#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+int <a href="#xmlThrDefSaveNoEmptyTags">xmlThrDefSaveNoEmptyTags</a> (int v);
+int <a href="#xmlThrDefIndentTreeOutput">xmlThrDefIndentTreeOutput</a> (int v);
+typedef <a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> (const char * URI, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder, <br/> int compression);
+void <a href="#xmlInitGlobals">xmlInitGlobals</a> (void);
+int <a href="#xmlThrDefLineNumbersDefaultValue">xmlThrDefLineNumbersDefaultValue</a> (int v);
+const char * <a href="#xmlThrDefTreeIndentString">xmlThrDefTreeIndentString</a> (const char * v);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlGlobalState">Structure </a>xmlGlobalState</h3><pre class="programlisting">struct _xmlGlobalState {
+ const char * xmlParserVersion
+ <a href="libxml2-tree.html#xmlSAXLocator">xmlSAXLocator</a> xmlDefaultSAXLocator
+ <a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> xmlDefaultSAXHandler
+ <a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> docbDefaultSAXHandler
+ <a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> htmlDefaultSAXHandler
+ <a href="libxml2-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> xmlFree
+ <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> xmlMalloc
+ <a href="libxml2-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> xmlMemStrdup
+ <a href="libxml2-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> xmlRealloc
+ <a href="libxml2-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> xmlGenericError
+ <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> xmlStructuredError
+ void * xmlGenericErrorContext
+ int oldXMLWDcompatibility
+ <a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> xmlBufferAllocScheme
+ int xmlDefaultBufferSize
+ int xmlSubstituteEntitiesDefaultValue
+ int xmlDoValidityCheckingDefaultValue
+ int xmlGetWarningsDefaultValue
+ int xmlKeepBlanksDefaultValue
+ int xmlLineNumbersDefaultValue
+ int xmlLoadExtDtdDefaultValue
+ int xmlParserDebugEntities
+ int xmlPedanticParserDefaultValue
+ int xmlSaveNoEmptyTags
+ int xmlIndentTreeOutput
+ const char * xmlTreeIndentString
+ <a href="libxml2-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> xmlRegisterNodeDefaultValue
+ <a href="libxml2-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> xmlDeregisterNodeDefaultValue
+ <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> xmlMallocAtomic
+ <a href="libxml2-xmlerror.html#xmlError">xmlError</a> xmlLastError
+ <a href="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> xmlParserInputBufferCreateFilenameValue
+ <a href="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> xmlOutputBufferCreateFilenameValue
+ void * xmlStructuredErrorContext
+} xmlGlobalState;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGlobalStatePtr">Typedef </a>xmlGlobalStatePtr</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlGlobalState">xmlGlobalState</a> * xmlGlobalStatePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDeregisterNodeFunc"/>Function type xmlDeregisterNodeFunc</h3><pre class="programlisting">void xmlDeregisterNodeFunc (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Signature for the deregistration callback of a discarded node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateFilenameFunc"/>Function type xmlOutputBufferCreateFilenameFunc</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFilenameFunc (const char * URI, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder, <br/> int compression)<br/>
+</pre><p>Signature for the function doing the lookup for a suitable output method corresponding to an URI.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI to write to</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> in case of success or NULL if no method was found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateFilenameFunc"/>Function type xmlParserInputBufferCreateFilenameFunc</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFilenameFunc (const char * URI, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Signature for the function doing the lookup for a suitable input method corresponding to an URI.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI to read from</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the requested source encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in case of success or NULL if no method was found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegisterNodeFunc"/>Function type xmlRegisterNodeFunc</h3><pre class="programlisting">void xmlRegisterNodeFunc (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Signature for the registration callback of a created node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="docbDefaultSAXHandler">Variable </a>docbDefaultSAXHandler</h3><pre class="programlisting"><a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> docbDefaultSAXHandler;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlDefaultSAXHandler">Variable </a>htmlDefaultSAXHandler</h3><pre class="programlisting"><a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> htmlDefaultSAXHandler;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="oldXMLWDcompatibility">Variable </a>oldXMLWDcompatibility</h3><pre class="programlisting">int oldXMLWDcompatibility;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferAllocScheme">Variable </a>xmlBufferAllocScheme</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> xmlBufferAllocScheme;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDefaultBufferSize">Variable </a>xmlDefaultBufferSize</h3><pre class="programlisting">int xmlDefaultBufferSize;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDefaultSAXHandler">Variable </a>xmlDefaultSAXHandler</h3><pre class="programlisting"><a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> xmlDefaultSAXHandler;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDefaultSAXLocator">Variable </a>xmlDefaultSAXLocator</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlSAXLocator">xmlSAXLocator</a> xmlDefaultSAXLocator;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDeregisterNodeDefaultValue">Variable </a>xmlDeregisterNodeDefaultValue</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> xmlDeregisterNodeDefaultValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDoValidityCheckingDefaultValue">Variable </a>xmlDoValidityCheckingDefaultValue</h3><pre class="programlisting">int xmlDoValidityCheckingDefaultValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFree">Variable </a>xmlFree</h3><pre class="programlisting"><a href="libxml2-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> xmlFree;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGenericError">Variable </a>xmlGenericError</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> xmlGenericError;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGenericErrorContext">Variable </a>xmlGenericErrorContext</h3><pre class="programlisting">void * xmlGenericErrorContext;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetWarningsDefaultValue">Variable </a>xmlGetWarningsDefaultValue</h3><pre class="programlisting">int xmlGetWarningsDefaultValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIndentTreeOutput">Variable </a>xmlIndentTreeOutput</h3><pre class="programlisting">int xmlIndentTreeOutput;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlKeepBlanksDefaultValue">Variable </a>xmlKeepBlanksDefaultValue</h3><pre class="programlisting">int xmlKeepBlanksDefaultValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLastError">Variable </a>xmlLastError</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlError">xmlError</a> xmlLastError;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLineNumbersDefaultValue">Variable </a>xmlLineNumbersDefaultValue</h3><pre class="programlisting">int xmlLineNumbersDefaultValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLoadExtDtdDefaultValue">Variable </a>xmlLoadExtDtdDefaultValue</h3><pre class="programlisting">int xmlLoadExtDtdDefaultValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMalloc">Variable </a>xmlMalloc</h3><pre class="programlisting"><a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> xmlMalloc;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMallocAtomic">Variable </a>xmlMallocAtomic</h3><pre class="programlisting"><a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> xmlMallocAtomic;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemStrdup">Variable </a>xmlMemStrdup</h3><pre class="programlisting"><a href="libxml2-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> xmlMemStrdup;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateFilenameValue">Variable </a>xmlOutputBufferCreateFilenameValue</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> xmlOutputBufferCreateFilenameValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserDebugEntities">Variable </a>xmlParserDebugEntities</h3><pre class="programlisting">int xmlParserDebugEntities;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateFilenameValue">Variable </a>xmlParserInputBufferCreateFilenameValue</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> xmlParserInputBufferCreateFilenameValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserVersion">Variable </a>xmlParserVersion</h3><pre class="programlisting">const char * xmlParserVersion;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPedanticParserDefaultValue">Variable </a>xmlPedanticParserDefaultValue</h3><pre class="programlisting">int xmlPedanticParserDefaultValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRealloc">Variable </a>xmlRealloc</h3><pre class="programlisting"><a href="libxml2-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> xmlRealloc;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegisterNodeDefaultValue">Variable </a>xmlRegisterNodeDefaultValue</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> xmlRegisterNodeDefaultValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveNoEmptyTags">Variable </a>xmlSaveNoEmptyTags</h3><pre class="programlisting">int xmlSaveNoEmptyTags;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStructuredError">Variable </a>xmlStructuredError</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> xmlStructuredError;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStructuredErrorContext">Variable </a>xmlStructuredErrorContext</h3><pre class="programlisting">void * xmlStructuredErrorContext;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSubstituteEntitiesDefaultValue">Variable </a>xmlSubstituteEntitiesDefaultValue</h3><pre class="programlisting">int xmlSubstituteEntitiesDefaultValue;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTreeIndentString">Variable </a>xmlTreeIndentString</h3><pre class="programlisting">const char * xmlTreeIndentString;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCleanupGlobals"/>xmlCleanupGlobals ()</h3><pre class="programlisting">void xmlCleanupGlobals (void)<br/>
+</pre><p>Additional cleanup for multi-threading</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDeregisterNodeDefault"/>xmlDeregisterNodeDefault ()</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> xmlDeregisterNodeDefault (<a href="libxml2-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> func)<br/>
+</pre><p>Registers a callback for node destruction</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>function pointer to the new DeregisterNodeFunc</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous value of the deregistration function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitGlobals"/>xmlInitGlobals ()</h3><pre class="programlisting">void xmlInitGlobals (void)<br/>
+</pre><p>Additional initialisation for multi-threading</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitializeGlobalState"/>xmlInitializeGlobalState ()</h3><pre class="programlisting">void xmlInitializeGlobalState (<a href="libxml2-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a> gs)<br/>
+</pre><p>xmlInitializeGlobalState() initialize a global state with all the default values of the library.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>gs</tt></i>:</span></td><td>a pointer to a newly allocated global state</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateFilenameDefault"/>xmlOutputBufferCreateFilenameDefault ()</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> xmlOutputBufferCreateFilenameDefault (<a href="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> func)<br/>
+</pre><p>Registers a callback for URI output file handling</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>function pointer to the new OutputBufferCreateFilenameFunc</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the old value of the registration function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateFilenameDefault"/>xmlParserInputBufferCreateFilenameDefault ()</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> xmlParserInputBufferCreateFilenameDefault (<a href="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> func)<br/>
+</pre><p>Registers a callback for URI input file handling</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>function pointer to the new ParserInputBufferCreateFilenameFunc</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the old value of the registration function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegisterNodeDefault"/>xmlRegisterNodeDefault ()</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> xmlRegisterNodeDefault (<a href="libxml2-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> func)<br/>
+</pre><p>Registers a callback for node creation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>function pointer to the new RegisterNodeFunc</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the old value of the registration function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefBufferAllocScheme"/>xmlThrDefBufferAllocScheme ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> xmlThrDefBufferAllocScheme (<a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefDefaultBufferSize"/>xmlThrDefDefaultBufferSize ()</h3><pre class="programlisting">int xmlThrDefDefaultBufferSize (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefDeregisterNodeDefault"/>xmlThrDefDeregisterNodeDefault ()</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> xmlThrDefDeregisterNodeDefault (<a href="libxml2-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> func)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefDoValidityCheckingDefaultValue"/>xmlThrDefDoValidityCheckingDefaultValue ()</h3><pre class="programlisting">int xmlThrDefDoValidityCheckingDefaultValue (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefGetWarningsDefaultValue"/>xmlThrDefGetWarningsDefaultValue ()</h3><pre class="programlisting">int xmlThrDefGetWarningsDefaultValue (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefIndentTreeOutput"/>xmlThrDefIndentTreeOutput ()</h3><pre class="programlisting">int xmlThrDefIndentTreeOutput (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefKeepBlanksDefaultValue"/>xmlThrDefKeepBlanksDefaultValue ()</h3><pre class="programlisting">int xmlThrDefKeepBlanksDefaultValue (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefLineNumbersDefaultValue"/>xmlThrDefLineNumbersDefaultValue ()</h3><pre class="programlisting">int xmlThrDefLineNumbersDefaultValue (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefLoadExtDtdDefaultValue"/>xmlThrDefLoadExtDtdDefaultValue ()</h3><pre class="programlisting">int xmlThrDefLoadExtDtdDefaultValue (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefOutputBufferCreateFilenameDefault"/>xmlThrDefOutputBufferCreateFilenameDefault ()</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> xmlThrDefOutputBufferCreateFilenameDefault (<a href="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> func)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefParserDebugEntities"/>xmlThrDefParserDebugEntities ()</h3><pre class="programlisting">int xmlThrDefParserDebugEntities (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefParserInputBufferCreateFilenameDefault"/>xmlThrDefParserInputBufferCreateFilenameDefault ()</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> xmlThrDefParserInputBufferCreateFilenameDefault (<a href="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> func)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefPedanticParserDefaultValue"/>xmlThrDefPedanticParserDefaultValue ()</h3><pre class="programlisting">int xmlThrDefPedanticParserDefaultValue (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefRegisterNodeDefault"/>xmlThrDefRegisterNodeDefault ()</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> xmlThrDefRegisterNodeDefault (<a href="libxml2-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> func)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefSaveNoEmptyTags"/>xmlThrDefSaveNoEmptyTags ()</h3><pre class="programlisting">int xmlThrDefSaveNoEmptyTags (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefSetGenericErrorFunc"/>xmlThrDefSetGenericErrorFunc ()</h3><pre class="programlisting">void xmlThrDefSetGenericErrorFunc (void * ctx, <br/> <a href="libxml2-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> handler)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefSetStructuredErrorFunc"/>xmlThrDefSetStructuredErrorFunc ()</h3><pre class="programlisting">void xmlThrDefSetStructuredErrorFunc (void * ctx, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> handler)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefSubstituteEntitiesDefaultValue"/>xmlThrDefSubstituteEntitiesDefaultValue ()</h3><pre class="programlisting">int xmlThrDefSubstituteEntitiesDefaultValue (int v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlThrDefTreeIndentString"/>xmlThrDefTreeIndentString ()</h3><pre class="programlisting">const char * xmlThrDefTreeIndentString (const char * v)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-hash.html b/libxml2-2.9.10/doc/devhelp/libxml2-hash.html
new file mode 100644
index 0000000..9f997fb
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-hash.html
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>hash: Chained hash tables</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-globals.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-list.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">hash</span>
+ </h2>
+ <p>hash - Chained hash tables</p>
+ <p>This module implements the hash table support used in various places in the library. </p>
+ <p>Author(s): Bjorn Reese &lt;bjorn.reese@systematic.dk&gt; </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#XML_CAST_FPTR">XML_CAST_FPTR</a>(fptr);
+typedef struct _xmlHashTable <a href="#xmlHashTable">xmlHashTable</a>;
+typedef <a href="libxml2-hash.html#xmlHashTable">xmlHashTable</a> * <a href="#xmlHashTablePtr">xmlHashTablePtr</a>;
+void <a href="#xmlHashScanFull">xmlHashScanFull</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br/> void * data);
+void <a href="#xmlHashScan">xmlHashScan</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br/> void * data);
+typedef void <a href="#xmlHashScannerFull">xmlHashScannerFull</a> (void * payload, <br/> void * data, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3);
+<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreateDict">xmlHashCreateDict</a> (int size, <br/> <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict);
+int <a href="#xmlHashAddEntry">xmlHashAddEntry</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> void * userdata);
+int <a href="#xmlHashUpdateEntry">xmlHashUpdateEntry</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> void * userdata, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
+void * <a href="#xmlHashQLookup3">xmlHashQLookup3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix3, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3);
+void * <a href="#xmlHashQLookup2">xmlHashQLookup2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2);
+void <a href="#xmlHashScan3">xmlHashScan3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br/> void * data);
+typedef void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br/> void * data, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+typedef void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreate">xmlHashCreate</a> (int size);
+void <a href="#xmlHashFree">xmlHashFree</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
+void * <a href="#xmlHashLookup">xmlHashLookup</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void * <a href="#xmlHashQLookup">xmlHashQLookup</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> void * userdata, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
+int <a href="#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
+int <a href="#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
+<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCopy">xmlHashCopy</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashCopier">xmlHashCopier</a> f);
+void <a href="#xmlHashScanFull3">xmlHashScanFull3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br/> void * data);
+int <a href="#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> void * userdata, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
+void <a href="#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a> (void * entry, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void * <a href="#xmlHashLookup3">xmlHashLookup3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3);
+void * <a href="#xmlHashLookup2">xmlHashLookup2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2);
+int <a href="#xmlHashRemoveEntry">xmlHashRemoveEntry</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
+typedef void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlHashAddEntry2">xmlHashAddEntry2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> void * userdata);
+int <a href="#xmlHashAddEntry3">xmlHashAddEntry3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> void * userdata);
+int <a href="#xmlHashSize">xmlHashSize</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="XML_CAST_FPTR">Macro </a>XML_CAST_FPTR</h3><pre class="programlisting">#define <a href="#XML_CAST_FPTR">XML_CAST_FPTR</a>(fptr);
+</pre><p>Macro to do a casting from an object pointer to a function pointer without encountering a warning from gcc #define XML_CAST_FPTR(fptr) (*(void **)(&amp;fptr)) This macro violated ISO C aliasing rules (gcc4 on s390 broke) so it is disabled now</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>fptr</tt></i>:</span></td><td>pointer to a function</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashTable">Structure </a>xmlHashTable</h3><pre class="programlisting">struct _xmlHashTable {
+The content of this structure is not made public by the API.
+} xmlHashTable;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashTablePtr">Typedef </a>xmlHashTablePtr</h3><pre class="programlisting"><a href="libxml2-hash.html#xmlHashTable">xmlHashTable</a> * xmlHashTablePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashCopier"/>Function type xmlHashCopier</h3><pre class="programlisting">void * xmlHashCopier (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Callback to copy data from a hash.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the data or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashDeallocator"/>Function type xmlHashDeallocator</h3><pre class="programlisting">void xmlHashDeallocator (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Callback to free data from a hash.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashScanner"/>Function type xmlHashScanner</h3><pre class="programlisting">void xmlHashScanner (void * payload, <br/> void * data, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Callback when scanning data in a hash with the simple scanner.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra scanner data</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashScannerFull"/>Function type xmlHashScannerFull</h3><pre class="programlisting">void xmlHashScannerFull (void * payload, <br/> void * data, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3)<br/>
+</pre><p>Callback when scanning data in a hash with the full scanner.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra scanner data</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>the second name associated</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>the third name associated</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashAddEntry"/>xmlHashAddEntry ()</h3><pre class="programlisting">int xmlHashAddEntry (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> void * userdata)<br/>
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the @name. Duplicate names generate errors.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashAddEntry2"/>xmlHashAddEntry2 ()</h3><pre class="programlisting">int xmlHashAddEntry2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> void * userdata)<br/>
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Duplicate tuples generate errors.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashAddEntry3"/>xmlHashAddEntry3 ()</h3><pre class="programlisting">int xmlHashAddEntry3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> void * userdata)<br/>
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Duplicate entries generate errors.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashCopy"/>xmlHashCopy ()</h3><pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCopy (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashCopier">xmlHashCopier</a> f)<br/>
+</pre><p>Scan the hash @table and applied @f to each value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the copier function for items in the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new table or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashCreate"/>xmlHashCreate ()</h3><pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreate (int size)<br/>
+</pre><p>Create a new xmlHashTablePtr.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashCreateDict"/>xmlHashCreateDict ()</h3><pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreateDict (int size, <br/> <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
+</pre><p>Create a new <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> which will use @dict as the internal dictionary</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashDefaultDeallocator"/>xmlHashDefaultDeallocator ()</h3><pre class="programlisting">void xmlHashDefaultDeallocator (void * entry, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Free a hash table entry with xmlFree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>entry</tt></i>:</span></td><td>the hash table entry</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entry's name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashFree"/>xmlHashFree ()</h3><pre class="programlisting">void xmlHashFree (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br/>
+</pre><p>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for items in the hash</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashLookup"/>xmlHashLookup ()</h3><pre class="programlisting">void * xmlHashLookup (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Find the userdata specified by the @name.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer to the userdata</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashLookup2"/>xmlHashLookup2 ()</h3><pre class="programlisting">void * xmlHashLookup2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2)<br/>
+</pre><p>Find the userdata specified by the (@name, @name2) tuple.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer to the userdata</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashLookup3"/>xmlHashLookup3 ()</h3><pre class="programlisting">void * xmlHashLookup3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3)<br/>
+</pre><p>Find the userdata specified by the (@name, @name2, @name3) tuple.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the a pointer to the userdata</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashQLookup"/>xmlHashQLookup ()</h3><pre class="programlisting">void * xmlHashQLookup (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Find the userdata specified by the QName @prefix:@name/@name.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer to the userdata</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashQLookup2"/>xmlHashQLookup2 ()</h3><pre class="programlisting">void * xmlHashQLookup2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2)<br/>
+</pre><p>Find the userdata specified by the QNames tuple</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>prefix2</tt></i>:</span></td><td>the second prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer to the userdata</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashQLookup3"/>xmlHashQLookup3 ()</h3><pre class="programlisting">void * xmlHashQLookup3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix3, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3)<br/>
+</pre><p>Find the userdata specified by the (@name, @name2, @name3) tuple.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>prefix2</tt></i>:</span></td><td>the second prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>prefix3</tt></i>:</span></td><td>the third prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the a pointer to the userdata</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashRemoveEntry"/>xmlHashRemoveEntry ()</h3><pre class="programlisting">int xmlHashRemoveEntry (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br/>
+</pre><p>Find the userdata specified by the @name and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for removed item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the removal succeeded and -1 in case of error or not found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashRemoveEntry2"/>xmlHashRemoveEntry2 ()</h3><pre class="programlisting">int xmlHashRemoveEntry2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br/>
+</pre><p>Find the userdata specified by the (@name, @name2) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for removed item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the removal succeeded and -1 in case of error or not found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashRemoveEntry3"/>xmlHashRemoveEntry3 ()</h3><pre class="programlisting">int xmlHashRemoveEntry3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br/>
+</pre><p>Find the userdata specified by the (@name, @name2, @name3) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for removed item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the removal succeeded and -1 in case of error or not found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashScan"/>xmlHashScan ()</h3><pre class="programlisting">void xmlHashScan (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br/> void * data)<br/>
+</pre><p>Scan the hash @table and applied @f to each value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashScan3"/>xmlHashScan3 ()</h3><pre class="programlisting">void xmlHashScan3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br/> void * data)<br/>
+</pre><p>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashScanFull"/>xmlHashScanFull ()</h3><pre class="programlisting">void xmlHashScanFull (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br/> void * data)<br/>
+</pre><p>Scan the hash @table and applied @f to each value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashScanFull3"/>xmlHashScanFull3 ()</h3><pre class="programlisting">void xmlHashScanFull3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br/> void * data)<br/>
+</pre><p>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashSize"/>xmlHashSize ()</h3><pre class="programlisting">int xmlHashSize (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table)<br/>
+</pre><p>Query the number of elements installed in the hash @table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the hash table or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashUpdateEntry"/>xmlHashUpdateEntry ()</h3><pre class="programlisting">int xmlHashUpdateEntry (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> void * userdata, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br/>
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the @name. Existing entry for this @name will be removed and freed with @f if found.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for replaced item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashUpdateEntry2"/>xmlHashUpdateEntry2 ()</h3><pre class="programlisting">int xmlHashUpdateEntry2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> void * userdata, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br/>
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Existing entry for this tuple will be removed and freed with @f if found.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for replaced item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashUpdateEntry3"/>xmlHashUpdateEntry3 ()</h3><pre class="programlisting">int xmlHashUpdateEntry3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> void * userdata, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br/>
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Existing entry for this tuple will be removed and freed with @f if found.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for replaced item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-list.html b/libxml2-2.9.10/doc/devhelp/libxml2-list.html
new file mode 100644
index 0000000..0ae2f11
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-list.html
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>list: lists interfaces</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-hash.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-nanoftp.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">list</span>
+ </h2>
+ <p>list - lists interfaces</p>
+ <p>this module implement the list support used in various place in the library. </p>
+ <p>Author(s): Gary Pennington &lt;Gary.Pennington@uk.sun.com&gt; </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef struct _xmlLink <a href="#xmlLink">xmlLink</a>;
+typedef <a href="libxml2-list.html#xmlLink">xmlLink</a> * <a href="#xmlLinkPtr">xmlLinkPtr</a>;
+typedef struct _xmlList <a href="#xmlList">xmlList</a>;
+typedef <a href="libxml2-list.html#xmlList">xmlList</a> * <a href="#xmlListPtr">xmlListPtr</a>;
+int <a href="#xmlListInsert">xmlListInsert</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
+int <a href="#xmlListEmpty">xmlListEmpty</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
+void <a href="#xmlListSort">xmlListSort</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
+typedef void <a href="#xmlListDeallocator">xmlListDeallocator</a> (<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk);
+void <a href="#xmlListMerge">xmlListMerge</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l1, <br/> <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l2);
+<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlListCreate">xmlListCreate</a> (<a href="libxml2-list.html#xmlListDeallocator">xmlListDeallocator</a> deallocator, <br/> <a href="libxml2-list.html#xmlListDataCompare">xmlListDataCompare</a> compare);
+<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlListDup">xmlListDup</a> (const <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old);
+int <a href="#xmlListRemoveLast">xmlListRemoveLast</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
+void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user);
+int <a href="#xmlListRemoveAll">xmlListRemoveAll</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
+int <a href="#xmlListCopy">xmlListCopy</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> cur, <br/> const <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old);
+void <a href="#xmlListPopFront">xmlListPopFront</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
+void * <a href="#xmlListSearch">xmlListSearch</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
+typedef int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br/> void * user);
+int <a href="#xmlListRemoveFirst">xmlListRemoveFirst</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
+void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user);
+void * <a href="#xmlLinkGetData">xmlLinkGetData</a> (<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk);
+void <a href="#xmlListClear">xmlListClear</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
+int <a href="#xmlListAppend">xmlListAppend</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
+void <a href="#xmlListReverse">xmlListReverse</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
+typedef int <a href="#xmlListDataCompare">xmlListDataCompare</a> (const void * data0, <br/> const void * data1);
+int <a href="#xmlListSize">xmlListSize</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
+int <a href="#xmlListPushFront">xmlListPushFront</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
+<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> <a href="#xmlListEnd">xmlListEnd</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
+void <a href="#xmlListPopBack">xmlListPopBack</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
+void * <a href="#xmlListReverseSearch">xmlListReverseSearch</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
+int <a href="#xmlListPushBack">xmlListPushBack</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
+<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> <a href="#xmlListFront">xmlListFront</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
+void <a href="#xmlListDelete">xmlListDelete</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlLink">Structure </a>xmlLink</h3><pre class="programlisting">struct _xmlLink {
+The content of this structure is not made public by the API.
+} xmlLink;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLinkPtr">Typedef </a>xmlLinkPtr</h3><pre class="programlisting"><a href="libxml2-list.html#xmlLink">xmlLink</a> * xmlLinkPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlList">Structure </a>xmlList</h3><pre class="programlisting">struct _xmlList {
+The content of this structure is not made public by the API.
+} xmlList;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListPtr">Typedef </a>xmlListPtr</h3><pre class="programlisting"><a href="libxml2-list.html#xmlList">xmlList</a> * xmlListPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListDataCompare"/>Function type xmlListDataCompare</h3><pre class="programlisting">int xmlListDataCompare (const void * data0, <br/> const void * data1)<br/>
+</pre><p>Callback function used to compare 2 data.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>data0</tt></i>:</span></td><td>the first data</td></tr><tr><td><span class="term"><i><tt>data1</tt></i>:</span></td><td>the second data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 is equality, -1 or 1 otherwise depending on the ordering.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListDeallocator"/>Function type xmlListDeallocator</h3><pre class="programlisting">void xmlListDeallocator (<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk)<br/>
+</pre><p>Callback function used to free data from a list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>lk</tt></i>:</span></td><td>the data to deallocate</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListWalker"/>Function type xmlListWalker</h3><pre class="programlisting">int xmlListWalker (const void * data, <br/> void * user)<br/>
+</pre><p>Callback function used when walking a list with xmlListWalk().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data found in the list</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>extra user provided data to the walker</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 to stop walking the list, 1 otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLinkGetData"/>xmlLinkGetData ()</h3><pre class="programlisting">void * xmlLinkGetData (<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk)<br/>
+</pre><p>See Returns.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>lk</tt></i>:</span></td><td>a link</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the data referenced from this link</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListAppend"/>xmlListAppend ()</h3><pre class="programlisting">int xmlListAppend (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
+</pre><p>Insert data in the ordered list at the end for this value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, 1 in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListClear"/>xmlListClear ()</h3><pre class="programlisting">void xmlListClear (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
+</pre><p>Remove the all data in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListCopy"/>xmlListCopy ()</h3><pre class="programlisting">int xmlListCopy (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> cur, <br/> const <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old)<br/>
+</pre><p>Move all the element from the old list in the new list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the new list</td></tr><tr><td><span class="term"><i><tt>old</tt></i>:</span></td><td>the old list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success 1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListCreate"/>xmlListCreate ()</h3><pre class="programlisting"><a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> xmlListCreate (<a href="libxml2-list.html#xmlListDeallocator">xmlListDeallocator</a> deallocator, <br/> <a href="libxml2-list.html#xmlListDataCompare">xmlListDataCompare</a> compare)<br/>
+</pre><p>Create a new list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>deallocator</tt></i>:</span></td><td>an optional deallocator function</td></tr><tr><td><span class="term"><i><tt>compare</tt></i>:</span></td><td>an optional comparison function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new list or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListDelete"/>xmlListDelete ()</h3><pre class="programlisting">void xmlListDelete (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
+</pre><p>Deletes the list and its associated data</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListDup"/>xmlListDup ()</h3><pre class="programlisting"><a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> xmlListDup (const <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old)<br/>
+</pre><p>Duplicate the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>old</tt></i>:</span></td><td>the list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new copy of the list or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListEmpty"/>xmlListEmpty ()</h3><pre class="programlisting">int xmlListEmpty (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
+</pre><p>Is the list empty ?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the list is empty, 0 if not empty and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListEnd"/>xmlListEnd ()</h3><pre class="programlisting"><a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> xmlListEnd (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
+</pre><p>Get the last element in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last element in the list, or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListFront"/>xmlListFront ()</h3><pre class="programlisting"><a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> xmlListFront (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
+</pre><p>Get the first element in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the first element in the list, or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListInsert"/>xmlListInsert ()</h3><pre class="programlisting">int xmlListInsert (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
+</pre><p>Insert data in the ordered list at the beginning for this value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, 1 in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListMerge"/>xmlListMerge ()</h3><pre class="programlisting">void xmlListMerge (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l1, <br/> <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l2)<br/>
+</pre><p>include all the elements of the second list in the first one and clear the second list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l1</tt></i>:</span></td><td>the original list</td></tr><tr><td><span class="term"><i><tt>l2</tt></i>:</span></td><td>the new list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListPopBack"/>xmlListPopBack ()</h3><pre class="programlisting">void xmlListPopBack (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
+</pre><p>Removes the last element in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListPopFront"/>xmlListPopFront ()</h3><pre class="programlisting">void xmlListPopFront (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
+</pre><p>Removes the first element in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListPushBack"/>xmlListPushBack ()</h3><pre class="programlisting">int xmlListPushBack (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
+</pre><p>add the new data at the end of the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>new data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if successful, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListPushFront"/>xmlListPushFront ()</h3><pre class="programlisting">int xmlListPushFront (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
+</pre><p>add the new data at the beginning of the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>new data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if successful, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListRemoveAll"/>xmlListRemoveAll ()</h3><pre class="programlisting">int xmlListRemoveAll (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
+</pre><p>Remove the all instance associated to data in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of deallocation, or 0 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListRemoveFirst"/>xmlListRemoveFirst ()</h3><pre class="programlisting">int xmlListRemoveFirst (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
+</pre><p>Remove the first instance associated to data in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListRemoveLast"/>xmlListRemoveLast ()</h3><pre class="programlisting">int xmlListRemoveLast (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
+</pre><p>Remove the last instance associated to data in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListReverse"/>xmlListReverse ()</h3><pre class="programlisting">void xmlListReverse (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
+</pre><p>Reverse the order of the elements in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListReverseSearch"/>xmlListReverseSearch ()</h3><pre class="programlisting">void * xmlListReverseSearch (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
+</pre><p>Search the list in reverse order for an existing value of @data</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListReverseWalk"/>xmlListReverseWalk ()</h3><pre class="programlisting">void xmlListReverseWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user)<br/>
+</pre><p>Walk all the element of the list in reverse order and apply the walker function to it</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListSearch"/>xmlListSearch ()</h3><pre class="programlisting">void * xmlListSearch (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
+</pre><p>Search the list for an existing value of @data</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListSize"/>xmlListSize ()</h3><pre class="programlisting">int xmlListSize (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
+</pre><p>Get the number of elements in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the list or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListSort"/>xmlListSort ()</h3><pre class="programlisting">void xmlListSort (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
+</pre><p>Sort all the elements in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListWalk"/>xmlListWalk ()</h3><pre class="programlisting">void xmlListWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user)<br/>
+</pre><p>Walk all the element of the first from first to last and apply the walker function to it</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-nanoftp.html b/libxml2-2.9.10/doc/devhelp/libxml2-nanoftp.html
new file mode 100644
index 0000000..07e10f3
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-nanoftp.html
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>nanoftp: minimal FTP implementation</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-list.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-nanohttp.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">nanoftp</span>
+ </h2>
+ <p>nanoftp - minimal FTP implementation</p>
+ <p>minimal FTP implementation allowing to fetch resources like external subset. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#INVALID_SOCKET">INVALID_SOCKET</a>;
+#define <a href="#SOCKET">SOCKET</a>;
+int <a href="#xmlNanoFTPQuit">xmlNanoFTPQuit</a> (void * ctx);
+int <a href="#xmlNanoFTPClose">xmlNanoFTPClose</a> (void * ctx);
+typedef void <a href="#ftpListCallback">ftpListCallback</a> (void * userData, <br/> const char * filename, <br/> const char * attrib, <br/> const char * owner, <br/> const char * group, <br/> unsigned long size, <br/> int links, <br/> int year, <br/> const char * month, <br/> int day, <br/> int hour, <br/> int minute);
+int <a href="#xmlNanoFTPCloseConnection">xmlNanoFTPCloseConnection</a> (void * ctx);
+void <a href="#xmlNanoFTPProxy">xmlNanoFTPProxy</a> (const char * host, <br/> int port, <br/> const char * user, <br/> const char * passwd, <br/> int type);
+int <a href="#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a> (void * ctx, <br/> const char * URL);
+<a href="libxml2-nanoftp.html#SOCKET">SOCKET</a> <a href="#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a> (void * ctx);
+int <a href="#xmlNanoFTPDele">xmlNanoFTPDele</a> (void * ctx, <br/> const char * file);
+void * <a href="#xmlNanoFTPNewCtxt">xmlNanoFTPNewCtxt</a> (const char * URL);
+int <a href="#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a> (void * ctx);
+void <a href="#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a> (const char * URL);
+typedef void <a href="#ftpDataCallback">ftpDataCallback</a> (void * userData, <br/> const char * data, <br/> int len);
+int <a href="#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a> (void * ctx);
+int <a href="#xmlNanoFTPCwd">xmlNanoFTPCwd</a> (void * ctx, <br/> const char * directory);
+void <a href="#xmlNanoFTPInit">xmlNanoFTPInit</a> (void);
+void * <a href="#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a> (const char * server, <br/> int port);
+int <a href="#xmlNanoFTPList">xmlNanoFTPList</a> (void * ctx, <br/> <a href="libxml2-nanoftp.html#ftpListCallback">ftpListCallback</a> callback, <br/> void * userData, <br/> const char * filename);
+void * <a href="#xmlNanoFTPOpen">xmlNanoFTPOpen</a> (const char * URL);
+int <a href="#xmlNanoFTPConnect">xmlNanoFTPConnect</a> (void * ctx);
+<a href="libxml2-nanoftp.html#SOCKET">SOCKET</a> <a href="#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a> (void * ctx, <br/> const char * filename);
+int <a href="#xmlNanoFTPGet">xmlNanoFTPGet</a> (void * ctx, <br/> <a href="libxml2-nanoftp.html#ftpDataCallback">ftpDataCallback</a> callback, <br/> void * userData, <br/> const char * filename);
+int <a href="#xmlNanoFTPRead">xmlNanoFTPRead</a> (void * ctx, <br/> void * dest, <br/> int len);
+void <a href="#xmlNanoFTPFreeCtxt">xmlNanoFTPFreeCtxt</a> (void * ctx);
+void <a href="#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a> (void);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="INVALID_SOCKET">Macro </a>INVALID_SOCKET</h3><pre class="programlisting">#define <a href="#INVALID_SOCKET">INVALID_SOCKET</a>;
+</pre><p>macro used to provide portability of code to windows sockets the value to be used when the socket is not valid</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="SOCKET">Macro </a>SOCKET</h3><pre class="programlisting">#define <a href="#SOCKET">SOCKET</a>;
+</pre><p>macro used to provide portability of code to windows sockets</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="ftpDataCallback"/>Function type ftpDataCallback</h3><pre class="programlisting">void ftpDataCallback (void * userData, <br/> const char * data, <br/> int len)<br/>
+</pre><p>A callback for the <a href="libxml2-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a> command.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>the user provided context</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data received</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>its size in bytes</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="ftpListCallback"/>Function type ftpListCallback</h3><pre class="programlisting">void ftpListCallback (void * userData, <br/> const char * filename, <br/> const char * attrib, <br/> const char * owner, <br/> const char * group, <br/> unsigned long size, <br/> int links, <br/> int year, <br/> const char * month, <br/> int day, <br/> int hour, <br/> int minute)<br/>
+</pre><p>A callback for the <a href="libxml2-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a> command. Note that only one of year and day:minute are specified.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>user provided data for the callback</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file name (including "-&gt;" when links are shown)</td></tr><tr><td><span class="term"><i><tt>attrib</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> string</td></tr><tr><td><span class="term"><i><tt>owner</tt></i>:</span></td><td>the owner string</td></tr><tr><td><span class="term"><i><tt>group</tt></i>:</span></td><td>the group string</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the file size</td></tr><tr><td><span class="term"><i><tt>links</tt></i>:</span></td><td>the link count</td></tr><tr><td><span class="term"><i><tt>year</tt></i>:</span></td><td>the year</td></tr><tr><td><span class="term"><i><tt>month</tt></i>:</span></td><td>the month</td></tr><tr><td><span class="term"><i><tt>day</tt></i>:</span></td><td>the day</td></tr><tr><td><span class="term"><i><tt>hour</tt></i>:</span></td><td>the hour</td></tr><tr><td><span class="term"><i><tt>minute</tt></i>:</span></td><td>the minute</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPCheckResponse"/>xmlNanoFTPCheckResponse ()</h3><pre class="programlisting">int xmlNanoFTPCheckResponse (void * ctx)<br/>
+</pre><p>Check if there is a response from the FTP server after a command.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the code number, or 0</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPCleanup"/>xmlNanoFTPCleanup ()</h3><pre class="programlisting">void xmlNanoFTPCleanup (void)<br/>
+</pre><p>Cleanup the FTP protocol layer. This cleanup proxy informations.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPClose"/>xmlNanoFTPClose ()</h3><pre class="programlisting">int xmlNanoFTPClose (void * ctx)<br/>
+</pre><p>Close the connection and both control and transport</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPCloseConnection"/>xmlNanoFTPCloseConnection ()</h3><pre class="programlisting">int xmlNanoFTPCloseConnection (void * ctx)<br/>
+</pre><p>Close the data connection from the server</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPConnect"/>xmlNanoFTPConnect ()</h3><pre class="programlisting">int xmlNanoFTPConnect (void * ctx)<br/>
+</pre><p>Tries to open a control connection</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPConnectTo"/>xmlNanoFTPConnectTo ()</h3><pre class="programlisting">void * xmlNanoFTPConnectTo (const char * server, <br/> int port)<br/>
+</pre><p>Tries to open a control connection to the given server/port</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>server</tt></i>:</span></td><td>an FTP server name</td></tr><tr><td><span class="term"><i><tt>port</tt></i>:</span></td><td>the port (use 21 if 0)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an fTP context or NULL if it failed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPCwd"/>xmlNanoFTPCwd ()</h3><pre class="programlisting">int xmlNanoFTPCwd (void * ctx, <br/> const char * directory)<br/>
+</pre><p>Tries to change the remote directory</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>directory</tt></i>:</span></td><td>a directory on the server</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 1 if CWD worked, 0 if it failed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPDele"/>xmlNanoFTPDele ()</h3><pre class="programlisting">int xmlNanoFTPDele (void * ctx, <br/> const char * file)<br/>
+</pre><p>Tries to delete an item (file or directory) from server</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>a file or directory on the server</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 1 if DELE worked, 0 if it failed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPFreeCtxt"/>xmlNanoFTPFreeCtxt ()</h3><pre class="programlisting">void xmlNanoFTPFreeCtxt (void * ctx)<br/>
+</pre><p>Frees the context after closing the connection.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPGet"/>xmlNanoFTPGet ()</h3><pre class="programlisting">int xmlNanoFTPGet (void * ctx, <br/> <a href="libxml2-nanoftp.html#ftpDataCallback">ftpDataCallback</a> callback, <br/> void * userData, <br/> const char * filename)<br/>
+</pre><p>Fetch the given file from the server. All data are passed back in the callbacks. The last callback has a size of 0 block.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>callback</tt></i>:</span></td><td>the user callback</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>the user callback data</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file to retrieve</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPGetConnection"/>xmlNanoFTPGetConnection ()</h3><pre class="programlisting"><a href="libxml2-nanoftp.html#SOCKET">SOCKET</a> xmlNanoFTPGetConnection (void * ctx)<br/>
+</pre><p>Try to open a data connection to the server. Currently only passive mode is supported.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPGetResponse"/>xmlNanoFTPGetResponse ()</h3><pre class="programlisting">int xmlNanoFTPGetResponse (void * ctx)<br/>
+</pre><p>Get the response from the FTP server after a command.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the code number</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPGetSocket"/>xmlNanoFTPGetSocket ()</h3><pre class="programlisting"><a href="libxml2-nanoftp.html#SOCKET">SOCKET</a> xmlNanoFTPGetSocket (void * ctx, <br/> const char * filename)<br/>
+</pre><p>Initiate fetch of the given file from the server.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file to retrieve (or NULL if path is in context).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the socket for the data connection, or &lt;0 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPInit"/>xmlNanoFTPInit ()</h3><pre class="programlisting">void xmlNanoFTPInit (void)<br/>
+</pre><p>Initialize the FTP protocol layer. Currently it just checks for proxy informations, and get the hostname</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPList"/>xmlNanoFTPList ()</h3><pre class="programlisting">int xmlNanoFTPList (void * ctx, <br/> <a href="libxml2-nanoftp.html#ftpListCallback">ftpListCallback</a> callback, <br/> void * userData, <br/> const char * filename)<br/>
+</pre><p>Do a listing on the server. All files info are passed back in the callbacks.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>callback</tt></i>:</span></td><td>the user callback</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>the user callback data</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>optional files to list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPNewCtxt"/>xmlNanoFTPNewCtxt ()</h3><pre class="programlisting">void * xmlNanoFTPNewCtxt (const char * URL)<br/>
+</pre><p>Allocate and initialize a new FTP context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL used to initialize the context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an FTP context or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPOpen"/>xmlNanoFTPOpen ()</h3><pre class="programlisting">void * xmlNanoFTPOpen (const char * URL)<br/>
+</pre><p>Start to fetch the given ftp:// resource</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL to the resource</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an FTP context, or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPProxy"/>xmlNanoFTPProxy ()</h3><pre class="programlisting">void xmlNanoFTPProxy (const char * host, <br/> int port, <br/> const char * user, <br/> const char * passwd, <br/> int type)<br/>
+</pre><p>Setup the FTP proxy informations. This can also be done by using ftp_proxy ftp_proxy_user and ftp_proxy_password environment variables.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>host</tt></i>:</span></td><td>the proxy host name</td></tr><tr><td><span class="term"><i><tt>port</tt></i>:</span></td><td>the proxy port</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>the proxy user name</td></tr><tr><td><span class="term"><i><tt>passwd</tt></i>:</span></td><td>the proxy password</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of proxy 1 for using SITE, 2 for USER a@b</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPQuit"/>xmlNanoFTPQuit ()</h3><pre class="programlisting">int xmlNanoFTPQuit (void * ctx)<br/>
+</pre><p>Send a QUIT command to the server</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPRead"/>xmlNanoFTPRead ()</h3><pre class="programlisting">int xmlNanoFTPRead (void * ctx, <br/> void * dest, <br/> int len)<br/>
+</pre><p>This function tries to read @len bytes from the existing FTP connection and saves them in @dest. This is a blocking call.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the FTP context</td></tr><tr><td><span class="term"><i><tt>dest</tt></i>:</span></td><td>a buffer</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the buffer length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPScanProxy"/>xmlNanoFTPScanProxy ()</h3><pre class="programlisting">void xmlNanoFTPScanProxy (const char * URL)<br/>
+</pre><p>(Re)Initialize the FTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like ftp://myproxy/ or ftp://myproxy:3128/ A NULL URL cleans up proxy informations.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The proxy URL used to initialize the proxy context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoFTPUpdateURL"/>xmlNanoFTPUpdateURL ()</h3><pre class="programlisting">int xmlNanoFTPUpdateURL (void * ctx, <br/> const char * URL)<br/>
+</pre><p>Update an FTP context by parsing the URL and finding new path it indicates. If there is an error in the protocol, hostname, port or other information, the error is raised. It indicates a new connection has to be established.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL used to update the context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if Ok, -1 in case of error (other host).</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-nanohttp.html b/libxml2-2.9.10/doc/devhelp/libxml2-nanohttp.html
new file mode 100644
index 0000000..075ae48
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-nanohttp.html
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>nanohttp: minimal HTTP implementation</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-nanoftp.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-parser.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">nanohttp</span>
+ </h2>
+ <p>nanohttp - minimal HTTP implementation</p>
+ <p>minimal HTTP implementation allowing to fetch resources like external subset. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">int <a href="#xmlNanoHTTPRead">xmlNanoHTTPRead</a> (void * ctx, <br/> void * dest, <br/> int len);
+int <a href="#xmlNanoHTTPSave">xmlNanoHTTPSave</a> (void * ctxt, <br/> const char * filename);
+const char * <a href="#xmlNanoHTTPRedir">xmlNanoHTTPRedir</a> (void * ctx);
+const char * <a href="#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a> (void * ctx);
+int <a href="#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a> (const char * URL, <br/> const char * filename, <br/> char ** contentType);
+int <a href="#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a> (void * ctx);
+const char * <a href="#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a> (void * ctx);
+void <a href="#xmlNanoHTTPClose">xmlNanoHTTPClose</a> (void * ctx);
+void <a href="#xmlNanoHTTPCleanup">xmlNanoHTTPCleanup</a> (void);
+void * <a href="#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a> (const char * URL, <br/> const char * method, <br/> const char * input, <br/> char ** contentType, <br/> const char * headers, <br/> int ilen);
+void <a href="#xmlNanoHTTPInit">xmlNanoHTTPInit</a> (void);
+void * <a href="#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a> (const char * URL, <br/> char ** contentType);
+void * <a href="#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a> (const char * URL, <br/> char ** contentType, <br/> char ** redir);
+void * <a href="#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a> (const char * URL, <br/> const char * method, <br/> const char * input, <br/> char ** contentType, <br/> char ** redir, <br/> const char * headers, <br/> int ilen);
+void <a href="#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a> (const char * URL);
+const char * <a href="#xmlNanoHTTPEncoding">xmlNanoHTTPEncoding</a> (void * ctx);
+int <a href="#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a> (void * ctx);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPAuthHeader"/>xmlNanoHTTPAuthHeader ()</h3><pre class="programlisting">const char * xmlNanoHTTPAuthHeader (void * ctx)<br/>
+</pre><p>Get the authentication header of an HTTP context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the stashed value of the WWW-Authenticate or Proxy-Authenticate header.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPCleanup"/>xmlNanoHTTPCleanup ()</h3><pre class="programlisting">void xmlNanoHTTPCleanup (void)<br/>
+</pre><p>Cleanup the HTTP protocol layer.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPClose"/>xmlNanoHTTPClose ()</h3><pre class="programlisting">void xmlNanoHTTPClose (void * ctx)<br/>
+</pre><p>This function closes an HTTP context, it ends up the connection and free all data related to it.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPContentLength"/>xmlNanoHTTPContentLength ()</h3><pre class="programlisting">int xmlNanoHTTPContentLength (void * ctx)<br/>
+</pre><p>Provides the specified content length from the HTTP header.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified content length from the HTTP header. Note that a value of -1 indicates that the content length element was not included in the response header.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPEncoding"/>xmlNanoHTTPEncoding ()</h3><pre class="programlisting">const char * xmlNanoHTTPEncoding (void * ctx)<br/>
+</pre><p>Provides the specified encoding if specified in the HTTP headers.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified encoding or NULL if not available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPFetch"/>xmlNanoHTTPFetch ()</h3><pre class="programlisting">int xmlNanoHTTPFetch (const char * URL, <br/> const char * filename, <br/> char ** contentType)<br/>
+</pre><p>This function try to fetch the indicated resource via HTTP GET and save it's content in the file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename where the content should be saved</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>if available the Content-Type information will be returned at that location</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 incase of success. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPInit"/>xmlNanoHTTPInit ()</h3><pre class="programlisting">void xmlNanoHTTPInit (void)<br/>
+</pre><p>Initialize the HTTP protocol layer. Currently it just checks for proxy informations</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPMethod"/>xmlNanoHTTPMethod ()</h3><pre class="programlisting">void * xmlNanoHTTPMethod (const char * URL, <br/> const char * method, <br/> const char * input, <br/> char ** contentType, <br/> const char * headers, <br/> int ilen)<br/>
+</pre><p>This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>method</tt></i>:</span></td><td>the HTTP method to use</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the input string if any</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>the Content-Type information IN and OUT</td></tr><tr><td><span class="term"><i><tt>headers</tt></i>:</span></td><td>the extra headers</td></tr><tr><td><span class="term"><i><tt>ilen</tt></i>:</span></td><td>input length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPMethodRedir"/>xmlNanoHTTPMethodRedir ()</h3><pre class="programlisting">void * xmlNanoHTTPMethodRedir (const char * URL, <br/> const char * method, <br/> const char * input, <br/> char ** contentType, <br/> char ** redir, <br/> const char * headers, <br/> int ilen)<br/>
+</pre><p>This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>method</tt></i>:</span></td><td>the HTTP method to use</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the input string if any</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>the Content-Type information IN and OUT</td></tr><tr><td><span class="term"><i><tt>redir</tt></i>:</span></td><td>the redirected URL OUT</td></tr><tr><td><span class="term"><i><tt>headers</tt></i>:</span></td><td>the extra headers</td></tr><tr><td><span class="term"><i><tt>ilen</tt></i>:</span></td><td>input length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, or redir, if provided must be freed by the caller</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPMimeType"/>xmlNanoHTTPMimeType ()</h3><pre class="programlisting">const char * xmlNanoHTTPMimeType (void * ctx)<br/>
+</pre><p>Provides the specified Mime-Type if specified in the HTTP headers.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified Mime-Type or NULL if not available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPOpen"/>xmlNanoHTTPOpen ()</h3><pre class="programlisting">void * xmlNanoHTTPOpen (const char * URL, <br/> char ** contentType)<br/>
+</pre><p>This function try to open a connection to the indicated resource via HTTP GET.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>if available the Content-Type information will be returned at that location</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPOpenRedir"/>xmlNanoHTTPOpenRedir ()</h3><pre class="programlisting">void * xmlNanoHTTPOpenRedir (const char * URL, <br/> char ** contentType, <br/> char ** redir)<br/>
+</pre><p>This function try to open a connection to the indicated resource via HTTP GET.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>if available the Content-Type information will be returned at that location</td></tr><tr><td><span class="term"><i><tt>redir</tt></i>:</span></td><td>if available the redirected URL will be returned</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPRead"/>xmlNanoHTTPRead ()</h3><pre class="programlisting">int xmlNanoHTTPRead (void * ctx, <br/> void * dest, <br/> int len)<br/>
+</pre><p>This function tries to read @len bytes from the existing HTTP connection and saves them in @dest. This is a blocking call.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>dest</tt></i>:</span></td><td>a buffer</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the buffer length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPRedir"/>xmlNanoHTTPRedir ()</h3><pre class="programlisting">const char * xmlNanoHTTPRedir (void * ctx)<br/>
+</pre><p>Provides the specified redirection URL if available from the HTTP header.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified redirection URL or NULL if not redirected.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPReturnCode"/>xmlNanoHTTPReturnCode ()</h3><pre class="programlisting">int xmlNanoHTTPReturnCode (void * ctx)<br/>
+</pre><p>Get the latest HTTP return code received</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the HTTP return code for the request.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPSave"/>xmlNanoHTTPSave ()</h3><pre class="programlisting">int xmlNanoHTTPSave (void * ctxt, <br/> const char * filename)<br/>
+</pre><p>This function saves the output of the HTTP transaction to a file It closes and free the context at the end</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename where the content should be saved</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 incase of success.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPScanProxy"/>xmlNanoHTTPScanProxy ()</h3><pre class="programlisting">void xmlNanoHTTPScanProxy (const char * URL)<br/>
+</pre><p>(Re)Initialize the HTTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like http://myproxy/ or http://myproxy:3128/ A NULL URL cleans up proxy informations.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The proxy URL used to initialize the proxy context</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-parser.html b/libxml2-2.9.10/doc/devhelp/libxml2-parser.html
new file mode 100644
index 0000000..601c54d
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-parser.html
@@ -0,0 +1,766 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>parser: the core parser module</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-nanohttp.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-parserInternals.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">parser</span>
+ </h2>
+ <p>parser - the core parser module</p>
+ <p>Interfaces, constants and types related to the XML parser </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a>;
+#define <a href="#XML_SKIP_IDS">XML_SKIP_IDS</a>;
+#define <a href="#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a>;
+#define <a href="#XML_DETECT_IDS">XML_DETECT_IDS</a>;
+#define <a href="#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a>;
+typedef <a href="libxml2-parser.html#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a> * <a href="#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a>;
+typedef struct _xmlSAXHandlerV1 <a href="#xmlSAXHandlerV1">xmlSAXHandlerV1</a>;
+typedef enum <a href="#xmlParserInputState">xmlParserInputState</a>;
+typedef <a href="libxml2-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * <a href="#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a>;
+typedef struct _xmlParserNodeInfoSeq <a href="#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a>;
+typedef enum <a href="#xmlFeature">xmlFeature</a>;
+typedef enum <a href="#xmlParserMode">xmlParserMode</a>;
+typedef enum <a href="#xmlParserOption">xmlParserOption</a>;
+typedef <a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * <a href="#xmlSAXHandlerV1Ptr">xmlSAXHandlerV1Ptr</a>;
+typedef struct _xmlParserNodeInfo <a href="#xmlParserNodeInfo">xmlParserNodeInfo</a>;
+void <a href="#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buffer, <br/> const char * filename);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCtxtReadFile">xmlCtxtReadFile</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * filename, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URL, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ID, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * lst);
+typedef void <a href="#attributeDeclSAXFunc">attributeDeclSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> int type, <br/> int def, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);
+typedef <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#getEntitySAXFunc">getEntitySAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+typedef void <a href="#startElementSAXFunc">startElementSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** atts);
+typedef void <a href="#charactersSAXFunc">charactersSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len);
+void <a href="#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a> (<a href="libxml2-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);
+int <a href="#xmlParseChunk">xmlParseChunk</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * chunk, <br/> int size, <br/> int terminate);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseEntity">xmlParseEntity</a> (const char * filename);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlRecoverFile">xmlRecoverFile</a> (const char * filename);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCtxtReadDoc">xmlCtxtReadDoc</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+typedef void <a href="#startElementNsSAX2Func">startElementNsSAX2Func</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> int nb_namespaces, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces, <br/> int nb_attributes, <br/> int nb_defaulted, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** attributes);
+<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+<a href="libxml2-xmlerror.html#xmlParserErrors">xmlParserErrors</a> <a href="#xmlParseInNodeContext">xmlParseInNodeContext</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const char * data, <br/> int datalen, <br/> int options, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * lst);
+typedef void <a href="#referenceSAXFunc">referenceSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+typedef int <a href="#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a> (void * ctx);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseDoc">xmlSAXParseDoc</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> int recovery);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlReadMemory">xmlReadMemory</a> (const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseMemory">xmlParseMemory</a> (const char * buffer, <br/> int size);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNewIOInputStream">xmlNewIOInputStream</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+typedef void <a href="#processingInstructionSAXFunc">processingInstructionSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * data);
+int <a href="#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> int depth, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * string, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * lst, <br/> int recover);
+void <a href="#xmlInitParser">xmlInitParser</a> (void);
+<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur);
+typedef void <a href="#errorSAXFunc">errorSAXFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseMemory">xmlSAXParseMemory</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const char * buffer, <br/> int size, <br/> int recovery);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlRecoverMemory">xmlRecoverMemory</a> (const char * buffer, <br/> int size);
+typedef <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlExternalEntityLoader">xmlExternalEntityLoader</a> (const char * URL, <br/> const char * ID, <br/> <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context);
+typedef int <a href="#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a> (void * ctx);
+typedef void <a href="#cdataBlockSAXFunc">cdataBlockSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int len);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseFile">xmlSAXParseFile</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const char * filename, <br/> int recovery);
+typedef void <a href="#xmlParserInputDeallocate">xmlParserInputDeallocate</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCtxtReadIO">xmlCtxtReadIO</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const char * buffer, <br/> int size, <br/> int recovery, <br/> void * data);
+int <a href="#xmlGetFeature">xmlGetFeature</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * name, <br/> void * result);
+<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlIOParseDTD">xmlIOParseDTD</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+void <a href="#xmlFreeParserCtxt">xmlFreeParserCtxt</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlParseDTD">xmlParseDTD</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlRecoverDoc">xmlRecoverDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur);
+typedef void <a href="#commentSAXFunc">commentSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlInitParserCtxt">xmlInitParserCtxt</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+typedef void <a href="#attributeSAXFunc">attributeSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlParserInputGrow">xmlParserInputGrow</a> (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in, <br/> int len);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCtxtReadMemory">xmlCtxtReadMemory</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+typedef void <a href="#externalSubsetSAXFunc">externalSubsetSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+typedef <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#resolveEntitySAXFunc">resolveEntitySAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId);
+int <a href="#xmlPedanticParserDefault">xmlPedanticParserDefault</a> (int val);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseEntity">xmlSAXParseEntity</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const char * filename);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseDoc">xmlParseDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const char * filename, <br/> int recovery, <br/> void * data);
+int <a href="#xmlLineNumbersDefault">xmlLineNumbersDefault</a> (int val);
+<a href="libxml2-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> <a href="#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a> (void);
+typedef void <a href="#elementDeclSAXFunc">elementDeclSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);
+int <a href="#xmlCtxtUseOptions">xmlCtxtUseOptions</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int options);
+<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> const char * chunk, <br/> int size, <br/> const char * filename);
+void <a href="#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCtxtReadFd">xmlCtxtReadFd</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+typedef void <a href="#internalSubsetSAXFunc">internalSubsetSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlNewParserCtxt">xmlNewParserCtxt</a> (void);
+typedef void <a href="#endDocumentSAXFunc">endDocumentSAXFunc</a> (void * ctx);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseFile">xmlParseFile</a> (const char * filename);
+int <a href="#xmlParseDocument">xmlParseDocument</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+typedef void <a href="#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a> (void * ctx, <br/> <a href="libxml2-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc);
+typedef <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+typedef void <a href="#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len);
+void <a href="#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a> (<a href="libxml2-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);
+int <a href="#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a> (int val);
+typedef void <a href="#endElementSAXFunc">endElementSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+unsigned long <a href="#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a> (const <a href="libxml2-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq, <br/> const <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+long <a href="#xmlByteConsumed">xmlByteConsumed</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlCtxtReset">xmlCtxtReset</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlSetFeature">xmlSetFeature</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * name, <br/> void * value);
+int <a href="#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a> (int val);
+int <a href="#xmlParserInputRead">xmlParserInputRead</a> (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in, <br/> int len);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlReadFile">xmlReadFile</a> (const char * filename, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlGetFeaturesList">xmlGetFeaturesList</a> (int * len, <br/> const char ** result);
+int <a href="#xmlHasFeature">xmlHasFeature</a> (<a href="libxml2-parser.html#xmlFeature">xmlFeature</a> feature);
+typedef void <a href="#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * notationName);
+int <a href="#xmlSAXUserParseFile">xmlSAXUserParseFile</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> const char * filename);
+typedef void <a href="#fatalErrorSAXFunc">fatalErrorSAXFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlSAXParseDTD">xmlSAXParseDTD</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+const <a href="libxml2-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * <a href="#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a> (const <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx, <br/> const <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+typedef void <a href="#entityDeclSAXFunc">entityDeclSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlLoadExternalEntity">xmlLoadExternalEntity</a> (const char * URL, <br/> const char * ID, <br/> <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlStopParser">xmlStopParser</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlReadFd">xmlReadFd</a> (int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlReadIO">xmlReadIO</a> (<a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlReadDoc">xmlReadDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a> (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> const char * buffer, <br/> int size);
+int <a href="#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> int depth, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * string, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * lst);
+typedef void <a href="#endElementNsSAX2Func">endElementNsSAX2Func</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI);
+void <a href="#xmlCleanupParser">xmlCleanupParser</a> (void);
+int <a href="#xmlCtxtResetPush">xmlCtxtResetPush</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * chunk, <br/> int size, <br/> const char * filename, <br/> const char * encoding);
+typedef int <a href="#isStandaloneSAXFunc">isStandaloneSAXFunc</a> (void * ctx);
+typedef void <a href="#startDocumentSAXFunc">startDocumentSAXFunc</a> (void * ctx);
+void <a href="#xmlClearParserCtxt">xmlClearParserCtxt</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlParseExternalEntity">xmlParseExternalEntity</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> int depth, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URL, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ID, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * lst);
+typedef void <a href="#notationDeclSAXFunc">notationDeclSAXFunc</a> (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId);
+typedef void <a href="#warningSAXFunc">warningSAXFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+void <a href="#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a> (<a href="libxml2-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> f);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="XML_COMPLETE_ATTRS">Macro </a>XML_COMPLETE_ATTRS</h3><pre class="programlisting">#define <a href="#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a>;
+</pre><p>Bit in the loadsubset context field to tell to do complete the elements attributes lists with the ones defaulted from the DTDs. Use it to initialize xmlLoadExtDtdDefaultValue.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_DEFAULT_VERSION">Macro </a>XML_DEFAULT_VERSION</h3><pre class="programlisting">#define <a href="#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a>;
+</pre><p>The default version of XML used: 1.0</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_DETECT_IDS">Macro </a>XML_DETECT_IDS</h3><pre class="programlisting">#define <a href="#XML_DETECT_IDS">XML_DETECT_IDS</a>;
+</pre><p>Bit in the loadsubset context field to tell to do ID/REFs lookups. Use it to initialize xmlLoadExtDtdDefaultValue.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SAX2_MAGIC">Macro </a>XML_SAX2_MAGIC</h3><pre class="programlisting">#define <a href="#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a>;
+</pre><p>Special constant found in SAX2 blocks initialized fields</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SKIP_IDS">Macro </a>XML_SKIP_IDS</h3><pre class="programlisting">#define <a href="#XML_SKIP_IDS">XML_SKIP_IDS</a>;
+</pre><p>Bit in the loadsubset context field to tell to not do ID/REFs registration. Used to initialize <a href="libxml2-globals.html#xmlLoadExtDtdDefaultValue">xmlLoadExtDtdDefaultValue</a> in some special cases.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFeature">Enum </a>xmlFeature</h3><pre class="programlisting">enum <a href="#xmlFeature">xmlFeature</a> {
+ <a name="XML_WITH_THREAD">XML_WITH_THREAD</a> = 1
+ <a name="XML_WITH_TREE">XML_WITH_TREE</a> = 2
+ <a name="XML_WITH_OUTPUT">XML_WITH_OUTPUT</a> = 3
+ <a name="XML_WITH_PUSH">XML_WITH_PUSH</a> = 4
+ <a name="XML_WITH_READER">XML_WITH_READER</a> = 5
+ <a name="XML_WITH_PATTERN">XML_WITH_PATTERN</a> = 6
+ <a name="XML_WITH_WRITER">XML_WITH_WRITER</a> = 7
+ <a name="XML_WITH_SAX1">XML_WITH_SAX1</a> = 8
+ <a name="XML_WITH_FTP">XML_WITH_FTP</a> = 9
+ <a name="XML_WITH_HTTP">XML_WITH_HTTP</a> = 10
+ <a name="XML_WITH_VALID">XML_WITH_VALID</a> = 11
+ <a name="XML_WITH_HTML">XML_WITH_HTML</a> = 12
+ <a name="XML_WITH_LEGACY">XML_WITH_LEGACY</a> = 13
+ <a name="XML_WITH_C14N">XML_WITH_C14N</a> = 14
+ <a name="XML_WITH_CATALOG">XML_WITH_CATALOG</a> = 15
+ <a name="XML_WITH_XPATH">XML_WITH_XPATH</a> = 16
+ <a name="XML_WITH_XPTR">XML_WITH_XPTR</a> = 17
+ <a name="XML_WITH_XINCLUDE">XML_WITH_XINCLUDE</a> = 18
+ <a name="XML_WITH_ICONV">XML_WITH_ICONV</a> = 19
+ <a name="XML_WITH_ISO8859X">XML_WITH_ISO8859X</a> = 20
+ <a name="XML_WITH_UNICODE">XML_WITH_UNICODE</a> = 21
+ <a name="XML_WITH_REGEXP">XML_WITH_REGEXP</a> = 22
+ <a name="XML_WITH_AUTOMATA">XML_WITH_AUTOMATA</a> = 23
+ <a name="XML_WITH_EXPR">XML_WITH_EXPR</a> = 24
+ <a name="XML_WITH_SCHEMAS">XML_WITH_SCHEMAS</a> = 25
+ <a name="XML_WITH_SCHEMATRON">XML_WITH_SCHEMATRON</a> = 26
+ <a name="XML_WITH_MODULES">XML_WITH_MODULES</a> = 27
+ <a name="XML_WITH_DEBUG">XML_WITH_DEBUG</a> = 28
+ <a name="XML_WITH_DEBUG_MEM">XML_WITH_DEBUG_MEM</a> = 29
+ <a name="XML_WITH_DEBUG_RUN">XML_WITH_DEBUG_RUN</a> = 30
+ <a name="XML_WITH_ZLIB">XML_WITH_ZLIB</a> = 31
+ <a name="XML_WITH_ICU">XML_WITH_ICU</a> = 32
+ <a name="XML_WITH_LZMA">XML_WITH_LZMA</a> = 33
+ <a name="XML_WITH_NONE">XML_WITH_NONE</a> = 99999 /* just to be sure of allocation size */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputState">Enum </a>xmlParserInputState</h3><pre class="programlisting">enum <a href="#xmlParserInputState">xmlParserInputState</a> {
+ <a name="XML_PARSER_EOF">XML_PARSER_EOF</a> = -1 /* nothing is to be parsed */
+ <a name="XML_PARSER_START">XML_PARSER_START</a> = 0 /* nothing has been parsed */
+ <a name="XML_PARSER_MISC">XML_PARSER_MISC</a> = 1 /* Misc* before int subset */
+ <a name="XML_PARSER_PI">XML_PARSER_PI</a> = 2 /* Within a processing instruction */
+ <a name="XML_PARSER_DTD">XML_PARSER_DTD</a> = 3 /* within some DTD content */
+ <a name="XML_PARSER_PROLOG">XML_PARSER_PROLOG</a> = 4 /* Misc* after internal subset */
+ <a name="XML_PARSER_COMMENT">XML_PARSER_COMMENT</a> = 5 /* within a comment */
+ <a name="XML_PARSER_START_TAG">XML_PARSER_START_TAG</a> = 6 /* within a start tag */
+ <a name="XML_PARSER_CONTENT">XML_PARSER_CONTENT</a> = 7 /* within the content */
+ <a name="XML_PARSER_CDATA_SECTION">XML_PARSER_CDATA_SECTION</a> = 8 /* within a CDATA section */
+ <a name="XML_PARSER_END_TAG">XML_PARSER_END_TAG</a> = 9 /* within a closing tag */
+ <a name="XML_PARSER_ENTITY_DECL">XML_PARSER_ENTITY_DECL</a> = 10 /* within an entity declaration */
+ <a name="XML_PARSER_ENTITY_VALUE">XML_PARSER_ENTITY_VALUE</a> = 11 /* within an entity value in a decl */
+ <a name="XML_PARSER_ATTRIBUTE_VALUE">XML_PARSER_ATTRIBUTE_VALUE</a> = 12 /* within an attribute value */
+ <a name="XML_PARSER_SYSTEM_LITERAL">XML_PARSER_SYSTEM_LITERAL</a> = 13 /* within a SYSTEM value */
+ <a name="XML_PARSER_EPILOG">XML_PARSER_EPILOG</a> = 14 /* the Misc* after the last end tag */
+ <a name="XML_PARSER_IGNORE">XML_PARSER_IGNORE</a> = 15 /* within an IGNORED section */
+ <a name="XML_PARSER_PUBLIC_LITERAL">XML_PARSER_PUBLIC_LITERAL</a> = 16 /* within a PUBLIC value */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserMode">Enum </a>xmlParserMode</h3><pre class="programlisting">enum <a href="#xmlParserMode">xmlParserMode</a> {
+ <a name="XML_PARSE_UNKNOWN">XML_PARSE_UNKNOWN</a> = 0
+ <a name="XML_PARSE_DOM">XML_PARSE_DOM</a> = 1
+ <a name="XML_PARSE_SAX">XML_PARSE_SAX</a> = 2
+ <a name="XML_PARSE_PUSH_DOM">XML_PARSE_PUSH_DOM</a> = 3
+ <a name="XML_PARSE_PUSH_SAX">XML_PARSE_PUSH_SAX</a> = 4
+ <a name="XML_PARSE_READER">XML_PARSE_READER</a> = 5
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserNodeInfo">Structure </a>xmlParserNodeInfo</h3><pre class="programlisting">struct _xmlParserNodeInfo {
+ const struct _xmlNode * node : Position &amp; line # that text that created the node begins &amp; ends on
+ unsigned long begin_pos
+ unsigned long begin_line
+ unsigned long end_pos
+ unsigned long end_line
+} xmlParserNodeInfo;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserNodeInfoPtr">Typedef </a>xmlParserNodeInfoPtr</h3><pre class="programlisting"><a href="libxml2-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * xmlParserNodeInfoPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserNodeInfoSeq">Structure </a>xmlParserNodeInfoSeq</h3><pre class="programlisting">struct _xmlParserNodeInfoSeq {
+ unsigned long maximum
+ unsigned long length
+ <a href="libxml2-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * buffer
+} xmlParserNodeInfoSeq;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserNodeInfoSeqPtr">Typedef </a>xmlParserNodeInfoSeqPtr</h3><pre class="programlisting"><a href="libxml2-parser.html#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a> * xmlParserNodeInfoSeqPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserOption">Enum </a>xmlParserOption</h3><pre class="programlisting">enum <a href="#xmlParserOption">xmlParserOption</a> {
+ <a name="XML_PARSE_RECOVER">XML_PARSE_RECOVER</a> = 1 /* recover on errors */
+ <a name="XML_PARSE_NOENT">XML_PARSE_NOENT</a> = 2 /* substitute entities */
+ <a name="XML_PARSE_DTDLOAD">XML_PARSE_DTDLOAD</a> = 4 /* load the external subset */
+ <a name="XML_PARSE_DTDATTR">XML_PARSE_DTDATTR</a> = 8 /* default DTD attributes */
+ <a name="XML_PARSE_DTDVALID">XML_PARSE_DTDVALID</a> = 16 /* validate with the DTD */
+ <a name="XML_PARSE_NOERROR">XML_PARSE_NOERROR</a> = 32 /* suppress error reports */
+ <a name="XML_PARSE_NOWARNING">XML_PARSE_NOWARNING</a> = 64 /* suppress warning reports */
+ <a name="XML_PARSE_PEDANTIC">XML_PARSE_PEDANTIC</a> = 128 /* pedantic error reporting */
+ <a name="XML_PARSE_NOBLANKS">XML_PARSE_NOBLANKS</a> = 256 /* remove blank nodes */
+ <a name="XML_PARSE_SAX1">XML_PARSE_SAX1</a> = 512 /* use the SAX1 interface internally */
+ <a name="XML_PARSE_XINCLUDE">XML_PARSE_XINCLUDE</a> = 1024 /* Implement XInclude substitution */
+ <a name="XML_PARSE_NONET">XML_PARSE_NONET</a> = 2048 /* Forbid network access */
+ <a name="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 /* Do not reuse the context dictionary */
+ <a name="XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a> = 8192 /* remove redundant namespaces declarations */
+ <a name="XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a> = 16384 /* merge CDATA as text nodes */
+ <a name="XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a> = 32768 /* do not generate XINCLUDE START/END nodes */
+ <a name="XML_PARSE_COMPACT">XML_PARSE_COMPACT</a> = 65536 /* compact small text nodes; no modification of the tree allowed afterwards (will possibly crash if you try to modify the tree) */
+ <a name="XML_PARSE_OLD10">XML_PARSE_OLD10</a> = 131072 /* parse using XML-1.0 before update 5 */
+ <a name="XML_PARSE_NOBASEFIX">XML_PARSE_NOBASEFIX</a> = 262144 /* do not fixup XINCLUDE xml:base uris */
+ <a name="XML_PARSE_HUGE">XML_PARSE_HUGE</a> = 524288 /* relax any hardcoded limit from the parser */
+ <a name="XML_PARSE_OLDSAX">XML_PARSE_OLDSAX</a> = 1048576 /* parse using SAX2 interface before 2.7.0 */
+ <a name="XML_PARSE_IGNORE_ENC">XML_PARSE_IGNORE_ENC</a> = 2097152 /* ignore internal document encoding hint */
+ <a name="XML_PARSE_BIG_LINES">XML_PARSE_BIG_LINES</a> = 4194304 /* Store big lines numbers in text PSVI field */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXHandlerV1">Structure </a>xmlSAXHandlerV1</h3><pre class="programlisting">struct _xmlSAXHandlerV1 {
+ <a href="libxml2-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a> internalSubset
+ <a href="libxml2-parser.html#isStandaloneSAXFunc">isStandaloneSAXFunc</a> isStandalone
+ <a href="libxml2-parser.html#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a> hasInternalSubset
+ <a href="libxml2-parser.html#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a> hasExternalSubset
+ <a href="libxml2-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a> resolveEntity
+ <a href="libxml2-parser.html#getEntitySAXFunc">getEntitySAXFunc</a> getEntity
+ <a href="libxml2-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a> entityDecl
+ <a href="libxml2-parser.html#notationDeclSAXFunc">notationDeclSAXFunc</a> notationDecl
+ <a href="libxml2-parser.html#attributeDeclSAXFunc">attributeDeclSAXFunc</a> attributeDecl
+ <a href="libxml2-parser.html#elementDeclSAXFunc">elementDeclSAXFunc</a> elementDecl
+ <a href="libxml2-parser.html#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a> unparsedEntityDecl
+ <a href="libxml2-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a> setDocumentLocator
+ <a href="libxml2-parser.html#startDocumentSAXFunc">startDocumentSAXFunc</a> startDocument
+ <a href="libxml2-parser.html#endDocumentSAXFunc">endDocumentSAXFunc</a> endDocument
+ <a href="libxml2-parser.html#startElementSAXFunc">startElementSAXFunc</a> startElement
+ <a href="libxml2-parser.html#endElementSAXFunc">endElementSAXFunc</a> endElement
+ <a href="libxml2-parser.html#referenceSAXFunc">referenceSAXFunc</a> reference
+ <a href="libxml2-parser.html#charactersSAXFunc">charactersSAXFunc</a> characters
+ <a href="libxml2-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a> ignorableWhitespace
+ <a href="libxml2-parser.html#processingInstructionSAXFunc">processingInstructionSAXFunc</a> processingInstruction
+ <a href="libxml2-parser.html#commentSAXFunc">commentSAXFunc</a> comment
+ <a href="libxml2-parser.html#warningSAXFunc">warningSAXFunc</a> warning
+ <a href="libxml2-parser.html#errorSAXFunc">errorSAXFunc</a> error
+ <a href="libxml2-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a> fatalError : unused error() get all the errors
+ <a href="libxml2-parser.html#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a> getParameterEntity
+ <a href="libxml2-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a> cdataBlock
+ <a href="libxml2-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a> externalSubset
+ unsigned int initialized
+} xmlSAXHandlerV1;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXHandlerV1Ptr">Typedef </a>xmlSAXHandlerV1Ptr</h3><pre class="programlisting"><a href="libxml2-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * xmlSAXHandlerV1Ptr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="attributeDeclSAXFunc"/>Function type attributeDeclSAXFunc</h3><pre class="programlisting">void attributeDeclSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br/> int type, <br/> int def, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)<br/>
+</pre><p>An <a href="libxml2-SAX.html#attribute">attribute</a> definition has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> type</td></tr><tr><td><span class="term"><i><tt>def</tt></i>:</span></td><td>the type of default value</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> default value</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the tree of enumerated value set</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="attributeSAXFunc"/>Function type attributeSAXFunc</h3><pre class="programlisting">void attributeSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Handle an <a href="libxml2-SAX.html#attribute">attribute</a> that has been read by the parser. The default handling is to convert the <a href="libxml2-SAX.html#attribute">attribute</a> into an DOM subtree and past it in a new <a href="libxml2-tree.html#xmlAttr">xmlAttr</a> element added to the element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The <a href="libxml2-SAX.html#attribute">attribute</a> name, including namespace prefix</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>The <a href="libxml2-SAX.html#attribute">attribute</a> value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="cdataBlockSAXFunc"/>Function type cdataBlockSAXFunc</h3><pre class="programlisting">void cdataBlockSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int len)<br/>
+</pre><p>Called when a pcdata block has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>The pcdata content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the block length</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="charactersSAXFunc"/>Function type charactersSAXFunc</h3><pre class="programlisting">void charactersSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len)<br/>
+</pre><p>Receiving some chars from the parser.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="commentSAXFunc"/>Function type commentSAXFunc</h3><pre class="programlisting">void commentSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>A <a href="libxml2-SAX.html#comment">comment</a> has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#comment">comment</a> content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="elementDeclSAXFunc"/>Function type elementDeclSAXFunc</h3><pre class="programlisting">void elementDeclSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)<br/>
+</pre><p>An element definition has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the element type</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the element value tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="endDocumentSAXFunc"/>Function type endDocumentSAXFunc</h3><pre class="programlisting">void endDocumentSAXFunc (void * ctx)<br/>
+</pre><p>Called when the document end has been detected.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="endElementNsSAX2Func"/>Function type endElementNsSAX2Func</h3><pre class="programlisting">void endElementNsSAX2Func (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI)<br/>
+</pre><p>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>localname</tt></i>:</span></td><td>the local name of the element</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the element namespace prefix if available</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace name if available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="endElementSAXFunc"/>Function type endElementSAXFunc</h3><pre class="programlisting">void endElementSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Called when the end of an element has been detected.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The element name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="entityDeclSAXFunc"/>Function type entityDeclSAXFunc</h3><pre class="programlisting">void entityDeclSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>An entity definition has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity value (without processing).</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="errorSAXFunc"/>Function type errorSAXFunc</h3><pre class="programlisting">void errorSAXFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Display and format an error messages, callback.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="externalSubsetSAXFunc"/>Function type externalSubsetSAXFunc</h3><pre class="programlisting">void externalSubsetSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Callback on external subset declaration.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="fatalErrorSAXFunc"/>Function type fatalErrorSAXFunc</h3><pre class="programlisting">void fatalErrorSAXFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Display and format fatal error messages, callback. Note: so far fatalError() SAX callbacks are not used, error() get all the callbacks for errors.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="getEntitySAXFunc"/>Function type getEntitySAXFunc</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> getEntitySAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Get an entity by name.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="getParameterEntitySAXFunc"/>Function type getParameterEntitySAXFunc</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> getParameterEntitySAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Get a parameter entity by name.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="hasExternalSubsetSAXFunc"/>Function type hasExternalSubsetSAXFunc</h3><pre class="programlisting">int hasExternalSubsetSAXFunc (void * ctx)<br/>
+</pre><p>Does this document has an external subset?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="hasInternalSubsetSAXFunc"/>Function type hasInternalSubsetSAXFunc</h3><pre class="programlisting">int hasInternalSubsetSAXFunc (void * ctx)<br/>
+</pre><p>Does this document has an internal subset.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="ignorableWhitespaceSAXFunc"/>Function type ignorableWhitespaceSAXFunc</h3><pre class="programlisting">void ignorableWhitespaceSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ch, <br/> int len)<br/>
+</pre><p>Receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use characters.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="internalSubsetSAXFunc"/>Function type internalSubsetSAXFunc</h3><pre class="programlisting">void internalSubsetSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Callback on internal subset declaration.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="isStandaloneSAXFunc"/>Function type isStandaloneSAXFunc</h3><pre class="programlisting">int isStandaloneSAXFunc (void * ctx)<br/>
+</pre><p>Is this document tagged standalone?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="notationDeclSAXFunc"/>Function type notationDeclSAXFunc</h3><pre class="programlisting">void notationDeclSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId)<br/>
+</pre><p>What to do when a notation declaration has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the notation</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="processingInstructionSAXFunc"/>Function type processingInstructionSAXFunc</h3><pre class="programlisting">void processingInstructionSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * data)<br/>
+</pre><p>A processing instruction has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the target name</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the PI data's</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="referenceSAXFunc"/>Function type referenceSAXFunc</h3><pre class="programlisting">void referenceSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Called when an entity <a href="libxml2-SAX.html#reference">reference</a> is detected.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="resolveEntitySAXFunc"/>Function type resolveEntitySAXFunc</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> resolveEntitySAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId)<br/>
+</pre><p>Callback: The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it's own entity resolution routine</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> if inlined or NULL for DOM behaviour.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="setDocumentLocatorSAXFunc"/>Function type setDocumentLocatorSAXFunc</h3><pre class="programlisting">void setDocumentLocatorSAXFunc (void * ctx, <br/> <a href="libxml2-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc)<br/>
+</pre><p>Receive the document locator at startup, actually xmlDefaultSAXLocator. Everything is available on the context, so this is useless in our case.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>loc</tt></i>:</span></td><td>A SAX Locator</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="startDocumentSAXFunc"/>Function type startDocumentSAXFunc</h3><pre class="programlisting">void startDocumentSAXFunc (void * ctx)<br/>
+</pre><p>Called when the document start being processed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="startElementNsSAX2Func"/>Function type startElementNsSAX2Func</h3><pre class="programlisting">void startElementNsSAX2Func (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> int nb_namespaces, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces, <br/> int nb_attributes, <br/> int nb_defaulted, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** attributes)<br/>
+</pre><p>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>localname</tt></i>:</span></td><td>the local name of the element</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the element namespace prefix if available</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace name if available</td></tr><tr><td><span class="term"><i><tt>nb_namespaces</tt></i>:</span></td><td>number of namespace definitions on that node</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>pointer to the array of prefix/URI pairs namespace definitions</td></tr><tr><td><span class="term"><i><tt>nb_attributes</tt></i>:</span></td><td>the number of attributes on that node</td></tr><tr><td><span class="term"><i><tt>nb_defaulted</tt></i>:</span></td><td>the number of defaulted attributes. The defaulted ones are at the end of the array</td></tr><tr><td><span class="term"><i><tt>attributes</tt></i>:</span></td><td>pointer to the array of (localname/prefix/URI/value/end) <a href="libxml2-SAX.html#attribute">attribute</a> values.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="startElementSAXFunc"/>Function type startElementSAXFunc</h3><pre class="programlisting">void startElementSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** atts)<br/>
+</pre><p>Called when an opening tag has been processed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The element name, including namespace prefix</td></tr><tr><td><span class="term"><i><tt>atts</tt></i>:</span></td><td>An array of name/value attributes pairs, NULL terminated</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="unparsedEntityDeclSAXFunc"/>Function type unparsedEntityDeclSAXFunc</h3><pre class="programlisting">void unparsedEntityDeclSAXFunc (void * ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * notationName)<br/>
+</pre><p>What to do when an unparsed entity declaration is parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the entity</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i>:</span></td><td>the name of the notation</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="warningSAXFunc"/>Function type warningSAXFunc</h3><pre class="programlisting">void warningSAXFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Display and format a warning messages, callback.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExternalEntityLoader"/>Function type xmlExternalEntityLoader</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlExternalEntityLoader (const char * URL, <br/> const char * ID, <br/> <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context)<br/>
+</pre><p>External entity loaders types.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The System ID of the resource requested</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>The Public ID of the resource requested</td></tr><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the entity input parser.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputDeallocate"/>Function type xmlParserInputDeallocate</h3><pre class="programlisting">void xmlParserInputDeallocate (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>Callback for freeing some parser input allocations.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string to deallocate</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlByteConsumed"/>xmlByteConsumed ()</h3><pre class="programlisting">long xmlByteConsumed (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>This function provides the current index of the parser relative to the start of the current entity. This function is computed in bytes from the beginning starting at zero and finishing at the size in byte of the file if parsing a file. The function is of constant cost if the input is UTF-8 but can be costly if run on non-UTF-8 input.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the index in bytes from the beginning of the entity or -1 in case the index could not be computed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCleanupParser"/>xmlCleanupParser ()</h3><pre class="programlisting">void xmlCleanupParser (void)<br/>
+</pre><p>This function name is somewhat misleading. It does not clean up parser state, it cleans up memory allocated by the library itself. It is a cleanup function for the XML library. It tries to reclaim all related global memory allocated for the library processing. It doesn't deallocate any document related memory. One should call xmlCleanupParser() only when the process has finished using the library and all XML/HTML documents built with it. See also xmlInitParser() which has the opposite function of preparing the library for operations. WARNING: if your application is multithreaded or has plugin support calling this may crash the application if another thread or a plugin is still using libxml2. It's sometimes very hard to guess if libxml2 is in use in the application, some libraries or plugins may use it without notice. In case of doubt abstain from calling this function or do it just before calling exit() to avoid leak reports from valgrind !</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlClearNodeInfoSeq"/>xmlClearNodeInfoSeq ()</h3><pre class="programlisting">void xmlClearNodeInfoSeq (<a href="libxml2-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq)<br/>
+</pre><p>-- Clear (release memory and reinitialize) node info sequence</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>seq</tt></i>:</span></td><td>a node info sequence pointer</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlClearParserCtxt"/>xmlClearParserCtxt ()</h3><pre class="programlisting">void xmlClearParserCtxt (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Clear (release owned resources) and reinitialize a parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreateDocParserCtxt"/>xmlCreateDocParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateDocParserCtxt (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur)<br/>
+</pre><p>Creates a parser context for an XML in-memory document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreateIOParserCtxt"/>xmlCreateIOParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateIOParserCtxt (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a parser context for using the XML parser with an existing I/O stream</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreatePushParserCtxt"/>xmlCreatePushParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreatePushParserCtxt (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> const char * chunk, <br/> int size, <br/> const char * filename)<br/>
+</pre><p>Create a parser context for using the XML parser in push mode. If @buffer and @size are non-NULL, the data is used to detect the encoding. The remaining <a href="libxml2-SAX.html#characters">characters</a> will be parsed so they don't need to be fed in again through xmlParseChunk. To allow content encoding detection, @size should be &gt;= 4 The value of @filename is used for fetching external entities and error/warning reports.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>a pointer to an array of chars</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>number of chars in the array</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>an optional file name or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCtxtReadDoc"/>xmlCtxtReadDoc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadDoc (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCtxtReadFd"/>xmlCtxtReadFd ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadFd (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context NOTE that the file descriptor will not be closed when the reader is closed or reset.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCtxtReadFile"/>xmlCtxtReadFile ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadFile (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * filename, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCtxtReadIO"/>xmlCtxtReadIO ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadIO (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCtxtReadMemory"/>xmlCtxtReadMemory ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadMemory (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCtxtReset"/>xmlCtxtReset ()</h3><pre class="programlisting">void xmlCtxtReset (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Reset a parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCtxtResetPush"/>xmlCtxtResetPush ()</h3><pre class="programlisting">int xmlCtxtResetPush (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * chunk, <br/> int size, <br/> const char * filename, <br/> const char * encoding)<br/>
+</pre><p>Reset a push parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>a pointer to an array of chars</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>number of chars in the array</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>an optional file name or URI</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and 1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCtxtUseOptions"/>xmlCtxtUseOptions ()</h3><pre class="programlisting">int xmlCtxtUseOptions (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int options)<br/>
+</pre><p>Applies the options to the parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, the set of unknown or unimplemented options in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeParserCtxt"/>xmlFreeParserCtxt ()</h3><pre class="programlisting">void xmlFreeParserCtxt (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetExternalEntityLoader"/>xmlGetExternalEntityLoader ()</h3><pre class="programlisting"><a href="libxml2-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> xmlGetExternalEntityLoader (void)<br/>
+</pre><p>Get the default external entity resolver function for the application</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> function pointer</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetFeature"/>xmlGetFeature ()</h3><pre class="programlisting">int xmlGetFeature (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * name, <br/> void * result)<br/>
+</pre><p>Read the current value of one feature of this parser instance</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML/HTML parser context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the feature name</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>location to store the result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case or error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetFeaturesList"/>xmlGetFeaturesList ()</h3><pre class="programlisting">int xmlGetFeaturesList (int * len, <br/> const char ** result)<br/>
+</pre><p>Copy at most *@len feature names into the @result array</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the features name array (input/output)</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>an array of string to be filled with the features name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case or error, or the total number of features, len is updated with the number of strings copied, strings must not be deallocated</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHasFeature"/>xmlHasFeature ()</h3><pre class="programlisting">int xmlHasFeature (<a href="libxml2-parser.html#xmlFeature">xmlFeature</a> feature)<br/>
+</pre><p>Examines if the library has been compiled with a given feature.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>feature</tt></i>:</span></td><td>the feature to be examined</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a non-zero value if the feature exist, otherwise zero. Returns zero (0) if the feature does not exist or an unknown unknown feature is requested, non-zero otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIOParseDTD"/>xmlIOParseDTD ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlIOParseDTD (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Load and parse a DTD</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block or NULL</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an Input Buffer</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error. @input will be freed by the function in any case.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitNodeInfoSeq"/>xmlInitNodeInfoSeq ()</h3><pre class="programlisting">void xmlInitNodeInfoSeq (<a href="libxml2-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq)<br/>
+</pre><p>-- Initialize (set to initial state) node info sequence</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>seq</tt></i>:</span></td><td>a node info sequence pointer</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitParser"/>xmlInitParser ()</h3><pre class="programlisting">void xmlInitParser (void)<br/>
+</pre><p>Initialization function for the XML parser. This is not reentrant. Call once before processing in case of use in multithreaded programs.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitParserCtxt"/>xmlInitParserCtxt ()</h3><pre class="programlisting">int xmlInitParserCtxt (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Initialize a parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlKeepBlanksDefault"/>xmlKeepBlanksDefault ()</h3><pre class="programlisting">int xmlKeepBlanksDefault (int val)<br/>
+</pre><p>Set and return the previous value for default blanks text nodes support. The 1.x version of the parser used an heuristic to try to detect ignorable white spaces. As a result the SAX callback was generating xmlSAX2IgnorableWhitespace() callbacks instead of characters() one, and when using the DOM output text nodes containing those blanks were not generated. The 2.x and later version will switch to the XML standard way and ignorableWhitespace() are only generated when running the parser in validating mode and when the current element doesn't allow CDATA or mixed content. This function is provided as a way to force the standard behavior on 1.X libs and to switch back to the old mode for compatibility when running 1.X client code on 2.X . Upgrade of 1.X code should be done by using xmlIsBlankNode() commodity function to detect the "empty" nodes generated. This value also affect autogeneration of indentation when saving code if blanks sections are kept, indentation is not generated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no substitution, 1 for substitution.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLineNumbersDefault"/>xmlLineNumbersDefault ()</h3><pre class="programlisting">int xmlLineNumbersDefault (int val)<br/>
+</pre><p>Set and return the previous value for enabling line numbers in elements contents. This may break on old application and is turned off by default.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no substitution, 1 for substitution.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLoadExternalEntity"/>xmlLoadExternalEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlLoadExternalEntity (const char * URL, <br/> const char * ID, <br/> <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Load an external entity, note that the use of this function for unparsed entities may generate problems</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the Public ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context in which the entity is called or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewIOInputStream"/>xmlNewIOInputStream ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewIOInputStream (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a new input stream structure encapsulating the @input into a stream suitable for the parser.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an I/O Input</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewParserCtxt"/>xmlNewParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlNewParserCtxt (void)<br/>
+</pre><p>Allocate and initialize a new parser context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseBalancedChunkMemory"/>xmlParseBalancedChunkMemory ()</h3><pre class="programlisting">int xmlParseBalancedChunkMemory (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> int depth, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * string, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)<br/>
+</pre><p>Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document the chunk pertains to</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler bloc (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>Used for loop detection, use 0</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the input string in UTF8 or ISO-Latin (zero terminated)</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseBalancedChunkMemoryRecover"/>xmlParseBalancedChunkMemoryRecover ()</h3><pre class="programlisting">int xmlParseBalancedChunkMemoryRecover (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> int depth, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * string, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * lst, <br/> int recover)<br/>
+</pre><p>Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document the chunk pertains to</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler bloc (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>Used for loop detection, use 0</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the input string in UTF8 or ISO-Latin (zero terminated)</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>recover</tt></i>:</span></td><td>return nodes even if the data is broken (use 0)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise In case recover is set to 1, the nodelist will not be empty even if the parsed chunk is not well balanced, assuming the parsing succeeded to some extent.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseChunk"/>xmlParseChunk ()</h3><pre class="programlisting">int xmlParseChunk (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * chunk, <br/> int size, <br/> int terminate)<br/>
+</pre><p>Parse a Chunk of memory</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml2-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseCtxtExternalEntity"/>xmlParseCtxtExternalEntity ()</h3><pre class="programlisting">int xmlParseCtxtExternalEntity (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URL, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ID, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)<br/>
+</pre><p>Parse an external general entity within an existing parsing context An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the existing parsing context</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the System ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseDTD"/>xmlParseDTD ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlParseDTD (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Load and parse an external subset.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>a NAME* containing the External ID of the DTD</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>a NAME* containing the URL to the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseDoc"/>xmlParseDoc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur)<br/>
+</pre><p>parse an XML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseDocument"/>xmlParseDocument ()</h3><pre class="programlisting">int xmlParseDocument (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML document (and build a tree if using the standard SAX interface). [1] document ::= prolog element Misc* [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0, -1 in case of error. the parser context is augmented as a result of the parsing.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseEntity"/>xmlParseEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseEntity (const char * filename)<br/>
+</pre><p>parse an XML external entity out of context and build a tree. [78] extParsedEnt ::= TextDecl? content This correspond to a "Well Balanced" chunk</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseExtParsedEnt"/>xmlParseExtParsedEnt ()</h3><pre class="programlisting">int xmlParseExtParsedEnt (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse a general parsed entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0, -1 in case of error. the parser context is augmented as a result of the parsing.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseExternalEntity"/>xmlParseExternalEntity ()</h3><pre class="programlisting">int xmlParseExternalEntity (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> int depth, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URL, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ID, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)<br/>
+</pre><p>Parse an external general entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document the chunk pertains to</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler bloc (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>Used for loop detection, use 0</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the System ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseFile"/>xmlParseFile ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseFile (const char * filename)<br/>
+</pre><p>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree if the file was wellformed, NULL otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseInNodeContext"/>xmlParseInNodeContext ()</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlParserErrors">xmlParserErrors</a> xmlParseInNodeContext (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const char * data, <br/> int datalen, <br/> int options, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)<br/>
+</pre><p>Parse a well-balanced chunk of an XML document within the context (DTD, namespaces, etc ...) of the given node. The allowed sequence for the data is a Well Balanced Chunk defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the context node</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the input string</td></tr><tr><td><span class="term"><i><tt>datalen</tt></i>:</span></td><td>the input string length in bytes</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td><a href="libxml2-xmlerror.html#XML_ERR_OK">XML_ERR_OK</a> if the chunk is well balanced, and the parser error code otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseMemory"/>xmlParseMemory ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseMemory (const char * buffer, <br/> int size)<br/>
+</pre><p>parse an XML in-memory block and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserAddNodeInfo"/>xmlParserAddNodeInfo ()</h3><pre class="programlisting">void xmlParserAddNodeInfo (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info)<br/>
+</pre><p>Insert node info record into the sorted sequence</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>a node info sequence pointer</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserFindNodeInfo"/>xmlParserFindNodeInfo ()</h3><pre class="programlisting">const <a href="libxml2-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * xmlParserFindNodeInfo (const <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx, <br/> const <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Find the parser node info struct for a given node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>an XML node within the tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an <a href="libxml2-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> block pointer or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserFindNodeInfoIndex"/>xmlParserFindNodeInfoIndex ()</h3><pre class="programlisting">unsigned long xmlParserFindNodeInfoIndex (const <a href="libxml2-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq, <br/> const <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p><a href="libxml2-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a> : Find the index that the info record for the given node is or should be at in a sorted sequence</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>seq</tt></i>:</span></td><td>a node info sequence pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>an XML node pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a long indicating the position of the record</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputGrow"/>xmlParserInputGrow ()</h3><pre class="programlisting">int xmlParserInputGrow (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in, <br/> int len)<br/>
+</pre><p>This function increase the input for the parser. It tries to preserve pointers to the input buffer, and keep already read data</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an XML parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>an indicative size for the lookahead</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of char read, or -1 in case of error, 0 indicate the end of this entity</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputRead"/>xmlParserInputRead ()</h3><pre class="programlisting">int xmlParserInputRead (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in, <br/> int len)<br/>
+</pre><p>This function was internal and is deprecated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an XML parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>an indicative size for the lookahead</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 as this is an error to use it.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPedanticParserDefault"/>xmlPedanticParserDefault ()</h3><pre class="programlisting">int xmlPedanticParserDefault (int val)<br/>
+</pre><p>Set and return the previous value for enabling pedantic warnings.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no substitution, 1 for substitution.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReadDoc"/>xmlReadDoc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReadFd"/>xmlReadFd ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadFd (int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML from a file descriptor and build a tree. NOTE that the file descriptor will not be closed when the reader is closed or reset.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReadFile"/>xmlReadFile ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadFile (const char * filename, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML file from the filesystem or the network.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReadIO"/>xmlReadIO ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadIO (<a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML document from I/O functions and source and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReadMemory"/>xmlReadMemory ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadMemory (const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRecoverDoc"/>xmlRecoverDoc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur)<br/>
+</pre><p>parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a attempt to build a tree is tried anyway</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree or NULL in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRecoverFile"/>xmlRecoverFile ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverFile (const char * filename)<br/>
+</pre><p>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, it attempts to build a tree anyway</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree or NULL in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRecoverMemory"/>xmlRecoverMemory ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverMemory (const char * buffer, <br/> int size)<br/>
+</pre><p>parse an XML in-memory block and build a tree. In the case the document is not Well Formed, an attempt to build a tree is tried anyway</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXParseDTD"/>xmlSAXParseDTD ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlSAXParseDTD (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Load and parse an external subset.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>a NAME* containing the External ID of the DTD</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>a NAME* containing the URL to the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXParseDoc"/>xmlSAXParseDoc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseDoc (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> int recovery)<br/>
+</pre><p>parse an XML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read no Well Formed documents</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXParseEntity"/>xmlSAXParseEntity ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseEntity (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const char * filename)<br/>
+</pre><p>parse an XML external entity out of context and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. [78] extParsedEnt ::= TextDecl? content This correspond to a "Well Balanced" chunk</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXParseFile"/>xmlSAXParseFile ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseFile (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const char * filename, <br/> int recovery)<br/>
+</pre><p>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read no Well Formed documents</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXParseFileWithData"/>xmlSAXParseFileWithData ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseFileWithData (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const char * filename, <br/> int recovery, <br/> void * data)<br/>
+</pre><p>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. User data (void *) is stored within the parser context in the context's _private member, so it is available nearly everywhere in libxml</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read no Well Formed documents</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXParseMemory"/>xmlSAXParseMemory ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseMemory (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const char * buffer, <br/> int size, <br/> int recovery)<br/>
+</pre><p>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read not Well Formed documents</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXParseMemoryWithData"/>xmlSAXParseMemoryWithData ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseMemoryWithData (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> const char * buffer, <br/> int size, <br/> int recovery, <br/> void * data)<br/>
+</pre><p>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. User data (void *) is stored within the parser context in the context's _private member, so it is available nearly everywhere in libxml</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read no Well Formed documents</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXUserParseFile"/>xmlSAXUserParseFile ()</h3><pre class="programlisting">int xmlSAXUserParseFile (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> const char * filename)<br/>
+</pre><p>parse an XML file and call the given SAX handler routines. Automatic support for ZLIB/Compress compressed document is provided</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success or a error number otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXUserParseMemory"/>xmlSAXUserParseMemory ()</h3><pre class="programlisting">int xmlSAXUserParseMemory (<a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data, <br/> const char * buffer, <br/> int size)<br/>
+</pre><p>A better SAX parsing routine. parse an XML in-memory buffer and call the given SAX handler routines.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an in-memory XML document input</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the length of the XML document in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success or a error number otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetExternalEntityLoader"/>xmlSetExternalEntityLoader ()</h3><pre class="programlisting">void xmlSetExternalEntityLoader (<a href="libxml2-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> f)<br/>
+</pre><p>Changes the defaultexternal entity resolver function for the application</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the new entity resolver function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetFeature"/>xmlSetFeature ()</h3><pre class="programlisting">int xmlSetFeature (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * name, <br/> void * value)<br/>
+</pre><p>Change the current value of one feature of this parser instance</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML/HTML parser context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the feature name</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>pointer to the location of the new value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case or error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetupParserForBuffer"/>xmlSetupParserForBuffer ()</h3><pre class="programlisting">void xmlSetupParserForBuffer (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buffer, <br/> const char * filename)<br/>
+</pre><p>Setup the parser context to parse a new buffer; Clears any prior contents from the parser context. The buffer parameter must not be NULL, but the filename parameter can be</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buffer</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStopParser"/>xmlStopParser ()</h3><pre class="programlisting">void xmlStopParser (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Blocks further parser processing</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSubstituteEntitiesDefault"/>xmlSubstituteEntitiesDefault ()</h3><pre class="programlisting">int xmlSubstituteEntitiesDefault (int val)<br/>
+</pre><p>Set and return the previous value for default entity support. Initially the parser always keep entity references instead of substituting entity values in the output. This function has to be used to change the default parser behavior SAX::substituteEntities() has to be used for changing that on a file by file basis.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no substitution, 1 for substitution.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-parserInternals.html b/libxml2-2.9.10/doc/devhelp/libxml2-parserInternals.html
new file mode 100644
index 0000000..2fca6bd
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-parserInternals.html
@@ -0,0 +1,688 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>parserInternals: internals routines and limits exported by the parser.</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-parser.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-pattern.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">parserInternals</span>
+ </h2>
+ <p>parserInternals - internals routines and limits exported by the parser.</p>
+ <p>this module exports a number of internal parsing routines they are not really all intended for applications but can prove useful doing low level processing. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a>;
+#define <a href="#IS_BLANK">IS_BLANK</a>(c);
+#define <a href="#IS_BYTE_CHAR">IS_BYTE_CHAR</a>(c);
+#define <a href="#IS_PUBIDCHAR">IS_PUBIDCHAR</a>(c);
+#define <a href="#IS_DIGIT_CH">IS_DIGIT_CH</a>(c);
+#define <a href="#IS_EXTENDER">IS_EXTENDER</a>(c);
+#define <a href="#IS_ASCII_DIGIT">IS_ASCII_DIGIT</a>(c);
+#define <a href="#IS_COMBINING_CH">IS_COMBINING_CH</a>(c);
+#define <a href="#IS_CHAR">IS_CHAR</a>(c);
+#define <a href="#IS_LETTER">IS_LETTER</a>(c);
+#define <a href="#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a>(c);
+#define <a href="#MOVETO_STARTTAG">MOVETO_STARTTAG</a>(p);
+#define <a href="#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a>;
+#define <a href="#IS_ASCII_LETTER">IS_ASCII_LETTER</a>(c);
+#define <a href="#IS_DIGIT">IS_DIGIT</a>(c);
+#define <a href="#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a>;
+#define <a href="#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a>;
+#define <a href="#MOVETO_ENDTAG">MOVETO_ENDTAG</a>(p);
+#define <a href="#SKIP_EOL">SKIP_EOL</a>(p);
+#define <a href="#IS_EXTENDER_CH">IS_EXTENDER_CH</a>(c);
+#define <a href="#IS_BLANK_CH">IS_BLANK_CH</a>(c);
+#define <a href="#IS_LETTER_CH">IS_LETTER_CH</a>(c);
+#define <a href="#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a>;
+#define <a href="#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a>;
+#define <a href="#XML_SUBSTITUTE_NONE">XML_SUBSTITUTE_NONE</a>;
+#define <a href="#IS_COMBINING">IS_COMBINING</a>(c);
+#define <a href="#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a>;
+#define <a href="#IS_BASECHAR">IS_BASECHAR</a>(c);
+#define <a href="#INPUT_CHUNK">INPUT_CHUNK</a>;
+#define <a href="#IS_PUBIDCHAR_CH">IS_PUBIDCHAR_CH</a>(c);
+#define <a href="#IS_CHAR_CH">IS_CHAR_CH</a>(c);
+#define <a href="#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a>;
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#nodePop">nodePop</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseNotationDecl">xmlParseNotationDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseExternalSubset">xmlParseExternalSubset</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+void <a href="#xmlParseMisc">xmlParseMisc</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNewStringInputStream">xmlNewStringInputStream</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buffer);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseExternalID">xmlParseExternalID</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** publicID, <br/> int strict);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlScanName">xmlScanName</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlParseElementDecl">xmlParseElementDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseMarkupDecl">xmlParseMarkupDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> <a href="#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a> (const char * filename, <br/> const char * encoding);
+int <a href="#inputPush">inputPush</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> value);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int len, <br/> int what, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end2, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end3);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#namePop">namePop</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseContent">xmlParseContent</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNewInputStream">xmlNewInputStream</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNamespaceParseQName">xmlNamespaceParseQName</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** prefix);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNewInputFromFile">xmlNewInputFromFile</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * filename);
+void <a href="#xmlParserHandlePEReference">xmlParserHandlePEReference</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStringDecodeEntities">xmlStringDecodeEntities</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int what, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end2, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end3);
+<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateFileParserCtxt">xmlCreateFileParserCtxt</a> (const char * filename);
+int <a href="#xmlParseCharRef">xmlParseCharRef</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseElement">xmlParseElement</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseTextDecl">xmlParseTextDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNewEntityInputStream">xmlNewEntityInputStream</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> entity);
+int <a href="#xmlCopyCharMultiByte">xmlCopyCharMultiByte</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * out, <br/> int val);
+<a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int inputchk);
+void <a href="#xmlParseCharData">xmlParseCharData</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int cdata);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseVersionInfo">xmlParseVersionInfo</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlParseSDDecl">xmlParseSDDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlParseEnumeratedType">xmlParseEnumeratedType</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> * tree);
+void <a href="#xmlHandleEntity">xmlHandleEntity</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> entity);
+int <a href="#xmlCurrentChar">xmlCurrentChar</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int * len);
+int <a href="#xmlSkipBlankChars">xmlSkipBlankChars</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> <a href="#xmlParseNotationType">xmlParseNotationType</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParserInputShrink">xmlParserInputShrink</a> (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in);
+void <a href="#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a> (<a href="libxml2-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a> func);
+void <a href="#xmlFreeInputStream">xmlFreeInputStream</a> (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input);
+void <a href="#xmlParsePEReference">xmlParsePEReference</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a> (const char * filename, <br/> int options);
+int <a href="#xmlIsLetter">xmlIsLetter</a> (int c);
+int <a href="#xmlCheckLanguageID">xmlCheckLanguageID</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * lang);
+void <a href="#xmlNextChar">xmlNextChar</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> <a href="#xmlParseEnumerationType">xmlParseEnumerationType</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlParseAttributeType">xmlParseAttributeType</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> * tree);
+int <a href="#xmlParseDefaultDecl">xmlParseDefaultDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** value);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseSystemLiteral">xmlParseSystemLiteral</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseAttValue">xmlParseAttValue</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateMemoryParserCtxt">xmlCreateMemoryParserCtxt</a> (const char * buffer, <br/> int size);
+void <a href="#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseName">xmlParseName</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseEncName">xmlParseEncName</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#nodePush">nodePush</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> value);
+int <a href="#xmlSwitchEncoding">xmlSwitchEncoding</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+int <a href="#xmlSwitchToEncoding">xmlSwitchToEncoding</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler);
+<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlParseEntityRef">xmlParseEntityRef</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseAttribute">xmlParseAttribute</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** value);
+void <a href="#xmlParseEndTag">xmlParseEndTag</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseEncodingDecl">xmlParseEncodingDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#htmlInitAutoClose">htmlInitAutoClose</a> (void);
+<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URL, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSplitQName">xmlSplitQName</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** prefix);
+void <a href="#xmlParserHandleReference">xmlParserHandleReference</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParsePITarget">xmlParsePITarget</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlParseElementContentDecl">xmlParseElementContentDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> * result);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#inputPop">inputPop</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> <a href="#xmlPopInput">xmlPopInput</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParsePubidLiteral">xmlParsePubidLiteral</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlPushInput">xmlPushInput</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseEntityValue">xmlParseEntityValue</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** orig);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlDecodeEntities">xmlDecodeEntities</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int len, <br/> int what, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end2, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end3);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseVersionNum">xmlParseVersionNum</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseXMLDecl">xmlParseXMLDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+typedef void <a href="#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a> (<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> ent, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> firstNode, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> lastNode);
+<a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int inputchk);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseQuotedString">xmlParseQuotedString</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseCDSect">xmlParseCDSect</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlStringCurrentChar">xmlStringCurrentChar</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> int * len);
+void <a href="#xmlParseComment">xmlParseComment</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlErrMemory">xmlErrMemory</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * extra);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseNmtoken">xmlParseNmtoken</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseReference">xmlParseReference</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#namePush">namePush</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+void <a href="#xmlParseNamespace">xmlParseNamespace</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+int <a href="#xmlCopyChar">xmlCopyChar</a> (int len, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * out, <br/> int val);
+void <a href="#xmlParsePI">xmlParsePI</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseStartTag">xmlParseStartTag</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+void <a href="#xmlParseEntityDecl">xmlParseEntityDecl</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="INPUT_CHUNK">Macro </a>INPUT_CHUNK</h3><pre class="programlisting">#define <a href="#INPUT_CHUNK">INPUT_CHUNK</a>;
+</pre><p>The parser tries to always have that amount of input ready. One of the point is providing context when reporting errors.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_ASCII_DIGIT">Macro </a>IS_ASCII_DIGIT</h3><pre class="programlisting">#define <a href="#IS_ASCII_DIGIT">IS_ASCII_DIGIT</a>(c);
+</pre><p>Macro to check [0-9]</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> value</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_ASCII_LETTER">Macro </a>IS_ASCII_LETTER</h3><pre class="programlisting">#define <a href="#IS_ASCII_LETTER">IS_ASCII_LETTER</a>(c);
+</pre><p>Macro to check [a-zA-Z]</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> value</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_BASECHAR">Macro </a>IS_BASECHAR</h3><pre class="programlisting">#define <a href="#IS_BASECHAR">IS_BASECHAR</a>(c);
+</pre><p>Macro to check the following production in the XML spec: [85] BaseChar ::= ... long list see REC ...</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an UNICODE value (int)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_BLANK">Macro </a>IS_BLANK</h3><pre class="programlisting">#define <a href="#IS_BLANK">IS_BLANK</a>(c);
+</pre><p>Macro to check the following production in the XML spec: [3] S ::= (#x20 | #x9 | #xD | #xA)+</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an UNICODE value (int)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_BLANK_CH">Macro </a>IS_BLANK_CH</h3><pre class="programlisting">#define <a href="#IS_BLANK_CH">IS_BLANK_CH</a>(c);
+</pre><p>Behaviour same as <a href="libxml2-parserInternals.html#IS_BLANK">IS_BLANK</a></p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> value (normally unsigned char)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_BYTE_CHAR">Macro </a>IS_BYTE_CHAR</h3><pre class="programlisting">#define <a href="#IS_BYTE_CHAR">IS_BYTE_CHAR</a>(c);
+</pre><p>Macro to check the following production in the XML spec: [2] Char ::= #x9 | #xA | #xD | [#x20...] any byte character in the accepted range</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an byte value (int)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_CHAR">Macro </a>IS_CHAR</h3><pre class="programlisting">#define <a href="#IS_CHAR">IS_CHAR</a>(c);
+</pre><p>Macro to check the following production in the XML spec: [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an UNICODE value (int)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_CHAR_CH">Macro </a>IS_CHAR_CH</h3><pre class="programlisting">#define <a href="#IS_CHAR_CH">IS_CHAR_CH</a>(c);
+</pre><p>Behaves like <a href="libxml2-parserInternals.html#IS_CHAR">IS_CHAR</a> on single-byte value</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> (usually an unsigned char)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_COMBINING">Macro </a>IS_COMBINING</h3><pre class="programlisting">#define <a href="#IS_COMBINING">IS_COMBINING</a>(c);
+</pre><p>Macro to check the following production in the XML spec: [87] CombiningChar ::= ... long list see REC ...</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an UNICODE value (int)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_COMBINING_CH">Macro </a>IS_COMBINING_CH</h3><pre class="programlisting">#define <a href="#IS_COMBINING_CH">IS_COMBINING_CH</a>(c);
+</pre><p>Always false (all combining chars &gt; 0xff)</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> (usually an unsigned char)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_DIGIT">Macro </a>IS_DIGIT</h3><pre class="programlisting">#define <a href="#IS_DIGIT">IS_DIGIT</a>(c);
+</pre><p>Macro to check the following production in the XML spec: [88] Digit ::= ... long list see REC ...</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an UNICODE value (int)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_DIGIT_CH">Macro </a>IS_DIGIT_CH</h3><pre class="programlisting">#define <a href="#IS_DIGIT_CH">IS_DIGIT_CH</a>(c);
+</pre><p>Behaves like <a href="libxml2-parserInternals.html#IS_DIGIT">IS_DIGIT</a> but with a single byte argument</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> value (usually an unsigned char)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_EXTENDER">Macro </a>IS_EXTENDER</h3><pre class="programlisting">#define <a href="#IS_EXTENDER">IS_EXTENDER</a>(c);
+</pre><p>Macro to check the following production in the XML spec: [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E] | [#x30FC-#x30FE]</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an UNICODE value (int)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_EXTENDER_CH">Macro </a>IS_EXTENDER_CH</h3><pre class="programlisting">#define <a href="#IS_EXTENDER_CH">IS_EXTENDER_CH</a>(c);
+</pre><p>Behaves like <a href="libxml2-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a> but with a single-byte argument</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> value (usually an unsigned char)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_IDEOGRAPHIC">Macro </a>IS_IDEOGRAPHIC</h3><pre class="programlisting">#define <a href="#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a>(c);
+</pre><p>Macro to check the following production in the XML spec: [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an UNICODE value (int)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_LETTER">Macro </a>IS_LETTER</h3><pre class="programlisting">#define <a href="#IS_LETTER">IS_LETTER</a>(c);
+</pre><p>Macro to check the following production in the XML spec: [84] Letter ::= BaseChar | Ideographic</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an UNICODE value (int)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_LETTER_CH">Macro </a>IS_LETTER_CH</h3><pre class="programlisting">#define <a href="#IS_LETTER_CH">IS_LETTER_CH</a>(c);
+</pre><p>Macro behaves like IS_LETTER, but only check base chars</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> value (normally unsigned char)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_PUBIDCHAR">Macro </a>IS_PUBIDCHAR</h3><pre class="programlisting">#define <a href="#IS_PUBIDCHAR">IS_PUBIDCHAR</a>(c);
+</pre><p>Macro to check the following production in the XML spec: [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an UNICODE value (int)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="IS_PUBIDCHAR_CH">Macro </a>IS_PUBIDCHAR_CH</h3><pre class="programlisting">#define <a href="#IS_PUBIDCHAR_CH">IS_PUBIDCHAR_CH</a>(c);
+</pre><p>Same as <a href="libxml2-parserInternals.html#IS_PUBIDCHAR">IS_PUBIDCHAR</a> but for single-byte value</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> value (normally unsigned char)</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="MOVETO_ENDTAG">Macro </a>MOVETO_ENDTAG</h3><pre class="programlisting">#define <a href="#MOVETO_ENDTAG">MOVETO_ENDTAG</a>(p);
+</pre><p>Skips to the next '&gt;' char.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>p</tt></i>:</span></td><td>and UTF8 string pointer</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="MOVETO_STARTTAG">Macro </a>MOVETO_STARTTAG</h3><pre class="programlisting">#define <a href="#MOVETO_STARTTAG">MOVETO_STARTTAG</a>(p);
+</pre><p>Skips to the next '&lt;' char.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>p</tt></i>:</span></td><td>and UTF8 string pointer</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="SKIP_EOL">Macro </a>SKIP_EOL</h3><pre class="programlisting">#define <a href="#SKIP_EOL">SKIP_EOL</a>(p);
+</pre><p>Skips the end of line chars.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>p</tt></i>:</span></td><td>and UTF8 string pointer</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_MAX_DICTIONARY_LIMIT">Macro </a>XML_MAX_DICTIONARY_LIMIT</h3><pre class="programlisting">#define <a href="#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a>;
+</pre><p>Maximum size allowed by the parser for a dictionary by default This is not a limitation of the parser but a safety boundary feature, use <a href="libxml2-parser.html#XML_PARSE_HUGE">XML_PARSE_HUGE</a> option to override it. Introduced in 2.9.0</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_MAX_LOOKUP_LIMIT">Macro </a>XML_MAX_LOOKUP_LIMIT</h3><pre class="programlisting">#define <a href="#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a>;
+</pre><p>Maximum size allowed by the parser for ahead lookup This is an upper boundary enforced by the parser to avoid bad behaviour on "unfriendly' content Introduced in 2.9.0</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_MAX_NAMELEN">Macro </a>XML_MAX_NAMELEN</h3><pre class="programlisting">#define <a href="#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a>;
+</pre><p>Identifiers can be longer, but this will be more costly at runtime.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_MAX_NAME_LENGTH">Macro </a>XML_MAX_NAME_LENGTH</h3><pre class="programlisting">#define <a href="#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a>;
+</pre><p>Maximum size allowed for a markup identifier. This is not a limitation of the parser but a safety boundary feature, use <a href="libxml2-parser.html#XML_PARSE_HUGE">XML_PARSE_HUGE</a> option to override it. Note that with the use of parsing dictionaries overriding the limit may result in more runtime memory usage in face of "unfriendly' content Introduced in 2.9.0</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_MAX_TEXT_LENGTH">Macro </a>XML_MAX_TEXT_LENGTH</h3><pre class="programlisting">#define <a href="#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a>;
+</pre><p>Maximum size allowed for a single text node when building a tree. This is not a limitation of the parser but a safety boundary feature, use <a href="libxml2-parser.html#XML_PARSE_HUGE">XML_PARSE_HUGE</a> option to override it. Introduced in 2.9.0</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SUBSTITUTE_BOTH">Macro </a>XML_SUBSTITUTE_BOTH</h3><pre class="programlisting">#define <a href="#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a>;
+</pre><p>Both general and parameter entities need to be substituted.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SUBSTITUTE_NONE">Macro </a>XML_SUBSTITUTE_NONE</h3><pre class="programlisting">#define <a href="#XML_SUBSTITUTE_NONE">XML_SUBSTITUTE_NONE</a>;
+</pre><p>If no entities need to be substituted.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SUBSTITUTE_PEREF">Macro </a>XML_SUBSTITUTE_PEREF</h3><pre class="programlisting">#define <a href="#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a>;
+</pre><p>Whether parameter entities need to be substituted.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SUBSTITUTE_REF">Macro </a>XML_SUBSTITUTE_REF</h3><pre class="programlisting">#define <a href="#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a>;
+</pre><p>Whether general entities need to be substituted.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlEntityReferenceFunc"/>Function type xmlEntityReferenceFunc</h3><pre class="programlisting">void xmlEntityReferenceFunc (<a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> ent, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> firstNode, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> lastNode)<br/>
+</pre><p>Callback function used when one needs to be able to track back the provenance of a chunk of nodes inherited from an entity replacement.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ent</tt></i>:</span></td><td>the entity</td></tr><tr><td><span class="term"><i><tt>firstNode</tt></i>:</span></td><td>the fist node in the chunk</td></tr><tr><td><span class="term"><i><tt>lastNode</tt></i>:</span></td><td>the last nod in the chunk</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserMaxDepth">Variable </a>xmlParserMaxDepth</h3><pre class="programlisting">unsigned int xmlParserMaxDepth;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStringComment">Variable </a>xmlStringComment</h3><pre class="programlisting">const xmlCharxmlStringComment[] xmlStringComment;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStringText">Variable </a>xmlStringText</h3><pre class="programlisting">const xmlCharxmlStringText[] xmlStringText;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStringTextNoenc">Variable </a>xmlStringTextNoenc</h3><pre class="programlisting">const xmlCharxmlStringTextNoenc[] xmlStringTextNoenc;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlCreateFileParserCtxt"/>htmlCreateFileParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> htmlCreateFileParserCtxt (const char * filename, <br/> const char * encoding)<br/>
+</pre><p>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="htmlInitAutoClose"/>htmlInitAutoClose ()</h3><pre class="programlisting">void htmlInitAutoClose (void)<br/>
+</pre><p>Initialize the htmlStartCloseIndex for fast lookup of closing tags names. This is not reentrant. Call xmlInitParser() once before processing in case of use in multithreaded programs.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="inputPop"/>inputPop ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> inputPop (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Pops the top parser input from the input stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the input just removed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="inputPush"/>inputPush ()</h3><pre class="programlisting">int inputPush (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> value)<br/>
+</pre><p>Pushes a new parser input on top of the input stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the parser input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, the index in the stack otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="namePop"/>namePop ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namePop (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Pops the top element name from the name stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the name just removed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="namePush"/>namePush ()</h3><pre class="programlisting">int namePush (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Pushes a new element name on top of the name stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, the index in the stack otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="nodePop"/>nodePop ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> nodePop (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Pops the top element node from the node stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node just removed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="nodePush"/>nodePush ()</h3><pre class="programlisting">int nodePush (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> value)<br/>
+</pre><p>Pushes a new element node on top of the node stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, the index in the stack otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCheckLanguageID"/>xmlCheckLanguageID ()</h3><pre class="programlisting">int xmlCheckLanguageID (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * lang)<br/>
+</pre><p>Checks that the value conforms to the LanguageID production: NOTE: this is somewhat deprecated, those productions were removed from the XML Second edition. [33] LanguageID ::= Langcode ('-' Subcode)* [34] Langcode ::= ISO639Code | IanaCode | UserCode [35] ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= ('i' | 'I') '-' ([a-z] | [A-Z])+ [37] UserCode ::= ('x' | 'X') '-' ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+ The current REC <a href="libxml2-SAX.html#reference">reference</a> the successors of RFC 1766, currently 5646 http://www.rfc-editor.org/rfc/rfc5646.txt langtag = language ["-" script] ["-" region] *("-" variant) *("-" extension) ["-" privateuse] language = 2*3ALPHA ; shortest ISO 639 code ["-" extlang] ; sometimes followed by ; extended language subtags / 4ALPHA ; or reserved for future use / 5*8ALPHA ; or registered language subtag extlang = 3ALPHA ; selected ISO 639 codes *2("-" 3ALPHA) ; permanently reserved script = 4ALPHA ; ISO 15924 code region = 2ALPHA ; ISO 3166-1 code / 3DIGIT ; UN M.49 code variant = 5*8alphanum ; registered variants / (DIGIT 3alphanum) extension = singleton 1*("-" (2*8alphanum)) ; Single alphanumerics ; "x" reserved for private use singleton = DIGIT ; 0 - 9 / %x41-57 ; A - W / %x59-5A ; Y - Z / %x61-77 ; a - w / %x79-7A ; y - z it sounds right to still allow Irregular i-xxx IANA and user codes too The parser below doesn't try to cope with extension or privateuse that could be added but that's not interoperable anyway</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>lang</tt></i>:</span></td><td>pointer to the string value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if correct 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyChar"/>xmlCopyChar ()</h3><pre class="programlisting">int xmlCopyChar (int len, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * out, <br/> int val)<br/>
+</pre><p>append the char value in the array</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>Ignored, compatibility</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the char value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> written</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyCharMultiByte"/>xmlCopyCharMultiByte ()</h3><pre class="programlisting">int xmlCopyCharMultiByte (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * out, <br/> int val)<br/>
+</pre><p>append the char value in the array</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the char value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> written</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreateEntityParserCtxt"/>xmlCreateEntityParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateEntityParserCtxt (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URL, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base)<br/>
+</pre><p>Create a parser context for an external entity Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the entity URL</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the entity PUBLIC ID</td></tr><tr><td><span class="term"><i><tt>base</tt></i>:</span></td><td>a possible base for the target URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreateFileParserCtxt"/>xmlCreateFileParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateFileParserCtxt (const char * filename)<br/>
+</pre><p>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreateMemoryParserCtxt"/>xmlCreateMemoryParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateMemoryParserCtxt (const char * buffer, <br/> int size)<br/>
+</pre><p>Create a parser context for an XML in-memory document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreateURLParserCtxt"/>xmlCreateURLParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateURLParserCtxt (const char * filename, <br/> int options)<br/>
+</pre><p>Create a parser context for a file or URL content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time and for file accesses</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCurrentChar"/>xmlCurrentChar ()</h3><pre class="programlisting">int xmlCurrentChar (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int * len)<br/>
+</pre><p>The current char value, if using UTF-8 this may actually span multiple bytes in the input buffer. Implement the end of line normalization: 2.11 End-of-Line Handling Wherever an external parsed entity or the literal entity value of an internal parsed entity contains either the literal two-character sequence "#xD#xA" or a standalone literal #xD, an XML processor must pass to the application the single character #xA. This behavior can conveniently be produced by normalizing all line breaks to #xA on input, before parsing.)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XML parser context</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>pointer to the length of the char read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current char value and its length</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDecodeEntities"/>xmlDecodeEntities ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlDecodeEntities (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int len, <br/> int what, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end2, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end3)<br/>
+</pre><p>This function is deprecated, we now always process entities content through <a href="libxml2-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a> TODO: remove it in next major release. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= '%' Name ';'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len to decode (in bytes !), -1 for no size limit</td></tr><tr><td><span class="term"><i><tt>what</tt></i>:</span></td><td>combination of <a href="libxml2-parserInternals.html#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a> and <a href="libxml2-parserInternals.html#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a></td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end2</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end3</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>A newly allocated string with the substitution done. The caller must deallocate it !</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlErrMemory"/>xmlErrMemory ()</h3><pre class="programlisting">void xmlErrMemory (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * extra)<br/>
+</pre><p>Handle a redefinition of <a href="libxml2-SAX.html#attribute">attribute</a> error</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>extra</tt></i>:</span></td><td>extra informations</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeInputStream"/>xmlFreeInputStream ()</h3><pre class="programlisting">void xmlFreeInputStream (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br/>
+</pre><p>Free up an input stream.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHandleEntity"/>xmlHandleEntity ()</h3><pre class="programlisting">void xmlHandleEntity (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> entity)<br/>
+</pre><p>Default handling of defined entities, when should we define a new input stream ? When do we just handle that as a set of chars ? OBSOLETE: to be removed at some point.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>entity</tt></i>:</span></td><td>an XML entity pointer.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsLetter"/>xmlIsLetter ()</h3><pre class="programlisting">int xmlIsLetter (int c)<br/>
+</pre><p>Check whether the character is allowed by the production [84] Letter ::= BaseChar | Ideographic</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an unicode character (int)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if not, non-zero otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNamespaceParseNCName"/>xmlNamespaceParseNCName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlNamespaceParseNCName (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML namespace name. TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. [NS 3] NCName ::= (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace name or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNamespaceParseNSDef"/>xmlNamespaceParseNSDef ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlNamespaceParseNSDef (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse a namespace prefix declaration TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. [NS 1] NSDef ::= PrefixDef Eq SystemLiteral [NS 2] PrefixDef ::= 'xmlns' (':' NCName)?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNamespaceParseQName"/>xmlNamespaceParseQName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlNamespaceParseQName (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** prefix)<br/>
+</pre><p>TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. parse an XML qualified name [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local part, and prefix is updated to get the Prefix if any.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewEntityInputStream"/>xmlNewEntityInputStream ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewEntityInputStream (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> entity)<br/>
+</pre><p>Create a new input stream based on an <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>entity</tt></i>:</span></td><td>an Entity pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewInputFromFile"/>xmlNewInputFromFile ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewInputFromFile (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const char * filename)<br/>
+</pre><p>Create a new input stream based on a file or an URL.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename to use as entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewInputStream"/>xmlNewInputStream ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewInputStream (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Create a new input stream structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewStringInputStream"/>xmlNewStringInputStream ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewStringInputStream (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buffer)<br/>
+</pre><p>Create a new input stream based on a memory buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an memory buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNextChar"/>xmlNextChar ()</h3><pre class="programlisting">void xmlNextChar (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Skip to the next char input char.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseAttValue"/>xmlParseAttValue ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseAttValue (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse a value for an <a href="libxml2-SAX.html#attribute">attribute</a> Note: the parser won't do substitution of entities here, this will be handled later in <a href="libxml2-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a> [10] AttValue ::= '"' ([^&lt;&amp;"] | Reference)* '"' | "'" ([^&lt;&amp;'] | Reference)* "'" 3.3.3 Attribute-Value Normalization: Before the value of an <a href="libxml2-SAX.html#attribute">attribute</a> is passed to the application or checked for validity, the XML processor must normalize it as follows: - a character <a href="libxml2-SAX.html#reference">reference</a> is processed by appending the referenced character to the <a href="libxml2-SAX.html#attribute">attribute</a> value - an entity <a href="libxml2-SAX.html#reference">reference</a> is processed by recursively processing the replacement text of the entity - a whitespace character (#x20, #xD, #xA, #x9) is processed by appending #x20 to the normalized value, except that only a single #x20 is appended for a "#xD#xA" sequence that is part of an external parsed entity or the literal entity value of an internal parsed entity - other <a href="libxml2-SAX.html#characters">characters</a> are processed by appending them to the normalized value If the declared value is not CDATA, then the XML processor must further process the normalized <a href="libxml2-SAX.html#attribute">attribute</a> value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) <a href="libxml2-SAX.html#characters">characters</a> by a single space (#x20) character. All attributes for which no declaration has been read should be treated by a non-validating parser as if declared CDATA.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the AttValue parsed or NULL. The value has to be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseAttribute"/>xmlParseAttribute ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseAttribute (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** value)<br/>
+</pre><p>parse an <a href="libxml2-SAX.html#attribute">attribute</a> [41] Attribute ::= Name Eq AttValue [ WFC: No External Entity References ] Attribute values cannot contain direct or indirect entity references to external entities. [ WFC: No &lt; in Attribute Values ] The replacement text of any entity referred to directly or indirectly in an <a href="libxml2-SAX.html#attribute">attribute</a> value (other than "&amp;lt;") must not contain a &lt;. [ VC: Attribute Value Type ] The <a href="libxml2-SAX.html#attribute">attribute</a> must have been declared; the value must be of the type declared for it. [25] Eq ::= S? '=' S? With namespace: [NS 11] Attribute ::= QName Eq AttValue Also the case QName == xmlns:??? is handled independently as a namespace definition.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** used to store the value of the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name, and the value in *value.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseAttributeListDecl"/>xmlParseAttributeListDecl ()</h3><pre class="programlisting">void xmlParseAttributeListDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>: parse the Attribute list def for an element [52] AttlistDecl ::= '&lt;!ATTLIST' S Name AttDef* S? '&gt;' [53] AttDef ::= S Name S AttType S DefaultDecl</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseAttributeType"/>xmlParseAttributeType ()</h3><pre class="programlisting">int xmlParseAttributeType (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> * tree)<br/>
+</pre><p>parse the Attribute list def for an element [54] AttType ::= StringType | TokenizedType | EnumeratedType [55] StringType ::= 'CDATA' [56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS' Validity constraints for <a href="libxml2-SAX.html#attribute">attribute</a> values syntax are checked in xmlValidateAttributeValue() [ VC: ID ] Values of type ID must match the Name production. A name must not appear more than once in an XML document as a value of this type; i.e., ID values must uniquely identify the elements which bear them. [ VC: One ID per Element Type ] No element type may have more than one ID <a href="libxml2-SAX.html#attribute">attribute</a> specified. [ VC: ID Attribute Default ] An ID <a href="libxml2-SAX.html#attribute">attribute</a> must have a declared default of #IMPLIED or #REQUIRED. [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names; each IDREF Name must match the value of an ID <a href="libxml2-SAX.html#attribute">attribute</a> on some element in the XML document; i.e. IDREF values must match the value of some ID attribute. [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names; each Entity Name must match the name of an unparsed entity declared in the DTD. [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the enumeration tree built while parsing</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> type</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseCDSect"/>xmlParseCDSect ()</h3><pre class="programlisting">void xmlParseCDSect (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Parse escaped pure raw content. [18] CDSect ::= CDStart CData CDEnd [19] CDStart ::= '&lt;![CDATA[' [20] Data ::= (Char* - (Char* ']]&gt;' Char*)) [21] CDEnd ::= ']]&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseCharData"/>xmlParseCharData ()</h3><pre class="programlisting">void xmlParseCharData (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int cdata)<br/>
+</pre><p>parse a CharData section. if we are within a CDATA section ']]&gt;' marks an end of section. The right angle bracket (&gt;) may be represented using the string "&amp;gt;", and must, for compatibility, be escaped using "&amp;gt;" or a character <a href="libxml2-SAX.html#reference">reference</a> when it appears in the string "]]&gt;" in content, when that string is not marking the end of a CDATA section. [14] CharData ::= [^&lt;&amp;]* - ([^&lt;&amp;]* ']]&gt;' [^&lt;&amp;]*)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>cdata</tt></i>:</span></td><td>int indicating whether we are within a CDATA section</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseCharRef"/>xmlParseCharRef ()</h3><pre class="programlisting">int xmlParseCharRef (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse Reference declarations [66] CharRef ::= '&amp;#' [0-9]+ ';' | '&amp;#x' [0-9a-fA-F]+ ';' [ WFC: Legal Character ] Characters referred to using character references must match the production for Char.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value parsed (as an int), 0 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseComment"/>xmlParseComment ()</h3><pre class="programlisting">void xmlParseComment (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Skip an XML (SGML) <a href="libxml2-SAX.html#comment">comment</a> &lt;!-- .... --&gt; The spec says that "For compatibility, the string "--" (double-hyphen) must not occur within comments. " [15] Comment ::= '&lt;!--' ((Char - '-') | ('-' (Char - '-')))* '--&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseContent"/>xmlParseContent ()</h3><pre class="programlisting">void xmlParseContent (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Parse a content: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseDefaultDecl"/>xmlParseDefaultDecl ()</h3><pre class="programlisting">int xmlParseDefaultDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** value)<br/>
+</pre><p>Parse an <a href="libxml2-SAX.html#attribute">attribute</a> default declaration [60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue) [ VC: Required Attribute ] if the default declaration is the keyword #REQUIRED, then the <a href="libxml2-SAX.html#attribute">attribute</a> must be specified for all elements of the type in the attribute-list declaration. [ VC: Attribute Default Legal ] The declared default value must meet the lexical constraints of the declared <a href="libxml2-SAX.html#attribute">attribute</a> type c.f. xmlValidateAttributeDecl() [ VC: Fixed Attribute Default ] if an <a href="libxml2-SAX.html#attribute">attribute</a> has a default value declared with the #FIXED keyword, instances of that <a href="libxml2-SAX.html#attribute">attribute</a> must match the default value. [ WFC: No &lt; in Attribute Values ] handled in xmlParseAttValue()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>Receive a possible fixed default value for the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>XML_ATTRIBUTE_NONE, XML_ATTRIBUTE_REQUIRED, <a href="libxml2-tree.html#XML_ATTRIBUTE_IMPLIED">XML_ATTRIBUTE_IMPLIED</a> or XML_ATTRIBUTE_FIXED.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseDocTypeDecl"/>xmlParseDocTypeDecl ()</h3><pre class="programlisting">void xmlParseDocTypeDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse a DOCTYPE declaration [28] doctypedecl ::= '&lt;!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdecl | PEReference | S)* ']' S?)? '&gt;' [ VC: Root Element Type ] The Name in the document type declaration must match the element type of the root element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseElement"/>xmlParseElement ()</h3><pre class="programlisting">void xmlParseElement (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML element [39] element ::= EmptyElemTag | STag content ETag [ WFC: Element Type Match ] The Name in an element's end-tag must match the element type in the start-tag.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseElementChildrenContentDecl"/>xmlParseElementChildrenContentDecl ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlParseElementChildrenContentDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int inputchk)<br/>
+</pre><p>parse the declaration for a Mixed Element content The leading '(' and spaces have been skipped in <a href="libxml2-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a> [47] children ::= (choice | seq) ('?' | '*' | '+')? [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')? [49] choice ::= '(' S? cp ( S? '|' S? cp )* S? ')' [50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')' [ VC: Proper Group/PE Nesting ] applies to [49] and [50] TODO Parameter-entity replacement text must be properly nested with parenthesized groups. That is to say, if either of the opening or closing parentheses in a choice, seq, or Mixed construct is contained in the replacement text for a parameter entity, both must be contained in the same replacement text. For interoperability, if a parameter-entity <a href="libxml2-SAX.html#reference">reference</a> appears in a choice, seq, or Mixed construct, its replacement text should not be empty, and neither the first nor last non-blank character of the replacement text should be a connector (| or ,).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>inputchk</tt></i>:</span></td><td>the input used for the current entity, needed for boundary checks</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the tree of <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> describing the element hierarchy.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseElementContentDecl"/>xmlParseElementContentDecl ()</h3><pre class="programlisting">int xmlParseElementContentDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> * result)<br/>
+</pre><p>parse the declaration for an Element content either Mixed or Children, the cases EMPTY and ANY are handled directly in <a href="libxml2-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a> [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | children</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the element being defined.</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the Element Content pointer will be stored here if any</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type of element content XML_ELEMENT_TYPE_xxx</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseElementDecl"/>xmlParseElementDecl ()</h3><pre class="programlisting">int xmlParseElementDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an Element declaration. [45] elementdecl ::= '&lt;!ELEMENT' S Name S contentspec S? '&gt;' [ VC: Unique Element Type Declaration ] No element type may be declared more than once</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type of the element, or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseElementMixedContentDecl"/>xmlParseElementMixedContentDecl ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlParseElementMixedContentDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int inputchk)<br/>
+</pre><p>parse the declaration for a Mixed Element content The leading '(' and spaces have been skipped in <a href="libxml2-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a> [51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*' | '(' S? '#PCDATA' S? ')' [ VC: Proper Group/PE Nesting ] applies to [51] too (see [49]) [ VC: No Duplicate Types ] The same name must not appear more than once in a single mixed-content declaration.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>inputchk</tt></i>:</span></td><td>the input used for the current entity, needed for boundary checks</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the list of the <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> describing the element choices</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseEncName"/>xmlParseEncName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseEncName (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse the XML encoding name [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the encoding name value or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseEncodingDecl"/>xmlParseEncodingDecl ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseEncodingDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse the XML encoding declaration [80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' | "'" EncName "'") this setups the conversion filters.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the encoding value or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseEndTag"/>xmlParseEndTag ()</h3><pre class="programlisting">void xmlParseEndTag (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an end of tag [42] ETag ::= '&lt;/' Name S? '&gt;' With namespace [NS 9] ETag ::= '&lt;/' QName S? '&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseEntityDecl"/>xmlParseEntityDecl ()</h3><pre class="programlisting">void xmlParseEntityDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse &lt;!ENTITY declarations [70] EntityDecl ::= GEDecl | PEDecl [71] GEDecl ::= '&lt;!ENTITY' S Name S EntityDef S? '&gt;' [72] PEDecl ::= '&lt;!ENTITY' S '%' S Name S PEDef S? '&gt;' [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?) [74] PEDef ::= EntityValue | ExternalID [76] NDataDecl ::= S 'NDATA' S Name [ VC: Notation Declared ] The Name must match the declared name of a notation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseEntityRef"/>xmlParseEntityRef ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlParseEntityRef (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse ENTITY references declarations [68] EntityRef ::= '&amp;' Name ';' [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with "standalone='yes'", the Name given in the entity <a href="libxml2-SAX.html#reference">reference</a> must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot. The declaration of a parameter entity must precede any <a href="libxml2-SAX.html#reference">reference</a> to it. Similarly, the declaration of a general entity must precede any <a href="libxml2-SAX.html#reference">reference</a> to it which appears in a default value in an attribute-list declaration. Note that if entities are declared in the external subset or in external parameter entities, a non-validating processor is not obligated to read and process their declarations; for such documents, the rule that an entity must be declared is a well-formedness constraint only if standalone='yes'. [ WFC: Parsed Entity ] An entity <a href="libxml2-SAX.html#reference">reference</a> must not contain the name of an unparsed entity</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found, or NULL otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseEntityValue"/>xmlParseEntityValue ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseEntityValue (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** orig)<br/>
+</pre><p>parse a value for ENTITY declarations [9] EntityValue ::= '"' ([^%&amp;"] | PEReference | Reference)* '"' | "'" ([^%&amp;'] | PEReference | Reference)* "'"</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>orig</tt></i>:</span></td><td>if non-NULL store a copy of the original entity value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the EntityValue parsed with <a href="libxml2-SAX.html#reference">reference</a> substituted or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseEnumeratedType"/>xmlParseEnumeratedType ()</h3><pre class="programlisting">int xmlParseEnumeratedType (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> * tree)<br/>
+</pre><p>parse an Enumerated <a href="libxml2-SAX.html#attribute">attribute</a> type. [57] EnumeratedType ::= NotationType | Enumeration [58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the enumeration tree built while parsing</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td><a href="libxml2-tree.html#XML_ATTRIBUTE_ENUMERATION">XML_ATTRIBUTE_ENUMERATION</a> or <a href="libxml2-tree.html#XML_ATTRIBUTE_NOTATION">XML_ATTRIBUTE_NOTATION</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseEnumerationType"/>xmlParseEnumerationType ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> xmlParseEnumerationType (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an Enumeration <a href="libxml2-SAX.html#attribute">attribute</a> type. [59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')' [ VC: Enumeration ] Values of this type must match one of the Nmtoken tokens in the declaration</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the enumeration <a href="libxml2-SAX.html#attribute">attribute</a> tree built while parsing</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseExternalID"/>xmlParseExternalID ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseExternalID (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** publicID, <br/> int strict)<br/>
+</pre><p>Parse an External ID or a Public ID NOTE: Productions [75] and [83] interact badly since [75] can generate 'PUBLIC' S PubidLiteral S SystemLiteral [75] ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral [83] PublicID ::= 'PUBLIC' S PubidLiteral</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>publicID</tt></i>:</span></td><td>a xmlChar** receiving PubidLiteral</td></tr><tr><td><span class="term"><i><tt>strict</tt></i>:</span></td><td>indicate whether we should restrict parsing to only production [75], see NOTE below</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the function returns SystemLiteral and in the second case publicID receives PubidLiteral, is strict is off it is possible to return NULL and have publicID set.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseExternalSubset"/>xmlParseExternalSubset ()</h3><pre class="programlisting">void xmlParseExternalSubset (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>parse Markup declarations from an external subset [30] extSubset ::= textDecl? extSubsetDecl [31] extSubsetDecl ::= (markupdecl | conditionalSect | PEReference | S) *</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external identifier</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the system identifier (or URL)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseMarkupDecl"/>xmlParseMarkupDecl ()</h3><pre class="programlisting">void xmlParseMarkupDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse Markup declarations [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment [ VC: Proper Declaration/PE Nesting ] Parameter-entity replacement text must be properly nested with markup declarations. That is to say, if either the first character or the last character of a markup declaration (markupdecl above) is contained in the replacement text for a parameter-entity reference, both must be contained in the same replacement text. [ WFC: PEs in Internal Subset ] In the internal DTD subset, parameter-entity references can occur only where markup declarations can occur, not within markup declarations. (This does not apply to references that occur in external parameter entities or to the external subset.)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseMisc"/>xmlParseMisc ()</h3><pre class="programlisting">void xmlParseMisc (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML Misc* optional field. [27] Misc ::= Comment | PI | S</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseName"/>xmlParseName ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseName (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML name. [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (#x20 Name)*</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the Name parsed or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseNamespace"/>xmlParseNamespace ()</h3><pre class="programlisting">void xmlParseNamespace (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>xmlParseNamespace: parse specific PI '&lt;?namespace ...' constructs. This is what the older xml-name Working Draft specified, a bunch of other stuff may still rely on it, so support is still here as if it was declared on the root of the Tree:-( TODO: remove from library To be removed at next drop of binary compatibility</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseNmtoken"/>xmlParseNmtoken ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseNmtoken (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML Nmtoken. [7] Nmtoken ::= (NameChar)+ [8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the Nmtoken parsed or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseNotationDecl"/>xmlParseNotationDecl ()</h3><pre class="programlisting">void xmlParseNotationDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse a notation declaration [82] NotationDecl ::= '&lt;!NOTATION' S Name S (ExternalID | PublicID) S? '&gt;' Hence there is actually 3 choices: 'PUBLIC' S PubidLiteral 'PUBLIC' S PubidLiteral S SystemLiteral and 'SYSTEM' S SystemLiteral See the NOTE on xmlParseExternalID().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseNotationType"/>xmlParseNotationType ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> xmlParseNotationType (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an Notation <a href="libxml2-SAX.html#attribute">attribute</a> type. Note: the leading 'NOTATION' S part has already being parsed... [58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')' [ VC: Notation Attributes ] Values of this type must match one of the notation names included in the declaration; all notation names in the declaration must be declared.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the notation <a href="libxml2-SAX.html#attribute">attribute</a> tree built while parsing</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParsePEReference"/>xmlParsePEReference ()</h3><pre class="programlisting">void xmlParsePEReference (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse PEReference declarations The entity content is handled directly by pushing it's content as a new input stream. [69] PEReference ::= '%' Name ';' [ WFC: No Recursion ] A parsed entity must not contain a recursive <a href="libxml2-SAX.html#reference">reference</a> to itself, either directly or indirectly. [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with "standalone='yes'", ... ... The declaration of a parameter entity must precede any <a href="libxml2-SAX.html#reference">reference</a> to it... [ VC: Entity Declared ] In a document with an external subset or external parameter entities with "standalone='no'", ... ... The declaration of a parameter entity must precede any <a href="libxml2-SAX.html#reference">reference</a> to it... [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParsePI"/>xmlParsePI ()</h3><pre class="programlisting">void xmlParsePI (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML Processing Instruction. [16] PI ::= '&lt;?' PITarget (S (Char* - (Char* '?&gt;' Char*)))? '?&gt;' The processing is transferred to SAX once parsed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParsePITarget"/>xmlParsePITarget ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParsePITarget (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse the name of a PI [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the PITarget name or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParsePubidLiteral"/>xmlParsePubidLiteral ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParsePubidLiteral (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML public literal [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the PubidLiteral parsed or NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseQuotedString"/>xmlParseQuotedString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseQuotedString (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Parse and return a string between quotes or doublequotes TODO: Deprecated, to be removed at next drop of binary compatibility</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string parser or NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseReference"/>xmlParseReference ()</h3><pre class="programlisting">void xmlParseReference (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse and handle entity references in content, depending on the SAX interface, this may end-up in a call to character() if this is a CharRef, a predefined entity, if there is no reference() callback. or if the parser was asked to switch to that mode. [67] Reference ::= EntityRef | CharRef</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseSDDecl"/>xmlParseSDDecl ()</h3><pre class="programlisting">int xmlParseSDDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse the XML standalone declaration [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"')) [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value "no" if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the <a href="libxml2-SAX.html#attribute">attribute</a> appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if standalone="yes" 0 if standalone="no" -2 if standalone <a href="libxml2-SAX.html#attribute">attribute</a> is missing or invalid (A standalone value of -2 means that the XML declaration was found, but no value was specified for the standalone attribute).</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseStartTag"/>xmlParseStartTag ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseStartTag (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse a start of tag either for rule element or EmptyElement. In both case we don't parse the tag closing chars. [40] STag ::= '&lt;' Name (S Attribute)* S? '&gt;' [ WFC: Unique Att Spec ] No <a href="libxml2-SAX.html#attribute">attribute</a> name may appear more than once in the same start-tag or empty-element tag. [44] EmptyElemTag ::= '&lt;' Name (S Attribute)* S? '/&gt;' [ WFC: Unique Att Spec ] No <a href="libxml2-SAX.html#attribute">attribute</a> name may appear more than once in the same start-tag or empty-element tag. With namespace: [NS 8] STag ::= '&lt;' QName (S Attribute)* S? '&gt;' [NS 10] EmptyElement ::= '&lt;' QName (S Attribute)* S? '/&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the element name parsed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseSystemLiteral"/>xmlParseSystemLiteral ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseSystemLiteral (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML Literal [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the SystemLiteral parsed or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseTextDecl"/>xmlParseTextDecl ()</h3><pre class="programlisting">void xmlParseTextDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML declaration header for external entities [77] TextDecl ::= '&lt;?xml' VersionInfo? EncodingDecl S? '?&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseVersionInfo"/>xmlParseVersionInfo ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseVersionInfo (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse the XML version. [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ") [25] Eq ::= S? '=' S?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the version string, e.g. "1.0"</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseVersionNum"/>xmlParseVersionNum ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseVersionNum (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse the XML version value. [26] VersionNum ::= '1.' [0-9]+ In practice allow [0-9].[0-9]+ at that level</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string giving the XML version number, or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseXMLDecl"/>xmlParseXMLDecl ()</h3><pre class="programlisting">void xmlParseXMLDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse an XML declaration header [23] XMLDecl ::= '&lt;?xml' VersionInfo EncodingDecl? SDDecl? S? '?&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserHandlePEReference"/>xmlParserHandlePEReference ()</h3><pre class="programlisting">void xmlParserHandlePEReference (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>[69] PEReference ::= '%' Name ';' [ WFC: No Recursion ] A parsed entity must not contain a recursive <a href="libxml2-SAX.html#reference">reference</a> to itself, either directly or indirectly. [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with "standalone='yes'", ... ... The declaration of a parameter entity must precede any <a href="libxml2-SAX.html#reference">reference</a> to it... [ VC: Entity Declared ] In a document with an external subset or external parameter entities with "standalone='no'", ... ... The declaration of a parameter entity must precede any <a href="libxml2-SAX.html#reference">reference</a> to it... [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled. A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc i.e. - Included in literal in entity values - Included as Parameter Entity <a href="libxml2-SAX.html#reference">reference</a> within DTDs</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserHandleReference"/>xmlParserHandleReference ()</h3><pre class="programlisting">void xmlParserHandleReference (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>TODO: Remove, now deprecated ... the test is done directly in the content parsing routines. [67] Reference ::= EntityRef | CharRef [68] EntityRef ::= '&amp;' Name ';' [ WFC: Entity Declared ] the Name given in the entity <a href="libxml2-SAX.html#reference">reference</a> must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot. [ WFC: Parsed Entity ] An entity <a href="libxml2-SAX.html#reference">reference</a> must not contain the name of an unparsed entity [66] CharRef ::= '&amp;#' [0-9]+ ';' | '&amp;#x' [0-9a-fA-F]+ ';' A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputShrink"/>xmlParserInputShrink ()</h3><pre class="programlisting">void xmlParserInputShrink (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in)<br/>
+</pre><p>This function removes used input for the parser.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an XML parser input</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPopInput"/>xmlPopInput ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> xmlPopInput (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>xmlPopInput: the current input pointed by ctxt-&gt;input came to an end pop it and return the next char.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> in the parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPushInput"/>xmlPushInput ()</h3><pre class="programlisting">int xmlPushInput (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br/>
+</pre><p>xmlPushInput: switch to a new input stream which is stacked on top of the previous one(s).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an XML parser input fragment (entity, XML fragment ...).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error or the index in the input stack</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlScanName"/>xmlScanName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlScanName (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Trickery: parse an XML name but without consuming the input flow Needed for rollback cases. Used only when parsing entities references. TODO: seems deprecated now, only used in the default part of <a href="libxml2-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a> [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (S Name)*</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the Name parsed or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetEntityReferenceFunc"/>xmlSetEntityReferenceFunc ()</h3><pre class="programlisting">void xmlSetEntityReferenceFunc (<a href="libxml2-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a> func)<br/>
+</pre><p>Set the function to call call back when a xml <a href="libxml2-SAX.html#reference">reference</a> has been made</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>A valid function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSkipBlankChars"/>xmlSkipBlankChars ()</h3><pre class="programlisting">int xmlSkipBlankChars (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>skip all blanks character found at that point in the input streams. It pops up finished entities in the process if allowable at that point.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of space chars skipped</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSplitQName"/>xmlSplitQName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** prefix)<br/>
+</pre><p>parse an UTF8 encoded XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local part, and prefix is updated to get the Prefix if any.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStringCurrentChar"/>xmlStringCurrentChar ()</h3><pre class="programlisting">int xmlStringCurrentChar (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> int * len)<br/>
+</pre><p>The current char value, if using UTF-8 this may actually span multiple bytes in the input buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XML parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>pointer to the beginning of the char</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>pointer to the length of the char read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current char value and its length</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStringDecodeEntities"/>xmlStringDecodeEntities ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStringDecodeEntities (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int what, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end2, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end3)<br/>
+</pre><p>Takes a entity string content and process to do the adequate substitutions. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= '%' Name ';'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the input string</td></tr><tr><td><span class="term"><i><tt>what</tt></i>:</span></td><td>combination of <a href="libxml2-parserInternals.html#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a> and <a href="libxml2-parserInternals.html#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a></td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end2</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end3</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>A newly allocated string with the substitution done. The caller must deallocate it !</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStringLenDecodeEntities"/>xmlStringLenDecodeEntities ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStringLenDecodeEntities (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int len, <br/> int what, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end2, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end3)<br/>
+</pre><p>Takes a entity string content and process to do the adequate substitutions. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= '%' Name ';'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the input string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the string length</td></tr><tr><td><span class="term"><i><tt>what</tt></i>:</span></td><td>combination of <a href="libxml2-parserInternals.html#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a> and <a href="libxml2-parserInternals.html#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a></td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end2</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end3</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>A newly allocated string with the substitution done. The caller must deallocate it !</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSwitchEncoding"/>xmlSwitchEncoding ()</h3><pre class="programlisting">int xmlSwitchEncoding (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>change the input functions when discovering the character encoding of a given entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the encoding value (number)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSwitchInputEncoding"/>xmlSwitchInputEncoding ()</h3><pre class="programlisting">int xmlSwitchInputEncoding (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)<br/>
+</pre><p>change the input functions when discovering the character encoding of a given entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the input stream</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the encoding handler</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSwitchToEncoding"/>xmlSwitchToEncoding ()</h3><pre class="programlisting">int xmlSwitchToEncoding (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)<br/>
+</pre><p>change the input functions when discovering the character encoding of a given entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the encoding handler</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-pattern.html b/libxml2-2.9.10/doc/devhelp/libxml2-pattern.html
new file mode 100644
index 0000000..321bd79
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-pattern.html
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>pattern: pattern expression handling</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-parserInternals.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-relaxng.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">pattern</span>
+ </h2>
+ <p>pattern - pattern expression handling</p>
+ <p>allows to compile and test pattern expressions for nodes either in a tree or based on a parser state. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef <a href="libxml2-pattern.html#xmlStreamCtxt">xmlStreamCtxt</a> * <a href="#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a>;
+typedef enum <a href="#xmlPatternFlags">xmlPatternFlags</a>;
+typedef struct _xmlStreamCtxt <a href="#xmlStreamCtxt">xmlStreamCtxt</a>;
+typedef struct _xmlPattern <a href="#xmlPattern">xmlPattern</a>;
+typedef <a href="libxml2-pattern.html#xmlPattern">xmlPattern</a> * <a href="#xmlPatternPtr">xmlPatternPtr</a>;
+int <a href="#xmlPatternMinDepth">xmlPatternMinDepth</a> (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp);
+<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> <a href="#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a> (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp);
+int <a href="#xmlPatternFromRoot">xmlPatternFromRoot</a> (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp);
+void <a href="#xmlFreePatternList">xmlFreePatternList</a> (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp);
+int <a href="#xmlPatternStreamable">xmlPatternStreamable</a> (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp);
+int <a href="#xmlStreamPushAttr">xmlStreamPushAttr</a> (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns);
+int <a href="#xmlPatternMatch">xmlPatternMatch</a> (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+int <a href="#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a> (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> streamCtxt);
+int <a href="#xmlStreamPop">xmlStreamPop</a> (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream);
+void <a href="#xmlFreePattern">xmlFreePattern</a> (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp);
+int <a href="#xmlStreamPush">xmlStreamPush</a> (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns);
+int <a href="#xmlPatternMaxDepth">xmlPatternMaxDepth</a> (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp);
+<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> <a href="#xmlPatterncompile">xmlPatterncompile</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br/> <a href="libxml2-dict.html#xmlDict">xmlDict</a> * dict, <br/> int flags, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces);
+int <a href="#xmlStreamPushNode">xmlStreamPushNode</a> (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns, <br/> int nodeType);
+void <a href="#xmlFreeStreamCtxt">xmlFreeStreamCtxt</a> (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlPattern">Structure </a>xmlPattern</h3><pre class="programlisting">struct _xmlPattern {
+The content of this structure is not made public by the API.
+} xmlPattern;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPatternFlags">Enum </a>xmlPatternFlags</h3><pre class="programlisting">enum <a href="#xmlPatternFlags">xmlPatternFlags</a> {
+ <a name="XML_PATTERN_DEFAULT">XML_PATTERN_DEFAULT</a> = 0 /* simple pattern match */
+ <a name="XML_PATTERN_XPATH">XML_PATTERN_XPATH</a> = 1 /* standard XPath pattern */
+ <a name="XML_PATTERN_XSSEL">XML_PATTERN_XSSEL</a> = 2 /* XPath subset for schema selector */
+ <a name="XML_PATTERN_XSFIELD">XML_PATTERN_XSFIELD</a> = 4 /* XPath subset for schema field */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPatternPtr">Typedef </a>xmlPatternPtr</h3><pre class="programlisting"><a href="libxml2-pattern.html#xmlPattern">xmlPattern</a> * xmlPatternPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStreamCtxt">Structure </a>xmlStreamCtxt</h3><pre class="programlisting">struct _xmlStreamCtxt {
+The content of this structure is not made public by the API.
+} xmlStreamCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStreamCtxtPtr">Typedef </a>xmlStreamCtxtPtr</h3><pre class="programlisting"><a href="libxml2-pattern.html#xmlStreamCtxt">xmlStreamCtxt</a> * xmlStreamCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreePattern"/>xmlFreePattern ()</h3><pre class="programlisting">void xmlFreePattern (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br/>
+</pre><p>Free up the memory allocated by @comp</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>an XSLT comp</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreePatternList"/>xmlFreePatternList ()</h3><pre class="programlisting">void xmlFreePatternList (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br/>
+</pre><p>Free up the memory allocated by all the elements of @comp</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>an XSLT comp list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeStreamCtxt"/>xmlFreeStreamCtxt ()</h3><pre class="programlisting">void xmlFreeStreamCtxt (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream)<br/>
+</pre><p>Free the stream context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPatternFromRoot"/>xmlPatternFromRoot ()</h3><pre class="programlisting">int xmlPatternFromRoot (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br/>
+</pre><p>Check if the pattern must be looked at from the root.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPatternGetStreamCtxt"/>xmlPatternGetStreamCtxt ()</h3><pre class="programlisting"><a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> xmlPatternGetStreamCtxt (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br/>
+</pre><p>Get a streaming context for that pattern Use <a href="libxml2-pattern.html#xmlFreeStreamCtxt">xmlFreeStreamCtxt</a> to free the context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the context or NULL in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPatternMatch"/>xmlPatternMatch ()</h3><pre class="programlisting">int xmlPatternMatch (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Test whether the node matches the pattern</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if it matches, 0 if it doesn't and -1 in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPatternMaxDepth"/>xmlPatternMaxDepth ()</h3><pre class="programlisting">int xmlPatternMaxDepth (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br/>
+</pre><p>Check the maximum depth reachable by a pattern</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-2 if no limit (using //), otherwise the depth, and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPatternMinDepth"/>xmlPatternMinDepth ()</h3><pre class="programlisting">int xmlPatternMinDepth (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br/>
+</pre><p>Check the minimum depth reachable by a pattern, 0 mean the / or . are part of the set.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error otherwise the depth,</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPatternStreamable"/>xmlPatternStreamable ()</h3><pre class="programlisting">int xmlPatternStreamable (<a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br/>
+</pre><p>Check if the pattern is streamable i.e. xmlPatternGetStreamCtxt() should work.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if streamable, 0 if not and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPatterncompile"/>xmlPatterncompile ()</h3><pre class="programlisting"><a href="libxml2-pattern.html#xmlPatternPtr">xmlPatternPtr</a> xmlPatterncompile (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br/> <a href="libxml2-dict.html#xmlDict">xmlDict</a> * dict, <br/> int flags, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)<br/>
+</pre><p>Compile a pattern.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>the pattern to compile</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>an optional dictionary for interned strings</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>compilation flags, see <a href="libxml2-pattern.html#xmlPatternFlags">xmlPatternFlags</a></td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the compiled form of the pattern or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStreamPop"/>xmlStreamPop ()</h3><pre class="programlisting">int xmlStreamPop (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream)<br/>
+</pre><p>push one level from the stream.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStreamPush"/>xmlStreamPush ()</h3><pre class="programlisting">int xmlStreamPush (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns)<br/>
+</pre><p>Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an element-node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the current name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStreamPushAttr"/>xmlStreamPushAttr ()</h3><pre class="programlisting">int xmlStreamPushAttr (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns)<br/>
+</pre><p>Push new <a href="libxml2-SAX.html#attribute">attribute</a> data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an attribute-node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the current name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStreamPushNode"/>xmlStreamPushNode ()</h3><pre class="programlisting">int xmlStreamPushNode (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns, <br/> int nodeType)<br/>
+</pre><p>Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Different from xmlStreamPush() this function can be fed with nodes of type: element-, attribute-, text-, cdata-section-, comment- and processing-instruction-node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the current name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace name</td></tr><tr><td><span class="term"><i><tt>nodeType</tt></i>:</span></td><td>the type of the node being pushed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStreamWantsAnyNode"/>xmlStreamWantsAnyNode ()</h3><pre class="programlisting">int xmlStreamWantsAnyNode (<a href="libxml2-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> streamCtxt)<br/>
+</pre><p>Query if the streaming pattern additionally needs to be fed with text-, cdata-section-, comment- and processing-instruction-nodes. If the result is 0 then only element-nodes and attribute-nodes need to be pushed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>streamCtxt</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of need of nodes of the above described types, 0 otherwise. -1 on API errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-relaxng.html b/libxml2-2.9.10/doc/devhelp/libxml2-relaxng.html
new file mode 100644
index 0000000..128ff3a
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-relaxng.html
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>relaxng: implementation of the Relax-NG validation</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-pattern.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-schemasInternals.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">relaxng</span>
+ </h2>
+ <p>relaxng - implementation of the Relax-NG validation</p>
+ <p>implementation of the Relax-NG validation </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef struct _xmlRelaxNG <a href="#xmlRelaxNG">xmlRelaxNG</a>;
+typedef <a href="libxml2-relaxng.html#xmlRelaxNG">xmlRelaxNG</a> * <a href="#xmlRelaxNGPtr">xmlRelaxNGPtr</a>;
+typedef enum <a href="#xmlRelaxNGValidErr">xmlRelaxNGValidErr</a>;
+typedef struct _xmlRelaxNGParserCtxt <a href="#xmlRelaxNGParserCtxt">xmlRelaxNGParserCtxt</a>;
+typedef <a href="libxml2-relaxng.html#xmlRelaxNGParserCtxt">xmlRelaxNGParserCtxt</a> * <a href="#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a>;
+typedef enum <a href="#xmlRelaxNGParserFlag">xmlRelaxNGParserFlag</a>;
+typedef struct _xmlRelaxNGValidCtxt <a href="#xmlRelaxNGValidCtxt">xmlRelaxNGValidCtxt</a>;
+typedef <a href="libxml2-relaxng.html#xmlRelaxNGValidCtxt">xmlRelaxNGValidCtxt</a> * <a href="#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a>;
+void <a href="#xmlRelaxNGFreeValidCtxt">xmlRelaxNGFreeValidCtxt</a> (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt);
+<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> <a href="#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+void <a href="#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a> (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br/> void * ctx);
+<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> <a href="#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a> (const char * URL);
+int <a href="#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a> (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> * err, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> * warn, <br/> void ** ctx);
+int <a href="#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a> (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
+<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> <a href="#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a> (<a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema);
+<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> <a href="#xmlRelaxNGNewMemParserCtxt">xmlRelaxNGNewMemParserCtxt</a> (const char * buffer, <br/> int size);
+void <a href="#xmlRelaxNGDump">xmlRelaxNGDump</a> (FILE * output, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema);
+void <a href="#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a> (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br/> void * ctx);
+<a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> <a href="#xmlRelaxNGParse">xmlRelaxNGParse</a> (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt);
+void <a href="#xmlRelaxNGSetParserStructuredErrors">xmlRelaxNGSetParserStructuredErrors</a> (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br/> void * ctx);
+int <a href="#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a> (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
+typedef void <a href="#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+int <a href="#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a> (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
+void <a href="#xmlRelaxNGFree">xmlRelaxNGFree</a> (<a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema);
+int <a href="#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a> (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+void <a href="#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a> (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br/> void * ctx);
+void <a href="#xmlRelaxNGFreeParserCtxt">xmlRelaxNGFreeParserCtxt</a> (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt);
+int <a href="#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a> (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> * err, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> * warn, <br/> void ** ctx);
+int <a href="#xmlRelaxNGInitTypes">xmlRelaxNGInitTypes</a> (void);
+void <a href="#xmlRelaxNGDumpTree">xmlRelaxNGDumpTree</a> (FILE * output, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema);
+void <a href="#xmlRelaxNGCleanupTypes">xmlRelaxNGCleanupTypes</a> (void);
+int <a href="#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a> (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * data, <br/> int len);
+int <a href="#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a> (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br/> int flags);
+typedef void <a href="#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNG">Structure </a>xmlRelaxNG</h3><pre class="programlisting">struct _xmlRelaxNG {
+The content of this structure is not made public by the API.
+} xmlRelaxNG;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGParserCtxt">Structure </a>xmlRelaxNGParserCtxt</h3><pre class="programlisting">struct _xmlRelaxNGParserCtxt {
+The content of this structure is not made public by the API.
+} xmlRelaxNGParserCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGParserCtxtPtr">Typedef </a>xmlRelaxNGParserCtxtPtr</h3><pre class="programlisting"><a href="libxml2-relaxng.html#xmlRelaxNGParserCtxt">xmlRelaxNGParserCtxt</a> * xmlRelaxNGParserCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGParserFlag">Enum </a>xmlRelaxNGParserFlag</h3><pre class="programlisting">enum <a href="#xmlRelaxNGParserFlag">xmlRelaxNGParserFlag</a> {
+ <a name="XML_RELAXNGP_NONE">XML_RELAXNGP_NONE</a> = 0
+ <a name="XML_RELAXNGP_FREE_DOC">XML_RELAXNGP_FREE_DOC</a> = 1
+ <a name="XML_RELAXNGP_CRNG">XML_RELAXNGP_CRNG</a> = 2
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGPtr">Typedef </a>xmlRelaxNGPtr</h3><pre class="programlisting"><a href="libxml2-relaxng.html#xmlRelaxNG">xmlRelaxNG</a> * xmlRelaxNGPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGValidCtxt">Structure </a>xmlRelaxNGValidCtxt</h3><pre class="programlisting">struct _xmlRelaxNGValidCtxt {
+The content of this structure is not made public by the API.
+} xmlRelaxNGValidCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGValidCtxtPtr">Typedef </a>xmlRelaxNGValidCtxtPtr</h3><pre class="programlisting"><a href="libxml2-relaxng.html#xmlRelaxNGValidCtxt">xmlRelaxNGValidCtxt</a> * xmlRelaxNGValidCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGValidErr">Enum </a>xmlRelaxNGValidErr</h3><pre class="programlisting">enum <a href="#xmlRelaxNGValidErr">xmlRelaxNGValidErr</a> {
+ <a name="XML_RELAXNG_OK">XML_RELAXNG_OK</a> = 0
+ <a name="XML_RELAXNG_ERR_MEMORY">XML_RELAXNG_ERR_MEMORY</a> = 1
+ <a name="XML_RELAXNG_ERR_TYPE">XML_RELAXNG_ERR_TYPE</a> = 2
+ <a name="XML_RELAXNG_ERR_TYPEVAL">XML_RELAXNG_ERR_TYPEVAL</a> = 3
+ <a name="XML_RELAXNG_ERR_DUPID">XML_RELAXNG_ERR_DUPID</a> = 4
+ <a name="XML_RELAXNG_ERR_TYPECMP">XML_RELAXNG_ERR_TYPECMP</a> = 5
+ <a name="XML_RELAXNG_ERR_NOSTATE">XML_RELAXNG_ERR_NOSTATE</a> = 6
+ <a name="XML_RELAXNG_ERR_NODEFINE">XML_RELAXNG_ERR_NODEFINE</a> = 7
+ <a name="XML_RELAXNG_ERR_LISTEXTRA">XML_RELAXNG_ERR_LISTEXTRA</a> = 8
+ <a name="XML_RELAXNG_ERR_LISTEMPTY">XML_RELAXNG_ERR_LISTEMPTY</a> = 9
+ <a name="XML_RELAXNG_ERR_INTERNODATA">XML_RELAXNG_ERR_INTERNODATA</a> = 10
+ <a name="XML_RELAXNG_ERR_INTERSEQ">XML_RELAXNG_ERR_INTERSEQ</a> = 11
+ <a name="XML_RELAXNG_ERR_INTEREXTRA">XML_RELAXNG_ERR_INTEREXTRA</a> = 12
+ <a name="XML_RELAXNG_ERR_ELEMNAME">XML_RELAXNG_ERR_ELEMNAME</a> = 13
+ <a name="XML_RELAXNG_ERR_ATTRNAME">XML_RELAXNG_ERR_ATTRNAME</a> = 14
+ <a name="XML_RELAXNG_ERR_ELEMNONS">XML_RELAXNG_ERR_ELEMNONS</a> = 15
+ <a name="XML_RELAXNG_ERR_ATTRNONS">XML_RELAXNG_ERR_ATTRNONS</a> = 16
+ <a name="XML_RELAXNG_ERR_ELEMWRONGNS">XML_RELAXNG_ERR_ELEMWRONGNS</a> = 17
+ <a name="XML_RELAXNG_ERR_ATTRWRONGNS">XML_RELAXNG_ERR_ATTRWRONGNS</a> = 18
+ <a name="XML_RELAXNG_ERR_ELEMEXTRANS">XML_RELAXNG_ERR_ELEMEXTRANS</a> = 19
+ <a name="XML_RELAXNG_ERR_ATTREXTRANS">XML_RELAXNG_ERR_ATTREXTRANS</a> = 20
+ <a name="XML_RELAXNG_ERR_ELEMNOTEMPTY">XML_RELAXNG_ERR_ELEMNOTEMPTY</a> = 21
+ <a name="XML_RELAXNG_ERR_NOELEM">XML_RELAXNG_ERR_NOELEM</a> = 22
+ <a name="XML_RELAXNG_ERR_NOTELEM">XML_RELAXNG_ERR_NOTELEM</a> = 23
+ <a name="XML_RELAXNG_ERR_ATTRVALID">XML_RELAXNG_ERR_ATTRVALID</a> = 24
+ <a name="XML_RELAXNG_ERR_CONTENTVALID">XML_RELAXNG_ERR_CONTENTVALID</a> = 25
+ <a name="XML_RELAXNG_ERR_EXTRACONTENT">XML_RELAXNG_ERR_EXTRACONTENT</a> = 26
+ <a name="XML_RELAXNG_ERR_INVALIDATTR">XML_RELAXNG_ERR_INVALIDATTR</a> = 27
+ <a name="XML_RELAXNG_ERR_DATAELEM">XML_RELAXNG_ERR_DATAELEM</a> = 28
+ <a name="XML_RELAXNG_ERR_VALELEM">XML_RELAXNG_ERR_VALELEM</a> = 29
+ <a name="XML_RELAXNG_ERR_LISTELEM">XML_RELAXNG_ERR_LISTELEM</a> = 30
+ <a name="XML_RELAXNG_ERR_DATATYPE">XML_RELAXNG_ERR_DATATYPE</a> = 31
+ <a name="XML_RELAXNG_ERR_VALUE">XML_RELAXNG_ERR_VALUE</a> = 32
+ <a name="XML_RELAXNG_ERR_LIST">XML_RELAXNG_ERR_LIST</a> = 33
+ <a name="XML_RELAXNG_ERR_NOGRAMMAR">XML_RELAXNG_ERR_NOGRAMMAR</a> = 34
+ <a name="XML_RELAXNG_ERR_EXTRADATA">XML_RELAXNG_ERR_EXTRADATA</a> = 35
+ <a name="XML_RELAXNG_ERR_LACKDATA">XML_RELAXNG_ERR_LACKDATA</a> = 36
+ <a name="XML_RELAXNG_ERR_INTERNAL">XML_RELAXNG_ERR_INTERNAL</a> = 37
+ <a name="XML_RELAXNG_ERR_ELEMWRONG">XML_RELAXNG_ERR_ELEMWRONG</a> = 38
+ <a name="XML_RELAXNG_ERR_TEXTWRONG">XML_RELAXNG_ERR_TEXTWRONG</a> = 39
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGValidityErrorFunc"/>Function type xmlRelaxNGValidityErrorFunc</h3><pre class="programlisting">void xmlRelaxNGValidityErrorFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Signature of an error callback from a Relax-NG validation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGValidityWarningFunc"/>Function type xmlRelaxNGValidityWarningFunc</h3><pre class="programlisting">void xmlRelaxNGValidityWarningFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Signature of a warning callback from a Relax-NG validation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGCleanupTypes"/>xmlRelaxNGCleanupTypes ()</h3><pre class="programlisting">void xmlRelaxNGCleanupTypes (void)<br/>
+</pre><p>Cleanup the default Schemas type library associated to RelaxNG</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGDump"/>xmlRelaxNGDump ()</h3><pre class="programlisting">void xmlRelaxNGDump (FILE * output, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br/>
+</pre><p>Dump a RelaxNG structure back</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the file output</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGDumpTree"/>xmlRelaxNGDumpTree ()</h3><pre class="programlisting">void xmlRelaxNGDumpTree (FILE * output, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br/>
+</pre><p>Dump the transformed RelaxNG tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the file output</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGFree"/>xmlRelaxNGFree ()</h3><pre class="programlisting">void xmlRelaxNGFree (<a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br/>
+</pre><p>Deallocate a RelaxNG structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGFreeParserCtxt"/>xmlRelaxNGFreeParserCtxt ()</h3><pre class="programlisting">void xmlRelaxNGFreeParserCtxt (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Free the resources associated to the schema parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGFreeValidCtxt"/>xmlRelaxNGFreeValidCtxt ()</h3><pre class="programlisting">void xmlRelaxNGFreeValidCtxt (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt)<br/>
+</pre><p>Free the resources associated to the schema validation context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema validation context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGGetParserErrors"/>xmlRelaxNGGetParserErrors ()</h3><pre class="programlisting">int xmlRelaxNGGetParserErrors (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> * err, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> * warn, <br/> void ** ctx)<br/>
+</pre><p>Get the callback information used to handle errors for a validation context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error callback result</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning callback result</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGGetValidErrors"/>xmlRelaxNGGetValidErrors ()</h3><pre class="programlisting">int xmlRelaxNGGetValidErrors (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> * err, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> * warn, <br/> void ** ctx)<br/>
+</pre><p>Get the error and warning callback informations</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function result</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function result</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error and 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGInitTypes"/>xmlRelaxNGInitTypes ()</h3><pre class="programlisting">int xmlRelaxNGInitTypes (void)<br/>
+</pre><p>Initialize the default type libraries.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGNewDocParserCtxt"/>xmlRelaxNGNewDocParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> xmlRelaxNGNewDocParserCtxt (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Create an XML RelaxNGs parser context for that document. Note: since the process of compiling a RelaxNG schemas modifies the document, the @doc parameter is duplicated internally.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a preparsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGNewMemParserCtxt"/>xmlRelaxNGNewMemParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> xmlRelaxNGNewMemParserCtxt (const char * buffer, <br/> int size)<br/>
+</pre><p>Create an XML RelaxNGs parse context for that memory buffer expected to contain an XML RelaxNGs file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array containing the schemas</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGNewParserCtxt"/>xmlRelaxNGNewParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> xmlRelaxNGNewParserCtxt (const char * URL)<br/>
+</pre><p>Create an XML RelaxNGs parse context for that file/resource expected to contain an XML RelaxNGs file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the location of the schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGNewValidCtxt"/>xmlRelaxNGNewValidCtxt ()</h3><pre class="programlisting"><a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> xmlRelaxNGNewValidCtxt (<a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br/>
+</pre><p>Create an XML RelaxNGs validation context based on the given schema</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled XML RelaxNGs</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the validation context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGParse"/>xmlRelaxNGParse ()</h3><pre class="programlisting"><a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> xmlRelaxNGParse (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse a schema definition resource and build an internal XML Schema structure which can be used to validate instances.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal XML RelaxNG structure built from the resource or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGSetParserErrors"/>xmlRelaxNGSetParserErrors ()</h3><pre class="programlisting">void xmlRelaxNGSetParserErrors (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br/> void * ctx)<br/>
+</pre><p>Set the callback functions used to handle errors for a validation context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error callback</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning callback</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGSetParserStructuredErrors"/>xmlRelaxNGSetParserStructuredErrors ()</h3><pre class="programlisting">void xmlRelaxNGSetParserStructuredErrors (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br/> void * ctx)<br/>
+</pre><p>Set the callback functions used to handle errors for a parsing context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG parser context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the error callback</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGSetValidErrors"/>xmlRelaxNGSetValidErrors ()</h3><pre class="programlisting">void xmlRelaxNGSetValidErrors (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br/> void * ctx)<br/>
+</pre><p>Set the error and warning callback informations</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGSetValidStructuredErrors"/>xmlRelaxNGSetValidStructuredErrors ()</h3><pre class="programlisting">void xmlRelaxNGSetValidStructuredErrors (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br/> void * ctx)<br/>
+</pre><p>Set the structured error callback</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the structured error function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGValidateDoc"/>xmlRelaxNGValidateDoc ()</h3><pre class="programlisting">int xmlRelaxNGValidateDoc (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Validate a document tree in memory.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the document is valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGValidateFullElement"/>xmlRelaxNGValidateFullElement ()</h3><pre class="programlisting">int xmlRelaxNGValidateFullElement (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br/>
+</pre><p>Validate a full subtree when xmlRelaxNGValidatePushElement() returned 0 and the content of the node has been expanded.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGValidatePopElement"/>xmlRelaxNGValidatePopElement ()</h3><pre class="programlisting">int xmlRelaxNGValidatePopElement (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br/>
+</pre><p>Pop the element end from the RelaxNG validation stack.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the RelaxNG validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGValidatePushCData"/>xmlRelaxNGValidatePushCData ()</h3><pre class="programlisting">int xmlRelaxNGValidatePushCData (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * data, <br/> int len)<br/>
+</pre><p>check the CData parsed for validation in the current stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the RelaxNG validation context</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>some character data read</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxNGValidatePushElement"/>xmlRelaxNGValidatePushElement ()</h3><pre class="programlisting">int xmlRelaxNGValidatePushElement (<a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br/>
+</pre><p>Push a new element start on the RelaxNG validation stack.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or 0 if validating the element requires a full node, and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRelaxParserSetFlag"/>xmlRelaxParserSetFlag ()</h3><pre class="programlisting">int xmlRelaxParserSetFlag (<a href="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br/> int flags)<br/>
+</pre><p>Semi private function used to pass informations to a parser context which are a combination of <a href="libxml2-relaxng.html#xmlRelaxNGParserFlag">xmlRelaxNGParserFlag</a> .</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a RelaxNG parser context</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of flags values</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-schemasInternals.html b/libxml2-2.9.10/doc/devhelp/libxml2-schemasInternals.html
new file mode 100644
index 0000000..0d6d39e
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-schemasInternals.html
@@ -0,0 +1,860 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>schemasInternals: internal interfaces for XML Schemas</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-relaxng.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-schematron.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">schemasInternals</span>
+ </h2>
+ <p>schemasInternals - internal interfaces for XML Schemas</p>
+ <p>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not guaranteed to be API or ABI stable ! </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a>;
+#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a>;
+#define <a href="#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a>;
+#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a>;
+#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a>;
+#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a>;
+#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a>;
+#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a>;
+#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a>;
+#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a>;
+#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a>;
+#define <a href="#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a>;
+#define <a href="#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a>;
+#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a>;
+#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a>;
+#define <a href="#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a>;
+#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a>;
+#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a>;
+#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a>;
+#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a>;
+#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a>;
+#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a>;
+#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a>;
+#define <a href="#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a>;
+#define <a href="#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a>;
+#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a>;
+#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a>;
+#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a>;
+#define <a href="#XML_SCHEMAS_TYPE_REDEFINED">XML_SCHEMAS_TYPE_REDEFINED</a>;
+#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a>;
+#define <a href="#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a>;
+#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a>;
+#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a>;
+#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a>;
+#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a>;
+#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a>;
+#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a>;
+#define <a href="#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a>;
+#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a>;
+#define <a href="#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a>;
+#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a>;
+#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a>;
+#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a>;
+#define <a href="#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a>;
+#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a>;
+#define <a href="#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a>;
+#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a>;
+#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a>;
+#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a>;
+#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a>;
+#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a>;
+#define <a href="#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a>;
+#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a>;
+#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a>;
+#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a>;
+#define <a href="#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a>;
+#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a>;
+#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a>;
+#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a>;
+#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a>;
+#define <a href="#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a>;
+#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a>;
+#define <a href="#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a>;
+#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a>;
+#define <a href="#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a>;
+#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a>;
+#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a>;
+#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a>;
+#define <a href="#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a>;
+#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a>;
+#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a>;
+#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a>;
+#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a>;
+#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a>;
+#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a>;
+#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a>;
+#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a>;
+#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a>;
+#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a>;
+#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a>;
+#define <a href="#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a>;
+#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaAttributeGroup">xmlSchemaAttributeGroup</a> * <a href="#xmlSchemaAttributeGroupPtr">xmlSchemaAttributeGroupPtr</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaElement">xmlSchemaElement</a> * <a href="#xmlSchemaElementPtr">xmlSchemaElementPtr</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaFacetLink">xmlSchemaFacetLink</a> * <a href="#xmlSchemaFacetLinkPtr">xmlSchemaFacetLinkPtr</a>;
+typedef struct _xmlSchemaVal <a href="#xmlSchemaVal">xmlSchemaVal</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaAttributeLink">xmlSchemaAttributeLink</a> * <a href="#xmlSchemaAttributeLinkPtr">xmlSchemaAttributeLinkPtr</a>;
+typedef struct _xmlSchemaType <a href="#xmlSchemaType">xmlSchemaType</a>;
+typedef struct _xmlSchemaAnnot <a href="#xmlSchemaAnnot">xmlSchemaAnnot</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaAnnot">xmlSchemaAnnot</a> * <a href="#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a>;
+typedef struct _xmlSchemaElement <a href="#xmlSchemaElement">xmlSchemaElement</a>;
+typedef struct _xmlSchemaWildcard <a href="#xmlSchemaWildcard">xmlSchemaWildcard</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaWildcard">xmlSchemaWildcard</a> * <a href="#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaFacet">xmlSchemaFacet</a> * <a href="#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a>;
+typedef struct _xmlSchemaTypeLink <a href="#xmlSchemaTypeLink">xmlSchemaTypeLink</a>;
+typedef struct _xmlSchemaAttributeLink <a href="#xmlSchemaAttributeLink">xmlSchemaAttributeLink</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaVal">xmlSchemaVal</a> * <a href="#xmlSchemaValPtr">xmlSchemaValPtr</a>;
+typedef struct _xmlSchemaFacetLink <a href="#xmlSchemaFacetLink">xmlSchemaFacetLink</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaWildcardNs">xmlSchemaWildcardNs</a> * <a href="#xmlSchemaWildcardNsPtr">xmlSchemaWildcardNsPtr</a>;
+typedef struct _xmlSchemaAttributeGroup <a href="#xmlSchemaAttributeGroup">xmlSchemaAttributeGroup</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaTypeLink">xmlSchemaTypeLink</a> * <a href="#xmlSchemaTypeLinkPtr">xmlSchemaTypeLinkPtr</a>;
+typedef struct _xmlSchemaWildcardNs <a href="#xmlSchemaWildcardNs">xmlSchemaWildcardNs</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaAttribute">xmlSchemaAttribute</a> * <a href="#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaNotation">xmlSchemaNotation</a> * <a href="#xmlSchemaNotationPtr">xmlSchemaNotationPtr</a>;
+typedef enum <a href="#xmlSchemaValType">xmlSchemaValType</a>;
+typedef <a href="libxml2-schemasInternals.html#xmlSchemaType">xmlSchemaType</a> * <a href="#xmlSchemaTypePtr">xmlSchemaTypePtr</a>;
+typedef struct _xmlSchemaNotation <a href="#xmlSchemaNotation">xmlSchemaNotation</a>;
+typedef struct _xmlSchemaFacet <a href="#xmlSchemaFacet">xmlSchemaFacet</a>;
+typedef enum <a href="#xmlSchemaContentType">xmlSchemaContentType</a>;
+typedef enum <a href="#xmlSchemaTypeType">xmlSchemaTypeType</a>;
+typedef struct _xmlSchemaAttribute <a href="#xmlSchemaAttribute">xmlSchemaAttribute</a>;
+void <a href="#xmlSchemaFreeType">xmlSchemaFreeType</a> (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type);
+void <a href="#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</a> (<a href="libxml2-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a> wildcard);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ANYATTR_LAX">Macro </a>XML_SCHEMAS_ANYATTR_LAX</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a>;
+</pre><p>Ignore validation non definition on attributes Obsolete, not used anymore.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ANYATTR_SKIP">Macro </a>XML_SCHEMAS_ANYATTR_SKIP</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a>;
+</pre><p>Skip unknown <a href="libxml2-SAX.html#attribute">attribute</a> from validation Obsolete, not used anymore.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ANYATTR_STRICT">Macro </a>XML_SCHEMAS_ANYATTR_STRICT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a>;
+</pre><p>Apply strict validation rules on attributes Obsolete, not used anymore.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ANY_LAX">Macro </a>XML_SCHEMAS_ANY_LAX</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a>;
+</pre><p>Used by wildcards. Validate if type found, don't worry if not found</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ANY_SKIP">Macro </a>XML_SCHEMAS_ANY_SKIP</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a>;
+</pre><p>Skip unknown <a href="libxml2-SAX.html#attribute">attribute</a> from validation</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ANY_STRICT">Macro </a>XML_SCHEMAS_ANY_STRICT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a>;
+</pre><p>Used by wildcards. Apply strict validation rules</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTRGROUP_GLOBAL">Macro </a>XML_SCHEMAS_ATTRGROUP_GLOBAL</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a>;
+</pre><p>The <a href="libxml2-SAX.html#attribute">attribute</a> group has been defined.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTRGROUP_HAS_REFS">Macro </a>XML_SCHEMAS_ATTRGROUP_HAS_REFS</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a>;
+</pre><p>Whether this attr. group contains attr. group references.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTRGROUP_MARKED">Macro </a>XML_SCHEMAS_ATTRGROUP_MARKED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a>;
+</pre><p>Marks the attr group as marked; used for circular checks.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTRGROUP_REDEFINED">Macro </a>XML_SCHEMAS_ATTRGROUP_REDEFINED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a>;
+</pre><p>The attr group was redefined.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">Macro </a>XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a>;
+</pre><p>The <a href="libxml2-SAX.html#attribute">attribute</a> wildcard has been built.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTR_FIXED">Macro </a>XML_SCHEMAS_ATTR_FIXED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a>;
+</pre><p>the <a href="libxml2-SAX.html#attribute">attribute</a> has a fixed value</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTR_GLOBAL">Macro </a>XML_SCHEMAS_ATTR_GLOBAL</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a>;
+</pre><p>allow elements in no namespace</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">Macro </a>XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a>;
+</pre><p>this is set when the "type" and "ref" references have been resolved.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTR_NSDEFAULT">Macro </a>XML_SCHEMAS_ATTR_NSDEFAULT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a>;
+</pre><p>allow elements in no namespace</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTR_USE_OPTIONAL">Macro </a>XML_SCHEMAS_ATTR_USE_OPTIONAL</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a>;
+</pre><p>The <a href="libxml2-SAX.html#attribute">attribute</a> is optional.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTR_USE_PROHIBITED">Macro </a>XML_SCHEMAS_ATTR_USE_PROHIBITED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a>;
+</pre><p>Used by wildcards. The <a href="libxml2-SAX.html#attribute">attribute</a> is prohibited.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ATTR_USE_REQUIRED">Macro </a>XML_SCHEMAS_ATTR_USE_REQUIRED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a>;
+</pre><p>The <a href="libxml2-SAX.html#attribute">attribute</a> is required.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">Macro </a>XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a>;
+</pre><p>the schema has "extension" in the set of blockDefault.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">Macro </a>XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a>;
+</pre><p>the schema has "restriction" in the set of blockDefault.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">Macro </a>XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a>;
+</pre><p>the schema has "substitution" in the set of blockDefault.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_ABSTRACT">Macro </a>XML_SCHEMAS_ELEM_ABSTRACT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a>;
+</pre><p>the element is abstract</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_BLOCK_ABSENT">Macro </a>XML_SCHEMAS_ELEM_BLOCK_ABSENT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a>;
+</pre><p>the "block" <a href="libxml2-SAX.html#attribute">attribute</a> is absent</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_BLOCK_EXTENSION">Macro </a>XML_SCHEMAS_ELEM_BLOCK_EXTENSION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a>;
+</pre><p>disallowed substitutions are absent</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">Macro </a>XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a>;
+</pre><p>disallowed substitutions: "restriction"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">Macro </a>XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a>;
+</pre><p>disallowed substitutions: "substitution"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_CIRCULAR">Macro </a>XML_SCHEMAS_ELEM_CIRCULAR</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a>;
+</pre><p>a helper flag for the search of circular references.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_DEFAULT">Macro </a>XML_SCHEMAS_ELEM_DEFAULT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a>;
+</pre><p>the element has a default value</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_FINAL_ABSENT">Macro </a>XML_SCHEMAS_ELEM_FINAL_ABSENT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a>;
+</pre><p>substitution group exclusions are absent</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_FINAL_EXTENSION">Macro </a>XML_SCHEMAS_ELEM_FINAL_EXTENSION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a>;
+</pre><p>substitution group exclusions: "extension"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_FINAL_RESTRICTION">Macro </a>XML_SCHEMAS_ELEM_FINAL_RESTRICTION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a>;
+</pre><p>substitution group exclusions: "restriction"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_FIXED">Macro </a>XML_SCHEMAS_ELEM_FIXED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a>;
+</pre><p>the element has a fixed value</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_GLOBAL">Macro </a>XML_SCHEMAS_ELEM_GLOBAL</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a>;
+</pre><p>the element is global</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_INTERNAL_CHECKED">Macro </a>XML_SCHEMAS_ELEM_INTERNAL_CHECKED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a>;
+</pre><p>this is set when the elem decl has been checked against all constraints</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">Macro </a>XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a>;
+</pre><p>this is set when "type", "ref", "substitutionGroup" references have been resolved.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_NILLABLE">Macro </a>XML_SCHEMAS_ELEM_NILLABLE</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a>;
+</pre><p>the element is nillable</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_NSDEFAULT">Macro </a>XML_SCHEMAS_ELEM_NSDEFAULT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a>;
+</pre><p>allow elements in no namespace Obsolete, not used anymore.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_REF">Macro </a>XML_SCHEMAS_ELEM_REF</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a>;
+</pre><p>the element is a <a href="libxml2-SAX.html#reference">reference</a> to a type</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">Macro </a>XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a>;
+</pre><p>the declaration is a substitution group head</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_ELEM_TOPLEVEL">Macro </a>XML_SCHEMAS_ELEM_TOPLEVEL</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a>;
+</pre><p>the element is top level obsolete: use <a href="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a> instead</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_FACET_COLLAPSE">Macro </a>XML_SCHEMAS_FACET_COLLAPSE</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a>;
+</pre><p>collapse the types of the facet</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_FACET_PRESERVE">Macro </a>XML_SCHEMAS_FACET_PRESERVE</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a>;
+</pre><p>preserve the type of the facet</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_FACET_REPLACE">Macro </a>XML_SCHEMAS_FACET_REPLACE</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a>;
+</pre><p>replace the type of the facet</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_FACET_UNKNOWN">Macro </a>XML_SCHEMAS_FACET_UNKNOWN</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a>;
+</pre><p>unknown facet handling</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">Macro </a>XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a>;
+</pre><p>the schema has "extension" in the set of finalDefault.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_FINAL_DEFAULT_LIST">Macro </a>XML_SCHEMAS_FINAL_DEFAULT_LIST</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a>;
+</pre><p>the schema has "list" in the set of finalDefault.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">Macro </a>XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a>;
+</pre><p>the schema has "restriction" in the set of finalDefault.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_FINAL_DEFAULT_UNION">Macro </a>XML_SCHEMAS_FINAL_DEFAULT_UNION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a>;
+</pre><p>the schema has "union" in the set of finalDefault.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_INCLUDING_CONVERT_NS">Macro </a>XML_SCHEMAS_INCLUDING_CONVERT_NS</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a>;
+</pre><p>the schema is currently including an other schema with no target namespace.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_QUALIF_ATTR">Macro </a>XML_SCHEMAS_QUALIF_ATTR</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a>;
+</pre><p>Reflects attributeFormDefault == qualified in an XML schema document.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_QUALIF_ELEM">Macro </a>XML_SCHEMAS_QUALIF_ELEM</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a>;
+</pre><p>Reflects elementFormDefault == qualified in an XML schema document.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_ABSTRACT">Macro </a>XML_SCHEMAS_TYPE_ABSTRACT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a>;
+</pre><p>the simple/complexType is abstract.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_BLOCK_DEFAULT">Macro </a>XML_SCHEMAS_TYPE_BLOCK_DEFAULT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a>;
+</pre><p>the complexType did not specify 'block' so use the default of the &lt;schema&gt; item.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_BLOCK_EXTENSION">Macro </a>XML_SCHEMAS_TYPE_BLOCK_EXTENSION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a>;
+</pre><p>the complexType has a 'block' of "extension".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">Macro </a>XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a>;
+</pre><p>the complexType has a 'block' of "restriction".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">Macro </a>XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a>;
+</pre><p>Marks the item as a builtin primitive.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">Macro </a>XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a>;
+</pre><p>the simple or complex type has a derivation method of "extension".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">Macro </a>XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a>;
+</pre><p>the simple or complex type has a derivation method of "restriction".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_FACETSNEEDVALUE">Macro </a>XML_SCHEMAS_TYPE_FACETSNEEDVALUE</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a>;
+</pre><p>indicates if the facets need a computed value</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_FINAL_DEFAULT">Macro </a>XML_SCHEMAS_TYPE_FINAL_DEFAULT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a>;
+</pre><p>the simpleType has a final of "default".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_FINAL_EXTENSION">Macro </a>XML_SCHEMAS_TYPE_FINAL_EXTENSION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a>;
+</pre><p>the complexType has a final of "extension".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_FINAL_LIST">Macro </a>XML_SCHEMAS_TYPE_FINAL_LIST</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a>;
+</pre><p>the simpleType has a final of "list".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_FINAL_RESTRICTION">Macro </a>XML_SCHEMAS_TYPE_FINAL_RESTRICTION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a>;
+</pre><p>the simpleType/complexType has a final of "restriction".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_FINAL_UNION">Macro </a>XML_SCHEMAS_TYPE_FINAL_UNION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a>;
+</pre><p>the simpleType has a final of "union".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_FIXUP_1">Macro </a>XML_SCHEMAS_TYPE_FIXUP_1</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a>;
+</pre><p>First stage of fixup was done.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_GLOBAL">Macro </a>XML_SCHEMAS_TYPE_GLOBAL</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a>;
+</pre><p>the type is global</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_HAS_FACETS">Macro </a>XML_SCHEMAS_TYPE_HAS_FACETS</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a>;
+</pre><p>has facets</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_INTERNAL_INVALID">Macro </a>XML_SCHEMAS_TYPE_INTERNAL_INVALID</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a>;
+</pre><p>indicates that the type is invalid</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">Macro </a>XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a>;
+</pre><p>indicates that the type was typefixed</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_MARKED">Macro </a>XML_SCHEMAS_TYPE_MARKED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a>;
+</pre><p>Marks the item as marked; used for circular checks.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_MIXED">Macro </a>XML_SCHEMAS_TYPE_MIXED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a>;
+</pre><p>the element content type is mixed</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_NORMVALUENEEDED">Macro </a>XML_SCHEMAS_TYPE_NORMVALUENEEDED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a>;
+</pre><p>indicates if the facets (pattern) need a normalized value</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">Macro </a>XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a>;
+</pre><p>the complexType owns an <a href="libxml2-SAX.html#attribute">attribute</a> wildcard, i.e. it can be freed by the complexType</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_REDEFINED">Macro </a>XML_SCHEMAS_TYPE_REDEFINED</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_REDEFINED">XML_SCHEMAS_TYPE_REDEFINED</a>;
+</pre><p>The type was redefined.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_VARIETY_ABSENT">Macro </a>XML_SCHEMAS_TYPE_VARIETY_ABSENT</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a>;
+</pre><p>the simpleType has a variety of "absent". TODO: Actually not necessary :-/, since if none of the variety flags occur then it's automatically absent.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_VARIETY_ATOMIC">Macro </a>XML_SCHEMAS_TYPE_VARIETY_ATOMIC</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a>;
+</pre><p>the simpleType has a variety of "union".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_VARIETY_LIST">Macro </a>XML_SCHEMAS_TYPE_VARIETY_LIST</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a>;
+</pre><p>the simpleType has a variety of "list".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_VARIETY_UNION">Macro </a>XML_SCHEMAS_TYPE_VARIETY_UNION</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a>;
+</pre><p>the simpleType has a variety of "union".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">Macro </a>XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a>;
+</pre><p>a whitespace-facet value of "collapse"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">Macro </a>XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a>;
+</pre><p>a whitespace-facet value of "preserve"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">Macro </a>XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a>;
+</pre><p>a whitespace-facet value of "replace"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_SCHEMAS_WILDCARD_COMPLETE">Macro </a>XML_SCHEMAS_WILDCARD_COMPLETE</h3><pre class="programlisting">#define <a href="#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a>;
+</pre><p>If the wildcard is complete.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaAnnot">Structure </a>xmlSchemaAnnot</h3><pre class="programlisting">struct _xmlSchemaAnnot {
+ struct _xmlSchemaAnnot * next
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> content : the annotation
+} xmlSchemaAnnot;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaAnnotPtr">Typedef </a>xmlSchemaAnnotPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaAnnot">xmlSchemaAnnot</a> * xmlSchemaAnnotPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaAttribute">Structure </a>xmlSchemaAttribute</h3><pre class="programlisting">struct _xmlSchemaAttribute {
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type
+ struct _xmlSchemaAttribute * next : the next <a href="libxml2-SAX.html#attribute">attribute</a> (not used?)
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : the name of the declaration
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * id : Deprecated; not used
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ref : Deprecated; not used
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * refNs : Deprecated; not used
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * typeName : the local name of the type definition
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * typeNs : the ns URI of the type definition
+ <a href="libxml2-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> base : Deprecated; not used
+ int occurs : Deprecated; not used
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * defValue : The initial value of the value constraint
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> subtypes : the type definition
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace
+ int flags
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * refPrefix : Deprecated; not used
+ <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> defVal : The compiled value constraint
+ <a href="libxml2-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a> refDecl : Deprecated; not used
+} xmlSchemaAttribute;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaAttributeGroup">Structure </a>xmlSchemaAttributeGroup</h3><pre class="programlisting">struct _xmlSchemaAttributeGroup {
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ struct _xmlSchemaAttribute * next : the next <a href="libxml2-SAX.html#attribute">attribute</a> if in a group ...
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * id
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ref : Deprecated; not used
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * refNs : Deprecated; not used
+ <a href="libxml2-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml2-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a> attributes : Deprecated; not used
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int flags
+ <a href="libxml2-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a> attributeWildcard
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * refPrefix : Deprecated; not used
+ <a href="libxml2-schemasInternals.html#xmlSchemaAttributeGroupPtr">xmlSchemaAttributeGroupPtr</a> refItem : Deprecated; not used
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace
+ void * attrUses
+} xmlSchemaAttributeGroup;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaAttributeGroupPtr">Typedef </a>xmlSchemaAttributeGroupPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaAttributeGroup">xmlSchemaAttributeGroup</a> * xmlSchemaAttributeGroupPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaAttributeLink">Structure </a>xmlSchemaAttributeLink</h3><pre class="programlisting">struct _xmlSchemaAttributeLink {
+ struct _xmlSchemaAttributeLink * next : the next <a href="libxml2-SAX.html#attribute">attribute</a> link ...
+ struct _xmlSchemaAttribute * attr : the linked <a href="libxml2-SAX.html#attribute">attribute</a>
+} xmlSchemaAttributeLink;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaAttributeLinkPtr">Typedef </a>xmlSchemaAttributeLinkPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaAttributeLink">xmlSchemaAttributeLink</a> * xmlSchemaAttributeLinkPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaAttributePtr">Typedef </a>xmlSchemaAttributePtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaAttribute">xmlSchemaAttribute</a> * xmlSchemaAttributePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaContentType">Enum </a>xmlSchemaContentType</h3><pre class="programlisting">enum <a href="#xmlSchemaContentType">xmlSchemaContentType</a> {
+ <a name="XML_SCHEMA_CONTENT_UNKNOWN">XML_SCHEMA_CONTENT_UNKNOWN</a> = 0
+ <a name="XML_SCHEMA_CONTENT_EMPTY">XML_SCHEMA_CONTENT_EMPTY</a> = 1
+ <a name="XML_SCHEMA_CONTENT_ELEMENTS">XML_SCHEMA_CONTENT_ELEMENTS</a> = 2
+ <a name="XML_SCHEMA_CONTENT_MIXED">XML_SCHEMA_CONTENT_MIXED</a> = 3
+ <a name="XML_SCHEMA_CONTENT_SIMPLE">XML_SCHEMA_CONTENT_SIMPLE</a> = 4
+ <a name="XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS">XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS</a> = 5 /* Obsolete */
+ <a name="XML_SCHEMA_CONTENT_BASIC">XML_SCHEMA_CONTENT_BASIC</a> = 6
+ <a name="XML_SCHEMA_CONTENT_ANY">XML_SCHEMA_CONTENT_ANY</a> = 7
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaElement">Structure </a>xmlSchemaElement</h3><pre class="programlisting">struct _xmlSchemaElement {
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ struct _xmlSchemaType * next : Not used?
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * id : Deprecated; not used
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ref : Deprecated; not used
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * refNs : Deprecated; not used
+ <a href="libxml2-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> subtypes : the type definition
+ <a href="libxml2-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a> attributes
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int minOccurs : Deprecated; not used
+ int maxOccurs : Deprecated; not used
+ int flags
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namedType
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namedTypeNs
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * substGroup
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * substGroupNs
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * scope
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value : The original value of the value constraint.
+ struct _xmlSchemaElement * refDecl : This will now be used for the substitution group affiliation
+ <a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> contModel : Obsolete for WXS, maybe used for RelaxNG
+ <a href="libxml2-schemasInternals.html#xmlSchemaContentType">xmlSchemaContentType</a> contentType
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * refPrefix : Deprecated; not used
+ <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> defVal : The compiled value constraint.
+ void * idcs : The identity-constraint defs
+} xmlSchemaElement;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaElementPtr">Typedef </a>xmlSchemaElementPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaElement">xmlSchemaElement</a> * xmlSchemaElementPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFacet">Structure </a>xmlSchemaFacet</h3><pre class="programlisting">struct _xmlSchemaFacet {
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ struct _xmlSchemaFacet * next : the next type if in a sequence ...
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value : The original value
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * id : Obsolete
+ <a href="libxml2-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int fixed : XML_SCHEMAS_FACET_PRESERVE, etc.
+ int whitespace
+ <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val : The compiled value
+ <a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp : The regex for patterns
+} xmlSchemaFacet;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFacetLink">Structure </a>xmlSchemaFacetLink</h3><pre class="programlisting">struct _xmlSchemaFacetLink {
+ struct _xmlSchemaFacetLink * next : the next facet link ...
+ <a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet : the linked facet
+} xmlSchemaFacetLink;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFacetLinkPtr">Typedef </a>xmlSchemaFacetLinkPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaFacetLink">xmlSchemaFacetLink</a> * xmlSchemaFacetLinkPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFacetPtr">Typedef </a>xmlSchemaFacetPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaFacet">xmlSchemaFacet</a> * xmlSchemaFacetPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaNotation">Structure </a>xmlSchemaNotation</h3><pre class="programlisting">struct _xmlSchemaNotation {
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name
+ <a href="libxml2-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * identifier
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace
+} xmlSchemaNotation;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaNotationPtr">Typedef </a>xmlSchemaNotationPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaNotation">xmlSchemaNotation</a> * xmlSchemaNotationPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaType">Structure </a>xmlSchemaType</h3><pre class="programlisting">struct _xmlSchemaType {
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ struct _xmlSchemaType * next : the next type if in a sequence ...
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * id : Deprecated; not used
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ref : Deprecated; not used
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * refNs : Deprecated; not used
+ <a href="libxml2-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> subtypes
+ <a href="libxml2-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a> attributes : Deprecated; not used
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int minOccurs : Deprecated; not used
+ int maxOccurs : Deprecated; not used
+ int flags
+ <a href="libxml2-schemasInternals.html#xmlSchemaContentType">xmlSchemaContentType</a> contentType
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base : Base type's local name
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * baseNs : Base type's target namespace
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> baseType : The base type component
+ <a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facets : Local facets
+ struct _xmlSchemaType * redef : Deprecated; not used
+ int recurse : Obsolete
+ <a href="libxml2-schemasInternals.html#xmlSchemaAttributeLinkPtr">xmlSchemaAttributeLinkPtr</a> * attributeUses : Deprecated; not used
+ <a href="libxml2-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a> attributeWildcard
+ int builtInType : Type of built-in types.
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypeLinkPtr">xmlSchemaTypeLinkPtr</a> memberTypes : member-types if a union type.
+ <a href="libxml2-schemasInternals.html#xmlSchemaFacetLinkPtr">xmlSchemaFacetLinkPtr</a> facetSet : All facets (incl. inherited)
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * refPrefix : Deprecated; not used
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> contentTypeDef : Used for the simple content of complex types. Could we use @subtypes
+ <a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> contModel : Holds the automaton of the content model
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace
+ void * attrUses
+} xmlSchemaType;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaTypeLink">Structure </a>xmlSchemaTypeLink</h3><pre class="programlisting">struct _xmlSchemaTypeLink {
+ struct _xmlSchemaTypeLink * next : the next type link ...
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type : the linked type
+} xmlSchemaTypeLink;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaTypeLinkPtr">Typedef </a>xmlSchemaTypeLinkPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaTypeLink">xmlSchemaTypeLink</a> * xmlSchemaTypeLinkPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaTypePtr">Typedef </a>xmlSchemaTypePtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaType">xmlSchemaType</a> * xmlSchemaTypePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaTypeType">Enum </a>xmlSchemaTypeType</h3><pre class="programlisting">enum <a href="#xmlSchemaTypeType">xmlSchemaTypeType</a> {
+ <a name="XML_SCHEMA_TYPE_BASIC">XML_SCHEMA_TYPE_BASIC</a> = 1 /* A built-in datatype */
+ <a name="XML_SCHEMA_TYPE_ANY">XML_SCHEMA_TYPE_ANY</a> = 2
+ <a name="XML_SCHEMA_TYPE_FACET">XML_SCHEMA_TYPE_FACET</a> = 3
+ <a name="XML_SCHEMA_TYPE_SIMPLE">XML_SCHEMA_TYPE_SIMPLE</a> = 4
+ <a name="XML_SCHEMA_TYPE_COMPLEX">XML_SCHEMA_TYPE_COMPLEX</a> = 5
+ <a name="XML_SCHEMA_TYPE_SEQUENCE">XML_SCHEMA_TYPE_SEQUENCE</a> = 6
+ <a name="XML_SCHEMA_TYPE_CHOICE">XML_SCHEMA_TYPE_CHOICE</a> = 7
+ <a name="XML_SCHEMA_TYPE_ALL">XML_SCHEMA_TYPE_ALL</a> = 8
+ <a name="XML_SCHEMA_TYPE_SIMPLE_CONTENT">XML_SCHEMA_TYPE_SIMPLE_CONTENT</a> = 9
+ <a name="XML_SCHEMA_TYPE_COMPLEX_CONTENT">XML_SCHEMA_TYPE_COMPLEX_CONTENT</a> = 10
+ <a name="XML_SCHEMA_TYPE_UR">XML_SCHEMA_TYPE_UR</a> = 11
+ <a name="XML_SCHEMA_TYPE_RESTRICTION">XML_SCHEMA_TYPE_RESTRICTION</a> = 12
+ <a name="XML_SCHEMA_TYPE_EXTENSION">XML_SCHEMA_TYPE_EXTENSION</a> = 13
+ <a name="XML_SCHEMA_TYPE_ELEMENT">XML_SCHEMA_TYPE_ELEMENT</a> = 14
+ <a name="XML_SCHEMA_TYPE_ATTRIBUTE">XML_SCHEMA_TYPE_ATTRIBUTE</a> = 15
+ <a name="XML_SCHEMA_TYPE_ATTRIBUTEGROUP">XML_SCHEMA_TYPE_ATTRIBUTEGROUP</a> = 16
+ <a name="XML_SCHEMA_TYPE_GROUP">XML_SCHEMA_TYPE_GROUP</a> = 17
+ <a name="XML_SCHEMA_TYPE_NOTATION">XML_SCHEMA_TYPE_NOTATION</a> = 18
+ <a name="XML_SCHEMA_TYPE_LIST">XML_SCHEMA_TYPE_LIST</a> = 19
+ <a name="XML_SCHEMA_TYPE_UNION">XML_SCHEMA_TYPE_UNION</a> = 20
+ <a name="XML_SCHEMA_TYPE_ANY_ATTRIBUTE">XML_SCHEMA_TYPE_ANY_ATTRIBUTE</a> = 21
+ <a name="XML_SCHEMA_TYPE_IDC_UNIQUE">XML_SCHEMA_TYPE_IDC_UNIQUE</a> = 22
+ <a name="XML_SCHEMA_TYPE_IDC_KEY">XML_SCHEMA_TYPE_IDC_KEY</a> = 23
+ <a name="XML_SCHEMA_TYPE_IDC_KEYREF">XML_SCHEMA_TYPE_IDC_KEYREF</a> = 24
+ <a name="XML_SCHEMA_TYPE_PARTICLE">XML_SCHEMA_TYPE_PARTICLE</a> = 25
+ <a name="XML_SCHEMA_TYPE_ATTRIBUTE_USE">XML_SCHEMA_TYPE_ATTRIBUTE_USE</a> = 26
+ <a name="XML_SCHEMA_FACET_MININCLUSIVE">XML_SCHEMA_FACET_MININCLUSIVE</a> = 1000
+ <a name="XML_SCHEMA_FACET_MINEXCLUSIVE">XML_SCHEMA_FACET_MINEXCLUSIVE</a> = 1001
+ <a name="XML_SCHEMA_FACET_MAXINCLUSIVE">XML_SCHEMA_FACET_MAXINCLUSIVE</a> = 1002
+ <a name="XML_SCHEMA_FACET_MAXEXCLUSIVE">XML_SCHEMA_FACET_MAXEXCLUSIVE</a> = 1003
+ <a name="XML_SCHEMA_FACET_TOTALDIGITS">XML_SCHEMA_FACET_TOTALDIGITS</a> = 1004
+ <a name="XML_SCHEMA_FACET_FRACTIONDIGITS">XML_SCHEMA_FACET_FRACTIONDIGITS</a> = 1005
+ <a name="XML_SCHEMA_FACET_PATTERN">XML_SCHEMA_FACET_PATTERN</a> = 1006
+ <a name="XML_SCHEMA_FACET_ENUMERATION">XML_SCHEMA_FACET_ENUMERATION</a> = 1007
+ <a name="XML_SCHEMA_FACET_WHITESPACE">XML_SCHEMA_FACET_WHITESPACE</a> = 1008
+ <a name="XML_SCHEMA_FACET_LENGTH">XML_SCHEMA_FACET_LENGTH</a> = 1009
+ <a name="XML_SCHEMA_FACET_MAXLENGTH">XML_SCHEMA_FACET_MAXLENGTH</a> = 1010
+ <a name="XML_SCHEMA_FACET_MINLENGTH">XML_SCHEMA_FACET_MINLENGTH</a> = 1011
+ <a name="XML_SCHEMA_EXTRA_QNAMEREF">XML_SCHEMA_EXTRA_QNAMEREF</a> = 2000
+ <a name="XML_SCHEMA_EXTRA_ATTR_USE_PROHIB">XML_SCHEMA_EXTRA_ATTR_USE_PROHIB</a> = 2001
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaVal">Structure </a>xmlSchemaVal</h3><pre class="programlisting">struct _xmlSchemaVal {
+The content of this structure is not made public by the API.
+} xmlSchemaVal;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValPtr">Typedef </a>xmlSchemaValPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaVal">xmlSchemaVal</a> * xmlSchemaValPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValType">Enum </a>xmlSchemaValType</h3><pre class="programlisting">enum <a href="#xmlSchemaValType">xmlSchemaValType</a> {
+ <a name="XML_SCHEMAS_UNKNOWN">XML_SCHEMAS_UNKNOWN</a> = 0
+ <a name="XML_SCHEMAS_STRING">XML_SCHEMAS_STRING</a> = 1
+ <a name="XML_SCHEMAS_NORMSTRING">XML_SCHEMAS_NORMSTRING</a> = 2
+ <a name="XML_SCHEMAS_DECIMAL">XML_SCHEMAS_DECIMAL</a> = 3
+ <a name="XML_SCHEMAS_TIME">XML_SCHEMAS_TIME</a> = 4
+ <a name="XML_SCHEMAS_GDAY">XML_SCHEMAS_GDAY</a> = 5
+ <a name="XML_SCHEMAS_GMONTH">XML_SCHEMAS_GMONTH</a> = 6
+ <a name="XML_SCHEMAS_GMONTHDAY">XML_SCHEMAS_GMONTHDAY</a> = 7
+ <a name="XML_SCHEMAS_GYEAR">XML_SCHEMAS_GYEAR</a> = 8
+ <a name="XML_SCHEMAS_GYEARMONTH">XML_SCHEMAS_GYEARMONTH</a> = 9
+ <a name="XML_SCHEMAS_DATE">XML_SCHEMAS_DATE</a> = 10
+ <a name="XML_SCHEMAS_DATETIME">XML_SCHEMAS_DATETIME</a> = 11
+ <a name="XML_SCHEMAS_DURATION">XML_SCHEMAS_DURATION</a> = 12
+ <a name="XML_SCHEMAS_FLOAT">XML_SCHEMAS_FLOAT</a> = 13
+ <a name="XML_SCHEMAS_DOUBLE">XML_SCHEMAS_DOUBLE</a> = 14
+ <a name="XML_SCHEMAS_BOOLEAN">XML_SCHEMAS_BOOLEAN</a> = 15
+ <a name="XML_SCHEMAS_TOKEN">XML_SCHEMAS_TOKEN</a> = 16
+ <a name="XML_SCHEMAS_LANGUAGE">XML_SCHEMAS_LANGUAGE</a> = 17
+ <a name="XML_SCHEMAS_NMTOKEN">XML_SCHEMAS_NMTOKEN</a> = 18
+ <a name="XML_SCHEMAS_NMTOKENS">XML_SCHEMAS_NMTOKENS</a> = 19
+ <a name="XML_SCHEMAS_NAME">XML_SCHEMAS_NAME</a> = 20
+ <a name="XML_SCHEMAS_QNAME">XML_SCHEMAS_QNAME</a> = 21
+ <a name="XML_SCHEMAS_NCNAME">XML_SCHEMAS_NCNAME</a> = 22
+ <a name="XML_SCHEMAS_ID">XML_SCHEMAS_ID</a> = 23
+ <a name="XML_SCHEMAS_IDREF">XML_SCHEMAS_IDREF</a> = 24
+ <a name="XML_SCHEMAS_IDREFS">XML_SCHEMAS_IDREFS</a> = 25
+ <a name="XML_SCHEMAS_ENTITY">XML_SCHEMAS_ENTITY</a> = 26
+ <a name="XML_SCHEMAS_ENTITIES">XML_SCHEMAS_ENTITIES</a> = 27
+ <a name="XML_SCHEMAS_NOTATION">XML_SCHEMAS_NOTATION</a> = 28
+ <a name="XML_SCHEMAS_ANYURI">XML_SCHEMAS_ANYURI</a> = 29
+ <a name="XML_SCHEMAS_INTEGER">XML_SCHEMAS_INTEGER</a> = 30
+ <a name="XML_SCHEMAS_NPINTEGER">XML_SCHEMAS_NPINTEGER</a> = 31
+ <a name="XML_SCHEMAS_NINTEGER">XML_SCHEMAS_NINTEGER</a> = 32
+ <a name="XML_SCHEMAS_NNINTEGER">XML_SCHEMAS_NNINTEGER</a> = 33
+ <a name="XML_SCHEMAS_PINTEGER">XML_SCHEMAS_PINTEGER</a> = 34
+ <a name="XML_SCHEMAS_INT">XML_SCHEMAS_INT</a> = 35
+ <a name="XML_SCHEMAS_UINT">XML_SCHEMAS_UINT</a> = 36
+ <a name="XML_SCHEMAS_LONG">XML_SCHEMAS_LONG</a> = 37
+ <a name="XML_SCHEMAS_ULONG">XML_SCHEMAS_ULONG</a> = 38
+ <a name="XML_SCHEMAS_SHORT">XML_SCHEMAS_SHORT</a> = 39
+ <a name="XML_SCHEMAS_USHORT">XML_SCHEMAS_USHORT</a> = 40
+ <a name="XML_SCHEMAS_BYTE">XML_SCHEMAS_BYTE</a> = 41
+ <a name="XML_SCHEMAS_UBYTE">XML_SCHEMAS_UBYTE</a> = 42
+ <a name="XML_SCHEMAS_HEXBINARY">XML_SCHEMAS_HEXBINARY</a> = 43
+ <a name="XML_SCHEMAS_BASE64BINARY">XML_SCHEMAS_BASE64BINARY</a> = 44
+ <a name="XML_SCHEMAS_ANYTYPE">XML_SCHEMAS_ANYTYPE</a> = 45
+ <a name="XML_SCHEMAS_ANYSIMPLETYPE">XML_SCHEMAS_ANYSIMPLETYPE</a> = 46
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaWildcard">Structure </a>xmlSchemaWildcard</h3><pre class="programlisting">struct _xmlSchemaWildcard {
+ <a href="libxml2-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * id : Deprecated; not used
+ <a href="libxml2-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int minOccurs : Deprecated; not used
+ int maxOccurs : Deprecated; not used
+ int processContents
+ int any : Indicates if the ns constraint is of ##any
+ <a href="libxml2-schemasInternals.html#xmlSchemaWildcardNsPtr">xmlSchemaWildcardNsPtr</a> nsSet : The list of allowed namespaces
+ <a href="libxml2-schemasInternals.html#xmlSchemaWildcardNsPtr">xmlSchemaWildcardNsPtr</a> negNsSet : The negated namespace
+ int flags
+} xmlSchemaWildcard;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaWildcardNs">Structure </a>xmlSchemaWildcardNs</h3><pre class="programlisting">struct _xmlSchemaWildcardNs {
+ struct _xmlSchemaWildcardNs * next : the next constraint link ...
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value : the value
+} xmlSchemaWildcardNs;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaWildcardNsPtr">Typedef </a>xmlSchemaWildcardNsPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaWildcardNs">xmlSchemaWildcardNs</a> * xmlSchemaWildcardNsPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaWildcardPtr">Typedef </a>xmlSchemaWildcardPtr</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaWildcard">xmlSchemaWildcard</a> * xmlSchemaWildcardPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFreeType"/>xmlSchemaFreeType ()</h3><pre class="programlisting">void xmlSchemaFreeType (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type)<br/>
+</pre><p>Deallocate a Schema Type structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>a schema type structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFreeWildcard"/>xmlSchemaFreeWildcard ()</h3><pre class="programlisting">void xmlSchemaFreeWildcard (<a href="libxml2-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a> wildcard)<br/>
+</pre><p>Deallocates a wildcard structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>wildcard</tt></i>:</span></td><td>a wildcard structure</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-schematron.html b/libxml2-2.9.10/doc/devhelp/libxml2-schematron.html
new file mode 100644
index 0000000..d4ac573
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-schematron.html
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>schematron: XML Schemastron implementation</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-schemasInternals.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-threads.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">schematron</span>
+ </h2>
+ <p>schematron - XML Schemastron implementation</p>
+ <p>interface to the XML Schematron validity checking. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef struct _xmlSchematronValidCtxt <a href="#xmlSchematronValidCtxt">xmlSchematronValidCtxt</a>;
+typedef enum <a href="#xmlSchematronValidOptions">xmlSchematronValidOptions</a>;
+typedef <a href="libxml2-schematron.html#xmlSchematron">xmlSchematron</a> * <a href="#xmlSchematronPtr">xmlSchematronPtr</a>;
+typedef struct _xmlSchematronParserCtxt <a href="#xmlSchematronParserCtxt">xmlSchematronParserCtxt</a>;
+typedef struct _xmlSchematron <a href="#xmlSchematron">xmlSchematron</a>;
+typedef <a href="libxml2-schematron.html#xmlSchematronValidCtxt">xmlSchematronValidCtxt</a> * <a href="#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a>;
+typedef <a href="libxml2-schematron.html#xmlSchematronParserCtxt">xmlSchematronParserCtxt</a> * <a href="#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a>;
+int <a href="#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a> (<a href="libxml2-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> instance);
+void <a href="#xmlSchematronFreeParserCtxt">xmlSchematronFreeParserCtxt</a> (<a href="libxml2-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> ctxt);
+<a href="libxml2-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> <a href="#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a> (const char * buffer, <br/> int size);
+typedef void <a href="#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+<a href="libxml2-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> <a href="#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a> (const char * URL);
+typedef void <a href="#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+void <a href="#xmlSchematronFree">xmlSchematronFree</a> (<a href="libxml2-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> schema);
+void <a href="#xmlSchematronSetValidStructuredErrors">xmlSchematronSetValidStructuredErrors</a> (<a href="libxml2-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br/> void * ctx);
+void <a href="#xmlSchematronFreeValidCtxt">xmlSchematronFreeValidCtxt</a> (<a href="libxml2-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt);
+<a href="libxml2-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> <a href="#xmlSchematronParse">xmlSchematronParse</a> (<a href="libxml2-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> ctxt);
+<a href="libxml2-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> <a href="#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+<a href="libxml2-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> <a href="#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a> (<a href="libxml2-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> schema, <br/> int options);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematron">Structure </a>xmlSchematron</h3><pre class="programlisting">struct _xmlSchematron {
+The content of this structure is not made public by the API.
+} xmlSchematron;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronParserCtxt">Structure </a>xmlSchematronParserCtxt</h3><pre class="programlisting">struct _xmlSchematronParserCtxt {
+The content of this structure is not made public by the API.
+} xmlSchematronParserCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronParserCtxtPtr">Typedef </a>xmlSchematronParserCtxtPtr</h3><pre class="programlisting"><a href="libxml2-schematron.html#xmlSchematronParserCtxt">xmlSchematronParserCtxt</a> * xmlSchematronParserCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronPtr">Typedef </a>xmlSchematronPtr</h3><pre class="programlisting"><a href="libxml2-schematron.html#xmlSchematron">xmlSchematron</a> * xmlSchematronPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronValidCtxt">Structure </a>xmlSchematronValidCtxt</h3><pre class="programlisting">struct _xmlSchematronValidCtxt {
+The content of this structure is not made public by the API.
+} xmlSchematronValidCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronValidCtxtPtr">Typedef </a>xmlSchematronValidCtxtPtr</h3><pre class="programlisting"><a href="libxml2-schematron.html#xmlSchematronValidCtxt">xmlSchematronValidCtxt</a> * xmlSchematronValidCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronValidOptions">Enum </a>xmlSchematronValidOptions</h3><pre class="programlisting">enum <a href="#xmlSchematronValidOptions">xmlSchematronValidOptions</a> {
+ <a name="XML_SCHEMATRON_OUT_QUIET">XML_SCHEMATRON_OUT_QUIET</a> = 1 /* quiet no report */
+ <a name="XML_SCHEMATRON_OUT_TEXT">XML_SCHEMATRON_OUT_TEXT</a> = 2 /* build a textual report */
+ <a name="XML_SCHEMATRON_OUT_XML">XML_SCHEMATRON_OUT_XML</a> = 4 /* output SVRL */
+ <a name="XML_SCHEMATRON_OUT_ERROR">XML_SCHEMATRON_OUT_ERROR</a> = 8 /* output via xmlStructuredErrorFunc */
+ <a name="XML_SCHEMATRON_OUT_FILE">XML_SCHEMATRON_OUT_FILE</a> = 256 /* output to a file descriptor */
+ <a name="XML_SCHEMATRON_OUT_BUFFER">XML_SCHEMATRON_OUT_BUFFER</a> = 512 /* output to a buffer */
+ <a name="XML_SCHEMATRON_OUT_IO">XML_SCHEMATRON_OUT_IO</a> = 1024 /* output to I/O mechanism */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronValidityErrorFunc"/>Function type xmlSchematronValidityErrorFunc</h3><pre class="programlisting">void xmlSchematronValidityErrorFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Signature of an error callback from a Schematron validation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronValidityWarningFunc"/>Function type xmlSchematronValidityWarningFunc</h3><pre class="programlisting">void xmlSchematronValidityWarningFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Signature of a warning callback from a Schematron validation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronFree"/>xmlSchematronFree ()</h3><pre class="programlisting">void xmlSchematronFree (<a href="libxml2-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> schema)<br/>
+</pre><p>Deallocate a Schematron structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronFreeParserCtxt"/>xmlSchematronFreeParserCtxt ()</h3><pre class="programlisting">void xmlSchematronFreeParserCtxt (<a href="libxml2-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Free the resources associated to the schema parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronFreeValidCtxt"/>xmlSchematronFreeValidCtxt ()</h3><pre class="programlisting">void xmlSchematronFreeValidCtxt (<a href="libxml2-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt)<br/>
+</pre><p>Free the resources associated to the schema validation context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema validation context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronNewDocParserCtxt"/>xmlSchematronNewDocParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> xmlSchematronNewDocParserCtxt (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Create an XML Schematrons parse context for that document. NB. The document may be modified during the parsing process.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a preparsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronNewMemParserCtxt"/>xmlSchematronNewMemParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> xmlSchematronNewMemParserCtxt (const char * buffer, <br/> int size)<br/>
+</pre><p>Create an XML Schematrons parse context for that memory buffer expected to contain an XML Schematrons file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array containing the schemas</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronNewParserCtxt"/>xmlSchematronNewParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> xmlSchematronNewParserCtxt (const char * URL)<br/>
+</pre><p>Create an XML Schematrons parse context for that file/resource expected to contain an XML Schematrons file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the location of the schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronNewValidCtxt"/>xmlSchematronNewValidCtxt ()</h3><pre class="programlisting"><a href="libxml2-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> xmlSchematronNewValidCtxt (<a href="libxml2-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> schema, <br/> int options)<br/>
+</pre><p>Create an XML Schematrons validation context based on the given schema.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled XML Schematrons</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of <a href="libxml2-schematron.html#xmlSchematronValidOptions">xmlSchematronValidOptions</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the validation context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronParse"/>xmlSchematronParse ()</h3><pre class="programlisting"><a href="libxml2-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> xmlSchematronParse (<a href="libxml2-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse a schema definition resource and build an internal XML Schema structure which can be used to validate instances.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal XML Schematron structure built from the resource or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronSetValidStructuredErrors"/>xmlSchematronSetValidStructuredErrors ()</h3><pre class="programlisting">void xmlSchematronSetValidStructuredErrors (<a href="libxml2-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br/> void * ctx)<br/>
+</pre><p>Set the structured error callback</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Schematron validation context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the structured error function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchematronValidateDoc"/>xmlSchematronValidateDoc ()</h3><pre class="programlisting">int xmlSchematronValidateDoc (<a href="libxml2-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> instance)<br/>
+</pre><p>Validate a tree instance against the schematron</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema validation context</td></tr><tr><td><span class="term"><i><tt>instance</tt></i>:</span></td><td>the document instance tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of internal error and an error count otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-threads.html b/libxml2-2.9.10/doc/devhelp/libxml2-threads.html
new file mode 100644
index 0000000..0ddd0bc
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-threads.html
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>threads: interfaces for thread handling</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-schematron.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-tree.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">threads</span>
+ </h2>
+ <p>threads - interfaces for thread handling</p>
+ <p>set of generic threading related routines should work with pthreads, Windows native or TLS threads </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef struct _xmlMutex <a href="#xmlMutex">xmlMutex</a>;
+typedef struct _xmlRMutex <a href="#xmlRMutex">xmlRMutex</a>;
+typedef <a href="libxml2-threads.html#xmlRMutex">xmlRMutex</a> * <a href="#xmlRMutexPtr">xmlRMutexPtr</a>;
+typedef <a href="libxml2-threads.html#xmlMutex">xmlMutex</a> * <a href="#xmlMutexPtr">xmlMutexPtr</a>;
+void <a href="#xmlFreeRMutex">xmlFreeRMutex</a> (<a href="libxml2-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok);
+int <a href="#xmlGetThreadId">xmlGetThreadId</a> (void);
+void <a href="#xmlMutexUnlock">xmlMutexUnlock</a> (<a href="libxml2-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok);
+void <a href="#xmlCleanupThreads">xmlCleanupThreads</a> (void);
+void <a href="#xmlLockLibrary">xmlLockLibrary</a> (void);
+<a href="libxml2-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> <a href="#xmlNewRMutex">xmlNewRMutex</a> (void);
+void <a href="#xmlMutexLock">xmlMutexLock</a> (<a href="libxml2-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok);
+int <a href="#xmlIsMainThread">xmlIsMainThread</a> (void);
+void <a href="#xmlRMutexUnlock">xmlRMutexUnlock</a> (<a href="libxml2-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok);
+<a href="libxml2-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a> <a href="#xmlGetGlobalState">xmlGetGlobalState</a> (void);
+<a href="libxml2-threads.html#xmlMutexPtr">xmlMutexPtr</a> <a href="#xmlNewMutex">xmlNewMutex</a> (void);
+int <a href="#xmlDllMain">xmlDllMain</a> (void * hinstDLL, <br/> unsigned long fdwReason, <br/> void * lpvReserved);
+void <a href="#xmlFreeMutex">xmlFreeMutex</a> (<a href="libxml2-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok);
+void <a href="#xmlUnlockLibrary">xmlUnlockLibrary</a> (void);
+void <a href="#xmlInitThreads">xmlInitThreads</a> (void);
+void <a href="#xmlRMutexLock">xmlRMutexLock</a> (<a href="libxml2-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlMutex">Structure </a>xmlMutex</h3><pre class="programlisting">struct _xmlMutex {
+The content of this structure is not made public by the API.
+} xmlMutex;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMutexPtr">Typedef </a>xmlMutexPtr</h3><pre class="programlisting"><a href="libxml2-threads.html#xmlMutex">xmlMutex</a> * xmlMutexPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRMutex">Structure </a>xmlRMutex</h3><pre class="programlisting">struct _xmlRMutex {
+The content of this structure is not made public by the API.
+} xmlRMutex;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRMutexPtr">Typedef </a>xmlRMutexPtr</h3><pre class="programlisting"><a href="libxml2-threads.html#xmlRMutex">xmlRMutex</a> * xmlRMutexPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCleanupThreads"/>xmlCleanupThreads ()</h3><pre class="programlisting">void xmlCleanupThreads (void)<br/>
+</pre><p>xmlCleanupThreads() is used to to cleanup all the thread related data of the libxml2 library once processing has ended. WARNING: if your application is multithreaded or has plugin support calling this may crash the application if another thread or a plugin is still using libxml2. It's sometimes very hard to guess if libxml2 is in use in the application, some libraries or plugins may use it without notice. In case of doubt abstain from calling this function or do it just before calling exit() to avoid leak reports from valgrind !</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDllMain"/>xmlDllMain ()</h3><pre class="programlisting">int xmlDllMain (void * hinstDLL, <br/> unsigned long fdwReason, <br/> void * lpvReserved)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>hinstDLL</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>fdwReason</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>lpvReserved</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeMutex"/>xmlFreeMutex ()</h3><pre class="programlisting">void xmlFreeMutex (<a href="libxml2-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok)<br/>
+</pre><p>xmlFreeMutex() is used to reclaim resources associated with a libxml2 token struct.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the simple mutex</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeRMutex"/>xmlFreeRMutex ()</h3><pre class="programlisting">void xmlFreeRMutex (<a href="libxml2-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok)<br/>
+</pre><p>xmlRFreeMutex() is used to reclaim resources associated with a reentrant mutex.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the reentrant mutex</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetGlobalState"/>xmlGetGlobalState ()</h3><pre class="programlisting"><a href="libxml2-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a> xmlGetGlobalState (void)<br/>
+</pre><p>xmlGetGlobalState() is called to retrieve the global state for a thread.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the thread global state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetThreadId"/>xmlGetThreadId ()</h3><pre class="programlisting">int xmlGetThreadId (void)<br/>
+</pre><p>xmlGetThreadId() find the current thread ID number Note that this is likely to be broken on some platforms using pthreads as the specification doesn't mandate pthread_t to be an integer type</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current thread ID number</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitThreads"/>xmlInitThreads ()</h3><pre class="programlisting">void xmlInitThreads (void)<br/>
+</pre><p>xmlInitThreads() is used to to initialize all the thread related data of the libxml2 library.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsMainThread"/>xmlIsMainThread ()</h3><pre class="programlisting">int xmlIsMainThread (void)<br/>
+</pre><p>xmlIsMainThread() check whether the current thread is the main thread.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the current thread is the main thread, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLockLibrary"/>xmlLockLibrary ()</h3><pre class="programlisting">void xmlLockLibrary (void)<br/>
+</pre><p>xmlLockLibrary() is used to take out a re-entrant lock on the libxml2 library.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMutexLock"/>xmlMutexLock ()</h3><pre class="programlisting">void xmlMutexLock (<a href="libxml2-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok)<br/>
+</pre><p>xmlMutexLock() is used to lock a libxml2 token.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the simple mutex</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMutexUnlock"/>xmlMutexUnlock ()</h3><pre class="programlisting">void xmlMutexUnlock (<a href="libxml2-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok)<br/>
+</pre><p>xmlMutexUnlock() is used to unlock a libxml2 token.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the simple mutex</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewMutex"/>xmlNewMutex ()</h3><pre class="programlisting"><a href="libxml2-threads.html#xmlMutexPtr">xmlMutexPtr</a> xmlNewMutex (void)<br/>
+</pre><p>xmlNewMutex() is used to allocate a libxml2 token struct for use in synchronizing access to data.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new simple mutex pointer or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewRMutex"/>xmlNewRMutex ()</h3><pre class="programlisting"><a href="libxml2-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> xmlNewRMutex (void)<br/>
+</pre><p>xmlRNewMutex() is used to allocate a reentrant mutex for use in synchronizing access to data. token_r is a re-entrant lock and thus useful for synchronizing access to data structures that may be manipulated in a recursive fashion.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reentrant mutex pointer or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRMutexLock"/>xmlRMutexLock ()</h3><pre class="programlisting">void xmlRMutexLock (<a href="libxml2-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok)<br/>
+</pre><p>xmlRMutexLock() is used to lock a libxml2 token_r.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the reentrant mutex</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRMutexUnlock"/>xmlRMutexUnlock ()</h3><pre class="programlisting">void xmlRMutexUnlock (<a href="libxml2-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok)<br/>
+</pre><p>xmlRMutexUnlock() is used to unlock a libxml2 token_r.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the reentrant mutex</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUnlockLibrary"/>xmlUnlockLibrary ()</h3><pre class="programlisting">void xmlUnlockLibrary (void)<br/>
+</pre><p>xmlUnlockLibrary() is used to release a re-entrant lock on the libxml2 library.</p>
+</div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-tree.html b/libxml2-2.9.10/doc/devhelp/libxml2-tree.html
new file mode 100644
index 0000000..546844d
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-tree.html
@@ -0,0 +1,1598 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>tree: interfaces for tree manipulation</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-threads.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-uri.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">tree</span>
+ </h2>
+ <p>tree - interfaces for tree manipulation</p>
+ <p>this module describes the structures found in an tree resulting from an XML or HTML parsing, as well as the API provided for various processing on that tree </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#XML_LOCAL_NAMESPACE">XML_LOCAL_NAMESPACE</a>;
+#define <a href="#BASE_BUFFER_SIZE">BASE_BUFFER_SIZE</a>;
+#define <a href="#XML_XML_ID">XML_XML_ID</a>;
+#define <a href="#xmlRootNode">xmlRootNode</a>;
+#define <a href="#XML_GET_LINE">XML_GET_LINE</a>;
+#define <a href="#XML_GET_CONTENT">XML_GET_CONTENT</a>;
+#define <a href="#xmlChildrenNode">xmlChildrenNode</a>;
+#define <a href="#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a>;
+#define <a href="#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a>;
+typedef struct _xmlNs <a href="#xmlNs">xmlNs</a>;
+typedef struct _xmlElementContent <a href="#xmlElementContent">xmlElementContent</a>;
+typedef <a href="libxml2-tree.html#xmlEnumeration">xmlEnumeration</a> * <a href="#xmlEnumerationPtr">xmlEnumerationPtr</a>;
+typedef struct _xmlBuffer <a href="#xmlBuffer">xmlBuffer</a>;
+typedef <a href="libxml2-tree.html#xmlParserInput">xmlParserInput</a> * <a href="#xmlParserInputPtr">xmlParserInputPtr</a>;
+typedef <a href="libxml2-tree.html#xmlSAXLocator">xmlSAXLocator</a> * <a href="#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a>;
+typedef struct _xmlParserInput <a href="#xmlParserInput">xmlParserInput</a>;
+typedef struct _xmlElement <a href="#xmlElement">xmlElement</a>;
+typedef <a href="libxml2-tree.html#xmlElementType">xmlElementType</a> <a href="#xmlNsType">xmlNsType</a>;
+typedef enum <a href="#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a>;
+typedef struct _xmlNode <a href="#xmlNode">xmlNode</a>;
+typedef <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * <a href="#xmlDocPtr">xmlDocPtr</a>;
+typedef <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> * <a href="#xmlBufferPtr">xmlBufferPtr</a>;
+typedef <a href="libxml2-tree.html#xmlDOMWrapCtxt">xmlDOMWrapCtxt</a> * <a href="#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a>;
+typedef <a href="libxml2-tree.html#xmlRef">xmlRef</a> * <a href="#xmlRefPtr">xmlRefPtr</a>;
+typedef struct _xmlParserInputBuffer <a href="#xmlParserInputBuffer">xmlParserInputBuffer</a>;
+typedef struct _xmlRef <a href="#xmlRef">xmlRef</a>;
+typedef struct _xmlDOMWrapCtxt <a href="#xmlDOMWrapCtxt">xmlDOMWrapCtxt</a>;
+typedef <a href="libxml2-tree.html#xmlNode">xmlNode</a> * <a href="#xmlNodePtr">xmlNodePtr</a>;
+typedef struct _xmlParserCtxt <a href="#xmlParserCtxt">xmlParserCtxt</a>;
+typedef <a href="libxml2-tree.html#xmlDtd">xmlDtd</a> * <a href="#xmlDtdPtr">xmlDtdPtr</a>;
+typedef enum <a href="#xmlAttributeDefault">xmlAttributeDefault</a>;
+typedef struct _xmlBuf <a href="#xmlBuf">xmlBuf</a>;
+typedef struct _xmlNotation <a href="#xmlNotation">xmlNotation</a>;
+typedef enum <a href="#xmlElementType">xmlElementType</a>;
+typedef struct _xmlEntity <a href="#xmlEntity">xmlEntity</a>;
+typedef struct _xmlAttr <a href="#xmlAttr">xmlAttr</a>;
+typedef <a href="libxml2-tree.html#xmlAttribute">xmlAttribute</a> * <a href="#xmlAttributePtr">xmlAttributePtr</a>;
+typedef enum <a href="#xmlElementTypeVal">xmlElementTypeVal</a>;
+typedef <a href="libxml2-tree.html#xmlNotation">xmlNotation</a> * <a href="#xmlNotationPtr">xmlNotationPtr</a>;
+typedef <a href="libxml2-tree.html#xmlElement">xmlElement</a> * <a href="#xmlElementPtr">xmlElementPtr</a>;
+typedef <a href="libxml2-tree.html#xmlBuf">xmlBuf</a> * <a href="#xmlBufPtr">xmlBufPtr</a>;
+typedef enum <a href="#xmlElementContentOccur">xmlElementContentOccur</a>;
+typedef <a href="libxml2-tree.html#xmlAttr">xmlAttr</a> * <a href="#xmlAttrPtr">xmlAttrPtr</a>;
+typedef struct _xmlDoc <a href="#xmlDoc">xmlDoc</a>;
+typedef struct _xmlID <a href="#xmlID">xmlID</a>;
+typedef <a href="libxml2-tree.html#xmlParserCtxt">xmlParserCtxt</a> * <a href="#xmlParserCtxtPtr">xmlParserCtxtPtr</a>;
+typedef <a href="libxml2-tree.html#xmlEntity">xmlEntity</a> * <a href="#xmlEntityPtr">xmlEntityPtr</a>;
+typedef struct _xmlEnumeration <a href="#xmlEnumeration">xmlEnumeration</a>;
+typedef enum <a href="#xmlAttributeType">xmlAttributeType</a>;
+typedef <a href="libxml2-tree.html#xmlNs">xmlNs</a> * <a href="#xmlNsPtr">xmlNsPtr</a>;
+typedef <a href="libxml2-tree.html#xmlParserInputBuffer">xmlParserInputBuffer</a> * <a href="#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a>;
+typedef struct _xmlSAXHandler <a href="#xmlSAXHandler">xmlSAXHandler</a>;
+typedef struct _xmlOutputBuffer <a href="#xmlOutputBuffer">xmlOutputBuffer</a>;
+typedef struct _xmlSAXLocator <a href="#xmlSAXLocator">xmlSAXLocator</a>;
+typedef <a href="libxml2-tree.html#xmlElementContent">xmlElementContent</a> * <a href="#xmlElementContentPtr">xmlElementContentPtr</a>;
+typedef enum <a href="#xmlElementContentType">xmlElementContentType</a>;
+typedef enum <a href="#xmlDocProperties">xmlDocProperties</a>;
+typedef <a href="libxml2-tree.html#xmlID">xmlID</a> * <a href="#xmlIDPtr">xmlIDPtr</a>;
+typedef struct _xmlDtd <a href="#xmlDtd">xmlDtd</a>;
+typedef struct _xmlAttribute <a href="#xmlAttribute">xmlAttribute</a>;
+typedef <a href="libxml2-tree.html#xmlOutputBuffer">xmlOutputBuffer</a> * <a href="#xmlOutputBufferPtr">xmlOutputBufferPtr</a>;
+typedef <a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> * <a href="#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a>;
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlDocCopyNode">xmlDocCopyNode</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> int extended);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocRawNode">xmlNewDocRawNode</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBufContent">xmlBufContent</a> (const <a href="libxml2-tree.html#xmlBuf">xmlBuf</a> * buf);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlNewNsPropEatName">xmlNewNsPropEatName</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlStringGetNodeList">xmlStringGetNodeList</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewCDataBlock">xmlNewCDataBlock</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len);
+void <a href="#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * string);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNodeGetBase">xmlNodeGetBase</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur);
+void <a href="#xmlBufferEmpty">xmlBufferEmpty</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBuildQName">xmlBuildQName</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ncname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * memory, <br/> int len);
+int <a href="#xmlValidateNMToken">xmlValidateNMToken</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int space);
+int <a href="#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a> (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding, <br/> int format);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlAddSibling">xmlAddSibling</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
+<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> <a href="#xmlBufferCreate">xmlBufferCreate</a> (void);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocFragment">xmlNewDocFragment</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlDocGetRootElement">xmlDocGetRootElement</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlGetProp">xmlGetProp</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlValidateName">xmlValidateName</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int space);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBufEnd">xmlBufEnd</a> (<a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buf);
+int <a href="#xmlValidateQName">xmlValidateQName</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int space);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlHasNsProp">xmlHasNsProp</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * nameSpace);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlAddPrevSibling">xmlAddPrevSibling</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
+int <a href="#xmlBufferAddHead">xmlBufferAddHead</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int len);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewPI">xmlNewPI</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+void <a href="#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> out_doc, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr, <br/> int * doc_txt_len, <br/> const char * txt_encoding, <br/> int format);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlSetProp">xmlSetProp</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+unsigned long <a href="#xmlChildElementCount">xmlChildElementCount</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent);
+void <a href="#xmlElemDump">xmlElemDump</a> (FILE * f, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+int <a href="#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding, <br/> int format);
+<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlGetIntSubset">xmlGetIntSubset</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc);
+int <a href="#xmlNodeBufGetContent">xmlNodeBufGetContent</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNextElementSibling">xmlNextElementSibling</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+void <a href="#xmlBufferWriteChar">xmlBufferWriteChar</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const char * string);
+void <a href="#xmlBufferFree">xmlBufferFree</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf);
+int <a href="#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a> (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> sourceDoc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * resNode, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> destDoc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> destParent, <br/> int deep, <br/> int options);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewNode">xmlNewNode</a> (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlSaveFileTo">xmlSaveFileTo</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewTextLen">xmlNewTextLen</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewTextChild">xmlNewTextChild</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+void <a href="#xmlNodeSetContent">xmlNodeSetContent</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlBufferAdd">xmlBufferAdd</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int len);
+void <a href="#xmlNodeDumpOutput">xmlNodeDumpOutput</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> int level, <br/> int format, <br/> const char * encoding);
+<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlCopyNamespace">xmlCopyNamespace</a> (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> cur);
+<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlSearchNsByHref">xmlSearchNsByHref</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlAddChild">xmlAddChild</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+int <a href="#xmlReconciliateNs">xmlReconciliateNs</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree);
+int <a href="#xmlValidateNCName">xmlValidateNCName</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int space);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocComment">xmlNewDocComment</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlGetCompressMode">xmlGetCompressMode</a> (void);
+int <a href="#xmlNodeDump">xmlNodeDump</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> int level, <br/> int format);
+<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> <a href="#xmlBufferCreateSize">xmlBufferCreateSize</a> (size_t size);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNodeListGetString">xmlNodeListGetString</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * list, <br/> int inLine);
+void <a href="#xmlSetCompressMode">xmlSetCompressMode</a> (int mode);
+void <a href="#xmlSetTreeDoc">xmlSetTreeDoc</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+int <a href="#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a> (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> sourceDoc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> destDoc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> destParent, <br/> int options);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlCopyNodeList">xmlCopyNodeList</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlAddChildList">xmlAddChildList</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlGetNodePath">xmlGetNodePath</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node);
+void <a href="#xmlFreePropList">xmlFreePropList</a> (<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur);
+void <a href="#xmlNodeAddContent">xmlNodeAddContent</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlUnsetNsProp">xmlUnsetNsProp</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlFirstElementChild">xmlFirstElementChild</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlAddNextSibling">xmlAddNextSibling</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
+int <a href="#xmlIsBlankNode">xmlIsBlankNode</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node);
+<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlNewGlobalNs">xmlNewGlobalNs</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix);
+int <a href="#xmlBufferDump">xmlBufferDump</a> (FILE * file, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNodeGetContent">xmlNodeGetContent</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCopyDoc">xmlCopyDoc</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> int recursive);
+<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> <a href="#xmlDOMWrapNewCtxt">xmlDOMWrapNewCtxt</a> (void);
+void <a href="#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> out_doc, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr, <br/> int * doc_txt_len, <br/> const char * txt_encoding);
+int <a href="#xmlBufGetNodeContent">xmlBufGetNodeContent</a> (<a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextMerge">xmlTextMerge</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> first, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> second);
+void <a href="#xmlDocDumpMemory">xmlDocDumpMemory</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br/> int * size);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocPI">xmlNewDocPI</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+void <a href="#xmlFreeNs">xmlFreeNs</a> (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> cur);
+int <a href="#xmlDocDump">xmlDocDump</a> (FILE * f, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur);
+void <a href="#xmlFreeProp">xmlFreeProp</a> (<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlGetNoNsProp">xmlGetNoNsProp</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSplitQName2">xmlSplitQName2</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** prefix);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlNewProp">xmlNewProp</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlTextConcat">xmlTextConcat</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len);
+int <a href="#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur);
+int <a href="#xmlBufferShrink">xmlBufferShrink</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> unsigned int len);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlPreviousElementSibling">xmlPreviousElementSibling</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+void <a href="#xmlNodeSetContentLen">xmlNodeSetContentLen</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len);
+void <a href="#xmlNodeAddContentLen">xmlNodeAddContentLen</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len);
+void <a href="#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * string);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlCopyProp">xmlCopyProp</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlReplaceNode">xmlReplaceNode</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> old, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+void <a href="#xmlSetDocCompressMode">xmlSetDocCompressMode</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> int mode);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlCopyNode">xmlCopyNode</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int extended);
+void <a href="#xmlUnlinkNode">xmlUnlinkNode</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSplitQName3">xmlSplitQName3</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int * len);
+typedef <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a> (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * nsName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * nsPrefix);
+size_t <a href="#xmlBufUse">xmlBufUse</a> (const <a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buf);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlDocSetRootElement">xmlDocSetRootElement</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> root);
+long <a href="#xmlGetLineNo">xmlGetLineNo</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBufferContent">xmlBufferContent</a> (const <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> * buf);
+int <a href="#xmlRemoveProp">xmlRemoveProp</a> (<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlLastElementChild">xmlLastElementChild</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNodeGetLang">xmlNodeGetLang</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur);
+int <a href="#xmlGetDocCompressMode">xmlGetDocCompressMode</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc);
+size_t <a href="#xmlBufNodeDump">xmlBufNodeDump</a> (<a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> int level, <br/> int format);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlGetNsProp">xmlGetNsProp</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * nameSpace);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlNewDocProp">xmlNewDocProp</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+void <a href="#xmlFreeNode">xmlFreeNode</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlNewNsProp">xmlNewNsProp</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+void <a href="#xmlDOMWrapFreeCtxt">xmlDOMWrapFreeCtxt</a> (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBufferDetach">xmlBufferDetach</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf);
+void <a href="#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> scheme);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewChild">xmlNewChild</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlSearchNs">xmlSearchNs</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * nameSpace);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int len);
+int <a href="#xmlSaveFormatFile">xmlSaveFormatFile</a> (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> int format);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlCopyPropList">xmlCopyPropList</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur);
+int <a href="#xmlDocFormatDump">xmlDocFormatDump</a> (FILE * f, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> int format);
+void <a href="#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> int val);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlHasProp">xmlHasProp</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlBufferCat">xmlBufferCat</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlCreateIntSubset">xmlCreateIntSubset</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlNewDoc">xmlNewDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * version);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewCharRef">xmlNewCharRef</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlCopyNamespaceList">xmlCopyNamespaceList</a> (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> cur);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewNodeEatName">xmlNewNodeEatName</a> (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlBufferResize">xmlBufferResize</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> unsigned int size);
+void <a href="#xmlNodeSetBase">xmlNodeSetBase</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * uri);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewComment">xmlNewComment</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlBufferLength">xmlBufferLength</a> (const <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> * buf);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewText">xmlNewText</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlUnsetProp">xmlUnsetProp</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> <a href="#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a> (void);
+int <a href="#xmlSaveFile">xmlSaveFile</a> (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlDocCopyNodeList">xmlDocCopyNodeList</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+void <a href="#xmlSetNs">xmlSetNs</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns);
+<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlNewNs">xmlNewNs</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix);
+int <a href="#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a> (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int options);
+void <a href="#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * string);
+<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlCopyDtd">xmlCopyDtd</a> (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocText">xmlNewDocText</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNodeListGetRawString">xmlNodeListGetRawString</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * list, <br/> int inLine);
+<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> <a href="#xmlBufferCreateStatic">xmlBufferCreateStatic</a> (void * mem, <br/> size_t size);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewReference">xmlNewReference</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a> (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> int options);
+int <a href="#xmlBufferCCat">xmlBufferCCat</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const char * str);
+<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> * <a href="#xmlGetNsList">xmlGetNsList</a> (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node);
+int <a href="#xmlBufferGrow">xmlBufferGrow</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> unsigned int len);
+int <a href="#xmlNodeIsText">xmlNodeIsText</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node);
+void <a href="#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a> (<a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> scheme);
+int <a href="#xmlIsXHTML">xmlIsXHTML</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicID);
+void <a href="#xmlNodeSetLang">xmlNodeSetLang</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * lang);
+void <a href="#xmlFreeDtd">xmlFreeDtd</a> (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> cur);
+void <a href="#xmlFreeNodeList">xmlFreeNodeList</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+void <a href="#xmlFreeDoc">xmlFreeDoc</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur);
+size_t <a href="#xmlBufShrink">xmlBufShrink</a> (<a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br/> size_t len);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocNode">xmlNewDocNode</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlSaveFileEnc">xmlSaveFileEnc</a> (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlSetNsProp">xmlSetNsProp</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+void <a href="#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br/> int * size, <br/> int format);
+void <a href="#xmlSetListDoc">xmlSetListDoc</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> list, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+void <a href="#xmlNodeSetName">xmlNodeSetName</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocTextLen">xmlNewDocTextLen</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len);
+<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlNewDtd">xmlNewDtd</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+void <a href="#xmlFreeNsList">xmlFreeNsList</a> (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> cur);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlGetLastChild">xmlGetLastChild</a> (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * parent);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="BASE_BUFFER_SIZE">Macro </a>BASE_BUFFER_SIZE</h3><pre class="programlisting">#define <a href="#BASE_BUFFER_SIZE">BASE_BUFFER_SIZE</a>;
+</pre><p>default buffer size 4000.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML2_NEW_BUFFER">Macro </a>LIBXML2_NEW_BUFFER</h3><pre class="programlisting">#define <a href="#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a>;
+</pre><p>Macro used to express that the API use the new buffers for <a href="libxml2-tree.html#xmlParserInputBuffer">xmlParserInputBuffer</a> and xmlOutputBuffer. The change was introduced in 2.9.0.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_GET_CONTENT">Macro </a>XML_GET_CONTENT</h3><pre class="programlisting">#define <a href="#XML_GET_CONTENT">XML_GET_CONTENT</a>;
+</pre><p>Macro to extract the content pointer of a node.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_GET_LINE">Macro </a>XML_GET_LINE</h3><pre class="programlisting">#define <a href="#XML_GET_LINE">XML_GET_LINE</a>;
+</pre><p>Macro to extract the line number of an element node.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_LOCAL_NAMESPACE">Macro </a>XML_LOCAL_NAMESPACE</h3><pre class="programlisting">#define <a href="#XML_LOCAL_NAMESPACE">XML_LOCAL_NAMESPACE</a>;
+</pre><p>A namespace declaration node.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_XML_ID">Macro </a>XML_XML_ID</h3><pre class="programlisting">#define <a href="#XML_XML_ID">XML_XML_ID</a>;
+</pre><p>This is the name for the special xml:id <a href="libxml2-SAX.html#attribute">attribute</a></p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_XML_NAMESPACE">Macro </a>XML_XML_NAMESPACE</h3><pre class="programlisting">#define <a href="#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a>;
+</pre><p>This is the namespace for the special xml: prefix predefined in the XML Namespace specification.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlChildrenNode">Macro </a>xmlChildrenNode</h3><pre class="programlisting">#define <a href="#xmlChildrenNode">xmlChildrenNode</a>;
+</pre><p>Macro for compatibility naming layer with libxml1. Maps to "children."</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRootNode">Macro </a>xmlRootNode</h3><pre class="programlisting">#define <a href="#xmlRootNode">xmlRootNode</a>;
+</pre><p>Macro for compatibility naming layer with libxml1. Maps to "children".</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAttr">Structure </a>xmlAttr</h3><pre class="programlisting">struct _xmlAttr {
+ void * _private : application data
+ <a href="libxml2-tree.html#xmlElementType">xmlElementType</a> type : XML_ATTRIBUTE_NODE, must be second !
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : the name of the property
+ struct _xmlNode * children : the value of the property
+ struct _xmlNode * last : NULL
+ struct _xmlNode * parent : child-&gt;parent link
+ struct _xmlAttr * next : next sibling link
+ struct _xmlAttr * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document
+ <a href="libxml2-tree.html#xmlNs">xmlNs</a> * ns : pointer to the associated namespace
+ <a href="libxml2-tree.html#xmlAttributeType">xmlAttributeType</a> atype : the <a href="libxml2-SAX.html#attribute">attribute</a> type if validating
+ void * psvi : for type/PSVI informations
+} xmlAttr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAttrPtr">Typedef </a>xmlAttrPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttr">xmlAttr</a> * xmlAttrPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAttribute">Structure </a>xmlAttribute</h3><pre class="programlisting">struct _xmlAttribute {
+ void * _private : application data
+ <a href="libxml2-tree.html#xmlElementType">xmlElementType</a> type : XML_ATTRIBUTE_DECL, must be second !
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : Attribute name
+ struct _xmlNode * children : NULL
+ struct _xmlNode * last : NULL
+ struct _xmlDtd * parent : -&gt; DTD
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document
+ struct _xmlAttribute * nexth : next in hash table
+ <a href="libxml2-tree.html#xmlAttributeType">xmlAttributeType</a> atype : The <a href="libxml2-SAX.html#attribute">attribute</a> type
+ <a href="libxml2-tree.html#xmlAttributeDefault">xmlAttributeDefault</a> def : the default
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * defaultValue : or the default value
+ <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree : or the enumeration tree if any
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix : the namespace prefix if any
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem : Element holding the <a href="libxml2-SAX.html#attribute">attribute</a>
+} xmlAttribute;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAttributeDefault">Enum </a>xmlAttributeDefault</h3><pre class="programlisting">enum <a href="#xmlAttributeDefault">xmlAttributeDefault</a> {
+ <a name="XML_ATTRIBUTE_NONE">XML_ATTRIBUTE_NONE</a> = 1
+ <a name="XML_ATTRIBUTE_REQUIRED">XML_ATTRIBUTE_REQUIRED</a> = 2
+ <a name="XML_ATTRIBUTE_IMPLIED">XML_ATTRIBUTE_IMPLIED</a> = 3
+ <a name="XML_ATTRIBUTE_FIXED">XML_ATTRIBUTE_FIXED</a> = 4
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAttributePtr">Typedef </a>xmlAttributePtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttribute">xmlAttribute</a> * xmlAttributePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAttributeType">Enum </a>xmlAttributeType</h3><pre class="programlisting">enum <a href="#xmlAttributeType">xmlAttributeType</a> {
+ <a name="XML_ATTRIBUTE_CDATA">XML_ATTRIBUTE_CDATA</a> = 1
+ <a name="XML_ATTRIBUTE_ID">XML_ATTRIBUTE_ID</a> = 2
+ <a name="XML_ATTRIBUTE_IDREF">XML_ATTRIBUTE_IDREF</a> = 3
+ <a name="XML_ATTRIBUTE_IDREFS">XML_ATTRIBUTE_IDREFS</a> = 4
+ <a name="XML_ATTRIBUTE_ENTITY">XML_ATTRIBUTE_ENTITY</a> = 5
+ <a name="XML_ATTRIBUTE_ENTITIES">XML_ATTRIBUTE_ENTITIES</a> = 6
+ <a name="XML_ATTRIBUTE_NMTOKEN">XML_ATTRIBUTE_NMTOKEN</a> = 7
+ <a name="XML_ATTRIBUTE_NMTOKENS">XML_ATTRIBUTE_NMTOKENS</a> = 8
+ <a name="XML_ATTRIBUTE_ENUMERATION">XML_ATTRIBUTE_ENUMERATION</a> = 9
+ <a name="XML_ATTRIBUTE_NOTATION">XML_ATTRIBUTE_NOTATION</a> = 10
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBuf">Structure </a>xmlBuf</h3><pre class="programlisting">struct _xmlBuf {
+The content of this structure is not made public by the API.
+} xmlBuf;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufPtr">Typedef </a>xmlBufPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlBuf">xmlBuf</a> * xmlBufPtr;
+</pre><p>A pointer to a buffer structure, the actual structure internals are not public</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBuffer">Structure </a>xmlBuffer</h3><pre class="programlisting">struct _xmlBuffer {
+ <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content : The buffer content UTF8
+ unsigned int use : The buffer size used
+ unsigned int size : The buffer size
+ <a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> alloc : The realloc method
+ <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * contentIO : in IO mode we may have a different base
+} xmlBuffer;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferAllocationScheme">Enum </a>xmlBufferAllocationScheme</h3><pre class="programlisting">enum <a href="#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> {
+ <a name="XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a> = 1 /* double each time one need to grow */
+ <a name="XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a> = 2 /* grow only to the minimal size */
+ <a name="XML_BUFFER_ALLOC_IMMUTABLE">XML_BUFFER_ALLOC_IMMUTABLE</a> = 3 /* immutable buffer */
+ <a name="XML_BUFFER_ALLOC_IO">XML_BUFFER_ALLOC_IO</a> = 4 /* special allocation scheme used for I/O */
+ <a name="XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a> = 5 /* exact up to a threshold, and doubleit thereafter */
+ <a name="XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a> = 6 /* limit the upper size of the buffer */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferPtr">Typedef </a>xmlBufferPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> * xmlBufferPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDOMWrapCtxt">Structure </a>xmlDOMWrapCtxt</h3><pre class="programlisting">struct _xmlDOMWrapCtxt {
+ void * _private : * The type of this context, just in case we need specialized * context
+ int type : * Internal namespace map used for various operations. *
+ void * namespaceMap : * Use this one to acquire an <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> intended for node-&gt;ns. * (Note t
+ <a href="libxml2-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a> getNsForNodeFunc
+} xmlDOMWrapCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDOMWrapCtxtPtr">Typedef </a>xmlDOMWrapCtxtPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDOMWrapCtxt">xmlDOMWrapCtxt</a> * xmlDOMWrapCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDoc">Structure </a>xmlDoc</h3><pre class="programlisting">struct _xmlDoc {
+ void * _private : application data
+ <a href="libxml2-tree.html#xmlElementType">xmlElementType</a> type : XML_DOCUMENT_NODE, must be second !
+ char * name : name/filename/URI of the document
+ struct _xmlNode * children : the document tree
+ struct _xmlNode * last : last child link
+ struct _xmlNode * parent : child-&gt;parent link
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : autoreference to itself End of common part
+ int compression : level of zlib compression
+ int standalone : standalone document (no external refs) 1 if standalone="yes" 0 if sta
+ struct _xmlDtd * intSubset : the document internal subset
+ struct _xmlDtd * extSubset : the document external subset
+ struct _xmlNs * oldNs : Global namespace, the old way
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * version : the XML version string
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * encoding : external initial encoding, if any
+ void * ids : Hash table for ID attributes if any
+ void * refs : Hash table for IDREFs attributes if any
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URL : The URI for that document
+ int charset : Internal flag for charset handling, actually an <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a>
+ struct _xmlDict * dict : dict used to allocate names or NULL
+ void * psvi : for type/PSVI informations
+ int parseFlags : set of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a> used to parse the document
+ int properties : set of <a href="libxml2-tree.html#xmlDocProperties">xmlDocProperties</a> for this document set at the end of parsing
+} xmlDoc;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocProperties">Enum </a>xmlDocProperties</h3><pre class="programlisting">enum <a href="#xmlDocProperties">xmlDocProperties</a> {
+ <a name="XML_DOC_WELLFORMED">XML_DOC_WELLFORMED</a> = 1 /* document is XML well formed */
+ <a name="XML_DOC_NSVALID">XML_DOC_NSVALID</a> = 2 /* document is Namespace valid */
+ <a name="XML_DOC_OLD10">XML_DOC_OLD10</a> = 4 /* parsed with old XML-1.0 parser */
+ <a name="XML_DOC_DTDVALID">XML_DOC_DTDVALID</a> = 8 /* DTD validation was successful */
+ <a name="XML_DOC_XINCLUDE">XML_DOC_XINCLUDE</a> = 16 /* XInclude substitution was done */
+ <a name="XML_DOC_USERBUILT">XML_DOC_USERBUILT</a> = 32 /* Document was built using the API and not by parsing an instance */
+ <a name="XML_DOC_INTERNAL">XML_DOC_INTERNAL</a> = 64 /* built for internal processing */
+ <a name="XML_DOC_HTML">XML_DOC_HTML</a> = 128 /* parsed or built HTML document */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocPtr">Typedef </a>xmlDocPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * xmlDocPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDtd">Structure </a>xmlDtd</h3><pre class="programlisting">struct _xmlDtd {
+ void * _private : application data
+ <a href="libxml2-tree.html#xmlElementType">xmlElementType</a> type : XML_DTD_NODE, must be second !
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : Name of the DTD
+ struct _xmlNode * children : the value of the property link
+ struct _xmlNode * last : last child link
+ struct _xmlDoc * parent : child-&gt;parent link
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document End of common part
+ void * notations : Hash table for notations if any
+ void * elements : Hash table for elements if any
+ void * attributes : Hash table for attributes if any
+ void * entities : Hash table for entities if any
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID : External identifier for PUBLIC DTD
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID : URI for a SYSTEM or PUBLIC DTD
+ void * pentities : Hash table for param entities if any
+} xmlDtd;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDtdPtr">Typedef </a>xmlDtdPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDtd">xmlDtd</a> * xmlDtdPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElement">Structure </a>xmlElement</h3><pre class="programlisting">struct _xmlElement {
+ void * _private : application data
+ <a href="libxml2-tree.html#xmlElementType">xmlElementType</a> type : XML_ELEMENT_DECL, must be second !
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : Element name
+ struct _xmlNode * children : NULL
+ struct _xmlNode * last : NULL
+ struct _xmlDtd * parent : -&gt; DTD
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document
+ <a href="libxml2-tree.html#xmlElementTypeVal">xmlElementTypeVal</a> etype : The type
+ <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content : the allowed element content
+ <a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> attributes : List of the declared attributes
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix : the namespace prefix if any
+ <a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> contModel : the validating regexp
+ void * contModel
+} xmlElement;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElementContent">Structure </a>xmlElementContent</h3><pre class="programlisting">struct _xmlElementContent {
+ <a href="libxml2-tree.html#xmlElementContentType">xmlElementContentType</a> type : PCDATA, ELEMENT, SEQ or OR
+ <a href="libxml2-tree.html#xmlElementContentOccur">xmlElementContentOccur</a> ocur : ONCE, OPT, MULT or PLUS
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : Element name
+ struct _xmlElementContent * c1 : first child
+ struct _xmlElementContent * c2 : second child
+ struct _xmlElementContent * parent : parent
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix : Namespace prefix
+} xmlElementContent;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElementContentOccur">Enum </a>xmlElementContentOccur</h3><pre class="programlisting">enum <a href="#xmlElementContentOccur">xmlElementContentOccur</a> {
+ <a name="XML_ELEMENT_CONTENT_ONCE">XML_ELEMENT_CONTENT_ONCE</a> = 1
+ <a name="XML_ELEMENT_CONTENT_OPT">XML_ELEMENT_CONTENT_OPT</a> = 2
+ <a name="XML_ELEMENT_CONTENT_MULT">XML_ELEMENT_CONTENT_MULT</a> = 3
+ <a name="XML_ELEMENT_CONTENT_PLUS">XML_ELEMENT_CONTENT_PLUS</a> = 4
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElementContentPtr">Typedef </a>xmlElementContentPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementContent">xmlElementContent</a> * xmlElementContentPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElementContentType">Enum </a>xmlElementContentType</h3><pre class="programlisting">enum <a href="#xmlElementContentType">xmlElementContentType</a> {
+ <a name="XML_ELEMENT_CONTENT_PCDATA">XML_ELEMENT_CONTENT_PCDATA</a> = 1
+ <a name="XML_ELEMENT_CONTENT_ELEMENT">XML_ELEMENT_CONTENT_ELEMENT</a> = 2
+ <a name="XML_ELEMENT_CONTENT_SEQ">XML_ELEMENT_CONTENT_SEQ</a> = 3
+ <a name="XML_ELEMENT_CONTENT_OR">XML_ELEMENT_CONTENT_OR</a> = 4
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElementPtr">Typedef </a>xmlElementPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElement">xmlElement</a> * xmlElementPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElementType">Enum </a>xmlElementType</h3><pre class="programlisting">enum <a href="#xmlElementType">xmlElementType</a> {
+ <a name="XML_ELEMENT_NODE">XML_ELEMENT_NODE</a> = 1
+ <a name="XML_ATTRIBUTE_NODE">XML_ATTRIBUTE_NODE</a> = 2
+ <a name="XML_TEXT_NODE">XML_TEXT_NODE</a> = 3
+ <a name="XML_CDATA_SECTION_NODE">XML_CDATA_SECTION_NODE</a> = 4
+ <a name="XML_ENTITY_REF_NODE">XML_ENTITY_REF_NODE</a> = 5
+ <a name="XML_ENTITY_NODE">XML_ENTITY_NODE</a> = 6
+ <a name="XML_PI_NODE">XML_PI_NODE</a> = 7
+ <a name="XML_COMMENT_NODE">XML_COMMENT_NODE</a> = 8
+ <a name="XML_DOCUMENT_NODE">XML_DOCUMENT_NODE</a> = 9
+ <a name="XML_DOCUMENT_TYPE_NODE">XML_DOCUMENT_TYPE_NODE</a> = 10
+ <a name="XML_DOCUMENT_FRAG_NODE">XML_DOCUMENT_FRAG_NODE</a> = 11
+ <a name="XML_NOTATION_NODE">XML_NOTATION_NODE</a> = 12
+ <a name="XML_HTML_DOCUMENT_NODE">XML_HTML_DOCUMENT_NODE</a> = 13
+ <a name="XML_DTD_NODE">XML_DTD_NODE</a> = 14
+ <a name="XML_ELEMENT_DECL">XML_ELEMENT_DECL</a> = 15
+ <a name="XML_ATTRIBUTE_DECL">XML_ATTRIBUTE_DECL</a> = 16
+ <a name="XML_ENTITY_DECL">XML_ENTITY_DECL</a> = 17
+ <a name="XML_NAMESPACE_DECL">XML_NAMESPACE_DECL</a> = 18
+ <a name="XML_XINCLUDE_START">XML_XINCLUDE_START</a> = 19
+ <a name="XML_XINCLUDE_END">XML_XINCLUDE_END</a> = 20
+ <a name="XML_DOCB_DOCUMENT_NODE">XML_DOCB_DOCUMENT_NODE</a> = 21
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElementTypeVal">Enum </a>xmlElementTypeVal</h3><pre class="programlisting">enum <a href="#xmlElementTypeVal">xmlElementTypeVal</a> {
+ <a name="XML_ELEMENT_TYPE_UNDEFINED">XML_ELEMENT_TYPE_UNDEFINED</a> = 0
+ <a name="XML_ELEMENT_TYPE_EMPTY">XML_ELEMENT_TYPE_EMPTY</a> = 1
+ <a name="XML_ELEMENT_TYPE_ANY">XML_ELEMENT_TYPE_ANY</a> = 2
+ <a name="XML_ELEMENT_TYPE_MIXED">XML_ELEMENT_TYPE_MIXED</a> = 3
+ <a name="XML_ELEMENT_TYPE_ELEMENT">XML_ELEMENT_TYPE_ELEMENT</a> = 4
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlEntity">Structure </a>xmlEntity</h3><pre class="programlisting">struct _xmlEntity {
+ void * _private : application data
+ <a href="libxml2-tree.html#xmlElementType">xmlElementType</a> type : XML_ENTITY_DECL, must be second !
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : Entity name
+ struct _xmlNode * children : First child link
+ struct _xmlNode * last : Last child link
+ struct _xmlDtd * parent : -&gt; DTD
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document
+ <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * orig : content without ref substitution
+ <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content : content or ndata if unparsed
+ int length : the content length
+ <a href="libxml2-entities.html#xmlEntityType">xmlEntityType</a> etype : The entity type
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID : External identifier for PUBLIC
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID : URI for a SYSTEM or PUBLIC Entity
+ struct _xmlEntity * nexte : unused
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI : the full URI as computed
+ int owner : does the entity own the childrens
+ int checked : was the entity content checked this is also used to count entities *
+} xmlEntity;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlEntityPtr">Typedef </a>xmlEntityPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEntity">xmlEntity</a> * xmlEntityPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlEnumeration">Structure </a>xmlEnumeration</h3><pre class="programlisting">struct _xmlEnumeration {
+ struct _xmlEnumeration * next : next one
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : Enumeration name
+} xmlEnumeration;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlEnumerationPtr">Typedef </a>xmlEnumerationPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEnumeration">xmlEnumeration</a> * xmlEnumerationPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlID">Structure </a>xmlID</h3><pre class="programlisting">struct _xmlID {
+ struct _xmlID * next : next ID
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value : The ID name
+ <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr : The <a href="libxml2-SAX.html#attribute">attribute</a> holding it
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : The <a href="libxml2-SAX.html#attribute">attribute</a> if attr is not available
+ int lineno : The line number if attr is not available
+ struct _xmlDoc * doc : The document holding the ID
+} xmlID;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIDPtr">Typedef </a>xmlIDPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlID">xmlID</a> * xmlIDPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNode">Structure </a>xmlNode</h3><pre class="programlisting">struct _xmlNode {
+ void * _private : application data
+ <a href="libxml2-tree.html#xmlElementType">xmlElementType</a> type : type number, must be second !
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : the name of the node, or the entity
+ struct _xmlNode * children : parent-&gt;childs link
+ struct _xmlNode * last : last child link
+ struct _xmlNode * parent : child-&gt;parent link
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document End of common part
+ <a href="libxml2-tree.html#xmlNs">xmlNs</a> * ns : pointer to the associated namespace
+ <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content : the content
+ struct _xmlAttr * properties : properties list
+ <a href="libxml2-tree.html#xmlNs">xmlNs</a> * nsDef : namespace definitions on this node
+ void * psvi : for type/PSVI informations
+ unsigned short line : line number
+ unsigned short extra : extra data for XPath/XSLT
+} xmlNode;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodePtr">Typedef </a>xmlNodePtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNode">xmlNode</a> * xmlNodePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNotation">Structure </a>xmlNotation</h3><pre class="programlisting">struct _xmlNotation {
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : Notation name
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * PublicID : Public identifier, if any
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID : System identifier, if any
+} xmlNotation;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNotationPtr">Typedef </a>xmlNotationPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNotation">xmlNotation</a> * xmlNotationPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNs">Structure </a>xmlNs</h3><pre class="programlisting">struct _xmlNs {
+ struct _xmlNs * next : next Ns link for this node
+ <a href="libxml2-tree.html#xmlNsType">xmlNsType</a> type : global or local
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href : URL for the namespace
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix : prefix for the namespace
+ void * _private : application data
+ struct _xmlDoc * context : normally an <a href="libxml2-tree.html#xmlDoc">xmlDoc</a>
+} xmlNs;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNsPtr">Typedef </a>xmlNsPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNs">xmlNs</a> * xmlNsPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNsType">Typedef </a>xmlNsType</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementType">xmlElementType</a> xmlNsType;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBuffer">Structure </a>xmlOutputBuffer</h3><pre class="programlisting">struct _xmlOutputBuffer {
+ void * context
+ <a href="libxml2-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> writecallback
+ <a href="libxml2-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> closecallback
+ <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder : I18N conversions to UTF-8
+ <a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buffer : Local buffer encoded in UTF-8 or ISOLatin
+ <a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> conv : if encoder != NULL buffer for output
+ int written : total number of byte written
+ int error
+} xmlOutputBuffer;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferPtr">Typedef </a>xmlOutputBufferPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlOutputBuffer">xmlOutputBuffer</a> * xmlOutputBufferPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserCtxt">Structure </a>xmlParserCtxt</h3><pre class="programlisting">struct _xmlParserCtxt {
+ struct _xmlSAXHandler * sax : The SAX handler
+ void * userData : For SAX interface only, used by DOM build
+ <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> myDoc : the document being built
+ int wellFormed : is the document well formed
+ int replaceEntities : shall we replace entities ?
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * version : the XML version string
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * encoding : the declared encoding, if any
+ int standalone : standalone document
+ int html : an HTML(1)/Docbook(2) document * 3 is HTML after &lt;head&gt; * 10 is HTML
+ <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input : Current input stream
+ int inputNr : Number of current input streams
+ int inputMax : Max number of input streams
+ <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> * inputTab : stack of inputs Node analysis stack only used for DOM building
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node : Current parsed Node
+ int nodeNr : Depth of the parsing stack
+ int nodeMax : Max depth of the parsing stack
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * nodeTab : array of nodes
+ int record_info : Whether node info should be kept
+ <a href="libxml2-parser.html#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a> node_seq : info about each node parsed
+ int errNo : error code
+ int hasExternalSubset : <a href="libxml2-SAX.html#reference">reference</a> and external subset
+ int hasPErefs : the internal subset has PE refs
+ int external : are we parsing an external entity
+ int valid : is the document valid
+ int validate : shall we try to validate ?
+ <a href="libxml2-valid.html#xmlValidCtxt">xmlValidCtxt</a> vctxt : The validity context
+ <a href="libxml2-parser.html#xmlParserInputState">xmlParserInputState</a> instate : current type of input
+ int token : next char look-ahead
+ char * directory : the data directory Node name stack
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : Current parsed Node
+ int nameNr : Depth of the parsing stack
+ int nameMax : Max depth of the parsing stack
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * * nameTab : array of nodes
+ long nbChars : number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> processed
+ long checkIndex : used by progressive parsing lookup
+ int keepBlanks : ugly but ...
+ int disableSAX : SAX callbacks are disabled
+ int inSubset : Parsing is in int 1/ext 2 subset
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * intSubName : name of subset
+ <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * extSubURI : URI of external subset
+ <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * extSubSystem : SYSTEM ID of external subset xml:space values
+ int * space : Should the parser preserve spaces
+ int spaceNr : Depth of the parsing stack
+ int spaceMax : Max depth of the parsing stack
+ int * spaceTab : array of space infos
+ int depth : to prevent entity substitution loops
+ <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> entity : used to check entities boundaries
+ int charset : encoding of the in-memory content actually an <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a>
+ int nodelen : Those two fields are there to
+ int nodemem : Speed up large node parsing
+ int pedantic : signal pedantic warnings
+ void * _private : For user data, libxml won't touch it
+ int loadsubset : should the external subset be loaded
+ int linenumbers : set line number in element content
+ void * catalogs : document's own catalog
+ int recovery : run in recovery mode
+ int progressive : is this a progressive parsing
+ <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionary for the parser
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * * atts : array for the attributes callbacks
+ int maxatts : the size of the array
+ int docdict : * pre-interned strings *
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str_xml
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str_xmlns
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str_xml_ns : * Everything below is used only by the new SAX mode *
+ int sax2 : operating in the new SAX mode
+ int nsNr : the number of inherited namespaces
+ int nsMax : the size of the arrays
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * * nsTab : the array of prefix/namespace name
+ int * attallocs : which <a href="libxml2-SAX.html#attribute">attribute</a> were allocated
+ void * * pushTab : array of data for push
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> attsDefault : defaulted attributes if any
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> attsSpecial : non-CDATA attributes if any
+ int nsWellFormed : is the document XML Namespace okay
+ int options : * Those fields are needed only for streaming parsing so far *
+ int dictNames : Use dictionary names for the tree
+ int freeElemsNr : number of freed element nodes
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> freeElems : List of freed element nodes
+ int freeAttrsNr : number of freed attributes nodes
+ <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> freeAttrs : * the complete error informations for the last error. *
+ <a href="libxml2-xmlerror.html#xmlError">xmlError</a> lastError
+ <a href="libxml2-parser.html#xmlParserMode">xmlParserMode</a> parseMode : the parser mode
+ unsigned long nbentities : number of entities references
+ unsigned long sizeentities : size of parsed entities for use by HTML non-recursive parser
+ <a href="libxml2-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * nodeInfo : Current NodeInfo
+ int nodeInfoNr : Depth of the parsing stack
+ int nodeInfoMax : Max depth of the parsing stack
+ <a href="libxml2-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * nodeInfoTab : array of nodeInfos
+ int input_id : we need to label inputs
+ unsigned long sizeentcopy : volume of entity copy
+} xmlParserCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserCtxtPtr">Typedef </a>xmlParserCtxtPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxt">xmlParserCtxt</a> * xmlParserCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInput">Structure </a>xmlParserInput</h3><pre class="programlisting">struct _xmlParserInput {
+ <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> buf : UTF-8 encoded buffer
+ const char * filename : The file analyzed, if any
+ const char * directory : the directory/base of the file
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base : Base of the array to parse
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur : Current char being parsed
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * end : end of the array to parse
+ int length : length if known
+ int line : Current line
+ int col : * NOTE: consumed is only tested for equality in the parser code, *
+ unsigned long consumed : How many xmlChars already consumed
+ <a href="libxml2-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a> free : function to deallocate the base
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * encoding : the encoding string for entity
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * version : the version string for entity
+ int standalone : Was that entity marked standalone
+ int id : an unique identifier for the entity
+} xmlParserInput;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBuffer">Structure </a>xmlParserInputBuffer</h3><pre class="programlisting">struct _xmlParserInputBuffer {
+ void * context
+ <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> readcallback
+ <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> closecallback
+ <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder : I18N conversions to UTF-8
+ <a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buffer : Local buffer encoded in UTF-8
+ <a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> raw : if encoder != NULL buffer for raw input
+ int compressed : -1=unknown, 0=not compressed, 1=compressed
+ int error
+ unsigned long rawconsumed : amount consumed from raw
+} xmlParserInputBuffer;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferPtr">Typedef </a>xmlParserInputBufferPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputBuffer">xmlParserInputBuffer</a> * xmlParserInputBufferPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputPtr">Typedef </a>xmlParserInputPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInput">xmlParserInput</a> * xmlParserInputPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRef">Structure </a>xmlRef</h3><pre class="programlisting">struct _xmlRef {
+ struct _xmlRef * next : next Ref
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value : The Ref name
+ <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr : The <a href="libxml2-SAX.html#attribute">attribute</a> holding it
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : The <a href="libxml2-SAX.html#attribute">attribute</a> if attr is not available
+ int lineno : The line number if attr is not available
+} xmlRef;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRefPtr">Typedef </a>xmlRefPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlRef">xmlRef</a> * xmlRefPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXHandler">Structure </a>xmlSAXHandler</h3><pre class="programlisting">struct _xmlSAXHandler {
+ <a href="libxml2-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a> internalSubset
+ <a href="libxml2-parser.html#isStandaloneSAXFunc">isStandaloneSAXFunc</a> isStandalone
+ <a href="libxml2-parser.html#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a> hasInternalSubset
+ <a href="libxml2-parser.html#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a> hasExternalSubset
+ <a href="libxml2-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a> resolveEntity
+ <a href="libxml2-parser.html#getEntitySAXFunc">getEntitySAXFunc</a> getEntity
+ <a href="libxml2-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a> entityDecl
+ <a href="libxml2-parser.html#notationDeclSAXFunc">notationDeclSAXFunc</a> notationDecl
+ <a href="libxml2-parser.html#attributeDeclSAXFunc">attributeDeclSAXFunc</a> attributeDecl
+ <a href="libxml2-parser.html#elementDeclSAXFunc">elementDeclSAXFunc</a> elementDecl
+ <a href="libxml2-parser.html#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a> unparsedEntityDecl
+ <a href="libxml2-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a> setDocumentLocator
+ <a href="libxml2-parser.html#startDocumentSAXFunc">startDocumentSAXFunc</a> startDocument
+ <a href="libxml2-parser.html#endDocumentSAXFunc">endDocumentSAXFunc</a> endDocument
+ <a href="libxml2-parser.html#startElementSAXFunc">startElementSAXFunc</a> startElement
+ <a href="libxml2-parser.html#endElementSAXFunc">endElementSAXFunc</a> endElement
+ <a href="libxml2-parser.html#referenceSAXFunc">referenceSAXFunc</a> reference
+ <a href="libxml2-parser.html#charactersSAXFunc">charactersSAXFunc</a> characters
+ <a href="libxml2-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a> ignorableWhitespace
+ <a href="libxml2-parser.html#processingInstructionSAXFunc">processingInstructionSAXFunc</a> processingInstruction
+ <a href="libxml2-parser.html#commentSAXFunc">commentSAXFunc</a> comment
+ <a href="libxml2-parser.html#warningSAXFunc">warningSAXFunc</a> warning
+ <a href="libxml2-parser.html#errorSAXFunc">errorSAXFunc</a> error
+ <a href="libxml2-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a> fatalError : unused error() get all the errors
+ <a href="libxml2-parser.html#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a> getParameterEntity
+ <a href="libxml2-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a> cdataBlock
+ <a href="libxml2-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a> externalSubset
+ unsigned int initialized : The following fields are extensions available only on version 2
+ void * _private
+ <a href="libxml2-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a> startElementNs
+ <a href="libxml2-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a> endElementNs
+ <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror
+} xmlSAXHandler;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXHandlerPtr">Typedef </a>xmlSAXHandlerPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlSAXHandler">xmlSAXHandler</a> * xmlSAXHandlerPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXLocator">Structure </a>xmlSAXLocator</h3><pre class="programlisting">struct _xmlSAXLocator {
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *(*getPublicId) getPublicId
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *(*getSystemId) getSystemId
+ int(*getLineNumber) getLineNumber
+ int(*getColumnNumber) getColumnNumber
+} xmlSAXLocator;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSAXLocatorPtr">Typedef </a>xmlSAXLocatorPtr</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlSAXLocator">xmlSAXLocator</a> * xmlSAXLocatorPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDOMWrapAcquireNsFunction"/>Function type xmlDOMWrapAcquireNsFunction</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> xmlDOMWrapAcquireNsFunction (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * nsName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * nsPrefix)<br/>
+</pre><p>A function called to acquire namespaces (xmlNs) from the wrapper.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a DOM wrapper context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the context node (element or attribute)</td></tr><tr><td><span class="term"><i><tt>nsName</tt></i>:</span></td><td>the requested namespace name</td></tr><tr><td><span class="term"><i><tt>nsPrefix</tt></i>:</span></td><td>the requested namespace prefix</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> or NULL in case of an error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddChild"/>xmlAddChild ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlAddChild (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Add a new node to @parent, at the end of the child (or property) list merging adjacent TEXT nodes (in which case @cur is freed) If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an <a href="libxml2-SAX.html#attribute">attribute</a> with equal name, it is first destroyed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the child node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the child or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddChildList"/>xmlAddChildList ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlAddChildList (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Add a list of node at the end of the child list of the parent merging adjacent TEXT nodes (@cur may be freed)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first node in the list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last child or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddNextSibling"/>xmlAddNextSibling ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlAddNextSibling (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br/>
+</pre><p>Add a new node @elem as the next sibling of @cur If the new node was already inserted in a document it is first unlinked from its existing context. As a result of text merging @elem may be freed. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an <a href="libxml2-SAX.html#attribute">attribute</a> with equal name, it is first destroyed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the child node</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the new node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new node or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddPrevSibling"/>xmlAddPrevSibling ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlAddPrevSibling (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br/>
+</pre><p>Add a new node @elem as the previous sibling of @cur merging adjacent TEXT nodes (@elem may be freed) If the new node was already inserted in a document it is first unlinked from its existing context. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an <a href="libxml2-SAX.html#attribute">attribute</a> with equal name, it is first destroyed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the child node</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the new node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new node or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddSibling"/>xmlAddSibling ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlAddSibling (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br/>
+</pre><p>Add a new element @elem to the list of siblings of @cur merging adjacent TEXT nodes (@elem may be freed) If the new element was already inserted in a document it is first unlinked from its existing context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the child node</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the new node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new element or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAttrSerializeTxtContent"/>xmlAttrSerializeTxtContent ()</h3><pre class="programlisting">void xmlAttrSerializeTxtContent (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * string)<br/>
+</pre><p>Serialize text <a href="libxml2-SAX.html#attribute">attribute</a> values to an xml simple buffer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> node</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the text content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufContent"/>xmlBufContent ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlBufContent (const <a href="libxml2-tree.html#xmlBuf">xmlBuf</a> * buf)<br/>
+</pre><p>Function to extract the content of a buffer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufEnd"/>xmlBufEnd ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlBufEnd (<a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buf)<br/>
+</pre><p>Function to extract the end of the content of a buffer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the end of the internal content or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufGetNodeContent"/>xmlBufGetNodeContent ()</h3><pre class="programlisting">int xmlBufGetNodeContent (<a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur)<br/>
+</pre><p>Read the value of a node @cur, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buf with this value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>a buffer <a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a></td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufNodeDump"/>xmlBufNodeDump ()</h3><pre class="programlisting">size_t xmlBufNodeDump (<a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> int level, <br/> int format)<br/>
+</pre><p>Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if <a href="libxml2-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>level</tt></i>:</span></td><td>the imbrication level for indenting</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>is formatting allowed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written to the buffer, in case of error 0 is returned or @buf stores the error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufShrink"/>xmlBufShrink ()</h3><pre class="programlisting">size_t xmlBufShrink (<a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br/> size_t len)<br/>
+</pre><p>Remove the beginning of an XML buffer. NOTE that this routine behaviour differs from xmlBufferShrink() as it will return 0 on error instead of -1 due to size_t being used as the return type.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to dump</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> to remove</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte removed or 0 in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufUse"/>xmlBufUse ()</h3><pre class="programlisting">size_t xmlBufUse (const <a href="libxml2-tree.html#xmlBufPtr">xmlBufPtr</a> buf)<br/>
+</pre><p>Function to get the length of a buffer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the length of data in the internal content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferAdd"/>xmlBufferAdd ()</h3><pre class="programlisting">int xmlBufferAdd (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int len)<br/>
+</pre><p>Add a string range to an XML buffer. if len == -1, the length of str is recomputed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to dump</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the #xmlChar string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of #xmlChar to add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 successful, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferAddHead"/>xmlBufferAddHead ()</h3><pre class="programlisting">int xmlBufferAddHead (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int len)<br/>
+</pre><p>Add a string range to the beginning of an XML buffer. if len == -1, the length of @str is recomputed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the #xmlChar string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of #xmlChar to add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 successful, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferCCat"/>xmlBufferCCat ()</h3><pre class="programlisting">int xmlBufferCCat (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const char * str)<br/>
+</pre><p>Append a zero terminated C string to an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to dump</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the C char string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 successful, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferCat"/>xmlBufferCat ()</h3><pre class="programlisting">int xmlBufferCat (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>Append a zero terminated string to an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to add to</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the #xmlChar string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 successful, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferContent"/>xmlBufferContent ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlBufferContent (const <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> * buf)<br/>
+</pre><p>Function to extract the content of a buffer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferCreate"/>xmlBufferCreate ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> xmlBufferCreate (void)<br/>
+</pre><p>routine to create an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new structure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferCreateSize"/>xmlBufferCreateSize ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> xmlBufferCreateSize (size_t size)<br/>
+</pre><p>routine to create an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>initial size of buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new structure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferCreateStatic"/>xmlBufferCreateStatic ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> xmlBufferCreateStatic (void * mem, <br/> size_t size)<br/>
+</pre><p>routine to create an XML buffer from an immutable memory area. The area won't be modified nor copied, and is expected to be present until the end of the buffer lifetime.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>the memory area</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new structure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferDetach"/>xmlBufferDetach ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlBufferDetach (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)<br/>
+</pre><p>Remove the string contained in a buffer and gie it back to the caller. The buffer is reset to an empty content. This doesn't work with immutable buffers as they can't be reset.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous string contained by the buffer.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferDump"/>xmlBufferDump ()</h3><pre class="programlisting">int xmlBufferDump (FILE * file, <br/> <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)<br/>
+</pre><p>Dumps an XML buffer to a FILE *.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file output</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to dump</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of #xmlChar written</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferEmpty"/>xmlBufferEmpty ()</h3><pre class="programlisting">void xmlBufferEmpty (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)<br/>
+</pre><p>empty a buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferFree"/>xmlBufferFree ()</h3><pre class="programlisting">void xmlBufferFree (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)<br/>
+</pre><p>Frees an XML buffer. It frees both the content and the structure which encapsulate it.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to free</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferGrow"/>xmlBufferGrow ()</h3><pre class="programlisting">int xmlBufferGrow (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> unsigned int len)<br/>
+</pre><p>Grow the available space of an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the minimum free size to allocate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new available space or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferLength"/>xmlBufferLength ()</h3><pre class="programlisting">int xmlBufferLength (const <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> * buf)<br/>
+</pre><p>Function to get the length of a buffer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the length of data in the internal content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferResize"/>xmlBufferResize ()</h3><pre class="programlisting">int xmlBufferResize (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> unsigned int size)<br/>
+</pre><p>Resize a buffer to accommodate minimum size of @size.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to resize</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the desired size</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of problems, 1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferSetAllocationScheme"/>xmlBufferSetAllocationScheme ()</h3><pre class="programlisting">void xmlBufferSetAllocationScheme (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> scheme)<br/>
+</pre><p>Sets the allocation scheme for this buffer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to tune</td></tr><tr><td><span class="term"><i><tt>scheme</tt></i>:</span></td><td>allocation scheme to use</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferShrink"/>xmlBufferShrink ()</h3><pre class="programlisting">int xmlBufferShrink (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> unsigned int len)<br/>
+</pre><p>Remove the beginning of an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to dump</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> to remove</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of #xmlChar removed, or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferWriteCHAR"/>xmlBufferWriteCHAR ()</h3><pre class="programlisting">void xmlBufferWriteCHAR (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * string)<br/>
+</pre><p>routine which manages and grows an output buffer. This one adds xmlChars at the end of the buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the string to add</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferWriteChar"/>xmlBufferWriteChar ()</h3><pre class="programlisting">void xmlBufferWriteChar (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const char * string)<br/>
+</pre><p>routine which manage and grows an output buffer. This one add C chars at the end of the array.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the string to add</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBufferWriteQuotedString"/>xmlBufferWriteQuotedString ()</h3><pre class="programlisting">void xmlBufferWriteQuotedString (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * string)<br/>
+</pre><p>routine which manage and grows an output buffer. This one writes a quoted or double quoted #xmlChar string, checking first if it holds quote or double-quotes internally</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the string to add</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBuildQName"/>xmlBuildQName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlBuildQName (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ncname, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * memory, <br/> int len)<br/>
+</pre><p>Builds the QName @prefix:@ncname in @memory if there is enough space and prefix is not NULL nor empty, otherwise allocate a new string. If prefix is NULL or empty it returns ncname.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ncname</tt></i>:</span></td><td>the Name</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>preallocated memory</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>preallocated memory length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new string which must be freed by the caller if different from @memory and @ncname or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlChildElementCount"/>xmlChildElementCount ()</h3><pre class="programlisting">unsigned long xmlChildElementCount (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent)<br/>
+</pre><p>Finds the current number of child nodes of that element which are element nodes. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back <a href="libxml2-SAX.html#reference">reference</a> from entities content to entities references.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the count of element child or 0 if not available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyDoc"/>xmlCopyDoc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCopyDoc (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> int recursive)<br/>
+</pre><p>Do a copy of the document info. If recursive, the content tree will be copied too as well as DTD, namespaces and entities.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>recursive</tt></i>:</span></td><td>if not zero do a recursive copy.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlDocPtr, or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyDtd"/>xmlCopyDtd ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlCopyDtd (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)<br/>
+</pre><p>Do a copy of the dtd.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>the dtd</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlDtdPtr, or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyNamespace"/>xmlCopyNamespace ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> xmlCopyNamespace (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> cur)<br/>
+</pre><p>Do a copy of the namespace.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNsPtr, or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyNamespaceList"/>xmlCopyNamespaceList ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> xmlCopyNamespaceList (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> cur)<br/>
+</pre><p>Do a copy of an namespace list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNsPtr, or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyNode"/>xmlCopyNode ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlCopyNode (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int extended)<br/>
+</pre><p>Do a copy of the node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>extended</tt></i>:</span></td><td>if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyNodeList"/>xmlCopyNodeList ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlCopyNodeList (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Do a recursive copy of the node list. Use xmlDocCopyNodeList() if possible to ensure string interning.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the first node in the list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyProp"/>xmlCopyProp ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlCopyProp (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br/>
+</pre><p>Do a copy of the attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the element where the <a href="libxml2-SAX.html#attribute">attribute</a> will be grafted</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlAttrPtr, or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyPropList"/>xmlCopyPropList ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlCopyPropList (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br/>
+</pre><p>Do a copy of an <a href="libxml2-SAX.html#attribute">attribute</a> list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the element where the attributes will be grafted</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlAttrPtr, or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreateIntSubset"/>xmlCreateIntSubset ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlCreateIntSubset (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Create the internal subset of a document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document pointer</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the DTD name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external (PUBLIC) ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the system ID</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new DTD structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDOMWrapAdoptNode"/>xmlDOMWrapAdoptNode ()</h3><pre class="programlisting">int xmlDOMWrapAdoptNode (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> sourceDoc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> destDoc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> destParent, <br/> int options)<br/>
+</pre><p>References of out-of scope ns-decls are remapped to point to @destDoc: 1) If @destParent is given, then nsDef entries on element-nodes are used 2) If *no* @destParent is given, then @destDoc-&gt;oldNs entries are used This is the case when you have an unlinked node and just want to move it to the context of If @destParent is given, it ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in <a href="libxml2-SAX.html#attribute">attribute</a> values or element content. NOTE: This function was not intensively tested.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the optional context for custom processing</td></tr><tr><td><span class="term"><i><tt>sourceDoc</tt></i>:</span></td><td>the optional sourceDoc</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to start with</td></tr><tr><td><span class="term"><i><tt>destDoc</tt></i>:</span></td><td>the destination doc</td></tr><tr><td><span class="term"><i><tt>destParent</tt></i>:</span></td><td>the optional new parent of @node in @destDoc</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>option flags</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the operation succeeded, 1 if a node of unsupported type was given, 2 if a node of not yet supported type was given and -1 on API/internal errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDOMWrapCloneNode"/>xmlDOMWrapCloneNode ()</h3><pre class="programlisting">int xmlDOMWrapCloneNode (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> sourceDoc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * resNode, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> destDoc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> destParent, <br/> int deep, <br/> int options)<br/>
+</pre><p>References of out-of scope ns-decls are remapped to point to @destDoc: 1) If @destParent is given, then nsDef entries on element-nodes are used 2) If *no* @destParent is given, then @destDoc-&gt;oldNs entries are used. This is the case when you don't know already where the cloned branch will be added to. If @destParent is given, it ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in <a href="libxml2-SAX.html#attribute">attribute</a> values or element content. TODO: 1) What to do with XInclude? Currently this returns an error for XInclude.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the optional context for custom processing</td></tr><tr><td><span class="term"><i><tt>sourceDoc</tt></i>:</span></td><td>the optional sourceDoc</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to start with</td></tr><tr><td><span class="term"><i><tt>resNode</tt></i>:</span></td><td>the clone of the given @node</td></tr><tr><td><span class="term"><i><tt>destDoc</tt></i>:</span></td><td>the destination doc</td></tr><tr><td><span class="term"><i><tt>destParent</tt></i>:</span></td><td>the optional new parent of @node in @destDoc</td></tr><tr><td><span class="term"><i><tt>deep</tt></i>:</span></td><td>descend into child if set</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>option flags</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the operation succeeded, 1 if a node of unsupported (or not yet supported) type was given, -1 on API/internal errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDOMWrapFreeCtxt"/>xmlDOMWrapFreeCtxt ()</h3><pre class="programlisting">void xmlDOMWrapFreeCtxt (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt)<br/>
+</pre><p>Frees the DOM-wrapper context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the DOM-wrapper context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDOMWrapNewCtxt"/>xmlDOMWrapNewCtxt ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> xmlDOMWrapNewCtxt (void)<br/>
+</pre><p>Allocates and initializes a new DOM-wrapper context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> or NULL in case of an internal error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDOMWrapReconcileNamespaces"/>xmlDOMWrapReconcileNamespaces ()</h3><pre class="programlisting">int xmlDOMWrapReconcileNamespaces (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> int options)<br/>
+</pre><p>Ensures that ns-references point to ns-decls hold on element-nodes. Ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in <a href="libxml2-SAX.html#attribute">attribute</a> values or element content. NOTE: This function was not intensively tested.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>DOM wrapper context, unused at the moment</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element-node</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>option flags</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if succeeded, -1 otherwise and on API/internal errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDOMWrapRemoveNode"/>xmlDOMWrapRemoveNode ()</h3><pre class="programlisting">int xmlDOMWrapRemoveNode (<a href="libxml2-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int options)<br/>
+</pre><p>Unlinks the given node from its owner. This will substitute ns-references to node-&gt;nsDef for ns-references to doc-&gt;oldNs, thus ensuring the removed branch to be autark wrt ns-references. NOTE: This function was not intensively tested.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a DOM wrapper context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the doc</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to be removed.</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>set of options, unused at the moment</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success, 1 if the node is not supported, -1 on API and internal errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocCopyNode"/>xmlDocCopyNode ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlDocCopyNode (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> int extended)<br/>
+</pre><p>Do a copy of the node to a given document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>extended</tt></i>:</span></td><td>if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocCopyNodeList"/>xmlDocCopyNodeList ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlDocCopyNodeList (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Do a recursive copy of the node list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the target document</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the first node in the list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocDump"/>xmlDocDump ()</h3><pre class="programlisting">int xmlDocDump (FILE * f, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br/>
+</pre><p>Dump an XML document to an open FILE.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the FILE*</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocDumpFormatMemory"/>xmlDocDumpFormatMemory ()</h3><pre class="programlisting">void xmlDocDumpFormatMemory (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br/> int * size, <br/> int format)<br/>
+</pre><p>Dump an XML document in memory and return the #xmlChar * and it's size. It's up to the caller to free the memory with xmlFree(). Note that @format = 1 provide node indenting only if <a href="libxml2-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>OUT: the memory pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>OUT: the memory length</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocDumpFormatMemoryEnc"/>xmlDocDumpFormatMemoryEnc ()</h3><pre class="programlisting">void xmlDocDumpFormatMemoryEnc (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> out_doc, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr, <br/> int * doc_txt_len, <br/> const char * txt_encoding, <br/> int format)<br/>
+</pre><p>Dump the current DOM tree into memory using the character encoding specified by the caller. Note it is up to the caller of this function to free the allocated memory with xmlFree(). Note that @format = 1 provide node indenting only if <a href="libxml2-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out_doc</tt></i>:</span></td><td>Document to generate XML text from</td></tr><tr><td><span class="term"><i><tt>doc_txt_ptr</tt></i>:</span></td><td>Memory pointer for allocated XML text</td></tr><tr><td><span class="term"><i><tt>doc_txt_len</tt></i>:</span></td><td>Length of the generated XML text</td></tr><tr><td><span class="term"><i><tt>txt_encoding</tt></i>:</span></td><td>Character encoding to use when generating XML text</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocDumpMemory"/>xmlDocDumpMemory ()</h3><pre class="programlisting">void xmlDocDumpMemory (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br/> int * size)<br/>
+</pre><p>Dump an XML document in memory and return the #xmlChar * and it's size in bytes. It's up to the caller to free the memory with xmlFree(). The resulting byte array is zero terminated, though the last 0 is not included in the returned size.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>OUT: the memory pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>OUT: the memory length</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocDumpMemoryEnc"/>xmlDocDumpMemoryEnc ()</h3><pre class="programlisting">void xmlDocDumpMemoryEnc (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> out_doc, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr, <br/> int * doc_txt_len, <br/> const char * txt_encoding)<br/>
+</pre><p>Dump the current DOM tree into memory using the character encoding specified by the caller. Note it is up to the caller of this function to free the allocated memory with xmlFree().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out_doc</tt></i>:</span></td><td>Document to generate XML text from</td></tr><tr><td><span class="term"><i><tt>doc_txt_ptr</tt></i>:</span></td><td>Memory pointer for allocated XML text</td></tr><tr><td><span class="term"><i><tt>doc_txt_len</tt></i>:</span></td><td>Length of the generated XML text</td></tr><tr><td><span class="term"><i><tt>txt_encoding</tt></i>:</span></td><td>Character encoding to use when generating XML text</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocFormatDump"/>xmlDocFormatDump ()</h3><pre class="programlisting">int xmlDocFormatDump (FILE * f, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> int format)<br/>
+</pre><p>Dump an XML document to an open FILE.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the FILE*</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure. Note that @format = 1 provide node indenting only if <a href="libxml2-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocGetRootElement"/>xmlDocGetRootElement ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlDocGetRootElement (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc)<br/>
+</pre><p>Get the root element of the document (doc-&gt;children is a list containing possibly comments, PIs, etc ...).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the #xmlNodePtr for the root or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDocSetRootElement"/>xmlDocSetRootElement ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlDocSetRootElement (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> root)<br/>
+</pre><p>Set the root element of the document (doc-&gt;children is a list containing possibly comments, PIs, etc ...).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>root</tt></i>:</span></td><td>the new document root element, if root is NULL no action is taken, to remove a node from a document use xmlUnlinkNode(root) instead.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the old root element if any was found, NULL if root was NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElemDump"/>xmlElemDump ()</h3><pre class="programlisting">void xmlElemDump (FILE * f, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Dump an XML/HTML node, recursive behaviour, children are printed too.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFirstElementChild"/>xmlFirstElementChild ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlFirstElementChild (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent)<br/>
+</pre><p>Finds the first child node of that element which is a Element node Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back <a href="libxml2-SAX.html#reference">reference</a> from entities content to entities references.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the first element child or NULL if not available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeDoc"/>xmlFreeDoc ()</h3><pre class="programlisting">void xmlFreeDoc (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br/>
+</pre><p>Free up all the structures used by a document, tree included.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>pointer to the document</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeDtd"/>xmlFreeDtd ()</h3><pre class="programlisting">void xmlFreeDtd (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> cur)<br/>
+</pre><p>Free a DTD structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the DTD structure to free up</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeNode"/>xmlFreeNode ()</h3><pre class="programlisting">void xmlFreeNode (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Free a node, this is a recursive behaviour, all the children are freed too. This doesn't unlink the child from the list, use xmlUnlinkNode() first.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeNodeList"/>xmlFreeNodeList ()</h3><pre class="programlisting">void xmlFreeNodeList (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Free a node and all its siblings, this is a recursive behaviour, all the children are freed too.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first node in the list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeNs"/>xmlFreeNs ()</h3><pre class="programlisting">void xmlFreeNs (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> cur)<br/>
+</pre><p>Free up the structures associated to a namespace</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the namespace pointer</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeNsList"/>xmlFreeNsList ()</h3><pre class="programlisting">void xmlFreeNsList (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> cur)<br/>
+</pre><p>Free up all the structures associated to the chained namespaces.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first namespace pointer</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeProp"/>xmlFreeProp ()</h3><pre class="programlisting">void xmlFreeProp (<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br/>
+</pre><p>Free one attribute, all the content is freed too</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>an <a href="libxml2-SAX.html#attribute">attribute</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreePropList"/>xmlFreePropList ()</h3><pre class="programlisting">void xmlFreePropList (<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br/>
+</pre><p>Free a property and all its siblings, all the children are freed too.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first property in the list</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetBufferAllocationScheme"/>xmlGetBufferAllocationScheme ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> xmlGetBufferAllocationScheme (void)<br/>
+</pre><p>Types are <a href="libxml2-tree.html#XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a> - use exact sizes, keeps memory usage down <a href="libxml2-tree.html#XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a> - double buffer when extra needed, improves performance <a href="libxml2-tree.html#XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a> - use exact sizes on small strings to keep memory usage tight in normal usage, and doubleit on large strings to avoid pathological performance.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current allocation scheme</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetCompressMode"/>xmlGetCompressMode ()</h3><pre class="programlisting">int xmlGetCompressMode (void)<br/>
+</pre><p>get the default compression mode used, ZLIB based.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 (uncompressed) to 9 (max compression)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetDocCompressMode"/>xmlGetDocCompressMode ()</h3><pre class="programlisting">int xmlGetDocCompressMode (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc)<br/>
+</pre><p>get the compression ratio for a document, ZLIB based</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 (uncompressed) to 9 (max compression)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetIntSubset"/>xmlGetIntSubset ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlGetIntSubset (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc)<br/>
+</pre><p>Get the internal subset of a document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the DTD structure or NULL if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetLastChild"/>xmlGetLastChild ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlGetLastChild (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * parent)<br/>
+</pre><p>Search the last child of a node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last child or NULL if none.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetLineNo"/>xmlGetLineNo ()</h3><pre class="programlisting">long xmlGetLineNo (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node)<br/>
+</pre><p>Get line number of @node. Try to override the limitation of lines being store in 16 bits ints if <a href="libxml2-parser.html#XML_PARSE_BIG_LINES">XML_PARSE_BIG_LINES</a> parser option was used</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>valid node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the line number if successful, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetNoNsProp"/>xmlGetNoNsProp ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlGetNoNsProp (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Search and get the value of an <a href="libxml2-SAX.html#attribute">attribute</a> associated to a node This does the entity substitution. This function looks in DTD <a href="libxml2-SAX.html#attribute">attribute</a> declaration for #FIXED or default declaration values unless DTD use has been turned off. This function is similar to <a href="libxml2-tree.html#xmlGetProp">xmlGetProp</a> except it will accept only an <a href="libxml2-SAX.html#attribute">attribute</a> in no namespace.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> value or NULL if not found. It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetNodePath"/>xmlGetNodePath ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlGetNodePath (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node)<br/>
+</pre><p>Build a structure based Path for the given node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new path or NULL in case of error. The caller must free the returned string</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetNsList"/>xmlGetNsList ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> * xmlGetNsList (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node)<br/>
+</pre><p>Search all the namespace applying to a given element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an NULL terminated array of all the #xmlNsPtr found that need to be freed by the caller or NULL if no namespace if defined</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetNsProp"/>xmlGetNsProp ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlGetNsProp (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)<br/>
+</pre><p>Search and get the value of an <a href="libxml2-SAX.html#attribute">attribute</a> associated to a node This <a href="libxml2-SAX.html#attribute">attribute</a> has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD <a href="libxml2-SAX.html#attribute">attribute</a> declaration for #FIXED or default declaration values unless DTD use has been turned off.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the URI of the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> value or NULL if not found. It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetProp"/>xmlGetProp ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlGetProp (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Search and get the value of an <a href="libxml2-SAX.html#attribute">attribute</a> associated to a node This does the entity substitution. This function looks in DTD <a href="libxml2-SAX.html#attribute">attribute</a> declaration for #FIXED or default declaration values unless DTD use has been turned off. NOTE: this function acts independently of namespaces associated to the attribute. Use xmlGetNsProp() or xmlGetNoNsProp() for namespace aware processing.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> value or NULL if not found. It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHasNsProp"/>xmlHasNsProp ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlHasNsProp (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)<br/>
+</pre><p>Search for an <a href="libxml2-SAX.html#attribute">attribute</a> associated to a node This <a href="libxml2-SAX.html#attribute">attribute</a> has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD <a href="libxml2-SAX.html#attribute">attribute</a> declaration for #FIXED or default declaration values unless DTD use has been turned off. Note that a namespace of NULL indicates to use the default namespace.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the URI of the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> or the <a href="libxml2-SAX.html#attribute">attribute</a> declaration or NULL if neither was found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHasProp"/>xmlHasProp ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlHasProp (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Search an <a href="libxml2-SAX.html#attribute">attribute</a> associated to a node This function also looks in DTD <a href="libxml2-SAX.html#attribute">attribute</a> declaration for #FIXED or default declaration values unless DTD use has been turned off.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> or the <a href="libxml2-SAX.html#attribute">attribute</a> declaration or NULL if neither was found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsBlankNode"/>xmlIsBlankNode ()</h3><pre class="programlisting">int xmlIsBlankNode (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node)<br/>
+</pre><p>Checks whether this node is an empty or whitespace only (and possibly ignorable) text-node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 yes, 0 no</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsXHTML"/>xmlIsXHTML ()</h3><pre class="programlisting">int xmlIsXHTML (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * systemID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * publicID)<br/>
+</pre><p>Try to find if the document correspond to an XHTML DTD</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>systemID</tt></i>:</span></td><td>the system identifier</td></tr><tr><td><span class="term"><i><tt>publicID</tt></i>:</span></td><td>the public identifier</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if not and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLastElementChild"/>xmlLastElementChild ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlLastElementChild (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent)<br/>
+</pre><p>Finds the last child node of that element which is a Element node Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back <a href="libxml2-SAX.html#reference">reference</a> from entities content to entities references.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last element child or NULL if not available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewCDataBlock"/>xmlNewCDataBlock ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewCDataBlock (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len)<br/>
+</pre><p>Creation of a new node containing a CDATA block.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the CDATA block content content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the block</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewCharRef"/>xmlNewCharRef ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewCharRef (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Creation of a new character <a href="libxml2-SAX.html#reference">reference</a> node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the char ref string, starting with # or "&amp;# ... ;"</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewChild"/>xmlNewChild ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewChild (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (NULL). If @ns is NULL, the newly created element inherits the namespace of @parent. If @content is non NULL, a child list containing the TEXTs and ENTITY_REFs node will be created. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references. XML special chars must be escaped first by using xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should be used.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the child</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the XML content of the child if any.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewComment"/>xmlNewComment ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewComment (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a new node containing a comment.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#comment">comment</a> content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDoc"/>xmlNewDoc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlNewDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * version)<br/>
+</pre><p>Creates a new XML document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>version</tt></i>:</span></td><td><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> string giving the version of XML "1.0"</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new document</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDocComment"/>xmlNewDocComment ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocComment (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a new node containing a <a href="libxml2-SAX.html#comment">comment</a> within a document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#comment">comment</a> content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDocFragment"/>xmlNewDocFragment ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocFragment (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Creation of a new Fragment node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document owning the fragment</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDocNode"/>xmlNewDocNode ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocNode (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a new node element within a document. @ns and @content are optional (NULL). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don't need entities support.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the node name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the XML text content if any</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDocNodeEatName"/>xmlNewDocNodeEatName ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocNodeEatName (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a new node element within a document. @ns and @content are optional (NULL). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don't need entities support.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the node name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the XML text content if any</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDocPI"/>xmlNewDocPI ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocPI (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a processing instruction element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the target document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the processing instruction name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the PI content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDocProp"/>xmlNewDocProp ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlNewDocProp (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Create a new property carried by a document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDocRawNode"/>xmlNewDocRawNode ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocRawNode (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a new node element within a document. @ns and @content are optional (NULL).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the node name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content if any</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDocText"/>xmlNewDocText ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocText (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a new text node within a document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDocTextLen"/>xmlNewDocTextLen ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocTextLen (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len)<br/>
+</pre><p>Creation of a new text node with an extra content length parameter. The text node pertain to a given document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the text len.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDtd"/>xmlNewDtd ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlNewDtd (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Creation of a new DTD for the external subset. To create an internal subset, use xmlCreateIntSubset().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document pointer</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the DTD name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the system ID</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new DTD structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewGlobalNs"/>xmlNewGlobalNs ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> xmlNewGlobalNs (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br/>
+</pre><p>Creation of a Namespace, the old way using PI and without scoping DEPRECATED !!!</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document carrying the namespace</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the URI associated</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix for the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL this functionality had been removed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewNode"/>xmlNewNode ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewNode (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Creation of a new node element. @ns is optional (NULL).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the node name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object. Uses xmlStrdup() to make copy of @name.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewNodeEatName"/>xmlNewNodeEatName ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewNodeEatName (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Creation of a new node element. @ns is optional (NULL).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the node name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object, with pointer @name as new node's name. Use xmlNewNode() if a copy of @name string is is needed as new node's name.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewNs"/>xmlNewNs ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> xmlNewNs (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br/>
+</pre><p>Creation of a new Namespace. This function will refuse to create a namespace with a similar prefix than an existing one present on this node. Note that for a default namespace, @prefix should be NULL. We use href==NULL in the case of an element creation where the namespace was not defined.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the element carrying the namespace</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the URI associated</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix for the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new namespace pointer or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewNsProp"/>xmlNewNsProp ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlNewNsProp (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Create a new property tagged with a namespace and carried by a node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the holding node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewNsPropEatName"/>xmlNewNsPropEatName ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlNewNsPropEatName (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Create a new property tagged with a namespace and carried by a node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the holding node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewPI"/>xmlNewPI ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewPI (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a processing instruction element. Use xmlDocNewPI preferably to get string interning</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the processing instruction name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the PI content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewProp"/>xmlNewProp ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlNewProp (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Create a new property carried by a node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the holding node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewReference"/>xmlNewReference ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewReference (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Creation of a new <a href="libxml2-SAX.html#reference">reference</a> node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#reference">reference</a> name, or the <a href="libxml2-SAX.html#reference">reference</a> string with &amp; and ;</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewText"/>xmlNewText ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewText (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a new text node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewTextChild"/>xmlNewTextChild ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewTextChild (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Creation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (NULL). If @ns is NULL, the newly created element inherits the namespace of @parent. If @content is non NULL, a child TEXT node will be created containing the string @content. NOTE: Use xmlNewChild() if @content will contain entities that need to be preserved. Use this function, xmlNewTextChild(), if you need to ensure that reserved XML chars that might appear in @content, such as the ampersand, greater-than or less-than signs, are automatically replaced by their XML escaped entity representations.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the child</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content of the child if any.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewTextLen"/>xmlNewTextLen ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewTextLen (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len)<br/>
+</pre><p>Creation of a new text node with an extra parameter for the content's length</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the text len.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNextElementSibling"/>xmlNextElementSibling ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNextElementSibling (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Finds the first closest next sibling of the node which is an element node. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back <a href="libxml2-SAX.html#reference">reference</a> from entities content to entities references.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element sibling or NULL if not available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeAddContent"/>xmlNodeAddContent ()</h3><pre class="programlisting">void xmlNodeAddContent (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>extra content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeAddContentLen"/>xmlNodeAddContentLen ()</h3><pre class="programlisting">void xmlNodeAddContentLen (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len)<br/>
+</pre><p>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>extra content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size of @content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeBufGetContent"/>xmlNodeBufGetContent ()</h3><pre class="programlisting">int xmlNodeBufGetContent (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur)<br/>
+</pre><p>Read the value of a node @cur, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buffer with this value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a buffer</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeDump"/>xmlNodeDump ()</h3><pre class="programlisting">int xmlNodeDump (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> int level, <br/> int format)<br/>
+</pre><p>Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if <a href="libxml2-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called. Since this is using <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> structures it is limited to 2GB and somehow deprecated, use xmlNodeDumpOutput() instead.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>level</tt></i>:</span></td><td>the imbrication level for indenting</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>is formatting allowed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written to the buffer or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeDumpOutput"/>xmlNodeDumpOutput ()</h3><pre class="programlisting">void xmlNodeDumpOutput (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> int level, <br/> int format, <br/> const char * encoding)<br/>
+</pre><p>Dump an XML node, recursive behaviour, children are printed too. Note that @format = 1 provide node indenting only if <a href="libxml2-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>level</tt></i>:</span></td><td>the imbrication level for indenting</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>is formatting allowed</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>an optional encoding string</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeGetBase"/>xmlNodeGetBase ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlNodeGetBase (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur)<br/>
+</pre><p>Searches for the BASE URL. The code should work on both XML and HTML document even if base mechanisms are completely different. It returns the base as defined in RFC 2396 sections 5.1.1. Base URI within Document Content and 5.1.2. Base URI from the Encapsulating Entity However it does not return the document base (5.1.3), use doc-&gt;URL in this case</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document the node pertains to</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being checked</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the base URL, or NULL if not found It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeGetContent"/>xmlNodeGetContent ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlNodeGetContent (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur)<br/>
+</pre><p>Read the value of a node, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlChar * or NULL if no content is available. It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeGetLang"/>xmlNodeGetLang ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlNodeGetLang (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur)<br/>
+</pre><p>Searches the language of a node, i.e. the values of the xml:lang <a href="libxml2-SAX.html#attribute">attribute</a> or the one carried by the nearest ancestor.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being checked</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the lang value, or NULL if not found It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeGetSpacePreserve"/>xmlNodeGetSpacePreserve ()</h3><pre class="programlisting">int xmlNodeGetSpacePreserve (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * cur)<br/>
+</pre><p>Searches the space preserving behaviour of a node, i.e. the values of the xml:space <a href="libxml2-SAX.html#attribute">attribute</a> or the one carried by the nearest ancestor.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being checked</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 if xml:space is not inherited, 0 if "default", 1 if "preserve"</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeIsText"/>xmlNodeIsText ()</h3><pre class="programlisting">int xmlNodeIsText (const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * node)<br/>
+</pre><p>Is this node a Text node ?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 yes, 0 no</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeListGetRawString"/>xmlNodeListGetRawString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlNodeListGetRawString (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * list, <br/> int inLine)<br/>
+</pre><p>Builds the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs, contrary to xmlNodeListGetString() this function doesn't do any character encoding handling.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>a Node list</td></tr><tr><td><span class="term"><i><tt>inLine</tt></i>:</span></td><td>should we replace entity contents or show their external form</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the string copy, the caller must free it with xmlFree().</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeListGetString"/>xmlNodeListGetString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlNodeListGetString (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-tree.html#xmlNode">xmlNode</a> * list, <br/> int inLine)<br/>
+</pre><p>Build the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>a Node list</td></tr><tr><td><span class="term"><i><tt>inLine</tt></i>:</span></td><td>should we replace entity contents or show their external form</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the string copy, the caller must free it with xmlFree().</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeSetBase"/>xmlNodeSetBase ()</h3><pre class="programlisting">void xmlNodeSetBase (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * uri)<br/>
+</pre><p>Set (or reset) the base URI of a node, i.e. the value of the xml:base attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>the new base URI</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeSetContent"/>xmlNodeSetContent ()</h3><pre class="programlisting">void xmlNodeSetContent (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the new value of the content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeSetContentLen"/>xmlNodeSetContentLen ()</h3><pre class="programlisting">void xmlNodeSetContentLen (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len)<br/>
+</pre><p>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the new value of the content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size of @content</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeSetLang"/>xmlNodeSetLang ()</h3><pre class="programlisting">void xmlNodeSetLang (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * lang)<br/>
+</pre><p>Set the language of a node, i.e. the values of the xml:lang attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>lang</tt></i>:</span></td><td>the language description</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeSetName"/>xmlNodeSetName ()</h3><pre class="programlisting">void xmlNodeSetName (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Set (or reset) the name of a node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the new tag name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeSetSpacePreserve"/>xmlNodeSetSpacePreserve ()</h3><pre class="programlisting">void xmlNodeSetSpacePreserve (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> int val)<br/>
+</pre><p>Set (or reset) the space preserving behaviour of a node, i.e. the value of the xml:space attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the xml:space value ("0": default, 1: "preserve")</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPreviousElementSibling"/>xmlPreviousElementSibling ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlPreviousElementSibling (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Finds the first closest previous sibling of the node which is an element node. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back <a href="libxml2-SAX.html#reference">reference</a> from entities content to entities references.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous element sibling or NULL if not available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReconciliateNs"/>xmlReconciliateNs ()</h3><pre class="programlisting">int xmlReconciliateNs (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree)<br/>
+</pre><p>This function checks that all the namespaces declared within the given tree are properly declared. This is needed for example after Copy or Cut and then paste operations. The subtree may still hold pointers to namespace declarations outside the subtree or invalid/masked. As much as possible the function try to reuse the existing namespaces found in the new environment. If not possible the new namespaces are redeclared on @tree at the top of the given subtree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>a node defining the subtree to reconciliate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of namespace declarations created or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRemoveProp"/>xmlRemoveProp ()</h3><pre class="programlisting">int xmlRemoveProp (<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br/>
+</pre><p>Unlink and free one attribute, all the content is freed too Note this doesn't work for namespace definition attributes</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>an <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReplaceNode"/>xmlReplaceNode ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlReplaceNode (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> old, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Unlink the old node from its current context, prune the new one at the same place. If @cur was already inserted in a document it is first unlinked from its existing context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>old</tt></i>:</span></td><td>the old node</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the @old node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveFile"/>xmlSaveFile ()</h3><pre class="programlisting">int xmlSaveFile (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br/>
+</pre><p>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is "-" the stdout file is used.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename (or URL)</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveFileEnc"/>xmlSaveFileEnc ()</h3><pre class="programlisting">int xmlSaveFileEnc (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding)<br/>
+</pre><p>Dump an XML document, converting it to the given encoding</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename (or URL)</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the name of an encoding (or NULL)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveFileTo"/>xmlSaveFileTo ()</h3><pre class="programlisting">int xmlSaveFileTo (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding)<br/>
+</pre><p>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output I/O buffer</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding if any assuming the I/O layer handles the transcoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveFormatFile"/>xmlSaveFormatFile ()</h3><pre class="programlisting">int xmlSaveFormatFile (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> int format)<br/>
+</pre><p>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is "-" the stdout file is used. If @format is set then the document will be indented on output. Note that @format = 1 provide node indenting only if <a href="libxml2-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename (or URL)</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveFormatFileEnc"/>xmlSaveFormatFileEnc ()</h3><pre class="programlisting">int xmlSaveFormatFileEnc (const char * filename, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding, <br/> int format)<br/>
+</pre><p>Dump an XML document to a file or an URL.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URL to output</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document being saved</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the name of the encoding to use or NULL.</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces be added.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error. Note that @format = 1 provide node indenting only if <a href="libxml2-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveFormatFileTo"/>xmlSaveFormatFileTo ()</h3><pre class="programlisting">int xmlSaveFormatFileTo (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br/> const char * encoding, <br/> int format)<br/>
+</pre><p>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output I/O buffer</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding if any assuming the I/O layer handles the transcoding</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSearchNs"/>xmlSearchNs ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> xmlSearchNs (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)<br/>
+</pre><p>Search a Ns registered under a given name space for a document. recurse on the parents until it finds the defined namespace or return NULL otherwise. @nameSpace can be NULL, this is a search for the default namespace. We don't allow to cross entities boundaries. If you don't declare the namespace within those you will be in troubles !!! A warning is generated to cover this case.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the namespace prefix</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace pointer or NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSearchNsByHref"/>xmlSearchNsByHref ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> xmlSearchNsByHref (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * href)<br/>
+</pre><p>Search a Ns aliasing a given URI. Recurse on the parents until it finds the defined namespace or return NULL otherwise.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the namespace value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace pointer or NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetBufferAllocationScheme"/>xmlSetBufferAllocationScheme ()</h3><pre class="programlisting">void xmlSetBufferAllocationScheme (<a href="libxml2-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> scheme)<br/>
+</pre><p>Set the buffer allocation method. Types are <a href="libxml2-tree.html#XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a> - use exact sizes, keeps memory usage down <a href="libxml2-tree.html#XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a> - double buffer when extra needed, improves performance</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>scheme</tt></i>:</span></td><td>allocation method to use</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetCompressMode"/>xmlSetCompressMode ()</h3><pre class="programlisting">void xmlSetCompressMode (int mode)<br/>
+</pre><p>set the default compression mode used, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the compression ratio</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetDocCompressMode"/>xmlSetDocCompressMode ()</h3><pre class="programlisting">void xmlSetDocCompressMode (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> int mode)<br/>
+</pre><p>set the compression ratio for a document, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the compression ratio</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetListDoc"/>xmlSetListDoc ()</h3><pre class="programlisting">void xmlSetListDoc (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> list, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>update all nodes in the list to point to the right document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>the first element</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetNs"/>xmlSetNs ()</h3><pre class="programlisting">void xmlSetNs (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns)<br/>
+</pre><p>Associate a namespace to a node, a posteriori.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node in the document</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a namespace pointer</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetNsProp"/>xmlSetNsProp ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlSetNsProp (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Set (or reset) an <a href="libxml2-SAX.html#attribute">attribute</a> carried by a node. The ns structure must be in scope, this is not checked</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace definition</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> pointer.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetProp"/>xmlSetProp ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlSetProp (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Set (or reset) an <a href="libxml2-SAX.html#attribute">attribute</a> carried by a node. If @name has a prefix, then the corresponding namespace-binding will be used, if in scope; it is an error it there's no such ns-binding for the prefix in scope.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name (a QName)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> pointer.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetTreeDoc"/>xmlSetTreeDoc ()</h3><pre class="programlisting">void xmlSetTreeDoc (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>update all nodes under the tree to point to the right document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the top element</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSplitQName2"/>xmlSplitQName2 ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName2 (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** prefix)<br/>
+</pre><p>parse an XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if the name doesn't have a prefix. Otherwise, returns the local part, and prefix is updated to get the Prefix. Both the return value and the prefix must be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSplitQName3"/>xmlSplitQName3 ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName3 (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int * len)<br/>
+</pre><p>parse an XML qualified name string,i</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>an int *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if it is not a Qualified Name, otherwise, update len with the length in byte of the prefix and return a pointer to the start of the name without the prefix</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStringGetNodeList"/>xmlStringGetNodeList ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlStringGetNodeList (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the first child</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStringLenGetNodeList"/>xmlStringLenGetNodeList ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlStringLenGetNodeList (const <a href="libxml2-tree.html#xmlDoc">xmlDoc</a> * doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int len)<br/>
+</pre><p>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the text</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the string value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the first child</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextConcat"/>xmlTextConcat ()</h3><pre class="programlisting">int xmlTextConcat (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len)<br/>
+</pre><p>Concat the given string at the end of the existing node content</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>@content length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextMerge"/>xmlTextMerge ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlTextMerge (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> first, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> second)<br/>
+</pre><p>Merge two text nodes into one</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>first</tt></i>:</span></td><td>the first text node</td></tr><tr><td><span class="term"><i><tt>second</tt></i>:</span></td><td>the second text node being merged</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the first text node augmented</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUnlinkNode"/>xmlUnlinkNode ()</h3><pre class="programlisting">void xmlUnlinkNode (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Unlink a node from it's current context, the node is not freed If one need to free the node, use xmlFreeNode() routine after the unlink to discard it. Note that namespace nodes can't be unlinked as they do not have pointer to their parent.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUnsetNsProp"/>xmlUnsetNsProp ()</h3><pre class="programlisting">int xmlUnsetNsProp (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Remove an <a href="libxml2-SAX.html#attribute">attribute</a> carried by a node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace definition</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUnsetProp"/>xmlUnsetProp ()</h3><pre class="programlisting">int xmlUnsetProp (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Remove an <a href="libxml2-SAX.html#attribute">attribute</a> carried by a node. This handles only attributes in no namespace.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateNCName"/>xmlValidateNCName ()</h3><pre class="programlisting">int xmlValidateNCName (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int space)<br/>
+</pre><p>Check that a value conforms to the lexical space of NCName</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>space</tt></i>:</span></td><td>allow spaces in front and end of the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateNMToken"/>xmlValidateNMToken ()</h3><pre class="programlisting">int xmlValidateNMToken (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int space)<br/>
+</pre><p>Check that a value conforms to the lexical space of NMToken</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>space</tt></i>:</span></td><td>allow spaces in front and end of the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateName"/>xmlValidateName ()</h3><pre class="programlisting">int xmlValidateName (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int space)<br/>
+</pre><p>Check that a value conforms to the lexical space of Name</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>space</tt></i>:</span></td><td>allow spaces in front and end of the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateQName"/>xmlValidateQName ()</h3><pre class="programlisting">int xmlValidateQName (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> int space)<br/>
+</pre><p>Check that a value conforms to the lexical space of QName</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>space</tt></i>:</span></td><td>allow spaces in front and end of the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-uri.html b/libxml2-2.9.10/doc/devhelp/libxml2-uri.html
new file mode 100644
index 0000000..d049ba9
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-uri.html
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>uri: library of generic URI related routines</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-tree.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-valid.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">uri</span>
+ </h2>
+ <p>uri - library of generic URI related routines</p>
+ <p>library of generic URI related routines Implements RFC 2396 </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef struct _xmlURI <a href="#xmlURI">xmlURI</a>;
+typedef <a href="libxml2-uri.html#xmlURI">xmlURI</a> * <a href="#xmlURIPtr">xmlURIPtr</a>;
+int <a href="#xmlNormalizeURIPath">xmlNormalizeURIPath</a> (char * path);
+void <a href="#xmlPrintURI">xmlPrintURI</a> (FILE * stream, <br/> <a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri);
+<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> <a href="#xmlParseURIRaw">xmlParseURIRaw</a> (const char * str, <br/> int raw);
+char * <a href="#xmlURIUnescapeString">xmlURIUnescapeString</a> (const char * str, <br/> int len, <br/> char * target);
+<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> <a href="#xmlParseURI">xmlParseURI</a> (const char * str);
+<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> <a href="#xmlCreateURI">xmlCreateURI</a> (void);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlURIEscapeStr">xmlURIEscapeStr</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * list);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlPathToURI">xmlPathToURI</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * path);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCanonicPath">xmlCanonicPath</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * path);
+void <a href="#xmlFreeURI">xmlFreeURI</a> (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri);
+int <a href="#xmlParseURIReference">xmlParseURIReference</a> (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri, <br/> const char * str);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBuildRelativeURI">xmlBuildRelativeURI</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSaveUri">xmlSaveUri</a> (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlURIEscape">xmlURIEscape</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBuildURI">xmlBuildURI</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlURI">Structure </a>xmlURI</h3><pre class="programlisting">struct _xmlURI {
+ char * scheme : the URI scheme
+ char * opaque : opaque part
+ char * authority : the authority part
+ char * server : the server part
+ char * user : the user part
+ int port : the port number
+ char * path : the path string
+ char * query : the query string (deprecated - use with caution)
+ char * fragment : the fragment identifier
+ int cleanup : parsing potentially unclean URI
+ char * query_raw : the query string (as it appears in the URI)
+} xmlURI;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlURIPtr">Typedef </a>xmlURIPtr</h3><pre class="programlisting"><a href="libxml2-uri.html#xmlURI">xmlURI</a> * xmlURIPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBuildRelativeURI"/>xmlBuildRelativeURI ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlBuildRelativeURI (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base)<br/>
+</pre><p>Expresses the URI of the <a href="libxml2-SAX.html#reference">reference</a> in terms relative to the base. Some examples of this operation include: base = "http://site1.com/docs/book1.html" URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif pic1.gif http://site2.com/docs/pic1.gif http://site2.com/docs/pic1.gif base = "docs/book1.html" URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif http://site1.com/docs/pic1.gif Note: if the URI <a href="libxml2-SAX.html#reference">reference</a> is really weird or complicated, it may be worthwhile to first convert it into a "nice" one by calling <a href="libxml2-uri.html#xmlBuildURI">xmlBuildURI</a> (using 'base') before calling this routine, since this routine (for reasonable efficiency) assumes URI has already been through some validation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI <a href="libxml2-SAX.html#reference">reference</a> under consideration</td></tr><tr><td><span class="term"><i><tt>base</tt></i>:</span></td><td>the base value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new URI string (to be freed by the caller) or NULL in case error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlBuildURI"/>xmlBuildURI ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlBuildURI (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base)<br/>
+</pre><p>Computes he final URI of the <a href="libxml2-SAX.html#reference">reference</a> done by checking that the given URI is valid, and building the final URI using the base URI. This is processed according to section 5.2 of the RFC 2396 5.2. Resolving Relative References to Absolute Form</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI instance found in the document</td></tr><tr><td><span class="term"><i><tt>base</tt></i>:</span></td><td>the base value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new URI string (to be freed by the caller) or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCanonicPath"/>xmlCanonicPath ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCanonicPath (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * path)<br/>
+</pre><p>Constructs a canonic path from the specified path.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>the resource locator in a filesystem notation</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new canonic path, or a duplicate of the path parameter if the construction fails. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreateURI"/>xmlCreateURI ()</h3><pre class="programlisting"><a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> xmlCreateURI (void)<br/>
+</pre><p>Simply creates an empty <a href="libxml2-uri.html#xmlURI">xmlURI</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new structure or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeURI"/>xmlFreeURI ()</h3><pre class="programlisting">void xmlFreeURI (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri)<br/>
+</pre><p>Free up the <a href="libxml2-uri.html#xmlURI">xmlURI</a> struct</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>pointer to an <a href="libxml2-uri.html#xmlURI">xmlURI</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNormalizeURIPath"/>xmlNormalizeURIPath ()</h3><pre class="programlisting">int xmlNormalizeURIPath (char * path)<br/>
+</pre><p>Applies the 5 normalization steps to a path string--that is, RFC 2396 Section 5.2, steps 6.c through 6.g. Normalization occurs directly on the string, no new allocation is done</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>pointer to the path string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or an error code</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseURI"/>xmlParseURI ()</h3><pre class="programlisting"><a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> xmlParseURI (const char * str)<br/>
+</pre><p>Parse an URI based on RFC 3986 URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the URI string to analyze</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly built <a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseURIRaw"/>xmlParseURIRaw ()</h3><pre class="programlisting"><a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> xmlParseURIRaw (const char * str, <br/> int raw)<br/>
+</pre><p>Parse an URI but allows to keep intact the original fragments. URI-reference = URI / relative-ref</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the URI string to analyze</td></tr><tr><td><span class="term"><i><tt>raw</tt></i>:</span></td><td>if 1 unescaping of URI pieces are disabled</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly built <a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParseURIReference"/>xmlParseURIReference ()</h3><pre class="programlisting">int xmlParseURIReference (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri, <br/> const char * str)<br/>
+</pre><p>Parse an URI <a href="libxml2-SAX.html#reference">reference</a> string based on RFC 3986 and fills in the appropriate fields of the @uri structure URI-reference = URI / relative-ref</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>pointer to an URI structure</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string to analyze</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or the error code</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPathToURI"/>xmlPathToURI ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlPathToURI (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * path)<br/>
+</pre><p>Constructs an URI expressing the existing path</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>the resource locator in a filesystem notation</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new URI, or a duplicate of the path parameter if the construction fails. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPrintURI"/>xmlPrintURI ()</h3><pre class="programlisting">void xmlPrintURI (FILE * stream, <br/> <a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri)<br/>
+</pre><p>Prints the URI in the stream @stream.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>a FILE* for the output</td></tr><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>pointer to an <a href="libxml2-uri.html#xmlURI">xmlURI</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveUri"/>xmlSaveUri ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSaveUri (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri)<br/>
+</pre><p>Save the URI as an escaped string</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>pointer to an <a href="libxml2-uri.html#xmlURI">xmlURI</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new string (to be deallocated by caller)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlURIEscape"/>xmlURIEscape ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlURIEscape (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>Escaping routine, does not do validity checks ! It will try to escape the chars needing this, but this is heuristic based it's impossible to be sure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string of the URI to escape</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an copy of the string, but escaped 25 May 2001 Uses <a href="libxml2-uri.html#xmlParseURI">xmlParseURI</a> and <a href="libxml2-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a> to try to escape correctly according to RFC2396. - Carl Douglas</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlURIEscapeStr"/>xmlURIEscapeStr ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlURIEscapeStr (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * list)<br/>
+</pre><p>This routine escapes a string to hex, ignoring reserved <a href="libxml2-SAX.html#characters">characters</a> (a-z) and the <a href="libxml2-SAX.html#characters">characters</a> in the exception list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>string to escape</td></tr><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>exception list string of chars not to escape</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new escaped string or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlURIUnescapeString"/>xmlURIUnescapeString ()</h3><pre class="programlisting">char * xmlURIUnescapeString (const char * str, <br/> int len, <br/> char * target)<br/>
+</pre><p>Unescaping routine, but does not check that the string is an URI. The output is a direct unsigned char translation of %XX values (no encoding) Note that the length of the result can only be smaller or same size as the input string.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string to unescape</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length in bytes to unescape (or &lt;= 0 to indicate full string)</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>optional destination buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the string, but unescaped, will return NULL only in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-valid.html b/libxml2-2.9.10/doc/devhelp/libxml2-valid.html
new file mode 100644
index 0000000..fcb68e7
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-valid.html
@@ -0,0 +1,528 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>valid: The DTD validation</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-uri.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xinclude.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">valid</span>
+ </h2>
+ <p>valid - The DTD validation</p>
+ <p>API for the DTD handling and the validity checking </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a>;
+#define <a href="#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a>;
+typedef struct _xmlHashTable <a href="#xmlElementTable">xmlElementTable</a>;
+typedef <a href="libxml2-valid.html#xmlValidState">xmlValidState</a> * <a href="#xmlValidStatePtr">xmlValidStatePtr</a>;
+typedef <a href="libxml2-valid.html#xmlIDTable">xmlIDTable</a> * <a href="#xmlIDTablePtr">xmlIDTablePtr</a>;
+typedef <a href="libxml2-valid.html#xmlNotationTable">xmlNotationTable</a> * <a href="#xmlNotationTablePtr">xmlNotationTablePtr</a>;
+typedef struct _xmlValidCtxt <a href="#xmlValidCtxt">xmlValidCtxt</a>;
+typedef <a href="libxml2-valid.html#xmlElementTable">xmlElementTable</a> * <a href="#xmlElementTablePtr">xmlElementTablePtr</a>;
+typedef <a href="libxml2-valid.html#xmlRefTable">xmlRefTable</a> * <a href="#xmlRefTablePtr">xmlRefTablePtr</a>;
+typedef struct _xmlHashTable <a href="#xmlNotationTable">xmlNotationTable</a>;
+typedef struct _xmlHashTable <a href="#xmlRefTable">xmlRefTable</a>;
+typedef struct _xmlValidState <a href="#xmlValidState">xmlValidState</a>;
+typedef struct _xmlHashTable <a href="#xmlAttributeTable">xmlAttributeTable</a>;
+typedef <a href="libxml2-valid.html#xmlAttributeTable">xmlAttributeTable</a> * <a href="#xmlAttributeTablePtr">xmlAttributeTablePtr</a>;
+typedef struct _xmlHashTable <a href="#xmlIDTable">xmlIDTable</a>;
+typedef <a href="libxml2-valid.html#xmlValidCtxt">xmlValidCtxt</a> * <a href="#xmlValidCtxtPtr">xmlValidCtxtPtr</a>;
+void <a href="#xmlFreeNotationTable">xmlFreeNotationTable</a> (<a href="libxml2-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table);
+int <a href="#xmlValidateNameValue">xmlValidateNameValue</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+void <a href="#xmlSnprintfElementContent">xmlSnprintfElementContent</a> (char * buf, <br/> int size, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content, <br/> int englob);
+<a href="libxml2-tree.html#xmlRefPtr">xmlRefPtr</a> <a href="#xmlAddRef">xmlAddRef</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
+void <a href="#xmlDumpAttributeDecl">xmlDumpAttributeDecl</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr);
+int <a href="#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+int <a href="#xmlValidateDtdFinal">xmlValidateDtdFinal</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+void <a href="#xmlDumpAttributeTable">xmlDumpAttributeTable</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table);
+<a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> <a href="#xmlCreateEnumeration">xmlCreateEnumeration</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlValidateOneAttribute">xmlValidateOneAttribute</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlValidGetValidElements">xmlValidGetValidElements</a> (<a href="libxml2-tree.html#xmlNode">xmlNode</a> * prev, <br/> <a href="libxml2-tree.html#xmlNode">xmlNode</a> * next, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** names, <br/> int max);
+int <a href="#xmlIsMixedElement">xmlIsMixedElement</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#xmlDumpNotationDecl">xmlDumpNotationDecl</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota);
+int <a href="#xmlIsID">xmlIsID</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
+<a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> <a href="#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a> (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix);
+<a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlNewDocElementContent">xmlNewDocElementContent</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-tree.html#xmlElementContentType">xmlElementContentType</a> type);
+void <a href="#xmlFreeAttributeTable">xmlFreeAttributeTable</a> (<a href="libxml2-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table);
+typedef void <a href="#xmlValidityErrorFunc">xmlValidityErrorFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+int <a href="#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr);
+<a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> <a href="#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a> (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix);
+<a href="libxml2-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> <a href="#xmlCopyNotationTable">xmlCopyNotationTable</a> (<a href="libxml2-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table);
+int <a href="#xmlValidateDocument">xmlValidateDocument</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+int <a href="#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a> (<a href="libxml2-tree.html#xmlElementContent">xmlElementContent</a> * ctree, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** names, <br/> int * len, <br/> int max);
+<a href="libxml2-tree.html#xmlNotationPtr">xmlNotationPtr</a> <a href="#xmlAddNotationDecl">xmlAddNotationDecl</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * PublicID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID);
+int <a href="#xmlValidateElementDecl">xmlValidateElementDecl</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> elem);
+<a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> <a href="#xmlAddAttributeDecl">xmlAddAttributeDecl</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns, <br/> <a href="libxml2-tree.html#xmlAttributeType">xmlAttributeType</a> type, <br/> <a href="libxml2-tree.html#xmlAttributeDefault">xmlAttributeDefault</a> def, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);
+<a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlGetID">xmlGetID</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ID);
+<a href="libxml2-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> <a href="#xmlCopyElementTable">xmlCopyElementTable</a> (<a href="libxml2-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table);
+<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlGetRefs">xmlGetRefs</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ID);
+void <a href="#xmlSprintfElementContent">xmlSprintfElementContent</a> (char * buf, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content, <br/> int englob);
+int <a href="#xmlValidateOneElement">xmlValidateOneElement</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
+int <a href="#xmlValidateNmtokenValue">xmlValidateNmtokenValue</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+void <a href="#xmlDumpElementTable">xmlDumpElementTable</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+void <a href="#xmlDumpElementDecl">xmlDumpElementDecl</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> elem);
+void <a href="#xmlFreeElementContent">xmlFreeElementContent</a> (<a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur);
+int <a href="#xmlValidateOneNamespace">xmlValidateOneNamespace</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlValidatePushElement">xmlValidatePushElement</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * qname);
+int <a href="#xmlIsRef">xmlIsRef</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
+<a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlCopyDocElementContent">xmlCopyDocElementContent</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur);
+<a href="libxml2-tree.html#xmlIDPtr">xmlIDPtr</a> <a href="#xmlAddID">xmlAddID</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
+void <a href="#xmlFreeRefTable">xmlFreeRefTable</a> (<a href="libxml2-valid.html#xmlRefTablePtr">xmlRefTablePtr</a> table);
+int <a href="#xmlValidateNamesValue">xmlValidateNamesValue</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlRemoveID">xmlRemoveID</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
+void <a href="#xmlFreeElementTable">xmlFreeElementTable</a> (<a href="libxml2-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table);
+void <a href="#xmlFreeIDTable">xmlFreeIDTable</a> (<a href="libxml2-valid.html#xmlIDTablePtr">xmlIDTablePtr</a> table);
+void <a href="#xmlFreeValidCtxt">xmlFreeValidCtxt</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> cur);
+<a href="libxml2-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> <a href="#xmlCopyAttributeTable">xmlCopyAttributeTable</a> (<a href="libxml2-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table);
+<a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlCopyElementContent">xmlCopyElementContent</a> (<a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur);
+int <a href="#xmlValidateAttributeValue">xmlValidateAttributeValue</a> (<a href="libxml2-tree.html#xmlAttributeType">xmlAttributeType</a> type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlRemoveRef">xmlRemoveRef</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
+typedef void <a href="#xmlValidityWarningFunc">xmlValidityWarningFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+int <a href="#xmlValidatePopElement">xmlValidatePopElement</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * qname);
+void <a href="#xmlFreeEnumeration">xmlFreeEnumeration</a> (<a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur);
+<a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> <a href="#xmlCopyEnumeration">xmlCopyEnumeration</a> (<a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur);
+<a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> <a href="#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a> (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlValidateDtd">xmlValidateDtd</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd);
+<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> <a href="#xmlNewValidCtxt">xmlNewValidCtxt</a> (void);
+void <a href="#xmlDumpNotationTable">xmlDumpNotationTable</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table);
+<a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> <a href="#xmlAddElementDecl">xmlAddElementDecl</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-tree.html#xmlElementTypeVal">xmlElementTypeVal</a> type, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlValidBuildContentModel">xmlValidBuildContentModel</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> elem);
+int <a href="#xmlValidateElement">xmlValidateElement</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
+int <a href="#xmlValidateNotationUse">xmlValidateNotationUse</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * notationName);
+int <a href="#xmlValidateRoot">xmlValidateRoot</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+int <a href="#xmlValidateNotationDecl">xmlValidateNotationDecl</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota);
+<a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlNewElementContent">xmlNewElementContent</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-tree.html#xmlElementContentType">xmlElementContentType</a> type);
+<a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> <a href="#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a> (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-tree.html#xmlNotationPtr">xmlNotationPtr</a> <a href="#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a> (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlValidatePushCData">xmlValidatePushCData</a> (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * data, <br/> int len);
+int <a href="#xmlValidateNmtokensValue">xmlValidateNmtokensValue</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+void <a href="#xmlFreeDocElementContent">xmlFreeDocElementContent</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="XML_CTXT_FINISH_DTD_0">Macro </a>XML_CTXT_FINISH_DTD_0</h3><pre class="programlisting">#define <a href="#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a>;
+</pre><p>Special value for finishDtd field when embedded in an <a href="libxml2-tree.html#xmlParserCtxt">xmlParserCtxt</a></p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_CTXT_FINISH_DTD_1">Macro </a>XML_CTXT_FINISH_DTD_1</h3><pre class="programlisting">#define <a href="#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a>;
+</pre><p>Special value for finishDtd field when embedded in an <a href="libxml2-tree.html#xmlParserCtxt">xmlParserCtxt</a></p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAttributeTable">Structure </a>xmlAttributeTable</h3><pre class="programlisting">struct _xmlHashTable {
+The content of this structure is not made public by the API.
+} xmlAttributeTable;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAttributeTablePtr">Typedef </a>xmlAttributeTablePtr</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlAttributeTable">xmlAttributeTable</a> * xmlAttributeTablePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElementTable">Structure </a>xmlElementTable</h3><pre class="programlisting">struct _xmlHashTable {
+The content of this structure is not made public by the API.
+} xmlElementTable;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlElementTablePtr">Typedef </a>xmlElementTablePtr</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlElementTable">xmlElementTable</a> * xmlElementTablePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIDTable">Structure </a>xmlIDTable</h3><pre class="programlisting">struct _xmlHashTable {
+The content of this structure is not made public by the API.
+} xmlIDTable;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIDTablePtr">Typedef </a>xmlIDTablePtr</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlIDTable">xmlIDTable</a> * xmlIDTablePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNotationTable">Structure </a>xmlNotationTable</h3><pre class="programlisting">struct _xmlHashTable {
+The content of this structure is not made public by the API.
+} xmlNotationTable;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNotationTablePtr">Typedef </a>xmlNotationTablePtr</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlNotationTable">xmlNotationTable</a> * xmlNotationTablePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRefTable">Structure </a>xmlRefTable</h3><pre class="programlisting">struct _xmlHashTable {
+The content of this structure is not made public by the API.
+} xmlRefTable;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRefTablePtr">Typedef </a>xmlRefTablePtr</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlRefTable">xmlRefTable</a> * xmlRefTablePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidCtxt">Structure </a>xmlValidCtxt</h3><pre class="programlisting">struct _xmlValidCtxt {
+ void * userData : user specific data block
+ <a href="libxml2-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a> error : the callback in case of errors
+ <a href="libxml2-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a> warning : the callback in case of warning Node analysis stack used when validat
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node : Current parsed Node
+ int nodeNr : Depth of the parsing stack
+ int nodeMax : Max depth of the parsing stack
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * nodeTab : array of nodes
+ unsigned int finishDtd : finished validating the Dtd ?
+ <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc : the document
+ int valid : temporary validity check result state state used for non-determinist
+ <a href="libxml2-valid.html#xmlValidState">xmlValidState</a> * vstate : current state
+ int vstateNr : Depth of the validation stack
+ int vstateMax : Max depth of the validation stack
+ <a href="libxml2-valid.html#xmlValidState">xmlValidState</a> * vstateTab : array of validation states
+ <a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am : the automata
+ <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> state : used to build the automata
+ void * am
+ void * state
+} xmlValidCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidCtxtPtr">Typedef </a>xmlValidCtxtPtr</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlValidCtxt">xmlValidCtxt</a> * xmlValidCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidState">Structure </a>xmlValidState</h3><pre class="programlisting">struct _xmlValidState {
+The content of this structure is not made public by the API.
+} xmlValidState;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidStatePtr">Typedef </a>xmlValidStatePtr</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlValidState">xmlValidState</a> * xmlValidStatePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidityErrorFunc"/>Function type xmlValidityErrorFunc</h3><pre class="programlisting">void xmlValidityErrorFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Callback called when a validity error is found. This is a message oriented function similar to an *printf function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>usually an <a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the string to format *printf like vararg</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>remaining arguments to the format</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidityWarningFunc"/>Function type xmlValidityWarningFunc</h3><pre class="programlisting">void xmlValidityWarningFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Callback called when a validity warning is found. This is a message oriented function similar to an *printf function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>usually an <a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the string to format *printf like vararg</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>remaining arguments to the format</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddAttributeDecl"/>xmlAddAttributeDecl ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> xmlAddAttributeDecl (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns, <br/> <a href="libxml2-tree.html#xmlAttributeType">xmlAttributeType</a> type, <br/> <a href="libxml2-tree.html#xmlAttributeDefault">xmlAttributeDefault</a> def, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br/> <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)<br/>
+</pre><p>Register a new <a href="libxml2-SAX.html#attribute">attribute</a> declaration Note that @tree becomes the ownership of the DTD</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>pointer to the DTD</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> namespace prefix</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> type</td></tr><tr><td><span class="term"><i><tt>def</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> default type</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> default value</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>if it's an enumeration, the associated list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not new, otherwise the <a href="libxml2-SAX.html#attribute">attribute</a> decl</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddElementDecl"/>xmlAddElementDecl ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> xmlAddElementDecl (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-tree.html#xmlElementTypeVal">xmlElementTypeVal</a> type, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)<br/>
+</pre><p>Register a new element declaration</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>pointer to the DTD</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the element type</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the element content tree or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the entity</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddID"/>xmlAddID ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlIDPtr">xmlIDPtr</a> xmlAddID (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br/>
+</pre><p>Register a new id declaration</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>pointer to the document</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value name</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> holding the ID</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the new <a href="libxml2-tree.html#xmlIDPtr">xmlIDPtr</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddNotationDecl"/>xmlAddNotationDecl ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNotationPtr">xmlNotationPtr</a> xmlAddNotationDecl (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * PublicID, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br/>
+</pre><p>Register a new notation declaration</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>pointer to the DTD</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>PublicID</tt></i>:</span></td><td>the public identifier or NULL</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the system identifier or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the entity</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAddRef"/>xmlAddRef ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlRefPtr">xmlRefPtr</a> xmlAddRef (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br/>
+</pre><p>Register a new ref declaration</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>pointer to the document</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value name</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> holding the Ref</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the new <a href="libxml2-tree.html#xmlRefPtr">xmlRefPtr</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyAttributeTable"/>xmlCopyAttributeTable ()</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> xmlCopyAttributeTable (<a href="libxml2-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table)<br/>
+</pre><p>Build a copy of an <a href="libxml2-SAX.html#attribute">attribute</a> table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An <a href="libxml2-SAX.html#attribute">attribute</a> table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyDocElementContent"/>xmlCopyDocElementContent ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlCopyDocElementContent (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)<br/>
+</pre><p>Build a copy of an element content description.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document owning the element declaration</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>An element content pointer.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyElementContent"/>xmlCopyElementContent ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlCopyElementContent (<a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)<br/>
+</pre><p>Build a copy of an element content description. Deprecated, use <a href="libxml2-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>An element content pointer.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyElementTable"/>xmlCopyElementTable ()</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> xmlCopyElementTable (<a href="libxml2-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table)<br/>
+</pre><p>Build a copy of an element table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An element table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyEnumeration"/>xmlCopyEnumeration ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> xmlCopyEnumeration (<a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur)<br/>
+</pre><p>Copy an enumeration <a href="libxml2-SAX.html#attribute">attribute</a> node (recursive).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the tree to copy.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> just created or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyNotationTable"/>xmlCopyNotationTable ()</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> xmlCopyNotationTable (<a href="libxml2-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table)<br/>
+</pre><p>Build a copy of a notation table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>A notation table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCreateEnumeration"/>xmlCreateEnumeration ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> xmlCreateEnumeration (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>create and initialize an enumeration <a href="libxml2-SAX.html#attribute">attribute</a> node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the enumeration name or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> just created or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDumpAttributeDecl"/>xmlDumpAttributeDecl ()</h3><pre class="programlisting">void xmlDumpAttributeDecl (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr)<br/>
+</pre><p>This will dump the content of the <a href="libxml2-SAX.html#attribute">attribute</a> declaration as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>An <a href="libxml2-SAX.html#attribute">attribute</a> declaration</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDumpAttributeTable"/>xmlDumpAttributeTable ()</h3><pre class="programlisting">void xmlDumpAttributeTable (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table)<br/>
+</pre><p>This will dump the content of the <a href="libxml2-SAX.html#attribute">attribute</a> table as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An <a href="libxml2-SAX.html#attribute">attribute</a> table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDumpElementDecl"/>xmlDumpElementDecl ()</h3><pre class="programlisting">void xmlDumpElementDecl (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> elem)<br/>
+</pre><p>This will dump the content of the element declaration as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>An element table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDumpElementTable"/>xmlDumpElementTable ()</h3><pre class="programlisting">void xmlDumpElementTable (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table)<br/>
+</pre><p>This will dump the content of the element table as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An element table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDumpNotationDecl"/>xmlDumpNotationDecl ()</h3><pre class="programlisting">void xmlDumpNotationDecl (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota)<br/>
+</pre><p>This will dump the content the notation declaration as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>nota</tt></i>:</span></td><td>A notation declaration</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlDumpNotationTable"/>xmlDumpNotationTable ()</h3><pre class="programlisting">void xmlDumpNotationTable (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table)<br/>
+</pre><p>This will dump the content of the notation table as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>A notation table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeAttributeTable"/>xmlFreeAttributeTable ()</h3><pre class="programlisting">void xmlFreeAttributeTable (<a href="libxml2-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table)<br/>
+</pre><p>Deallocate the memory used by an entities hash table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An <a href="libxml2-SAX.html#attribute">attribute</a> table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeDocElementContent"/>xmlFreeDocElementContent ()</h3><pre class="programlisting">void xmlFreeDocElementContent (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)<br/>
+</pre><p>Free an element content structure. The whole subtree is removed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document owning the element declaration</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the element content tree to free</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeElementContent"/>xmlFreeElementContent ()</h3><pre class="programlisting">void xmlFreeElementContent (<a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)<br/>
+</pre><p>Free an element content structure. The whole subtree is removed. Deprecated, use <a href="libxml2-valid.html#xmlFreeDocElementContent">xmlFreeDocElementContent</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the element content tree to free</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeElementTable"/>xmlFreeElementTable ()</h3><pre class="programlisting">void xmlFreeElementTable (<a href="libxml2-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table)<br/>
+</pre><p>Deallocate the memory used by an element hash table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An element table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeEnumeration"/>xmlFreeEnumeration ()</h3><pre class="programlisting">void xmlFreeEnumeration (<a href="libxml2-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur)<br/>
+</pre><p>free an enumeration <a href="libxml2-SAX.html#attribute">attribute</a> node (recursive).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the tree to free.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeIDTable"/>xmlFreeIDTable ()</h3><pre class="programlisting">void xmlFreeIDTable (<a href="libxml2-valid.html#xmlIDTablePtr">xmlIDTablePtr</a> table)<br/>
+</pre><p>Deallocate the memory used by an ID hash table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An id table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeNotationTable"/>xmlFreeNotationTable ()</h3><pre class="programlisting">void xmlFreeNotationTable (<a href="libxml2-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table)<br/>
+</pre><p>Deallocate the memory used by an entities hash table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An notation table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeRefTable"/>xmlFreeRefTable ()</h3><pre class="programlisting">void xmlFreeRefTable (<a href="libxml2-valid.html#xmlRefTablePtr">xmlRefTablePtr</a> table)<br/>
+</pre><p>Deallocate the memory used by an Ref hash table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An ref table</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeValidCtxt"/>xmlFreeValidCtxt ()</h3><pre class="programlisting">void xmlFreeValidCtxt (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> cur)<br/>
+</pre><p>Free a validation context structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the validation context to free</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetDtdAttrDesc"/>xmlGetDtdAttrDesc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> xmlGetDtdAttrDesc (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Search the DTD for the description of this <a href="libxml2-SAX.html#attribute">attribute</a> on this element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a pointer to the DtD to search</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> if found or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetDtdElementDesc"/>xmlGetDtdElementDesc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> xmlGetDtdElementDesc (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Search the DTD for the description of this element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a pointer to the DtD to search</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> if found or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetDtdNotationDesc"/>xmlGetDtdNotationDesc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNotationPtr">xmlNotationPtr</a> xmlGetDtdNotationDesc (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Search the DTD for the description of this notation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a pointer to the DtD to search</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the notation name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlNotationPtr">xmlNotationPtr</a> if found or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetDtdQAttrDesc"/>xmlGetDtdQAttrDesc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> xmlGetDtdQAttrDesc (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br/>
+</pre><p>Search the DTD for the description of this qualified <a href="libxml2-SAX.html#attribute">attribute</a> on this element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a pointer to the DtD to search</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> namespace prefix</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> if found or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetDtdQElementDesc"/>xmlGetDtdQElementDesc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> xmlGetDtdQElementDesc (<a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br/>
+</pre><p>Search the DTD for the description of this element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a pointer to the DtD to search</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the element namespace prefix</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> if found or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetID"/>xmlGetID ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlGetID (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ID)<br/>
+</pre><p>Search the <a href="libxml2-SAX.html#attribute">attribute</a> declaring the given ID</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>pointer to the document</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the ID value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not found, otherwise the <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> defining the ID</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetRefs"/>xmlGetRefs ()</h3><pre class="programlisting"><a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> xmlGetRefs (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ID)<br/>
+</pre><p>Find the set of references for the supplied ID.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>pointer to the document</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the ID value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not found, otherwise node set for the ID.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsID"/>xmlIsID ()</h3><pre class="programlisting">int xmlIsID (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br/>
+</pre><p>Determine whether an <a href="libxml2-SAX.html#attribute">attribute</a> is of type ID. In case we have DTD(s) then this is done if DTD loading has been requested. In the case of HTML documents parsed with the HTML parser, then ID detection is done systematically.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element carrying the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or 1 depending on the lookup result</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsMixedElement"/>xmlIsMixedElement ()</h3><pre class="programlisting">int xmlIsMixedElement (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Search in the DtDs whether an element accept Mixed content (or ANY) basically if it is supposed to accept text childs</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no, 1 if yes, and -1 if no element description is available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIsRef"/>xmlIsRef ()</h3><pre class="programlisting">int xmlIsRef (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br/>
+</pre><p>Determine whether an <a href="libxml2-SAX.html#attribute">attribute</a> is of type Ref. In case we have DTD(s) then this is simple, otherwise we use an heuristic: name Ref (upper or lowercase).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element carrying the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or 1 depending on the lookup result</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewDocElementContent"/>xmlNewDocElementContent ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlNewDocElementContent (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-tree.html#xmlElementContentType">xmlElementContentType</a> type)<br/>
+</pre><p>Allocate an element content structure for the document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the subelement name or NULL</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of element content decl</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the new element content structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewElementContent"/>xmlNewElementContent ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlNewElementContent (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-tree.html#xmlElementContentType">xmlElementContentType</a> type)<br/>
+</pre><p>Allocate an element content structure. Deprecated in favor of <a href="libxml2-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the subelement name or NULL</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of element content decl</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the new element content structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewValidCtxt"/>xmlNewValidCtxt ()</h3><pre class="programlisting"><a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> xmlNewValidCtxt (void)<br/>
+</pre><p>Allocate a validation context structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the new validation context structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRemoveID"/>xmlRemoveID ()</h3><pre class="programlisting">int xmlRemoveID (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br/>
+</pre><p>Remove the given <a href="libxml2-SAX.html#attribute">attribute</a> from the ID table maintained internally.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 if the lookup failed and 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRemoveRef"/>xmlRemoveRef ()</h3><pre class="programlisting">int xmlRemoveRef (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br/>
+</pre><p>Remove the given <a href="libxml2-SAX.html#attribute">attribute</a> from the Ref table maintained internally.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 if the lookup failed and 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSnprintfElementContent"/>xmlSnprintfElementContent ()</h3><pre class="programlisting">void xmlSnprintfElementContent (char * buf, <br/> int size, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content, <br/> int englob)<br/>
+</pre><p>This will dump the content of the element content definition Intended just for the debug routine</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output buffer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the buffer size</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>An element table</td></tr><tr><td><span class="term"><i><tt>englob</tt></i>:</span></td><td>1 if one must print the englobing parenthesis, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSprintfElementContent"/>xmlSprintfElementContent ()</h3><pre class="programlisting">void xmlSprintfElementContent (char * buf, <br/> <a href="libxml2-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content, <br/> int englob)<br/>
+</pre><p>Deprecated, unsafe, use <a href="libxml2-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output buffer</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>An element table</td></tr><tr><td><span class="term"><i><tt>englob</tt></i>:</span></td><td>1 if one must print the englobing parenthesis, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidBuildContentModel"/>xmlValidBuildContentModel ()</h3><pre class="programlisting">int xmlValidBuildContentModel (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> elem)<br/>
+</pre><p>(Re)Build the automata associated to the content model of this element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a validation context</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element declaration node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, 0 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidCtxtNormalizeAttributeValue"/>xmlValidCtxtNormalizeAttributeValue ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlValidCtxtNormalizeAttributeValue (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Does the validation related extra step of the normalization of <a href="libxml2-SAX.html#attribute">attribute</a> values: If the declared value is not CDATA, then the XML processor must further process the normalized <a href="libxml2-SAX.html#attribute">attribute</a> value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) <a href="libxml2-SAX.html#characters">characters</a> by single space (#x20) character. Also check VC: Standalone Document Declaration in P32, and update ctxt-&gt;valid accordingly</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context or NULL</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the parent</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidGetPotentialChildren"/>xmlValidGetPotentialChildren ()</h3><pre class="programlisting">int xmlValidGetPotentialChildren (<a href="libxml2-tree.html#xmlElementContent">xmlElementContent</a> * ctree, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** names, <br/> int * len, <br/> int max)<br/>
+</pre><p>Build/extend a list of potential children allowed by the content tree</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctree</tt></i>:</span></td><td>an element content tree</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>an array to store the list of child names</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>a pointer to the number of element in the list</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of element in the list, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidGetValidElements"/>xmlValidGetValidElements ()</h3><pre class="programlisting">int xmlValidGetValidElements (<a href="libxml2-tree.html#xmlNode">xmlNode</a> * prev, <br/> <a href="libxml2-tree.html#xmlNode">xmlNode</a> * next, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** names, <br/> int max)<br/>
+</pre><p>This function returns the list of authorized children to insert within an existing tree while respecting the validity constraints forced by the Dtd. The insertion point is defined using @prev and @next in the following ways: to insert before 'node': xmlValidGetValidElements(node-&gt;prev, node, ... to insert next 'node': xmlValidGetValidElements(node, node-&gt;next, ... to replace 'node': xmlValidGetValidElements(node-&gt;prev, node-&gt;next, ... to prepend a child to 'node': xmlValidGetValidElements(NULL, node-&gt;childs, to append a child to 'node': xmlValidGetValidElements(node-&gt;last, NULL, ... pointers to the element names are inserted at the beginning of the array and do not need to be freed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>prev</tt></i>:</span></td><td>an element to insert after</td></tr><tr><td><span class="term"><i><tt>next</tt></i>:</span></td><td>an element to insert next</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>an array to store the list of child names</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of element in the list, or -1 in case of error. If the function returns the value @max the caller is invited to grow the receiving array and retry.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidNormalizeAttributeValue"/>xmlValidNormalizeAttributeValue ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlValidNormalizeAttributeValue (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Does the validation related extra step of the normalization of <a href="libxml2-SAX.html#attribute">attribute</a> values: If the declared value is not CDATA, then the XML processor must further process the normalized <a href="libxml2-SAX.html#attribute">attribute</a> value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) <a href="libxml2-SAX.html#characters">characters</a> by single space (#x20) character.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the parent</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateAttributeDecl"/>xmlValidateAttributeDecl ()</h3><pre class="programlisting">int xmlValidateAttributeDecl (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr)<br/>
+</pre><p>Try to validate a single <a href="libxml2-SAX.html#attribute">attribute</a> definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Default Legal ] - [ VC: Enumeration ] - [ VC: ID Attribute Default ] The ID/IDREF uniqueness and matching are done separately</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>an <a href="libxml2-SAX.html#attribute">attribute</a> definition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateAttributeValue"/>xmlValidateAttributeValue ()</h3><pre class="programlisting">int xmlValidateAttributeValue (<a href="libxml2-tree.html#xmlAttributeType">xmlAttributeType</a> type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Validate that the given <a href="libxml2-SAX.html#attribute">attribute</a> value match the proper production [ VC: ID ] Values of type ID must match the Name production.... [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names ... [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names ... [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>an <a href="libxml2-SAX.html#attribute">attribute</a> type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>an <a href="libxml2-SAX.html#attribute">attribute</a> value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateDocument"/>xmlValidateDocument ()</h3><pre class="programlisting">int xmlValidateDocument (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Try to validate the document instance basically it does the all the checks described by the XML Rec i.e. validates the internal and external subset (if present) and validate the document tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateDocumentFinal"/>xmlValidateDocumentFinal ()</h3><pre class="programlisting">int xmlValidateDocumentFinal (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Does the final step for the document validation once all the incremental validation steps have been completed basically it does the following checks described by the XML Rec Check all the IDREF/IDREFS attributes definition for validity</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateDtd"/>xmlValidateDtd ()</h3><pre class="programlisting">int xmlValidateDtd (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)<br/>
+</pre><p>Try to validate the document against the dtd instance Basically it does check all the definitions in the DtD. Note the the internal subset (if present) is de-coupled (i.e. not used), which could give problems if ID or IDREF is present.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a dtd instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateDtdFinal"/>xmlValidateDtdFinal ()</h3><pre class="programlisting">int xmlValidateDtdFinal (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Does the final step for the dtds validation once all the subsets have been parsed basically it does the following checks described by the XML Rec - check that ENTITY and ENTITIES type attributes default or possible values matches one of the defined entities. - check that NOTATION type attributes default or possible values matches one of the defined notations.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 if invalid and -1 if not well-formed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateElement"/>xmlValidateElement ()</h3><pre class="programlisting">int xmlValidateElement (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br/>
+</pre><p>Try to validate the subtree under an element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateElementDecl"/>xmlValidateElementDecl ()</h3><pre class="programlisting">int xmlValidateElementDecl (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlElementPtr">xmlElementPtr</a> elem)<br/>
+</pre><p>Try to validate a single element definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: One ID per Element Type ] - [ VC: No Duplicate Types ] - [ VC: Unique Element Type Declaration ]</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element definition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateNameValue"/>xmlValidateNameValue ()</h3><pre class="programlisting">int xmlValidateNameValue (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Validate that the given value match Name production</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>an Name value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateNamesValue"/>xmlValidateNamesValue ()</h3><pre class="programlisting">int xmlValidateNamesValue (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Validate that the given value match Names production</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>an Names value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateNmtokenValue"/>xmlValidateNmtokenValue ()</h3><pre class="programlisting">int xmlValidateNmtokenValue (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Validate that the given value match Nmtoken production [ VC: Name Token ]</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>an Nmtoken value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateNmtokensValue"/>xmlValidateNmtokensValue ()</h3><pre class="programlisting">int xmlValidateNmtokensValue (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Validate that the given value match Nmtokens production [ VC: Name Token ]</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>an Nmtokens value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateNotationDecl"/>xmlValidateNotationDecl ()</h3><pre class="programlisting">int xmlValidateNotationDecl (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota)<br/>
+</pre><p>Try to validate a single notation definition basically it does the following checks as described by the XML-1.0 recommendation: - it seems that no validity constraint exists on notation declarations But this function get called anyway ...</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>nota</tt></i>:</span></td><td>a notation definition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateNotationUse"/>xmlValidateNotationUse ()</h3><pre class="programlisting">int xmlValidateNotationUse (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * notationName)<br/>
+</pre><p>Validate that the given name match a notation declaration. - [ VC: Notation Declared ]</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i>:</span></td><td>the notation name to check</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateOneAttribute"/>xmlValidateOneAttribute ()</h3><pre class="programlisting">int xmlValidateOneAttribute (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> <a href="libxml2-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Try to validate a single <a href="libxml2-SAX.html#attribute">attribute</a> for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF uniqueness and matching are done separately</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>an <a href="libxml2-SAX.html#attribute">attribute</a> instance</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> value (without entities processing)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateOneElement"/>xmlValidateOneElement ()</h3><pre class="programlisting">int xmlValidateOneElement (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br/>
+</pre><p>Try to validate a single element and it's attributes, basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: Required Attribute ] Then call xmlValidateOneAttribute() for each <a href="libxml2-SAX.html#attribute">attribute</a> present. The ID/IDREF checkings are done separately</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateOneNamespace"/>xmlValidateOneNamespace ()</h3><pre class="programlisting">int xmlValidateOneNamespace (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Try to validate a single namespace declaration for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF uniqueness and matching are done separately</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>an namespace declaration instance</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml2-SAX.html#attribute">attribute</a> value (without entities processing)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidatePopElement"/>xmlValidatePopElement ()</h3><pre class="programlisting">int xmlValidatePopElement (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * qname)<br/>
+</pre><p>Pop the element end from the validation stack.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>qname</tt></i>:</span></td><td>the qualified name as appearing in the serialization</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidatePushCData"/>xmlValidatePushCData ()</h3><pre class="programlisting">int xmlValidatePushCData (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * data, <br/> int len)<br/>
+</pre><p>check the CData parsed for validation in the current stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>some character data read</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidatePushElement"/>xmlValidatePushElement ()</h3><pre class="programlisting">int xmlValidatePushElement (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * qname)<br/>
+</pre><p>Push a new element start on the validation stack.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>qname</tt></i>:</span></td><td>the qualified name as appearing in the serialization</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlValidateRoot"/>xmlValidateRoot ()</h3><pre class="programlisting">int xmlValidateRoot (<a href="libxml2-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Try to validate a the root element basically it does the following check as described by the XML-1.0 recommendation: - [ VC: Root Element Type ] it doesn't try to recurse or apply other check to the element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xinclude.html b/libxml2-2.9.10/doc/devhelp/libxml2-xinclude.html
new file mode 100644
index 0000000..12a61d5
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xinclude.html
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xinclude: implementation of XInclude</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-valid.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xlink.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xinclude</span>
+ </h2>
+ <p>xinclude - implementation of XInclude</p>
+ <p>API to handle XInclude processing, implements the World Wide Web Consortium Last Call Working Draft 10 November 2003</p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#XINCLUDE_PARSE_TEXT">XINCLUDE_PARSE_TEXT</a>;
+#define <a href="#XINCLUDE_PARSE_XPOINTER">XINCLUDE_PARSE_XPOINTER</a>;
+#define <a href="#XINCLUDE_HREF">XINCLUDE_HREF</a>;
+#define <a href="#XINCLUDE_FALLBACK">XINCLUDE_FALLBACK</a>;
+#define <a href="#XINCLUDE_NS">XINCLUDE_NS</a>;
+#define <a href="#XINCLUDE_PARSE">XINCLUDE_PARSE</a>;
+#define <a href="#XINCLUDE_NODE">XINCLUDE_NODE</a>;
+#define <a href="#XINCLUDE_PARSE_XML">XINCLUDE_PARSE_XML</a>;
+#define <a href="#XINCLUDE_PARSE_ENCODING">XINCLUDE_PARSE_ENCODING</a>;
+#define <a href="#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a>;
+typedef struct _xmlXIncludeCtxt <a href="#xmlXIncludeCtxt">xmlXIncludeCtxt</a>;
+typedef <a href="libxml2-xinclude.html#xmlXIncludeCtxt">xmlXIncludeCtxt</a> * <a href="#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a>;
+int <a href="#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br/> int flags, <br/> void * data);
+int <a href="#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> int flags, <br/> void * data);
+int <a href="#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> int flags);
+int <a href="#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree);
+int <a href="#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a> (<a href="libxml2-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+void <a href="#xmlXIncludeFreeContext">xmlXIncludeFreeContext</a> (<a href="libxml2-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt);
+int <a href="#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a> (<a href="libxml2-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt, <br/> int flags);
+int <a href="#xmlXIncludeProcess">xmlXIncludeProcess</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+<a href="libxml2-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> <a href="#xmlXIncludeNewContext">xmlXIncludeNewContext</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+int <a href="#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br/> int flags);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="XINCLUDE_FALLBACK">Macro </a>XINCLUDE_FALLBACK</h3><pre class="programlisting">#define <a href="#XINCLUDE_FALLBACK">XINCLUDE_FALLBACK</a>;
+</pre><p>Macro defining "fallback"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XINCLUDE_HREF">Macro </a>XINCLUDE_HREF</h3><pre class="programlisting">#define <a href="#XINCLUDE_HREF">XINCLUDE_HREF</a>;
+</pre><p>Macro defining "href"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XINCLUDE_NODE">Macro </a>XINCLUDE_NODE</h3><pre class="programlisting">#define <a href="#XINCLUDE_NODE">XINCLUDE_NODE</a>;
+</pre><p>Macro defining "include"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XINCLUDE_NS">Macro </a>XINCLUDE_NS</h3><pre class="programlisting">#define <a href="#XINCLUDE_NS">XINCLUDE_NS</a>;
+</pre><p>Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XINCLUDE_OLD_NS">Macro </a>XINCLUDE_OLD_NS</h3><pre class="programlisting">#define <a href="#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a>;
+</pre><p>Macro defining the draft Xinclude namespace: http://www.w3.org/2001/XInclude</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XINCLUDE_PARSE">Macro </a>XINCLUDE_PARSE</h3><pre class="programlisting">#define <a href="#XINCLUDE_PARSE">XINCLUDE_PARSE</a>;
+</pre><p>Macro defining "parse"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XINCLUDE_PARSE_ENCODING">Macro </a>XINCLUDE_PARSE_ENCODING</h3><pre class="programlisting">#define <a href="#XINCLUDE_PARSE_ENCODING">XINCLUDE_PARSE_ENCODING</a>;
+</pre><p>Macro defining "encoding"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XINCLUDE_PARSE_TEXT">Macro </a>XINCLUDE_PARSE_TEXT</h3><pre class="programlisting">#define <a href="#XINCLUDE_PARSE_TEXT">XINCLUDE_PARSE_TEXT</a>;
+</pre><p>Macro defining "text"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XINCLUDE_PARSE_XML">Macro </a>XINCLUDE_PARSE_XML</h3><pre class="programlisting">#define <a href="#XINCLUDE_PARSE_XML">XINCLUDE_PARSE_XML</a>;
+</pre><p>Macro defining "xml"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XINCLUDE_PARSE_XPOINTER">Macro </a>XINCLUDE_PARSE_XPOINTER</h3><pre class="programlisting">#define <a href="#XINCLUDE_PARSE_XPOINTER">XINCLUDE_PARSE_XPOINTER</a>;
+</pre><p>Macro defining "xpointer"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeCtxt">Structure </a>xmlXIncludeCtxt</h3><pre class="programlisting">struct _xmlXIncludeCtxt {
+The content of this structure is not made public by the API.
+} xmlXIncludeCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeCtxtPtr">Typedef </a>xmlXIncludeCtxtPtr</h3><pre class="programlisting"><a href="libxml2-xinclude.html#xmlXIncludeCtxt">xmlXIncludeCtxt</a> * xmlXIncludeCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeFreeContext"/>xmlXIncludeFreeContext ()</h3><pre class="programlisting">void xmlXIncludeFreeContext (<a href="libxml2-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt)<br/>
+</pre><p>Free an XInclude context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XInclude context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeNewContext"/>xmlXIncludeNewContext ()</h3><pre class="programlisting"><a href="libxml2-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> xmlXIncludeNewContext (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Creates a new XInclude context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an XML Document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new set</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeProcess"/>xmlXIncludeProcess ()</h3><pre class="programlisting">int xmlXIncludeProcess (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Implement the XInclude substitution on the XML document @doc</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeProcessFlags"/>xmlXIncludeProcessFlags ()</h3><pre class="programlisting">int xmlXIncludeProcessFlags (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> int flags)<br/>
+</pre><p>Implement the XInclude substitution on the XML document @doc</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an XML document</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a> used for parsing XML includes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeProcessFlagsData"/>xmlXIncludeProcessFlagsData ()</h3><pre class="programlisting">int xmlXIncludeProcessFlagsData (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> int flags, <br/> void * data)<br/>
+</pre><p>Implement the XInclude substitution on the XML document @doc</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an XML document</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a> used for parsing XML includes</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>application data that will be passed to the parser context in the _private field of the parser context(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeProcessNode"/>xmlXIncludeProcessNode ()</h3><pre class="programlisting">int xmlXIncludeProcessNode (<a href="libxml2-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Implement the XInclude substitution for the given subtree reusing the informations and data coming from the given context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an existing XInclude context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node in an XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeProcessTree"/>xmlXIncludeProcessTree ()</h3><pre class="programlisting">int xmlXIncludeProcessTree (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree)<br/>
+</pre><p>Implement the XInclude substitution for the given subtree</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>a node in an XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeProcessTreeFlags"/>xmlXIncludeProcessTreeFlags ()</h3><pre class="programlisting">int xmlXIncludeProcessTreeFlags (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br/> int flags)<br/>
+</pre><p>Implement the XInclude substitution for the given subtree</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>a node in an XML document</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a> used for parsing XML includes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeProcessTreeFlagsData"/>xmlXIncludeProcessTreeFlagsData ()</h3><pre class="programlisting">int xmlXIncludeProcessTreeFlagsData (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br/> int flags, <br/> void * data)<br/>
+</pre><p>Implement the XInclude substitution on the XML node @tree</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>an XML node</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a> used for parsing XML includes</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>application data that will be passed to the parser context in the _private field of the parser context(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXIncludeSetFlags"/>xmlXIncludeSetFlags ()</h3><pre class="programlisting">int xmlXIncludeSetFlags (<a href="libxml2-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt, <br/> int flags)<br/>
+</pre><p>Set the flags used for further processing of XML resources.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XInclude processing context</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a> used for parsing XML includes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xlink.html b/libxml2-2.9.10/doc/devhelp/libxml2-xlink.html
new file mode 100644
index 0000000..abe6965
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xlink.html
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xlink: unfinished XLink detection module</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xinclude.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlIO.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xlink</span>
+ </h2>
+ <p>xlink - unfinished XLink detection module</p>
+ <p>unfinished XLink detection module </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xlinkTitle">xlinkTitle</a>;
+typedef enum <a href="#xlinkShow">xlinkShow</a>;
+typedef <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xlinkHRef">xlinkHRef</a>;
+typedef enum <a href="#xlinkActuate">xlinkActuate</a>;
+typedef struct _xlinkHandler <a href="#xlinkHandler">xlinkHandler</a>;
+typedef <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xlinkRole">xlinkRole</a>;
+typedef <a href="libxml2-xlink.html#xlinkHandler">xlinkHandler</a> * <a href="#xlinkHandlerPtr">xlinkHandlerPtr</a>;
+typedef enum <a href="#xlinkType">xlinkType</a>;
+void <a href="#xlinkSetDefaultDetect">xlinkSetDefaultDetect</a> (<a href="libxml2-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a> func);
+void <a href="#xlinkSetDefaultHandler">xlinkSetDefaultHandler</a> (<a href="libxml2-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a> handler);
+typedef void <a href="#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a> (void * ctx, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int nbLocators, <br/> const <a href="libxml2-xlink.html#xlinkHRef">xlinkHRef</a> * hrefs, <br/> const <a href="libxml2-xlink.html#xlinkRole">xlinkRole</a> * roles, <br/> int nbArcs, <br/> const <a href="libxml2-xlink.html#xlinkRole">xlinkRole</a> * from, <br/> const <a href="libxml2-xlink.html#xlinkRole">xlinkRole</a> * to, <br/> <a href="libxml2-xlink.html#xlinkShow">xlinkShow</a> * show, <br/> <a href="libxml2-xlink.html#xlinkActuate">xlinkActuate</a> * actuate, <br/> int nbTitles, <br/> const <a href="libxml2-xlink.html#xlinkTitle">xlinkTitle</a> * titles, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** langs);
+typedef void <a href="#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a> (void * ctx, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int nbLocators, <br/> const <a href="libxml2-xlink.html#xlinkHRef">xlinkHRef</a> * hrefs, <br/> const <a href="libxml2-xlink.html#xlinkRole">xlinkRole</a> * roles, <br/> int nbTitles, <br/> const <a href="libxml2-xlink.html#xlinkTitle">xlinkTitle</a> * titles, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** langs);
+typedef void <a href="#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a> (void * ctx, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xlink.html#xlinkHRef">xlinkHRef</a> href, <br/> const <a href="libxml2-xlink.html#xlinkRole">xlinkRole</a> role, <br/> const <a href="libxml2-xlink.html#xlinkTitle">xlinkTitle</a> title);
+typedef void <a href="#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a> (void * ctx, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+<a href="libxml2-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a> <a href="#xlinkGetDefaultHandler">xlinkGetDefaultHandler</a> (void);
+<a href="libxml2-xlink.html#xlinkType">xlinkType</a> <a href="#xlinkIsLink">xlinkIsLink</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+<a href="libxml2-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a> <a href="#xlinkGetDefaultDetect">xlinkGetDefaultDetect</a> (void);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xlinkActuate">Enum </a>xlinkActuate</h3><pre class="programlisting">enum <a href="#xlinkActuate">xlinkActuate</a> {
+ <a name="XLINK_ACTUATE_NONE">XLINK_ACTUATE_NONE</a> = 0
+ <a name="XLINK_ACTUATE_AUTO">XLINK_ACTUATE_AUTO</a> = 1
+ <a name="XLINK_ACTUATE_ONREQUEST">XLINK_ACTUATE_ONREQUEST</a> = 2
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkHRef">Typedef </a>xlinkHRef</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xlinkHRef;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkHandler">Structure </a>xlinkHandler</h3><pre class="programlisting">struct _xlinkHandler {
+ <a href="libxml2-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a> simple
+ <a href="libxml2-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a> extended
+ <a href="libxml2-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a> set
+} xlinkHandler;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkHandlerPtr">Typedef </a>xlinkHandlerPtr</h3><pre class="programlisting"><a href="libxml2-xlink.html#xlinkHandler">xlinkHandler</a> * xlinkHandlerPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkRole">Typedef </a>xlinkRole</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xlinkRole;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkShow">Enum </a>xlinkShow</h3><pre class="programlisting">enum <a href="#xlinkShow">xlinkShow</a> {
+ <a name="XLINK_SHOW_NONE">XLINK_SHOW_NONE</a> = 0
+ <a name="XLINK_SHOW_NEW">XLINK_SHOW_NEW</a> = 1
+ <a name="XLINK_SHOW_EMBED">XLINK_SHOW_EMBED</a> = 2
+ <a name="XLINK_SHOW_REPLACE">XLINK_SHOW_REPLACE</a> = 3
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkTitle">Typedef </a>xlinkTitle</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xlinkTitle;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkType">Enum </a>xlinkType</h3><pre class="programlisting">enum <a href="#xlinkType">xlinkType</a> {
+ <a name="XLINK_TYPE_NONE">XLINK_TYPE_NONE</a> = 0
+ <a name="XLINK_TYPE_SIMPLE">XLINK_TYPE_SIMPLE</a> = 1
+ <a name="XLINK_TYPE_EXTENDED">XLINK_TYPE_EXTENDED</a> = 2
+ <a name="XLINK_TYPE_EXTENDED_SET">XLINK_TYPE_EXTENDED_SET</a> = 3
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkExtendedLinkFunk"/>Function type xlinkExtendedLinkFunk</h3><pre class="programlisting">void xlinkExtendedLinkFunk (void * ctx, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int nbLocators, <br/> const <a href="libxml2-xlink.html#xlinkHRef">xlinkHRef</a> * hrefs, <br/> const <a href="libxml2-xlink.html#xlinkRole">xlinkRole</a> * roles, <br/> int nbArcs, <br/> const <a href="libxml2-xlink.html#xlinkRole">xlinkRole</a> * from, <br/> const <a href="libxml2-xlink.html#xlinkRole">xlinkRole</a> * to, <br/> <a href="libxml2-xlink.html#xlinkShow">xlinkShow</a> * show, <br/> <a href="libxml2-xlink.html#xlinkActuate">xlinkActuate</a> * actuate, <br/> int nbTitles, <br/> const <a href="libxml2-xlink.html#xlinkTitle">xlinkTitle</a> * titles, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** langs)<br/>
+</pre><p>This is the prototype for a extended link detection callback.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>user data pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node carrying the link</td></tr><tr><td><span class="term"><i><tt>nbLocators</tt></i>:</span></td><td>the number of locators detected on the link</td></tr><tr><td><span class="term"><i><tt>hrefs</tt></i>:</span></td><td>pointer to the array of locator hrefs</td></tr><tr><td><span class="term"><i><tt>roles</tt></i>:</span></td><td>pointer to the array of locator roles</td></tr><tr><td><span class="term"><i><tt>nbArcs</tt></i>:</span></td><td>the number of arcs detected on the link</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>pointer to the array of source roles found on the arcs</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>pointer to the array of target roles found on the arcs</td></tr><tr><td><span class="term"><i><tt>show</tt></i>:</span></td><td>array of values for the show attributes found on the arcs</td></tr><tr><td><span class="term"><i><tt>actuate</tt></i>:</span></td><td>array of values for the actuate attributes found on the arcs</td></tr><tr><td><span class="term"><i><tt>nbTitles</tt></i>:</span></td><td>the number of titles detected on the link</td></tr><tr><td><span class="term"><i><tt>titles</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>langs</tt></i>:</span></td><td>array of xml:lang values for the titles</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkExtendedLinkSetFunk"/>Function type xlinkExtendedLinkSetFunk</h3><pre class="programlisting">void xlinkExtendedLinkSetFunk (void * ctx, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int nbLocators, <br/> const <a href="libxml2-xlink.html#xlinkHRef">xlinkHRef</a> * hrefs, <br/> const <a href="libxml2-xlink.html#xlinkRole">xlinkRole</a> * roles, <br/> int nbTitles, <br/> const <a href="libxml2-xlink.html#xlinkTitle">xlinkTitle</a> * titles, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** langs)<br/>
+</pre><p>This is the prototype for a extended link set detection callback.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>user data pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node carrying the link</td></tr><tr><td><span class="term"><i><tt>nbLocators</tt></i>:</span></td><td>the number of locators detected on the link</td></tr><tr><td><span class="term"><i><tt>hrefs</tt></i>:</span></td><td>pointer to the array of locator hrefs</td></tr><tr><td><span class="term"><i><tt>roles</tt></i>:</span></td><td>pointer to the array of locator roles</td></tr><tr><td><span class="term"><i><tt>nbTitles</tt></i>:</span></td><td>the number of titles detected on the link</td></tr><tr><td><span class="term"><i><tt>titles</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>langs</tt></i>:</span></td><td>array of xml:lang values for the titles</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkNodeDetectFunc"/>Function type xlinkNodeDetectFunc</h3><pre class="programlisting">void xlinkNodeDetectFunc (void * ctx, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>This is the prototype for the link detection routine. It calls the default link detection callbacks upon link detection.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>user data pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to check</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkSimpleLinkFunk"/>Function type xlinkSimpleLinkFunk</h3><pre class="programlisting">void xlinkSimpleLinkFunk (void * ctx, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xlink.html#xlinkHRef">xlinkHRef</a> href, <br/> const <a href="libxml2-xlink.html#xlinkRole">xlinkRole</a> role, <br/> const <a href="libxml2-xlink.html#xlinkTitle">xlinkTitle</a> title)<br/>
+</pre><p>This is the prototype for a simple link detection callback.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>user data pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node carrying the link</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the target of the link</td></tr><tr><td><span class="term"><i><tt>role</tt></i>:</span></td><td>the role string</td></tr><tr><td><span class="term"><i><tt>title</tt></i>:</span></td><td>the link title</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkGetDefaultDetect"/>xlinkGetDefaultDetect ()</h3><pre class="programlisting"><a href="libxml2-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a> xlinkGetDefaultDetect (void)<br/>
+</pre><p>Get the default xlink detection routine</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current function or NULL;</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkGetDefaultHandler"/>xlinkGetDefaultHandler ()</h3><pre class="programlisting"><a href="libxml2-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a> xlinkGetDefaultHandler (void)<br/>
+</pre><p>Get the default xlink handler.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a href="libxml2-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a> value.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkIsLink"/>xlinkIsLink ()</h3><pre class="programlisting"><a href="libxml2-xlink.html#xlinkType">xlinkType</a> xlinkIsLink (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Check whether the given node carries the attributes needed to be a link element (or is one of the linking elements issued from the (X)HTML DtDs). This routine don't try to do full checking of the link validity but tries to detect and return the appropriate link type.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document containing the node</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node pointer itself</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xlink.html#xlinkType">xlinkType</a> of the node (XLINK_TYPE_NONE if there is no link detected.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkSetDefaultDetect"/>xlinkSetDefaultDetect ()</h3><pre class="programlisting">void xlinkSetDefaultDetect (<a href="libxml2-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a> func)<br/>
+</pre><p>Set the default xlink detection routine</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>pointer to the new detection routine.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xlinkSetDefaultHandler"/>xlinkSetDefaultHandler ()</h3><pre class="programlisting">void xlinkSetDefaultHandler (<a href="libxml2-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a> handler)<br/>
+</pre><p>Set the default xlink handlers</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new value for the xlink handler block</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlIO.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlIO.html
new file mode 100644
index 0000000..91d0ea6
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlIO.html
@@ -0,0 +1,347 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlIO: interface for the I/O interfaces used by the parser</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xlink.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlautomata.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlIO</span>
+ </h2>
+ <p>xmlIO - interface for the I/O interfaces used by the parser</p>
+ <p>interface for the I/O interfaces used by the parser </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">int <a href="#xmlIOHTTPRead">xmlIOHTTPRead</a> (void * context, <br/> char * buffer, <br/> int len);
+typedef int <a href="#xmlInputMatchCallback">xmlInputMatchCallback</a> (char const * filename);
+void <a href="#xmlRegisterDefaultOutputCallbacks">xmlRegisterDefaultOutputCallbacks</a> (void);
+int <a href="#xmlFileClose">xmlFileClose</a> (void * context);
+typedef int <a href="#xmlOutputMatchCallback">xmlOutputMatchCallback</a> (char const * filename);
+int <a href="#xmlParserInputBufferPush">xmlParserInputBufferPush</a> (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br/> int len, <br/> const char * buf);
+int <a href="#xmlIOFTPRead">xmlIOFTPRead</a> (void * context, <br/> char * buffer, <br/> int len);
+void <a href="#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a> (void);
+void * <a href="#xmlIOFTPOpen">xmlIOFTPOpen</a> (const char * filename);
+int <a href="#xmlIOFTPClose">xmlIOFTPClose</a> (void * context);
+void * <a href="#xmlFileOpen">xmlFileOpen</a> (const char * filename);
+<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a> (FILE * file, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);
+int <a href="#xmlCheckFilename">xmlCheckFilename</a> (const char * path);
+typedef void * <a href="#xmlOutputOpenCallback">xmlOutputOpenCallback</a> (char const * filename);
+<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a> (const char * URI, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+int <a href="#xmlOutputBufferClose">xmlOutputBufferClose</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out);
+<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a> (<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a> (<a href="libxml2-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite, <br/> <a href="libxml2-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);
+typedef int <a href="#xmlOutputWriteCallback">xmlOutputWriteCallback</a> (void * context, <br/> const char * buffer, <br/> int len);
+int <a href="#xmlOutputBufferFlush">xmlOutputBufferFlush</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlCheckHTTPInput">xmlCheckHTTPInput</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> ret);
+int <a href="#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a> (<a href="libxml2-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a> matchFunc, <br/> <a href="libxml2-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a> openFunc, <br/> <a href="libxml2-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> writeFunc, <br/> <a href="libxml2-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> closeFunc);
+<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a> (const char * mem, <br/> int size, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+int <a href="#xmlIOFTPMatch">xmlIOFTPMatch</a> (const char * filename);
+int <a href="#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a> (<a href="libxml2-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a> matchFunc, <br/> <a href="libxml2-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a> openFunc, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> readFunc, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> closeFunc);
+void <a href="#xmlFreeParserInputBuffer">xmlFreeParserInputBuffer</a> (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in);
+void <a href="#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a> (void);
+int <a href="#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a> (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br/> int len);
+typedef int <a href="#xmlOutputCloseCallback">xmlOutputCloseCallback</a> (void * context);
+<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlAllocOutputBuffer">xmlAllocOutputBuffer</a> (<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);
+<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a> (const char * URL, <br/> const char * ID, <br/> <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);
+int <a href="#xmlIOHTTPMatch">xmlIOHTTPMatch</a> (const char * filename);
+void * <a href="#xmlIOHTTPOpen">xmlIOHTTPOpen</a> (const char * filename);
+<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a> (<a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a> (int fd, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * path);
+typedef int <a href="#xmlInputReadCallback">xmlInputReadCallback</a> (void * context, <br/> char * buffer, <br/> int len);
+<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a> (const char * mem, <br/> int size, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out);
+int <a href="#xmlIOHTTPClose">xmlIOHTTPClose</a> (void * context);
+int <a href="#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escaping);
+<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a> (const char * URI, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder, <br/> int compression);
+size_t <a href="#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out);
+void <a href="#xmlCleanupOutputCallbacks">xmlCleanupOutputCallbacks</a> (void);
+typedef void * <a href="#xmlInputOpenCallback">xmlInputOpenCallback</a> (char const * filename);
+int <a href="#xmlParserInputBufferRead">xmlParserInputBufferRead</a> (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br/> int len);
+int <a href="#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br/> const char * str);
+int <a href="#xmlFileMatch">xmlFileMatch</a> (const char * filename);
+int <a href="#xmlPopInputCallbacks">xmlPopInputCallbacks</a> (void);
+int <a href="#xmlFileRead">xmlFileRead</a> (void * context, <br/> char * buffer, <br/> int len);
+<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a> (FILE * file, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+char * <a href="#xmlParserGetDirectory">xmlParserGetDirectory</a> (const char * filename);
+int <a href="#xmlOutputBufferWrite">xmlOutputBufferWrite</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br/> int len, <br/> const char * buf);
+void <a href="#xmlCleanupInputCallbacks">xmlCleanupInputCallbacks</a> (void);
+typedef int <a href="#xmlInputCloseCallback">xmlInputCloseCallback</a> (void * context);
+void * <a href="#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a> (const char * post_uri, <br/> int compression);
+<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a> (int fd, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlInputCloseCallback"/>Function type xmlInputCloseCallback</h3><pre class="programlisting">int xmlInputCloseCallback (void * context)<br/>
+</pre><p>Callback used in the I/O Input API to close the resource</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Input context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInputMatchCallback"/>Function type xmlInputMatchCallback</h3><pre class="programlisting">int xmlInputMatchCallback (char const * filename)<br/>
+</pre><p>Callback used in the I/O Input API to detect if the current handler can provide input functionality for this resource.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if yes and 0 if another Input module should be used</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInputOpenCallback"/>Function type xmlInputOpenCallback</h3><pre class="programlisting">void * xmlInputOpenCallback (char const * filename)<br/>
+</pre><p>Callback used in the I/O Input API to open the resource</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an Input context or NULL in case or error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInputReadCallback"/>Function type xmlInputReadCallback</h3><pre class="programlisting">int xmlInputReadCallback (void * context, <br/> char * buffer, <br/> int len)<br/>
+</pre><p>Callback used in the I/O Input API to read the resource</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Input context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>the buffer to store data read</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the buffer in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes read or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputCloseCallback"/>Function type xmlOutputCloseCallback</h3><pre class="programlisting">int xmlOutputCloseCallback (void * context)<br/>
+</pre><p>Callback used in the I/O Output API to close the resource</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Output context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputMatchCallback"/>Function type xmlOutputMatchCallback</h3><pre class="programlisting">int xmlOutputMatchCallback (char const * filename)<br/>
+</pre><p>Callback used in the I/O Output API to detect if the current handler can provide output functionality for this resource.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if yes and 0 if another Output module should be used</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputOpenCallback"/>Function type xmlOutputOpenCallback</h3><pre class="programlisting">void * xmlOutputOpenCallback (char const * filename)<br/>
+</pre><p>Callback used in the I/O Output API to open the resource</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an Output context or NULL in case or error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputWriteCallback"/>Function type xmlOutputWriteCallback</h3><pre class="programlisting">int xmlOutputWriteCallback (void * context, <br/> const char * buffer, <br/> int len)<br/>
+</pre><p>Callback used in the I/O Output API to write to the resource</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Output context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>the buffer of data to write</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the buffer in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAllocOutputBuffer"/>xmlAllocOutputBuffer ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlAllocOutputBuffer (<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br/>
+</pre><p>Create a buffered parser output</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAllocParserInputBuffer"/>xmlAllocParserInputBuffer ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlAllocParserInputBuffer (<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a buffered parser input for progressive parsing</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCheckFilename"/>xmlCheckFilename ()</h3><pre class="programlisting">int xmlCheckFilename (const char * path)<br/>
+</pre><p>function checks to see if @path is a valid source (file, socket...) for XML. if stat is not available on the target machine,</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>the path to check</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1. if stat fails, returns 0 (if calling stat on the filename fails, it can't be right). if stat succeeds and the file is a directory, returns 2. otherwise returns 1.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCheckHTTPInput"/>xmlCheckHTTPInput ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlCheckHTTPInput (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> ret)<br/>
+</pre><p>Check an input in case it was created from an HTTP stream, in that case it will handle encoding and update of the base URL in case of redirection. It also checks for HTTP errors in which case the input is cleanly freed up and an appropriate error is raised in context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>ret</tt></i>:</span></td><td>an XML parser input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the input or NULL in case of HTTP error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCleanupInputCallbacks"/>xmlCleanupInputCallbacks ()</h3><pre class="programlisting">void xmlCleanupInputCallbacks (void)<br/>
+</pre><p>clears the entire input callback table. this includes the compiled-in I/O.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCleanupOutputCallbacks"/>xmlCleanupOutputCallbacks ()</h3><pre class="programlisting">void xmlCleanupOutputCallbacks (void)<br/>
+</pre><p>clears the entire output callback table. this includes the compiled-in I/O callbacks.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFileClose"/>xmlFileClose ()</h3><pre class="programlisting">int xmlFileClose (void * context)<br/>
+</pre><p>Close an I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFileMatch"/>xmlFileMatch ()</h3><pre class="programlisting">int xmlFileMatch (const char * filename)<br/>
+</pre><p>input from FILE *</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if matches, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFileOpen"/>xmlFileOpen ()</h3><pre class="programlisting">void * xmlFileOpen (const char * filename)<br/>
+</pre><p>Wrapper around xmlFileOpen_real that try it with an unescaped version of @filename, if this fails fallback to @filename</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a handler or NULL in case or failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFileRead"/>xmlFileRead ()</h3><pre class="programlisting">int xmlFileRead (void * context, <br/> char * buffer, <br/> int len)<br/>
+</pre><p>Read @len bytes to @buffer from the I/O channel.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>where to drop data</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>number of bytes to write</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or &lt; 0 in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeParserInputBuffer"/>xmlFreeParserInputBuffer ()</h3><pre class="programlisting">void xmlFreeParserInputBuffer (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in)<br/>
+</pre><p>Free up the memory used by a buffered parser input</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIOFTPClose"/>xmlIOFTPClose ()</h3><pre class="programlisting">int xmlIOFTPClose (void * context)<br/>
+</pre><p>Close an FTP I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIOFTPMatch"/>xmlIOFTPMatch ()</h3><pre class="programlisting">int xmlIOFTPMatch (const char * filename)<br/>
+</pre><p>check if the URI matches an FTP one</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if matches, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIOFTPOpen"/>xmlIOFTPOpen ()</h3><pre class="programlisting">void * xmlIOFTPOpen (const char * filename)<br/>
+</pre><p>open an FTP I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an I/O context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIOFTPRead"/>xmlIOFTPRead ()</h3><pre class="programlisting">int xmlIOFTPRead (void * context, <br/> char * buffer, <br/> int len)<br/>
+</pre><p>Read @len bytes to @buffer from the I/O channel.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>where to drop data</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>number of bytes to write</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIOHTTPClose"/>xmlIOHTTPClose ()</h3><pre class="programlisting">int xmlIOHTTPClose (void * context)<br/>
+</pre><p>Close an HTTP I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIOHTTPMatch"/>xmlIOHTTPMatch ()</h3><pre class="programlisting">int xmlIOHTTPMatch (const char * filename)<br/>
+</pre><p>check if the URI matches an HTTP one</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if matches, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIOHTTPOpen"/>xmlIOHTTPOpen ()</h3><pre class="programlisting">void * xmlIOHTTPOpen (const char * filename)<br/>
+</pre><p>open an HTTP I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an I/O context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIOHTTPOpenW"/>xmlIOHTTPOpenW ()</h3><pre class="programlisting">void * xmlIOHTTPOpenW (const char * post_uri, <br/> int compression)<br/>
+</pre><p>Open a temporary buffer to collect the document for a subsequent HTTP POST request. Non-static as is called from the output buffer creation routine.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>post_uri</tt></i>:</span></td><td>The destination URI for the document</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>The compression desired for the document.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an I/O context or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlIOHTTPRead"/>xmlIOHTTPRead ()</h3><pre class="programlisting">int xmlIOHTTPRead (void * context, <br/> char * buffer, <br/> int len)<br/>
+</pre><p>Read @len bytes to @buffer from the I/O channel.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>where to drop data</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>number of bytes to write</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNoNetExternalEntityLoader"/>xmlNoNetExternalEntityLoader ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNoNetExternalEntityLoader (const char * URL, <br/> const char * ID, <br/> <a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
+</pre><p>A specific entity loader disabling network accesses, though still allowing local catalog accesses for resolution.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the System ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context in which the entity is called or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new allocated xmlParserInputPtr, or NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNormalizeWindowsPath"/>xmlNormalizeWindowsPath ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlNormalizeWindowsPath (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * path)<br/>
+</pre><p>This function is obsolete. Please see xmlURIFromPath in uri.c for a better solution.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>the input file path</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a canonicalized version of the path</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferClose"/>xmlOutputBufferClose ()</h3><pre class="programlisting">int xmlOutputBufferClose (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br/>
+</pre><p>flushes and close the output I/O channel and free up all the associated resources</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateBuffer"/>xmlOutputBufferCreateBuffer ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateBuffer (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br/>
+</pre><p>Create a buffered output for the progressive saving to a <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateFd"/>xmlOutputBufferCreateFd ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFd (int fd, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br/>
+</pre><p>Create a buffered output for the progressive saving to a file descriptor</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>a file descriptor number</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateFile"/>xmlOutputBufferCreateFile ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFile (FILE * file, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br/>
+</pre><p>Create a buffered output for the progressive saving to a FILE * buffered C I/O</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>a FILE*</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateFilename"/>xmlOutputBufferCreateFilename ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFilename (const char * URI, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder, <br/> int compression)<br/>
+</pre><p>Create a buffered output for the progressive saving of a file If filename is "-' then we use stdout as the output. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. TODO: currently if compression is set, the library only support writing to a local file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>a C string containing the URI or filename</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>the compression ration (0 none, 9 max).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new output or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateIO"/>xmlOutputBufferCreateIO ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateIO (<a href="libxml2-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite, <br/> <a href="libxml2-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br/>
+</pre><p>Create a buffered output for the progressive saving to an I/O handler</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>iowrite</tt></i>:</span></td><td>an I/O write function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferFlush"/>xmlOutputBufferFlush ()</h3><pre class="programlisting">int xmlOutputBufferFlush (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br/>
+</pre><p>flushes the output I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferGetContent"/>xmlOutputBufferGetContent ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlOutputBufferGetContent (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br/>
+</pre><p>Gives a pointer to the data currently held in the output buffer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the data or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferGetSize"/>xmlOutputBufferGetSize ()</h3><pre class="programlisting">size_t xmlOutputBufferGetSize (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br/>
+</pre><p>Gives the length of the data currently held in the output buffer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case or error or no data is held, the size otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferWrite"/>xmlOutputBufferWrite ()</h3><pre class="programlisting">int xmlOutputBufferWrite (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br/> int len, <br/> const char * buf)<br/>
+</pre><p>Write the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered parser output</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size in bytes of the array.</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars immediately written, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferWriteEscape"/>xmlOutputBufferWriteEscape ()</h3><pre class="programlisting">int xmlOutputBufferWriteEscape (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escaping)<br/>
+</pre><p>Write the content of the string in the output I/O buffer This routine escapes the <a href="libxml2-SAX.html#characters">characters</a> and then handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered parser output</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>a zero terminated UTF-8 string</td></tr><tr><td><span class="term"><i><tt>escaping</tt></i>:</span></td><td>an optional escaping function (or NULL)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars immediately written, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlOutputBufferWriteString"/>xmlOutputBufferWriteString ()</h3><pre class="programlisting">int xmlOutputBufferWriteString (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br/> const char * str)<br/>
+</pre><p>Write the content of the string in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered parser output</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>a zero terminated C string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars immediately written, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserGetDirectory"/>xmlParserGetDirectory ()</h3><pre class="programlisting">char * xmlParserGetDirectory (const char * filename)<br/>
+</pre><p>lookup the directory for that file</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the path to a file</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new allocated string containing the directory, or NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateFd"/>xmlParserInputBufferCreateFd ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFd (int fd, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a buffered parser input for the progressive parsing for the input from a file descriptor</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>a file descriptor number</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateFile"/>xmlParserInputBufferCreateFile ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFile (FILE * file, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a buffered parser input for the progressive parsing of a FILE * buffered C I/O</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>a FILE*</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateFilename"/>xmlParserInputBufferCreateFilename ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFilename (const char * URI, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a buffered parser input for the progressive parsing of a file If filename is "-' then we use stdin as the input. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. Do an encoding check if enc == <a href="libxml2-encoding.html#XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>a C string containing the URI or filename</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateIO"/>xmlParserInputBufferCreateIO ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateIO (<a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a buffered parser input for the progressive parsing for the input from an I/O handler</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateMem"/>xmlParserInputBufferCreateMem ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateMem (const char * mem, <br/> int size, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a buffered parser input for the progressive parsing for the input from a memory area.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>the memory input</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the length of the memory block</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateStatic"/>xmlParserInputBufferCreateStatic ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateStatic (const char * mem, <br/> int size, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br/>
+</pre><p>Create a buffered parser input for the progressive parsing for the input from an immutable memory area. This will not copy the memory area to the buffer, but the memory is expected to be available until the end of the parsing, this is useful for example when using mmap'ed file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>the memory input</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the length of the memory block</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferGrow"/>xmlParserInputBufferGrow ()</h3><pre class="programlisting">int xmlParserInputBufferGrow (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br/> int len)<br/>
+</pre><p>Grow up the content of the input buffer, the old data are preserved This routine handle the I18N transcoding to internal UTF-8 This routine is used when operating the parser in normal (pull) mode TODO: one should be able to remove one extra copy by copying directly onto in-&gt;buffer or in-&gt;raw</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>indicative value of the amount of chars to read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars read and stored in the buffer, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferPush"/>xmlParserInputBufferPush ()</h3><pre class="programlisting">int xmlParserInputBufferPush (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br/> int len, <br/> const char * buf)<br/>
+</pre><p>Push the content of the arry in the input buffer This routine handle the I18N transcoding to internal UTF-8 This is used when operating the parser in progressive (push) mode.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size in bytes of the array.</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars read and stored in the buffer, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferRead"/>xmlParserInputBufferRead ()</h3><pre class="programlisting">int xmlParserInputBufferRead (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br/> int len)<br/>
+</pre><p>Refresh the content of the input buffer, the old data are considered consumed This routine handle the I18N transcoding to internal UTF-8</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>indicative value of the amount of chars to read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars read and stored in the buffer, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPopInputCallbacks"/>xmlPopInputCallbacks ()</h3><pre class="programlisting">int xmlPopInputCallbacks (void)<br/>
+</pre><p>Clear the top input callback from the input stack. this includes the compiled-in I/O.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of input callback registered or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegisterDefaultInputCallbacks"/>xmlRegisterDefaultInputCallbacks ()</h3><pre class="programlisting">void xmlRegisterDefaultInputCallbacks (void)<br/>
+</pre><p>Registers the default compiled-in I/O handlers.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegisterDefaultOutputCallbacks"/>xmlRegisterDefaultOutputCallbacks ()</h3><pre class="programlisting">void xmlRegisterDefaultOutputCallbacks (void)<br/>
+</pre><p>Registers the default compiled-in I/O handlers.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegisterHTTPPostCallbacks"/>xmlRegisterHTTPPostCallbacks ()</h3><pre class="programlisting">void xmlRegisterHTTPPostCallbacks (void)<br/>
+</pre><p>By default, libxml submits HTTP output requests using the "PUT" method. Calling this method changes the HTTP output method to use the "POST" method instead.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegisterInputCallbacks"/>xmlRegisterInputCallbacks ()</h3><pre class="programlisting">int xmlRegisterInputCallbacks (<a href="libxml2-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a> matchFunc, <br/> <a href="libxml2-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a> openFunc, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> readFunc, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> closeFunc)<br/>
+</pre><p>Register a new set of I/O callback for handling parser input.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>matchFunc</tt></i>:</span></td><td>the <a href="libxml2-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a></td></tr><tr><td><span class="term"><i><tt>openFunc</tt></i>:</span></td><td>the <a href="libxml2-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a></td></tr><tr><td><span class="term"><i><tt>readFunc</tt></i>:</span></td><td>the <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a></td></tr><tr><td><span class="term"><i><tt>closeFunc</tt></i>:</span></td><td>the <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the registered handler number or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegisterOutputCallbacks"/>xmlRegisterOutputCallbacks ()</h3><pre class="programlisting">int xmlRegisterOutputCallbacks (<a href="libxml2-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a> matchFunc, <br/> <a href="libxml2-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a> openFunc, <br/> <a href="libxml2-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> writeFunc, <br/> <a href="libxml2-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> closeFunc)<br/>
+</pre><p>Register a new set of I/O callback for handling output.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>matchFunc</tt></i>:</span></td><td>the <a href="libxml2-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a></td></tr><tr><td><span class="term"><i><tt>openFunc</tt></i>:</span></td><td>the <a href="libxml2-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a></td></tr><tr><td><span class="term"><i><tt>writeFunc</tt></i>:</span></td><td>the <a href="libxml2-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a></td></tr><tr><td><span class="term"><i><tt>closeFunc</tt></i>:</span></td><td>the <a href="libxml2-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the registered handler number or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlautomata.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlautomata.html
new file mode 100644
index 0000000..601028b
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlautomata.html
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlautomata: API to build regexp automata</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlIO.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlerror.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlautomata</span>
+ </h2>
+ <p>xmlautomata - API to build regexp automata</p>
+ <p>the API to build regexp automata </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef <a href="libxml2-xmlautomata.html#xmlAutomataState">xmlAutomataState</a> * <a href="#xmlAutomataStatePtr">xmlAutomataStatePtr</a>;
+typedef struct _xmlAutomata <a href="#xmlAutomata">xmlAutomata</a>;
+typedef <a href="libxml2-xmlautomata.html#xmlAutomata">xmlAutomata</a> * <a href="#xmlAutomataPtr">xmlAutomataPtr</a>;
+typedef struct _xmlAutomataState <a href="#xmlAutomataState">xmlAutomataState</a>;
+void <a href="#xmlFreeAutomata">xmlFreeAutomata</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am);
+int <a href="#xmlAutomataNewCounter">xmlAutomataNewCounter</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> int min, <br/> int max);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataGetInitState">xmlAutomataGetInitState</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token2, <br/> void * data);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewState">xmlAutomataNewState</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> int min, <br/> int max, <br/> void * data);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token2, <br/> int min, <br/> int max, <br/> void * data);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> int lax);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> int counter);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> int counter);
+<a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> <a href="#xmlAutomataCompile">xmlAutomataCompile</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token2, <br/> void * data);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token2, <br/> int min, <br/> int max, <br/> void * data);
+<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> <a href="#xmlNewAutomata">xmlNewAutomata</a> (void);
+int <a href="#xmlAutomataSetFinalState">xmlAutomataSetFinalState</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> state);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> int min, <br/> int max, <br/> void * data);
+<a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewTransition">xmlAutomataNewTransition</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> void * data);
+int <a href="#xmlAutomataIsDeterminist">xmlAutomataIsDeterminist</a> (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomata">Structure </a>xmlAutomata</h3><pre class="programlisting">struct _xmlAutomata {
+The content of this structure is not made public by the API.
+} xmlAutomata;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataPtr">Typedef </a>xmlAutomataPtr</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomata">xmlAutomata</a> * xmlAutomataPtr;
+</pre><p>A libxml automata description, It can be compiled into a regexp</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataState">Structure </a>xmlAutomataState</h3><pre class="programlisting">struct _xmlAutomataState {
+The content of this structure is not made public by the API.
+} xmlAutomataState;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataStatePtr">Typedef </a>xmlAutomataStatePtr</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataState">xmlAutomataState</a> * xmlAutomataStatePtr;
+</pre><p>A state int the automata description,</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataCompile"/>xmlAutomataCompile ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> xmlAutomataCompile (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)<br/>
+</pre><p>Compile the automata into a Reg Exp ready for being executed. The automata should be free after this point.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the compiled regexp or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataGetInitState"/>xmlAutomataGetInitState ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataGetInitState (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)<br/>
+</pre><p>Initial state lookup</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the initial state of the automata</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataIsDeterminist"/>xmlAutomataIsDeterminist ()</h3><pre class="programlisting">int xmlAutomataIsDeterminist (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)<br/>
+</pre><p>Checks if an automata is determinist.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if not, and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewAllTrans"/>xmlAutomataNewAllTrans ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewAllTrans (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> int lax)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a an ALL transition from the @from state to the target state. That transition is an epsilon transition allowed only when all transitions from the @from node have been activated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>lax</tt></i>:</span></td><td>allow to transition if not all all transitions have been activated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewCountTrans"/>xmlAutomataNewCountTrans ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewCountTrans (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> int min, <br/> int max, <br/> void * data)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewCountTrans2"/>xmlAutomataNewCountTrans2 ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewCountTrans2 (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token2, <br/> int min, <br/> int max, <br/> void * data)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>token2</tt></i>:</span></td><td>the second input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewCountedTrans"/>xmlAutomataNewCountedTrans ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewCountedTrans (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> int counter)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will increment the counter provided</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>counter</tt></i>:</span></td><td>the counter associated to that transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewCounter"/>xmlAutomataNewCounter ()</h3><pre class="programlisting">int xmlAutomataNewCounter (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> int min, <br/> int max)<br/>
+</pre><p>Create a new counter</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimal value on the counter</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximal value on the counter</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the counter number or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewCounterTrans"/>xmlAutomataNewCounterTrans ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewCounterTrans (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> int counter)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will be allowed only if the counter is within the right range.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>counter</tt></i>:</span></td><td>the counter associated to that transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewEpsilon"/>xmlAutomataNewEpsilon ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewEpsilon (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewNegTrans"/>xmlAutomataNewNegTrans ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewNegTrans (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token2, <br/> void * data)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by any value except (@token,@token2) Note that if @token2 is not NULL, then (X, NULL) won't match to follow # the semantic of XSD ##other</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the first input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>token2</tt></i>:</span></td><td>the second input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data passed to the callback function if the transition is activated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewOnceTrans"/>xmlAutomataNewOnceTrans ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewOnceTrans (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> int min, <br/> int max, <br/> void * data)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max, moreover that transition can only be crossed once.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewOnceTrans2"/>xmlAutomataNewOnceTrans2 ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewOnceTrans2 (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token2, <br/> int min, <br/> int max, <br/> void * data)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max, moreover that transition can only be crossed once.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>token2</tt></i>:</span></td><td>the second input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewState"/>xmlAutomataNewState ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewState (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)<br/>
+</pre><p>Create a new disconnected state in the automata</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewTransition"/>xmlAutomataNewTransition ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewTransition (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> void * data)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data passed to the callback function if the transition is activated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataNewTransition2"/>xmlAutomataNewTransition2 ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewTransition2 (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token2, <br/> void * data)<br/>
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the first input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>token2</tt></i>:</span></td><td>the second input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data passed to the callback function if the transition is activated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlAutomataSetFinalState"/>xmlAutomataSetFinalState ()</h3><pre class="programlisting">int xmlAutomataSetFinalState (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br/> <a href="libxml2-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> state)<br/>
+</pre><p>Makes that state a final state</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>state</tt></i>:</span></td><td>a state in this automata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeAutomata"/>xmlFreeAutomata ()</h3><pre class="programlisting">void xmlFreeAutomata (<a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)<br/>
+</pre><p>Free an automata</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewAutomata"/>xmlNewAutomata ()</h3><pre class="programlisting"><a href="libxml2-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> xmlNewAutomata (void)<br/>
+</pre><p>Create a new automata</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new object or NULL in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlerror.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlerror.html
new file mode 100644
index 0000000..a663b0d
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlerror.html
@@ -0,0 +1,953 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlerror: error handling</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlautomata.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlexports.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlerror</span>
+ </h2>
+ <p>xmlerror - error handling</p>
+ <p>the API used to report errors </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef <a href="libxml2-xmlerror.html#xmlError">xmlError</a> * <a href="#xmlErrorPtr">xmlErrorPtr</a>;
+typedef enum <a href="#xmlErrorLevel">xmlErrorLevel</a>;
+typedef enum <a href="#xmlParserErrors">xmlParserErrors</a>;
+typedef enum <a href="#xmlErrorDomain">xmlErrorDomain</a>;
+typedef struct _xmlError <a href="#xmlError">xmlError</a>;
+void <a href="#xmlParserValidityError">xmlParserValidityError</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+typedef void <a href="#xmlGenericErrorFunc">xmlGenericErrorFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+void <a href="#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a> (void * ctx, <br/> <a href="libxml2-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> handler);
+void <a href="#xmlParserPrintFileInfo">xmlParserPrintFileInfo</a> (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input);
+void <a href="#xmlCtxtResetLastError">xmlCtxtResetLastError</a> (void * ctx);
+void <a href="#xmlResetLastError">xmlResetLastError</a> (void);
+void <a href="#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a> (<a href="libxml2-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> * handler);
+int <a href="#xmlCopyError">xmlCopyError</a> (<a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> from, <br/> <a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> to);
+void <a href="#xmlParserValidityWarning">xmlParserValidityWarning</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+void <a href="#xmlParserPrintFileContext">xmlParserPrintFileContext</a> (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input);
+void <a href="#xmlParserError">xmlParserError</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+void <a href="#xmlParserWarning">xmlParserWarning</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+typedef void <a href="#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> (void * userData, <br/> <a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> error);
+void <a href="#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a> (void * ctx, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> handler);
+void <a href="#xmlResetError">xmlResetError</a> (<a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> err);
+<a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> <a href="#xmlGetLastError">xmlGetLastError</a> (void);
+<a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> <a href="#xmlCtxtGetLastError">xmlCtxtGetLastError</a> (void * ctx);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlError">Structure </a>xmlError</h3><pre class="programlisting">struct _xmlError {
+ int domain : What part of the library raised this error
+ int code : The error code, e.g. an <a href="libxml2-xmlerror.html#xmlParserError">xmlParserError</a>
+ char * message : human-readable informative error message
+ <a href="libxml2-xmlerror.html#xmlErrorLevel">xmlErrorLevel</a> level : how consequent is the error
+ char * file : the filename
+ int line : the line number if available
+ char * str1 : extra string information
+ char * str2 : extra string information
+ char * str3 : extra string information
+ int int1 : extra number information
+ int int2 : error column # or 0 if N/A (todo: rename field when we would brk ABI)
+ void * ctxt : the parser context if available
+ void * node : the node in the tree
+} xmlError;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlErrorDomain">Enum </a>xmlErrorDomain</h3><pre class="programlisting">enum <a href="#xmlErrorDomain">xmlErrorDomain</a> {
+ <a name="XML_FROM_NONE">XML_FROM_NONE</a> = 0
+ <a name="XML_FROM_PARSER">XML_FROM_PARSER</a> = 1 /* The XML parser */
+ <a name="XML_FROM_TREE">XML_FROM_TREE</a> = 2 /* The tree module */
+ <a name="XML_FROM_NAMESPACE">XML_FROM_NAMESPACE</a> = 3 /* The XML Namespace module */
+ <a name="XML_FROM_DTD">XML_FROM_DTD</a> = 4 /* The XML DTD validation with parser contex */
+ <a name="XML_FROM_HTML">XML_FROM_HTML</a> = 5 /* The HTML parser */
+ <a name="XML_FROM_MEMORY">XML_FROM_MEMORY</a> = 6 /* The memory allocator */
+ <a name="XML_FROM_OUTPUT">XML_FROM_OUTPUT</a> = 7 /* The serialization code */
+ <a name="XML_FROM_IO">XML_FROM_IO</a> = 8 /* The Input/Output stack */
+ <a name="XML_FROM_FTP">XML_FROM_FTP</a> = 9 /* The FTP module */
+ <a name="XML_FROM_HTTP">XML_FROM_HTTP</a> = 10 /* The HTTP module */
+ <a name="XML_FROM_XINCLUDE">XML_FROM_XINCLUDE</a> = 11 /* The XInclude processing */
+ <a name="XML_FROM_XPATH">XML_FROM_XPATH</a> = 12 /* The XPath module */
+ <a name="XML_FROM_XPOINTER">XML_FROM_XPOINTER</a> = 13 /* The XPointer module */
+ <a name="XML_FROM_REGEXP">XML_FROM_REGEXP</a> = 14 /* The regular expressions module */
+ <a name="XML_FROM_DATATYPE">XML_FROM_DATATYPE</a> = 15 /* The W3C XML Schemas Datatype module */
+ <a name="XML_FROM_SCHEMASP">XML_FROM_SCHEMASP</a> = 16 /* The W3C XML Schemas parser module */
+ <a name="XML_FROM_SCHEMASV">XML_FROM_SCHEMASV</a> = 17 /* The W3C XML Schemas validation module */
+ <a name="XML_FROM_RELAXNGP">XML_FROM_RELAXNGP</a> = 18 /* The Relax-NG parser module */
+ <a name="XML_FROM_RELAXNGV">XML_FROM_RELAXNGV</a> = 19 /* The Relax-NG validator module */
+ <a name="XML_FROM_CATALOG">XML_FROM_CATALOG</a> = 20 /* The Catalog module */
+ <a name="XML_FROM_C14N">XML_FROM_C14N</a> = 21 /* The Canonicalization module */
+ <a name="XML_FROM_XSLT">XML_FROM_XSLT</a> = 22 /* The XSLT engine from libxslt */
+ <a name="XML_FROM_VALID">XML_FROM_VALID</a> = 23 /* The XML DTD validation with valid context */
+ <a name="XML_FROM_CHECK">XML_FROM_CHECK</a> = 24 /* The error checking module */
+ <a name="XML_FROM_WRITER">XML_FROM_WRITER</a> = 25 /* The xmlwriter module */
+ <a name="XML_FROM_MODULE">XML_FROM_MODULE</a> = 26 /* The dynamically loaded module modul */
+ <a name="XML_FROM_I18N">XML_FROM_I18N</a> = 27 /* The module handling character conversion */
+ <a name="XML_FROM_SCHEMATRONV">XML_FROM_SCHEMATRONV</a> = 28 /* The Schematron validator module */
+ <a name="XML_FROM_BUFFER">XML_FROM_BUFFER</a> = 29 /* The buffers module */
+ <a name="XML_FROM_URI">XML_FROM_URI</a> = 30 /* The URI module */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlErrorLevel">Enum </a>xmlErrorLevel</h3><pre class="programlisting">enum <a href="#xmlErrorLevel">xmlErrorLevel</a> {
+ <a name="XML_ERR_NONE">XML_ERR_NONE</a> = 0
+ <a name="XML_ERR_WARNING">XML_ERR_WARNING</a> = 1 /* A simple warning */
+ <a name="XML_ERR_ERROR">XML_ERR_ERROR</a> = 2 /* A recoverable error */
+ <a name="XML_ERR_FATAL">XML_ERR_FATAL</a> = 3 /* A fatal error */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlErrorPtr">Typedef </a>xmlErrorPtr</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlError">xmlError</a> * xmlErrorPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserErrors">Enum </a>xmlParserErrors</h3><pre class="programlisting">enum <a href="#xmlParserErrors">xmlParserErrors</a> {
+ <a name="XML_ERR_OK">XML_ERR_OK</a> = 0
+ <a name="XML_ERR_INTERNAL_ERROR">XML_ERR_INTERNAL_ERROR</a> = 1 /* 1 */
+ <a name="XML_ERR_NO_MEMORY">XML_ERR_NO_MEMORY</a> = 2 /* 2 */
+ <a name="XML_ERR_DOCUMENT_START">XML_ERR_DOCUMENT_START</a> = 3 /* 3 */
+ <a name="XML_ERR_DOCUMENT_EMPTY">XML_ERR_DOCUMENT_EMPTY</a> = 4 /* 4 */
+ <a name="XML_ERR_DOCUMENT_END">XML_ERR_DOCUMENT_END</a> = 5 /* 5 */
+ <a name="XML_ERR_INVALID_HEX_CHARREF">XML_ERR_INVALID_HEX_CHARREF</a> = 6 /* 6 */
+ <a name="XML_ERR_INVALID_DEC_CHARREF">XML_ERR_INVALID_DEC_CHARREF</a> = 7 /* 7 */
+ <a name="XML_ERR_INVALID_CHARREF">XML_ERR_INVALID_CHARREF</a> = 8 /* 8 */
+ <a name="XML_ERR_INVALID_CHAR">XML_ERR_INVALID_CHAR</a> = 9 /* 9 */
+ <a name="XML_ERR_CHARREF_AT_EOF">XML_ERR_CHARREF_AT_EOF</a> = 10 /* 10 */
+ <a name="XML_ERR_CHARREF_IN_PROLOG">XML_ERR_CHARREF_IN_PROLOG</a> = 11 /* 11 */
+ <a name="XML_ERR_CHARREF_IN_EPILOG">XML_ERR_CHARREF_IN_EPILOG</a> = 12 /* 12 */
+ <a name="XML_ERR_CHARREF_IN_DTD">XML_ERR_CHARREF_IN_DTD</a> = 13 /* 13 */
+ <a name="XML_ERR_ENTITYREF_AT_EOF">XML_ERR_ENTITYREF_AT_EOF</a> = 14 /* 14 */
+ <a name="XML_ERR_ENTITYREF_IN_PROLOG">XML_ERR_ENTITYREF_IN_PROLOG</a> = 15 /* 15 */
+ <a name="XML_ERR_ENTITYREF_IN_EPILOG">XML_ERR_ENTITYREF_IN_EPILOG</a> = 16 /* 16 */
+ <a name="XML_ERR_ENTITYREF_IN_DTD">XML_ERR_ENTITYREF_IN_DTD</a> = 17 /* 17 */
+ <a name="XML_ERR_PEREF_AT_EOF">XML_ERR_PEREF_AT_EOF</a> = 18 /* 18 */
+ <a name="XML_ERR_PEREF_IN_PROLOG">XML_ERR_PEREF_IN_PROLOG</a> = 19 /* 19 */
+ <a name="XML_ERR_PEREF_IN_EPILOG">XML_ERR_PEREF_IN_EPILOG</a> = 20 /* 20 */
+ <a name="XML_ERR_PEREF_IN_INT_SUBSET">XML_ERR_PEREF_IN_INT_SUBSET</a> = 21 /* 21 */
+ <a name="XML_ERR_ENTITYREF_NO_NAME">XML_ERR_ENTITYREF_NO_NAME</a> = 22 /* 22 */
+ <a name="XML_ERR_ENTITYREF_SEMICOL_MISSING">XML_ERR_ENTITYREF_SEMICOL_MISSING</a> = 23 /* 23 */
+ <a name="XML_ERR_PEREF_NO_NAME">XML_ERR_PEREF_NO_NAME</a> = 24 /* 24 */
+ <a name="XML_ERR_PEREF_SEMICOL_MISSING">XML_ERR_PEREF_SEMICOL_MISSING</a> = 25 /* 25 */
+ <a name="XML_ERR_UNDECLARED_ENTITY">XML_ERR_UNDECLARED_ENTITY</a> = 26 /* 26 */
+ <a name="XML_WAR_UNDECLARED_ENTITY">XML_WAR_UNDECLARED_ENTITY</a> = 27 /* 27 */
+ <a name="XML_ERR_UNPARSED_ENTITY">XML_ERR_UNPARSED_ENTITY</a> = 28 /* 28 */
+ <a name="XML_ERR_ENTITY_IS_EXTERNAL">XML_ERR_ENTITY_IS_EXTERNAL</a> = 29 /* 29 */
+ <a name="XML_ERR_ENTITY_IS_PARAMETER">XML_ERR_ENTITY_IS_PARAMETER</a> = 30 /* 30 */
+ <a name="XML_ERR_UNKNOWN_ENCODING">XML_ERR_UNKNOWN_ENCODING</a> = 31 /* 31 */
+ <a name="XML_ERR_UNSUPPORTED_ENCODING">XML_ERR_UNSUPPORTED_ENCODING</a> = 32 /* 32 */
+ <a name="XML_ERR_STRING_NOT_STARTED">XML_ERR_STRING_NOT_STARTED</a> = 33 /* 33 */
+ <a name="XML_ERR_STRING_NOT_CLOSED">XML_ERR_STRING_NOT_CLOSED</a> = 34 /* 34 */
+ <a name="XML_ERR_NS_DECL_ERROR">XML_ERR_NS_DECL_ERROR</a> = 35 /* 35 */
+ <a name="XML_ERR_ENTITY_NOT_STARTED">XML_ERR_ENTITY_NOT_STARTED</a> = 36 /* 36 */
+ <a name="XML_ERR_ENTITY_NOT_FINISHED">XML_ERR_ENTITY_NOT_FINISHED</a> = 37 /* 37 */
+ <a name="XML_ERR_LT_IN_ATTRIBUTE">XML_ERR_LT_IN_ATTRIBUTE</a> = 38 /* 38 */
+ <a name="XML_ERR_ATTRIBUTE_NOT_STARTED">XML_ERR_ATTRIBUTE_NOT_STARTED</a> = 39 /* 39 */
+ <a name="XML_ERR_ATTRIBUTE_NOT_FINISHED">XML_ERR_ATTRIBUTE_NOT_FINISHED</a> = 40 /* 40 */
+ <a name="XML_ERR_ATTRIBUTE_WITHOUT_VALUE">XML_ERR_ATTRIBUTE_WITHOUT_VALUE</a> = 41 /* 41 */
+ <a name="XML_ERR_ATTRIBUTE_REDEFINED">XML_ERR_ATTRIBUTE_REDEFINED</a> = 42 /* 42 */
+ <a name="XML_ERR_LITERAL_NOT_STARTED">XML_ERR_LITERAL_NOT_STARTED</a> = 43 /* 43 */
+ <a name="XML_ERR_LITERAL_NOT_FINISHED">XML_ERR_LITERAL_NOT_FINISHED</a> = 44 /* 44 */
+ <a name="XML_ERR_COMMENT_NOT_FINISHED">XML_ERR_COMMENT_NOT_FINISHED</a> = 45 /* 45 */
+ <a name="XML_ERR_PI_NOT_STARTED">XML_ERR_PI_NOT_STARTED</a> = 46 /* 46 */
+ <a name="XML_ERR_PI_NOT_FINISHED">XML_ERR_PI_NOT_FINISHED</a> = 47 /* 47 */
+ <a name="XML_ERR_NOTATION_NOT_STARTED">XML_ERR_NOTATION_NOT_STARTED</a> = 48 /* 48 */
+ <a name="XML_ERR_NOTATION_NOT_FINISHED">XML_ERR_NOTATION_NOT_FINISHED</a> = 49 /* 49 */
+ <a name="XML_ERR_ATTLIST_NOT_STARTED">XML_ERR_ATTLIST_NOT_STARTED</a> = 50 /* 50 */
+ <a name="XML_ERR_ATTLIST_NOT_FINISHED">XML_ERR_ATTLIST_NOT_FINISHED</a> = 51 /* 51 */
+ <a name="XML_ERR_MIXED_NOT_STARTED">XML_ERR_MIXED_NOT_STARTED</a> = 52 /* 52 */
+ <a name="XML_ERR_MIXED_NOT_FINISHED">XML_ERR_MIXED_NOT_FINISHED</a> = 53 /* 53 */
+ <a name="XML_ERR_ELEMCONTENT_NOT_STARTED">XML_ERR_ELEMCONTENT_NOT_STARTED</a> = 54 /* 54 */
+ <a name="XML_ERR_ELEMCONTENT_NOT_FINISHED">XML_ERR_ELEMCONTENT_NOT_FINISHED</a> = 55 /* 55 */
+ <a name="XML_ERR_XMLDECL_NOT_STARTED">XML_ERR_XMLDECL_NOT_STARTED</a> = 56 /* 56 */
+ <a name="XML_ERR_XMLDECL_NOT_FINISHED">XML_ERR_XMLDECL_NOT_FINISHED</a> = 57 /* 57 */
+ <a name="XML_ERR_CONDSEC_NOT_STARTED">XML_ERR_CONDSEC_NOT_STARTED</a> = 58 /* 58 */
+ <a name="XML_ERR_CONDSEC_NOT_FINISHED">XML_ERR_CONDSEC_NOT_FINISHED</a> = 59 /* 59 */
+ <a name="XML_ERR_EXT_SUBSET_NOT_FINISHED">XML_ERR_EXT_SUBSET_NOT_FINISHED</a> = 60 /* 60 */
+ <a name="XML_ERR_DOCTYPE_NOT_FINISHED">XML_ERR_DOCTYPE_NOT_FINISHED</a> = 61 /* 61 */
+ <a name="XML_ERR_MISPLACED_CDATA_END">XML_ERR_MISPLACED_CDATA_END</a> = 62 /* 62 */
+ <a name="XML_ERR_CDATA_NOT_FINISHED">XML_ERR_CDATA_NOT_FINISHED</a> = 63 /* 63 */
+ <a name="XML_ERR_RESERVED_XML_NAME">XML_ERR_RESERVED_XML_NAME</a> = 64 /* 64 */
+ <a name="XML_ERR_SPACE_REQUIRED">XML_ERR_SPACE_REQUIRED</a> = 65 /* 65 */
+ <a name="XML_ERR_SEPARATOR_REQUIRED">XML_ERR_SEPARATOR_REQUIRED</a> = 66 /* 66 */
+ <a name="XML_ERR_NMTOKEN_REQUIRED">XML_ERR_NMTOKEN_REQUIRED</a> = 67 /* 67 */
+ <a name="XML_ERR_NAME_REQUIRED">XML_ERR_NAME_REQUIRED</a> = 68 /* 68 */
+ <a name="XML_ERR_PCDATA_REQUIRED">XML_ERR_PCDATA_REQUIRED</a> = 69 /* 69 */
+ <a name="XML_ERR_URI_REQUIRED">XML_ERR_URI_REQUIRED</a> = 70 /* 70 */
+ <a name="XML_ERR_PUBID_REQUIRED">XML_ERR_PUBID_REQUIRED</a> = 71 /* 71 */
+ <a name="XML_ERR_LT_REQUIRED">XML_ERR_LT_REQUIRED</a> = 72 /* 72 */
+ <a name="XML_ERR_GT_REQUIRED">XML_ERR_GT_REQUIRED</a> = 73 /* 73 */
+ <a name="XML_ERR_LTSLASH_REQUIRED">XML_ERR_LTSLASH_REQUIRED</a> = 74 /* 74 */
+ <a name="XML_ERR_EQUAL_REQUIRED">XML_ERR_EQUAL_REQUIRED</a> = 75 /* 75 */
+ <a name="XML_ERR_TAG_NAME_MISMATCH">XML_ERR_TAG_NAME_MISMATCH</a> = 76 /* 76 */
+ <a name="XML_ERR_TAG_NOT_FINISHED">XML_ERR_TAG_NOT_FINISHED</a> = 77 /* 77 */
+ <a name="XML_ERR_STANDALONE_VALUE">XML_ERR_STANDALONE_VALUE</a> = 78 /* 78 */
+ <a name="XML_ERR_ENCODING_NAME">XML_ERR_ENCODING_NAME</a> = 79 /* 79 */
+ <a name="XML_ERR_HYPHEN_IN_COMMENT">XML_ERR_HYPHEN_IN_COMMENT</a> = 80 /* 80 */
+ <a name="XML_ERR_INVALID_ENCODING">XML_ERR_INVALID_ENCODING</a> = 81 /* 81 */
+ <a name="XML_ERR_EXT_ENTITY_STANDALONE">XML_ERR_EXT_ENTITY_STANDALONE</a> = 82 /* 82 */
+ <a name="XML_ERR_CONDSEC_INVALID">XML_ERR_CONDSEC_INVALID</a> = 83 /* 83 */
+ <a name="XML_ERR_VALUE_REQUIRED">XML_ERR_VALUE_REQUIRED</a> = 84 /* 84 */
+ <a name="XML_ERR_NOT_WELL_BALANCED">XML_ERR_NOT_WELL_BALANCED</a> = 85 /* 85 */
+ <a name="XML_ERR_EXTRA_CONTENT">XML_ERR_EXTRA_CONTENT</a> = 86 /* 86 */
+ <a name="XML_ERR_ENTITY_CHAR_ERROR">XML_ERR_ENTITY_CHAR_ERROR</a> = 87 /* 87 */
+ <a name="XML_ERR_ENTITY_PE_INTERNAL">XML_ERR_ENTITY_PE_INTERNAL</a> = 88 /* 88 */
+ <a name="XML_ERR_ENTITY_LOOP">XML_ERR_ENTITY_LOOP</a> = 89 /* 89 */
+ <a name="XML_ERR_ENTITY_BOUNDARY">XML_ERR_ENTITY_BOUNDARY</a> = 90 /* 90 */
+ <a name="XML_ERR_INVALID_URI">XML_ERR_INVALID_URI</a> = 91 /* 91 */
+ <a name="XML_ERR_URI_FRAGMENT">XML_ERR_URI_FRAGMENT</a> = 92 /* 92 */
+ <a name="XML_WAR_CATALOG_PI">XML_WAR_CATALOG_PI</a> = 93 /* 93 */
+ <a name="XML_ERR_NO_DTD">XML_ERR_NO_DTD</a> = 94 /* 94 */
+ <a name="XML_ERR_CONDSEC_INVALID_KEYWORD">XML_ERR_CONDSEC_INVALID_KEYWORD</a> = 95 /* 95 */
+ <a name="XML_ERR_VERSION_MISSING">XML_ERR_VERSION_MISSING</a> = 96 /* 96 */
+ <a name="XML_WAR_UNKNOWN_VERSION">XML_WAR_UNKNOWN_VERSION</a> = 97 /* 97 */
+ <a name="XML_WAR_LANG_VALUE">XML_WAR_LANG_VALUE</a> = 98 /* 98 */
+ <a name="XML_WAR_NS_URI">XML_WAR_NS_URI</a> = 99 /* 99 */
+ <a name="XML_WAR_NS_URI_RELATIVE">XML_WAR_NS_URI_RELATIVE</a> = 100 /* 100 */
+ <a name="XML_ERR_MISSING_ENCODING">XML_ERR_MISSING_ENCODING</a> = 101 /* 101 */
+ <a name="XML_WAR_SPACE_VALUE">XML_WAR_SPACE_VALUE</a> = 102 /* 102 */
+ <a name="XML_ERR_NOT_STANDALONE">XML_ERR_NOT_STANDALONE</a> = 103 /* 103 */
+ <a name="XML_ERR_ENTITY_PROCESSING">XML_ERR_ENTITY_PROCESSING</a> = 104 /* 104 */
+ <a name="XML_ERR_NOTATION_PROCESSING">XML_ERR_NOTATION_PROCESSING</a> = 105 /* 105 */
+ <a name="XML_WAR_NS_COLUMN">XML_WAR_NS_COLUMN</a> = 106 /* 106 */
+ <a name="XML_WAR_ENTITY_REDEFINED">XML_WAR_ENTITY_REDEFINED</a> = 107 /* 107 */
+ <a name="XML_ERR_UNKNOWN_VERSION">XML_ERR_UNKNOWN_VERSION</a> = 108 /* 108 */
+ <a name="XML_ERR_VERSION_MISMATCH">XML_ERR_VERSION_MISMATCH</a> = 109 /* 109 */
+ <a name="XML_ERR_NAME_TOO_LONG">XML_ERR_NAME_TOO_LONG</a> = 110 /* 110 */
+ <a name="XML_ERR_USER_STOP">XML_ERR_USER_STOP</a> = 111 /* 111 */
+ <a name="XML_NS_ERR_XML_NAMESPACE">XML_NS_ERR_XML_NAMESPACE</a> = 200
+ <a name="XML_NS_ERR_UNDEFINED_NAMESPACE">XML_NS_ERR_UNDEFINED_NAMESPACE</a> = 201 /* 201 */
+ <a name="XML_NS_ERR_QNAME">XML_NS_ERR_QNAME</a> = 202 /* 202 */
+ <a name="XML_NS_ERR_ATTRIBUTE_REDEFINED">XML_NS_ERR_ATTRIBUTE_REDEFINED</a> = 203 /* 203 */
+ <a name="XML_NS_ERR_EMPTY">XML_NS_ERR_EMPTY</a> = 204 /* 204 */
+ <a name="XML_NS_ERR_COLON">XML_NS_ERR_COLON</a> = 205 /* 205 */
+ <a name="XML_DTD_ATTRIBUTE_DEFAULT">XML_DTD_ATTRIBUTE_DEFAULT</a> = 500
+ <a name="XML_DTD_ATTRIBUTE_REDEFINED">XML_DTD_ATTRIBUTE_REDEFINED</a> = 501 /* 501 */
+ <a name="XML_DTD_ATTRIBUTE_VALUE">XML_DTD_ATTRIBUTE_VALUE</a> = 502 /* 502 */
+ <a name="XML_DTD_CONTENT_ERROR">XML_DTD_CONTENT_ERROR</a> = 503 /* 503 */
+ <a name="XML_DTD_CONTENT_MODEL">XML_DTD_CONTENT_MODEL</a> = 504 /* 504 */
+ <a name="XML_DTD_CONTENT_NOT_DETERMINIST">XML_DTD_CONTENT_NOT_DETERMINIST</a> = 505 /* 505 */
+ <a name="XML_DTD_DIFFERENT_PREFIX">XML_DTD_DIFFERENT_PREFIX</a> = 506 /* 506 */
+ <a name="XML_DTD_ELEM_DEFAULT_NAMESPACE">XML_DTD_ELEM_DEFAULT_NAMESPACE</a> = 507 /* 507 */
+ <a name="XML_DTD_ELEM_NAMESPACE">XML_DTD_ELEM_NAMESPACE</a> = 508 /* 508 */
+ <a name="XML_DTD_ELEM_REDEFINED">XML_DTD_ELEM_REDEFINED</a> = 509 /* 509 */
+ <a name="XML_DTD_EMPTY_NOTATION">XML_DTD_EMPTY_NOTATION</a> = 510 /* 510 */
+ <a name="XML_DTD_ENTITY_TYPE">XML_DTD_ENTITY_TYPE</a> = 511 /* 511 */
+ <a name="XML_DTD_ID_FIXED">XML_DTD_ID_FIXED</a> = 512 /* 512 */
+ <a name="XML_DTD_ID_REDEFINED">XML_DTD_ID_REDEFINED</a> = 513 /* 513 */
+ <a name="XML_DTD_ID_SUBSET">XML_DTD_ID_SUBSET</a> = 514 /* 514 */
+ <a name="XML_DTD_INVALID_CHILD">XML_DTD_INVALID_CHILD</a> = 515 /* 515 */
+ <a name="XML_DTD_INVALID_DEFAULT">XML_DTD_INVALID_DEFAULT</a> = 516 /* 516 */
+ <a name="XML_DTD_LOAD_ERROR">XML_DTD_LOAD_ERROR</a> = 517 /* 517 */
+ <a name="XML_DTD_MISSING_ATTRIBUTE">XML_DTD_MISSING_ATTRIBUTE</a> = 518 /* 518 */
+ <a name="XML_DTD_MIXED_CORRUPT">XML_DTD_MIXED_CORRUPT</a> = 519 /* 519 */
+ <a name="XML_DTD_MULTIPLE_ID">XML_DTD_MULTIPLE_ID</a> = 520 /* 520 */
+ <a name="XML_DTD_NO_DOC">XML_DTD_NO_DOC</a> = 521 /* 521 */
+ <a name="XML_DTD_NO_DTD">XML_DTD_NO_DTD</a> = 522 /* 522 */
+ <a name="XML_DTD_NO_ELEM_NAME">XML_DTD_NO_ELEM_NAME</a> = 523 /* 523 */
+ <a name="XML_DTD_NO_PREFIX">XML_DTD_NO_PREFIX</a> = 524 /* 524 */
+ <a name="XML_DTD_NO_ROOT">XML_DTD_NO_ROOT</a> = 525 /* 525 */
+ <a name="XML_DTD_NOTATION_REDEFINED">XML_DTD_NOTATION_REDEFINED</a> = 526 /* 526 */
+ <a name="XML_DTD_NOTATION_VALUE">XML_DTD_NOTATION_VALUE</a> = 527 /* 527 */
+ <a name="XML_DTD_NOT_EMPTY">XML_DTD_NOT_EMPTY</a> = 528 /* 528 */
+ <a name="XML_DTD_NOT_PCDATA">XML_DTD_NOT_PCDATA</a> = 529 /* 529 */
+ <a name="XML_DTD_NOT_STANDALONE">XML_DTD_NOT_STANDALONE</a> = 530 /* 530 */
+ <a name="XML_DTD_ROOT_NAME">XML_DTD_ROOT_NAME</a> = 531 /* 531 */
+ <a name="XML_DTD_STANDALONE_WHITE_SPACE">XML_DTD_STANDALONE_WHITE_SPACE</a> = 532 /* 532 */
+ <a name="XML_DTD_UNKNOWN_ATTRIBUTE">XML_DTD_UNKNOWN_ATTRIBUTE</a> = 533 /* 533 */
+ <a name="XML_DTD_UNKNOWN_ELEM">XML_DTD_UNKNOWN_ELEM</a> = 534 /* 534 */
+ <a name="XML_DTD_UNKNOWN_ENTITY">XML_DTD_UNKNOWN_ENTITY</a> = 535 /* 535 */
+ <a name="XML_DTD_UNKNOWN_ID">XML_DTD_UNKNOWN_ID</a> = 536 /* 536 */
+ <a name="XML_DTD_UNKNOWN_NOTATION">XML_DTD_UNKNOWN_NOTATION</a> = 537 /* 537 */
+ <a name="XML_DTD_STANDALONE_DEFAULTED">XML_DTD_STANDALONE_DEFAULTED</a> = 538 /* 538 */
+ <a name="XML_DTD_XMLID_VALUE">XML_DTD_XMLID_VALUE</a> = 539 /* 539 */
+ <a name="XML_DTD_XMLID_TYPE">XML_DTD_XMLID_TYPE</a> = 540 /* 540 */
+ <a name="XML_DTD_DUP_TOKEN">XML_DTD_DUP_TOKEN</a> = 541 /* 541 */
+ <a name="XML_HTML_STRUCURE_ERROR">XML_HTML_STRUCURE_ERROR</a> = 800
+ <a name="XML_HTML_UNKNOWN_TAG">XML_HTML_UNKNOWN_TAG</a> = 801 /* 801 */
+ <a name="XML_RNGP_ANYNAME_ATTR_ANCESTOR">XML_RNGP_ANYNAME_ATTR_ANCESTOR</a> = 1000
+ <a name="XML_RNGP_ATTR_CONFLICT">XML_RNGP_ATTR_CONFLICT</a> = 1001 /* 1001 */
+ <a name="XML_RNGP_ATTRIBUTE_CHILDREN">XML_RNGP_ATTRIBUTE_CHILDREN</a> = 1002 /* 1002 */
+ <a name="XML_RNGP_ATTRIBUTE_CONTENT">XML_RNGP_ATTRIBUTE_CONTENT</a> = 1003 /* 1003 */
+ <a name="XML_RNGP_ATTRIBUTE_EMPTY">XML_RNGP_ATTRIBUTE_EMPTY</a> = 1004 /* 1004 */
+ <a name="XML_RNGP_ATTRIBUTE_NOOP">XML_RNGP_ATTRIBUTE_NOOP</a> = 1005 /* 1005 */
+ <a name="XML_RNGP_CHOICE_CONTENT">XML_RNGP_CHOICE_CONTENT</a> = 1006 /* 1006 */
+ <a name="XML_RNGP_CHOICE_EMPTY">XML_RNGP_CHOICE_EMPTY</a> = 1007 /* 1007 */
+ <a name="XML_RNGP_CREATE_FAILURE">XML_RNGP_CREATE_FAILURE</a> = 1008 /* 1008 */
+ <a name="XML_RNGP_DATA_CONTENT">XML_RNGP_DATA_CONTENT</a> = 1009 /* 1009 */
+ <a name="XML_RNGP_DEF_CHOICE_AND_INTERLEAVE">XML_RNGP_DEF_CHOICE_AND_INTERLEAVE</a> = 1010 /* 1010 */
+ <a name="XML_RNGP_DEFINE_CREATE_FAILED">XML_RNGP_DEFINE_CREATE_FAILED</a> = 1011 /* 1011 */
+ <a name="XML_RNGP_DEFINE_EMPTY">XML_RNGP_DEFINE_EMPTY</a> = 1012 /* 1012 */
+ <a name="XML_RNGP_DEFINE_MISSING">XML_RNGP_DEFINE_MISSING</a> = 1013 /* 1013 */
+ <a name="XML_RNGP_DEFINE_NAME_MISSING">XML_RNGP_DEFINE_NAME_MISSING</a> = 1014 /* 1014 */
+ <a name="XML_RNGP_ELEM_CONTENT_EMPTY">XML_RNGP_ELEM_CONTENT_EMPTY</a> = 1015 /* 1015 */
+ <a name="XML_RNGP_ELEM_CONTENT_ERROR">XML_RNGP_ELEM_CONTENT_ERROR</a> = 1016 /* 1016 */
+ <a name="XML_RNGP_ELEMENT_EMPTY">XML_RNGP_ELEMENT_EMPTY</a> = 1017 /* 1017 */
+ <a name="XML_RNGP_ELEMENT_CONTENT">XML_RNGP_ELEMENT_CONTENT</a> = 1018 /* 1018 */
+ <a name="XML_RNGP_ELEMENT_NAME">XML_RNGP_ELEMENT_NAME</a> = 1019 /* 1019 */
+ <a name="XML_RNGP_ELEMENT_NO_CONTENT">XML_RNGP_ELEMENT_NO_CONTENT</a> = 1020 /* 1020 */
+ <a name="XML_RNGP_ELEM_TEXT_CONFLICT">XML_RNGP_ELEM_TEXT_CONFLICT</a> = 1021 /* 1021 */
+ <a name="XML_RNGP_EMPTY">XML_RNGP_EMPTY</a> = 1022 /* 1022 */
+ <a name="XML_RNGP_EMPTY_CONSTRUCT">XML_RNGP_EMPTY_CONSTRUCT</a> = 1023 /* 1023 */
+ <a name="XML_RNGP_EMPTY_CONTENT">XML_RNGP_EMPTY_CONTENT</a> = 1024 /* 1024 */
+ <a name="XML_RNGP_EMPTY_NOT_EMPTY">XML_RNGP_EMPTY_NOT_EMPTY</a> = 1025 /* 1025 */
+ <a name="XML_RNGP_ERROR_TYPE_LIB">XML_RNGP_ERROR_TYPE_LIB</a> = 1026 /* 1026 */
+ <a name="XML_RNGP_EXCEPT_EMPTY">XML_RNGP_EXCEPT_EMPTY</a> = 1027 /* 1027 */
+ <a name="XML_RNGP_EXCEPT_MISSING">XML_RNGP_EXCEPT_MISSING</a> = 1028 /* 1028 */
+ <a name="XML_RNGP_EXCEPT_MULTIPLE">XML_RNGP_EXCEPT_MULTIPLE</a> = 1029 /* 1029 */
+ <a name="XML_RNGP_EXCEPT_NO_CONTENT">XML_RNGP_EXCEPT_NO_CONTENT</a> = 1030 /* 1030 */
+ <a name="XML_RNGP_EXTERNALREF_EMTPY">XML_RNGP_EXTERNALREF_EMTPY</a> = 1031 /* 1031 */
+ <a name="XML_RNGP_EXTERNAL_REF_FAILURE">XML_RNGP_EXTERNAL_REF_FAILURE</a> = 1032 /* 1032 */
+ <a name="XML_RNGP_EXTERNALREF_RECURSE">XML_RNGP_EXTERNALREF_RECURSE</a> = 1033 /* 1033 */
+ <a name="XML_RNGP_FORBIDDEN_ATTRIBUTE">XML_RNGP_FORBIDDEN_ATTRIBUTE</a> = 1034 /* 1034 */
+ <a name="XML_RNGP_FOREIGN_ELEMENT">XML_RNGP_FOREIGN_ELEMENT</a> = 1035 /* 1035 */
+ <a name="XML_RNGP_GRAMMAR_CONTENT">XML_RNGP_GRAMMAR_CONTENT</a> = 1036 /* 1036 */
+ <a name="XML_RNGP_GRAMMAR_EMPTY">XML_RNGP_GRAMMAR_EMPTY</a> = 1037 /* 1037 */
+ <a name="XML_RNGP_GRAMMAR_MISSING">XML_RNGP_GRAMMAR_MISSING</a> = 1038 /* 1038 */
+ <a name="XML_RNGP_GRAMMAR_NO_START">XML_RNGP_GRAMMAR_NO_START</a> = 1039 /* 1039 */
+ <a name="XML_RNGP_GROUP_ATTR_CONFLICT">XML_RNGP_GROUP_ATTR_CONFLICT</a> = 1040 /* 1040 */
+ <a name="XML_RNGP_HREF_ERROR">XML_RNGP_HREF_ERROR</a> = 1041 /* 1041 */
+ <a name="XML_RNGP_INCLUDE_EMPTY">XML_RNGP_INCLUDE_EMPTY</a> = 1042 /* 1042 */
+ <a name="XML_RNGP_INCLUDE_FAILURE">XML_RNGP_INCLUDE_FAILURE</a> = 1043 /* 1043 */
+ <a name="XML_RNGP_INCLUDE_RECURSE">XML_RNGP_INCLUDE_RECURSE</a> = 1044 /* 1044 */
+ <a name="XML_RNGP_INTERLEAVE_ADD">XML_RNGP_INTERLEAVE_ADD</a> = 1045 /* 1045 */
+ <a name="XML_RNGP_INTERLEAVE_CREATE_FAILED">XML_RNGP_INTERLEAVE_CREATE_FAILED</a> = 1046 /* 1046 */
+ <a name="XML_RNGP_INTERLEAVE_EMPTY">XML_RNGP_INTERLEAVE_EMPTY</a> = 1047 /* 1047 */
+ <a name="XML_RNGP_INTERLEAVE_NO_CONTENT">XML_RNGP_INTERLEAVE_NO_CONTENT</a> = 1048 /* 1048 */
+ <a name="XML_RNGP_INVALID_DEFINE_NAME">XML_RNGP_INVALID_DEFINE_NAME</a> = 1049 /* 1049 */
+ <a name="XML_RNGP_INVALID_URI">XML_RNGP_INVALID_URI</a> = 1050 /* 1050 */
+ <a name="XML_RNGP_INVALID_VALUE">XML_RNGP_INVALID_VALUE</a> = 1051 /* 1051 */
+ <a name="XML_RNGP_MISSING_HREF">XML_RNGP_MISSING_HREF</a> = 1052 /* 1052 */
+ <a name="XML_RNGP_NAME_MISSING">XML_RNGP_NAME_MISSING</a> = 1053 /* 1053 */
+ <a name="XML_RNGP_NEED_COMBINE">XML_RNGP_NEED_COMBINE</a> = 1054 /* 1054 */
+ <a name="XML_RNGP_NOTALLOWED_NOT_EMPTY">XML_RNGP_NOTALLOWED_NOT_EMPTY</a> = 1055 /* 1055 */
+ <a name="XML_RNGP_NSNAME_ATTR_ANCESTOR">XML_RNGP_NSNAME_ATTR_ANCESTOR</a> = 1056 /* 1056 */
+ <a name="XML_RNGP_NSNAME_NO_NS">XML_RNGP_NSNAME_NO_NS</a> = 1057 /* 1057 */
+ <a name="XML_RNGP_PARAM_FORBIDDEN">XML_RNGP_PARAM_FORBIDDEN</a> = 1058 /* 1058 */
+ <a name="XML_RNGP_PARAM_NAME_MISSING">XML_RNGP_PARAM_NAME_MISSING</a> = 1059 /* 1059 */
+ <a name="XML_RNGP_PARENTREF_CREATE_FAILED">XML_RNGP_PARENTREF_CREATE_FAILED</a> = 1060 /* 1060 */
+ <a name="XML_RNGP_PARENTREF_NAME_INVALID">XML_RNGP_PARENTREF_NAME_INVALID</a> = 1061 /* 1061 */
+ <a name="XML_RNGP_PARENTREF_NO_NAME">XML_RNGP_PARENTREF_NO_NAME</a> = 1062 /* 1062 */
+ <a name="XML_RNGP_PARENTREF_NO_PARENT">XML_RNGP_PARENTREF_NO_PARENT</a> = 1063 /* 1063 */
+ <a name="XML_RNGP_PARENTREF_NOT_EMPTY">XML_RNGP_PARENTREF_NOT_EMPTY</a> = 1064 /* 1064 */
+ <a name="XML_RNGP_PARSE_ERROR">XML_RNGP_PARSE_ERROR</a> = 1065 /* 1065 */
+ <a name="XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME">XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME</a> = 1066 /* 1066 */
+ <a name="XML_RNGP_PAT_ATTR_ATTR">XML_RNGP_PAT_ATTR_ATTR</a> = 1067 /* 1067 */
+ <a name="XML_RNGP_PAT_ATTR_ELEM">XML_RNGP_PAT_ATTR_ELEM</a> = 1068 /* 1068 */
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_ATTR">XML_RNGP_PAT_DATA_EXCEPT_ATTR</a> = 1069 /* 1069 */
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_ELEM">XML_RNGP_PAT_DATA_EXCEPT_ELEM</a> = 1070 /* 1070 */
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_EMPTY">XML_RNGP_PAT_DATA_EXCEPT_EMPTY</a> = 1071 /* 1071 */
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_GROUP">XML_RNGP_PAT_DATA_EXCEPT_GROUP</a> = 1072 /* 1072 */
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE">XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE</a> = 1073 /* 1073 */
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_LIST">XML_RNGP_PAT_DATA_EXCEPT_LIST</a> = 1074 /* 1074 */
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_ONEMORE">XML_RNGP_PAT_DATA_EXCEPT_ONEMORE</a> = 1075 /* 1075 */
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_REF">XML_RNGP_PAT_DATA_EXCEPT_REF</a> = 1076 /* 1076 */
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_TEXT">XML_RNGP_PAT_DATA_EXCEPT_TEXT</a> = 1077 /* 1077 */
+ <a name="XML_RNGP_PAT_LIST_ATTR">XML_RNGP_PAT_LIST_ATTR</a> = 1078 /* 1078 */
+ <a name="XML_RNGP_PAT_LIST_ELEM">XML_RNGP_PAT_LIST_ELEM</a> = 1079 /* 1079 */
+ <a name="XML_RNGP_PAT_LIST_INTERLEAVE">XML_RNGP_PAT_LIST_INTERLEAVE</a> = 1080 /* 1080 */
+ <a name="XML_RNGP_PAT_LIST_LIST">XML_RNGP_PAT_LIST_LIST</a> = 1081 /* 1081 */
+ <a name="XML_RNGP_PAT_LIST_REF">XML_RNGP_PAT_LIST_REF</a> = 1082 /* 1082 */
+ <a name="XML_RNGP_PAT_LIST_TEXT">XML_RNGP_PAT_LIST_TEXT</a> = 1083 /* 1083 */
+ <a name="XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME">XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME</a> = 1084 /* 1084 */
+ <a name="XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME">XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME</a> = 1085 /* 1085 */
+ <a name="XML_RNGP_PAT_ONEMORE_GROUP_ATTR">XML_RNGP_PAT_ONEMORE_GROUP_ATTR</a> = 1086 /* 1086 */
+ <a name="XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR">XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR</a> = 1087 /* 1087 */
+ <a name="XML_RNGP_PAT_START_ATTR">XML_RNGP_PAT_START_ATTR</a> = 1088 /* 1088 */
+ <a name="XML_RNGP_PAT_START_DATA">XML_RNGP_PAT_START_DATA</a> = 1089 /* 1089 */
+ <a name="XML_RNGP_PAT_START_EMPTY">XML_RNGP_PAT_START_EMPTY</a> = 1090 /* 1090 */
+ <a name="XML_RNGP_PAT_START_GROUP">XML_RNGP_PAT_START_GROUP</a> = 1091 /* 1091 */
+ <a name="XML_RNGP_PAT_START_INTERLEAVE">XML_RNGP_PAT_START_INTERLEAVE</a> = 1092 /* 1092 */
+ <a name="XML_RNGP_PAT_START_LIST">XML_RNGP_PAT_START_LIST</a> = 1093 /* 1093 */
+ <a name="XML_RNGP_PAT_START_ONEMORE">XML_RNGP_PAT_START_ONEMORE</a> = 1094 /* 1094 */
+ <a name="XML_RNGP_PAT_START_TEXT">XML_RNGP_PAT_START_TEXT</a> = 1095 /* 1095 */
+ <a name="XML_RNGP_PAT_START_VALUE">XML_RNGP_PAT_START_VALUE</a> = 1096 /* 1096 */
+ <a name="XML_RNGP_PREFIX_UNDEFINED">XML_RNGP_PREFIX_UNDEFINED</a> = 1097 /* 1097 */
+ <a name="XML_RNGP_REF_CREATE_FAILED">XML_RNGP_REF_CREATE_FAILED</a> = 1098 /* 1098 */
+ <a name="XML_RNGP_REF_CYCLE">XML_RNGP_REF_CYCLE</a> = 1099 /* 1099 */
+ <a name="XML_RNGP_REF_NAME_INVALID">XML_RNGP_REF_NAME_INVALID</a> = 1100 /* 1100 */
+ <a name="XML_RNGP_REF_NO_DEF">XML_RNGP_REF_NO_DEF</a> = 1101 /* 1101 */
+ <a name="XML_RNGP_REF_NO_NAME">XML_RNGP_REF_NO_NAME</a> = 1102 /* 1102 */
+ <a name="XML_RNGP_REF_NOT_EMPTY">XML_RNGP_REF_NOT_EMPTY</a> = 1103 /* 1103 */
+ <a name="XML_RNGP_START_CHOICE_AND_INTERLEAVE">XML_RNGP_START_CHOICE_AND_INTERLEAVE</a> = 1104 /* 1104 */
+ <a name="XML_RNGP_START_CONTENT">XML_RNGP_START_CONTENT</a> = 1105 /* 1105 */
+ <a name="XML_RNGP_START_EMPTY">XML_RNGP_START_EMPTY</a> = 1106 /* 1106 */
+ <a name="XML_RNGP_START_MISSING">XML_RNGP_START_MISSING</a> = 1107 /* 1107 */
+ <a name="XML_RNGP_TEXT_EXPECTED">XML_RNGP_TEXT_EXPECTED</a> = 1108 /* 1108 */
+ <a name="XML_RNGP_TEXT_HAS_CHILD">XML_RNGP_TEXT_HAS_CHILD</a> = 1109 /* 1109 */
+ <a name="XML_RNGP_TYPE_MISSING">XML_RNGP_TYPE_MISSING</a> = 1110 /* 1110 */
+ <a name="XML_RNGP_TYPE_NOT_FOUND">XML_RNGP_TYPE_NOT_FOUND</a> = 1111 /* 1111 */
+ <a name="XML_RNGP_TYPE_VALUE">XML_RNGP_TYPE_VALUE</a> = 1112 /* 1112 */
+ <a name="XML_RNGP_UNKNOWN_ATTRIBUTE">XML_RNGP_UNKNOWN_ATTRIBUTE</a> = 1113 /* 1113 */
+ <a name="XML_RNGP_UNKNOWN_COMBINE">XML_RNGP_UNKNOWN_COMBINE</a> = 1114 /* 1114 */
+ <a name="XML_RNGP_UNKNOWN_CONSTRUCT">XML_RNGP_UNKNOWN_CONSTRUCT</a> = 1115 /* 1115 */
+ <a name="XML_RNGP_UNKNOWN_TYPE_LIB">XML_RNGP_UNKNOWN_TYPE_LIB</a> = 1116 /* 1116 */
+ <a name="XML_RNGP_URI_FRAGMENT">XML_RNGP_URI_FRAGMENT</a> = 1117 /* 1117 */
+ <a name="XML_RNGP_URI_NOT_ABSOLUTE">XML_RNGP_URI_NOT_ABSOLUTE</a> = 1118 /* 1118 */
+ <a name="XML_RNGP_VALUE_EMPTY">XML_RNGP_VALUE_EMPTY</a> = 1119 /* 1119 */
+ <a name="XML_RNGP_VALUE_NO_CONTENT">XML_RNGP_VALUE_NO_CONTENT</a> = 1120 /* 1120 */
+ <a name="XML_RNGP_XMLNS_NAME">XML_RNGP_XMLNS_NAME</a> = 1121 /* 1121 */
+ <a name="XML_RNGP_XML_NS">XML_RNGP_XML_NS</a> = 1122 /* 1122 */
+ <a name="XML_XPATH_EXPRESSION_OK">XML_XPATH_EXPRESSION_OK</a> = 1200
+ <a name="XML_XPATH_NUMBER_ERROR">XML_XPATH_NUMBER_ERROR</a> = 1201 /* 1201 */
+ <a name="XML_XPATH_UNFINISHED_LITERAL_ERROR">XML_XPATH_UNFINISHED_LITERAL_ERROR</a> = 1202 /* 1202 */
+ <a name="XML_XPATH_START_LITERAL_ERROR">XML_XPATH_START_LITERAL_ERROR</a> = 1203 /* 1203 */
+ <a name="XML_XPATH_VARIABLE_REF_ERROR">XML_XPATH_VARIABLE_REF_ERROR</a> = 1204 /* 1204 */
+ <a name="XML_XPATH_UNDEF_VARIABLE_ERROR">XML_XPATH_UNDEF_VARIABLE_ERROR</a> = 1205 /* 1205 */
+ <a name="XML_XPATH_INVALID_PREDICATE_ERROR">XML_XPATH_INVALID_PREDICATE_ERROR</a> = 1206 /* 1206 */
+ <a name="XML_XPATH_EXPR_ERROR">XML_XPATH_EXPR_ERROR</a> = 1207 /* 1207 */
+ <a name="XML_XPATH_UNCLOSED_ERROR">XML_XPATH_UNCLOSED_ERROR</a> = 1208 /* 1208 */
+ <a name="XML_XPATH_UNKNOWN_FUNC_ERROR">XML_XPATH_UNKNOWN_FUNC_ERROR</a> = 1209 /* 1209 */
+ <a name="XML_XPATH_INVALID_OPERAND">XML_XPATH_INVALID_OPERAND</a> = 1210 /* 1210 */
+ <a name="XML_XPATH_INVALID_TYPE">XML_XPATH_INVALID_TYPE</a> = 1211 /* 1211 */
+ <a name="XML_XPATH_INVALID_ARITY">XML_XPATH_INVALID_ARITY</a> = 1212 /* 1212 */
+ <a name="XML_XPATH_INVALID_CTXT_SIZE">XML_XPATH_INVALID_CTXT_SIZE</a> = 1213 /* 1213 */
+ <a name="XML_XPATH_INVALID_CTXT_POSITION">XML_XPATH_INVALID_CTXT_POSITION</a> = 1214 /* 1214 */
+ <a name="XML_XPATH_MEMORY_ERROR">XML_XPATH_MEMORY_ERROR</a> = 1215 /* 1215 */
+ <a name="XML_XPTR_SYNTAX_ERROR">XML_XPTR_SYNTAX_ERROR</a> = 1216 /* 1216 */
+ <a name="XML_XPTR_RESOURCE_ERROR">XML_XPTR_RESOURCE_ERROR</a> = 1217 /* 1217 */
+ <a name="XML_XPTR_SUB_RESOURCE_ERROR">XML_XPTR_SUB_RESOURCE_ERROR</a> = 1218 /* 1218 */
+ <a name="XML_XPATH_UNDEF_PREFIX_ERROR">XML_XPATH_UNDEF_PREFIX_ERROR</a> = 1219 /* 1219 */
+ <a name="XML_XPATH_ENCODING_ERROR">XML_XPATH_ENCODING_ERROR</a> = 1220 /* 1220 */
+ <a name="XML_XPATH_INVALID_CHAR_ERROR">XML_XPATH_INVALID_CHAR_ERROR</a> = 1221 /* 1221 */
+ <a name="XML_TREE_INVALID_HEX">XML_TREE_INVALID_HEX</a> = 1300
+ <a name="XML_TREE_INVALID_DEC">XML_TREE_INVALID_DEC</a> = 1301 /* 1301 */
+ <a name="XML_TREE_UNTERMINATED_ENTITY">XML_TREE_UNTERMINATED_ENTITY</a> = 1302 /* 1302 */
+ <a name="XML_TREE_NOT_UTF8">XML_TREE_NOT_UTF8</a> = 1303 /* 1303 */
+ <a name="XML_SAVE_NOT_UTF8">XML_SAVE_NOT_UTF8</a> = 1400
+ <a name="XML_SAVE_CHAR_INVALID">XML_SAVE_CHAR_INVALID</a> = 1401 /* 1401 */
+ <a name="XML_SAVE_NO_DOCTYPE">XML_SAVE_NO_DOCTYPE</a> = 1402 /* 1402 */
+ <a name="XML_SAVE_UNKNOWN_ENCODING">XML_SAVE_UNKNOWN_ENCODING</a> = 1403 /* 1403 */
+ <a name="XML_REGEXP_COMPILE_ERROR">XML_REGEXP_COMPILE_ERROR</a> = 1450
+ <a name="XML_IO_UNKNOWN">XML_IO_UNKNOWN</a> = 1500
+ <a name="XML_IO_EACCES">XML_IO_EACCES</a> = 1501 /* 1501 */
+ <a name="XML_IO_EAGAIN">XML_IO_EAGAIN</a> = 1502 /* 1502 */
+ <a name="XML_IO_EBADF">XML_IO_EBADF</a> = 1503 /* 1503 */
+ <a name="XML_IO_EBADMSG">XML_IO_EBADMSG</a> = 1504 /* 1504 */
+ <a name="XML_IO_EBUSY">XML_IO_EBUSY</a> = 1505 /* 1505 */
+ <a name="XML_IO_ECANCELED">XML_IO_ECANCELED</a> = 1506 /* 1506 */
+ <a name="XML_IO_ECHILD">XML_IO_ECHILD</a> = 1507 /* 1507 */
+ <a name="XML_IO_EDEADLK">XML_IO_EDEADLK</a> = 1508 /* 1508 */
+ <a name="XML_IO_EDOM">XML_IO_EDOM</a> = 1509 /* 1509 */
+ <a name="XML_IO_EEXIST">XML_IO_EEXIST</a> = 1510 /* 1510 */
+ <a name="XML_IO_EFAULT">XML_IO_EFAULT</a> = 1511 /* 1511 */
+ <a name="XML_IO_EFBIG">XML_IO_EFBIG</a> = 1512 /* 1512 */
+ <a name="XML_IO_EINPROGRESS">XML_IO_EINPROGRESS</a> = 1513 /* 1513 */
+ <a name="XML_IO_EINTR">XML_IO_EINTR</a> = 1514 /* 1514 */
+ <a name="XML_IO_EINVAL">XML_IO_EINVAL</a> = 1515 /* 1515 */
+ <a name="XML_IO_EIO">XML_IO_EIO</a> = 1516 /* 1516 */
+ <a name="XML_IO_EISDIR">XML_IO_EISDIR</a> = 1517 /* 1517 */
+ <a name="XML_IO_EMFILE">XML_IO_EMFILE</a> = 1518 /* 1518 */
+ <a name="XML_IO_EMLINK">XML_IO_EMLINK</a> = 1519 /* 1519 */
+ <a name="XML_IO_EMSGSIZE">XML_IO_EMSGSIZE</a> = 1520 /* 1520 */
+ <a name="XML_IO_ENAMETOOLONG">XML_IO_ENAMETOOLONG</a> = 1521 /* 1521 */
+ <a name="XML_IO_ENFILE">XML_IO_ENFILE</a> = 1522 /* 1522 */
+ <a name="XML_IO_ENODEV">XML_IO_ENODEV</a> = 1523 /* 1523 */
+ <a name="XML_IO_ENOENT">XML_IO_ENOENT</a> = 1524 /* 1524 */
+ <a name="XML_IO_ENOEXEC">XML_IO_ENOEXEC</a> = 1525 /* 1525 */
+ <a name="XML_IO_ENOLCK">XML_IO_ENOLCK</a> = 1526 /* 1526 */
+ <a name="XML_IO_ENOMEM">XML_IO_ENOMEM</a> = 1527 /* 1527 */
+ <a name="XML_IO_ENOSPC">XML_IO_ENOSPC</a> = 1528 /* 1528 */
+ <a name="XML_IO_ENOSYS">XML_IO_ENOSYS</a> = 1529 /* 1529 */
+ <a name="XML_IO_ENOTDIR">XML_IO_ENOTDIR</a> = 1530 /* 1530 */
+ <a name="XML_IO_ENOTEMPTY">XML_IO_ENOTEMPTY</a> = 1531 /* 1531 */
+ <a name="XML_IO_ENOTSUP">XML_IO_ENOTSUP</a> = 1532 /* 1532 */
+ <a name="XML_IO_ENOTTY">XML_IO_ENOTTY</a> = 1533 /* 1533 */
+ <a name="XML_IO_ENXIO">XML_IO_ENXIO</a> = 1534 /* 1534 */
+ <a name="XML_IO_EPERM">XML_IO_EPERM</a> = 1535 /* 1535 */
+ <a name="XML_IO_EPIPE">XML_IO_EPIPE</a> = 1536 /* 1536 */
+ <a name="XML_IO_ERANGE">XML_IO_ERANGE</a> = 1537 /* 1537 */
+ <a name="XML_IO_EROFS">XML_IO_EROFS</a> = 1538 /* 1538 */
+ <a name="XML_IO_ESPIPE">XML_IO_ESPIPE</a> = 1539 /* 1539 */
+ <a name="XML_IO_ESRCH">XML_IO_ESRCH</a> = 1540 /* 1540 */
+ <a name="XML_IO_ETIMEDOUT">XML_IO_ETIMEDOUT</a> = 1541 /* 1541 */
+ <a name="XML_IO_EXDEV">XML_IO_EXDEV</a> = 1542 /* 1542 */
+ <a name="XML_IO_NETWORK_ATTEMPT">XML_IO_NETWORK_ATTEMPT</a> = 1543 /* 1543 */
+ <a name="XML_IO_ENCODER">XML_IO_ENCODER</a> = 1544 /* 1544 */
+ <a name="XML_IO_FLUSH">XML_IO_FLUSH</a> = 1545 /* 1545 */
+ <a name="XML_IO_WRITE">XML_IO_WRITE</a> = 1546 /* 1546 */
+ <a name="XML_IO_NO_INPUT">XML_IO_NO_INPUT</a> = 1547 /* 1547 */
+ <a name="XML_IO_BUFFER_FULL">XML_IO_BUFFER_FULL</a> = 1548 /* 1548 */
+ <a name="XML_IO_LOAD_ERROR">XML_IO_LOAD_ERROR</a> = 1549 /* 1549 */
+ <a name="XML_IO_ENOTSOCK">XML_IO_ENOTSOCK</a> = 1550 /* 1550 */
+ <a name="XML_IO_EISCONN">XML_IO_EISCONN</a> = 1551 /* 1551 */
+ <a name="XML_IO_ECONNREFUSED">XML_IO_ECONNREFUSED</a> = 1552 /* 1552 */
+ <a name="XML_IO_ENETUNREACH">XML_IO_ENETUNREACH</a> = 1553 /* 1553 */
+ <a name="XML_IO_EADDRINUSE">XML_IO_EADDRINUSE</a> = 1554 /* 1554 */
+ <a name="XML_IO_EALREADY">XML_IO_EALREADY</a> = 1555 /* 1555 */
+ <a name="XML_IO_EAFNOSUPPORT">XML_IO_EAFNOSUPPORT</a> = 1556 /* 1556 */
+ <a name="XML_XINCLUDE_RECURSION">XML_XINCLUDE_RECURSION</a> = 1600
+ <a name="XML_XINCLUDE_PARSE_VALUE">XML_XINCLUDE_PARSE_VALUE</a> = 1601 /* 1601 */
+ <a name="XML_XINCLUDE_ENTITY_DEF_MISMATCH">XML_XINCLUDE_ENTITY_DEF_MISMATCH</a> = 1602 /* 1602 */
+ <a name="XML_XINCLUDE_NO_HREF">XML_XINCLUDE_NO_HREF</a> = 1603 /* 1603 */
+ <a name="XML_XINCLUDE_NO_FALLBACK">XML_XINCLUDE_NO_FALLBACK</a> = 1604 /* 1604 */
+ <a name="XML_XINCLUDE_HREF_URI">XML_XINCLUDE_HREF_URI</a> = 1605 /* 1605 */
+ <a name="XML_XINCLUDE_TEXT_FRAGMENT">XML_XINCLUDE_TEXT_FRAGMENT</a> = 1606 /* 1606 */
+ <a name="XML_XINCLUDE_TEXT_DOCUMENT">XML_XINCLUDE_TEXT_DOCUMENT</a> = 1607 /* 1607 */
+ <a name="XML_XINCLUDE_INVALID_CHAR">XML_XINCLUDE_INVALID_CHAR</a> = 1608 /* 1608 */
+ <a name="XML_XINCLUDE_BUILD_FAILED">XML_XINCLUDE_BUILD_FAILED</a> = 1609 /* 1609 */
+ <a name="XML_XINCLUDE_UNKNOWN_ENCODING">XML_XINCLUDE_UNKNOWN_ENCODING</a> = 1610 /* 1610 */
+ <a name="XML_XINCLUDE_MULTIPLE_ROOT">XML_XINCLUDE_MULTIPLE_ROOT</a> = 1611 /* 1611 */
+ <a name="XML_XINCLUDE_XPTR_FAILED">XML_XINCLUDE_XPTR_FAILED</a> = 1612 /* 1612 */
+ <a name="XML_XINCLUDE_XPTR_RESULT">XML_XINCLUDE_XPTR_RESULT</a> = 1613 /* 1613 */
+ <a name="XML_XINCLUDE_INCLUDE_IN_INCLUDE">XML_XINCLUDE_INCLUDE_IN_INCLUDE</a> = 1614 /* 1614 */
+ <a name="XML_XINCLUDE_FALLBACKS_IN_INCLUDE">XML_XINCLUDE_FALLBACKS_IN_INCLUDE</a> = 1615 /* 1615 */
+ <a name="XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE">XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE</a> = 1616 /* 1616 */
+ <a name="XML_XINCLUDE_DEPRECATED_NS">XML_XINCLUDE_DEPRECATED_NS</a> = 1617 /* 1617 */
+ <a name="XML_XINCLUDE_FRAGMENT_ID">XML_XINCLUDE_FRAGMENT_ID</a> = 1618 /* 1618 */
+ <a name="XML_CATALOG_MISSING_ATTR">XML_CATALOG_MISSING_ATTR</a> = 1650
+ <a name="XML_CATALOG_ENTRY_BROKEN">XML_CATALOG_ENTRY_BROKEN</a> = 1651 /* 1651 */
+ <a name="XML_CATALOG_PREFER_VALUE">XML_CATALOG_PREFER_VALUE</a> = 1652 /* 1652 */
+ <a name="XML_CATALOG_NOT_CATALOG">XML_CATALOG_NOT_CATALOG</a> = 1653 /* 1653 */
+ <a name="XML_CATALOG_RECURSION">XML_CATALOG_RECURSION</a> = 1654 /* 1654 */
+ <a name="XML_SCHEMAP_PREFIX_UNDEFINED">XML_SCHEMAP_PREFIX_UNDEFINED</a> = 1700
+ <a name="XML_SCHEMAP_ATTRFORMDEFAULT_VALUE">XML_SCHEMAP_ATTRFORMDEFAULT_VALUE</a> = 1701 /* 1701 */
+ <a name="XML_SCHEMAP_ATTRGRP_NONAME_NOREF">XML_SCHEMAP_ATTRGRP_NONAME_NOREF</a> = 1702 /* 1702 */
+ <a name="XML_SCHEMAP_ATTR_NONAME_NOREF">XML_SCHEMAP_ATTR_NONAME_NOREF</a> = 1703 /* 1703 */
+ <a name="XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF">XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF</a> = 1704 /* 1704 */
+ <a name="XML_SCHEMAP_ELEMFORMDEFAULT_VALUE">XML_SCHEMAP_ELEMFORMDEFAULT_VALUE</a> = 1705 /* 1705 */
+ <a name="XML_SCHEMAP_ELEM_NONAME_NOREF">XML_SCHEMAP_ELEM_NONAME_NOREF</a> = 1706 /* 1706 */
+ <a name="XML_SCHEMAP_EXTENSION_NO_BASE">XML_SCHEMAP_EXTENSION_NO_BASE</a> = 1707 /* 1707 */
+ <a name="XML_SCHEMAP_FACET_NO_VALUE">XML_SCHEMAP_FACET_NO_VALUE</a> = 1708 /* 1708 */
+ <a name="XML_SCHEMAP_FAILED_BUILD_IMPORT">XML_SCHEMAP_FAILED_BUILD_IMPORT</a> = 1709 /* 1709 */
+ <a name="XML_SCHEMAP_GROUP_NONAME_NOREF">XML_SCHEMAP_GROUP_NONAME_NOREF</a> = 1710 /* 1710 */
+ <a name="XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI">XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI</a> = 1711 /* 1711 */
+ <a name="XML_SCHEMAP_IMPORT_REDEFINE_NSNAME">XML_SCHEMAP_IMPORT_REDEFINE_NSNAME</a> = 1712 /* 1712 */
+ <a name="XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI">XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI</a> = 1713 /* 1713 */
+ <a name="XML_SCHEMAP_INVALID_BOOLEAN">XML_SCHEMAP_INVALID_BOOLEAN</a> = 1714 /* 1714 */
+ <a name="XML_SCHEMAP_INVALID_ENUM">XML_SCHEMAP_INVALID_ENUM</a> = 1715 /* 1715 */
+ <a name="XML_SCHEMAP_INVALID_FACET">XML_SCHEMAP_INVALID_FACET</a> = 1716 /* 1716 */
+ <a name="XML_SCHEMAP_INVALID_FACET_VALUE">XML_SCHEMAP_INVALID_FACET_VALUE</a> = 1717 /* 1717 */
+ <a name="XML_SCHEMAP_INVALID_MAXOCCURS">XML_SCHEMAP_INVALID_MAXOCCURS</a> = 1718 /* 1718 */
+ <a name="XML_SCHEMAP_INVALID_MINOCCURS">XML_SCHEMAP_INVALID_MINOCCURS</a> = 1719 /* 1719 */
+ <a name="XML_SCHEMAP_INVALID_REF_AND_SUBTYPE">XML_SCHEMAP_INVALID_REF_AND_SUBTYPE</a> = 1720 /* 1720 */
+ <a name="XML_SCHEMAP_INVALID_WHITE_SPACE">XML_SCHEMAP_INVALID_WHITE_SPACE</a> = 1721 /* 1721 */
+ <a name="XML_SCHEMAP_NOATTR_NOREF">XML_SCHEMAP_NOATTR_NOREF</a> = 1722 /* 1722 */
+ <a name="XML_SCHEMAP_NOTATION_NO_NAME">XML_SCHEMAP_NOTATION_NO_NAME</a> = 1723 /* 1723 */
+ <a name="XML_SCHEMAP_NOTYPE_NOREF">XML_SCHEMAP_NOTYPE_NOREF</a> = 1724 /* 1724 */
+ <a name="XML_SCHEMAP_REF_AND_SUBTYPE">XML_SCHEMAP_REF_AND_SUBTYPE</a> = 1725 /* 1725 */
+ <a name="XML_SCHEMAP_RESTRICTION_NONAME_NOREF">XML_SCHEMAP_RESTRICTION_NONAME_NOREF</a> = 1726 /* 1726 */
+ <a name="XML_SCHEMAP_SIMPLETYPE_NONAME">XML_SCHEMAP_SIMPLETYPE_NONAME</a> = 1727 /* 1727 */
+ <a name="XML_SCHEMAP_TYPE_AND_SUBTYPE">XML_SCHEMAP_TYPE_AND_SUBTYPE</a> = 1728 /* 1728 */
+ <a name="XML_SCHEMAP_UNKNOWN_ALL_CHILD">XML_SCHEMAP_UNKNOWN_ALL_CHILD</a> = 1729 /* 1729 */
+ <a name="XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD">XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD</a> = 1730 /* 1730 */
+ <a name="XML_SCHEMAP_UNKNOWN_ATTR_CHILD">XML_SCHEMAP_UNKNOWN_ATTR_CHILD</a> = 1731 /* 1731 */
+ <a name="XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD">XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD</a> = 1732 /* 1732 */
+ <a name="XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP">XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP</a> = 1733 /* 1733 */
+ <a name="XML_SCHEMAP_UNKNOWN_BASE_TYPE">XML_SCHEMAP_UNKNOWN_BASE_TYPE</a> = 1734 /* 1734 */
+ <a name="XML_SCHEMAP_UNKNOWN_CHOICE_CHILD">XML_SCHEMAP_UNKNOWN_CHOICE_CHILD</a> = 1735 /* 1735 */
+ <a name="XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD">XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD</a> = 1736 /* 1736 */
+ <a name="XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD">XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD</a> = 1737 /* 1737 */
+ <a name="XML_SCHEMAP_UNKNOWN_ELEM_CHILD">XML_SCHEMAP_UNKNOWN_ELEM_CHILD</a> = 1738 /* 1738 */
+ <a name="XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD">XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD</a> = 1739 /* 1739 */
+ <a name="XML_SCHEMAP_UNKNOWN_FACET_CHILD">XML_SCHEMAP_UNKNOWN_FACET_CHILD</a> = 1740 /* 1740 */
+ <a name="XML_SCHEMAP_UNKNOWN_FACET_TYPE">XML_SCHEMAP_UNKNOWN_FACET_TYPE</a> = 1741 /* 1741 */
+ <a name="XML_SCHEMAP_UNKNOWN_GROUP_CHILD">XML_SCHEMAP_UNKNOWN_GROUP_CHILD</a> = 1742 /* 1742 */
+ <a name="XML_SCHEMAP_UNKNOWN_IMPORT_CHILD">XML_SCHEMAP_UNKNOWN_IMPORT_CHILD</a> = 1743 /* 1743 */
+ <a name="XML_SCHEMAP_UNKNOWN_LIST_CHILD">XML_SCHEMAP_UNKNOWN_LIST_CHILD</a> = 1744 /* 1744 */
+ <a name="XML_SCHEMAP_UNKNOWN_NOTATION_CHILD">XML_SCHEMAP_UNKNOWN_NOTATION_CHILD</a> = 1745 /* 1745 */
+ <a name="XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD">XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD</a> = 1746 /* 1746 */
+ <a name="XML_SCHEMAP_UNKNOWN_REF">XML_SCHEMAP_UNKNOWN_REF</a> = 1747 /* 1747 */
+ <a name="XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD">XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD</a> = 1748 /* 1748 */
+ <a name="XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD">XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD</a> = 1749 /* 1749 */
+ <a name="XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD">XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD</a> = 1750 /* 1750 */
+ <a name="XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD">XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD</a> = 1751 /* 1751 */
+ <a name="XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD">XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD</a> = 1752 /* 1752 */
+ <a name="XML_SCHEMAP_UNKNOWN_TYPE">XML_SCHEMAP_UNKNOWN_TYPE</a> = 1753 /* 1753 */
+ <a name="XML_SCHEMAP_UNKNOWN_UNION_CHILD">XML_SCHEMAP_UNKNOWN_UNION_CHILD</a> = 1754 /* 1754 */
+ <a name="XML_SCHEMAP_ELEM_DEFAULT_FIXED">XML_SCHEMAP_ELEM_DEFAULT_FIXED</a> = 1755 /* 1755 */
+ <a name="XML_SCHEMAP_REGEXP_INVALID">XML_SCHEMAP_REGEXP_INVALID</a> = 1756 /* 1756 */
+ <a name="XML_SCHEMAP_FAILED_LOAD">XML_SCHEMAP_FAILED_LOAD</a> = 1757 /* 1757 */
+ <a name="XML_SCHEMAP_NOTHING_TO_PARSE">XML_SCHEMAP_NOTHING_TO_PARSE</a> = 1758 /* 1758 */
+ <a name="XML_SCHEMAP_NOROOT">XML_SCHEMAP_NOROOT</a> = 1759 /* 1759 */
+ <a name="XML_SCHEMAP_REDEFINED_GROUP">XML_SCHEMAP_REDEFINED_GROUP</a> = 1760 /* 1760 */
+ <a name="XML_SCHEMAP_REDEFINED_TYPE">XML_SCHEMAP_REDEFINED_TYPE</a> = 1761 /* 1761 */
+ <a name="XML_SCHEMAP_REDEFINED_ELEMENT">XML_SCHEMAP_REDEFINED_ELEMENT</a> = 1762 /* 1762 */
+ <a name="XML_SCHEMAP_REDEFINED_ATTRGROUP">XML_SCHEMAP_REDEFINED_ATTRGROUP</a> = 1763 /* 1763 */
+ <a name="XML_SCHEMAP_REDEFINED_ATTR">XML_SCHEMAP_REDEFINED_ATTR</a> = 1764 /* 1764 */
+ <a name="XML_SCHEMAP_REDEFINED_NOTATION">XML_SCHEMAP_REDEFINED_NOTATION</a> = 1765 /* 1765 */
+ <a name="XML_SCHEMAP_FAILED_PARSE">XML_SCHEMAP_FAILED_PARSE</a> = 1766 /* 1766 */
+ <a name="XML_SCHEMAP_UNKNOWN_PREFIX">XML_SCHEMAP_UNKNOWN_PREFIX</a> = 1767 /* 1767 */
+ <a name="XML_SCHEMAP_DEF_AND_PREFIX">XML_SCHEMAP_DEF_AND_PREFIX</a> = 1768 /* 1768 */
+ <a name="XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD">XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD</a> = 1769 /* 1769 */
+ <a name="XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI">XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI</a> = 1770 /* 1770 */
+ <a name="XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI">XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI</a> = 1771 /* 1771 */
+ <a name="XML_SCHEMAP_NOT_SCHEMA">XML_SCHEMAP_NOT_SCHEMA</a> = 1772 /* 1772 */
+ <a name="XML_SCHEMAP_UNKNOWN_MEMBER_TYPE">XML_SCHEMAP_UNKNOWN_MEMBER_TYPE</a> = 1773 /* 1773 */
+ <a name="XML_SCHEMAP_INVALID_ATTR_USE">XML_SCHEMAP_INVALID_ATTR_USE</a> = 1774 /* 1774 */
+ <a name="XML_SCHEMAP_RECURSIVE">XML_SCHEMAP_RECURSIVE</a> = 1775 /* 1775 */
+ <a name="XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE">XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE</a> = 1776 /* 1776 */
+ <a name="XML_SCHEMAP_INVALID_ATTR_COMBINATION">XML_SCHEMAP_INVALID_ATTR_COMBINATION</a> = 1777 /* 1777 */
+ <a name="XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION">XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION</a> = 1778 /* 1778 */
+ <a name="XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD">XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD</a> = 1779 /* 1779 */
+ <a name="XML_SCHEMAP_INVALID_ATTR_NAME">XML_SCHEMAP_INVALID_ATTR_NAME</a> = 1780 /* 1780 */
+ <a name="XML_SCHEMAP_REF_AND_CONTENT">XML_SCHEMAP_REF_AND_CONTENT</a> = 1781 /* 1781 */
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_1">XML_SCHEMAP_CT_PROPS_CORRECT_1</a> = 1782 /* 1782 */
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_2">XML_SCHEMAP_CT_PROPS_CORRECT_2</a> = 1783 /* 1783 */
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_3">XML_SCHEMAP_CT_PROPS_CORRECT_3</a> = 1784 /* 1784 */
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_4">XML_SCHEMAP_CT_PROPS_CORRECT_4</a> = 1785 /* 1785 */
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_5">XML_SCHEMAP_CT_PROPS_CORRECT_5</a> = 1786 /* 1786 */
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1</a> = 1787 /* 1787 */
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1</a> = 1788 /* 1788 */
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2</a> = 1789 /* 1789 */
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2</a> = 1790 /* 1790 */
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3</a> = 1791 /* 1791 */
+ <a name="XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER">XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER</a> = 1792 /* 1792 */
+ <a name="XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE">XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE</a> = 1793 /* 1793 */
+ <a name="XML_SCHEMAP_UNION_NOT_EXPRESSIBLE">XML_SCHEMAP_UNION_NOT_EXPRESSIBLE</a> = 1794 /* 1794 */
+ <a name="XML_SCHEMAP_SRC_IMPORT_3_1">XML_SCHEMAP_SRC_IMPORT_3_1</a> = 1795 /* 1795 */
+ <a name="XML_SCHEMAP_SRC_IMPORT_3_2">XML_SCHEMAP_SRC_IMPORT_3_2</a> = 1796 /* 1796 */
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1</a> = 1797 /* 1797 */
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2</a> = 1798 /* 1798 */
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3</a> = 1799 /* 1799 */
+ <a name="XML_SCHEMAP_COS_CT_EXTENDS_1_3">XML_SCHEMAP_COS_CT_EXTENDS_1_3</a> = 1800 /* 1800 */
+ <a name="XML_SCHEMAV_NOROOT">XML_SCHEMAV_NOROOT</a> = 1801
+ <a name="XML_SCHEMAV_UNDECLAREDELEM">XML_SCHEMAV_UNDECLAREDELEM</a> = 1802 /* 1802 */
+ <a name="XML_SCHEMAV_NOTTOPLEVEL">XML_SCHEMAV_NOTTOPLEVEL</a> = 1803 /* 1803 */
+ <a name="XML_SCHEMAV_MISSING">XML_SCHEMAV_MISSING</a> = 1804 /* 1804 */
+ <a name="XML_SCHEMAV_WRONGELEM">XML_SCHEMAV_WRONGELEM</a> = 1805 /* 1805 */
+ <a name="XML_SCHEMAV_NOTYPE">XML_SCHEMAV_NOTYPE</a> = 1806 /* 1806 */
+ <a name="XML_SCHEMAV_NOROLLBACK">XML_SCHEMAV_NOROLLBACK</a> = 1807 /* 1807 */
+ <a name="XML_SCHEMAV_ISABSTRACT">XML_SCHEMAV_ISABSTRACT</a> = 1808 /* 1808 */
+ <a name="XML_SCHEMAV_NOTEMPTY">XML_SCHEMAV_NOTEMPTY</a> = 1809 /* 1809 */
+ <a name="XML_SCHEMAV_ELEMCONT">XML_SCHEMAV_ELEMCONT</a> = 1810 /* 1810 */
+ <a name="XML_SCHEMAV_HAVEDEFAULT">XML_SCHEMAV_HAVEDEFAULT</a> = 1811 /* 1811 */
+ <a name="XML_SCHEMAV_NOTNILLABLE">XML_SCHEMAV_NOTNILLABLE</a> = 1812 /* 1812 */
+ <a name="XML_SCHEMAV_EXTRACONTENT">XML_SCHEMAV_EXTRACONTENT</a> = 1813 /* 1813 */
+ <a name="XML_SCHEMAV_INVALIDATTR">XML_SCHEMAV_INVALIDATTR</a> = 1814 /* 1814 */
+ <a name="XML_SCHEMAV_INVALIDELEM">XML_SCHEMAV_INVALIDELEM</a> = 1815 /* 1815 */
+ <a name="XML_SCHEMAV_NOTDETERMINIST">XML_SCHEMAV_NOTDETERMINIST</a> = 1816 /* 1816 */
+ <a name="XML_SCHEMAV_CONSTRUCT">XML_SCHEMAV_CONSTRUCT</a> = 1817 /* 1817 */
+ <a name="XML_SCHEMAV_INTERNAL">XML_SCHEMAV_INTERNAL</a> = 1818 /* 1818 */
+ <a name="XML_SCHEMAV_NOTSIMPLE">XML_SCHEMAV_NOTSIMPLE</a> = 1819 /* 1819 */
+ <a name="XML_SCHEMAV_ATTRUNKNOWN">XML_SCHEMAV_ATTRUNKNOWN</a> = 1820 /* 1820 */
+ <a name="XML_SCHEMAV_ATTRINVALID">XML_SCHEMAV_ATTRINVALID</a> = 1821 /* 1821 */
+ <a name="XML_SCHEMAV_VALUE">XML_SCHEMAV_VALUE</a> = 1822 /* 1822 */
+ <a name="XML_SCHEMAV_FACET">XML_SCHEMAV_FACET</a> = 1823 /* 1823 */
+ <a name="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1</a> = 1824 /* 1824 */
+ <a name="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2</a> = 1825 /* 1825 */
+ <a name="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3</a> = 1826 /* 1826 */
+ <a name="XML_SCHEMAV_CVC_TYPE_3_1_1">XML_SCHEMAV_CVC_TYPE_3_1_1</a> = 1827 /* 1827 */
+ <a name="XML_SCHEMAV_CVC_TYPE_3_1_2">XML_SCHEMAV_CVC_TYPE_3_1_2</a> = 1828 /* 1828 */
+ <a name="XML_SCHEMAV_CVC_FACET_VALID">XML_SCHEMAV_CVC_FACET_VALID</a> = 1829 /* 1829 */
+ <a name="XML_SCHEMAV_CVC_LENGTH_VALID">XML_SCHEMAV_CVC_LENGTH_VALID</a> = 1830 /* 1830 */
+ <a name="XML_SCHEMAV_CVC_MINLENGTH_VALID">XML_SCHEMAV_CVC_MINLENGTH_VALID</a> = 1831 /* 1831 */
+ <a name="XML_SCHEMAV_CVC_MAXLENGTH_VALID">XML_SCHEMAV_CVC_MAXLENGTH_VALID</a> = 1832 /* 1832 */
+ <a name="XML_SCHEMAV_CVC_MININCLUSIVE_VALID">XML_SCHEMAV_CVC_MININCLUSIVE_VALID</a> = 1833 /* 1833 */
+ <a name="XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID</a> = 1834 /* 1834 */
+ <a name="XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID</a> = 1835 /* 1835 */
+ <a name="XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID</a> = 1836 /* 1836 */
+ <a name="XML_SCHEMAV_CVC_TOTALDIGITS_VALID">XML_SCHEMAV_CVC_TOTALDIGITS_VALID</a> = 1837 /* 1837 */
+ <a name="XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID">XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID</a> = 1838 /* 1838 */
+ <a name="XML_SCHEMAV_CVC_PATTERN_VALID">XML_SCHEMAV_CVC_PATTERN_VALID</a> = 1839 /* 1839 */
+ <a name="XML_SCHEMAV_CVC_ENUMERATION_VALID">XML_SCHEMAV_CVC_ENUMERATION_VALID</a> = 1840 /* 1840 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1</a> = 1841 /* 1841 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2</a> = 1842 /* 1842 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3</a> = 1843 /* 1843 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4</a> = 1844 /* 1844 */
+ <a name="XML_SCHEMAV_CVC_ELT_1">XML_SCHEMAV_CVC_ELT_1</a> = 1845 /* 1845 */
+ <a name="XML_SCHEMAV_CVC_ELT_2">XML_SCHEMAV_CVC_ELT_2</a> = 1846 /* 1846 */
+ <a name="XML_SCHEMAV_CVC_ELT_3_1">XML_SCHEMAV_CVC_ELT_3_1</a> = 1847 /* 1847 */
+ <a name="XML_SCHEMAV_CVC_ELT_3_2_1">XML_SCHEMAV_CVC_ELT_3_2_1</a> = 1848 /* 1848 */
+ <a name="XML_SCHEMAV_CVC_ELT_3_2_2">XML_SCHEMAV_CVC_ELT_3_2_2</a> = 1849 /* 1849 */
+ <a name="XML_SCHEMAV_CVC_ELT_4_1">XML_SCHEMAV_CVC_ELT_4_1</a> = 1850 /* 1850 */
+ <a name="XML_SCHEMAV_CVC_ELT_4_2">XML_SCHEMAV_CVC_ELT_4_2</a> = 1851 /* 1851 */
+ <a name="XML_SCHEMAV_CVC_ELT_4_3">XML_SCHEMAV_CVC_ELT_4_3</a> = 1852 /* 1852 */
+ <a name="XML_SCHEMAV_CVC_ELT_5_1_1">XML_SCHEMAV_CVC_ELT_5_1_1</a> = 1853 /* 1853 */
+ <a name="XML_SCHEMAV_CVC_ELT_5_1_2">XML_SCHEMAV_CVC_ELT_5_1_2</a> = 1854 /* 1854 */
+ <a name="XML_SCHEMAV_CVC_ELT_5_2_1">XML_SCHEMAV_CVC_ELT_5_2_1</a> = 1855 /* 1855 */
+ <a name="XML_SCHEMAV_CVC_ELT_5_2_2_1">XML_SCHEMAV_CVC_ELT_5_2_2_1</a> = 1856 /* 1856 */
+ <a name="XML_SCHEMAV_CVC_ELT_5_2_2_2_1">XML_SCHEMAV_CVC_ELT_5_2_2_2_1</a> = 1857 /* 1857 */
+ <a name="XML_SCHEMAV_CVC_ELT_5_2_2_2_2">XML_SCHEMAV_CVC_ELT_5_2_2_2_2</a> = 1858 /* 1858 */
+ <a name="XML_SCHEMAV_CVC_ELT_6">XML_SCHEMAV_CVC_ELT_6</a> = 1859 /* 1859 */
+ <a name="XML_SCHEMAV_CVC_ELT_7">XML_SCHEMAV_CVC_ELT_7</a> = 1860 /* 1860 */
+ <a name="XML_SCHEMAV_CVC_ATTRIBUTE_1">XML_SCHEMAV_CVC_ATTRIBUTE_1</a> = 1861 /* 1861 */
+ <a name="XML_SCHEMAV_CVC_ATTRIBUTE_2">XML_SCHEMAV_CVC_ATTRIBUTE_2</a> = 1862 /* 1862 */
+ <a name="XML_SCHEMAV_CVC_ATTRIBUTE_3">XML_SCHEMAV_CVC_ATTRIBUTE_3</a> = 1863 /* 1863 */
+ <a name="XML_SCHEMAV_CVC_ATTRIBUTE_4">XML_SCHEMAV_CVC_ATTRIBUTE_4</a> = 1864 /* 1864 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1</a> = 1865 /* 1865 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1</a> = 1866 /* 1866 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2</a> = 1867 /* 1867 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_4">XML_SCHEMAV_CVC_COMPLEX_TYPE_4</a> = 1868 /* 1868 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1</a> = 1869 /* 1869 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2</a> = 1870 /* 1870 */
+ <a name="XML_SCHEMAV_ELEMENT_CONTENT">XML_SCHEMAV_ELEMENT_CONTENT</a> = 1871 /* 1871 */
+ <a name="XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING">XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING</a> = 1872 /* 1872 */
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_1</a> = 1873 /* 1873 */
+ <a name="XML_SCHEMAV_CVC_AU">XML_SCHEMAV_CVC_AU</a> = 1874 /* 1874 */
+ <a name="XML_SCHEMAV_CVC_TYPE_1">XML_SCHEMAV_CVC_TYPE_1</a> = 1875 /* 1875 */
+ <a name="XML_SCHEMAV_CVC_TYPE_2">XML_SCHEMAV_CVC_TYPE_2</a> = 1876 /* 1876 */
+ <a name="XML_SCHEMAV_CVC_IDC">XML_SCHEMAV_CVC_IDC</a> = 1877 /* 1877 */
+ <a name="XML_SCHEMAV_CVC_WILDCARD">XML_SCHEMAV_CVC_WILDCARD</a> = 1878 /* 1878 */
+ <a name="XML_SCHEMAV_MISC">XML_SCHEMAV_MISC</a> = 1879 /* 1879 */
+ <a name="XML_XPTR_UNKNOWN_SCHEME">XML_XPTR_UNKNOWN_SCHEME</a> = 1900
+ <a name="XML_XPTR_CHILDSEQ_START">XML_XPTR_CHILDSEQ_START</a> = 1901 /* 1901 */
+ <a name="XML_XPTR_EVAL_FAILED">XML_XPTR_EVAL_FAILED</a> = 1902 /* 1902 */
+ <a name="XML_XPTR_EXTRA_OBJECTS">XML_XPTR_EXTRA_OBJECTS</a> = 1903 /* 1903 */
+ <a name="XML_C14N_CREATE_CTXT">XML_C14N_CREATE_CTXT</a> = 1950
+ <a name="XML_C14N_REQUIRES_UTF8">XML_C14N_REQUIRES_UTF8</a> = 1951 /* 1951 */
+ <a name="XML_C14N_CREATE_STACK">XML_C14N_CREATE_STACK</a> = 1952 /* 1952 */
+ <a name="XML_C14N_INVALID_NODE">XML_C14N_INVALID_NODE</a> = 1953 /* 1953 */
+ <a name="XML_C14N_UNKNOW_NODE">XML_C14N_UNKNOW_NODE</a> = 1954 /* 1954 */
+ <a name="XML_C14N_RELATIVE_NAMESPACE">XML_C14N_RELATIVE_NAMESPACE</a> = 1955 /* 1955 */
+ <a name="XML_FTP_PASV_ANSWER">XML_FTP_PASV_ANSWER</a> = 2000
+ <a name="XML_FTP_EPSV_ANSWER">XML_FTP_EPSV_ANSWER</a> = 2001 /* 2001 */
+ <a name="XML_FTP_ACCNT">XML_FTP_ACCNT</a> = 2002 /* 2002 */
+ <a name="XML_FTP_URL_SYNTAX">XML_FTP_URL_SYNTAX</a> = 2003 /* 2003 */
+ <a name="XML_HTTP_URL_SYNTAX">XML_HTTP_URL_SYNTAX</a> = 2020
+ <a name="XML_HTTP_USE_IP">XML_HTTP_USE_IP</a> = 2021 /* 2021 */
+ <a name="XML_HTTP_UNKNOWN_HOST">XML_HTTP_UNKNOWN_HOST</a> = 2022 /* 2022 */
+ <a name="XML_SCHEMAP_SRC_SIMPLE_TYPE_1">XML_SCHEMAP_SRC_SIMPLE_TYPE_1</a> = 3000
+ <a name="XML_SCHEMAP_SRC_SIMPLE_TYPE_2">XML_SCHEMAP_SRC_SIMPLE_TYPE_2</a> = 3001 /* 3001 */
+ <a name="XML_SCHEMAP_SRC_SIMPLE_TYPE_3">XML_SCHEMAP_SRC_SIMPLE_TYPE_3</a> = 3002 /* 3002 */
+ <a name="XML_SCHEMAP_SRC_SIMPLE_TYPE_4">XML_SCHEMAP_SRC_SIMPLE_TYPE_4</a> = 3003 /* 3003 */
+ <a name="XML_SCHEMAP_SRC_RESOLVE">XML_SCHEMAP_SRC_RESOLVE</a> = 3004 /* 3004 */
+ <a name="XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE</a> = 3005 /* 3005 */
+ <a name="XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE</a> = 3006 /* 3006 */
+ <a name="XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES">XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES</a> = 3007 /* 3007 */
+ <a name="XML_SCHEMAP_ST_PROPS_CORRECT_1">XML_SCHEMAP_ST_PROPS_CORRECT_1</a> = 3008 /* 3008 */
+ <a name="XML_SCHEMAP_ST_PROPS_CORRECT_2">XML_SCHEMAP_ST_PROPS_CORRECT_2</a> = 3009 /* 3009 */
+ <a name="XML_SCHEMAP_ST_PROPS_CORRECT_3">XML_SCHEMAP_ST_PROPS_CORRECT_3</a> = 3010 /* 3010 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_1_1">XML_SCHEMAP_COS_ST_RESTRICTS_1_1</a> = 3011 /* 3011 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_1_2</a> = 3012 /* 3012 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1</a> = 3013 /* 3013 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2">XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2</a> = 3014 /* 3014 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_1</a> = 3015 /* 3015 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1</a> = 3016 /* 3016 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2</a> = 3017 /* 3017 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1</a> = 3018 /* 3018 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2</a> = 3019 /* 3019 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3</a> = 3020 /* 3020 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4</a> = 3021 /* 3021 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5</a> = 3022 /* 3022 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_1</a> = 3023 /* 3023 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1</a> = 3024 /* 3024 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2</a> = 3025 /* 3025 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2</a> = 3026 /* 3026 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1</a> = 3027 /* 3027 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3</a> = 3028 /* 3028 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4</a> = 3029 /* 3029 */
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5</a> = 3030 /* 3030 */
+ <a name="XML_SCHEMAP_COS_ST_DERIVED_OK_2_1">XML_SCHEMAP_COS_ST_DERIVED_OK_2_1</a> = 3031 /* 3031 */
+ <a name="XML_SCHEMAP_COS_ST_DERIVED_OK_2_2">XML_SCHEMAP_COS_ST_DERIVED_OK_2_2</a> = 3032 /* 3032 */
+ <a name="XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED">XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED</a> = 3033 /* 3033 */
+ <a name="XML_SCHEMAP_S4S_ELEM_MISSING">XML_SCHEMAP_S4S_ELEM_MISSING</a> = 3034 /* 3034 */
+ <a name="XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED">XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED</a> = 3035 /* 3035 */
+ <a name="XML_SCHEMAP_S4S_ATTR_MISSING">XML_SCHEMAP_S4S_ATTR_MISSING</a> = 3036 /* 3036 */
+ <a name="XML_SCHEMAP_S4S_ATTR_INVALID_VALUE">XML_SCHEMAP_S4S_ATTR_INVALID_VALUE</a> = 3037 /* 3037 */
+ <a name="XML_SCHEMAP_SRC_ELEMENT_1">XML_SCHEMAP_SRC_ELEMENT_1</a> = 3038 /* 3038 */
+ <a name="XML_SCHEMAP_SRC_ELEMENT_2_1">XML_SCHEMAP_SRC_ELEMENT_2_1</a> = 3039 /* 3039 */
+ <a name="XML_SCHEMAP_SRC_ELEMENT_2_2">XML_SCHEMAP_SRC_ELEMENT_2_2</a> = 3040 /* 3040 */
+ <a name="XML_SCHEMAP_SRC_ELEMENT_3">XML_SCHEMAP_SRC_ELEMENT_3</a> = 3041 /* 3041 */
+ <a name="XML_SCHEMAP_P_PROPS_CORRECT_1">XML_SCHEMAP_P_PROPS_CORRECT_1</a> = 3042 /* 3042 */
+ <a name="XML_SCHEMAP_P_PROPS_CORRECT_2_1">XML_SCHEMAP_P_PROPS_CORRECT_2_1</a> = 3043 /* 3043 */
+ <a name="XML_SCHEMAP_P_PROPS_CORRECT_2_2">XML_SCHEMAP_P_PROPS_CORRECT_2_2</a> = 3044 /* 3044 */
+ <a name="XML_SCHEMAP_E_PROPS_CORRECT_2">XML_SCHEMAP_E_PROPS_CORRECT_2</a> = 3045 /* 3045 */
+ <a name="XML_SCHEMAP_E_PROPS_CORRECT_3">XML_SCHEMAP_E_PROPS_CORRECT_3</a> = 3046 /* 3046 */
+ <a name="XML_SCHEMAP_E_PROPS_CORRECT_4">XML_SCHEMAP_E_PROPS_CORRECT_4</a> = 3047 /* 3047 */
+ <a name="XML_SCHEMAP_E_PROPS_CORRECT_5">XML_SCHEMAP_E_PROPS_CORRECT_5</a> = 3048 /* 3048 */
+ <a name="XML_SCHEMAP_E_PROPS_CORRECT_6">XML_SCHEMAP_E_PROPS_CORRECT_6</a> = 3049 /* 3049 */
+ <a name="XML_SCHEMAP_SRC_INCLUDE">XML_SCHEMAP_SRC_INCLUDE</a> = 3050 /* 3050 */
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_1">XML_SCHEMAP_SRC_ATTRIBUTE_1</a> = 3051 /* 3051 */
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_2">XML_SCHEMAP_SRC_ATTRIBUTE_2</a> = 3052 /* 3052 */
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_3_1">XML_SCHEMAP_SRC_ATTRIBUTE_3_1</a> = 3053 /* 3053 */
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_3_2">XML_SCHEMAP_SRC_ATTRIBUTE_3_2</a> = 3054 /* 3054 */
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_4">XML_SCHEMAP_SRC_ATTRIBUTE_4</a> = 3055 /* 3055 */
+ <a name="XML_SCHEMAP_NO_XMLNS">XML_SCHEMAP_NO_XMLNS</a> = 3056 /* 3056 */
+ <a name="XML_SCHEMAP_NO_XSI">XML_SCHEMAP_NO_XSI</a> = 3057 /* 3057 */
+ <a name="XML_SCHEMAP_COS_VALID_DEFAULT_1">XML_SCHEMAP_COS_VALID_DEFAULT_1</a> = 3058 /* 3058 */
+ <a name="XML_SCHEMAP_COS_VALID_DEFAULT_2_1">XML_SCHEMAP_COS_VALID_DEFAULT_2_1</a> = 3059 /* 3059 */
+ <a name="XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1">XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1</a> = 3060 /* 3060 */
+ <a name="XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2">XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2</a> = 3061 /* 3061 */
+ <a name="XML_SCHEMAP_CVC_SIMPLE_TYPE">XML_SCHEMAP_CVC_SIMPLE_TYPE</a> = 3062 /* 3062 */
+ <a name="XML_SCHEMAP_COS_CT_EXTENDS_1_1">XML_SCHEMAP_COS_CT_EXTENDS_1_1</a> = 3063 /* 3063 */
+ <a name="XML_SCHEMAP_SRC_IMPORT_1_1">XML_SCHEMAP_SRC_IMPORT_1_1</a> = 3064 /* 3064 */
+ <a name="XML_SCHEMAP_SRC_IMPORT_1_2">XML_SCHEMAP_SRC_IMPORT_1_2</a> = 3065 /* 3065 */
+ <a name="XML_SCHEMAP_SRC_IMPORT_2">XML_SCHEMAP_SRC_IMPORT_2</a> = 3066 /* 3066 */
+ <a name="XML_SCHEMAP_SRC_IMPORT_2_1">XML_SCHEMAP_SRC_IMPORT_2_1</a> = 3067 /* 3067 */
+ <a name="XML_SCHEMAP_SRC_IMPORT_2_2">XML_SCHEMAP_SRC_IMPORT_2_2</a> = 3068 /* 3068 */
+ <a name="XML_SCHEMAP_INTERNAL">XML_SCHEMAP_INTERNAL</a> = 3069 /* 3069 non-W3C */
+ <a name="XML_SCHEMAP_NOT_DETERMINISTIC">XML_SCHEMAP_NOT_DETERMINISTIC</a> = 3070 /* 3070 non-W3C */
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1</a> = 3071 /* 3071 */
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2</a> = 3072 /* 3072 */
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3</a> = 3073 /* 3073 */
+ <a name="XML_SCHEMAP_MG_PROPS_CORRECT_1">XML_SCHEMAP_MG_PROPS_CORRECT_1</a> = 3074 /* 3074 */
+ <a name="XML_SCHEMAP_MG_PROPS_CORRECT_2">XML_SCHEMAP_MG_PROPS_CORRECT_2</a> = 3075 /* 3075 */
+ <a name="XML_SCHEMAP_SRC_CT_1">XML_SCHEMAP_SRC_CT_1</a> = 3076 /* 3076 */
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3</a> = 3077 /* 3077 */
+ <a name="XML_SCHEMAP_AU_PROPS_CORRECT_2">XML_SCHEMAP_AU_PROPS_CORRECT_2</a> = 3078 /* 3078 */
+ <a name="XML_SCHEMAP_A_PROPS_CORRECT_2">XML_SCHEMAP_A_PROPS_CORRECT_2</a> = 3079 /* 3079 */
+ <a name="XML_SCHEMAP_C_PROPS_CORRECT">XML_SCHEMAP_C_PROPS_CORRECT</a> = 3080 /* 3080 */
+ <a name="XML_SCHEMAP_SRC_REDEFINE">XML_SCHEMAP_SRC_REDEFINE</a> = 3081 /* 3081 */
+ <a name="XML_SCHEMAP_SRC_IMPORT">XML_SCHEMAP_SRC_IMPORT</a> = 3082 /* 3082 */
+ <a name="XML_SCHEMAP_WARN_SKIP_SCHEMA">XML_SCHEMAP_WARN_SKIP_SCHEMA</a> = 3083 /* 3083 */
+ <a name="XML_SCHEMAP_WARN_UNLOCATED_SCHEMA">XML_SCHEMAP_WARN_UNLOCATED_SCHEMA</a> = 3084 /* 3084 */
+ <a name="XML_SCHEMAP_WARN_ATTR_REDECL_PROH">XML_SCHEMAP_WARN_ATTR_REDECL_PROH</a> = 3085 /* 3085 */
+ <a name="XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH">XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH</a> = 3086 /* 3085 */
+ <a name="XML_SCHEMAP_AG_PROPS_CORRECT">XML_SCHEMAP_AG_PROPS_CORRECT</a> = 3087 /* 3086 */
+ <a name="XML_SCHEMAP_COS_CT_EXTENDS_1_2">XML_SCHEMAP_COS_CT_EXTENDS_1_2</a> = 3088 /* 3087 */
+ <a name="XML_SCHEMAP_AU_PROPS_CORRECT">XML_SCHEMAP_AU_PROPS_CORRECT</a> = 3089 /* 3088 */
+ <a name="XML_SCHEMAP_A_PROPS_CORRECT_3">XML_SCHEMAP_A_PROPS_CORRECT_3</a> = 3090 /* 3089 */
+ <a name="XML_SCHEMAP_COS_ALL_LIMITED">XML_SCHEMAP_COS_ALL_LIMITED</a> = 3091 /* 3090 */
+ <a name="XML_SCHEMATRONV_ASSERT">XML_SCHEMATRONV_ASSERT</a> = 4000 /* 4000 */
+ <a name="XML_SCHEMATRONV_REPORT">XML_SCHEMATRONV_REPORT</a> = 4001
+ <a name="XML_MODULE_OPEN">XML_MODULE_OPEN</a> = 4900 /* 4900 */
+ <a name="XML_MODULE_CLOSE">XML_MODULE_CLOSE</a> = 4901 /* 4901 */
+ <a name="XML_CHECK_FOUND_ELEMENT">XML_CHECK_FOUND_ELEMENT</a> = 5000
+ <a name="XML_CHECK_FOUND_ATTRIBUTE">XML_CHECK_FOUND_ATTRIBUTE</a> = 5001 /* 5001 */
+ <a name="XML_CHECK_FOUND_TEXT">XML_CHECK_FOUND_TEXT</a> = 5002 /* 5002 */
+ <a name="XML_CHECK_FOUND_CDATA">XML_CHECK_FOUND_CDATA</a> = 5003 /* 5003 */
+ <a name="XML_CHECK_FOUND_ENTITYREF">XML_CHECK_FOUND_ENTITYREF</a> = 5004 /* 5004 */
+ <a name="XML_CHECK_FOUND_ENTITY">XML_CHECK_FOUND_ENTITY</a> = 5005 /* 5005 */
+ <a name="XML_CHECK_FOUND_PI">XML_CHECK_FOUND_PI</a> = 5006 /* 5006 */
+ <a name="XML_CHECK_FOUND_COMMENT">XML_CHECK_FOUND_COMMENT</a> = 5007 /* 5007 */
+ <a name="XML_CHECK_FOUND_DOCTYPE">XML_CHECK_FOUND_DOCTYPE</a> = 5008 /* 5008 */
+ <a name="XML_CHECK_FOUND_FRAGMENT">XML_CHECK_FOUND_FRAGMENT</a> = 5009 /* 5009 */
+ <a name="XML_CHECK_FOUND_NOTATION">XML_CHECK_FOUND_NOTATION</a> = 5010 /* 5010 */
+ <a name="XML_CHECK_UNKNOWN_NODE">XML_CHECK_UNKNOWN_NODE</a> = 5011 /* 5011 */
+ <a name="XML_CHECK_ENTITY_TYPE">XML_CHECK_ENTITY_TYPE</a> = 5012 /* 5012 */
+ <a name="XML_CHECK_NO_PARENT">XML_CHECK_NO_PARENT</a> = 5013 /* 5013 */
+ <a name="XML_CHECK_NO_DOC">XML_CHECK_NO_DOC</a> = 5014 /* 5014 */
+ <a name="XML_CHECK_NO_NAME">XML_CHECK_NO_NAME</a> = 5015 /* 5015 */
+ <a name="XML_CHECK_NO_ELEM">XML_CHECK_NO_ELEM</a> = 5016 /* 5016 */
+ <a name="XML_CHECK_WRONG_DOC">XML_CHECK_WRONG_DOC</a> = 5017 /* 5017 */
+ <a name="XML_CHECK_NO_PREV">XML_CHECK_NO_PREV</a> = 5018 /* 5018 */
+ <a name="XML_CHECK_WRONG_PREV">XML_CHECK_WRONG_PREV</a> = 5019 /* 5019 */
+ <a name="XML_CHECK_NO_NEXT">XML_CHECK_NO_NEXT</a> = 5020 /* 5020 */
+ <a name="XML_CHECK_WRONG_NEXT">XML_CHECK_WRONG_NEXT</a> = 5021 /* 5021 */
+ <a name="XML_CHECK_NOT_DTD">XML_CHECK_NOT_DTD</a> = 5022 /* 5022 */
+ <a name="XML_CHECK_NOT_ATTR">XML_CHECK_NOT_ATTR</a> = 5023 /* 5023 */
+ <a name="XML_CHECK_NOT_ATTR_DECL">XML_CHECK_NOT_ATTR_DECL</a> = 5024 /* 5024 */
+ <a name="XML_CHECK_NOT_ELEM_DECL">XML_CHECK_NOT_ELEM_DECL</a> = 5025 /* 5025 */
+ <a name="XML_CHECK_NOT_ENTITY_DECL">XML_CHECK_NOT_ENTITY_DECL</a> = 5026 /* 5026 */
+ <a name="XML_CHECK_NOT_NS_DECL">XML_CHECK_NOT_NS_DECL</a> = 5027 /* 5027 */
+ <a name="XML_CHECK_NO_HREF">XML_CHECK_NO_HREF</a> = 5028 /* 5028 */
+ <a name="XML_CHECK_WRONG_PARENT">XML_CHECK_WRONG_PARENT</a> = 5029 /* 5029 */
+ <a name="XML_CHECK_NS_SCOPE">XML_CHECK_NS_SCOPE</a> = 5030 /* 5030 */
+ <a name="XML_CHECK_NS_ANCESTOR">XML_CHECK_NS_ANCESTOR</a> = 5031 /* 5031 */
+ <a name="XML_CHECK_NOT_UTF8">XML_CHECK_NOT_UTF8</a> = 5032 /* 5032 */
+ <a name="XML_CHECK_NO_DICT">XML_CHECK_NO_DICT</a> = 5033 /* 5033 */
+ <a name="XML_CHECK_NOT_NCNAME">XML_CHECK_NOT_NCNAME</a> = 5034 /* 5034 */
+ <a name="XML_CHECK_OUTSIDE_DICT">XML_CHECK_OUTSIDE_DICT</a> = 5035 /* 5035 */
+ <a name="XML_CHECK_WRONG_NAME">XML_CHECK_WRONG_NAME</a> = 5036 /* 5036 */
+ <a name="XML_CHECK_NAME_NOT_NULL">XML_CHECK_NAME_NOT_NULL</a> = 5037 /* 5037 */
+ <a name="XML_I18N_NO_NAME">XML_I18N_NO_NAME</a> = 6000
+ <a name="XML_I18N_NO_HANDLER">XML_I18N_NO_HANDLER</a> = 6001 /* 6001 */
+ <a name="XML_I18N_EXCESS_HANDLER">XML_I18N_EXCESS_HANDLER</a> = 6002 /* 6002 */
+ <a name="XML_I18N_CONV_FAILED">XML_I18N_CONV_FAILED</a> = 6003 /* 6003 */
+ <a name="XML_I18N_NO_OUTPUT">XML_I18N_NO_OUTPUT</a> = 6004 /* 6004 */
+ <a name="XML_BUF_OVERFLOW">XML_BUF_OVERFLOW</a> = 7000
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGenericErrorFunc"/>Function type xmlGenericErrorFunc</h3><pre class="programlisting">void xmlGenericErrorFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Signature of the function to use when there is an error and no parsing or validity context available .</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>a parsing context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>the extra arguments of the varargs to format the message</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStructuredErrorFunc"/>Function type xmlStructuredErrorFunc</h3><pre class="programlisting">void xmlStructuredErrorFunc (void * userData, <br/> <a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> error)<br/>
+</pre><p>Signature of the function to use when there is an error and the module handles the new error reporting mechanism.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>user provided data for the error callback</td></tr><tr><td><span class="term"><i><tt>error</tt></i>:</span></td><td>the error being raised.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="initGenericErrorDefaultFunc"/>initGenericErrorDefaultFunc ()</h3><pre class="programlisting">void initGenericErrorDefaultFunc (<a href="libxml2-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> * handler)<br/>
+</pre><p>Set or reset (if NULL) the default handler for generic errors to the builtin error function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the handler</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCopyError"/>xmlCopyError ()</h3><pre class="programlisting">int xmlCopyError (<a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> from, <br/> <a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> to)<br/>
+</pre><p>Save the original error to the new place.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>a source error</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>a target error</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCtxtGetLastError"/>xmlCtxtGetLastError ()</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> xmlCtxtGetLastError (void * ctx)<br/>
+</pre><p>Get the last parsing error registered.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCtxtResetLastError"/>xmlCtxtResetLastError ()</h3><pre class="programlisting">void xmlCtxtResetLastError (void * ctx)<br/>
+</pre><p>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetLastError"/>xmlGetLastError ()</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> xmlGetLastError (void)<br/>
+</pre><p>Get the last global error registered. This is per thread if compiled with thread support.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserError"/>xmlParserError ()</h3><pre class="programlisting">void xmlParserError (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Display and format an error messages, gives file, line, position and extra parameters.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserPrintFileContext"/>xmlParserPrintFileContext ()</h3><pre class="programlisting">void xmlParserPrintFileContext (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br/>
+</pre><p>Displays current context within the input content for error tracking</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserPrintFileInfo"/>xmlParserPrintFileInfo ()</h3><pre class="programlisting">void xmlParserPrintFileInfo (<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br/>
+</pre><p>Displays the associated file and line informations for the current input</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserValidityError"/>xmlParserValidityError ()</h3><pre class="programlisting">void xmlParserValidityError (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Display and format an validity error messages, gives file, line, position and extra parameters.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserValidityWarning"/>xmlParserValidityWarning ()</h3><pre class="programlisting">void xmlParserValidityWarning (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Display and format a validity warning messages, gives file, line, position and extra parameters.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserWarning"/>xmlParserWarning ()</h3><pre class="programlisting">void xmlParserWarning (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Display and format a warning messages, gives file, line, position and extra parameters.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlResetError"/>xmlResetError ()</h3><pre class="programlisting">void xmlResetError (<a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> err)<br/>
+</pre><p>Cleanup the error.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>pointer to the error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlResetLastError"/>xmlResetLastError ()</h3><pre class="programlisting">void xmlResetLastError (void)<br/>
+</pre><p>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetGenericErrorFunc"/>xmlSetGenericErrorFunc ()</h3><pre class="programlisting">void xmlSetGenericErrorFunc (void * ctx, <br/> <a href="libxml2-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> handler)<br/>
+</pre><p>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL. For multi-threaded applications, this must be set separately for each thread.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSetStructuredErrorFunc"/>xmlSetStructuredErrorFunc ()</h3><pre class="programlisting">void xmlSetStructuredErrorFunc (void * ctx, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> handler)<br/>
+</pre><p>Function to reset the handler and the error context for out of context structured error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler For multi-threaded applications, this must be set separately for each thread.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlexports.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlexports.html
new file mode 100644
index 0000000..a596490
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlexports.html
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlexports: macros for marking symbols as exportable/importable.</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlerror.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlmemory.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlexports</span>
+ </h2>
+ <p>xmlexports - macros for marking symbols as exportable/importable.</p>
+ <p>macros for marking symbols as exportable/importable. </p>
+ <p>Author(s): Igor Zlatovic &lt;igor@zlatkovic.com&gt; </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#XMLCALL">XMLCALL</a>;
+#define <a href="#XMLPUBVAR">XMLPUBVAR</a>;
+#define <a href="#XMLCDECL">XMLCDECL</a>;
+#define <a href="#XMLPUBFUN">XMLPUBFUN</a>;
+#define <a href="#LIBXML_DLL_IMPORT">LIBXML_DLL_IMPORT</a>;
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_DLL_IMPORT">Macro </a>LIBXML_DLL_IMPORT</h3><pre class="programlisting">#define <a href="#LIBXML_DLL_IMPORT">LIBXML_DLL_IMPORT</a>;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XMLCALL">Macro </a>XMLCALL</h3><pre class="programlisting">#define <a href="#XMLCALL">XMLCALL</a>;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XMLCDECL">Macro </a>XMLCDECL</h3><pre class="programlisting">#define <a href="#XMLCDECL">XMLCDECL</a>;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XMLPUBFUN">Macro </a>XMLPUBFUN</h3><pre class="programlisting">#define <a href="#XMLPUBFUN">XMLPUBFUN</a>;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XMLPUBVAR">Macro </a>XMLPUBVAR</h3><pre class="programlisting">#define <a href="#XMLPUBVAR">XMLPUBVAR</a>;
+</pre><p/>
+</div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlmemory.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlmemory.html
new file mode 100644
index 0000000..bf400d0
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlmemory.html
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlmemory: interface for the memory allocator</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlexports.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlmodule.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlmemory</span>
+ </h2>
+ <p>xmlmemory - interface for the memory allocator</p>
+ <p>provides interfaces for the memory allocator, including debugging capabilities. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#xmlRealloc">xmlRealloc</a>;
+#define <a href="#xmlMalloc">xmlMalloc</a>;
+#define <a href="#xmlMallocAtomic">xmlMallocAtomic</a>;
+#define <a href="#DEBUG_MEMORY">DEBUG_MEMORY</a>;
+#define <a href="#xmlMemStrdup">xmlMemStrdup</a>;
+void * <a href="#xmlMemRealloc">xmlMemRealloc</a> (void * ptr, <br/> size_t size);
+int <a href="#xmlInitMemory">xmlInitMemory</a> (void);
+void <a href="#xmlMemFree">xmlMemFree</a> (void * ptr);
+void * <a href="#xmlMemMalloc">xmlMemMalloc</a> (size_t size);
+void <a href="#xmlMemDisplayLast">xmlMemDisplayLast</a> (FILE * fp, <br/> long nbBytes);
+int <a href="#xmlMemGet">xmlMemGet</a> (<a href="libxml2-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc);
+void <a href="#xmlMemoryDump">xmlMemoryDump</a> (void);
+void * <a href="#xmlMallocLoc">xmlMallocLoc</a> (size_t size, <br/> const char * file, <br/> int line);
+void <a href="#xmlMemDisplay">xmlMemDisplay</a> (FILE * fp);
+int <a href="#xmlMemBlocks">xmlMemBlocks</a> (void);
+int <a href="#xmlGcMemGet">xmlGcMemGet</a> (<a href="libxml2-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocAtomicFunc, <br/> <a href="libxml2-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc);
+typedef char * <a href="#xmlStrdupFunc">xmlStrdupFunc</a> (const char * str);
+typedef void <a href="#xmlFreeFunc">xmlFreeFunc</a> (void * mem);
+void <a href="#xmlMemShow">xmlMemShow</a> (FILE * fp, <br/> int nr);
+void * <a href="#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a> (size_t size, <br/> const char * file, <br/> int line);
+void * <a href="#xmlReallocLoc">xmlReallocLoc</a> (void * ptr, <br/> size_t size, <br/> const char * file, <br/> int line);
+void <a href="#xmlCleanupMemory">xmlCleanupMemory</a> (void);
+int <a href="#xmlMemUsed">xmlMemUsed</a> (void);
+int <a href="#xmlMemSetup">xmlMemSetup</a> (<a href="libxml2-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> freeFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> reallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> strdupFunc);
+typedef void * <a href="#xmlReallocFunc">xmlReallocFunc</a> (void * mem, <br/> size_t size);
+typedef void * <a href="#xmlMallocFunc">xmlMallocFunc</a> (size_t size);
+int <a href="#xmlGcMemSetup">xmlGcMemSetup</a> (<a href="libxml2-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> freeFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocAtomicFunc, <br/> <a href="libxml2-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> reallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> strdupFunc);
+char * <a href="#xmlMemoryStrdup">xmlMemoryStrdup</a> (const char * str);
+char * <a href="#xmlMemStrdupLoc">xmlMemStrdupLoc</a> (const char * str, <br/> const char * file, <br/> int line);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="DEBUG_MEMORY">Macro </a>DEBUG_MEMORY</h3><pre class="programlisting">#define <a href="#DEBUG_MEMORY">DEBUG_MEMORY</a>;
+</pre><p><a href="libxml2-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a> replaces the allocator with a collect and debug shell to the libc allocator. <a href="libxml2-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a> should only be activated when debugging libxml i.e. if libxml has been configured with --with-debug-mem too. #define DEBUG_MEMORY_FREED #define <a href="libxml2-xmlversion.html#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a></p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeFunc"/>Function type xmlFreeFunc</h3><pre class="programlisting">void xmlFreeFunc (void * mem)<br/>
+</pre><p>Signature for a free() implementation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>an already allocated block of memory</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMallocFunc"/>Function type xmlMallocFunc</h3><pre class="programlisting">void * xmlMallocFunc (size_t size)<br/>
+</pre><p>Signature for a malloc() implementation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size requested in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the newly allocated block or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReallocFunc"/>Function type xmlReallocFunc</h3><pre class="programlisting">void * xmlReallocFunc (void * mem, <br/> size_t size)<br/>
+</pre><p>Signature for a realloc() implementation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>an already allocated block of memory</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the new size requested in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the newly reallocated block or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrdupFunc"/>Function type xmlStrdupFunc</h3><pre class="programlisting">char * xmlStrdupFunc (const char * str)<br/>
+</pre><p>Signature for an strdup() implementation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>a zero terminated string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the copy of the string or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCleanupMemory"/>xmlCleanupMemory ()</h3><pre class="programlisting">void xmlCleanupMemory (void)<br/>
+</pre><p>Free up all the memory allocated by the library for its own use. This should not be called by user level code.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGcMemGet"/>xmlGcMemGet ()</h3><pre class="programlisting">int xmlGcMemGet (<a href="libxml2-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocAtomicFunc, <br/> <a href="libxml2-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc)<br/>
+</pre><p>Provides the memory access functions set currently in use The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas useful for garbage collected memory allocators</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>place to save the free() function in use</td></tr><tr><td><span class="term"><i><tt>mallocFunc</tt></i>:</span></td><td>place to save the malloc() function in use</td></tr><tr><td><span class="term"><i><tt>mallocAtomicFunc</tt></i>:</span></td><td>place to save the atomic malloc() function in use</td></tr><tr><td><span class="term"><i><tt>reallocFunc</tt></i>:</span></td><td>place to save the realloc() function in use</td></tr><tr><td><span class="term"><i><tt>strdupFunc</tt></i>:</span></td><td>place to save the strdup() function in use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGcMemSetup"/>xmlGcMemSetup ()</h3><pre class="programlisting">int xmlGcMemSetup (<a href="libxml2-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> freeFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocAtomicFunc, <br/> <a href="libxml2-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> reallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> strdupFunc)<br/>
+</pre><p>Override the default memory access functions with a new set This has to be called before any other libxml routines ! The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas useful for garbage collected memory allocators Should this be blocked if there was already some allocations done ?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>the free() function to use</td></tr><tr><td><span class="term"><i><tt>mallocFunc</tt></i>:</span></td><td>the malloc() function to use</td></tr><tr><td><span class="term"><i><tt>mallocAtomicFunc</tt></i>:</span></td><td>the malloc() function to use for atomic allocations</td></tr><tr><td><span class="term"><i><tt>reallocFunc</tt></i>:</span></td><td>the realloc() function to use</td></tr><tr><td><span class="term"><i><tt>strdupFunc</tt></i>:</span></td><td>the strdup() function to use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlInitMemory"/>xmlInitMemory ()</h3><pre class="programlisting">int xmlInitMemory (void)<br/>
+</pre><p>Initialize the memory layer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMallocAtomicLoc"/>xmlMallocAtomicLoc ()</h3><pre class="programlisting">void * xmlMallocAtomicLoc (size_t size, <br/> const char * file, <br/> int line)<br/>
+</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an unsigned int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMallocLoc"/>xmlMallocLoc ()</h3><pre class="programlisting">void * xmlMallocLoc (size_t size, <br/> const char * file, <br/> int line)<br/>
+</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemBlocks"/>xmlMemBlocks ()</h3><pre class="programlisting">int xmlMemBlocks (void)<br/>
+</pre><p>Provides the number of memory areas currently allocated</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int representing the number of blocks</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemDisplay"/>xmlMemDisplay ()</h3><pre class="programlisting">void xmlMemDisplay (FILE * fp)<br/>
+</pre><p>show in-extenso the memory blocks allocated</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>fp</tt></i>:</span></td><td>a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemDisplayLast"/>xmlMemDisplayLast ()</h3><pre class="programlisting">void xmlMemDisplayLast (FILE * fp, <br/> long nbBytes)<br/>
+</pre><p>the last nbBytes of memory allocated and not freed, useful for dumping the memory left allocated between two places at runtime.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>fp</tt></i>:</span></td><td>a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist</td></tr><tr><td><span class="term"><i><tt>nbBytes</tt></i>:</span></td><td>the amount of memory to dump</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemFree"/>xmlMemFree ()</h3><pre class="programlisting">void xmlMemFree (void * ptr)<br/>
+</pre><p>a free() equivalent, with error checking.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td>the memory block pointer</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemGet"/>xmlMemGet ()</h3><pre class="programlisting">int xmlMemGet (<a href="libxml2-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc)<br/>
+</pre><p>Provides the memory access functions set currently in use</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>place to save the free() function in use</td></tr><tr><td><span class="term"><i><tt>mallocFunc</tt></i>:</span></td><td>place to save the malloc() function in use</td></tr><tr><td><span class="term"><i><tt>reallocFunc</tt></i>:</span></td><td>place to save the realloc() function in use</td></tr><tr><td><span class="term"><i><tt>strdupFunc</tt></i>:</span></td><td>place to save the strdup() function in use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemMalloc"/>xmlMemMalloc ()</h3><pre class="programlisting">void * xmlMemMalloc (size_t size)<br/>
+</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemRealloc"/>xmlMemRealloc ()</h3><pre class="programlisting">void * xmlMemRealloc (void * ptr, <br/> size_t size)<br/>
+</pre><p>a realloc() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td>the initial memory block pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemSetup"/>xmlMemSetup ()</h3><pre class="programlisting">int xmlMemSetup (<a href="libxml2-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> freeFunc, <br/> <a href="libxml2-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> reallocFunc, <br/> <a href="libxml2-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> strdupFunc)<br/>
+</pre><p>Override the default memory access functions with a new set This has to be called before any other libxml routines ! Should this be blocked if there was already some allocations done ?</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>the free() function to use</td></tr><tr><td><span class="term"><i><tt>mallocFunc</tt></i>:</span></td><td>the malloc() function to use</td></tr><tr><td><span class="term"><i><tt>reallocFunc</tt></i>:</span></td><td>the realloc() function to use</td></tr><tr><td><span class="term"><i><tt>strdupFunc</tt></i>:</span></td><td>the strdup() function to use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemShow"/>xmlMemShow ()</h3><pre class="programlisting">void xmlMemShow (FILE * fp, <br/> int nr)<br/>
+</pre><p>show a show display of the memory allocated, and dump the @nr last allocated areas which were not freed</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>fp</tt></i>:</span></td><td>a FILE descriptor used as the output file</td></tr><tr><td><span class="term"><i><tt>nr</tt></i>:</span></td><td>number of entries to dump</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemStrdupLoc"/>xmlMemStrdupLoc ()</h3><pre class="programlisting">char * xmlMemStrdupLoc (const char * str, <br/> const char * file, <br/> int line)<br/>
+</pre><p>a strdup() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the initial string pointer</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new string or NULL if allocation error occurred.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemUsed"/>xmlMemUsed ()</h3><pre class="programlisting">int xmlMemUsed (void)<br/>
+</pre><p>Provides the amount of memory currently allocated</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int representing the amount of memory allocated.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemoryDump"/>xmlMemoryDump ()</h3><pre class="programlisting">void xmlMemoryDump (void)<br/>
+</pre><p>Dump in-extenso the memory blocks allocated to the file .memorylist</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlMemoryStrdup"/>xmlMemoryStrdup ()</h3><pre class="programlisting">char * xmlMemoryStrdup (const char * str)<br/>
+</pre><p>a strdup() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the initial string pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new string or NULL if allocation error occurred.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReallocLoc"/>xmlReallocLoc ()</h3><pre class="programlisting">void * xmlReallocLoc (void * ptr, <br/> size_t size, <br/> const char * file, <br/> int line)<br/>
+</pre><p>a realloc() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td>the initial memory block pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlmodule.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlmodule.html
new file mode 100644
index 0000000..28c5bec
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlmodule.html
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlmodule: dynamic module loading</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlmemory.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlreader.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlmodule</span>
+ </h2>
+ <p>xmlmodule - dynamic module loading</p>
+ <p>basic API for dynamic module loading, used by libexslt added in 2.6.17 </p>
+ <p>Author(s): Joel W. Reed </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef struct _xmlModule <a href="#xmlModule">xmlModule</a>;
+typedef <a href="libxml2-xmlmodule.html#xmlModule">xmlModule</a> * <a href="#xmlModulePtr">xmlModulePtr</a>;
+typedef enum <a href="#xmlModuleOption">xmlModuleOption</a>;
+int <a href="#xmlModuleFree">xmlModuleFree</a> (<a href="libxml2-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module);
+int <a href="#xmlModuleSymbol">xmlModuleSymbol</a> (<a href="libxml2-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module, <br/> const char * name, <br/> void ** symbol);
+<a href="libxml2-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> <a href="#xmlModuleOpen">xmlModuleOpen</a> (const char * name, <br/> int options);
+int <a href="#xmlModuleClose">xmlModuleClose</a> (<a href="libxml2-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlModule">Structure </a>xmlModule</h3><pre class="programlisting">struct _xmlModule {
+The content of this structure is not made public by the API.
+} xmlModule;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlModuleOption">Enum </a>xmlModuleOption</h3><pre class="programlisting">enum <a href="#xmlModuleOption">xmlModuleOption</a> {
+ <a name="XML_MODULE_LAZY">XML_MODULE_LAZY</a> = 1 /* lazy binding */
+ <a name="XML_MODULE_LOCAL">XML_MODULE_LOCAL</a> = 2 /* local binding */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlModulePtr">Typedef </a>xmlModulePtr</h3><pre class="programlisting"><a href="libxml2-xmlmodule.html#xmlModule">xmlModule</a> * xmlModulePtr;
+</pre><p>A handle to a dynamically loaded module</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlModuleClose"/>xmlModuleClose ()</h3><pre class="programlisting">int xmlModuleClose (<a href="libxml2-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module)<br/>
+</pre><p>The close operations unload the associated module and free the data associated to the module.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>module</tt></i>:</span></td><td>the module handle</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of argument error and -2 if the module could not be closed/unloaded.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlModuleFree"/>xmlModuleFree ()</h3><pre class="programlisting">int xmlModuleFree (<a href="libxml2-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module)<br/>
+</pre><p>The free operations free the data associated to the module but does not unload the associated shared library which may still be in use.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>module</tt></i>:</span></td><td>the module handle</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of argument error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlModuleOpen"/>xmlModuleOpen ()</h3><pre class="programlisting"><a href="libxml2-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> xmlModuleOpen (const char * name, <br/> int options)<br/>
+</pre><p>Opens a module/shared library given its name or path NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We cannot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * . TODO: options are not yet implemented.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the module name</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of <a href="libxml2-xmlmodule.html#xmlModuleOption">xmlModuleOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a handle for the module or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlModuleSymbol"/>xmlModuleSymbol ()</h3><pre class="programlisting">int xmlModuleSymbol (<a href="libxml2-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module, <br/> const char * name, <br/> void ** symbol)<br/>
+</pre><p>Lookup for a symbol address in the given module NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We cannot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * .</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>module</tt></i>:</span></td><td>the module</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the symbol</td></tr><tr><td><span class="term"><i><tt>symbol</tt></i>:</span></td><td>the resulting symbol address</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the symbol was found, or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlreader.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlreader.html
new file mode 100644
index 0000000..e72c29d
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlreader.html
@@ -0,0 +1,565 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlreader: the XMLReader implementation</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlmodule.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlregexp.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlreader</span>
+ </h2>
+ <p>xmlreader - the XMLReader implementation</p>
+ <p>API of the XML streaming API based on C# interfaces. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef <a href="libxml2-xmlreader.html#xmlTextReader">xmlTextReader</a> * <a href="#xmlTextReaderPtr">xmlTextReaderPtr</a>;
+typedef enum <a href="#xmlParserSeverities">xmlParserSeverities</a>;
+typedef enum <a href="#xmlParserProperties">xmlParserProperties</a>;
+typedef enum <a href="#xmlTextReaderMode">xmlTextReaderMode</a>;
+typedef struct _xmlTextReader <a href="#xmlTextReader">xmlTextReader</a>;
+typedef void * <a href="#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a>;
+typedef enum <a href="#xmlReaderTypes">xmlReaderTypes</a>;
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a> (const char * URI);
+int <a href="#xmlTextReaderHasAttributes">xmlTextReaderHasAttributes</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderReadState">xmlTextReaderReadState</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForFile">xmlReaderForFile</a> (const char * filename, <br/> const char * encoding, <br/> int options);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstNamespaceUri">xmlTextReaderConstNamespaceUri</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderGetParserLineNumber">xmlTextReaderGetParserLineNumber</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderExpand">xmlTextReaderExpand</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForDoc">xmlReaderForDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlReaderNewIO">xmlReaderNewIO</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderClose">xmlTextReaderClose</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstEncoding">xmlTextReaderConstEncoding</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderNormalization">xmlTextReaderNormalization</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int prop);
+int <a href="#xmlTextReaderMoveToAttribute">xmlTextReaderMoveToAttribute</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlTextReaderQuoteChar">xmlTextReaderQuoteChar</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderValue">xmlTextReaderValue</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderIsValid">xmlTextReaderIsValid</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderMoveToFirstAttribute">xmlTextReaderMoveToFirstAttribute</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderGetParserColumnNumber">xmlTextReaderGetParserColumnNumber</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstValue">xmlTextReaderConstValue</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlNewTextReader">xmlNewTextReader</a> (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> const char * URI);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int no);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstName">xmlTextReaderConstName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstString">xmlTextReaderConstString</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstXmlVersion">xmlTextReaderConstXmlVersion</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderDepth">xmlTextReaderDepth</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadString">xmlTextReaderReadString</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderMoveToNextAttribute">xmlTextReaderMoveToNextAttribute</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlReaderNewWalker">xmlReaderNewWalker</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstPrefix">xmlTextReaderConstPrefix</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderWalker">xmlReaderWalker</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstLocalName">xmlTextReaderConstLocalName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderNodeType">xmlTextReaderNodeType</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+void <a href="#xmlFreeTextReader">xmlFreeTextReader</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderName">xmlTextReaderName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderRead">xmlTextReaderRead</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderIsEmptyElement">xmlTextReaderIsEmptyElement</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlReaderNewMemory">xmlReaderNewMemory</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> int options);
+int <a href="#xmlTextReaderHasValue">xmlTextReaderHasValue</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstBaseUri">xmlTextReaderConstBaseUri</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderBaseUri">xmlTextReaderBaseUri</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int no);
+int <a href="#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a> (<a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator);
+int <a href="#xmlTextReaderMoveToAttributeNs">xmlTextReaderMoveToAttributeNs</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI);
+int <a href="#xmlTextReaderNext">xmlTextReaderNext</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderAttributeCount">xmlTextReaderAttributeCount</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix);
+int <a href="#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForIO">xmlReaderForIO</a> (<a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> int options);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderPrefix">xmlTextReaderPrefix</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+typedef void <a href="#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> (void * arg, <br/> const char * msg, <br/> <a href="libxml2-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a> severity, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForFd">xmlReaderForFd</a> (int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLocalName">xmlTextReaderLocalName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderPreserve">xmlTextReaderPreserve</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int prop, <br/> int value);
+<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+void <a href="#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> f, <br/> void * arg);
+int <a href="#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlReaderNewDoc">xmlReaderNewDoc</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+void <a href="#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> * f, <br/> void ** arg);
+void <a href="#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> f, <br/> void * arg);
+int <a href="#xmlReaderNewFile">xmlReaderNewFile</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * filename, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema);
+int <a href="#xmlReaderNewFd">xmlReaderNewFd</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * rng);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForMemory">xmlReaderForMemory</a> (const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderSetup">xmlTextReaderSetup</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+long <a href="#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a> (<a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderNamespaceUri">xmlTextReaderNamespaceUri</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * xsd);
+int <a href="#xmlTextReaderStandalone">xmlTextReaderStandalone</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlParserProperties">Enum </a>xmlParserProperties</h3><pre class="programlisting">enum <a href="#xmlParserProperties">xmlParserProperties</a> {
+ <a name="XML_PARSER_LOADDTD">XML_PARSER_LOADDTD</a> = 1
+ <a name="XML_PARSER_DEFAULTATTRS">XML_PARSER_DEFAULTATTRS</a> = 2
+ <a name="XML_PARSER_VALIDATE">XML_PARSER_VALIDATE</a> = 3
+ <a name="XML_PARSER_SUBST_ENTITIES">XML_PARSER_SUBST_ENTITIES</a> = 4
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlParserSeverities">Enum </a>xmlParserSeverities</h3><pre class="programlisting">enum <a href="#xmlParserSeverities">xmlParserSeverities</a> {
+ <a name="XML_PARSER_SEVERITY_VALIDITY_WARNING">XML_PARSER_SEVERITY_VALIDITY_WARNING</a> = 1
+ <a name="XML_PARSER_SEVERITY_VALIDITY_ERROR">XML_PARSER_SEVERITY_VALIDITY_ERROR</a> = 2
+ <a name="XML_PARSER_SEVERITY_WARNING">XML_PARSER_SEVERITY_WARNING</a> = 3
+ <a name="XML_PARSER_SEVERITY_ERROR">XML_PARSER_SEVERITY_ERROR</a> = 4
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderTypes">Enum </a>xmlReaderTypes</h3><pre class="programlisting">enum <a href="#xmlReaderTypes">xmlReaderTypes</a> {
+ <a name="XML_READER_TYPE_NONE">XML_READER_TYPE_NONE</a> = 0
+ <a name="XML_READER_TYPE_ELEMENT">XML_READER_TYPE_ELEMENT</a> = 1
+ <a name="XML_READER_TYPE_ATTRIBUTE">XML_READER_TYPE_ATTRIBUTE</a> = 2
+ <a name="XML_READER_TYPE_TEXT">XML_READER_TYPE_TEXT</a> = 3
+ <a name="XML_READER_TYPE_CDATA">XML_READER_TYPE_CDATA</a> = 4
+ <a name="XML_READER_TYPE_ENTITY_REFERENCE">XML_READER_TYPE_ENTITY_REFERENCE</a> = 5
+ <a name="XML_READER_TYPE_ENTITY">XML_READER_TYPE_ENTITY</a> = 6
+ <a name="XML_READER_TYPE_PROCESSING_INSTRUCTION">XML_READER_TYPE_PROCESSING_INSTRUCTION</a> = 7
+ <a name="XML_READER_TYPE_COMMENT">XML_READER_TYPE_COMMENT</a> = 8
+ <a name="XML_READER_TYPE_DOCUMENT">XML_READER_TYPE_DOCUMENT</a> = 9
+ <a name="XML_READER_TYPE_DOCUMENT_TYPE">XML_READER_TYPE_DOCUMENT_TYPE</a> = 10
+ <a name="XML_READER_TYPE_DOCUMENT_FRAGMENT">XML_READER_TYPE_DOCUMENT_FRAGMENT</a> = 11
+ <a name="XML_READER_TYPE_NOTATION">XML_READER_TYPE_NOTATION</a> = 12
+ <a name="XML_READER_TYPE_WHITESPACE">XML_READER_TYPE_WHITESPACE</a> = 13
+ <a name="XML_READER_TYPE_SIGNIFICANT_WHITESPACE">XML_READER_TYPE_SIGNIFICANT_WHITESPACE</a> = 14
+ <a name="XML_READER_TYPE_END_ELEMENT">XML_READER_TYPE_END_ELEMENT</a> = 15
+ <a name="XML_READER_TYPE_END_ENTITY">XML_READER_TYPE_END_ENTITY</a> = 16
+ <a name="XML_READER_TYPE_XML_DECLARATION">XML_READER_TYPE_XML_DECLARATION</a> = 17
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReader">Structure </a>xmlTextReader</h3><pre class="programlisting">struct _xmlTextReader {
+The content of this structure is not made public by the API.
+} xmlTextReader;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderLocatorPtr">Typedef </a>xmlTextReaderLocatorPtr</h3><pre class="programlisting">void * xmlTextReaderLocatorPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderMode">Enum </a>xmlTextReaderMode</h3><pre class="programlisting">enum <a href="#xmlTextReaderMode">xmlTextReaderMode</a> {
+ <a name="XML_TEXTREADER_MODE_INITIAL">XML_TEXTREADER_MODE_INITIAL</a> = 0
+ <a name="XML_TEXTREADER_MODE_INTERACTIVE">XML_TEXTREADER_MODE_INTERACTIVE</a> = 1
+ <a name="XML_TEXTREADER_MODE_ERROR">XML_TEXTREADER_MODE_ERROR</a> = 2
+ <a name="XML_TEXTREADER_MODE_EOF">XML_TEXTREADER_MODE_EOF</a> = 3
+ <a name="XML_TEXTREADER_MODE_CLOSED">XML_TEXTREADER_MODE_CLOSED</a> = 4
+ <a name="XML_TEXTREADER_MODE_READING">XML_TEXTREADER_MODE_READING</a> = 5
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderPtr">Typedef </a>xmlTextReaderPtr</h3><pre class="programlisting"><a href="libxml2-xmlreader.html#xmlTextReader">xmlTextReader</a> * xmlTextReaderPtr;
+</pre><p>Pointer to an xmlReader context.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderErrorFunc"/>Function type xmlTextReaderErrorFunc</h3><pre class="programlisting">void xmlTextReaderErrorFunc (void * arg, <br/> const char * msg, <br/> <a href="libxml2-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a> severity, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)<br/>
+</pre><p>Signature of an error callback from a reader parser</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the user argument</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>severity</tt></i>:</span></td><td>the severity of the error</td></tr><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>a locator indicating where the error occurred</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeTextReader"/>xmlFreeTextReader ()</h3><pre class="programlisting">void xmlFreeTextReader (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Deallocate all the resources associated to the reader</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewTextReader"/>xmlNewTextReader ()</h3><pre class="programlisting"><a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlNewTextReader (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> const char * URI)<br/>
+</pre><p>Create an <a href="libxml2-xmlreader.html#xmlTextReader">xmlTextReader</a> structure fed with @input</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> used to read data</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI information for the source if available</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewTextReaderFilename"/>xmlNewTextReaderFilename ()</h3><pre class="programlisting"><a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlNewTextReaderFilename (const char * URI)<br/>
+</pre><p>Create an <a href="libxml2-xmlreader.html#xmlTextReader">xmlTextReader</a> structure fed with the resource at @URI</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI of the resource to process</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderForDoc"/>xmlReaderForDoc ()</h3><pre class="programlisting"><a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderForDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderForFd"/>xmlReaderForFd ()</h3><pre class="programlisting"><a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderForFd (int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Create an xmltextReader for an XML from a file descriptor. The parsing flags @options are a combination of xmlParserOption. NOTE that the file descriptor will not be closed when the reader is closed or reset.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderForFile"/>xmlReaderForFile ()</h3><pre class="programlisting"><a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderForFile (const char * filename, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderForIO"/>xmlReaderForIO ()</h3><pre class="programlisting"><a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderForIO (<a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Create an xmltextReader for an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderForMemory"/>xmlReaderForMemory ()</h3><pre class="programlisting"><a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderForMemory (const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderNewDoc"/>xmlReaderNewDoc ()</h3><pre class="programlisting">int xmlReaderNewDoc (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderNewFd"/>xmlReaderNewFd ()</h3><pre class="programlisting">int xmlReaderNewFd (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Setup an xmltextReader to parse an XML from a file descriptor. NOTE that the file descriptor will not be closed when the reader is closed or reset. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderNewFile"/>xmlReaderNewFile ()</h3><pre class="programlisting">int xmlReaderNewFile (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * filename, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderNewIO"/>xmlReaderNewIO ()</h3><pre class="programlisting">int xmlReaderNewIO (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Setup an xmltextReader to parse an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderNewMemory"/>xmlReaderNewMemory ()</h3><pre class="programlisting">int xmlReaderNewMemory (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderNewWalker"/>xmlReaderNewWalker ()</h3><pre class="programlisting">int xmlReaderNewWalker (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Setup an xmltextReader to parse a preparsed XML document. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a preparsed document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlReaderWalker"/>xmlReaderWalker ()</h3><pre class="programlisting"><a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderWalker (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Create an xmltextReader for a preparsed document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a preparsed document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderAttributeCount"/>xmlTextReaderAttributeCount ()</h3><pre class="programlisting">int xmlTextReaderAttributeCount (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Provides the number of attributes of the current node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 i no attributes, -1 in case of error or the <a href="libxml2-SAX.html#attribute">attribute</a> count</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderBaseUri"/>xmlTextReaderBaseUri ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderBaseUri (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The base URI of the node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the base URI or NULL if not available, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderByteConsumed"/>xmlTextReaderByteConsumed ()</h3><pre class="programlisting">long xmlTextReaderByteConsumed (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>This function provides the current index of the parser used by the reader, relative to the start of the current entity. This function actually just wraps a call to xmlBytesConsumed() for the parser context associated with the reader. See xmlBytesConsumed() for more information.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the index in bytes from the beginning of the entity or -1 in case the index could not be computed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderClose"/>xmlTextReaderClose ()</h3><pre class="programlisting">int xmlTextReaderClose (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>This method releases any resources allocated by the current instance changes the state to Closed and close any underlying input.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderConstBaseUri"/>xmlTextReaderConstBaseUri ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstBaseUri (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The base URI of the node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the base URI or NULL if not available, the string will be deallocated with the reader</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderConstEncoding"/>xmlTextReaderConstEncoding ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstEncoding (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Determine the encoding of the document being read.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the encoding of the document or NULL in case of error. The string is deallocated with the reader.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderConstLocalName"/>xmlTextReaderConstLocalName ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstLocalName (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The local name of the node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local name or NULL if not available, the string will be deallocated with the reader.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderConstName"/>xmlTextReaderConstName ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstName (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The qualified name of the node, equal to Prefix :LocalName.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local name or NULL if not available, the string is deallocated with the reader.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderConstNamespaceUri"/>xmlTextReaderConstNamespaceUri ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstNamespaceUri (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The URI defining the namespace associated with the node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace URI or NULL if not available, the string will be deallocated with the reader</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderConstPrefix"/>xmlTextReaderConstPrefix ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstPrefix (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>A shorthand <a href="libxml2-SAX.html#reference">reference</a> to the namespace associated with the node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the prefix or NULL if not available, the string is deallocated with the reader.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderConstString"/>xmlTextReaderConstString ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstString (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>Get an interned string from the reader, allows for example to speedup string name comparisons</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string to intern.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an interned copy of the string or NULL in case of error. The string will be deallocated with the reader.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderConstValue"/>xmlTextReaderConstValue ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstValue (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Provides the text value of the node if present</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string or NULL if not available. The result will be deallocated on the next Read() operation.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderConstXmlLang"/>xmlTextReaderConstXmlLang ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstXmlLang (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The xml:lang scope within which the node resides.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the xml:lang value or NULL if none exists.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderConstXmlVersion"/>xmlTextReaderConstXmlVersion ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstXmlVersion (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Determine the XML version of the document being read.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the XML version of the document or NULL in case of error. The string is deallocated with the reader.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderCurrentDoc"/>xmlTextReaderCurrentDoc ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> xmlTextReaderCurrentDoc (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Hacking interface allowing to get the <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> corresponding to the current document being accessed by the xmlTextReader. NOTE: as a result of this call, the reader will not destroy the associated XML document and calling xmlFreeDoc() on the result is needed once the reader parsing has finished.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderCurrentNode"/>xmlTextReaderCurrentNode ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlTextReaderCurrentNode (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Hacking interface allowing to get the <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> corresponding to the current node being accessed by the xmlTextReader. This is dangerous because the underlying node may be destroyed on the next Reads.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderDepth"/>xmlTextReaderDepth ()</h3><pre class="programlisting">int xmlTextReaderDepth (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The depth of the node in the tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the depth or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderExpand"/>xmlTextReaderExpand ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlTextReaderExpand (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Reads the contents of the current node and the full subtree. It then makes the subtree available until the next xmlTextReaderRead() call</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a node pointer valid until the next xmlTextReaderRead() call or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderGetAttribute"/>xmlTextReaderGetAttribute ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderGetAttribute (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Provides the value of the <a href="libxml2-SAX.html#attribute">attribute</a> with the specified qualified name.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the qualified name of the attribute.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderGetAttributeNo"/>xmlTextReaderGetAttributeNo ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderGetAttributeNo (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int no)<br/>
+</pre><p>Provides the value of the <a href="libxml2-SAX.html#attribute">attribute</a> with the specified index relative to the containing element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>no</tt></i>:</span></td><td>the zero-based index of the <a href="libxml2-SAX.html#attribute">attribute</a> relative to the containing element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderGetAttributeNs"/>xmlTextReaderGetAttributeNs ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderGetAttributeNs (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)<br/>
+</pre><p>Provides the value of the specified <a href="libxml2-SAX.html#attribute">attribute</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>localName</tt></i>:</span></td><td>the local name of the attribute.</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>the namespace URI of the attribute.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderGetErrorHandler"/>xmlTextReaderGetErrorHandler ()</h3><pre class="programlisting">void xmlTextReaderGetErrorHandler (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> * f, <br/> void ** arg)<br/>
+</pre><p>Retrieve the error callback function and user argument.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the callback function or NULL is no callback has been registered</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a user argument</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderGetParserColumnNumber"/>xmlTextReaderGetParserColumnNumber ()</h3><pre class="programlisting">int xmlTextReaderGetParserColumnNumber (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Provide the column number of the current parsing point.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the user data (XML reader context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int or 0 if not available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderGetParserLineNumber"/>xmlTextReaderGetParserLineNumber ()</h3><pre class="programlisting">int xmlTextReaderGetParserLineNumber (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Provide the line number of the current parsing point.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the user data (XML reader context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int or 0 if not available</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderGetParserProp"/>xmlTextReaderGetParserProp ()</h3><pre class="programlisting">int xmlTextReaderGetParserProp (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int prop)<br/>
+</pre><p>Read the parser internal property.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>prop</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlParserProperties">xmlParserProperties</a> to get</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value, usually 0 or 1, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderGetRemainder"/>xmlTextReaderGetRemainder ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlTextReaderGetRemainder (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Method to get the remainder of the buffered XML. this method stops the parser, set its state to End Of File and return the input stream with what is left that the parser did not use. The implementation is not good, the parser certainly progressed past what's left in reader-&gt;input, and there is an allocation problem. Best would be to rewrite it differently.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> attached to the XML or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderHasAttributes"/>xmlTextReaderHasAttributes ()</h3><pre class="programlisting">int xmlTextReaderHasAttributes (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Whether the node has attributes.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false, and -1 in case or error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderHasValue"/>xmlTextReaderHasValue ()</h3><pre class="programlisting">int xmlTextReaderHasValue (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Whether the node can have a text value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false, and -1 in case or error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderIsDefault"/>xmlTextReaderIsDefault ()</h3><pre class="programlisting">int xmlTextReaderIsDefault (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Whether an Attribute node was generated from the default value defined in the DTD or schema.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if not defaulted, 1 if defaulted, and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderIsEmptyElement"/>xmlTextReaderIsEmptyElement ()</h3><pre class="programlisting">int xmlTextReaderIsEmptyElement (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Check if the current node is empty</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if empty, 0 if not and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderIsNamespaceDecl"/>xmlTextReaderIsNamespaceDecl ()</h3><pre class="programlisting">int xmlTextReaderIsNamespaceDecl (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Determine whether the current node is a namespace declaration rather than a regular attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the current node is a namespace declaration, 0 if it is a regular <a href="libxml2-SAX.html#attribute">attribute</a> or other type of node, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderIsValid"/>xmlTextReaderIsValid ()</h3><pre class="programlisting">int xmlTextReaderIsValid (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Retrieve the validity status from the parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the flag value 1 if valid, 0 if no, and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderLocalName"/>xmlTextReaderLocalName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderLocalName (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The local name of the node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local name or NULL if not available, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderLocatorBaseURI"/>xmlTextReaderLocatorBaseURI ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderLocatorBaseURI (<a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)<br/>
+</pre><p>Obtain the base URI for the given locator.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the base URI or NULL in case of error, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderLocatorLineNumber"/>xmlTextReaderLocatorLineNumber ()</h3><pre class="programlisting">int xmlTextReaderLocatorLineNumber (<a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)<br/>
+</pre><p>Obtain the line number for the given locator.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the line number or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderLookupNamespace"/>xmlTextReaderLookupNamespace ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderLookupNamespace (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br/>
+</pre><p>Resolves a namespace prefix in the scope of the current element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix whose namespace URI is to be resolved. To return the default namespace, specify NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the namespace URI to which the prefix maps or NULL in case of error. The string must be deallocated by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderMoveToAttribute"/>xmlTextReaderMoveToAttribute ()</h3><pre class="programlisting">int xmlTextReaderMoveToAttribute (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Moves the position of the current instance to the <a href="libxml2-SAX.html#attribute">attribute</a> with the specified qualified name.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the qualified name of the attribute.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderMoveToAttributeNo"/>xmlTextReaderMoveToAttributeNo ()</h3><pre class="programlisting">int xmlTextReaderMoveToAttributeNo (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int no)<br/>
+</pre><p>Moves the position of the current instance to the <a href="libxml2-SAX.html#attribute">attribute</a> with the specified index relative to the containing element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>no</tt></i>:</span></td><td>the zero-based index of the <a href="libxml2-SAX.html#attribute">attribute</a> relative to the containing element.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderMoveToAttributeNs"/>xmlTextReaderMoveToAttributeNs ()</h3><pre class="programlisting">int xmlTextReaderMoveToAttributeNs (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)<br/>
+</pre><p>Moves the position of the current instance to the <a href="libxml2-SAX.html#attribute">attribute</a> with the specified local name and namespace URI.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>localName</tt></i>:</span></td><td>the local name of the attribute.</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>the namespace URI of the attribute.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderMoveToElement"/>xmlTextReaderMoveToElement ()</h3><pre class="programlisting">int xmlTextReaderMoveToElement (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Moves the position of the current instance to the node that contains the current Attribute node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not moved</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderMoveToFirstAttribute"/>xmlTextReaderMoveToFirstAttribute ()</h3><pre class="programlisting">int xmlTextReaderMoveToFirstAttribute (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Moves the position of the current instance to the first <a href="libxml2-SAX.html#attribute">attribute</a> associated with the current node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderMoveToNextAttribute"/>xmlTextReaderMoveToNextAttribute ()</h3><pre class="programlisting">int xmlTextReaderMoveToNextAttribute (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Moves the position of the current instance to the next <a href="libxml2-SAX.html#attribute">attribute</a> associated with the current node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderName"/>xmlTextReaderName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderName (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The qualified name of the node, equal to Prefix :LocalName.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local name or NULL if not available, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderNamespaceUri"/>xmlTextReaderNamespaceUri ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderNamespaceUri (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The URI defining the namespace associated with the node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace URI or NULL if not available, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderNext"/>xmlTextReaderNext ()</h3><pre class="programlisting">int xmlTextReaderNext (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Skip to the node following the current one in document order while avoiding the subtree if any.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderNextSibling"/>xmlTextReaderNextSibling ()</h3><pre class="programlisting">int xmlTextReaderNextSibling (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Skip to the node following the current one in document order while avoiding the subtree if any. Currently implemented only for Readers built on a document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderNodeType"/>xmlTextReaderNodeType ()</h3><pre class="programlisting">int xmlTextReaderNodeType (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Get the node type of the current node Reference: http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/XmlNodeType.html</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlReaderTypes">xmlReaderTypes</a> of the current node or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderNormalization"/>xmlTextReaderNormalization ()</h3><pre class="programlisting">int xmlTextReaderNormalization (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The value indicating whether to normalize white space and <a href="libxml2-SAX.html#attribute">attribute</a> values. Since <a href="libxml2-SAX.html#attribute">attribute</a> value and end of line normalizations are a MUST in the XML specification only the value true is accepted. The broken bahaviour of accepting out of range character entities like &amp;#0; is of course not supported either.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderPrefix"/>xmlTextReaderPrefix ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderPrefix (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>A shorthand <a href="libxml2-SAX.html#reference">reference</a> to the namespace associated with the node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the prefix or NULL if not available, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderPreserve"/>xmlTextReaderPreserve ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlTextReaderPreserve (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>This tells the XML Reader to preserve the current node. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderPreservePattern"/>xmlTextReaderPreservePattern ()</h3><pre class="programlisting">int xmlTextReaderPreservePattern (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)<br/>
+</pre><p>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XPath subset pattern</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a non-negative number in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderQuoteChar"/>xmlTextReaderQuoteChar ()</h3><pre class="programlisting">int xmlTextReaderQuoteChar (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The quotation mark character used to enclose the value of an attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>" or ' and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderRead"/>xmlTextReaderRead ()</h3><pre class="programlisting">int xmlTextReaderRead (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Moves the position of the current instance to the next node in the stream, exposing its properties.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderReadAttributeValue"/>xmlTextReaderReadAttributeValue ()</h3><pre class="programlisting">int xmlTextReaderReadAttributeValue (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Parses an <a href="libxml2-SAX.html#attribute">attribute</a> value into one or more Text and EntityReference nodes.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, 0 if the reader was not positioned on an <a href="libxml2-SAX.html#attribute">attribute</a> node or all the <a href="libxml2-SAX.html#attribute">attribute</a> values have been read, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderReadInnerXml"/>xmlTextReaderReadInnerXml ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderReadInnerXml (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Reads the contents of the current node, including child nodes and markup.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the XML content, or NULL if the current node is neither an element nor attribute, or has no child nodes. The string must be deallocated by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderReadOuterXml"/>xmlTextReaderReadOuterXml ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderReadOuterXml (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Reads the contents of the current node, including child nodes and markup.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the node and any XML content, or NULL if the current node cannot be serialized. The string must be deallocated by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderReadState"/>xmlTextReaderReadState ()</h3><pre class="programlisting">int xmlTextReaderReadState (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Gets the read state of the reader.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the state value, or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderReadString"/>xmlTextReaderReadString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderReadString (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Reads the contents of an element or a text node as a string.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the contents of the Element or Text node, or NULL if the reader is positioned on any other type of node. The string must be deallocated by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderRelaxNGSetSchema"/>xmlTextReaderRelaxNGSetSchema ()</h3><pre class="programlisting">int xmlTextReaderRelaxNGSetSchema (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br/>
+</pre><p>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then RelaxNG validation is deactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled RelaxNG schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the RelaxNG validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderRelaxNGValidate"/>xmlTextReaderRelaxNGValidate ()</h3><pre class="programlisting">int xmlTextReaderRelaxNGValidate (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * rng)<br/>
+</pre><p>Use RelaxNG schema to validate the document as it is processed. Activation is only possible before the first Read(). If @rng is NULL, then RelaxNG schema validation is deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>rng</tt></i>:</span></td><td>the path to a RelaxNG schema or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the schemas validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderRelaxNGValidateCtxt"/>xmlTextReaderRelaxNGValidateCtxt ()</h3><pre class="programlisting">int xmlTextReaderRelaxNGValidateCtxt (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br/> int options)<br/>
+</pre><p>Use RelaxNG schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then RelaxNG schema validation is deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the RelaxNG schema validation context or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>options (not used yet)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the schemas validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderSchemaValidate"/>xmlTextReaderSchemaValidate ()</h3><pre class="programlisting">int xmlTextReaderSchemaValidate (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * xsd)<br/>
+</pre><p>Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). If @xsd is NULL, then XML Schema validation is deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>xsd</tt></i>:</span></td><td>the path to a W3C XSD schema or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the schemas validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderSchemaValidateCtxt"/>xmlTextReaderSchemaValidateCtxt ()</h3><pre class="programlisting">int xmlTextReaderSchemaValidateCtxt (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> int options)<br/>
+</pre><p>Use W3C XSD schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then XML Schema validation is deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XML Schema validation context or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>options (not used yet)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the schemas validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderSetErrorHandler"/>xmlTextReaderSetErrorHandler ()</h3><pre class="programlisting">void xmlTextReaderSetErrorHandler (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> f, <br/> void * arg)<br/>
+</pre><p>Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the callback function to call on error and warnings</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a user argument to pass to the callback function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderSetParserProp"/>xmlTextReaderSetParserProp ()</h3><pre class="programlisting">int xmlTextReaderSetParserProp (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int prop, <br/> int value)<br/>
+</pre><p>Change the parser processing behaviour by changing some of its internal properties. Note that some properties can only be changed before any read has been done.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>prop</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlParserProperties">xmlParserProperties</a> to set</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>usually 0 or 1 to (de)activate it</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the call was successful, or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderSetSchema"/>xmlTextReaderSetSchema ()</h3><pre class="programlisting">int xmlTextReaderSetSchema (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)<br/>
+</pre><p>Use XSD Schema to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then Schema validation is deactivated. The @schema should not be freed until the reader is deallocated or its use has been deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled Schema schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the Schema validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderSetStructuredErrorHandler"/>xmlTextReaderSetStructuredErrorHandler ()</h3><pre class="programlisting">void xmlTextReaderSetStructuredErrorHandler (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> f, <br/> void * arg)<br/>
+</pre><p>Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the callback function to call on error and warnings</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a user argument to pass to the callback function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderSetup"/>xmlTextReaderSetup ()</h3><pre class="programlisting">int xmlTextReaderSetup (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Setup an XML reader with new options</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> used to feed the reader, will be destroyed with it.</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderStandalone"/>xmlTextReaderStandalone ()</h3><pre class="programlisting">int xmlTextReaderStandalone (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Determine the standalone status of the document being read.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the document was declared to be standalone, 0 if it was declared to be not standalone, or -1 if the document did not specify its standalone status or in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderValue"/>xmlTextReaderValue ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderValue (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>Provides the text value of the node if present</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string or NULL if not available. The result must be deallocated with xmlFree()</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderXmlLang"/>xmlTextReaderXmlLang ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderXmlLang (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
+</pre><p>The xml:lang scope within which the node resides.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the xml:lang value or NULL if none exists., if non NULL it need to be freed by the caller.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlregexp.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlregexp.html
new file mode 100644
index 0000000..4fc33c6
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlregexp.html
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlregexp: regular expressions handling</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlreader.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlsave.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlregexp</span>
+ </h2>
+ <p>xmlregexp - regular expressions handling</p>
+ <p>basic API for libxml regular expressions handling used for XML Schemas and validation. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef <a href="libxml2-xmlregexp.html#xmlRegExecCtxt">xmlRegExecCtxt</a> * <a href="#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a>;
+typedef struct _xmlExpCtxt <a href="#xmlExpCtxt">xmlExpCtxt</a>;
+typedef <a href="libxml2-xmlregexp.html#xmlExpNode">xmlExpNode</a> * <a href="#xmlExpNodePtr">xmlExpNodePtr</a>;
+typedef <a href="libxml2-xmlregexp.html#xmlExpCtxt">xmlExpCtxt</a> * <a href="#xmlExpCtxtPtr">xmlExpCtxtPtr</a>;
+typedef enum <a href="#xmlExpNodeType">xmlExpNodeType</a>;
+typedef struct _xmlRegExecCtxt <a href="#xmlRegExecCtxt">xmlRegExecCtxt</a>;
+typedef struct _xmlExpNode <a href="#xmlExpNode">xmlExpNode</a>;
+typedef struct _xmlRegexp <a href="#xmlRegexp">xmlRegexp</a>;
+typedef <a href="libxml2-xmlregexp.html#xmlRegexp">xmlRegexp</a> * <a href="#xmlRegexpPtr">xmlRegexpPtr</a>;
+typedef void <a href="#xmlRegExecCallbacks">xmlRegExecCallbacks</a> (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> void * transdata, <br/> void * inputdata);
+<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> <a href="#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a> (<a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp, <br/> <a href="libxml2-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a> callback, <br/> void * data);
+<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewOr">xmlExpNewOr</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right);
+void <a href="#xmlRegFreeRegexp">xmlRegFreeRegexp</a> (<a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp);
+void <a href="#xmlExpRef">xmlExpRef</a> (<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp);
+int <a href="#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a> (<a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp);
+int <a href="#xmlRegExecErrInfo">xmlRegExecErrInfo</a> (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** string, <br/> int * nbval, <br/> int * nbneg, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** values, <br/> int * terminal);
+void <a href="#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a> (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec);
+int <a href="#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt);
+int <a href="#xmlExpSubsume">xmlExpSubsume</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub);
+int <a href="#xmlRegExecPushString2">xmlRegExecPushString2</a> (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value2, <br/> void * data);
+int <a href="#xmlRegExecNextValues">xmlRegExecNextValues</a> (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br/> int * nbval, <br/> int * nbneg, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** values, <br/> int * terminal);
+<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpExpDerive">xmlExpExpDerive</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub);
+int <a href="#xmlExpIsNillable">xmlExpIsNillable</a> (<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp);
+void <a href="#xmlExpFreeCtxt">xmlExpFreeCtxt</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt);
+void <a href="#xmlExpDump">xmlExpDump</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr);
+<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewSeq">xmlExpNewSeq</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right);
+void <a href="#xmlExpFree">xmlExpFree</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp);
+<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewRange">xmlExpNewRange</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br/> int min, <br/> int max);
+<a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> <a href="#xmlRegexpCompile">xmlRegexpCompile</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * regexp);
+<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewAtom">xmlExpNewAtom</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int len);
+int <a href="#xmlRegexpExec">xmlRegexpExec</a> (<a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlRegExecPushString">xmlRegExecPushString</a> (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> void * data);
+int <a href="#xmlExpGetStart">xmlExpGetStart</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** tokList, <br/> int len);
+<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpParse">xmlExpParse</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> const char * expr);
+<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> <a href="#xmlExpNewCtxt">xmlExpNewCtxt</a> (int maxNodes, <br/> <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict);
+int <a href="#xmlExpGetLanguage">xmlExpGetLanguage</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** langList, <br/> int len);
+<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpStringDerive">xmlExpStringDerive</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int len);
+int <a href="#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a> (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt);
+int <a href="#xmlExpMaxToken">xmlExpMaxToken</a> (<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr);
+void <a href="#xmlRegexpPrint">xmlRegexpPrint</a> (FILE * output, <br/> <a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlExpCtxt">Structure </a>xmlExpCtxt</h3><pre class="programlisting">struct _xmlExpCtxt {
+The content of this structure is not made public by the API.
+} xmlExpCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpCtxtPtr">Typedef </a>xmlExpCtxtPtr</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpCtxt">xmlExpCtxt</a> * xmlExpCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpNode">Structure </a>xmlExpNode</h3><pre class="programlisting">struct _xmlExpNode {
+The content of this structure is not made public by the API.
+} xmlExpNode;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpNodePtr">Typedef </a>xmlExpNodePtr</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNode">xmlExpNode</a> * xmlExpNodePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpNodeType">Enum </a>xmlExpNodeType</h3><pre class="programlisting">enum <a href="#xmlExpNodeType">xmlExpNodeType</a> {
+ <a name="XML_EXP_EMPTY">XML_EXP_EMPTY</a> = 0
+ <a name="XML_EXP_FORBID">XML_EXP_FORBID</a> = 1
+ <a name="XML_EXP_ATOM">XML_EXP_ATOM</a> = 2
+ <a name="XML_EXP_SEQ">XML_EXP_SEQ</a> = 3
+ <a name="XML_EXP_OR">XML_EXP_OR</a> = 4
+ <a name="XML_EXP_COUNT">XML_EXP_COUNT</a> = 5
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegExecCtxt">Structure </a>xmlRegExecCtxt</h3><pre class="programlisting">struct _xmlRegExecCtxt {
+The content of this structure is not made public by the API.
+} xmlRegExecCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegExecCtxtPtr">Typedef </a>xmlRegExecCtxtPtr</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlRegExecCtxt">xmlRegExecCtxt</a> * xmlRegExecCtxtPtr;
+</pre><p>A libxml progressive regular expression evaluation context</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegexp">Structure </a>xmlRegexp</h3><pre class="programlisting">struct _xmlRegexp {
+The content of this structure is not made public by the API.
+} xmlRegexp;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegexpPtr">Typedef </a>xmlRegexpPtr</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlRegexp">xmlRegexp</a> * xmlRegexpPtr;
+</pre><p>A libxml regular expression, they can actually be far more complex thank the POSIX regex expressions.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegExecCallbacks"/>Function type xmlRegExecCallbacks</h3><pre class="programlisting">void xmlRegExecCallbacks (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * token, <br/> void * transdata, <br/> void * inputdata)<br/>
+</pre><p>Callback function when doing a transition in the automata</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>the regular expression context</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the current token string</td></tr><tr><td><span class="term"><i><tt>transdata</tt></i>:</span></td><td>transition data</td></tr><tr><td><span class="term"><i><tt>inputdata</tt></i>:</span></td><td>input data</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="emptyExp">Variable </a>emptyExp</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> emptyExp;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="forbiddenExp">Variable </a>forbiddenExp</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> forbiddenExp;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpCtxtNbCons"/>xmlExpCtxtNbCons ()</h3><pre class="programlisting">int xmlExpCtxtNbCons (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)<br/>
+</pre><p>Debugging facility provides the number of allocated nodes over lifetime</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an expression context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of nodes ever allocated or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpCtxtNbNodes"/>xmlExpCtxtNbNodes ()</h3><pre class="programlisting">int xmlExpCtxtNbNodes (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)<br/>
+</pre><p>Debugging facility provides the number of allocated nodes at a that point</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an expression context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of nodes in use or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpDump"/>xmlExpDump ()</h3><pre class="programlisting">void xmlExpDump (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)<br/>
+</pre><p>Serialize the expression as compiled to the buffer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>a buffer to receive the output</td></tr><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>the compiled expression</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpExpDerive"/>xmlExpExpDerive ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpExpDerive (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub)<br/>
+</pre><p>Evaluates the expression resulting from @exp consuming a sub expression @sub Based on algebraic derivation and sometimes direct Brzozowski derivation it usually takes less than linear time and can handle expressions generating infinite languages.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expressions context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the englobing expression</td></tr><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>the subexpression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting expression or NULL in case of internal error, the result must be freed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpFree"/>xmlExpFree ()</h3><pre class="programlisting">void xmlExpFree (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)<br/>
+</pre><p>Dereference the expression</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpFreeCtxt"/>xmlExpFreeCtxt ()</h3><pre class="programlisting">void xmlExpFreeCtxt (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)<br/>
+</pre><p>Free an expression context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an expression context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpGetLanguage"/>xmlExpGetLanguage ()</h3><pre class="programlisting">int xmlExpGetLanguage (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** langList, <br/> int len)<br/>
+</pre><p>Find all the strings used in @exp and store them in @list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>langList</tt></i>:</span></td><td>where to store the tokens</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the allocated length of @list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpGetStart"/>xmlExpGetStart ()</h3><pre class="programlisting">int xmlExpGetStart (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** tokList, <br/> int len)<br/>
+</pre><p>Find all the strings that appears at the start of the languages accepted by @exp and store them in @list. E.g. for (a, b) | c it will return the list [a, c]</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>tokList</tt></i>:</span></td><td>where to store the tokens</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the allocated length of @list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpIsNillable"/>xmlExpIsNillable ()</h3><pre class="programlisting">int xmlExpIsNillable (<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)<br/>
+</pre><p>Finds if the expression is nillable, i.e. if it accepts the empty sequence</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if nillable, 0 if not and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpMaxToken"/>xmlExpMaxToken ()</h3><pre class="programlisting">int xmlExpMaxToken (<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)<br/>
+</pre><p>Indicate the maximum number of input a expression can accept</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>a compiled expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the maximum length or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpNewAtom"/>xmlExpNewAtom ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewAtom (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int len)<br/>
+</pre><p>Get the atom associated to this name from that context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the atom name</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the atom name length in byte (or -1);</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpNewCtxt"/>xmlExpNewCtxt ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> xmlExpNewCtxt (int maxNodes, <br/> <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
+</pre><p>Creates a new context for manipulating expressions</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpNewOr"/>xmlExpNewOr ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewOr (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br/>
+</pre><p>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpNewRange"/>xmlExpNewRange ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewRange (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br/> int min, <br/> int max)<br/>
+</pre><p>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>subset</tt></i>:</span></td><td>the expression to be repeated</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the lower bound for the repetition</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the upper bound for the repetition, -1 means infinite</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpNewSeq"/>xmlExpNewSeq ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewSeq (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br/>
+</pre><p>Get the atom associated to the sequence @left , @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpParse"/>xmlExpParse ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpParse (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> const char * expr)<br/>
+</pre><p>Minimal parser for regexps, it understand the following constructs - string terminals - choice operator | - sequence operator , - subexpressions (...) - usual cardinality operators + * and ? - finite sequences { min, max } - infinite sequences { min, * } There is minimal checkings made especially no checking on strings values</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expressions context</td></tr><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>the 0 terminated string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new expression or NULL in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpRef"/>xmlExpRef ()</h3><pre class="programlisting">void xmlExpRef (<a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)<br/>
+</pre><p>Increase the <a href="libxml2-SAX.html#reference">reference</a> count of the expression</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpStringDerive"/>xmlExpStringDerive ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpStringDerive (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int len)<br/>
+</pre><p>Do one step of Brzozowski derivation of the expression @exp with respect to the input string</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the string len in bytes if available</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting expression or NULL in case of internal error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlExpSubsume"/>xmlExpSubsume ()</h3><pre class="programlisting">int xmlExpSubsume (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub)<br/>
+</pre><p>Check whether @exp accepts all the languages accepted by @sub the input being a subexpression.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expressions context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the englobing expression</td></tr><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>the subexpression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 if false and -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegExecErrInfo"/>xmlRegExecErrInfo ()</h3><pre class="programlisting">int xmlRegExecErrInfo (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** string, <br/> int * nbval, <br/> int * nbneg, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** values, <br/> int * terminal)<br/>
+</pre><p>Extract error informations from the regexp execution, the parameter @string will be updated with the value pushed and not accepted, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>a regexp execution context generating an error</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>return value for the error string</td></tr><tr><td><span class="term"><i><tt>nbval</tt></i>:</span></td><td>pointer to the number of accepted values IN/OUT</td></tr><tr><td><span class="term"><i><tt>nbneg</tt></i>:</span></td><td>return number of negative transitions</td></tr><tr><td><span class="term"><i><tt>values</tt></i>:</span></td><td>pointer to the array of acceptable values</td></tr><tr><td><span class="term"><i><tt>terminal</tt></i>:</span></td><td>return value if this was a terminal state</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>will be freed with the @exec context and don't need to be deallocated. Returns: 0 in case of success or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegExecNextValues"/>xmlRegExecNextValues ()</h3><pre class="programlisting">int xmlRegExecNextValues (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br/> int * nbval, <br/> int * nbneg, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** values, <br/> int * terminal)<br/>
+</pre><p>Extract informations from the regexp execution, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>a regexp execution context</td></tr><tr><td><span class="term"><i><tt>nbval</tt></i>:</span></td><td>pointer to the number of accepted values IN/OUT</td></tr><tr><td><span class="term"><i><tt>nbneg</tt></i>:</span></td><td>return number of negative transitions</td></tr><tr><td><span class="term"><i><tt>values</tt></i>:</span></td><td>pointer to the array of acceptable values</td></tr><tr><td><span class="term"><i><tt>terminal</tt></i>:</span></td><td>return value if this was a terminal state</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>will be freed with the @exec context and don't need to be deallocated. Returns: 0 in case of success or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegExecPushString"/>xmlRegExecPushString ()</h3><pre class="programlisting">int xmlRegExecPushString (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> void * data)<br/>
+</pre><p>Push one input token in the execution context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>a regexp execution context or NULL to indicate the end</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a string token input</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the token to reuse in callbacks</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegExecPushString2"/>xmlRegExecPushString2 ()</h3><pre class="programlisting">int xmlRegExecPushString2 (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value2, <br/> void * data)<br/>
+</pre><p>Push one input token in the execution context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>a regexp execution context or NULL to indicate the end</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the first string token input</td></tr><tr><td><span class="term"><i><tt>value2</tt></i>:</span></td><td>the second string token input</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the token to reuse in callbacks</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegFreeExecCtxt"/>xmlRegFreeExecCtxt ()</h3><pre class="programlisting">void xmlRegFreeExecCtxt (<a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec)<br/>
+</pre><p>Free the structures associated to a regular expression evaluation context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>a regular expression evaluation context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegFreeRegexp"/>xmlRegFreeRegexp ()</h3><pre class="programlisting">void xmlRegFreeRegexp (<a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp)<br/>
+</pre><p>Free a regexp</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>regexp</tt></i>:</span></td><td>the regexp</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegNewExecCtxt"/>xmlRegNewExecCtxt ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> xmlRegNewExecCtxt (<a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp, <br/> <a href="libxml2-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a> callback, <br/> void * data)<br/>
+</pre><p>Build a context used for progressive evaluation of a regexp.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>a precompiled regular expression</td></tr><tr><td><span class="term"><i><tt>callback</tt></i>:</span></td><td>a callback function used for handling progresses in the automata matching phase</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the context data associated to the callback in this context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegexpCompile"/>xmlRegexpCompile ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> xmlRegexpCompile (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * regexp)<br/>
+</pre><p>Parses a regular expression conforming to XML Schemas Part 2 Datatype Appendix F and builds an automata suitable for testing strings against that regular expression</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>regexp</tt></i>:</span></td><td>a regular expression string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the compiled expression or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegexpExec"/>xmlRegexpExec ()</h3><pre class="programlisting">int xmlRegexpExec (<a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Check if the regular expression generates the value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled regular expression</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the value to check against the regular expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if it matches, 0 if not and a negative value in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegexpIsDeterminist"/>xmlRegexpIsDeterminist ()</h3><pre class="programlisting">int xmlRegexpIsDeterminist (<a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp)<br/>
+</pre><p>Check if the regular expression is determinist</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled regular expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if it yes, 0 if not and a negative value in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlRegexpPrint"/>xmlRegexpPrint ()</h3><pre class="programlisting">void xmlRegexpPrint (FILE * output, <br/> <a href="libxml2-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp)<br/>
+</pre><p>Print the content of the compiled regular expression</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the file for the output debug</td></tr><tr><td><span class="term"><i><tt>regexp</tt></i>:</span></td><td>the compiled regexp</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlsave.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlsave.html
new file mode 100644
index 0000000..f006e3b
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlsave.html
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlsave: the XML document serializer</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlregexp.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlschemas.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlsave</span>
+ </h2>
+ <p>xmlsave - the XML document serializer</p>
+ <p>API to save document or subtree of document </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef enum <a href="#xmlSaveOption">xmlSaveOption</a>;
+typedef struct _xmlSaveCtxt <a href="#xmlSaveCtxt">xmlSaveCtxt</a>;
+typedef <a href="libxml2-xmlsave.html#xmlSaveCtxt">xmlSaveCtxt</a> * <a href="#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a>;
+<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> <a href="#xmlSaveToIO">xmlSaveToIO</a> (<a href="libxml2-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite, <br/> <a href="libxml2-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> <a href="#xmlSaveToFd">xmlSaveToFd</a> (int fd, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlSaveClose">xmlSaveClose</a> (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt);
+int <a href="#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a> (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br/> <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escape);
+<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> <a href="#xmlSaveToBuffer">xmlSaveToBuffer</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> <a href="#xmlSaveToFilename">xmlSaveToFilename</a> (const char * filename, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlSaveFlush">xmlSaveFlush</a> (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt);
+long <a href="#xmlSaveDoc">xmlSaveDoc</a> (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+int <a href="#xmlSaveSetEscape">xmlSaveSetEscape</a> (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br/> <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escape);
+long <a href="#xmlSaveTree">xmlSaveTree</a> (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveCtxt">Structure </a>xmlSaveCtxt</h3><pre class="programlisting">struct _xmlSaveCtxt {
+The content of this structure is not made public by the API.
+} xmlSaveCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveCtxtPtr">Typedef </a>xmlSaveCtxtPtr</h3><pre class="programlisting"><a href="libxml2-xmlsave.html#xmlSaveCtxt">xmlSaveCtxt</a> * xmlSaveCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveOption">Enum </a>xmlSaveOption</h3><pre class="programlisting">enum <a href="#xmlSaveOption">xmlSaveOption</a> {
+ <a name="XML_SAVE_FORMAT">XML_SAVE_FORMAT</a> = 1 /* format save output */
+ <a name="XML_SAVE_NO_DECL">XML_SAVE_NO_DECL</a> = 2 /* drop the xml declaration */
+ <a name="XML_SAVE_NO_EMPTY">XML_SAVE_NO_EMPTY</a> = 4 /* no empty tags */
+ <a name="XML_SAVE_NO_XHTML">XML_SAVE_NO_XHTML</a> = 8 /* disable XHTML1 specific rules */
+ <a name="XML_SAVE_XHTML">XML_SAVE_XHTML</a> = 16 /* force XHTML1 specific rules */
+ <a name="XML_SAVE_AS_XML">XML_SAVE_AS_XML</a> = 32 /* force XML serialization on HTML doc */
+ <a name="XML_SAVE_AS_HTML">XML_SAVE_AS_HTML</a> = 64 /* force HTML serialization on XML doc */
+ <a name="XML_SAVE_WSNONSIG">XML_SAVE_WSNONSIG</a> = 128 /* format with non-significant whitespace */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveClose"/>xmlSaveClose ()</h3><pre class="programlisting">int xmlSaveClose (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt)<br/>
+</pre><p>Close a document saving context, i.e. make sure that all bytes have been output and free the associated data.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveDoc"/>xmlSaveDoc ()</h3><pre class="programlisting">long xmlSaveDoc (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Save a full document to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveFlush"/>xmlSaveFlush ()</h3><pre class="programlisting">int xmlSaveFlush (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt)<br/>
+</pre><p>Flush a document saving context, i.e. make sure that all bytes have been output.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveSetAttrEscape"/>xmlSaveSetAttrEscape ()</h3><pre class="programlisting">int xmlSaveSetAttrEscape (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br/> <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escape)<br/>
+</pre><p>Set a custom escaping function to be used for text in <a href="libxml2-SAX.html#attribute">attribute</a> content</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>escape</tt></i>:</span></td><td>the escaping function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveSetEscape"/>xmlSaveSetEscape ()</h3><pre class="programlisting">int xmlSaveSetEscape (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br/> <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escape)<br/>
+</pre><p>Set a custom escaping function to be used for text in element content</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>escape</tt></i>:</span></td><td>the escaping function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveToBuffer"/>xmlSaveToBuffer ()</h3><pre class="programlisting"><a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> xmlSaveToBuffer (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Create a document saving context serializing to a buffer with the encoding and the options given</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a buffer</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding name to use or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of xmlSaveOptions</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new serialization context or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveToFd"/>xmlSaveToFd ()</h3><pre class="programlisting"><a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> xmlSaveToFd (int fd, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Create a document saving context serializing to a file descriptor with the encoding and the options given.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>a file descriptor number</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding name to use or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of xmlSaveOptions</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new serialization context or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveToFilename"/>xmlSaveToFilename ()</h3><pre class="programlisting"><a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> xmlSaveToFilename (const char * filename, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Create a document saving context serializing to a filename or possibly to an URL (but this is less reliable) with the encoding and the options given.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file name or an URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding name to use or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of xmlSaveOptions</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new serialization context or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveToIO"/>xmlSaveToIO ()</h3><pre class="programlisting"><a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> xmlSaveToIO (<a href="libxml2-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite, <br/> <a href="libxml2-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Create a document saving context serializing to a file descriptor with the encoding and the options given</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>iowrite</tt></i>:</span></td><td>an I/O write function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding name to use or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of xmlSaveOptions</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new serialization context or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSaveTree"/>xmlSaveTree ()</h3><pre class="programlisting">long xmlSaveTree (<a href="libxml2-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Save a subtree starting at the node parameter to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the top node of the subtree to save</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlschemas.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlschemas.html
new file mode 100644
index 0000000..140558b
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlschemas.html
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlschemas: incomplete XML Schemas structure implementation</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlsave.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlschemastypes.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlschemas</span>
+ </h2>
+ <p>xmlschemas - incomplete XML Schemas structure implementation</p>
+ <p>interface to the XML Schemas handling and schema validity checking, it is incomplete right now. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef <a href="libxml2-xmlschemas.html#xmlSchema">xmlSchema</a> * <a href="#xmlSchemaPtr">xmlSchemaPtr</a>;
+typedef struct _xmlSchemaParserCtxt <a href="#xmlSchemaParserCtxt">xmlSchemaParserCtxt</a>;
+typedef enum <a href="#xmlSchemaValidOption">xmlSchemaValidOption</a>;
+typedef <a href="libxml2-xmlschemas.html#xmlSchemaSAXPlugStruct">xmlSchemaSAXPlugStruct</a> * <a href="#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a>;
+typedef struct _xmlSchemaSAXPlug <a href="#xmlSchemaSAXPlugStruct">xmlSchemaSAXPlugStruct</a>;
+typedef <a href="libxml2-xmlschemas.html#xmlSchemaValidCtxt">xmlSchemaValidCtxt</a> * <a href="#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a>;
+typedef <a href="libxml2-xmlschemas.html#xmlSchemaParserCtxt">xmlSchemaParserCtxt</a> * <a href="#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a>;
+typedef struct _xmlSchema <a href="#xmlSchema">xmlSchema</a>;
+typedef enum <a href="#xmlSchemaValidError">xmlSchemaValidError</a>;
+typedef struct _xmlSchemaValidCtxt <a href="#xmlSchemaValidCtxt">xmlSchemaValidCtxt</a>;
+<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> <a href="#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+int <a href="#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a> (<a href="libxml2-xmlschemas.html#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a> plug);
+<a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> <a href="#xmlSchemaParse">xmlSchemaParse</a> (<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt);
+void <a href="#xmlSchemaFreeParserCtxt">xmlSchemaFreeParserCtxt</a> (<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt);
+void <a href="#xmlSchemaValidateSetFilename">xmlSchemaValidateSetFilename</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> vctxt, <br/> const char * filename);
+<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> <a href="#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a> (const char * URL);
+int <a href="#xmlSchemaIsValid">xmlSchemaIsValid</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt);
+typedef void <a href="#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+<a href="libxml2-xmlschemas.html#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a> <a href="#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> * sax, <br/> void ** user_data);
+int <a href="#xmlSchemaValidateStream">xmlSchemaValidateStream</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc, <br/> <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data);
+int <a href="#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a> (<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> * err, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> * warn, <br/> void ** ctx);
+void <a href="#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> vctxt, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a> f, <br/> void * ctxt);
+int <a href="#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
+void <a href="#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br/> void * ctx);
+void <a href="#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> err, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> warn, <br/> void * ctx);
+int <a href="#xmlSchemaValidCtxtGetOptions">xmlSchemaValidCtxtGetOptions</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt);
+int <a href="#xmlSchemaValidateFile">xmlSchemaValidateFile</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> const char * filename, <br/> int options);
+int <a href="#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+void <a href="#xmlSchemaFree">xmlSchemaFree</a> (<a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema);
+<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> <a href="#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a> (const char * buffer, <br/> int size);
+typedef int <a href="#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a> (void * ctx, <br/> const char ** file, <br/> unsigned long * line);
+int <a href="#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> * err, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> * warn, <br/> void ** ctx);
+int <a href="#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> int options);
+void <a href="#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a> (<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> err, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> warn, <br/> void * ctx);
+typedef void <a href="#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> (void * ctx, <br/> const char * msg, <br/> ... ...);
+void <a href="#xmlSchemaDump">xmlSchemaDump</a> (FILE * output, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema);
+void <a href="#xmlSchemaFreeValidCtxt">xmlSchemaFreeValidCtxt</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt);
+<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlSchemaValidCtxtGetParserCtxt">xmlSchemaValidCtxtGetParserCtxt</a> (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt);
+void <a href="#xmlSchemaSetParserStructuredErrors">xmlSchemaSetParserStructuredErrors</a> (<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br/> void * ctx);
+<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> <a href="#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a> (<a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlSchema">Structure </a>xmlSchema</h3><pre class="programlisting">struct _xmlSchema {
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : schema name
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace : the target namespace
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * version
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * id : Obsolete
+ <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc
+ <a href="libxml2-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ int flags
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> typeDecl
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> attrDecl
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> attrgrpDecl
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> elemDecl
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> notaDecl
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> schemasImports
+ void * _private : unused by the library for users or bindings
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> groupDecl
+ <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict
+ void * includes : the includes, this is opaque for now
+ int preserve : whether to free the document
+ int counter : used to give anonymous components unique names
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> idcDef : All identity-constraint defs.
+ void * volatiles : Obsolete
+} xmlSchema;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaParserCtxt">Structure </a>xmlSchemaParserCtxt</h3><pre class="programlisting">struct _xmlSchemaParserCtxt {
+The content of this structure is not made public by the API.
+} xmlSchemaParserCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaParserCtxtPtr">Typedef </a>xmlSchemaParserCtxtPtr</h3><pre class="programlisting"><a href="libxml2-xmlschemas.html#xmlSchemaParserCtxt">xmlSchemaParserCtxt</a> * xmlSchemaParserCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaPtr">Typedef </a>xmlSchemaPtr</h3><pre class="programlisting"><a href="libxml2-xmlschemas.html#xmlSchema">xmlSchema</a> * xmlSchemaPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaSAXPlugPtr">Typedef </a>xmlSchemaSAXPlugPtr</h3><pre class="programlisting"><a href="libxml2-xmlschemas.html#xmlSchemaSAXPlugStruct">xmlSchemaSAXPlugStruct</a> * xmlSchemaSAXPlugPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaSAXPlugStruct">Structure </a>xmlSchemaSAXPlugStruct</h3><pre class="programlisting">struct _xmlSchemaSAXPlug {
+The content of this structure is not made public by the API.
+} xmlSchemaSAXPlugStruct;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidCtxt">Structure </a>xmlSchemaValidCtxt</h3><pre class="programlisting">struct _xmlSchemaValidCtxt {
+The content of this structure is not made public by the API.
+} xmlSchemaValidCtxt;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidCtxtPtr">Typedef </a>xmlSchemaValidCtxtPtr</h3><pre class="programlisting"><a href="libxml2-xmlschemas.html#xmlSchemaValidCtxt">xmlSchemaValidCtxt</a> * xmlSchemaValidCtxtPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidError">Enum </a>xmlSchemaValidError</h3><pre class="programlisting">enum <a href="#xmlSchemaValidError">xmlSchemaValidError</a> {
+ <a name="XML_SCHEMAS_ERR_OK">XML_SCHEMAS_ERR_OK</a> = 0
+ <a name="XML_SCHEMAS_ERR_NOROOT">XML_SCHEMAS_ERR_NOROOT</a> = 1
+ <a name="XML_SCHEMAS_ERR_UNDECLAREDELEM">XML_SCHEMAS_ERR_UNDECLAREDELEM</a> = 2
+ <a name="XML_SCHEMAS_ERR_NOTTOPLEVEL">XML_SCHEMAS_ERR_NOTTOPLEVEL</a> = 3
+ <a name="XML_SCHEMAS_ERR_MISSING">XML_SCHEMAS_ERR_MISSING</a> = 4
+ <a name="XML_SCHEMAS_ERR_WRONGELEM">XML_SCHEMAS_ERR_WRONGELEM</a> = 5
+ <a name="XML_SCHEMAS_ERR_NOTYPE">XML_SCHEMAS_ERR_NOTYPE</a> = 6
+ <a name="XML_SCHEMAS_ERR_NOROLLBACK">XML_SCHEMAS_ERR_NOROLLBACK</a> = 7
+ <a name="XML_SCHEMAS_ERR_ISABSTRACT">XML_SCHEMAS_ERR_ISABSTRACT</a> = 8
+ <a name="XML_SCHEMAS_ERR_NOTEMPTY">XML_SCHEMAS_ERR_NOTEMPTY</a> = 9
+ <a name="XML_SCHEMAS_ERR_ELEMCONT">XML_SCHEMAS_ERR_ELEMCONT</a> = 10
+ <a name="XML_SCHEMAS_ERR_HAVEDEFAULT">XML_SCHEMAS_ERR_HAVEDEFAULT</a> = 11
+ <a name="XML_SCHEMAS_ERR_NOTNILLABLE">XML_SCHEMAS_ERR_NOTNILLABLE</a> = 12
+ <a name="XML_SCHEMAS_ERR_EXTRACONTENT">XML_SCHEMAS_ERR_EXTRACONTENT</a> = 13
+ <a name="XML_SCHEMAS_ERR_INVALIDATTR">XML_SCHEMAS_ERR_INVALIDATTR</a> = 14
+ <a name="XML_SCHEMAS_ERR_INVALIDELEM">XML_SCHEMAS_ERR_INVALIDELEM</a> = 15
+ <a name="XML_SCHEMAS_ERR_NOTDETERMINIST">XML_SCHEMAS_ERR_NOTDETERMINIST</a> = 16
+ <a name="XML_SCHEMAS_ERR_CONSTRUCT">XML_SCHEMAS_ERR_CONSTRUCT</a> = 17
+ <a name="XML_SCHEMAS_ERR_INTERNAL">XML_SCHEMAS_ERR_INTERNAL</a> = 18
+ <a name="XML_SCHEMAS_ERR_NOTSIMPLE">XML_SCHEMAS_ERR_NOTSIMPLE</a> = 19
+ <a name="XML_SCHEMAS_ERR_ATTRUNKNOWN">XML_SCHEMAS_ERR_ATTRUNKNOWN</a> = 20
+ <a name="XML_SCHEMAS_ERR_ATTRINVALID">XML_SCHEMAS_ERR_ATTRINVALID</a> = 21
+ <a name="XML_SCHEMAS_ERR_VALUE">XML_SCHEMAS_ERR_VALUE</a> = 22
+ <a name="XML_SCHEMAS_ERR_FACET">XML_SCHEMAS_ERR_FACET</a> = 23
+ <a name="XML_SCHEMAS_ERR_">XML_SCHEMAS_ERR_</a> = 24
+ <a name="XML_SCHEMAS_ERR_XXX">XML_SCHEMAS_ERR_XXX</a> = 25
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidOption">Enum </a>xmlSchemaValidOption</h3><pre class="programlisting">enum <a href="#xmlSchemaValidOption">xmlSchemaValidOption</a> {
+ <a name="XML_SCHEMA_VAL_VC_I_CREATE">XML_SCHEMA_VAL_VC_I_CREATE</a> = 1 /* Default/fixed: create an attribute node * or an element's text node on the instance. * */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidityErrorFunc"/>Function type xmlSchemaValidityErrorFunc</h3><pre class="programlisting">void xmlSchemaValidityErrorFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Signature of an error callback from an XSD validation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidityLocatorFunc"/>Function type xmlSchemaValidityLocatorFunc</h3><pre class="programlisting">int xmlSchemaValidityLocatorFunc (void * ctx, <br/> const char ** file, <br/> unsigned long * line)<br/>
+</pre><p>A schemas validation locator, a callback called by the validator. This is used when file or node informations are not available to find out what file and line number are affected</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>user provided context</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>returned file information</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>returned line information</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidityWarningFunc"/>Function type xmlSchemaValidityWarningFunc</h3><pre class="programlisting">void xmlSchemaValidityWarningFunc (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Signature of a warning callback from an XSD validation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaDump"/>xmlSchemaDump ()</h3><pre class="programlisting">void xmlSchemaDump (FILE * output, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)<br/>
+</pre><p>Dump a Schema structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the file output</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFree"/>xmlSchemaFree ()</h3><pre class="programlisting">void xmlSchemaFree (<a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)<br/>
+</pre><p>Deallocate a Schema structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFreeParserCtxt"/>xmlSchemaFreeParserCtxt ()</h3><pre class="programlisting">void xmlSchemaFreeParserCtxt (<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt)<br/>
+</pre><p>Free the resources associated to the schema parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFreeValidCtxt"/>xmlSchemaFreeValidCtxt ()</h3><pre class="programlisting">void xmlSchemaFreeValidCtxt (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)<br/>
+</pre><p>Free the resources associated to the schema validation context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema validation context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaGetParserErrors"/>xmlSchemaGetParserErrors ()</h3><pre class="programlisting">int xmlSchemaGetParserErrors (<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> * err, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> * warn, <br/> void ** ctx)<br/>
+</pre><p>Get the callback information used to handle errors for a parser context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XMl-Schema parser context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error callback result</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning callback result</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaGetValidErrors"/>xmlSchemaGetValidErrors ()</h3><pre class="programlisting">int xmlSchemaGetValidErrors (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> * err, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> * warn, <br/> void ** ctx)<br/>
+</pre><p>Get the error and warning callback informations</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XML-Schema validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function result</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function result</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error and 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaIsValid"/>xmlSchemaIsValid ()</h3><pre class="programlisting">int xmlSchemaIsValid (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)<br/>
+</pre><p>Check if any error was detected during validation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid so far, 0 if errors were detected, and -1 in case of internal error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaNewDocParserCtxt"/>xmlSchemaNewDocParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> xmlSchemaNewDocParserCtxt (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Create an XML Schemas parse context for that document. NB. The document may be modified during the parsing process.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a preparsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaNewMemParserCtxt"/>xmlSchemaNewMemParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> xmlSchemaNewMemParserCtxt (const char * buffer, <br/> int size)<br/>
+</pre><p>Create an XML Schemas parse context for that memory buffer expected to contain an XML Schemas file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array containing the schemas</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaNewParserCtxt"/>xmlSchemaNewParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> xmlSchemaNewParserCtxt (const char * URL)<br/>
+</pre><p>Create an XML Schemas parse context for that file/resource expected to contain an XML Schemas file.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the location of the schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaNewValidCtxt"/>xmlSchemaNewValidCtxt ()</h3><pre class="programlisting"><a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> xmlSchemaNewValidCtxt (<a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)<br/>
+</pre><p>Create an XML Schemas validation context based on the given schema.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled XML Schemas</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the validation context or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaParse"/>xmlSchemaParse ()</h3><pre class="programlisting"><a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> xmlSchemaParse (<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt)<br/>
+</pre><p>parse a schema definition resource and build an internal XML Schema structure which can be used to validate instances.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal XML Schema structure built from the resource or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaSAXPlug"/>xmlSchemaSAXPlug ()</h3><pre class="programlisting"><a href="libxml2-xmlschemas.html#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a> xmlSchemaSAXPlug (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> * sax, <br/> void ** user_data)<br/>
+</pre><p>Plug a SAX based validation layer in a SAX parsing event flow. The original @saxptr and @dataptr data are replaced by new pointers but the calls to the original will be maintained.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a pointer to the original <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a></td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>a pointer to the original SAX user data pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to a data structure needed to unplug the validation layer or NULL in case of errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaSAXUnplug"/>xmlSchemaSAXUnplug ()</h3><pre class="programlisting">int xmlSchemaSAXUnplug (<a href="libxml2-xmlschemas.html#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a> plug)<br/>
+</pre><p>Unplug a SAX based validation layer in a SAX parsing event flow. The original pointers used in the call are restored.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>plug</tt></i>:</span></td><td>a data structure returned by <a href="libxml2-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaSetParserErrors"/>xmlSchemaSetParserErrors ()</h3><pre class="programlisting">void xmlSchemaSetParserErrors (<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> err, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> warn, <br/> void * ctx)<br/>
+</pre><p>Set the callback functions used to handle errors for a validation context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error callback</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning callback</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaSetParserStructuredErrors"/>xmlSchemaSetParserStructuredErrors ()</h3><pre class="programlisting">void xmlSchemaSetParserStructuredErrors (<a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br/> void * ctx)<br/>
+</pre><p>Set the structured error callback</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema parser context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the structured error function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaSetValidErrors"/>xmlSchemaSetValidErrors ()</h3><pre class="programlisting">void xmlSchemaSetValidErrors (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> err, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> warn, <br/> void * ctx)<br/>
+</pre><p>Set the error and warning callback informations</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaSetValidOptions"/>xmlSchemaSetValidOptions ()</h3><pre class="programlisting">int xmlSchemaSetValidOptions (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> int options)<br/>
+</pre><p>Sets the options to be used during the validation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-xmlschemas.html#xmlSchemaValidOption">xmlSchemaValidOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of an API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaSetValidStructuredErrors"/>xmlSchemaSetValidStructuredErrors ()</h3><pre class="programlisting">void xmlSchemaSetValidStructuredErrors (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br/> void * ctx)<br/>
+</pre><p>Set the structured error callback</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the structured error function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidCtxtGetOptions"/>xmlSchemaValidCtxtGetOptions ()</h3><pre class="programlisting">int xmlSchemaValidCtxtGetOptions (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)<br/>
+</pre><p>Get the validation context options.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the option combination or -1 on error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidCtxtGetParserCtxt"/>xmlSchemaValidCtxtGetParserCtxt ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlSchemaValidCtxtGetParserCtxt (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)<br/>
+</pre><p>allow access to the parser context of the schema validation context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context of the schema validation context or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateDoc"/>xmlSchemaValidateDoc ()</h3><pre class="programlisting">int xmlSchemaValidateDoc (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Validate a document tree in memory.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateFile"/>xmlSchemaValidateFile ()</h3><pre class="programlisting">int xmlSchemaValidateFile (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> const char * filename, <br/> int options)<br/>
+</pre><p>Do a schemas validation of the given resource, it will use the SAX streamable validation internally.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI of the instance</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a future set of options, currently unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the document is valid, a positive error code number otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateOneElement"/>xmlSchemaValidateOneElement ()</h3><pre class="programlisting">int xmlSchemaValidateOneElement (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br/>
+</pre><p>Validate a branch of a tree, starting with the given @elem.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the element and its subtree is valid, a positive error code number otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateSetFilename"/>xmlSchemaValidateSetFilename ()</h3><pre class="programlisting">void xmlSchemaValidateSetFilename (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> vctxt, <br/> const char * filename)<br/>
+</pre><p>Workaround to provide file error reporting information when this is not provided by current APIs</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>vctxt</tt></i>:</span></td><td>the schema validation context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file name</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateSetLocator"/>xmlSchemaValidateSetLocator ()</h3><pre class="programlisting">void xmlSchemaValidateSetLocator (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> vctxt, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a> f, <br/> void * ctxt)<br/>
+</pre><p>Allows to set a locator function to the validation context, which will be used to provide file and line information since those are not provided as part of the SAX validation flow Setting @f to NULL disable the locator.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>vctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the locator function pointer</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the locator context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateStream"/>xmlSchemaValidateStream ()</h3><pre class="programlisting">int xmlSchemaValidateStream (<a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc, <br/> <a href="libxml2-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br/> void * user_data)<br/>
+</pre><p>Validate an input based on a flow of SAX event from the parser and forward the events to the @sax handler with the provided @user_data the user provided @sax handler must be a SAX2 one.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the input to use for reading the data</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>an optional encoding information</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler for the resulting events</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>the context to provide to the SAX handler.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlschemastypes.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlschemastypes.html
new file mode 100644
index 0000000..36a59f8
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlschemastypes.html
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlschemastypes: implementation of XML Schema Datatypes</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlschemas.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlstring.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlschemastypes</span>
+ </h2>
+ <p>xmlschemastypes - implementation of XML Schema Datatypes</p>
+ <p>module providing the XML Schema Datatypes implementation both definition and validity checking </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef enum <a href="#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a>;
+int <a href="#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a> (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+int <a href="#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** retValue, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws);
+int <a href="#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a> (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br/> unsigned long * length, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws);
+int <a href="#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a> (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br/> int facetType);
+int <a href="#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** retValue);
+<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> <a href="#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a> (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type);
+int <a href="#xmlSchemaCompareValuesWhtsp">xmlSchemaCompareValuesWhtsp</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> x, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> xws, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> y, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> yws);
+int <a href="#xmlSchemaValueGetAsBoolean">xmlSchemaValueGetAsBoolean</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSchemaCollapseString">xmlSchemaCollapseString</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+int <a href="#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a> (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+int <a href="#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a> (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> base, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val);
+<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> <a href="#xmlSchemaNewFacet">xmlSchemaNewFacet</a> (void);
+int <a href="#xmlSchemaValueAppend">xmlSchemaValueAppend</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> prev, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> cur);
+int <a href="#xmlSchemaCompareValues">xmlSchemaCompareValues</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> x, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> y);
+int <a href="#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a> (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br/> unsigned long * length);
+<a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> <a href="#xmlSchemaGetValType">xmlSchemaGetValType</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val);
+<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> <a href="#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns);
+int <a href="#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a> (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val);
+void <a href="#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a> (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet);
+int <a href="#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a> (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> unsigned long actualLen, <br/> unsigned long * expectedLen);
+unsigned long <a href="#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a> (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet);
+void <a href="#xmlSchemaFreeValue">xmlSchemaFreeValue</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> value);
+<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> <a href="#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> cur);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSchemaValueGetAsString">xmlSchemaValueGetAsString</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val);
+<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> <a href="#xmlSchemaCopyValue">xmlSchemaCopyValue</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val);
+<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> <a href="#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns);
+<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> <a href="#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localName);
+void <a href="#xmlSchemaCleanupTypes">xmlSchemaCleanupTypes</a> (void);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> <a href="#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value);
+<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> <a href="#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a> (<a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> type);
+void <a href="#xmlSchemaInitTypes">xmlSchemaInitTypes</a> (void);
+int <a href="#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a> (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> fws, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws);
+int <a href="#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a> (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> typeDecl, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> pctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaWhitespaceValueType">Enum </a>xmlSchemaWhitespaceValueType</h3><pre class="programlisting">enum <a href="#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> {
+ <a name="XML_SCHEMA_WHITESPACE_UNKNOWN">XML_SCHEMA_WHITESPACE_UNKNOWN</a> = 0
+ <a name="XML_SCHEMA_WHITESPACE_PRESERVE">XML_SCHEMA_WHITESPACE_PRESERVE</a> = 1
+ <a name="XML_SCHEMA_WHITESPACE_REPLACE">XML_SCHEMA_WHITESPACE_REPLACE</a> = 2
+ <a name="XML_SCHEMA_WHITESPACE_COLLAPSE">XML_SCHEMA_WHITESPACE_COLLAPSE</a> = 3
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaCheckFacet"/>xmlSchemaCheckFacet ()</h3><pre class="programlisting">int xmlSchemaCheckFacet (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> typeDecl, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> pctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Checks and computes the values of facets.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet</td></tr><tr><td><span class="term"><i><tt>typeDecl</tt></i>:</span></td><td>the schema type definition</td></tr><tr><td><span class="term"><i><tt>pctxt</tt></i>:</span></td><td>the schema parser context or NULL</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the optional name of the type</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if valid, a positive error code if not valid and -1 in case of an internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaCleanupTypes"/>xmlSchemaCleanupTypes ()</h3><pre class="programlisting">void xmlSchemaCleanupTypes (void)<br/>
+</pre><p>Cleanup the default XML Schemas type library</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaCollapseString"/>xmlSchemaCollapseString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSchemaCollapseString (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Removes and normalize white spaces in the string</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new string or NULL if no change was required.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaCompareValues"/>xmlSchemaCompareValues ()</h3><pre class="programlisting">int xmlSchemaCompareValues (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> x, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> y)<br/>
+</pre><p>Compare 2 values</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>x</tt></i>:</span></td><td>a first value</td></tr><tr><td><span class="term"><i><tt>y</tt></i>:</span></td><td>a second value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaCompareValuesWhtsp"/>xmlSchemaCompareValuesWhtsp ()</h3><pre class="programlisting">int xmlSchemaCompareValuesWhtsp (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> x, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> xws, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> y, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> yws)<br/>
+</pre><p>Compare 2 values</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>x</tt></i>:</span></td><td>a first value</td></tr><tr><td><span class="term"><i><tt>xws</tt></i>:</span></td><td>the whitespace value of x</td></tr><tr><td><span class="term"><i><tt>y</tt></i>:</span></td><td>a second value</td></tr><tr><td><span class="term"><i><tt>yws</tt></i>:</span></td><td>the whitespace value of y</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaCopyValue"/>xmlSchemaCopyValue ()</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> xmlSchemaCopyValue (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br/>
+</pre><p>Copies the precomputed value. This duplicates any string within.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value to be copied</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the copy or NULL if a copy for a data-type is not implemented.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFreeFacet"/>xmlSchemaFreeFacet ()</h3><pre class="programlisting">void xmlSchemaFreeFacet (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet)<br/>
+</pre><p>Deallocate a Schema Facet structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>a schema facet structure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaFreeValue"/>xmlSchemaFreeValue ()</h3><pre class="programlisting">void xmlSchemaFreeValue (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> value)<br/>
+</pre><p>Cleanup the default XML Schemas type library</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to free</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaGetBuiltInListSimpleTypeItemType"/>xmlSchemaGetBuiltInListSimpleTypeItemType ()</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> xmlSchemaGetBuiltInListSimpleTypeItemType (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type)<br/>
+</pre><p>Lookup function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the built-in simple type.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the item type of @type as defined by the built-in datatype hierarchy of XML Schema Part 2: Datatypes, or NULL in case of an error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaGetBuiltInType"/>xmlSchemaGetBuiltInType ()</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> xmlSchemaGetBuiltInType (<a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> type)<br/>
+</pre><p>Gives you the type struct for a built-in type by its type id.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of the built in type</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type if found, NULL otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaGetCanonValue"/>xmlSchemaGetCanonValue ()</h3><pre class="programlisting">int xmlSchemaGetCanonValue (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** retValue)<br/>
+</pre><p>Get the canonical lexical representation of the value. The caller has to FREE the returned retValue. WARNING: Some value types are not supported yet, resulting in a @retValue of "???". TODO: XML Schema 1.0 does not define canonical representations for: duration, gYearMonth, gYear, gMonthDay, gMonth, gDay, anyURI, QName, NOTATION. This will be fixed in XML Schema 1.1.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>retValue</tt></i>:</span></td><td>the returned value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value could be built, 1 if the value type is not supported yet and -1 in case of API errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaGetCanonValueWhtsp"/>xmlSchemaGetCanonValueWhtsp ()</h3><pre class="programlisting">int xmlSchemaGetCanonValueWhtsp (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** retValue, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)<br/>
+</pre><p>Get the canonical representation of the value. The caller has to free the returned @retValue.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>retValue</tt></i>:</span></td><td>the returned value</td></tr><tr><td><span class="term"><i><tt>ws</tt></i>:</span></td><td>the whitespace type of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value could be built, 1 if the value type is not supported yet and -1 in case of API errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaGetFacetValueAsULong"/>xmlSchemaGetFacetValueAsULong ()</h3><pre class="programlisting">unsigned long xmlSchemaGetFacetValueAsULong (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet)<br/>
+</pre><p>Extract the value of a facet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>an schemas type facet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value as a long</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaGetPredefinedType"/>xmlSchemaGetPredefinedType ()</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> xmlSchemaGetPredefinedType (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns)<br/>
+</pre><p>Lookup a type in the default XML Schemas type library</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the type name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the URI of the namespace usually "http://www.w3.org/2001/XMLSchema"</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type if found, NULL otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaGetValType"/>xmlSchemaGetValType ()</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> xmlSchemaGetValType (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br/>
+</pre><p>Accessor for the type of a value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a schemas value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> of the value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaInitTypes"/>xmlSchemaInitTypes ()</h3><pre class="programlisting">void xmlSchemaInitTypes (void)<br/>
+</pre><p>Initialize the default XML Schemas type library</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaIsBuiltInTypeFacet"/>xmlSchemaIsBuiltInTypeFacet ()</h3><pre class="programlisting">int xmlSchemaIsBuiltInTypeFacet (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br/> int facetType)<br/>
+</pre><p>Evaluates if a specific facet can be used in conjunction with a type.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the built-in type</td></tr><tr><td><span class="term"><i><tt>facetType</tt></i>:</span></td><td>the facet type</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the facet can be used with the given built-in type, 0 otherwise and -1 in case the type is not a built-in type.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaNewFacet"/>xmlSchemaNewFacet ()</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> xmlSchemaNewFacet (void)<br/>
+</pre><p>Allocate a new Facet structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly allocated structure or NULL in case or error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaNewNOTATIONValue"/>xmlSchemaNewNOTATIONValue ()</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> xmlSchemaNewNOTATIONValue (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns)<br/>
+</pre><p>Allocate a new NOTATION value. The given values are consumed and freed with the struct.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the notation name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the notation namespace name or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new value or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaNewQNameValue"/>xmlSchemaNewQNameValue ()</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> xmlSchemaNewQNameValue (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localName)<br/>
+</pre><p>Allocate a new QName value. The given values are consumed and freed with the struct.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>namespaceName</tt></i>:</span></td><td>the namespace name</td></tr><tr><td><span class="term"><i><tt>localName</tt></i>:</span></td><td>the local name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new value or NULL in case of an error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaNewStringValue"/>xmlSchemaNewStringValue ()</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> xmlSchemaNewStringValue (<a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Allocate a new simple type value. The type can be of XML_SCHEMAS_STRING. WARNING: This one is intended to be expanded for other string based types. We need this for anySimpleType as well. The given value is consumed and freed with the struct.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the value type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new value or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValPredefTypeNode"/>xmlSchemaValPredefTypeNode ()</h3><pre class="programlisting">int xmlSchemaValPredefTypeNode (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the predefined type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the return computed value</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node containing the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValPredefTypeNodeNoNorm"/>xmlSchemaValPredefTypeNodeNoNorm ()</h3><pre class="programlisting">int xmlSchemaValPredefTypeNodeNoNorm (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val. This one does apply any normalization to the value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the predefined type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the return computed value</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node containing the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateFacet"/>xmlSchemaValidateFacet ()</h3><pre class="programlisting">int xmlSchemaValidateFacet (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> base, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br/>
+</pre><p>Check a value against a facet condition</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>base</tt></i>:</span></td><td>the base type</td></tr><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr of the value to validate</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateFacetWhtsp"/>xmlSchemaValidateFacetWhtsp ()</h3><pre class="programlisting">int xmlSchemaValidateFacetWhtsp (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> fws, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)<br/>
+</pre><p>Check a value against a facet condition. This takes value normalization according to the specified whitespace types into account. Note that @value needs to be the *normalized* value if the facet is of type "pattern".</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>fws</tt></i>:</span></td><td>the whitespace type of the facet's value</td></tr><tr><td><span class="term"><i><tt>valType</tt></i>:</span></td><td>the built-in type of the value</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical (or normalized for pattern) repr of the value to validate</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>ws</tt></i>:</span></td><td>the whitespace type of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateLengthFacet"/>xmlSchemaValidateLengthFacet ()</h3><pre class="programlisting">int xmlSchemaValidateLengthFacet (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br/> unsigned long * length)<br/>
+</pre><p>Checka a value against a "length", "minLength" and "maxLength" facet; sets @length to the computed length of @value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the built-in type</td></tr><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr. of the value to be validated</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>length</tt></i>:</span></td><td>the actual length of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateLengthFacetWhtsp"/>xmlSchemaValidateLengthFacetWhtsp ()</h3><pre class="programlisting">int xmlSchemaValidateLengthFacetWhtsp (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br/> unsigned long * length, <br/> <a href="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)<br/>
+</pre><p>Checka a value against a "length", "minLength" and "maxLength" facet; sets @length to the computed length of @value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>valType</tt></i>:</span></td><td>the built-in type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr. of the value to be validated</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>length</tt></i>:</span></td><td>the actual length of the value</td></tr><tr><td><span class="term"><i><tt>ws</tt></i>:</span></td><td>the whitespace type of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidateListSimpleTypeFacet"/>xmlSchemaValidateListSimpleTypeFacet ()</h3><pre class="programlisting">int xmlSchemaValidateListSimpleTypeFacet (<a href="libxml2-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> unsigned long actualLen, <br/> unsigned long * expectedLen)<br/>
+</pre><p>Checks the value of a list simple type against a facet.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr of the value to validate</td></tr><tr><td><span class="term"><i><tt>actualLen</tt></i>:</span></td><td>the number of list items</td></tr><tr><td><span class="term"><i><tt>expectedLen</tt></i>:</span></td><td>the resulting expected number of list items</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value is valid, a positive error code number otherwise and -1 in case of an internal error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValidatePredefinedType"/>xmlSchemaValidatePredefinedType ()</h3><pre class="programlisting">int xmlSchemaValidatePredefinedType (<a href="libxml2-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val)<br/>
+</pre><p>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the predefined type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the return computed value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValueAppend"/>xmlSchemaValueAppend ()</h3><pre class="programlisting">int xmlSchemaValueAppend (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> prev, <br/> <a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> cur)<br/>
+</pre><p>Appends a next sibling to a list of computed values.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>prev</tt></i>:</span></td><td>the value</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the value to be appended</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if succeeded and -1 on API errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValueGetAsBoolean"/>xmlSchemaValueGetAsBoolean ()</h3><pre class="programlisting">int xmlSchemaValueGetAsBoolean (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br/>
+</pre><p>Accessor for the boolean value of a computed value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true and 0 if false, or in case of an error. Hmm.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValueGetAsString"/>xmlSchemaValueGetAsString ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSchemaValueGetAsString (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br/>
+</pre><p>Accessor for the string value of a computed value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string value or NULL if there was none, or on API errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaValueGetNext"/>xmlSchemaValueGetNext ()</h3><pre class="programlisting"><a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> xmlSchemaValueGetNext (<a href="libxml2-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> cur)<br/>
+</pre><p>Accessor for the next sibling of a list of computed values.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next value or NULL if there was none, or on API errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlSchemaWhiteSpaceReplace"/>xmlSchemaWhiteSpaceReplace ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSchemaWhiteSpaceReplace (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value)<br/>
+</pre><p>Replaces 0xd, 0x9 and 0xa with a space.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new string or NULL if no change was required.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlstring.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlstring.html
new file mode 100644
index 0000000..95a845f
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlstring.html
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlstring: set of routines to process strings</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlschemastypes.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlunicode.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlstring</span>
+ </h2>
+ <p>xmlstring - set of routines to process strings</p>
+ <p>type and interfaces needed for the internal string handling of the library, especially UTF8 processing. </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#BAD_CAST">BAD_CAST</a>;
+typedef unsigned char <a href="#xmlChar">xmlChar</a>;
+int <a href="#xmlStrcmp">xmlStrcmp</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCharStrndup">xmlCharStrndup</a> (const char * cur, <br/> int len);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcasestr">xmlStrcasestr</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcat">xmlStrcat</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add);
+int <a href="#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> ... ...);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrstr">xmlStrstr</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
+int <a href="#xmlUTF8Size">xmlUTF8Size</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf);
+int <a href="#xmlStrQEqual">xmlStrQEqual</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pref, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrncatNew">xmlStrncatNew</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/> int len);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlUTF8Strpos">xmlUTF8Strpos</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int pos);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrdup">xmlStrdup</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCharStrdup">xmlCharStrdup</a> (const char * cur);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrchr">xmlStrchr</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> val);
+int <a href="#xmlStrlen">xmlStrlen</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+int <a href="#xmlStrncmp">xmlStrncmp</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/> int len);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrsub">xmlStrsub</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int start, <br/> int len);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrncat">xmlStrncat</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add, <br/> int len);
+int <a href="#xmlGetUTF8Char">xmlGetUTF8Char</a> (const unsigned char * utf, <br/> int * len);
+int <a href="#xmlStrcasecmp">xmlStrcasecmp</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrndup">xmlStrndup</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> int len);
+int <a href="#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> va_list ap);
+int <a href="#xmlUTF8Strsize">xmlUTF8Strsize</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int len);
+int <a href="#xmlCheckUTF8">xmlCheckUTF8</a> (const unsigned char * utf);
+int <a href="#xmlStrncasecmp">xmlStrncasecmp</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/> int len);
+int <a href="#xmlUTF8Strlen">xmlUTF8Strlen</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlUTF8Strsub">xmlUTF8Strsub</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int start, <br/> int len);
+int <a href="#xmlStrEqual">xmlStrEqual</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2);
+int <a href="#xmlUTF8Charcmp">xmlUTF8Charcmp</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf2);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlUTF8Strndup">xmlUTF8Strndup</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int len);
+int <a href="#xmlUTF8Strloc">xmlUTF8Strloc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utfchar);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="BAD_CAST">Macro </a>BAD_CAST</h3><pre class="programlisting">#define <a href="#BAD_CAST">BAD_CAST</a>;
+</pre><p>Macro to cast a string to an <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * when one know its safe.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlChar">Typedef </a>xmlChar</h3><pre class="programlisting">unsigned char xmlChar;
+</pre><p>This is a basic byte in an UTF-8 encoded string. It's unsigned allowing to pinpoint case where char * are assigned to <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * (possibly making serialization back impossible).</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharStrdup"/>xmlCharStrdup ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCharStrdup (const char * cur)<br/>
+</pre><p>a strdup for char's to xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input char *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCharStrndup"/>xmlCharStrndup ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCharStrndup (const char * cur, <br/> int len)<br/>
+</pre><p>a strndup for char's to xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input char *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @cur</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCheckUTF8"/>xmlCheckUTF8 ()</h3><pre class="programlisting">int xmlCheckUTF8 (const unsigned char * utf)<br/>
+</pre><p>Checks @utf for being valid UTF-8. @utf is assumed to be null-terminated. This function is not super-strict, as it will allow longer UTF-8 sequences than necessary. Note that Java is capable of producing these sequences if provoked. Also note, this routine checks for the 4-byte maximum size, but does not check for 0x10ffff maximum value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>Pointer to putative UTF-8 encoded string.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>value: true if @utf is valid.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlGetUTF8Char"/>xmlGetUTF8Char ()</h3><pre class="programlisting">int xmlGetUTF8Char (const unsigned char * utf, <br/> int * len)<br/>
+</pre><p>Read the first UTF8 character from @utf</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>a pointer to the minimum number of bytes present in the sequence. This is used to assure the next character is completely contained within the sequence.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrEqual"/>xmlStrEqual ()</h3><pre class="programlisting">int xmlStrEqual (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2)<br/>
+</pre><p>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrPrintf"/>xmlStrPrintf ()</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> ... ...)<br/>
+</pre><p>Formats @msg and places result into @buf.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrQEqual"/>xmlStrQEqual ()</h3><pre class="programlisting">int xmlStrQEqual (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pref, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>Check if a QName is Equal to a given string</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrVPrintf"/>xmlStrVPrintf ()</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> va_list ap)<br/>
+</pre><p>Formats @msg and places result into @buf.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrcasecmp"/>xmlStrcasecmp ()</h3><pre class="programlisting">int xmlStrcasecmp (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2)<br/>
+</pre><p>a strcasecmp for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the integer result of the comparison</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrcasestr"/>xmlStrcasestr ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrcasestr (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val)<br/>
+</pre><p>a case-ignoring strstr for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array (haystack)</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> to search (needle)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrcat"/>xmlStrcat ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrcat (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add)<br/>
+</pre><p>a strcat for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * containing the concatenated string. The original @cur is reallocated and should not be freed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrchr"/>xmlStrchr ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrchr (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> val)<br/>
+</pre><p>a strchr for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> to search</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrcmp"/>xmlStrcmp ()</h3><pre class="programlisting">int xmlStrcmp (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2)<br/>
+</pre><p>a strcmp for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the integer result of the comparison</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrdup"/>xmlStrdup ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrdup (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur)<br/>
+</pre><p>a strdup for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrlen"/>xmlStrlen ()</h3><pre class="programlisting">int xmlStrlen (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>length of a xmlChar's string</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> contained in the ARRAY.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrncasecmp"/>xmlStrncasecmp ()</h3><pre class="programlisting">int xmlStrncasecmp (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/> int len)<br/>
+</pre><p>a strncasecmp for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the max comparison length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the integer result of the comparison</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrncat"/>xmlStrncat ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrncat (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add, <br/> int len)<br/>
+</pre><p>a strncat for array of xmlChar's, it will extend @cur with the len first bytes of @add. Note that if @len &lt; 0 then this is an API error and NULL will be returned.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of @add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *, the original @cur is reallocated and should not be freed.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrncatNew"/>xmlStrncatNew ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrncatNew (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/> int len)<br/>
+</pre><p>same as xmlStrncat, but creates a new string. The original two strings are not freed. If @len is &lt; 0 then the length will be calculated automatically.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>first <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @str2 or &lt; 0</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrncmp"/>xmlStrncmp ()</h3><pre class="programlisting">int xmlStrncmp (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/> int len)<br/>
+</pre><p>a strncmp for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the max comparison length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the integer result of the comparison</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrndup"/>xmlStrndup ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrndup (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> int len)<br/>
+</pre><p>a strndup for array of xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @cur</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrstr"/>xmlStrstr ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrstr (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val)<br/>
+</pre><p>a strstr for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array (haystack)</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> to search (needle)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrsub"/>xmlStrsub ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrsub (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> int start, <br/> int len)<br/>
+</pre><p>Extract a substring of a given string</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array (haystack)</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the index of the first char (zero based)</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the substring</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUTF8Charcmp"/>xmlUTF8Charcmp ()</h3><pre class="programlisting">int xmlUTF8Charcmp (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf2)<br/>
+</pre><p>compares the two UCS4 values</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf1</tt></i>:</span></td><td>pointer to first UTF8 char</td></tr><tr><td><span class="term"><i><tt>utf2</tt></i>:</span></td><td>pointer to second UTF8 char</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>result of the compare as with <a href="libxml2-xmlstring.html#xmlStrncmp">xmlStrncmp</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUTF8Size"/>xmlUTF8Size ()</h3><pre class="programlisting">int xmlUTF8Size (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf)<br/>
+</pre><p>calculates the internal size of a UTF8 character</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>pointer to the UTF8 character</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the numbers of bytes in the character, -1 on format error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUTF8Strlen"/>xmlUTF8Strlen ()</h3><pre class="programlisting">int xmlUTF8Strlen (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf)<br/>
+</pre><p>compute the length of an UTF8 string, it doesn't do a full UTF8 checking of the content of the string.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> in the string or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUTF8Strloc"/>xmlUTF8Strloc ()</h3><pre class="programlisting">int xmlUTF8Strloc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utfchar)<br/>
+</pre><p>a function to provide the relative location of a UTF8 char</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>utfchar</tt></i>:</span></td><td>the UTF8 character to be found</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the relative character position of the desired char or -1 if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUTF8Strndup"/>xmlUTF8Strndup ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlUTF8Strndup (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int len)<br/>
+</pre><p>a strndup for array of UTF8's</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @utf (in chars)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new UTF8 * or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUTF8Strpos"/>xmlUTF8Strpos ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlUTF8Strpos (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int pos)<br/>
+</pre><p>a function to provide the equivalent of fetching a character from a string array</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>pos</tt></i>:</span></td><td>the position of the desired UTF8 char (in chars)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the UTF8 character or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUTF8Strsize"/>xmlUTF8Strsize ()</h3><pre class="programlisting">int xmlUTF8Strsize (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int len)<br/>
+</pre><p>storage size of an UTF8 string the behaviour is not guaranteed if the input string is not UTF-8</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> in the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the storage size of the first 'len' <a href="libxml2-SAX.html#characters">characters</a> of ARRAY</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUTF8Strsub"/>xmlUTF8Strsub ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlUTF8Strsub (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int start, <br/> int len)<br/>
+</pre><p>Create a substring from a given UTF-8 string Note: positions are given in units of UTF-8 chars</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>relative pos of first char</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>total number to copy</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to a newly created string or NULL if any problem</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlunicode.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlunicode.html
new file mode 100644
index 0000000..7d4f0d8
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlunicode.html
@@ -0,0 +1,887 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlunicode: Unicode character APIs</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlstring.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlversion.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlunicode</span>
+ </h2>
+ <p>xmlunicode - Unicode character APIs</p>
+ <p>API for the Unicode character APIs This file is automatically generated from the UCS description files of the Unicode Character Database</p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">int <a href="#xmlUCSIsBlockElements">xmlUCSIsBlockElements</a> (int code);
+int <a href="#xmlUCSIsBopomofo">xmlUCSIsBopomofo</a> (int code);
+int <a href="#xmlUCSIsDingbats">xmlUCSIsDingbats</a> (int code);
+int <a href="#xmlUCSIsSuperscriptsandSubscripts">xmlUCSIsSuperscriptsandSubscripts</a> (int code);
+int <a href="#xmlUCSIsCombiningHalfMarks">xmlUCSIsCombiningHalfMarks</a> (int code);
+int <a href="#xmlUCSIsTibetan">xmlUCSIsTibetan</a> (int code);
+int <a href="#xmlUCSIsYiRadicals">xmlUCSIsYiRadicals</a> (int code);
+int <a href="#xmlUCSIsCombiningMarksforSymbols">xmlUCSIsCombiningMarksforSymbols</a> (int code);
+int <a href="#xmlUCSIsHangulSyllables">xmlUCSIsHangulSyllables</a> (int code);
+int <a href="#xmlUCSIsBasicLatin">xmlUCSIsBasicLatin</a> (int code);
+int <a href="#xmlUCSIsCatSc">xmlUCSIsCatSc</a> (int code);
+int <a href="#xmlUCSIsCatSo">xmlUCSIsCatSo</a> (int code);
+int <a href="#xmlUCSIsLimbu">xmlUCSIsLimbu</a> (int code);
+int <a href="#xmlUCSIsCatSm">xmlUCSIsCatSm</a> (int code);
+int <a href="#xmlUCSIsCatSk">xmlUCSIsCatSk</a> (int code);
+int <a href="#xmlUCSIsKhmerSymbols">xmlUCSIsKhmerSymbols</a> (int code);
+int <a href="#xmlUCSIsMongolian">xmlUCSIsMongolian</a> (int code);
+int <a href="#xmlUCSIsMalayalam">xmlUCSIsMalayalam</a> (int code);
+int <a href="#xmlUCSIsMathematicalAlphanumericSymbols">xmlUCSIsMathematicalAlphanumericSymbols</a> (int code);
+int <a href="#xmlUCSIsThaana">xmlUCSIsThaana</a> (int code);
+int <a href="#xmlUCSIsMyanmar">xmlUCSIsMyanmar</a> (int code);
+int <a href="#xmlUCSIsTags">xmlUCSIsTags</a> (int code);
+int <a href="#xmlUCSIsCJKCompatibilityIdeographs">xmlUCSIsCJKCompatibilityIdeographs</a> (int code);
+int <a href="#xmlUCSIsTelugu">xmlUCSIsTelugu</a> (int code);
+int <a href="#xmlUCSIsLowSurrogates">xmlUCSIsLowSurrogates</a> (int code);
+int <a href="#xmlUCSIsOsmanya">xmlUCSIsOsmanya</a> (int code);
+int <a href="#xmlUCSIsSyriac">xmlUCSIsSyriac</a> (int code);
+int <a href="#xmlUCSIsEthiopic">xmlUCSIsEthiopic</a> (int code);
+int <a href="#xmlUCSIsBoxDrawing">xmlUCSIsBoxDrawing</a> (int code);
+int <a href="#xmlUCSIsGreekExtended">xmlUCSIsGreekExtended</a> (int code);
+int <a href="#xmlUCSIsGreekandCoptic">xmlUCSIsGreekandCoptic</a> (int code);
+int <a href="#xmlUCSIsKannada">xmlUCSIsKannada</a> (int code);
+int <a href="#xmlUCSIsByzantineMusicalSymbols">xmlUCSIsByzantineMusicalSymbols</a> (int code);
+int <a href="#xmlUCSIsEnclosedCJKLettersandMonths">xmlUCSIsEnclosedCJKLettersandMonths</a> (int code);
+int <a href="#xmlUCSIsCJKCompatibilityForms">xmlUCSIsCJKCompatibilityForms</a> (int code);
+int <a href="#xmlUCSIsCatCs">xmlUCSIsCatCs</a> (int code);
+int <a href="#xmlUCSIsCJKRadicalsSupplement">xmlUCSIsCJKRadicalsSupplement</a> (int code);
+int <a href="#xmlUCSIsCatCf">xmlUCSIsCatCf</a> (int code);
+int <a href="#xmlUCSIsSmallFormVariants">xmlUCSIsSmallFormVariants</a> (int code);
+int <a href="#xmlUCSIsHangulCompatibilityJamo">xmlUCSIsHangulCompatibilityJamo</a> (int code);
+int <a href="#xmlUCSIsCatCc">xmlUCSIsCatCc</a> (int code);
+int <a href="#xmlUCSIsCatCo">xmlUCSIsCatCo</a> (int code);
+int <a href="#xmlUCSIsCherokee">xmlUCSIsCherokee</a> (int code);
+int <a href="#xmlUCSIsGothic">xmlUCSIsGothic</a> (int code);
+int <a href="#xmlUCSIsKhmer">xmlUCSIsKhmer</a> (int code);
+int <a href="#xmlUCSIsCombiningDiacriticalMarksforSymbols">xmlUCSIsCombiningDiacriticalMarksforSymbols</a> (int code);
+int <a href="#xmlUCSIsOgham">xmlUCSIsOgham</a> (int code);
+int <a href="#xmlUCSIsOriya">xmlUCSIsOriya</a> (int code);
+int <a href="#xmlUCSIsLinearBIdeograms">xmlUCSIsLinearBIdeograms</a> (int code);
+int <a href="#xmlUCSIsBlock">xmlUCSIsBlock</a> (int code, <br/> const char * block);
+int <a href="#xmlUCSIsBopomofoExtended">xmlUCSIsBopomofoExtended</a> (int code);
+int <a href="#xmlUCSIsHangulJamo">xmlUCSIsHangulJamo</a> (int code);
+int <a href="#xmlUCSIsTagbanwa">xmlUCSIsTagbanwa</a> (int code);
+int <a href="#xmlUCSIsGeneralPunctuation">xmlUCSIsGeneralPunctuation</a> (int code);
+int <a href="#xmlUCSIsCyrillic">xmlUCSIsCyrillic</a> (int code);
+int <a href="#xmlUCSIsArrows">xmlUCSIsArrows</a> (int code);
+int <a href="#xmlUCSIsControlPictures">xmlUCSIsControlPictures</a> (int code);
+int <a href="#xmlUCSIsCJKUnifiedIdeographs">xmlUCSIsCJKUnifiedIdeographs</a> (int code);
+int <a href="#xmlUCSIsCatNl">xmlUCSIsCatNl</a> (int code);
+int <a href="#xmlUCSIsCatNo">xmlUCSIsCatNo</a> (int code);
+int <a href="#xmlUCSIsYijingHexagramSymbols">xmlUCSIsYijingHexagramSymbols</a> (int code);
+int <a href="#xmlUCSIsVariationSelectorsSupplement">xmlUCSIsVariationSelectorsSupplement</a> (int code);
+int <a href="#xmlUCSIsBengali">xmlUCSIsBengali</a> (int code);
+int <a href="#xmlUCSIsPrivateUse">xmlUCSIsPrivateUse</a> (int code);
+int <a href="#xmlUCSIsMusicalSymbols">xmlUCSIsMusicalSymbols</a> (int code);
+int <a href="#xmlUCSIsMiscellaneousSymbols">xmlUCSIsMiscellaneousSymbols</a> (int code);
+int <a href="#xmlUCSIsCJKCompatibility">xmlUCSIsCJKCompatibility</a> (int code);
+int <a href="#xmlUCSIsAegeanNumbers">xmlUCSIsAegeanNumbers</a> (int code);
+int <a href="#xmlUCSIsDevanagari">xmlUCSIsDevanagari</a> (int code);
+int <a href="#xmlUCSIsSupplementalArrowsA">xmlUCSIsSupplementalArrowsA</a> (int code);
+int <a href="#xmlUCSIsSupplementalArrowsB">xmlUCSIsSupplementalArrowsB</a> (int code);
+int <a href="#xmlUCSIsNumberForms">xmlUCSIsNumberForms</a> (int code);
+int <a href="#xmlUCSIsSpacingModifierLetters">xmlUCSIsSpacingModifierLetters</a> (int code);
+int <a href="#xmlUCSIsOpticalCharacterRecognition">xmlUCSIsOpticalCharacterRecognition</a> (int code);
+int <a href="#xmlUCSIsCatPc">xmlUCSIsCatPc</a> (int code);
+int <a href="#xmlUCSIsCatPf">xmlUCSIsCatPf</a> (int code);
+int <a href="#xmlUCSIsCyrillicSupplement">xmlUCSIsCyrillicSupplement</a> (int code);
+int <a href="#xmlUCSIsCatPd">xmlUCSIsCatPd</a> (int code);
+int <a href="#xmlUCSIsCatPi">xmlUCSIsCatPi</a> (int code);
+int <a href="#xmlUCSIsCatPo">xmlUCSIsCatPo</a> (int code);
+int <a href="#xmlUCSIsHighPrivateUseSurrogates">xmlUCSIsHighPrivateUseSurrogates</a> (int code);
+int <a href="#xmlUCSIsLatinExtendedAdditional">xmlUCSIsLatinExtendedAdditional</a> (int code);
+int <a href="#xmlUCSIsCatPs">xmlUCSIsCatPs</a> (int code);
+int <a href="#xmlUCSIsHighSurrogates">xmlUCSIsHighSurrogates</a> (int code);
+int <a href="#xmlUCSIsLao">xmlUCSIsLao</a> (int code);
+int <a href="#xmlUCSIsBraillePatterns">xmlUCSIsBraillePatterns</a> (int code);
+int <a href="#xmlUCSIsDeseret">xmlUCSIsDeseret</a> (int code);
+int <a href="#xmlUCSIsEnclosedAlphanumerics">xmlUCSIsEnclosedAlphanumerics</a> (int code);
+int <a href="#xmlUCSIsCombiningDiacriticalMarks">xmlUCSIsCombiningDiacriticalMarks</a> (int code);
+int <a href="#xmlUCSIsIdeographicDescriptionCharacters">xmlUCSIsIdeographicDescriptionCharacters</a> (int code);
+int <a href="#xmlUCSIsPrivateUseArea">xmlUCSIsPrivateUseArea</a> (int code);
+int <a href="#xmlUCSIsCat">xmlUCSIsCat</a> (int code, <br/> const char * cat);
+int <a href="#xmlUCSIsCatLu">xmlUCSIsCatLu</a> (int code);
+int <a href="#xmlUCSIsCatLt">xmlUCSIsCatLt</a> (int code);
+int <a href="#xmlUCSIsYiSyllables">xmlUCSIsYiSyllables</a> (int code);
+int <a href="#xmlUCSIsShavian">xmlUCSIsShavian</a> (int code);
+int <a href="#xmlUCSIsCatLo">xmlUCSIsCatLo</a> (int code);
+int <a href="#xmlUCSIsCatLm">xmlUCSIsCatLm</a> (int code);
+int <a href="#xmlUCSIsCatLl">xmlUCSIsCatLl</a> (int code);
+int <a href="#xmlUCSIsMiscellaneousTechnical">xmlUCSIsMiscellaneousTechnical</a> (int code);
+int <a href="#xmlUCSIsUgaritic">xmlUCSIsUgaritic</a> (int code);
+int <a href="#xmlUCSIsCJKCompatibilityIdeographsSupplement">xmlUCSIsCJKCompatibilityIdeographsSupplement</a> (int code);
+int <a href="#xmlUCSIsCypriotSyllabary">xmlUCSIsCypriotSyllabary</a> (int code);
+int <a href="#xmlUCSIsTamil">xmlUCSIsTamil</a> (int code);
+int <a href="#xmlUCSIsCatC">xmlUCSIsCatC</a> (int code);
+int <a href="#xmlUCSIsCatN">xmlUCSIsCatN</a> (int code);
+int <a href="#xmlUCSIsCatL">xmlUCSIsCatL</a> (int code);
+int <a href="#xmlUCSIsCatM">xmlUCSIsCatM</a> (int code);
+int <a href="#xmlUCSIsUnifiedCanadianAboriginalSyllabics">xmlUCSIsUnifiedCanadianAboriginalSyllabics</a> (int code);
+int <a href="#xmlUCSIsCatS">xmlUCSIsCatS</a> (int code);
+int <a href="#xmlUCSIsCatP">xmlUCSIsCatP</a> (int code);
+int <a href="#xmlUCSIsSinhala">xmlUCSIsSinhala</a> (int code);
+int <a href="#xmlUCSIsGeorgian">xmlUCSIsGeorgian</a> (int code);
+int <a href="#xmlUCSIsCatZ">xmlUCSIsCatZ</a> (int code);
+int <a href="#xmlUCSIsIPAExtensions">xmlUCSIsIPAExtensions</a> (int code);
+int <a href="#xmlUCSIsKangxiRadicals">xmlUCSIsKangxiRadicals</a> (int code);
+int <a href="#xmlUCSIsGreek">xmlUCSIsGreek</a> (int code);
+int <a href="#xmlUCSIsCatPe">xmlUCSIsCatPe</a> (int code);
+int <a href="#xmlUCSIsHanunoo">xmlUCSIsHanunoo</a> (int code);
+int <a href="#xmlUCSIsArmenian">xmlUCSIsArmenian</a> (int code);
+int <a href="#xmlUCSIsSupplementaryPrivateUseAreaB">xmlUCSIsSupplementaryPrivateUseAreaB</a> (int code);
+int <a href="#xmlUCSIsSupplementaryPrivateUseAreaA">xmlUCSIsSupplementaryPrivateUseAreaA</a> (int code);
+int <a href="#xmlUCSIsKatakanaPhoneticExtensions">xmlUCSIsKatakanaPhoneticExtensions</a> (int code);
+int <a href="#xmlUCSIsLetterlikeSymbols">xmlUCSIsLetterlikeSymbols</a> (int code);
+int <a href="#xmlUCSIsPhoneticExtensions">xmlUCSIsPhoneticExtensions</a> (int code);
+int <a href="#xmlUCSIsArabic">xmlUCSIsArabic</a> (int code);
+int <a href="#xmlUCSIsHebrew">xmlUCSIsHebrew</a> (int code);
+int <a href="#xmlUCSIsOldItalic">xmlUCSIsOldItalic</a> (int code);
+int <a href="#xmlUCSIsArabicPresentationFormsA">xmlUCSIsArabicPresentationFormsA</a> (int code);
+int <a href="#xmlUCSIsCatZp">xmlUCSIsCatZp</a> (int code);
+int <a href="#xmlUCSIsCatZs">xmlUCSIsCatZs</a> (int code);
+int <a href="#xmlUCSIsArabicPresentationFormsB">xmlUCSIsArabicPresentationFormsB</a> (int code);
+int <a href="#xmlUCSIsGeometricShapes">xmlUCSIsGeometricShapes</a> (int code);
+int <a href="#xmlUCSIsCatZl">xmlUCSIsCatZl</a> (int code);
+int <a href="#xmlUCSIsTagalog">xmlUCSIsTagalog</a> (int code);
+int <a href="#xmlUCSIsSpecials">xmlUCSIsSpecials</a> (int code);
+int <a href="#xmlUCSIsGujarati">xmlUCSIsGujarati</a> (int code);
+int <a href="#xmlUCSIsKatakana">xmlUCSIsKatakana</a> (int code);
+int <a href="#xmlUCSIsHalfwidthandFullwidthForms">xmlUCSIsHalfwidthandFullwidthForms</a> (int code);
+int <a href="#xmlUCSIsLatinExtendedB">xmlUCSIsLatinExtendedB</a> (int code);
+int <a href="#xmlUCSIsLatinExtendedA">xmlUCSIsLatinExtendedA</a> (int code);
+int <a href="#xmlUCSIsBuhid">xmlUCSIsBuhid</a> (int code);
+int <a href="#xmlUCSIsMiscellaneousSymbolsandArrows">xmlUCSIsMiscellaneousSymbolsandArrows</a> (int code);
+int <a href="#xmlUCSIsTaiLe">xmlUCSIsTaiLe</a> (int code);
+int <a href="#xmlUCSIsCJKSymbolsandPunctuation">xmlUCSIsCJKSymbolsandPunctuation</a> (int code);
+int <a href="#xmlUCSIsTaiXuanJingSymbols">xmlUCSIsTaiXuanJingSymbols</a> (int code);
+int <a href="#xmlUCSIsGurmukhi">xmlUCSIsGurmukhi</a> (int code);
+int <a href="#xmlUCSIsMathematicalOperators">xmlUCSIsMathematicalOperators</a> (int code);
+int <a href="#xmlUCSIsAlphabeticPresentationForms">xmlUCSIsAlphabeticPresentationForms</a> (int code);
+int <a href="#xmlUCSIsCurrencySymbols">xmlUCSIsCurrencySymbols</a> (int code);
+int <a href="#xmlUCSIsSupplementalMathematicalOperators">xmlUCSIsSupplementalMathematicalOperators</a> (int code);
+int <a href="#xmlUCSIsCJKUnifiedIdeographsExtensionA">xmlUCSIsCJKUnifiedIdeographsExtensionA</a> (int code);
+int <a href="#xmlUCSIsKanbun">xmlUCSIsKanbun</a> (int code);
+int <a href="#xmlUCSIsCJKUnifiedIdeographsExtensionB">xmlUCSIsCJKUnifiedIdeographsExtensionB</a> (int code);
+int <a href="#xmlUCSIsThai">xmlUCSIsThai</a> (int code);
+int <a href="#xmlUCSIsRunic">xmlUCSIsRunic</a> (int code);
+int <a href="#xmlUCSIsCatNd">xmlUCSIsCatNd</a> (int code);
+int <a href="#xmlUCSIsLatin1Supplement">xmlUCSIsLatin1Supplement</a> (int code);
+int <a href="#xmlUCSIsLinearBSyllabary">xmlUCSIsLinearBSyllabary</a> (int code);
+int <a href="#xmlUCSIsHiragana">xmlUCSIsHiragana</a> (int code);
+int <a href="#xmlUCSIsMiscellaneousMathematicalSymbolsB">xmlUCSIsMiscellaneousMathematicalSymbolsB</a> (int code);
+int <a href="#xmlUCSIsMiscellaneousMathematicalSymbolsA">xmlUCSIsMiscellaneousMathematicalSymbolsA</a> (int code);
+int <a href="#xmlUCSIsCatMn">xmlUCSIsCatMn</a> (int code);
+int <a href="#xmlUCSIsVariationSelectors">xmlUCSIsVariationSelectors</a> (int code);
+int <a href="#xmlUCSIsCatMc">xmlUCSIsCatMc</a> (int code);
+int <a href="#xmlUCSIsCatMe">xmlUCSIsCatMe</a> (int code);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsAegeanNumbers"/>xmlUCSIsAegeanNumbers ()</h3><pre class="programlisting">int xmlUCSIsAegeanNumbers (int code)<br/>
+</pre><p>Check whether the character is part of AegeanNumbers UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsAlphabeticPresentationForms"/>xmlUCSIsAlphabeticPresentationForms ()</h3><pre class="programlisting">int xmlUCSIsAlphabeticPresentationForms (int code)<br/>
+</pre><p>Check whether the character is part of AlphabeticPresentationForms UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsArabic"/>xmlUCSIsArabic ()</h3><pre class="programlisting">int xmlUCSIsArabic (int code)<br/>
+</pre><p>Check whether the character is part of Arabic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsArabicPresentationFormsA"/>xmlUCSIsArabicPresentationFormsA ()</h3><pre class="programlisting">int xmlUCSIsArabicPresentationFormsA (int code)<br/>
+</pre><p>Check whether the character is part of ArabicPresentationForms-A UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsArabicPresentationFormsB"/>xmlUCSIsArabicPresentationFormsB ()</h3><pre class="programlisting">int xmlUCSIsArabicPresentationFormsB (int code)<br/>
+</pre><p>Check whether the character is part of ArabicPresentationForms-B UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsArmenian"/>xmlUCSIsArmenian ()</h3><pre class="programlisting">int xmlUCSIsArmenian (int code)<br/>
+</pre><p>Check whether the character is part of Armenian UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsArrows"/>xmlUCSIsArrows ()</h3><pre class="programlisting">int xmlUCSIsArrows (int code)<br/>
+</pre><p>Check whether the character is part of Arrows UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsBasicLatin"/>xmlUCSIsBasicLatin ()</h3><pre class="programlisting">int xmlUCSIsBasicLatin (int code)<br/>
+</pre><p>Check whether the character is part of BasicLatin UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsBengali"/>xmlUCSIsBengali ()</h3><pre class="programlisting">int xmlUCSIsBengali (int code)<br/>
+</pre><p>Check whether the character is part of Bengali UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsBlock"/>xmlUCSIsBlock ()</h3><pre class="programlisting">int xmlUCSIsBlock (int code, <br/> const char * block)<br/>
+</pre><p>Check whether the character is part of the UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>block</tt></i>:</span></td><td>UCS block name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 on unknown block</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsBlockElements"/>xmlUCSIsBlockElements ()</h3><pre class="programlisting">int xmlUCSIsBlockElements (int code)<br/>
+</pre><p>Check whether the character is part of BlockElements UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsBopomofo"/>xmlUCSIsBopomofo ()</h3><pre class="programlisting">int xmlUCSIsBopomofo (int code)<br/>
+</pre><p>Check whether the character is part of Bopomofo UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsBopomofoExtended"/>xmlUCSIsBopomofoExtended ()</h3><pre class="programlisting">int xmlUCSIsBopomofoExtended (int code)<br/>
+</pre><p>Check whether the character is part of BopomofoExtended UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsBoxDrawing"/>xmlUCSIsBoxDrawing ()</h3><pre class="programlisting">int xmlUCSIsBoxDrawing (int code)<br/>
+</pre><p>Check whether the character is part of BoxDrawing UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsBraillePatterns"/>xmlUCSIsBraillePatterns ()</h3><pre class="programlisting">int xmlUCSIsBraillePatterns (int code)<br/>
+</pre><p>Check whether the character is part of BraillePatterns UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsBuhid"/>xmlUCSIsBuhid ()</h3><pre class="programlisting">int xmlUCSIsBuhid (int code)<br/>
+</pre><p>Check whether the character is part of Buhid UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsByzantineMusicalSymbols"/>xmlUCSIsByzantineMusicalSymbols ()</h3><pre class="programlisting">int xmlUCSIsByzantineMusicalSymbols (int code)<br/>
+</pre><p>Check whether the character is part of ByzantineMusicalSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCJKCompatibility"/>xmlUCSIsCJKCompatibility ()</h3><pre class="programlisting">int xmlUCSIsCJKCompatibility (int code)<br/>
+</pre><p>Check whether the character is part of CJKCompatibility UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCJKCompatibilityForms"/>xmlUCSIsCJKCompatibilityForms ()</h3><pre class="programlisting">int xmlUCSIsCJKCompatibilityForms (int code)<br/>
+</pre><p>Check whether the character is part of CJKCompatibilityForms UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCJKCompatibilityIdeographs"/>xmlUCSIsCJKCompatibilityIdeographs ()</h3><pre class="programlisting">int xmlUCSIsCJKCompatibilityIdeographs (int code)<br/>
+</pre><p>Check whether the character is part of CJKCompatibilityIdeographs UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCJKCompatibilityIdeographsSupplement"/>xmlUCSIsCJKCompatibilityIdeographsSupplement ()</h3><pre class="programlisting">int xmlUCSIsCJKCompatibilityIdeographsSupplement (int code)<br/>
+</pre><p>Check whether the character is part of CJKCompatibilityIdeographsSupplement UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCJKRadicalsSupplement"/>xmlUCSIsCJKRadicalsSupplement ()</h3><pre class="programlisting">int xmlUCSIsCJKRadicalsSupplement (int code)<br/>
+</pre><p>Check whether the character is part of CJKRadicalsSupplement UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCJKSymbolsandPunctuation"/>xmlUCSIsCJKSymbolsandPunctuation ()</h3><pre class="programlisting">int xmlUCSIsCJKSymbolsandPunctuation (int code)<br/>
+</pre><p>Check whether the character is part of CJKSymbolsandPunctuation UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCJKUnifiedIdeographs"/>xmlUCSIsCJKUnifiedIdeographs ()</h3><pre class="programlisting">int xmlUCSIsCJKUnifiedIdeographs (int code)<br/>
+</pre><p>Check whether the character is part of CJKUnifiedIdeographs UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCJKUnifiedIdeographsExtensionA"/>xmlUCSIsCJKUnifiedIdeographsExtensionA ()</h3><pre class="programlisting">int xmlUCSIsCJKUnifiedIdeographsExtensionA (int code)<br/>
+</pre><p>Check whether the character is part of CJKUnifiedIdeographsExtensionA UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCJKUnifiedIdeographsExtensionB"/>xmlUCSIsCJKUnifiedIdeographsExtensionB ()</h3><pre class="programlisting">int xmlUCSIsCJKUnifiedIdeographsExtensionB (int code)<br/>
+</pre><p>Check whether the character is part of CJKUnifiedIdeographsExtensionB UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCat"/>xmlUCSIsCat ()</h3><pre class="programlisting">int xmlUCSIsCat (int code, <br/> const char * cat)<br/>
+</pre><p>Check whether the character is part of the UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>cat</tt></i>:</span></td><td>UCS Category name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 on unknown category</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatC"/>xmlUCSIsCatC ()</h3><pre class="programlisting">int xmlUCSIsCatC (int code)<br/>
+</pre><p>Check whether the character is part of C UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatCc"/>xmlUCSIsCatCc ()</h3><pre class="programlisting">int xmlUCSIsCatCc (int code)<br/>
+</pre><p>Check whether the character is part of Cc UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatCf"/>xmlUCSIsCatCf ()</h3><pre class="programlisting">int xmlUCSIsCatCf (int code)<br/>
+</pre><p>Check whether the character is part of Cf UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatCo"/>xmlUCSIsCatCo ()</h3><pre class="programlisting">int xmlUCSIsCatCo (int code)<br/>
+</pre><p>Check whether the character is part of Co UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatCs"/>xmlUCSIsCatCs ()</h3><pre class="programlisting">int xmlUCSIsCatCs (int code)<br/>
+</pre><p>Check whether the character is part of Cs UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatL"/>xmlUCSIsCatL ()</h3><pre class="programlisting">int xmlUCSIsCatL (int code)<br/>
+</pre><p>Check whether the character is part of L UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatLl"/>xmlUCSIsCatLl ()</h3><pre class="programlisting">int xmlUCSIsCatLl (int code)<br/>
+</pre><p>Check whether the character is part of Ll UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatLm"/>xmlUCSIsCatLm ()</h3><pre class="programlisting">int xmlUCSIsCatLm (int code)<br/>
+</pre><p>Check whether the character is part of Lm UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatLo"/>xmlUCSIsCatLo ()</h3><pre class="programlisting">int xmlUCSIsCatLo (int code)<br/>
+</pre><p>Check whether the character is part of Lo UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatLt"/>xmlUCSIsCatLt ()</h3><pre class="programlisting">int xmlUCSIsCatLt (int code)<br/>
+</pre><p>Check whether the character is part of Lt UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatLu"/>xmlUCSIsCatLu ()</h3><pre class="programlisting">int xmlUCSIsCatLu (int code)<br/>
+</pre><p>Check whether the character is part of Lu UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatM"/>xmlUCSIsCatM ()</h3><pre class="programlisting">int xmlUCSIsCatM (int code)<br/>
+</pre><p>Check whether the character is part of M UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatMc"/>xmlUCSIsCatMc ()</h3><pre class="programlisting">int xmlUCSIsCatMc (int code)<br/>
+</pre><p>Check whether the character is part of Mc UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatMe"/>xmlUCSIsCatMe ()</h3><pre class="programlisting">int xmlUCSIsCatMe (int code)<br/>
+</pre><p>Check whether the character is part of Me UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatMn"/>xmlUCSIsCatMn ()</h3><pre class="programlisting">int xmlUCSIsCatMn (int code)<br/>
+</pre><p>Check whether the character is part of Mn UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatN"/>xmlUCSIsCatN ()</h3><pre class="programlisting">int xmlUCSIsCatN (int code)<br/>
+</pre><p>Check whether the character is part of N UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatNd"/>xmlUCSIsCatNd ()</h3><pre class="programlisting">int xmlUCSIsCatNd (int code)<br/>
+</pre><p>Check whether the character is part of Nd UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatNl"/>xmlUCSIsCatNl ()</h3><pre class="programlisting">int xmlUCSIsCatNl (int code)<br/>
+</pre><p>Check whether the character is part of Nl UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatNo"/>xmlUCSIsCatNo ()</h3><pre class="programlisting">int xmlUCSIsCatNo (int code)<br/>
+</pre><p>Check whether the character is part of No UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatP"/>xmlUCSIsCatP ()</h3><pre class="programlisting">int xmlUCSIsCatP (int code)<br/>
+</pre><p>Check whether the character is part of P UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatPc"/>xmlUCSIsCatPc ()</h3><pre class="programlisting">int xmlUCSIsCatPc (int code)<br/>
+</pre><p>Check whether the character is part of Pc UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatPd"/>xmlUCSIsCatPd ()</h3><pre class="programlisting">int xmlUCSIsCatPd (int code)<br/>
+</pre><p>Check whether the character is part of Pd UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatPe"/>xmlUCSIsCatPe ()</h3><pre class="programlisting">int xmlUCSIsCatPe (int code)<br/>
+</pre><p>Check whether the character is part of Pe UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatPf"/>xmlUCSIsCatPf ()</h3><pre class="programlisting">int xmlUCSIsCatPf (int code)<br/>
+</pre><p>Check whether the character is part of Pf UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatPi"/>xmlUCSIsCatPi ()</h3><pre class="programlisting">int xmlUCSIsCatPi (int code)<br/>
+</pre><p>Check whether the character is part of Pi UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatPo"/>xmlUCSIsCatPo ()</h3><pre class="programlisting">int xmlUCSIsCatPo (int code)<br/>
+</pre><p>Check whether the character is part of Po UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatPs"/>xmlUCSIsCatPs ()</h3><pre class="programlisting">int xmlUCSIsCatPs (int code)<br/>
+</pre><p>Check whether the character is part of Ps UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatS"/>xmlUCSIsCatS ()</h3><pre class="programlisting">int xmlUCSIsCatS (int code)<br/>
+</pre><p>Check whether the character is part of S UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatSc"/>xmlUCSIsCatSc ()</h3><pre class="programlisting">int xmlUCSIsCatSc (int code)<br/>
+</pre><p>Check whether the character is part of Sc UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatSk"/>xmlUCSIsCatSk ()</h3><pre class="programlisting">int xmlUCSIsCatSk (int code)<br/>
+</pre><p>Check whether the character is part of Sk UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatSm"/>xmlUCSIsCatSm ()</h3><pre class="programlisting">int xmlUCSIsCatSm (int code)<br/>
+</pre><p>Check whether the character is part of Sm UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatSo"/>xmlUCSIsCatSo ()</h3><pre class="programlisting">int xmlUCSIsCatSo (int code)<br/>
+</pre><p>Check whether the character is part of So UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatZ"/>xmlUCSIsCatZ ()</h3><pre class="programlisting">int xmlUCSIsCatZ (int code)<br/>
+</pre><p>Check whether the character is part of Z UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatZl"/>xmlUCSIsCatZl ()</h3><pre class="programlisting">int xmlUCSIsCatZl (int code)<br/>
+</pre><p>Check whether the character is part of Zl UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatZp"/>xmlUCSIsCatZp ()</h3><pre class="programlisting">int xmlUCSIsCatZp (int code)<br/>
+</pre><p>Check whether the character is part of Zp UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCatZs"/>xmlUCSIsCatZs ()</h3><pre class="programlisting">int xmlUCSIsCatZs (int code)<br/>
+</pre><p>Check whether the character is part of Zs UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCherokee"/>xmlUCSIsCherokee ()</h3><pre class="programlisting">int xmlUCSIsCherokee (int code)<br/>
+</pre><p>Check whether the character is part of Cherokee UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCombiningDiacriticalMarks"/>xmlUCSIsCombiningDiacriticalMarks ()</h3><pre class="programlisting">int xmlUCSIsCombiningDiacriticalMarks (int code)<br/>
+</pre><p>Check whether the character is part of CombiningDiacriticalMarks UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCombiningDiacriticalMarksforSymbols"/>xmlUCSIsCombiningDiacriticalMarksforSymbols ()</h3><pre class="programlisting">int xmlUCSIsCombiningDiacriticalMarksforSymbols (int code)<br/>
+</pre><p>Check whether the character is part of CombiningDiacriticalMarksforSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCombiningHalfMarks"/>xmlUCSIsCombiningHalfMarks ()</h3><pre class="programlisting">int xmlUCSIsCombiningHalfMarks (int code)<br/>
+</pre><p>Check whether the character is part of CombiningHalfMarks UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCombiningMarksforSymbols"/>xmlUCSIsCombiningMarksforSymbols ()</h3><pre class="programlisting">int xmlUCSIsCombiningMarksforSymbols (int code)<br/>
+</pre><p>Check whether the character is part of CombiningMarksforSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsControlPictures"/>xmlUCSIsControlPictures ()</h3><pre class="programlisting">int xmlUCSIsControlPictures (int code)<br/>
+</pre><p>Check whether the character is part of ControlPictures UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCurrencySymbols"/>xmlUCSIsCurrencySymbols ()</h3><pre class="programlisting">int xmlUCSIsCurrencySymbols (int code)<br/>
+</pre><p>Check whether the character is part of CurrencySymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCypriotSyllabary"/>xmlUCSIsCypriotSyllabary ()</h3><pre class="programlisting">int xmlUCSIsCypriotSyllabary (int code)<br/>
+</pre><p>Check whether the character is part of CypriotSyllabary UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCyrillic"/>xmlUCSIsCyrillic ()</h3><pre class="programlisting">int xmlUCSIsCyrillic (int code)<br/>
+</pre><p>Check whether the character is part of Cyrillic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsCyrillicSupplement"/>xmlUCSIsCyrillicSupplement ()</h3><pre class="programlisting">int xmlUCSIsCyrillicSupplement (int code)<br/>
+</pre><p>Check whether the character is part of CyrillicSupplement UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsDeseret"/>xmlUCSIsDeseret ()</h3><pre class="programlisting">int xmlUCSIsDeseret (int code)<br/>
+</pre><p>Check whether the character is part of Deseret UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsDevanagari"/>xmlUCSIsDevanagari ()</h3><pre class="programlisting">int xmlUCSIsDevanagari (int code)<br/>
+</pre><p>Check whether the character is part of Devanagari UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsDingbats"/>xmlUCSIsDingbats ()</h3><pre class="programlisting">int xmlUCSIsDingbats (int code)<br/>
+</pre><p>Check whether the character is part of Dingbats UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsEnclosedAlphanumerics"/>xmlUCSIsEnclosedAlphanumerics ()</h3><pre class="programlisting">int xmlUCSIsEnclosedAlphanumerics (int code)<br/>
+</pre><p>Check whether the character is part of EnclosedAlphanumerics UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsEnclosedCJKLettersandMonths"/>xmlUCSIsEnclosedCJKLettersandMonths ()</h3><pre class="programlisting">int xmlUCSIsEnclosedCJKLettersandMonths (int code)<br/>
+</pre><p>Check whether the character is part of EnclosedCJKLettersandMonths UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsEthiopic"/>xmlUCSIsEthiopic ()</h3><pre class="programlisting">int xmlUCSIsEthiopic (int code)<br/>
+</pre><p>Check whether the character is part of Ethiopic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsGeneralPunctuation"/>xmlUCSIsGeneralPunctuation ()</h3><pre class="programlisting">int xmlUCSIsGeneralPunctuation (int code)<br/>
+</pre><p>Check whether the character is part of GeneralPunctuation UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsGeometricShapes"/>xmlUCSIsGeometricShapes ()</h3><pre class="programlisting">int xmlUCSIsGeometricShapes (int code)<br/>
+</pre><p>Check whether the character is part of GeometricShapes UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsGeorgian"/>xmlUCSIsGeorgian ()</h3><pre class="programlisting">int xmlUCSIsGeorgian (int code)<br/>
+</pre><p>Check whether the character is part of Georgian UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsGothic"/>xmlUCSIsGothic ()</h3><pre class="programlisting">int xmlUCSIsGothic (int code)<br/>
+</pre><p>Check whether the character is part of Gothic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsGreek"/>xmlUCSIsGreek ()</h3><pre class="programlisting">int xmlUCSIsGreek (int code)<br/>
+</pre><p>Check whether the character is part of Greek UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsGreekExtended"/>xmlUCSIsGreekExtended ()</h3><pre class="programlisting">int xmlUCSIsGreekExtended (int code)<br/>
+</pre><p>Check whether the character is part of GreekExtended UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsGreekandCoptic"/>xmlUCSIsGreekandCoptic ()</h3><pre class="programlisting">int xmlUCSIsGreekandCoptic (int code)<br/>
+</pre><p>Check whether the character is part of GreekandCoptic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsGujarati"/>xmlUCSIsGujarati ()</h3><pre class="programlisting">int xmlUCSIsGujarati (int code)<br/>
+</pre><p>Check whether the character is part of Gujarati UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsGurmukhi"/>xmlUCSIsGurmukhi ()</h3><pre class="programlisting">int xmlUCSIsGurmukhi (int code)<br/>
+</pre><p>Check whether the character is part of Gurmukhi UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsHalfwidthandFullwidthForms"/>xmlUCSIsHalfwidthandFullwidthForms ()</h3><pre class="programlisting">int xmlUCSIsHalfwidthandFullwidthForms (int code)<br/>
+</pre><p>Check whether the character is part of HalfwidthandFullwidthForms UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsHangulCompatibilityJamo"/>xmlUCSIsHangulCompatibilityJamo ()</h3><pre class="programlisting">int xmlUCSIsHangulCompatibilityJamo (int code)<br/>
+</pre><p>Check whether the character is part of HangulCompatibilityJamo UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsHangulJamo"/>xmlUCSIsHangulJamo ()</h3><pre class="programlisting">int xmlUCSIsHangulJamo (int code)<br/>
+</pre><p>Check whether the character is part of HangulJamo UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsHangulSyllables"/>xmlUCSIsHangulSyllables ()</h3><pre class="programlisting">int xmlUCSIsHangulSyllables (int code)<br/>
+</pre><p>Check whether the character is part of HangulSyllables UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsHanunoo"/>xmlUCSIsHanunoo ()</h3><pre class="programlisting">int xmlUCSIsHanunoo (int code)<br/>
+</pre><p>Check whether the character is part of Hanunoo UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsHebrew"/>xmlUCSIsHebrew ()</h3><pre class="programlisting">int xmlUCSIsHebrew (int code)<br/>
+</pre><p>Check whether the character is part of Hebrew UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsHighPrivateUseSurrogates"/>xmlUCSIsHighPrivateUseSurrogates ()</h3><pre class="programlisting">int xmlUCSIsHighPrivateUseSurrogates (int code)<br/>
+</pre><p>Check whether the character is part of HighPrivateUseSurrogates UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsHighSurrogates"/>xmlUCSIsHighSurrogates ()</h3><pre class="programlisting">int xmlUCSIsHighSurrogates (int code)<br/>
+</pre><p>Check whether the character is part of HighSurrogates UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsHiragana"/>xmlUCSIsHiragana ()</h3><pre class="programlisting">int xmlUCSIsHiragana (int code)<br/>
+</pre><p>Check whether the character is part of Hiragana UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsIPAExtensions"/>xmlUCSIsIPAExtensions ()</h3><pre class="programlisting">int xmlUCSIsIPAExtensions (int code)<br/>
+</pre><p>Check whether the character is part of IPAExtensions UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsIdeographicDescriptionCharacters"/>xmlUCSIsIdeographicDescriptionCharacters ()</h3><pre class="programlisting">int xmlUCSIsIdeographicDescriptionCharacters (int code)<br/>
+</pre><p>Check whether the character is part of IdeographicDescriptionCharacters UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsKanbun"/>xmlUCSIsKanbun ()</h3><pre class="programlisting">int xmlUCSIsKanbun (int code)<br/>
+</pre><p>Check whether the character is part of Kanbun UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsKangxiRadicals"/>xmlUCSIsKangxiRadicals ()</h3><pre class="programlisting">int xmlUCSIsKangxiRadicals (int code)<br/>
+</pre><p>Check whether the character is part of KangxiRadicals UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsKannada"/>xmlUCSIsKannada ()</h3><pre class="programlisting">int xmlUCSIsKannada (int code)<br/>
+</pre><p>Check whether the character is part of Kannada UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsKatakana"/>xmlUCSIsKatakana ()</h3><pre class="programlisting">int xmlUCSIsKatakana (int code)<br/>
+</pre><p>Check whether the character is part of Katakana UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsKatakanaPhoneticExtensions"/>xmlUCSIsKatakanaPhoneticExtensions ()</h3><pre class="programlisting">int xmlUCSIsKatakanaPhoneticExtensions (int code)<br/>
+</pre><p>Check whether the character is part of KatakanaPhoneticExtensions UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsKhmer"/>xmlUCSIsKhmer ()</h3><pre class="programlisting">int xmlUCSIsKhmer (int code)<br/>
+</pre><p>Check whether the character is part of Khmer UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsKhmerSymbols"/>xmlUCSIsKhmerSymbols ()</h3><pre class="programlisting">int xmlUCSIsKhmerSymbols (int code)<br/>
+</pre><p>Check whether the character is part of KhmerSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsLao"/>xmlUCSIsLao ()</h3><pre class="programlisting">int xmlUCSIsLao (int code)<br/>
+</pre><p>Check whether the character is part of Lao UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsLatin1Supplement"/>xmlUCSIsLatin1Supplement ()</h3><pre class="programlisting">int xmlUCSIsLatin1Supplement (int code)<br/>
+</pre><p>Check whether the character is part of Latin-1Supplement UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsLatinExtendedA"/>xmlUCSIsLatinExtendedA ()</h3><pre class="programlisting">int xmlUCSIsLatinExtendedA (int code)<br/>
+</pre><p>Check whether the character is part of LatinExtended-A UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsLatinExtendedAdditional"/>xmlUCSIsLatinExtendedAdditional ()</h3><pre class="programlisting">int xmlUCSIsLatinExtendedAdditional (int code)<br/>
+</pre><p>Check whether the character is part of LatinExtendedAdditional UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsLatinExtendedB"/>xmlUCSIsLatinExtendedB ()</h3><pre class="programlisting">int xmlUCSIsLatinExtendedB (int code)<br/>
+</pre><p>Check whether the character is part of LatinExtended-B UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsLetterlikeSymbols"/>xmlUCSIsLetterlikeSymbols ()</h3><pre class="programlisting">int xmlUCSIsLetterlikeSymbols (int code)<br/>
+</pre><p>Check whether the character is part of LetterlikeSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsLimbu"/>xmlUCSIsLimbu ()</h3><pre class="programlisting">int xmlUCSIsLimbu (int code)<br/>
+</pre><p>Check whether the character is part of Limbu UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsLinearBIdeograms"/>xmlUCSIsLinearBIdeograms ()</h3><pre class="programlisting">int xmlUCSIsLinearBIdeograms (int code)<br/>
+</pre><p>Check whether the character is part of LinearBIdeograms UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsLinearBSyllabary"/>xmlUCSIsLinearBSyllabary ()</h3><pre class="programlisting">int xmlUCSIsLinearBSyllabary (int code)<br/>
+</pre><p>Check whether the character is part of LinearBSyllabary UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsLowSurrogates"/>xmlUCSIsLowSurrogates ()</h3><pre class="programlisting">int xmlUCSIsLowSurrogates (int code)<br/>
+</pre><p>Check whether the character is part of LowSurrogates UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMalayalam"/>xmlUCSIsMalayalam ()</h3><pre class="programlisting">int xmlUCSIsMalayalam (int code)<br/>
+</pre><p>Check whether the character is part of Malayalam UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMathematicalAlphanumericSymbols"/>xmlUCSIsMathematicalAlphanumericSymbols ()</h3><pre class="programlisting">int xmlUCSIsMathematicalAlphanumericSymbols (int code)<br/>
+</pre><p>Check whether the character is part of MathematicalAlphanumericSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMathematicalOperators"/>xmlUCSIsMathematicalOperators ()</h3><pre class="programlisting">int xmlUCSIsMathematicalOperators (int code)<br/>
+</pre><p>Check whether the character is part of MathematicalOperators UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMiscellaneousMathematicalSymbolsA"/>xmlUCSIsMiscellaneousMathematicalSymbolsA ()</h3><pre class="programlisting">int xmlUCSIsMiscellaneousMathematicalSymbolsA (int code)<br/>
+</pre><p>Check whether the character is part of MiscellaneousMathematicalSymbols-A UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMiscellaneousMathematicalSymbolsB"/>xmlUCSIsMiscellaneousMathematicalSymbolsB ()</h3><pre class="programlisting">int xmlUCSIsMiscellaneousMathematicalSymbolsB (int code)<br/>
+</pre><p>Check whether the character is part of MiscellaneousMathematicalSymbols-B UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMiscellaneousSymbols"/>xmlUCSIsMiscellaneousSymbols ()</h3><pre class="programlisting">int xmlUCSIsMiscellaneousSymbols (int code)<br/>
+</pre><p>Check whether the character is part of MiscellaneousSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMiscellaneousSymbolsandArrows"/>xmlUCSIsMiscellaneousSymbolsandArrows ()</h3><pre class="programlisting">int xmlUCSIsMiscellaneousSymbolsandArrows (int code)<br/>
+</pre><p>Check whether the character is part of MiscellaneousSymbolsandArrows UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMiscellaneousTechnical"/>xmlUCSIsMiscellaneousTechnical ()</h3><pre class="programlisting">int xmlUCSIsMiscellaneousTechnical (int code)<br/>
+</pre><p>Check whether the character is part of MiscellaneousTechnical UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMongolian"/>xmlUCSIsMongolian ()</h3><pre class="programlisting">int xmlUCSIsMongolian (int code)<br/>
+</pre><p>Check whether the character is part of Mongolian UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMusicalSymbols"/>xmlUCSIsMusicalSymbols ()</h3><pre class="programlisting">int xmlUCSIsMusicalSymbols (int code)<br/>
+</pre><p>Check whether the character is part of MusicalSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsMyanmar"/>xmlUCSIsMyanmar ()</h3><pre class="programlisting">int xmlUCSIsMyanmar (int code)<br/>
+</pre><p>Check whether the character is part of Myanmar UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsNumberForms"/>xmlUCSIsNumberForms ()</h3><pre class="programlisting">int xmlUCSIsNumberForms (int code)<br/>
+</pre><p>Check whether the character is part of NumberForms UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsOgham"/>xmlUCSIsOgham ()</h3><pre class="programlisting">int xmlUCSIsOgham (int code)<br/>
+</pre><p>Check whether the character is part of Ogham UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsOldItalic"/>xmlUCSIsOldItalic ()</h3><pre class="programlisting">int xmlUCSIsOldItalic (int code)<br/>
+</pre><p>Check whether the character is part of OldItalic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsOpticalCharacterRecognition"/>xmlUCSIsOpticalCharacterRecognition ()</h3><pre class="programlisting">int xmlUCSIsOpticalCharacterRecognition (int code)<br/>
+</pre><p>Check whether the character is part of OpticalCharacterRecognition UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsOriya"/>xmlUCSIsOriya ()</h3><pre class="programlisting">int xmlUCSIsOriya (int code)<br/>
+</pre><p>Check whether the character is part of Oriya UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsOsmanya"/>xmlUCSIsOsmanya ()</h3><pre class="programlisting">int xmlUCSIsOsmanya (int code)<br/>
+</pre><p>Check whether the character is part of Osmanya UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsPhoneticExtensions"/>xmlUCSIsPhoneticExtensions ()</h3><pre class="programlisting">int xmlUCSIsPhoneticExtensions (int code)<br/>
+</pre><p>Check whether the character is part of PhoneticExtensions UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsPrivateUse"/>xmlUCSIsPrivateUse ()</h3><pre class="programlisting">int xmlUCSIsPrivateUse (int code)<br/>
+</pre><p>Check whether the character is part of PrivateUse UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsPrivateUseArea"/>xmlUCSIsPrivateUseArea ()</h3><pre class="programlisting">int xmlUCSIsPrivateUseArea (int code)<br/>
+</pre><p>Check whether the character is part of PrivateUseArea UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsRunic"/>xmlUCSIsRunic ()</h3><pre class="programlisting">int xmlUCSIsRunic (int code)<br/>
+</pre><p>Check whether the character is part of Runic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsShavian"/>xmlUCSIsShavian ()</h3><pre class="programlisting">int xmlUCSIsShavian (int code)<br/>
+</pre><p>Check whether the character is part of Shavian UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSinhala"/>xmlUCSIsSinhala ()</h3><pre class="programlisting">int xmlUCSIsSinhala (int code)<br/>
+</pre><p>Check whether the character is part of Sinhala UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSmallFormVariants"/>xmlUCSIsSmallFormVariants ()</h3><pre class="programlisting">int xmlUCSIsSmallFormVariants (int code)<br/>
+</pre><p>Check whether the character is part of SmallFormVariants UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSpacingModifierLetters"/>xmlUCSIsSpacingModifierLetters ()</h3><pre class="programlisting">int xmlUCSIsSpacingModifierLetters (int code)<br/>
+</pre><p>Check whether the character is part of SpacingModifierLetters UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSpecials"/>xmlUCSIsSpecials ()</h3><pre class="programlisting">int xmlUCSIsSpecials (int code)<br/>
+</pre><p>Check whether the character is part of Specials UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSuperscriptsandSubscripts"/>xmlUCSIsSuperscriptsandSubscripts ()</h3><pre class="programlisting">int xmlUCSIsSuperscriptsandSubscripts (int code)<br/>
+</pre><p>Check whether the character is part of SuperscriptsandSubscripts UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSupplementalArrowsA"/>xmlUCSIsSupplementalArrowsA ()</h3><pre class="programlisting">int xmlUCSIsSupplementalArrowsA (int code)<br/>
+</pre><p>Check whether the character is part of SupplementalArrows-A UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSupplementalArrowsB"/>xmlUCSIsSupplementalArrowsB ()</h3><pre class="programlisting">int xmlUCSIsSupplementalArrowsB (int code)<br/>
+</pre><p>Check whether the character is part of SupplementalArrows-B UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSupplementalMathematicalOperators"/>xmlUCSIsSupplementalMathematicalOperators ()</h3><pre class="programlisting">int xmlUCSIsSupplementalMathematicalOperators (int code)<br/>
+</pre><p>Check whether the character is part of SupplementalMathematicalOperators UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSupplementaryPrivateUseAreaA"/>xmlUCSIsSupplementaryPrivateUseAreaA ()</h3><pre class="programlisting">int xmlUCSIsSupplementaryPrivateUseAreaA (int code)<br/>
+</pre><p>Check whether the character is part of SupplementaryPrivateUseArea-A UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSupplementaryPrivateUseAreaB"/>xmlUCSIsSupplementaryPrivateUseAreaB ()</h3><pre class="programlisting">int xmlUCSIsSupplementaryPrivateUseAreaB (int code)<br/>
+</pre><p>Check whether the character is part of SupplementaryPrivateUseArea-B UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsSyriac"/>xmlUCSIsSyriac ()</h3><pre class="programlisting">int xmlUCSIsSyriac (int code)<br/>
+</pre><p>Check whether the character is part of Syriac UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsTagalog"/>xmlUCSIsTagalog ()</h3><pre class="programlisting">int xmlUCSIsTagalog (int code)<br/>
+</pre><p>Check whether the character is part of Tagalog UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsTagbanwa"/>xmlUCSIsTagbanwa ()</h3><pre class="programlisting">int xmlUCSIsTagbanwa (int code)<br/>
+</pre><p>Check whether the character is part of Tagbanwa UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsTags"/>xmlUCSIsTags ()</h3><pre class="programlisting">int xmlUCSIsTags (int code)<br/>
+</pre><p>Check whether the character is part of Tags UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsTaiLe"/>xmlUCSIsTaiLe ()</h3><pre class="programlisting">int xmlUCSIsTaiLe (int code)<br/>
+</pre><p>Check whether the character is part of TaiLe UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsTaiXuanJingSymbols"/>xmlUCSIsTaiXuanJingSymbols ()</h3><pre class="programlisting">int xmlUCSIsTaiXuanJingSymbols (int code)<br/>
+</pre><p>Check whether the character is part of TaiXuanJingSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsTamil"/>xmlUCSIsTamil ()</h3><pre class="programlisting">int xmlUCSIsTamil (int code)<br/>
+</pre><p>Check whether the character is part of Tamil UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsTelugu"/>xmlUCSIsTelugu ()</h3><pre class="programlisting">int xmlUCSIsTelugu (int code)<br/>
+</pre><p>Check whether the character is part of Telugu UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsThaana"/>xmlUCSIsThaana ()</h3><pre class="programlisting">int xmlUCSIsThaana (int code)<br/>
+</pre><p>Check whether the character is part of Thaana UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsThai"/>xmlUCSIsThai ()</h3><pre class="programlisting">int xmlUCSIsThai (int code)<br/>
+</pre><p>Check whether the character is part of Thai UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsTibetan"/>xmlUCSIsTibetan ()</h3><pre class="programlisting">int xmlUCSIsTibetan (int code)<br/>
+</pre><p>Check whether the character is part of Tibetan UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsUgaritic"/>xmlUCSIsUgaritic ()</h3><pre class="programlisting">int xmlUCSIsUgaritic (int code)<br/>
+</pre><p>Check whether the character is part of Ugaritic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsUnifiedCanadianAboriginalSyllabics"/>xmlUCSIsUnifiedCanadianAboriginalSyllabics ()</h3><pre class="programlisting">int xmlUCSIsUnifiedCanadianAboriginalSyllabics (int code)<br/>
+</pre><p>Check whether the character is part of UnifiedCanadianAboriginalSyllabics UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsVariationSelectors"/>xmlUCSIsVariationSelectors ()</h3><pre class="programlisting">int xmlUCSIsVariationSelectors (int code)<br/>
+</pre><p>Check whether the character is part of VariationSelectors UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsVariationSelectorsSupplement"/>xmlUCSIsVariationSelectorsSupplement ()</h3><pre class="programlisting">int xmlUCSIsVariationSelectorsSupplement (int code)<br/>
+</pre><p>Check whether the character is part of VariationSelectorsSupplement UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsYiRadicals"/>xmlUCSIsYiRadicals ()</h3><pre class="programlisting">int xmlUCSIsYiRadicals (int code)<br/>
+</pre><p>Check whether the character is part of YiRadicals UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsYiSyllables"/>xmlUCSIsYiSyllables ()</h3><pre class="programlisting">int xmlUCSIsYiSyllables (int code)<br/>
+</pre><p>Check whether the character is part of YiSyllables UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlUCSIsYijingHexagramSymbols"/>xmlUCSIsYijingHexagramSymbols ()</h3><pre class="programlisting">int xmlUCSIsYijingHexagramSymbols (int code)<br/>
+</pre><p>Check whether the character is part of YijingHexagramSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlversion.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlversion.html
new file mode 100644
index 0000000..7b1d0e3
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlversion.html
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlversion: compile-time version informations</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlunicode.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xmlwriter.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlversion</span>
+ </h2>
+ <p>xmlversion - compile-time version informations</p>
+ <p>compile-time version informations for the XML library </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a>;
+#define <a href="#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a>;
+#define <a href="#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a>;
+#define <a href="#LIBXML_LZMA_ENABLED">LIBXML_LZMA_ENABLED</a>;
+#define <a href="#LIBXML_READER_ENABLED">LIBXML_READER_ENABLED</a>;
+#define <a href="#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a>;
+#define <a href="#LIBXML_DOTTED_VERSION">LIBXML_DOTTED_VERSION</a>;
+#define <a href="#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a>;
+#define <a href="#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a>;
+#define <a href="#LIBXML_XINCLUDE_ENABLED">LIBXML_XINCLUDE_ENABLED</a>;
+#define <a href="#ATTRIBUTE_UNUSED">ATTRIBUTE_UNUSED</a>;
+#define <a href="#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a>;
+#define <a href="#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a>;
+#define <a href="#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a>;
+#define <a href="#WITHOUT_TRIO">WITHOUT_TRIO</a>;
+#define <a href="#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a>;
+#define <a href="#LIBXML_HTTP_ENABLED">LIBXML_HTTP_ENABLED</a>;
+#define <a href="#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a>;
+#define <a href="#WITH_TRIO">WITH_TRIO</a>;
+#define <a href="#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a>;
+#define <a href="#LIBXML_VERSION">LIBXML_VERSION</a>;
+#define <a href="#LIBXML_XPTR_ENABLED">LIBXML_XPTR_ENABLED</a>;
+#define <a href="#LIBXML_VERSION_STRING">LIBXML_VERSION_STRING</a>;
+#define <a href="#LIBXML_CATALOG_ENABLED">LIBXML_CATALOG_ENABLED</a>;
+#define <a href="#LIBXML_ATTR_ALLOC_SIZE">LIBXML_ATTR_ALLOC_SIZE</a>;
+#define <a href="#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a>;
+#define <a href="#LIBXML_ICU_ENABLED">LIBXML_ICU_ENABLED</a>;
+#define <a href="#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a>;
+#define <a href="#LIBXML_ICONV_ENABLED">LIBXML_ICONV_ENABLED</a>;
+#define <a href="#LIBXML_HTML_ENABLED">LIBXML_HTML_ENABLED</a>;
+#define <a href="#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a>;
+#define <a href="#LIBXML_FTP_ENABLED">LIBXML_FTP_ENABLED</a>;
+#define <a href="#LIBXML_AUTOMATA_ENABLED">LIBXML_AUTOMATA_ENABLED</a>;
+#define <a href="#LIBXML_ZLIB_ENABLED">LIBXML_ZLIB_ENABLED</a>;
+#define <a href="#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a>;
+#define <a href="#LIBXML_C14N_ENABLED">LIBXML_C14N_ENABLED</a>;
+#define <a href="#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a>;
+#define <a href="#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a>;
+#define <a href="#LIBXML_ATTR_FORMAT">LIBXML_ATTR_FORMAT</a>;
+#define <a href="#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a>;
+#define <a href="#LIBXML_THREAD_ALLOC_ENABLED">LIBXML_THREAD_ALLOC_ENABLED</a>;
+#define <a href="#LIBXML_XPATH_ENABLED">LIBXML_XPATH_ENABLED</a>;
+#define <a href="#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a>;
+#define <a href="#LIBXML_VALID_ENABLED">LIBXML_VALID_ENABLED</a>;
+#define <a href="#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a>;
+#define <a href="#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a>;
+void <a href="#xmlCheckVersion">xmlCheckVersion</a> (int version);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="ATTRIBUTE_UNUSED">Macro </a>ATTRIBUTE_UNUSED</h3><pre class="programlisting">#define <a href="#ATTRIBUTE_UNUSED">ATTRIBUTE_UNUSED</a>;
+</pre><p>Macro used to signal to GCC unused function parameters</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="DEBUG_MEMORY_LOCATION">Macro </a>DEBUG_MEMORY_LOCATION</h3><pre class="programlisting">#define <a href="#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a>;
+</pre><p>Whether the memory debugging is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_ATTR_ALLOC_SIZE">Macro </a>LIBXML_ATTR_ALLOC_SIZE</h3><pre class="programlisting">#define <a href="#LIBXML_ATTR_ALLOC_SIZE">LIBXML_ATTR_ALLOC_SIZE</a>;
+</pre><p>Macro used to indicate to GCC this is an allocator function</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_ATTR_FORMAT">Macro </a>LIBXML_ATTR_FORMAT</h3><pre class="programlisting">#define <a href="#LIBXML_ATTR_FORMAT">LIBXML_ATTR_FORMAT</a>;
+</pre><p>Macro used to indicate to GCC the parameter are printf like</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_AUTOMATA_ENABLED">Macro </a>LIBXML_AUTOMATA_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_AUTOMATA_ENABLED">LIBXML_AUTOMATA_ENABLED</a>;
+</pre><p>Whether the automata interfaces are compiled in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_C14N_ENABLED">Macro </a>LIBXML_C14N_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_C14N_ENABLED">LIBXML_C14N_ENABLED</a>;
+</pre><p>Whether the Canonicalization support is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_CATALOG_ENABLED">Macro </a>LIBXML_CATALOG_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_CATALOG_ENABLED">LIBXML_CATALOG_ENABLED</a>;
+</pre><p>Whether the Catalog support is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_DEBUG_ENABLED">Macro </a>LIBXML_DEBUG_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a>;
+</pre><p>Whether Debugging module is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_DEBUG_RUNTIME">Macro </a>LIBXML_DEBUG_RUNTIME</h3><pre class="programlisting">#define <a href="#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a>;
+</pre><p>Whether the runtime debugging is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_DOCB_ENABLED">Macro </a>LIBXML_DOCB_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a>;
+</pre><p>Whether the SGML Docbook support is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_DOTTED_VERSION">Macro </a>LIBXML_DOTTED_VERSION</h3><pre class="programlisting">#define <a href="#LIBXML_DOTTED_VERSION">LIBXML_DOTTED_VERSION</a>;
+</pre><p>the version string like "1.2.3"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_EXPR_ENABLED">Macro </a>LIBXML_EXPR_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a>;
+</pre><p>Whether the formal expressions interfaces are compiled in This code is unused and disabled unconditionally for now.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_FTP_ENABLED">Macro </a>LIBXML_FTP_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_FTP_ENABLED">LIBXML_FTP_ENABLED</a>;
+</pre><p>Whether the FTP support is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_HTML_ENABLED">Macro </a>LIBXML_HTML_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_HTML_ENABLED">LIBXML_HTML_ENABLED</a>;
+</pre><p>Whether the HTML support is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_HTTP_ENABLED">Macro </a>LIBXML_HTTP_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_HTTP_ENABLED">LIBXML_HTTP_ENABLED</a>;
+</pre><p>Whether the HTTP support is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_ICONV_ENABLED">Macro </a>LIBXML_ICONV_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_ICONV_ENABLED">LIBXML_ICONV_ENABLED</a>;
+</pre><p>Whether iconv support is available</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_ICU_ENABLED">Macro </a>LIBXML_ICU_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_ICU_ENABLED">LIBXML_ICU_ENABLED</a>;
+</pre><p>Whether icu support is available</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_ISO8859X_ENABLED">Macro </a>LIBXML_ISO8859X_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a>;
+</pre><p>Whether ISO-8859-* support is made available in case iconv is not</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_LEGACY_ENABLED">Macro </a>LIBXML_LEGACY_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a>;
+</pre><p>Whether the deprecated APIs are compiled in for compatibility</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_LZMA_ENABLED">Macro </a>LIBXML_LZMA_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_LZMA_ENABLED">LIBXML_LZMA_ENABLED</a>;
+</pre><p>Whether the Lzma support is compiled in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_MODULES_ENABLED">Macro </a>LIBXML_MODULES_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a>;
+</pre><p>Whether the module interfaces are compiled in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_MODULE_EXTENSION">Macro </a>LIBXML_MODULE_EXTENSION</h3><pre class="programlisting">#define <a href="#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a>;
+</pre><p>the string suffix used by dynamic modules (usually shared libraries)</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_OUTPUT_ENABLED">Macro </a>LIBXML_OUTPUT_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a>;
+</pre><p>Whether the serialization/saving support is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_PATTERN_ENABLED">Macro </a>LIBXML_PATTERN_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a>;
+</pre><p>Whether the <a href="libxml2-pattern.html#xmlPattern">xmlPattern</a> node selection interface is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_PUSH_ENABLED">Macro </a>LIBXML_PUSH_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a>;
+</pre><p>Whether the push parsing interfaces are configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_READER_ENABLED">Macro </a>LIBXML_READER_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_READER_ENABLED">LIBXML_READER_ENABLED</a>;
+</pre><p>Whether the xmlReader parsing interface is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_REGEXP_ENABLED">Macro </a>LIBXML_REGEXP_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a>;
+</pre><p>Whether the regular expressions interfaces are compiled in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_SAX1_ENABLED">Macro </a>LIBXML_SAX1_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a>;
+</pre><p>Whether the older SAX1 interface is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_SCHEMAS_ENABLED">Macro </a>LIBXML_SCHEMAS_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a>;
+</pre><p>Whether the Schemas validation interfaces are compiled in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_SCHEMATRON_ENABLED">Macro </a>LIBXML_SCHEMATRON_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a>;
+</pre><p>Whether the Schematron validation interfaces are compiled in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_TEST_VERSION">Macro </a>LIBXML_TEST_VERSION</h3><pre class="programlisting">#define <a href="#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a>;
+</pre><p>Macro to check that the libxml version in use is compatible with the version the software has been compiled against</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_THREAD_ALLOC_ENABLED">Macro </a>LIBXML_THREAD_ALLOC_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_THREAD_ALLOC_ENABLED">LIBXML_THREAD_ALLOC_ENABLED</a>;
+</pre><p>Whether the allocation hooks are per-thread</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_THREAD_ENABLED">Macro </a>LIBXML_THREAD_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a>;
+</pre><p>Whether the thread support is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_TREE_ENABLED">Macro </a>LIBXML_TREE_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a>;
+</pre><p>Whether the DOM like tree manipulation API support is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_UNICODE_ENABLED">Macro </a>LIBXML_UNICODE_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a>;
+</pre><p>Whether the Unicode related interfaces are compiled in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_VALID_ENABLED">Macro </a>LIBXML_VALID_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_VALID_ENABLED">LIBXML_VALID_ENABLED</a>;
+</pre><p>Whether the DTD validation support is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_VERSION">Macro </a>LIBXML_VERSION</h3><pre class="programlisting">#define <a href="#LIBXML_VERSION">LIBXML_VERSION</a>;
+</pre><p>the version number: 1.2.3 value is 10203</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_VERSION_EXTRA">Macro </a>LIBXML_VERSION_EXTRA</h3><pre class="programlisting">#define <a href="#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a>;
+</pre><p>extra version information, used to show a CVS compilation</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_VERSION_STRING">Macro </a>LIBXML_VERSION_STRING</h3><pre class="programlisting">#define <a href="#LIBXML_VERSION_STRING">LIBXML_VERSION_STRING</a>;
+</pre><p>the version number string, 1.2.3 value is "10203"</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_WRITER_ENABLED">Macro </a>LIBXML_WRITER_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a>;
+</pre><p>Whether the xmlWriter saving interface is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_XINCLUDE_ENABLED">Macro </a>LIBXML_XINCLUDE_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_XINCLUDE_ENABLED">LIBXML_XINCLUDE_ENABLED</a>;
+</pre><p>Whether XInclude is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_XPATH_ENABLED">Macro </a>LIBXML_XPATH_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_XPATH_ENABLED">LIBXML_XPATH_ENABLED</a>;
+</pre><p>Whether XPath is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_XPTR_ENABLED">Macro </a>LIBXML_XPTR_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_XPTR_ENABLED">LIBXML_XPTR_ENABLED</a>;
+</pre><p>Whether XPointer is configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="LIBXML_ZLIB_ENABLED">Macro </a>LIBXML_ZLIB_ENABLED</h3><pre class="programlisting">#define <a href="#LIBXML_ZLIB_ENABLED">LIBXML_ZLIB_ENABLED</a>;
+</pre><p>Whether the Zlib support is compiled in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="WITHOUT_TRIO">Macro </a>WITHOUT_TRIO</h3><pre class="programlisting">#define <a href="#WITHOUT_TRIO">WITHOUT_TRIO</a>;
+</pre><p>defined if the trio support should not be configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="WITH_TRIO">Macro </a>WITH_TRIO</h3><pre class="programlisting">#define <a href="#WITH_TRIO">WITH_TRIO</a>;
+</pre><p>defined if the trio support need to be configured in</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlCheckVersion"/>xmlCheckVersion ()</h3><pre class="programlisting">void xmlCheckVersion (int version)<br/>
+</pre><p>check the compiled lib version against the include one. This can warn or immediately kill the application</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>version</tt></i>:</span></td><td>the include version number</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xmlwriter.html b/libxml2-2.9.10/doc/devhelp/libxml2-xmlwriter.html
new file mode 100644
index 0000000..61559e6
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xmlwriter.html
@@ -0,0 +1,479 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xmlwriter: text writing API for XML</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlversion.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xpath.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xmlwriter</span>
+ </h2>
+ <p>xmlwriter - text writing API for XML</p>
+ <p>text writing API for XML </p>
+ <p>Author(s): Alfred Mickautsch &lt;alfred@mickautsch.de&gt; </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a>;
+#define <a href="#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a>;
+typedef struct _xmlTextWriter <a href="#xmlTextWriter">xmlTextWriter</a>;
+typedef <a href="libxml2-xmlwriter.html#xmlTextWriter">xmlTextWriter</a> * <a href="#xmlTextWriterPtr">xmlTextWriterPtr</a>;
+int <a href="#xmlTextWriterStartDocument">xmlTextWriterStartDocument</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * version, <br/> const char * encoding, <br/> const char * standalone);
+int <a href="#xmlTextWriterEndPI">xmlTextWriterEndPI</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterWriteBase64">xmlTextWriterWriteBase64</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * data, <br/> int start, <br/> int len);
+int <a href="#xmlTextWriterSetIndentString">xmlTextWriterSetIndentString</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+int <a href="#xmlTextWriterStartAttribute">xmlTextWriterStartAttribute</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlTextWriterEndComment">xmlTextWriterEndComment</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len);
+int <a href="#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ndataid);
+int <a href="#xmlTextWriterWriteVFormatCDATA">xmlTextWriterWriteVFormatCDATA</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterStartAttributeNS">xmlTextWriterStartAttributeNS</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI);
+<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int compression);
+int <a href="#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ndataid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterWriteVFormatPI">xmlTextWriterWriteVFormatPI</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterWriteBinHex">xmlTextWriterWriteBinHex</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * data, <br/> int start, <br/> int len);
+int <a href="#xmlTextWriterEndAttribute">xmlTextWriterEndAttribute</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterSetIndent">xmlTextWriterSetIndent</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int indent);
+int <a href="#xmlTextWriterWriteFormatPI">xmlTextWriterWriteFormatPI</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterWriteDTDAttlist">xmlTextWriterWriteDTDAttlist</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterStartComment">xmlTextWriterStartComment</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterStartElementNS">xmlTextWriterStartElementNS</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI);
+int <a href="#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriter">xmlNewTextWriter</a> (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out);
+void <a href="#xmlFreeTextWriter">xmlFreeTextWriter</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterWriteVFormatDTDAttlist">xmlTextWriterWriteVFormatDTDAttlist</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterStartPI">xmlTextWriterStartPI</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target);
+int <a href="#xmlTextWriterStartElement">xmlTextWriterStartElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ndataid);
+int <a href="#xmlTextWriterWriteFormatRaw">xmlTextWriterWriteFormatRaw</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterWriteCDATA">xmlTextWriterWriteCDATA</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterWriteVFormatAttribute">xmlTextWriterWriteVFormatAttribute</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterWriteElement">xmlTextWriterWriteElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterEndElement">xmlTextWriterEndElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterWriteVFormatComment">xmlTextWriterWriteVFormatComment</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterStartCDATA">xmlTextWriterStartCDATA</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriterFilename">xmlNewTextWriterFilename</a> (const char * uri, <br/> int compression);
+int <a href="#xmlTextWriterWriteVFormatElement">xmlTextWriterWriteVFormatElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterWriteFormatComment">xmlTextWriterWriteFormatComment</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterWriteAttributeNS">xmlTextWriterWriteAttributeNS</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterWritePI">xmlTextWriterWritePI</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterWriteVFormatString">xmlTextWriterWriteVFormatString</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterWriteVFormatElementNS">xmlTextWriterWriteVFormatElementNS</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid);
+int <a href="#xmlTextWriterWriteFormatElement">xmlTextWriterWriteFormatElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterSetQuoteChar">xmlTextWriterSetQuoteChar</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> quotechar);
+int <a href="#xmlTextWriterWriteString">xmlTextWriterWriteString</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterWriteElementNS">xmlTextWriterWriteElementNS</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterWriteVFormatAttributeNS">xmlTextWriterWriteVFormatAttributeNS</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterFlush">xmlTextWriterFlush</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+int <a href="#xmlTextWriterStartDTD">xmlTextWriterStartDTD</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid);
+int <a href="#xmlTextWriterWriteAttribute">xmlTextWriterWriteAttribute</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> * doc, <br/> int compression);
+int <a href="#xmlTextWriterWriteFormatDTDElement">xmlTextWriterWriteFormatDTDElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer);
+<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriterTree">xmlNewTextWriterTree</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int compression);
+<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a> (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> int compression);
+int <a href="#xmlTextWriterWriteFormatCDATA">xmlTextWriterWriteFormatCDATA</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterStartDTDAttlist">xmlTextWriterStartDTDAttlist</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlTextWriterWriteFormatString">xmlTextWriterWriteFormatString</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterWriteComment">xmlTextWriterWriteComment</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterWriteFormatDTDAttlist">xmlTextWriterWriteFormatDTDAttlist</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterWriteRaw">xmlTextWriterWriteRaw</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content);
+int <a href="#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * subset);
+int <a href="#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> ... ...);
+int <a href="#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlTextWriterWriteVFormatDTDElement">xmlTextWriterWriteVFormatDTDElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> va_list argptr);
+int <a href="#xmlTextWriterStartDTDElement">xmlTextWriterStartDTDElement</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+int <a href="#xmlTextWriterWriteFormatElementNS">xmlTextWriterWriteFormatElementNS</a> (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const char * format, <br/> ... ...);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteDocType">Macro </a>xmlTextWriterWriteDocType</h3><pre class="programlisting">#define <a href="#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a>;
+</pre><p>this macro maps to <a href="libxml2-xmlwriter.html#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a></p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteProcessingInstruction">Macro </a>xmlTextWriterWriteProcessingInstruction</h3><pre class="programlisting">#define <a href="#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a>;
+</pre><p>This macro maps to <a href="libxml2-xmlwriter.html#xmlTextWriterWritePI">xmlTextWriterWritePI</a></p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriter">Structure </a>xmlTextWriter</h3><pre class="programlisting">struct _xmlTextWriter {
+The content of this structure is not made public by the API.
+} xmlTextWriter;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterPtr">Typedef </a>xmlTextWriterPtr</h3><pre class="programlisting"><a href="libxml2-xmlwriter.html#xmlTextWriter">xmlTextWriter</a> * xmlTextWriterPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlFreeTextWriter"/>xmlFreeTextWriter ()</h3><pre class="programlisting">void xmlFreeTextWriter (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>Deallocate all the resources associated to the writer</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewTextWriter"/>xmlNewTextWriter ()</h3><pre class="programlisting"><a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriter (<a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br/>
+</pre><p>Create a new <a href="libxml2-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure using an <a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> NOTE: the @out parameter will be deallocated when the writer is closed (if the call succeed.)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewTextWriterDoc"/>xmlNewTextWriterDoc ()</h3><pre class="programlisting"><a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriterDoc (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> * doc, <br/> int compression)<br/>
+</pre><p>Create a new <a href="libxml2-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure with @*doc as output</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>address of a <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> to hold the new XML document tree</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>compress the output?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewTextWriterFilename"/>xmlNewTextWriterFilename ()</h3><pre class="programlisting"><a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriterFilename (const char * uri, <br/> int compression)<br/>
+</pre><p>Create a new <a href="libxml2-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure with @uri as output</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>the URI of the resource for the output</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>compress the output?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewTextWriterMemory"/>xmlNewTextWriterMemory ()</h3><pre class="programlisting"><a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriterMemory (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br/> int compression)<br/>
+</pre><p>Create a new <a href="libxml2-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure with @buf as output TODO: handle compression</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td><a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>compress the output?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewTextWriterPushParser"/>xmlNewTextWriterPushParser ()</h3><pre class="programlisting"><a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriterPushParser (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int compression)<br/>
+</pre><p>Create a new <a href="libxml2-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure with @ctxt as output NOTE: the @ctxt context will be freed with the resulting writer (if the call succeeds). TODO: handle compression</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td><a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> to hold the new XML document tree</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>compress the output?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNewTextWriterTree"/>xmlNewTextWriterTree ()</h3><pre class="programlisting"><a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriterTree (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> int compression)<br/>
+</pre><p>Create a new <a href="libxml2-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure with @doc as output starting at @node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td><a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a></td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> or NULL for doc-&gt;children</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>compress the output?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterEndAttribute"/>xmlTextWriterEndAttribute ()</h3><pre class="programlisting">int xmlTextWriterEndAttribute (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End the current xml element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterEndCDATA"/>xmlTextWriterEndCDATA ()</h3><pre class="programlisting">int xmlTextWriterEndCDATA (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End an xml CDATA section.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterEndComment"/>xmlTextWriterEndComment ()</h3><pre class="programlisting">int xmlTextWriterEndComment (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End the current xml comment.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterEndDTD"/>xmlTextWriterEndDTD ()</h3><pre class="programlisting">int xmlTextWriterEndDTD (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End an xml DTD.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterEndDTDAttlist"/>xmlTextWriterEndDTDAttlist ()</h3><pre class="programlisting">int xmlTextWriterEndDTDAttlist (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End an xml DTD <a href="libxml2-SAX.html#attribute">attribute</a> list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterEndDTDElement"/>xmlTextWriterEndDTDElement ()</h3><pre class="programlisting">int xmlTextWriterEndDTDElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End an xml DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterEndDTDEntity"/>xmlTextWriterEndDTDEntity ()</h3><pre class="programlisting">int xmlTextWriterEndDTDEntity (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End an xml DTD entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterEndDocument"/>xmlTextWriterEndDocument ()</h3><pre class="programlisting">int xmlTextWriterEndDocument (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End an xml document. All open elements are closed, and the content is flushed to the output.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterEndElement"/>xmlTextWriterEndElement ()</h3><pre class="programlisting">int xmlTextWriterEndElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End the current xml element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterEndPI"/>xmlTextWriterEndPI ()</h3><pre class="programlisting">int xmlTextWriterEndPI (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End the current xml PI.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterFlush"/>xmlTextWriterFlush ()</h3><pre class="programlisting">int xmlTextWriterFlush (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>Flush the output buffer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterFullEndElement"/>xmlTextWriterFullEndElement ()</h3><pre class="programlisting">int xmlTextWriterFullEndElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>End the current xml element. Writes an end tag even if the element is empty</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterSetIndent"/>xmlTextWriterSetIndent ()</h3><pre class="programlisting">int xmlTextWriterSetIndent (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int indent)<br/>
+</pre><p>Set indentation output. indent = 0 do not indentation. indent &gt; 0 do indentation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>indent</tt></i>:</span></td><td>do indentation?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 on error or 0 otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterSetIndentString"/>xmlTextWriterSetIndentString ()</h3><pre class="programlisting">int xmlTextWriterSetIndentString (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>Set string indentation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 on error or 0 otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterSetQuoteChar"/>xmlTextWriterSetQuoteChar ()</h3><pre class="programlisting">int xmlTextWriterSetQuoteChar (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> quotechar)<br/>
+</pre><p>Set the character used for quoting attributes.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>quotechar</tt></i>:</span></td><td>the quote character</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 on error or 0 otherwise.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartAttribute"/>xmlTextWriterStartAttribute ()</h3><pre class="programlisting">int xmlTextWriterStartAttribute (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Start an xml attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartAttributeNS"/>xmlTextWriterStartAttributeNS ()</h3><pre class="programlisting">int xmlTextWriterStartAttributeNS (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)<br/>
+</pre><p>Start an xml <a href="libxml2-SAX.html#attribute">attribute</a> with namespace support.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix or NULL</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartCDATA"/>xmlTextWriterStartCDATA ()</h3><pre class="programlisting">int xmlTextWriterStartCDATA (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>Start an xml CDATA section.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartComment"/>xmlTextWriterStartComment ()</h3><pre class="programlisting">int xmlTextWriterStartComment (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br/>
+</pre><p>Start an xml comment.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartDTD"/>xmlTextWriterStartDTD ()</h3><pre class="programlisting">int xmlTextWriterStartDTD (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid)<br/>
+</pre><p>Start an xml DTD.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartDTDAttlist"/>xmlTextWriterStartDTDAttlist ()</h3><pre class="programlisting">int xmlTextWriterStartDTDAttlist (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Start an xml DTD ATTLIST.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD ATTLIST</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartDTDElement"/>xmlTextWriterStartDTDElement ()</h3><pre class="programlisting">int xmlTextWriterStartDTDElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Start an xml DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartDTDEntity"/>xmlTextWriterStartDTDEntity ()</h3><pre class="programlisting">int xmlTextWriterStartDTDEntity (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Start an xml DTD ATTLIST.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD ATTLIST</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartDocument"/>xmlTextWriterStartDocument ()</h3><pre class="programlisting">int xmlTextWriterStartDocument (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * version, <br/> const char * encoding, <br/> const char * standalone)<br/>
+</pre><p>Start a new xml document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>version</tt></i>:</span></td><td>the xml version ("1.0") or NULL for default ("1.0")</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding or NULL for default</td></tr><tr><td><span class="term"><i><tt>standalone</tt></i>:</span></td><td>"yes" or "no" or NULL for default</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartElement"/>xmlTextWriterStartElement ()</h3><pre class="programlisting">int xmlTextWriterStartElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Start an xml element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartElementNS"/>xmlTextWriterStartElementNS ()</h3><pre class="programlisting">int xmlTextWriterStartElementNS (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)<br/>
+</pre><p>Start an xml element with namespace support.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix or NULL</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterStartPI"/>xmlTextWriterStartPI ()</h3><pre class="programlisting">int xmlTextWriterStartPI (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target)<br/>
+</pre><p>Start an xml PI.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>PI target</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteAttribute"/>xmlTextWriterWriteAttribute ()</h3><pre class="programlisting">int xmlTextWriterWriteAttribute (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write an xml attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td><a href="libxml2-SAX.html#attribute">attribute</a> content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteAttributeNS"/>xmlTextWriterWriteAttributeNS ()</h3><pre class="programlisting">int xmlTextWriterWriteAttributeNS (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write an xml attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml2-SAX.html#attribute">attribute</a> local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td><a href="libxml2-SAX.html#attribute">attribute</a> content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteBase64"/>xmlTextWriterWriteBase64 ()</h3><pre class="programlisting">int xmlTextWriterWriteBase64 (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * data, <br/> int start, <br/> int len)<br/>
+</pre><p>Write an base64 encoded xml text.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>binary data</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the position within the data of the first byte to encode</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of bytes to encode</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteBinHex"/>xmlTextWriterWriteBinHex ()</h3><pre class="programlisting">int xmlTextWriterWriteBinHex (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * data, <br/> int start, <br/> int len)<br/>
+</pre><p>Write a BinHex encoded xml text.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>binary data</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the position within the data of the first byte to encode</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of bytes to encode</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteCDATA"/>xmlTextWriterWriteCDATA ()</h3><pre class="programlisting">int xmlTextWriterWriteCDATA (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write an xml CDATA.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>CDATA content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteComment"/>xmlTextWriterWriteComment ()</h3><pre class="programlisting">int xmlTextWriterWriteComment (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write an xml comment.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td><a href="libxml2-SAX.html#comment">comment</a> string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteDTD"/>xmlTextWriterWriteDTD ()</h3><pre class="programlisting">int xmlTextWriterWriteDTD (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * subset)<br/>
+</pre><p>Write a DTD.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>subset</tt></i>:</span></td><td>string content of the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteDTDAttlist"/>xmlTextWriterWriteDTDAttlist ()</h3><pre class="programlisting">int xmlTextWriterWriteDTDAttlist (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write a DTD ATTLIST.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD ATTLIST</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the ATTLIST</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteDTDElement"/>xmlTextWriterWriteDTDElement ()</h3><pre class="programlisting">int xmlTextWriterWriteDTDElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write a DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD element</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteDTDEntity"/>xmlTextWriterWriteDTDEntity ()</h3><pre class="programlisting">int xmlTextWriterWriteDTDEntity (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ndataid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write a DTD entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>ndataid</tt></i>:</span></td><td>the xml notation name.</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteDTDExternalEntity"/>xmlTextWriterWriteDTDExternalEntity ()</h3><pre class="programlisting">int xmlTextWriterWriteDTDExternalEntity (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ndataid)<br/>
+</pre><p>Write a DTD external entity. The entity must have been started with <a href="libxml2-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>ndataid</tt></i>:</span></td><td>the xml notation name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteDTDExternalEntityContents"/>xmlTextWriterWriteDTDExternalEntityContents ()</h3><pre class="programlisting">int xmlTextWriterWriteDTDExternalEntityContents (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ndataid)<br/>
+</pre><p>Write the contents of a DTD external entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>ndataid</tt></i>:</span></td><td>the xml notation name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteDTDInternalEntity"/>xmlTextWriterWriteDTDInternalEntity ()</h3><pre class="programlisting">int xmlTextWriterWriteDTDInternalEntity (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write a DTD internal entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteDTDNotation"/>xmlTextWriterWriteDTDNotation ()</h3><pre class="programlisting">int xmlTextWriterWriteDTDNotation (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid)<br/>
+</pre><p>Write a DTD entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the xml notation</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteElement"/>xmlTextWriterWriteElement ()</h3><pre class="programlisting">int xmlTextWriterWriteElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write an xml element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>element content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteElementNS"/>xmlTextWriterWriteElementNS ()</h3><pre class="programlisting">int xmlTextWriterWriteElementNS (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write an xml element with namespace support.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>element content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatAttribute"/>xmlTextWriterWriteFormatAttribute ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatAttribute (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted xml attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatAttributeNS"/>xmlTextWriterWriteFormatAttributeNS ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatAttributeNS (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted xml attribute.with namespace support</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml2-SAX.html#attribute">attribute</a> local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatCDATA"/>xmlTextWriterWriteFormatCDATA ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatCDATA (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted xml CDATA.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatComment"/>xmlTextWriterWriteFormatComment ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatComment (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write an xml comment.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatDTD"/>xmlTextWriterWriteFormatDTD ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatDTD (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a DTD with a formatted markup declarations part.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatDTDAttlist"/>xmlTextWriterWriteFormatDTDAttlist ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatDTDAttlist (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted DTD ATTLIST.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD ATTLIST</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatDTDElement"/>xmlTextWriterWriteFormatDTDElement ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatDTDElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD element</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatDTDInternalEntity"/>xmlTextWriterWriteFormatDTDInternalEntity ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatDTDInternalEntity (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted DTD internal entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatElement"/>xmlTextWriterWriteFormatElement ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted xml element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element name</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatElementNS"/>xmlTextWriterWriteFormatElementNS ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatElementNS (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted xml element with namespace support.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatPI"/>xmlTextWriterWriteFormatPI ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatPI (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted PI.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>PI target</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatRaw"/>xmlTextWriterWriteFormatRaw ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatRaw (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted raw xml text.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteFormatString"/>xmlTextWriterWriteFormatString ()</h3><pre class="programlisting">int xmlTextWriterWriteFormatString (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> ... ...)<br/>
+</pre><p>Write a formatted xml text.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWritePI"/>xmlTextWriterWritePI ()</h3><pre class="programlisting">int xmlTextWriterWritePI (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write an xml PI.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>PI target</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>PI content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteRaw"/>xmlTextWriterWriteRaw ()</h3><pre class="programlisting">int xmlTextWriterWriteRaw (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write a raw xml text.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>text string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteRawLen"/>xmlTextWriterWriteRawLen ()</h3><pre class="programlisting">int xmlTextWriterWriteRawLen (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len)<br/>
+</pre><p>Write an xml text. TODO: what about entities and special chars??</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>text string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>length of the text string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteString"/>xmlTextWriterWriteString ()</h3><pre class="programlisting">int xmlTextWriterWriteString (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
+</pre><p>Write an xml text.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>text string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatAttribute"/>xmlTextWriterWriteVFormatAttribute ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatAttribute (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted xml attribute.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml2-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatAttributeNS"/>xmlTextWriterWriteVFormatAttributeNS ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatAttributeNS (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted xml attribute.with namespace support</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml2-SAX.html#attribute">attribute</a> local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatCDATA"/>xmlTextWriterWriteVFormatCDATA ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatCDATA (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted xml CDATA.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatComment"/>xmlTextWriterWriteVFormatComment ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatComment (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write an xml comment.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatDTD"/>xmlTextWriterWriteVFormatDTD ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatDTD (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a DTD with a formatted markup declarations part.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatDTDAttlist"/>xmlTextWriterWriteVFormatDTDAttlist ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatDTDAttlist (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted DTD ATTLIST.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD ATTLIST</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatDTDElement"/>xmlTextWriterWriteVFormatDTDElement ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatDTDElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD element</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatDTDInternalEntity"/>xmlTextWriterWriteVFormatDTDInternalEntity ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatDTDInternalEntity (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> int pe, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted DTD internal entity.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatElement"/>xmlTextWriterWriteVFormatElement ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatElement (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted xml element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element name</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatElementNS"/>xmlTextWriterWriteVFormatElementNS ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatElementNS (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted xml element with namespace support.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatPI"/>xmlTextWriterWriteVFormatPI ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatPI (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * target, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted xml PI.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>PI target</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatRaw"/>xmlTextWriterWriteVFormatRaw ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatRaw (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted raw xml text.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextWriterWriteVFormatString"/>xmlTextWriterWriteVFormatString ()</h3><pre class="programlisting">int xmlTextWriterWriteVFormatString (<a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br/> const char * format, <br/> va_list argptr)<br/>
+</pre><p>Write a formatted xml text.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml2-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xpath.html b/libxml2-2.9.10/doc/devhelp/libxml2-xpath.html
new file mode 100644
index 0000000..9be0e5a
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xpath.html
@@ -0,0 +1,549 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xpath: XML Path Language implementation</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xmlwriter.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xpathInternals.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xpath</span>
+ </h2>
+ <p>xpath - XML Path Language implementation</p>
+ <p>API for the XML Path Language implementation XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer</p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a>(ns);
+#define <a href="#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a>;
+#define <a href="#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a>;
+#define <a href="#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a>(ns, index);
+#define <a href="#xmlXPathNodeSetIsEmpty">xmlXPathNodeSetIsEmpty</a>(ns);
+typedef enum <a href="#xmlXPathObjectType">xmlXPathObjectType</a>;
+typedef <a href="libxml2-xpath.html#xmlXPathVariable">xmlXPathVariable</a> * <a href="#xmlXPathVariablePtr">xmlXPathVariablePtr</a>;
+typedef struct _xmlXPathContext <a href="#xmlXPathContext">xmlXPathContext</a>;
+typedef enum <a href="#xmlXPathError">xmlXPathError</a>;
+typedef struct _xmlXPathFunct <a href="#xmlXPathFunct">xmlXPathFunct</a>;
+typedef <a href="libxml2-xpath.html#xmlXPathType">xmlXPathType</a> * <a href="#xmlXPathTypePtr">xmlXPathTypePtr</a>;
+typedef struct _xmlXPathType <a href="#xmlXPathType">xmlXPathType</a>;
+typedef <a href="libxml2-xpath.html#xmlNodeSet">xmlNodeSet</a> * <a href="#xmlNodeSetPtr">xmlNodeSetPtr</a>;
+typedef <a href="libxml2-xpath.html#xmlXPathFunct">xmlXPathFunct</a> * <a href="#xmlXPathFuncPtr">xmlXPathFuncPtr</a>;
+typedef <a href="libxml2-xpath.html#xmlXPathCompExpr">xmlXPathCompExpr</a> * <a href="#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a>;
+typedef struct _xmlXPathObject <a href="#xmlXPathObject">xmlXPathObject</a>;
+typedef struct _xmlXPathCompExpr <a href="#xmlXPathCompExpr">xmlXPathCompExpr</a>;
+typedef <a href="libxml2-xpath.html#xmlXPathContext">xmlXPathContext</a> * <a href="#xmlXPathContextPtr">xmlXPathContextPtr</a>;
+typedef <a href="libxml2-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a> * <a href="#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a>;
+typedef struct _xmlNodeSet <a href="#xmlNodeSet">xmlNodeSet</a>;
+typedef struct _xmlXPathVariable <a href="#xmlXPathVariable">xmlXPathVariable</a>;
+typedef <a href="libxml2-xpath.html#xmlXPathObject">xmlXPathObject</a> * <a href="#xmlXPathObjectPtr">xmlXPathObjectPtr</a>;
+typedef struct _xmlXPathAxis <a href="#xmlXPathAxis">xmlXPathAxis</a>;
+typedef <a href="libxml2-xpath.html#xmlXPathAxis">xmlXPathAxis</a> * <a href="#xmlXPathAxisPtr">xmlXPathAxisPtr</a>;
+typedef struct _xmlXPathParserContext <a href="#xmlXPathParserContext">xmlXPathParserContext</a>;
+int <a href="#xmlXPathCastNodeSetToBoolean">xmlXPathCastNodeSetToBoolean</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns);
+typedef <a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> <a href="#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a> (void * ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNodeEval">xmlXPathNodeEval</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathCastNodeToString">xmlXPathCastNodeToString</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+int <a href="#xmlXPathIsNaN">xmlXPathIsNaN</a> (double val);
+int <a href="#xmlXPathContextSetCache">xmlXPathContextSetCache</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> int active, <br/> int value, <br/> int options);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathConvertString">xmlXPathConvertString</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val);
+int <a href="#xmlXPathCompiledEvalToBoolean">xmlXPathCompiledEvalToBoolean</a> (<a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt);
+int <a href="#xmlXPathIsInf">xmlXPathIsInf</a> (double val);
+long <a href="#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val);
+double <a href="#xmlXPathCastBooleanToNumber">xmlXPathCastBooleanToNumber</a> (int val);
+double <a href="#xmlXPathCastNodeToNumber">xmlXPathCastNodeToNumber</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+double <a href="#xmlXPathCastStringToNumber">xmlXPathCastStringToNumber</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
+typedef <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathAxisFunc">xmlXPathAxisFunc</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> cur);
+double <a href="#xmlXPathCastToNumber">xmlXPathCastToNumber</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val);
+int <a href="#xmlXPathCastStringToBoolean">xmlXPathCastStringToBoolean</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathCastNumberToString">xmlXPathCastNumberToString</a> (double val);
+typedef <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a> (void * ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri);
+void <a href="#xmlXPathFreeObject">xmlXPathFreeObject</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj);
+int <a href="#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> res);
+void <a href="#xmlXPathFreeContext">xmlXPathFreeContext</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathObjectCopy">xmlXPathObjectCopy</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val);
+void <a href="#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathEval">xmlXPathEval</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathCastNodeSetToString">xmlXPathCastNodeSetToString</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathCompiledEval">xmlXPathCompiledEval</a> (<a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathEvalExpression">xmlXPathEvalExpression</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt);
+void <a href="#xmlXPathInit">xmlXPathInit</a> (void);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val);
+typedef int <a href="#xmlXPathConvertFunc">xmlXPathConvertFunc</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj, <br/> int type);
+typedef void <a href="#xmlXPathFunction">xmlXPathFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+int <a href="#xmlXPathCmpNodes">xmlXPathCmpNodes</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node1, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathCastToString">xmlXPathCastToString</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val);
+<a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> <a href="#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+typedef void <a href="#xmlXPathEvalFunc">xmlXPathEvalFunc</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathCastBooleanToString">xmlXPathCastBooleanToString</a> (int val);
+int <a href="#xmlXPathSetContextNode">xmlXPathSetContextNode</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx);
+int <a href="#xmlXPathCastNumberToBoolean">xmlXPathCastNumberToBoolean</a> (double val);
+void <a href="#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> obj);
+void <a href="#xmlXPathFreeCompExpr">xmlXPathFreeCompExpr</a> (<a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp);
+<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> <a href="#xmlXPathNewContext">xmlXPathNewContext</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathConvertNumber">xmlXPathConvertNumber</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val);
+<a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> <a href="#xmlXPathCompile">xmlXPathCompile</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+double <a href="#xmlXPathCastNodeSetToNumber">xmlXPathCastNodeSetToNumber</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns);
+int <a href="#xmlXPathCastToBoolean">xmlXPathCastToBoolean</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="XML_XPATH_CHECKNS">Macro </a>XML_XPATH_CHECKNS</h3><pre class="programlisting">#define <a href="#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a>;
+</pre><p>check namespaces at compilation</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XML_XPATH_NOVAR">Macro </a>XML_XPATH_NOVAR</h3><pre class="programlisting">#define <a href="#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a>;
+</pre><p>forbid variables in expression</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetGetLength">Macro </a>xmlXPathNodeSetGetLength</h3><pre class="programlisting">#define <a href="#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a>(ns);
+</pre><p>Implement a functionality similar to the DOM NodeList.length. Returns the number of nodes in the node-set.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetIsEmpty">Macro </a>xmlXPathNodeSetIsEmpty</h3><pre class="programlisting">#define <a href="#xmlXPathNodeSetIsEmpty">xmlXPathNodeSetIsEmpty</a>(ns);
+</pre><p>Checks whether @ns is empty or not. Returns %TRUE if @ns is an empty node-set.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetItem">Macro </a>xmlXPathNodeSetItem</h3><pre class="programlisting">#define <a href="#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a>(ns, index);
+</pre><p>Implements a functionality similar to the DOM NodeList.item(). Returns the <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> at the given @index in @ns or NULL if @index is out of range (0 to length-1)</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>index</tt></i>:</span></td><td>index of a node in the set</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeSet">Structure </a>xmlNodeSet</h3><pre class="programlisting">struct _xmlNodeSet {
+ int nodeNr : number of nodes in the set
+ int nodeMax : size of the array as allocated
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> * nodeTab : array of nodes in no particular order @@ with_ns to check whether nam
+} xmlNodeSet;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlNodeSetPtr">Typedef </a>xmlNodeSetPtr</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSet">xmlNodeSet</a> * xmlNodeSetPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathAxis">Structure </a>xmlXPathAxis</h3><pre class="programlisting">struct _xmlXPathAxis {
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : the axis name
+ <a href="libxml2-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a> func : the search function
+} xmlXPathAxis;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathAxisPtr">Typedef </a>xmlXPathAxisPtr</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathAxis">xmlXPathAxis</a> * xmlXPathAxisPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCompExpr">Structure </a>xmlXPathCompExpr</h3><pre class="programlisting">struct _xmlXPathCompExpr {
+The content of this structure is not made public by the API.
+} xmlXPathCompExpr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCompExprPtr">Typedef </a>xmlXPathCompExprPtr</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathCompExpr">xmlXPathCompExpr</a> * xmlXPathCompExprPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathContext">Structure </a>xmlXPathContext</h3><pre class="programlisting">struct _xmlXPathContext {
+ <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc : The current document
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node : The current node
+ int nb_variables_unused : unused (hash table)
+ int max_variables_unused : unused (hash table)
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> varHash : Hash table of defined variables
+ int nb_types : number of defined types
+ int max_types : max number of types
+ <a href="libxml2-xpath.html#xmlXPathTypePtr">xmlXPathTypePtr</a> types : Array of defined types
+ int nb_funcs_unused : unused (hash table)
+ int max_funcs_unused : unused (hash table)
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> funcHash : Hash table of defined funcs
+ int nb_axis : number of defined axis
+ int max_axis : max number of axis
+ <a href="libxml2-xpath.html#xmlXPathAxisPtr">xmlXPathAxisPtr</a> axis : Array of defined axis the namespace nodes of the context node
+ <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> * namespaces : Array of namespaces
+ int nsNr : number of namespace in scope
+ void * user : function to free extra variables
+ int contextSize : the context size
+ int proximityPosition : the proximity position extra stuff for XPointer
+ int xptr : is this an XPointer context?
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> here : for here()
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> origin : for origin() the set of namespace declarations in scope for the expre
+ <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> nsHash : The namespaces hash table
+ <a href="libxml2-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a> varLookupFunc : variable lookup func
+ void * varLookupData : variable lookup data Possibility to link in an extra item
+ void * extra : needed for XSLT The function name and URI when calling a function
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * function
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * functionURI : function lookup function and data
+ <a href="libxml2-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a> funcLookupFunc : function lookup func
+ void * funcLookupData : function lookup data temporary namespace lists kept for walking the n
+ <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> * tmpNsList : Array of namespaces
+ int tmpNsNr : number of namespaces in scope error reporting mechanism
+ void * userData : user specific data block
+ <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> error : the callback in case of errors
+ <a href="libxml2-xmlerror.html#xmlError">xmlError</a> lastError : the last error
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> debugNode : the source node XSLT dictionary
+ <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionary if any
+ int flags : flags to control compilation Cache for reusal of XPath objects
+ void * cache : Resource limits
+ unsigned long opLimit
+ unsigned long opCount
+ int depth
+ int maxDepth
+ int maxParserDepth
+} xmlXPathContext;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathContextPtr">Typedef </a>xmlXPathContextPtr</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathContext">xmlXPathContext</a> * xmlXPathContextPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathError">Enum </a>xmlXPathError</h3><pre class="programlisting">enum <a href="#xmlXPathError">xmlXPathError</a> {
+ <a name="XPATH_EXPRESSION_OK">XPATH_EXPRESSION_OK</a> = 0
+ <a name="XPATH_NUMBER_ERROR">XPATH_NUMBER_ERROR</a> = 1
+ <a name="XPATH_UNFINISHED_LITERAL_ERROR">XPATH_UNFINISHED_LITERAL_ERROR</a> = 2
+ <a name="XPATH_START_LITERAL_ERROR">XPATH_START_LITERAL_ERROR</a> = 3
+ <a name="XPATH_VARIABLE_REF_ERROR">XPATH_VARIABLE_REF_ERROR</a> = 4
+ <a name="XPATH_UNDEF_VARIABLE_ERROR">XPATH_UNDEF_VARIABLE_ERROR</a> = 5
+ <a name="XPATH_INVALID_PREDICATE_ERROR">XPATH_INVALID_PREDICATE_ERROR</a> = 6
+ <a name="XPATH_EXPR_ERROR">XPATH_EXPR_ERROR</a> = 7
+ <a name="XPATH_UNCLOSED_ERROR">XPATH_UNCLOSED_ERROR</a> = 8
+ <a name="XPATH_UNKNOWN_FUNC_ERROR">XPATH_UNKNOWN_FUNC_ERROR</a> = 9
+ <a name="XPATH_INVALID_OPERAND">XPATH_INVALID_OPERAND</a> = 10
+ <a name="XPATH_INVALID_TYPE">XPATH_INVALID_TYPE</a> = 11
+ <a name="XPATH_INVALID_ARITY">XPATH_INVALID_ARITY</a> = 12
+ <a name="XPATH_INVALID_CTXT_SIZE">XPATH_INVALID_CTXT_SIZE</a> = 13
+ <a name="XPATH_INVALID_CTXT_POSITION">XPATH_INVALID_CTXT_POSITION</a> = 14
+ <a name="XPATH_MEMORY_ERROR">XPATH_MEMORY_ERROR</a> = 15
+ <a name="XPTR_SYNTAX_ERROR">XPTR_SYNTAX_ERROR</a> = 16
+ <a name="XPTR_RESOURCE_ERROR">XPTR_RESOURCE_ERROR</a> = 17
+ <a name="XPTR_SUB_RESOURCE_ERROR">XPTR_SUB_RESOURCE_ERROR</a> = 18
+ <a name="XPATH_UNDEF_PREFIX_ERROR">XPATH_UNDEF_PREFIX_ERROR</a> = 19
+ <a name="XPATH_ENCODING_ERROR">XPATH_ENCODING_ERROR</a> = 20
+ <a name="XPATH_INVALID_CHAR_ERROR">XPATH_INVALID_CHAR_ERROR</a> = 21
+ <a name="XPATH_INVALID_CTXT">XPATH_INVALID_CTXT</a> = 22
+ <a name="XPATH_STACK_ERROR">XPATH_STACK_ERROR</a> = 23
+ <a name="XPATH_FORBID_VARIABLE_ERROR">XPATH_FORBID_VARIABLE_ERROR</a> = 24
+ <a name="XPATH_OP_LIMIT_EXCEEDED">XPATH_OP_LIMIT_EXCEEDED</a> = 25
+ <a name="XPATH_RECURSION_LIMIT_EXCEEDED">XPATH_RECURSION_LIMIT_EXCEEDED</a> = 26
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFuncPtr">Typedef </a>xmlXPathFuncPtr</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathFunct">xmlXPathFunct</a> * xmlXPathFuncPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFunct">Structure </a>xmlXPathFunct</h3><pre class="programlisting">struct _xmlXPathFunct {
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : the function name
+ <a href="libxml2-xpath.html#xmlXPathEvalFunc">xmlXPathEvalFunc</a> func : the evaluation function
+} xmlXPathFunct;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathObject">Structure </a>xmlXPathObject</h3><pre class="programlisting">struct _xmlXPathObject {
+ <a href="libxml2-xpath.html#xmlXPathObjectType">xmlXPathObjectType</a> type
+ <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodesetval
+ int boolval
+ double floatval
+ <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * stringval
+ void * user
+ int index
+ void * user2
+ int index2
+} xmlXPathObject;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathObjectPtr">Typedef </a>xmlXPathObjectPtr</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObject">xmlXPathObject</a> * xmlXPathObjectPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathObjectType">Enum </a>xmlXPathObjectType</h3><pre class="programlisting">enum <a href="#xmlXPathObjectType">xmlXPathObjectType</a> {
+ <a name="XPATH_UNDEFINED">XPATH_UNDEFINED</a> = 0
+ <a name="XPATH_NODESET">XPATH_NODESET</a> = 1
+ <a name="XPATH_BOOLEAN">XPATH_BOOLEAN</a> = 2
+ <a name="XPATH_NUMBER">XPATH_NUMBER</a> = 3
+ <a name="XPATH_STRING">XPATH_STRING</a> = 4
+ <a name="XPATH_POINT">XPATH_POINT</a> = 5
+ <a name="XPATH_RANGE">XPATH_RANGE</a> = 6
+ <a name="XPATH_LOCATIONSET">XPATH_LOCATIONSET</a> = 7
+ <a name="XPATH_USERS">XPATH_USERS</a> = 8
+ <a name="XPATH_XSLT_TREE">XPATH_XSLT_TREE</a> = 9 /* An XSLT value tree, non modifiable */
+};
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathParserContext">Structure </a>xmlXPathParserContext</h3><pre class="programlisting">struct _xmlXPathParserContext {
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur : the current char being parsed
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base : the full expression
+ int error : error code
+ <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> context : the evaluation context
+ <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value : the current value
+ int valueNr : number of values stacked
+ int valueMax : max number of values stacked
+ <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> * valueTab : stack of values
+ <a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp : the precompiled expression
+ int xptr : it this an XPointer expression
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> ancestor : used for walking preceding axis
+ int valueFrame : used to limit Pop on the stack
+} xmlXPathParserContext;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathParserContextPtr">Typedef </a>xmlXPathParserContextPtr</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a> * xmlXPathParserContextPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathType">Structure </a>xmlXPathType</h3><pre class="programlisting">struct _xmlXPathType {
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : the type name
+ <a href="libxml2-xpath.html#xmlXPathConvertFunc">xmlXPathConvertFunc</a> func : the conversion function
+} xmlXPathType;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathTypePtr">Typedef </a>xmlXPathTypePtr</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathType">xmlXPathType</a> * xmlXPathTypePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathVariable">Structure </a>xmlXPathVariable</h3><pre class="programlisting">struct _xmlXPathVariable {
+ const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name : the variable name
+ <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value : the value
+} xmlXPathVariable;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathVariablePtr">Typedef </a>xmlXPathVariablePtr</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathVariable">xmlXPathVariable</a> * xmlXPathVariablePtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathAxisFunc"/>Function type xmlXPathAxisFunc</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathAxisFunc (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> cur)<br/>
+</pre><p>An axis traversal function. To traverse an axis, the engine calls the first time with cur == NULL and repeat until the function returns NULL indicating the end of the axis traversal.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath interpreter context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the previous node being explored on that axis</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next node in that axis or NULL if at the end of the axis.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathConvertFunc"/>Function type xmlXPathConvertFunc</h3><pre class="programlisting">int xmlXPathConvertFunc (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj, <br/> int type)<br/>
+</pre><p>A conversion function is associated to a type and used to cast the new type to primitive values.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the number of the target type</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathEvalFunc"/>Function type xmlXPathEvalFunc</h3><pre class="programlisting">void xmlXPathEvalFunc (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>An XPath evaluation function, the parameters are on the XPath context stack.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments passed to the function</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFuncLookupFunc"/>Function type xmlXPathFuncLookupFunc</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> xmlXPathFuncLookupFunc (void * ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)<br/>
+</pre><p>Prototype for callbacks used to plug function lookup in the XPath engine.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>name of the function</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the namespace name hosting this function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the XPath function or NULL if not found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFunction"/>Function type xmlXPathFunction</h3><pre class="programlisting">void xmlXPathFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>An XPath function. The arguments (if any) are popped out from the context stack and the result is pushed on the stack.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath interprestation context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathVariableLookupFunc"/>Function type xmlXPathVariableLookupFunc</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathVariableLookupFunc (void * ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)<br/>
+</pre><p>Prototype for callbacks used to plug variable lookup in the XPath engine.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>name of the variable</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the namespace name hosting this variable</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the XPath object value or NULL if not found.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNAN">Variable </a>xmlXPathNAN</h3><pre class="programlisting">double xmlXPathNAN;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNINF">Variable </a>xmlXPathNINF</h3><pre class="programlisting">double xmlXPathNINF;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathPINF">Variable </a>xmlXPathPINF</h3><pre class="programlisting">double xmlXPathPINF;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastBooleanToNumber"/>xmlXPathCastBooleanToNumber ()</h3><pre class="programlisting">double xmlXPathCastBooleanToNumber (int val)<br/>
+</pre><p>Converts a boolean to its number value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a boolean</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastBooleanToString"/>xmlXPathCastBooleanToString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathCastBooleanToString (int val)<br/>
+</pre><p>Converts a boolean to its string value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a boolean</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly allocated string.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastNodeSetToBoolean"/>xmlXPathCastNodeSetToBoolean ()</h3><pre class="programlisting">int xmlXPathCastNodeSetToBoolean (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns)<br/>
+</pre><p>Converts a node-set to its boolean value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the boolean value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastNodeSetToNumber"/>xmlXPathCastNodeSetToNumber ()</h3><pre class="programlisting">double xmlXPathCastNodeSetToNumber (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns)<br/>
+</pre><p>Converts a node-set to its number value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastNodeSetToString"/>xmlXPathCastNodeSetToString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathCastNodeSetToString (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns)<br/>
+</pre><p>Converts a node-set to its string value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly allocated string.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastNodeToNumber"/>xmlXPathCastNodeToNumber ()</h3><pre class="programlisting">double xmlXPathCastNodeToNumber (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Converts a node to its number value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastNodeToString"/>xmlXPathCastNodeToString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathCastNodeToString (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Converts a node to its string value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly allocated string.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastNumberToBoolean"/>xmlXPathCastNumberToBoolean ()</h3><pre class="programlisting">int xmlXPathCastNumberToBoolean (double val)<br/>
+</pre><p>Converts a number to its boolean value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the boolean value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastNumberToString"/>xmlXPathCastNumberToString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathCastNumberToString (double val)<br/>
+</pre><p>Converts a number to its string value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly allocated string.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastStringToBoolean"/>xmlXPathCastStringToBoolean ()</h3><pre class="programlisting">int xmlXPathCastStringToBoolean (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val)<br/>
+</pre><p>Converts a string to its boolean value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the boolean value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastStringToNumber"/>xmlXPathCastStringToNumber ()</h3><pre class="programlisting">double xmlXPathCastStringToNumber (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val)<br/>
+</pre><p>Converts a string to its number value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastToBoolean"/>xmlXPathCastToBoolean ()</h3><pre class="programlisting">int xmlXPathCastToBoolean (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br/>
+</pre><p>Converts an XPath object to its boolean value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the boolean value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastToNumber"/>xmlXPathCastToNumber ()</h3><pre class="programlisting">double xmlXPathCastToNumber (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br/>
+</pre><p>Converts an XPath object to its number value</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number value</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCastToString"/>xmlXPathCastToString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathCastToString (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br/>
+</pre><p>Converts an existing object to its string() equivalent</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the allocated string value of the object, NULL in case of error. It's up to the caller to free the string memory with xmlFree().</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCmpNodes"/>xmlXPathCmpNodes ()</h3><pre class="programlisting">int xmlXPathCmpNodes (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node1, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br/>
+</pre><p>Compare two nodes w.r.t document order</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node1</tt></i>:</span></td><td>the first node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>the second node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-2 in case of error 1 if first point &lt; second point, 0 if it's the same node, -1 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCompile"/>xmlXPathCompile ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> xmlXPathCompile (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>Compile an XPath expression</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> resulting from the compilation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCompiledEval"/>xmlXPathCompiledEval ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathCompiledEval (<a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br/>
+</pre><p>Evaluate the Precompiled XPath expression in the given context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled XPath expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCompiledEvalToBoolean"/>xmlXPathCompiledEvalToBoolean ()</h3><pre class="programlisting">int xmlXPathCompiledEvalToBoolean (<a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br/>
+</pre><p>Applies the XPath boolean() function on the result of the given compiled expression.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled XPath expression</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the expression evaluated to true, 0 if to false and -1 in API and internal errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathContextSetCache"/>xmlXPathContextSetCache ()</h3><pre class="programlisting">int xmlXPathContextSetCache (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> int active, <br/> int value, <br/> int options)<br/>
+</pre><p>Creates/frees an object cache on the XPath context. If activates XPath objects (xmlXPathObject) will be cached internally to be reused. @options: 0: This will set the XPath object caching: @value: This will set the maximum number of XPath objects to be cached per slot There are 5 slots for: node-set, string, number, boolean, and misc objects. Use &lt;0 for the default number (100). Other values for @options have currently no effect.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>active</tt></i>:</span></td><td>enables/disables (creates/frees) the cache</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a value with semantics dependent on @options</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>options (currently only the value 0 is used)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the setting succeeded, and -1 on API or internal errors.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathConvertBoolean"/>xmlXPathConvertBoolean ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathConvertBoolean (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br/>
+</pre><p>Converts an existing object to its boolean() equivalent</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new object, the old one is freed (or the operation is done directly on @val)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathConvertNumber"/>xmlXPathConvertNumber ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathConvertNumber (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br/>
+</pre><p>Converts an existing object to its number() equivalent</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new object, the old one is freed (or the operation is done directly on @val)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathConvertString"/>xmlXPathConvertString ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathConvertString (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br/>
+</pre><p>Converts an existing object to its string() equivalent</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new object, the old one is freed (or the operation is done directly on @val)</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCtxtCompile"/>xmlXPathCtxtCompile ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> xmlXPathCtxtCompile (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>Compile an XPath expression</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> resulting from the compilation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathEval"/>xmlXPathEval ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathEval (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br/>
+</pre><p>Evaluate the XPath Location Path in the given context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathEvalExpression"/>xmlXPathEvalExpression ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathEvalExpression (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br/>
+</pre><p>Alias for xmlXPathEval().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathEvalPredicate"/>xmlXPathEvalPredicate ()</h3><pre class="programlisting">int xmlXPathEvalPredicate (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> res)<br/>
+</pre><p>Evaluate a predicate result for the current node. A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the position of the context node in the context node list (as returned by the position function) and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>res</tt></i>:</span></td><td>the Predicate Expression evaluation result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if predicate is true, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFreeCompExpr"/>xmlXPathFreeCompExpr ()</h3><pre class="programlisting">void xmlXPathFreeCompExpr (<a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp)<br/>
+</pre><p>Free up the memory allocated by @comp</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>an XPATH comp</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFreeContext"/>xmlXPathFreeContext ()</h3><pre class="programlisting">void xmlXPathFreeContext (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br/>
+</pre><p>Free up an <a href="libxml2-xpath.html#xmlXPathContext">xmlXPathContext</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context to free</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFreeNodeSet"/>xmlXPathFreeNodeSet ()</h3><pre class="programlisting">void xmlXPathFreeNodeSet (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> obj)<br/>
+</pre><p>Free the NodeSet compound (not the actual nodes !).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> to free</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFreeNodeSetList"/>xmlXPathFreeNodeSetList ()</h3><pre class="programlisting">void xmlXPathFreeNodeSetList (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj)<br/>
+</pre><p>Free up the <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> @obj but don't deallocate the objects in the list contrary to xmlXPathFreeObject().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>an existing NodeSetList object</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFreeObject"/>xmlXPathFreeObject ()</h3><pre class="programlisting">void xmlXPathFreeObject (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj)<br/>
+</pre><p>Free up an <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> object.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the object to free</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathInit"/>xmlXPathInit ()</h3><pre class="programlisting">void xmlXPathInit (void)<br/>
+</pre><p>Initialize the XPath environment</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathIsInf"/>xmlXPathIsInf ()</h3><pre class="programlisting">int xmlXPathIsInf (double val)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathIsNaN"/>xmlXPathIsNaN ()</h3><pre class="programlisting">int xmlXPathIsNaN (double val)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is a NaN, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNewContext"/>xmlXPathNewContext ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> xmlXPathNewContext (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathContext">xmlXPathContext</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathContext">xmlXPathContext</a> just allocated. The caller will need to free it.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeEval"/>xmlXPathNodeEval ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNodeEval (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br/>
+</pre><p>Evaluate the XPath Location Path in the given context. The node 'node' is set as the context node. The context node is not restored.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to to use as the context node</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetCreate"/>xmlXPathNodeSetCreate ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeSetCreate (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> of type double and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an initial xmlNodePtr, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathObjectCopy"/>xmlXPathObjectCopy ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathObjectCopy (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br/>
+</pre><p>allocate a new copy of a given object</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the original object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathOrderDocElems"/>xmlXPathOrderDocElems ()</h3><pre class="programlisting">long xmlXPathOrderDocElems (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
+</pre><p>Call this routine to speed up XPath computation on static documents. This stamps all the element nodes with the document order Like for line information, the order is kept in the element-&gt;content field, the value stored is actually - the node number (starting at -1) to be able to differentiate from line numbers.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an input document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements found in the document or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathSetContextNode"/>xmlXPathSetContextNode ()</h3><pre class="programlisting">int xmlXPathSetContextNode (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br/>
+</pre><p>Sets 'node' as the context node. The node must be in the same document as that associated with the context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to to use as the context node</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error or 0 if successful</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xpathInternals.html b/libxml2-2.9.10/doc/devhelp/libxml2-xpathInternals.html
new file mode 100644
index 0000000..45220b1
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xpathInternals.html
@@ -0,0 +1,787 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xpathInternals: internal interfaces for XML Path Language implementation</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xpath.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="n" href="libxml2-xpointer.html">
+ <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xpathInternals</span>
+ </h2>
+ <p>xpathInternals - internal interfaces for XML Path Language implementation</p>
+ <p>internal interfaces for XML Path Language implementation used to build new modules on top of XPath like XPointer and XSLT </p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">#define <a href="#xmlXPathStackIsExternal">xmlXPathStackIsExternal</a>(ctxt);
+#define <a href="#xmlXPathReturnEmptyString">xmlXPathReturnEmptyString</a>(ctxt);
+#define <a href="#XP_ERROR0">XP_ERROR0</a>(X);
+#define <a href="#xmlXPathSetTypeError">xmlXPathSetTypeError</a>(ctxt);
+#define <a href="#xmlXPathReturnEmptyNodeSet">xmlXPathReturnEmptyNodeSet</a>(ctxt);
+#define <a href="#xmlXPathReturnTrue">xmlXPathReturnTrue</a>(ctxt);
+#define <a href="#xmlXPathReturnBoolean">xmlXPathReturnBoolean</a>(ctxt, val);
+#define <a href="#xmlXPathGetContextNode">xmlXPathGetContextNode</a>(ctxt);
+#define <a href="#CAST_TO_NUMBER">CAST_TO_NUMBER</a>;
+#define <a href="#CHECK_ARITY">CHECK_ARITY</a>(x);
+#define <a href="#CHECK_TYPE0">CHECK_TYPE0</a>(typeval);
+#define <a href="#CAST_TO_STRING">CAST_TO_STRING</a>;
+#define <a href="#xmlXPathReturnExternal">xmlXPathReturnExternal</a>(ctxt, val);
+#define <a href="#xmlXPathStackIsNodeSet">xmlXPathStackIsNodeSet</a>(ctxt);
+#define <a href="#xmlXPathCheckError">xmlXPathCheckError</a>(ctxt);
+#define <a href="#xmlXPathSetError">xmlXPathSetError</a>(ctxt, err);
+#define <a href="#CHECK_ERROR">CHECK_ERROR</a>;
+#define <a href="#xmlXPathReturnString">xmlXPathReturnString</a>(ctxt, str);
+#define <a href="#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a>;
+#define <a href="#xmlXPathSetArityError">xmlXPathSetArityError</a>(ctxt);
+#define <a href="#CHECK_TYPE">CHECK_TYPE</a>(typeval);
+#define <a href="#xmlXPathReturnFalse">xmlXPathReturnFalse</a>(ctxt);
+#define <a href="#xmlXPathReturnNumber">xmlXPathReturnNumber</a>(ctxt, val);
+#define <a href="#CHECK_ERROR0">CHECK_ERROR0</a>;
+#define <a href="#xmlXPathGetDocument">xmlXPathGetDocument</a>(ctxt);
+#define <a href="#xmlXPathGetError">xmlXPathGetError</a>(ctxt);
+#define <a href="#XP_ERROR">XP_ERROR</a>(X);
+#define <a href="#xmlXPathEmptyNodeSet">xmlXPathEmptyNodeSet</a>(ns);
+#define <a href="#xmlXPathReturnNodeSet">xmlXPathReturnNodeSet</a>(ctxt, ns);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val2);
+void <a href="#xmlXPathNumberFunction">xmlXPathNumberFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathNsLookup">xmlXPathNsLookup</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+void <a href="#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> int val);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewNodeSetList">xmlXPathNewNodeSetList</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val);
+int <a href="#xmlXPathPopBoolean">xmlXPathPopBoolean</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewString">xmlXPathNewString</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextChild">xmlXPathNextChild</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathPopString">xmlXPathPopString</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+void <a href="#xmlXPathNamespaceURIFunction">xmlXPathNamespaceURIFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+int <a href="#xmlXPathCompareValues">xmlXPathCompareValues</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int inf, <br/> int strict);
+void <a href="#xmlXPathConcatFunction">xmlXPathConcatFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+int <a href="#xmlXPathNodeSetContains">xmlXPathNodeSetContains</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val);
+void <a href="#xmlXPatherror">xmlXPatherror</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> const char * file, <br/> int line, <br/> int no);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextAncestor">xmlXPathNextAncestor</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+void <a href="#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathRoot">xmlXPathRoot</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+void <a href="#xmlXPathRegisteredNsCleanup">xmlXPathRegisteredNsCleanup</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt);
+int <a href="#xmlXPathIsNodeType">xmlXPathIsNodeType</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextFollowing">xmlXPathNextFollowing</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+void <a href="#xmlXPathAddValues">xmlXPathAddValues</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+int <a href="#xmlXPathRegisterVariable">xmlXPathRegisterVariable</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#valuePop">valuePop</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+void <a href="#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathIntersection">xmlXPathIntersection</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2);
+void <a href="#xmlXPathContainsFunction">xmlXPathContainsFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathNodeSetSort">xmlXPathNodeSetSort</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> set);
+void <a href="#xmlXPathStartsWithFunction">xmlXPathStartsWithFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeLeading">xmlXPathNodeLeading</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+void <a href="#xmlXPathSumFunction">xmlXPathSumFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+int <a href="#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+int <a href="#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> res);
+void <a href="#xmlXPathErr">xmlXPathErr</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int error);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextPreceding">xmlXPathNextPreceding</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+<a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> <a href="#xmlXPathFunctionLookupNS">xmlXPathFunctionLookupNS</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri);
+void <a href="#xmlXPathRegisteredFuncsCleanup">xmlXPathRegisteredFuncsCleanup</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt);
+void <a href="#xmlXPathRegisterAllFunctions">xmlXPathRegisterAllFunctions</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt);
+<a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> <a href="#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#xmlXPathPositionFunction">xmlXPathPositionFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathRegisteredVariablesCleanup">xmlXPathRegisteredVariablesCleanup</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewFloat">xmlXPathNewFloat</a> (double val);
+int <a href="#xmlXPathRegisterNs">xmlXPathRegisterNs</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextParent">xmlXPathNextParent</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+void <a href="#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a> (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns);
+int <a href="#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes);
+int <a href="#valuePush">valuePush</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value);
+void <a href="#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathStringFunction">xmlXPathStringFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathFloorFunction">xmlXPathFloorFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathIdFunction">xmlXPathIdFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathLastFunction">xmlXPathLastFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextSelf">xmlXPathNextSelf</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+void <a href="#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a> (FILE * output, <br/> <a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br/> int depth);
+void <a href="#xmlXPathFalseFunction">xmlXPathFalseFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+void <a href="#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathRegisterFuncLookup">xmlXPathRegisterFuncLookup</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a> f, <br/> void * funcCtxt);
+double <a href="#xmlXPathPopNumber">xmlXPathPopNumber</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+void <a href="#xmlXPathRoundFunction">xmlXPathRoundFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+void <a href="#xmlXPathCountFunction">xmlXPathCountFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathParseNCName">xmlXPathParseNCName</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+void <a href="#xmlXPathTrueFunction">xmlXPathTrueFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewBoolean">xmlXPathNewBoolean</a> (int val);
+void <a href="#xmlXPathSubValues">xmlXPathSubValues</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+int <a href="#xmlXPathEqualValues">xmlXPathEqualValues</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2);
+void <a href="#xmlXPathMultValues">xmlXPathMultValues</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+void <a href="#xmlXPathModValues">xmlXPathModValues</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> <a href="#xmlXPathNewParserContext">xmlXPathNewParserContext</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathWrapNodeSet">xmlXPathWrapNodeSet</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathWrapString">xmlXPathWrapString</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
+void <a href="#xmlXPathLangFunction">xmlXPathLangFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+int <a href="#xmlXPathRegisterFuncNS">xmlXPathRegisterFuncNS</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri, <br/> <a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> f);
+int <a href="#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns);
+void <a href="#xmlXPathLocalNameFunction">xmlXPathLocalNameFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathDifference">xmlXPathDifference</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+void * <a href="#xmlXPathPopExternal">xmlXPathPopExternal</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+void <a href="#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+void <a href="#xmlXPathRegisterVariableLookup">xmlXPathRegisterVariableLookup</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a> f, <br/> void * data);
+void <a href="#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewCString">xmlXPathNewCString</a> (const char * val);
+int <a href="#xmlXPathRegisterFunc">xmlXPathRegisterFunc</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> f);
+void <a href="#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextDescendant">xmlXPathNextDescendant</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextNamespace">xmlXPathNextNamespace</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathWrapCString">xmlXPathWrapCString</a> (char * val);
+void <a href="#xmlXPathFreeParserContext">xmlXPathFreeParserContext</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node);
+int <a href="#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val);
+int <a href="#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewValueTree">xmlXPathNewValueTree</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathDistinct">xmlXPathDistinct</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathVariableLookup">xmlXPathVariableLookup</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+void <a href="#xmlXPathNotFunction">xmlXPathNotFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+double <a href="#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathWrapExternal">xmlXPathWrapExternal</a> (void * val);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextAttribute">xmlXPathNextAttribute</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur);
+void <a href="#xmlXPathDivValues">xmlXPathDivValues</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathVariableLookupNS">xmlXPathVariableLookupNS</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri);
+int <a href="#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a> (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathTrailing">xmlXPathTrailing</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2);
+void <a href="#xmlXPathEvalExpr">xmlXPathEvalExpr</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+void <a href="#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a> (FILE * output, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> cur, <br/> int depth);
+<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathLeading">xmlXPathLeading</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathParseName">xmlXPathParseName</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="CAST_TO_BOOLEAN">Macro </a>CAST_TO_BOOLEAN</h3><pre class="programlisting">#define <a href="#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a>;
+</pre><p>Macro to try to cast the value on the top of the XPath stack to a boolean.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="CAST_TO_NUMBER">Macro </a>CAST_TO_NUMBER</h3><pre class="programlisting">#define <a href="#CAST_TO_NUMBER">CAST_TO_NUMBER</a>;
+</pre><p>Macro to try to cast the value on the top of the XPath stack to a number.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="CAST_TO_STRING">Macro </a>CAST_TO_STRING</h3><pre class="programlisting">#define <a href="#CAST_TO_STRING">CAST_TO_STRING</a>;
+</pre><p>Macro to try to cast the value on the top of the XPath stack to a string.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="CHECK_ARITY">Macro </a>CHECK_ARITY</h3><pre class="programlisting">#define <a href="#CHECK_ARITY">CHECK_ARITY</a>(x);
+</pre><p>Macro to check that the number of args passed to an XPath function matches.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>x</tt></i>:</span></td><td>the number of expected args</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="CHECK_ERROR">Macro </a>CHECK_ERROR</h3><pre class="programlisting">#define <a href="#CHECK_ERROR">CHECK_ERROR</a>;
+</pre><p>Macro to return from the function if an XPath error was detected.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="CHECK_ERROR0">Macro </a>CHECK_ERROR0</h3><pre class="programlisting">#define <a href="#CHECK_ERROR0">CHECK_ERROR0</a>;
+</pre><p>Macro to return 0 from the function if an XPath error was detected.</p>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="CHECK_TYPE">Macro </a>CHECK_TYPE</h3><pre class="programlisting">#define <a href="#CHECK_TYPE">CHECK_TYPE</a>(typeval);
+</pre><p>Macro to check that the value on top of the XPath stack is of a given type.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>typeval</tt></i>:</span></td><td>the XPath type</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="CHECK_TYPE0">Macro </a>CHECK_TYPE0</h3><pre class="programlisting">#define <a href="#CHECK_TYPE0">CHECK_TYPE0</a>(typeval);
+</pre><p>Macro to check that the value on top of the XPath stack is of a given type. Return(0) in case of failure</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>typeval</tt></i>:</span></td><td>the XPath type</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XP_ERROR">Macro </a>XP_ERROR</h3><pre class="programlisting">#define <a href="#XP_ERROR">XP_ERROR</a>(X);
+</pre><p>Macro to raise an XPath error and return.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>X</tt></i>:</span></td><td>the error code</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="XP_ERROR0">Macro </a>XP_ERROR0</h3><pre class="programlisting">#define <a href="#XP_ERROR0">XP_ERROR0</a>(X);
+</pre><p>Macro to raise an XPath error and return 0.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>X</tt></i>:</span></td><td>the error code</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCheckError">Macro </a>xmlXPathCheckError</h3><pre class="programlisting">#define <a href="#xmlXPathCheckError">xmlXPathCheckError</a>(ctxt);
+</pre><p>Check if an XPath error was raised. Returns true if an error has been raised, false otherwise.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathEmptyNodeSet">Macro </a>xmlXPathEmptyNodeSet</h3><pre class="programlisting">#define <a href="#xmlXPathEmptyNodeSet">xmlXPathEmptyNodeSet</a>(ns);
+</pre><p>Empties a node-set.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathGetContextNode">Macro </a>xmlXPathGetContextNode</h3><pre class="programlisting">#define <a href="#xmlXPathGetContextNode">xmlXPathGetContextNode</a>(ctxt);
+</pre><p>Get the context node of an XPath context. Returns the context node.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathGetDocument">Macro </a>xmlXPathGetDocument</h3><pre class="programlisting">#define <a href="#xmlXPathGetDocument">xmlXPathGetDocument</a>(ctxt);
+</pre><p>Get the document of an XPath context. Returns the context document.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathGetError">Macro </a>xmlXPathGetError</h3><pre class="programlisting">#define <a href="#xmlXPathGetError">xmlXPathGetError</a>(ctxt);
+</pre><p>Get the error code of an XPath context. Returns the context error.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathReturnBoolean">Macro </a>xmlXPathReturnBoolean</h3><pre class="programlisting">#define <a href="#xmlXPathReturnBoolean">xmlXPathReturnBoolean</a>(ctxt, val);
+</pre><p>Pushes the boolean @val on the context stack.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a boolean</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathReturnEmptyNodeSet">Macro </a>xmlXPathReturnEmptyNodeSet</h3><pre class="programlisting">#define <a href="#xmlXPathReturnEmptyNodeSet">xmlXPathReturnEmptyNodeSet</a>(ctxt);
+</pre><p>Pushes an empty node-set on the context stack.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathReturnEmptyString">Macro </a>xmlXPathReturnEmptyString</h3><pre class="programlisting">#define <a href="#xmlXPathReturnEmptyString">xmlXPathReturnEmptyString</a>(ctxt);
+</pre><p>Pushes an empty string on the stack.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathReturnExternal">Macro </a>xmlXPathReturnExternal</h3><pre class="programlisting">#define <a href="#xmlXPathReturnExternal">xmlXPathReturnExternal</a>(ctxt, val);
+</pre><p>Pushes user data on the context stack.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>user data</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathReturnFalse">Macro </a>xmlXPathReturnFalse</h3><pre class="programlisting">#define <a href="#xmlXPathReturnFalse">xmlXPathReturnFalse</a>(ctxt);
+</pre><p>Pushes false on the context stack.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathReturnNodeSet">Macro </a>xmlXPathReturnNodeSet</h3><pre class="programlisting">#define <a href="#xmlXPathReturnNodeSet">xmlXPathReturnNodeSet</a>(ctxt, ns);
+</pre><p>Pushes the node-set @ns on the context stack.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathReturnNumber">Macro </a>xmlXPathReturnNumber</h3><pre class="programlisting">#define <a href="#xmlXPathReturnNumber">xmlXPathReturnNumber</a>(ctxt, val);
+</pre><p>Pushes the double @val on the context stack.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathReturnString">Macro </a>xmlXPathReturnString</h3><pre class="programlisting">#define <a href="#xmlXPathReturnString">xmlXPathReturnString</a>(ctxt, str);
+</pre><p>Pushes the string @str on the context stack.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>a string</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathReturnTrue">Macro </a>xmlXPathReturnTrue</h3><pre class="programlisting">#define <a href="#xmlXPathReturnTrue">xmlXPathReturnTrue</a>(ctxt);
+</pre><p>Pushes true on the context stack.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathSetArityError">Macro </a>xmlXPathSetArityError</h3><pre class="programlisting">#define <a href="#xmlXPathSetArityError">xmlXPathSetArityError</a>(ctxt);
+</pre><p>Raises an <a href="libxml2-xpath.html#XPATH_INVALID_ARITY">XPATH_INVALID_ARITY</a> error.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathSetError">Macro </a>xmlXPathSetError</h3><pre class="programlisting">#define <a href="#xmlXPathSetError">xmlXPathSetError</a>(ctxt, err);
+</pre><p>Raises an error.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>an <a href="libxml2-xpath.html#xmlXPathError">xmlXPathError</a> code</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathSetTypeError">Macro </a>xmlXPathSetTypeError</h3><pre class="programlisting">#define <a href="#xmlXPathSetTypeError">xmlXPathSetTypeError</a>(ctxt);
+</pre><p>Raises an <a href="libxml2-xpath.html#XPATH_INVALID_TYPE">XPATH_INVALID_TYPE</a> error.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathStackIsExternal">Macro </a>xmlXPathStackIsExternal</h3><pre class="programlisting">#define <a href="#xmlXPathStackIsExternal">xmlXPathStackIsExternal</a>(ctxt);
+</pre><p>Checks if the current value on the XPath stack is an external object. Returns true if the current object on the stack is an external object.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathStackIsNodeSet">Macro </a>xmlXPathStackIsNodeSet</h3><pre class="programlisting">#define <a href="#xmlXPathStackIsNodeSet">xmlXPathStackIsNodeSet</a>(ctxt);
+</pre><p>Check if the current value on the XPath stack is a node set or an XSLT value tree. Returns true if the current object on the stack is a node-set.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr></tbody></table></div>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="valuePop"/>valuePop ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> valuePop (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Pops the top XPath object from the value stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath evaluation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the XPath object just removed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="valuePush"/>valuePush ()</h3><pre class="programlisting">int valuePush (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value)<br/>
+</pre><p>Pushes a new XPath object on top of the value stack. If value is NULL, a memory error is recorded in the parser context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath evaluation context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of items on the value stack, or -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathAddValues"/>xmlXPathAddValues ()</h3><pre class="programlisting">void xmlXPathAddValues (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Implement the add operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathBooleanFunction"/>xmlXPathBooleanFunction ()</h3><pre class="programlisting">void xmlXPathBooleanFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the boolean() XPath function boolean boolean(object) The boolean function converts its argument to a boolean as follows: - a number is true if and only if it is neither positive or negative zero nor NaN - a node-set is true if and only if it is non-empty - a string is true if and only if its length is non-zero</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCeilingFunction"/>xmlXPathCeilingFunction ()</h3><pre class="programlisting">void xmlXPathCeilingFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the ceiling() XPath function number ceiling(number) The ceiling function returns the smallest (closest to negative infinity) number that is not less than the argument and that is an integer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCompareValues"/>xmlXPathCompareValues ()</h3><pre class="programlisting">int xmlXPathCompareValues (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int inf, <br/> int strict)<br/>
+</pre><p>Implement the compare operation on XPath objects: @arg1 &lt; @arg2 (1, 1, ... @arg1 &lt;= @arg2 (1, 0, ... @arg1 &gt; @arg2 (0, 1, ... @arg1 &gt;= @arg2 (0, 0, ... When neither object to be compared is a node-set and the operator is &lt;=, &lt;, &gt;=, &gt;, then the objects are compared by converted both objects to numbers and comparing the numbers according to IEEE 754. The &lt; comparison will be true if and only if the first number is less than the second number. The &lt;= comparison will be true if and only if the first number is less than or equal to the second number. The &gt; comparison will be true if and only if the first number is greater than the second number. The &gt;= comparison will be true if and only if the first number is greater than or equal to the second number.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>inf</tt></i>:</span></td><td>less than (1) or greater than (0)</td></tr><tr><td><span class="term"><i><tt>strict</tt></i>:</span></td><td>is the comparison strict</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the comparison succeeded, 0 if it failed</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathConcatFunction"/>xmlXPathConcatFunction ()</h3><pre class="programlisting">void xmlXPathConcatFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the concat() XPath function string concat(string, string, string*) The concat function returns the concatenation of its arguments.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathContainsFunction"/>xmlXPathContainsFunction ()</h3><pre class="programlisting">void xmlXPathContainsFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the contains() XPath function boolean contains(string, string) The contains function returns true if the first argument string contains the second argument string, and otherwise returns false.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathCountFunction"/>xmlXPathCountFunction ()</h3><pre class="programlisting">void xmlXPathCountFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the count() XPath function number count(node-set)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathDebugDumpCompExpr"/>xmlXPathDebugDumpCompExpr ()</h3><pre class="programlisting">void xmlXPathDebugDumpCompExpr (FILE * output, <br/> <a href="libxml2-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br/> int depth)<br/>
+</pre><p>Dumps the tree of the compiled XPath expression.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled XPath expression</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathDebugDumpObject"/>xmlXPathDebugDumpObject ()</h3><pre class="programlisting">void xmlXPathDebugDumpObject (FILE * output, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> cur, <br/> int depth)<br/>
+</pre><p>Dump the content of the object for debugging purposes</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * to dump the output</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the object to inspect</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>indentation level</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathDifference"/>xmlXPathDifference ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathDifference (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br/>
+</pre><p>Implements the EXSLT - Sets difference() function: node-set set:difference (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the difference between the two node sets, or nodes1 if nodes2 is empty</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathDistinct"/>xmlXPathDistinct ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathDistinct (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes)<br/>
+</pre><p>Implements the EXSLT - Sets distinct() function: node-set set:distinct (node-set) @nodes is sorted by document order, then #exslSetsDistinctSorted is called with the sorted node-set</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a subset of the nodes contained in @nodes, or @nodes if it is empty</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathDistinctSorted"/>xmlXPathDistinctSorted ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathDistinctSorted (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes)<br/>
+</pre><p>Implements the EXSLT - Sets distinct() function: node-set set:distinct (node-set)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a subset of the nodes contained in @nodes, or @nodes if it is empty</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathDivValues"/>xmlXPathDivValues ()</h3><pre class="programlisting">void xmlXPathDivValues (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Implement the div operation on XPath objects @arg1 / @arg2: The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathEqualValues"/>xmlXPathEqualValues ()</h3><pre class="programlisting">int xmlXPathEqualValues (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Implement the equal operation on XPath objects content: @arg1 == @arg2</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or 1 depending on the results of the test.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathErr"/>xmlXPathErr ()</h3><pre class="programlisting">void xmlXPathErr (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int error)<br/>
+</pre><p>Handle an XPath error</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XPath parser context</td></tr><tr><td><span class="term"><i><tt>error</tt></i>:</span></td><td>the error code</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathEvalExpr"/>xmlXPathEvalExpr ()</h3><pre class="programlisting">void xmlXPathEvalExpr (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Parse and evaluate an XPath expression in the given context, then push the result on the context stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathEvaluatePredicateResult"/>xmlXPathEvaluatePredicateResult ()</h3><pre class="programlisting">int xmlXPathEvaluatePredicateResult (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> res)<br/>
+</pre><p>Evaluate a predicate result for the current node. A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the position of the context node in the context node list (as returned by the position function) and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>res</tt></i>:</span></td><td>the Predicate Expression evaluation result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if predicate is true, 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFalseFunction"/>xmlXPathFalseFunction ()</h3><pre class="programlisting">void xmlXPathFalseFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the false() XPath function boolean false()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFloorFunction"/>xmlXPathFloorFunction ()</h3><pre class="programlisting">void xmlXPathFloorFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the floor() XPath function number floor(number) The floor function returns the largest (closest to positive infinity) number that is not greater than the argument and that is an integer.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFreeParserContext"/>xmlXPathFreeParserContext ()</h3><pre class="programlisting">void xmlXPathFreeParserContext (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Free up an <a href="libxml2-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context to free</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFunctionLookup"/>xmlXPathFunctionLookup ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> xmlXPathFunctionLookup (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Search in the Function array of the context for the given function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> or NULL if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathFunctionLookupNS"/>xmlXPathFunctionLookupNS ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> xmlXPathFunctionLookupNS (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)<br/>
+</pre><p>Search in the Function array of the context for the given function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> or NULL if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathHasSameNodes"/>xmlXPathHasSameNodes ()</h3><pre class="programlisting">int xmlXPathHasSameNodes (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br/>
+</pre><p>Implements the EXSLT - Sets has-same-nodes function: boolean set:has-same-node(node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true (1) if @nodes1 shares any node with @nodes2, false (0) otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathIdFunction"/>xmlXPathIdFunction ()</h3><pre class="programlisting">void xmlXPathIdFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the id() XPath function node-set id(object) The id function selects elements by their unique ID (see [5.2.1 Unique IDs]). When the argument to id is of type node-set, then the result is the union of the result of applying id to the string value of each of the nodes in the argument node-set. When the argument to id is of any other type, the argument is converted to a string as if by a call to the string function; the string is split into a whitespace-separated list of tokens (whitespace is any sequence of <a href="libxml2-SAX.html#characters">characters</a> matching the production S); the result is a node-set containing the elements in the same document as the context node that have a unique ID equal to any of the tokens in the list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathIntersection"/>xmlXPathIntersection ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathIntersection (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br/>
+</pre><p>Implements the EXSLT - Sets intersection() function: node-set set:intersection (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a node set comprising the nodes that are within both the node sets passed as arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathIsNodeType"/>xmlXPathIsNodeType ()</h3><pre class="programlisting">int xmlXPathIsNodeType (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Is the name given a NodeType one. [38] NodeType ::= 'comment' | 'text' | 'processing-instruction' | 'node'</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>a name string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathLangFunction"/>xmlXPathLangFunction ()</h3><pre class="programlisting">void xmlXPathLangFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the lang() XPath function boolean lang(string) The lang function returns true or false depending on whether the language of the context node as specified by xml:lang attributes is the same as or is a sublanguage of the language specified by the argument string. The language of the context node is determined by the value of the xml:lang <a href="libxml2-SAX.html#attribute">attribute</a> on the context node, or, if the context node has no xml:lang attribute, by the value of the xml:lang <a href="libxml2-SAX.html#attribute">attribute</a> on the nearest ancestor of the context node that has an xml:lang attribute. If there is no such attribute, then lang</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathLastFunction"/>xmlXPathLastFunction ()</h3><pre class="programlisting">void xmlXPathLastFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the last() XPath function number last() The last function returns the number of nodes in the context node list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathLeading"/>xmlXPathLeading ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathLeading (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br/>
+</pre><p>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #exslSetsLeadingSorted is called.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes1 that precede the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn't contain @nodes2</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathLeadingSorted"/>xmlXPathLeadingSorted ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathLeadingSorted (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br/>
+</pre><p>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes1 that precede the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn't contain @nodes2</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathLocalNameFunction"/>xmlXPathLocalNameFunction ()</h3><pre class="programlisting">void xmlXPathLocalNameFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the local-name() XPath function string local-name(node-set?) The local-name function returns a string containing the local part of the name of the node in the argument node-set that is first in document order. If the node-set is empty or the first node has no name, an empty string is returned. If the argument is omitted it defaults to the context node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathModValues"/>xmlXPathModValues ()</h3><pre class="programlisting">void xmlXPathModValues (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Implement the mod operation on XPath objects: @arg1 / @arg2 The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathMultValues"/>xmlXPathMultValues ()</h3><pre class="programlisting">void xmlXPathMultValues (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Implement the multiply operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNamespaceURIFunction"/>xmlXPathNamespaceURIFunction ()</h3><pre class="programlisting">void xmlXPathNamespaceURIFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the namespace-uri() XPath function string namespace-uri(node-set?) The namespace-uri function returns a string containing the namespace URI of the expanded name of the node in the argument node-set that is first in document order. If the node-set is empty, the first node has no name, or the expanded name has no namespace URI, an empty string is returned. If the argument is omitted it defaults to the context node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNewBoolean"/>xmlXPathNewBoolean ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewBoolean (int val)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type boolean and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the boolean value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNewCString"/>xmlXPathNewCString ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewCString (const char * val)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type string and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the char * value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNewFloat"/>xmlXPathNewFloat ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewFloat (double val)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type double and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNewNodeSet"/>xmlXPathNewNodeSet ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewNodeSet (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type NodeSet and initialize it with the single Node @val</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the NodePtr value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNewNodeSetList"/>xmlXPathNewNodeSetList ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewNodeSetList (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type NodeSet and initialize it with the Nodeset @val</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an existing NodeSet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNewParserContext"/>xmlXPathNewParserContext ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> xmlXPathNewParserContext (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a> just allocated.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNewString"/>xmlXPathNewString ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewString (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type string and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNewValueTree"/>xmlXPathNewValueTree ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewValueTree (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type Value Tree (XSLT) and initialize it with the tree root @val</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the NodePtr value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextAncestor"/>xmlXPathNextAncestor ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextAncestor (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "ancestor" direction the ancestor axis contains the ancestors of the context node; the ancestors of the context node consist of the parent of context node and the parent's parent and so on; the nodes are ordered in reverse document order; thus the parent is the first node on the axis, and the parent's parent is the second node on the axis</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextAncestorOrSelf"/>xmlXPathNextAncestorOrSelf ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextAncestorOrSelf (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "ancestor-or-self" direction he ancestor-or-self axis contains the context node and ancestors of the context node in reverse document order; thus the context node is the first node on the axis, and the context node's parent the second; parent here is defined the same as with the parent axis.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextAttribute"/>xmlXPathNextAttribute ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextAttribute (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "attribute" direction TODO: support DTD inherited default attributes</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current <a href="libxml2-SAX.html#attribute">attribute</a> in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextChild"/>xmlXPathNextChild ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextChild (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "child" direction The child axis contains the children of the context node in document order.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextDescendant"/>xmlXPathNextDescendant ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextDescendant (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "descendant" direction the descendant axis contains the descendants of the context node in document order; a descendant is a child or a child of a child and so on.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextDescendantOrSelf"/>xmlXPathNextDescendantOrSelf ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextDescendantOrSelf (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "descendant-or-self" direction the descendant-or-self axis contains the context node and the descendants of the context node in document order; thus the context node is the first node on the axis, and the first child of the context node is the second node on the axis</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextFollowing"/>xmlXPathNextFollowing ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextFollowing (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "following" direction The following axis contains all nodes in the same document as the context node that are after the context node in document order, excluding any descendants and excluding <a href="libxml2-SAX.html#attribute">attribute</a> nodes and namespace nodes; the nodes are ordered in document order</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextFollowingSibling"/>xmlXPathNextFollowingSibling ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextFollowingSibling (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "following-sibling" direction The following-sibling axis contains the following siblings of the context node in document order.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextNamespace"/>xmlXPathNextNamespace ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextNamespace (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "namespace" direction the namespace axis contains the namespace nodes of the context node; the order of nodes on this axis is implementation-defined; the axis will be empty unless the context node is an element We keep the XML namespace node at the end of the list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current <a href="libxml2-SAX.html#attribute">attribute</a> in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextParent"/>xmlXPathNextParent ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextParent (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "parent" direction The parent axis contains the parent of the context node, if there is one.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextPreceding"/>xmlXPathNextPreceding ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextPreceding (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "preceding" direction the preceding axis contains all nodes in the same document as the context node that are before the context node in document order, excluding any ancestors and excluding <a href="libxml2-SAX.html#attribute">attribute</a> nodes and namespace nodes; the nodes are ordered in reverse document order</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextPrecedingSibling"/>xmlXPathNextPrecedingSibling ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextPrecedingSibling (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "preceding-sibling" direction The preceding-sibling axis contains the preceding siblings of the context node in reverse document order; the first preceding sibling is first on the axis; the sibling preceding that node is the second on the axis and so on.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNextSelf"/>xmlXPathNextSelf ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextSelf (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
+</pre><p>Traversal function for the "self" direction The self axis contains just the context node itself</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeLeading"/>xmlXPathNodeLeading ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeLeading (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes is sorted by document order, then #exslSetsNodeLeadingSorted is called.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeLeadingSorted"/>xmlXPathNodeLeadingSorted ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeLeadingSorted (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetAdd"/>xmlXPathNodeSetAdd ()</h3><pre class="programlisting">int xmlXPathNodeSetAdd (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br/>
+</pre><p>add a new <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> to an existing NodeSet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial node set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a new <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetAddNs"/>xmlXPathNodeSetAddNs ()</h3><pre class="programlisting">int xmlXPathNodeSetAddNs (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br/> <a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns)<br/>
+</pre><p>add a new namespace node to an existing NodeSet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial node set</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the hosting node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a the namespace node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetAddUnique"/>xmlXPathNodeSetAddUnique ()</h3><pre class="programlisting">int xmlXPathNodeSetAddUnique (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br/>
+</pre><p>add a new <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> to an existing NodeSet, optimized version when we are sure the node is not already in the set.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial node set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a new <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetContains"/>xmlXPathNodeSetContains ()</h3><pre class="programlisting">int xmlXPathNodeSetContains (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br/>
+</pre><p>checks whether @cur contains @val</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node-set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true (1) if @cur contains @val, false (0) otherwise</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetDel"/>xmlXPathNodeSetDel ()</h3><pre class="programlisting">void xmlXPathNodeSetDel (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br/>
+</pre><p>Removes an <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> from an existing NodeSet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial node set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetFreeNs"/>xmlXPathNodeSetFreeNs ()</h3><pre class="programlisting">void xmlXPathNodeSetFreeNs (<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> ns)<br/>
+</pre><p>Namespace nodes in libxml don't match the XPath semantic. In a node set the namespace nodes are duplicated and the next pointer is set to the parent node in the XPath semantic. Check if such a node needs to be freed</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the XPath namespace node found in a nodeset.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetMerge"/>xmlXPathNodeSetMerge ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeSetMerge (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val2)<br/>
+</pre><p>Merges two nodesets, all nodes from @val2 are added to @val1 if @val1 is NULL, a new set is created and copied from @val2</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val1</tt></i>:</span></td><td>the first NodeSet or NULL</td></tr><tr><td><span class="term"><i><tt>val2</tt></i>:</span></td><td>the second NodeSet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>@val1 once extended or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetRemove"/>xmlXPathNodeSetRemove ()</h3><pre class="programlisting">void xmlXPathNodeSetRemove (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br/> int val)<br/>
+</pre><p>Removes an entry from an existing NodeSet list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial node set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the index to remove</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeSetSort"/>xmlXPathNodeSetSort ()</h3><pre class="programlisting">void xmlXPathNodeSetSort (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> set)<br/>
+</pre><p>Sort the node set in document order</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>set</tt></i>:</span></td><td>the node set</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeTrailing"/>xmlXPathNodeTrailing ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeTrailing (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes is sorted by document order, then #xmlXPathNodeTrailingSorted is called.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes that follow @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNodeTrailingSorted"/>xmlXPathNodeTrailingSorted ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeTrailingSorted (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br/>
+</pre><p>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes that follow @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNormalizeFunction"/>xmlXPathNormalizeFunction ()</h3><pre class="programlisting">void xmlXPathNormalizeFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the normalize-space() XPath function string normalize-space(string?) The normalize-space function returns the argument string with white space normalized by stripping leading and trailing whitespace and replacing sequences of whitespace <a href="libxml2-SAX.html#characters">characters</a> by a single space. Whitespace <a href="libxml2-SAX.html#characters">characters</a> are the same allowed by the S production in XML. If the argument is omitted, it defaults to the context node converted to a string, in other words the value of the context node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNotEqualValues"/>xmlXPathNotEqualValues ()</h3><pre class="programlisting">int xmlXPathNotEqualValues (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Implement the equal operation on XPath objects content: @arg1 == @arg2</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or 1 depending on the results of the test.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNotFunction"/>xmlXPathNotFunction ()</h3><pre class="programlisting">void xmlXPathNotFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the not() XPath function boolean not(boolean) The not function returns true if its argument is false, and false otherwise.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNsLookup"/>xmlXPathNsLookup ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathNsLookup (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br/>
+</pre><p>Search in the namespace declaration array of the context for the given namespace name associated to the given prefix</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value or NULL if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathNumberFunction"/>xmlXPathNumberFunction ()</h3><pre class="programlisting">void xmlXPathNumberFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the number() XPath function number number(object?)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathParseNCName"/>xmlXPathParseNCName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathParseNCName (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>parse an XML namespace non qualified name. [NS 3] NCName ::= (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace name or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathParseName"/>xmlXPathParseName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathParseName (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>parse an XML name [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') (NameChar)*</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace name or NULL</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathPopBoolean"/>xmlXPathPopBoolean ()</h3><pre class="programlisting">int xmlXPathPopBoolean (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Pops a boolean from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the boolean</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathPopExternal"/>xmlXPathPopExternal ()</h3><pre class="programlisting">void * xmlXPathPopExternal (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Pops an external object from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the object</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathPopNodeSet"/>xmlXPathPopNodeSet ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathPopNodeSet (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Pops a node-set from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node-set</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathPopNumber"/>xmlXPathPopNumber ()</h3><pre class="programlisting">double xmlXPathPopNumber (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Pops a number from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathPopString"/>xmlXPathPopString ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathPopString (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Pops a string from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathPositionFunction"/>xmlXPathPositionFunction ()</h3><pre class="programlisting">void xmlXPathPositionFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the position() XPath function number position() The position function returns the position of the context node in the context node list. The first position is 1, and so the last position will be equal to last().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisterAllFunctions"/>xmlXPathRegisterAllFunctions ()</h3><pre class="programlisting">void xmlXPathRegisterAllFunctions (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br/>
+</pre><p>Registers all default XPath functions in this context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisterFunc"/>xmlXPathRegisterFunc ()</h3><pre class="programlisting">int xmlXPathRegisterFunc (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> f)<br/>
+</pre><p>Register a new function. If @f is NULL it unregisters the function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the function implementation or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisterFuncLookup"/>xmlXPathRegisterFuncLookup ()</h3><pre class="programlisting">void xmlXPathRegisterFuncLookup (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a> f, <br/> void * funcCtxt)<br/>
+</pre><p>Registers an external mechanism to do function lookup.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the lookup function</td></tr><tr><td><span class="term"><i><tt>funcCtxt</tt></i>:</span></td><td>the lookup data</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisterFuncNS"/>xmlXPathRegisterFuncNS ()</h3><pre class="programlisting">int xmlXPathRegisterFuncNS (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri, <br/> <a href="libxml2-xpath.html#xmlXPathFunction">xmlXPathFunction</a> f)<br/>
+</pre><p>Register a new function. If @f is NULL it unregisters the function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the function implementation or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisterNs"/>xmlXPathRegisterNs ()</h3><pre class="programlisting">int xmlXPathRegisterNs (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)<br/>
+</pre><p>Register a new namespace. If @ns_uri is NULL it unregisters the namespace</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix cannot be NULL or empty string</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the namespace name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisterVariable"/>xmlXPathRegisterVariable ()</h3><pre class="programlisting">int xmlXPathRegisterVariable (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value)<br/>
+</pre><p>Register a new variable value. If @value is NULL it unregisters the variable</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the variable value or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisterVariableLookup"/>xmlXPathRegisterVariableLookup ()</h3><pre class="programlisting">void xmlXPathRegisterVariableLookup (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a> f, <br/> void * data)<br/>
+</pre><p>register an external mechanism to do variable lookup</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the lookup function</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the lookup data</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisterVariableNS"/>xmlXPathRegisterVariableNS ()</h3><pre class="programlisting">int xmlXPathRegisterVariableNS (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value)<br/>
+</pre><p>Register a new variable value. If @value is NULL it unregisters the variable</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the variable namespace URI</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the variable value or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisteredFuncsCleanup"/>xmlXPathRegisteredFuncsCleanup ()</h3><pre class="programlisting">void xmlXPathRegisteredFuncsCleanup (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br/>
+</pre><p>Cleanup the XPath context data associated to registered functions</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisteredNsCleanup"/>xmlXPathRegisteredNsCleanup ()</h3><pre class="programlisting">void xmlXPathRegisteredNsCleanup (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br/>
+</pre><p>Cleanup the XPath context data associated to registered variables</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRegisteredVariablesCleanup"/>xmlXPathRegisteredVariablesCleanup ()</h3><pre class="programlisting">void xmlXPathRegisteredVariablesCleanup (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br/>
+</pre><p>Cleanup the XPath context data associated to registered variables</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRoot"/>xmlXPathRoot ()</h3><pre class="programlisting">void xmlXPathRoot (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Initialize the context to the root of the document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathRoundFunction"/>xmlXPathRoundFunction ()</h3><pre class="programlisting">void xmlXPathRoundFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is closest to positive infinity is returned.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathStartsWithFunction"/>xmlXPathStartsWithFunction ()</h3><pre class="programlisting">void xmlXPathStartsWithFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the starts-with() XPath function boolean starts-with(string, string) The starts-with function returns true if the first argument string starts with the second argument string, and otherwise returns false.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathStringEvalNumber"/>xmlXPathStringEvalNumber ()</h3><pre class="programlisting">double xmlXPathStringEvalNumber (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
+</pre><p>[30a] Float ::= Number ('e' Digits?)? [30] Number ::= Digits ('.' Digits?)? | '.' Digits [31] Digits ::= [0-9]+ Compile a Number in the string In complement of the Number expression, this function also handles negative values : '-' Number.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>A string to scan</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the double value.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathStringFunction"/>xmlXPathStringFunction ()</h3><pre class="programlisting">void xmlXPathStringFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the string() XPath function string string(object?) The string function converts an object to a string as follows: - A node-set is converted to a string by returning the value of the node in the node-set that is first in document order. If the node-set is empty, an empty string is returned. - A number is converted to a string as follows + NaN is converted to the string NaN + positive zero is converted to the string 0 + negative zero is converted to the string 0 + positive infinity is converted to the string Infinity + negative infinity is converted to the string -Infinity + if the number is an integer, the number is represented in decimal form as a Number with no decimal point and no leading zeros, preceded by a minus sign (-) if the number is negative + otherwise, the number is represented in decimal form as a Number including a decimal point with at least one digit before the decimal point and at least one digit after the decimal point, preceded by a minus sign (-) if the number is negative; there must be no leading zeros before the decimal point apart possibly from the one required digit immediately before the decimal point; beyond the one required digit after the decimal point there must be as many, but only as many, more digits as are needed to uniquely distinguish the number from all other IEEE 754 numeric values. - The boolean false value is converted to the string false. The boolean true value is converted to the string true. If the argument is omitted, it defaults to a node-set with the context node as its only member.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathStringLengthFunction"/>xmlXPathStringLengthFunction ()</h3><pre class="programlisting">void xmlXPathStringLengthFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the string-length() XPath function number string-length(string?) The string-length returns the number of <a href="libxml2-SAX.html#characters">characters</a> in the string (see [3.6 Strings]). If the argument is omitted, it defaults to the context node converted to a string, in other words the value of the context node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathSubValues"/>xmlXPathSubValues ()</h3><pre class="programlisting">void xmlXPathSubValues (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Implement the subtraction operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathSubstringAfterFunction"/>xmlXPathSubstringAfterFunction ()</h3><pre class="programlisting">void xmlXPathSubstringAfterFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the substring-after() XPath function string substring-after(string, string) The substring-after function returns the substring of the first argument string that follows the first occurrence of the second argument string in the first argument string, or the empty stringi if the first argument string does not contain the second argument string. For example, substring-after("1999/04/01","/") returns 04/01, and substring-after("1999/04/01","19") returns 99/04/01.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathSubstringBeforeFunction"/>xmlXPathSubstringBeforeFunction ()</h3><pre class="programlisting">void xmlXPathSubstringBeforeFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the substring-before() XPath function string substring-before(string, string) The substring-before function returns the substring of the first argument string that precedes the first occurrence of the second argument string in the first argument string, or the empty string if the first argument string does not contain the second argument string. For example, substring-before("1999/04/01","/") returns 1999.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathSubstringFunction"/>xmlXPathSubstringFunction ()</h3><pre class="programlisting">void xmlXPathSubstringFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the substring() XPath function string substring(string, number, number?) The substring function returns the substring of the first argument starting at the position specified in the second argument with length specified in the third argument. For example, substring("12345",2,3) returns "234". If the third argument is not specified, it returns the substring starting at the position specified in the second argument and continuing to the end of the string. For example, substring("12345",2) returns "2345". More precisely, each character in the string (see [3.6 Strings]) is considered to have a numeric position: the position of the first character is 1, the position of the second character is 2 and so on. The returned substring contains those <a href="libxml2-SAX.html#characters">characters</a> for which the position of the character is greater than or equal to the second argument and, if the third argument is specified, less than the sum of the second and third arguments; the comparisons and addition used for the above follow the standard IEEE 754 rules. Thus: - substring("12345", 1.5, 2.6) returns "234" - substring("12345", 0, 3) returns "12" - substring("12345", 0 div 0, 3) returns "" - substring("12345", 1, 0 div 0) returns "" - substring("12345", -42, 1 div 0) returns "12345" - substring("12345", -1 div 0, 1 div 0) returns ""</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathSumFunction"/>xmlXPathSumFunction ()</h3><pre class="programlisting">void xmlXPathSumFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the sum() XPath function number sum(node-set) The sum function returns the sum of the values of the nodes in the argument node-set.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathTrailing"/>xmlXPathTrailing ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathTrailing (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br/>
+</pre><p>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #xmlXPathTrailingSorted is called.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn't contain @nodes2</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathTrailingSorted"/>xmlXPathTrailingSorted ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathTrailingSorted (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br/> <a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br/>
+</pre><p>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn't contain @nodes2</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathTranslateFunction"/>xmlXPathTranslateFunction ()</h3><pre class="programlisting">void xmlXPathTranslateFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the translate() XPath function string translate(string, string, string) The translate function returns the first argument string with occurrences of <a href="libxml2-SAX.html#characters">characters</a> in the second argument string replaced by the character at the corresponding position in the third argument string. For example, translate("bar","abc","ABC") returns the string BAr. If there is a character in the second argument string with no character at a corresponding position in the third argument string (because the second argument string is longer than the third argument string), then occurrences of that character in the first argument string are removed. For example, translate("--aaa--","abc-","ABC")</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathTrueFunction"/>xmlXPathTrueFunction ()</h3><pre class="programlisting">void xmlXPathTrueFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the true() XPath function boolean true()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathValueFlipSign"/>xmlXPathValueFlipSign ()</h3><pre class="programlisting">void xmlXPathValueFlipSign (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>Implement the unary - operation on an XPath object The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathVariableLookup"/>xmlXPathVariableLookup ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathVariableLookup (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Search in the Variable array of the context for the given variable value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the value or NULL if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathVariableLookupNS"/>xmlXPathVariableLookupNS ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathVariableLookupNS (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)<br/>
+</pre><p>Search in the Variable array of the context for the given variable value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the variable namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the a copy of the value or NULL if not found</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathWrapCString"/>xmlXPathWrapCString ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathWrapCString (char * val)<br/>
+</pre><p>Wraps a string into an XPath object.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the char * value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathWrapExternal"/>xmlXPathWrapExternal ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathWrapExternal (void * val)<br/>
+</pre><p>Wraps the @val data into an XPath object.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the user data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathWrapNodeSet"/>xmlXPathWrapNodeSet ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathWrapNodeSet (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val)<br/>
+</pre><p>Wrap the Nodeset @val in a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the NodePtr value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPathWrapString"/>xmlXPathWrapString ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathWrapString (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val)<br/>
+</pre><p>Wraps the @val string into an XPath object.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPatherror"/>xmlXPatherror ()</h3><pre class="programlisting">void xmlXPatherror (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> const char * file, <br/> int line, <br/> int no)<br/>
+</pre><p>Formats an error message.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>no</tt></i>:</span></td><td>the error number</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2-xpointer.html b/libxml2-2.9.10/doc/devhelp/libxml2-xpointer.html
new file mode 100644
index 0000000..4d7c337
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2-xpointer.html
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>xpointer: API to handle XML Pointers</title>
+ <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+ <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
+ <link rel="up" href="general.html" title="API"/>
+ <link rel="stylesheet" href="style.css" type="text/css"/>
+ <link rel="chapter" href="general.html" title="API"/>
+ </head>
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+ <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <td>
+ <a accesskey="p" href="libxml2-xpathInternals.html">
+ <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="u" href="general.html">
+ <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+ </a>
+ </td>
+ <td>
+ <a accesskey="h" href="index.html">
+ <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+ </a>
+ </td>
+ <th width="100%" align="center">libxml2 Reference Manual</th>
+ </tr>
+ </table>
+ <h2>
+ <span class="refentrytitle">xpointer</span>
+ </h2>
+ <p>xpointer - API to handle XML Pointers</p>
+ <p>API to handle XML Pointers Base implementation was made accordingly to W3C Candidate Recommendation 7 June 2000</p>
+ <p>Author(s): Daniel Veillard </p>
+ <div class="refsynopsisdiv">
+ <h2>Synopsis</h2>
+ <pre class="synopsis">typedef struct _xmlLocationSet <a href="#xmlLocationSet">xmlLocationSet</a>;
+typedef <a href="libxml2-xpointer.html#xmlLocationSet">xmlLocationSet</a> * <a href="#xmlLocationSetPtr">xmlLocationSetPtr</a>;
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRange">xmlXPtrNewRange</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br/> int startindex, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> end, <br/> int endindex);
+void <a href="#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a> (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> obj);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrWrapLocationSet">xmlXPtrWrapLocationSet</a> (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrEval">xmlXPtrEval</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRangeNodes">xmlXPtrNewRangeNodes</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> end);
+void <a href="#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a> (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val);
+void <a href="#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> start, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewLocationSetNodeSet">xmlXPtrNewLocationSetNodeSet</a> (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> set);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> start, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> end);
+<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> <a href="#xmlXPtrLocationSetCreate">xmlXPtrLocationSetCreate</a> (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end);
+<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> <a href="#xmlXPtrNewContext">xmlXPtrNewContext</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> here, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> origin);
+void <a href="#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a> (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br/> int val);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end);
+void <a href="#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a> (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val);
+<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> <a href="#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a> (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val1, <br/> <a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val2);
+void <a href="#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a> (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt);
+<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a> (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> end);
+</pre>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Description</h2>
+ </div>
+ <div class="refsect1" lang="en">
+ <h2>Details</h2>
+ <div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="xmlLocationSet">Structure </a>xmlLocationSet</h3><pre class="programlisting">struct _xmlLocationSet {
+ int locNr : number of locations in the set
+ int locMax : size of the array as allocated
+ <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> * locTab : array of locations
+} xmlLocationSet;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlLocationSetPtr">Typedef </a>xmlLocationSetPtr</h3><pre class="programlisting"><a href="libxml2-xpointer.html#xmlLocationSet">xmlLocationSet</a> * xmlLocationSetPtr;
+</pre><p/>
+</div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrBuildNodeList"/>xmlXPtrBuildNodeList ()</h3><pre class="programlisting"><a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPtrBuildNodeList (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj)<br/>
+</pre><p>Build a node list tree copy of the XPointer result. This will drop Attributes and Namespace declarations.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the XPointer result from the evaluation.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> list or NULL. the caller has to free the node tree.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrEval"/>xmlXPtrEval ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrEval (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br/>
+</pre><p>Evaluate the XPath Location Path in the given context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPointer expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPointer context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrEvalRangePredicate"/>xmlXPtrEvalRangePredicate ()</h3><pre class="programlisting">void xmlXPtrEvalRangePredicate (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br/>
+</pre><p>[8] Predicate ::= '[' PredicateExpr ']' [9] PredicateExpr ::= Expr Evaluate a predicate as in xmlXPathEvalPredicate() but for a Location Set instead of a node set</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPointer Parser context</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrFreeLocationSet"/>xmlXPtrFreeLocationSet ()</h3><pre class="programlisting">void xmlXPtrFreeLocationSet (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> obj)<br/>
+</pre><p>Free the LocationSet compound (not the actual ranges !).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the <a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> to free</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrLocationSetAdd"/>xmlXPtrLocationSetAdd ()</h3><pre class="programlisting">void xmlXPtrLocationSetAdd (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br/>
+</pre><p>add a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> to an existing LocationSet If the location already exist in the set @val is freed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial range set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrLocationSetCreate"/>xmlXPtrLocationSetCreate ()</h3><pre class="programlisting"><a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> xmlXPtrLocationSetCreate (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br/>
+</pre><p>Create a new <a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> of type double and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an initial xmlXPathObjectPtr, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrLocationSetDel"/>xmlXPtrLocationSetDel ()</h3><pre class="programlisting">void xmlXPtrLocationSetDel (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br/>
+</pre><p>Removes an <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> from an existing LocationSet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial range set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a></td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrLocationSetMerge"/>xmlXPtrLocationSetMerge ()</h3><pre class="programlisting"><a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> xmlXPtrLocationSetMerge (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val1, <br/> <a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val2)<br/>
+</pre><p>Merges two rangesets, all ranges from @val2 are added to @val1</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val1</tt></i>:</span></td><td>the first LocationSet</td></tr><tr><td><span class="term"><i><tt>val2</tt></i>:</span></td><td>the second LocationSet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>val1 once extended or NULL in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrLocationSetRemove"/>xmlXPtrLocationSetRemove ()</h3><pre class="programlisting">void xmlXPtrLocationSetRemove (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br/> int val)<br/>
+</pre><p>Removes an entry from an existing LocationSet list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial range set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the index to remove</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrNewCollapsedRange"/>xmlXPtrNewCollapsedRange ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewCollapsedRange (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range using a single nodes</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting and ending node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrNewContext"/>xmlXPtrNewContext ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> xmlXPtrNewContext (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> here, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> origin)<br/>
+</pre><p>Create a new XPointer context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document</td></tr><tr><td><span class="term"><i><tt>here</tt></i>:</span></td><td>the node that directly contains the XPointer being evaluated or NULL</td></tr><tr><td><span class="term"><i><tt>origin</tt></i>:</span></td><td>the element from which a user or program initiated traversal of the link, or NULL.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathContext">xmlXPathContext</a> just allocated.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrNewLocationSetNodeSet"/>xmlXPtrNewLocationSetNodeSet ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewLocationSetNodeSet (<a href="libxml2-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> set)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type LocationSet and initialize it with all the nodes from @set</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>set</tt></i>:</span></td><td>a node set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrNewLocationSetNodes"/>xmlXPtrNewLocationSetNodes ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewLocationSetNodes (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> end)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type LocationSet and initialize it with the single range made of the two nodes @start and @end</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the start NodePtr value</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the end NodePtr value or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrNewRange"/>xmlXPtrNewRange ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRange (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br/> int startindex, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> end, <br/> int endindex)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting node</td></tr><tr><td><span class="term"><i><tt>startindex</tt></i>:</span></td><td>the start index</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending point</td></tr><tr><td><span class="term"><i><tt>endindex</tt></i>:</span></td><td>the ending index</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrNewRangeNodeObject"/>xmlXPtrNewRangeNodeObject ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangeNodeObject (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range from a not to an object</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting node</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrNewRangeNodePoint"/>xmlXPtrNewRangeNodePoint ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangeNodePoint (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range from a node to a point</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting node</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrNewRangeNodes"/>xmlXPtrNewRangeNodes ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangeNodes (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> end)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range using 2 nodes</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting node</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrNewRangePointNode"/>xmlXPtrNewRangePointNode ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangePointNode (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> start, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> end)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range from a point to a node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting point</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrNewRangePoints"/>xmlXPtrNewRangePoints ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangePoints (<a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> start, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)<br/>
+</pre><p>Create a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range using 2 Points</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting point</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrRangeToFunction"/>xmlXPtrRangeToFunction ()</h3><pre class="programlisting">void xmlXPtrRangeToFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
+</pre><p>Implement the range-to() XPointer function Obsolete. range-to is not a real function but a special type of location step which is handled in xpath.c.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPointer Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of args</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlXPtrWrapLocationSet"/>xmlXPtrWrapLocationSet ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrWrapLocationSet (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val)<br/>
+</pre><p>Wrap the LocationSet @val in a new <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the LocationSet value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/libxml2-2.9.10/doc/devhelp/libxml2.devhelp b/libxml2-2.9.10/doc/devhelp/libxml2.devhelp
new file mode 100644
index 0000000..2e8eab3
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/libxml2.devhelp
@@ -0,0 +1,3577 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<book xmlns="http://www.devhelp.net/book" title="libxml2 Reference Manual" link="index.html" author="" name="libxml2">
+ <chapters>
+ <sub name="API" link="general.html">
+ <sub name="DOCBparser" link="libxml2-DOCBparser.html"/>
+ <sub name="HTMLparser" link="libxml2-HTMLparser.html"/>
+ <sub name="HTMLtree" link="libxml2-HTMLtree.html"/>
+ <sub name="SAX" link="libxml2-SAX.html"/>
+ <sub name="SAX2" link="libxml2-SAX2.html"/>
+ <sub name="c14n" link="libxml2-c14n.html"/>
+ <sub name="catalog" link="libxml2-catalog.html"/>
+ <sub name="chvalid" link="libxml2-chvalid.html"/>
+ <sub name="debugXML" link="libxml2-debugXML.html"/>
+ <sub name="dict" link="libxml2-dict.html"/>
+ <sub name="encoding" link="libxml2-encoding.html"/>
+ <sub name="entities" link="libxml2-entities.html"/>
+ <sub name="globals" link="libxml2-globals.html"/>
+ <sub name="hash" link="libxml2-hash.html"/>
+ <sub name="list" link="libxml2-list.html"/>
+ <sub name="nanoftp" link="libxml2-nanoftp.html"/>
+ <sub name="nanohttp" link="libxml2-nanohttp.html"/>
+ <sub name="parser" link="libxml2-parser.html"/>
+ <sub name="parserInternals" link="libxml2-parserInternals.html"/>
+ <sub name="pattern" link="libxml2-pattern.html"/>
+ <sub name="relaxng" link="libxml2-relaxng.html"/>
+ <sub name="schemasInternals" link="libxml2-schemasInternals.html"/>
+ <sub name="schematron" link="libxml2-schematron.html"/>
+ <sub name="threads" link="libxml2-threads.html"/>
+ <sub name="tree" link="libxml2-tree.html"/>
+ <sub name="uri" link="libxml2-uri.html"/>
+ <sub name="valid" link="libxml2-valid.html"/>
+ <sub name="xinclude" link="libxml2-xinclude.html"/>
+ <sub name="xlink" link="libxml2-xlink.html"/>
+ <sub name="xmlIO" link="libxml2-xmlIO.html"/>
+ <sub name="xmlautomata" link="libxml2-xmlautomata.html"/>
+ <sub name="xmlerror" link="libxml2-xmlerror.html"/>
+ <sub name="xmlexports" link="libxml2-xmlexports.html"/>
+ <sub name="xmlmemory" link="libxml2-xmlmemory.html"/>
+ <sub name="xmlmodule" link="libxml2-xmlmodule.html"/>
+ <sub name="xmlreader" link="libxml2-xmlreader.html"/>
+ <sub name="xmlregexp" link="libxml2-xmlregexp.html"/>
+ <sub name="xmlsave" link="libxml2-xmlsave.html"/>
+ <sub name="xmlschemas" link="libxml2-xmlschemas.html"/>
+ <sub name="xmlschemastypes" link="libxml2-xmlschemastypes.html"/>
+ <sub name="xmlstring" link="libxml2-xmlstring.html"/>
+ <sub name="xmlunicode" link="libxml2-xmlunicode.html"/>
+ <sub name="xmlversion" link="libxml2-xmlversion.html"/>
+ <sub name="xmlwriter" link="libxml2-xmlwriter.html"/>
+ <sub name="xpath" link="libxml2-xpath.html"/>
+ <sub name="xpathInternals" link="libxml2-xpathInternals.html"/>
+ <sub name="xpointer" link="libxml2-xpointer.html"/>
+ </sub>
+ </chapters>
+ <functions>
+ <function name="ATTRIBUTE_UNUSED" link="libxml2-xmlversion.html#ATTRIBUTE_UNUSED"/>
+ <function name="BAD_CAST" link="libxml2-xmlstring.html#BAD_CAST"/>
+ <function name="BASE_BUFFER_SIZE" link="libxml2-tree.html#BASE_BUFFER_SIZE"/>
+ <function name="CAST_TO_BOOLEAN" link="libxml2-xpathInternals.html#CAST_TO_BOOLEAN"/>
+ <function name="CAST_TO_NUMBER" link="libxml2-xpathInternals.html#CAST_TO_NUMBER"/>
+ <function name="CAST_TO_STRING" link="libxml2-xpathInternals.html#CAST_TO_STRING"/>
+ <function name="CHECK_ARITY" link="libxml2-xpathInternals.html#CHECK_ARITY"/>
+ <function name="CHECK_ERROR" link="libxml2-xpathInternals.html#CHECK_ERROR"/>
+ <function name="CHECK_ERROR0" link="libxml2-xpathInternals.html#CHECK_ERROR0"/>
+ <function name="CHECK_TYPE" link="libxml2-xpathInternals.html#CHECK_TYPE"/>
+ <function name="CHECK_TYPE0" link="libxml2-xpathInternals.html#CHECK_TYPE0"/>
+ <function name="DEBUG_MEMORY" link="libxml2-xmlmemory.html#DEBUG_MEMORY"/>
+ <function name="DEBUG_MEMORY_LOCATION" link="libxml2-xmlversion.html#DEBUG_MEMORY_LOCATION"/>
+ <function name="HTML_COMMENT_NODE" link="libxml2-HTMLtree.html#HTML_COMMENT_NODE"/>
+ <function name="HTML_ENTITY_REF_NODE" link="libxml2-HTMLtree.html#HTML_ENTITY_REF_NODE"/>
+ <function name="HTML_PI_NODE" link="libxml2-HTMLtree.html#HTML_PI_NODE"/>
+ <function name="HTML_PRESERVE_NODE" link="libxml2-HTMLtree.html#HTML_PRESERVE_NODE"/>
+ <function name="HTML_TEXT_NODE" link="libxml2-HTMLtree.html#HTML_TEXT_NODE"/>
+ <function name="ICU_PIVOT_BUF_SIZE" link="libxml2-encoding.html#ICU_PIVOT_BUF_SIZE"/>
+ <function name="INPUT_CHUNK" link="libxml2-parserInternals.html#INPUT_CHUNK"/>
+ <function name="INVALID_SOCKET" link="libxml2-nanoftp.html#INVALID_SOCKET"/>
+ <function name="IS_ASCII_DIGIT" link="libxml2-parserInternals.html#IS_ASCII_DIGIT"/>
+ <function name="IS_ASCII_LETTER" link="libxml2-parserInternals.html#IS_ASCII_LETTER"/>
+ <function name="IS_BASECHAR" link="libxml2-parserInternals.html#IS_BASECHAR"/>
+ <function name="IS_BLANK" link="libxml2-parserInternals.html#IS_BLANK"/>
+ <function name="IS_BLANK_CH" link="libxml2-parserInternals.html#IS_BLANK_CH"/>
+ <function name="IS_BYTE_CHAR" link="libxml2-parserInternals.html#IS_BYTE_CHAR"/>
+ <function name="IS_CHAR" link="libxml2-parserInternals.html#IS_CHAR"/>
+ <function name="IS_CHAR_CH" link="libxml2-parserInternals.html#IS_CHAR_CH"/>
+ <function name="IS_COMBINING" link="libxml2-parserInternals.html#IS_COMBINING"/>
+ <function name="IS_COMBINING_CH" link="libxml2-parserInternals.html#IS_COMBINING_CH"/>
+ <function name="IS_DIGIT" link="libxml2-parserInternals.html#IS_DIGIT"/>
+ <function name="IS_DIGIT_CH" link="libxml2-parserInternals.html#IS_DIGIT_CH"/>
+ <function name="IS_EXTENDER" link="libxml2-parserInternals.html#IS_EXTENDER"/>
+ <function name="IS_EXTENDER_CH" link="libxml2-parserInternals.html#IS_EXTENDER_CH"/>
+ <function name="IS_IDEOGRAPHIC" link="libxml2-parserInternals.html#IS_IDEOGRAPHIC"/>
+ <function name="IS_LETTER" link="libxml2-parserInternals.html#IS_LETTER"/>
+ <function name="IS_LETTER_CH" link="libxml2-parserInternals.html#IS_LETTER_CH"/>
+ <function name="IS_PUBIDCHAR" link="libxml2-parserInternals.html#IS_PUBIDCHAR"/>
+ <function name="IS_PUBIDCHAR_CH" link="libxml2-parserInternals.html#IS_PUBIDCHAR_CH"/>
+ <function name="LIBXML2_NEW_BUFFER" link="libxml2-tree.html#LIBXML2_NEW_BUFFER"/>
+ <function name="LIBXML_ATTR_ALLOC_SIZE" link="libxml2-xmlversion.html#LIBXML_ATTR_ALLOC_SIZE"/>
+ <function name="LIBXML_ATTR_FORMAT" link="libxml2-xmlversion.html#LIBXML_ATTR_FORMAT"/>
+ <function name="LIBXML_AUTOMATA_ENABLED" link="libxml2-xmlversion.html#LIBXML_AUTOMATA_ENABLED"/>
+ <function name="LIBXML_C14N_ENABLED" link="libxml2-xmlversion.html#LIBXML_C14N_ENABLED"/>
+ <function name="LIBXML_CATALOG_ENABLED" link="libxml2-xmlversion.html#LIBXML_CATALOG_ENABLED"/>
+ <function name="LIBXML_DEBUG_ENABLED" link="libxml2-xmlversion.html#LIBXML_DEBUG_ENABLED"/>
+ <function name="LIBXML_DEBUG_RUNTIME" link="libxml2-xmlversion.html#LIBXML_DEBUG_RUNTIME"/>
+ <function name="LIBXML_DLL_IMPORT" link="libxml2-xmlexports.html#LIBXML_DLL_IMPORT"/>
+ <function name="LIBXML_DOCB_ENABLED" link="libxml2-xmlversion.html#LIBXML_DOCB_ENABLED"/>
+ <function name="LIBXML_DOTTED_VERSION" link="libxml2-xmlversion.html#LIBXML_DOTTED_VERSION"/>
+ <function name="LIBXML_EXPR_ENABLED" link="libxml2-xmlversion.html#LIBXML_EXPR_ENABLED"/>
+ <function name="LIBXML_FTP_ENABLED" link="libxml2-xmlversion.html#LIBXML_FTP_ENABLED"/>
+ <function name="LIBXML_HTML_ENABLED" link="libxml2-xmlversion.html#LIBXML_HTML_ENABLED"/>
+ <function name="LIBXML_HTTP_ENABLED" link="libxml2-xmlversion.html#LIBXML_HTTP_ENABLED"/>
+ <function name="LIBXML_ICONV_ENABLED" link="libxml2-xmlversion.html#LIBXML_ICONV_ENABLED"/>
+ <function name="LIBXML_ICU_ENABLED" link="libxml2-xmlversion.html#LIBXML_ICU_ENABLED"/>
+ <function name="LIBXML_ISO8859X_ENABLED" link="libxml2-xmlversion.html#LIBXML_ISO8859X_ENABLED"/>
+ <function name="LIBXML_LEGACY_ENABLED" link="libxml2-xmlversion.html#LIBXML_LEGACY_ENABLED"/>
+ <function name="LIBXML_LZMA_ENABLED" link="libxml2-xmlversion.html#LIBXML_LZMA_ENABLED"/>
+ <function name="LIBXML_MODULES_ENABLED" link="libxml2-xmlversion.html#LIBXML_MODULES_ENABLED"/>
+ <function name="LIBXML_MODULE_EXTENSION" link="libxml2-xmlversion.html#LIBXML_MODULE_EXTENSION"/>
+ <function name="LIBXML_OUTPUT_ENABLED" link="libxml2-xmlversion.html#LIBXML_OUTPUT_ENABLED"/>
+ <function name="LIBXML_PATTERN_ENABLED" link="libxml2-xmlversion.html#LIBXML_PATTERN_ENABLED"/>
+ <function name="LIBXML_PUSH_ENABLED" link="libxml2-xmlversion.html#LIBXML_PUSH_ENABLED"/>
+ <function name="LIBXML_READER_ENABLED" link="libxml2-xmlversion.html#LIBXML_READER_ENABLED"/>
+ <function name="LIBXML_REGEXP_ENABLED" link="libxml2-xmlversion.html#LIBXML_REGEXP_ENABLED"/>
+ <function name="LIBXML_SAX1_ENABLED" link="libxml2-xmlversion.html#LIBXML_SAX1_ENABLED"/>
+ <function name="LIBXML_SCHEMAS_ENABLED" link="libxml2-xmlversion.html#LIBXML_SCHEMAS_ENABLED"/>
+ <function name="LIBXML_SCHEMATRON_ENABLED" link="libxml2-xmlversion.html#LIBXML_SCHEMATRON_ENABLED"/>
+ <function name="LIBXML_TEST_VERSION" link="libxml2-xmlversion.html#LIBXML_TEST_VERSION"/>
+ <function name="LIBXML_THREAD_ALLOC_ENABLED" link="libxml2-xmlversion.html#LIBXML_THREAD_ALLOC_ENABLED"/>
+ <function name="LIBXML_THREAD_ENABLED" link="libxml2-xmlversion.html#LIBXML_THREAD_ENABLED"/>
+ <function name="LIBXML_TREE_ENABLED" link="libxml2-xmlversion.html#LIBXML_TREE_ENABLED"/>
+ <function name="LIBXML_UNICODE_ENABLED" link="libxml2-xmlversion.html#LIBXML_UNICODE_ENABLED"/>
+ <function name="LIBXML_VALID_ENABLED" link="libxml2-xmlversion.html#LIBXML_VALID_ENABLED"/>
+ <function name="LIBXML_VERSION" link="libxml2-xmlversion.html#LIBXML_VERSION"/>
+ <function name="LIBXML_VERSION_EXTRA" link="libxml2-xmlversion.html#LIBXML_VERSION_EXTRA"/>
+ <function name="LIBXML_VERSION_STRING" link="libxml2-xmlversion.html#LIBXML_VERSION_STRING"/>
+ <function name="LIBXML_WRITER_ENABLED" link="libxml2-xmlversion.html#LIBXML_WRITER_ENABLED"/>
+ <function name="LIBXML_XINCLUDE_ENABLED" link="libxml2-xmlversion.html#LIBXML_XINCLUDE_ENABLED"/>
+ <function name="LIBXML_XPATH_ENABLED" link="libxml2-xmlversion.html#LIBXML_XPATH_ENABLED"/>
+ <function name="LIBXML_XPTR_ENABLED" link="libxml2-xmlversion.html#LIBXML_XPTR_ENABLED"/>
+ <function name="LIBXML_ZLIB_ENABLED" link="libxml2-xmlversion.html#LIBXML_ZLIB_ENABLED"/>
+ <function name="MOVETO_ENDTAG" link="libxml2-parserInternals.html#MOVETO_ENDTAG"/>
+ <function name="MOVETO_STARTTAG" link="libxml2-parserInternals.html#MOVETO_STARTTAG"/>
+ <function name="SKIP_EOL" link="libxml2-parserInternals.html#SKIP_EOL"/>
+ <function name="SOCKET" link="libxml2-nanoftp.html#SOCKET"/>
+ <function name="WITHOUT_TRIO" link="libxml2-xmlversion.html#WITHOUT_TRIO"/>
+ <function name="WITH_TRIO" link="libxml2-xmlversion.html#WITH_TRIO"/>
+ <function name="XINCLUDE_FALLBACK" link="libxml2-xinclude.html#XINCLUDE_FALLBACK"/>
+ <function name="XINCLUDE_HREF" link="libxml2-xinclude.html#XINCLUDE_HREF"/>
+ <function name="XINCLUDE_NODE" link="libxml2-xinclude.html#XINCLUDE_NODE"/>
+ <function name="XINCLUDE_NS" link="libxml2-xinclude.html#XINCLUDE_NS"/>
+ <function name="XINCLUDE_OLD_NS" link="libxml2-xinclude.html#XINCLUDE_OLD_NS"/>
+ <function name="XINCLUDE_PARSE" link="libxml2-xinclude.html#XINCLUDE_PARSE"/>
+ <function name="XINCLUDE_PARSE_ENCODING" link="libxml2-xinclude.html#XINCLUDE_PARSE_ENCODING"/>
+ <function name="XINCLUDE_PARSE_TEXT" link="libxml2-xinclude.html#XINCLUDE_PARSE_TEXT"/>
+ <function name="XINCLUDE_PARSE_XML" link="libxml2-xinclude.html#XINCLUDE_PARSE_XML"/>
+ <function name="XINCLUDE_PARSE_XPOINTER" link="libxml2-xinclude.html#XINCLUDE_PARSE_XPOINTER"/>
+ <function name="XMLCALL" link="libxml2-xmlexports.html#XMLCALL"/>
+ <function name="XMLCDECL" link="libxml2-xmlexports.html#XMLCDECL"/>
+ <function name="XMLPUBFUN" link="libxml2-xmlexports.html#XMLPUBFUN"/>
+ <function name="XMLPUBVAR" link="libxml2-xmlexports.html#XMLPUBVAR"/>
+ <function name="XML_CAST_FPTR" link="libxml2-hash.html#XML_CAST_FPTR"/>
+ <function name="XML_CATALOGS_NAMESPACE" link="libxml2-catalog.html#XML_CATALOGS_NAMESPACE"/>
+ <function name="XML_CATALOG_PI" link="libxml2-catalog.html#XML_CATALOG_PI"/>
+ <function name="XML_COMPLETE_ATTRS" link="libxml2-parser.html#XML_COMPLETE_ATTRS"/>
+ <function name="XML_CTXT_FINISH_DTD_0" link="libxml2-valid.html#XML_CTXT_FINISH_DTD_0"/>
+ <function name="XML_CTXT_FINISH_DTD_1" link="libxml2-valid.html#XML_CTXT_FINISH_DTD_1"/>
+ <function name="XML_DEFAULT_VERSION" link="libxml2-parser.html#XML_DEFAULT_VERSION"/>
+ <function name="XML_DETECT_IDS" link="libxml2-parser.html#XML_DETECT_IDS"/>
+ <function name="XML_GET_CONTENT" link="libxml2-tree.html#XML_GET_CONTENT"/>
+ <function name="XML_GET_LINE" link="libxml2-tree.html#XML_GET_LINE"/>
+ <function name="XML_LOCAL_NAMESPACE" link="libxml2-tree.html#XML_LOCAL_NAMESPACE"/>
+ <function name="XML_MAX_DICTIONARY_LIMIT" link="libxml2-parserInternals.html#XML_MAX_DICTIONARY_LIMIT"/>
+ <function name="XML_MAX_LOOKUP_LIMIT" link="libxml2-parserInternals.html#XML_MAX_LOOKUP_LIMIT"/>
+ <function name="XML_MAX_NAMELEN" link="libxml2-parserInternals.html#XML_MAX_NAMELEN"/>
+ <function name="XML_MAX_NAME_LENGTH" link="libxml2-parserInternals.html#XML_MAX_NAME_LENGTH"/>
+ <function name="XML_MAX_TEXT_LENGTH" link="libxml2-parserInternals.html#XML_MAX_TEXT_LENGTH"/>
+ <function name="XML_SAX2_MAGIC" link="libxml2-parser.html#XML_SAX2_MAGIC"/>
+ <function name="XML_SCHEMAS_ANYATTR_LAX" link="libxml2-schemasInternals.html#XML_SCHEMAS_ANYATTR_LAX"/>
+ <function name="XML_SCHEMAS_ANYATTR_SKIP" link="libxml2-schemasInternals.html#XML_SCHEMAS_ANYATTR_SKIP"/>
+ <function name="XML_SCHEMAS_ANYATTR_STRICT" link="libxml2-schemasInternals.html#XML_SCHEMAS_ANYATTR_STRICT"/>
+ <function name="XML_SCHEMAS_ANY_LAX" link="libxml2-schemasInternals.html#XML_SCHEMAS_ANY_LAX"/>
+ <function name="XML_SCHEMAS_ANY_SKIP" link="libxml2-schemasInternals.html#XML_SCHEMAS_ANY_SKIP"/>
+ <function name="XML_SCHEMAS_ANY_STRICT" link="libxml2-schemasInternals.html#XML_SCHEMAS_ANY_STRICT"/>
+ <function name="XML_SCHEMAS_ATTRGROUP_GLOBAL" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_GLOBAL"/>
+ <function name="XML_SCHEMAS_ATTRGROUP_HAS_REFS" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_HAS_REFS"/>
+ <function name="XML_SCHEMAS_ATTRGROUP_MARKED" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED"/>
+ <function name="XML_SCHEMAS_ATTRGROUP_REDEFINED" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_REDEFINED"/>
+ <function name="XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED"/>
+ <function name="XML_SCHEMAS_ATTR_FIXED" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTR_FIXED"/>
+ <function name="XML_SCHEMAS_ATTR_GLOBAL" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTR_GLOBAL"/>
+ <function name="XML_SCHEMAS_ATTR_INTERNAL_RESOLVED" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED"/>
+ <function name="XML_SCHEMAS_ATTR_NSDEFAULT" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTR_NSDEFAULT"/>
+ <function name="XML_SCHEMAS_ATTR_USE_OPTIONAL" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTR_USE_OPTIONAL"/>
+ <function name="XML_SCHEMAS_ATTR_USE_PROHIBITED" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTR_USE_PROHIBITED"/>
+ <function name="XML_SCHEMAS_ATTR_USE_REQUIRED" link="libxml2-schemasInternals.html#XML_SCHEMAS_ATTR_USE_REQUIRED"/>
+ <function name="XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION" link="libxml2-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION"/>
+ <function name="XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION" link="libxml2-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION"/>
+ <function name="XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION" link="libxml2-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION"/>
+ <function name="XML_SCHEMAS_ELEM_ABSTRACT" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_ABSTRACT"/>
+ <function name="XML_SCHEMAS_ELEM_BLOCK_ABSENT" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_ABSENT"/>
+ <function name="XML_SCHEMAS_ELEM_BLOCK_EXTENSION" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_EXTENSION"/>
+ <function name="XML_SCHEMAS_ELEM_BLOCK_RESTRICTION" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION"/>
+ <function name="XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION"/>
+ <function name="XML_SCHEMAS_ELEM_CIRCULAR" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_CIRCULAR"/>
+ <function name="XML_SCHEMAS_ELEM_DEFAULT" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_DEFAULT"/>
+ <function name="XML_SCHEMAS_ELEM_FINAL_ABSENT" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_ABSENT"/>
+ <function name="XML_SCHEMAS_ELEM_FINAL_EXTENSION" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_EXTENSION"/>
+ <function name="XML_SCHEMAS_ELEM_FINAL_RESTRICTION" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_RESTRICTION"/>
+ <function name="XML_SCHEMAS_ELEM_FIXED" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_FIXED"/>
+ <function name="XML_SCHEMAS_ELEM_GLOBAL" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_GLOBAL"/>
+ <function name="XML_SCHEMAS_ELEM_INTERNAL_CHECKED" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_CHECKED"/>
+ <function name="XML_SCHEMAS_ELEM_INTERNAL_RESOLVED" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED"/>
+ <function name="XML_SCHEMAS_ELEM_NILLABLE" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_NILLABLE"/>
+ <function name="XML_SCHEMAS_ELEM_NSDEFAULT" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_NSDEFAULT"/>
+ <function name="XML_SCHEMAS_ELEM_REF" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_REF"/>
+ <function name="XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD"/>
+ <function name="XML_SCHEMAS_ELEM_TOPLEVEL" link="libxml2-schemasInternals.html#XML_SCHEMAS_ELEM_TOPLEVEL"/>
+ <function name="XML_SCHEMAS_FACET_COLLAPSE" link="libxml2-schemasInternals.html#XML_SCHEMAS_FACET_COLLAPSE"/>
+ <function name="XML_SCHEMAS_FACET_PRESERVE" link="libxml2-schemasInternals.html#XML_SCHEMAS_FACET_PRESERVE"/>
+ <function name="XML_SCHEMAS_FACET_REPLACE" link="libxml2-schemasInternals.html#XML_SCHEMAS_FACET_REPLACE"/>
+ <function name="XML_SCHEMAS_FACET_UNKNOWN" link="libxml2-schemasInternals.html#XML_SCHEMAS_FACET_UNKNOWN"/>
+ <function name="XML_SCHEMAS_FINAL_DEFAULT_EXTENSION" link="libxml2-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION"/>
+ <function name="XML_SCHEMAS_FINAL_DEFAULT_LIST" link="libxml2-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_LIST"/>
+ <function name="XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION" link="libxml2-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION"/>
+ <function name="XML_SCHEMAS_FINAL_DEFAULT_UNION" link="libxml2-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_UNION"/>
+ <function name="XML_SCHEMAS_INCLUDING_CONVERT_NS" link="libxml2-schemasInternals.html#XML_SCHEMAS_INCLUDING_CONVERT_NS"/>
+ <function name="XML_SCHEMAS_QUALIF_ATTR" link="libxml2-schemasInternals.html#XML_SCHEMAS_QUALIF_ATTR"/>
+ <function name="XML_SCHEMAS_QUALIF_ELEM" link="libxml2-schemasInternals.html#XML_SCHEMAS_QUALIF_ELEM"/>
+ <function name="XML_SCHEMAS_TYPE_ABSTRACT" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_ABSTRACT"/>
+ <function name="XML_SCHEMAS_TYPE_BLOCK_DEFAULT" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT"/>
+ <function name="XML_SCHEMAS_TYPE_BLOCK_EXTENSION" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_EXTENSION"/>
+ <function name="XML_SCHEMAS_TYPE_BLOCK_RESTRICTION" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION"/>
+ <function name="XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE"/>
+ <function name="XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION"/>
+ <function name="XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION"/>
+ <function name="XML_SCHEMAS_TYPE_FACETSNEEDVALUE" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE"/>
+ <function name="XML_SCHEMAS_TYPE_FINAL_DEFAULT" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_DEFAULT"/>
+ <function name="XML_SCHEMAS_TYPE_FINAL_EXTENSION" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_EXTENSION"/>
+ <function name="XML_SCHEMAS_TYPE_FINAL_LIST" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_LIST"/>
+ <function name="XML_SCHEMAS_TYPE_FINAL_RESTRICTION" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_RESTRICTION"/>
+ <function name="XML_SCHEMAS_TYPE_FINAL_UNION" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_UNION"/>
+ <function name="XML_SCHEMAS_TYPE_FIXUP_1" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_FIXUP_1"/>
+ <function name="XML_SCHEMAS_TYPE_GLOBAL" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_GLOBAL"/>
+ <function name="XML_SCHEMAS_TYPE_HAS_FACETS" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_HAS_FACETS"/>
+ <function name="XML_SCHEMAS_TYPE_INTERNAL_INVALID" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_INVALID"/>
+ <function name="XML_SCHEMAS_TYPE_INTERNAL_RESOLVED" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED"/>
+ <function name="XML_SCHEMAS_TYPE_MARKED" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED"/>
+ <function name="XML_SCHEMAS_TYPE_MIXED" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_MIXED"/>
+ <function name="XML_SCHEMAS_TYPE_NORMVALUENEEDED" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_NORMVALUENEEDED"/>
+ <function name="XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD"/>
+ <function name="XML_SCHEMAS_TYPE_REDEFINED" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_REDEFINED"/>
+ <function name="XML_SCHEMAS_TYPE_VARIETY_ABSENT" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT"/>
+ <function name="XML_SCHEMAS_TYPE_VARIETY_ATOMIC" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ATOMIC"/>
+ <function name="XML_SCHEMAS_TYPE_VARIETY_LIST" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_LIST"/>
+ <function name="XML_SCHEMAS_TYPE_VARIETY_UNION" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_UNION"/>
+ <function name="XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE"/>
+ <function name="XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE"/>
+ <function name="XML_SCHEMAS_TYPE_WHITESPACE_REPLACE" link="libxml2-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE"/>
+ <function name="XML_SCHEMAS_WILDCARD_COMPLETE" link="libxml2-schemasInternals.html#XML_SCHEMAS_WILDCARD_COMPLETE"/>
+ <function name="XML_SKIP_IDS" link="libxml2-parser.html#XML_SKIP_IDS"/>
+ <function name="XML_SUBSTITUTE_BOTH" link="libxml2-parserInternals.html#XML_SUBSTITUTE_BOTH"/>
+ <function name="XML_SUBSTITUTE_NONE" link="libxml2-parserInternals.html#XML_SUBSTITUTE_NONE"/>
+ <function name="XML_SUBSTITUTE_PEREF" link="libxml2-parserInternals.html#XML_SUBSTITUTE_PEREF"/>
+ <function name="XML_SUBSTITUTE_REF" link="libxml2-parserInternals.html#XML_SUBSTITUTE_REF"/>
+ <function name="XML_XML_ID" link="libxml2-tree.html#XML_XML_ID"/>
+ <function name="XML_XML_NAMESPACE" link="libxml2-tree.html#XML_XML_NAMESPACE"/>
+ <function name="XML_XPATH_CHECKNS" link="libxml2-xpath.html#XML_XPATH_CHECKNS"/>
+ <function name="XML_XPATH_NOVAR" link="libxml2-xpath.html#XML_XPATH_NOVAR"/>
+ <function name="XP_ERROR" link="libxml2-xpathInternals.html#XP_ERROR"/>
+ <function name="XP_ERROR0" link="libxml2-xpathInternals.html#XP_ERROR0"/>
+ <function name="htmlDefaultSubelement" link="libxml2-HTMLparser.html#htmlDefaultSubelement"/>
+ <function name="htmlElementAllowedHereDesc" link="libxml2-HTMLparser.html#htmlElementAllowedHereDesc"/>
+ <function name="htmlRequiredAttrs" link="libxml2-HTMLparser.html#htmlRequiredAttrs"/>
+ <function name="xmlChildrenNode" link="libxml2-tree.html#xmlChildrenNode"/>
+ <function name="xmlIsBaseCharQ" link="libxml2-chvalid.html#xmlIsBaseCharQ"/>
+ <function name="xmlIsBaseChar_ch" link="libxml2-chvalid.html#xmlIsBaseChar_ch"/>
+ <function name="xmlIsBlankQ" link="libxml2-chvalid.html#xmlIsBlankQ"/>
+ <function name="xmlIsBlank_ch" link="libxml2-chvalid.html#xmlIsBlank_ch"/>
+ <function name="xmlIsCharQ" link="libxml2-chvalid.html#xmlIsCharQ"/>
+ <function name="xmlIsChar_ch" link="libxml2-chvalid.html#xmlIsChar_ch"/>
+ <function name="xmlIsCombiningQ" link="libxml2-chvalid.html#xmlIsCombiningQ"/>
+ <function name="xmlIsDigitQ" link="libxml2-chvalid.html#xmlIsDigitQ"/>
+ <function name="xmlIsDigit_ch" link="libxml2-chvalid.html#xmlIsDigit_ch"/>
+ <function name="xmlIsExtenderQ" link="libxml2-chvalid.html#xmlIsExtenderQ"/>
+ <function name="xmlIsExtender_ch" link="libxml2-chvalid.html#xmlIsExtender_ch"/>
+ <function name="xmlIsIdeographicQ" link="libxml2-chvalid.html#xmlIsIdeographicQ"/>
+ <function name="xmlIsPubidCharQ" link="libxml2-chvalid.html#xmlIsPubidCharQ"/>
+ <function name="xmlIsPubidChar_ch" link="libxml2-chvalid.html#xmlIsPubidChar_ch"/>
+ <function name="xmlRootNode" link="libxml2-tree.html#xmlRootNode"/>
+ <function name="xmlTextWriterWriteDocType" link="libxml2-xmlwriter.html#xmlTextWriterWriteDocType"/>
+ <function name="xmlTextWriterWriteProcessingInstruction" link="libxml2-xmlwriter.html#xmlTextWriterWriteProcessingInstruction"/>
+ <function name="xmlXPathCheckError" link="libxml2-xpathInternals.html#xmlXPathCheckError"/>
+ <function name="xmlXPathEmptyNodeSet" link="libxml2-xpathInternals.html#xmlXPathEmptyNodeSet"/>
+ <function name="xmlXPathGetContextNode" link="libxml2-xpathInternals.html#xmlXPathGetContextNode"/>
+ <function name="xmlXPathGetDocument" link="libxml2-xpathInternals.html#xmlXPathGetDocument"/>
+ <function name="xmlXPathGetError" link="libxml2-xpathInternals.html#xmlXPathGetError"/>
+ <function name="xmlXPathNodeSetGetLength" link="libxml2-xpath.html#xmlXPathNodeSetGetLength"/>
+ <function name="xmlXPathNodeSetIsEmpty" link="libxml2-xpath.html#xmlXPathNodeSetIsEmpty"/>
+ <function name="xmlXPathNodeSetItem" link="libxml2-xpath.html#xmlXPathNodeSetItem"/>
+ <function name="xmlXPathReturnBoolean" link="libxml2-xpathInternals.html#xmlXPathReturnBoolean"/>
+ <function name="xmlXPathReturnEmptyNodeSet" link="libxml2-xpathInternals.html#xmlXPathReturnEmptyNodeSet"/>
+ <function name="xmlXPathReturnEmptyString" link="libxml2-xpathInternals.html#xmlXPathReturnEmptyString"/>
+ <function name="xmlXPathReturnExternal" link="libxml2-xpathInternals.html#xmlXPathReturnExternal"/>
+ <function name="xmlXPathReturnFalse" link="libxml2-xpathInternals.html#xmlXPathReturnFalse"/>
+ <function name="xmlXPathReturnNodeSet" link="libxml2-xpathInternals.html#xmlXPathReturnNodeSet"/>
+ <function name="xmlXPathReturnNumber" link="libxml2-xpathInternals.html#xmlXPathReturnNumber"/>
+ <function name="xmlXPathReturnString" link="libxml2-xpathInternals.html#xmlXPathReturnString"/>
+ <function name="xmlXPathReturnTrue" link="libxml2-xpathInternals.html#xmlXPathReturnTrue"/>
+ <function name="xmlXPathSetArityError" link="libxml2-xpathInternals.html#xmlXPathSetArityError"/>
+ <function name="xmlXPathSetError" link="libxml2-xpathInternals.html#xmlXPathSetError"/>
+ <function name="xmlXPathSetTypeError" link="libxml2-xpathInternals.html#xmlXPathSetTypeError"/>
+ <function name="xmlXPathStackIsExternal" link="libxml2-xpathInternals.html#xmlXPathStackIsExternal"/>
+ <function name="xmlXPathStackIsNodeSet" link="libxml2-xpathInternals.html#xmlXPathStackIsNodeSet"/>
+ <function name="HTML_DEPRECATED" link="libxml2-HTMLparser.html#HTML_DEPRECATED"/>
+ <function name="HTML_INVALID" link="libxml2-HTMLparser.html#HTML_INVALID"/>
+ <function name="HTML_NA" link="libxml2-HTMLparser.html#HTML_NA"/>
+ <function name="HTML_PARSE_COMPACT" link="libxml2-HTMLparser.html#HTML_PARSE_COMPACT"/>
+ <function name="HTML_PARSE_IGNORE_ENC" link="libxml2-HTMLparser.html#HTML_PARSE_IGNORE_ENC"/>
+ <function name="HTML_PARSE_NOBLANKS" link="libxml2-HTMLparser.html#HTML_PARSE_NOBLANKS"/>
+ <function name="HTML_PARSE_NODEFDTD" link="libxml2-HTMLparser.html#HTML_PARSE_NODEFDTD"/>
+ <function name="HTML_PARSE_NOERROR" link="libxml2-HTMLparser.html#HTML_PARSE_NOERROR"/>
+ <function name="HTML_PARSE_NOIMPLIED" link="libxml2-HTMLparser.html#HTML_PARSE_NOIMPLIED"/>
+ <function name="HTML_PARSE_NONET" link="libxml2-HTMLparser.html#HTML_PARSE_NONET"/>
+ <function name="HTML_PARSE_NOWARNING" link="libxml2-HTMLparser.html#HTML_PARSE_NOWARNING"/>
+ <function name="HTML_PARSE_PEDANTIC" link="libxml2-HTMLparser.html#HTML_PARSE_PEDANTIC"/>
+ <function name="HTML_PARSE_RECOVER" link="libxml2-HTMLparser.html#HTML_PARSE_RECOVER"/>
+ <function name="HTML_REQUIRED" link="libxml2-HTMLparser.html#HTML_REQUIRED"/>
+ <function name="HTML_VALID" link="libxml2-HTMLparser.html#HTML_VALID"/>
+ <function name="XLINK_ACTUATE_AUTO" link="libxml2-xlink.html#XLINK_ACTUATE_AUTO"/>
+ <function name="XLINK_ACTUATE_NONE" link="libxml2-xlink.html#XLINK_ACTUATE_NONE"/>
+ <function name="XLINK_ACTUATE_ONREQUEST" link="libxml2-xlink.html#XLINK_ACTUATE_ONREQUEST"/>
+ <function name="XLINK_SHOW_EMBED" link="libxml2-xlink.html#XLINK_SHOW_EMBED"/>
+ <function name="XLINK_SHOW_NEW" link="libxml2-xlink.html#XLINK_SHOW_NEW"/>
+ <function name="XLINK_SHOW_NONE" link="libxml2-xlink.html#XLINK_SHOW_NONE"/>
+ <function name="XLINK_SHOW_REPLACE" link="libxml2-xlink.html#XLINK_SHOW_REPLACE"/>
+ <function name="XLINK_TYPE_EXTENDED" link="libxml2-xlink.html#XLINK_TYPE_EXTENDED"/>
+ <function name="XLINK_TYPE_EXTENDED_SET" link="libxml2-xlink.html#XLINK_TYPE_EXTENDED_SET"/>
+ <function name="XLINK_TYPE_NONE" link="libxml2-xlink.html#XLINK_TYPE_NONE"/>
+ <function name="XLINK_TYPE_SIMPLE" link="libxml2-xlink.html#XLINK_TYPE_SIMPLE"/>
+ <function name="XML_ATTRIBUTE_CDATA" link="libxml2-tree.html#XML_ATTRIBUTE_CDATA"/>
+ <function name="XML_ATTRIBUTE_DECL" link="libxml2-tree.html#XML_ATTRIBUTE_DECL"/>
+ <function name="XML_ATTRIBUTE_ENTITIES" link="libxml2-tree.html#XML_ATTRIBUTE_ENTITIES"/>
+ <function name="XML_ATTRIBUTE_ENTITY" link="libxml2-tree.html#XML_ATTRIBUTE_ENTITY"/>
+ <function name="XML_ATTRIBUTE_ENUMERATION" link="libxml2-tree.html#XML_ATTRIBUTE_ENUMERATION"/>
+ <function name="XML_ATTRIBUTE_FIXED" link="libxml2-tree.html#XML_ATTRIBUTE_FIXED"/>
+ <function name="XML_ATTRIBUTE_ID" link="libxml2-tree.html#XML_ATTRIBUTE_ID"/>
+ <function name="XML_ATTRIBUTE_IDREF" link="libxml2-tree.html#XML_ATTRIBUTE_IDREF"/>
+ <function name="XML_ATTRIBUTE_IDREFS" link="libxml2-tree.html#XML_ATTRIBUTE_IDREFS"/>
+ <function name="XML_ATTRIBUTE_IMPLIED" link="libxml2-tree.html#XML_ATTRIBUTE_IMPLIED"/>
+ <function name="XML_ATTRIBUTE_NMTOKEN" link="libxml2-tree.html#XML_ATTRIBUTE_NMTOKEN"/>
+ <function name="XML_ATTRIBUTE_NMTOKENS" link="libxml2-tree.html#XML_ATTRIBUTE_NMTOKENS"/>
+ <function name="XML_ATTRIBUTE_NODE" link="libxml2-tree.html#XML_ATTRIBUTE_NODE"/>
+ <function name="XML_ATTRIBUTE_NONE" link="libxml2-tree.html#XML_ATTRIBUTE_NONE"/>
+ <function name="XML_ATTRIBUTE_NOTATION" link="libxml2-tree.html#XML_ATTRIBUTE_NOTATION"/>
+ <function name="XML_ATTRIBUTE_REQUIRED" link="libxml2-tree.html#XML_ATTRIBUTE_REQUIRED"/>
+ <function name="XML_BUFFER_ALLOC_BOUNDED" link="libxml2-tree.html#XML_BUFFER_ALLOC_BOUNDED"/>
+ <function name="XML_BUFFER_ALLOC_DOUBLEIT" link="libxml2-tree.html#XML_BUFFER_ALLOC_DOUBLEIT"/>
+ <function name="XML_BUFFER_ALLOC_EXACT" link="libxml2-tree.html#XML_BUFFER_ALLOC_EXACT"/>
+ <function name="XML_BUFFER_ALLOC_HYBRID" link="libxml2-tree.html#XML_BUFFER_ALLOC_HYBRID"/>
+ <function name="XML_BUFFER_ALLOC_IMMUTABLE" link="libxml2-tree.html#XML_BUFFER_ALLOC_IMMUTABLE"/>
+ <function name="XML_BUFFER_ALLOC_IO" link="libxml2-tree.html#XML_BUFFER_ALLOC_IO"/>
+ <function name="XML_BUF_OVERFLOW" link="libxml2-xmlerror.html#XML_BUF_OVERFLOW"/>
+ <function name="XML_C14N_1_0" link="libxml2-c14n.html#XML_C14N_1_0"/>
+ <function name="XML_C14N_1_1" link="libxml2-c14n.html#XML_C14N_1_1"/>
+ <function name="XML_C14N_CREATE_CTXT" link="libxml2-xmlerror.html#XML_C14N_CREATE_CTXT"/>
+ <function name="XML_C14N_CREATE_STACK" link="libxml2-xmlerror.html#XML_C14N_CREATE_STACK"/>
+ <function name="XML_C14N_EXCLUSIVE_1_0" link="libxml2-c14n.html#XML_C14N_EXCLUSIVE_1_0"/>
+ <function name="XML_C14N_INVALID_NODE" link="libxml2-xmlerror.html#XML_C14N_INVALID_NODE"/>
+ <function name="XML_C14N_RELATIVE_NAMESPACE" link="libxml2-xmlerror.html#XML_C14N_RELATIVE_NAMESPACE"/>
+ <function name="XML_C14N_REQUIRES_UTF8" link="libxml2-xmlerror.html#XML_C14N_REQUIRES_UTF8"/>
+ <function name="XML_C14N_UNKNOW_NODE" link="libxml2-xmlerror.html#XML_C14N_UNKNOW_NODE"/>
+ <function name="XML_CATALOG_ENTRY_BROKEN" link="libxml2-xmlerror.html#XML_CATALOG_ENTRY_BROKEN"/>
+ <function name="XML_CATALOG_MISSING_ATTR" link="libxml2-xmlerror.html#XML_CATALOG_MISSING_ATTR"/>
+ <function name="XML_CATALOG_NOT_CATALOG" link="libxml2-xmlerror.html#XML_CATALOG_NOT_CATALOG"/>
+ <function name="XML_CATALOG_PREFER_VALUE" link="libxml2-xmlerror.html#XML_CATALOG_PREFER_VALUE"/>
+ <function name="XML_CATALOG_RECURSION" link="libxml2-xmlerror.html#XML_CATALOG_RECURSION"/>
+ <function name="XML_CATA_ALLOW_ALL" link="libxml2-catalog.html#XML_CATA_ALLOW_ALL"/>
+ <function name="XML_CATA_ALLOW_DOCUMENT" link="libxml2-catalog.html#XML_CATA_ALLOW_DOCUMENT"/>
+ <function name="XML_CATA_ALLOW_GLOBAL" link="libxml2-catalog.html#XML_CATA_ALLOW_GLOBAL"/>
+ <function name="XML_CATA_ALLOW_NONE" link="libxml2-catalog.html#XML_CATA_ALLOW_NONE"/>
+ <function name="XML_CATA_PREFER_NONE" link="libxml2-catalog.html#XML_CATA_PREFER_NONE"/>
+ <function name="XML_CATA_PREFER_PUBLIC" link="libxml2-catalog.html#XML_CATA_PREFER_PUBLIC"/>
+ <function name="XML_CATA_PREFER_SYSTEM" link="libxml2-catalog.html#XML_CATA_PREFER_SYSTEM"/>
+ <function name="XML_CDATA_SECTION_NODE" link="libxml2-tree.html#XML_CDATA_SECTION_NODE"/>
+ <function name="XML_CHAR_ENCODING_2022_JP" link="libxml2-encoding.html#XML_CHAR_ENCODING_2022_JP"/>
+ <function name="XML_CHAR_ENCODING_8859_1" link="libxml2-encoding.html#XML_CHAR_ENCODING_8859_1"/>
+ <function name="XML_CHAR_ENCODING_8859_2" link="libxml2-encoding.html#XML_CHAR_ENCODING_8859_2"/>
+ <function name="XML_CHAR_ENCODING_8859_3" link="libxml2-encoding.html#XML_CHAR_ENCODING_8859_3"/>
+ <function name="XML_CHAR_ENCODING_8859_4" link="libxml2-encoding.html#XML_CHAR_ENCODING_8859_4"/>
+ <function name="XML_CHAR_ENCODING_8859_5" link="libxml2-encoding.html#XML_CHAR_ENCODING_8859_5"/>
+ <function name="XML_CHAR_ENCODING_8859_6" link="libxml2-encoding.html#XML_CHAR_ENCODING_8859_6"/>
+ <function name="XML_CHAR_ENCODING_8859_7" link="libxml2-encoding.html#XML_CHAR_ENCODING_8859_7"/>
+ <function name="XML_CHAR_ENCODING_8859_8" link="libxml2-encoding.html#XML_CHAR_ENCODING_8859_8"/>
+ <function name="XML_CHAR_ENCODING_8859_9" link="libxml2-encoding.html#XML_CHAR_ENCODING_8859_9"/>
+ <function name="XML_CHAR_ENCODING_ASCII" link="libxml2-encoding.html#XML_CHAR_ENCODING_ASCII"/>
+ <function name="XML_CHAR_ENCODING_EBCDIC" link="libxml2-encoding.html#XML_CHAR_ENCODING_EBCDIC"/>
+ <function name="XML_CHAR_ENCODING_ERROR" link="libxml2-encoding.html#XML_CHAR_ENCODING_ERROR"/>
+ <function name="XML_CHAR_ENCODING_EUC_JP" link="libxml2-encoding.html#XML_CHAR_ENCODING_EUC_JP"/>
+ <function name="XML_CHAR_ENCODING_NONE" link="libxml2-encoding.html#XML_CHAR_ENCODING_NONE"/>
+ <function name="XML_CHAR_ENCODING_SHIFT_JIS" link="libxml2-encoding.html#XML_CHAR_ENCODING_SHIFT_JIS"/>
+ <function name="XML_CHAR_ENCODING_UCS2" link="libxml2-encoding.html#XML_CHAR_ENCODING_UCS2"/>
+ <function name="XML_CHAR_ENCODING_UCS4BE" link="libxml2-encoding.html#XML_CHAR_ENCODING_UCS4BE"/>
+ <function name="XML_CHAR_ENCODING_UCS4LE" link="libxml2-encoding.html#XML_CHAR_ENCODING_UCS4LE"/>
+ <function name="XML_CHAR_ENCODING_UCS4_2143" link="libxml2-encoding.html#XML_CHAR_ENCODING_UCS4_2143"/>
+ <function name="XML_CHAR_ENCODING_UCS4_3412" link="libxml2-encoding.html#XML_CHAR_ENCODING_UCS4_3412"/>
+ <function name="XML_CHAR_ENCODING_UTF16BE" link="libxml2-encoding.html#XML_CHAR_ENCODING_UTF16BE"/>
+ <function name="XML_CHAR_ENCODING_UTF16LE" link="libxml2-encoding.html#XML_CHAR_ENCODING_UTF16LE"/>
+ <function name="XML_CHAR_ENCODING_UTF8" link="libxml2-encoding.html#XML_CHAR_ENCODING_UTF8"/>
+ <function name="XML_CHECK_ENTITY_TYPE" link="libxml2-xmlerror.html#XML_CHECK_ENTITY_TYPE"/>
+ <function name="XML_CHECK_FOUND_ATTRIBUTE" link="libxml2-xmlerror.html#XML_CHECK_FOUND_ATTRIBUTE"/>
+ <function name="XML_CHECK_FOUND_CDATA" link="libxml2-xmlerror.html#XML_CHECK_FOUND_CDATA"/>
+ <function name="XML_CHECK_FOUND_COMMENT" link="libxml2-xmlerror.html#XML_CHECK_FOUND_COMMENT"/>
+ <function name="XML_CHECK_FOUND_DOCTYPE" link="libxml2-xmlerror.html#XML_CHECK_FOUND_DOCTYPE"/>
+ <function name="XML_CHECK_FOUND_ELEMENT" link="libxml2-xmlerror.html#XML_CHECK_FOUND_ELEMENT"/>
+ <function name="XML_CHECK_FOUND_ENTITY" link="libxml2-xmlerror.html#XML_CHECK_FOUND_ENTITY"/>
+ <function name="XML_CHECK_FOUND_ENTITYREF" link="libxml2-xmlerror.html#XML_CHECK_FOUND_ENTITYREF"/>
+ <function name="XML_CHECK_FOUND_FRAGMENT" link="libxml2-xmlerror.html#XML_CHECK_FOUND_FRAGMENT"/>
+ <function name="XML_CHECK_FOUND_NOTATION" link="libxml2-xmlerror.html#XML_CHECK_FOUND_NOTATION"/>
+ <function name="XML_CHECK_FOUND_PI" link="libxml2-xmlerror.html#XML_CHECK_FOUND_PI"/>
+ <function name="XML_CHECK_FOUND_TEXT" link="libxml2-xmlerror.html#XML_CHECK_FOUND_TEXT"/>
+ <function name="XML_CHECK_NAME_NOT_NULL" link="libxml2-xmlerror.html#XML_CHECK_NAME_NOT_NULL"/>
+ <function name="XML_CHECK_NOT_ATTR" link="libxml2-xmlerror.html#XML_CHECK_NOT_ATTR"/>
+ <function name="XML_CHECK_NOT_ATTR_DECL" link="libxml2-xmlerror.html#XML_CHECK_NOT_ATTR_DECL"/>
+ <function name="XML_CHECK_NOT_DTD" link="libxml2-xmlerror.html#XML_CHECK_NOT_DTD"/>
+ <function name="XML_CHECK_NOT_ELEM_DECL" link="libxml2-xmlerror.html#XML_CHECK_NOT_ELEM_DECL"/>
+ <function name="XML_CHECK_NOT_ENTITY_DECL" link="libxml2-xmlerror.html#XML_CHECK_NOT_ENTITY_DECL"/>
+ <function name="XML_CHECK_NOT_NCNAME" link="libxml2-xmlerror.html#XML_CHECK_NOT_NCNAME"/>
+ <function name="XML_CHECK_NOT_NS_DECL" link="libxml2-xmlerror.html#XML_CHECK_NOT_NS_DECL"/>
+ <function name="XML_CHECK_NOT_UTF8" link="libxml2-xmlerror.html#XML_CHECK_NOT_UTF8"/>
+ <function name="XML_CHECK_NO_DICT" link="libxml2-xmlerror.html#XML_CHECK_NO_DICT"/>
+ <function name="XML_CHECK_NO_DOC" link="libxml2-xmlerror.html#XML_CHECK_NO_DOC"/>
+ <function name="XML_CHECK_NO_ELEM" link="libxml2-xmlerror.html#XML_CHECK_NO_ELEM"/>
+ <function name="XML_CHECK_NO_HREF" link="libxml2-xmlerror.html#XML_CHECK_NO_HREF"/>
+ <function name="XML_CHECK_NO_NAME" link="libxml2-xmlerror.html#XML_CHECK_NO_NAME"/>
+ <function name="XML_CHECK_NO_NEXT" link="libxml2-xmlerror.html#XML_CHECK_NO_NEXT"/>
+ <function name="XML_CHECK_NO_PARENT" link="libxml2-xmlerror.html#XML_CHECK_NO_PARENT"/>
+ <function name="XML_CHECK_NO_PREV" link="libxml2-xmlerror.html#XML_CHECK_NO_PREV"/>
+ <function name="XML_CHECK_NS_ANCESTOR" link="libxml2-xmlerror.html#XML_CHECK_NS_ANCESTOR"/>
+ <function name="XML_CHECK_NS_SCOPE" link="libxml2-xmlerror.html#XML_CHECK_NS_SCOPE"/>
+ <function name="XML_CHECK_OUTSIDE_DICT" link="libxml2-xmlerror.html#XML_CHECK_OUTSIDE_DICT"/>
+ <function name="XML_CHECK_UNKNOWN_NODE" link="libxml2-xmlerror.html#XML_CHECK_UNKNOWN_NODE"/>
+ <function name="XML_CHECK_WRONG_DOC" link="libxml2-xmlerror.html#XML_CHECK_WRONG_DOC"/>
+ <function name="XML_CHECK_WRONG_NAME" link="libxml2-xmlerror.html#XML_CHECK_WRONG_NAME"/>
+ <function name="XML_CHECK_WRONG_NEXT" link="libxml2-xmlerror.html#XML_CHECK_WRONG_NEXT"/>
+ <function name="XML_CHECK_WRONG_PARENT" link="libxml2-xmlerror.html#XML_CHECK_WRONG_PARENT"/>
+ <function name="XML_CHECK_WRONG_PREV" link="libxml2-xmlerror.html#XML_CHECK_WRONG_PREV"/>
+ <function name="XML_COMMENT_NODE" link="libxml2-tree.html#XML_COMMENT_NODE"/>
+ <function name="XML_DOCB_DOCUMENT_NODE" link="libxml2-tree.html#XML_DOCB_DOCUMENT_NODE"/>
+ <function name="XML_DOCUMENT_FRAG_NODE" link="libxml2-tree.html#XML_DOCUMENT_FRAG_NODE"/>
+ <function name="XML_DOCUMENT_NODE" link="libxml2-tree.html#XML_DOCUMENT_NODE"/>
+ <function name="XML_DOCUMENT_TYPE_NODE" link="libxml2-tree.html#XML_DOCUMENT_TYPE_NODE"/>
+ <function name="XML_DOC_DTDVALID" link="libxml2-tree.html#XML_DOC_DTDVALID"/>
+ <function name="XML_DOC_HTML" link="libxml2-tree.html#XML_DOC_HTML"/>
+ <function name="XML_DOC_INTERNAL" link="libxml2-tree.html#XML_DOC_INTERNAL"/>
+ <function name="XML_DOC_NSVALID" link="libxml2-tree.html#XML_DOC_NSVALID"/>
+ <function name="XML_DOC_OLD10" link="libxml2-tree.html#XML_DOC_OLD10"/>
+ <function name="XML_DOC_USERBUILT" link="libxml2-tree.html#XML_DOC_USERBUILT"/>
+ <function name="XML_DOC_WELLFORMED" link="libxml2-tree.html#XML_DOC_WELLFORMED"/>
+ <function name="XML_DOC_XINCLUDE" link="libxml2-tree.html#XML_DOC_XINCLUDE"/>
+ <function name="XML_DTD_ATTRIBUTE_DEFAULT" link="libxml2-xmlerror.html#XML_DTD_ATTRIBUTE_DEFAULT"/>
+ <function name="XML_DTD_ATTRIBUTE_REDEFINED" link="libxml2-xmlerror.html#XML_DTD_ATTRIBUTE_REDEFINED"/>
+ <function name="XML_DTD_ATTRIBUTE_VALUE" link="libxml2-xmlerror.html#XML_DTD_ATTRIBUTE_VALUE"/>
+ <function name="XML_DTD_CONTENT_ERROR" link="libxml2-xmlerror.html#XML_DTD_CONTENT_ERROR"/>
+ <function name="XML_DTD_CONTENT_MODEL" link="libxml2-xmlerror.html#XML_DTD_CONTENT_MODEL"/>
+ <function name="XML_DTD_CONTENT_NOT_DETERMINIST" link="libxml2-xmlerror.html#XML_DTD_CONTENT_NOT_DETERMINIST"/>
+ <function name="XML_DTD_DIFFERENT_PREFIX" link="libxml2-xmlerror.html#XML_DTD_DIFFERENT_PREFIX"/>
+ <function name="XML_DTD_DUP_TOKEN" link="libxml2-xmlerror.html#XML_DTD_DUP_TOKEN"/>
+ <function name="XML_DTD_ELEM_DEFAULT_NAMESPACE" link="libxml2-xmlerror.html#XML_DTD_ELEM_DEFAULT_NAMESPACE"/>
+ <function name="XML_DTD_ELEM_NAMESPACE" link="libxml2-xmlerror.html#XML_DTD_ELEM_NAMESPACE"/>
+ <function name="XML_DTD_ELEM_REDEFINED" link="libxml2-xmlerror.html#XML_DTD_ELEM_REDEFINED"/>
+ <function name="XML_DTD_EMPTY_NOTATION" link="libxml2-xmlerror.html#XML_DTD_EMPTY_NOTATION"/>
+ <function name="XML_DTD_ENTITY_TYPE" link="libxml2-xmlerror.html#XML_DTD_ENTITY_TYPE"/>
+ <function name="XML_DTD_ID_FIXED" link="libxml2-xmlerror.html#XML_DTD_ID_FIXED"/>
+ <function name="XML_DTD_ID_REDEFINED" link="libxml2-xmlerror.html#XML_DTD_ID_REDEFINED"/>
+ <function name="XML_DTD_ID_SUBSET" link="libxml2-xmlerror.html#XML_DTD_ID_SUBSET"/>
+ <function name="XML_DTD_INVALID_CHILD" link="libxml2-xmlerror.html#XML_DTD_INVALID_CHILD"/>
+ <function name="XML_DTD_INVALID_DEFAULT" link="libxml2-xmlerror.html#XML_DTD_INVALID_DEFAULT"/>
+ <function name="XML_DTD_LOAD_ERROR" link="libxml2-xmlerror.html#XML_DTD_LOAD_ERROR"/>
+ <function name="XML_DTD_MISSING_ATTRIBUTE" link="libxml2-xmlerror.html#XML_DTD_MISSING_ATTRIBUTE"/>
+ <function name="XML_DTD_MIXED_CORRUPT" link="libxml2-xmlerror.html#XML_DTD_MIXED_CORRUPT"/>
+ <function name="XML_DTD_MULTIPLE_ID" link="libxml2-xmlerror.html#XML_DTD_MULTIPLE_ID"/>
+ <function name="XML_DTD_NODE" link="libxml2-tree.html#XML_DTD_NODE"/>
+ <function name="XML_DTD_NOTATION_REDEFINED" link="libxml2-xmlerror.html#XML_DTD_NOTATION_REDEFINED"/>
+ <function name="XML_DTD_NOTATION_VALUE" link="libxml2-xmlerror.html#XML_DTD_NOTATION_VALUE"/>
+ <function name="XML_DTD_NOT_EMPTY" link="libxml2-xmlerror.html#XML_DTD_NOT_EMPTY"/>
+ <function name="XML_DTD_NOT_PCDATA" link="libxml2-xmlerror.html#XML_DTD_NOT_PCDATA"/>
+ <function name="XML_DTD_NOT_STANDALONE" link="libxml2-xmlerror.html#XML_DTD_NOT_STANDALONE"/>
+ <function name="XML_DTD_NO_DOC" link="libxml2-xmlerror.html#XML_DTD_NO_DOC"/>
+ <function name="XML_DTD_NO_DTD" link="libxml2-xmlerror.html#XML_DTD_NO_DTD"/>
+ <function name="XML_DTD_NO_ELEM_NAME" link="libxml2-xmlerror.html#XML_DTD_NO_ELEM_NAME"/>
+ <function name="XML_DTD_NO_PREFIX" link="libxml2-xmlerror.html#XML_DTD_NO_PREFIX"/>
+ <function name="XML_DTD_NO_ROOT" link="libxml2-xmlerror.html#XML_DTD_NO_ROOT"/>
+ <function name="XML_DTD_ROOT_NAME" link="libxml2-xmlerror.html#XML_DTD_ROOT_NAME"/>
+ <function name="XML_DTD_STANDALONE_DEFAULTED" link="libxml2-xmlerror.html#XML_DTD_STANDALONE_DEFAULTED"/>
+ <function name="XML_DTD_STANDALONE_WHITE_SPACE" link="libxml2-xmlerror.html#XML_DTD_STANDALONE_WHITE_SPACE"/>
+ <function name="XML_DTD_UNKNOWN_ATTRIBUTE" link="libxml2-xmlerror.html#XML_DTD_UNKNOWN_ATTRIBUTE"/>
+ <function name="XML_DTD_UNKNOWN_ELEM" link="libxml2-xmlerror.html#XML_DTD_UNKNOWN_ELEM"/>
+ <function name="XML_DTD_UNKNOWN_ENTITY" link="libxml2-xmlerror.html#XML_DTD_UNKNOWN_ENTITY"/>
+ <function name="XML_DTD_UNKNOWN_ID" link="libxml2-xmlerror.html#XML_DTD_UNKNOWN_ID"/>
+ <function name="XML_DTD_UNKNOWN_NOTATION" link="libxml2-xmlerror.html#XML_DTD_UNKNOWN_NOTATION"/>
+ <function name="XML_DTD_XMLID_TYPE" link="libxml2-xmlerror.html#XML_DTD_XMLID_TYPE"/>
+ <function name="XML_DTD_XMLID_VALUE" link="libxml2-xmlerror.html#XML_DTD_XMLID_VALUE"/>
+ <function name="XML_ELEMENT_CONTENT_ELEMENT" link="libxml2-tree.html#XML_ELEMENT_CONTENT_ELEMENT"/>
+ <function name="XML_ELEMENT_CONTENT_MULT" link="libxml2-tree.html#XML_ELEMENT_CONTENT_MULT"/>
+ <function name="XML_ELEMENT_CONTENT_ONCE" link="libxml2-tree.html#XML_ELEMENT_CONTENT_ONCE"/>
+ <function name="XML_ELEMENT_CONTENT_OPT" link="libxml2-tree.html#XML_ELEMENT_CONTENT_OPT"/>
+ <function name="XML_ELEMENT_CONTENT_OR" link="libxml2-tree.html#XML_ELEMENT_CONTENT_OR"/>
+ <function name="XML_ELEMENT_CONTENT_PCDATA" link="libxml2-tree.html#XML_ELEMENT_CONTENT_PCDATA"/>
+ <function name="XML_ELEMENT_CONTENT_PLUS" link="libxml2-tree.html#XML_ELEMENT_CONTENT_PLUS"/>
+ <function name="XML_ELEMENT_CONTENT_SEQ" link="libxml2-tree.html#XML_ELEMENT_CONTENT_SEQ"/>
+ <function name="XML_ELEMENT_DECL" link="libxml2-tree.html#XML_ELEMENT_DECL"/>
+ <function name="XML_ELEMENT_NODE" link="libxml2-tree.html#XML_ELEMENT_NODE"/>
+ <function name="XML_ELEMENT_TYPE_ANY" link="libxml2-tree.html#XML_ELEMENT_TYPE_ANY"/>
+ <function name="XML_ELEMENT_TYPE_ELEMENT" link="libxml2-tree.html#XML_ELEMENT_TYPE_ELEMENT"/>
+ <function name="XML_ELEMENT_TYPE_EMPTY" link="libxml2-tree.html#XML_ELEMENT_TYPE_EMPTY"/>
+ <function name="XML_ELEMENT_TYPE_MIXED" link="libxml2-tree.html#XML_ELEMENT_TYPE_MIXED"/>
+ <function name="XML_ELEMENT_TYPE_UNDEFINED" link="libxml2-tree.html#XML_ELEMENT_TYPE_UNDEFINED"/>
+ <function name="XML_ENTITY_DECL" link="libxml2-tree.html#XML_ENTITY_DECL"/>
+ <function name="XML_ENTITY_NODE" link="libxml2-tree.html#XML_ENTITY_NODE"/>
+ <function name="XML_ENTITY_REF_NODE" link="libxml2-tree.html#XML_ENTITY_REF_NODE"/>
+ <function name="XML_ERR_ATTLIST_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_ATTLIST_NOT_FINISHED"/>
+ <function name="XML_ERR_ATTLIST_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_ATTLIST_NOT_STARTED"/>
+ <function name="XML_ERR_ATTRIBUTE_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_ATTRIBUTE_NOT_FINISHED"/>
+ <function name="XML_ERR_ATTRIBUTE_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_ATTRIBUTE_NOT_STARTED"/>
+ <function name="XML_ERR_ATTRIBUTE_REDEFINED" link="libxml2-xmlerror.html#XML_ERR_ATTRIBUTE_REDEFINED"/>
+ <function name="XML_ERR_ATTRIBUTE_WITHOUT_VALUE" link="libxml2-xmlerror.html#XML_ERR_ATTRIBUTE_WITHOUT_VALUE"/>
+ <function name="XML_ERR_CDATA_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_CDATA_NOT_FINISHED"/>
+ <function name="XML_ERR_CHARREF_AT_EOF" link="libxml2-xmlerror.html#XML_ERR_CHARREF_AT_EOF"/>
+ <function name="XML_ERR_CHARREF_IN_DTD" link="libxml2-xmlerror.html#XML_ERR_CHARREF_IN_DTD"/>
+ <function name="XML_ERR_CHARREF_IN_EPILOG" link="libxml2-xmlerror.html#XML_ERR_CHARREF_IN_EPILOG"/>
+ <function name="XML_ERR_CHARREF_IN_PROLOG" link="libxml2-xmlerror.html#XML_ERR_CHARREF_IN_PROLOG"/>
+ <function name="XML_ERR_COMMENT_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_COMMENT_NOT_FINISHED"/>
+ <function name="XML_ERR_CONDSEC_INVALID" link="libxml2-xmlerror.html#XML_ERR_CONDSEC_INVALID"/>
+ <function name="XML_ERR_CONDSEC_INVALID_KEYWORD" link="libxml2-xmlerror.html#XML_ERR_CONDSEC_INVALID_KEYWORD"/>
+ <function name="XML_ERR_CONDSEC_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_CONDSEC_NOT_FINISHED"/>
+ <function name="XML_ERR_CONDSEC_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_CONDSEC_NOT_STARTED"/>
+ <function name="XML_ERR_DOCTYPE_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_DOCTYPE_NOT_FINISHED"/>
+ <function name="XML_ERR_DOCUMENT_EMPTY" link="libxml2-xmlerror.html#XML_ERR_DOCUMENT_EMPTY"/>
+ <function name="XML_ERR_DOCUMENT_END" link="libxml2-xmlerror.html#XML_ERR_DOCUMENT_END"/>
+ <function name="XML_ERR_DOCUMENT_START" link="libxml2-xmlerror.html#XML_ERR_DOCUMENT_START"/>
+ <function name="XML_ERR_ELEMCONTENT_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_ELEMCONTENT_NOT_FINISHED"/>
+ <function name="XML_ERR_ELEMCONTENT_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_ELEMCONTENT_NOT_STARTED"/>
+ <function name="XML_ERR_ENCODING_NAME" link="libxml2-xmlerror.html#XML_ERR_ENCODING_NAME"/>
+ <function name="XML_ERR_ENTITYREF_AT_EOF" link="libxml2-xmlerror.html#XML_ERR_ENTITYREF_AT_EOF"/>
+ <function name="XML_ERR_ENTITYREF_IN_DTD" link="libxml2-xmlerror.html#XML_ERR_ENTITYREF_IN_DTD"/>
+ <function name="XML_ERR_ENTITYREF_IN_EPILOG" link="libxml2-xmlerror.html#XML_ERR_ENTITYREF_IN_EPILOG"/>
+ <function name="XML_ERR_ENTITYREF_IN_PROLOG" link="libxml2-xmlerror.html#XML_ERR_ENTITYREF_IN_PROLOG"/>
+ <function name="XML_ERR_ENTITYREF_NO_NAME" link="libxml2-xmlerror.html#XML_ERR_ENTITYREF_NO_NAME"/>
+ <function name="XML_ERR_ENTITYREF_SEMICOL_MISSING" link="libxml2-xmlerror.html#XML_ERR_ENTITYREF_SEMICOL_MISSING"/>
+ <function name="XML_ERR_ENTITY_BOUNDARY" link="libxml2-xmlerror.html#XML_ERR_ENTITY_BOUNDARY"/>
+ <function name="XML_ERR_ENTITY_CHAR_ERROR" link="libxml2-xmlerror.html#XML_ERR_ENTITY_CHAR_ERROR"/>
+ <function name="XML_ERR_ENTITY_IS_EXTERNAL" link="libxml2-xmlerror.html#XML_ERR_ENTITY_IS_EXTERNAL"/>
+ <function name="XML_ERR_ENTITY_IS_PARAMETER" link="libxml2-xmlerror.html#XML_ERR_ENTITY_IS_PARAMETER"/>
+ <function name="XML_ERR_ENTITY_LOOP" link="libxml2-xmlerror.html#XML_ERR_ENTITY_LOOP"/>
+ <function name="XML_ERR_ENTITY_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_ENTITY_NOT_FINISHED"/>
+ <function name="XML_ERR_ENTITY_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_ENTITY_NOT_STARTED"/>
+ <function name="XML_ERR_ENTITY_PE_INTERNAL" link="libxml2-xmlerror.html#XML_ERR_ENTITY_PE_INTERNAL"/>
+ <function name="XML_ERR_ENTITY_PROCESSING" link="libxml2-xmlerror.html#XML_ERR_ENTITY_PROCESSING"/>
+ <function name="XML_ERR_EQUAL_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_EQUAL_REQUIRED"/>
+ <function name="XML_ERR_ERROR" link="libxml2-xmlerror.html#XML_ERR_ERROR"/>
+ <function name="XML_ERR_EXTRA_CONTENT" link="libxml2-xmlerror.html#XML_ERR_EXTRA_CONTENT"/>
+ <function name="XML_ERR_EXT_ENTITY_STANDALONE" link="libxml2-xmlerror.html#XML_ERR_EXT_ENTITY_STANDALONE"/>
+ <function name="XML_ERR_EXT_SUBSET_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_EXT_SUBSET_NOT_FINISHED"/>
+ <function name="XML_ERR_FATAL" link="libxml2-xmlerror.html#XML_ERR_FATAL"/>
+ <function name="XML_ERR_GT_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_GT_REQUIRED"/>
+ <function name="XML_ERR_HYPHEN_IN_COMMENT" link="libxml2-xmlerror.html#XML_ERR_HYPHEN_IN_COMMENT"/>
+ <function name="XML_ERR_INTERNAL_ERROR" link="libxml2-xmlerror.html#XML_ERR_INTERNAL_ERROR"/>
+ <function name="XML_ERR_INVALID_CHAR" link="libxml2-xmlerror.html#XML_ERR_INVALID_CHAR"/>
+ <function name="XML_ERR_INVALID_CHARREF" link="libxml2-xmlerror.html#XML_ERR_INVALID_CHARREF"/>
+ <function name="XML_ERR_INVALID_DEC_CHARREF" link="libxml2-xmlerror.html#XML_ERR_INVALID_DEC_CHARREF"/>
+ <function name="XML_ERR_INVALID_ENCODING" link="libxml2-xmlerror.html#XML_ERR_INVALID_ENCODING"/>
+ <function name="XML_ERR_INVALID_HEX_CHARREF" link="libxml2-xmlerror.html#XML_ERR_INVALID_HEX_CHARREF"/>
+ <function name="XML_ERR_INVALID_URI" link="libxml2-xmlerror.html#XML_ERR_INVALID_URI"/>
+ <function name="XML_ERR_LITERAL_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_LITERAL_NOT_FINISHED"/>
+ <function name="XML_ERR_LITERAL_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_LITERAL_NOT_STARTED"/>
+ <function name="XML_ERR_LTSLASH_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_LTSLASH_REQUIRED"/>
+ <function name="XML_ERR_LT_IN_ATTRIBUTE" link="libxml2-xmlerror.html#XML_ERR_LT_IN_ATTRIBUTE"/>
+ <function name="XML_ERR_LT_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_LT_REQUIRED"/>
+ <function name="XML_ERR_MISPLACED_CDATA_END" link="libxml2-xmlerror.html#XML_ERR_MISPLACED_CDATA_END"/>
+ <function name="XML_ERR_MISSING_ENCODING" link="libxml2-xmlerror.html#XML_ERR_MISSING_ENCODING"/>
+ <function name="XML_ERR_MIXED_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_MIXED_NOT_FINISHED"/>
+ <function name="XML_ERR_MIXED_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_MIXED_NOT_STARTED"/>
+ <function name="XML_ERR_NAME_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_NAME_REQUIRED"/>
+ <function name="XML_ERR_NAME_TOO_LONG" link="libxml2-xmlerror.html#XML_ERR_NAME_TOO_LONG"/>
+ <function name="XML_ERR_NMTOKEN_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_NMTOKEN_REQUIRED"/>
+ <function name="XML_ERR_NONE" link="libxml2-xmlerror.html#XML_ERR_NONE"/>
+ <function name="XML_ERR_NOTATION_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_NOTATION_NOT_FINISHED"/>
+ <function name="XML_ERR_NOTATION_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_NOTATION_NOT_STARTED"/>
+ <function name="XML_ERR_NOTATION_PROCESSING" link="libxml2-xmlerror.html#XML_ERR_NOTATION_PROCESSING"/>
+ <function name="XML_ERR_NOT_STANDALONE" link="libxml2-xmlerror.html#XML_ERR_NOT_STANDALONE"/>
+ <function name="XML_ERR_NOT_WELL_BALANCED" link="libxml2-xmlerror.html#XML_ERR_NOT_WELL_BALANCED"/>
+ <function name="XML_ERR_NO_DTD" link="libxml2-xmlerror.html#XML_ERR_NO_DTD"/>
+ <function name="XML_ERR_NO_MEMORY" link="libxml2-xmlerror.html#XML_ERR_NO_MEMORY"/>
+ <function name="XML_ERR_NS_DECL_ERROR" link="libxml2-xmlerror.html#XML_ERR_NS_DECL_ERROR"/>
+ <function name="XML_ERR_OK" link="libxml2-xmlerror.html#XML_ERR_OK"/>
+ <function name="XML_ERR_PCDATA_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_PCDATA_REQUIRED"/>
+ <function name="XML_ERR_PEREF_AT_EOF" link="libxml2-xmlerror.html#XML_ERR_PEREF_AT_EOF"/>
+ <function name="XML_ERR_PEREF_IN_EPILOG" link="libxml2-xmlerror.html#XML_ERR_PEREF_IN_EPILOG"/>
+ <function name="XML_ERR_PEREF_IN_INT_SUBSET" link="libxml2-xmlerror.html#XML_ERR_PEREF_IN_INT_SUBSET"/>
+ <function name="XML_ERR_PEREF_IN_PROLOG" link="libxml2-xmlerror.html#XML_ERR_PEREF_IN_PROLOG"/>
+ <function name="XML_ERR_PEREF_NO_NAME" link="libxml2-xmlerror.html#XML_ERR_PEREF_NO_NAME"/>
+ <function name="XML_ERR_PEREF_SEMICOL_MISSING" link="libxml2-xmlerror.html#XML_ERR_PEREF_SEMICOL_MISSING"/>
+ <function name="XML_ERR_PI_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_PI_NOT_FINISHED"/>
+ <function name="XML_ERR_PI_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_PI_NOT_STARTED"/>
+ <function name="XML_ERR_PUBID_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_PUBID_REQUIRED"/>
+ <function name="XML_ERR_RESERVED_XML_NAME" link="libxml2-xmlerror.html#XML_ERR_RESERVED_XML_NAME"/>
+ <function name="XML_ERR_SEPARATOR_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_SEPARATOR_REQUIRED"/>
+ <function name="XML_ERR_SPACE_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_SPACE_REQUIRED"/>
+ <function name="XML_ERR_STANDALONE_VALUE" link="libxml2-xmlerror.html#XML_ERR_STANDALONE_VALUE"/>
+ <function name="XML_ERR_STRING_NOT_CLOSED" link="libxml2-xmlerror.html#XML_ERR_STRING_NOT_CLOSED"/>
+ <function name="XML_ERR_STRING_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_STRING_NOT_STARTED"/>
+ <function name="XML_ERR_TAG_NAME_MISMATCH" link="libxml2-xmlerror.html#XML_ERR_TAG_NAME_MISMATCH"/>
+ <function name="XML_ERR_TAG_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_TAG_NOT_FINISHED"/>
+ <function name="XML_ERR_UNDECLARED_ENTITY" link="libxml2-xmlerror.html#XML_ERR_UNDECLARED_ENTITY"/>
+ <function name="XML_ERR_UNKNOWN_ENCODING" link="libxml2-xmlerror.html#XML_ERR_UNKNOWN_ENCODING"/>
+ <function name="XML_ERR_UNKNOWN_VERSION" link="libxml2-xmlerror.html#XML_ERR_UNKNOWN_VERSION"/>
+ <function name="XML_ERR_UNPARSED_ENTITY" link="libxml2-xmlerror.html#XML_ERR_UNPARSED_ENTITY"/>
+ <function name="XML_ERR_UNSUPPORTED_ENCODING" link="libxml2-xmlerror.html#XML_ERR_UNSUPPORTED_ENCODING"/>
+ <function name="XML_ERR_URI_FRAGMENT" link="libxml2-xmlerror.html#XML_ERR_URI_FRAGMENT"/>
+ <function name="XML_ERR_URI_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_URI_REQUIRED"/>
+ <function name="XML_ERR_USER_STOP" link="libxml2-xmlerror.html#XML_ERR_USER_STOP"/>
+ <function name="XML_ERR_VALUE_REQUIRED" link="libxml2-xmlerror.html#XML_ERR_VALUE_REQUIRED"/>
+ <function name="XML_ERR_VERSION_MISMATCH" link="libxml2-xmlerror.html#XML_ERR_VERSION_MISMATCH"/>
+ <function name="XML_ERR_VERSION_MISSING" link="libxml2-xmlerror.html#XML_ERR_VERSION_MISSING"/>
+ <function name="XML_ERR_WARNING" link="libxml2-xmlerror.html#XML_ERR_WARNING"/>
+ <function name="XML_ERR_XMLDECL_NOT_FINISHED" link="libxml2-xmlerror.html#XML_ERR_XMLDECL_NOT_FINISHED"/>
+ <function name="XML_ERR_XMLDECL_NOT_STARTED" link="libxml2-xmlerror.html#XML_ERR_XMLDECL_NOT_STARTED"/>
+ <function name="XML_EXP_ATOM" link="libxml2-xmlregexp.html#XML_EXP_ATOM"/>
+ <function name="XML_EXP_COUNT" link="libxml2-xmlregexp.html#XML_EXP_COUNT"/>
+ <function name="XML_EXP_EMPTY" link="libxml2-xmlregexp.html#XML_EXP_EMPTY"/>
+ <function name="XML_EXP_FORBID" link="libxml2-xmlregexp.html#XML_EXP_FORBID"/>
+ <function name="XML_EXP_OR" link="libxml2-xmlregexp.html#XML_EXP_OR"/>
+ <function name="XML_EXP_SEQ" link="libxml2-xmlregexp.html#XML_EXP_SEQ"/>
+ <function name="XML_EXTERNAL_GENERAL_PARSED_ENTITY" link="libxml2-entities.html#XML_EXTERNAL_GENERAL_PARSED_ENTITY"/>
+ <function name="XML_EXTERNAL_GENERAL_UNPARSED_ENTITY" link="libxml2-entities.html#XML_EXTERNAL_GENERAL_UNPARSED_ENTITY"/>
+ <function name="XML_EXTERNAL_PARAMETER_ENTITY" link="libxml2-entities.html#XML_EXTERNAL_PARAMETER_ENTITY"/>
+ <function name="XML_FROM_BUFFER" link="libxml2-xmlerror.html#XML_FROM_BUFFER"/>
+ <function name="XML_FROM_C14N" link="libxml2-xmlerror.html#XML_FROM_C14N"/>
+ <function name="XML_FROM_CATALOG" link="libxml2-xmlerror.html#XML_FROM_CATALOG"/>
+ <function name="XML_FROM_CHECK" link="libxml2-xmlerror.html#XML_FROM_CHECK"/>
+ <function name="XML_FROM_DATATYPE" link="libxml2-xmlerror.html#XML_FROM_DATATYPE"/>
+ <function name="XML_FROM_DTD" link="libxml2-xmlerror.html#XML_FROM_DTD"/>
+ <function name="XML_FROM_FTP" link="libxml2-xmlerror.html#XML_FROM_FTP"/>
+ <function name="XML_FROM_HTML" link="libxml2-xmlerror.html#XML_FROM_HTML"/>
+ <function name="XML_FROM_HTTP" link="libxml2-xmlerror.html#XML_FROM_HTTP"/>
+ <function name="XML_FROM_I18N" link="libxml2-xmlerror.html#XML_FROM_I18N"/>
+ <function name="XML_FROM_IO" link="libxml2-xmlerror.html#XML_FROM_IO"/>
+ <function name="XML_FROM_MEMORY" link="libxml2-xmlerror.html#XML_FROM_MEMORY"/>
+ <function name="XML_FROM_MODULE" link="libxml2-xmlerror.html#XML_FROM_MODULE"/>
+ <function name="XML_FROM_NAMESPACE" link="libxml2-xmlerror.html#XML_FROM_NAMESPACE"/>
+ <function name="XML_FROM_NONE" link="libxml2-xmlerror.html#XML_FROM_NONE"/>
+ <function name="XML_FROM_OUTPUT" link="libxml2-xmlerror.html#XML_FROM_OUTPUT"/>
+ <function name="XML_FROM_PARSER" link="libxml2-xmlerror.html#XML_FROM_PARSER"/>
+ <function name="XML_FROM_REGEXP" link="libxml2-xmlerror.html#XML_FROM_REGEXP"/>
+ <function name="XML_FROM_RELAXNGP" link="libxml2-xmlerror.html#XML_FROM_RELAXNGP"/>
+ <function name="XML_FROM_RELAXNGV" link="libxml2-xmlerror.html#XML_FROM_RELAXNGV"/>
+ <function name="XML_FROM_SCHEMASP" link="libxml2-xmlerror.html#XML_FROM_SCHEMASP"/>
+ <function name="XML_FROM_SCHEMASV" link="libxml2-xmlerror.html#XML_FROM_SCHEMASV"/>
+ <function name="XML_FROM_SCHEMATRONV" link="libxml2-xmlerror.html#XML_FROM_SCHEMATRONV"/>
+ <function name="XML_FROM_TREE" link="libxml2-xmlerror.html#XML_FROM_TREE"/>
+ <function name="XML_FROM_URI" link="libxml2-xmlerror.html#XML_FROM_URI"/>
+ <function name="XML_FROM_VALID" link="libxml2-xmlerror.html#XML_FROM_VALID"/>
+ <function name="XML_FROM_WRITER" link="libxml2-xmlerror.html#XML_FROM_WRITER"/>
+ <function name="XML_FROM_XINCLUDE" link="libxml2-xmlerror.html#XML_FROM_XINCLUDE"/>
+ <function name="XML_FROM_XPATH" link="libxml2-xmlerror.html#XML_FROM_XPATH"/>
+ <function name="XML_FROM_XPOINTER" link="libxml2-xmlerror.html#XML_FROM_XPOINTER"/>
+ <function name="XML_FROM_XSLT" link="libxml2-xmlerror.html#XML_FROM_XSLT"/>
+ <function name="XML_FTP_ACCNT" link="libxml2-xmlerror.html#XML_FTP_ACCNT"/>
+ <function name="XML_FTP_EPSV_ANSWER" link="libxml2-xmlerror.html#XML_FTP_EPSV_ANSWER"/>
+ <function name="XML_FTP_PASV_ANSWER" link="libxml2-xmlerror.html#XML_FTP_PASV_ANSWER"/>
+ <function name="XML_FTP_URL_SYNTAX" link="libxml2-xmlerror.html#XML_FTP_URL_SYNTAX"/>
+ <function name="XML_HTML_DOCUMENT_NODE" link="libxml2-tree.html#XML_HTML_DOCUMENT_NODE"/>
+ <function name="XML_HTML_STRUCURE_ERROR" link="libxml2-xmlerror.html#XML_HTML_STRUCURE_ERROR"/>
+ <function name="XML_HTML_UNKNOWN_TAG" link="libxml2-xmlerror.html#XML_HTML_UNKNOWN_TAG"/>
+ <function name="XML_HTTP_UNKNOWN_HOST" link="libxml2-xmlerror.html#XML_HTTP_UNKNOWN_HOST"/>
+ <function name="XML_HTTP_URL_SYNTAX" link="libxml2-xmlerror.html#XML_HTTP_URL_SYNTAX"/>
+ <function name="XML_HTTP_USE_IP" link="libxml2-xmlerror.html#XML_HTTP_USE_IP"/>
+ <function name="XML_I18N_CONV_FAILED" link="libxml2-xmlerror.html#XML_I18N_CONV_FAILED"/>
+ <function name="XML_I18N_EXCESS_HANDLER" link="libxml2-xmlerror.html#XML_I18N_EXCESS_HANDLER"/>
+ <function name="XML_I18N_NO_HANDLER" link="libxml2-xmlerror.html#XML_I18N_NO_HANDLER"/>
+ <function name="XML_I18N_NO_NAME" link="libxml2-xmlerror.html#XML_I18N_NO_NAME"/>
+ <function name="XML_I18N_NO_OUTPUT" link="libxml2-xmlerror.html#XML_I18N_NO_OUTPUT"/>
+ <function name="XML_INTERNAL_GENERAL_ENTITY" link="libxml2-entities.html#XML_INTERNAL_GENERAL_ENTITY"/>
+ <function name="XML_INTERNAL_PARAMETER_ENTITY" link="libxml2-entities.html#XML_INTERNAL_PARAMETER_ENTITY"/>
+ <function name="XML_INTERNAL_PREDEFINED_ENTITY" link="libxml2-entities.html#XML_INTERNAL_PREDEFINED_ENTITY"/>
+ <function name="XML_IO_BUFFER_FULL" link="libxml2-xmlerror.html#XML_IO_BUFFER_FULL"/>
+ <function name="XML_IO_EACCES" link="libxml2-xmlerror.html#XML_IO_EACCES"/>
+ <function name="XML_IO_EADDRINUSE" link="libxml2-xmlerror.html#XML_IO_EADDRINUSE"/>
+ <function name="XML_IO_EAFNOSUPPORT" link="libxml2-xmlerror.html#XML_IO_EAFNOSUPPORT"/>
+ <function name="XML_IO_EAGAIN" link="libxml2-xmlerror.html#XML_IO_EAGAIN"/>
+ <function name="XML_IO_EALREADY" link="libxml2-xmlerror.html#XML_IO_EALREADY"/>
+ <function name="XML_IO_EBADF" link="libxml2-xmlerror.html#XML_IO_EBADF"/>
+ <function name="XML_IO_EBADMSG" link="libxml2-xmlerror.html#XML_IO_EBADMSG"/>
+ <function name="XML_IO_EBUSY" link="libxml2-xmlerror.html#XML_IO_EBUSY"/>
+ <function name="XML_IO_ECANCELED" link="libxml2-xmlerror.html#XML_IO_ECANCELED"/>
+ <function name="XML_IO_ECHILD" link="libxml2-xmlerror.html#XML_IO_ECHILD"/>
+ <function name="XML_IO_ECONNREFUSED" link="libxml2-xmlerror.html#XML_IO_ECONNREFUSED"/>
+ <function name="XML_IO_EDEADLK" link="libxml2-xmlerror.html#XML_IO_EDEADLK"/>
+ <function name="XML_IO_EDOM" link="libxml2-xmlerror.html#XML_IO_EDOM"/>
+ <function name="XML_IO_EEXIST" link="libxml2-xmlerror.html#XML_IO_EEXIST"/>
+ <function name="XML_IO_EFAULT" link="libxml2-xmlerror.html#XML_IO_EFAULT"/>
+ <function name="XML_IO_EFBIG" link="libxml2-xmlerror.html#XML_IO_EFBIG"/>
+ <function name="XML_IO_EINPROGRESS" link="libxml2-xmlerror.html#XML_IO_EINPROGRESS"/>
+ <function name="XML_IO_EINTR" link="libxml2-xmlerror.html#XML_IO_EINTR"/>
+ <function name="XML_IO_EINVAL" link="libxml2-xmlerror.html#XML_IO_EINVAL"/>
+ <function name="XML_IO_EIO" link="libxml2-xmlerror.html#XML_IO_EIO"/>
+ <function name="XML_IO_EISCONN" link="libxml2-xmlerror.html#XML_IO_EISCONN"/>
+ <function name="XML_IO_EISDIR" link="libxml2-xmlerror.html#XML_IO_EISDIR"/>
+ <function name="XML_IO_EMFILE" link="libxml2-xmlerror.html#XML_IO_EMFILE"/>
+ <function name="XML_IO_EMLINK" link="libxml2-xmlerror.html#XML_IO_EMLINK"/>
+ <function name="XML_IO_EMSGSIZE" link="libxml2-xmlerror.html#XML_IO_EMSGSIZE"/>
+ <function name="XML_IO_ENAMETOOLONG" link="libxml2-xmlerror.html#XML_IO_ENAMETOOLONG"/>
+ <function name="XML_IO_ENCODER" link="libxml2-xmlerror.html#XML_IO_ENCODER"/>
+ <function name="XML_IO_ENETUNREACH" link="libxml2-xmlerror.html#XML_IO_ENETUNREACH"/>
+ <function name="XML_IO_ENFILE" link="libxml2-xmlerror.html#XML_IO_ENFILE"/>
+ <function name="XML_IO_ENODEV" link="libxml2-xmlerror.html#XML_IO_ENODEV"/>
+ <function name="XML_IO_ENOENT" link="libxml2-xmlerror.html#XML_IO_ENOENT"/>
+ <function name="XML_IO_ENOEXEC" link="libxml2-xmlerror.html#XML_IO_ENOEXEC"/>
+ <function name="XML_IO_ENOLCK" link="libxml2-xmlerror.html#XML_IO_ENOLCK"/>
+ <function name="XML_IO_ENOMEM" link="libxml2-xmlerror.html#XML_IO_ENOMEM"/>
+ <function name="XML_IO_ENOSPC" link="libxml2-xmlerror.html#XML_IO_ENOSPC"/>
+ <function name="XML_IO_ENOSYS" link="libxml2-xmlerror.html#XML_IO_ENOSYS"/>
+ <function name="XML_IO_ENOTDIR" link="libxml2-xmlerror.html#XML_IO_ENOTDIR"/>
+ <function name="XML_IO_ENOTEMPTY" link="libxml2-xmlerror.html#XML_IO_ENOTEMPTY"/>
+ <function name="XML_IO_ENOTSOCK" link="libxml2-xmlerror.html#XML_IO_ENOTSOCK"/>
+ <function name="XML_IO_ENOTSUP" link="libxml2-xmlerror.html#XML_IO_ENOTSUP"/>
+ <function name="XML_IO_ENOTTY" link="libxml2-xmlerror.html#XML_IO_ENOTTY"/>
+ <function name="XML_IO_ENXIO" link="libxml2-xmlerror.html#XML_IO_ENXIO"/>
+ <function name="XML_IO_EPERM" link="libxml2-xmlerror.html#XML_IO_EPERM"/>
+ <function name="XML_IO_EPIPE" link="libxml2-xmlerror.html#XML_IO_EPIPE"/>
+ <function name="XML_IO_ERANGE" link="libxml2-xmlerror.html#XML_IO_ERANGE"/>
+ <function name="XML_IO_EROFS" link="libxml2-xmlerror.html#XML_IO_EROFS"/>
+ <function name="XML_IO_ESPIPE" link="libxml2-xmlerror.html#XML_IO_ESPIPE"/>
+ <function name="XML_IO_ESRCH" link="libxml2-xmlerror.html#XML_IO_ESRCH"/>
+ <function name="XML_IO_ETIMEDOUT" link="libxml2-xmlerror.html#XML_IO_ETIMEDOUT"/>
+ <function name="XML_IO_EXDEV" link="libxml2-xmlerror.html#XML_IO_EXDEV"/>
+ <function name="XML_IO_FLUSH" link="libxml2-xmlerror.html#XML_IO_FLUSH"/>
+ <function name="XML_IO_LOAD_ERROR" link="libxml2-xmlerror.html#XML_IO_LOAD_ERROR"/>
+ <function name="XML_IO_NETWORK_ATTEMPT" link="libxml2-xmlerror.html#XML_IO_NETWORK_ATTEMPT"/>
+ <function name="XML_IO_NO_INPUT" link="libxml2-xmlerror.html#XML_IO_NO_INPUT"/>
+ <function name="XML_IO_UNKNOWN" link="libxml2-xmlerror.html#XML_IO_UNKNOWN"/>
+ <function name="XML_IO_WRITE" link="libxml2-xmlerror.html#XML_IO_WRITE"/>
+ <function name="XML_MODULE_CLOSE" link="libxml2-xmlerror.html#XML_MODULE_CLOSE"/>
+ <function name="XML_MODULE_LAZY" link="libxml2-xmlmodule.html#XML_MODULE_LAZY"/>
+ <function name="XML_MODULE_LOCAL" link="libxml2-xmlmodule.html#XML_MODULE_LOCAL"/>
+ <function name="XML_MODULE_OPEN" link="libxml2-xmlerror.html#XML_MODULE_OPEN"/>
+ <function name="XML_NAMESPACE_DECL" link="libxml2-tree.html#XML_NAMESPACE_DECL"/>
+ <function name="XML_NOTATION_NODE" link="libxml2-tree.html#XML_NOTATION_NODE"/>
+ <function name="XML_NS_ERR_ATTRIBUTE_REDEFINED" link="libxml2-xmlerror.html#XML_NS_ERR_ATTRIBUTE_REDEFINED"/>
+ <function name="XML_NS_ERR_COLON" link="libxml2-xmlerror.html#XML_NS_ERR_COLON"/>
+ <function name="XML_NS_ERR_EMPTY" link="libxml2-xmlerror.html#XML_NS_ERR_EMPTY"/>
+ <function name="XML_NS_ERR_QNAME" link="libxml2-xmlerror.html#XML_NS_ERR_QNAME"/>
+ <function name="XML_NS_ERR_UNDEFINED_NAMESPACE" link="libxml2-xmlerror.html#XML_NS_ERR_UNDEFINED_NAMESPACE"/>
+ <function name="XML_NS_ERR_XML_NAMESPACE" link="libxml2-xmlerror.html#XML_NS_ERR_XML_NAMESPACE"/>
+ <function name="XML_PARSER_ATTRIBUTE_VALUE" link="libxml2-parser.html#XML_PARSER_ATTRIBUTE_VALUE"/>
+ <function name="XML_PARSER_CDATA_SECTION" link="libxml2-parser.html#XML_PARSER_CDATA_SECTION"/>
+ <function name="XML_PARSER_COMMENT" link="libxml2-parser.html#XML_PARSER_COMMENT"/>
+ <function name="XML_PARSER_CONTENT" link="libxml2-parser.html#XML_PARSER_CONTENT"/>
+ <function name="XML_PARSER_DEFAULTATTRS" link="libxml2-xmlreader.html#XML_PARSER_DEFAULTATTRS"/>
+ <function name="XML_PARSER_DTD" link="libxml2-parser.html#XML_PARSER_DTD"/>
+ <function name="XML_PARSER_END_TAG" link="libxml2-parser.html#XML_PARSER_END_TAG"/>
+ <function name="XML_PARSER_ENTITY_DECL" link="libxml2-parser.html#XML_PARSER_ENTITY_DECL"/>
+ <function name="XML_PARSER_ENTITY_VALUE" link="libxml2-parser.html#XML_PARSER_ENTITY_VALUE"/>
+ <function name="XML_PARSER_EOF" link="libxml2-parser.html#XML_PARSER_EOF"/>
+ <function name="XML_PARSER_EPILOG" link="libxml2-parser.html#XML_PARSER_EPILOG"/>
+ <function name="XML_PARSER_IGNORE" link="libxml2-parser.html#XML_PARSER_IGNORE"/>
+ <function name="XML_PARSER_LOADDTD" link="libxml2-xmlreader.html#XML_PARSER_LOADDTD"/>
+ <function name="XML_PARSER_MISC" link="libxml2-parser.html#XML_PARSER_MISC"/>
+ <function name="XML_PARSER_PI" link="libxml2-parser.html#XML_PARSER_PI"/>
+ <function name="XML_PARSER_PROLOG" link="libxml2-parser.html#XML_PARSER_PROLOG"/>
+ <function name="XML_PARSER_PUBLIC_LITERAL" link="libxml2-parser.html#XML_PARSER_PUBLIC_LITERAL"/>
+ <function name="XML_PARSER_SEVERITY_ERROR" link="libxml2-xmlreader.html#XML_PARSER_SEVERITY_ERROR"/>
+ <function name="XML_PARSER_SEVERITY_VALIDITY_ERROR" link="libxml2-xmlreader.html#XML_PARSER_SEVERITY_VALIDITY_ERROR"/>
+ <function name="XML_PARSER_SEVERITY_VALIDITY_WARNING" link="libxml2-xmlreader.html#XML_PARSER_SEVERITY_VALIDITY_WARNING"/>
+ <function name="XML_PARSER_SEVERITY_WARNING" link="libxml2-xmlreader.html#XML_PARSER_SEVERITY_WARNING"/>
+ <function name="XML_PARSER_START" link="libxml2-parser.html#XML_PARSER_START"/>
+ <function name="XML_PARSER_START_TAG" link="libxml2-parser.html#XML_PARSER_START_TAG"/>
+ <function name="XML_PARSER_SUBST_ENTITIES" link="libxml2-xmlreader.html#XML_PARSER_SUBST_ENTITIES"/>
+ <function name="XML_PARSER_SYSTEM_LITERAL" link="libxml2-parser.html#XML_PARSER_SYSTEM_LITERAL"/>
+ <function name="XML_PARSER_VALIDATE" link="libxml2-xmlreader.html#XML_PARSER_VALIDATE"/>
+ <function name="XML_PARSE_BIG_LINES" link="libxml2-parser.html#XML_PARSE_BIG_LINES"/>
+ <function name="XML_PARSE_COMPACT" link="libxml2-parser.html#XML_PARSE_COMPACT"/>
+ <function name="XML_PARSE_DOM" link="libxml2-parser.html#XML_PARSE_DOM"/>
+ <function name="XML_PARSE_DTDATTR" link="libxml2-parser.html#XML_PARSE_DTDATTR"/>
+ <function name="XML_PARSE_DTDLOAD" link="libxml2-parser.html#XML_PARSE_DTDLOAD"/>
+ <function name="XML_PARSE_DTDVALID" link="libxml2-parser.html#XML_PARSE_DTDVALID"/>
+ <function name="XML_PARSE_HUGE" link="libxml2-parser.html#XML_PARSE_HUGE"/>
+ <function name="XML_PARSE_IGNORE_ENC" link="libxml2-parser.html#XML_PARSE_IGNORE_ENC"/>
+ <function name="XML_PARSE_NOBASEFIX" link="libxml2-parser.html#XML_PARSE_NOBASEFIX"/>
+ <function name="XML_PARSE_NOBLANKS" link="libxml2-parser.html#XML_PARSE_NOBLANKS"/>
+ <function name="XML_PARSE_NOCDATA" link="libxml2-parser.html#XML_PARSE_NOCDATA"/>
+ <function name="XML_PARSE_NODICT" link="libxml2-parser.html#XML_PARSE_NODICT"/>
+ <function name="XML_PARSE_NOENT" link="libxml2-parser.html#XML_PARSE_NOENT"/>
+ <function name="XML_PARSE_NOERROR" link="libxml2-parser.html#XML_PARSE_NOERROR"/>
+ <function name="XML_PARSE_NONET" link="libxml2-parser.html#XML_PARSE_NONET"/>
+ <function name="XML_PARSE_NOWARNING" link="libxml2-parser.html#XML_PARSE_NOWARNING"/>
+ <function name="XML_PARSE_NOXINCNODE" link="libxml2-parser.html#XML_PARSE_NOXINCNODE"/>
+ <function name="XML_PARSE_NSCLEAN" link="libxml2-parser.html#XML_PARSE_NSCLEAN"/>
+ <function name="XML_PARSE_OLD10" link="libxml2-parser.html#XML_PARSE_OLD10"/>
+ <function name="XML_PARSE_OLDSAX" link="libxml2-parser.html#XML_PARSE_OLDSAX"/>
+ <function name="XML_PARSE_PEDANTIC" link="libxml2-parser.html#XML_PARSE_PEDANTIC"/>
+ <function name="XML_PARSE_PUSH_DOM" link="libxml2-parser.html#XML_PARSE_PUSH_DOM"/>
+ <function name="XML_PARSE_PUSH_SAX" link="libxml2-parser.html#XML_PARSE_PUSH_SAX"/>
+ <function name="XML_PARSE_READER" link="libxml2-parser.html#XML_PARSE_READER"/>
+ <function name="XML_PARSE_RECOVER" link="libxml2-parser.html#XML_PARSE_RECOVER"/>
+ <function name="XML_PARSE_SAX" link="libxml2-parser.html#XML_PARSE_SAX"/>
+ <function name="XML_PARSE_SAX1" link="libxml2-parser.html#XML_PARSE_SAX1"/>
+ <function name="XML_PARSE_UNKNOWN" link="libxml2-parser.html#XML_PARSE_UNKNOWN"/>
+ <function name="XML_PARSE_XINCLUDE" link="libxml2-parser.html#XML_PARSE_XINCLUDE"/>
+ <function name="XML_PATTERN_DEFAULT" link="libxml2-pattern.html#XML_PATTERN_DEFAULT"/>
+ <function name="XML_PATTERN_XPATH" link="libxml2-pattern.html#XML_PATTERN_XPATH"/>
+ <function name="XML_PATTERN_XSFIELD" link="libxml2-pattern.html#XML_PATTERN_XSFIELD"/>
+ <function name="XML_PATTERN_XSSEL" link="libxml2-pattern.html#XML_PATTERN_XSSEL"/>
+ <function name="XML_PI_NODE" link="libxml2-tree.html#XML_PI_NODE"/>
+ <function name="XML_READER_TYPE_ATTRIBUTE" link="libxml2-xmlreader.html#XML_READER_TYPE_ATTRIBUTE"/>
+ <function name="XML_READER_TYPE_CDATA" link="libxml2-xmlreader.html#XML_READER_TYPE_CDATA"/>
+ <function name="XML_READER_TYPE_COMMENT" link="libxml2-xmlreader.html#XML_READER_TYPE_COMMENT"/>
+ <function name="XML_READER_TYPE_DOCUMENT" link="libxml2-xmlreader.html#XML_READER_TYPE_DOCUMENT"/>
+ <function name="XML_READER_TYPE_DOCUMENT_FRAGMENT" link="libxml2-xmlreader.html#XML_READER_TYPE_DOCUMENT_FRAGMENT"/>
+ <function name="XML_READER_TYPE_DOCUMENT_TYPE" link="libxml2-xmlreader.html#XML_READER_TYPE_DOCUMENT_TYPE"/>
+ <function name="XML_READER_TYPE_ELEMENT" link="libxml2-xmlreader.html#XML_READER_TYPE_ELEMENT"/>
+ <function name="XML_READER_TYPE_END_ELEMENT" link="libxml2-xmlreader.html#XML_READER_TYPE_END_ELEMENT"/>
+ <function name="XML_READER_TYPE_END_ENTITY" link="libxml2-xmlreader.html#XML_READER_TYPE_END_ENTITY"/>
+ <function name="XML_READER_TYPE_ENTITY" link="libxml2-xmlreader.html#XML_READER_TYPE_ENTITY"/>
+ <function name="XML_READER_TYPE_ENTITY_REFERENCE" link="libxml2-xmlreader.html#XML_READER_TYPE_ENTITY_REFERENCE"/>
+ <function name="XML_READER_TYPE_NONE" link="libxml2-xmlreader.html#XML_READER_TYPE_NONE"/>
+ <function name="XML_READER_TYPE_NOTATION" link="libxml2-xmlreader.html#XML_READER_TYPE_NOTATION"/>
+ <function name="XML_READER_TYPE_PROCESSING_INSTRUCTION" link="libxml2-xmlreader.html#XML_READER_TYPE_PROCESSING_INSTRUCTION"/>
+ <function name="XML_READER_TYPE_SIGNIFICANT_WHITESPACE" link="libxml2-xmlreader.html#XML_READER_TYPE_SIGNIFICANT_WHITESPACE"/>
+ <function name="XML_READER_TYPE_TEXT" link="libxml2-xmlreader.html#XML_READER_TYPE_TEXT"/>
+ <function name="XML_READER_TYPE_WHITESPACE" link="libxml2-xmlreader.html#XML_READER_TYPE_WHITESPACE"/>
+ <function name="XML_READER_TYPE_XML_DECLARATION" link="libxml2-xmlreader.html#XML_READER_TYPE_XML_DECLARATION"/>
+ <function name="XML_REGEXP_COMPILE_ERROR" link="libxml2-xmlerror.html#XML_REGEXP_COMPILE_ERROR"/>
+ <function name="XML_RELAXNGP_CRNG" link="libxml2-relaxng.html#XML_RELAXNGP_CRNG"/>
+ <function name="XML_RELAXNGP_FREE_DOC" link="libxml2-relaxng.html#XML_RELAXNGP_FREE_DOC"/>
+ <function name="XML_RELAXNGP_NONE" link="libxml2-relaxng.html#XML_RELAXNGP_NONE"/>
+ <function name="XML_RELAXNG_ERR_ATTREXTRANS" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ATTREXTRANS"/>
+ <function name="XML_RELAXNG_ERR_ATTRNAME" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ATTRNAME"/>
+ <function name="XML_RELAXNG_ERR_ATTRNONS" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ATTRNONS"/>
+ <function name="XML_RELAXNG_ERR_ATTRVALID" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ATTRVALID"/>
+ <function name="XML_RELAXNG_ERR_ATTRWRONGNS" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ATTRWRONGNS"/>
+ <function name="XML_RELAXNG_ERR_CONTENTVALID" link="libxml2-relaxng.html#XML_RELAXNG_ERR_CONTENTVALID"/>
+ <function name="XML_RELAXNG_ERR_DATAELEM" link="libxml2-relaxng.html#XML_RELAXNG_ERR_DATAELEM"/>
+ <function name="XML_RELAXNG_ERR_DATATYPE" link="libxml2-relaxng.html#XML_RELAXNG_ERR_DATATYPE"/>
+ <function name="XML_RELAXNG_ERR_DUPID" link="libxml2-relaxng.html#XML_RELAXNG_ERR_DUPID"/>
+ <function name="XML_RELAXNG_ERR_ELEMEXTRANS" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ELEMEXTRANS"/>
+ <function name="XML_RELAXNG_ERR_ELEMNAME" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ELEMNAME"/>
+ <function name="XML_RELAXNG_ERR_ELEMNONS" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ELEMNONS"/>
+ <function name="XML_RELAXNG_ERR_ELEMNOTEMPTY" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ELEMNOTEMPTY"/>
+ <function name="XML_RELAXNG_ERR_ELEMWRONG" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ELEMWRONG"/>
+ <function name="XML_RELAXNG_ERR_ELEMWRONGNS" link="libxml2-relaxng.html#XML_RELAXNG_ERR_ELEMWRONGNS"/>
+ <function name="XML_RELAXNG_ERR_EXTRACONTENT" link="libxml2-relaxng.html#XML_RELAXNG_ERR_EXTRACONTENT"/>
+ <function name="XML_RELAXNG_ERR_EXTRADATA" link="libxml2-relaxng.html#XML_RELAXNG_ERR_EXTRADATA"/>
+ <function name="XML_RELAXNG_ERR_INTEREXTRA" link="libxml2-relaxng.html#XML_RELAXNG_ERR_INTEREXTRA"/>
+ <function name="XML_RELAXNG_ERR_INTERNAL" link="libxml2-relaxng.html#XML_RELAXNG_ERR_INTERNAL"/>
+ <function name="XML_RELAXNG_ERR_INTERNODATA" link="libxml2-relaxng.html#XML_RELAXNG_ERR_INTERNODATA"/>
+ <function name="XML_RELAXNG_ERR_INTERSEQ" link="libxml2-relaxng.html#XML_RELAXNG_ERR_INTERSEQ"/>
+ <function name="XML_RELAXNG_ERR_INVALIDATTR" link="libxml2-relaxng.html#XML_RELAXNG_ERR_INVALIDATTR"/>
+ <function name="XML_RELAXNG_ERR_LACKDATA" link="libxml2-relaxng.html#XML_RELAXNG_ERR_LACKDATA"/>
+ <function name="XML_RELAXNG_ERR_LIST" link="libxml2-relaxng.html#XML_RELAXNG_ERR_LIST"/>
+ <function name="XML_RELAXNG_ERR_LISTELEM" link="libxml2-relaxng.html#XML_RELAXNG_ERR_LISTELEM"/>
+ <function name="XML_RELAXNG_ERR_LISTEMPTY" link="libxml2-relaxng.html#XML_RELAXNG_ERR_LISTEMPTY"/>
+ <function name="XML_RELAXNG_ERR_LISTEXTRA" link="libxml2-relaxng.html#XML_RELAXNG_ERR_LISTEXTRA"/>
+ <function name="XML_RELAXNG_ERR_MEMORY" link="libxml2-relaxng.html#XML_RELAXNG_ERR_MEMORY"/>
+ <function name="XML_RELAXNG_ERR_NODEFINE" link="libxml2-relaxng.html#XML_RELAXNG_ERR_NODEFINE"/>
+ <function name="XML_RELAXNG_ERR_NOELEM" link="libxml2-relaxng.html#XML_RELAXNG_ERR_NOELEM"/>
+ <function name="XML_RELAXNG_ERR_NOGRAMMAR" link="libxml2-relaxng.html#XML_RELAXNG_ERR_NOGRAMMAR"/>
+ <function name="XML_RELAXNG_ERR_NOSTATE" link="libxml2-relaxng.html#XML_RELAXNG_ERR_NOSTATE"/>
+ <function name="XML_RELAXNG_ERR_NOTELEM" link="libxml2-relaxng.html#XML_RELAXNG_ERR_NOTELEM"/>
+ <function name="XML_RELAXNG_ERR_TEXTWRONG" link="libxml2-relaxng.html#XML_RELAXNG_ERR_TEXTWRONG"/>
+ <function name="XML_RELAXNG_ERR_TYPE" link="libxml2-relaxng.html#XML_RELAXNG_ERR_TYPE"/>
+ <function name="XML_RELAXNG_ERR_TYPECMP" link="libxml2-relaxng.html#XML_RELAXNG_ERR_TYPECMP"/>
+ <function name="XML_RELAXNG_ERR_TYPEVAL" link="libxml2-relaxng.html#XML_RELAXNG_ERR_TYPEVAL"/>
+ <function name="XML_RELAXNG_ERR_VALELEM" link="libxml2-relaxng.html#XML_RELAXNG_ERR_VALELEM"/>
+ <function name="XML_RELAXNG_ERR_VALUE" link="libxml2-relaxng.html#XML_RELAXNG_ERR_VALUE"/>
+ <function name="XML_RELAXNG_OK" link="libxml2-relaxng.html#XML_RELAXNG_OK"/>
+ <function name="XML_RNGP_ANYNAME_ATTR_ANCESTOR" link="libxml2-xmlerror.html#XML_RNGP_ANYNAME_ATTR_ANCESTOR"/>
+ <function name="XML_RNGP_ATTRIBUTE_CHILDREN" link="libxml2-xmlerror.html#XML_RNGP_ATTRIBUTE_CHILDREN"/>
+ <function name="XML_RNGP_ATTRIBUTE_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_ATTRIBUTE_CONTENT"/>
+ <function name="XML_RNGP_ATTRIBUTE_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_ATTRIBUTE_EMPTY"/>
+ <function name="XML_RNGP_ATTRIBUTE_NOOP" link="libxml2-xmlerror.html#XML_RNGP_ATTRIBUTE_NOOP"/>
+ <function name="XML_RNGP_ATTR_CONFLICT" link="libxml2-xmlerror.html#XML_RNGP_ATTR_CONFLICT"/>
+ <function name="XML_RNGP_CHOICE_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_CHOICE_CONTENT"/>
+ <function name="XML_RNGP_CHOICE_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_CHOICE_EMPTY"/>
+ <function name="XML_RNGP_CREATE_FAILURE" link="libxml2-xmlerror.html#XML_RNGP_CREATE_FAILURE"/>
+ <function name="XML_RNGP_DATA_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_DATA_CONTENT"/>
+ <function name="XML_RNGP_DEFINE_CREATE_FAILED" link="libxml2-xmlerror.html#XML_RNGP_DEFINE_CREATE_FAILED"/>
+ <function name="XML_RNGP_DEFINE_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_DEFINE_EMPTY"/>
+ <function name="XML_RNGP_DEFINE_MISSING" link="libxml2-xmlerror.html#XML_RNGP_DEFINE_MISSING"/>
+ <function name="XML_RNGP_DEFINE_NAME_MISSING" link="libxml2-xmlerror.html#XML_RNGP_DEFINE_NAME_MISSING"/>
+ <function name="XML_RNGP_DEF_CHOICE_AND_INTERLEAVE" link="libxml2-xmlerror.html#XML_RNGP_DEF_CHOICE_AND_INTERLEAVE"/>
+ <function name="XML_RNGP_ELEMENT_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_ELEMENT_CONTENT"/>
+ <function name="XML_RNGP_ELEMENT_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_ELEMENT_EMPTY"/>
+ <function name="XML_RNGP_ELEMENT_NAME" link="libxml2-xmlerror.html#XML_RNGP_ELEMENT_NAME"/>
+ <function name="XML_RNGP_ELEMENT_NO_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_ELEMENT_NO_CONTENT"/>
+ <function name="XML_RNGP_ELEM_CONTENT_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_ELEM_CONTENT_EMPTY"/>
+ <function name="XML_RNGP_ELEM_CONTENT_ERROR" link="libxml2-xmlerror.html#XML_RNGP_ELEM_CONTENT_ERROR"/>
+ <function name="XML_RNGP_ELEM_TEXT_CONFLICT" link="libxml2-xmlerror.html#XML_RNGP_ELEM_TEXT_CONFLICT"/>
+ <function name="XML_RNGP_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_EMPTY"/>
+ <function name="XML_RNGP_EMPTY_CONSTRUCT" link="libxml2-xmlerror.html#XML_RNGP_EMPTY_CONSTRUCT"/>
+ <function name="XML_RNGP_EMPTY_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_EMPTY_CONTENT"/>
+ <function name="XML_RNGP_EMPTY_NOT_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_EMPTY_NOT_EMPTY"/>
+ <function name="XML_RNGP_ERROR_TYPE_LIB" link="libxml2-xmlerror.html#XML_RNGP_ERROR_TYPE_LIB"/>
+ <function name="XML_RNGP_EXCEPT_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_EXCEPT_EMPTY"/>
+ <function name="XML_RNGP_EXCEPT_MISSING" link="libxml2-xmlerror.html#XML_RNGP_EXCEPT_MISSING"/>
+ <function name="XML_RNGP_EXCEPT_MULTIPLE" link="libxml2-xmlerror.html#XML_RNGP_EXCEPT_MULTIPLE"/>
+ <function name="XML_RNGP_EXCEPT_NO_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_EXCEPT_NO_CONTENT"/>
+ <function name="XML_RNGP_EXTERNALREF_EMTPY" link="libxml2-xmlerror.html#XML_RNGP_EXTERNALREF_EMTPY"/>
+ <function name="XML_RNGP_EXTERNALREF_RECURSE" link="libxml2-xmlerror.html#XML_RNGP_EXTERNALREF_RECURSE"/>
+ <function name="XML_RNGP_EXTERNAL_REF_FAILURE" link="libxml2-xmlerror.html#XML_RNGP_EXTERNAL_REF_FAILURE"/>
+ <function name="XML_RNGP_FORBIDDEN_ATTRIBUTE" link="libxml2-xmlerror.html#XML_RNGP_FORBIDDEN_ATTRIBUTE"/>
+ <function name="XML_RNGP_FOREIGN_ELEMENT" link="libxml2-xmlerror.html#XML_RNGP_FOREIGN_ELEMENT"/>
+ <function name="XML_RNGP_GRAMMAR_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_GRAMMAR_CONTENT"/>
+ <function name="XML_RNGP_GRAMMAR_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_GRAMMAR_EMPTY"/>
+ <function name="XML_RNGP_GRAMMAR_MISSING" link="libxml2-xmlerror.html#XML_RNGP_GRAMMAR_MISSING"/>
+ <function name="XML_RNGP_GRAMMAR_NO_START" link="libxml2-xmlerror.html#XML_RNGP_GRAMMAR_NO_START"/>
+ <function name="XML_RNGP_GROUP_ATTR_CONFLICT" link="libxml2-xmlerror.html#XML_RNGP_GROUP_ATTR_CONFLICT"/>
+ <function name="XML_RNGP_HREF_ERROR" link="libxml2-xmlerror.html#XML_RNGP_HREF_ERROR"/>
+ <function name="XML_RNGP_INCLUDE_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_INCLUDE_EMPTY"/>
+ <function name="XML_RNGP_INCLUDE_FAILURE" link="libxml2-xmlerror.html#XML_RNGP_INCLUDE_FAILURE"/>
+ <function name="XML_RNGP_INCLUDE_RECURSE" link="libxml2-xmlerror.html#XML_RNGP_INCLUDE_RECURSE"/>
+ <function name="XML_RNGP_INTERLEAVE_ADD" link="libxml2-xmlerror.html#XML_RNGP_INTERLEAVE_ADD"/>
+ <function name="XML_RNGP_INTERLEAVE_CREATE_FAILED" link="libxml2-xmlerror.html#XML_RNGP_INTERLEAVE_CREATE_FAILED"/>
+ <function name="XML_RNGP_INTERLEAVE_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_INTERLEAVE_EMPTY"/>
+ <function name="XML_RNGP_INTERLEAVE_NO_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_INTERLEAVE_NO_CONTENT"/>
+ <function name="XML_RNGP_INVALID_DEFINE_NAME" link="libxml2-xmlerror.html#XML_RNGP_INVALID_DEFINE_NAME"/>
+ <function name="XML_RNGP_INVALID_URI" link="libxml2-xmlerror.html#XML_RNGP_INVALID_URI"/>
+ <function name="XML_RNGP_INVALID_VALUE" link="libxml2-xmlerror.html#XML_RNGP_INVALID_VALUE"/>
+ <function name="XML_RNGP_MISSING_HREF" link="libxml2-xmlerror.html#XML_RNGP_MISSING_HREF"/>
+ <function name="XML_RNGP_NAME_MISSING" link="libxml2-xmlerror.html#XML_RNGP_NAME_MISSING"/>
+ <function name="XML_RNGP_NEED_COMBINE" link="libxml2-xmlerror.html#XML_RNGP_NEED_COMBINE"/>
+ <function name="XML_RNGP_NOTALLOWED_NOT_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_NOTALLOWED_NOT_EMPTY"/>
+ <function name="XML_RNGP_NSNAME_ATTR_ANCESTOR" link="libxml2-xmlerror.html#XML_RNGP_NSNAME_ATTR_ANCESTOR"/>
+ <function name="XML_RNGP_NSNAME_NO_NS" link="libxml2-xmlerror.html#XML_RNGP_NSNAME_NO_NS"/>
+ <function name="XML_RNGP_PARAM_FORBIDDEN" link="libxml2-xmlerror.html#XML_RNGP_PARAM_FORBIDDEN"/>
+ <function name="XML_RNGP_PARAM_NAME_MISSING" link="libxml2-xmlerror.html#XML_RNGP_PARAM_NAME_MISSING"/>
+ <function name="XML_RNGP_PARENTREF_CREATE_FAILED" link="libxml2-xmlerror.html#XML_RNGP_PARENTREF_CREATE_FAILED"/>
+ <function name="XML_RNGP_PARENTREF_NAME_INVALID" link="libxml2-xmlerror.html#XML_RNGP_PARENTREF_NAME_INVALID"/>
+ <function name="XML_RNGP_PARENTREF_NOT_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_PARENTREF_NOT_EMPTY"/>
+ <function name="XML_RNGP_PARENTREF_NO_NAME" link="libxml2-xmlerror.html#XML_RNGP_PARENTREF_NO_NAME"/>
+ <function name="XML_RNGP_PARENTREF_NO_PARENT" link="libxml2-xmlerror.html#XML_RNGP_PARENTREF_NO_PARENT"/>
+ <function name="XML_RNGP_PARSE_ERROR" link="libxml2-xmlerror.html#XML_RNGP_PARSE_ERROR"/>
+ <function name="XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME" link="libxml2-xmlerror.html#XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME"/>
+ <function name="XML_RNGP_PAT_ATTR_ATTR" link="libxml2-xmlerror.html#XML_RNGP_PAT_ATTR_ATTR"/>
+ <function name="XML_RNGP_PAT_ATTR_ELEM" link="libxml2-xmlerror.html#XML_RNGP_PAT_ATTR_ELEM"/>
+ <function name="XML_RNGP_PAT_DATA_EXCEPT_ATTR" link="libxml2-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_ATTR"/>
+ <function name="XML_RNGP_PAT_DATA_EXCEPT_ELEM" link="libxml2-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_ELEM"/>
+ <function name="XML_RNGP_PAT_DATA_EXCEPT_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_EMPTY"/>
+ <function name="XML_RNGP_PAT_DATA_EXCEPT_GROUP" link="libxml2-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_GROUP"/>
+ <function name="XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE" link="libxml2-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE"/>
+ <function name="XML_RNGP_PAT_DATA_EXCEPT_LIST" link="libxml2-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_LIST"/>
+ <function name="XML_RNGP_PAT_DATA_EXCEPT_ONEMORE" link="libxml2-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_ONEMORE"/>
+ <function name="XML_RNGP_PAT_DATA_EXCEPT_REF" link="libxml2-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_REF"/>
+ <function name="XML_RNGP_PAT_DATA_EXCEPT_TEXT" link="libxml2-xmlerror.html#XML_RNGP_PAT_DATA_EXCEPT_TEXT"/>
+ <function name="XML_RNGP_PAT_LIST_ATTR" link="libxml2-xmlerror.html#XML_RNGP_PAT_LIST_ATTR"/>
+ <function name="XML_RNGP_PAT_LIST_ELEM" link="libxml2-xmlerror.html#XML_RNGP_PAT_LIST_ELEM"/>
+ <function name="XML_RNGP_PAT_LIST_INTERLEAVE" link="libxml2-xmlerror.html#XML_RNGP_PAT_LIST_INTERLEAVE"/>
+ <function name="XML_RNGP_PAT_LIST_LIST" link="libxml2-xmlerror.html#XML_RNGP_PAT_LIST_LIST"/>
+ <function name="XML_RNGP_PAT_LIST_REF" link="libxml2-xmlerror.html#XML_RNGP_PAT_LIST_REF"/>
+ <function name="XML_RNGP_PAT_LIST_TEXT" link="libxml2-xmlerror.html#XML_RNGP_PAT_LIST_TEXT"/>
+ <function name="XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME" link="libxml2-xmlerror.html#XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME"/>
+ <function name="XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME" link="libxml2-xmlerror.html#XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME"/>
+ <function name="XML_RNGP_PAT_ONEMORE_GROUP_ATTR" link="libxml2-xmlerror.html#XML_RNGP_PAT_ONEMORE_GROUP_ATTR"/>
+ <function name="XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR" link="libxml2-xmlerror.html#XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR"/>
+ <function name="XML_RNGP_PAT_START_ATTR" link="libxml2-xmlerror.html#XML_RNGP_PAT_START_ATTR"/>
+ <function name="XML_RNGP_PAT_START_DATA" link="libxml2-xmlerror.html#XML_RNGP_PAT_START_DATA"/>
+ <function name="XML_RNGP_PAT_START_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_PAT_START_EMPTY"/>
+ <function name="XML_RNGP_PAT_START_GROUP" link="libxml2-xmlerror.html#XML_RNGP_PAT_START_GROUP"/>
+ <function name="XML_RNGP_PAT_START_INTERLEAVE" link="libxml2-xmlerror.html#XML_RNGP_PAT_START_INTERLEAVE"/>
+ <function name="XML_RNGP_PAT_START_LIST" link="libxml2-xmlerror.html#XML_RNGP_PAT_START_LIST"/>
+ <function name="XML_RNGP_PAT_START_ONEMORE" link="libxml2-xmlerror.html#XML_RNGP_PAT_START_ONEMORE"/>
+ <function name="XML_RNGP_PAT_START_TEXT" link="libxml2-xmlerror.html#XML_RNGP_PAT_START_TEXT"/>
+ <function name="XML_RNGP_PAT_START_VALUE" link="libxml2-xmlerror.html#XML_RNGP_PAT_START_VALUE"/>
+ <function name="XML_RNGP_PREFIX_UNDEFINED" link="libxml2-xmlerror.html#XML_RNGP_PREFIX_UNDEFINED"/>
+ <function name="XML_RNGP_REF_CREATE_FAILED" link="libxml2-xmlerror.html#XML_RNGP_REF_CREATE_FAILED"/>
+ <function name="XML_RNGP_REF_CYCLE" link="libxml2-xmlerror.html#XML_RNGP_REF_CYCLE"/>
+ <function name="XML_RNGP_REF_NAME_INVALID" link="libxml2-xmlerror.html#XML_RNGP_REF_NAME_INVALID"/>
+ <function name="XML_RNGP_REF_NOT_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_REF_NOT_EMPTY"/>
+ <function name="XML_RNGP_REF_NO_DEF" link="libxml2-xmlerror.html#XML_RNGP_REF_NO_DEF"/>
+ <function name="XML_RNGP_REF_NO_NAME" link="libxml2-xmlerror.html#XML_RNGP_REF_NO_NAME"/>
+ <function name="XML_RNGP_START_CHOICE_AND_INTERLEAVE" link="libxml2-xmlerror.html#XML_RNGP_START_CHOICE_AND_INTERLEAVE"/>
+ <function name="XML_RNGP_START_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_START_CONTENT"/>
+ <function name="XML_RNGP_START_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_START_EMPTY"/>
+ <function name="XML_RNGP_START_MISSING" link="libxml2-xmlerror.html#XML_RNGP_START_MISSING"/>
+ <function name="XML_RNGP_TEXT_EXPECTED" link="libxml2-xmlerror.html#XML_RNGP_TEXT_EXPECTED"/>
+ <function name="XML_RNGP_TEXT_HAS_CHILD" link="libxml2-xmlerror.html#XML_RNGP_TEXT_HAS_CHILD"/>
+ <function name="XML_RNGP_TYPE_MISSING" link="libxml2-xmlerror.html#XML_RNGP_TYPE_MISSING"/>
+ <function name="XML_RNGP_TYPE_NOT_FOUND" link="libxml2-xmlerror.html#XML_RNGP_TYPE_NOT_FOUND"/>
+ <function name="XML_RNGP_TYPE_VALUE" link="libxml2-xmlerror.html#XML_RNGP_TYPE_VALUE"/>
+ <function name="XML_RNGP_UNKNOWN_ATTRIBUTE" link="libxml2-xmlerror.html#XML_RNGP_UNKNOWN_ATTRIBUTE"/>
+ <function name="XML_RNGP_UNKNOWN_COMBINE" link="libxml2-xmlerror.html#XML_RNGP_UNKNOWN_COMBINE"/>
+ <function name="XML_RNGP_UNKNOWN_CONSTRUCT" link="libxml2-xmlerror.html#XML_RNGP_UNKNOWN_CONSTRUCT"/>
+ <function name="XML_RNGP_UNKNOWN_TYPE_LIB" link="libxml2-xmlerror.html#XML_RNGP_UNKNOWN_TYPE_LIB"/>
+ <function name="XML_RNGP_URI_FRAGMENT" link="libxml2-xmlerror.html#XML_RNGP_URI_FRAGMENT"/>
+ <function name="XML_RNGP_URI_NOT_ABSOLUTE" link="libxml2-xmlerror.html#XML_RNGP_URI_NOT_ABSOLUTE"/>
+ <function name="XML_RNGP_VALUE_EMPTY" link="libxml2-xmlerror.html#XML_RNGP_VALUE_EMPTY"/>
+ <function name="XML_RNGP_VALUE_NO_CONTENT" link="libxml2-xmlerror.html#XML_RNGP_VALUE_NO_CONTENT"/>
+ <function name="XML_RNGP_XMLNS_NAME" link="libxml2-xmlerror.html#XML_RNGP_XMLNS_NAME"/>
+ <function name="XML_RNGP_XML_NS" link="libxml2-xmlerror.html#XML_RNGP_XML_NS"/>
+ <function name="XML_SAVE_AS_HTML" link="libxml2-xmlsave.html#XML_SAVE_AS_HTML"/>
+ <function name="XML_SAVE_AS_XML" link="libxml2-xmlsave.html#XML_SAVE_AS_XML"/>
+ <function name="XML_SAVE_CHAR_INVALID" link="libxml2-xmlerror.html#XML_SAVE_CHAR_INVALID"/>
+ <function name="XML_SAVE_FORMAT" link="libxml2-xmlsave.html#XML_SAVE_FORMAT"/>
+ <function name="XML_SAVE_NOT_UTF8" link="libxml2-xmlerror.html#XML_SAVE_NOT_UTF8"/>
+ <function name="XML_SAVE_NO_DECL" link="libxml2-xmlsave.html#XML_SAVE_NO_DECL"/>
+ <function name="XML_SAVE_NO_DOCTYPE" link="libxml2-xmlerror.html#XML_SAVE_NO_DOCTYPE"/>
+ <function name="XML_SAVE_NO_EMPTY" link="libxml2-xmlsave.html#XML_SAVE_NO_EMPTY"/>
+ <function name="XML_SAVE_NO_XHTML" link="libxml2-xmlsave.html#XML_SAVE_NO_XHTML"/>
+ <function name="XML_SAVE_UNKNOWN_ENCODING" link="libxml2-xmlerror.html#XML_SAVE_UNKNOWN_ENCODING"/>
+ <function name="XML_SAVE_WSNONSIG" link="libxml2-xmlsave.html#XML_SAVE_WSNONSIG"/>
+ <function name="XML_SAVE_XHTML" link="libxml2-xmlsave.html#XML_SAVE_XHTML"/>
+ <function name="XML_SCHEMAP_AG_PROPS_CORRECT" link="libxml2-xmlerror.html#XML_SCHEMAP_AG_PROPS_CORRECT"/>
+ <function name="XML_SCHEMAP_ATTRFORMDEFAULT_VALUE" link="libxml2-xmlerror.html#XML_SCHEMAP_ATTRFORMDEFAULT_VALUE"/>
+ <function name="XML_SCHEMAP_ATTRGRP_NONAME_NOREF" link="libxml2-xmlerror.html#XML_SCHEMAP_ATTRGRP_NONAME_NOREF"/>
+ <function name="XML_SCHEMAP_ATTR_NONAME_NOREF" link="libxml2-xmlerror.html#XML_SCHEMAP_ATTR_NONAME_NOREF"/>
+ <function name="XML_SCHEMAP_AU_PROPS_CORRECT" link="libxml2-xmlerror.html#XML_SCHEMAP_AU_PROPS_CORRECT"/>
+ <function name="XML_SCHEMAP_AU_PROPS_CORRECT_2" link="libxml2-xmlerror.html#XML_SCHEMAP_AU_PROPS_CORRECT_2"/>
+ <function name="XML_SCHEMAP_A_PROPS_CORRECT_2" link="libxml2-xmlerror.html#XML_SCHEMAP_A_PROPS_CORRECT_2"/>
+ <function name="XML_SCHEMAP_A_PROPS_CORRECT_3" link="libxml2-xmlerror.html#XML_SCHEMAP_A_PROPS_CORRECT_3"/>
+ <function name="XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF" link="libxml2-xmlerror.html#XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF"/>
+ <function name="XML_SCHEMAP_COS_ALL_LIMITED" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ALL_LIMITED"/>
+ <function name="XML_SCHEMAP_COS_CT_EXTENDS_1_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_CT_EXTENDS_1_1"/>
+ <function name="XML_SCHEMAP_COS_CT_EXTENDS_1_2" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_CT_EXTENDS_1_2"/>
+ <function name="XML_SCHEMAP_COS_CT_EXTENDS_1_3" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_CT_EXTENDS_1_3"/>
+ <function name="XML_SCHEMAP_COS_ST_DERIVED_OK_2_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_DERIVED_OK_2_1"/>
+ <function name="XML_SCHEMAP_COS_ST_DERIVED_OK_2_2" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_DERIVED_OK_2_2"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_1_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_1"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_1_2" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_2"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_2_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_1"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_3_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_1"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4"/>
+ <function name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5"/>
+ <function name="XML_SCHEMAP_COS_VALID_DEFAULT_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_1"/>
+ <function name="XML_SCHEMAP_COS_VALID_DEFAULT_2_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_2_1"/>
+ <function name="XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1"/>
+ <function name="XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2" link="libxml2-xmlerror.html#XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2"/>
+ <function name="XML_SCHEMAP_CT_PROPS_CORRECT_1" link="libxml2-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_1"/>
+ <function name="XML_SCHEMAP_CT_PROPS_CORRECT_2" link="libxml2-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_2"/>
+ <function name="XML_SCHEMAP_CT_PROPS_CORRECT_3" link="libxml2-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_3"/>
+ <function name="XML_SCHEMAP_CT_PROPS_CORRECT_4" link="libxml2-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_4"/>
+ <function name="XML_SCHEMAP_CT_PROPS_CORRECT_5" link="libxml2-xmlerror.html#XML_SCHEMAP_CT_PROPS_CORRECT_5"/>
+ <function name="XML_SCHEMAP_CVC_SIMPLE_TYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_CVC_SIMPLE_TYPE"/>
+ <function name="XML_SCHEMAP_C_PROPS_CORRECT" link="libxml2-xmlerror.html#XML_SCHEMAP_C_PROPS_CORRECT"/>
+ <function name="XML_SCHEMAP_DEF_AND_PREFIX" link="libxml2-xmlerror.html#XML_SCHEMAP_DEF_AND_PREFIX"/>
+ <function name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1" link="libxml2-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1"/>
+ <function name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1" link="libxml2-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1"/>
+ <function name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2" link="libxml2-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2"/>
+ <function name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3" link="libxml2-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3"/>
+ <function name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2" link="libxml2-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2"/>
+ <function name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3" link="libxml2-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3"/>
+ <function name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1" link="libxml2-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1"/>
+ <function name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2" link="libxml2-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2"/>
+ <function name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3" link="libxml2-xmlerror.html#XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3"/>
+ <function name="XML_SCHEMAP_ELEMFORMDEFAULT_VALUE" link="libxml2-xmlerror.html#XML_SCHEMAP_ELEMFORMDEFAULT_VALUE"/>
+ <function name="XML_SCHEMAP_ELEM_DEFAULT_FIXED" link="libxml2-xmlerror.html#XML_SCHEMAP_ELEM_DEFAULT_FIXED"/>
+ <function name="XML_SCHEMAP_ELEM_NONAME_NOREF" link="libxml2-xmlerror.html#XML_SCHEMAP_ELEM_NONAME_NOREF"/>
+ <function name="XML_SCHEMAP_EXTENSION_NO_BASE" link="libxml2-xmlerror.html#XML_SCHEMAP_EXTENSION_NO_BASE"/>
+ <function name="XML_SCHEMAP_E_PROPS_CORRECT_2" link="libxml2-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_2"/>
+ <function name="XML_SCHEMAP_E_PROPS_CORRECT_3" link="libxml2-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_3"/>
+ <function name="XML_SCHEMAP_E_PROPS_CORRECT_4" link="libxml2-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_4"/>
+ <function name="XML_SCHEMAP_E_PROPS_CORRECT_5" link="libxml2-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_5"/>
+ <function name="XML_SCHEMAP_E_PROPS_CORRECT_6" link="libxml2-xmlerror.html#XML_SCHEMAP_E_PROPS_CORRECT_6"/>
+ <function name="XML_SCHEMAP_FACET_NO_VALUE" link="libxml2-xmlerror.html#XML_SCHEMAP_FACET_NO_VALUE"/>
+ <function name="XML_SCHEMAP_FAILED_BUILD_IMPORT" link="libxml2-xmlerror.html#XML_SCHEMAP_FAILED_BUILD_IMPORT"/>
+ <function name="XML_SCHEMAP_FAILED_LOAD" link="libxml2-xmlerror.html#XML_SCHEMAP_FAILED_LOAD"/>
+ <function name="XML_SCHEMAP_FAILED_PARSE" link="libxml2-xmlerror.html#XML_SCHEMAP_FAILED_PARSE"/>
+ <function name="XML_SCHEMAP_GROUP_NONAME_NOREF" link="libxml2-xmlerror.html#XML_SCHEMAP_GROUP_NONAME_NOREF"/>
+ <function name="XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI" link="libxml2-xmlerror.html#XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI"/>
+ <function name="XML_SCHEMAP_IMPORT_REDEFINE_NSNAME" link="libxml2-xmlerror.html#XML_SCHEMAP_IMPORT_REDEFINE_NSNAME"/>
+ <function name="XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI" link="libxml2-xmlerror.html#XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI"/>
+ <function name="XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI" link="libxml2-xmlerror.html#XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI"/>
+ <function name="XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI" link="libxml2-xmlerror.html#XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI"/>
+ <function name="XML_SCHEMAP_INTERNAL" link="libxml2-xmlerror.html#XML_SCHEMAP_INTERNAL"/>
+ <function name="XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE" link="libxml2-xmlerror.html#XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE"/>
+ <function name="XML_SCHEMAP_INVALID_ATTR_COMBINATION" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_COMBINATION"/>
+ <function name="XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION"/>
+ <function name="XML_SCHEMAP_INVALID_ATTR_NAME" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_NAME"/>
+ <function name="XML_SCHEMAP_INVALID_ATTR_USE" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_ATTR_USE"/>
+ <function name="XML_SCHEMAP_INVALID_BOOLEAN" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_BOOLEAN"/>
+ <function name="XML_SCHEMAP_INVALID_ENUM" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_ENUM"/>
+ <function name="XML_SCHEMAP_INVALID_FACET" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_FACET"/>
+ <function name="XML_SCHEMAP_INVALID_FACET_VALUE" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_FACET_VALUE"/>
+ <function name="XML_SCHEMAP_INVALID_MAXOCCURS" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_MAXOCCURS"/>
+ <function name="XML_SCHEMAP_INVALID_MINOCCURS" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_MINOCCURS"/>
+ <function name="XML_SCHEMAP_INVALID_REF_AND_SUBTYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_REF_AND_SUBTYPE"/>
+ <function name="XML_SCHEMAP_INVALID_WHITE_SPACE" link="libxml2-xmlerror.html#XML_SCHEMAP_INVALID_WHITE_SPACE"/>
+ <function name="XML_SCHEMAP_MG_PROPS_CORRECT_1" link="libxml2-xmlerror.html#XML_SCHEMAP_MG_PROPS_CORRECT_1"/>
+ <function name="XML_SCHEMAP_MG_PROPS_CORRECT_2" link="libxml2-xmlerror.html#XML_SCHEMAP_MG_PROPS_CORRECT_2"/>
+ <function name="XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD"/>
+ <function name="XML_SCHEMAP_NOATTR_NOREF" link="libxml2-xmlerror.html#XML_SCHEMAP_NOATTR_NOREF"/>
+ <function name="XML_SCHEMAP_NOROOT" link="libxml2-xmlerror.html#XML_SCHEMAP_NOROOT"/>
+ <function name="XML_SCHEMAP_NOTATION_NO_NAME" link="libxml2-xmlerror.html#XML_SCHEMAP_NOTATION_NO_NAME"/>
+ <function name="XML_SCHEMAP_NOTHING_TO_PARSE" link="libxml2-xmlerror.html#XML_SCHEMAP_NOTHING_TO_PARSE"/>
+ <function name="XML_SCHEMAP_NOTYPE_NOREF" link="libxml2-xmlerror.html#XML_SCHEMAP_NOTYPE_NOREF"/>
+ <function name="XML_SCHEMAP_NOT_DETERMINISTIC" link="libxml2-xmlerror.html#XML_SCHEMAP_NOT_DETERMINISTIC"/>
+ <function name="XML_SCHEMAP_NOT_SCHEMA" link="libxml2-xmlerror.html#XML_SCHEMAP_NOT_SCHEMA"/>
+ <function name="XML_SCHEMAP_NO_XMLNS" link="libxml2-xmlerror.html#XML_SCHEMAP_NO_XMLNS"/>
+ <function name="XML_SCHEMAP_NO_XSI" link="libxml2-xmlerror.html#XML_SCHEMAP_NO_XSI"/>
+ <function name="XML_SCHEMAP_PREFIX_UNDEFINED" link="libxml2-xmlerror.html#XML_SCHEMAP_PREFIX_UNDEFINED"/>
+ <function name="XML_SCHEMAP_P_PROPS_CORRECT_1" link="libxml2-xmlerror.html#XML_SCHEMAP_P_PROPS_CORRECT_1"/>
+ <function name="XML_SCHEMAP_P_PROPS_CORRECT_2_1" link="libxml2-xmlerror.html#XML_SCHEMAP_P_PROPS_CORRECT_2_1"/>
+ <function name="XML_SCHEMAP_P_PROPS_CORRECT_2_2" link="libxml2-xmlerror.html#XML_SCHEMAP_P_PROPS_CORRECT_2_2"/>
+ <function name="XML_SCHEMAP_RECURSIVE" link="libxml2-xmlerror.html#XML_SCHEMAP_RECURSIVE"/>
+ <function name="XML_SCHEMAP_REDEFINED_ATTR" link="libxml2-xmlerror.html#XML_SCHEMAP_REDEFINED_ATTR"/>
+ <function name="XML_SCHEMAP_REDEFINED_ATTRGROUP" link="libxml2-xmlerror.html#XML_SCHEMAP_REDEFINED_ATTRGROUP"/>
+ <function name="XML_SCHEMAP_REDEFINED_ELEMENT" link="libxml2-xmlerror.html#XML_SCHEMAP_REDEFINED_ELEMENT"/>
+ <function name="XML_SCHEMAP_REDEFINED_GROUP" link="libxml2-xmlerror.html#XML_SCHEMAP_REDEFINED_GROUP"/>
+ <function name="XML_SCHEMAP_REDEFINED_NOTATION" link="libxml2-xmlerror.html#XML_SCHEMAP_REDEFINED_NOTATION"/>
+ <function name="XML_SCHEMAP_REDEFINED_TYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_REDEFINED_TYPE"/>
+ <function name="XML_SCHEMAP_REF_AND_CONTENT" link="libxml2-xmlerror.html#XML_SCHEMAP_REF_AND_CONTENT"/>
+ <function name="XML_SCHEMAP_REF_AND_SUBTYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_REF_AND_SUBTYPE"/>
+ <function name="XML_SCHEMAP_REGEXP_INVALID" link="libxml2-xmlerror.html#XML_SCHEMAP_REGEXP_INVALID"/>
+ <function name="XML_SCHEMAP_RESTRICTION_NONAME_NOREF" link="libxml2-xmlerror.html#XML_SCHEMAP_RESTRICTION_NONAME_NOREF"/>
+ <function name="XML_SCHEMAP_S4S_ATTR_INVALID_VALUE" link="libxml2-xmlerror.html#XML_SCHEMAP_S4S_ATTR_INVALID_VALUE"/>
+ <function name="XML_SCHEMAP_S4S_ATTR_MISSING" link="libxml2-xmlerror.html#XML_SCHEMAP_S4S_ATTR_MISSING"/>
+ <function name="XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED" link="libxml2-xmlerror.html#XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED"/>
+ <function name="XML_SCHEMAP_S4S_ELEM_MISSING" link="libxml2-xmlerror.html#XML_SCHEMAP_S4S_ELEM_MISSING"/>
+ <function name="XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED" link="libxml2-xmlerror.html#XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED"/>
+ <function name="XML_SCHEMAP_SIMPLETYPE_NONAME" link="libxml2-xmlerror.html#XML_SCHEMAP_SIMPLETYPE_NONAME"/>
+ <function name="XML_SCHEMAP_SRC_ATTRIBUTE_1" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_1"/>
+ <function name="XML_SCHEMAP_SRC_ATTRIBUTE_2" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_2"/>
+ <function name="XML_SCHEMAP_SRC_ATTRIBUTE_3_1" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_3_1"/>
+ <function name="XML_SCHEMAP_SRC_ATTRIBUTE_3_2" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_3_2"/>
+ <function name="XML_SCHEMAP_SRC_ATTRIBUTE_4" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_4"/>
+ <function name="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1"/>
+ <function name="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2"/>
+ <function name="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3"/>
+ <function name="XML_SCHEMAP_SRC_CT_1" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_CT_1"/>
+ <function name="XML_SCHEMAP_SRC_ELEMENT_1" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_1"/>
+ <function name="XML_SCHEMAP_SRC_ELEMENT_2_1" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_2_1"/>
+ <function name="XML_SCHEMAP_SRC_ELEMENT_2_2" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_2_2"/>
+ <function name="XML_SCHEMAP_SRC_ELEMENT_3" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_ELEMENT_3"/>
+ <function name="XML_SCHEMAP_SRC_IMPORT" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_IMPORT"/>
+ <function name="XML_SCHEMAP_SRC_IMPORT_1_1" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_1_1"/>
+ <function name="XML_SCHEMAP_SRC_IMPORT_1_2" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_1_2"/>
+ <function name="XML_SCHEMAP_SRC_IMPORT_2" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_2"/>
+ <function name="XML_SCHEMAP_SRC_IMPORT_2_1" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_2_1"/>
+ <function name="XML_SCHEMAP_SRC_IMPORT_2_2" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_2_2"/>
+ <function name="XML_SCHEMAP_SRC_IMPORT_3_1" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_3_1"/>
+ <function name="XML_SCHEMAP_SRC_IMPORT_3_2" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_3_2"/>
+ <function name="XML_SCHEMAP_SRC_INCLUDE" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_INCLUDE"/>
+ <function name="XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE"/>
+ <function name="XML_SCHEMAP_SRC_REDEFINE" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_REDEFINE"/>
+ <function name="XML_SCHEMAP_SRC_RESOLVE" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_RESOLVE"/>
+ <function name="XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE"/>
+ <function name="XML_SCHEMAP_SRC_SIMPLE_TYPE_1" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_1"/>
+ <function name="XML_SCHEMAP_SRC_SIMPLE_TYPE_2" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_2"/>
+ <function name="XML_SCHEMAP_SRC_SIMPLE_TYPE_3" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_3"/>
+ <function name="XML_SCHEMAP_SRC_SIMPLE_TYPE_4" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_4"/>
+ <function name="XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES" link="libxml2-xmlerror.html#XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES"/>
+ <function name="XML_SCHEMAP_ST_PROPS_CORRECT_1" link="libxml2-xmlerror.html#XML_SCHEMAP_ST_PROPS_CORRECT_1"/>
+ <function name="XML_SCHEMAP_ST_PROPS_CORRECT_2" link="libxml2-xmlerror.html#XML_SCHEMAP_ST_PROPS_CORRECT_2"/>
+ <function name="XML_SCHEMAP_ST_PROPS_CORRECT_3" link="libxml2-xmlerror.html#XML_SCHEMAP_ST_PROPS_CORRECT_3"/>
+ <function name="XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE"/>
+ <function name="XML_SCHEMAP_TYPE_AND_SUBTYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_TYPE_AND_SUBTYPE"/>
+ <function name="XML_SCHEMAP_UNION_NOT_EXPRESSIBLE" link="libxml2-xmlerror.html#XML_SCHEMAP_UNION_NOT_EXPRESSIBLE"/>
+ <function name="XML_SCHEMAP_UNKNOWN_ALL_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_ALL_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP"/>
+ <function name="XML_SCHEMAP_UNKNOWN_ATTR_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_ATTR_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_BASE_TYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_BASE_TYPE"/>
+ <function name="XML_SCHEMAP_UNKNOWN_CHOICE_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_CHOICE_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_ELEM_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_ELEM_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_FACET_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_FACET_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_FACET_TYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_FACET_TYPE"/>
+ <function name="XML_SCHEMAP_UNKNOWN_GROUP_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_GROUP_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_IMPORT_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_IMPORT_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_LIST_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_LIST_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_MEMBER_TYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_MEMBER_TYPE"/>
+ <function name="XML_SCHEMAP_UNKNOWN_NOTATION_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_NOTATION_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_PREFIX" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_PREFIX"/>
+ <function name="XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_REF" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_REF"/>
+ <function name="XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD"/>
+ <function name="XML_SCHEMAP_UNKNOWN_TYPE" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_TYPE"/>
+ <function name="XML_SCHEMAP_UNKNOWN_UNION_CHILD" link="libxml2-xmlerror.html#XML_SCHEMAP_UNKNOWN_UNION_CHILD"/>
+ <function name="XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH" link="libxml2-xmlerror.html#XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH"/>
+ <function name="XML_SCHEMAP_WARN_ATTR_REDECL_PROH" link="libxml2-xmlerror.html#XML_SCHEMAP_WARN_ATTR_REDECL_PROH"/>
+ <function name="XML_SCHEMAP_WARN_SKIP_SCHEMA" link="libxml2-xmlerror.html#XML_SCHEMAP_WARN_SKIP_SCHEMA"/>
+ <function name="XML_SCHEMAP_WARN_UNLOCATED_SCHEMA" link="libxml2-xmlerror.html#XML_SCHEMAP_WARN_UNLOCATED_SCHEMA"/>
+ <function name="XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER" link="libxml2-xmlerror.html#XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER"/>
+ <function name="XML_SCHEMAS_ANYSIMPLETYPE" link="libxml2-schemasInternals.html#XML_SCHEMAS_ANYSIMPLETYPE"/>
+ <function name="XML_SCHEMAS_ANYTYPE" link="libxml2-schemasInternals.html#XML_SCHEMAS_ANYTYPE"/>
+ <function name="XML_SCHEMAS_ANYURI" link="libxml2-schemasInternals.html#XML_SCHEMAS_ANYURI"/>
+ <function name="XML_SCHEMAS_BASE64BINARY" link="libxml2-schemasInternals.html#XML_SCHEMAS_BASE64BINARY"/>
+ <function name="XML_SCHEMAS_BOOLEAN" link="libxml2-schemasInternals.html#XML_SCHEMAS_BOOLEAN"/>
+ <function name="XML_SCHEMAS_BYTE" link="libxml2-schemasInternals.html#XML_SCHEMAS_BYTE"/>
+ <function name="XML_SCHEMAS_DATE" link="libxml2-schemasInternals.html#XML_SCHEMAS_DATE"/>
+ <function name="XML_SCHEMAS_DATETIME" link="libxml2-schemasInternals.html#XML_SCHEMAS_DATETIME"/>
+ <function name="XML_SCHEMAS_DECIMAL" link="libxml2-schemasInternals.html#XML_SCHEMAS_DECIMAL"/>
+ <function name="XML_SCHEMAS_DOUBLE" link="libxml2-schemasInternals.html#XML_SCHEMAS_DOUBLE"/>
+ <function name="XML_SCHEMAS_DURATION" link="libxml2-schemasInternals.html#XML_SCHEMAS_DURATION"/>
+ <function name="XML_SCHEMAS_ENTITIES" link="libxml2-schemasInternals.html#XML_SCHEMAS_ENTITIES"/>
+ <function name="XML_SCHEMAS_ENTITY" link="libxml2-schemasInternals.html#XML_SCHEMAS_ENTITY"/>
+ <function name="XML_SCHEMAS_ERR_" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_"/>
+ <function name="XML_SCHEMAS_ERR_ATTRINVALID" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_ATTRINVALID"/>
+ <function name="XML_SCHEMAS_ERR_ATTRUNKNOWN" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_ATTRUNKNOWN"/>
+ <function name="XML_SCHEMAS_ERR_CONSTRUCT" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_CONSTRUCT"/>
+ <function name="XML_SCHEMAS_ERR_ELEMCONT" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_ELEMCONT"/>
+ <function name="XML_SCHEMAS_ERR_EXTRACONTENT" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_EXTRACONTENT"/>
+ <function name="XML_SCHEMAS_ERR_FACET" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_FACET"/>
+ <function name="XML_SCHEMAS_ERR_HAVEDEFAULT" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_HAVEDEFAULT"/>
+ <function name="XML_SCHEMAS_ERR_INTERNAL" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_INTERNAL"/>
+ <function name="XML_SCHEMAS_ERR_INVALIDATTR" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_INVALIDATTR"/>
+ <function name="XML_SCHEMAS_ERR_INVALIDELEM" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_INVALIDELEM"/>
+ <function name="XML_SCHEMAS_ERR_ISABSTRACT" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_ISABSTRACT"/>
+ <function name="XML_SCHEMAS_ERR_MISSING" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_MISSING"/>
+ <function name="XML_SCHEMAS_ERR_NOROLLBACK" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_NOROLLBACK"/>
+ <function name="XML_SCHEMAS_ERR_NOROOT" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_NOROOT"/>
+ <function name="XML_SCHEMAS_ERR_NOTDETERMINIST" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_NOTDETERMINIST"/>
+ <function name="XML_SCHEMAS_ERR_NOTEMPTY" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_NOTEMPTY"/>
+ <function name="XML_SCHEMAS_ERR_NOTNILLABLE" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_NOTNILLABLE"/>
+ <function name="XML_SCHEMAS_ERR_NOTSIMPLE" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_NOTSIMPLE"/>
+ <function name="XML_SCHEMAS_ERR_NOTTOPLEVEL" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_NOTTOPLEVEL"/>
+ <function name="XML_SCHEMAS_ERR_NOTYPE" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_NOTYPE"/>
+ <function name="XML_SCHEMAS_ERR_OK" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_OK"/>
+ <function name="XML_SCHEMAS_ERR_UNDECLAREDELEM" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_UNDECLAREDELEM"/>
+ <function name="XML_SCHEMAS_ERR_VALUE" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_VALUE"/>
+ <function name="XML_SCHEMAS_ERR_WRONGELEM" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_WRONGELEM"/>
+ <function name="XML_SCHEMAS_ERR_XXX" link="libxml2-xmlschemas.html#XML_SCHEMAS_ERR_XXX"/>
+ <function name="XML_SCHEMAS_FLOAT" link="libxml2-schemasInternals.html#XML_SCHEMAS_FLOAT"/>
+ <function name="XML_SCHEMAS_GDAY" link="libxml2-schemasInternals.html#XML_SCHEMAS_GDAY"/>
+ <function name="XML_SCHEMAS_GMONTH" link="libxml2-schemasInternals.html#XML_SCHEMAS_GMONTH"/>
+ <function name="XML_SCHEMAS_GMONTHDAY" link="libxml2-schemasInternals.html#XML_SCHEMAS_GMONTHDAY"/>
+ <function name="XML_SCHEMAS_GYEAR" link="libxml2-schemasInternals.html#XML_SCHEMAS_GYEAR"/>
+ <function name="XML_SCHEMAS_GYEARMONTH" link="libxml2-schemasInternals.html#XML_SCHEMAS_GYEARMONTH"/>
+ <function name="XML_SCHEMAS_HEXBINARY" link="libxml2-schemasInternals.html#XML_SCHEMAS_HEXBINARY"/>
+ <function name="XML_SCHEMAS_ID" link="libxml2-schemasInternals.html#XML_SCHEMAS_ID"/>
+ <function name="XML_SCHEMAS_IDREF" link="libxml2-schemasInternals.html#XML_SCHEMAS_IDREF"/>
+ <function name="XML_SCHEMAS_IDREFS" link="libxml2-schemasInternals.html#XML_SCHEMAS_IDREFS"/>
+ <function name="XML_SCHEMAS_INT" link="libxml2-schemasInternals.html#XML_SCHEMAS_INT"/>
+ <function name="XML_SCHEMAS_INTEGER" link="libxml2-schemasInternals.html#XML_SCHEMAS_INTEGER"/>
+ <function name="XML_SCHEMAS_LANGUAGE" link="libxml2-schemasInternals.html#XML_SCHEMAS_LANGUAGE"/>
+ <function name="XML_SCHEMAS_LONG" link="libxml2-schemasInternals.html#XML_SCHEMAS_LONG"/>
+ <function name="XML_SCHEMAS_NAME" link="libxml2-schemasInternals.html#XML_SCHEMAS_NAME"/>
+ <function name="XML_SCHEMAS_NCNAME" link="libxml2-schemasInternals.html#XML_SCHEMAS_NCNAME"/>
+ <function name="XML_SCHEMAS_NINTEGER" link="libxml2-schemasInternals.html#XML_SCHEMAS_NINTEGER"/>
+ <function name="XML_SCHEMAS_NMTOKEN" link="libxml2-schemasInternals.html#XML_SCHEMAS_NMTOKEN"/>
+ <function name="XML_SCHEMAS_NMTOKENS" link="libxml2-schemasInternals.html#XML_SCHEMAS_NMTOKENS"/>
+ <function name="XML_SCHEMAS_NNINTEGER" link="libxml2-schemasInternals.html#XML_SCHEMAS_NNINTEGER"/>
+ <function name="XML_SCHEMAS_NORMSTRING" link="libxml2-schemasInternals.html#XML_SCHEMAS_NORMSTRING"/>
+ <function name="XML_SCHEMAS_NOTATION" link="libxml2-schemasInternals.html#XML_SCHEMAS_NOTATION"/>
+ <function name="XML_SCHEMAS_NPINTEGER" link="libxml2-schemasInternals.html#XML_SCHEMAS_NPINTEGER"/>
+ <function name="XML_SCHEMAS_PINTEGER" link="libxml2-schemasInternals.html#XML_SCHEMAS_PINTEGER"/>
+ <function name="XML_SCHEMAS_QNAME" link="libxml2-schemasInternals.html#XML_SCHEMAS_QNAME"/>
+ <function name="XML_SCHEMAS_SHORT" link="libxml2-schemasInternals.html#XML_SCHEMAS_SHORT"/>
+ <function name="XML_SCHEMAS_STRING" link="libxml2-schemasInternals.html#XML_SCHEMAS_STRING"/>
+ <function name="XML_SCHEMAS_TIME" link="libxml2-schemasInternals.html#XML_SCHEMAS_TIME"/>
+ <function name="XML_SCHEMAS_TOKEN" link="libxml2-schemasInternals.html#XML_SCHEMAS_TOKEN"/>
+ <function name="XML_SCHEMAS_UBYTE" link="libxml2-schemasInternals.html#XML_SCHEMAS_UBYTE"/>
+ <function name="XML_SCHEMAS_UINT" link="libxml2-schemasInternals.html#XML_SCHEMAS_UINT"/>
+ <function name="XML_SCHEMAS_ULONG" link="libxml2-schemasInternals.html#XML_SCHEMAS_ULONG"/>
+ <function name="XML_SCHEMAS_UNKNOWN" link="libxml2-schemasInternals.html#XML_SCHEMAS_UNKNOWN"/>
+ <function name="XML_SCHEMAS_USHORT" link="libxml2-schemasInternals.html#XML_SCHEMAS_USHORT"/>
+ <function name="XML_SCHEMATRONV_ASSERT" link="libxml2-xmlerror.html#XML_SCHEMATRONV_ASSERT"/>
+ <function name="XML_SCHEMATRONV_REPORT" link="libxml2-xmlerror.html#XML_SCHEMATRONV_REPORT"/>
+ <function name="XML_SCHEMATRON_OUT_BUFFER" link="libxml2-schematron.html#XML_SCHEMATRON_OUT_BUFFER"/>
+ <function name="XML_SCHEMATRON_OUT_ERROR" link="libxml2-schematron.html#XML_SCHEMATRON_OUT_ERROR"/>
+ <function name="XML_SCHEMATRON_OUT_FILE" link="libxml2-schematron.html#XML_SCHEMATRON_OUT_FILE"/>
+ <function name="XML_SCHEMATRON_OUT_IO" link="libxml2-schematron.html#XML_SCHEMATRON_OUT_IO"/>
+ <function name="XML_SCHEMATRON_OUT_QUIET" link="libxml2-schematron.html#XML_SCHEMATRON_OUT_QUIET"/>
+ <function name="XML_SCHEMATRON_OUT_TEXT" link="libxml2-schematron.html#XML_SCHEMATRON_OUT_TEXT"/>
+ <function name="XML_SCHEMATRON_OUT_XML" link="libxml2-schematron.html#XML_SCHEMATRON_OUT_XML"/>
+ <function name="XML_SCHEMAV_ATTRINVALID" link="libxml2-xmlerror.html#XML_SCHEMAV_ATTRINVALID"/>
+ <function name="XML_SCHEMAV_ATTRUNKNOWN" link="libxml2-xmlerror.html#XML_SCHEMAV_ATTRUNKNOWN"/>
+ <function name="XML_SCHEMAV_CONSTRUCT" link="libxml2-xmlerror.html#XML_SCHEMAV_CONSTRUCT"/>
+ <function name="XML_SCHEMAV_CVC_ATTRIBUTE_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_1"/>
+ <function name="XML_SCHEMAV_CVC_ATTRIBUTE_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_2"/>
+ <function name="XML_SCHEMAV_CVC_ATTRIBUTE_3" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_3"/>
+ <function name="XML_SCHEMAV_CVC_ATTRIBUTE_4" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ATTRIBUTE_4"/>
+ <function name="XML_SCHEMAV_CVC_AU" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_AU"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_1"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_4" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_4"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1"/>
+ <function name="XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2"/>
+ <function name="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1"/>
+ <function name="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2"/>
+ <function name="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3"/>
+ <function name="XML_SCHEMAV_CVC_ELT_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_1"/>
+ <function name="XML_SCHEMAV_CVC_ELT_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_2"/>
+ <function name="XML_SCHEMAV_CVC_ELT_3_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_3_1"/>
+ <function name="XML_SCHEMAV_CVC_ELT_3_2_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_3_2_1"/>
+ <function name="XML_SCHEMAV_CVC_ELT_3_2_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_3_2_2"/>
+ <function name="XML_SCHEMAV_CVC_ELT_4_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_4_1"/>
+ <function name="XML_SCHEMAV_CVC_ELT_4_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_4_2"/>
+ <function name="XML_SCHEMAV_CVC_ELT_4_3" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_4_3"/>
+ <function name="XML_SCHEMAV_CVC_ELT_5_1_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_1_1"/>
+ <function name="XML_SCHEMAV_CVC_ELT_5_1_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_1_2"/>
+ <function name="XML_SCHEMAV_CVC_ELT_5_2_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_1"/>
+ <function name="XML_SCHEMAV_CVC_ELT_5_2_2_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_2_1"/>
+ <function name="XML_SCHEMAV_CVC_ELT_5_2_2_2_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_2_2_1"/>
+ <function name="XML_SCHEMAV_CVC_ELT_5_2_2_2_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_5_2_2_2_2"/>
+ <function name="XML_SCHEMAV_CVC_ELT_6" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_6"/>
+ <function name="XML_SCHEMAV_CVC_ELT_7" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ELT_7"/>
+ <function name="XML_SCHEMAV_CVC_ENUMERATION_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_ENUMERATION_VALID"/>
+ <function name="XML_SCHEMAV_CVC_FACET_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_FACET_VALID"/>
+ <function name="XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID"/>
+ <function name="XML_SCHEMAV_CVC_IDC" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_IDC"/>
+ <function name="XML_SCHEMAV_CVC_LENGTH_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_LENGTH_VALID"/>
+ <function name="XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID"/>
+ <function name="XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID"/>
+ <function name="XML_SCHEMAV_CVC_MAXLENGTH_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_MAXLENGTH_VALID"/>
+ <function name="XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID"/>
+ <function name="XML_SCHEMAV_CVC_MININCLUSIVE_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_MININCLUSIVE_VALID"/>
+ <function name="XML_SCHEMAV_CVC_MINLENGTH_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_MINLENGTH_VALID"/>
+ <function name="XML_SCHEMAV_CVC_PATTERN_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_PATTERN_VALID"/>
+ <function name="XML_SCHEMAV_CVC_TOTALDIGITS_VALID" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_TOTALDIGITS_VALID"/>
+ <function name="XML_SCHEMAV_CVC_TYPE_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_TYPE_1"/>
+ <function name="XML_SCHEMAV_CVC_TYPE_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_TYPE_2"/>
+ <function name="XML_SCHEMAV_CVC_TYPE_3_1_1" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_TYPE_3_1_1"/>
+ <function name="XML_SCHEMAV_CVC_TYPE_3_1_2" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_TYPE_3_1_2"/>
+ <function name="XML_SCHEMAV_CVC_WILDCARD" link="libxml2-xmlerror.html#XML_SCHEMAV_CVC_WILDCARD"/>
+ <function name="XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING" link="libxml2-xmlerror.html#XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING"/>
+ <function name="XML_SCHEMAV_ELEMCONT" link="libxml2-xmlerror.html#XML_SCHEMAV_ELEMCONT"/>
+ <function name="XML_SCHEMAV_ELEMENT_CONTENT" link="libxml2-xmlerror.html#XML_SCHEMAV_ELEMENT_CONTENT"/>
+ <function name="XML_SCHEMAV_EXTRACONTENT" link="libxml2-xmlerror.html#XML_SCHEMAV_EXTRACONTENT"/>
+ <function name="XML_SCHEMAV_FACET" link="libxml2-xmlerror.html#XML_SCHEMAV_FACET"/>
+ <function name="XML_SCHEMAV_HAVEDEFAULT" link="libxml2-xmlerror.html#XML_SCHEMAV_HAVEDEFAULT"/>
+ <function name="XML_SCHEMAV_INTERNAL" link="libxml2-xmlerror.html#XML_SCHEMAV_INTERNAL"/>
+ <function name="XML_SCHEMAV_INVALIDATTR" link="libxml2-xmlerror.html#XML_SCHEMAV_INVALIDATTR"/>
+ <function name="XML_SCHEMAV_INVALIDELEM" link="libxml2-xmlerror.html#XML_SCHEMAV_INVALIDELEM"/>
+ <function name="XML_SCHEMAV_ISABSTRACT" link="libxml2-xmlerror.html#XML_SCHEMAV_ISABSTRACT"/>
+ <function name="XML_SCHEMAV_MISC" link="libxml2-xmlerror.html#XML_SCHEMAV_MISC"/>
+ <function name="XML_SCHEMAV_MISSING" link="libxml2-xmlerror.html#XML_SCHEMAV_MISSING"/>
+ <function name="XML_SCHEMAV_NOROLLBACK" link="libxml2-xmlerror.html#XML_SCHEMAV_NOROLLBACK"/>
+ <function name="XML_SCHEMAV_NOROOT" link="libxml2-xmlerror.html#XML_SCHEMAV_NOROOT"/>
+ <function name="XML_SCHEMAV_NOTDETERMINIST" link="libxml2-xmlerror.html#XML_SCHEMAV_NOTDETERMINIST"/>
+ <function name="XML_SCHEMAV_NOTEMPTY" link="libxml2-xmlerror.html#XML_SCHEMAV_NOTEMPTY"/>
+ <function name="XML_SCHEMAV_NOTNILLABLE" link="libxml2-xmlerror.html#XML_SCHEMAV_NOTNILLABLE"/>
+ <function name="XML_SCHEMAV_NOTSIMPLE" link="libxml2-xmlerror.html#XML_SCHEMAV_NOTSIMPLE"/>
+ <function name="XML_SCHEMAV_NOTTOPLEVEL" link="libxml2-xmlerror.html#XML_SCHEMAV_NOTTOPLEVEL"/>
+ <function name="XML_SCHEMAV_NOTYPE" link="libxml2-xmlerror.html#XML_SCHEMAV_NOTYPE"/>
+ <function name="XML_SCHEMAV_UNDECLAREDELEM" link="libxml2-xmlerror.html#XML_SCHEMAV_UNDECLAREDELEM"/>
+ <function name="XML_SCHEMAV_VALUE" link="libxml2-xmlerror.html#XML_SCHEMAV_VALUE"/>
+ <function name="XML_SCHEMAV_WRONGELEM" link="libxml2-xmlerror.html#XML_SCHEMAV_WRONGELEM"/>
+ <function name="XML_SCHEMA_CONTENT_ANY" link="libxml2-schemasInternals.html#XML_SCHEMA_CONTENT_ANY"/>
+ <function name="XML_SCHEMA_CONTENT_BASIC" link="libxml2-schemasInternals.html#XML_SCHEMA_CONTENT_BASIC"/>
+ <function name="XML_SCHEMA_CONTENT_ELEMENTS" link="libxml2-schemasInternals.html#XML_SCHEMA_CONTENT_ELEMENTS"/>
+ <function name="XML_SCHEMA_CONTENT_EMPTY" link="libxml2-schemasInternals.html#XML_SCHEMA_CONTENT_EMPTY"/>
+ <function name="XML_SCHEMA_CONTENT_MIXED" link="libxml2-schemasInternals.html#XML_SCHEMA_CONTENT_MIXED"/>
+ <function name="XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS" link="libxml2-schemasInternals.html#XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS"/>
+ <function name="XML_SCHEMA_CONTENT_SIMPLE" link="libxml2-schemasInternals.html#XML_SCHEMA_CONTENT_SIMPLE"/>
+ <function name="XML_SCHEMA_CONTENT_UNKNOWN" link="libxml2-schemasInternals.html#XML_SCHEMA_CONTENT_UNKNOWN"/>
+ <function name="XML_SCHEMA_EXTRA_ATTR_USE_PROHIB" link="libxml2-schemasInternals.html#XML_SCHEMA_EXTRA_ATTR_USE_PROHIB"/>
+ <function name="XML_SCHEMA_EXTRA_QNAMEREF" link="libxml2-schemasInternals.html#XML_SCHEMA_EXTRA_QNAMEREF"/>
+ <function name="XML_SCHEMA_FACET_ENUMERATION" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_ENUMERATION"/>
+ <function name="XML_SCHEMA_FACET_FRACTIONDIGITS" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_FRACTIONDIGITS"/>
+ <function name="XML_SCHEMA_FACET_LENGTH" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_LENGTH"/>
+ <function name="XML_SCHEMA_FACET_MAXEXCLUSIVE" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_MAXEXCLUSIVE"/>
+ <function name="XML_SCHEMA_FACET_MAXINCLUSIVE" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_MAXINCLUSIVE"/>
+ <function name="XML_SCHEMA_FACET_MAXLENGTH" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_MAXLENGTH"/>
+ <function name="XML_SCHEMA_FACET_MINEXCLUSIVE" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_MINEXCLUSIVE"/>
+ <function name="XML_SCHEMA_FACET_MININCLUSIVE" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_MININCLUSIVE"/>
+ <function name="XML_SCHEMA_FACET_MINLENGTH" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_MINLENGTH"/>
+ <function name="XML_SCHEMA_FACET_PATTERN" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_PATTERN"/>
+ <function name="XML_SCHEMA_FACET_TOTALDIGITS" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_TOTALDIGITS"/>
+ <function name="XML_SCHEMA_FACET_WHITESPACE" link="libxml2-schemasInternals.html#XML_SCHEMA_FACET_WHITESPACE"/>
+ <function name="XML_SCHEMA_TYPE_ALL" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_ALL"/>
+ <function name="XML_SCHEMA_TYPE_ANY" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_ANY"/>
+ <function name="XML_SCHEMA_TYPE_ANY_ATTRIBUTE" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_ANY_ATTRIBUTE"/>
+ <function name="XML_SCHEMA_TYPE_ATTRIBUTE" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_ATTRIBUTE"/>
+ <function name="XML_SCHEMA_TYPE_ATTRIBUTEGROUP" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_ATTRIBUTEGROUP"/>
+ <function name="XML_SCHEMA_TYPE_ATTRIBUTE_USE" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_ATTRIBUTE_USE"/>
+ <function name="XML_SCHEMA_TYPE_BASIC" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_BASIC"/>
+ <function name="XML_SCHEMA_TYPE_CHOICE" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_CHOICE"/>
+ <function name="XML_SCHEMA_TYPE_COMPLEX" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_COMPLEX"/>
+ <function name="XML_SCHEMA_TYPE_COMPLEX_CONTENT" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_COMPLEX_CONTENT"/>
+ <function name="XML_SCHEMA_TYPE_ELEMENT" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_ELEMENT"/>
+ <function name="XML_SCHEMA_TYPE_EXTENSION" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_EXTENSION"/>
+ <function name="XML_SCHEMA_TYPE_FACET" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_FACET"/>
+ <function name="XML_SCHEMA_TYPE_GROUP" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_GROUP"/>
+ <function name="XML_SCHEMA_TYPE_IDC_KEY" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_IDC_KEY"/>
+ <function name="XML_SCHEMA_TYPE_IDC_KEYREF" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_IDC_KEYREF"/>
+ <function name="XML_SCHEMA_TYPE_IDC_UNIQUE" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_IDC_UNIQUE"/>
+ <function name="XML_SCHEMA_TYPE_LIST" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_LIST"/>
+ <function name="XML_SCHEMA_TYPE_NOTATION" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_NOTATION"/>
+ <function name="XML_SCHEMA_TYPE_PARTICLE" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_PARTICLE"/>
+ <function name="XML_SCHEMA_TYPE_RESTRICTION" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_RESTRICTION"/>
+ <function name="XML_SCHEMA_TYPE_SEQUENCE" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_SEQUENCE"/>
+ <function name="XML_SCHEMA_TYPE_SIMPLE" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_SIMPLE"/>
+ <function name="XML_SCHEMA_TYPE_SIMPLE_CONTENT" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_SIMPLE_CONTENT"/>
+ <function name="XML_SCHEMA_TYPE_UNION" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_UNION"/>
+ <function name="XML_SCHEMA_TYPE_UR" link="libxml2-schemasInternals.html#XML_SCHEMA_TYPE_UR"/>
+ <function name="XML_SCHEMA_VAL_VC_I_CREATE" link="libxml2-xmlschemas.html#XML_SCHEMA_VAL_VC_I_CREATE"/>
+ <function name="XML_SCHEMA_WHITESPACE_COLLAPSE" link="libxml2-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_COLLAPSE"/>
+ <function name="XML_SCHEMA_WHITESPACE_PRESERVE" link="libxml2-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_PRESERVE"/>
+ <function name="XML_SCHEMA_WHITESPACE_REPLACE" link="libxml2-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_REPLACE"/>
+ <function name="XML_SCHEMA_WHITESPACE_UNKNOWN" link="libxml2-xmlschemastypes.html#XML_SCHEMA_WHITESPACE_UNKNOWN"/>
+ <function name="XML_TEXTREADER_MODE_CLOSED" link="libxml2-xmlreader.html#XML_TEXTREADER_MODE_CLOSED"/>
+ <function name="XML_TEXTREADER_MODE_EOF" link="libxml2-xmlreader.html#XML_TEXTREADER_MODE_EOF"/>
+ <function name="XML_TEXTREADER_MODE_ERROR" link="libxml2-xmlreader.html#XML_TEXTREADER_MODE_ERROR"/>
+ <function name="XML_TEXTREADER_MODE_INITIAL" link="libxml2-xmlreader.html#XML_TEXTREADER_MODE_INITIAL"/>
+ <function name="XML_TEXTREADER_MODE_INTERACTIVE" link="libxml2-xmlreader.html#XML_TEXTREADER_MODE_INTERACTIVE"/>
+ <function name="XML_TEXTREADER_MODE_READING" link="libxml2-xmlreader.html#XML_TEXTREADER_MODE_READING"/>
+ <function name="XML_TEXT_NODE" link="libxml2-tree.html#XML_TEXT_NODE"/>
+ <function name="XML_TREE_INVALID_DEC" link="libxml2-xmlerror.html#XML_TREE_INVALID_DEC"/>
+ <function name="XML_TREE_INVALID_HEX" link="libxml2-xmlerror.html#XML_TREE_INVALID_HEX"/>
+ <function name="XML_TREE_NOT_UTF8" link="libxml2-xmlerror.html#XML_TREE_NOT_UTF8"/>
+ <function name="XML_TREE_UNTERMINATED_ENTITY" link="libxml2-xmlerror.html#XML_TREE_UNTERMINATED_ENTITY"/>
+ <function name="XML_WAR_CATALOG_PI" link="libxml2-xmlerror.html#XML_WAR_CATALOG_PI"/>
+ <function name="XML_WAR_ENTITY_REDEFINED" link="libxml2-xmlerror.html#XML_WAR_ENTITY_REDEFINED"/>
+ <function name="XML_WAR_LANG_VALUE" link="libxml2-xmlerror.html#XML_WAR_LANG_VALUE"/>
+ <function name="XML_WAR_NS_COLUMN" link="libxml2-xmlerror.html#XML_WAR_NS_COLUMN"/>
+ <function name="XML_WAR_NS_URI" link="libxml2-xmlerror.html#XML_WAR_NS_URI"/>
+ <function name="XML_WAR_NS_URI_RELATIVE" link="libxml2-xmlerror.html#XML_WAR_NS_URI_RELATIVE"/>
+ <function name="XML_WAR_SPACE_VALUE" link="libxml2-xmlerror.html#XML_WAR_SPACE_VALUE"/>
+ <function name="XML_WAR_UNDECLARED_ENTITY" link="libxml2-xmlerror.html#XML_WAR_UNDECLARED_ENTITY"/>
+ <function name="XML_WAR_UNKNOWN_VERSION" link="libxml2-xmlerror.html#XML_WAR_UNKNOWN_VERSION"/>
+ <function name="XML_WITH_AUTOMATA" link="libxml2-parser.html#XML_WITH_AUTOMATA"/>
+ <function name="XML_WITH_C14N" link="libxml2-parser.html#XML_WITH_C14N"/>
+ <function name="XML_WITH_CATALOG" link="libxml2-parser.html#XML_WITH_CATALOG"/>
+ <function name="XML_WITH_DEBUG" link="libxml2-parser.html#XML_WITH_DEBUG"/>
+ <function name="XML_WITH_DEBUG_MEM" link="libxml2-parser.html#XML_WITH_DEBUG_MEM"/>
+ <function name="XML_WITH_DEBUG_RUN" link="libxml2-parser.html#XML_WITH_DEBUG_RUN"/>
+ <function name="XML_WITH_EXPR" link="libxml2-parser.html#XML_WITH_EXPR"/>
+ <function name="XML_WITH_FTP" link="libxml2-parser.html#XML_WITH_FTP"/>
+ <function name="XML_WITH_HTML" link="libxml2-parser.html#XML_WITH_HTML"/>
+ <function name="XML_WITH_HTTP" link="libxml2-parser.html#XML_WITH_HTTP"/>
+ <function name="XML_WITH_ICONV" link="libxml2-parser.html#XML_WITH_ICONV"/>
+ <function name="XML_WITH_ICU" link="libxml2-parser.html#XML_WITH_ICU"/>
+ <function name="XML_WITH_ISO8859X" link="libxml2-parser.html#XML_WITH_ISO8859X"/>
+ <function name="XML_WITH_LEGACY" link="libxml2-parser.html#XML_WITH_LEGACY"/>
+ <function name="XML_WITH_LZMA" link="libxml2-parser.html#XML_WITH_LZMA"/>
+ <function name="XML_WITH_MODULES" link="libxml2-parser.html#XML_WITH_MODULES"/>
+ <function name="XML_WITH_NONE" link="libxml2-parser.html#XML_WITH_NONE"/>
+ <function name="XML_WITH_OUTPUT" link="libxml2-parser.html#XML_WITH_OUTPUT"/>
+ <function name="XML_WITH_PATTERN" link="libxml2-parser.html#XML_WITH_PATTERN"/>
+ <function name="XML_WITH_PUSH" link="libxml2-parser.html#XML_WITH_PUSH"/>
+ <function name="XML_WITH_READER" link="libxml2-parser.html#XML_WITH_READER"/>
+ <function name="XML_WITH_REGEXP" link="libxml2-parser.html#XML_WITH_REGEXP"/>
+ <function name="XML_WITH_SAX1" link="libxml2-parser.html#XML_WITH_SAX1"/>
+ <function name="XML_WITH_SCHEMAS" link="libxml2-parser.html#XML_WITH_SCHEMAS"/>
+ <function name="XML_WITH_SCHEMATRON" link="libxml2-parser.html#XML_WITH_SCHEMATRON"/>
+ <function name="XML_WITH_THREAD" link="libxml2-parser.html#XML_WITH_THREAD"/>
+ <function name="XML_WITH_TREE" link="libxml2-parser.html#XML_WITH_TREE"/>
+ <function name="XML_WITH_UNICODE" link="libxml2-parser.html#XML_WITH_UNICODE"/>
+ <function name="XML_WITH_VALID" link="libxml2-parser.html#XML_WITH_VALID"/>
+ <function name="XML_WITH_WRITER" link="libxml2-parser.html#XML_WITH_WRITER"/>
+ <function name="XML_WITH_XINCLUDE" link="libxml2-parser.html#XML_WITH_XINCLUDE"/>
+ <function name="XML_WITH_XPATH" link="libxml2-parser.html#XML_WITH_XPATH"/>
+ <function name="XML_WITH_XPTR" link="libxml2-parser.html#XML_WITH_XPTR"/>
+ <function name="XML_WITH_ZLIB" link="libxml2-parser.html#XML_WITH_ZLIB"/>
+ <function name="XML_XINCLUDE_BUILD_FAILED" link="libxml2-xmlerror.html#XML_XINCLUDE_BUILD_FAILED"/>
+ <function name="XML_XINCLUDE_DEPRECATED_NS" link="libxml2-xmlerror.html#XML_XINCLUDE_DEPRECATED_NS"/>
+ <function name="XML_XINCLUDE_END" link="libxml2-tree.html#XML_XINCLUDE_END"/>
+ <function name="XML_XINCLUDE_ENTITY_DEF_MISMATCH" link="libxml2-xmlerror.html#XML_XINCLUDE_ENTITY_DEF_MISMATCH"/>
+ <function name="XML_XINCLUDE_FALLBACKS_IN_INCLUDE" link="libxml2-xmlerror.html#XML_XINCLUDE_FALLBACKS_IN_INCLUDE"/>
+ <function name="XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE" link="libxml2-xmlerror.html#XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE"/>
+ <function name="XML_XINCLUDE_FRAGMENT_ID" link="libxml2-xmlerror.html#XML_XINCLUDE_FRAGMENT_ID"/>
+ <function name="XML_XINCLUDE_HREF_URI" link="libxml2-xmlerror.html#XML_XINCLUDE_HREF_URI"/>
+ <function name="XML_XINCLUDE_INCLUDE_IN_INCLUDE" link="libxml2-xmlerror.html#XML_XINCLUDE_INCLUDE_IN_INCLUDE"/>
+ <function name="XML_XINCLUDE_INVALID_CHAR" link="libxml2-xmlerror.html#XML_XINCLUDE_INVALID_CHAR"/>
+ <function name="XML_XINCLUDE_MULTIPLE_ROOT" link="libxml2-xmlerror.html#XML_XINCLUDE_MULTIPLE_ROOT"/>
+ <function name="XML_XINCLUDE_NO_FALLBACK" link="libxml2-xmlerror.html#XML_XINCLUDE_NO_FALLBACK"/>
+ <function name="XML_XINCLUDE_NO_HREF" link="libxml2-xmlerror.html#XML_XINCLUDE_NO_HREF"/>
+ <function name="XML_XINCLUDE_PARSE_VALUE" link="libxml2-xmlerror.html#XML_XINCLUDE_PARSE_VALUE"/>
+ <function name="XML_XINCLUDE_RECURSION" link="libxml2-xmlerror.html#XML_XINCLUDE_RECURSION"/>
+ <function name="XML_XINCLUDE_START" link="libxml2-tree.html#XML_XINCLUDE_START"/>
+ <function name="XML_XINCLUDE_TEXT_DOCUMENT" link="libxml2-xmlerror.html#XML_XINCLUDE_TEXT_DOCUMENT"/>
+ <function name="XML_XINCLUDE_TEXT_FRAGMENT" link="libxml2-xmlerror.html#XML_XINCLUDE_TEXT_FRAGMENT"/>
+ <function name="XML_XINCLUDE_UNKNOWN_ENCODING" link="libxml2-xmlerror.html#XML_XINCLUDE_UNKNOWN_ENCODING"/>
+ <function name="XML_XINCLUDE_XPTR_FAILED" link="libxml2-xmlerror.html#XML_XINCLUDE_XPTR_FAILED"/>
+ <function name="XML_XINCLUDE_XPTR_RESULT" link="libxml2-xmlerror.html#XML_XINCLUDE_XPTR_RESULT"/>
+ <function name="XML_XPATH_ENCODING_ERROR" link="libxml2-xmlerror.html#XML_XPATH_ENCODING_ERROR"/>
+ <function name="XML_XPATH_EXPRESSION_OK" link="libxml2-xmlerror.html#XML_XPATH_EXPRESSION_OK"/>
+ <function name="XML_XPATH_EXPR_ERROR" link="libxml2-xmlerror.html#XML_XPATH_EXPR_ERROR"/>
+ <function name="XML_XPATH_INVALID_ARITY" link="libxml2-xmlerror.html#XML_XPATH_INVALID_ARITY"/>
+ <function name="XML_XPATH_INVALID_CHAR_ERROR" link="libxml2-xmlerror.html#XML_XPATH_INVALID_CHAR_ERROR"/>
+ <function name="XML_XPATH_INVALID_CTXT_POSITION" link="libxml2-xmlerror.html#XML_XPATH_INVALID_CTXT_POSITION"/>
+ <function name="XML_XPATH_INVALID_CTXT_SIZE" link="libxml2-xmlerror.html#XML_XPATH_INVALID_CTXT_SIZE"/>
+ <function name="XML_XPATH_INVALID_OPERAND" link="libxml2-xmlerror.html#XML_XPATH_INVALID_OPERAND"/>
+ <function name="XML_XPATH_INVALID_PREDICATE_ERROR" link="libxml2-xmlerror.html#XML_XPATH_INVALID_PREDICATE_ERROR"/>
+ <function name="XML_XPATH_INVALID_TYPE" link="libxml2-xmlerror.html#XML_XPATH_INVALID_TYPE"/>
+ <function name="XML_XPATH_MEMORY_ERROR" link="libxml2-xmlerror.html#XML_XPATH_MEMORY_ERROR"/>
+ <function name="XML_XPATH_NUMBER_ERROR" link="libxml2-xmlerror.html#XML_XPATH_NUMBER_ERROR"/>
+ <function name="XML_XPATH_START_LITERAL_ERROR" link="libxml2-xmlerror.html#XML_XPATH_START_LITERAL_ERROR"/>
+ <function name="XML_XPATH_UNCLOSED_ERROR" link="libxml2-xmlerror.html#XML_XPATH_UNCLOSED_ERROR"/>
+ <function name="XML_XPATH_UNDEF_PREFIX_ERROR" link="libxml2-xmlerror.html#XML_XPATH_UNDEF_PREFIX_ERROR"/>
+ <function name="XML_XPATH_UNDEF_VARIABLE_ERROR" link="libxml2-xmlerror.html#XML_XPATH_UNDEF_VARIABLE_ERROR"/>
+ <function name="XML_XPATH_UNFINISHED_LITERAL_ERROR" link="libxml2-xmlerror.html#XML_XPATH_UNFINISHED_LITERAL_ERROR"/>
+ <function name="XML_XPATH_UNKNOWN_FUNC_ERROR" link="libxml2-xmlerror.html#XML_XPATH_UNKNOWN_FUNC_ERROR"/>
+ <function name="XML_XPATH_VARIABLE_REF_ERROR" link="libxml2-xmlerror.html#XML_XPATH_VARIABLE_REF_ERROR"/>
+ <function name="XML_XPTR_CHILDSEQ_START" link="libxml2-xmlerror.html#XML_XPTR_CHILDSEQ_START"/>
+ <function name="XML_XPTR_EVAL_FAILED" link="libxml2-xmlerror.html#XML_XPTR_EVAL_FAILED"/>
+ <function name="XML_XPTR_EXTRA_OBJECTS" link="libxml2-xmlerror.html#XML_XPTR_EXTRA_OBJECTS"/>
+ <function name="XML_XPTR_RESOURCE_ERROR" link="libxml2-xmlerror.html#XML_XPTR_RESOURCE_ERROR"/>
+ <function name="XML_XPTR_SUB_RESOURCE_ERROR" link="libxml2-xmlerror.html#XML_XPTR_SUB_RESOURCE_ERROR"/>
+ <function name="XML_XPTR_SYNTAX_ERROR" link="libxml2-xmlerror.html#XML_XPTR_SYNTAX_ERROR"/>
+ <function name="XML_XPTR_UNKNOWN_SCHEME" link="libxml2-xmlerror.html#XML_XPTR_UNKNOWN_SCHEME"/>
+ <function name="XPATH_BOOLEAN" link="libxml2-xpath.html#XPATH_BOOLEAN"/>
+ <function name="XPATH_ENCODING_ERROR" link="libxml2-xpath.html#XPATH_ENCODING_ERROR"/>
+ <function name="XPATH_EXPRESSION_OK" link="libxml2-xpath.html#XPATH_EXPRESSION_OK"/>
+ <function name="XPATH_EXPR_ERROR" link="libxml2-xpath.html#XPATH_EXPR_ERROR"/>
+ <function name="XPATH_FORBID_VARIABLE_ERROR" link="libxml2-xpath.html#XPATH_FORBID_VARIABLE_ERROR"/>
+ <function name="XPATH_INVALID_ARITY" link="libxml2-xpath.html#XPATH_INVALID_ARITY"/>
+ <function name="XPATH_INVALID_CHAR_ERROR" link="libxml2-xpath.html#XPATH_INVALID_CHAR_ERROR"/>
+ <function name="XPATH_INVALID_CTXT" link="libxml2-xpath.html#XPATH_INVALID_CTXT"/>
+ <function name="XPATH_INVALID_CTXT_POSITION" link="libxml2-xpath.html#XPATH_INVALID_CTXT_POSITION"/>
+ <function name="XPATH_INVALID_CTXT_SIZE" link="libxml2-xpath.html#XPATH_INVALID_CTXT_SIZE"/>
+ <function name="XPATH_INVALID_OPERAND" link="libxml2-xpath.html#XPATH_INVALID_OPERAND"/>
+ <function name="XPATH_INVALID_PREDICATE_ERROR" link="libxml2-xpath.html#XPATH_INVALID_PREDICATE_ERROR"/>
+ <function name="XPATH_INVALID_TYPE" link="libxml2-xpath.html#XPATH_INVALID_TYPE"/>
+ <function name="XPATH_LOCATIONSET" link="libxml2-xpath.html#XPATH_LOCATIONSET"/>
+ <function name="XPATH_MEMORY_ERROR" link="libxml2-xpath.html#XPATH_MEMORY_ERROR"/>
+ <function name="XPATH_NODESET" link="libxml2-xpath.html#XPATH_NODESET"/>
+ <function name="XPATH_NUMBER" link="libxml2-xpath.html#XPATH_NUMBER"/>
+ <function name="XPATH_NUMBER_ERROR" link="libxml2-xpath.html#XPATH_NUMBER_ERROR"/>
+ <function name="XPATH_OP_LIMIT_EXCEEDED" link="libxml2-xpath.html#XPATH_OP_LIMIT_EXCEEDED"/>
+ <function name="XPATH_POINT" link="libxml2-xpath.html#XPATH_POINT"/>
+ <function name="XPATH_RANGE" link="libxml2-xpath.html#XPATH_RANGE"/>
+ <function name="XPATH_RECURSION_LIMIT_EXCEEDED" link="libxml2-xpath.html#XPATH_RECURSION_LIMIT_EXCEEDED"/>
+ <function name="XPATH_STACK_ERROR" link="libxml2-xpath.html#XPATH_STACK_ERROR"/>
+ <function name="XPATH_START_LITERAL_ERROR" link="libxml2-xpath.html#XPATH_START_LITERAL_ERROR"/>
+ <function name="XPATH_STRING" link="libxml2-xpath.html#XPATH_STRING"/>
+ <function name="XPATH_UNCLOSED_ERROR" link="libxml2-xpath.html#XPATH_UNCLOSED_ERROR"/>
+ <function name="XPATH_UNDEFINED" link="libxml2-xpath.html#XPATH_UNDEFINED"/>
+ <function name="XPATH_UNDEF_PREFIX_ERROR" link="libxml2-xpath.html#XPATH_UNDEF_PREFIX_ERROR"/>
+ <function name="XPATH_UNDEF_VARIABLE_ERROR" link="libxml2-xpath.html#XPATH_UNDEF_VARIABLE_ERROR"/>
+ <function name="XPATH_UNFINISHED_LITERAL_ERROR" link="libxml2-xpath.html#XPATH_UNFINISHED_LITERAL_ERROR"/>
+ <function name="XPATH_UNKNOWN_FUNC_ERROR" link="libxml2-xpath.html#XPATH_UNKNOWN_FUNC_ERROR"/>
+ <function name="XPATH_USERS" link="libxml2-xpath.html#XPATH_USERS"/>
+ <function name="XPATH_VARIABLE_REF_ERROR" link="libxml2-xpath.html#XPATH_VARIABLE_REF_ERROR"/>
+ <function name="XPATH_XSLT_TREE" link="libxml2-xpath.html#XPATH_XSLT_TREE"/>
+ <function name="XPTR_RESOURCE_ERROR" link="libxml2-xpath.html#XPTR_RESOURCE_ERROR"/>
+ <function name="XPTR_SUB_RESOURCE_ERROR" link="libxml2-xpath.html#XPTR_SUB_RESOURCE_ERROR"/>
+ <function name="XPTR_SYNTAX_ERROR" link="libxml2-xpath.html#XPTR_SYNTAX_ERROR"/>
+ <function name="docbDocPtr" link="libxml2-DOCBparser.html#docbDocPtr"/>
+ <function name="docbParserCtxt" link="libxml2-DOCBparser.html#docbParserCtxt"/>
+ <function name="docbParserCtxtPtr" link="libxml2-DOCBparser.html#docbParserCtxtPtr"/>
+ <function name="docbParserInput" link="libxml2-DOCBparser.html#docbParserInput"/>
+ <function name="docbParserInputPtr" link="libxml2-DOCBparser.html#docbParserInputPtr"/>
+ <function name="docbSAXHandler" link="libxml2-DOCBparser.html#docbSAXHandler"/>
+ <function name="docbSAXHandlerPtr" link="libxml2-DOCBparser.html#docbSAXHandlerPtr"/>
+ <function name="htmlDocPtr" link="libxml2-HTMLparser.html#htmlDocPtr"/>
+ <function name="htmlElemDescPtr" link="libxml2-HTMLparser.html#htmlElemDescPtr"/>
+ <function name="htmlEntityDescPtr" link="libxml2-HTMLparser.html#htmlEntityDescPtr"/>
+ <function name="htmlNodePtr" link="libxml2-HTMLparser.html#htmlNodePtr"/>
+ <function name="htmlParserCtxt" link="libxml2-HTMLparser.html#htmlParserCtxt"/>
+ <function name="htmlParserCtxtPtr" link="libxml2-HTMLparser.html#htmlParserCtxtPtr"/>
+ <function name="htmlParserInput" link="libxml2-HTMLparser.html#htmlParserInput"/>
+ <function name="htmlParserInputPtr" link="libxml2-HTMLparser.html#htmlParserInputPtr"/>
+ <function name="htmlParserNodeInfo" link="libxml2-HTMLparser.html#htmlParserNodeInfo"/>
+ <function name="htmlParserOption" link="libxml2-HTMLparser.html#htmlParserOption"/>
+ <function name="htmlSAXHandler" link="libxml2-HTMLparser.html#htmlSAXHandler"/>
+ <function name="htmlSAXHandlerPtr" link="libxml2-HTMLparser.html#htmlSAXHandlerPtr"/>
+ <function name="htmlStatus" link="libxml2-HTMLparser.html#htmlStatus"/>
+ <function name="xlinkActuate" link="libxml2-xlink.html#xlinkActuate"/>
+ <function name="xlinkHRef" link="libxml2-xlink.html#xlinkHRef"/>
+ <function name="xlinkHandlerPtr" link="libxml2-xlink.html#xlinkHandlerPtr"/>
+ <function name="xlinkRole" link="libxml2-xlink.html#xlinkRole"/>
+ <function name="xlinkShow" link="libxml2-xlink.html#xlinkShow"/>
+ <function name="xlinkTitle" link="libxml2-xlink.html#xlinkTitle"/>
+ <function name="xlinkType" link="libxml2-xlink.html#xlinkType"/>
+ <function name="xmlAttrPtr" link="libxml2-tree.html#xmlAttrPtr"/>
+ <function name="xmlAttributeDefault" link="libxml2-tree.html#xmlAttributeDefault"/>
+ <function name="xmlAttributePtr" link="libxml2-tree.html#xmlAttributePtr"/>
+ <function name="xmlAttributeTablePtr" link="libxml2-valid.html#xmlAttributeTablePtr"/>
+ <function name="xmlAttributeType" link="libxml2-tree.html#xmlAttributeType"/>
+ <function name="xmlAutomataPtr" link="libxml2-xmlautomata.html#xmlAutomataPtr"/>
+ <function name="xmlAutomataStatePtr" link="libxml2-xmlautomata.html#xmlAutomataStatePtr"/>
+ <function name="xmlBufPtr" link="libxml2-tree.html#xmlBufPtr"/>
+ <function name="xmlBufferAllocationScheme" link="libxml2-tree.html#xmlBufferAllocationScheme"/>
+ <function name="xmlBufferPtr" link="libxml2-tree.html#xmlBufferPtr"/>
+ <function name="xmlC14NMode" link="libxml2-c14n.html#xmlC14NMode"/>
+ <function name="xmlCatalogAllow" link="libxml2-catalog.html#xmlCatalogAllow"/>
+ <function name="xmlCatalogPrefer" link="libxml2-catalog.html#xmlCatalogPrefer"/>
+ <function name="xmlCatalogPtr" link="libxml2-catalog.html#xmlCatalogPtr"/>
+ <function name="xmlChLRangePtr" link="libxml2-chvalid.html#xmlChLRangePtr"/>
+ <function name="xmlChRangeGroupPtr" link="libxml2-chvalid.html#xmlChRangeGroupPtr"/>
+ <function name="xmlChSRangePtr" link="libxml2-chvalid.html#xmlChSRangePtr"/>
+ <function name="xmlChar" link="libxml2-xmlstring.html#xmlChar"/>
+ <function name="xmlCharEncoding" link="libxml2-encoding.html#xmlCharEncoding"/>
+ <function name="xmlCharEncodingHandlerPtr" link="libxml2-encoding.html#xmlCharEncodingHandlerPtr"/>
+ <function name="xmlDOMWrapCtxtPtr" link="libxml2-tree.html#xmlDOMWrapCtxtPtr"/>
+ <function name="xmlDictPtr" link="libxml2-dict.html#xmlDictPtr"/>
+ <function name="xmlDocProperties" link="libxml2-tree.html#xmlDocProperties"/>
+ <function name="xmlDocPtr" link="libxml2-tree.html#xmlDocPtr"/>
+ <function name="xmlDtdPtr" link="libxml2-tree.html#xmlDtdPtr"/>
+ <function name="xmlElementContentOccur" link="libxml2-tree.html#xmlElementContentOccur"/>
+ <function name="xmlElementContentPtr" link="libxml2-tree.html#xmlElementContentPtr"/>
+ <function name="xmlElementContentType" link="libxml2-tree.html#xmlElementContentType"/>
+ <function name="xmlElementPtr" link="libxml2-tree.html#xmlElementPtr"/>
+ <function name="xmlElementTablePtr" link="libxml2-valid.html#xmlElementTablePtr"/>
+ <function name="xmlElementType" link="libxml2-tree.html#xmlElementType"/>
+ <function name="xmlElementTypeVal" link="libxml2-tree.html#xmlElementTypeVal"/>
+ <function name="xmlEntitiesTablePtr" link="libxml2-entities.html#xmlEntitiesTablePtr"/>
+ <function name="xmlEntityPtr" link="libxml2-tree.html#xmlEntityPtr"/>
+ <function name="xmlEntityType" link="libxml2-entities.html#xmlEntityType"/>
+ <function name="xmlEnumerationPtr" link="libxml2-tree.html#xmlEnumerationPtr"/>
+ <function name="xmlErrorDomain" link="libxml2-xmlerror.html#xmlErrorDomain"/>
+ <function name="xmlErrorLevel" link="libxml2-xmlerror.html#xmlErrorLevel"/>
+ <function name="xmlErrorPtr" link="libxml2-xmlerror.html#xmlErrorPtr"/>
+ <function name="xmlExpCtxtPtr" link="libxml2-xmlregexp.html#xmlExpCtxtPtr"/>
+ <function name="xmlExpNodePtr" link="libxml2-xmlregexp.html#xmlExpNodePtr"/>
+ <function name="xmlExpNodeType" link="libxml2-xmlregexp.html#xmlExpNodeType"/>
+ <function name="xmlFeature" link="libxml2-parser.html#xmlFeature"/>
+ <function name="xmlGlobalStatePtr" link="libxml2-globals.html#xmlGlobalStatePtr"/>
+ <function name="xmlHashTablePtr" link="libxml2-hash.html#xmlHashTablePtr"/>
+ <function name="xmlIDPtr" link="libxml2-tree.html#xmlIDPtr"/>
+ <function name="xmlIDTablePtr" link="libxml2-valid.html#xmlIDTablePtr"/>
+ <function name="xmlLinkPtr" link="libxml2-list.html#xmlLinkPtr"/>
+ <function name="xmlListPtr" link="libxml2-list.html#xmlListPtr"/>
+ <function name="xmlLocationSetPtr" link="libxml2-xpointer.html#xmlLocationSetPtr"/>
+ <function name="xmlModuleOption" link="libxml2-xmlmodule.html#xmlModuleOption"/>
+ <function name="xmlModulePtr" link="libxml2-xmlmodule.html#xmlModulePtr"/>
+ <function name="xmlMutexPtr" link="libxml2-threads.html#xmlMutexPtr"/>
+ <function name="xmlNodePtr" link="libxml2-tree.html#xmlNodePtr"/>
+ <function name="xmlNodeSetPtr" link="libxml2-xpath.html#xmlNodeSetPtr"/>
+ <function name="xmlNotationPtr" link="libxml2-tree.html#xmlNotationPtr"/>
+ <function name="xmlNotationTablePtr" link="libxml2-valid.html#xmlNotationTablePtr"/>
+ <function name="xmlNsPtr" link="libxml2-tree.html#xmlNsPtr"/>
+ <function name="xmlNsType" link="libxml2-tree.html#xmlNsType"/>
+ <function name="xmlOutputBufferPtr" link="libxml2-tree.html#xmlOutputBufferPtr"/>
+ <function name="xmlParserCtxtPtr" link="libxml2-tree.html#xmlParserCtxtPtr"/>
+ <function name="xmlParserErrors" link="libxml2-xmlerror.html#xmlParserErrors"/>
+ <function name="xmlParserInputBufferPtr" link="libxml2-tree.html#xmlParserInputBufferPtr"/>
+ <function name="xmlParserInputPtr" link="libxml2-tree.html#xmlParserInputPtr"/>
+ <function name="xmlParserInputState" link="libxml2-parser.html#xmlParserInputState"/>
+ <function name="xmlParserMode" link="libxml2-parser.html#xmlParserMode"/>
+ <function name="xmlParserNodeInfoPtr" link="libxml2-parser.html#xmlParserNodeInfoPtr"/>
+ <function name="xmlParserNodeInfoSeqPtr" link="libxml2-parser.html#xmlParserNodeInfoSeqPtr"/>
+ <function name="xmlParserOption" link="libxml2-parser.html#xmlParserOption"/>
+ <function name="xmlParserProperties" link="libxml2-xmlreader.html#xmlParserProperties"/>
+ <function name="xmlParserSeverities" link="libxml2-xmlreader.html#xmlParserSeverities"/>
+ <function name="xmlPatternFlags" link="libxml2-pattern.html#xmlPatternFlags"/>
+ <function name="xmlPatternPtr" link="libxml2-pattern.html#xmlPatternPtr"/>
+ <function name="xmlRMutexPtr" link="libxml2-threads.html#xmlRMutexPtr"/>
+ <function name="xmlReaderTypes" link="libxml2-xmlreader.html#xmlReaderTypes"/>
+ <function name="xmlRefPtr" link="libxml2-tree.html#xmlRefPtr"/>
+ <function name="xmlRefTablePtr" link="libxml2-valid.html#xmlRefTablePtr"/>
+ <function name="xmlRegExecCtxtPtr" link="libxml2-xmlregexp.html#xmlRegExecCtxtPtr"/>
+ <function name="xmlRegexpPtr" link="libxml2-xmlregexp.html#xmlRegexpPtr"/>
+ <function name="xmlRelaxNGParserCtxtPtr" link="libxml2-relaxng.html#xmlRelaxNGParserCtxtPtr"/>
+ <function name="xmlRelaxNGParserFlag" link="libxml2-relaxng.html#xmlRelaxNGParserFlag"/>
+ <function name="xmlRelaxNGPtr" link="libxml2-relaxng.html#xmlRelaxNGPtr"/>
+ <function name="xmlRelaxNGValidCtxtPtr" link="libxml2-relaxng.html#xmlRelaxNGValidCtxtPtr"/>
+ <function name="xmlRelaxNGValidErr" link="libxml2-relaxng.html#xmlRelaxNGValidErr"/>
+ <function name="xmlSAXHandlerPtr" link="libxml2-tree.html#xmlSAXHandlerPtr"/>
+ <function name="xmlSAXHandlerV1Ptr" link="libxml2-parser.html#xmlSAXHandlerV1Ptr"/>
+ <function name="xmlSAXLocatorPtr" link="libxml2-tree.html#xmlSAXLocatorPtr"/>
+ <function name="xmlSaveCtxtPtr" link="libxml2-xmlsave.html#xmlSaveCtxtPtr"/>
+ <function name="xmlSaveOption" link="libxml2-xmlsave.html#xmlSaveOption"/>
+ <function name="xmlSchemaAnnotPtr" link="libxml2-schemasInternals.html#xmlSchemaAnnotPtr"/>
+ <function name="xmlSchemaAttributeGroupPtr" link="libxml2-schemasInternals.html#xmlSchemaAttributeGroupPtr"/>
+ <function name="xmlSchemaAttributeLinkPtr" link="libxml2-schemasInternals.html#xmlSchemaAttributeLinkPtr"/>
+ <function name="xmlSchemaAttributePtr" link="libxml2-schemasInternals.html#xmlSchemaAttributePtr"/>
+ <function name="xmlSchemaContentType" link="libxml2-schemasInternals.html#xmlSchemaContentType"/>
+ <function name="xmlSchemaElementPtr" link="libxml2-schemasInternals.html#xmlSchemaElementPtr"/>
+ <function name="xmlSchemaFacetLinkPtr" link="libxml2-schemasInternals.html#xmlSchemaFacetLinkPtr"/>
+ <function name="xmlSchemaFacetPtr" link="libxml2-schemasInternals.html#xmlSchemaFacetPtr"/>
+ <function name="xmlSchemaNotationPtr" link="libxml2-schemasInternals.html#xmlSchemaNotationPtr"/>
+ <function name="xmlSchemaParserCtxtPtr" link="libxml2-xmlschemas.html#xmlSchemaParserCtxtPtr"/>
+ <function name="xmlSchemaPtr" link="libxml2-xmlschemas.html#xmlSchemaPtr"/>
+ <function name="xmlSchemaSAXPlugPtr" link="libxml2-xmlschemas.html#xmlSchemaSAXPlugPtr"/>
+ <function name="xmlSchemaTypeLinkPtr" link="libxml2-schemasInternals.html#xmlSchemaTypeLinkPtr"/>
+ <function name="xmlSchemaTypePtr" link="libxml2-schemasInternals.html#xmlSchemaTypePtr"/>
+ <function name="xmlSchemaTypeType" link="libxml2-schemasInternals.html#xmlSchemaTypeType"/>
+ <function name="xmlSchemaValPtr" link="libxml2-schemasInternals.html#xmlSchemaValPtr"/>
+ <function name="xmlSchemaValType" link="libxml2-schemasInternals.html#xmlSchemaValType"/>
+ <function name="xmlSchemaValidCtxtPtr" link="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr"/>
+ <function name="xmlSchemaValidError" link="libxml2-xmlschemas.html#xmlSchemaValidError"/>
+ <function name="xmlSchemaValidOption" link="libxml2-xmlschemas.html#xmlSchemaValidOption"/>
+ <function name="xmlSchemaWhitespaceValueType" link="libxml2-xmlschemastypes.html#xmlSchemaWhitespaceValueType"/>
+ <function name="xmlSchemaWildcardNsPtr" link="libxml2-schemasInternals.html#xmlSchemaWildcardNsPtr"/>
+ <function name="xmlSchemaWildcardPtr" link="libxml2-schemasInternals.html#xmlSchemaWildcardPtr"/>
+ <function name="xmlSchematronParserCtxtPtr" link="libxml2-schematron.html#xmlSchematronParserCtxtPtr"/>
+ <function name="xmlSchematronPtr" link="libxml2-schematron.html#xmlSchematronPtr"/>
+ <function name="xmlSchematronValidCtxtPtr" link="libxml2-schematron.html#xmlSchematronValidCtxtPtr"/>
+ <function name="xmlSchematronValidOptions" link="libxml2-schematron.html#xmlSchematronValidOptions"/>
+ <function name="xmlShellCtxtPtr" link="libxml2-debugXML.html#xmlShellCtxtPtr"/>
+ <function name="xmlStreamCtxtPtr" link="libxml2-pattern.html#xmlStreamCtxtPtr"/>
+ <function name="xmlTextReaderLocatorPtr" link="libxml2-xmlreader.html#xmlTextReaderLocatorPtr"/>
+ <function name="xmlTextReaderMode" link="libxml2-xmlreader.html#xmlTextReaderMode"/>
+ <function name="xmlTextReaderPtr" link="libxml2-xmlreader.html#xmlTextReaderPtr"/>
+ <function name="xmlTextWriterPtr" link="libxml2-xmlwriter.html#xmlTextWriterPtr"/>
+ <function name="xmlURIPtr" link="libxml2-uri.html#xmlURIPtr"/>
+ <function name="xmlValidCtxtPtr" link="libxml2-valid.html#xmlValidCtxtPtr"/>
+ <function name="xmlValidStatePtr" link="libxml2-valid.html#xmlValidStatePtr"/>
+ <function name="xmlXIncludeCtxtPtr" link="libxml2-xinclude.html#xmlXIncludeCtxtPtr"/>
+ <function name="xmlXPathAxisPtr" link="libxml2-xpath.html#xmlXPathAxisPtr"/>
+ <function name="xmlXPathCompExprPtr" link="libxml2-xpath.html#xmlXPathCompExprPtr"/>
+ <function name="xmlXPathContextPtr" link="libxml2-xpath.html#xmlXPathContextPtr"/>
+ <function name="xmlXPathError" link="libxml2-xpath.html#xmlXPathError"/>
+ <function name="xmlXPathFuncPtr" link="libxml2-xpath.html#xmlXPathFuncPtr"/>
+ <function name="xmlXPathObjectPtr" link="libxml2-xpath.html#xmlXPathObjectPtr"/>
+ <function name="xmlXPathObjectType" link="libxml2-xpath.html#xmlXPathObjectType"/>
+ <function name="xmlXPathParserContextPtr" link="libxml2-xpath.html#xmlXPathParserContextPtr"/>
+ <function name="xmlXPathTypePtr" link="libxml2-xpath.html#xmlXPathTypePtr"/>
+ <function name="xmlXPathVariablePtr" link="libxml2-xpath.html#xmlXPathVariablePtr"/>
+ <function name="htmlElemDesc" link="libxml2-HTMLparser.html#htmlElemDesc"/>
+ <function name="htmlEntityDesc" link="libxml2-HTMLparser.html#htmlEntityDesc"/>
+ <function name="uconv_t" link="libxml2-encoding.html#uconv_t"/>
+ <function name="xlinkHandler" link="libxml2-xlink.html#xlinkHandler"/>
+ <function name="xmlAttr" link="libxml2-tree.html#xmlAttr"/>
+ <function name="xmlAttribute" link="libxml2-tree.html#xmlAttribute"/>
+ <function name="xmlAttributeTable" link="libxml2-valid.html#xmlAttributeTable"/>
+ <function name="xmlAutomata" link="libxml2-xmlautomata.html#xmlAutomata"/>
+ <function name="xmlAutomataState" link="libxml2-xmlautomata.html#xmlAutomataState"/>
+ <function name="xmlBuf" link="libxml2-tree.html#xmlBuf"/>
+ <function name="xmlBuffer" link="libxml2-tree.html#xmlBuffer"/>
+ <function name="xmlCatalog" link="libxml2-catalog.html#xmlCatalog"/>
+ <function name="xmlChLRange" link="libxml2-chvalid.html#xmlChLRange"/>
+ <function name="xmlChRangeGroup" link="libxml2-chvalid.html#xmlChRangeGroup"/>
+ <function name="xmlChSRange" link="libxml2-chvalid.html#xmlChSRange"/>
+ <function name="xmlCharEncodingHandler" link="libxml2-encoding.html#xmlCharEncodingHandler"/>
+ <function name="xmlDOMWrapCtxt" link="libxml2-tree.html#xmlDOMWrapCtxt"/>
+ <function name="xmlDict" link="libxml2-dict.html#xmlDict"/>
+ <function name="xmlDoc" link="libxml2-tree.html#xmlDoc"/>
+ <function name="xmlDtd" link="libxml2-tree.html#xmlDtd"/>
+ <function name="xmlElement" link="libxml2-tree.html#xmlElement"/>
+ <function name="xmlElementContent" link="libxml2-tree.html#xmlElementContent"/>
+ <function name="xmlElementTable" link="libxml2-valid.html#xmlElementTable"/>
+ <function name="xmlEntitiesTable" link="libxml2-entities.html#xmlEntitiesTable"/>
+ <function name="xmlEntity" link="libxml2-tree.html#xmlEntity"/>
+ <function name="xmlEnumeration" link="libxml2-tree.html#xmlEnumeration"/>
+ <function name="xmlError" link="libxml2-xmlerror.html#xmlError"/>
+ <function name="xmlExpCtxt" link="libxml2-xmlregexp.html#xmlExpCtxt"/>
+ <function name="xmlExpNode" link="libxml2-xmlregexp.html#xmlExpNode"/>
+ <function name="xmlGlobalState" link="libxml2-globals.html#xmlGlobalState"/>
+ <function name="xmlHashTable" link="libxml2-hash.html#xmlHashTable"/>
+ <function name="xmlID" link="libxml2-tree.html#xmlID"/>
+ <function name="xmlIDTable" link="libxml2-valid.html#xmlIDTable"/>
+ <function name="xmlLink" link="libxml2-list.html#xmlLink"/>
+ <function name="xmlList" link="libxml2-list.html#xmlList"/>
+ <function name="xmlLocationSet" link="libxml2-xpointer.html#xmlLocationSet"/>
+ <function name="xmlModule" link="libxml2-xmlmodule.html#xmlModule"/>
+ <function name="xmlMutex" link="libxml2-threads.html#xmlMutex"/>
+ <function name="xmlNode" link="libxml2-tree.html#xmlNode"/>
+ <function name="xmlNodeSet" link="libxml2-xpath.html#xmlNodeSet"/>
+ <function name="xmlNotation" link="libxml2-tree.html#xmlNotation"/>
+ <function name="xmlNotationTable" link="libxml2-valid.html#xmlNotationTable"/>
+ <function name="xmlNs" link="libxml2-tree.html#xmlNs"/>
+ <function name="xmlOutputBuffer" link="libxml2-tree.html#xmlOutputBuffer"/>
+ <function name="xmlParserCtxt" link="libxml2-tree.html#xmlParserCtxt"/>
+ <function name="xmlParserInput" link="libxml2-tree.html#xmlParserInput"/>
+ <function name="xmlParserInputBuffer" link="libxml2-tree.html#xmlParserInputBuffer"/>
+ <function name="xmlParserNodeInfo" link="libxml2-parser.html#xmlParserNodeInfo"/>
+ <function name="xmlParserNodeInfoSeq" link="libxml2-parser.html#xmlParserNodeInfoSeq"/>
+ <function name="xmlPattern" link="libxml2-pattern.html#xmlPattern"/>
+ <function name="xmlRMutex" link="libxml2-threads.html#xmlRMutex"/>
+ <function name="xmlRef" link="libxml2-tree.html#xmlRef"/>
+ <function name="xmlRefTable" link="libxml2-valid.html#xmlRefTable"/>
+ <function name="xmlRegExecCtxt" link="libxml2-xmlregexp.html#xmlRegExecCtxt"/>
+ <function name="xmlRegexp" link="libxml2-xmlregexp.html#xmlRegexp"/>
+ <function name="xmlRelaxNG" link="libxml2-relaxng.html#xmlRelaxNG"/>
+ <function name="xmlRelaxNGParserCtxt" link="libxml2-relaxng.html#xmlRelaxNGParserCtxt"/>
+ <function name="xmlRelaxNGValidCtxt" link="libxml2-relaxng.html#xmlRelaxNGValidCtxt"/>
+ <function name="xmlSAXHandler" link="libxml2-tree.html#xmlSAXHandler"/>
+ <function name="xmlSAXHandlerV1" link="libxml2-parser.html#xmlSAXHandlerV1"/>
+ <function name="xmlSAXLocator" link="libxml2-tree.html#xmlSAXLocator"/>
+ <function name="xmlSaveCtxt" link="libxml2-xmlsave.html#xmlSaveCtxt"/>
+ <function name="xmlSchema" link="libxml2-xmlschemas.html#xmlSchema"/>
+ <function name="xmlSchemaAnnot" link="libxml2-schemasInternals.html#xmlSchemaAnnot"/>
+ <function name="xmlSchemaAttribute" link="libxml2-schemasInternals.html#xmlSchemaAttribute"/>
+ <function name="xmlSchemaAttributeGroup" link="libxml2-schemasInternals.html#xmlSchemaAttributeGroup"/>
+ <function name="xmlSchemaAttributeLink" link="libxml2-schemasInternals.html#xmlSchemaAttributeLink"/>
+ <function name="xmlSchemaElement" link="libxml2-schemasInternals.html#xmlSchemaElement"/>
+ <function name="xmlSchemaFacet" link="libxml2-schemasInternals.html#xmlSchemaFacet"/>
+ <function name="xmlSchemaFacetLink" link="libxml2-schemasInternals.html#xmlSchemaFacetLink"/>
+ <function name="xmlSchemaNotation" link="libxml2-schemasInternals.html#xmlSchemaNotation"/>
+ <function name="xmlSchemaParserCtxt" link="libxml2-xmlschemas.html#xmlSchemaParserCtxt"/>
+ <function name="xmlSchemaSAXPlugStruct" link="libxml2-xmlschemas.html#xmlSchemaSAXPlugStruct"/>
+ <function name="xmlSchemaType" link="libxml2-schemasInternals.html#xmlSchemaType"/>
+ <function name="xmlSchemaTypeLink" link="libxml2-schemasInternals.html#xmlSchemaTypeLink"/>
+ <function name="xmlSchemaVal" link="libxml2-schemasInternals.html#xmlSchemaVal"/>
+ <function name="xmlSchemaValidCtxt" link="libxml2-xmlschemas.html#xmlSchemaValidCtxt"/>
+ <function name="xmlSchemaWildcard" link="libxml2-schemasInternals.html#xmlSchemaWildcard"/>
+ <function name="xmlSchemaWildcardNs" link="libxml2-schemasInternals.html#xmlSchemaWildcardNs"/>
+ <function name="xmlSchematron" link="libxml2-schematron.html#xmlSchematron"/>
+ <function name="xmlSchematronParserCtxt" link="libxml2-schematron.html#xmlSchematronParserCtxt"/>
+ <function name="xmlSchematronValidCtxt" link="libxml2-schematron.html#xmlSchematronValidCtxt"/>
+ <function name="xmlShellCtxt" link="libxml2-debugXML.html#xmlShellCtxt"/>
+ <function name="xmlStreamCtxt" link="libxml2-pattern.html#xmlStreamCtxt"/>
+ <function name="xmlTextReader" link="libxml2-xmlreader.html#xmlTextReader"/>
+ <function name="xmlTextWriter" link="libxml2-xmlwriter.html#xmlTextWriter"/>
+ <function name="xmlURI" link="libxml2-uri.html#xmlURI"/>
+ <function name="xmlValidCtxt" link="libxml2-valid.html#xmlValidCtxt"/>
+ <function name="xmlValidState" link="libxml2-valid.html#xmlValidState"/>
+ <function name="xmlXIncludeCtxt" link="libxml2-xinclude.html#xmlXIncludeCtxt"/>
+ <function name="xmlXPathAxis" link="libxml2-xpath.html#xmlXPathAxis"/>
+ <function name="xmlXPathCompExpr" link="libxml2-xpath.html#xmlXPathCompExpr"/>
+ <function name="xmlXPathContext" link="libxml2-xpath.html#xmlXPathContext"/>
+ <function name="xmlXPathFunct" link="libxml2-xpath.html#xmlXPathFunct"/>
+ <function name="xmlXPathObject" link="libxml2-xpath.html#xmlXPathObject"/>
+ <function name="xmlXPathParserContext" link="libxml2-xpath.html#xmlXPathParserContext"/>
+ <function name="xmlXPathType" link="libxml2-xpath.html#xmlXPathType"/>
+ <function name="xmlXPathVariable" link="libxml2-xpath.html#xmlXPathVariable"/>
+ <function name="attributeDeclSAXFunc" link="libxml2-parser.html#attributeDeclSAXFunc"/>
+ <function name="attributeSAXFunc" link="libxml2-parser.html#attributeSAXFunc"/>
+ <function name="cdataBlockSAXFunc" link="libxml2-parser.html#cdataBlockSAXFunc"/>
+ <function name="charactersSAXFunc" link="libxml2-parser.html#charactersSAXFunc"/>
+ <function name="commentSAXFunc" link="libxml2-parser.html#commentSAXFunc"/>
+ <function name="elementDeclSAXFunc" link="libxml2-parser.html#elementDeclSAXFunc"/>
+ <function name="endDocumentSAXFunc" link="libxml2-parser.html#endDocumentSAXFunc"/>
+ <function name="endElementNsSAX2Func" link="libxml2-parser.html#endElementNsSAX2Func"/>
+ <function name="endElementSAXFunc" link="libxml2-parser.html#endElementSAXFunc"/>
+ <function name="entityDeclSAXFunc" link="libxml2-parser.html#entityDeclSAXFunc"/>
+ <function name="errorSAXFunc" link="libxml2-parser.html#errorSAXFunc"/>
+ <function name="externalSubsetSAXFunc" link="libxml2-parser.html#externalSubsetSAXFunc"/>
+ <function name="fatalErrorSAXFunc" link="libxml2-parser.html#fatalErrorSAXFunc"/>
+ <function name="ftpDataCallback" link="libxml2-nanoftp.html#ftpDataCallback"/>
+ <function name="ftpListCallback" link="libxml2-nanoftp.html#ftpListCallback"/>
+ <function name="getEntitySAXFunc" link="libxml2-parser.html#getEntitySAXFunc"/>
+ <function name="getParameterEntitySAXFunc" link="libxml2-parser.html#getParameterEntitySAXFunc"/>
+ <function name="hasExternalSubsetSAXFunc" link="libxml2-parser.html#hasExternalSubsetSAXFunc"/>
+ <function name="hasInternalSubsetSAXFunc" link="libxml2-parser.html#hasInternalSubsetSAXFunc"/>
+ <function name="ignorableWhitespaceSAXFunc" link="libxml2-parser.html#ignorableWhitespaceSAXFunc"/>
+ <function name="internalSubsetSAXFunc" link="libxml2-parser.html#internalSubsetSAXFunc"/>
+ <function name="isStandaloneSAXFunc" link="libxml2-parser.html#isStandaloneSAXFunc"/>
+ <function name="notationDeclSAXFunc" link="libxml2-parser.html#notationDeclSAXFunc"/>
+ <function name="processingInstructionSAXFunc" link="libxml2-parser.html#processingInstructionSAXFunc"/>
+ <function name="referenceSAXFunc" link="libxml2-parser.html#referenceSAXFunc"/>
+ <function name="resolveEntitySAXFunc" link="libxml2-parser.html#resolveEntitySAXFunc"/>
+ <function name="setDocumentLocatorSAXFunc" link="libxml2-parser.html#setDocumentLocatorSAXFunc"/>
+ <function name="startDocumentSAXFunc" link="libxml2-parser.html#startDocumentSAXFunc"/>
+ <function name="startElementNsSAX2Func" link="libxml2-parser.html#startElementNsSAX2Func"/>
+ <function name="startElementSAXFunc" link="libxml2-parser.html#startElementSAXFunc"/>
+ <function name="unparsedEntityDeclSAXFunc" link="libxml2-parser.html#unparsedEntityDeclSAXFunc"/>
+ <function name="warningSAXFunc" link="libxml2-parser.html#warningSAXFunc"/>
+ <function name="xlinkExtendedLinkFunk" link="libxml2-xlink.html#xlinkExtendedLinkFunk"/>
+ <function name="xlinkExtendedLinkSetFunk" link="libxml2-xlink.html#xlinkExtendedLinkSetFunk"/>
+ <function name="xlinkNodeDetectFunc" link="libxml2-xlink.html#xlinkNodeDetectFunc"/>
+ <function name="xlinkSimpleLinkFunk" link="libxml2-xlink.html#xlinkSimpleLinkFunk"/>
+ <function name="xmlC14NIsVisibleCallback" link="libxml2-c14n.html#xmlC14NIsVisibleCallback"/>
+ <function name="xmlCharEncodingInputFunc" link="libxml2-encoding.html#xmlCharEncodingInputFunc"/>
+ <function name="xmlCharEncodingOutputFunc" link="libxml2-encoding.html#xmlCharEncodingOutputFunc"/>
+ <function name="xmlDOMWrapAcquireNsFunction" link="libxml2-tree.html#xmlDOMWrapAcquireNsFunction"/>
+ <function name="xmlDeregisterNodeFunc" link="libxml2-globals.html#xmlDeregisterNodeFunc"/>
+ <function name="xmlEntityReferenceFunc" link="libxml2-parserInternals.html#xmlEntityReferenceFunc"/>
+ <function name="xmlExternalEntityLoader" link="libxml2-parser.html#xmlExternalEntityLoader"/>
+ <function name="xmlFreeFunc" link="libxml2-xmlmemory.html#xmlFreeFunc"/>
+ <function name="xmlGenericErrorFunc" link="libxml2-xmlerror.html#xmlGenericErrorFunc"/>
+ <function name="xmlHashCopier" link="libxml2-hash.html#xmlHashCopier"/>
+ <function name="xmlHashDeallocator" link="libxml2-hash.html#xmlHashDeallocator"/>
+ <function name="xmlHashScanner" link="libxml2-hash.html#xmlHashScanner"/>
+ <function name="xmlHashScannerFull" link="libxml2-hash.html#xmlHashScannerFull"/>
+ <function name="xmlInputCloseCallback" link="libxml2-xmlIO.html#xmlInputCloseCallback"/>
+ <function name="xmlInputMatchCallback" link="libxml2-xmlIO.html#xmlInputMatchCallback"/>
+ <function name="xmlInputOpenCallback" link="libxml2-xmlIO.html#xmlInputOpenCallback"/>
+ <function name="xmlInputReadCallback" link="libxml2-xmlIO.html#xmlInputReadCallback"/>
+ <function name="xmlListDataCompare" link="libxml2-list.html#xmlListDataCompare"/>
+ <function name="xmlListDeallocator" link="libxml2-list.html#xmlListDeallocator"/>
+ <function name="xmlListWalker" link="libxml2-list.html#xmlListWalker"/>
+ <function name="xmlMallocFunc" link="libxml2-xmlmemory.html#xmlMallocFunc"/>
+ <function name="xmlOutputBufferCreateFilenameFunc" link="libxml2-globals.html#xmlOutputBufferCreateFilenameFunc"/>
+ <function name="xmlOutputCloseCallback" link="libxml2-xmlIO.html#xmlOutputCloseCallback"/>
+ <function name="xmlOutputMatchCallback" link="libxml2-xmlIO.html#xmlOutputMatchCallback"/>
+ <function name="xmlOutputOpenCallback" link="libxml2-xmlIO.html#xmlOutputOpenCallback"/>
+ <function name="xmlOutputWriteCallback" link="libxml2-xmlIO.html#xmlOutputWriteCallback"/>
+ <function name="xmlParserInputBufferCreateFilenameFunc" link="libxml2-globals.html#xmlParserInputBufferCreateFilenameFunc"/>
+ <function name="xmlParserInputDeallocate" link="libxml2-parser.html#xmlParserInputDeallocate"/>
+ <function name="xmlReallocFunc" link="libxml2-xmlmemory.html#xmlReallocFunc"/>
+ <function name="xmlRegExecCallbacks" link="libxml2-xmlregexp.html#xmlRegExecCallbacks"/>
+ <function name="xmlRegisterNodeFunc" link="libxml2-globals.html#xmlRegisterNodeFunc"/>
+ <function name="xmlRelaxNGValidityErrorFunc" link="libxml2-relaxng.html#xmlRelaxNGValidityErrorFunc"/>
+ <function name="xmlRelaxNGValidityWarningFunc" link="libxml2-relaxng.html#xmlRelaxNGValidityWarningFunc"/>
+ <function name="xmlSchemaValidityErrorFunc" link="libxml2-xmlschemas.html#xmlSchemaValidityErrorFunc"/>
+ <function name="xmlSchemaValidityLocatorFunc" link="libxml2-xmlschemas.html#xmlSchemaValidityLocatorFunc"/>
+ <function name="xmlSchemaValidityWarningFunc" link="libxml2-xmlschemas.html#xmlSchemaValidityWarningFunc"/>
+ <function name="xmlSchematronValidityErrorFunc" link="libxml2-schematron.html#xmlSchematronValidityErrorFunc"/>
+ <function name="xmlSchematronValidityWarningFunc" link="libxml2-schematron.html#xmlSchematronValidityWarningFunc"/>
+ <function name="xmlShellCmd" link="libxml2-debugXML.html#xmlShellCmd"/>
+ <function name="xmlShellReadlineFunc" link="libxml2-debugXML.html#xmlShellReadlineFunc"/>
+ <function name="xmlStrdupFunc" link="libxml2-xmlmemory.html#xmlStrdupFunc"/>
+ <function name="xmlStructuredErrorFunc" link="libxml2-xmlerror.html#xmlStructuredErrorFunc"/>
+ <function name="xmlTextReaderErrorFunc" link="libxml2-xmlreader.html#xmlTextReaderErrorFunc"/>
+ <function name="xmlValidityErrorFunc" link="libxml2-valid.html#xmlValidityErrorFunc"/>
+ <function name="xmlValidityWarningFunc" link="libxml2-valid.html#xmlValidityWarningFunc"/>
+ <function name="xmlXPathAxisFunc" link="libxml2-xpath.html#xmlXPathAxisFunc"/>
+ <function name="xmlXPathConvertFunc" link="libxml2-xpath.html#xmlXPathConvertFunc"/>
+ <function name="xmlXPathEvalFunc" link="libxml2-xpath.html#xmlXPathEvalFunc"/>
+ <function name="xmlXPathFuncLookupFunc" link="libxml2-xpath.html#xmlXPathFuncLookupFunc"/>
+ <function name="xmlXPathFunction" link="libxml2-xpath.html#xmlXPathFunction"/>
+ <function name="xmlXPathVariableLookupFunc" link="libxml2-xpath.html#xmlXPathVariableLookupFunc"/>
+ <function name="docbDefaultSAXHandler" link="libxml2-globals.html#docbDefaultSAXHandler"/>
+ <function name="emptyExp" link="libxml2-xmlregexp.html#emptyExp"/>
+ <function name="forbiddenExp" link="libxml2-xmlregexp.html#forbiddenExp"/>
+ <function name="htmlDefaultSAXHandler" link="libxml2-globals.html#htmlDefaultSAXHandler"/>
+ <function name="oldXMLWDcompatibility" link="libxml2-globals.html#oldXMLWDcompatibility"/>
+ <function name="xmlBufferAllocScheme" link="libxml2-globals.html#xmlBufferAllocScheme"/>
+ <function name="xmlDefaultBufferSize" link="libxml2-globals.html#xmlDefaultBufferSize"/>
+ <function name="xmlDefaultSAXHandler" link="libxml2-globals.html#xmlDefaultSAXHandler"/>
+ <function name="xmlDefaultSAXLocator" link="libxml2-globals.html#xmlDefaultSAXLocator"/>
+ <function name="xmlDeregisterNodeDefaultValue" link="libxml2-globals.html#xmlDeregisterNodeDefaultValue"/>
+ <function name="xmlDoValidityCheckingDefaultValue" link="libxml2-globals.html#xmlDoValidityCheckingDefaultValue"/>
+ <function name="xmlFree" link="libxml2-globals.html#xmlFree"/>
+ <function name="xmlGenericError" link="libxml2-globals.html#xmlGenericError"/>
+ <function name="xmlGenericErrorContext" link="libxml2-globals.html#xmlGenericErrorContext"/>
+ <function name="xmlGetWarningsDefaultValue" link="libxml2-globals.html#xmlGetWarningsDefaultValue"/>
+ <function name="xmlIndentTreeOutput" link="libxml2-globals.html#xmlIndentTreeOutput"/>
+ <function name="xmlIsBaseCharGroup" link="libxml2-chvalid.html#xmlIsBaseCharGroup"/>
+ <function name="xmlIsCharGroup" link="libxml2-chvalid.html#xmlIsCharGroup"/>
+ <function name="xmlIsCombiningGroup" link="libxml2-chvalid.html#xmlIsCombiningGroup"/>
+ <function name="xmlIsDigitGroup" link="libxml2-chvalid.html#xmlIsDigitGroup"/>
+ <function name="xmlIsExtenderGroup" link="libxml2-chvalid.html#xmlIsExtenderGroup"/>
+ <function name="xmlIsIdeographicGroup" link="libxml2-chvalid.html#xmlIsIdeographicGroup"/>
+ <function name="xmlIsPubidChar_tab" link="libxml2-chvalid.html#xmlIsPubidChar_tab"/>
+ <function name="xmlKeepBlanksDefaultValue" link="libxml2-globals.html#xmlKeepBlanksDefaultValue"/>
+ <function name="xmlLastError" link="libxml2-globals.html#xmlLastError"/>
+ <function name="xmlLineNumbersDefaultValue" link="libxml2-globals.html#xmlLineNumbersDefaultValue"/>
+ <function name="xmlLoadExtDtdDefaultValue" link="libxml2-globals.html#xmlLoadExtDtdDefaultValue"/>
+ <function name="xmlMalloc" link="libxml2-globals.html#xmlMalloc"/>
+ <function name="xmlMallocAtomic" link="libxml2-globals.html#xmlMallocAtomic"/>
+ <function name="xmlMemStrdup" link="libxml2-globals.html#xmlMemStrdup"/>
+ <function name="xmlOutputBufferCreateFilenameValue" link="libxml2-globals.html#xmlOutputBufferCreateFilenameValue"/>
+ <function name="xmlParserDebugEntities" link="libxml2-globals.html#xmlParserDebugEntities"/>
+ <function name="xmlParserInputBufferCreateFilenameValue" link="libxml2-globals.html#xmlParserInputBufferCreateFilenameValue"/>
+ <function name="xmlParserMaxDepth" link="libxml2-parserInternals.html#xmlParserMaxDepth"/>
+ <function name="xmlParserVersion" link="libxml2-globals.html#xmlParserVersion"/>
+ <function name="xmlPedanticParserDefaultValue" link="libxml2-globals.html#xmlPedanticParserDefaultValue"/>
+ <function name="xmlRealloc" link="libxml2-globals.html#xmlRealloc"/>
+ <function name="xmlRegisterNodeDefaultValue" link="libxml2-globals.html#xmlRegisterNodeDefaultValue"/>
+ <function name="xmlSaveNoEmptyTags" link="libxml2-globals.html#xmlSaveNoEmptyTags"/>
+ <function name="xmlStringComment" link="libxml2-parserInternals.html#xmlStringComment"/>
+ <function name="xmlStringText" link="libxml2-parserInternals.html#xmlStringText"/>
+ <function name="xmlStringTextNoenc" link="libxml2-parserInternals.html#xmlStringTextNoenc"/>
+ <function name="xmlStructuredError" link="libxml2-globals.html#xmlStructuredError"/>
+ <function name="xmlStructuredErrorContext" link="libxml2-globals.html#xmlStructuredErrorContext"/>
+ <function name="xmlSubstituteEntitiesDefaultValue" link="libxml2-globals.html#xmlSubstituteEntitiesDefaultValue"/>
+ <function name="xmlTreeIndentString" link="libxml2-globals.html#xmlTreeIndentString"/>
+ <function name="xmlXPathNAN" link="libxml2-xpath.html#xmlXPathNAN"/>
+ <function name="xmlXPathNINF" link="libxml2-xpath.html#xmlXPathNINF"/>
+ <function name="xmlXPathPINF" link="libxml2-xpath.html#xmlXPathPINF"/>
+ <function name="UTF8ToHtml ()" link="libxml2-HTMLparser.html#UTF8ToHtml"/>
+ <function name="UTF8Toisolat1 ()" link="libxml2-encoding.html#UTF8Toisolat1"/>
+ <function name="attribute ()" link="libxml2-SAX.html#attribute"/>
+ <function name="attributeDecl ()" link="libxml2-SAX.html#attributeDecl"/>
+ <function name="cdataBlock ()" link="libxml2-SAX.html#cdataBlock"/>
+ <function name="characters ()" link="libxml2-SAX.html#characters"/>
+ <function name="checkNamespace ()" link="libxml2-SAX.html#checkNamespace"/>
+ <function name="comment ()" link="libxml2-SAX.html#comment"/>
+ <function name="docbCreateFileParserCtxt ()" link="libxml2-DOCBparser.html#docbCreateFileParserCtxt"/>
+ <function name="docbCreatePushParserCtxt ()" link="libxml2-DOCBparser.html#docbCreatePushParserCtxt"/>
+ <function name="docbDefaultSAXHandlerInit ()" link="libxml2-SAX2.html#docbDefaultSAXHandlerInit"/>
+ <function name="docbEncodeEntities ()" link="libxml2-DOCBparser.html#docbEncodeEntities"/>
+ <function name="docbFreeParserCtxt ()" link="libxml2-DOCBparser.html#docbFreeParserCtxt"/>
+ <function name="docbParseChunk ()" link="libxml2-DOCBparser.html#docbParseChunk"/>
+ <function name="docbParseDoc ()" link="libxml2-DOCBparser.html#docbParseDoc"/>
+ <function name="docbParseDocument ()" link="libxml2-DOCBparser.html#docbParseDocument"/>
+ <function name="docbParseFile ()" link="libxml2-DOCBparser.html#docbParseFile"/>
+ <function name="docbSAXParseDoc ()" link="libxml2-DOCBparser.html#docbSAXParseDoc"/>
+ <function name="docbSAXParseFile ()" link="libxml2-DOCBparser.html#docbSAXParseFile"/>
+ <function name="elementDecl ()" link="libxml2-SAX.html#elementDecl"/>
+ <function name="endDocument ()" link="libxml2-SAX.html#endDocument"/>
+ <function name="endElement ()" link="libxml2-SAX.html#endElement"/>
+ <function name="entityDecl ()" link="libxml2-SAX.html#entityDecl"/>
+ <function name="externalSubset ()" link="libxml2-SAX.html#externalSubset"/>
+ <function name="getColumnNumber ()" link="libxml2-SAX.html#getColumnNumber"/>
+ <function name="getEntity ()" link="libxml2-SAX.html#getEntity"/>
+ <function name="getLineNumber ()" link="libxml2-SAX.html#getLineNumber"/>
+ <function name="getNamespace ()" link="libxml2-SAX.html#getNamespace"/>
+ <function name="getParameterEntity ()" link="libxml2-SAX.html#getParameterEntity"/>
+ <function name="getPublicId ()" link="libxml2-SAX.html#getPublicId"/>
+ <function name="getSystemId ()" link="libxml2-SAX.html#getSystemId"/>
+ <function name="globalNamespace ()" link="libxml2-SAX.html#globalNamespace"/>
+ <function name="hasExternalSubset ()" link="libxml2-SAX.html#hasExternalSubset"/>
+ <function name="hasInternalSubset ()" link="libxml2-SAX.html#hasInternalSubset"/>
+ <function name="htmlAttrAllowed ()" link="libxml2-HTMLparser.html#htmlAttrAllowed"/>
+ <function name="htmlAutoCloseTag ()" link="libxml2-HTMLparser.html#htmlAutoCloseTag"/>
+ <function name="htmlCreateFileParserCtxt ()" link="libxml2-parserInternals.html#htmlCreateFileParserCtxt"/>
+ <function name="htmlCreateMemoryParserCtxt ()" link="libxml2-HTMLparser.html#htmlCreateMemoryParserCtxt"/>
+ <function name="htmlCreatePushParserCtxt ()" link="libxml2-HTMLparser.html#htmlCreatePushParserCtxt"/>
+ <function name="htmlCtxtReadDoc ()" link="libxml2-HTMLparser.html#htmlCtxtReadDoc"/>
+ <function name="htmlCtxtReadFd ()" link="libxml2-HTMLparser.html#htmlCtxtReadFd"/>
+ <function name="htmlCtxtReadFile ()" link="libxml2-HTMLparser.html#htmlCtxtReadFile"/>
+ <function name="htmlCtxtReadIO ()" link="libxml2-HTMLparser.html#htmlCtxtReadIO"/>
+ <function name="htmlCtxtReadMemory ()" link="libxml2-HTMLparser.html#htmlCtxtReadMemory"/>
+ <function name="htmlCtxtReset ()" link="libxml2-HTMLparser.html#htmlCtxtReset"/>
+ <function name="htmlCtxtUseOptions ()" link="libxml2-HTMLparser.html#htmlCtxtUseOptions"/>
+ <function name="htmlDefaultSAXHandlerInit ()" link="libxml2-SAX2.html#htmlDefaultSAXHandlerInit"/>
+ <function name="htmlDocContentDumpFormatOutput ()" link="libxml2-HTMLtree.html#htmlDocContentDumpFormatOutput"/>
+ <function name="htmlDocContentDumpOutput ()" link="libxml2-HTMLtree.html#htmlDocContentDumpOutput"/>
+ <function name="htmlDocDump ()" link="libxml2-HTMLtree.html#htmlDocDump"/>
+ <function name="htmlDocDumpMemory ()" link="libxml2-HTMLtree.html#htmlDocDumpMemory"/>
+ <function name="htmlDocDumpMemoryFormat ()" link="libxml2-HTMLtree.html#htmlDocDumpMemoryFormat"/>
+ <function name="htmlElementAllowedHere ()" link="libxml2-HTMLparser.html#htmlElementAllowedHere"/>
+ <function name="htmlElementStatusHere ()" link="libxml2-HTMLparser.html#htmlElementStatusHere"/>
+ <function name="htmlEncodeEntities ()" link="libxml2-HTMLparser.html#htmlEncodeEntities"/>
+ <function name="htmlEntityLookup ()" link="libxml2-HTMLparser.html#htmlEntityLookup"/>
+ <function name="htmlEntityValueLookup ()" link="libxml2-HTMLparser.html#htmlEntityValueLookup"/>
+ <function name="htmlFreeParserCtxt ()" link="libxml2-HTMLparser.html#htmlFreeParserCtxt"/>
+ <function name="htmlGetMetaEncoding ()" link="libxml2-HTMLtree.html#htmlGetMetaEncoding"/>
+ <function name="htmlHandleOmittedElem ()" link="libxml2-HTMLparser.html#htmlHandleOmittedElem"/>
+ <function name="htmlInitAutoClose ()" link="libxml2-parserInternals.html#htmlInitAutoClose"/>
+ <function name="htmlIsAutoClosed ()" link="libxml2-HTMLparser.html#htmlIsAutoClosed"/>
+ <function name="htmlIsBooleanAttr ()" link="libxml2-HTMLtree.html#htmlIsBooleanAttr"/>
+ <function name="htmlIsScriptAttribute ()" link="libxml2-HTMLparser.html#htmlIsScriptAttribute"/>
+ <function name="htmlNewDoc ()" link="libxml2-HTMLtree.html#htmlNewDoc"/>
+ <function name="htmlNewDocNoDtD ()" link="libxml2-HTMLtree.html#htmlNewDocNoDtD"/>
+ <function name="htmlNewParserCtxt ()" link="libxml2-HTMLparser.html#htmlNewParserCtxt"/>
+ <function name="htmlNodeDump ()" link="libxml2-HTMLtree.html#htmlNodeDump"/>
+ <function name="htmlNodeDumpFile ()" link="libxml2-HTMLtree.html#htmlNodeDumpFile"/>
+ <function name="htmlNodeDumpFileFormat ()" link="libxml2-HTMLtree.html#htmlNodeDumpFileFormat"/>
+ <function name="htmlNodeDumpFormatOutput ()" link="libxml2-HTMLtree.html#htmlNodeDumpFormatOutput"/>
+ <function name="htmlNodeDumpOutput ()" link="libxml2-HTMLtree.html#htmlNodeDumpOutput"/>
+ <function name="htmlNodeStatus ()" link="libxml2-HTMLparser.html#htmlNodeStatus"/>
+ <function name="htmlParseCharRef ()" link="libxml2-HTMLparser.html#htmlParseCharRef"/>
+ <function name="htmlParseChunk ()" link="libxml2-HTMLparser.html#htmlParseChunk"/>
+ <function name="htmlParseDoc ()" link="libxml2-HTMLparser.html#htmlParseDoc"/>
+ <function name="htmlParseDocument ()" link="libxml2-HTMLparser.html#htmlParseDocument"/>
+ <function name="htmlParseElement ()" link="libxml2-HTMLparser.html#htmlParseElement"/>
+ <function name="htmlParseEntityRef ()" link="libxml2-HTMLparser.html#htmlParseEntityRef"/>
+ <function name="htmlParseFile ()" link="libxml2-HTMLparser.html#htmlParseFile"/>
+ <function name="htmlReadDoc ()" link="libxml2-HTMLparser.html#htmlReadDoc"/>
+ <function name="htmlReadFd ()" link="libxml2-HTMLparser.html#htmlReadFd"/>
+ <function name="htmlReadFile ()" link="libxml2-HTMLparser.html#htmlReadFile"/>
+ <function name="htmlReadIO ()" link="libxml2-HTMLparser.html#htmlReadIO"/>
+ <function name="htmlReadMemory ()" link="libxml2-HTMLparser.html#htmlReadMemory"/>
+ <function name="htmlSAXParseDoc ()" link="libxml2-HTMLparser.html#htmlSAXParseDoc"/>
+ <function name="htmlSAXParseFile ()" link="libxml2-HTMLparser.html#htmlSAXParseFile"/>
+ <function name="htmlSaveFile ()" link="libxml2-HTMLtree.html#htmlSaveFile"/>
+ <function name="htmlSaveFileEnc ()" link="libxml2-HTMLtree.html#htmlSaveFileEnc"/>
+ <function name="htmlSaveFileFormat ()" link="libxml2-HTMLtree.html#htmlSaveFileFormat"/>
+ <function name="htmlSetMetaEncoding ()" link="libxml2-HTMLtree.html#htmlSetMetaEncoding"/>
+ <function name="htmlTagLookup ()" link="libxml2-HTMLparser.html#htmlTagLookup"/>
+ <function name="ignorableWhitespace ()" link="libxml2-SAX.html#ignorableWhitespace"/>
+ <function name="initGenericErrorDefaultFunc ()" link="libxml2-xmlerror.html#initGenericErrorDefaultFunc"/>
+ <function name="initdocbDefaultSAXHandler ()" link="libxml2-SAX.html#initdocbDefaultSAXHandler"/>
+ <function name="inithtmlDefaultSAXHandler ()" link="libxml2-SAX.html#inithtmlDefaultSAXHandler"/>
+ <function name="initxmlDefaultSAXHandler ()" link="libxml2-SAX.html#initxmlDefaultSAXHandler"/>
+ <function name="inputPop ()" link="libxml2-parserInternals.html#inputPop"/>
+ <function name="inputPush ()" link="libxml2-parserInternals.html#inputPush"/>
+ <function name="internalSubset ()" link="libxml2-SAX.html#internalSubset"/>
+ <function name="isStandalone ()" link="libxml2-SAX.html#isStandalone"/>
+ <function name="isolat1ToUTF8 ()" link="libxml2-encoding.html#isolat1ToUTF8"/>
+ <function name="namePop ()" link="libxml2-parserInternals.html#namePop"/>
+ <function name="namePush ()" link="libxml2-parserInternals.html#namePush"/>
+ <function name="namespaceDecl ()" link="libxml2-SAX.html#namespaceDecl"/>
+ <function name="nodePop ()" link="libxml2-parserInternals.html#nodePop"/>
+ <function name="nodePush ()" link="libxml2-parserInternals.html#nodePush"/>
+ <function name="notationDecl ()" link="libxml2-SAX.html#notationDecl"/>
+ <function name="processingInstruction ()" link="libxml2-SAX.html#processingInstruction"/>
+ <function name="reference ()" link="libxml2-SAX.html#reference"/>
+ <function name="resolveEntity ()" link="libxml2-SAX.html#resolveEntity"/>
+ <function name="setDocumentLocator ()" link="libxml2-SAX.html#setDocumentLocator"/>
+ <function name="setNamespace ()" link="libxml2-SAX.html#setNamespace"/>
+ <function name="startDocument ()" link="libxml2-SAX.html#startDocument"/>
+ <function name="startElement ()" link="libxml2-SAX.html#startElement"/>
+ <function name="unparsedEntityDecl ()" link="libxml2-SAX.html#unparsedEntityDecl"/>
+ <function name="valuePop ()" link="libxml2-xpathInternals.html#valuePop"/>
+ <function name="valuePush ()" link="libxml2-xpathInternals.html#valuePush"/>
+ <function name="xlinkGetDefaultDetect ()" link="libxml2-xlink.html#xlinkGetDefaultDetect"/>
+ <function name="xlinkGetDefaultHandler ()" link="libxml2-xlink.html#xlinkGetDefaultHandler"/>
+ <function name="xlinkIsLink ()" link="libxml2-xlink.html#xlinkIsLink"/>
+ <function name="xlinkSetDefaultDetect ()" link="libxml2-xlink.html#xlinkSetDefaultDetect"/>
+ <function name="xlinkSetDefaultHandler ()" link="libxml2-xlink.html#xlinkSetDefaultHandler"/>
+ <function name="xmlACatalogAdd ()" link="libxml2-catalog.html#xmlACatalogAdd"/>
+ <function name="xmlACatalogDump ()" link="libxml2-catalog.html#xmlACatalogDump"/>
+ <function name="xmlACatalogRemove ()" link="libxml2-catalog.html#xmlACatalogRemove"/>
+ <function name="xmlACatalogResolve ()" link="libxml2-catalog.html#xmlACatalogResolve"/>
+ <function name="xmlACatalogResolvePublic ()" link="libxml2-catalog.html#xmlACatalogResolvePublic"/>
+ <function name="xmlACatalogResolveSystem ()" link="libxml2-catalog.html#xmlACatalogResolveSystem"/>
+ <function name="xmlACatalogResolveURI ()" link="libxml2-catalog.html#xmlACatalogResolveURI"/>
+ <function name="xmlAddAttributeDecl ()" link="libxml2-valid.html#xmlAddAttributeDecl"/>
+ <function name="xmlAddChild ()" link="libxml2-tree.html#xmlAddChild"/>
+ <function name="xmlAddChildList ()" link="libxml2-tree.html#xmlAddChildList"/>
+ <function name="xmlAddDocEntity ()" link="libxml2-entities.html#xmlAddDocEntity"/>
+ <function name="xmlAddDtdEntity ()" link="libxml2-entities.html#xmlAddDtdEntity"/>
+ <function name="xmlAddElementDecl ()" link="libxml2-valid.html#xmlAddElementDecl"/>
+ <function name="xmlAddEncodingAlias ()" link="libxml2-encoding.html#xmlAddEncodingAlias"/>
+ <function name="xmlAddID ()" link="libxml2-valid.html#xmlAddID"/>
+ <function name="xmlAddNextSibling ()" link="libxml2-tree.html#xmlAddNextSibling"/>
+ <function name="xmlAddNotationDecl ()" link="libxml2-valid.html#xmlAddNotationDecl"/>
+ <function name="xmlAddPrevSibling ()" link="libxml2-tree.html#xmlAddPrevSibling"/>
+ <function name="xmlAddRef ()" link="libxml2-valid.html#xmlAddRef"/>
+ <function name="xmlAddSibling ()" link="libxml2-tree.html#xmlAddSibling"/>
+ <function name="xmlAllocOutputBuffer ()" link="libxml2-xmlIO.html#xmlAllocOutputBuffer"/>
+ <function name="xmlAllocParserInputBuffer ()" link="libxml2-xmlIO.html#xmlAllocParserInputBuffer"/>
+ <function name="xmlAttrSerializeTxtContent ()" link="libxml2-tree.html#xmlAttrSerializeTxtContent"/>
+ <function name="xmlAutomataCompile ()" link="libxml2-xmlautomata.html#xmlAutomataCompile"/>
+ <function name="xmlAutomataGetInitState ()" link="libxml2-xmlautomata.html#xmlAutomataGetInitState"/>
+ <function name="xmlAutomataIsDeterminist ()" link="libxml2-xmlautomata.html#xmlAutomataIsDeterminist"/>
+ <function name="xmlAutomataNewAllTrans ()" link="libxml2-xmlautomata.html#xmlAutomataNewAllTrans"/>
+ <function name="xmlAutomataNewCountTrans ()" link="libxml2-xmlautomata.html#xmlAutomataNewCountTrans"/>
+ <function name="xmlAutomataNewCountTrans2 ()" link="libxml2-xmlautomata.html#xmlAutomataNewCountTrans2"/>
+ <function name="xmlAutomataNewCountedTrans ()" link="libxml2-xmlautomata.html#xmlAutomataNewCountedTrans"/>
+ <function name="xmlAutomataNewCounter ()" link="libxml2-xmlautomata.html#xmlAutomataNewCounter"/>
+ <function name="xmlAutomataNewCounterTrans ()" link="libxml2-xmlautomata.html#xmlAutomataNewCounterTrans"/>
+ <function name="xmlAutomataNewEpsilon ()" link="libxml2-xmlautomata.html#xmlAutomataNewEpsilon"/>
+ <function name="xmlAutomataNewNegTrans ()" link="libxml2-xmlautomata.html#xmlAutomataNewNegTrans"/>
+ <function name="xmlAutomataNewOnceTrans ()" link="libxml2-xmlautomata.html#xmlAutomataNewOnceTrans"/>
+ <function name="xmlAutomataNewOnceTrans2 ()" link="libxml2-xmlautomata.html#xmlAutomataNewOnceTrans2"/>
+ <function name="xmlAutomataNewState ()" link="libxml2-xmlautomata.html#xmlAutomataNewState"/>
+ <function name="xmlAutomataNewTransition ()" link="libxml2-xmlautomata.html#xmlAutomataNewTransition"/>
+ <function name="xmlAutomataNewTransition2 ()" link="libxml2-xmlautomata.html#xmlAutomataNewTransition2"/>
+ <function name="xmlAutomataSetFinalState ()" link="libxml2-xmlautomata.html#xmlAutomataSetFinalState"/>
+ <function name="xmlBoolToText ()" link="libxml2-debugXML.html#xmlBoolToText"/>
+ <function name="xmlBufContent ()" link="libxml2-tree.html#xmlBufContent"/>
+ <function name="xmlBufEnd ()" link="libxml2-tree.html#xmlBufEnd"/>
+ <function name="xmlBufGetNodeContent ()" link="libxml2-tree.html#xmlBufGetNodeContent"/>
+ <function name="xmlBufNodeDump ()" link="libxml2-tree.html#xmlBufNodeDump"/>
+ <function name="xmlBufShrink ()" link="libxml2-tree.html#xmlBufShrink"/>
+ <function name="xmlBufUse ()" link="libxml2-tree.html#xmlBufUse"/>
+ <function name="xmlBufferAdd ()" link="libxml2-tree.html#xmlBufferAdd"/>
+ <function name="xmlBufferAddHead ()" link="libxml2-tree.html#xmlBufferAddHead"/>
+ <function name="xmlBufferCCat ()" link="libxml2-tree.html#xmlBufferCCat"/>
+ <function name="xmlBufferCat ()" link="libxml2-tree.html#xmlBufferCat"/>
+ <function name="xmlBufferContent ()" link="libxml2-tree.html#xmlBufferContent"/>
+ <function name="xmlBufferCreate ()" link="libxml2-tree.html#xmlBufferCreate"/>
+ <function name="xmlBufferCreateSize ()" link="libxml2-tree.html#xmlBufferCreateSize"/>
+ <function name="xmlBufferCreateStatic ()" link="libxml2-tree.html#xmlBufferCreateStatic"/>
+ <function name="xmlBufferDetach ()" link="libxml2-tree.html#xmlBufferDetach"/>
+ <function name="xmlBufferDump ()" link="libxml2-tree.html#xmlBufferDump"/>
+ <function name="xmlBufferEmpty ()" link="libxml2-tree.html#xmlBufferEmpty"/>
+ <function name="xmlBufferFree ()" link="libxml2-tree.html#xmlBufferFree"/>
+ <function name="xmlBufferGrow ()" link="libxml2-tree.html#xmlBufferGrow"/>
+ <function name="xmlBufferLength ()" link="libxml2-tree.html#xmlBufferLength"/>
+ <function name="xmlBufferResize ()" link="libxml2-tree.html#xmlBufferResize"/>
+ <function name="xmlBufferSetAllocationScheme ()" link="libxml2-tree.html#xmlBufferSetAllocationScheme"/>
+ <function name="xmlBufferShrink ()" link="libxml2-tree.html#xmlBufferShrink"/>
+ <function name="xmlBufferWriteCHAR ()" link="libxml2-tree.html#xmlBufferWriteCHAR"/>
+ <function name="xmlBufferWriteChar ()" link="libxml2-tree.html#xmlBufferWriteChar"/>
+ <function name="xmlBufferWriteQuotedString ()" link="libxml2-tree.html#xmlBufferWriteQuotedString"/>
+ <function name="xmlBuildQName ()" link="libxml2-tree.html#xmlBuildQName"/>
+ <function name="xmlBuildRelativeURI ()" link="libxml2-uri.html#xmlBuildRelativeURI"/>
+ <function name="xmlBuildURI ()" link="libxml2-uri.html#xmlBuildURI"/>
+ <function name="xmlByteConsumed ()" link="libxml2-parser.html#xmlByteConsumed"/>
+ <function name="xmlC14NDocDumpMemory ()" link="libxml2-c14n.html#xmlC14NDocDumpMemory"/>
+ <function name="xmlC14NDocSave ()" link="libxml2-c14n.html#xmlC14NDocSave"/>
+ <function name="xmlC14NDocSaveTo ()" link="libxml2-c14n.html#xmlC14NDocSaveTo"/>
+ <function name="xmlC14NExecute ()" link="libxml2-c14n.html#xmlC14NExecute"/>
+ <function name="xmlCanonicPath ()" link="libxml2-uri.html#xmlCanonicPath"/>
+ <function name="xmlCatalogAdd ()" link="libxml2-catalog.html#xmlCatalogAdd"/>
+ <function name="xmlCatalogAddLocal ()" link="libxml2-catalog.html#xmlCatalogAddLocal"/>
+ <function name="xmlCatalogCleanup ()" link="libxml2-catalog.html#xmlCatalogCleanup"/>
+ <function name="xmlCatalogConvert ()" link="libxml2-catalog.html#xmlCatalogConvert"/>
+ <function name="xmlCatalogDump ()" link="libxml2-catalog.html#xmlCatalogDump"/>
+ <function name="xmlCatalogFreeLocal ()" link="libxml2-catalog.html#xmlCatalogFreeLocal"/>
+ <function name="xmlCatalogGetDefaults ()" link="libxml2-catalog.html#xmlCatalogGetDefaults"/>
+ <function name="xmlCatalogGetPublic ()" link="libxml2-catalog.html#xmlCatalogGetPublic"/>
+ <function name="xmlCatalogGetSystem ()" link="libxml2-catalog.html#xmlCatalogGetSystem"/>
+ <function name="xmlCatalogIsEmpty ()" link="libxml2-catalog.html#xmlCatalogIsEmpty"/>
+ <function name="xmlCatalogLocalResolve ()" link="libxml2-catalog.html#xmlCatalogLocalResolve"/>
+ <function name="xmlCatalogLocalResolveURI ()" link="libxml2-catalog.html#xmlCatalogLocalResolveURI"/>
+ <function name="xmlCatalogRemove ()" link="libxml2-catalog.html#xmlCatalogRemove"/>
+ <function name="xmlCatalogResolve ()" link="libxml2-catalog.html#xmlCatalogResolve"/>
+ <function name="xmlCatalogResolvePublic ()" link="libxml2-catalog.html#xmlCatalogResolvePublic"/>
+ <function name="xmlCatalogResolveSystem ()" link="libxml2-catalog.html#xmlCatalogResolveSystem"/>
+ <function name="xmlCatalogResolveURI ()" link="libxml2-catalog.html#xmlCatalogResolveURI"/>
+ <function name="xmlCatalogSetDebug ()" link="libxml2-catalog.html#xmlCatalogSetDebug"/>
+ <function name="xmlCatalogSetDefaultPrefer ()" link="libxml2-catalog.html#xmlCatalogSetDefaultPrefer"/>
+ <function name="xmlCatalogSetDefaults ()" link="libxml2-catalog.html#xmlCatalogSetDefaults"/>
+ <function name="xmlCharEncCloseFunc ()" link="libxml2-encoding.html#xmlCharEncCloseFunc"/>
+ <function name="xmlCharEncFirstLine ()" link="libxml2-encoding.html#xmlCharEncFirstLine"/>
+ <function name="xmlCharEncInFunc ()" link="libxml2-encoding.html#xmlCharEncInFunc"/>
+ <function name="xmlCharEncOutFunc ()" link="libxml2-encoding.html#xmlCharEncOutFunc"/>
+ <function name="xmlCharInRange ()" link="libxml2-chvalid.html#xmlCharInRange"/>
+ <function name="xmlCharStrdup ()" link="libxml2-xmlstring.html#xmlCharStrdup"/>
+ <function name="xmlCharStrndup ()" link="libxml2-xmlstring.html#xmlCharStrndup"/>
+ <function name="xmlCheckFilename ()" link="libxml2-xmlIO.html#xmlCheckFilename"/>
+ <function name="xmlCheckHTTPInput ()" link="libxml2-xmlIO.html#xmlCheckHTTPInput"/>
+ <function name="xmlCheckLanguageID ()" link="libxml2-parserInternals.html#xmlCheckLanguageID"/>
+ <function name="xmlCheckUTF8 ()" link="libxml2-xmlstring.html#xmlCheckUTF8"/>
+ <function name="xmlCheckVersion ()" link="libxml2-xmlversion.html#xmlCheckVersion"/>
+ <function name="xmlChildElementCount ()" link="libxml2-tree.html#xmlChildElementCount"/>
+ <function name="xmlCleanupCharEncodingHandlers ()" link="libxml2-encoding.html#xmlCleanupCharEncodingHandlers"/>
+ <function name="xmlCleanupEncodingAliases ()" link="libxml2-encoding.html#xmlCleanupEncodingAliases"/>
+ <function name="xmlCleanupGlobals ()" link="libxml2-globals.html#xmlCleanupGlobals"/>
+ <function name="xmlCleanupInputCallbacks ()" link="libxml2-xmlIO.html#xmlCleanupInputCallbacks"/>
+ <function name="xmlCleanupMemory ()" link="libxml2-xmlmemory.html#xmlCleanupMemory"/>
+ <function name="xmlCleanupOutputCallbacks ()" link="libxml2-xmlIO.html#xmlCleanupOutputCallbacks"/>
+ <function name="xmlCleanupParser ()" link="libxml2-parser.html#xmlCleanupParser"/>
+ <function name="xmlCleanupPredefinedEntities ()" link="libxml2-entities.html#xmlCleanupPredefinedEntities"/>
+ <function name="xmlCleanupThreads ()" link="libxml2-threads.html#xmlCleanupThreads"/>
+ <function name="xmlClearNodeInfoSeq ()" link="libxml2-parser.html#xmlClearNodeInfoSeq"/>
+ <function name="xmlClearParserCtxt ()" link="libxml2-parser.html#xmlClearParserCtxt"/>
+ <function name="xmlConvertSGMLCatalog ()" link="libxml2-catalog.html#xmlConvertSGMLCatalog"/>
+ <function name="xmlCopyAttributeTable ()" link="libxml2-valid.html#xmlCopyAttributeTable"/>
+ <function name="xmlCopyChar ()" link="libxml2-parserInternals.html#xmlCopyChar"/>
+ <function name="xmlCopyCharMultiByte ()" link="libxml2-parserInternals.html#xmlCopyCharMultiByte"/>
+ <function name="xmlCopyDoc ()" link="libxml2-tree.html#xmlCopyDoc"/>
+ <function name="xmlCopyDocElementContent ()" link="libxml2-valid.html#xmlCopyDocElementContent"/>
+ <function name="xmlCopyDtd ()" link="libxml2-tree.html#xmlCopyDtd"/>
+ <function name="xmlCopyElementContent ()" link="libxml2-valid.html#xmlCopyElementContent"/>
+ <function name="xmlCopyElementTable ()" link="libxml2-valid.html#xmlCopyElementTable"/>
+ <function name="xmlCopyEntitiesTable ()" link="libxml2-entities.html#xmlCopyEntitiesTable"/>
+ <function name="xmlCopyEnumeration ()" link="libxml2-valid.html#xmlCopyEnumeration"/>
+ <function name="xmlCopyError ()" link="libxml2-xmlerror.html#xmlCopyError"/>
+ <function name="xmlCopyNamespace ()" link="libxml2-tree.html#xmlCopyNamespace"/>
+ <function name="xmlCopyNamespaceList ()" link="libxml2-tree.html#xmlCopyNamespaceList"/>
+ <function name="xmlCopyNode ()" link="libxml2-tree.html#xmlCopyNode"/>
+ <function name="xmlCopyNodeList ()" link="libxml2-tree.html#xmlCopyNodeList"/>
+ <function name="xmlCopyNotationTable ()" link="libxml2-valid.html#xmlCopyNotationTable"/>
+ <function name="xmlCopyProp ()" link="libxml2-tree.html#xmlCopyProp"/>
+ <function name="xmlCopyPropList ()" link="libxml2-tree.html#xmlCopyPropList"/>
+ <function name="xmlCreateDocParserCtxt ()" link="libxml2-parser.html#xmlCreateDocParserCtxt"/>
+ <function name="xmlCreateEntitiesTable ()" link="libxml2-entities.html#xmlCreateEntitiesTable"/>
+ <function name="xmlCreateEntityParserCtxt ()" link="libxml2-parserInternals.html#xmlCreateEntityParserCtxt"/>
+ <function name="xmlCreateEnumeration ()" link="libxml2-valid.html#xmlCreateEnumeration"/>
+ <function name="xmlCreateFileParserCtxt ()" link="libxml2-parserInternals.html#xmlCreateFileParserCtxt"/>
+ <function name="xmlCreateIOParserCtxt ()" link="libxml2-parser.html#xmlCreateIOParserCtxt"/>
+ <function name="xmlCreateIntSubset ()" link="libxml2-tree.html#xmlCreateIntSubset"/>
+ <function name="xmlCreateMemoryParserCtxt ()" link="libxml2-parserInternals.html#xmlCreateMemoryParserCtxt"/>
+ <function name="xmlCreatePushParserCtxt ()" link="libxml2-parser.html#xmlCreatePushParserCtxt"/>
+ <function name="xmlCreateURI ()" link="libxml2-uri.html#xmlCreateURI"/>
+ <function name="xmlCreateURLParserCtxt ()" link="libxml2-parserInternals.html#xmlCreateURLParserCtxt"/>
+ <function name="xmlCtxtGetLastError ()" link="libxml2-xmlerror.html#xmlCtxtGetLastError"/>
+ <function name="xmlCtxtReadDoc ()" link="libxml2-parser.html#xmlCtxtReadDoc"/>
+ <function name="xmlCtxtReadFd ()" link="libxml2-parser.html#xmlCtxtReadFd"/>
+ <function name="xmlCtxtReadFile ()" link="libxml2-parser.html#xmlCtxtReadFile"/>
+ <function name="xmlCtxtReadIO ()" link="libxml2-parser.html#xmlCtxtReadIO"/>
+ <function name="xmlCtxtReadMemory ()" link="libxml2-parser.html#xmlCtxtReadMemory"/>
+ <function name="xmlCtxtReset ()" link="libxml2-parser.html#xmlCtxtReset"/>
+ <function name="xmlCtxtResetLastError ()" link="libxml2-xmlerror.html#xmlCtxtResetLastError"/>
+ <function name="xmlCtxtResetPush ()" link="libxml2-parser.html#xmlCtxtResetPush"/>
+ <function name="xmlCtxtUseOptions ()" link="libxml2-parser.html#xmlCtxtUseOptions"/>
+ <function name="xmlCurrentChar ()" link="libxml2-parserInternals.html#xmlCurrentChar"/>
+ <function name="xmlDOMWrapAdoptNode ()" link="libxml2-tree.html#xmlDOMWrapAdoptNode"/>
+ <function name="xmlDOMWrapCloneNode ()" link="libxml2-tree.html#xmlDOMWrapCloneNode"/>
+ <function name="xmlDOMWrapFreeCtxt ()" link="libxml2-tree.html#xmlDOMWrapFreeCtxt"/>
+ <function name="xmlDOMWrapNewCtxt ()" link="libxml2-tree.html#xmlDOMWrapNewCtxt"/>
+ <function name="xmlDOMWrapReconcileNamespaces ()" link="libxml2-tree.html#xmlDOMWrapReconcileNamespaces"/>
+ <function name="xmlDOMWrapRemoveNode ()" link="libxml2-tree.html#xmlDOMWrapRemoveNode"/>
+ <function name="xmlDebugCheckDocument ()" link="libxml2-debugXML.html#xmlDebugCheckDocument"/>
+ <function name="xmlDebugDumpAttr ()" link="libxml2-debugXML.html#xmlDebugDumpAttr"/>
+ <function name="xmlDebugDumpAttrList ()" link="libxml2-debugXML.html#xmlDebugDumpAttrList"/>
+ <function name="xmlDebugDumpDTD ()" link="libxml2-debugXML.html#xmlDebugDumpDTD"/>
+ <function name="xmlDebugDumpDocument ()" link="libxml2-debugXML.html#xmlDebugDumpDocument"/>
+ <function name="xmlDebugDumpDocumentHead ()" link="libxml2-debugXML.html#xmlDebugDumpDocumentHead"/>
+ <function name="xmlDebugDumpEntities ()" link="libxml2-debugXML.html#xmlDebugDumpEntities"/>
+ <function name="xmlDebugDumpNode ()" link="libxml2-debugXML.html#xmlDebugDumpNode"/>
+ <function name="xmlDebugDumpNodeList ()" link="libxml2-debugXML.html#xmlDebugDumpNodeList"/>
+ <function name="xmlDebugDumpOneNode ()" link="libxml2-debugXML.html#xmlDebugDumpOneNode"/>
+ <function name="xmlDebugDumpString ()" link="libxml2-debugXML.html#xmlDebugDumpString"/>
+ <function name="xmlDecodeEntities ()" link="libxml2-parserInternals.html#xmlDecodeEntities"/>
+ <function name="xmlDefaultSAXHandlerInit ()" link="libxml2-SAX2.html#xmlDefaultSAXHandlerInit"/>
+ <function name="xmlDelEncodingAlias ()" link="libxml2-encoding.html#xmlDelEncodingAlias"/>
+ <function name="xmlDeregisterNodeDefault ()" link="libxml2-globals.html#xmlDeregisterNodeDefault"/>
+ <function name="xmlDetectCharEncoding ()" link="libxml2-encoding.html#xmlDetectCharEncoding"/>
+ <function name="xmlDictCleanup ()" link="libxml2-dict.html#xmlDictCleanup"/>
+ <function name="xmlDictCreate ()" link="libxml2-dict.html#xmlDictCreate"/>
+ <function name="xmlDictCreateSub ()" link="libxml2-dict.html#xmlDictCreateSub"/>
+ <function name="xmlDictExists ()" link="libxml2-dict.html#xmlDictExists"/>
+ <function name="xmlDictFree ()" link="libxml2-dict.html#xmlDictFree"/>
+ <function name="xmlDictGetUsage ()" link="libxml2-dict.html#xmlDictGetUsage"/>
+ <function name="xmlDictLookup ()" link="libxml2-dict.html#xmlDictLookup"/>
+ <function name="xmlDictOwns ()" link="libxml2-dict.html#xmlDictOwns"/>
+ <function name="xmlDictQLookup ()" link="libxml2-dict.html#xmlDictQLookup"/>
+ <function name="xmlDictReference ()" link="libxml2-dict.html#xmlDictReference"/>
+ <function name="xmlDictSetLimit ()" link="libxml2-dict.html#xmlDictSetLimit"/>
+ <function name="xmlDictSize ()" link="libxml2-dict.html#xmlDictSize"/>
+ <function name="xmlDllMain ()" link="libxml2-threads.html#xmlDllMain"/>
+ <function name="xmlDocCopyNode ()" link="libxml2-tree.html#xmlDocCopyNode"/>
+ <function name="xmlDocCopyNodeList ()" link="libxml2-tree.html#xmlDocCopyNodeList"/>
+ <function name="xmlDocDump ()" link="libxml2-tree.html#xmlDocDump"/>
+ <function name="xmlDocDumpFormatMemory ()" link="libxml2-tree.html#xmlDocDumpFormatMemory"/>
+ <function name="xmlDocDumpFormatMemoryEnc ()" link="libxml2-tree.html#xmlDocDumpFormatMemoryEnc"/>
+ <function name="xmlDocDumpMemory ()" link="libxml2-tree.html#xmlDocDumpMemory"/>
+ <function name="xmlDocDumpMemoryEnc ()" link="libxml2-tree.html#xmlDocDumpMemoryEnc"/>
+ <function name="xmlDocFormatDump ()" link="libxml2-tree.html#xmlDocFormatDump"/>
+ <function name="xmlDocGetRootElement ()" link="libxml2-tree.html#xmlDocGetRootElement"/>
+ <function name="xmlDocSetRootElement ()" link="libxml2-tree.html#xmlDocSetRootElement"/>
+ <function name="xmlDumpAttributeDecl ()" link="libxml2-valid.html#xmlDumpAttributeDecl"/>
+ <function name="xmlDumpAttributeTable ()" link="libxml2-valid.html#xmlDumpAttributeTable"/>
+ <function name="xmlDumpElementDecl ()" link="libxml2-valid.html#xmlDumpElementDecl"/>
+ <function name="xmlDumpElementTable ()" link="libxml2-valid.html#xmlDumpElementTable"/>
+ <function name="xmlDumpEntitiesTable ()" link="libxml2-entities.html#xmlDumpEntitiesTable"/>
+ <function name="xmlDumpEntityDecl ()" link="libxml2-entities.html#xmlDumpEntityDecl"/>
+ <function name="xmlDumpNotationDecl ()" link="libxml2-valid.html#xmlDumpNotationDecl"/>
+ <function name="xmlDumpNotationTable ()" link="libxml2-valid.html#xmlDumpNotationTable"/>
+ <function name="xmlElemDump ()" link="libxml2-tree.html#xmlElemDump"/>
+ <function name="xmlEncodeEntities ()" link="libxml2-entities.html#xmlEncodeEntities"/>
+ <function name="xmlEncodeEntitiesReentrant ()" link="libxml2-entities.html#xmlEncodeEntitiesReentrant"/>
+ <function name="xmlEncodeSpecialChars ()" link="libxml2-entities.html#xmlEncodeSpecialChars"/>
+ <function name="xmlErrMemory ()" link="libxml2-parserInternals.html#xmlErrMemory"/>
+ <function name="xmlExpCtxtNbCons ()" link="libxml2-xmlregexp.html#xmlExpCtxtNbCons"/>
+ <function name="xmlExpCtxtNbNodes ()" link="libxml2-xmlregexp.html#xmlExpCtxtNbNodes"/>
+ <function name="xmlExpDump ()" link="libxml2-xmlregexp.html#xmlExpDump"/>
+ <function name="xmlExpExpDerive ()" link="libxml2-xmlregexp.html#xmlExpExpDerive"/>
+ <function name="xmlExpFree ()" link="libxml2-xmlregexp.html#xmlExpFree"/>
+ <function name="xmlExpFreeCtxt ()" link="libxml2-xmlregexp.html#xmlExpFreeCtxt"/>
+ <function name="xmlExpGetLanguage ()" link="libxml2-xmlregexp.html#xmlExpGetLanguage"/>
+ <function name="xmlExpGetStart ()" link="libxml2-xmlregexp.html#xmlExpGetStart"/>
+ <function name="xmlExpIsNillable ()" link="libxml2-xmlregexp.html#xmlExpIsNillable"/>
+ <function name="xmlExpMaxToken ()" link="libxml2-xmlregexp.html#xmlExpMaxToken"/>
+ <function name="xmlExpNewAtom ()" link="libxml2-xmlregexp.html#xmlExpNewAtom"/>
+ <function name="xmlExpNewCtxt ()" link="libxml2-xmlregexp.html#xmlExpNewCtxt"/>
+ <function name="xmlExpNewOr ()" link="libxml2-xmlregexp.html#xmlExpNewOr"/>
+ <function name="xmlExpNewRange ()" link="libxml2-xmlregexp.html#xmlExpNewRange"/>
+ <function name="xmlExpNewSeq ()" link="libxml2-xmlregexp.html#xmlExpNewSeq"/>
+ <function name="xmlExpParse ()" link="libxml2-xmlregexp.html#xmlExpParse"/>
+ <function name="xmlExpRef ()" link="libxml2-xmlregexp.html#xmlExpRef"/>
+ <function name="xmlExpStringDerive ()" link="libxml2-xmlregexp.html#xmlExpStringDerive"/>
+ <function name="xmlExpSubsume ()" link="libxml2-xmlregexp.html#xmlExpSubsume"/>
+ <function name="xmlFileClose ()" link="libxml2-xmlIO.html#xmlFileClose"/>
+ <function name="xmlFileMatch ()" link="libxml2-xmlIO.html#xmlFileMatch"/>
+ <function name="xmlFileOpen ()" link="libxml2-xmlIO.html#xmlFileOpen"/>
+ <function name="xmlFileRead ()" link="libxml2-xmlIO.html#xmlFileRead"/>
+ <function name="xmlFindCharEncodingHandler ()" link="libxml2-encoding.html#xmlFindCharEncodingHandler"/>
+ <function name="xmlFirstElementChild ()" link="libxml2-tree.html#xmlFirstElementChild"/>
+ <function name="xmlFreeAttributeTable ()" link="libxml2-valid.html#xmlFreeAttributeTable"/>
+ <function name="xmlFreeAutomata ()" link="libxml2-xmlautomata.html#xmlFreeAutomata"/>
+ <function name="xmlFreeCatalog ()" link="libxml2-catalog.html#xmlFreeCatalog"/>
+ <function name="xmlFreeDoc ()" link="libxml2-tree.html#xmlFreeDoc"/>
+ <function name="xmlFreeDocElementContent ()" link="libxml2-valid.html#xmlFreeDocElementContent"/>
+ <function name="xmlFreeDtd ()" link="libxml2-tree.html#xmlFreeDtd"/>
+ <function name="xmlFreeElementContent ()" link="libxml2-valid.html#xmlFreeElementContent"/>
+ <function name="xmlFreeElementTable ()" link="libxml2-valid.html#xmlFreeElementTable"/>
+ <function name="xmlFreeEntitiesTable ()" link="libxml2-entities.html#xmlFreeEntitiesTable"/>
+ <function name="xmlFreeEnumeration ()" link="libxml2-valid.html#xmlFreeEnumeration"/>
+ <function name="xmlFreeIDTable ()" link="libxml2-valid.html#xmlFreeIDTable"/>
+ <function name="xmlFreeInputStream ()" link="libxml2-parserInternals.html#xmlFreeInputStream"/>
+ <function name="xmlFreeMutex ()" link="libxml2-threads.html#xmlFreeMutex"/>
+ <function name="xmlFreeNode ()" link="libxml2-tree.html#xmlFreeNode"/>
+ <function name="xmlFreeNodeList ()" link="libxml2-tree.html#xmlFreeNodeList"/>
+ <function name="xmlFreeNotationTable ()" link="libxml2-valid.html#xmlFreeNotationTable"/>
+ <function name="xmlFreeNs ()" link="libxml2-tree.html#xmlFreeNs"/>
+ <function name="xmlFreeNsList ()" link="libxml2-tree.html#xmlFreeNsList"/>
+ <function name="xmlFreeParserCtxt ()" link="libxml2-parser.html#xmlFreeParserCtxt"/>
+ <function name="xmlFreeParserInputBuffer ()" link="libxml2-xmlIO.html#xmlFreeParserInputBuffer"/>
+ <function name="xmlFreePattern ()" link="libxml2-pattern.html#xmlFreePattern"/>
+ <function name="xmlFreePatternList ()" link="libxml2-pattern.html#xmlFreePatternList"/>
+ <function name="xmlFreeProp ()" link="libxml2-tree.html#xmlFreeProp"/>
+ <function name="xmlFreePropList ()" link="libxml2-tree.html#xmlFreePropList"/>
+ <function name="xmlFreeRMutex ()" link="libxml2-threads.html#xmlFreeRMutex"/>
+ <function name="xmlFreeRefTable ()" link="libxml2-valid.html#xmlFreeRefTable"/>
+ <function name="xmlFreeStreamCtxt ()" link="libxml2-pattern.html#xmlFreeStreamCtxt"/>
+ <function name="xmlFreeTextReader ()" link="libxml2-xmlreader.html#xmlFreeTextReader"/>
+ <function name="xmlFreeTextWriter ()" link="libxml2-xmlwriter.html#xmlFreeTextWriter"/>
+ <function name="xmlFreeURI ()" link="libxml2-uri.html#xmlFreeURI"/>
+ <function name="xmlFreeValidCtxt ()" link="libxml2-valid.html#xmlFreeValidCtxt"/>
+ <function name="xmlGcMemGet ()" link="libxml2-xmlmemory.html#xmlGcMemGet"/>
+ <function name="xmlGcMemSetup ()" link="libxml2-xmlmemory.html#xmlGcMemSetup"/>
+ <function name="xmlGetBufferAllocationScheme ()" link="libxml2-tree.html#xmlGetBufferAllocationScheme"/>
+ <function name="xmlGetCharEncodingHandler ()" link="libxml2-encoding.html#xmlGetCharEncodingHandler"/>
+ <function name="xmlGetCharEncodingName ()" link="libxml2-encoding.html#xmlGetCharEncodingName"/>
+ <function name="xmlGetCompressMode ()" link="libxml2-tree.html#xmlGetCompressMode"/>
+ <function name="xmlGetDocCompressMode ()" link="libxml2-tree.html#xmlGetDocCompressMode"/>
+ <function name="xmlGetDocEntity ()" link="libxml2-entities.html#xmlGetDocEntity"/>
+ <function name="xmlGetDtdAttrDesc ()" link="libxml2-valid.html#xmlGetDtdAttrDesc"/>
+ <function name="xmlGetDtdElementDesc ()" link="libxml2-valid.html#xmlGetDtdElementDesc"/>
+ <function name="xmlGetDtdEntity ()" link="libxml2-entities.html#xmlGetDtdEntity"/>
+ <function name="xmlGetDtdNotationDesc ()" link="libxml2-valid.html#xmlGetDtdNotationDesc"/>
+ <function name="xmlGetDtdQAttrDesc ()" link="libxml2-valid.html#xmlGetDtdQAttrDesc"/>
+ <function name="xmlGetDtdQElementDesc ()" link="libxml2-valid.html#xmlGetDtdQElementDesc"/>
+ <function name="xmlGetEncodingAlias ()" link="libxml2-encoding.html#xmlGetEncodingAlias"/>
+ <function name="xmlGetExternalEntityLoader ()" link="libxml2-parser.html#xmlGetExternalEntityLoader"/>
+ <function name="xmlGetFeature ()" link="libxml2-parser.html#xmlGetFeature"/>
+ <function name="xmlGetFeaturesList ()" link="libxml2-parser.html#xmlGetFeaturesList"/>
+ <function name="xmlGetGlobalState ()" link="libxml2-threads.html#xmlGetGlobalState"/>
+ <function name="xmlGetID ()" link="libxml2-valid.html#xmlGetID"/>
+ <function name="xmlGetIntSubset ()" link="libxml2-tree.html#xmlGetIntSubset"/>
+ <function name="xmlGetLastChild ()" link="libxml2-tree.html#xmlGetLastChild"/>
+ <function name="xmlGetLastError ()" link="libxml2-xmlerror.html#xmlGetLastError"/>
+ <function name="xmlGetLineNo ()" link="libxml2-tree.html#xmlGetLineNo"/>
+ <function name="xmlGetNoNsProp ()" link="libxml2-tree.html#xmlGetNoNsProp"/>
+ <function name="xmlGetNodePath ()" link="libxml2-tree.html#xmlGetNodePath"/>
+ <function name="xmlGetNsList ()" link="libxml2-tree.html#xmlGetNsList"/>
+ <function name="xmlGetNsProp ()" link="libxml2-tree.html#xmlGetNsProp"/>
+ <function name="xmlGetParameterEntity ()" link="libxml2-entities.html#xmlGetParameterEntity"/>
+ <function name="xmlGetPredefinedEntity ()" link="libxml2-entities.html#xmlGetPredefinedEntity"/>
+ <function name="xmlGetProp ()" link="libxml2-tree.html#xmlGetProp"/>
+ <function name="xmlGetRefs ()" link="libxml2-valid.html#xmlGetRefs"/>
+ <function name="xmlGetThreadId ()" link="libxml2-threads.html#xmlGetThreadId"/>
+ <function name="xmlGetUTF8Char ()" link="libxml2-xmlstring.html#xmlGetUTF8Char"/>
+ <function name="xmlHandleEntity ()" link="libxml2-parserInternals.html#xmlHandleEntity"/>
+ <function name="xmlHasFeature ()" link="libxml2-parser.html#xmlHasFeature"/>
+ <function name="xmlHasNsProp ()" link="libxml2-tree.html#xmlHasNsProp"/>
+ <function name="xmlHasProp ()" link="libxml2-tree.html#xmlHasProp"/>
+ <function name="xmlHashAddEntry ()" link="libxml2-hash.html#xmlHashAddEntry"/>
+ <function name="xmlHashAddEntry2 ()" link="libxml2-hash.html#xmlHashAddEntry2"/>
+ <function name="xmlHashAddEntry3 ()" link="libxml2-hash.html#xmlHashAddEntry3"/>
+ <function name="xmlHashCopy ()" link="libxml2-hash.html#xmlHashCopy"/>
+ <function name="xmlHashCreate ()" link="libxml2-hash.html#xmlHashCreate"/>
+ <function name="xmlHashCreateDict ()" link="libxml2-hash.html#xmlHashCreateDict"/>
+ <function name="xmlHashDefaultDeallocator ()" link="libxml2-hash.html#xmlHashDefaultDeallocator"/>
+ <function name="xmlHashFree ()" link="libxml2-hash.html#xmlHashFree"/>
+ <function name="xmlHashLookup ()" link="libxml2-hash.html#xmlHashLookup"/>
+ <function name="xmlHashLookup2 ()" link="libxml2-hash.html#xmlHashLookup2"/>
+ <function name="xmlHashLookup3 ()" link="libxml2-hash.html#xmlHashLookup3"/>
+ <function name="xmlHashQLookup ()" link="libxml2-hash.html#xmlHashQLookup"/>
+ <function name="xmlHashQLookup2 ()" link="libxml2-hash.html#xmlHashQLookup2"/>
+ <function name="xmlHashQLookup3 ()" link="libxml2-hash.html#xmlHashQLookup3"/>
+ <function name="xmlHashRemoveEntry ()" link="libxml2-hash.html#xmlHashRemoveEntry"/>
+ <function name="xmlHashRemoveEntry2 ()" link="libxml2-hash.html#xmlHashRemoveEntry2"/>
+ <function name="xmlHashRemoveEntry3 ()" link="libxml2-hash.html#xmlHashRemoveEntry3"/>
+ <function name="xmlHashScan ()" link="libxml2-hash.html#xmlHashScan"/>
+ <function name="xmlHashScan3 ()" link="libxml2-hash.html#xmlHashScan3"/>
+ <function name="xmlHashScanFull ()" link="libxml2-hash.html#xmlHashScanFull"/>
+ <function name="xmlHashScanFull3 ()" link="libxml2-hash.html#xmlHashScanFull3"/>
+ <function name="xmlHashSize ()" link="libxml2-hash.html#xmlHashSize"/>
+ <function name="xmlHashUpdateEntry ()" link="libxml2-hash.html#xmlHashUpdateEntry"/>
+ <function name="xmlHashUpdateEntry2 ()" link="libxml2-hash.html#xmlHashUpdateEntry2"/>
+ <function name="xmlHashUpdateEntry3 ()" link="libxml2-hash.html#xmlHashUpdateEntry3"/>
+ <function name="xmlIOFTPClose ()" link="libxml2-xmlIO.html#xmlIOFTPClose"/>
+ <function name="xmlIOFTPMatch ()" link="libxml2-xmlIO.html#xmlIOFTPMatch"/>
+ <function name="xmlIOFTPOpen ()" link="libxml2-xmlIO.html#xmlIOFTPOpen"/>
+ <function name="xmlIOFTPRead ()" link="libxml2-xmlIO.html#xmlIOFTPRead"/>
+ <function name="xmlIOHTTPClose ()" link="libxml2-xmlIO.html#xmlIOHTTPClose"/>
+ <function name="xmlIOHTTPMatch ()" link="libxml2-xmlIO.html#xmlIOHTTPMatch"/>
+ <function name="xmlIOHTTPOpen ()" link="libxml2-xmlIO.html#xmlIOHTTPOpen"/>
+ <function name="xmlIOHTTPOpenW ()" link="libxml2-xmlIO.html#xmlIOHTTPOpenW"/>
+ <function name="xmlIOHTTPRead ()" link="libxml2-xmlIO.html#xmlIOHTTPRead"/>
+ <function name="xmlIOParseDTD ()" link="libxml2-parser.html#xmlIOParseDTD"/>
+ <function name="xmlInitCharEncodingHandlers ()" link="libxml2-encoding.html#xmlInitCharEncodingHandlers"/>
+ <function name="xmlInitGlobals ()" link="libxml2-globals.html#xmlInitGlobals"/>
+ <function name="xmlInitMemory ()" link="libxml2-xmlmemory.html#xmlInitMemory"/>
+ <function name="xmlInitNodeInfoSeq ()" link="libxml2-parser.html#xmlInitNodeInfoSeq"/>
+ <function name="xmlInitParser ()" link="libxml2-parser.html#xmlInitParser"/>
+ <function name="xmlInitParserCtxt ()" link="libxml2-parser.html#xmlInitParserCtxt"/>
+ <function name="xmlInitThreads ()" link="libxml2-threads.html#xmlInitThreads"/>
+ <function name="xmlInitializeCatalog ()" link="libxml2-catalog.html#xmlInitializeCatalog"/>
+ <function name="xmlInitializeDict ()" link="libxml2-dict.html#xmlInitializeDict"/>
+ <function name="xmlInitializeGlobalState ()" link="libxml2-globals.html#xmlInitializeGlobalState"/>
+ <function name="xmlInitializePredefinedEntities ()" link="libxml2-entities.html#xmlInitializePredefinedEntities"/>
+ <function name="xmlIsBaseChar ()" link="libxml2-chvalid.html#xmlIsBaseChar"/>
+ <function name="xmlIsBlank ()" link="libxml2-chvalid.html#xmlIsBlank"/>
+ <function name="xmlIsBlankNode ()" link="libxml2-tree.html#xmlIsBlankNode"/>
+ <function name="xmlIsChar ()" link="libxml2-chvalid.html#xmlIsChar"/>
+ <function name="xmlIsCombining ()" link="libxml2-chvalid.html#xmlIsCombining"/>
+ <function name="xmlIsDigit ()" link="libxml2-chvalid.html#xmlIsDigit"/>
+ <function name="xmlIsExtender ()" link="libxml2-chvalid.html#xmlIsExtender"/>
+ <function name="xmlIsID ()" link="libxml2-valid.html#xmlIsID"/>
+ <function name="xmlIsIdeographic ()" link="libxml2-chvalid.html#xmlIsIdeographic"/>
+ <function name="xmlIsLetter ()" link="libxml2-parserInternals.html#xmlIsLetter"/>
+ <function name="xmlIsMainThread ()" link="libxml2-threads.html#xmlIsMainThread"/>
+ <function name="xmlIsMixedElement ()" link="libxml2-valid.html#xmlIsMixedElement"/>
+ <function name="xmlIsPubidChar ()" link="libxml2-chvalid.html#xmlIsPubidChar"/>
+ <function name="xmlIsRef ()" link="libxml2-valid.html#xmlIsRef"/>
+ <function name="xmlIsXHTML ()" link="libxml2-tree.html#xmlIsXHTML"/>
+ <function name="xmlKeepBlanksDefault ()" link="libxml2-parser.html#xmlKeepBlanksDefault"/>
+ <function name="xmlLastElementChild ()" link="libxml2-tree.html#xmlLastElementChild"/>
+ <function name="xmlLineNumbersDefault ()" link="libxml2-parser.html#xmlLineNumbersDefault"/>
+ <function name="xmlLinkGetData ()" link="libxml2-list.html#xmlLinkGetData"/>
+ <function name="xmlListAppend ()" link="libxml2-list.html#xmlListAppend"/>
+ <function name="xmlListClear ()" link="libxml2-list.html#xmlListClear"/>
+ <function name="xmlListCopy ()" link="libxml2-list.html#xmlListCopy"/>
+ <function name="xmlListCreate ()" link="libxml2-list.html#xmlListCreate"/>
+ <function name="xmlListDelete ()" link="libxml2-list.html#xmlListDelete"/>
+ <function name="xmlListDup ()" link="libxml2-list.html#xmlListDup"/>
+ <function name="xmlListEmpty ()" link="libxml2-list.html#xmlListEmpty"/>
+ <function name="xmlListEnd ()" link="libxml2-list.html#xmlListEnd"/>
+ <function name="xmlListFront ()" link="libxml2-list.html#xmlListFront"/>
+ <function name="xmlListInsert ()" link="libxml2-list.html#xmlListInsert"/>
+ <function name="xmlListMerge ()" link="libxml2-list.html#xmlListMerge"/>
+ <function name="xmlListPopBack ()" link="libxml2-list.html#xmlListPopBack"/>
+ <function name="xmlListPopFront ()" link="libxml2-list.html#xmlListPopFront"/>
+ <function name="xmlListPushBack ()" link="libxml2-list.html#xmlListPushBack"/>
+ <function name="xmlListPushFront ()" link="libxml2-list.html#xmlListPushFront"/>
+ <function name="xmlListRemoveAll ()" link="libxml2-list.html#xmlListRemoveAll"/>
+ <function name="xmlListRemoveFirst ()" link="libxml2-list.html#xmlListRemoveFirst"/>
+ <function name="xmlListRemoveLast ()" link="libxml2-list.html#xmlListRemoveLast"/>
+ <function name="xmlListReverse ()" link="libxml2-list.html#xmlListReverse"/>
+ <function name="xmlListReverseSearch ()" link="libxml2-list.html#xmlListReverseSearch"/>
+ <function name="xmlListReverseWalk ()" link="libxml2-list.html#xmlListReverseWalk"/>
+ <function name="xmlListSearch ()" link="libxml2-list.html#xmlListSearch"/>
+ <function name="xmlListSize ()" link="libxml2-list.html#xmlListSize"/>
+ <function name="xmlListSort ()" link="libxml2-list.html#xmlListSort"/>
+ <function name="xmlListWalk ()" link="libxml2-list.html#xmlListWalk"/>
+ <function name="xmlLoadACatalog ()" link="libxml2-catalog.html#xmlLoadACatalog"/>
+ <function name="xmlLoadCatalog ()" link="libxml2-catalog.html#xmlLoadCatalog"/>
+ <function name="xmlLoadCatalogs ()" link="libxml2-catalog.html#xmlLoadCatalogs"/>
+ <function name="xmlLoadExternalEntity ()" link="libxml2-parser.html#xmlLoadExternalEntity"/>
+ <function name="xmlLoadSGMLSuperCatalog ()" link="libxml2-catalog.html#xmlLoadSGMLSuperCatalog"/>
+ <function name="xmlLockLibrary ()" link="libxml2-threads.html#xmlLockLibrary"/>
+ <function name="xmlLsCountNode ()" link="libxml2-debugXML.html#xmlLsCountNode"/>
+ <function name="xmlLsOneNode ()" link="libxml2-debugXML.html#xmlLsOneNode"/>
+ <function name="xmlMallocAtomicLoc ()" link="libxml2-xmlmemory.html#xmlMallocAtomicLoc"/>
+ <function name="xmlMallocLoc ()" link="libxml2-xmlmemory.html#xmlMallocLoc"/>
+ <function name="xmlMemBlocks ()" link="libxml2-xmlmemory.html#xmlMemBlocks"/>
+ <function name="xmlMemDisplay ()" link="libxml2-xmlmemory.html#xmlMemDisplay"/>
+ <function name="xmlMemDisplayLast ()" link="libxml2-xmlmemory.html#xmlMemDisplayLast"/>
+ <function name="xmlMemFree ()" link="libxml2-xmlmemory.html#xmlMemFree"/>
+ <function name="xmlMemGet ()" link="libxml2-xmlmemory.html#xmlMemGet"/>
+ <function name="xmlMemMalloc ()" link="libxml2-xmlmemory.html#xmlMemMalloc"/>
+ <function name="xmlMemRealloc ()" link="libxml2-xmlmemory.html#xmlMemRealloc"/>
+ <function name="xmlMemSetup ()" link="libxml2-xmlmemory.html#xmlMemSetup"/>
+ <function name="xmlMemShow ()" link="libxml2-xmlmemory.html#xmlMemShow"/>
+ <function name="xmlMemStrdupLoc ()" link="libxml2-xmlmemory.html#xmlMemStrdupLoc"/>
+ <function name="xmlMemUsed ()" link="libxml2-xmlmemory.html#xmlMemUsed"/>
+ <function name="xmlMemoryDump ()" link="libxml2-xmlmemory.html#xmlMemoryDump"/>
+ <function name="xmlMemoryStrdup ()" link="libxml2-xmlmemory.html#xmlMemoryStrdup"/>
+ <function name="xmlModuleClose ()" link="libxml2-xmlmodule.html#xmlModuleClose"/>
+ <function name="xmlModuleFree ()" link="libxml2-xmlmodule.html#xmlModuleFree"/>
+ <function name="xmlModuleOpen ()" link="libxml2-xmlmodule.html#xmlModuleOpen"/>
+ <function name="xmlModuleSymbol ()" link="libxml2-xmlmodule.html#xmlModuleSymbol"/>
+ <function name="xmlMutexLock ()" link="libxml2-threads.html#xmlMutexLock"/>
+ <function name="xmlMutexUnlock ()" link="libxml2-threads.html#xmlMutexUnlock"/>
+ <function name="xmlNamespaceParseNCName ()" link="libxml2-parserInternals.html#xmlNamespaceParseNCName"/>
+ <function name="xmlNamespaceParseNSDef ()" link="libxml2-parserInternals.html#xmlNamespaceParseNSDef"/>
+ <function name="xmlNamespaceParseQName ()" link="libxml2-parserInternals.html#xmlNamespaceParseQName"/>
+ <function name="xmlNanoFTPCheckResponse ()" link="libxml2-nanoftp.html#xmlNanoFTPCheckResponse"/>
+ <function name="xmlNanoFTPCleanup ()" link="libxml2-nanoftp.html#xmlNanoFTPCleanup"/>
+ <function name="xmlNanoFTPClose ()" link="libxml2-nanoftp.html#xmlNanoFTPClose"/>
+ <function name="xmlNanoFTPCloseConnection ()" link="libxml2-nanoftp.html#xmlNanoFTPCloseConnection"/>
+ <function name="xmlNanoFTPConnect ()" link="libxml2-nanoftp.html#xmlNanoFTPConnect"/>
+ <function name="xmlNanoFTPConnectTo ()" link="libxml2-nanoftp.html#xmlNanoFTPConnectTo"/>
+ <function name="xmlNanoFTPCwd ()" link="libxml2-nanoftp.html#xmlNanoFTPCwd"/>
+ <function name="xmlNanoFTPDele ()" link="libxml2-nanoftp.html#xmlNanoFTPDele"/>
+ <function name="xmlNanoFTPFreeCtxt ()" link="libxml2-nanoftp.html#xmlNanoFTPFreeCtxt"/>
+ <function name="xmlNanoFTPGet ()" link="libxml2-nanoftp.html#xmlNanoFTPGet"/>
+ <function name="xmlNanoFTPGetConnection ()" link="libxml2-nanoftp.html#xmlNanoFTPGetConnection"/>
+ <function name="xmlNanoFTPGetResponse ()" link="libxml2-nanoftp.html#xmlNanoFTPGetResponse"/>
+ <function name="xmlNanoFTPGetSocket ()" link="libxml2-nanoftp.html#xmlNanoFTPGetSocket"/>
+ <function name="xmlNanoFTPInit ()" link="libxml2-nanoftp.html#xmlNanoFTPInit"/>
+ <function name="xmlNanoFTPList ()" link="libxml2-nanoftp.html#xmlNanoFTPList"/>
+ <function name="xmlNanoFTPNewCtxt ()" link="libxml2-nanoftp.html#xmlNanoFTPNewCtxt"/>
+ <function name="xmlNanoFTPOpen ()" link="libxml2-nanoftp.html#xmlNanoFTPOpen"/>
+ <function name="xmlNanoFTPProxy ()" link="libxml2-nanoftp.html#xmlNanoFTPProxy"/>
+ <function name="xmlNanoFTPQuit ()" link="libxml2-nanoftp.html#xmlNanoFTPQuit"/>
+ <function name="xmlNanoFTPRead ()" link="libxml2-nanoftp.html#xmlNanoFTPRead"/>
+ <function name="xmlNanoFTPScanProxy ()" link="libxml2-nanoftp.html#xmlNanoFTPScanProxy"/>
+ <function name="xmlNanoFTPUpdateURL ()" link="libxml2-nanoftp.html#xmlNanoFTPUpdateURL"/>
+ <function name="xmlNanoHTTPAuthHeader ()" link="libxml2-nanohttp.html#xmlNanoHTTPAuthHeader"/>
+ <function name="xmlNanoHTTPCleanup ()" link="libxml2-nanohttp.html#xmlNanoHTTPCleanup"/>
+ <function name="xmlNanoHTTPClose ()" link="libxml2-nanohttp.html#xmlNanoHTTPClose"/>
+ <function name="xmlNanoHTTPContentLength ()" link="libxml2-nanohttp.html#xmlNanoHTTPContentLength"/>
+ <function name="xmlNanoHTTPEncoding ()" link="libxml2-nanohttp.html#xmlNanoHTTPEncoding"/>
+ <function name="xmlNanoHTTPFetch ()" link="libxml2-nanohttp.html#xmlNanoHTTPFetch"/>
+ <function name="xmlNanoHTTPInit ()" link="libxml2-nanohttp.html#xmlNanoHTTPInit"/>
+ <function name="xmlNanoHTTPMethod ()" link="libxml2-nanohttp.html#xmlNanoHTTPMethod"/>
+ <function name="xmlNanoHTTPMethodRedir ()" link="libxml2-nanohttp.html#xmlNanoHTTPMethodRedir"/>
+ <function name="xmlNanoHTTPMimeType ()" link="libxml2-nanohttp.html#xmlNanoHTTPMimeType"/>
+ <function name="xmlNanoHTTPOpen ()" link="libxml2-nanohttp.html#xmlNanoHTTPOpen"/>
+ <function name="xmlNanoHTTPOpenRedir ()" link="libxml2-nanohttp.html#xmlNanoHTTPOpenRedir"/>
+ <function name="xmlNanoHTTPRead ()" link="libxml2-nanohttp.html#xmlNanoHTTPRead"/>
+ <function name="xmlNanoHTTPRedir ()" link="libxml2-nanohttp.html#xmlNanoHTTPRedir"/>
+ <function name="xmlNanoHTTPReturnCode ()" link="libxml2-nanohttp.html#xmlNanoHTTPReturnCode"/>
+ <function name="xmlNanoHTTPSave ()" link="libxml2-nanohttp.html#xmlNanoHTTPSave"/>
+ <function name="xmlNanoHTTPScanProxy ()" link="libxml2-nanohttp.html#xmlNanoHTTPScanProxy"/>
+ <function name="xmlNewAutomata ()" link="libxml2-xmlautomata.html#xmlNewAutomata"/>
+ <function name="xmlNewCDataBlock ()" link="libxml2-tree.html#xmlNewCDataBlock"/>
+ <function name="xmlNewCatalog ()" link="libxml2-catalog.html#xmlNewCatalog"/>
+ <function name="xmlNewCharEncodingHandler ()" link="libxml2-encoding.html#xmlNewCharEncodingHandler"/>
+ <function name="xmlNewCharRef ()" link="libxml2-tree.html#xmlNewCharRef"/>
+ <function name="xmlNewChild ()" link="libxml2-tree.html#xmlNewChild"/>
+ <function name="xmlNewComment ()" link="libxml2-tree.html#xmlNewComment"/>
+ <function name="xmlNewDoc ()" link="libxml2-tree.html#xmlNewDoc"/>
+ <function name="xmlNewDocComment ()" link="libxml2-tree.html#xmlNewDocComment"/>
+ <function name="xmlNewDocElementContent ()" link="libxml2-valid.html#xmlNewDocElementContent"/>
+ <function name="xmlNewDocFragment ()" link="libxml2-tree.html#xmlNewDocFragment"/>
+ <function name="xmlNewDocNode ()" link="libxml2-tree.html#xmlNewDocNode"/>
+ <function name="xmlNewDocNodeEatName ()" link="libxml2-tree.html#xmlNewDocNodeEatName"/>
+ <function name="xmlNewDocPI ()" link="libxml2-tree.html#xmlNewDocPI"/>
+ <function name="xmlNewDocProp ()" link="libxml2-tree.html#xmlNewDocProp"/>
+ <function name="xmlNewDocRawNode ()" link="libxml2-tree.html#xmlNewDocRawNode"/>
+ <function name="xmlNewDocText ()" link="libxml2-tree.html#xmlNewDocText"/>
+ <function name="xmlNewDocTextLen ()" link="libxml2-tree.html#xmlNewDocTextLen"/>
+ <function name="xmlNewDtd ()" link="libxml2-tree.html#xmlNewDtd"/>
+ <function name="xmlNewElementContent ()" link="libxml2-valid.html#xmlNewElementContent"/>
+ <function name="xmlNewEntity ()" link="libxml2-entities.html#xmlNewEntity"/>
+ <function name="xmlNewEntityInputStream ()" link="libxml2-parserInternals.html#xmlNewEntityInputStream"/>
+ <function name="xmlNewGlobalNs ()" link="libxml2-tree.html#xmlNewGlobalNs"/>
+ <function name="xmlNewIOInputStream ()" link="libxml2-parser.html#xmlNewIOInputStream"/>
+ <function name="xmlNewInputFromFile ()" link="libxml2-parserInternals.html#xmlNewInputFromFile"/>
+ <function name="xmlNewInputStream ()" link="libxml2-parserInternals.html#xmlNewInputStream"/>
+ <function name="xmlNewMutex ()" link="libxml2-threads.html#xmlNewMutex"/>
+ <function name="xmlNewNode ()" link="libxml2-tree.html#xmlNewNode"/>
+ <function name="xmlNewNodeEatName ()" link="libxml2-tree.html#xmlNewNodeEatName"/>
+ <function name="xmlNewNs ()" link="libxml2-tree.html#xmlNewNs"/>
+ <function name="xmlNewNsProp ()" link="libxml2-tree.html#xmlNewNsProp"/>
+ <function name="xmlNewNsPropEatName ()" link="libxml2-tree.html#xmlNewNsPropEatName"/>
+ <function name="xmlNewPI ()" link="libxml2-tree.html#xmlNewPI"/>
+ <function name="xmlNewParserCtxt ()" link="libxml2-parser.html#xmlNewParserCtxt"/>
+ <function name="xmlNewProp ()" link="libxml2-tree.html#xmlNewProp"/>
+ <function name="xmlNewRMutex ()" link="libxml2-threads.html#xmlNewRMutex"/>
+ <function name="xmlNewReference ()" link="libxml2-tree.html#xmlNewReference"/>
+ <function name="xmlNewStringInputStream ()" link="libxml2-parserInternals.html#xmlNewStringInputStream"/>
+ <function name="xmlNewText ()" link="libxml2-tree.html#xmlNewText"/>
+ <function name="xmlNewTextChild ()" link="libxml2-tree.html#xmlNewTextChild"/>
+ <function name="xmlNewTextLen ()" link="libxml2-tree.html#xmlNewTextLen"/>
+ <function name="xmlNewTextReader ()" link="libxml2-xmlreader.html#xmlNewTextReader"/>
+ <function name="xmlNewTextReaderFilename ()" link="libxml2-xmlreader.html#xmlNewTextReaderFilename"/>
+ <function name="xmlNewTextWriter ()" link="libxml2-xmlwriter.html#xmlNewTextWriter"/>
+ <function name="xmlNewTextWriterDoc ()" link="libxml2-xmlwriter.html#xmlNewTextWriterDoc"/>
+ <function name="xmlNewTextWriterFilename ()" link="libxml2-xmlwriter.html#xmlNewTextWriterFilename"/>
+ <function name="xmlNewTextWriterMemory ()" link="libxml2-xmlwriter.html#xmlNewTextWriterMemory"/>
+ <function name="xmlNewTextWriterPushParser ()" link="libxml2-xmlwriter.html#xmlNewTextWriterPushParser"/>
+ <function name="xmlNewTextWriterTree ()" link="libxml2-xmlwriter.html#xmlNewTextWriterTree"/>
+ <function name="xmlNewValidCtxt ()" link="libxml2-valid.html#xmlNewValidCtxt"/>
+ <function name="xmlNextChar ()" link="libxml2-parserInternals.html#xmlNextChar"/>
+ <function name="xmlNextElementSibling ()" link="libxml2-tree.html#xmlNextElementSibling"/>
+ <function name="xmlNoNetExternalEntityLoader ()" link="libxml2-xmlIO.html#xmlNoNetExternalEntityLoader"/>
+ <function name="xmlNodeAddContent ()" link="libxml2-tree.html#xmlNodeAddContent"/>
+ <function name="xmlNodeAddContentLen ()" link="libxml2-tree.html#xmlNodeAddContentLen"/>
+ <function name="xmlNodeBufGetContent ()" link="libxml2-tree.html#xmlNodeBufGetContent"/>
+ <function name="xmlNodeDump ()" link="libxml2-tree.html#xmlNodeDump"/>
+ <function name="xmlNodeDumpOutput ()" link="libxml2-tree.html#xmlNodeDumpOutput"/>
+ <function name="xmlNodeGetBase ()" link="libxml2-tree.html#xmlNodeGetBase"/>
+ <function name="xmlNodeGetContent ()" link="libxml2-tree.html#xmlNodeGetContent"/>
+ <function name="xmlNodeGetLang ()" link="libxml2-tree.html#xmlNodeGetLang"/>
+ <function name="xmlNodeGetSpacePreserve ()" link="libxml2-tree.html#xmlNodeGetSpacePreserve"/>
+ <function name="xmlNodeIsText ()" link="libxml2-tree.html#xmlNodeIsText"/>
+ <function name="xmlNodeListGetRawString ()" link="libxml2-tree.html#xmlNodeListGetRawString"/>
+ <function name="xmlNodeListGetString ()" link="libxml2-tree.html#xmlNodeListGetString"/>
+ <function name="xmlNodeSetBase ()" link="libxml2-tree.html#xmlNodeSetBase"/>
+ <function name="xmlNodeSetContent ()" link="libxml2-tree.html#xmlNodeSetContent"/>
+ <function name="xmlNodeSetContentLen ()" link="libxml2-tree.html#xmlNodeSetContentLen"/>
+ <function name="xmlNodeSetLang ()" link="libxml2-tree.html#xmlNodeSetLang"/>
+ <function name="xmlNodeSetName ()" link="libxml2-tree.html#xmlNodeSetName"/>
+ <function name="xmlNodeSetSpacePreserve ()" link="libxml2-tree.html#xmlNodeSetSpacePreserve"/>
+ <function name="xmlNormalizeURIPath ()" link="libxml2-uri.html#xmlNormalizeURIPath"/>
+ <function name="xmlNormalizeWindowsPath ()" link="libxml2-xmlIO.html#xmlNormalizeWindowsPath"/>
+ <function name="xmlOutputBufferClose ()" link="libxml2-xmlIO.html#xmlOutputBufferClose"/>
+ <function name="xmlOutputBufferCreateBuffer ()" link="libxml2-xmlIO.html#xmlOutputBufferCreateBuffer"/>
+ <function name="xmlOutputBufferCreateFd ()" link="libxml2-xmlIO.html#xmlOutputBufferCreateFd"/>
+ <function name="xmlOutputBufferCreateFile ()" link="libxml2-xmlIO.html#xmlOutputBufferCreateFile"/>
+ <function name="xmlOutputBufferCreateFilename ()" link="libxml2-xmlIO.html#xmlOutputBufferCreateFilename"/>
+ <function name="xmlOutputBufferCreateFilenameDefault ()" link="libxml2-globals.html#xmlOutputBufferCreateFilenameDefault"/>
+ <function name="xmlOutputBufferCreateIO ()" link="libxml2-xmlIO.html#xmlOutputBufferCreateIO"/>
+ <function name="xmlOutputBufferFlush ()" link="libxml2-xmlIO.html#xmlOutputBufferFlush"/>
+ <function name="xmlOutputBufferGetContent ()" link="libxml2-xmlIO.html#xmlOutputBufferGetContent"/>
+ <function name="xmlOutputBufferGetSize ()" link="libxml2-xmlIO.html#xmlOutputBufferGetSize"/>
+ <function name="xmlOutputBufferWrite ()" link="libxml2-xmlIO.html#xmlOutputBufferWrite"/>
+ <function name="xmlOutputBufferWriteEscape ()" link="libxml2-xmlIO.html#xmlOutputBufferWriteEscape"/>
+ <function name="xmlOutputBufferWriteString ()" link="libxml2-xmlIO.html#xmlOutputBufferWriteString"/>
+ <function name="xmlParseAttValue ()" link="libxml2-parserInternals.html#xmlParseAttValue"/>
+ <function name="xmlParseAttribute ()" link="libxml2-parserInternals.html#xmlParseAttribute"/>
+ <function name="xmlParseAttributeListDecl ()" link="libxml2-parserInternals.html#xmlParseAttributeListDecl"/>
+ <function name="xmlParseAttributeType ()" link="libxml2-parserInternals.html#xmlParseAttributeType"/>
+ <function name="xmlParseBalancedChunkMemory ()" link="libxml2-parser.html#xmlParseBalancedChunkMemory"/>
+ <function name="xmlParseBalancedChunkMemoryRecover ()" link="libxml2-parser.html#xmlParseBalancedChunkMemoryRecover"/>
+ <function name="xmlParseCDSect ()" link="libxml2-parserInternals.html#xmlParseCDSect"/>
+ <function name="xmlParseCatalogFile ()" link="libxml2-catalog.html#xmlParseCatalogFile"/>
+ <function name="xmlParseCharData ()" link="libxml2-parserInternals.html#xmlParseCharData"/>
+ <function name="xmlParseCharEncoding ()" link="libxml2-encoding.html#xmlParseCharEncoding"/>
+ <function name="xmlParseCharRef ()" link="libxml2-parserInternals.html#xmlParseCharRef"/>
+ <function name="xmlParseChunk ()" link="libxml2-parser.html#xmlParseChunk"/>
+ <function name="xmlParseComment ()" link="libxml2-parserInternals.html#xmlParseComment"/>
+ <function name="xmlParseContent ()" link="libxml2-parserInternals.html#xmlParseContent"/>
+ <function name="xmlParseCtxtExternalEntity ()" link="libxml2-parser.html#xmlParseCtxtExternalEntity"/>
+ <function name="xmlParseDTD ()" link="libxml2-parser.html#xmlParseDTD"/>
+ <function name="xmlParseDefaultDecl ()" link="libxml2-parserInternals.html#xmlParseDefaultDecl"/>
+ <function name="xmlParseDoc ()" link="libxml2-parser.html#xmlParseDoc"/>
+ <function name="xmlParseDocTypeDecl ()" link="libxml2-parserInternals.html#xmlParseDocTypeDecl"/>
+ <function name="xmlParseDocument ()" link="libxml2-parser.html#xmlParseDocument"/>
+ <function name="xmlParseElement ()" link="libxml2-parserInternals.html#xmlParseElement"/>
+ <function name="xmlParseElementChildrenContentDecl ()" link="libxml2-parserInternals.html#xmlParseElementChildrenContentDecl"/>
+ <function name="xmlParseElementContentDecl ()" link="libxml2-parserInternals.html#xmlParseElementContentDecl"/>
+ <function name="xmlParseElementDecl ()" link="libxml2-parserInternals.html#xmlParseElementDecl"/>
+ <function name="xmlParseElementMixedContentDecl ()" link="libxml2-parserInternals.html#xmlParseElementMixedContentDecl"/>
+ <function name="xmlParseEncName ()" link="libxml2-parserInternals.html#xmlParseEncName"/>
+ <function name="xmlParseEncodingDecl ()" link="libxml2-parserInternals.html#xmlParseEncodingDecl"/>
+ <function name="xmlParseEndTag ()" link="libxml2-parserInternals.html#xmlParseEndTag"/>
+ <function name="xmlParseEntity ()" link="libxml2-parser.html#xmlParseEntity"/>
+ <function name="xmlParseEntityDecl ()" link="libxml2-parserInternals.html#xmlParseEntityDecl"/>
+ <function name="xmlParseEntityRef ()" link="libxml2-parserInternals.html#xmlParseEntityRef"/>
+ <function name="xmlParseEntityValue ()" link="libxml2-parserInternals.html#xmlParseEntityValue"/>
+ <function name="xmlParseEnumeratedType ()" link="libxml2-parserInternals.html#xmlParseEnumeratedType"/>
+ <function name="xmlParseEnumerationType ()" link="libxml2-parserInternals.html#xmlParseEnumerationType"/>
+ <function name="xmlParseExtParsedEnt ()" link="libxml2-parser.html#xmlParseExtParsedEnt"/>
+ <function name="xmlParseExternalEntity ()" link="libxml2-parser.html#xmlParseExternalEntity"/>
+ <function name="xmlParseExternalID ()" link="libxml2-parserInternals.html#xmlParseExternalID"/>
+ <function name="xmlParseExternalSubset ()" link="libxml2-parserInternals.html#xmlParseExternalSubset"/>
+ <function name="xmlParseFile ()" link="libxml2-parser.html#xmlParseFile"/>
+ <function name="xmlParseInNodeContext ()" link="libxml2-parser.html#xmlParseInNodeContext"/>
+ <function name="xmlParseMarkupDecl ()" link="libxml2-parserInternals.html#xmlParseMarkupDecl"/>
+ <function name="xmlParseMemory ()" link="libxml2-parser.html#xmlParseMemory"/>
+ <function name="xmlParseMisc ()" link="libxml2-parserInternals.html#xmlParseMisc"/>
+ <function name="xmlParseName ()" link="libxml2-parserInternals.html#xmlParseName"/>
+ <function name="xmlParseNamespace ()" link="libxml2-parserInternals.html#xmlParseNamespace"/>
+ <function name="xmlParseNmtoken ()" link="libxml2-parserInternals.html#xmlParseNmtoken"/>
+ <function name="xmlParseNotationDecl ()" link="libxml2-parserInternals.html#xmlParseNotationDecl"/>
+ <function name="xmlParseNotationType ()" link="libxml2-parserInternals.html#xmlParseNotationType"/>
+ <function name="xmlParsePEReference ()" link="libxml2-parserInternals.html#xmlParsePEReference"/>
+ <function name="xmlParsePI ()" link="libxml2-parserInternals.html#xmlParsePI"/>
+ <function name="xmlParsePITarget ()" link="libxml2-parserInternals.html#xmlParsePITarget"/>
+ <function name="xmlParsePubidLiteral ()" link="libxml2-parserInternals.html#xmlParsePubidLiteral"/>
+ <function name="xmlParseQuotedString ()" link="libxml2-parserInternals.html#xmlParseQuotedString"/>
+ <function name="xmlParseReference ()" link="libxml2-parserInternals.html#xmlParseReference"/>
+ <function name="xmlParseSDDecl ()" link="libxml2-parserInternals.html#xmlParseSDDecl"/>
+ <function name="xmlParseStartTag ()" link="libxml2-parserInternals.html#xmlParseStartTag"/>
+ <function name="xmlParseSystemLiteral ()" link="libxml2-parserInternals.html#xmlParseSystemLiteral"/>
+ <function name="xmlParseTextDecl ()" link="libxml2-parserInternals.html#xmlParseTextDecl"/>
+ <function name="xmlParseURI ()" link="libxml2-uri.html#xmlParseURI"/>
+ <function name="xmlParseURIRaw ()" link="libxml2-uri.html#xmlParseURIRaw"/>
+ <function name="xmlParseURIReference ()" link="libxml2-uri.html#xmlParseURIReference"/>
+ <function name="xmlParseVersionInfo ()" link="libxml2-parserInternals.html#xmlParseVersionInfo"/>
+ <function name="xmlParseVersionNum ()" link="libxml2-parserInternals.html#xmlParseVersionNum"/>
+ <function name="xmlParseXMLDecl ()" link="libxml2-parserInternals.html#xmlParseXMLDecl"/>
+ <function name="xmlParserAddNodeInfo ()" link="libxml2-parser.html#xmlParserAddNodeInfo"/>
+ <function name="xmlParserError ()" link="libxml2-xmlerror.html#xmlParserError"/>
+ <function name="xmlParserFindNodeInfo ()" link="libxml2-parser.html#xmlParserFindNodeInfo"/>
+ <function name="xmlParserFindNodeInfoIndex ()" link="libxml2-parser.html#xmlParserFindNodeInfoIndex"/>
+ <function name="xmlParserGetDirectory ()" link="libxml2-xmlIO.html#xmlParserGetDirectory"/>
+ <function name="xmlParserHandlePEReference ()" link="libxml2-parserInternals.html#xmlParserHandlePEReference"/>
+ <function name="xmlParserHandleReference ()" link="libxml2-parserInternals.html#xmlParserHandleReference"/>
+ <function name="xmlParserInputBufferCreateFd ()" link="libxml2-xmlIO.html#xmlParserInputBufferCreateFd"/>
+ <function name="xmlParserInputBufferCreateFile ()" link="libxml2-xmlIO.html#xmlParserInputBufferCreateFile"/>
+ <function name="xmlParserInputBufferCreateFilename ()" link="libxml2-xmlIO.html#xmlParserInputBufferCreateFilename"/>
+ <function name="xmlParserInputBufferCreateFilenameDefault ()" link="libxml2-globals.html#xmlParserInputBufferCreateFilenameDefault"/>
+ <function name="xmlParserInputBufferCreateIO ()" link="libxml2-xmlIO.html#xmlParserInputBufferCreateIO"/>
+ <function name="xmlParserInputBufferCreateMem ()" link="libxml2-xmlIO.html#xmlParserInputBufferCreateMem"/>
+ <function name="xmlParserInputBufferCreateStatic ()" link="libxml2-xmlIO.html#xmlParserInputBufferCreateStatic"/>
+ <function name="xmlParserInputBufferGrow ()" link="libxml2-xmlIO.html#xmlParserInputBufferGrow"/>
+ <function name="xmlParserInputBufferPush ()" link="libxml2-xmlIO.html#xmlParserInputBufferPush"/>
+ <function name="xmlParserInputBufferRead ()" link="libxml2-xmlIO.html#xmlParserInputBufferRead"/>
+ <function name="xmlParserInputGrow ()" link="libxml2-parser.html#xmlParserInputGrow"/>
+ <function name="xmlParserInputRead ()" link="libxml2-parser.html#xmlParserInputRead"/>
+ <function name="xmlParserInputShrink ()" link="libxml2-parserInternals.html#xmlParserInputShrink"/>
+ <function name="xmlParserPrintFileContext ()" link="libxml2-xmlerror.html#xmlParserPrintFileContext"/>
+ <function name="xmlParserPrintFileInfo ()" link="libxml2-xmlerror.html#xmlParserPrintFileInfo"/>
+ <function name="xmlParserValidityError ()" link="libxml2-xmlerror.html#xmlParserValidityError"/>
+ <function name="xmlParserValidityWarning ()" link="libxml2-xmlerror.html#xmlParserValidityWarning"/>
+ <function name="xmlParserWarning ()" link="libxml2-xmlerror.html#xmlParserWarning"/>
+ <function name="xmlPathToURI ()" link="libxml2-uri.html#xmlPathToURI"/>
+ <function name="xmlPatternFromRoot ()" link="libxml2-pattern.html#xmlPatternFromRoot"/>
+ <function name="xmlPatternGetStreamCtxt ()" link="libxml2-pattern.html#xmlPatternGetStreamCtxt"/>
+ <function name="xmlPatternMatch ()" link="libxml2-pattern.html#xmlPatternMatch"/>
+ <function name="xmlPatternMaxDepth ()" link="libxml2-pattern.html#xmlPatternMaxDepth"/>
+ <function name="xmlPatternMinDepth ()" link="libxml2-pattern.html#xmlPatternMinDepth"/>
+ <function name="xmlPatternStreamable ()" link="libxml2-pattern.html#xmlPatternStreamable"/>
+ <function name="xmlPatterncompile ()" link="libxml2-pattern.html#xmlPatterncompile"/>
+ <function name="xmlPedanticParserDefault ()" link="libxml2-parser.html#xmlPedanticParserDefault"/>
+ <function name="xmlPopInput ()" link="libxml2-parserInternals.html#xmlPopInput"/>
+ <function name="xmlPopInputCallbacks ()" link="libxml2-xmlIO.html#xmlPopInputCallbacks"/>
+ <function name="xmlPreviousElementSibling ()" link="libxml2-tree.html#xmlPreviousElementSibling"/>
+ <function name="xmlPrintURI ()" link="libxml2-uri.html#xmlPrintURI"/>
+ <function name="xmlPushInput ()" link="libxml2-parserInternals.html#xmlPushInput"/>
+ <function name="xmlRMutexLock ()" link="libxml2-threads.html#xmlRMutexLock"/>
+ <function name="xmlRMutexUnlock ()" link="libxml2-threads.html#xmlRMutexUnlock"/>
+ <function name="xmlReadDoc ()" link="libxml2-parser.html#xmlReadDoc"/>
+ <function name="xmlReadFd ()" link="libxml2-parser.html#xmlReadFd"/>
+ <function name="xmlReadFile ()" link="libxml2-parser.html#xmlReadFile"/>
+ <function name="xmlReadIO ()" link="libxml2-parser.html#xmlReadIO"/>
+ <function name="xmlReadMemory ()" link="libxml2-parser.html#xmlReadMemory"/>
+ <function name="xmlReaderForDoc ()" link="libxml2-xmlreader.html#xmlReaderForDoc"/>
+ <function name="xmlReaderForFd ()" link="libxml2-xmlreader.html#xmlReaderForFd"/>
+ <function name="xmlReaderForFile ()" link="libxml2-xmlreader.html#xmlReaderForFile"/>
+ <function name="xmlReaderForIO ()" link="libxml2-xmlreader.html#xmlReaderForIO"/>
+ <function name="xmlReaderForMemory ()" link="libxml2-xmlreader.html#xmlReaderForMemory"/>
+ <function name="xmlReaderNewDoc ()" link="libxml2-xmlreader.html#xmlReaderNewDoc"/>
+ <function name="xmlReaderNewFd ()" link="libxml2-xmlreader.html#xmlReaderNewFd"/>
+ <function name="xmlReaderNewFile ()" link="libxml2-xmlreader.html#xmlReaderNewFile"/>
+ <function name="xmlReaderNewIO ()" link="libxml2-xmlreader.html#xmlReaderNewIO"/>
+ <function name="xmlReaderNewMemory ()" link="libxml2-xmlreader.html#xmlReaderNewMemory"/>
+ <function name="xmlReaderNewWalker ()" link="libxml2-xmlreader.html#xmlReaderNewWalker"/>
+ <function name="xmlReaderWalker ()" link="libxml2-xmlreader.html#xmlReaderWalker"/>
+ <function name="xmlReallocLoc ()" link="libxml2-xmlmemory.html#xmlReallocLoc"/>
+ <function name="xmlReconciliateNs ()" link="libxml2-tree.html#xmlReconciliateNs"/>
+ <function name="xmlRecoverDoc ()" link="libxml2-parser.html#xmlRecoverDoc"/>
+ <function name="xmlRecoverFile ()" link="libxml2-parser.html#xmlRecoverFile"/>
+ <function name="xmlRecoverMemory ()" link="libxml2-parser.html#xmlRecoverMemory"/>
+ <function name="xmlRegExecErrInfo ()" link="libxml2-xmlregexp.html#xmlRegExecErrInfo"/>
+ <function name="xmlRegExecNextValues ()" link="libxml2-xmlregexp.html#xmlRegExecNextValues"/>
+ <function name="xmlRegExecPushString ()" link="libxml2-xmlregexp.html#xmlRegExecPushString"/>
+ <function name="xmlRegExecPushString2 ()" link="libxml2-xmlregexp.html#xmlRegExecPushString2"/>
+ <function name="xmlRegFreeExecCtxt ()" link="libxml2-xmlregexp.html#xmlRegFreeExecCtxt"/>
+ <function name="xmlRegFreeRegexp ()" link="libxml2-xmlregexp.html#xmlRegFreeRegexp"/>
+ <function name="xmlRegNewExecCtxt ()" link="libxml2-xmlregexp.html#xmlRegNewExecCtxt"/>
+ <function name="xmlRegexpCompile ()" link="libxml2-xmlregexp.html#xmlRegexpCompile"/>
+ <function name="xmlRegexpExec ()" link="libxml2-xmlregexp.html#xmlRegexpExec"/>
+ <function name="xmlRegexpIsDeterminist ()" link="libxml2-xmlregexp.html#xmlRegexpIsDeterminist"/>
+ <function name="xmlRegexpPrint ()" link="libxml2-xmlregexp.html#xmlRegexpPrint"/>
+ <function name="xmlRegisterCharEncodingHandler ()" link="libxml2-encoding.html#xmlRegisterCharEncodingHandler"/>
+ <function name="xmlRegisterDefaultInputCallbacks ()" link="libxml2-xmlIO.html#xmlRegisterDefaultInputCallbacks"/>
+ <function name="xmlRegisterDefaultOutputCallbacks ()" link="libxml2-xmlIO.html#xmlRegisterDefaultOutputCallbacks"/>
+ <function name="xmlRegisterHTTPPostCallbacks ()" link="libxml2-xmlIO.html#xmlRegisterHTTPPostCallbacks"/>
+ <function name="xmlRegisterInputCallbacks ()" link="libxml2-xmlIO.html#xmlRegisterInputCallbacks"/>
+ <function name="xmlRegisterNodeDefault ()" link="libxml2-globals.html#xmlRegisterNodeDefault"/>
+ <function name="xmlRegisterOutputCallbacks ()" link="libxml2-xmlIO.html#xmlRegisterOutputCallbacks"/>
+ <function name="xmlRelaxNGCleanupTypes ()" link="libxml2-relaxng.html#xmlRelaxNGCleanupTypes"/>
+ <function name="xmlRelaxNGDump ()" link="libxml2-relaxng.html#xmlRelaxNGDump"/>
+ <function name="xmlRelaxNGDumpTree ()" link="libxml2-relaxng.html#xmlRelaxNGDumpTree"/>
+ <function name="xmlRelaxNGFree ()" link="libxml2-relaxng.html#xmlRelaxNGFree"/>
+ <function name="xmlRelaxNGFreeParserCtxt ()" link="libxml2-relaxng.html#xmlRelaxNGFreeParserCtxt"/>
+ <function name="xmlRelaxNGFreeValidCtxt ()" link="libxml2-relaxng.html#xmlRelaxNGFreeValidCtxt"/>
+ <function name="xmlRelaxNGGetParserErrors ()" link="libxml2-relaxng.html#xmlRelaxNGGetParserErrors"/>
+ <function name="xmlRelaxNGGetValidErrors ()" link="libxml2-relaxng.html#xmlRelaxNGGetValidErrors"/>
+ <function name="xmlRelaxNGInitTypes ()" link="libxml2-relaxng.html#xmlRelaxNGInitTypes"/>
+ <function name="xmlRelaxNGNewDocParserCtxt ()" link="libxml2-relaxng.html#xmlRelaxNGNewDocParserCtxt"/>
+ <function name="xmlRelaxNGNewMemParserCtxt ()" link="libxml2-relaxng.html#xmlRelaxNGNewMemParserCtxt"/>
+ <function name="xmlRelaxNGNewParserCtxt ()" link="libxml2-relaxng.html#xmlRelaxNGNewParserCtxt"/>
+ <function name="xmlRelaxNGNewValidCtxt ()" link="libxml2-relaxng.html#xmlRelaxNGNewValidCtxt"/>
+ <function name="xmlRelaxNGParse ()" link="libxml2-relaxng.html#xmlRelaxNGParse"/>
+ <function name="xmlRelaxNGSetParserErrors ()" link="libxml2-relaxng.html#xmlRelaxNGSetParserErrors"/>
+ <function name="xmlRelaxNGSetParserStructuredErrors ()" link="libxml2-relaxng.html#xmlRelaxNGSetParserStructuredErrors"/>
+ <function name="xmlRelaxNGSetValidErrors ()" link="libxml2-relaxng.html#xmlRelaxNGSetValidErrors"/>
+ <function name="xmlRelaxNGSetValidStructuredErrors ()" link="libxml2-relaxng.html#xmlRelaxNGSetValidStructuredErrors"/>
+ <function name="xmlRelaxNGValidateDoc ()" link="libxml2-relaxng.html#xmlRelaxNGValidateDoc"/>
+ <function name="xmlRelaxNGValidateFullElement ()" link="libxml2-relaxng.html#xmlRelaxNGValidateFullElement"/>
+ <function name="xmlRelaxNGValidatePopElement ()" link="libxml2-relaxng.html#xmlRelaxNGValidatePopElement"/>
+ <function name="xmlRelaxNGValidatePushCData ()" link="libxml2-relaxng.html#xmlRelaxNGValidatePushCData"/>
+ <function name="xmlRelaxNGValidatePushElement ()" link="libxml2-relaxng.html#xmlRelaxNGValidatePushElement"/>
+ <function name="xmlRelaxParserSetFlag ()" link="libxml2-relaxng.html#xmlRelaxParserSetFlag"/>
+ <function name="xmlRemoveID ()" link="libxml2-valid.html#xmlRemoveID"/>
+ <function name="xmlRemoveProp ()" link="libxml2-tree.html#xmlRemoveProp"/>
+ <function name="xmlRemoveRef ()" link="libxml2-valid.html#xmlRemoveRef"/>
+ <function name="xmlReplaceNode ()" link="libxml2-tree.html#xmlReplaceNode"/>
+ <function name="xmlResetError ()" link="libxml2-xmlerror.html#xmlResetError"/>
+ <function name="xmlResetLastError ()" link="libxml2-xmlerror.html#xmlResetLastError"/>
+ <function name="xmlSAX2AttributeDecl ()" link="libxml2-SAX2.html#xmlSAX2AttributeDecl"/>
+ <function name="xmlSAX2CDataBlock ()" link="libxml2-SAX2.html#xmlSAX2CDataBlock"/>
+ <function name="xmlSAX2Characters ()" link="libxml2-SAX2.html#xmlSAX2Characters"/>
+ <function name="xmlSAX2Comment ()" link="libxml2-SAX2.html#xmlSAX2Comment"/>
+ <function name="xmlSAX2ElementDecl ()" link="libxml2-SAX2.html#xmlSAX2ElementDecl"/>
+ <function name="xmlSAX2EndDocument ()" link="libxml2-SAX2.html#xmlSAX2EndDocument"/>
+ <function name="xmlSAX2EndElement ()" link="libxml2-SAX2.html#xmlSAX2EndElement"/>
+ <function name="xmlSAX2EndElementNs ()" link="libxml2-SAX2.html#xmlSAX2EndElementNs"/>
+ <function name="xmlSAX2EntityDecl ()" link="libxml2-SAX2.html#xmlSAX2EntityDecl"/>
+ <function name="xmlSAX2ExternalSubset ()" link="libxml2-SAX2.html#xmlSAX2ExternalSubset"/>
+ <function name="xmlSAX2GetColumnNumber ()" link="libxml2-SAX2.html#xmlSAX2GetColumnNumber"/>
+ <function name="xmlSAX2GetEntity ()" link="libxml2-SAX2.html#xmlSAX2GetEntity"/>
+ <function name="xmlSAX2GetLineNumber ()" link="libxml2-SAX2.html#xmlSAX2GetLineNumber"/>
+ <function name="xmlSAX2GetParameterEntity ()" link="libxml2-SAX2.html#xmlSAX2GetParameterEntity"/>
+ <function name="xmlSAX2GetPublicId ()" link="libxml2-SAX2.html#xmlSAX2GetPublicId"/>
+ <function name="xmlSAX2GetSystemId ()" link="libxml2-SAX2.html#xmlSAX2GetSystemId"/>
+ <function name="xmlSAX2HasExternalSubset ()" link="libxml2-SAX2.html#xmlSAX2HasExternalSubset"/>
+ <function name="xmlSAX2HasInternalSubset ()" link="libxml2-SAX2.html#xmlSAX2HasInternalSubset"/>
+ <function name="xmlSAX2IgnorableWhitespace ()" link="libxml2-SAX2.html#xmlSAX2IgnorableWhitespace"/>
+ <function name="xmlSAX2InitDefaultSAXHandler ()" link="libxml2-SAX2.html#xmlSAX2InitDefaultSAXHandler"/>
+ <function name="xmlSAX2InitDocbDefaultSAXHandler ()" link="libxml2-SAX2.html#xmlSAX2InitDocbDefaultSAXHandler"/>
+ <function name="xmlSAX2InitHtmlDefaultSAXHandler ()" link="libxml2-SAX2.html#xmlSAX2InitHtmlDefaultSAXHandler"/>
+ <function name="xmlSAX2InternalSubset ()" link="libxml2-SAX2.html#xmlSAX2InternalSubset"/>
+ <function name="xmlSAX2IsStandalone ()" link="libxml2-SAX2.html#xmlSAX2IsStandalone"/>
+ <function name="xmlSAX2NotationDecl ()" link="libxml2-SAX2.html#xmlSAX2NotationDecl"/>
+ <function name="xmlSAX2ProcessingInstruction ()" link="libxml2-SAX2.html#xmlSAX2ProcessingInstruction"/>
+ <function name="xmlSAX2Reference ()" link="libxml2-SAX2.html#xmlSAX2Reference"/>
+ <function name="xmlSAX2ResolveEntity ()" link="libxml2-SAX2.html#xmlSAX2ResolveEntity"/>
+ <function name="xmlSAX2SetDocumentLocator ()" link="libxml2-SAX2.html#xmlSAX2SetDocumentLocator"/>
+ <function name="xmlSAX2StartDocument ()" link="libxml2-SAX2.html#xmlSAX2StartDocument"/>
+ <function name="xmlSAX2StartElement ()" link="libxml2-SAX2.html#xmlSAX2StartElement"/>
+ <function name="xmlSAX2StartElementNs ()" link="libxml2-SAX2.html#xmlSAX2StartElementNs"/>
+ <function name="xmlSAX2UnparsedEntityDecl ()" link="libxml2-SAX2.html#xmlSAX2UnparsedEntityDecl"/>
+ <function name="xmlSAXDefaultVersion ()" link="libxml2-SAX2.html#xmlSAXDefaultVersion"/>
+ <function name="xmlSAXParseDTD ()" link="libxml2-parser.html#xmlSAXParseDTD"/>
+ <function name="xmlSAXParseDoc ()" link="libxml2-parser.html#xmlSAXParseDoc"/>
+ <function name="xmlSAXParseEntity ()" link="libxml2-parser.html#xmlSAXParseEntity"/>
+ <function name="xmlSAXParseFile ()" link="libxml2-parser.html#xmlSAXParseFile"/>
+ <function name="xmlSAXParseFileWithData ()" link="libxml2-parser.html#xmlSAXParseFileWithData"/>
+ <function name="xmlSAXParseMemory ()" link="libxml2-parser.html#xmlSAXParseMemory"/>
+ <function name="xmlSAXParseMemoryWithData ()" link="libxml2-parser.html#xmlSAXParseMemoryWithData"/>
+ <function name="xmlSAXUserParseFile ()" link="libxml2-parser.html#xmlSAXUserParseFile"/>
+ <function name="xmlSAXUserParseMemory ()" link="libxml2-parser.html#xmlSAXUserParseMemory"/>
+ <function name="xmlSAXVersion ()" link="libxml2-SAX2.html#xmlSAXVersion"/>
+ <function name="xmlSaveClose ()" link="libxml2-xmlsave.html#xmlSaveClose"/>
+ <function name="xmlSaveDoc ()" link="libxml2-xmlsave.html#xmlSaveDoc"/>
+ <function name="xmlSaveFile ()" link="libxml2-tree.html#xmlSaveFile"/>
+ <function name="xmlSaveFileEnc ()" link="libxml2-tree.html#xmlSaveFileEnc"/>
+ <function name="xmlSaveFileTo ()" link="libxml2-tree.html#xmlSaveFileTo"/>
+ <function name="xmlSaveFlush ()" link="libxml2-xmlsave.html#xmlSaveFlush"/>
+ <function name="xmlSaveFormatFile ()" link="libxml2-tree.html#xmlSaveFormatFile"/>
+ <function name="xmlSaveFormatFileEnc ()" link="libxml2-tree.html#xmlSaveFormatFileEnc"/>
+ <function name="xmlSaveFormatFileTo ()" link="libxml2-tree.html#xmlSaveFormatFileTo"/>
+ <function name="xmlSaveSetAttrEscape ()" link="libxml2-xmlsave.html#xmlSaveSetAttrEscape"/>
+ <function name="xmlSaveSetEscape ()" link="libxml2-xmlsave.html#xmlSaveSetEscape"/>
+ <function name="xmlSaveToBuffer ()" link="libxml2-xmlsave.html#xmlSaveToBuffer"/>
+ <function name="xmlSaveToFd ()" link="libxml2-xmlsave.html#xmlSaveToFd"/>
+ <function name="xmlSaveToFilename ()" link="libxml2-xmlsave.html#xmlSaveToFilename"/>
+ <function name="xmlSaveToIO ()" link="libxml2-xmlsave.html#xmlSaveToIO"/>
+ <function name="xmlSaveTree ()" link="libxml2-xmlsave.html#xmlSaveTree"/>
+ <function name="xmlSaveUri ()" link="libxml2-uri.html#xmlSaveUri"/>
+ <function name="xmlScanName ()" link="libxml2-parserInternals.html#xmlScanName"/>
+ <function name="xmlSchemaCheckFacet ()" link="libxml2-xmlschemastypes.html#xmlSchemaCheckFacet"/>
+ <function name="xmlSchemaCleanupTypes ()" link="libxml2-xmlschemastypes.html#xmlSchemaCleanupTypes"/>
+ <function name="xmlSchemaCollapseString ()" link="libxml2-xmlschemastypes.html#xmlSchemaCollapseString"/>
+ <function name="xmlSchemaCompareValues ()" link="libxml2-xmlschemastypes.html#xmlSchemaCompareValues"/>
+ <function name="xmlSchemaCompareValuesWhtsp ()" link="libxml2-xmlschemastypes.html#xmlSchemaCompareValuesWhtsp"/>
+ <function name="xmlSchemaCopyValue ()" link="libxml2-xmlschemastypes.html#xmlSchemaCopyValue"/>
+ <function name="xmlSchemaDump ()" link="libxml2-xmlschemas.html#xmlSchemaDump"/>
+ <function name="xmlSchemaFree ()" link="libxml2-xmlschemas.html#xmlSchemaFree"/>
+ <function name="xmlSchemaFreeFacet ()" link="libxml2-xmlschemastypes.html#xmlSchemaFreeFacet"/>
+ <function name="xmlSchemaFreeParserCtxt ()" link="libxml2-xmlschemas.html#xmlSchemaFreeParserCtxt"/>
+ <function name="xmlSchemaFreeType ()" link="libxml2-schemasInternals.html#xmlSchemaFreeType"/>
+ <function name="xmlSchemaFreeValidCtxt ()" link="libxml2-xmlschemas.html#xmlSchemaFreeValidCtxt"/>
+ <function name="xmlSchemaFreeValue ()" link="libxml2-xmlschemastypes.html#xmlSchemaFreeValue"/>
+ <function name="xmlSchemaFreeWildcard ()" link="libxml2-schemasInternals.html#xmlSchemaFreeWildcard"/>
+ <function name="xmlSchemaGetBuiltInListSimpleTypeItemType ()" link="libxml2-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType"/>
+ <function name="xmlSchemaGetBuiltInType ()" link="libxml2-xmlschemastypes.html#xmlSchemaGetBuiltInType"/>
+ <function name="xmlSchemaGetCanonValue ()" link="libxml2-xmlschemastypes.html#xmlSchemaGetCanonValue"/>
+ <function name="xmlSchemaGetCanonValueWhtsp ()" link="libxml2-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp"/>
+ <function name="xmlSchemaGetFacetValueAsULong ()" link="libxml2-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong"/>
+ <function name="xmlSchemaGetParserErrors ()" link="libxml2-xmlschemas.html#xmlSchemaGetParserErrors"/>
+ <function name="xmlSchemaGetPredefinedType ()" link="libxml2-xmlschemastypes.html#xmlSchemaGetPredefinedType"/>
+ <function name="xmlSchemaGetValType ()" link="libxml2-xmlschemastypes.html#xmlSchemaGetValType"/>
+ <function name="xmlSchemaGetValidErrors ()" link="libxml2-xmlschemas.html#xmlSchemaGetValidErrors"/>
+ <function name="xmlSchemaInitTypes ()" link="libxml2-xmlschemastypes.html#xmlSchemaInitTypes"/>
+ <function name="xmlSchemaIsBuiltInTypeFacet ()" link="libxml2-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet"/>
+ <function name="xmlSchemaIsValid ()" link="libxml2-xmlschemas.html#xmlSchemaIsValid"/>
+ <function name="xmlSchemaNewDocParserCtxt ()" link="libxml2-xmlschemas.html#xmlSchemaNewDocParserCtxt"/>
+ <function name="xmlSchemaNewFacet ()" link="libxml2-xmlschemastypes.html#xmlSchemaNewFacet"/>
+ <function name="xmlSchemaNewMemParserCtxt ()" link="libxml2-xmlschemas.html#xmlSchemaNewMemParserCtxt"/>
+ <function name="xmlSchemaNewNOTATIONValue ()" link="libxml2-xmlschemastypes.html#xmlSchemaNewNOTATIONValue"/>
+ <function name="xmlSchemaNewParserCtxt ()" link="libxml2-xmlschemas.html#xmlSchemaNewParserCtxt"/>
+ <function name="xmlSchemaNewQNameValue ()" link="libxml2-xmlschemastypes.html#xmlSchemaNewQNameValue"/>
+ <function name="xmlSchemaNewStringValue ()" link="libxml2-xmlschemastypes.html#xmlSchemaNewStringValue"/>
+ <function name="xmlSchemaNewValidCtxt ()" link="libxml2-xmlschemas.html#xmlSchemaNewValidCtxt"/>
+ <function name="xmlSchemaParse ()" link="libxml2-xmlschemas.html#xmlSchemaParse"/>
+ <function name="xmlSchemaSAXPlug ()" link="libxml2-xmlschemas.html#xmlSchemaSAXPlug"/>
+ <function name="xmlSchemaSAXUnplug ()" link="libxml2-xmlschemas.html#xmlSchemaSAXUnplug"/>
+ <function name="xmlSchemaSetParserErrors ()" link="libxml2-xmlschemas.html#xmlSchemaSetParserErrors"/>
+ <function name="xmlSchemaSetParserStructuredErrors ()" link="libxml2-xmlschemas.html#xmlSchemaSetParserStructuredErrors"/>
+ <function name="xmlSchemaSetValidErrors ()" link="libxml2-xmlschemas.html#xmlSchemaSetValidErrors"/>
+ <function name="xmlSchemaSetValidOptions ()" link="libxml2-xmlschemas.html#xmlSchemaSetValidOptions"/>
+ <function name="xmlSchemaSetValidStructuredErrors ()" link="libxml2-xmlschemas.html#xmlSchemaSetValidStructuredErrors"/>
+ <function name="xmlSchemaValPredefTypeNode ()" link="libxml2-xmlschemastypes.html#xmlSchemaValPredefTypeNode"/>
+ <function name="xmlSchemaValPredefTypeNodeNoNorm ()" link="libxml2-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm"/>
+ <function name="xmlSchemaValidCtxtGetOptions ()" link="libxml2-xmlschemas.html#xmlSchemaValidCtxtGetOptions"/>
+ <function name="xmlSchemaValidCtxtGetParserCtxt ()" link="libxml2-xmlschemas.html#xmlSchemaValidCtxtGetParserCtxt"/>
+ <function name="xmlSchemaValidateDoc ()" link="libxml2-xmlschemas.html#xmlSchemaValidateDoc"/>
+ <function name="xmlSchemaValidateFacet ()" link="libxml2-xmlschemastypes.html#xmlSchemaValidateFacet"/>
+ <function name="xmlSchemaValidateFacetWhtsp ()" link="libxml2-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp"/>
+ <function name="xmlSchemaValidateFile ()" link="libxml2-xmlschemas.html#xmlSchemaValidateFile"/>
+ <function name="xmlSchemaValidateLengthFacet ()" link="libxml2-xmlschemastypes.html#xmlSchemaValidateLengthFacet"/>
+ <function name="xmlSchemaValidateLengthFacetWhtsp ()" link="libxml2-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp"/>
+ <function name="xmlSchemaValidateListSimpleTypeFacet ()" link="libxml2-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet"/>
+ <function name="xmlSchemaValidateOneElement ()" link="libxml2-xmlschemas.html#xmlSchemaValidateOneElement"/>
+ <function name="xmlSchemaValidatePredefinedType ()" link="libxml2-xmlschemastypes.html#xmlSchemaValidatePredefinedType"/>
+ <function name="xmlSchemaValidateSetFilename ()" link="libxml2-xmlschemas.html#xmlSchemaValidateSetFilename"/>
+ <function name="xmlSchemaValidateSetLocator ()" link="libxml2-xmlschemas.html#xmlSchemaValidateSetLocator"/>
+ <function name="xmlSchemaValidateStream ()" link="libxml2-xmlschemas.html#xmlSchemaValidateStream"/>
+ <function name="xmlSchemaValueAppend ()" link="libxml2-xmlschemastypes.html#xmlSchemaValueAppend"/>
+ <function name="xmlSchemaValueGetAsBoolean ()" link="libxml2-xmlschemastypes.html#xmlSchemaValueGetAsBoolean"/>
+ <function name="xmlSchemaValueGetAsString ()" link="libxml2-xmlschemastypes.html#xmlSchemaValueGetAsString"/>
+ <function name="xmlSchemaValueGetNext ()" link="libxml2-xmlschemastypes.html#xmlSchemaValueGetNext"/>
+ <function name="xmlSchemaWhiteSpaceReplace ()" link="libxml2-xmlschemastypes.html#xmlSchemaWhiteSpaceReplace"/>
+ <function name="xmlSchematronFree ()" link="libxml2-schematron.html#xmlSchematronFree"/>
+ <function name="xmlSchematronFreeParserCtxt ()" link="libxml2-schematron.html#xmlSchematronFreeParserCtxt"/>
+ <function name="xmlSchematronFreeValidCtxt ()" link="libxml2-schematron.html#xmlSchematronFreeValidCtxt"/>
+ <function name="xmlSchematronNewDocParserCtxt ()" link="libxml2-schematron.html#xmlSchematronNewDocParserCtxt"/>
+ <function name="xmlSchematronNewMemParserCtxt ()" link="libxml2-schematron.html#xmlSchematronNewMemParserCtxt"/>
+ <function name="xmlSchematronNewParserCtxt ()" link="libxml2-schematron.html#xmlSchematronNewParserCtxt"/>
+ <function name="xmlSchematronNewValidCtxt ()" link="libxml2-schematron.html#xmlSchematronNewValidCtxt"/>
+ <function name="xmlSchematronParse ()" link="libxml2-schematron.html#xmlSchematronParse"/>
+ <function name="xmlSchematronSetValidStructuredErrors ()" link="libxml2-schematron.html#xmlSchematronSetValidStructuredErrors"/>
+ <function name="xmlSchematronValidateDoc ()" link="libxml2-schematron.html#xmlSchematronValidateDoc"/>
+ <function name="xmlSearchNs ()" link="libxml2-tree.html#xmlSearchNs"/>
+ <function name="xmlSearchNsByHref ()" link="libxml2-tree.html#xmlSearchNsByHref"/>
+ <function name="xmlSetBufferAllocationScheme ()" link="libxml2-tree.html#xmlSetBufferAllocationScheme"/>
+ <function name="xmlSetCompressMode ()" link="libxml2-tree.html#xmlSetCompressMode"/>
+ <function name="xmlSetDocCompressMode ()" link="libxml2-tree.html#xmlSetDocCompressMode"/>
+ <function name="xmlSetEntityReferenceFunc ()" link="libxml2-parserInternals.html#xmlSetEntityReferenceFunc"/>
+ <function name="xmlSetExternalEntityLoader ()" link="libxml2-parser.html#xmlSetExternalEntityLoader"/>
+ <function name="xmlSetFeature ()" link="libxml2-parser.html#xmlSetFeature"/>
+ <function name="xmlSetGenericErrorFunc ()" link="libxml2-xmlerror.html#xmlSetGenericErrorFunc"/>
+ <function name="xmlSetListDoc ()" link="libxml2-tree.html#xmlSetListDoc"/>
+ <function name="xmlSetNs ()" link="libxml2-tree.html#xmlSetNs"/>
+ <function name="xmlSetNsProp ()" link="libxml2-tree.html#xmlSetNsProp"/>
+ <function name="xmlSetProp ()" link="libxml2-tree.html#xmlSetProp"/>
+ <function name="xmlSetStructuredErrorFunc ()" link="libxml2-xmlerror.html#xmlSetStructuredErrorFunc"/>
+ <function name="xmlSetTreeDoc ()" link="libxml2-tree.html#xmlSetTreeDoc"/>
+ <function name="xmlSetupParserForBuffer ()" link="libxml2-parser.html#xmlSetupParserForBuffer"/>
+ <function name="xmlShell ()" link="libxml2-debugXML.html#xmlShell"/>
+ <function name="xmlShellBase ()" link="libxml2-debugXML.html#xmlShellBase"/>
+ <function name="xmlShellCat ()" link="libxml2-debugXML.html#xmlShellCat"/>
+ <function name="xmlShellDir ()" link="libxml2-debugXML.html#xmlShellDir"/>
+ <function name="xmlShellDu ()" link="libxml2-debugXML.html#xmlShellDu"/>
+ <function name="xmlShellList ()" link="libxml2-debugXML.html#xmlShellList"/>
+ <function name="xmlShellLoad ()" link="libxml2-debugXML.html#xmlShellLoad"/>
+ <function name="xmlShellPrintNode ()" link="libxml2-debugXML.html#xmlShellPrintNode"/>
+ <function name="xmlShellPrintXPathError ()" link="libxml2-debugXML.html#xmlShellPrintXPathError"/>
+ <function name="xmlShellPrintXPathResult ()" link="libxml2-debugXML.html#xmlShellPrintXPathResult"/>
+ <function name="xmlShellPwd ()" link="libxml2-debugXML.html#xmlShellPwd"/>
+ <function name="xmlShellSave ()" link="libxml2-debugXML.html#xmlShellSave"/>
+ <function name="xmlShellValidate ()" link="libxml2-debugXML.html#xmlShellValidate"/>
+ <function name="xmlShellWrite ()" link="libxml2-debugXML.html#xmlShellWrite"/>
+ <function name="xmlSkipBlankChars ()" link="libxml2-parserInternals.html#xmlSkipBlankChars"/>
+ <function name="xmlSnprintfElementContent ()" link="libxml2-valid.html#xmlSnprintfElementContent"/>
+ <function name="xmlSplitQName ()" link="libxml2-parserInternals.html#xmlSplitQName"/>
+ <function name="xmlSplitQName2 ()" link="libxml2-tree.html#xmlSplitQName2"/>
+ <function name="xmlSplitQName3 ()" link="libxml2-tree.html#xmlSplitQName3"/>
+ <function name="xmlSprintfElementContent ()" link="libxml2-valid.html#xmlSprintfElementContent"/>
+ <function name="xmlStopParser ()" link="libxml2-parser.html#xmlStopParser"/>
+ <function name="xmlStrEqual ()" link="libxml2-xmlstring.html#xmlStrEqual"/>
+ <function name="xmlStrPrintf ()" link="libxml2-xmlstring.html#xmlStrPrintf"/>
+ <function name="xmlStrQEqual ()" link="libxml2-xmlstring.html#xmlStrQEqual"/>
+ <function name="xmlStrVPrintf ()" link="libxml2-xmlstring.html#xmlStrVPrintf"/>
+ <function name="xmlStrcasecmp ()" link="libxml2-xmlstring.html#xmlStrcasecmp"/>
+ <function name="xmlStrcasestr ()" link="libxml2-xmlstring.html#xmlStrcasestr"/>
+ <function name="xmlStrcat ()" link="libxml2-xmlstring.html#xmlStrcat"/>
+ <function name="xmlStrchr ()" link="libxml2-xmlstring.html#xmlStrchr"/>
+ <function name="xmlStrcmp ()" link="libxml2-xmlstring.html#xmlStrcmp"/>
+ <function name="xmlStrdup ()" link="libxml2-xmlstring.html#xmlStrdup"/>
+ <function name="xmlStreamPop ()" link="libxml2-pattern.html#xmlStreamPop"/>
+ <function name="xmlStreamPush ()" link="libxml2-pattern.html#xmlStreamPush"/>
+ <function name="xmlStreamPushAttr ()" link="libxml2-pattern.html#xmlStreamPushAttr"/>
+ <function name="xmlStreamPushNode ()" link="libxml2-pattern.html#xmlStreamPushNode"/>
+ <function name="xmlStreamWantsAnyNode ()" link="libxml2-pattern.html#xmlStreamWantsAnyNode"/>
+ <function name="xmlStringCurrentChar ()" link="libxml2-parserInternals.html#xmlStringCurrentChar"/>
+ <function name="xmlStringDecodeEntities ()" link="libxml2-parserInternals.html#xmlStringDecodeEntities"/>
+ <function name="xmlStringGetNodeList ()" link="libxml2-tree.html#xmlStringGetNodeList"/>
+ <function name="xmlStringLenDecodeEntities ()" link="libxml2-parserInternals.html#xmlStringLenDecodeEntities"/>
+ <function name="xmlStringLenGetNodeList ()" link="libxml2-tree.html#xmlStringLenGetNodeList"/>
+ <function name="xmlStrlen ()" link="libxml2-xmlstring.html#xmlStrlen"/>
+ <function name="xmlStrncasecmp ()" link="libxml2-xmlstring.html#xmlStrncasecmp"/>
+ <function name="xmlStrncat ()" link="libxml2-xmlstring.html#xmlStrncat"/>
+ <function name="xmlStrncatNew ()" link="libxml2-xmlstring.html#xmlStrncatNew"/>
+ <function name="xmlStrncmp ()" link="libxml2-xmlstring.html#xmlStrncmp"/>
+ <function name="xmlStrndup ()" link="libxml2-xmlstring.html#xmlStrndup"/>
+ <function name="xmlStrstr ()" link="libxml2-xmlstring.html#xmlStrstr"/>
+ <function name="xmlStrsub ()" link="libxml2-xmlstring.html#xmlStrsub"/>
+ <function name="xmlSubstituteEntitiesDefault ()" link="libxml2-parser.html#xmlSubstituteEntitiesDefault"/>
+ <function name="xmlSwitchEncoding ()" link="libxml2-parserInternals.html#xmlSwitchEncoding"/>
+ <function name="xmlSwitchInputEncoding ()" link="libxml2-parserInternals.html#xmlSwitchInputEncoding"/>
+ <function name="xmlSwitchToEncoding ()" link="libxml2-parserInternals.html#xmlSwitchToEncoding"/>
+ <function name="xmlTextConcat ()" link="libxml2-tree.html#xmlTextConcat"/>
+ <function name="xmlTextMerge ()" link="libxml2-tree.html#xmlTextMerge"/>
+ <function name="xmlTextReaderAttributeCount ()" link="libxml2-xmlreader.html#xmlTextReaderAttributeCount"/>
+ <function name="xmlTextReaderBaseUri ()" link="libxml2-xmlreader.html#xmlTextReaderBaseUri"/>
+ <function name="xmlTextReaderByteConsumed ()" link="libxml2-xmlreader.html#xmlTextReaderByteConsumed"/>
+ <function name="xmlTextReaderClose ()" link="libxml2-xmlreader.html#xmlTextReaderClose"/>
+ <function name="xmlTextReaderConstBaseUri ()" link="libxml2-xmlreader.html#xmlTextReaderConstBaseUri"/>
+ <function name="xmlTextReaderConstEncoding ()" link="libxml2-xmlreader.html#xmlTextReaderConstEncoding"/>
+ <function name="xmlTextReaderConstLocalName ()" link="libxml2-xmlreader.html#xmlTextReaderConstLocalName"/>
+ <function name="xmlTextReaderConstName ()" link="libxml2-xmlreader.html#xmlTextReaderConstName"/>
+ <function name="xmlTextReaderConstNamespaceUri ()" link="libxml2-xmlreader.html#xmlTextReaderConstNamespaceUri"/>
+ <function name="xmlTextReaderConstPrefix ()" link="libxml2-xmlreader.html#xmlTextReaderConstPrefix"/>
+ <function name="xmlTextReaderConstString ()" link="libxml2-xmlreader.html#xmlTextReaderConstString"/>
+ <function name="xmlTextReaderConstValue ()" link="libxml2-xmlreader.html#xmlTextReaderConstValue"/>
+ <function name="xmlTextReaderConstXmlLang ()" link="libxml2-xmlreader.html#xmlTextReaderConstXmlLang"/>
+ <function name="xmlTextReaderConstXmlVersion ()" link="libxml2-xmlreader.html#xmlTextReaderConstXmlVersion"/>
+ <function name="xmlTextReaderCurrentDoc ()" link="libxml2-xmlreader.html#xmlTextReaderCurrentDoc"/>
+ <function name="xmlTextReaderCurrentNode ()" link="libxml2-xmlreader.html#xmlTextReaderCurrentNode"/>
+ <function name="xmlTextReaderDepth ()" link="libxml2-xmlreader.html#xmlTextReaderDepth"/>
+ <function name="xmlTextReaderExpand ()" link="libxml2-xmlreader.html#xmlTextReaderExpand"/>
+ <function name="xmlTextReaderGetAttribute ()" link="libxml2-xmlreader.html#xmlTextReaderGetAttribute"/>
+ <function name="xmlTextReaderGetAttributeNo ()" link="libxml2-xmlreader.html#xmlTextReaderGetAttributeNo"/>
+ <function name="xmlTextReaderGetAttributeNs ()" link="libxml2-xmlreader.html#xmlTextReaderGetAttributeNs"/>
+ <function name="xmlTextReaderGetErrorHandler ()" link="libxml2-xmlreader.html#xmlTextReaderGetErrorHandler"/>
+ <function name="xmlTextReaderGetParserColumnNumber ()" link="libxml2-xmlreader.html#xmlTextReaderGetParserColumnNumber"/>
+ <function name="xmlTextReaderGetParserLineNumber ()" link="libxml2-xmlreader.html#xmlTextReaderGetParserLineNumber"/>
+ <function name="xmlTextReaderGetParserProp ()" link="libxml2-xmlreader.html#xmlTextReaderGetParserProp"/>
+ <function name="xmlTextReaderGetRemainder ()" link="libxml2-xmlreader.html#xmlTextReaderGetRemainder"/>
+ <function name="xmlTextReaderHasAttributes ()" link="libxml2-xmlreader.html#xmlTextReaderHasAttributes"/>
+ <function name="xmlTextReaderHasValue ()" link="libxml2-xmlreader.html#xmlTextReaderHasValue"/>
+ <function name="xmlTextReaderIsDefault ()" link="libxml2-xmlreader.html#xmlTextReaderIsDefault"/>
+ <function name="xmlTextReaderIsEmptyElement ()" link="libxml2-xmlreader.html#xmlTextReaderIsEmptyElement"/>
+ <function name="xmlTextReaderIsNamespaceDecl ()" link="libxml2-xmlreader.html#xmlTextReaderIsNamespaceDecl"/>
+ <function name="xmlTextReaderIsValid ()" link="libxml2-xmlreader.html#xmlTextReaderIsValid"/>
+ <function name="xmlTextReaderLocalName ()" link="libxml2-xmlreader.html#xmlTextReaderLocalName"/>
+ <function name="xmlTextReaderLocatorBaseURI ()" link="libxml2-xmlreader.html#xmlTextReaderLocatorBaseURI"/>
+ <function name="xmlTextReaderLocatorLineNumber ()" link="libxml2-xmlreader.html#xmlTextReaderLocatorLineNumber"/>
+ <function name="xmlTextReaderLookupNamespace ()" link="libxml2-xmlreader.html#xmlTextReaderLookupNamespace"/>
+ <function name="xmlTextReaderMoveToAttribute ()" link="libxml2-xmlreader.html#xmlTextReaderMoveToAttribute"/>
+ <function name="xmlTextReaderMoveToAttributeNo ()" link="libxml2-xmlreader.html#xmlTextReaderMoveToAttributeNo"/>
+ <function name="xmlTextReaderMoveToAttributeNs ()" link="libxml2-xmlreader.html#xmlTextReaderMoveToAttributeNs"/>
+ <function name="xmlTextReaderMoveToElement ()" link="libxml2-xmlreader.html#xmlTextReaderMoveToElement"/>
+ <function name="xmlTextReaderMoveToFirstAttribute ()" link="libxml2-xmlreader.html#xmlTextReaderMoveToFirstAttribute"/>
+ <function name="xmlTextReaderMoveToNextAttribute ()" link="libxml2-xmlreader.html#xmlTextReaderMoveToNextAttribute"/>
+ <function name="xmlTextReaderName ()" link="libxml2-xmlreader.html#xmlTextReaderName"/>
+ <function name="xmlTextReaderNamespaceUri ()" link="libxml2-xmlreader.html#xmlTextReaderNamespaceUri"/>
+ <function name="xmlTextReaderNext ()" link="libxml2-xmlreader.html#xmlTextReaderNext"/>
+ <function name="xmlTextReaderNextSibling ()" link="libxml2-xmlreader.html#xmlTextReaderNextSibling"/>
+ <function name="xmlTextReaderNodeType ()" link="libxml2-xmlreader.html#xmlTextReaderNodeType"/>
+ <function name="xmlTextReaderNormalization ()" link="libxml2-xmlreader.html#xmlTextReaderNormalization"/>
+ <function name="xmlTextReaderPrefix ()" link="libxml2-xmlreader.html#xmlTextReaderPrefix"/>
+ <function name="xmlTextReaderPreserve ()" link="libxml2-xmlreader.html#xmlTextReaderPreserve"/>
+ <function name="xmlTextReaderPreservePattern ()" link="libxml2-xmlreader.html#xmlTextReaderPreservePattern"/>
+ <function name="xmlTextReaderQuoteChar ()" link="libxml2-xmlreader.html#xmlTextReaderQuoteChar"/>
+ <function name="xmlTextReaderRead ()" link="libxml2-xmlreader.html#xmlTextReaderRead"/>
+ <function name="xmlTextReaderReadAttributeValue ()" link="libxml2-xmlreader.html#xmlTextReaderReadAttributeValue"/>
+ <function name="xmlTextReaderReadInnerXml ()" link="libxml2-xmlreader.html#xmlTextReaderReadInnerXml"/>
+ <function name="xmlTextReaderReadOuterXml ()" link="libxml2-xmlreader.html#xmlTextReaderReadOuterXml"/>
+ <function name="xmlTextReaderReadState ()" link="libxml2-xmlreader.html#xmlTextReaderReadState"/>
+ <function name="xmlTextReaderReadString ()" link="libxml2-xmlreader.html#xmlTextReaderReadString"/>
+ <function name="xmlTextReaderRelaxNGSetSchema ()" link="libxml2-xmlreader.html#xmlTextReaderRelaxNGSetSchema"/>
+ <function name="xmlTextReaderRelaxNGValidate ()" link="libxml2-xmlreader.html#xmlTextReaderRelaxNGValidate"/>
+ <function name="xmlTextReaderRelaxNGValidateCtxt ()" link="libxml2-xmlreader.html#xmlTextReaderRelaxNGValidateCtxt"/>
+ <function name="xmlTextReaderSchemaValidate ()" link="libxml2-xmlreader.html#xmlTextReaderSchemaValidate"/>
+ <function name="xmlTextReaderSchemaValidateCtxt ()" link="libxml2-xmlreader.html#xmlTextReaderSchemaValidateCtxt"/>
+ <function name="xmlTextReaderSetErrorHandler ()" link="libxml2-xmlreader.html#xmlTextReaderSetErrorHandler"/>
+ <function name="xmlTextReaderSetParserProp ()" link="libxml2-xmlreader.html#xmlTextReaderSetParserProp"/>
+ <function name="xmlTextReaderSetSchema ()" link="libxml2-xmlreader.html#xmlTextReaderSetSchema"/>
+ <function name="xmlTextReaderSetStructuredErrorHandler ()" link="libxml2-xmlreader.html#xmlTextReaderSetStructuredErrorHandler"/>
+ <function name="xmlTextReaderSetup ()" link="libxml2-xmlreader.html#xmlTextReaderSetup"/>
+ <function name="xmlTextReaderStandalone ()" link="libxml2-xmlreader.html#xmlTextReaderStandalone"/>
+ <function name="xmlTextReaderValue ()" link="libxml2-xmlreader.html#xmlTextReaderValue"/>
+ <function name="xmlTextReaderXmlLang ()" link="libxml2-xmlreader.html#xmlTextReaderXmlLang"/>
+ <function name="xmlTextWriterEndAttribute ()" link="libxml2-xmlwriter.html#xmlTextWriterEndAttribute"/>
+ <function name="xmlTextWriterEndCDATA ()" link="libxml2-xmlwriter.html#xmlTextWriterEndCDATA"/>
+ <function name="xmlTextWriterEndComment ()" link="libxml2-xmlwriter.html#xmlTextWriterEndComment"/>
+ <function name="xmlTextWriterEndDTD ()" link="libxml2-xmlwriter.html#xmlTextWriterEndDTD"/>
+ <function name="xmlTextWriterEndDTDAttlist ()" link="libxml2-xmlwriter.html#xmlTextWriterEndDTDAttlist"/>
+ <function name="xmlTextWriterEndDTDElement ()" link="libxml2-xmlwriter.html#xmlTextWriterEndDTDElement"/>
+ <function name="xmlTextWriterEndDTDEntity ()" link="libxml2-xmlwriter.html#xmlTextWriterEndDTDEntity"/>
+ <function name="xmlTextWriterEndDocument ()" link="libxml2-xmlwriter.html#xmlTextWriterEndDocument"/>
+ <function name="xmlTextWriterEndElement ()" link="libxml2-xmlwriter.html#xmlTextWriterEndElement"/>
+ <function name="xmlTextWriterEndPI ()" link="libxml2-xmlwriter.html#xmlTextWriterEndPI"/>
+ <function name="xmlTextWriterFlush ()" link="libxml2-xmlwriter.html#xmlTextWriterFlush"/>
+ <function name="xmlTextWriterFullEndElement ()" link="libxml2-xmlwriter.html#xmlTextWriterFullEndElement"/>
+ <function name="xmlTextWriterSetIndent ()" link="libxml2-xmlwriter.html#xmlTextWriterSetIndent"/>
+ <function name="xmlTextWriterSetIndentString ()" link="libxml2-xmlwriter.html#xmlTextWriterSetIndentString"/>
+ <function name="xmlTextWriterSetQuoteChar ()" link="libxml2-xmlwriter.html#xmlTextWriterSetQuoteChar"/>
+ <function name="xmlTextWriterStartAttribute ()" link="libxml2-xmlwriter.html#xmlTextWriterStartAttribute"/>
+ <function name="xmlTextWriterStartAttributeNS ()" link="libxml2-xmlwriter.html#xmlTextWriterStartAttributeNS"/>
+ <function name="xmlTextWriterStartCDATA ()" link="libxml2-xmlwriter.html#xmlTextWriterStartCDATA"/>
+ <function name="xmlTextWriterStartComment ()" link="libxml2-xmlwriter.html#xmlTextWriterStartComment"/>
+ <function name="xmlTextWriterStartDTD ()" link="libxml2-xmlwriter.html#xmlTextWriterStartDTD"/>
+ <function name="xmlTextWriterStartDTDAttlist ()" link="libxml2-xmlwriter.html#xmlTextWriterStartDTDAttlist"/>
+ <function name="xmlTextWriterStartDTDElement ()" link="libxml2-xmlwriter.html#xmlTextWriterStartDTDElement"/>
+ <function name="xmlTextWriterStartDTDEntity ()" link="libxml2-xmlwriter.html#xmlTextWriterStartDTDEntity"/>
+ <function name="xmlTextWriterStartDocument ()" link="libxml2-xmlwriter.html#xmlTextWriterStartDocument"/>
+ <function name="xmlTextWriterStartElement ()" link="libxml2-xmlwriter.html#xmlTextWriterStartElement"/>
+ <function name="xmlTextWriterStartElementNS ()" link="libxml2-xmlwriter.html#xmlTextWriterStartElementNS"/>
+ <function name="xmlTextWriterStartPI ()" link="libxml2-xmlwriter.html#xmlTextWriterStartPI"/>
+ <function name="xmlTextWriterWriteAttribute ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteAttribute"/>
+ <function name="xmlTextWriterWriteAttributeNS ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteAttributeNS"/>
+ <function name="xmlTextWriterWriteBase64 ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteBase64"/>
+ <function name="xmlTextWriterWriteBinHex ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteBinHex"/>
+ <function name="xmlTextWriterWriteCDATA ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteCDATA"/>
+ <function name="xmlTextWriterWriteComment ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteComment"/>
+ <function name="xmlTextWriterWriteDTD ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteDTD"/>
+ <function name="xmlTextWriterWriteDTDAttlist ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteDTDAttlist"/>
+ <function name="xmlTextWriterWriteDTDElement ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteDTDElement"/>
+ <function name="xmlTextWriterWriteDTDEntity ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteDTDEntity"/>
+ <function name="xmlTextWriterWriteDTDExternalEntity ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity"/>
+ <function name="xmlTextWriterWriteDTDExternalEntityContents ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents"/>
+ <function name="xmlTextWriterWriteDTDInternalEntity ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity"/>
+ <function name="xmlTextWriterWriteDTDNotation ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteDTDNotation"/>
+ <function name="xmlTextWriterWriteElement ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteElement"/>
+ <function name="xmlTextWriterWriteElementNS ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteElementNS"/>
+ <function name="xmlTextWriterWriteFormatAttribute ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatAttribute"/>
+ <function name="xmlTextWriterWriteFormatAttributeNS ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatAttributeNS"/>
+ <function name="xmlTextWriterWriteFormatCDATA ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatCDATA"/>
+ <function name="xmlTextWriterWriteFormatComment ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatComment"/>
+ <function name="xmlTextWriterWriteFormatDTD ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatDTD"/>
+ <function name="xmlTextWriterWriteFormatDTDAttlist ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatDTDAttlist"/>
+ <function name="xmlTextWriterWriteFormatDTDElement ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatDTDElement"/>
+ <function name="xmlTextWriterWriteFormatDTDInternalEntity ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatDTDInternalEntity"/>
+ <function name="xmlTextWriterWriteFormatElement ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatElement"/>
+ <function name="xmlTextWriterWriteFormatElementNS ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatElementNS"/>
+ <function name="xmlTextWriterWriteFormatPI ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatPI"/>
+ <function name="xmlTextWriterWriteFormatRaw ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatRaw"/>
+ <function name="xmlTextWriterWriteFormatString ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteFormatString"/>
+ <function name="xmlTextWriterWritePI ()" link="libxml2-xmlwriter.html#xmlTextWriterWritePI"/>
+ <function name="xmlTextWriterWriteRaw ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteRaw"/>
+ <function name="xmlTextWriterWriteRawLen ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteRawLen"/>
+ <function name="xmlTextWriterWriteString ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteString"/>
+ <function name="xmlTextWriterWriteVFormatAttribute ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatAttribute"/>
+ <function name="xmlTextWriterWriteVFormatAttributeNS ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatAttributeNS"/>
+ <function name="xmlTextWriterWriteVFormatCDATA ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatCDATA"/>
+ <function name="xmlTextWriterWriteVFormatComment ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatComment"/>
+ <function name="xmlTextWriterWriteVFormatDTD ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatDTD"/>
+ <function name="xmlTextWriterWriteVFormatDTDAttlist ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatDTDAttlist"/>
+ <function name="xmlTextWriterWriteVFormatDTDElement ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatDTDElement"/>
+ <function name="xmlTextWriterWriteVFormatDTDInternalEntity ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatDTDInternalEntity"/>
+ <function name="xmlTextWriterWriteVFormatElement ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatElement"/>
+ <function name="xmlTextWriterWriteVFormatElementNS ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatElementNS"/>
+ <function name="xmlTextWriterWriteVFormatPI ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatPI"/>
+ <function name="xmlTextWriterWriteVFormatRaw ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatRaw"/>
+ <function name="xmlTextWriterWriteVFormatString ()" link="libxml2-xmlwriter.html#xmlTextWriterWriteVFormatString"/>
+ <function name="xmlThrDefBufferAllocScheme ()" link="libxml2-globals.html#xmlThrDefBufferAllocScheme"/>
+ <function name="xmlThrDefDefaultBufferSize ()" link="libxml2-globals.html#xmlThrDefDefaultBufferSize"/>
+ <function name="xmlThrDefDeregisterNodeDefault ()" link="libxml2-globals.html#xmlThrDefDeregisterNodeDefault"/>
+ <function name="xmlThrDefDoValidityCheckingDefaultValue ()" link="libxml2-globals.html#xmlThrDefDoValidityCheckingDefaultValue"/>
+ <function name="xmlThrDefGetWarningsDefaultValue ()" link="libxml2-globals.html#xmlThrDefGetWarningsDefaultValue"/>
+ <function name="xmlThrDefIndentTreeOutput ()" link="libxml2-globals.html#xmlThrDefIndentTreeOutput"/>
+ <function name="xmlThrDefKeepBlanksDefaultValue ()" link="libxml2-globals.html#xmlThrDefKeepBlanksDefaultValue"/>
+ <function name="xmlThrDefLineNumbersDefaultValue ()" link="libxml2-globals.html#xmlThrDefLineNumbersDefaultValue"/>
+ <function name="xmlThrDefLoadExtDtdDefaultValue ()" link="libxml2-globals.html#xmlThrDefLoadExtDtdDefaultValue"/>
+ <function name="xmlThrDefOutputBufferCreateFilenameDefault ()" link="libxml2-globals.html#xmlThrDefOutputBufferCreateFilenameDefault"/>
+ <function name="xmlThrDefParserDebugEntities ()" link="libxml2-globals.html#xmlThrDefParserDebugEntities"/>
+ <function name="xmlThrDefParserInputBufferCreateFilenameDefault ()" link="libxml2-globals.html#xmlThrDefParserInputBufferCreateFilenameDefault"/>
+ <function name="xmlThrDefPedanticParserDefaultValue ()" link="libxml2-globals.html#xmlThrDefPedanticParserDefaultValue"/>
+ <function name="xmlThrDefRegisterNodeDefault ()" link="libxml2-globals.html#xmlThrDefRegisterNodeDefault"/>
+ <function name="xmlThrDefSaveNoEmptyTags ()" link="libxml2-globals.html#xmlThrDefSaveNoEmptyTags"/>
+ <function name="xmlThrDefSetGenericErrorFunc ()" link="libxml2-globals.html#xmlThrDefSetGenericErrorFunc"/>
+ <function name="xmlThrDefSetStructuredErrorFunc ()" link="libxml2-globals.html#xmlThrDefSetStructuredErrorFunc"/>
+ <function name="xmlThrDefSubstituteEntitiesDefaultValue ()" link="libxml2-globals.html#xmlThrDefSubstituteEntitiesDefaultValue"/>
+ <function name="xmlThrDefTreeIndentString ()" link="libxml2-globals.html#xmlThrDefTreeIndentString"/>
+ <function name="xmlUCSIsAegeanNumbers ()" link="libxml2-xmlunicode.html#xmlUCSIsAegeanNumbers"/>
+ <function name="xmlUCSIsAlphabeticPresentationForms ()" link="libxml2-xmlunicode.html#xmlUCSIsAlphabeticPresentationForms"/>
+ <function name="xmlUCSIsArabic ()" link="libxml2-xmlunicode.html#xmlUCSIsArabic"/>
+ <function name="xmlUCSIsArabicPresentationFormsA ()" link="libxml2-xmlunicode.html#xmlUCSIsArabicPresentationFormsA"/>
+ <function name="xmlUCSIsArabicPresentationFormsB ()" link="libxml2-xmlunicode.html#xmlUCSIsArabicPresentationFormsB"/>
+ <function name="xmlUCSIsArmenian ()" link="libxml2-xmlunicode.html#xmlUCSIsArmenian"/>
+ <function name="xmlUCSIsArrows ()" link="libxml2-xmlunicode.html#xmlUCSIsArrows"/>
+ <function name="xmlUCSIsBasicLatin ()" link="libxml2-xmlunicode.html#xmlUCSIsBasicLatin"/>
+ <function name="xmlUCSIsBengali ()" link="libxml2-xmlunicode.html#xmlUCSIsBengali"/>
+ <function name="xmlUCSIsBlock ()" link="libxml2-xmlunicode.html#xmlUCSIsBlock"/>
+ <function name="xmlUCSIsBlockElements ()" link="libxml2-xmlunicode.html#xmlUCSIsBlockElements"/>
+ <function name="xmlUCSIsBopomofo ()" link="libxml2-xmlunicode.html#xmlUCSIsBopomofo"/>
+ <function name="xmlUCSIsBopomofoExtended ()" link="libxml2-xmlunicode.html#xmlUCSIsBopomofoExtended"/>
+ <function name="xmlUCSIsBoxDrawing ()" link="libxml2-xmlunicode.html#xmlUCSIsBoxDrawing"/>
+ <function name="xmlUCSIsBraillePatterns ()" link="libxml2-xmlunicode.html#xmlUCSIsBraillePatterns"/>
+ <function name="xmlUCSIsBuhid ()" link="libxml2-xmlunicode.html#xmlUCSIsBuhid"/>
+ <function name="xmlUCSIsByzantineMusicalSymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsByzantineMusicalSymbols"/>
+ <function name="xmlUCSIsCJKCompatibility ()" link="libxml2-xmlunicode.html#xmlUCSIsCJKCompatibility"/>
+ <function name="xmlUCSIsCJKCompatibilityForms ()" link="libxml2-xmlunicode.html#xmlUCSIsCJKCompatibilityForms"/>
+ <function name="xmlUCSIsCJKCompatibilityIdeographs ()" link="libxml2-xmlunicode.html#xmlUCSIsCJKCompatibilityIdeographs"/>
+ <function name="xmlUCSIsCJKCompatibilityIdeographsSupplement ()" link="libxml2-xmlunicode.html#xmlUCSIsCJKCompatibilityIdeographsSupplement"/>
+ <function name="xmlUCSIsCJKRadicalsSupplement ()" link="libxml2-xmlunicode.html#xmlUCSIsCJKRadicalsSupplement"/>
+ <function name="xmlUCSIsCJKSymbolsandPunctuation ()" link="libxml2-xmlunicode.html#xmlUCSIsCJKSymbolsandPunctuation"/>
+ <function name="xmlUCSIsCJKUnifiedIdeographs ()" link="libxml2-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographs"/>
+ <function name="xmlUCSIsCJKUnifiedIdeographsExtensionA ()" link="libxml2-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographsExtensionA"/>
+ <function name="xmlUCSIsCJKUnifiedIdeographsExtensionB ()" link="libxml2-xmlunicode.html#xmlUCSIsCJKUnifiedIdeographsExtensionB"/>
+ <function name="xmlUCSIsCat ()" link="libxml2-xmlunicode.html#xmlUCSIsCat"/>
+ <function name="xmlUCSIsCatC ()" link="libxml2-xmlunicode.html#xmlUCSIsCatC"/>
+ <function name="xmlUCSIsCatCc ()" link="libxml2-xmlunicode.html#xmlUCSIsCatCc"/>
+ <function name="xmlUCSIsCatCf ()" link="libxml2-xmlunicode.html#xmlUCSIsCatCf"/>
+ <function name="xmlUCSIsCatCo ()" link="libxml2-xmlunicode.html#xmlUCSIsCatCo"/>
+ <function name="xmlUCSIsCatCs ()" link="libxml2-xmlunicode.html#xmlUCSIsCatCs"/>
+ <function name="xmlUCSIsCatL ()" link="libxml2-xmlunicode.html#xmlUCSIsCatL"/>
+ <function name="xmlUCSIsCatLl ()" link="libxml2-xmlunicode.html#xmlUCSIsCatLl"/>
+ <function name="xmlUCSIsCatLm ()" link="libxml2-xmlunicode.html#xmlUCSIsCatLm"/>
+ <function name="xmlUCSIsCatLo ()" link="libxml2-xmlunicode.html#xmlUCSIsCatLo"/>
+ <function name="xmlUCSIsCatLt ()" link="libxml2-xmlunicode.html#xmlUCSIsCatLt"/>
+ <function name="xmlUCSIsCatLu ()" link="libxml2-xmlunicode.html#xmlUCSIsCatLu"/>
+ <function name="xmlUCSIsCatM ()" link="libxml2-xmlunicode.html#xmlUCSIsCatM"/>
+ <function name="xmlUCSIsCatMc ()" link="libxml2-xmlunicode.html#xmlUCSIsCatMc"/>
+ <function name="xmlUCSIsCatMe ()" link="libxml2-xmlunicode.html#xmlUCSIsCatMe"/>
+ <function name="xmlUCSIsCatMn ()" link="libxml2-xmlunicode.html#xmlUCSIsCatMn"/>
+ <function name="xmlUCSIsCatN ()" link="libxml2-xmlunicode.html#xmlUCSIsCatN"/>
+ <function name="xmlUCSIsCatNd ()" link="libxml2-xmlunicode.html#xmlUCSIsCatNd"/>
+ <function name="xmlUCSIsCatNl ()" link="libxml2-xmlunicode.html#xmlUCSIsCatNl"/>
+ <function name="xmlUCSIsCatNo ()" link="libxml2-xmlunicode.html#xmlUCSIsCatNo"/>
+ <function name="xmlUCSIsCatP ()" link="libxml2-xmlunicode.html#xmlUCSIsCatP"/>
+ <function name="xmlUCSIsCatPc ()" link="libxml2-xmlunicode.html#xmlUCSIsCatPc"/>
+ <function name="xmlUCSIsCatPd ()" link="libxml2-xmlunicode.html#xmlUCSIsCatPd"/>
+ <function name="xmlUCSIsCatPe ()" link="libxml2-xmlunicode.html#xmlUCSIsCatPe"/>
+ <function name="xmlUCSIsCatPf ()" link="libxml2-xmlunicode.html#xmlUCSIsCatPf"/>
+ <function name="xmlUCSIsCatPi ()" link="libxml2-xmlunicode.html#xmlUCSIsCatPi"/>
+ <function name="xmlUCSIsCatPo ()" link="libxml2-xmlunicode.html#xmlUCSIsCatPo"/>
+ <function name="xmlUCSIsCatPs ()" link="libxml2-xmlunicode.html#xmlUCSIsCatPs"/>
+ <function name="xmlUCSIsCatS ()" link="libxml2-xmlunicode.html#xmlUCSIsCatS"/>
+ <function name="xmlUCSIsCatSc ()" link="libxml2-xmlunicode.html#xmlUCSIsCatSc"/>
+ <function name="xmlUCSIsCatSk ()" link="libxml2-xmlunicode.html#xmlUCSIsCatSk"/>
+ <function name="xmlUCSIsCatSm ()" link="libxml2-xmlunicode.html#xmlUCSIsCatSm"/>
+ <function name="xmlUCSIsCatSo ()" link="libxml2-xmlunicode.html#xmlUCSIsCatSo"/>
+ <function name="xmlUCSIsCatZ ()" link="libxml2-xmlunicode.html#xmlUCSIsCatZ"/>
+ <function name="xmlUCSIsCatZl ()" link="libxml2-xmlunicode.html#xmlUCSIsCatZl"/>
+ <function name="xmlUCSIsCatZp ()" link="libxml2-xmlunicode.html#xmlUCSIsCatZp"/>
+ <function name="xmlUCSIsCatZs ()" link="libxml2-xmlunicode.html#xmlUCSIsCatZs"/>
+ <function name="xmlUCSIsCherokee ()" link="libxml2-xmlunicode.html#xmlUCSIsCherokee"/>
+ <function name="xmlUCSIsCombiningDiacriticalMarks ()" link="libxml2-xmlunicode.html#xmlUCSIsCombiningDiacriticalMarks"/>
+ <function name="xmlUCSIsCombiningDiacriticalMarksforSymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsCombiningDiacriticalMarksforSymbols"/>
+ <function name="xmlUCSIsCombiningHalfMarks ()" link="libxml2-xmlunicode.html#xmlUCSIsCombiningHalfMarks"/>
+ <function name="xmlUCSIsCombiningMarksforSymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsCombiningMarksforSymbols"/>
+ <function name="xmlUCSIsControlPictures ()" link="libxml2-xmlunicode.html#xmlUCSIsControlPictures"/>
+ <function name="xmlUCSIsCurrencySymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsCurrencySymbols"/>
+ <function name="xmlUCSIsCypriotSyllabary ()" link="libxml2-xmlunicode.html#xmlUCSIsCypriotSyllabary"/>
+ <function name="xmlUCSIsCyrillic ()" link="libxml2-xmlunicode.html#xmlUCSIsCyrillic"/>
+ <function name="xmlUCSIsCyrillicSupplement ()" link="libxml2-xmlunicode.html#xmlUCSIsCyrillicSupplement"/>
+ <function name="xmlUCSIsDeseret ()" link="libxml2-xmlunicode.html#xmlUCSIsDeseret"/>
+ <function name="xmlUCSIsDevanagari ()" link="libxml2-xmlunicode.html#xmlUCSIsDevanagari"/>
+ <function name="xmlUCSIsDingbats ()" link="libxml2-xmlunicode.html#xmlUCSIsDingbats"/>
+ <function name="xmlUCSIsEnclosedAlphanumerics ()" link="libxml2-xmlunicode.html#xmlUCSIsEnclosedAlphanumerics"/>
+ <function name="xmlUCSIsEnclosedCJKLettersandMonths ()" link="libxml2-xmlunicode.html#xmlUCSIsEnclosedCJKLettersandMonths"/>
+ <function name="xmlUCSIsEthiopic ()" link="libxml2-xmlunicode.html#xmlUCSIsEthiopic"/>
+ <function name="xmlUCSIsGeneralPunctuation ()" link="libxml2-xmlunicode.html#xmlUCSIsGeneralPunctuation"/>
+ <function name="xmlUCSIsGeometricShapes ()" link="libxml2-xmlunicode.html#xmlUCSIsGeometricShapes"/>
+ <function name="xmlUCSIsGeorgian ()" link="libxml2-xmlunicode.html#xmlUCSIsGeorgian"/>
+ <function name="xmlUCSIsGothic ()" link="libxml2-xmlunicode.html#xmlUCSIsGothic"/>
+ <function name="xmlUCSIsGreek ()" link="libxml2-xmlunicode.html#xmlUCSIsGreek"/>
+ <function name="xmlUCSIsGreekExtended ()" link="libxml2-xmlunicode.html#xmlUCSIsGreekExtended"/>
+ <function name="xmlUCSIsGreekandCoptic ()" link="libxml2-xmlunicode.html#xmlUCSIsGreekandCoptic"/>
+ <function name="xmlUCSIsGujarati ()" link="libxml2-xmlunicode.html#xmlUCSIsGujarati"/>
+ <function name="xmlUCSIsGurmukhi ()" link="libxml2-xmlunicode.html#xmlUCSIsGurmukhi"/>
+ <function name="xmlUCSIsHalfwidthandFullwidthForms ()" link="libxml2-xmlunicode.html#xmlUCSIsHalfwidthandFullwidthForms"/>
+ <function name="xmlUCSIsHangulCompatibilityJamo ()" link="libxml2-xmlunicode.html#xmlUCSIsHangulCompatibilityJamo"/>
+ <function name="xmlUCSIsHangulJamo ()" link="libxml2-xmlunicode.html#xmlUCSIsHangulJamo"/>
+ <function name="xmlUCSIsHangulSyllables ()" link="libxml2-xmlunicode.html#xmlUCSIsHangulSyllables"/>
+ <function name="xmlUCSIsHanunoo ()" link="libxml2-xmlunicode.html#xmlUCSIsHanunoo"/>
+ <function name="xmlUCSIsHebrew ()" link="libxml2-xmlunicode.html#xmlUCSIsHebrew"/>
+ <function name="xmlUCSIsHighPrivateUseSurrogates ()" link="libxml2-xmlunicode.html#xmlUCSIsHighPrivateUseSurrogates"/>
+ <function name="xmlUCSIsHighSurrogates ()" link="libxml2-xmlunicode.html#xmlUCSIsHighSurrogates"/>
+ <function name="xmlUCSIsHiragana ()" link="libxml2-xmlunicode.html#xmlUCSIsHiragana"/>
+ <function name="xmlUCSIsIPAExtensions ()" link="libxml2-xmlunicode.html#xmlUCSIsIPAExtensions"/>
+ <function name="xmlUCSIsIdeographicDescriptionCharacters ()" link="libxml2-xmlunicode.html#xmlUCSIsIdeographicDescriptionCharacters"/>
+ <function name="xmlUCSIsKanbun ()" link="libxml2-xmlunicode.html#xmlUCSIsKanbun"/>
+ <function name="xmlUCSIsKangxiRadicals ()" link="libxml2-xmlunicode.html#xmlUCSIsKangxiRadicals"/>
+ <function name="xmlUCSIsKannada ()" link="libxml2-xmlunicode.html#xmlUCSIsKannada"/>
+ <function name="xmlUCSIsKatakana ()" link="libxml2-xmlunicode.html#xmlUCSIsKatakana"/>
+ <function name="xmlUCSIsKatakanaPhoneticExtensions ()" link="libxml2-xmlunicode.html#xmlUCSIsKatakanaPhoneticExtensions"/>
+ <function name="xmlUCSIsKhmer ()" link="libxml2-xmlunicode.html#xmlUCSIsKhmer"/>
+ <function name="xmlUCSIsKhmerSymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsKhmerSymbols"/>
+ <function name="xmlUCSIsLao ()" link="libxml2-xmlunicode.html#xmlUCSIsLao"/>
+ <function name="xmlUCSIsLatin1Supplement ()" link="libxml2-xmlunicode.html#xmlUCSIsLatin1Supplement"/>
+ <function name="xmlUCSIsLatinExtendedA ()" link="libxml2-xmlunicode.html#xmlUCSIsLatinExtendedA"/>
+ <function name="xmlUCSIsLatinExtendedAdditional ()" link="libxml2-xmlunicode.html#xmlUCSIsLatinExtendedAdditional"/>
+ <function name="xmlUCSIsLatinExtendedB ()" link="libxml2-xmlunicode.html#xmlUCSIsLatinExtendedB"/>
+ <function name="xmlUCSIsLetterlikeSymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsLetterlikeSymbols"/>
+ <function name="xmlUCSIsLimbu ()" link="libxml2-xmlunicode.html#xmlUCSIsLimbu"/>
+ <function name="xmlUCSIsLinearBIdeograms ()" link="libxml2-xmlunicode.html#xmlUCSIsLinearBIdeograms"/>
+ <function name="xmlUCSIsLinearBSyllabary ()" link="libxml2-xmlunicode.html#xmlUCSIsLinearBSyllabary"/>
+ <function name="xmlUCSIsLowSurrogates ()" link="libxml2-xmlunicode.html#xmlUCSIsLowSurrogates"/>
+ <function name="xmlUCSIsMalayalam ()" link="libxml2-xmlunicode.html#xmlUCSIsMalayalam"/>
+ <function name="xmlUCSIsMathematicalAlphanumericSymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsMathematicalAlphanumericSymbols"/>
+ <function name="xmlUCSIsMathematicalOperators ()" link="libxml2-xmlunicode.html#xmlUCSIsMathematicalOperators"/>
+ <function name="xmlUCSIsMiscellaneousMathematicalSymbolsA ()" link="libxml2-xmlunicode.html#xmlUCSIsMiscellaneousMathematicalSymbolsA"/>
+ <function name="xmlUCSIsMiscellaneousMathematicalSymbolsB ()" link="libxml2-xmlunicode.html#xmlUCSIsMiscellaneousMathematicalSymbolsB"/>
+ <function name="xmlUCSIsMiscellaneousSymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsMiscellaneousSymbols"/>
+ <function name="xmlUCSIsMiscellaneousSymbolsandArrows ()" link="libxml2-xmlunicode.html#xmlUCSIsMiscellaneousSymbolsandArrows"/>
+ <function name="xmlUCSIsMiscellaneousTechnical ()" link="libxml2-xmlunicode.html#xmlUCSIsMiscellaneousTechnical"/>
+ <function name="xmlUCSIsMongolian ()" link="libxml2-xmlunicode.html#xmlUCSIsMongolian"/>
+ <function name="xmlUCSIsMusicalSymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsMusicalSymbols"/>
+ <function name="xmlUCSIsMyanmar ()" link="libxml2-xmlunicode.html#xmlUCSIsMyanmar"/>
+ <function name="xmlUCSIsNumberForms ()" link="libxml2-xmlunicode.html#xmlUCSIsNumberForms"/>
+ <function name="xmlUCSIsOgham ()" link="libxml2-xmlunicode.html#xmlUCSIsOgham"/>
+ <function name="xmlUCSIsOldItalic ()" link="libxml2-xmlunicode.html#xmlUCSIsOldItalic"/>
+ <function name="xmlUCSIsOpticalCharacterRecognition ()" link="libxml2-xmlunicode.html#xmlUCSIsOpticalCharacterRecognition"/>
+ <function name="xmlUCSIsOriya ()" link="libxml2-xmlunicode.html#xmlUCSIsOriya"/>
+ <function name="xmlUCSIsOsmanya ()" link="libxml2-xmlunicode.html#xmlUCSIsOsmanya"/>
+ <function name="xmlUCSIsPhoneticExtensions ()" link="libxml2-xmlunicode.html#xmlUCSIsPhoneticExtensions"/>
+ <function name="xmlUCSIsPrivateUse ()" link="libxml2-xmlunicode.html#xmlUCSIsPrivateUse"/>
+ <function name="xmlUCSIsPrivateUseArea ()" link="libxml2-xmlunicode.html#xmlUCSIsPrivateUseArea"/>
+ <function name="xmlUCSIsRunic ()" link="libxml2-xmlunicode.html#xmlUCSIsRunic"/>
+ <function name="xmlUCSIsShavian ()" link="libxml2-xmlunicode.html#xmlUCSIsShavian"/>
+ <function name="xmlUCSIsSinhala ()" link="libxml2-xmlunicode.html#xmlUCSIsSinhala"/>
+ <function name="xmlUCSIsSmallFormVariants ()" link="libxml2-xmlunicode.html#xmlUCSIsSmallFormVariants"/>
+ <function name="xmlUCSIsSpacingModifierLetters ()" link="libxml2-xmlunicode.html#xmlUCSIsSpacingModifierLetters"/>
+ <function name="xmlUCSIsSpecials ()" link="libxml2-xmlunicode.html#xmlUCSIsSpecials"/>
+ <function name="xmlUCSIsSuperscriptsandSubscripts ()" link="libxml2-xmlunicode.html#xmlUCSIsSuperscriptsandSubscripts"/>
+ <function name="xmlUCSIsSupplementalArrowsA ()" link="libxml2-xmlunicode.html#xmlUCSIsSupplementalArrowsA"/>
+ <function name="xmlUCSIsSupplementalArrowsB ()" link="libxml2-xmlunicode.html#xmlUCSIsSupplementalArrowsB"/>
+ <function name="xmlUCSIsSupplementalMathematicalOperators ()" link="libxml2-xmlunicode.html#xmlUCSIsSupplementalMathematicalOperators"/>
+ <function name="xmlUCSIsSupplementaryPrivateUseAreaA ()" link="libxml2-xmlunicode.html#xmlUCSIsSupplementaryPrivateUseAreaA"/>
+ <function name="xmlUCSIsSupplementaryPrivateUseAreaB ()" link="libxml2-xmlunicode.html#xmlUCSIsSupplementaryPrivateUseAreaB"/>
+ <function name="xmlUCSIsSyriac ()" link="libxml2-xmlunicode.html#xmlUCSIsSyriac"/>
+ <function name="xmlUCSIsTagalog ()" link="libxml2-xmlunicode.html#xmlUCSIsTagalog"/>
+ <function name="xmlUCSIsTagbanwa ()" link="libxml2-xmlunicode.html#xmlUCSIsTagbanwa"/>
+ <function name="xmlUCSIsTags ()" link="libxml2-xmlunicode.html#xmlUCSIsTags"/>
+ <function name="xmlUCSIsTaiLe ()" link="libxml2-xmlunicode.html#xmlUCSIsTaiLe"/>
+ <function name="xmlUCSIsTaiXuanJingSymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsTaiXuanJingSymbols"/>
+ <function name="xmlUCSIsTamil ()" link="libxml2-xmlunicode.html#xmlUCSIsTamil"/>
+ <function name="xmlUCSIsTelugu ()" link="libxml2-xmlunicode.html#xmlUCSIsTelugu"/>
+ <function name="xmlUCSIsThaana ()" link="libxml2-xmlunicode.html#xmlUCSIsThaana"/>
+ <function name="xmlUCSIsThai ()" link="libxml2-xmlunicode.html#xmlUCSIsThai"/>
+ <function name="xmlUCSIsTibetan ()" link="libxml2-xmlunicode.html#xmlUCSIsTibetan"/>
+ <function name="xmlUCSIsUgaritic ()" link="libxml2-xmlunicode.html#xmlUCSIsUgaritic"/>
+ <function name="xmlUCSIsUnifiedCanadianAboriginalSyllabics ()" link="libxml2-xmlunicode.html#xmlUCSIsUnifiedCanadianAboriginalSyllabics"/>
+ <function name="xmlUCSIsVariationSelectors ()" link="libxml2-xmlunicode.html#xmlUCSIsVariationSelectors"/>
+ <function name="xmlUCSIsVariationSelectorsSupplement ()" link="libxml2-xmlunicode.html#xmlUCSIsVariationSelectorsSupplement"/>
+ <function name="xmlUCSIsYiRadicals ()" link="libxml2-xmlunicode.html#xmlUCSIsYiRadicals"/>
+ <function name="xmlUCSIsYiSyllables ()" link="libxml2-xmlunicode.html#xmlUCSIsYiSyllables"/>
+ <function name="xmlUCSIsYijingHexagramSymbols ()" link="libxml2-xmlunicode.html#xmlUCSIsYijingHexagramSymbols"/>
+ <function name="xmlURIEscape ()" link="libxml2-uri.html#xmlURIEscape"/>
+ <function name="xmlURIEscapeStr ()" link="libxml2-uri.html#xmlURIEscapeStr"/>
+ <function name="xmlURIUnescapeString ()" link="libxml2-uri.html#xmlURIUnescapeString"/>
+ <function name="xmlUTF8Charcmp ()" link="libxml2-xmlstring.html#xmlUTF8Charcmp"/>
+ <function name="xmlUTF8Size ()" link="libxml2-xmlstring.html#xmlUTF8Size"/>
+ <function name="xmlUTF8Strlen ()" link="libxml2-xmlstring.html#xmlUTF8Strlen"/>
+ <function name="xmlUTF8Strloc ()" link="libxml2-xmlstring.html#xmlUTF8Strloc"/>
+ <function name="xmlUTF8Strndup ()" link="libxml2-xmlstring.html#xmlUTF8Strndup"/>
+ <function name="xmlUTF8Strpos ()" link="libxml2-xmlstring.html#xmlUTF8Strpos"/>
+ <function name="xmlUTF8Strsize ()" link="libxml2-xmlstring.html#xmlUTF8Strsize"/>
+ <function name="xmlUTF8Strsub ()" link="libxml2-xmlstring.html#xmlUTF8Strsub"/>
+ <function name="xmlUnlinkNode ()" link="libxml2-tree.html#xmlUnlinkNode"/>
+ <function name="xmlUnlockLibrary ()" link="libxml2-threads.html#xmlUnlockLibrary"/>
+ <function name="xmlUnsetNsProp ()" link="libxml2-tree.html#xmlUnsetNsProp"/>
+ <function name="xmlUnsetProp ()" link="libxml2-tree.html#xmlUnsetProp"/>
+ <function name="xmlValidBuildContentModel ()" link="libxml2-valid.html#xmlValidBuildContentModel"/>
+ <function name="xmlValidCtxtNormalizeAttributeValue ()" link="libxml2-valid.html#xmlValidCtxtNormalizeAttributeValue"/>
+ <function name="xmlValidGetPotentialChildren ()" link="libxml2-valid.html#xmlValidGetPotentialChildren"/>
+ <function name="xmlValidGetValidElements ()" link="libxml2-valid.html#xmlValidGetValidElements"/>
+ <function name="xmlValidNormalizeAttributeValue ()" link="libxml2-valid.html#xmlValidNormalizeAttributeValue"/>
+ <function name="xmlValidateAttributeDecl ()" link="libxml2-valid.html#xmlValidateAttributeDecl"/>
+ <function name="xmlValidateAttributeValue ()" link="libxml2-valid.html#xmlValidateAttributeValue"/>
+ <function name="xmlValidateDocument ()" link="libxml2-valid.html#xmlValidateDocument"/>
+ <function name="xmlValidateDocumentFinal ()" link="libxml2-valid.html#xmlValidateDocumentFinal"/>
+ <function name="xmlValidateDtd ()" link="libxml2-valid.html#xmlValidateDtd"/>
+ <function name="xmlValidateDtdFinal ()" link="libxml2-valid.html#xmlValidateDtdFinal"/>
+ <function name="xmlValidateElement ()" link="libxml2-valid.html#xmlValidateElement"/>
+ <function name="xmlValidateElementDecl ()" link="libxml2-valid.html#xmlValidateElementDecl"/>
+ <function name="xmlValidateNCName ()" link="libxml2-tree.html#xmlValidateNCName"/>
+ <function name="xmlValidateNMToken ()" link="libxml2-tree.html#xmlValidateNMToken"/>
+ <function name="xmlValidateName ()" link="libxml2-tree.html#xmlValidateName"/>
+ <function name="xmlValidateNameValue ()" link="libxml2-valid.html#xmlValidateNameValue"/>
+ <function name="xmlValidateNamesValue ()" link="libxml2-valid.html#xmlValidateNamesValue"/>
+ <function name="xmlValidateNmtokenValue ()" link="libxml2-valid.html#xmlValidateNmtokenValue"/>
+ <function name="xmlValidateNmtokensValue ()" link="libxml2-valid.html#xmlValidateNmtokensValue"/>
+ <function name="xmlValidateNotationDecl ()" link="libxml2-valid.html#xmlValidateNotationDecl"/>
+ <function name="xmlValidateNotationUse ()" link="libxml2-valid.html#xmlValidateNotationUse"/>
+ <function name="xmlValidateOneAttribute ()" link="libxml2-valid.html#xmlValidateOneAttribute"/>
+ <function name="xmlValidateOneElement ()" link="libxml2-valid.html#xmlValidateOneElement"/>
+ <function name="xmlValidateOneNamespace ()" link="libxml2-valid.html#xmlValidateOneNamespace"/>
+ <function name="xmlValidatePopElement ()" link="libxml2-valid.html#xmlValidatePopElement"/>
+ <function name="xmlValidatePushCData ()" link="libxml2-valid.html#xmlValidatePushCData"/>
+ <function name="xmlValidatePushElement ()" link="libxml2-valid.html#xmlValidatePushElement"/>
+ <function name="xmlValidateQName ()" link="libxml2-tree.html#xmlValidateQName"/>
+ <function name="xmlValidateRoot ()" link="libxml2-valid.html#xmlValidateRoot"/>
+ <function name="xmlXIncludeFreeContext ()" link="libxml2-xinclude.html#xmlXIncludeFreeContext"/>
+ <function name="xmlXIncludeNewContext ()" link="libxml2-xinclude.html#xmlXIncludeNewContext"/>
+ <function name="xmlXIncludeProcess ()" link="libxml2-xinclude.html#xmlXIncludeProcess"/>
+ <function name="xmlXIncludeProcessFlags ()" link="libxml2-xinclude.html#xmlXIncludeProcessFlags"/>
+ <function name="xmlXIncludeProcessFlagsData ()" link="libxml2-xinclude.html#xmlXIncludeProcessFlagsData"/>
+ <function name="xmlXIncludeProcessNode ()" link="libxml2-xinclude.html#xmlXIncludeProcessNode"/>
+ <function name="xmlXIncludeProcessTree ()" link="libxml2-xinclude.html#xmlXIncludeProcessTree"/>
+ <function name="xmlXIncludeProcessTreeFlags ()" link="libxml2-xinclude.html#xmlXIncludeProcessTreeFlags"/>
+ <function name="xmlXIncludeProcessTreeFlagsData ()" link="libxml2-xinclude.html#xmlXIncludeProcessTreeFlagsData"/>
+ <function name="xmlXIncludeSetFlags ()" link="libxml2-xinclude.html#xmlXIncludeSetFlags"/>
+ <function name="xmlXPathAddValues ()" link="libxml2-xpathInternals.html#xmlXPathAddValues"/>
+ <function name="xmlXPathBooleanFunction ()" link="libxml2-xpathInternals.html#xmlXPathBooleanFunction"/>
+ <function name="xmlXPathCastBooleanToNumber ()" link="libxml2-xpath.html#xmlXPathCastBooleanToNumber"/>
+ <function name="xmlXPathCastBooleanToString ()" link="libxml2-xpath.html#xmlXPathCastBooleanToString"/>
+ <function name="xmlXPathCastNodeSetToBoolean ()" link="libxml2-xpath.html#xmlXPathCastNodeSetToBoolean"/>
+ <function name="xmlXPathCastNodeSetToNumber ()" link="libxml2-xpath.html#xmlXPathCastNodeSetToNumber"/>
+ <function name="xmlXPathCastNodeSetToString ()" link="libxml2-xpath.html#xmlXPathCastNodeSetToString"/>
+ <function name="xmlXPathCastNodeToNumber ()" link="libxml2-xpath.html#xmlXPathCastNodeToNumber"/>
+ <function name="xmlXPathCastNodeToString ()" link="libxml2-xpath.html#xmlXPathCastNodeToString"/>
+ <function name="xmlXPathCastNumberToBoolean ()" link="libxml2-xpath.html#xmlXPathCastNumberToBoolean"/>
+ <function name="xmlXPathCastNumberToString ()" link="libxml2-xpath.html#xmlXPathCastNumberToString"/>
+ <function name="xmlXPathCastStringToBoolean ()" link="libxml2-xpath.html#xmlXPathCastStringToBoolean"/>
+ <function name="xmlXPathCastStringToNumber ()" link="libxml2-xpath.html#xmlXPathCastStringToNumber"/>
+ <function name="xmlXPathCastToBoolean ()" link="libxml2-xpath.html#xmlXPathCastToBoolean"/>
+ <function name="xmlXPathCastToNumber ()" link="libxml2-xpath.html#xmlXPathCastToNumber"/>
+ <function name="xmlXPathCastToString ()" link="libxml2-xpath.html#xmlXPathCastToString"/>
+ <function name="xmlXPathCeilingFunction ()" link="libxml2-xpathInternals.html#xmlXPathCeilingFunction"/>
+ <function name="xmlXPathCmpNodes ()" link="libxml2-xpath.html#xmlXPathCmpNodes"/>
+ <function name="xmlXPathCompareValues ()" link="libxml2-xpathInternals.html#xmlXPathCompareValues"/>
+ <function name="xmlXPathCompile ()" link="libxml2-xpath.html#xmlXPathCompile"/>
+ <function name="xmlXPathCompiledEval ()" link="libxml2-xpath.html#xmlXPathCompiledEval"/>
+ <function name="xmlXPathCompiledEvalToBoolean ()" link="libxml2-xpath.html#xmlXPathCompiledEvalToBoolean"/>
+ <function name="xmlXPathConcatFunction ()" link="libxml2-xpathInternals.html#xmlXPathConcatFunction"/>
+ <function name="xmlXPathContainsFunction ()" link="libxml2-xpathInternals.html#xmlXPathContainsFunction"/>
+ <function name="xmlXPathContextSetCache ()" link="libxml2-xpath.html#xmlXPathContextSetCache"/>
+ <function name="xmlXPathConvertBoolean ()" link="libxml2-xpath.html#xmlXPathConvertBoolean"/>
+ <function name="xmlXPathConvertNumber ()" link="libxml2-xpath.html#xmlXPathConvertNumber"/>
+ <function name="xmlXPathConvertString ()" link="libxml2-xpath.html#xmlXPathConvertString"/>
+ <function name="xmlXPathCountFunction ()" link="libxml2-xpathInternals.html#xmlXPathCountFunction"/>
+ <function name="xmlXPathCtxtCompile ()" link="libxml2-xpath.html#xmlXPathCtxtCompile"/>
+ <function name="xmlXPathDebugDumpCompExpr ()" link="libxml2-xpathInternals.html#xmlXPathDebugDumpCompExpr"/>
+ <function name="xmlXPathDebugDumpObject ()" link="libxml2-xpathInternals.html#xmlXPathDebugDumpObject"/>
+ <function name="xmlXPathDifference ()" link="libxml2-xpathInternals.html#xmlXPathDifference"/>
+ <function name="xmlXPathDistinct ()" link="libxml2-xpathInternals.html#xmlXPathDistinct"/>
+ <function name="xmlXPathDistinctSorted ()" link="libxml2-xpathInternals.html#xmlXPathDistinctSorted"/>
+ <function name="xmlXPathDivValues ()" link="libxml2-xpathInternals.html#xmlXPathDivValues"/>
+ <function name="xmlXPathEqualValues ()" link="libxml2-xpathInternals.html#xmlXPathEqualValues"/>
+ <function name="xmlXPathErr ()" link="libxml2-xpathInternals.html#xmlXPathErr"/>
+ <function name="xmlXPathEval ()" link="libxml2-xpath.html#xmlXPathEval"/>
+ <function name="xmlXPathEvalExpr ()" link="libxml2-xpathInternals.html#xmlXPathEvalExpr"/>
+ <function name="xmlXPathEvalExpression ()" link="libxml2-xpath.html#xmlXPathEvalExpression"/>
+ <function name="xmlXPathEvalPredicate ()" link="libxml2-xpath.html#xmlXPathEvalPredicate"/>
+ <function name="xmlXPathEvaluatePredicateResult ()" link="libxml2-xpathInternals.html#xmlXPathEvaluatePredicateResult"/>
+ <function name="xmlXPathFalseFunction ()" link="libxml2-xpathInternals.html#xmlXPathFalseFunction"/>
+ <function name="xmlXPathFloorFunction ()" link="libxml2-xpathInternals.html#xmlXPathFloorFunction"/>
+ <function name="xmlXPathFreeCompExpr ()" link="libxml2-xpath.html#xmlXPathFreeCompExpr"/>
+ <function name="xmlXPathFreeContext ()" link="libxml2-xpath.html#xmlXPathFreeContext"/>
+ <function name="xmlXPathFreeNodeSet ()" link="libxml2-xpath.html#xmlXPathFreeNodeSet"/>
+ <function name="xmlXPathFreeNodeSetList ()" link="libxml2-xpath.html#xmlXPathFreeNodeSetList"/>
+ <function name="xmlXPathFreeObject ()" link="libxml2-xpath.html#xmlXPathFreeObject"/>
+ <function name="xmlXPathFreeParserContext ()" link="libxml2-xpathInternals.html#xmlXPathFreeParserContext"/>
+ <function name="xmlXPathFunctionLookup ()" link="libxml2-xpathInternals.html#xmlXPathFunctionLookup"/>
+ <function name="xmlXPathFunctionLookupNS ()" link="libxml2-xpathInternals.html#xmlXPathFunctionLookupNS"/>
+ <function name="xmlXPathHasSameNodes ()" link="libxml2-xpathInternals.html#xmlXPathHasSameNodes"/>
+ <function name="xmlXPathIdFunction ()" link="libxml2-xpathInternals.html#xmlXPathIdFunction"/>
+ <function name="xmlXPathInit ()" link="libxml2-xpath.html#xmlXPathInit"/>
+ <function name="xmlXPathIntersection ()" link="libxml2-xpathInternals.html#xmlXPathIntersection"/>
+ <function name="xmlXPathIsInf ()" link="libxml2-xpath.html#xmlXPathIsInf"/>
+ <function name="xmlXPathIsNaN ()" link="libxml2-xpath.html#xmlXPathIsNaN"/>
+ <function name="xmlXPathIsNodeType ()" link="libxml2-xpathInternals.html#xmlXPathIsNodeType"/>
+ <function name="xmlXPathLangFunction ()" link="libxml2-xpathInternals.html#xmlXPathLangFunction"/>
+ <function name="xmlXPathLastFunction ()" link="libxml2-xpathInternals.html#xmlXPathLastFunction"/>
+ <function name="xmlXPathLeading ()" link="libxml2-xpathInternals.html#xmlXPathLeading"/>
+ <function name="xmlXPathLeadingSorted ()" link="libxml2-xpathInternals.html#xmlXPathLeadingSorted"/>
+ <function name="xmlXPathLocalNameFunction ()" link="libxml2-xpathInternals.html#xmlXPathLocalNameFunction"/>
+ <function name="xmlXPathModValues ()" link="libxml2-xpathInternals.html#xmlXPathModValues"/>
+ <function name="xmlXPathMultValues ()" link="libxml2-xpathInternals.html#xmlXPathMultValues"/>
+ <function name="xmlXPathNamespaceURIFunction ()" link="libxml2-xpathInternals.html#xmlXPathNamespaceURIFunction"/>
+ <function name="xmlXPathNewBoolean ()" link="libxml2-xpathInternals.html#xmlXPathNewBoolean"/>
+ <function name="xmlXPathNewCString ()" link="libxml2-xpathInternals.html#xmlXPathNewCString"/>
+ <function name="xmlXPathNewContext ()" link="libxml2-xpath.html#xmlXPathNewContext"/>
+ <function name="xmlXPathNewFloat ()" link="libxml2-xpathInternals.html#xmlXPathNewFloat"/>
+ <function name="xmlXPathNewNodeSet ()" link="libxml2-xpathInternals.html#xmlXPathNewNodeSet"/>
+ <function name="xmlXPathNewNodeSetList ()" link="libxml2-xpathInternals.html#xmlXPathNewNodeSetList"/>
+ <function name="xmlXPathNewParserContext ()" link="libxml2-xpathInternals.html#xmlXPathNewParserContext"/>
+ <function name="xmlXPathNewString ()" link="libxml2-xpathInternals.html#xmlXPathNewString"/>
+ <function name="xmlXPathNewValueTree ()" link="libxml2-xpathInternals.html#xmlXPathNewValueTree"/>
+ <function name="xmlXPathNextAncestor ()" link="libxml2-xpathInternals.html#xmlXPathNextAncestor"/>
+ <function name="xmlXPathNextAncestorOrSelf ()" link="libxml2-xpathInternals.html#xmlXPathNextAncestorOrSelf"/>
+ <function name="xmlXPathNextAttribute ()" link="libxml2-xpathInternals.html#xmlXPathNextAttribute"/>
+ <function name="xmlXPathNextChild ()" link="libxml2-xpathInternals.html#xmlXPathNextChild"/>
+ <function name="xmlXPathNextDescendant ()" link="libxml2-xpathInternals.html#xmlXPathNextDescendant"/>
+ <function name="xmlXPathNextDescendantOrSelf ()" link="libxml2-xpathInternals.html#xmlXPathNextDescendantOrSelf"/>
+ <function name="xmlXPathNextFollowing ()" link="libxml2-xpathInternals.html#xmlXPathNextFollowing"/>
+ <function name="xmlXPathNextFollowingSibling ()" link="libxml2-xpathInternals.html#xmlXPathNextFollowingSibling"/>
+ <function name="xmlXPathNextNamespace ()" link="libxml2-xpathInternals.html#xmlXPathNextNamespace"/>
+ <function name="xmlXPathNextParent ()" link="libxml2-xpathInternals.html#xmlXPathNextParent"/>
+ <function name="xmlXPathNextPreceding ()" link="libxml2-xpathInternals.html#xmlXPathNextPreceding"/>
+ <function name="xmlXPathNextPrecedingSibling ()" link="libxml2-xpathInternals.html#xmlXPathNextPrecedingSibling"/>
+ <function name="xmlXPathNextSelf ()" link="libxml2-xpathInternals.html#xmlXPathNextSelf"/>
+ <function name="xmlXPathNodeEval ()" link="libxml2-xpath.html#xmlXPathNodeEval"/>
+ <function name="xmlXPathNodeLeading ()" link="libxml2-xpathInternals.html#xmlXPathNodeLeading"/>
+ <function name="xmlXPathNodeLeadingSorted ()" link="libxml2-xpathInternals.html#xmlXPathNodeLeadingSorted"/>
+ <function name="xmlXPathNodeSetAdd ()" link="libxml2-xpathInternals.html#xmlXPathNodeSetAdd"/>
+ <function name="xmlXPathNodeSetAddNs ()" link="libxml2-xpathInternals.html#xmlXPathNodeSetAddNs"/>
+ <function name="xmlXPathNodeSetAddUnique ()" link="libxml2-xpathInternals.html#xmlXPathNodeSetAddUnique"/>
+ <function name="xmlXPathNodeSetContains ()" link="libxml2-xpathInternals.html#xmlXPathNodeSetContains"/>
+ <function name="xmlXPathNodeSetCreate ()" link="libxml2-xpath.html#xmlXPathNodeSetCreate"/>
+ <function name="xmlXPathNodeSetDel ()" link="libxml2-xpathInternals.html#xmlXPathNodeSetDel"/>
+ <function name="xmlXPathNodeSetFreeNs ()" link="libxml2-xpathInternals.html#xmlXPathNodeSetFreeNs"/>
+ <function name="xmlXPathNodeSetMerge ()" link="libxml2-xpathInternals.html#xmlXPathNodeSetMerge"/>
+ <function name="xmlXPathNodeSetRemove ()" link="libxml2-xpathInternals.html#xmlXPathNodeSetRemove"/>
+ <function name="xmlXPathNodeSetSort ()" link="libxml2-xpathInternals.html#xmlXPathNodeSetSort"/>
+ <function name="xmlXPathNodeTrailing ()" link="libxml2-xpathInternals.html#xmlXPathNodeTrailing"/>
+ <function name="xmlXPathNodeTrailingSorted ()" link="libxml2-xpathInternals.html#xmlXPathNodeTrailingSorted"/>
+ <function name="xmlXPathNormalizeFunction ()" link="libxml2-xpathInternals.html#xmlXPathNormalizeFunction"/>
+ <function name="xmlXPathNotEqualValues ()" link="libxml2-xpathInternals.html#xmlXPathNotEqualValues"/>
+ <function name="xmlXPathNotFunction ()" link="libxml2-xpathInternals.html#xmlXPathNotFunction"/>
+ <function name="xmlXPathNsLookup ()" link="libxml2-xpathInternals.html#xmlXPathNsLookup"/>
+ <function name="xmlXPathNumberFunction ()" link="libxml2-xpathInternals.html#xmlXPathNumberFunction"/>
+ <function name="xmlXPathObjectCopy ()" link="libxml2-xpath.html#xmlXPathObjectCopy"/>
+ <function name="xmlXPathOrderDocElems ()" link="libxml2-xpath.html#xmlXPathOrderDocElems"/>
+ <function name="xmlXPathParseNCName ()" link="libxml2-xpathInternals.html#xmlXPathParseNCName"/>
+ <function name="xmlXPathParseName ()" link="libxml2-xpathInternals.html#xmlXPathParseName"/>
+ <function name="xmlXPathPopBoolean ()" link="libxml2-xpathInternals.html#xmlXPathPopBoolean"/>
+ <function name="xmlXPathPopExternal ()" link="libxml2-xpathInternals.html#xmlXPathPopExternal"/>
+ <function name="xmlXPathPopNodeSet ()" link="libxml2-xpathInternals.html#xmlXPathPopNodeSet"/>
+ <function name="xmlXPathPopNumber ()" link="libxml2-xpathInternals.html#xmlXPathPopNumber"/>
+ <function name="xmlXPathPopString ()" link="libxml2-xpathInternals.html#xmlXPathPopString"/>
+ <function name="xmlXPathPositionFunction ()" link="libxml2-xpathInternals.html#xmlXPathPositionFunction"/>
+ <function name="xmlXPathRegisterAllFunctions ()" link="libxml2-xpathInternals.html#xmlXPathRegisterAllFunctions"/>
+ <function name="xmlXPathRegisterFunc ()" link="libxml2-xpathInternals.html#xmlXPathRegisterFunc"/>
+ <function name="xmlXPathRegisterFuncLookup ()" link="libxml2-xpathInternals.html#xmlXPathRegisterFuncLookup"/>
+ <function name="xmlXPathRegisterFuncNS ()" link="libxml2-xpathInternals.html#xmlXPathRegisterFuncNS"/>
+ <function name="xmlXPathRegisterNs ()" link="libxml2-xpathInternals.html#xmlXPathRegisterNs"/>
+ <function name="xmlXPathRegisterVariable ()" link="libxml2-xpathInternals.html#xmlXPathRegisterVariable"/>
+ <function name="xmlXPathRegisterVariableLookup ()" link="libxml2-xpathInternals.html#xmlXPathRegisterVariableLookup"/>
+ <function name="xmlXPathRegisterVariableNS ()" link="libxml2-xpathInternals.html#xmlXPathRegisterVariableNS"/>
+ <function name="xmlXPathRegisteredFuncsCleanup ()" link="libxml2-xpathInternals.html#xmlXPathRegisteredFuncsCleanup"/>
+ <function name="xmlXPathRegisteredNsCleanup ()" link="libxml2-xpathInternals.html#xmlXPathRegisteredNsCleanup"/>
+ <function name="xmlXPathRegisteredVariablesCleanup ()" link="libxml2-xpathInternals.html#xmlXPathRegisteredVariablesCleanup"/>
+ <function name="xmlXPathRoot ()" link="libxml2-xpathInternals.html#xmlXPathRoot"/>
+ <function name="xmlXPathRoundFunction ()" link="libxml2-xpathInternals.html#xmlXPathRoundFunction"/>
+ <function name="xmlXPathSetContextNode ()" link="libxml2-xpath.html#xmlXPathSetContextNode"/>
+ <function name="xmlXPathStartsWithFunction ()" link="libxml2-xpathInternals.html#xmlXPathStartsWithFunction"/>
+ <function name="xmlXPathStringEvalNumber ()" link="libxml2-xpathInternals.html#xmlXPathStringEvalNumber"/>
+ <function name="xmlXPathStringFunction ()" link="libxml2-xpathInternals.html#xmlXPathStringFunction"/>
+ <function name="xmlXPathStringLengthFunction ()" link="libxml2-xpathInternals.html#xmlXPathStringLengthFunction"/>
+ <function name="xmlXPathSubValues ()" link="libxml2-xpathInternals.html#xmlXPathSubValues"/>
+ <function name="xmlXPathSubstringAfterFunction ()" link="libxml2-xpathInternals.html#xmlXPathSubstringAfterFunction"/>
+ <function name="xmlXPathSubstringBeforeFunction ()" link="libxml2-xpathInternals.html#xmlXPathSubstringBeforeFunction"/>
+ <function name="xmlXPathSubstringFunction ()" link="libxml2-xpathInternals.html#xmlXPathSubstringFunction"/>
+ <function name="xmlXPathSumFunction ()" link="libxml2-xpathInternals.html#xmlXPathSumFunction"/>
+ <function name="xmlXPathTrailing ()" link="libxml2-xpathInternals.html#xmlXPathTrailing"/>
+ <function name="xmlXPathTrailingSorted ()" link="libxml2-xpathInternals.html#xmlXPathTrailingSorted"/>
+ <function name="xmlXPathTranslateFunction ()" link="libxml2-xpathInternals.html#xmlXPathTranslateFunction"/>
+ <function name="xmlXPathTrueFunction ()" link="libxml2-xpathInternals.html#xmlXPathTrueFunction"/>
+ <function name="xmlXPathValueFlipSign ()" link="libxml2-xpathInternals.html#xmlXPathValueFlipSign"/>
+ <function name="xmlXPathVariableLookup ()" link="libxml2-xpathInternals.html#xmlXPathVariableLookup"/>
+ <function name="xmlXPathVariableLookupNS ()" link="libxml2-xpathInternals.html#xmlXPathVariableLookupNS"/>
+ <function name="xmlXPathWrapCString ()" link="libxml2-xpathInternals.html#xmlXPathWrapCString"/>
+ <function name="xmlXPathWrapExternal ()" link="libxml2-xpathInternals.html#xmlXPathWrapExternal"/>
+ <function name="xmlXPathWrapNodeSet ()" link="libxml2-xpathInternals.html#xmlXPathWrapNodeSet"/>
+ <function name="xmlXPathWrapString ()" link="libxml2-xpathInternals.html#xmlXPathWrapString"/>
+ <function name="xmlXPatherror ()" link="libxml2-xpathInternals.html#xmlXPatherror"/>
+ <function name="xmlXPtrBuildNodeList ()" link="libxml2-xpointer.html#xmlXPtrBuildNodeList"/>
+ <function name="xmlXPtrEval ()" link="libxml2-xpointer.html#xmlXPtrEval"/>
+ <function name="xmlXPtrEvalRangePredicate ()" link="libxml2-xpointer.html#xmlXPtrEvalRangePredicate"/>
+ <function name="xmlXPtrFreeLocationSet ()" link="libxml2-xpointer.html#xmlXPtrFreeLocationSet"/>
+ <function name="xmlXPtrLocationSetAdd ()" link="libxml2-xpointer.html#xmlXPtrLocationSetAdd"/>
+ <function name="xmlXPtrLocationSetCreate ()" link="libxml2-xpointer.html#xmlXPtrLocationSetCreate"/>
+ <function name="xmlXPtrLocationSetDel ()" link="libxml2-xpointer.html#xmlXPtrLocationSetDel"/>
+ <function name="xmlXPtrLocationSetMerge ()" link="libxml2-xpointer.html#xmlXPtrLocationSetMerge"/>
+ <function name="xmlXPtrLocationSetRemove ()" link="libxml2-xpointer.html#xmlXPtrLocationSetRemove"/>
+ <function name="xmlXPtrNewCollapsedRange ()" link="libxml2-xpointer.html#xmlXPtrNewCollapsedRange"/>
+ <function name="xmlXPtrNewContext ()" link="libxml2-xpointer.html#xmlXPtrNewContext"/>
+ <function name="xmlXPtrNewLocationSetNodeSet ()" link="libxml2-xpointer.html#xmlXPtrNewLocationSetNodeSet"/>
+ <function name="xmlXPtrNewLocationSetNodes ()" link="libxml2-xpointer.html#xmlXPtrNewLocationSetNodes"/>
+ <function name="xmlXPtrNewRange ()" link="libxml2-xpointer.html#xmlXPtrNewRange"/>
+ <function name="xmlXPtrNewRangeNodeObject ()" link="libxml2-xpointer.html#xmlXPtrNewRangeNodeObject"/>
+ <function name="xmlXPtrNewRangeNodePoint ()" link="libxml2-xpointer.html#xmlXPtrNewRangeNodePoint"/>
+ <function name="xmlXPtrNewRangeNodes ()" link="libxml2-xpointer.html#xmlXPtrNewRangeNodes"/>
+ <function name="xmlXPtrNewRangePointNode ()" link="libxml2-xpointer.html#xmlXPtrNewRangePointNode"/>
+ <function name="xmlXPtrNewRangePoints ()" link="libxml2-xpointer.html#xmlXPtrNewRangePoints"/>
+ <function name="xmlXPtrRangeToFunction ()" link="libxml2-xpointer.html#xmlXPtrRangeToFunction"/>
+ <function name="xmlXPtrWrapLocationSet ()" link="libxml2-xpointer.html#xmlXPtrWrapLocationSet"/>
+ </functions>
+</book>
diff --git a/libxml2-2.9.10/doc/devhelp/right.png b/libxml2-2.9.10/doc/devhelp/right.png
new file mode 100644
index 0000000..92832e3
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/right.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/devhelp/style.css b/libxml2-2.9.10/doc/devhelp/style.css
new file mode 100644
index 0000000..c9cabe7
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/style.css
@@ -0,0 +1,66 @@
+.synopsis, .classsynopsis
+{
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+ padding: 0.5em;
+}
+.programlisting
+{
+ background: #eeeeff;
+ border: solid 1px #aaaaff;
+ padding: 0.5em;
+}
+.variablelist
+{
+ padding: 4px;
+ margin-left: 3em;
+}
+.variablelist td:first-child
+{
+ vertical-align: top;
+}
+table.navigation
+{
+ background: #ffeeee;
+ border: solid 1px #ffaaaa;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+.navigation a
+{
+ color: #770000;
+}
+.navigation a:visited
+{
+ color: #550000;
+}
+.navigation .title
+{
+ font-size: 200%;
+}
+div.refnamediv
+{
+ margin-top: 2em;
+}
+div.gallery-float
+{
+ float: left;
+ padding: 10px;
+}
+div.gallery-float img
+{
+ border-style: none;
+}
+div.gallery-spacer
+{
+ clear: both;
+}
+a
+{
+ text-decoration: none;
+}
+a:hover
+{
+ text-decoration: underline;
+ color: #FF0000;
+}
diff --git a/libxml2-2.9.10/doc/devhelp/up.png b/libxml2-2.9.10/doc/devhelp/up.png
new file mode 100644
index 0000000..85b3e2a
--- /dev/null
+++ b/libxml2-2.9.10/doc/devhelp/up.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/docs.html b/libxml2-2.9.10/doc/docs.html
new file mode 100644
index 0000000..3981401
--- /dev/null
+++ b/libxml2-2.9.10/doc/docs.html
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Developer Menu</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>Developer Menu</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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>There are several on-line resources related to using libxml:</p><ol>
+ <li>Use the <a href="search.php">search engine</a> to look up
+ information.</li>
+ <li>Check the <a href="FAQ.html">FAQ.</a></li>
+ <li>Check the <a href="http://xmlsoft.org/html/libxml-lib.html">extensive
+ documentation</a> automatically extracted from code comments.</li>
+ <li>Look at the documentation about <a href="encoding.html">libxml
+ internationalization support</a>.</li>
+ <li>This page provides a global overview and <a href="example.html">some
+ examples</a> on how to use libxml.</li>
+ <li><a href="examples/index.html">Code examples</a></li>
+ <li>John Fleck's libxml2 tutorial: <a href="tutorial/index.html">html</a>
+ or <a href="tutorial/xmltutorial.pdf">pdf</a>.</li>
+ <li>If you need to parse large files, check the <a href="xmlreader.html">xmlReader</a> API tutorial</li>
+ <li><a href="mailto:james@daa.com.au">James Henstridge</a> wrote <a href="http://www.jamesh.id.au/articles/libxml-sax/libxml-sax.html">some nice
+ documentation</a> explaining how to use the libxml SAX interface.</li>
+ <li>George Lebl wrote <a href="http://www-106.ibm.com/developerworks/library/l-gnome3/">an article
+ for IBM developerWorks</a> about using libxml.</li>
+ <li>Check <a href="http://svn.gnome.org/viewvc/libxml2/trunk/TODO?view=markup">the TODO
+ file</a>.</li>
+ <li>Read the <a href="upgrade.html">1.x to 2.x upgrade path</a>
+ description. If you are starting a new project using libxml you should
+ really use the 2.x version.</li>
+ <li>And don't forget to look at the <a href="http://mail.gnome.org/archives/xml/">mailing-list archive</a>.</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>
diff --git a/libxml2-2.9.10/doc/downloads.html b/libxml2-2.9.10/doc/downloads.html
new file mode 100644
index 0000000..afa0f43
--- /dev/null
+++ b/libxml2-2.9.10/doc/downloads.html
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+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 &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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="ftp://xmlsoft.org/libxml2/">FTP</a> and rsync are available), there are also
+mirrors (<a href="ftp://fr.rpmfind.net/pub/libxml/">France</a> and
+Antonin Sprinzl also provide <a href="ftp://gd.tuwien.ac.at/pub/libxml/">a
+mirror in Austria</a>). (NOTE that you need both the <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml(2)</a> and <a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml(2)-devel</a>
+packages installed to compile applications using libxml if using RPMs.)</p><p>You can find all the history of libxml(2) and libxslt releases in the <a href="http://xmlsoft.org/sources/old/">old</a> directory. The precompiled
+Windows binaries made by Igor Zlatovic are available in the <a href="http://xmlsoft.org/sources/win32/">win32</a> directory.</p><p>Binary ports:</p><ul>
+ <li>RPMs for x86_64 are available directly on <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>, the source RPM will compile on
+ any architecture supported.</li>
+ <li><a href="mailto:igor@zlatkovic.com">Igor Zlatkovic</a> is now the
+ maintainer of the Windows port, <a href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
+ binaries</a>.</li>
+ <li>OpenCSW provides <a href="http://opencsw.org/packages/libxml2">Solaris
+ binaries</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 X
+ 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 AIX</a> as
+ patr of their GNOME packages</li>
+</ul><p>If you know other supported binary ports, please <a href="http://veillard.com/">contact me</a>.</p><p><a name="Snapshot" id="Snapshot">Snapshot:</a></p><ul>
+ <li>Code from the GNOME GIT base libxml2 module, updated hourly <a href="ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz">libxml2-git-snapshot.tar.gz</a>.</li>
+ <li>Docs, content of the web site, the list archive included <a href="ftp://xmlsoft.org/libxml2/libxml-docs.tar.gz">libxml-docs.tar.gz</a>.</li>
+</ul><p><a name="Contribs" id="Contribs">Contributions:</a></p><p>I do accept external contributions, especially if compiling on another
+platform, get in touch with the list to upload the package, wrappers for
+various languages have been provided, and can be found in the <a href="python.html">bindings section</a></p><p>Libxml2 is also available from GIT:</p><ul>
+ <li><p>See <a href="https://gitlab.gnome.org/GNOME/libxml2">libxml2 Git web</a>.
+ To checkout a local tree use:</p>
+ <pre>git clone https://gitlab.gnome.org/GNOME/libxml2.git</pre>
+ </li>
+ <li>The <strong>libxslt</strong> module is also present
+ <a href="https://gitlab.gnome.org/GNOME/libxslt">there</a>.</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>
diff --git a/libxml2-2.9.10/doc/elfgcchack.xsl b/libxml2-2.9.10/doc/elfgcchack.xsl
new file mode 100644
index 0000000..8dd5c6a
--- /dev/null
+++ b/libxml2-2.9.10/doc/elfgcchack.xsl
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml"
+ version="1.0">
+ <xsl:output method="text" encoding="UTF-8"/>
+
+ <xsl:template match="/">
+ <xsl:text>/*
+ * elfgcchack.h: hack by Arjan van de Ven &lt;arjanv@redhat.com&gt; to speed
+ * up the code when using gcc for call within the library.
+ *
+ * Based on the analysis http://people.redhat.com/drepper/dsohowto.pdf
+ * from Ulrich drepper. Rewritten to be generated from the XML description
+ * file for libxml2 API
+ * autogenerated with xsltproc doc/elfgcchack.xsl doc/libxml2-api.xml
+ */
+
+#ifdef IN_LIBXML
+#ifdef __GNUC__
+#ifdef PIC
+#ifdef __linux__
+#if (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
+
+#include "libxml/c14n.h"
+#include "libxml/catalog.h"
+#include "libxml/chvalid.h"
+#include "libxml/debugXML.h"
+#include "libxml/dict.h"
+#include "libxml/DOCBparser.h"
+#include "libxml/encoding.h"
+#include "libxml/entities.h"
+#include "libxml/globals.h"
+#include "libxml/hash.h"
+#include "libxml/HTMLparser.h"
+#include "libxml/HTMLtree.h"
+#include "libxml/list.h"
+#include "libxml/nanoftp.h"
+#include "libxml/nanohttp.h"
+#include "libxml/parser.h"
+#include "libxml/parserInternals.h"
+#include "libxml/pattern.h"
+#include "libxml/relaxng.h"
+#include "libxml/SAX2.h"
+#include "libxml/SAX.h"
+#include "libxml/schemasInternals.h"
+#include "libxml/schematron.h"
+#include "libxml/threads.h"
+#include "libxml/tree.h"
+#include "libxml/uri.h"
+#include "libxml/valid.h"
+#include "libxml/xinclude.h"
+#include "libxml/xlink.h"
+#include "libxml/xmlautomata.h"
+#include "libxml/xmlerror.h"
+#include "libxml/xmlexports.h"
+#include "libxml/xmlIO.h"
+#include "libxml/xmlmemory.h"
+#include "libxml/xmlreader.h"
+#include "libxml/xmlregexp.h"
+#include "libxml/xmlsave.h"
+#include "libxml/xmlschemas.h"
+#include "libxml/xmlschemastypes.h"
+#include "libxml/xmlstring.h"
+#include "libxml/xmlunicode.h"
+#include "libxml/xmlversion.h"
+#include "libxml/xmlwriter.h"
+#include "libxml/xpath.h"
+#include "libxml/xpathInternals.h"
+#include "libxml/xpointer.h"
+#include "libxml/xmlmodule.h"
+
+/* special hot spot not exported ones */
+
+#ifdef bottom_globals
+#undef __xmlGenericError
+extern __typeof (__xmlGenericError) __xmlGenericError __attribute((alias("__xmlGenericError__internal_alias")));
+#else
+#ifndef __xmlGenericError
+extern __typeof (__xmlGenericError) __xmlGenericError__internal_alias __attribute((visibility("hidden")));
+#define __xmlGenericError __xmlGenericError__internal_alias
+#endif
+#endif
+
+#ifdef bottom_globals
+#undef __xmlGenericErrorContext
+extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext __attribute((alias("__xmlGenericErrorContext__internal_alias")));
+#else
+#ifndef __xmlGenericErrorContext
+extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext__internal_alias __attribute((visibility("hidden")));
+#define __xmlGenericErrorContext __xmlGenericErrorContext__internal_alias
+#endif
+#endif
+
+/* list generated from libxml2-api.xml */
+</xsl:text>
+ <xsl:apply-templates select="/api/symbols/function"/>
+ <xsl:text>
+#endif
+#endif
+#endif
+#endif
+#endif
+
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="function">
+ <xsl:variable name="str" select="string(@name)"/>
+ <xsl:if test="(starts-with(@name, 'xml') or starts-with(@name, 'html') or contains(@name, 'Push') or contains(@name, 'Pop')) and (not(contains(@name, 'xmlDllMain')))">
+ <xsl:variable name="alias" select="concat($str, '__internal_alias')"/>
+ <xsl:apply-templates select="cond"/>
+ <xsl:text>#ifdef bottom_</xsl:text>
+ <xsl:value-of select="string(@module)"/>
+ <xsl:text>
+#undef </xsl:text>
+ <xsl:value-of select="$str"/>
+ <xsl:text>
+extern __typeof (</xsl:text>
+ <xsl:value-of select="$str"/>
+ <xsl:text>) </xsl:text>
+ <xsl:value-of select="$str"/>
+ <xsl:text> __attribute((alias("</xsl:text>
+ <xsl:value-of select="$alias"/>
+ <xsl:text>")));
+#else
+#ifndef </xsl:text>
+ <xsl:value-of select="$str"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>extern __typeof (</xsl:text>
+ <xsl:value-of select="$str"/>
+ <xsl:text>) </xsl:text>
+ <xsl:value-of select="$alias"/>
+ <xsl:text> __attribute((visibility("hidden")));
+</xsl:text>
+ <xsl:text>#define </xsl:text>
+ <xsl:value-of select="$str"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$alias"/>
+ <xsl:text>
+#endif
+#endif
+</xsl:text>
+ <xsl:apply-templates select="cond" mode="end"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="cond">
+ <xsl:text>#if </xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="cond" mode="end">
+ <xsl:text>#endif
+</xsl:text>
+ </xsl:template>
+</xsl:stylesheet>
+
diff --git a/libxml2-2.9.10/doc/encoding.html b/libxml2-2.9.10/doc/encoding.html
new file mode 100644
index 0000000..42f3396
--- /dev/null
+++ b/libxml2-2.9.10/doc/encoding.html
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+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 &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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 shortcut
+is 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 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 string
+without knowing what encoding it uses</b>, then as Joel Spolsky said <a href="http://www.joelonsoftware.com/articles/Unicode.html">please do not
+write another line of code until you finish reading that article.</a>. It is
+a prerequisite to understand this page, and avoid a lot of problems with
+libxml2, XML or text processing in general.</p><p>Table of Content:</p><ol>
+ <li><a href="encoding.html#What">What does internationalization support
+ mean ?</a></li>
+ <li><a href="encoding.html#internal">The internal encoding, how and
+ why</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#extend">How to extend the existing
+ support</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 character set
+by using Unicode. Any conformant XML parser has to support the UTF-8 and
+UTF-16 default encodings which can both express the full unicode ranges. UTF8
+is a variable length encoding whose greatest points are to reuse the same
+encoding for ASCII and to save space for Western encodings, but it is a bit
+more complex to handle in practice. UTF-16 use 2 bytes per character (and
+sometimes combines two pairs), it makes implementation easier, but looks a
+bit overkill for Western languages encoding. Moreover the XML specification
+allows the document to be encoded in other encodings at the condition that
+they are clearly labeled as such. For example the following is a wellformed
+XML document encoded in ISO-8859-1 and using accentuated letters that we
+French like for both markup and content:</p><pre>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;très&gt;là &lt;/très&gt;</pre><p>Having internationalization support in libxml2 means the following:</p><ul>
+ <li>the document is properly parsed</li>
+ <li>information about it's encoding is saved</li>
+ <li>it can be modified</li>
+ <li>it can be saved in its original encoding</li>
+ <li>it can also be saved in another encoding supported by libxml2 (for
+ example straight UTF8 or even an ASCII form)</li>
+</ul><p>Another very important point is that the whole libxml2 API, with the
+exception of a few routines to read with a specific encoding or save to a
+specific encoding, is completely agnostic about the original encoding of the
+document.</p><p>It should be noted too that the HTML parser embedded in libxml2 now obey
+the same rules too, the following document will be (as of 2.2.2) handled in
+an internationalized fashion by libxml2 too:</p><pre>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd"&gt;
+&lt;html lang="fr"&gt;
+&lt;head&gt;
+ &lt;META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;W3C crée des standards pour le Web.&lt;/body&gt;
+&lt;/html&gt;</pre><h3><a name="internal" id="internal">The internal encoding, how and why</a></h3><p>One of the core decisions was to force all documents to be converted to a
+default internal encoding, and that encoding to be UTF-8, here are the
+rationales for those choices:</p><ul>
+ <li>keeping the native encoding in the internal form would force the libxml
+ users (or the code associated) to be fully aware of the encoding of the
+ original document, for examples when adding a text node to a document,
+ the content would have to be provided in the document encoding, i.e. the
+ client code would have to check it before hand, make sure it's conformant
+ to the encoding, etc ... Very hard in practice, though in some specific
+ cases this may make sense.</li>
+ <li>the second decision was which encoding. From the XML spec only UTF8 and
+ UTF16 really makes sense as being the two only encodings for which there
+ is mandatory support. UCS-4 (32 bits fixed size encoding) could be
+ considered an intelligent choice too since it's a direct Unicode mapping
+ support. I selected UTF-8 on the basis of efficiency and compatibility
+ with surrounding software:
+ <ul>
+ <li>UTF-8 while a bit more complex to convert from/to (i.e. slightly
+ more costly to import and export CPU wise) is also far more compact
+ than UTF-16 (and UCS-4) for a majority of the documents I see it used
+ for right now (RPM RDF catalogs, advogato data, various configuration
+ file formats, etc.) and the key point for today's computer
+ architecture is efficient uses of caches. If one nearly double the
+ memory requirement to store the same amount of data, this will trash
+ caches (main memory/external caches/internal caches) and my take is
+ that this harms the system far more than the CPU requirements needed
+ for the conversion to UTF-8</li>
+ <li>Most of libxml2 version 1 users were using it with straight ASCII
+ most of the time, doing the conversion with an internal encoding
+ requiring all their code to be rewritten was a serious show-stopper
+ for using UTF-16 or UCS-4.</li>
+ <li>UTF-8 is being used as the de-facto internal encoding standard for
+ related code like the <a href="http://www.pango.org/">pango</a>
+ upcoming Gnome text widget, and a lot of Unix code (yet another place
+ where Unix programmer base takes a different approach from Microsoft
+ - they are using UTF-16)</li>
+ </ul>
+ </li>
+</ul><p>What does this mean in practice for the libxml2 user:</p><ul>
+ <li>xmlChar, the libxml2 data type is a byte, those bytes must be assembled
+ as UTF-8 valid strings. The proper way to terminate an xmlChar * string
+ is simply to append 0 byte, as usual.</li>
+ <li>One just need to make sure that when using chars outside the ASCII set,
+ 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 I18N
+(internationalization) support get triggered only during I/O operation, i.e.
+when reading a document or saving one. Let's look first at the reading
+sequence:</p><ol>
+ <li>when a document is processed, we usually don't know the encoding, a
+ simple heuristic allows to detect UTF-16 and UCS-4 from encodings where
+ the ASCII range (0-0x7F) maps with ASCII</li>
+ <li>the xml declaration if available is parsed, including the encoding
+ declaration. At that point, if the autodetected encoding is different
+ from the one declared a call to xmlSwitchEncoding() is issued.</li>
+ <li>If there is no encoding declaration, then the input has to be in either
+ UTF-8 or UTF-16, if it is not then at some point when processing the
+ input, the converter/checker of UTF-8 form will raise an encoding error.
+ You may end-up with a garbled document, or no document at all ! Example:
+ <pre>~/XML -&gt; ./xmllint err.xml
+err.xml:1: error: Input is not proper UTF-8, indicate encoding !
+&lt;très&gt;là &lt;/très&gt;
+ ^
+err.xml:1: error: Bytes: 0xE8 0x73 0x3E 0x6C
+&lt;très&gt;là &lt;/très&gt;
+ ^</pre>
+ </li>
+ <li>xmlSwitchEncoding() does an encoding name lookup, canonicalize it, and
+ then search the default registered encoding converters for that encoding.
+ If it's not within the default set and iconv() support has been compiled
+ it, it will ask iconv for such an encoder. If this fails then the parser
+ will report an error and stops processing:
+ <pre>~/XML -&gt; ./xmllint err2.xml
+err2.xml:1: error: Unsupported encoding UnsupportedEnc
+&lt;?xml version="1.0" encoding="UnsupportedEnc"?&gt;
+ ^</pre>
+ </li>
+ <li>From that point the encoder processes progressively the input (it is
+ plugged as a front-end to the I/O module) for that entity. It captures
+ and converts on-the-fly the document to be parsed to UTF-8. The parser
+ itself just does UTF-8 checking of this input and process it
+ transparently. The only difference is that the encoding information has
+ been added to the parsing context (more precisely to the input
+ corresponding to this entity).</li>
+ <li>The result (when using DOM) is an internal form completely in UTF-8
+ with just an encoding information on the document node.</li>
+</ol><p>Ok then what happens when saving the document (assuming you
+collected/built an xmlDoc DOM like structure) ? It depends on the function
+called, xmlSaveFile() will just try to save in the original encoding, while
+xmlSaveFileTo() and xmlSaveFileEnc() can optionally save to a given
+encoding:</p><ol>
+ <li>if no encoding is given, libxml2 will look for an encoding value
+ associated to the document and if it exists will try to save to that
+ encoding,
+ <p>otherwise everything is written in the internal form, i.e. UTF-8</p>
+ </li>
+ <li>so if an encoding was specified, either at the API level or on the
+ document, libxml2 will again canonicalize the encoding name, lookup for a
+ converter in the registered set or through iconv. If not found the
+ function will return an error code</li>
+ <li>the converter is placed before the I/O buffer layer, as another kind of
+ buffer, then libxml2 will simply push the UTF-8 serialization to through
+ that buffer, which will then progressively be converted and pushed onto
+ the I/O layer.</li>
+ <li>It is possible that the converter code fails on some input, for example
+ trying to push an UTF-8 encoded Chinese character through the UTF-8 to
+ ISO-8859-1 converter won't work. Since the encoders are progressive they
+ will just report the error and the number of bytes converted, at that
+ point libxml2 will decode the offending character, remove it from the
+ buffer and replace it with the associated charRef encoding &amp;#123; and
+ resume the conversion. This guarantees that any document will be saved
+ without losses (except for markup names where this is not legal, this is
+ a problem in the current version, in practice avoid using non-ascii
+ characters for tag or attribute names). A special "ascii" encoding name
+ is used to save documents to a pure ascii form can be used when
+ portability is really crucial</li>
+</ol><p>Here are a few examples based on the same test document and assumin a
+terminal using ISO-8859-1 as the text encoding:</p><pre>~/XML -&gt; ./xmllint isolat1
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;très&gt;là&lt;/très&gt;
+~/XML -&gt; ./xmllint --encode UTF-8 isolat1
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;très&gt;là  &lt;/très&gt;
+~/XML -&gt; </pre><p>The same processing is applied (and reuse most of the code) for HTML I18N
+processing. Looking up and modifying the content encoding is a bit more
+difficult since it is located in a &lt;meta&gt; tag under the &lt;head&gt;,
+so a couple of functions htmlGetMetaEncoding() and htmlSetMetaEncoding() have
+been provided. The parser also attempts to switch encoding on the fly when
+detecting such a tag on input. Except for that the processing is the same
+(and again reuses the same code).</p><h3><a name="Default" id="Default">Default supported encodings</a></h3><p>libxml2 has a set of default converters for the following encodings
+(located in encoding.c):</p><ol>
+ <li>UTF-8 is supported by default (null handlers)</li>
+ <li>UTF-16, both little and big endian</li>
+ <li>ISO-Latin-1 (ISO-8859-1) covering most western languages</li>
+ <li>ASCII, useful mostly for saving</li>
+ <li>HTML, a specific handler for the conversion of UTF-8 to ASCII with HTML
+ predefined entities like &amp;copy; for the Copyright sign.</li>
+</ol><p>More over when compiled on an Unix platform with iconv support the full
+set of encodings supported by iconv can be instantly be used by libxml. On a
+linux machine with glibc-2.1 the list of supported encodings and aliases fill
+3 full pages, and include UCS-4, the full set of ISO-Latin encodings, and the
+various Japanese ones.</p><p>To convert from the UTF-8 values returned from the API to another encoding
+then 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 the
+POSIX <a href="http://www.opengroup.org/onlinepubs/009695399/functions/iconv.html">iconv()</a>
+API directly.</p><h4>Encoding aliases</h4><p>From 2.2.3, libxml2 has support to register encoding names aliases. The
+goal is to be able to parse document whose encoding is supported but where
+the name differs (for example from the default set of names accepted by
+iconv). The following functions allow to register and handle new aliases for
+existing encodings. Once registered libxml2 will automatically lookup the
+aliases when handling a document:</p><ul>
+ <li>int xmlAddEncodingAlias(const char *name, const char *alias);</li>
+ <li>int xmlDelEncodingAlias(const char *alias);</li>
+ <li>const char * xmlGetEncodingAlias(const char *alias);</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 encoders
+(assuming it is buggy) should not be hard, just write input and output
+conversion routines to/from UTF-8, and register them using
+xmlNewCharEncodingHandler(name, xxxToUTF8, UTF8Toxxx), and they will be
+called automatically if the parser(s) encounter such an encoding name
+(register it uppercase, this will help). The description of the encoders,
+their arguments and expected return values are described in the encoding.h
+header.</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>
diff --git a/libxml2-2.9.10/doc/entities.html b/libxml2-2.9.10/doc/entities.html
new file mode 100644
index 0000000..e4433f2
--- /dev/null
+++ b/libxml2-2.9.10/doc/entities.html
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Entities or no entities</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>Entities or no entities</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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>Entities in principle are similar to simple C macros. An entity defines an
+abbreviation for a given string that you can reuse many times throughout the
+content of your document. Entities are especially useful when a given string
+may occur frequently within a document, or to confine the change needed to a
+document to a restricted area in the internal subset of the document (at the
+beginning). Example:</p><pre>1 &lt;?xml version="1.0"?&gt;
+2 &lt;!DOCTYPE EXAMPLE SYSTEM "example.dtd" [
+3 &lt;!ENTITY xml "Extensible Markup Language"&gt;
+4 ]&gt;
+5 &lt;EXAMPLE&gt;
+6 &amp;xml;
+7 &lt;/EXAMPLE&gt;</pre><p>Line 3 declares the xml entity. Line 6 uses the xml entity, by prefixing
+its name with '&amp;' and following it by ';' without any spaces added. There
+are 5 predefined entities in libxml2 allowing you to escape characters with
+predefined meaning in some parts of the xml document content:
+<strong>&amp;lt;</strong> for the character '&lt;', <strong>&amp;gt;</strong>
+for the character '&gt;', <strong>&amp;apos;</strong> for the character ''',
+<strong>&amp;quot;</strong> for the character '"', and
+<strong>&amp;amp;</strong> for the character '&amp;'.</p><p>One of the problems related to entities is that you may want the parser to
+substitute an entity's content so that you can see the replacement text in
+your application. Or you may prefer to keep entity references as such in the
+content to be able to save the document back without losing this usually
+precious information (if the user went through the pain of explicitly
+defining entities, he may have a a rather negative attitude if you blindly
+substitute them as saving time). The <a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault()</a>
+function allows you to check and change the behaviour, which is to not
+substitute entities by default.</p><p>Here is the DOM tree built by libxml2 for the previous document in the
+default case:</p><pre>/gnome/src/gnome-xml -&gt; ./xmllint --debug test/ent1
+DOCUMENT
+version=1.0
+ ELEMENT EXAMPLE
+ TEXT
+ content=
+ ENTITY_REF
+ INTERNAL_GENERAL_ENTITY xml
+ content=Extensible Markup Language
+ TEXT
+ content=</pre><p>And here is the result when substituting entities:</p><pre>/gnome/src/gnome-xml -&gt; ./tester --debug --noent test/ent1
+DOCUMENT
+version=1.0
+ ELEMENT EXAMPLE
+ TEXT
+ content= Extensible Markup Language</pre><p>So, entities or no entities? Basically, it depends on your use case. I
+suggest that you keep the non-substituting default behaviour and avoid using
+entities in your XML document or data if you are not willing to handle the
+entity references elements in the DOM tree.</p><p>Note that at save time libxml2 enforces the conversion of the predefined
+entities where necessary to prevent well-formedness problems, and will also
+transparently replace those with chars (i.e. it will not generate entity
+reference elements in the DOM tree or call the reference() SAX callback when
+finding them in the input).</p><p><span style="background-color: #FF0000">WARNING</span>: handling entities
+on top of the libxml2 SAX interface is difficult!!! If you plan to use
+non-predefined entities in your documents, then the learning curve to handle
+then using the SAX API may be long. If you plan to use complex documents, I
+strongly suggest you consider using the DOM interface instead and let libxml
+deal with the complexity rather than trying to do it yourself.</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>
diff --git a/libxml2-2.9.10/doc/example.html b/libxml2-2.9.10/doc/example.html
new file mode 100644
index 0000000..d4ad432
--- /dev/null
+++ b/libxml2-2.9.10/doc/example.html
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>A real example</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>A real example</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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>Here is a real size example, where the actual content of the application
+data is not kept in the DOM tree but uses internal structures. It is based on
+a proposal to keep a database of jobs related to Gnome, with an XML based
+storage structure. Here is an <a href="gjobs.xml">XML encoded jobs
+base</a>:</p><pre>&lt;?xml version="1.0"?&gt;
+&lt;gjob:Helping xmlns:gjob="http://www.gnome.org/some-location"&gt;
+ &lt;gjob:Jobs&gt;
+
+ &lt;gjob:Job&gt;
+ &lt;gjob:Project ID="3"/&gt;
+ &lt;gjob:Application&gt;GBackup&lt;/gjob:Application&gt;
+ &lt;gjob:Category&gt;Development&lt;/gjob:Category&gt;
+
+ &lt;gjob:Update&gt;
+ &lt;gjob:Status&gt;Open&lt;/gjob:Status&gt;
+ &lt;gjob:Modified&gt;Mon, 07 Jun 1999 20:27:45 -0400 MET DST&lt;/gjob:Modified&gt;
+ &lt;gjob:Salary&gt;USD 0.00&lt;/gjob:Salary&gt;
+ &lt;/gjob:Update&gt;
+
+ &lt;gjob:Developers&gt;
+ &lt;gjob:Developer&gt;
+ &lt;/gjob:Developer&gt;
+ &lt;/gjob:Developers&gt;
+
+ &lt;gjob:Contact&gt;
+ &lt;gjob:Person&gt;Nathan Clemons&lt;/gjob:Person&gt;
+ &lt;gjob:Email&gt;nathan@windsofstorm.net&lt;/gjob:Email&gt;
+ &lt;gjob:Company&gt;
+ &lt;/gjob:Company&gt;
+ &lt;gjob:Organisation&gt;
+ &lt;/gjob:Organisation&gt;
+ &lt;gjob:Webpage&gt;
+ &lt;/gjob:Webpage&gt;
+ &lt;gjob:Snailmail&gt;
+ &lt;/gjob:Snailmail&gt;
+ &lt;gjob:Phone&gt;
+ &lt;/gjob:Phone&gt;
+ &lt;/gjob:Contact&gt;
+
+ &lt;gjob:Requirements&gt;
+ The program should be released as free software, under the GPL.
+ &lt;/gjob:Requirements&gt;
+
+ &lt;gjob:Skills&gt;
+ &lt;/gjob:Skills&gt;
+
+ &lt;gjob:Details&gt;
+ A GNOME based system that will allow a superuser to configure
+ compressed and uncompressed files and/or file systems to be backed
+ up with a supported media in the system. This should be able to
+ perform via find commands generating a list of files that are passed
+ to tar, dd, cpio, cp, gzip, etc., to be directed to the tape machine
+ or via operations performed on the filesystem itself. Email
+ notification and GUI status display very important.
+ &lt;/gjob:Details&gt;
+
+ &lt;/gjob:Job&gt;
+
+ &lt;/gjob:Jobs&gt;
+&lt;/gjob:Helping&gt;</pre><p>While loading the XML file into an internal DOM tree is a matter of
+calling only a couple of functions, browsing the tree to gather the data and
+generate the internal structures is harder, and more error prone.</p><p>The suggested principle is to be tolerant with respect to the input
+structure. For example, the ordering of the attributes is not significant,
+the XML specification is clear about it. It's also usually a good idea not to
+depend on the order of the children of a given node, unless it really makes
+things harder. Here is some code to parse the information for a person:</p><pre>/*
+ * A person record
+ */
+typedef struct person {
+ char *name;
+ char *email;
+ char *company;
+ char *organisation;
+ char *smail;
+ char *webPage;
+ char *phone;
+} person, *personPtr;
+
+/*
+ * And the code needed to parse it
+ */
+personPtr parsePerson(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur) {
+ personPtr ret = NULL;
+
+DEBUG("parsePerson\n");
+ /*
+ * allocate the struct
+ */
+ ret = (personPtr) malloc(sizeof(person));
+ if (ret == NULL) {
+ fprintf(stderr,"out of memory\n");
+ return(NULL);
+ }
+ memset(ret, 0, sizeof(person));
+
+ /* We don't care what the top level element name is */
+ cur = cur-&gt;xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!strcmp(cur-&gt;name, "Person")) &amp;&amp; (cur-&gt;ns == ns))
+ ret-&gt;name = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
+ if ((!strcmp(cur-&gt;name, "Email")) &amp;&amp; (cur-&gt;ns == ns))
+ ret-&gt;email = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
+ cur = cur-&gt;next;
+ }
+
+ return(ret);
+}</pre><p>Here are a couple of things to notice:</p><ul>
+ <li>Usually a recursive parsing style is the more convenient one: XML data
+ is by nature subject to repetitive constructs and usually exhibits highly
+ structured patterns.</li>
+ <li>The two arguments of type <em>xmlDocPtr</em> and <em>xmlNsPtr</em>,
+ i.e. the pointer to the global XML document and the namespace reserved to
+ the application. Document wide information are needed for example to
+ decode entities and it's a good coding practice to define a namespace for
+ your application set of data and test that the element and attributes
+ you're analyzing actually pertains to your application space. This is
+ done by a simple equality test (cur-&gt;ns == ns).</li>
+ <li>To retrieve text and attributes value, you can use the function
+ <em>xmlNodeListGetString</em> to gather all the text and entity reference
+ nodes generated by the DOM output and produce an single text string.</li>
+</ul><p>Here is another piece of code used to parse another level of the
+structure:</p><pre>#include &lt;libxml/tree.h&gt;
+/*
+ * a Description for a Job
+ */
+typedef struct job {
+ char *projectID;
+ char *application;
+ char *category;
+ personPtr contact;
+ int nbDevelopers;
+ personPtr developers[100]; /* using dynamic alloc is left as an exercise */
+} job, *jobPtr;
+
+/*
+ * And the code needed to parse it
+ */
+jobPtr parseJob(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur) {
+ jobPtr ret = NULL;
+
+DEBUG("parseJob\n");
+ /*
+ * allocate the struct
+ */
+ ret = (jobPtr) malloc(sizeof(job));
+ if (ret == NULL) {
+ fprintf(stderr,"out of memory\n");
+ return(NULL);
+ }
+ memset(ret, 0, sizeof(job));
+
+ /* We don't care what the top level element name is */
+ cur = cur-&gt;xmlChildrenNode;
+ while (cur != NULL) {
+
+ if ((!strcmp(cur-&gt;name, "Project")) &amp;&amp; (cur-&gt;ns == ns)) {
+ ret-&gt;projectID = xmlGetProp(cur, "ID");
+ if (ret-&gt;projectID == NULL) {
+ fprintf(stderr, "Project has no ID\n");
+ }
+ }
+ if ((!strcmp(cur-&gt;name, "Application")) &amp;&amp; (cur-&gt;ns == ns))
+ ret-&gt;application = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
+ if ((!strcmp(cur-&gt;name, "Category")) &amp;&amp; (cur-&gt;ns == ns))
+ ret-&gt;category = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
+ if ((!strcmp(cur-&gt;name, "Contact")) &amp;&amp; (cur-&gt;ns == ns))
+ ret-&gt;contact = parsePerson(doc, ns, cur);
+ cur = cur-&gt;next;
+ }
+
+ return(ret);
+}</pre><p>Once you are used to it, writing this kind of code is quite simple, but
+boring. Ultimately, it could be possible to write stubbers taking either C
+data structure definitions, a set of XML examples or an XML DTD and produce
+the code needed to import and export the content between C data and XML
+storage. This is left as an exercise to the reader :-)</p><p>Feel free to use <a href="example/gjobread.c">the code for the full C
+parsing example</a> as a template, it is also available with Makefile in the
+Gnome SVN base under libxml2/example</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>
diff --git a/libxml2-2.9.10/doc/examples/Makefile.am b/libxml2-2.9.10/doc/examples/Makefile.am
new file mode 100644
index 0000000..ef59fce
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/Makefile.am
@@ -0,0 +1,136 @@
+##
+## This file is auto-generated by index.py
+## DO NOT EDIT !!!
+##
+
+AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include
+AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS)
+LDADD = $(RDL_LIBS) $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(ICONV_LIBS) -lm $(WIN32_EXTRA_LIBADD)
+
+CLEANFILES = *.tmp
+
+if REBUILD_DOCS
+rebuild: examples.xml index.html
+.PHONY: rebuild
+
+examples.xml: index.py $(check_PROGRAMS:=.c)
+ cd $(srcdir) && $(PYTHON) index.py
+ $(MAKE) Makefile
+
+index.html: examples.xml examples.xsl
+ cd $(srcdir) && xsltproc examples.xsl examples.xml && echo "Rebuilt web page"
+ -cd $(srcdir) && xmllint --valid --noout index.html
+endif
+
+install-data-local:
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR)
+
+clean-local:
+ test -f Makefile.am || rm -f test?.xml
+
+EXTRA_DIST = \
+ examples.xml \
+ examples.xsl \
+ index.html \
+ index.py \
+ io1.res \
+ io2.res \
+ reader1.res \
+ reader3.res \
+ reader4.res \
+ test1.xml \
+ test2.xml \
+ test3.xml \
+ tree1.res \
+ tree2.res \
+ tst.xml \
+ writer.xml \
+ xpath1.res \
+ xpath2.res
+
+check_PROGRAMS = \
+ io1 \
+ io2 \
+ parse1 \
+ parse2 \
+ parse3 \
+ parse4 \
+ reader1 \
+ reader2 \
+ reader3 \
+ reader4 \
+ testWriter \
+ tree1 \
+ tree2 \
+ xpath1 \
+ xpath2
+
+io1_SOURCES = io1.c
+
+io2_SOURCES = io2.c
+
+parse1_SOURCES = parse1.c
+
+parse2_SOURCES = parse2.c
+
+parse3_SOURCES = parse3.c
+
+parse4_SOURCES = parse4.c
+
+reader1_SOURCES = reader1.c
+
+reader2_SOURCES = reader2.c
+
+reader3_SOURCES = reader3.c
+
+reader4_SOURCES = reader4.c
+
+testWriter_SOURCES = testWriter.c
+
+tree1_SOURCES = tree1.c
+
+tree2_SOURCES = tree2.c
+
+xpath1_SOURCES = xpath1.c
+
+xpath2_SOURCES = xpath2.c
+
+valgrind:
+ $(MAKE) CHECKER='valgrind' tests
+
+tests: $(check_PROGRAMS)
+ @test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .
+ @(echo '## examples regression tests')
+ @(echo > .memdump)
+ @$(CHECKER) ./io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./parse1 test1.xml
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./parse2 test2.xml
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./parse3
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./parse4 test3.xml
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @rm *.tmp
diff --git a/libxml2-2.9.10/doc/examples/Makefile.in b/libxml2-2.9.10/doc/examples/Makefile.in
new file mode 100644
index 0000000..9e56e32
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/Makefile.in
@@ -0,0 +1,1026 @@
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = io1$(EXEEXT) io2$(EXEEXT) parse1$(EXEEXT) \
+ parse2$(EXEEXT) parse3$(EXEEXT) parse4$(EXEEXT) \
+ reader1$(EXEEXT) reader2$(EXEEXT) reader3$(EXEEXT) \
+ reader4$(EXEEXT) testWriter$(EXEEXT) tree1$(EXEEXT) \
+ tree2$(EXEEXT) xpath1$(EXEEXT) xpath2$(EXEEXT)
+subdir = doc/examples
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am_io1_OBJECTS = io1.$(OBJEXT)
+io1_OBJECTS = $(am_io1_OBJECTS)
+io1_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+io1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+am_io2_OBJECTS = io2.$(OBJEXT)
+io2_OBJECTS = $(am_io2_OBJECTS)
+io2_LDADD = $(LDADD)
+io2_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_parse1_OBJECTS = parse1.$(OBJEXT)
+parse1_OBJECTS = $(am_parse1_OBJECTS)
+parse1_LDADD = $(LDADD)
+parse1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_parse2_OBJECTS = parse2.$(OBJEXT)
+parse2_OBJECTS = $(am_parse2_OBJECTS)
+parse2_LDADD = $(LDADD)
+parse2_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_parse3_OBJECTS = parse3.$(OBJEXT)
+parse3_OBJECTS = $(am_parse3_OBJECTS)
+parse3_LDADD = $(LDADD)
+parse3_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_parse4_OBJECTS = parse4.$(OBJEXT)
+parse4_OBJECTS = $(am_parse4_OBJECTS)
+parse4_LDADD = $(LDADD)
+parse4_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_reader1_OBJECTS = reader1.$(OBJEXT)
+reader1_OBJECTS = $(am_reader1_OBJECTS)
+reader1_LDADD = $(LDADD)
+reader1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_reader2_OBJECTS = reader2.$(OBJEXT)
+reader2_OBJECTS = $(am_reader2_OBJECTS)
+reader2_LDADD = $(LDADD)
+reader2_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_reader3_OBJECTS = reader3.$(OBJEXT)
+reader3_OBJECTS = $(am_reader3_OBJECTS)
+reader3_LDADD = $(LDADD)
+reader3_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_reader4_OBJECTS = reader4.$(OBJEXT)
+reader4_OBJECTS = $(am_reader4_OBJECTS)
+reader4_LDADD = $(LDADD)
+reader4_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_testWriter_OBJECTS = testWriter.$(OBJEXT)
+testWriter_OBJECTS = $(am_testWriter_OBJECTS)
+testWriter_LDADD = $(LDADD)
+testWriter_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_tree1_OBJECTS = tree1.$(OBJEXT)
+tree1_OBJECTS = $(am_tree1_OBJECTS)
+tree1_LDADD = $(LDADD)
+tree1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_tree2_OBJECTS = tree2.$(OBJEXT)
+tree2_OBJECTS = $(am_tree2_OBJECTS)
+tree2_LDADD = $(LDADD)
+tree2_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_xpath1_OBJECTS = xpath1.$(OBJEXT)
+xpath1_OBJECTS = $(am_xpath1_OBJECTS)
+xpath1_LDADD = $(LDADD)
+xpath1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_xpath2_OBJECTS = xpath2.$(OBJEXT)
+xpath2_OBJECTS = $(am_xpath2_OBJECTS)
+xpath2_LDADD = $(LDADD)
+xpath2_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/io1.Po ./$(DEPDIR)/io2.Po \
+ ./$(DEPDIR)/parse1.Po ./$(DEPDIR)/parse2.Po \
+ ./$(DEPDIR)/parse3.Po ./$(DEPDIR)/parse4.Po \
+ ./$(DEPDIR)/reader1.Po ./$(DEPDIR)/reader2.Po \
+ ./$(DEPDIR)/reader3.Po ./$(DEPDIR)/reader4.Po \
+ ./$(DEPDIR)/testWriter.Po ./$(DEPDIR)/tree1.Po \
+ ./$(DEPDIR)/tree2.Po ./$(DEPDIR)/xpath1.Po \
+ ./$(DEPDIR)/xpath2.Po
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(io1_SOURCES) $(io2_SOURCES) $(parse1_SOURCES) \
+ $(parse2_SOURCES) $(parse3_SOURCES) $(parse4_SOURCES) \
+ $(reader1_SOURCES) $(reader2_SOURCES) $(reader3_SOURCES) \
+ $(reader4_SOURCES) $(testWriter_SOURCES) $(tree1_SOURCES) \
+ $(tree2_SOURCES) $(xpath1_SOURCES) $(xpath2_SOURCES)
+DIST_SOURCES = $(io1_SOURCES) $(io2_SOURCES) $(parse1_SOURCES) \
+ $(parse2_SOURCES) $(parse3_SOURCES) $(parse4_SOURCES) \
+ $(reader1_SOURCES) $(reader2_SOURCES) $(reader3_SOURCES) \
+ $(reader4_SOURCES) $(testWriter_SOURCES) $(tree1_SOURCES) \
+ $(tree2_SOURCES) $(xpath1_SOURCES) $(xpath2_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BASE_THREAD_LIBS = @BASE_THREAD_LIBS@
+C14N_OBJ = @C14N_OBJ@
+CATALOG_OBJ = @CATALOG_OBJ@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+CYGWIN_EXTRA_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@
+CYGWIN_EXTRA_PYTHON_LIBADD = @CYGWIN_EXTRA_PYTHON_LIBADD@
+DEBUG_OBJ = @DEBUG_OBJ@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOCB_OBJ = @DOCB_OBJ@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+FGREP = @FGREP@
+FTP_OBJ = @FTP_OBJ@
+GREP = @GREP@
+HAVE_ISINF = @HAVE_ISINF@
+HAVE_ISNAN = @HAVE_ISNAN@
+HTML_DIR = @HTML_DIR@
+HTML_OBJ = @HTML_OBJ@
+HTTP_OBJ = @HTTP_OBJ@
+ICONV_LIBS = @ICONV_LIBS@
+ICU_CFLAGS = @ICU_CFLAGS@
+ICU_LIBS = @ICU_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_MAJOR_VERSION = @LIBXML_MAJOR_VERSION@
+LIBXML_MICRO_VERSION = @LIBXML_MICRO_VERSION@
+LIBXML_MINOR_VERSION = @LIBXML_MINOR_VERSION@
+LIBXML_VERSION = @LIBXML_VERSION@
+LIBXML_VERSION_EXTRA = @LIBXML_VERSION_EXTRA@
+LIBXML_VERSION_INFO = @LIBXML_VERSION_INFO@
+LIBXML_VERSION_NUMBER = @LIBXML_VERSION_NUMBER@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+LZMA_CFLAGS = @LZMA_CFLAGS@
+LZMA_LIBS = @LZMA_LIBS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MODULE_EXTENSION = @MODULE_EXTENSION@
+MODULE_PLATFORM_LIBS = @MODULE_PLATFORM_LIBS@
+MV = @MV@
+M_LIBS = @M_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_TESTS = @PYTHON_TESTS@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RDL_LIBS = @RDL_LIBS@
+READER_TEST = @READER_TEST@
+RELDATE = @RELDATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+TEST_C14N = @TEST_C14N@
+TEST_CATALOG = @TEST_CATALOG@
+TEST_DEBUG = @TEST_DEBUG@
+TEST_HTML = @TEST_HTML@
+TEST_MODULES = @TEST_MODULES@
+TEST_PATTERN = @TEST_PATTERN@
+TEST_PHTML = @TEST_PHTML@
+TEST_PUSH = @TEST_PUSH@
+TEST_REGEXPS = @TEST_REGEXPS@
+TEST_SAX = @TEST_SAX@
+TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
+TEST_THREADS = @TEST_THREADS@
+TEST_VALID = @TEST_VALID@
+TEST_VTIME = @TEST_VTIME@
+TEST_XINCLUDE = @TEST_XINCLUDE@
+TEST_XPATH = @TEST_XPATH@
+TEST_XPTR = @TEST_XPTR@
+THREAD_CFLAGS = @THREAD_CFLAGS@
+THREAD_LIBS = @THREAD_LIBS@
+VERSION = @VERSION@
+VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
+WGET = @WGET@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WIN32_EXTRA_PYTHON_LIBADD = @WIN32_EXTRA_PYTHON_LIBADD@
+WITH_C14N = @WITH_C14N@
+WITH_CATALOG = @WITH_CATALOG@
+WITH_DEBUG = @WITH_DEBUG@
+WITH_DOCB = @WITH_DOCB@
+WITH_FTP = @WITH_FTP@
+WITH_HTML = @WITH_HTML@
+WITH_HTTP = @WITH_HTTP@
+WITH_ICONV = @WITH_ICONV@
+WITH_ICU = @WITH_ICU@
+WITH_ISO8859X = @WITH_ISO8859X@
+WITH_LEGACY = @WITH_LEGACY@
+WITH_LZMA = @WITH_LZMA@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_OUTPUT = @WITH_OUTPUT@
+WITH_PATTERN = @WITH_PATTERN@
+WITH_PUSH = @WITH_PUSH@
+WITH_READER = @WITH_READER@
+WITH_REGEXPS = @WITH_REGEXPS@
+WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
+WITH_SAX1 = @WITH_SAX1@
+WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
+WITH_THREADS = @WITH_THREADS@
+WITH_THREAD_ALLOC = @WITH_THREAD_ALLOC@
+WITH_TREE = @WITH_TREE@
+WITH_TRIO = @WITH_TRIO@
+WITH_VALID = @WITH_VALID@
+WITH_WRITER = @WITH_WRITER@
+WITH_XINCLUDE = @WITH_XINCLUDE@
+WITH_XPATH = @WITH_XPATH@
+WITH_XPTR = @WITH_XPTR@
+WITH_ZLIB = @WITH_ZLIB@
+XINCLUDE_OBJ = @XINCLUDE_OBJ@
+XMLLINT = @XMLLINT@
+XML_CFLAGS = @XML_CFLAGS@
+XML_INCLUDEDIR = @XML_INCLUDEDIR@
+XML_LIBDIR = @XML_LIBDIR@
+XML_LIBS = @XML_LIBS@
+XML_LIBTOOLLIBS = @XML_LIBTOOLLIBS@
+XML_PRIVATE_LIBS = @XML_PRIVATE_LIBS@
+XPATH_OBJ = @XPATH_OBJ@
+XPTR_OBJ = @XPTR_OBJ@
+XSLTPROC = @XSLTPROC@
+Z_CFLAGS = @Z_CFLAGS@
+Z_LIBS = @Z_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pythondir = @pythondir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include
+AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS)
+LDADD = $(RDL_LIBS) $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(ICONV_LIBS) -lm $(WIN32_EXTRA_LIBADD)
+CLEANFILES = *.tmp
+EXTRA_DIST = \
+ examples.xml \
+ examples.xsl \
+ index.html \
+ index.py \
+ io1.res \
+ io2.res \
+ reader1.res \
+ reader3.res \
+ reader4.res \
+ test1.xml \
+ test2.xml \
+ test3.xml \
+ tree1.res \
+ tree2.res \
+ tst.xml \
+ writer.xml \
+ xpath1.res \
+ xpath2.res
+
+io1_SOURCES = io1.c
+io2_SOURCES = io2.c
+parse1_SOURCES = parse1.c
+parse2_SOURCES = parse2.c
+parse3_SOURCES = parse3.c
+parse4_SOURCES = parse4.c
+reader1_SOURCES = reader1.c
+reader2_SOURCES = reader2.c
+reader3_SOURCES = reader3.c
+reader4_SOURCES = reader4.c
+testWriter_SOURCES = testWriter.c
+tree1_SOURCES = tree1.c
+tree2_SOURCES = tree2.c
+xpath1_SOURCES = xpath1.c
+xpath2_SOURCES = xpath2.c
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/examples/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/examples/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+io1$(EXEEXT): $(io1_OBJECTS) $(io1_DEPENDENCIES) $(EXTRA_io1_DEPENDENCIES)
+ @rm -f io1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(io1_OBJECTS) $(io1_LDADD) $(LIBS)
+
+io2$(EXEEXT): $(io2_OBJECTS) $(io2_DEPENDENCIES) $(EXTRA_io2_DEPENDENCIES)
+ @rm -f io2$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(io2_OBJECTS) $(io2_LDADD) $(LIBS)
+
+parse1$(EXEEXT): $(parse1_OBJECTS) $(parse1_DEPENDENCIES) $(EXTRA_parse1_DEPENDENCIES)
+ @rm -f parse1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(parse1_OBJECTS) $(parse1_LDADD) $(LIBS)
+
+parse2$(EXEEXT): $(parse2_OBJECTS) $(parse2_DEPENDENCIES) $(EXTRA_parse2_DEPENDENCIES)
+ @rm -f parse2$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(parse2_OBJECTS) $(parse2_LDADD) $(LIBS)
+
+parse3$(EXEEXT): $(parse3_OBJECTS) $(parse3_DEPENDENCIES) $(EXTRA_parse3_DEPENDENCIES)
+ @rm -f parse3$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(parse3_OBJECTS) $(parse3_LDADD) $(LIBS)
+
+parse4$(EXEEXT): $(parse4_OBJECTS) $(parse4_DEPENDENCIES) $(EXTRA_parse4_DEPENDENCIES)
+ @rm -f parse4$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(parse4_OBJECTS) $(parse4_LDADD) $(LIBS)
+
+reader1$(EXEEXT): $(reader1_OBJECTS) $(reader1_DEPENDENCIES) $(EXTRA_reader1_DEPENDENCIES)
+ @rm -f reader1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(reader1_OBJECTS) $(reader1_LDADD) $(LIBS)
+
+reader2$(EXEEXT): $(reader2_OBJECTS) $(reader2_DEPENDENCIES) $(EXTRA_reader2_DEPENDENCIES)
+ @rm -f reader2$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(reader2_OBJECTS) $(reader2_LDADD) $(LIBS)
+
+reader3$(EXEEXT): $(reader3_OBJECTS) $(reader3_DEPENDENCIES) $(EXTRA_reader3_DEPENDENCIES)
+ @rm -f reader3$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(reader3_OBJECTS) $(reader3_LDADD) $(LIBS)
+
+reader4$(EXEEXT): $(reader4_OBJECTS) $(reader4_DEPENDENCIES) $(EXTRA_reader4_DEPENDENCIES)
+ @rm -f reader4$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(reader4_OBJECTS) $(reader4_LDADD) $(LIBS)
+
+testWriter$(EXEEXT): $(testWriter_OBJECTS) $(testWriter_DEPENDENCIES) $(EXTRA_testWriter_DEPENDENCIES)
+ @rm -f testWriter$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(testWriter_OBJECTS) $(testWriter_LDADD) $(LIBS)
+
+tree1$(EXEEXT): $(tree1_OBJECTS) $(tree1_DEPENDENCIES) $(EXTRA_tree1_DEPENDENCIES)
+ @rm -f tree1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(tree1_OBJECTS) $(tree1_LDADD) $(LIBS)
+
+tree2$(EXEEXT): $(tree2_OBJECTS) $(tree2_DEPENDENCIES) $(EXTRA_tree2_DEPENDENCIES)
+ @rm -f tree2$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(tree2_OBJECTS) $(tree2_LDADD) $(LIBS)
+
+xpath1$(EXEEXT): $(xpath1_OBJECTS) $(xpath1_DEPENDENCIES) $(EXTRA_xpath1_DEPENDENCIES)
+ @rm -f xpath1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(xpath1_OBJECTS) $(xpath1_LDADD) $(LIBS)
+
+xpath2$(EXEEXT): $(xpath2_OBJECTS) $(xpath2_DEPENDENCIES) $(EXTRA_xpath2_DEPENDENCIES)
+ @rm -f xpath2$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(xpath2_OBJECTS) $(xpath2_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io2.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse2.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse3.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse4.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reader1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reader2.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reader3.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reader4.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testWriter.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tree1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tree2.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xpath1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xpath2.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/io1.Po
+ -rm -f ./$(DEPDIR)/io2.Po
+ -rm -f ./$(DEPDIR)/parse1.Po
+ -rm -f ./$(DEPDIR)/parse2.Po
+ -rm -f ./$(DEPDIR)/parse3.Po
+ -rm -f ./$(DEPDIR)/parse4.Po
+ -rm -f ./$(DEPDIR)/reader1.Po
+ -rm -f ./$(DEPDIR)/reader2.Po
+ -rm -f ./$(DEPDIR)/reader3.Po
+ -rm -f ./$(DEPDIR)/reader4.Po
+ -rm -f ./$(DEPDIR)/testWriter.Po
+ -rm -f ./$(DEPDIR)/tree1.Po
+ -rm -f ./$(DEPDIR)/tree2.Po
+ -rm -f ./$(DEPDIR)/xpath1.Po
+ -rm -f ./$(DEPDIR)/xpath2.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/io1.Po
+ -rm -f ./$(DEPDIR)/io2.Po
+ -rm -f ./$(DEPDIR)/parse1.Po
+ -rm -f ./$(DEPDIR)/parse2.Po
+ -rm -f ./$(DEPDIR)/parse3.Po
+ -rm -f ./$(DEPDIR)/parse4.Po
+ -rm -f ./$(DEPDIR)/reader1.Po
+ -rm -f ./$(DEPDIR)/reader2.Po
+ -rm -f ./$(DEPDIR)/reader3.Po
+ -rm -f ./$(DEPDIR)/reader4.Po
+ -rm -f ./$(DEPDIR)/testWriter.Po
+ -rm -f ./$(DEPDIR)/tree1.Po
+ -rm -f ./$(DEPDIR)/tree2.Po
+ -rm -f ./$(DEPDIR)/xpath1.Po
+ -rm -f ./$(DEPDIR)/xpath2.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool clean-local \
+ cscopelist-am ctags ctags-am distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+@REBUILD_DOCS_TRUE@rebuild: examples.xml index.html
+@REBUILD_DOCS_TRUE@.PHONY: rebuild
+
+@REBUILD_DOCS_TRUE@examples.xml: index.py $(check_PROGRAMS:=.c)
+@REBUILD_DOCS_TRUE@ cd $(srcdir) && $(PYTHON) index.py
+@REBUILD_DOCS_TRUE@ $(MAKE) Makefile
+
+@REBUILD_DOCS_TRUE@index.html: examples.xml examples.xsl
+@REBUILD_DOCS_TRUE@ cd $(srcdir) && xsltproc examples.xsl examples.xml && echo "Rebuilt web page"
+@REBUILD_DOCS_TRUE@ -cd $(srcdir) && xmllint --valid --noout index.html
+
+install-data-local:
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR)
+
+clean-local:
+ test -f Makefile.am || rm -f test?.xml
+
+valgrind:
+ $(MAKE) CHECKER='valgrind' tests
+
+tests: $(check_PROGRAMS)
+ @test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .
+ @(echo '## examples regression tests')
+ @(echo > .memdump)
+ @$(CHECKER) ./io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./parse1 test1.xml
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./parse2 test2.xml
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./parse3
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./parse4 test3.xml
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @$(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res
+ @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @rm *.tmp
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libxml2-2.9.10/doc/examples/examples.xml b/libxml2-2.9.10/doc/examples/examples.xml
new file mode 100644
index 0000000..cc791ed
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/examples.xml
@@ -0,0 +1,751 @@
+<examples>
+ <example filename='io1.c'>
+ <synopsis>Example of custom Input/Output</synopsis>
+ <purpose>Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way.</purpose>
+ <usage>io1</usage>
+ <test>io1 &gt; io1.tmp &amp;&amp; diff io1.tmp $(srcdir)/io1.res</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>InputOutput</section>
+ <includes>
+ <include>&lt;libxml/parser.h&gt;</include>
+ <include>&lt;libxml/xmlIO.h&gt;</include>
+ <include>&lt;libxml/xinclude.h&gt;</include>
+ <include>&lt;libxml/tree.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='143' file='tree' name='xmlDocDump'/>
+ <function line='158' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='149' file='tree' name='xmlFreeDoc'/>
+ <function line='154' file='parser' name='xmlCleanupParser'/>
+ <macro line='117' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='134' file='xinclude' name='xmlXIncludeProcess'/>
+ <function line='117' file='xmlIO' name='xmlRegisterInputCallbacks'/>
+ <function line='124' file='parser' name='xmlReadMemory'/>
+ <typedef line='105' file='tree' name='xmlDocPtr'/>
+ </uses>
+ </example>
+ <example filename='io2.c'>
+ <synopsis>Output to char buffer</synopsis>
+ <purpose>Demonstrate the use of xmlDocDumpMemory to output document to a character buffer</purpose>
+ <usage>io2</usage>
+ <test>io2 &gt; io2.tmp &amp;&amp; diff io2.tmp $(srcdir)/io2.res</test>
+ <author>John Fleck</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>InputOutput</section>
+ <includes>
+ <include>&lt;libxml/parser.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='29' file='tree' name='xmlNodeSetContent'/>
+ <function line='36' file='tree' name='xmlDocDumpFormatMemory'/>
+ <variable line='42' file='globals' name='xmlFree'/>
+ <function line='30' file='tree' name='xmlDocSetRootElement'/>
+ <typedef line='20' file='tree' name='xmlDocPtr'/>
+ <function line='43' file='tree' name='xmlFreeDoc'/>
+ <typedef line='19' file='tree' name='xmlNodePtr'/>
+ <function line='27' file='tree' name='xmlNewDoc'/>
+ <function line='28' file='tree' name='xmlNewNode'/>
+ </uses>
+ </example>
+ <example filename='parse1.c'>
+ <synopsis>Parse an XML file to a tree and free it</synopsis>
+ <purpose>Demonstrate the use of xmlReadFile() to read an XML file into a tree and xmlFreeDoc() to free the resulting tree</purpose>
+ <usage>parse1 test1.xml</usage>
+ <test>parse1 test1.xml</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Parsing</section>
+ <includes>
+ <include>&lt;libxml/tree.h&gt;</include>
+ <include>&lt;libxml/parser.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='54' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='50' file='parser' name='xmlCleanupParser'/>
+ <macro line='45' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <typedef line='24' file='tree' name='xmlDocPtr'/>
+ <function line='31' file='tree' name='xmlFreeDoc'/>
+ <function line='26' file='parser' name='xmlReadFile'/>
+ </uses>
+ </example>
+ <example filename='parse2.c'>
+ <synopsis>Parse and validate an XML file to a tree and free the result</synopsis>
+ <purpose>Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.</purpose>
+ <usage>parse2 test2.xml</usage>
+ <test>parse2 test2.xml</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Parsing</section>
+ <includes>
+ <include>&lt;libxml/tree.h&gt;</include>
+ <include>&lt;libxml/parser.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='47' file='parser' name='xmlFreeParserCtxt'/>
+ <enum line='35' file='parser' name='XML_PARSE_DTDVALID'/>
+ <function line='29' file='parser' name='xmlNewParserCtxt'/>
+ <typedef line='25' file='tree' name='xmlParserCtxtPtr'/>
+ <function line='35' file='parser' name='xmlCtxtReadFile'/>
+ <function line='66' file='parser' name='xmlCleanupParser'/>
+ <macro line='61' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='44' file='tree' name='xmlFreeDoc'/>
+ <typedef line='26' file='tree' name='xmlDocPtr'/>
+ <function line='70' file='xmlmemory' name='xmlMemoryDump'/>
+ </uses>
+ </example>
+ <example filename='parse3.c'>
+ <synopsis>Parse an XML document in memory to a tree and free it</synopsis>
+ <purpose>Demonstrate the use of xmlReadMemory() to read an XML file into a tree and xmlFreeDoc() to free the resulting tree</purpose>
+ <usage>parse3</usage>
+ <test>parse3</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Parsing</section>
+ <includes>
+ <include>&lt;libxml/tree.h&gt;</include>
+ <include>&lt;libxml/parser.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='33' file='parser' name='xmlReadMemory'/>
+ <function line='58' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='54' file='parser' name='xmlCleanupParser'/>
+ <macro line='49' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='38' file='tree' name='xmlFreeDoc'/>
+ <typedef line='27' file='tree' name='xmlDocPtr'/>
+ </uses>
+ </example>
+ <example filename='parse4.c'>
+ <synopsis>Parse an XML document chunk by chunk to a tree and free it</synopsis>
+ <purpose>Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and xmlFreeDoc() to free the resulting tree</purpose>
+ <usage>parse4 test3.xml</usage>
+ <test>parse4 test3.xml</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Parsing</section>
+ <includes>
+ <include>&lt;libxml/tree.h&gt;</include>
+ <include>&lt;libxml/parser.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='94' file='parser' name='xmlFreeParserCtxt'/>
+ <function line='86' file='parser' name='xmlParseChunk'/>
+ <function line='103' file='tree' name='xmlFreeDoc'/>
+ <function line='135' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='67' file='parser' name='xmlCreatePushParserCtxt'/>
+ <function line='131' file='parser' name='xmlCleanupParser'/>
+ <macro line='120' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <typedef line='45' file='tree' name='xmlParserCtxtPtr'/>
+ <typedef line='47' file='tree' name='xmlDocPtr'/>
+ </uses>
+ </example>
+ <example filename='reader1.c'>
+ <synopsis>Parse an XML file with an xmlReader</synopsis>
+ <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the informations about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
+ <usage>reader1 &lt;filename&gt;</usage>
+ <test>reader1 test2.xml &gt; reader1.tmp &amp;&amp; diff reader1.tmp $(srcdir)/reader1.res</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>xmlReader</section>
+ <includes>
+ <include>&lt;libxml/xmlreader.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='44' file='xmlstring' name='xmlStrlen'/>
+ <function line='94' file='parser' name='xmlCleanupParser'/>
+ <function line='37' file='xmlreader' name='xmlTextReaderNodeType'/>
+ <typedef line='59' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='98' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='33' file='xmlreader' name='xmlTextReaderConstValue'/>
+ <function line='36' file='xmlreader' name='xmlTextReaderDepth'/>
+ <function line='69' file='xmlreader' name='xmlFreeTextReader'/>
+ <macro line='89' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='29' file='xmlreader' name='xmlTextReaderConstName'/>
+ <function line='40' file='xmlreader' name='xmlTextReaderHasValue'/>
+ <function line='67' file='xmlreader' name='xmlTextReaderRead'/>
+ <function line='39' file='xmlreader' name='xmlTextReaderIsEmptyElement'/>
+ <function line='62' file='xmlreader' name='xmlReaderForFile'/>
+ </uses>
+ </example>
+ <example filename='reader2.c'>
+ <synopsis>Parse and validate an XML file with an xmlReader</synopsis>
+ <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
+ <usage>reader2 &lt;valid_xml_filename&gt;</usage>
+ <test>reader2 test2.xml &gt; reader1.tmp &amp;&amp; diff reader1.tmp $(srcdir)/reader1.res</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>xmlReader</section>
+ <includes>
+ <include>&lt;libxml/xmlreader.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='45' file='xmlstring' name='xmlStrlen'/>
+ <function line='38' file='xmlreader' name='xmlTextReaderNodeType'/>
+ <typedef line='60' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='34' file='xmlreader' name='xmlTextReaderConstValue'/>
+ <enum line='70' file='parser' name='XML_PARSE_NOENT'/>
+ <function line='37' file='xmlreader' name='xmlTextReaderDepth'/>
+ <enum line='71' file='parser' name='XML_PARSE_DTDVALID'/>
+ <enum line='69' file='parser' name='XML_PARSE_DTDATTR'/>
+ <function line='84' file='xmlreader' name='xmlFreeTextReader'/>
+ <function line='30' file='xmlreader' name='xmlTextReaderConstName'/>
+ <function line='41' file='xmlreader' name='xmlTextReaderHasValue'/>
+ <function line='76' file='xmlreader' name='xmlTextReaderRead'/>
+ <function line='40' file='xmlreader' name='xmlTextReaderIsEmptyElement'/>
+ <function line='68' file='xmlreader' name='xmlReaderForFile'/>
+ <function line='81' file='xmlreader' name='xmlTextReaderIsValid'/>
+ </uses>
+ </example>
+ <example filename='reader3.c'>
+ <synopsis>Show how to extract subdocuments with xmlReader</synopsis>
+ <purpose>Demonstrate the use of xmlTextReaderPreservePattern() to parse an XML file with the xmlReader while collecting only some subparts of the document. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
+ <usage>reader3</usage>
+ <test>reader3 &gt; reader3.tmp &amp;&amp; diff reader3.tmp $(srcdir)/reader3.res</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>xmlReader</section>
+ <includes>
+ <include>&lt;libxml/xmlreader.h&gt;</include>
+ </includes>
+ <uses>
+ <typedef line='32' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='66' file='xmlreader' name='xmlFreeTextReader'/>
+ <function line='96' file='tree' name='xmlDocDump'/>
+ <function line='52' file='xmlreader' name='xmlTextReaderRead'/>
+ <function line='62' file='xmlreader' name='xmlTextReaderCurrentDoc'/>
+ <function line='43' file='xmlreader' name='xmlTextReaderPreservePattern'/>
+ <function line='38' file='xmlreader' name='xmlReaderForFile'/>
+ </uses>
+ </example>
+ <example filename='reader4.c'>
+ <synopsis>Parse multiple XML files reusing an xmlReader</synopsis>
+ <purpose>Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
+ <usage>reader4 &lt;filename&gt; [ filename ... ]</usage>
+ <test>reader4 test1.xml test2.xml test3.xml &gt; reader4.tmp &amp;&amp; diff reader4.tmp $(srcdir)/reader4.res</test>
+ <author>Graham Bennett</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>xmlReader</section>
+ <includes>
+ <include>&lt;libxml/xmlreader.h&gt;</include>
+ </includes>
+ <uses>
+ <typedef line='54' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='83' file='xmlreader' name='xmlReaderNewFile'/>
+ <function line='104' file='xmlreader' name='xmlFreeTextReader'/>
+ <function line='26' file='xmlreader' name='xmlTextReaderRead'/>
+ <function line='97' file='xmlreader' name='xmlTextReaderCurrentDoc'/>
+ <function line='72' file='xmlreader' name='xmlReaderForFile'/>
+ </uses>
+ </example>
+ <example filename='testWriter.c'>
+ <synopsis>use various APIs for the xmlWriter</synopsis>
+ <purpose>tests a number of APIs for the xmlWriter, especially the various methods to write to a filename, to a memory buffer, to a new document, or to a subtree. It shows how to do encoding string conversions too. The resulting documents are then serialized.</purpose>
+ <usage>testWriter</usage>
+ <test>testWriter &amp;&amp; for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done</test>
+ <author>Alfred Mickautsch</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>xmlWriter</section>
+ <includes>
+ <include>&lt;libxml/encoding.h&gt;</include>
+ <include>&lt;libxml/xmlwriter.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='913' file='xmlwriter' name='xmlTextWriterStartDocument'/>
+ <function line='1121' file='xmlwriter' name='xmlTextWriterEndDocument'/>
+ <variable line='1183' file='globals' name='xmlRealloc'/>
+ <function line='925' file='xmlwriter' name='xmlTextWriterWriteComment'/>
+ <function line='1156' file='encoding' name='xmlFindCharEncodingHandler'/>
+ <variable line='1166' file='globals' name='xmlMalloc'/>
+ <typedef line='341' file='tree' name='xmlBufferPtr'/>
+ <macro line='885' file='parser' name='XML_DEFAULT_VERSION'/>
+ <function line='901' file='tree' name='xmlDocSetRootElement'/>
+ <function line='1127' file='xmlwriter' name='xmlFreeTextWriter'/>
+ <function line='1096' file='xmlwriter' name='xmlTextWriterStartElement'/>
+ <function line='347' file='tree' name='xmlBufferCreate'/>
+ <function line='1111' file='xmlwriter' name='xmlTextWriterEndElement'/>
+ <function line='76' file='xmlwriter' name='xmlNewTextWriterFilename'/>
+ <function line='959' file='xmlwriter' name='xmlTextWriterWriteFormatComment'/>
+ <function line='1073' file='xmlwriter' name='xmlTextWriterWriteFormatElement'/>
+ <typedef line='1151' file='encoding' name='xmlCharEncodingHandlerPtr'/>
+ <typedef line='880' file='tree' name='xmlNodePtr'/>
+ <function line='949' file='xmlwriter' name='xmlTextWriterWriteAttribute'/>
+ <function line='632' file='xmlwriter' name='xmlNewTextWriterDoc'/>
+ <function line='894' file='tree' name='xmlNewDocNode'/>
+ <function line='1129' file='tree' name='xmlSaveFileEnc'/>
+ <function line='904' file='xmlwriter' name='xmlNewTextWriterTree'/>
+ <function line='355' file='xmlwriter' name='xmlNewTextWriterMemory'/>
+ <variable line='1180' file='globals' name='xmlFree'/>
+ <function line='613' file='tree' name='xmlBufferFree'/>
+ <typedef line='878' file='xmlwriter' name='xmlTextWriterPtr'/>
+ <function line='1103' file='xmlwriter' name='xmlTextWriterWriteElement'/>
+ <function line='885' file='tree' name='xmlNewDoc'/>
+ </uses>
+ </example>
+ <example filename='tree1.c'>
+ <synopsis>Navigates a tree to print element names</synopsis>
+ <purpose>Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.</purpose>
+ <usage>tree1 filename_or_URL</usage>
+ <test>tree1 test2.xml &gt; tree1.tmp &amp;&amp; diff tree1.tmp $(srcdir)/tree1.res</test>
+ <author>Dodji Seketeli</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Tree</section>
+ <includes>
+ <include>&lt;libxml/tree.h&gt;</include>
+ <include>&lt;libxml/parser.h&gt;</include>
+ </includes>
+ <uses>
+ <enum line='36' file='tree' name='XML_ELEMENT_NODE'/>
+ <function line='74' file='tree' name='xmlDocGetRootElement'/>
+ <function line='67' file='parser' name='xmlReadFile'/>
+ </uses>
+ </example>
+ <example filename='tree2.c'>
+ <synopsis>Creates a tree</synopsis>
+ <purpose>Shows how to create document, nodes and dump it to stdout or file.</purpose>
+ <usage>tree2 &lt;filename&gt; -Default output: stdout</usage>
+ <test>tree2 &gt; tree2.tmp &amp;&amp; diff tree2.tmp $(srcdir)/tree2.res</test>
+ <author>Lucas Brasilino &lt;brasilino@recife.pe.gov.br&gt;</author>
+ <copy>see Copyright for the status of this software </copy>
+ <section>Tree</section>
+ <includes>
+ <include>&lt;libxml/tree.h&gt;</include>
+ <include>&lt;libxml/parser.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='74' file='tree' name='xmlNewText'/>
+ <function line='95' file='tree' name='xmlSaveFormatFileEnc'/>
+ <function line='77' file='tree' name='xmlAddChild'/>
+ <function line='40' file='tree' name='xmlDocSetRootElement'/>
+ <function line='88' file='tree' name='xmlNewProp'/>
+ <function line='87' file='tree' name='xmlNewChild'/>
+ <function line='73' file='tree' name='xmlNewNode'/>
+ <function line='45' file='tree' name='xmlCreateIntSubset'/>
+ <function line='38' file='tree' name='xmlNewDoc'/>
+ </uses>
+ </example>
+ <example filename='xpath1.c'>
+ <synopsis>Evaluate XPath expression and prints result node set.</synopsis>
+ <purpose>Shows how to evaluate XPath expression and register known namespaces in XPath context.</purpose>
+ <usage>xpath1 &lt;xml-file&gt; &lt;xpath-expr&gt; [&lt;known-ns-list&gt;]</usage>
+ <test>xpath1 test3.xml &apos;//child2&apos; &gt; xpath1.tmp &amp;&amp; diff xpath1.tmp $(srcdir)/xpath1.res</test>
+ <author>Aleksey Sanin</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>XPath</section>
+ <includes>
+ <include>&lt;libxml/parser.h&gt;</include>
+ <include>&lt;libxml/xpath.h&gt;</include>
+ <include>&lt;libxml/xpathInternals.h&gt;</include>
+ <include>&lt;libxml/tree.h&gt;</include>
+ </includes>
+ <uses>
+ <enum line='229' file='tree' name='XML_ELEMENT_NODE'/>
+ <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
+ <function line='117' file='xpath' name='xmlXPathEvalExpression'/>
+ <function line='94' file='parser' name='xmlParseFile'/>
+ <function line='186' file='xpathInternals' name='xmlXPathRegisterNs'/>
+ <function line='129' file='xpath' name='xmlXPathFreeObject'/>
+ <variable line='193' file='globals' name='xmlFree'/>
+ <typedef line='218' file='tree' name='xmlNsPtr'/>
+ <function line='101' file='xpath' name='xmlXPathNewContext'/>
+ <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
+ <function line='130' file='xpath' name='xmlXPathFreeContext'/>
+ <function line='39' file='parser' name='xmlInitParser'/>
+ <function line='156' file='xmlstring' name='xmlStrdup'/>
+ <function line='180' file='xmlstring' name='xmlStrchr'/>
+ <typedef line='206' file='tree' name='xmlNodePtr'/>
+ <enum line='217' file='tree' name='XML_NAMESPACE_DECL'/>
+ </uses>
+ </example>
+ <example filename='xpath2.c'>
+ <synopsis>Load a document, locate subelements with XPath, modify said elements and save the resulting document.</synopsis>
+ <purpose>Shows how to make a full round-trip from a load/edit/save</purpose>
+ <usage>xpath2 &lt;xml-file&gt; &lt;xpath-expr&gt; &lt;new-value&gt;</usage>
+ <test>xpath2 test3.xml &apos;//discarded&apos; discarded &gt; xpath2.tmp &amp;&amp; diff xpath2.tmp $(srcdir)/xpath2.res</test>
+ <author>Aleksey Sanin and Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>XPath</section>
+ <includes>
+ <include>&lt;libxml/parser.h&gt;</include>
+ <include>&lt;libxml/xpath.h&gt;</include>
+ <include>&lt;libxml/xpathInternals.h&gt;</include>
+ <include>&lt;libxml/tree.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='162' file='tree' name='xmlNodeSetContent'/>
+ <function line='127' file='tree' name='xmlDocDump'/>
+ <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
+ <function line='110' file='xpath' name='xmlXPathEvalExpression'/>
+ <function line='95' file='parser' name='xmlParseFile'/>
+ <function line='123' file='xpath' name='xmlXPathFreeObject'/>
+ <function line='102' file='xpath' name='xmlXPathNewContext'/>
+ <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
+ <function line='124' file='xpath' name='xmlXPathFreeContext'/>
+ <function line='41' file='parser' name='xmlInitParser'/>
+ <enum line='180' file='tree' name='XML_NAMESPACE_DECL'/>
+ </uses>
+ </example>
+ <symbols>
+ <symbol name='LIBXML_TEST_VERSION'>
+ <ref filename='io1.c'/>
+ <ref filename='parse1.c'/>
+ <ref filename='parse2.c'/>
+ <ref filename='parse3.c'/>
+ <ref filename='parse4.c'/>
+ <ref filename='reader1.c'/>
+ </symbol>
+ <symbol name='XML_DEFAULT_VERSION'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='XML_ELEMENT_NODE'>
+ <ref filename='tree1.c'/>
+ <ref filename='xpath1.c'/>
+ </symbol>
+ <symbol name='XML_NAMESPACE_DECL'>
+ <ref filename='xpath1.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='XML_PARSE_DTDATTR'>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='XML_PARSE_DTDVALID'>
+ <ref filename='parse2.c'/>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='XML_PARSE_NOENT'>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='xmlAddChild'>
+ <ref filename='tree2.c'/>
+ </symbol>
+ <symbol name='xmlBufferCreate'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlBufferFree'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlBufferPtr'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlCharEncodingHandlerPtr'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlCleanupParser'>
+ <ref filename='io1.c'/>
+ <ref filename='parse1.c'/>
+ <ref filename='parse2.c'/>
+ <ref filename='parse3.c'/>
+ <ref filename='parse4.c'/>
+ <ref filename='reader1.c'/>
+ </symbol>
+ <symbol name='xmlCreateIntSubset'>
+ <ref filename='tree2.c'/>
+ </symbol>
+ <symbol name='xmlCreatePushParserCtxt'>
+ <ref filename='parse4.c'/>
+ </symbol>
+ <symbol name='xmlCtxtReadFile'>
+ <ref filename='parse2.c'/>
+ </symbol>
+ <symbol name='xmlDocDump'>
+ <ref filename='io1.c'/>
+ <ref filename='reader3.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='xmlDocDumpFormatMemory'>
+ <ref filename='io2.c'/>
+ </symbol>
+ <symbol name='xmlDocGetRootElement'>
+ <ref filename='tree1.c'/>
+ </symbol>
+ <symbol name='xmlDocPtr'>
+ <ref filename='io1.c'/>
+ <ref filename='io2.c'/>
+ <ref filename='parse1.c'/>
+ <ref filename='parse2.c'/>
+ <ref filename='parse3.c'/>
+ <ref filename='parse4.c'/>
+ </symbol>
+ <symbol name='xmlDocSetRootElement'>
+ <ref filename='io2.c'/>
+ <ref filename='testWriter.c'/>
+ <ref filename='tree2.c'/>
+ </symbol>
+ <symbol name='xmlFindCharEncodingHandler'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlFree'>
+ <ref filename='io2.c'/>
+ <ref filename='testWriter.c'/>
+ <ref filename='xpath1.c'/>
+ </symbol>
+ <symbol name='xmlFreeDoc'>
+ <ref filename='io1.c'/>
+ <ref filename='io2.c'/>
+ <ref filename='parse1.c'/>
+ <ref filename='parse2.c'/>
+ <ref filename='parse3.c'/>
+ <ref filename='parse4.c'/>
+ </symbol>
+ <symbol name='xmlFreeParserCtxt'>
+ <ref filename='parse2.c'/>
+ <ref filename='parse4.c'/>
+ </symbol>
+ <symbol name='xmlFreeTextReader'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ <ref filename='reader3.c'/>
+ <ref filename='reader4.c'/>
+ </symbol>
+ <symbol name='xmlFreeTextWriter'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlInitParser'>
+ <ref filename='xpath1.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='xmlMalloc'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlMemoryDump'>
+ <ref filename='io1.c'/>
+ <ref filename='parse1.c'/>
+ <ref filename='parse2.c'/>
+ <ref filename='parse3.c'/>
+ <ref filename='parse4.c'/>
+ <ref filename='reader1.c'/>
+ </symbol>
+ <symbol name='xmlNewChild'>
+ <ref filename='tree2.c'/>
+ </symbol>
+ <symbol name='xmlNewDoc'>
+ <ref filename='io2.c'/>
+ <ref filename='testWriter.c'/>
+ <ref filename='tree2.c'/>
+ </symbol>
+ <symbol name='xmlNewDocNode'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlNewNode'>
+ <ref filename='io2.c'/>
+ <ref filename='tree2.c'/>
+ </symbol>
+ <symbol name='xmlNewParserCtxt'>
+ <ref filename='parse2.c'/>
+ </symbol>
+ <symbol name='xmlNewProp'>
+ <ref filename='tree2.c'/>
+ </symbol>
+ <symbol name='xmlNewText'>
+ <ref filename='tree2.c'/>
+ </symbol>
+ <symbol name='xmlNewTextWriterDoc'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlNewTextWriterFilename'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlNewTextWriterMemory'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlNewTextWriterTree'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlNodePtr'>
+ <ref filename='io2.c'/>
+ <ref filename='testWriter.c'/>
+ <ref filename='xpath1.c'/>
+ </symbol>
+ <symbol name='xmlNodeSetContent'>
+ <ref filename='io2.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='xmlNsPtr'>
+ <ref filename='xpath1.c'/>
+ </symbol>
+ <symbol name='xmlParseChunk'>
+ <ref filename='parse4.c'/>
+ </symbol>
+ <symbol name='xmlParseFile'>
+ <ref filename='xpath1.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='xmlParserCtxtPtr'>
+ <ref filename='parse2.c'/>
+ <ref filename='parse4.c'/>
+ </symbol>
+ <symbol name='xmlReadFile'>
+ <ref filename='parse1.c'/>
+ <ref filename='tree1.c'/>
+ </symbol>
+ <symbol name='xmlReadMemory'>
+ <ref filename='io1.c'/>
+ <ref filename='parse3.c'/>
+ </symbol>
+ <symbol name='xmlReaderForFile'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ <ref filename='reader3.c'/>
+ <ref filename='reader4.c'/>
+ </symbol>
+ <symbol name='xmlReaderNewFile'>
+ <ref filename='reader4.c'/>
+ </symbol>
+ <symbol name='xmlRealloc'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlRegisterInputCallbacks'>
+ <ref filename='io1.c'/>
+ </symbol>
+ <symbol name='xmlSaveFileEnc'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlSaveFormatFileEnc'>
+ <ref filename='tree2.c'/>
+ </symbol>
+ <symbol name='xmlStrchr'>
+ <ref filename='xpath1.c'/>
+ </symbol>
+ <symbol name='xmlStrdup'>
+ <ref filename='xpath1.c'/>
+ </symbol>
+ <symbol name='xmlStrlen'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderConstName'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderConstValue'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderCurrentDoc'>
+ <ref filename='reader3.c'/>
+ <ref filename='reader4.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderDepth'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderHasValue'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderIsEmptyElement'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderIsValid'>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderNodeType'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderPreservePattern'>
+ <ref filename='reader3.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderPtr'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ <ref filename='reader3.c'/>
+ <ref filename='reader4.c'/>
+ </symbol>
+ <symbol name='xmlTextReaderRead'>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ <ref filename='reader3.c'/>
+ <ref filename='reader4.c'/>
+ </symbol>
+ <symbol name='xmlTextWriterEndDocument'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlTextWriterEndElement'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlTextWriterPtr'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlTextWriterStartDocument'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlTextWriterStartElement'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlTextWriterWriteAttribute'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlTextWriterWriteComment'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlTextWriterWriteElement'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlTextWriterWriteFormatComment'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlTextWriterWriteFormatElement'>
+ <ref filename='testWriter.c'/>
+ </symbol>
+ <symbol name='xmlXIncludeProcess'>
+ <ref filename='io1.c'/>
+ </symbol>
+ <symbol name='xmlXPathContextPtr'>
+ <ref filename='xpath1.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='xmlXPathEvalExpression'>
+ <ref filename='xpath1.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='xmlXPathFreeContext'>
+ <ref filename='xpath1.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='xmlXPathFreeObject'>
+ <ref filename='xpath1.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='xmlXPathNewContext'>
+ <ref filename='xpath1.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='xmlXPathObjectPtr'>
+ <ref filename='xpath1.c'/>
+ <ref filename='xpath2.c'/>
+ </symbol>
+ <symbol name='xmlXPathRegisterNs'>
+ <ref filename='xpath1.c'/>
+ </symbol>
+ </symbols>
+ <sections>
+ <section name='InputOutput'>
+ <example filename='io1.c'/>
+ <example filename='io2.c'/>
+ </section>
+ <section name='Parsing'>
+ <example filename='parse1.c'/>
+ <example filename='parse2.c'/>
+ <example filename='parse3.c'/>
+ <example filename='parse4.c'/>
+ </section>
+ <section name='Tree'>
+ <example filename='tree1.c'/>
+ <example filename='tree2.c'/>
+ </section>
+ <section name='XPath'>
+ <example filename='xpath1.c'/>
+ <example filename='xpath2.c'/>
+ </section>
+ <section name='xmlReader'>
+ <example filename='reader1.c'/>
+ <example filename='reader2.c'/>
+ <example filename='reader3.c'/>
+ <example filename='reader4.c'/>
+ </section>
+ <section name='xmlWriter'>
+ <example filename='testWriter.c'/>
+ </section>
+ </sections>
+</examples>
diff --git a/libxml2-2.9.10/doc/examples/examples.xsl b/libxml2-2.9.10/doc/examples/examples.xsl
new file mode 100644
index 0000000..bc93a3d
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/examples.xsl
@@ -0,0 +1,174 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ extension-element-prefixes="exsl"
+ exclude-result-prefixes="exsl">
+
+ <xsl:import href="../site.xsl"/>
+
+ <xsl:variable name="href_base">../</xsl:variable>
+ <xsl:variable name="menu_name">Examples Menu</xsl:variable>
+
+ <xsl:variable name="toc">
+ <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><!-- style="margin-left: -1em" -->
+ <li><a href="{$href_base}index.html">Home</a></li>
+ <li><a style="font-weight:bold"
+ href="{$href_base}docs.html">Developer Menu</a></li>
+ <li><a style="font-weight:bold"
+ href="{$href_base}html/index.html">API Menu</a></li>
+ <xsl:for-each select="/examples/sections/section">
+ <li><a href="#{@name}"><xsl:value-of select="@name"/> Examples</a></li>
+ </xsl:for-each>
+ <li><a href="{$href_base}guidelines.html">XML Guidelines</a></li>
+ </ul>
+ </xsl:variable>
+
+ <xsl:template match="include">
+ <xsl:variable name="header" select="substring-before(substring-after(., '/'), '&gt;')"/>
+ <xsl:variable name="doc" select="concat('../html/libxml-', $header, 'tml')"/>
+ <li><a href="{$doc}"><xsl:value-of select="."/></a></li>
+ </xsl:template>
+
+ <xsl:template match="typedef">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="header" select="concat(@file, '.h')"/>
+ <xsl:variable name="doc" select="concat('../html/libxml-', @file, '.html#', $name)"/>
+ <li> line <xsl:value-of select="@line"/>: Type <a href="{$doc}"><xsl:value-of select="$name"/></a> from <xsl:value-of select="$header"/></li>
+ </xsl:template>
+
+ <xsl:template match="function">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="header" select="concat(@file, '.h')"/>
+ <xsl:variable name="doc" select="concat('../html/libxml-', @file, '.html#', $name)"/>
+ <li> line <xsl:value-of select="@line"/>: Function <a href="{$doc}"><xsl:value-of select="$name"/></a> from <xsl:value-of select="$header"/></li>
+ </xsl:template>
+
+ <xsl:template match="macro">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="header" select="concat(@file, '.h')"/>
+ <xsl:variable name="doc" select="concat('../html/libxml-', @file, '.html#', $name)"/>
+ <li> line <xsl:value-of select="@line"/>: Macro <a href="{$doc}"><xsl:value-of select="$name"/></a> from <xsl:value-of select="$header"/></li>
+ </xsl:template>
+
+ <xsl:template match="example">
+ <xsl:variable name="filename" select="string(@filename)"/>
+ <h3><a name="{$filename}" href="{$filename}"><xsl:value-of select="$filename"/></a>: <xsl:value-of select="synopsis"/></h3>
+ <p><xsl:value-of select="purpose"/></p>
+ <p>Includes:</p>
+ <ul>
+ <xsl:for-each select="includes/include">
+ <xsl:apply-templates select='.'/>
+ </xsl:for-each>
+ </ul>
+ <p>Uses:</p>
+ <ul>
+ <xsl:for-each select="uses/*">
+ <xsl:sort select="@line" data-type="number"/>
+ <xsl:apply-templates select='.'/>
+ </xsl:for-each>
+ </ul>
+ <p>Usage:</p>
+ <p><xsl:value-of select="usage"/></p>
+ <p>Author: <xsl:value-of select="author"/></p>
+ </xsl:template>
+
+ <xsl:template match="section">
+ <li><p> <a href="#{@name}"><xsl:value-of select="@name"/></a> :</p>
+ <ul>
+ <xsl:for-each select="example">
+ <xsl:sort select='.'/>
+ <xsl:variable name="filename" select="@filename"/>
+ <li> <a href="#{$filename}"><xsl:value-of select="$filename"/></a>: <xsl:value-of select="/examples/example[@filename = $filename]/synopsis"/></li>
+ </xsl:for-each>
+ </ul>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="sections">
+ <p> The examples are stored per section depending on the main focus
+ of the example:</p>
+ <ul>
+ <xsl:for-each select="section">
+ <xsl:sort select='.'/>
+ <xsl:apply-templates select='.'/>
+ </xsl:for-each>
+ </ul>
+ <p> Getting the compilation options and libraries dependencies needed
+to generate binaries from the examples is best done on Linux/Unix by using
+the xml2-config script which should have been installed as part of <i>make
+install</i> step or when installing the libxml2 development package:</p>
+<pre>gcc -o example `xml2-config --cflags` example.c `xml2-config --libs`</pre>
+ </xsl:template>
+
+ <xsl:template name="sections-list">
+ <xsl:for-each select="sections/section">
+ <xsl:variable name="section" select="@name"/>
+ <h2> <a name="{$section}"></a><xsl:value-of select="$section"/> Examples</h2>
+ <xsl:apply-templates select='/examples/example[section = $section]'/>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="examples">
+ <xsl:variable name="title">Libxml2 set of examples</xsl:variable>
+ <xsl:document href="index.html" method="xml" encoding="ISO-8859-1"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:element name="title">
+ <xsl:value-of select="$title"/>
+ </xsl:element>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#000000" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="toc"/>
+ </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">
+ <xsl:apply-templates select="sections"/>
+ <xsl:call-template name="sections-list"/>
+ <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>
+ </xsl:document>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libxml2-2.9.10/doc/examples/index.html b/libxml2-2.9.10/doc/examples/index.html
new file mode 100644
index 0000000..9707759
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/index.html
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Libxml2 set of examples</title></head><body bgcolor="#8b7765" text="#000000" link="#000000" 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></h1><h2>Libxml2 set of examples</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>Examples 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 style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../html/index.html">API Menu</a></li><li><a href="#InputOutput">InputOutput Examples</a></li><li><a href="#Parsing">Parsing Examples</a></li><li><a href="#Tree">Tree Examples</a></li><li><a href="#XPath">XPath Examples</a></li><li><a href="#xmlReader">xmlReader Examples</a></li><li><a href="#xmlWriter">xmlWriter Examples</a></li><li><a href="../guidelines.html">XML Guidelines</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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 examples are stored per section depending on the main focus
+ of the example:</p><ul><li><p><a href="#xmlWriter">xmlWriter</a> :</p><ul><li><a href="#testWriter.c">testWriter.c</a>: use various APIs for the xmlWriter</li></ul></li><li><p><a href="#InputOutput">InputOutput</a> :</p><ul><li><a href="#io1.c">io1.c</a>: Example of custom Input/Output</li><li><a href="#io2.c">io2.c</a>: Output to char buffer</li></ul></li><li><p><a href="#Tree">Tree</a> :</p><ul><li><a href="#tree1.c">tree1.c</a>: Navigates a tree to print element names</li><li><a href="#tree2.c">tree2.c</a>: Creates a tree</li></ul></li><li><p><a href="#XPath">XPath</a> :</p><ul><li><a href="#xpath1.c">xpath1.c</a>: Evaluate XPath expression and prints result node set.</li><li><a href="#xpath2.c">xpath2.c</a>: Load a document, locate subelements with XPath, modify said elements and save the resulting document.</li></ul></li><li><p><a href="#Parsing">Parsing</a> :</p><ul><li><a href="#parse1.c">parse1.c</a>: Parse an XML file to a tree and free it</li><li><a href="#parse2.c">parse2.c</a>: Parse and validate an XML file to a tree and free the result</li><li><a href="#parse3.c">parse3.c</a>: Parse an XML document in memory to a tree and free it</li><li><a href="#parse4.c">parse4.c</a>: Parse an XML document chunk by chunk to a tree and free it</li></ul></li><li><p><a href="#xmlReader">xmlReader</a> :</p><ul><li><a href="#reader1.c">reader1.c</a>: Parse an XML file with an xmlReader</li><li><a href="#reader2.c">reader2.c</a>: Parse and validate an XML file with an xmlReader</li><li><a href="#reader3.c">reader3.c</a>: Show how to extract subdocuments with xmlReader</li><li><a href="#reader4.c">reader4.c</a>: Parse multiple XML files reusing an xmlReader</li></ul></li></ul><p> Getting the compilation options and libraries dependencies needed
+to generate binaries from the examples is best done on Linux/Unix by using
+the xml2-config script which should have been installed as part of <i>make
+install</i> step or when installing the libxml2 development package:</p><pre>gcc -o example `xml2-config --cflags` example.c `xml2-config --libs`</pre><h2><a name="InputOutput" id="InputOutput"></a>InputOutput Examples</h2><h3><a name="io1.c" href="io1.c" id="io1.c">io1.c</a>: Example of custom Input/Output</h3><p>Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way.</p><p>Includes:</p><ul><li><a href="../html/libxml-parser.html">&lt;libxml/parser.h&gt;</a></li><li><a href="../html/libxml-xmlIO.html">&lt;libxml/xmlIO.h&gt;</a></li><li><a href="../html/libxml-xinclude.html">&lt;libxml/xinclude.h&gt;</a></li><li><a href="../html/libxml-tree.html">&lt;libxml/tree.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 105: Type <a href="../html/libxml-tree.html#xmlDocPtr">xmlDocPtr</a> from tree.h</li><li> line 117: Macro <a href="../html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a> from xmlversion.h</li><li> line 117: Function <a href="../html/libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a> from xmlIO.h</li><li> line 124: Function <a href="../html/libxml-parser.html#xmlReadMemory">xmlReadMemory</a> from parser.h</li><li> line 134: Function <a href="../html/libxml-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a> from xinclude.h</li><li> line 143: Function <a href="../html/libxml-tree.html#xmlDocDump">xmlDocDump</a> from tree.h</li><li> line 149: Function <a href="../html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a> from tree.h</li><li> line 154: Function <a href="../html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a> from parser.h</li><li> line 158: Function <a href="../html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a> from xmlmemory.h</li></ul><p>Usage:</p><p>io1</p><p>Author: Daniel Veillard</p><h3><a name="io2.c" href="io2.c" id="io2.c">io2.c</a>: Output to char buffer</h3><p>Demonstrate the use of xmlDocDumpMemory to output document to a character buffer</p><p>Includes:</p><ul><li><a href="../html/libxml-parser.html">&lt;libxml/parser.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 19: Type <a href="../html/libxml-tree.html#xmlNodePtr">xmlNodePtr</a> from tree.h</li><li> line 20: Type <a href="../html/libxml-tree.html#xmlDocPtr">xmlDocPtr</a> from tree.h</li><li> line 27: Function <a href="../html/libxml-tree.html#xmlNewDoc">xmlNewDoc</a> from tree.h</li><li> line 28: Function <a href="../html/libxml-tree.html#xmlNewNode">xmlNewNode</a> from tree.h</li><li> line 29: Function <a href="../html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a> from tree.h</li><li> line 30: Function <a href="../html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a> from tree.h</li><li> line 36: Function <a href="../html/libxml-tree.html#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a> from tree.h</li><li> line 43: Function <a href="../html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a> from tree.h</li></ul><p>Usage:</p><p>io2</p><p>Author: John Fleck</p><h2><a name="Parsing" id="Parsing"></a>Parsing Examples</h2><h3><a name="parse1.c" href="parse1.c" id="parse1.c">parse1.c</a>: Parse an XML file to a tree and free it</h3><p>Demonstrate the use of xmlReadFile() to read an XML file into a tree and xmlFreeDoc() to free the resulting tree</p><p>Includes:</p><ul><li><a href="../html/libxml-tree.html">&lt;libxml/tree.h&gt;</a></li><li><a href="../html/libxml-parser.html">&lt;libxml/parser.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 24: Type <a href="../html/libxml-tree.html#xmlDocPtr">xmlDocPtr</a> from tree.h</li><li> line 26: Function <a href="../html/libxml-parser.html#xmlReadFile">xmlReadFile</a> from parser.h</li><li> line 31: Function <a href="../html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a> from tree.h</li><li> line 45: Macro <a href="../html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a> from xmlversion.h</li><li> line 50: Function <a href="../html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a> from parser.h</li><li> line 54: Function <a href="../html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a> from xmlmemory.h</li></ul><p>Usage:</p><p>parse1 test1.xml</p><p>Author: Daniel Veillard</p><h3><a name="parse2.c" href="parse2.c" id="parse2.c">parse2.c</a>: Parse and validate an XML file to a tree and free the result</h3><p>Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.</p><p>Includes:</p><ul><li><a href="../html/libxml-tree.html">&lt;libxml/tree.h&gt;</a></li><li><a href="../html/libxml-parser.html">&lt;libxml/parser.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 25: Type <a href="../html/libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> from tree.h</li><li> line 26: Type <a href="../html/libxml-tree.html#xmlDocPtr">xmlDocPtr</a> from tree.h</li><li> line 29: Function <a href="../html/libxml-parser.html#xmlNewParserCtxt">xmlNewParserCtxt</a> from parser.h</li><li> line 35: Function <a href="../html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a> from parser.h</li><li> line 44: Function <a href="../html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a> from tree.h</li><li> line 47: Function <a href="../html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a> from parser.h</li><li> line 61: Macro <a href="../html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a> from xmlversion.h</li><li> line 66: Function <a href="../html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a> from parser.h</li><li> line 70: Function <a href="../html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a> from xmlmemory.h</li></ul><p>Usage:</p><p>parse2 test2.xml</p><p>Author: Daniel Veillard</p><h3><a name="parse3.c" href="parse3.c" id="parse3.c">parse3.c</a>: Parse an XML document in memory to a tree and free it</h3><p>Demonstrate the use of xmlReadMemory() to read an XML file into a tree and xmlFreeDoc() to free the resulting tree</p><p>Includes:</p><ul><li><a href="../html/libxml-tree.html">&lt;libxml/tree.h&gt;</a></li><li><a href="../html/libxml-parser.html">&lt;libxml/parser.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 27: Type <a href="../html/libxml-tree.html#xmlDocPtr">xmlDocPtr</a> from tree.h</li><li> line 33: Function <a href="../html/libxml-parser.html#xmlReadMemory">xmlReadMemory</a> from parser.h</li><li> line 38: Function <a href="../html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a> from tree.h</li><li> line 49: Macro <a href="../html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a> from xmlversion.h</li><li> line 54: Function <a href="../html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a> from parser.h</li><li> line 58: Function <a href="../html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a> from xmlmemory.h</li></ul><p>Usage:</p><p>parse3</p><p>Author: Daniel Veillard</p><h3><a name="parse4.c" href="parse4.c" id="parse4.c">parse4.c</a>: Parse an XML document chunk by chunk to a tree and free it</h3><p>Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and xmlFreeDoc() to free the resulting tree</p><p>Includes:</p><ul><li><a href="../html/libxml-tree.html">&lt;libxml/tree.h&gt;</a></li><li><a href="../html/libxml-parser.html">&lt;libxml/parser.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 45: Type <a href="../html/libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> from tree.h</li><li> line 47: Type <a href="../html/libxml-tree.html#xmlDocPtr">xmlDocPtr</a> from tree.h</li><li> line 67: Function <a href="../html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a> from parser.h</li><li> line 86: Function <a href="../html/libxml-parser.html#xmlParseChunk">xmlParseChunk</a> from parser.h</li><li> line 94: Function <a href="../html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a> from parser.h</li><li> line 103: Function <a href="../html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a> from tree.h</li><li> line 120: Macro <a href="../html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a> from xmlversion.h</li><li> line 131: Function <a href="../html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a> from parser.h</li><li> line 135: Function <a href="../html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a> from xmlmemory.h</li></ul><p>Usage:</p><p>parse4 test3.xml</p><p>Author: Daniel Veillard</p><h2><a name="Tree" id="Tree"></a>Tree Examples</h2><h3><a name="tree1.c" href="tree1.c" id="tree1.c">tree1.c</a>: Navigates a tree to print element names</h3><p>Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.</p><p>Includes:</p><ul><li><a href="../html/libxml-tree.html">&lt;libxml/tree.h&gt;</a></li><li><a href="../html/libxml-parser.html">&lt;libxml/parser.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 67: Function <a href="../html/libxml-parser.html#xmlReadFile">xmlReadFile</a> from parser.h</li><li> line 74: Function <a href="../html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a> from tree.h</li></ul><p>Usage:</p><p>tree1 filename_or_URL</p><p>Author: Dodji Seketeli</p><h3><a name="tree2.c" href="tree2.c" id="tree2.c">tree2.c</a>: Creates a tree</h3><p>Shows how to create document, nodes and dump it to stdout or file.</p><p>Includes:</p><ul><li><a href="../html/libxml-tree.html">&lt;libxml/tree.h&gt;</a></li><li><a href="../html/libxml-parser.html">&lt;libxml/parser.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 38: Function <a href="../html/libxml-tree.html#xmlNewDoc">xmlNewDoc</a> from tree.h</li><li> line 40: Function <a href="../html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a> from tree.h</li><li> line 45: Function <a href="../html/libxml-tree.html#xmlCreateIntSubset">xmlCreateIntSubset</a> from tree.h</li><li> line 73: Function <a href="../html/libxml-tree.html#xmlNewNode">xmlNewNode</a> from tree.h</li><li> line 74: Function <a href="../html/libxml-tree.html#xmlNewText">xmlNewText</a> from tree.h</li><li> line 77: Function <a href="../html/libxml-tree.html#xmlAddChild">xmlAddChild</a> from tree.h</li><li> line 87: Function <a href="../html/libxml-tree.html#xmlNewChild">xmlNewChild</a> from tree.h</li><li> line 88: Function <a href="../html/libxml-tree.html#xmlNewProp">xmlNewProp</a> from tree.h</li><li> line 95: Function <a href="../html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a> from tree.h</li></ul><p>Usage:</p><p>tree2 &lt;filename&gt; -Default output: stdout</p><p>Author: Lucas Brasilino &lt;brasilino@recife.pe.gov.br&gt;</p><h2><a name="XPath" id="XPath"></a>XPath Examples</h2><h3><a name="xpath1.c" href="xpath1.c" id="xpath1.c">xpath1.c</a>: Evaluate XPath expression and prints result node set.</h3><p>Shows how to evaluate XPath expression and register known namespaces in XPath context.</p><p>Includes:</p><ul><li><a href="../html/libxml-parser.html">&lt;libxml/parser.h&gt;</a></li><li><a href="../html/libxml-xpath.html">&lt;libxml/xpath.h&gt;</a></li><li><a href="../html/libxml-xpathInternals.html">&lt;libxml/xpathInternals.h&gt;</a></li><li><a href="../html/libxml-tree.html">&lt;libxml/tree.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 39: Function <a href="../html/libxml-parser.html#xmlInitParser">xmlInitParser</a> from parser.h</li><li> line 87: Type <a href="../html/libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> from xpath.h</li><li> line 88: Type <a href="../html/libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> from xpath.h</li><li> line 94: Function <a href="../html/libxml-parser.html#xmlParseFile">xmlParseFile</a> from parser.h</li><li> line 101: Function <a href="../html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a> from xpath.h</li><li> line 117: Function <a href="../html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a> from xpath.h</li><li> line 129: Function <a href="../html/libxml-xpath.html#xmlXPathFreeObject">xmlXPathFreeObject</a> from xpath.h</li><li> line 130: Function <a href="../html/libxml-xpath.html#xmlXPathFreeContext">xmlXPathFreeContext</a> from xpath.h</li><li> line 156: Function <a href="../html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a> from xmlstring.h</li><li> line 180: Function <a href="../html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a> from xmlstring.h</li><li> line 186: Function <a href="../html/libxml-xpathInternals.html#xmlXPathRegisterNs">xmlXPathRegisterNs</a> from xpathInternals.h</li><li> line 206: Type <a href="../html/libxml-tree.html#xmlNodePtr">xmlNodePtr</a> from tree.h</li><li> line 218: Type <a href="../html/libxml-tree.html#xmlNsPtr">xmlNsPtr</a> from tree.h</li></ul><p>Usage:</p><p>xpath1 &lt;xml-file&gt; &lt;xpath-expr&gt; [&lt;known-ns-list&gt;]</p><p>Author: Aleksey Sanin</p><h3><a name="xpath2.c" href="xpath2.c" id="xpath2.c">xpath2.c</a>: Load a document, locate subelements with XPath, modify said elements and save the resulting document.</h3><p>Shows how to make a full round-trip from a load/edit/save</p><p>Includes:</p><ul><li><a href="../html/libxml-parser.html">&lt;libxml/parser.h&gt;</a></li><li><a href="../html/libxml-xpath.html">&lt;libxml/xpath.h&gt;</a></li><li><a href="../html/libxml-xpathInternals.html">&lt;libxml/xpathInternals.h&gt;</a></li><li><a href="../html/libxml-tree.html">&lt;libxml/tree.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 41: Function <a href="../html/libxml-parser.html#xmlInitParser">xmlInitParser</a> from parser.h</li><li> line 87: Type <a href="../html/libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> from xpath.h</li><li> line 88: Type <a href="../html/libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> from xpath.h</li><li> line 95: Function <a href="../html/libxml-parser.html#xmlParseFile">xmlParseFile</a> from parser.h</li><li> line 102: Function <a href="../html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a> from xpath.h</li><li> line 110: Function <a href="../html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a> from xpath.h</li><li> line 123: Function <a href="../html/libxml-xpath.html#xmlXPathFreeObject">xmlXPathFreeObject</a> from xpath.h</li><li> line 124: Function <a href="../html/libxml-xpath.html#xmlXPathFreeContext">xmlXPathFreeContext</a> from xpath.h</li><li> line 127: Function <a href="../html/libxml-tree.html#xmlDocDump">xmlDocDump</a> from tree.h</li><li> line 162: Function <a href="../html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a> from tree.h</li></ul><p>Usage:</p><p>xpath2 &lt;xml-file&gt; &lt;xpath-expr&gt; &lt;new-value&gt;</p><p>Author: Aleksey Sanin and Daniel Veillard</p><h2><a name="xmlReader" id="xmlReader"></a>xmlReader Examples</h2><h3><a name="reader1.c" href="reader1.c" id="reader1.c">reader1.c</a>: Parse an XML file with an xmlReader</h3><p>Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the informations about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.)</p><p>Includes:</p><ul><li><a href="../html/libxml-xmlreader.html">&lt;libxml/xmlreader.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 29: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderConstName">xmlTextReaderConstName</a> from xmlreader.h</li><li> line 33: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a> from xmlreader.h</li><li> line 36: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderDepth">xmlTextReaderDepth</a> from xmlreader.h</li><li> line 37: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a> from xmlreader.h</li><li> line 39: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderIsEmptyElement">xmlTextReaderIsEmptyElement</a> from xmlreader.h</li><li> line 40: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderHasValue">xmlTextReaderHasValue</a> from xmlreader.h</li><li> line 44: Function <a href="../html/libxml-xmlstring.html#xmlStrlen">xmlStrlen</a> from xmlstring.h</li><li> line 59: Type <a href="../html/libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> from xmlreader.h</li><li> line 62: Function <a href="../html/libxml-xmlreader.html#xmlReaderForFile">xmlReaderForFile</a> from xmlreader.h</li><li> line 67: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a> from xmlreader.h</li><li> line 69: Function <a href="../html/libxml-xmlreader.html#xmlFreeTextReader">xmlFreeTextReader</a> from xmlreader.h</li><li> line 89: Macro <a href="../html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a> from xmlversion.h</li><li> line 94: Function <a href="../html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a> from parser.h</li><li> line 98: Function <a href="../html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a> from xmlmemory.h</li></ul><p>Usage:</p><p>reader1 &lt;filename&gt;</p><p>Author: Daniel Veillard</p><h3><a name="reader2.c" href="reader2.c" id="reader2.c">reader2.c</a>: Parse and validate an XML file with an xmlReader</h3><p>Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)</p><p>Includes:</p><ul><li><a href="../html/libxml-xmlreader.html">&lt;libxml/xmlreader.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 30: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderConstName">xmlTextReaderConstName</a> from xmlreader.h</li><li> line 34: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a> from xmlreader.h</li><li> line 37: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderDepth">xmlTextReaderDepth</a> from xmlreader.h</li><li> line 38: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a> from xmlreader.h</li><li> line 40: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderIsEmptyElement">xmlTextReaderIsEmptyElement</a> from xmlreader.h</li><li> line 41: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderHasValue">xmlTextReaderHasValue</a> from xmlreader.h</li><li> line 45: Function <a href="../html/libxml-xmlstring.html#xmlStrlen">xmlStrlen</a> from xmlstring.h</li><li> line 60: Type <a href="../html/libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> from xmlreader.h</li><li> line 68: Function <a href="../html/libxml-xmlreader.html#xmlReaderForFile">xmlReaderForFile</a> from xmlreader.h</li><li> line 76: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a> from xmlreader.h</li><li> line 81: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderIsValid">xmlTextReaderIsValid</a> from xmlreader.h</li><li> line 84: Function <a href="../html/libxml-xmlreader.html#xmlFreeTextReader">xmlFreeTextReader</a> from xmlreader.h</li></ul><p>Usage:</p><p>reader2 &lt;valid_xml_filename&gt;</p><p>Author: Daniel Veillard</p><h3><a name="reader3.c" href="reader3.c" id="reader3.c">reader3.c</a>: Show how to extract subdocuments with xmlReader</h3><p>Demonstrate the use of xmlTextReaderPreservePattern() to parse an XML file with the xmlReader while collecting only some subparts of the document. (Note that the XMLReader functions require libxml2 version later than 2.6.)</p><p>Includes:</p><ul><li><a href="../html/libxml-xmlreader.html">&lt;libxml/xmlreader.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 32: Type <a href="../html/libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> from xmlreader.h</li><li> line 38: Function <a href="../html/libxml-xmlreader.html#xmlReaderForFile">xmlReaderForFile</a> from xmlreader.h</li><li> line 43: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a> from xmlreader.h</li><li> line 52: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a> from xmlreader.h</li><li> line 62: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a> from xmlreader.h</li><li> line 66: Function <a href="../html/libxml-xmlreader.html#xmlFreeTextReader">xmlFreeTextReader</a> from xmlreader.h</li><li> line 96: Function <a href="../html/libxml-tree.html#xmlDocDump">xmlDocDump</a> from tree.h</li></ul><p>Usage:</p><p>reader3</p><p>Author: Daniel Veillard</p><h3><a name="reader4.c" href="reader4.c" id="reader4.c">reader4.c</a>: Parse multiple XML files reusing an xmlReader</h3><p>Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.)</p><p>Includes:</p><ul><li><a href="../html/libxml-xmlreader.html">&lt;libxml/xmlreader.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 26: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a> from xmlreader.h</li><li> line 54: Type <a href="../html/libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> from xmlreader.h</li><li> line 72: Function <a href="../html/libxml-xmlreader.html#xmlReaderForFile">xmlReaderForFile</a> from xmlreader.h</li><li> line 83: Function <a href="../html/libxml-xmlreader.html#xmlReaderNewFile">xmlReaderNewFile</a> from xmlreader.h</li><li> line 97: Function <a href="../html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a> from xmlreader.h</li><li> line 104: Function <a href="../html/libxml-xmlreader.html#xmlFreeTextReader">xmlFreeTextReader</a> from xmlreader.h</li></ul><p>Usage:</p><p>reader4 &lt;filename&gt; [ filename ... ]</p><p>Author: Graham Bennett</p><h2><a name="xmlWriter" id="xmlWriter"></a>xmlWriter Examples</h2><h3><a name="testWriter.c" href="testWriter.c" id="testWriter.c">testWriter.c</a>: use various APIs for the xmlWriter</h3><p>tests a number of APIs for the xmlWriter, especially the various methods to write to a filename, to a memory buffer, to a new document, or to a subtree. It shows how to do encoding string conversions too. The resulting documents are then serialized.</p><p>Includes:</p><ul><li><a href="../html/libxml-encoding.html">&lt;libxml/encoding.h&gt;</a></li><li><a href="../html/libxml-xmlwriter.html">&lt;libxml/xmlwriter.h&gt;</a></li></ul><p>Uses:</p><ul><li> line 76: Function <a href="../html/libxml-xmlwriter.html#xmlNewTextWriterFilename">xmlNewTextWriterFilename</a> from xmlwriter.h</li><li> line 341: Type <a href="../html/libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> from tree.h</li><li> line 347: Function <a href="../html/libxml-tree.html#xmlBufferCreate">xmlBufferCreate</a> from tree.h</li><li> line 355: Function <a href="../html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a> from xmlwriter.h</li><li> line 613: Function <a href="../html/libxml-tree.html#xmlBufferFree">xmlBufferFree</a> from tree.h</li><li> line 632: Function <a href="../html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a> from xmlwriter.h</li><li> line 878: Type <a href="../html/libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> from xmlwriter.h</li><li> line 880: Type <a href="../html/libxml-tree.html#xmlNodePtr">xmlNodePtr</a> from tree.h</li><li> line 885: Macro <a href="../html/libxml-parser.html#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a> from parser.h</li><li> line 885: Function <a href="../html/libxml-tree.html#xmlNewDoc">xmlNewDoc</a> from tree.h</li><li> line 894: Function <a href="../html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a> from tree.h</li><li> line 901: Function <a href="../html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a> from tree.h</li><li> line 904: Function <a href="../html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a> from xmlwriter.h</li><li> line 913: Function <a href="../html/libxml-xmlwriter.html#xmlTextWriterStartDocument">xmlTextWriterStartDocument</a> from xmlwriter.h</li><li> line 925: Function <a href="../html/libxml-xmlwriter.html#xmlTextWriterWriteComment">xmlTextWriterWriteComment</a> from xmlwriter.h</li><li> line 949: Function <a href="../html/libxml-xmlwriter.html#xmlTextWriterWriteAttribute">xmlTextWriterWriteAttribute</a> from xmlwriter.h</li><li> line 959: Function <a href="../html/libxml-xmlwriter.html#xmlTextWriterWriteFormatComment">xmlTextWriterWriteFormatComment</a> from xmlwriter.h</li><li> line 1073: Function <a href="../html/libxml-xmlwriter.html#xmlTextWriterWriteFormatElement">xmlTextWriterWriteFormatElement</a> from xmlwriter.h</li><li> line 1096: Function <a href="../html/libxml-xmlwriter.html#xmlTextWriterStartElement">xmlTextWriterStartElement</a> from xmlwriter.h</li><li> line 1103: Function <a href="../html/libxml-xmlwriter.html#xmlTextWriterWriteElement">xmlTextWriterWriteElement</a> from xmlwriter.h</li><li> line 1111: Function <a href="../html/libxml-xmlwriter.html#xmlTextWriterEndElement">xmlTextWriterEndElement</a> from xmlwriter.h</li><li> line 1121: Function <a href="../html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a> from xmlwriter.h</li><li> line 1127: Function <a href="../html/libxml-xmlwriter.html#xmlFreeTextWriter">xmlFreeTextWriter</a> from xmlwriter.h</li><li> line 1129: Function <a href="../html/libxml-tree.html#xmlSaveFileEnc">xmlSaveFileEnc</a> from tree.h</li><li> line 1151: Type <a href="../html/libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> from encoding.h</li><li> line 1156: Function <a href="../html/libxml-encoding.html#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a> from encoding.h</li></ul><p>Usage:</p><p>testWriter</p><p>Author: Alfred Mickautsch</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>
diff --git a/libxml2-2.9.10/doc/examples/index.py b/libxml2-2.9.10/doc/examples/index.py
new file mode 100755
index 0000000..ac44ec5
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/index.py
@@ -0,0 +1,315 @@
+#!/usr/bin/python -u
+#
+# Indexes the examples and build an XML description
+#
+import string
+import glob
+import sys
+try:
+ import libxml2
+except:
+ sys.exit(1)
+sys.path.insert(0, "..")
+from apibuild import CParser, escape
+
+examples = []
+extras = ['examples.xsl', 'index.html', 'index.py']
+tests = []
+sections = {}
+symbols = {}
+api_dict = None
+api_doc = None
+
+def load_api():
+ global api_dict
+ global api_doc
+
+ if api_dict != None:
+ return
+ api_dict = {}
+ try:
+ print "loading ../libxml2-api.xml"
+ api_doc = libxml2.parseFile("../libxml2-api.xml")
+ except:
+ print "failed to parse ../libxml2-api.xml"
+ sys.exit(1)
+
+def find_symbol(name):
+ global api_dict
+ global api_doc
+
+ if api_doc == None:
+ load_api()
+
+ if name == None:
+ return
+ if api_dict.has_key(name):
+ return api_dict[name]
+ ctxt = api_doc.xpathNewContext()
+ res = ctxt.xpathEval("/api/symbols/*[@name = '%s']" % (name))
+ if type(res) == type([]) and len(res) >= 1:
+ if len(res) > 1:
+ print "Found %d references to %s in the API" % (len(res), name)
+ node = res[0]
+ typ = node.name
+ file = node.xpathEval("string(@file)")
+ info = node.xpathEval("string(info)")
+ else:
+ print "Reference %s not found in the API" % (name)
+ return None
+ ret = (typ, file, info)
+ api_dict[name] = ret
+ return ret
+
+def parse_top_comment(filename, comment):
+ res = {}
+ lines = string.split(comment, "\n")
+ item = None
+ for line in lines:
+ while line != "" and (line[0] == ' ' or line[0] == '\t'):
+ line = line[1:]
+ while line != "" and line[0] == '*':
+ line = line[1:]
+ while line != "" and (line[0] == ' ' or line[0] == '\t'):
+ line = line[1:]
+ try:
+ (it, line) = string.split(line, ":", 1)
+ item = it
+ while line != "" and (line[0] == ' ' or line[0] == '\t'):
+ line = line[1:]
+ if res.has_key(item):
+ res[item] = res[item] + " " + line
+ else:
+ res[item] = line
+ except:
+ if item != None:
+ if res.has_key(item):
+ res[item] = res[item] + " " + line
+ else:
+ res[item] = line
+ return res
+
+def parse(filename, output):
+ global symbols
+ global sections
+
+ parser = CParser(filename)
+ parser.collect_references()
+ idx = parser.parse()
+ info = parse_top_comment(filename, parser.top_comment)
+ output.write(" <example filename='%s'>\n" % filename)
+ try:
+ synopsis = info['synopsis']
+ output.write(" <synopsis>%s</synopsis>\n" % escape(synopsis));
+ except:
+ print "Example %s lacks a synopsis description" % (filename)
+ try:
+ purpose = info['purpose']
+ output.write(" <purpose>%s</purpose>\n" % escape(purpose));
+ except:
+ print "Example %s lacks a purpose description" % (filename)
+ try:
+ usage = info['usage']
+ output.write(" <usage>%s</usage>\n" % escape(usage));
+ except:
+ print "Example %s lacks an usage description" % (filename)
+ try:
+ test = info['test']
+ output.write(" <test>%s</test>\n" % escape(test));
+ progname=filename[0:-2]
+ command=string.replace(test, progname, './' + progname, 1)
+ tests.append(command)
+ except:
+ pass
+ try:
+ author = info['author']
+ output.write(" <author>%s</author>\n" % escape(author));
+ except:
+ print "Example %s lacks an author description" % (filename)
+ try:
+ copy = info['copy']
+ output.write(" <copy>%s</copy>\n" % escape(copy));
+ except:
+ print "Example %s lacks a copyright description" % (filename)
+ try:
+ section = info['section']
+ output.write(" <section>%s</section>\n" % escape(section));
+ if sections.has_key(section):
+ sections[section].append(filename)
+ else:
+ sections[section] = [filename]
+ except:
+ print "Example %s lacks a section description" % (filename)
+ for topic in info.keys():
+ if topic != "purpose" and topic != "usage" and \
+ topic != "author" and topic != "copy" and \
+ topic != "section" and topic != "synopsis" and topic != "test":
+ str = info[topic]
+ output.write(" <extra topic='%s'>%s</extra>\n" % (
+ escape(topic), escape(str)))
+ output.write(" <includes>\n")
+ for include in idx.includes.keys():
+ if include.find("libxml") != -1:
+ output.write(" <include>%s</include>\n" % (escape(include)))
+ output.write(" </includes>\n")
+ output.write(" <uses>\n")
+ for ref in idx.references.keys():
+ id = idx.references[ref]
+ name = id.get_name()
+ line = id.get_lineno()
+ if symbols.has_key(name):
+ sinfo = symbols[name]
+ refs = sinfo[0]
+ # gather at most 5 references per symbols
+ if refs > 5:
+ continue
+ sinfo.append(filename)
+ sinfo[0] = refs + 1
+ else:
+ symbols[name] = [1, filename]
+ info = find_symbol(name)
+ if info != None:
+ type = info[0]
+ file = info[1]
+ output.write(" <%s line='%d' file='%s' name='%s'/>\n" % (type,
+ line, file, name))
+ else:
+ type = id.get_type()
+ output.write(" <%s line='%d' name='%s'/>\n" % (type,
+ line, name))
+
+ output.write(" </uses>\n")
+ output.write(" </example>\n")
+
+ return idx
+
+def dump_symbols(output):
+ global symbols
+
+ output.write(" <symbols>\n")
+ keys = symbols.keys()
+ keys.sort()
+ for symbol in keys:
+ output.write(" <symbol name='%s'>\n" % (symbol))
+ info = symbols[symbol]
+ i = 1
+ while i < len(info):
+ output.write(" <ref filename='%s'/>\n" % (info[i]))
+ i = i + 1
+ output.write(" </symbol>\n")
+ output.write(" </symbols>\n")
+
+def dump_sections(output):
+ global sections
+
+ output.write(" <sections>\n")
+ keys = sections.keys()
+ keys.sort()
+ for section in keys:
+ output.write(" <section name='%s'>\n" % (section))
+ info = sections[section]
+ i = 0
+ while i < len(info):
+ output.write(" <example filename='%s'/>\n" % (info[i]))
+ i = i + 1
+ output.write(" </section>\n")
+ output.write(" </sections>\n")
+
+def dump_Makefile():
+ for file in glob.glob('*.xml'):
+ extras.append(file)
+ for file in glob.glob('*.res'):
+ extras.append(file)
+ Makefile="""##
+## This file is auto-generated by index.py
+## DO NOT EDIT !!!
+##
+
+AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include
+AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS)
+LDADD = $(RDL_LIBS) $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(ICONV_LIBS) -lm $(WIN32_EXTRA_LIBADD)
+
+CLEANFILES = *.tmp
+
+if REBUILD_DOCS
+rebuild: examples.xml index.html
+.PHONY: rebuild
+
+examples.xml: index.py $(check_PROGRAMS:=.c)
+ cd $(srcdir) && $(PYTHON) index.py
+ $(MAKE) Makefile
+
+index.html: examples.xml examples.xsl
+ cd $(srcdir) && xsltproc examples.xsl examples.xml && echo "Rebuilt web page"
+ -cd $(srcdir) && xmllint --valid --noout index.html
+endif
+
+install-data-local:
+ $(MKDIR_P) $(DESTDIR)$(HTML_DIR)
+ -$(INSTALL) -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR)
+
+clean-local:
+ test -f Makefile.am || rm -f test?.xml
+
+"""
+ examples.sort()
+ extras.sort()
+ tests.sort()
+ EXTRA_DIST=""
+ for extra in extras:
+ EXTRA_DIST = EXTRA_DIST + " \\\n\t" + extra
+ Makefile = Makefile + "EXTRA_DIST =%s\n\n" % (EXTRA_DIST)
+ check_PROGRAMS=""
+ for example in examples:
+ check_PROGRAMS = check_PROGRAMS + " \\\n\t" + example
+ Makefile = Makefile + "check_PROGRAMS =%s\n\n" % (check_PROGRAMS)
+ for example in examples:
+ Makefile = Makefile + "%s_SOURCES = %s.c\n\n" % (example, example)
+ Makefile = Makefile + "valgrind: \n\t$(MAKE) CHECKER='valgrind' tests\n\n"
+ Makefile = Makefile + "tests: $(check_PROGRAMS)\n"
+ Makefile = Makefile + "\t@test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .\n"
+ Makefile = Makefile + "\t@(echo '## examples regression tests')\n"
+ Makefile = Makefile + "\t@(echo > .memdump)\n"
+ for test in tests:
+ Makefile = Makefile + "\t@$(CHECKER) %s\n" % (test)
+ Makefile = Makefile + '\t@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0\n'
+ Makefile = Makefile + "\t@rm *.tmp\n"
+ try:
+ old = open("Makefile.am", "r").read()
+ if old != Makefile:
+ n = open("Makefile.am", "w").write(Makefile)
+ print "Updated Makefile.am"
+ except:
+ print "Failed to read or save Makefile.am"
+# #
+# # Autogenerate the .cvsignore too ... DEPRECATED
+# #
+# ignore = """.memdump
+#Makefile.in
+#Makefile
+#"""
+# for example in examples:
+# ignore = ignore + "%s\n" % (example)
+# try:
+# old = open(".cvsignore", "r").read()
+# if old != ignore:
+# n = open(".cvsignore", "w").write(ignore)
+# print "Updated .cvsignore"
+# except:
+# print "Failed to read or save .cvsignore"
+
+if __name__ == "__main__":
+ load_api()
+ output = open("examples.xml", "w")
+ output.write("<examples>\n")
+
+ for file in sorted(glob.glob('*.c')):
+ parse(file, output)
+ examples.append(file[:-2])
+
+ dump_symbols(output)
+ dump_sections(output)
+ output.write("</examples>\n")
+ output.close()
+ dump_Makefile()
+
diff --git a/libxml2-2.9.10/doc/examples/io1.c b/libxml2-2.9.10/doc/examples/io1.c
new file mode 100644
index 0000000..d077cd8
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/io1.c
@@ -0,0 +1,166 @@
+/**
+ * section: InputOutput
+ * synopsis: Example of custom Input/Output
+ * purpose: Demonstrate the use of xmlRegisterInputCallbacks
+ * to build a custom I/O layer, this is used in an
+ * XInclude method context to show how dynamic document can
+ * be built in a clean way.
+ * usage: io1
+ * test: io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res
+ * author: Daniel Veillard
+ * copy: see Copyright for the status of this software.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <libxml/xinclude.h>
+#include <libxml/xmlIO.h>
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+static const char *result = "<list><people>a</people><people>b</people></list>";
+static const char *cur = NULL;
+static int rlen;
+
+/**
+ * sqlMatch:
+ * @URI: an URI to test
+ *
+ * Check for an sql: query
+ *
+ * Returns 1 if yes and 0 if another Input module should be used
+ */
+static int
+sqlMatch(const char * URI) {
+ if ((URI != NULL) && (!strncmp(URI, "sql:", 4)))
+ return(1);
+ return(0);
+}
+
+/**
+ * sqlOpen:
+ * @URI: an URI to test
+ *
+ * Return a pointer to the sql: query handler, in this example simply
+ * the current pointer...
+ *
+ * Returns an Input context or NULL in case or error
+ */
+static void *
+sqlOpen(const char * URI) {
+ if ((URI == NULL) || (strncmp(URI, "sql:", 4)))
+ return(NULL);
+ cur = result;
+ rlen = strlen(result);
+ return((void *) cur);
+}
+
+/**
+ * sqlClose:
+ * @context: the read context
+ *
+ * Close the sql: query handler
+ *
+ * Returns 0 or -1 in case of error
+ */
+static int
+sqlClose(void * context) {
+ if (context == NULL) return(-1);
+ cur = NULL;
+ rlen = 0;
+ return(0);
+}
+
+/**
+ * sqlRead:
+ * @context: the read context
+ * @buffer: where to store data
+ * @len: number of bytes to read
+ *
+ * Implement an sql: query read.
+ *
+ * Returns the number of bytes read or -1 in case of error
+ */
+static int
+sqlRead(void * context, char * buffer, int len) {
+ const char *ptr = (const char *) context;
+
+ if ((context == NULL) || (buffer == NULL) || (len < 0))
+ return(-1);
+
+ if (len > rlen) len = rlen;
+ memcpy(buffer, ptr, len);
+ rlen -= len;
+ return(len);
+}
+
+const char *include = "<?xml version='1.0'?>\n\
+<document xmlns:xi=\"http://www.w3.org/2003/XInclude\">\n\
+ <p>List of people:</p>\n\
+ <xi:include href=\"sql:select_name_from_people\"/>\n\
+</document>\n";
+
+int main(void) {
+ xmlDocPtr doc;
+
+ /*
+ * this initialize the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ /*
+ * register the new I/O handlers
+ */
+ if (xmlRegisterInputCallbacks(sqlMatch, sqlOpen, sqlRead, sqlClose) < 0) {
+ fprintf(stderr, "failed to register SQL handler\n");
+ exit(1);
+ }
+ /*
+ * parse include into a document
+ */
+ doc = xmlReadMemory(include, strlen(include), "include.xml", NULL, 0);
+ if (doc == NULL) {
+ fprintf(stderr, "failed to parse the including file\n");
+ exit(1);
+ }
+
+ /*
+ * apply the XInclude process, this should trigger the I/O just
+ * registered.
+ */
+ if (xmlXIncludeProcess(doc) <= 0) {
+ fprintf(stderr, "XInclude processing failed\n");
+ exit(1);
+ }
+
+#ifdef LIBXML_OUTPUT_ENABLED
+ /*
+ * save the output for checking to stdout
+ */
+ xmlDocDump(stdout, doc);
+#endif
+
+ /*
+ * Free the document
+ */
+ xmlFreeDoc(doc);
+
+ /*
+ * Cleanup function for the XML library.
+ */
+ xmlCleanupParser();
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return(0);
+}
+#else
+int main(void) {
+ fprintf(stderr, "XInclude support not compiled in\n");
+ exit(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/io1.res b/libxml2-2.9.10/doc/examples/io1.res
new file mode 100644
index 0000000..4a4c036
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/io1.res
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<document xmlns:xi="http://www.w3.org/2003/XInclude">
+ <p>List of people:</p>
+ <list><people>a</people><people>b</people></list>
+</document>
diff --git a/libxml2-2.9.10/doc/examples/io2.c b/libxml2-2.9.10/doc/examples/io2.c
new file mode 100644
index 0000000..4676f4a
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/io2.c
@@ -0,0 +1,58 @@
+/**
+ * section: InputOutput
+ * synopsis: Output to char buffer
+ * purpose: Demonstrate the use of xmlDocDumpMemory
+ * to output document to a character buffer
+ * usage: io2
+ * test: io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res
+ * author: John Fleck
+ * copy: see Copyright for the status of this software.
+ */
+
+#include <libxml/parser.h>
+
+#if defined(LIBXML_TREE_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
+int
+main(void)
+{
+
+ xmlNodePtr n;
+ xmlDocPtr doc;
+ xmlChar *xmlbuff;
+ int buffersize;
+
+ /*
+ * Create the document.
+ */
+ doc = xmlNewDoc(BAD_CAST "1.0");
+ n = xmlNewNode(NULL, BAD_CAST "root");
+ xmlNodeSetContent(n, BAD_CAST "content");
+ xmlDocSetRootElement(doc, n);
+
+ /*
+ * Dump the document to a buffer and print it
+ * for demonstration purposes.
+ */
+ xmlDocDumpFormatMemory(doc, &xmlbuff, &buffersize, 1);
+ printf("%s", (char *) xmlbuff);
+
+ /*
+ * Free associated memory.
+ */
+ xmlFree(xmlbuff);
+ xmlFreeDoc(doc);
+
+ return (0);
+
+}
+#else
+#include <stdio.h>
+
+int
+main(void)
+{
+ fprintf(stderr,
+ "library not configured with tree and output support\n");
+ return (1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/io2.res b/libxml2-2.9.10/doc/examples/io2.res
new file mode 100644
index 0000000..8737b87
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/io2.res
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<root>content</root>
diff --git a/libxml2-2.9.10/doc/examples/parse1.c b/libxml2-2.9.10/doc/examples/parse1.c
new file mode 100644
index 0000000..e3c9d3a
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/parse1.c
@@ -0,0 +1,56 @@
+/**
+ * section: Parsing
+ * synopsis: Parse an XML file to a tree and free it
+ * purpose: Demonstrate the use of xmlReadFile() to read an XML file
+ * into a tree and xmlFreeDoc() to free the resulting tree
+ * usage: parse1 test1.xml
+ * test: parse1 test1.xml
+ * author: Daniel Veillard
+ * copy: see Copyright for the status of this software.
+ */
+
+#include <stdio.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+/**
+ * example1Func:
+ * @filename: a filename or an URL
+ *
+ * Parse the resource and free the resulting tree
+ */
+static void
+example1Func(const char *filename) {
+ xmlDocPtr doc; /* the resulting document tree */
+
+ doc = xmlReadFile(filename, NULL, 0);
+ if (doc == NULL) {
+ fprintf(stderr, "Failed to parse %s\n", filename);
+ return;
+ }
+ xmlFreeDoc(doc);
+}
+
+int main(int argc, char **argv) {
+ if (argc != 2)
+ return(1);
+
+ /*
+ * this initialize the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ example1Func(argv[1]);
+
+ /*
+ * Cleanup function for the XML library.
+ */
+ xmlCleanupParser();
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return(0);
+}
diff --git a/libxml2-2.9.10/doc/examples/parse2.c b/libxml2-2.9.10/doc/examples/parse2.c
new file mode 100644
index 0000000..4dcbfde
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/parse2.c
@@ -0,0 +1,72 @@
+/**
+ * section: Parsing
+ * synopsis: Parse and validate an XML file to a tree and free the result
+ * purpose: Create a parser context for an XML file, then parse and validate
+ * the file, creating a tree, check the validation result
+ * and xmlFreeDoc() to free the resulting tree.
+ * usage: parse2 test2.xml
+ * test: parse2 test2.xml
+ * author: Daniel Veillard
+ * copy: see Copyright for the status of this software.
+ */
+
+#include <stdio.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+/**
+ * exampleFunc:
+ * @filename: a filename or an URL
+ *
+ * Parse and validate the resource and free the resulting tree
+ */
+static void
+exampleFunc(const char *filename) {
+ xmlParserCtxtPtr ctxt; /* the parser context */
+ xmlDocPtr doc; /* the resulting document tree */
+
+ /* create a parser context */
+ ctxt = xmlNewParserCtxt();
+ if (ctxt == NULL) {
+ fprintf(stderr, "Failed to allocate parser context\n");
+ return;
+ }
+ /* parse the file, activating the DTD validation option */
+ doc = xmlCtxtReadFile(ctxt, filename, NULL, XML_PARSE_DTDVALID);
+ /* check if parsing succeeded */
+ if (doc == NULL) {
+ fprintf(stderr, "Failed to parse %s\n", filename);
+ } else {
+ /* check if validation succeeded */
+ if (ctxt->valid == 0)
+ fprintf(stderr, "Failed to validate %s\n", filename);
+ /* free up the resulting document */
+ xmlFreeDoc(doc);
+ }
+ /* free up the parser context */
+ xmlFreeParserCtxt(ctxt);
+}
+
+int main(int argc, char **argv) {
+ if (argc != 2)
+ return(1);
+
+ /*
+ * this initialize the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ exampleFunc(argv[1]);
+
+ /*
+ * Cleanup function for the XML library.
+ */
+ xmlCleanupParser();
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return(0);
+}
diff --git a/libxml2-2.9.10/doc/examples/parse3.c b/libxml2-2.9.10/doc/examples/parse3.c
new file mode 100644
index 0000000..076a786
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/parse3.c
@@ -0,0 +1,60 @@
+/**
+ * section: Parsing
+ * synopsis: Parse an XML document in memory to a tree and free it
+ * purpose: Demonstrate the use of xmlReadMemory() to read an XML file
+ * into a tree and xmlFreeDoc() to free the resulting tree
+ * usage: parse3
+ * test: parse3
+ * author: Daniel Veillard
+ * copy: see Copyright for the status of this software.
+ */
+
+#include <stdio.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+static const char *document = "<doc/>";
+
+/**
+ * example3Func:
+ * @content: the content of the document
+ * @length: the length in bytes
+ *
+ * Parse the in memory document and free the resulting tree
+ */
+static void
+example3Func(const char *content, int length) {
+ xmlDocPtr doc; /* the resulting document tree */
+
+ /*
+ * The document being in memory, it have no base per RFC 2396,
+ * and the "noname.xml" argument will serve as its base.
+ */
+ doc = xmlReadMemory(content, length, "noname.xml", NULL, 0);
+ if (doc == NULL) {
+ fprintf(stderr, "Failed to parse document\n");
+ return;
+ }
+ xmlFreeDoc(doc);
+}
+
+int main(void) {
+ /*
+ * this initialize the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ example3Func(document, 6);
+
+ /*
+ * Cleanup function for the XML library.
+ */
+ xmlCleanupParser();
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return(0);
+}
diff --git a/libxml2-2.9.10/doc/examples/parse4.c b/libxml2-2.9.10/doc/examples/parse4.c
new file mode 100644
index 0000000..c7095e5
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/parse4.c
@@ -0,0 +1,143 @@
+/**
+ * section: Parsing
+ * synopsis: Parse an XML document chunk by chunk to a tree and free it
+ * purpose: Demonstrate the use of xmlCreatePushParserCtxt() and
+ * xmlParseChunk() to read an XML file progressively
+ * into a tree and xmlFreeDoc() to free the resulting tree
+ * usage: parse4 test3.xml
+ * test: parse4 test3.xml
+ * author: Daniel Veillard
+ * copy: see Copyright for the status of this software.
+ */
+
+#include <stdio.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+#ifdef LIBXML_PUSH_ENABLED
+static FILE *desc;
+
+/**
+ * readPacket:
+ * @mem: array to store the packet
+ * @size: the packet size
+ *
+ * read at most @size bytes from the document and store it in @mem
+ *
+ * Returns the number of bytes read
+ */
+static int
+readPacket(char *mem, int size) {
+ int res;
+
+ res = fread(mem, 1, size, desc);
+ return(res);
+}
+
+/**
+ * example4Func:
+ * @filename: a filename or an URL
+ *
+ * Parse the resource and free the resulting tree
+ */
+static void
+example4Func(const char *filename) {
+ xmlParserCtxtPtr ctxt;
+ char chars[4];
+ xmlDocPtr doc; /* the resulting document tree */
+ int res;
+
+ /*
+ * Read a few first byte to check the input used for the
+ * encoding detection at the parser level.
+ */
+ res = readPacket(chars, 4);
+ if (res <= 0) {
+ fprintf(stderr, "Failed to parse %s\n", filename);
+ return;
+ }
+
+ /*
+ * Create a progressive parsing context, the 2 first arguments
+ * are not used since we want to build a tree and not use a SAX
+ * parsing interface. We also pass the first bytes of the document
+ * to allow encoding detection when creating the parser but this
+ * is optional.
+ */
+ ctxt = xmlCreatePushParserCtxt(NULL, NULL,
+ chars, res, filename);
+ if (ctxt == NULL) {
+ fprintf(stderr, "Failed to create parser context !\n");
+ return;
+ }
+
+ /*
+ * loop on the input getting the document data, of course 4 bytes
+ * at a time is not realistic but allows to verify testing on small
+ * documents.
+ */
+ while ((res = readPacket(chars, 4)) > 0) {
+ xmlParseChunk(ctxt, chars, res, 0);
+ }
+
+ /*
+ * there is no more input, indicate the parsing is finished.
+ */
+ xmlParseChunk(ctxt, chars, 0, 1);
+
+ /*
+ * collect the document back and if it was wellformed
+ * and destroy the parser context.
+ */
+ doc = ctxt->myDoc;
+ res = ctxt->wellFormed;
+ xmlFreeParserCtxt(ctxt);
+
+ if (!res) {
+ fprintf(stderr, "Failed to parse %s\n", filename);
+ }
+
+ /*
+ * since we don't use the document, destroy it now.
+ */
+ xmlFreeDoc(doc);
+}
+
+int main(int argc, char **argv) {
+ if (argc != 2)
+ return(1);
+
+ /*
+ * this initialize the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ /*
+ * simulate a progressive parsing using the input file.
+ */
+ desc = fopen(argv[1], "rb");
+ if (desc != NULL) {
+ example4Func(argv[1]);
+ fclose(desc);
+ } else {
+ fprintf(stderr, "Failed to parse %s\n", argv[1]);
+ }
+
+ /*
+ * Cleanup function for the XML library.
+ */
+ xmlCleanupParser();
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return(0);
+}
+#else /* ! LIBXML_PUSH_ENABLED */
+int main(int argc, char **argv) {
+ fprintf(stderr, "Library not compiled with push parser support\n");
+ return(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/reader1.c b/libxml2-2.9.10/doc/examples/reader1.c
new file mode 100644
index 0000000..e8a005a
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/reader1.c
@@ -0,0 +1,107 @@
+/**
+ * section: xmlReader
+ * synopsis: Parse an XML file with an xmlReader
+ * purpose: Demonstrate the use of xmlReaderForFile() to parse an XML file
+ * and dump the informations about the nodes found in the process.
+ * (Note that the XMLReader functions require libxml2 version later
+ * than 2.6.)
+ * usage: reader1 <filename>
+ * test: reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
+ * author: Daniel Veillard
+ * copy: see Copyright for the status of this software.
+ */
+
+#include <stdio.h>
+#include <libxml/xmlreader.h>
+
+#ifdef LIBXML_READER_ENABLED
+
+/**
+ * processNode:
+ * @reader: the xmlReader
+ *
+ * Dump information about the current node
+ */
+static void
+processNode(xmlTextReaderPtr reader) {
+ const xmlChar *name, *value;
+
+ name = xmlTextReaderConstName(reader);
+ if (name == NULL)
+ name = BAD_CAST "--";
+
+ value = xmlTextReaderConstValue(reader);
+
+ printf("%d %d %s %d %d",
+ xmlTextReaderDepth(reader),
+ xmlTextReaderNodeType(reader),
+ name,
+ xmlTextReaderIsEmptyElement(reader),
+ xmlTextReaderHasValue(reader));
+ if (value == NULL)
+ printf("\n");
+ else {
+ if (xmlStrlen(value) > 40)
+ printf(" %.40s...\n", value);
+ else
+ printf(" %s\n", value);
+ }
+}
+
+/**
+ * streamFile:
+ * @filename: the file name to parse
+ *
+ * Parse and print information about an XML file.
+ */
+static void
+streamFile(const char *filename) {
+ xmlTextReaderPtr reader;
+ int ret;
+
+ reader = xmlReaderForFile(filename, NULL, 0);
+ if (reader != NULL) {
+ ret = xmlTextReaderRead(reader);
+ while (ret == 1) {
+ processNode(reader);
+ ret = xmlTextReaderRead(reader);
+ }
+ xmlFreeTextReader(reader);
+ if (ret != 0) {
+ fprintf(stderr, "%s : failed to parse\n", filename);
+ }
+ } else {
+ fprintf(stderr, "Unable to open %s\n", filename);
+ }
+}
+
+int main(int argc, char **argv) {
+ if (argc != 2)
+ return(1);
+
+ /*
+ * this initialize the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ streamFile(argv[1]);
+
+ /*
+ * Cleanup function for the XML library.
+ */
+ xmlCleanupParser();
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return(0);
+}
+
+#else
+int main(void) {
+ fprintf(stderr, "XInclude support not compiled in\n");
+ exit(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/reader1.res b/libxml2-2.9.10/doc/examples/reader1.res
new file mode 100644
index 0000000..eb48d85
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/reader1.res
@@ -0,0 +1,14 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 src 1 0
+1 14 #text 0 1
+
+1 1 dest 1 0
+1 14 #text 0 1
+
+1 1 src 1 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/libxml2-2.9.10/doc/examples/reader2.c b/libxml2-2.9.10/doc/examples/reader2.c
new file mode 100644
index 0000000..043b137
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/reader2.c
@@ -0,0 +1,122 @@
+/**
+ * section: xmlReader
+ * synopsis: Parse and validate an XML file with an xmlReader
+ * purpose: Demonstrate the use of xmlReaderForFile() to parse an XML file
+ * validating the content in the process and activating options
+ * like entities substitution, and DTD attributes defaulting.
+ * (Note that the XMLReader functions require libxml2 version later
+ * than 2.6.)
+ * usage: reader2 <valid_xml_filename>
+ * test: reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
+ * author: Daniel Veillard
+ * copy: see Copyright for the status of this software.
+ */
+
+#include <stdio.h>
+#include <libxml/xmlreader.h>
+
+#ifdef LIBXML_READER_ENABLED
+
+/**
+ * processNode:
+ * @reader: the xmlReader
+ *
+ * Dump information about the current node
+ */
+static void
+processNode(xmlTextReaderPtr reader) {
+ const xmlChar *name, *value;
+
+ name = xmlTextReaderConstName(reader);
+ if (name == NULL)
+ name = BAD_CAST "--";
+
+ value = xmlTextReaderConstValue(reader);
+
+ printf("%d %d %s %d %d",
+ xmlTextReaderDepth(reader),
+ xmlTextReaderNodeType(reader),
+ name,
+ xmlTextReaderIsEmptyElement(reader),
+ xmlTextReaderHasValue(reader));
+ if (value == NULL)
+ printf("\n");
+ else {
+ if (xmlStrlen(value) > 40)
+ printf(" %.40s...\n", value);
+ else
+ printf(" %s\n", value);
+ }
+}
+
+/**
+ * streamFile:
+ * @filename: the file name to parse
+ *
+ * Parse, validate and print information about an XML file.
+ */
+static void
+streamFile(const char *filename) {
+ xmlTextReaderPtr reader;
+ int ret;
+
+
+ /*
+ * Pass some special parsing options to activate DTD attribute defaulting,
+ * entities substitution and DTD validation
+ */
+ reader = xmlReaderForFile(filename, NULL,
+ XML_PARSE_DTDATTR | /* default DTD attributes */
+ XML_PARSE_NOENT | /* substitute entities */
+ XML_PARSE_DTDVALID); /* validate with the DTD */
+ if (reader != NULL) {
+ ret = xmlTextReaderRead(reader);
+ while (ret == 1) {
+ processNode(reader);
+ ret = xmlTextReaderRead(reader);
+ }
+ /*
+ * Once the document has been fully parsed check the validation results
+ */
+ if (xmlTextReaderIsValid(reader) != 1) {
+ fprintf(stderr, "Document %s does not validate\n", filename);
+ }
+ xmlFreeTextReader(reader);
+ if (ret != 0) {
+ fprintf(stderr, "%s : failed to parse\n", filename);
+ }
+ } else {
+ fprintf(stderr, "Unable to open %s\n", filename);
+ }
+}
+
+int main(int argc, char **argv) {
+ if (argc != 2)
+ return(1);
+
+ /*
+ * this initialize the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ streamFile(argv[1]);
+
+ /*
+ * Cleanup function for the XML library.
+ */
+ xmlCleanupParser();
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return(0);
+}
+
+#else
+int main(void) {
+ fprintf(stderr, "XInclude support not compiled in\n");
+ exit(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/reader3.c b/libxml2-2.9.10/doc/examples/reader3.c
new file mode 100644
index 0000000..1899474
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/reader3.c
@@ -0,0 +1,120 @@
+/**
+ * section: xmlReader
+ * synopsis: Show how to extract subdocuments with xmlReader
+ * purpose: Demonstrate the use of xmlTextReaderPreservePattern()
+ * to parse an XML file with the xmlReader while collecting
+ * only some subparts of the document.
+ * (Note that the XMLReader functions require libxml2 version later
+ * than 2.6.)
+ * usage: reader3
+ * test: reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res
+ * author: Daniel Veillard
+ * copy: see Copyright for the status of this software.
+ */
+
+#include <stdio.h>
+#include <libxml/xmlreader.h>
+
+#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_PATTERN_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
+
+
+/**
+ * streamFile:
+ * @filename: the file name to parse
+ *
+ * Parse and print information about an XML file.
+ *
+ * Returns the resulting doc with just the elements preserved.
+ */
+static xmlDocPtr
+extractFile(const char *filename, const xmlChar *pattern) {
+ xmlDocPtr doc;
+ xmlTextReaderPtr reader;
+ int ret;
+
+ /*
+ * build an xmlReader for that file
+ */
+ reader = xmlReaderForFile(filename, NULL, 0);
+ if (reader != NULL) {
+ /*
+ * add the pattern to preserve
+ */
+ if (xmlTextReaderPreservePattern(reader, pattern, NULL) < 0) {
+ fprintf(stderr, "%s : failed add preserve pattern %s\n",
+ filename, (const char *) pattern);
+ }
+ /*
+ * Parse and traverse the tree, collecting the nodes in the process
+ */
+ ret = xmlTextReaderRead(reader);
+ while (ret == 1) {
+ ret = xmlTextReaderRead(reader);
+ }
+ if (ret != 0) {
+ fprintf(stderr, "%s : failed to parse\n", filename);
+ xmlFreeTextReader(reader);
+ return(NULL);
+ }
+ /*
+ * get the resulting nodes
+ */
+ doc = xmlTextReaderCurrentDoc(reader);
+ /*
+ * Free up the reader
+ */
+ xmlFreeTextReader(reader);
+ } else {
+ fprintf(stderr, "Unable to open %s\n", filename);
+ return(NULL);
+ }
+ return(doc);
+}
+
+int main(int argc, char **argv) {
+ const char *filename = "test3.xml";
+ const char *pattern = "preserved";
+ xmlDocPtr doc;
+
+ if (argc == 3) {
+ filename = argv[1];
+ pattern = argv[2];
+ }
+
+ /*
+ * this initialize the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ doc = extractFile(filename, (const xmlChar *) pattern);
+ if (doc != NULL) {
+ /*
+ * output the result.
+ */
+ xmlDocDump(stdout, doc);
+ /*
+ * don't forget to free up the doc
+ */
+ xmlFreeDoc(doc);
+ }
+
+
+ /*
+ * Cleanup function for the XML library.
+ */
+ xmlCleanupParser();
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return(0);
+}
+
+#else
+int main(void) {
+ fprintf(stderr, "Reader, Pattern or output support not compiled in\n");
+ exit(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/reader3.res b/libxml2-2.9.10/doc/examples/reader3.res
new file mode 100644
index 0000000..20e2e82
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/reader3.res
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<doc><parent><preserved/><preserved>
+ content1
+ <child1/>
+ <child2>content2</child2>
+ <preserved>too</preserved>
+ <child2>content3</child2>
+ <preserved/>
+ <child2>content4</child2>
+ <preserved/>
+ <child2>content5</child2>
+ content6
+ </preserved><preserved/><preserved/></parent></doc>
diff --git a/libxml2-2.9.10/doc/examples/reader4.c b/libxml2-2.9.10/doc/examples/reader4.c
new file mode 100644
index 0000000..5ed5883
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/reader4.c
@@ -0,0 +1,122 @@
+/**
+ * section: xmlReader
+ * synopsis: Parse multiple XML files reusing an xmlReader
+ * purpose: Demonstrate the use of xmlReaderForFile() and
+ * xmlReaderNewFile to parse XML files while reusing the reader object
+ * and parser context. (Note that the XMLReader functions require
+ * libxml2 version later than 2.6.)
+ * usage: reader4 <filename> [ filename ... ]
+ * test: reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res
+ * author: Graham Bennett
+ * copy: see Copyright for the status of this software.
+ */
+
+#include <stdio.h>
+#include <libxml/xmlreader.h>
+
+#ifdef LIBXML_READER_ENABLED
+
+static void processDoc(xmlTextReaderPtr readerPtr) {
+ int ret;
+ xmlDocPtr docPtr;
+ const xmlChar *URL;
+
+ ret = xmlTextReaderRead(readerPtr);
+ while (ret == 1) {
+ ret = xmlTextReaderRead(readerPtr);
+ }
+
+ /*
+ * One can obtain the document pointer to get interesting
+ * information about the document like the URL, but one must also
+ * be sure to clean it up at the end (see below).
+ */
+ docPtr = xmlTextReaderCurrentDoc(readerPtr);
+ if (NULL == docPtr) {
+ fprintf(stderr, "failed to obtain document\n");
+ return;
+ }
+
+ URL = docPtr->URL;
+ if (NULL == URL) {
+ fprintf(stderr, "Failed to obtain URL\n");
+ }
+
+ if (ret != 0) {
+ fprintf(stderr, "%s: Failed to parse\n", URL);
+ return;
+ }
+
+ printf("%s: Processed ok\n", (const char *)URL);
+}
+
+int main(int argc, char **argv) {
+ xmlTextReaderPtr readerPtr;
+ int i;
+ xmlDocPtr docPtr;
+
+ if (argc < 2)
+ return(1);
+
+ /*
+ * this initialises the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ /*
+ * Create a new reader for the first file and process the
+ * document.
+ */
+ readerPtr = xmlReaderForFile(argv[1], NULL, 0);
+ if (NULL == readerPtr) {
+ fprintf(stderr, "%s: failed to create reader\n", argv[1]);
+ return(1);
+ }
+ processDoc(readerPtr);
+
+ /*
+ * The reader can be reused for subsequent files.
+ */
+ for (i=2; i < argc; ++i) {
+ xmlReaderNewFile(readerPtr, argv[i], NULL, 0);
+ if (NULL == readerPtr) {
+ fprintf(stderr, "%s: failed to create reader\n", argv[i]);
+ return(1);
+ }
+ processDoc(readerPtr);
+ }
+
+ /*
+ * Since we've called xmlTextReaderCurrentDoc, we now have to
+ * clean up after ourselves. We only have to do this the last
+ * time, because xmlReaderNewFile calls xmlCtxtReset which takes
+ * care of it.
+ */
+ docPtr = xmlTextReaderCurrentDoc(readerPtr);
+ if (docPtr != NULL)
+ xmlFreeDoc(docPtr);
+
+ /*
+ * Clean up the reader.
+ */
+ xmlFreeTextReader(readerPtr);
+
+ /*
+ * Cleanup function for the XML library.
+ */
+ xmlCleanupParser();
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return(0);
+}
+
+#else
+int main(void) {
+ fprintf(stderr, "xmlReader support not compiled in\n");
+ exit(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/reader4.res b/libxml2-2.9.10/doc/examples/reader4.res
new file mode 100644
index 0000000..b793f82
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/reader4.res
@@ -0,0 +1,3 @@
+test1.xml: Processed ok
+test2.xml: Processed ok
+test3.xml: Processed ok
diff --git a/libxml2-2.9.10/doc/examples/test1.xml b/libxml2-2.9.10/doc/examples/test1.xml
new file mode 100644
index 0000000..69d62f2
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/test1.xml
@@ -0,0 +1 @@
+<doc/>
diff --git a/libxml2-2.9.10/doc/examples/test2.xml b/libxml2-2.9.10/doc/examples/test2.xml
new file mode 100644
index 0000000..7390f5e
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/test2.xml
@@ -0,0 +1,13 @@
+<!DOCTYPE doc [
+<!ELEMENT doc (src | dest)*>
+<!ELEMENT src EMPTY>
+<!ELEMENT dest EMPTY>
+<!ATTLIST src ref IDREF #IMPLIED>
+<!ATTLIST dest id ID #IMPLIED>
+]>
+<doc>
+ <src ref="foo"/>
+ <dest id="foo"/>
+ <src ref="foo"/>
+</doc>
+
diff --git a/libxml2-2.9.10/doc/examples/test3.xml b/libxml2-2.9.10/doc/examples/test3.xml
new file mode 100644
index 0000000..4d0828f
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/test3.xml
@@ -0,0 +1,39 @@
+<doc>
+ <parent>
+ <discarded>
+ <discarded/>
+ </discarded>
+ <preserved/>
+ This text node must be discarded
+ <discarded>
+ <discarded/>
+ </discarded>
+ <preserved>
+ content1
+ <child1></child1>
+ <child2>content2</child2>
+ <preserved>too</preserved>
+ <child2>content3</child2>
+ <preserved></preserved>
+ <child2>content4</child2>
+ <preserved/>
+ <child2>content5</child2>
+ content6
+ </preserved>
+ This text node must be discarded
+ <discarded>
+ <discarded/>
+ </discarded>
+ This text node must be discarded
+ <preserved></preserved>
+ This text node must be discarded
+ <preserved/>
+ This text node must be discarded
+ <discarded>
+ <discarded/>
+ </discarded>
+ This text node must be discarded
+ </parent>
+</doc>
+
+
diff --git a/libxml2-2.9.10/doc/examples/testWriter.c b/libxml2-2.9.10/doc/examples/testWriter.c
new file mode 100644
index 0000000..82e8d3a
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/testWriter.c
@@ -0,0 +1,1198 @@
+/**
+ * section: xmlWriter
+ * synopsis: use various APIs for the xmlWriter
+ * purpose: tests a number of APIs for the xmlWriter, especially
+ * the various methods to write to a filename, to a memory
+ * buffer, to a new document, or to a subtree. It shows how to
+ * do encoding string conversions too. The resulting
+ * documents are then serialized.
+ * usage: testWriter
+ * test: testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done
+ * author: Alfred Mickautsch
+ * copy: see Copyright for the status of this software.
+ */
+#include <stdio.h>
+#include <string.h>
+#include <libxml/encoding.h>
+#include <libxml/xmlwriter.h>
+
+#if defined(LIBXML_WRITER_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
+
+#define MY_ENCODING "ISO-8859-1"
+
+void testXmlwriterFilename(const char *uri);
+void testXmlwriterMemory(const char *file);
+void testXmlwriterDoc(const char *file);
+void testXmlwriterTree(const char *file);
+xmlChar *ConvertInput(const char *in, const char *encoding);
+
+int
+main(void)
+{
+ /*
+ * this initialize the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ /* first, the file version */
+ testXmlwriterFilename("writer1.tmp");
+
+ /* next, the memory version */
+ testXmlwriterMemory("writer2.tmp");
+
+ /* next, the DOM version */
+ testXmlwriterDoc("writer3.tmp");
+
+ /* next, the tree version */
+ testXmlwriterTree("writer4.tmp");
+
+ /*
+ * Cleanup function for the XML library.
+ */
+ xmlCleanupParser();
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return 0;
+}
+
+/**
+ * testXmlwriterFilename:
+ * @uri: the output URI
+ *
+ * test the xmlWriter interface when writing to a new file
+ */
+void
+testXmlwriterFilename(const char *uri)
+{
+ int rc;
+ xmlTextWriterPtr writer;
+ xmlChar *tmp;
+
+ /* Create a new XmlWriter for uri, with no compression. */
+ writer = xmlNewTextWriterFilename(uri, 0);
+ if (writer == NULL) {
+ printf("testXmlwriterFilename: Error creating the xml writer\n");
+ return;
+ }
+
+ /* Start the document with the xml default for the version,
+ * encoding ISO 8859-1 and the default for the standalone
+ * declaration. */
+ rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterStartDocument\n");
+ return;
+ }
+
+ /* Start an element named "EXAMPLE". Since thist is the first
+ * element, this will be the root element of the document. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "EXAMPLE");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write a comment as child of EXAMPLE.
+ * Please observe, that the input to the xmlTextWriter functions
+ * HAS to be in UTF-8, even if the output XML is encoded
+ * in iso-8859-1 */
+ tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
+ MY_ENCODING);
+ rc = xmlTextWriterWriteComment(writer, tmp);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteComment\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Start an element named "ORDER" as child of EXAMPLE. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ORDER");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Add an attribute with name "version" and value "1.0" to ORDER. */
+ rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "version",
+ BAD_CAST "1.0");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteAttribute\n");
+ return;
+ }
+
+ /* Add an attribute with name "xml:lang" and value "de" to ORDER. */
+ rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "xml:lang",
+ BAD_CAST "de");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteAttribute\n");
+ return;
+ }
+
+ /* Write a comment as child of ORDER */
+ tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
+ rc = xmlTextWriterWriteFormatComment(writer,
+ "This is another comment with special chars: %s",
+ tmp);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteFormatComment\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Start an element named "HEADER" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "HEADER");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "X_ORDER_ID" as child of HEADER. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "X_ORDER_ID",
+ "%010d", 53535);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Write an element named "CUSTOMER_ID" as child of HEADER. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "CUSTOMER_ID",
+ "%d", 1010);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Write an element named "NAME_1" as child of HEADER. */
+ tmp = ConvertInput("M\xFCller", MY_ENCODING);
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Write an element named "NAME_2" as child of HEADER. */
+ tmp = ConvertInput("J\xF6rg", MY_ENCODING);
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Close the element named HEADER. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRIES" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRIES");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRY" as child of ENTRIES. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRY");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "ARTICLE" as child of ENTRY. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "ARTICLE",
+ BAD_CAST "<Test>");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Write an element named "ENTRY_NO" as child of ENTRY. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "ENTRY_NO", "%d",
+ 10);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRY. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRY" as child of ENTRIES. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRY");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "ARTICLE" as child of ENTRY. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "ARTICLE",
+ BAD_CAST "<Test 2>");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Write an element named "ENTRY_NO" as child of ENTRY. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "ENTRY_NO", "%d",
+ 20);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRY. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRIES. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "FOOTER" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "FOOTER");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "TEXT" as child of FOOTER. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "TEXT",
+ BAD_CAST "This is a text.");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Close the element named FOOTER. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Here we could close the elements ORDER and EXAMPLE using the
+ * function xmlTextWriterEndElement, but since we do not want to
+ * write any other elements, we simply call xmlTextWriterEndDocument,
+ * which will do all the work. */
+ rc = xmlTextWriterEndDocument(writer);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterFilename: Error at xmlTextWriterEndDocument\n");
+ return;
+ }
+
+ xmlFreeTextWriter(writer);
+}
+
+/**
+ * testXmlwriterMemory:
+ * @file: the output file
+ *
+ * test the xmlWriter interface when writing to memory
+ */
+void
+testXmlwriterMemory(const char *file)
+{
+ int rc;
+ xmlTextWriterPtr writer;
+ xmlBufferPtr buf;
+ xmlChar *tmp;
+ FILE *fp;
+
+ /* Create a new XML buffer, to which the XML document will be
+ * written */
+ buf = xmlBufferCreate();
+ if (buf == NULL) {
+ printf("testXmlwriterMemory: Error creating the xml buffer\n");
+ return;
+ }
+
+ /* Create a new XmlWriter for memory, with no compression.
+ * Remark: there is no compression for this kind of xmlTextWriter */
+ writer = xmlNewTextWriterMemory(buf, 0);
+ if (writer == NULL) {
+ printf("testXmlwriterMemory: Error creating the xml writer\n");
+ return;
+ }
+
+ /* Start the document with the xml default for the version,
+ * encoding ISO 8859-1 and the default for the standalone
+ * declaration. */
+ rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterStartDocument\n");
+ return;
+ }
+
+ /* Start an element named "EXAMPLE". Since thist is the first
+ * element, this will be the root element of the document. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "EXAMPLE");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write a comment as child of EXAMPLE.
+ * Please observe, that the input to the xmlTextWriter functions
+ * HAS to be in UTF-8, even if the output XML is encoded
+ * in iso-8859-1 */
+ tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
+ MY_ENCODING);
+ rc = xmlTextWriterWriteComment(writer, tmp);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteComment\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Start an element named "ORDER" as child of EXAMPLE. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ORDER");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Add an attribute with name "version" and value "1.0" to ORDER. */
+ rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "version",
+ BAD_CAST "1.0");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteAttribute\n");
+ return;
+ }
+
+ /* Add an attribute with name "xml:lang" and value "de" to ORDER. */
+ rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "xml:lang",
+ BAD_CAST "de");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteAttribute\n");
+ return;
+ }
+
+ /* Write a comment as child of ORDER */
+ tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
+ rc = xmlTextWriterWriteFormatComment(writer,
+ "This is another comment with special chars: %s",
+ tmp);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteFormatComment\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Start an element named "HEADER" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "HEADER");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "X_ORDER_ID" as child of HEADER. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "X_ORDER_ID",
+ "%010d", 53535);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Write an element named "CUSTOMER_ID" as child of HEADER. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "CUSTOMER_ID",
+ "%d", 1010);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Write an element named "NAME_1" as child of HEADER. */
+ tmp = ConvertInput("M\xFCller", MY_ENCODING);
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Write an element named "NAME_2" as child of HEADER. */
+ tmp = ConvertInput("J\xF6rg", MY_ENCODING);
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
+
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Close the element named HEADER. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterMemory: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRIES" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRIES");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRY" as child of ENTRIES. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRY");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "ARTICLE" as child of ENTRY. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "ARTICLE",
+ BAD_CAST "<Test>");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Write an element named "ENTRY_NO" as child of ENTRY. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "ENTRY_NO", "%d",
+ 10);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRY. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterMemory: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRY" as child of ENTRIES. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRY");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "ARTICLE" as child of ENTRY. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "ARTICLE",
+ BAD_CAST "<Test 2>");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Write an element named "ENTRY_NO" as child of ENTRY. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "ENTRY_NO", "%d",
+ 20);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRY. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterMemory: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRIES. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterMemory: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "FOOTER" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "FOOTER");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "TEXT" as child of FOOTER. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "TEXT",
+ BAD_CAST "This is a text.");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterMemory: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Close the element named FOOTER. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterMemory: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Here we could close the elements ORDER and EXAMPLE using the
+ * function xmlTextWriterEndElement, but since we do not want to
+ * write any other elements, we simply call xmlTextWriterEndDocument,
+ * which will do all the work. */
+ rc = xmlTextWriterEndDocument(writer);
+ if (rc < 0) {
+ printf("testXmlwriterMemory: Error at xmlTextWriterEndDocument\n");
+ return;
+ }
+
+ xmlFreeTextWriter(writer);
+
+ fp = fopen(file, "w");
+ if (fp == NULL) {
+ printf("testXmlwriterMemory: Error at fopen\n");
+ return;
+ }
+
+ fprintf(fp, "%s", (const char *) buf->content);
+
+ fclose(fp);
+
+ xmlBufferFree(buf);
+}
+
+/**
+ * testXmlwriterDoc:
+ * @file: the output file
+ *
+ * test the xmlWriter interface when creating a new document
+ */
+void
+testXmlwriterDoc(const char *file)
+{
+ int rc;
+ xmlTextWriterPtr writer;
+ xmlChar *tmp;
+ xmlDocPtr doc;
+
+
+ /* Create a new XmlWriter for DOM, with no compression. */
+ writer = xmlNewTextWriterDoc(&doc, 0);
+ if (writer == NULL) {
+ printf("testXmlwriterDoc: Error creating the xml writer\n");
+ return;
+ }
+
+ /* Start the document with the xml default for the version,
+ * encoding ISO 8859-1 and the default for the standalone
+ * declaration. */
+ rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL);
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterStartDocument\n");
+ return;
+ }
+
+ /* Start an element named "EXAMPLE". Since thist is the first
+ * element, this will be the root element of the document. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "EXAMPLE");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write a comment as child of EXAMPLE.
+ * Please observe, that the input to the xmlTextWriter functions
+ * HAS to be in UTF-8, even if the output XML is encoded
+ * in iso-8859-1 */
+ tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
+ MY_ENCODING);
+ rc = xmlTextWriterWriteComment(writer, tmp);
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterWriteComment\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Start an element named "ORDER" as child of EXAMPLE. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ORDER");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Add an attribute with name "version" and value "1.0" to ORDER. */
+ rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "version",
+ BAD_CAST "1.0");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterWriteAttribute\n");
+ return;
+ }
+
+ /* Add an attribute with name "xml:lang" and value "de" to ORDER. */
+ rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "xml:lang",
+ BAD_CAST "de");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterWriteAttribute\n");
+ return;
+ }
+
+ /* Write a comment as child of ORDER */
+ tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
+ rc = xmlTextWriterWriteFormatComment(writer,
+ "This is another comment with special chars: %s",
+ tmp);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterDoc: Error at xmlTextWriterWriteFormatComment\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Start an element named "HEADER" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "HEADER");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "X_ORDER_ID" as child of HEADER. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "X_ORDER_ID",
+ "%010d", 53535);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterDoc: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Write an element named "CUSTOMER_ID" as child of HEADER. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "CUSTOMER_ID",
+ "%d", 1010);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterDoc: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Write an element named "NAME_1" as child of HEADER. */
+ tmp = ConvertInput("M\xFCller", MY_ENCODING);
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Write an element named "NAME_2" as child of HEADER. */
+ tmp = ConvertInput("J\xF6rg", MY_ENCODING);
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Close the element named HEADER. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRIES" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRIES");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRY" as child of ENTRIES. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRY");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "ARTICLE" as child of ENTRY. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "ARTICLE",
+ BAD_CAST "<Test>");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Write an element named "ENTRY_NO" as child of ENTRY. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "ENTRY_NO", "%d",
+ 10);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterDoc: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRY. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRY" as child of ENTRIES. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRY");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "ARTICLE" as child of ENTRY. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "ARTICLE",
+ BAD_CAST "<Test 2>");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Write an element named "ENTRY_NO" as child of ENTRY. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "ENTRY_NO", "%d",
+ 20);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterDoc: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRY. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRIES. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "FOOTER" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "FOOTER");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "TEXT" as child of FOOTER. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "TEXT",
+ BAD_CAST "This is a text.");
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Close the element named FOOTER. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Here we could close the elements ORDER and EXAMPLE using the
+ * function xmlTextWriterEndElement, but since we do not want to
+ * write any other elements, we simply call xmlTextWriterEndDocument,
+ * which will do all the work. */
+ rc = xmlTextWriterEndDocument(writer);
+ if (rc < 0) {
+ printf("testXmlwriterDoc: Error at xmlTextWriterEndDocument\n");
+ return;
+ }
+
+ xmlFreeTextWriter(writer);
+
+ xmlSaveFileEnc(file, doc, MY_ENCODING);
+
+ xmlFreeDoc(doc);
+}
+
+/**
+ * testXmlwriterTree:
+ * @file: the output file
+ *
+ * test the xmlWriter interface when writing to a subtree
+ */
+void
+testXmlwriterTree(const char *file)
+{
+ int rc;
+ xmlTextWriterPtr writer;
+ xmlDocPtr doc;
+ xmlNodePtr node;
+ xmlChar *tmp;
+
+ /* Create a new XML DOM tree, to which the XML document will be
+ * written */
+ doc = xmlNewDoc(BAD_CAST XML_DEFAULT_VERSION);
+ if (doc == NULL) {
+ printf
+ ("testXmlwriterTree: Error creating the xml document tree\n");
+ return;
+ }
+
+ /* Create a new XML node, to which the XML document will be
+ * appended */
+ node = xmlNewDocNode(doc, NULL, BAD_CAST "EXAMPLE", NULL);
+ if (node == NULL) {
+ printf("testXmlwriterTree: Error creating the xml node\n");
+ return;
+ }
+
+ /* Make ELEMENT the root node of the tree */
+ xmlDocSetRootElement(doc, node);
+
+ /* Create a new XmlWriter for DOM tree, with no compression. */
+ writer = xmlNewTextWriterTree(doc, node, 0);
+ if (writer == NULL) {
+ printf("testXmlwriterTree: Error creating the xml writer\n");
+ return;
+ }
+
+ /* Start the document with the xml default for the version,
+ * encoding ISO 8859-1 and the default for the standalone
+ * declaration. */
+ rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL);
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterStartDocument\n");
+ return;
+ }
+
+ /* Write a comment as child of EXAMPLE.
+ * Please observe, that the input to the xmlTextWriter functions
+ * HAS to be in UTF-8, even if the output XML is encoded
+ * in iso-8859-1 */
+ tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
+ MY_ENCODING);
+ rc = xmlTextWriterWriteComment(writer, tmp);
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterWriteComment\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Start an element named "ORDER" as child of EXAMPLE. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ORDER");
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Add an attribute with name "version" and value "1.0" to ORDER. */
+ rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "version",
+ BAD_CAST "1.0");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterTree: Error at xmlTextWriterWriteAttribute\n");
+ return;
+ }
+
+ /* Add an attribute with name "xml:lang" and value "de" to ORDER. */
+ rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "xml:lang",
+ BAD_CAST "de");
+ if (rc < 0) {
+ printf
+ ("testXmlwriterTree: Error at xmlTextWriterWriteAttribute\n");
+ return;
+ }
+
+ /* Write a comment as child of ORDER */
+ tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
+ rc = xmlTextWriterWriteFormatComment(writer,
+ "This is another comment with special chars: %s",
+ tmp);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterTree: Error at xmlTextWriterWriteFormatComment\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Start an element named "HEADER" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "HEADER");
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "X_ORDER_ID" as child of HEADER. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "X_ORDER_ID",
+ "%010d", 53535);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterTree: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Write an element named "CUSTOMER_ID" as child of HEADER. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "CUSTOMER_ID",
+ "%d", 1010);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterTree: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Write an element named "NAME_1" as child of HEADER. */
+ tmp = ConvertInput("M\xFCller", MY_ENCODING);
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Write an element named "NAME_2" as child of HEADER. */
+ tmp = ConvertInput("J\xF6rg", MY_ENCODING);
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+ if (tmp != NULL) xmlFree(tmp);
+
+ /* Close the element named HEADER. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRIES" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRIES");
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRY" as child of ENTRIES. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRY");
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "ARTICLE" as child of ENTRY. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "ARTICLE",
+ BAD_CAST "<Test>");
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Write an element named "ENTRY_NO" as child of ENTRY. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "ENTRY_NO", "%d",
+ 10);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterTree: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRY. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "ENTRY" as child of ENTRIES. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "ENTRY");
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "ARTICLE" as child of ENTRY. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "ARTICLE",
+ BAD_CAST "<Test 2>");
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Write an element named "ENTRY_NO" as child of ENTRY. */
+ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "ENTRY_NO", "%d",
+ 20);
+ if (rc < 0) {
+ printf
+ ("testXmlwriterTree: Error at xmlTextWriterWriteFormatElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRY. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Close the element named ENTRIES. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Start an element named "FOOTER" as child of ORDER. */
+ rc = xmlTextWriterStartElement(writer, BAD_CAST "FOOTER");
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterStartElement\n");
+ return;
+ }
+
+ /* Write an element named "TEXT" as child of FOOTER. */
+ rc = xmlTextWriterWriteElement(writer, BAD_CAST "TEXT",
+ BAD_CAST "This is a text.");
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterWriteElement\n");
+ return;
+ }
+
+ /* Close the element named FOOTER. */
+ rc = xmlTextWriterEndElement(writer);
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterEndElement\n");
+ return;
+ }
+
+ /* Here we could close the elements ORDER and EXAMPLE using the
+ * function xmlTextWriterEndElement, but since we do not want to
+ * write any other elements, we simply call xmlTextWriterEndDocument,
+ * which will do all the work. */
+ rc = xmlTextWriterEndDocument(writer);
+ if (rc < 0) {
+ printf("testXmlwriterTree: Error at xmlTextWriterEndDocument\n");
+ return;
+ }
+
+ xmlFreeTextWriter(writer);
+
+ xmlSaveFileEnc(file, doc, MY_ENCODING);
+
+ xmlFreeDoc(doc);
+}
+
+/**
+ * ConvertInput:
+ * @in: string in a given encoding
+ * @encoding: the encoding used
+ *
+ * Converts @in into UTF-8 for processing with libxml2 APIs
+ *
+ * Returns the converted UTF-8 string, or NULL in case of error.
+ */
+xmlChar *
+ConvertInput(const char *in, const char *encoding)
+{
+ xmlChar *out;
+ int ret;
+ int size;
+ int out_size;
+ int temp;
+ xmlCharEncodingHandlerPtr handler;
+
+ if (in == 0)
+ return 0;
+
+ handler = xmlFindCharEncodingHandler(encoding);
+
+ if (!handler) {
+ printf("ConvertInput: no encoding handler found for '%s'\n",
+ encoding ? encoding : "");
+ return 0;
+ }
+
+ size = (int) strlen(in) + 1;
+ out_size = size * 2 - 1;
+ out = (unsigned char *) xmlMalloc((size_t) out_size);
+
+ if (out != 0) {
+ temp = size - 1;
+ ret = handler->input(out, &out_size, (const xmlChar *) in, &temp);
+ if ((ret < 0) || (temp - size + 1)) {
+ if (ret < 0) {
+ printf("ConvertInput: conversion wasn't successful.\n");
+ } else {
+ printf
+ ("ConvertInput: conversion wasn't successful. converted: %i octets.\n",
+ temp);
+ }
+
+ xmlFree(out);
+ out = 0;
+ } else {
+ out = (unsigned char *) xmlRealloc(out, out_size + 1);
+ out[out_size] = 0; /*null terminating out */
+ }
+ } else {
+ printf("ConvertInput: no mem\n");
+ }
+
+ return out;
+}
+
+#else
+int main(void) {
+ fprintf(stderr, "Writer or output support not compiled in\n");
+ exit(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/tree1.c b/libxml2-2.9.10/doc/examples/tree1.c
new file mode 100644
index 0000000..e6faefc
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/tree1.c
@@ -0,0 +1,94 @@
+/**
+ * section: Tree
+ * synopsis: Navigates a tree to print element names
+ * purpose: Parse a file to a tree, use xmlDocGetRootElement() to
+ * get the root element, then walk the document and print
+ * all the element name in document order.
+ * usage: tree1 filename_or_URL
+ * test: tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res
+ * author: Dodji Seketeli
+ * copy: see Copyright for the status of this software.
+ */
+#include <stdio.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+#ifdef LIBXML_TREE_ENABLED
+
+/*
+ *To compile this file using gcc you can type
+ *gcc `xml2-config --cflags --libs` -o xmlexample libxml2-example.c
+ */
+
+/**
+ * print_element_names:
+ * @a_node: the initial xml node to consider.
+ *
+ * Prints the names of the all the xml elements
+ * that are siblings or children of a given xml node.
+ */
+static void
+print_element_names(xmlNode * a_node)
+{
+ xmlNode *cur_node = NULL;
+
+ for (cur_node = a_node; cur_node; cur_node = cur_node->next) {
+ if (cur_node->type == XML_ELEMENT_NODE) {
+ printf("node type: Element, name: %s\n", cur_node->name);
+ }
+
+ print_element_names(cur_node->children);
+ }
+}
+
+
+/**
+ * Simple example to parse a file called "file.xml",
+ * walk down the DOM, and print the name of the
+ * xml elements nodes.
+ */
+int
+main(int argc, char **argv)
+{
+ xmlDoc *doc = NULL;
+ xmlNode *root_element = NULL;
+
+ if (argc != 2)
+ return(1);
+
+ /*
+ * this initialize the library and check potential ABI mismatches
+ * between the version it was compiled for and the actual shared
+ * library used.
+ */
+ LIBXML_TEST_VERSION
+
+ /*parse the file and get the DOM */
+ doc = xmlReadFile(argv[1], NULL, 0);
+
+ if (doc == NULL) {
+ printf("error: could not parse file %s\n", argv[1]);
+ }
+
+ /*Get the root element node */
+ root_element = xmlDocGetRootElement(doc);
+
+ print_element_names(root_element);
+
+ /*free the document */
+ xmlFreeDoc(doc);
+
+ /*
+ *Free the global variables that may
+ *have been allocated by the parser.
+ */
+ xmlCleanupParser();
+
+ return 0;
+}
+#else
+int main(void) {
+ fprintf(stderr, "Tree support not compiled in\n");
+ exit(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/tree1.res b/libxml2-2.9.10/doc/examples/tree1.res
new file mode 100644
index 0000000..7b14ad0
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/tree1.res
@@ -0,0 +1,4 @@
+node type: Element, name: doc
+node type: Element, name: src
+node type: Element, name: dest
+node type: Element, name: src
diff --git a/libxml2-2.9.10/doc/examples/tree2.c b/libxml2-2.9.10/doc/examples/tree2.c
new file mode 100644
index 0000000..6548e29
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/tree2.c
@@ -0,0 +1,117 @@
+/*
+ * section: Tree
+ * synopsis: Creates a tree
+ * purpose: Shows how to create document, nodes and dump it to stdout or file.
+ * usage: tree2 <filename> -Default output: stdout
+ * test: tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res
+ * author: Lucas Brasilino <brasilino@recife.pe.gov.br>
+ * copy: see Copyright for the status of this software
+ */
+
+#include <stdio.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+#if defined(LIBXML_TREE_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
+
+/*
+ *To compile this file using gcc you can type
+ *gcc `xml2-config --cflags --libs` -o tree2 tree2.c
+ */
+
+/* A simple example how to create DOM. Libxml2 automagically
+ * allocates the necessary amount of memory to it.
+*/
+int
+main(int argc, char **argv)
+{
+ xmlDocPtr doc = NULL; /* document pointer */
+ xmlNodePtr root_node = NULL, node = NULL, node1 = NULL;/* node pointers */
+ char buff[256];
+ int i, j;
+
+ LIBXML_TEST_VERSION;
+
+ /*
+ * Creates a new document, a node and set it as a root node
+ */
+ doc = xmlNewDoc(BAD_CAST "1.0");
+ root_node = xmlNewNode(NULL, BAD_CAST "root");
+ xmlDocSetRootElement(doc, root_node);
+
+ /*
+ * Creates a DTD declaration. Isn't mandatory.
+ */
+ xmlCreateIntSubset(doc, BAD_CAST "root", NULL, BAD_CAST "tree2.dtd");
+
+ /*
+ * xmlNewChild() creates a new node, which is "attached" as child node
+ * of root_node node.
+ */
+ xmlNewChild(root_node, NULL, BAD_CAST "node1",
+ BAD_CAST "content of node 1");
+ /*
+ * The same as above, but the new child node doesn't have a content
+ */
+ xmlNewChild(root_node, NULL, BAD_CAST "node2", NULL);
+
+ /*
+ * xmlNewProp() creates attributes, which is "attached" to an node.
+ * It returns xmlAttrPtr, which isn't used here.
+ */
+ node =
+ xmlNewChild(root_node, NULL, BAD_CAST "node3",
+ BAD_CAST "this node has attributes");
+ xmlNewProp(node, BAD_CAST "attribute", BAD_CAST "yes");
+ xmlNewProp(node, BAD_CAST "foo", BAD_CAST "bar");
+
+ /*
+ * Here goes another way to create nodes. xmlNewNode() and xmlNewText
+ * creates a node and a text node separately. They are "attached"
+ * by xmlAddChild()
+ */
+ node = xmlNewNode(NULL, BAD_CAST "node4");
+ node1 = xmlNewText(BAD_CAST
+ "other way to create content (which is also a node)");
+ xmlAddChild(node, node1);
+ xmlAddChild(root_node, node);
+
+ /*
+ * A simple loop that "automates" nodes creation
+ */
+ for (i = 5; i < 7; i++) {
+ sprintf(buff, "node%d", i);
+ node = xmlNewChild(root_node, NULL, BAD_CAST buff, NULL);
+ for (j = 1; j < 4; j++) {
+ sprintf(buff, "node%d%d", i, j);
+ node1 = xmlNewChild(node, NULL, BAD_CAST buff, NULL);
+ xmlNewProp(node1, BAD_CAST "odd", BAD_CAST((j % 2) ? "no" : "yes"));
+ }
+ }
+
+ /*
+ * Dumping document to stdio or file
+ */
+ xmlSaveFormatFileEnc(argc > 1 ? argv[1] : "-", doc, "UTF-8", 1);
+
+ /*free the document */
+ xmlFreeDoc(doc);
+
+ /*
+ *Free the global variables that may
+ *have been allocated by the parser.
+ */
+ xmlCleanupParser();
+
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return(0);
+}
+#else
+int main(void) {
+ fprintf(stderr, "tree support not compiled in\n");
+ exit(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/tree2.res b/libxml2-2.9.10/doc/examples/tree2.res
new file mode 100644
index 0000000..ed00195
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/tree2.res
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE root SYSTEM "tree2.dtd">
+<root>
+ <node1>content of node 1</node1>
+ <node2/>
+ <node3 attribute="yes" foo="bar">this node has attributes</node3>
+ <node4>other way to create content (which is also a node)</node4>
+ <node5>
+ <node51 odd="no"/>
+ <node52 odd="yes"/>
+ <node53 odd="no"/>
+ </node5>
+ <node6>
+ <node61 odd="no"/>
+ <node62 odd="yes"/>
+ <node63 odd="no"/>
+ </node6>
+</root>
diff --git a/libxml2-2.9.10/doc/examples/tst.xml b/libxml2-2.9.10/doc/examples/tst.xml
new file mode 100644
index 0000000..1cc6c95
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/tst.xml
@@ -0,0 +1,7 @@
+<thing>
+ <thing1>hello</thing1>
+</thing>
+<thing>
+ <thing2>goodbye</thing2>
+</thing>
+
diff --git a/libxml2-2.9.10/doc/examples/writer.xml b/libxml2-2.9.10/doc/examples/writer.xml
new file mode 100644
index 0000000..6ab05fd
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/writer.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<EXAMPLE><!--This is a comment with special chars: <äöü>--><ORDER version="1.0" xml:lang="de"><!--This is another comment with special chars: <äöü>--><HEADER><X_ORDER_ID>0000053535</X_ORDER_ID><CUSTOMER_ID>1010</CUSTOMER_ID><NAME_1>Müller</NAME_1><NAME_2>Jörg</NAME_2></HEADER><ENTRIES><ENTRY><ARTICLE>&lt;Test&gt;</ARTICLE><ENTRY_NO>10</ENTRY_NO></ENTRY><ENTRY><ARTICLE>&lt;Test 2&gt;</ARTICLE><ENTRY_NO>20</ENTRY_NO></ENTRY></ENTRIES><FOOTER><TEXT>This is a text.</TEXT></FOOTER></ORDER></EXAMPLE>
diff --git a/libxml2-2.9.10/doc/examples/xpath1.c b/libxml2-2.9.10/doc/examples/xpath1.c
new file mode 100644
index 0000000..0a31650
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/xpath1.c
@@ -0,0 +1,250 @@
+/**
+ * section: XPath
+ * synopsis: Evaluate XPath expression and prints result node set.
+ * purpose: Shows how to evaluate XPath expression and register
+ * known namespaces in XPath context.
+ * usage: xpath1 <xml-file> <xpath-expr> [<known-ns-list>]
+ * test: xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res
+ * author: Aleksey Sanin
+ * copy: see Copyright for the status of this software.
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+
+#if defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_SAX1_ENABLED)
+
+
+static void usage(const char *name);
+int execute_xpath_expression(const char* filename, const xmlChar* xpathExpr, const xmlChar* nsList);
+int register_namespaces(xmlXPathContextPtr xpathCtx, const xmlChar* nsList);
+void print_xpath_nodes(xmlNodeSetPtr nodes, FILE* output);
+
+int
+main(int argc, char **argv) {
+ /* Parse command line and process file */
+ if((argc < 3) || (argc > 4)) {
+ fprintf(stderr, "Error: wrong number of arguments.\n");
+ usage(argv[0]);
+ return(-1);
+ }
+
+ /* Init libxml */
+ xmlInitParser();
+ LIBXML_TEST_VERSION
+
+ /* Do the main job */
+ if(execute_xpath_expression(argv[1], BAD_CAST argv[2], (argc > 3) ? BAD_CAST argv[3] : NULL) < 0) {
+ usage(argv[0]);
+ return(-1);
+ }
+
+ /* Shutdown libxml */
+ xmlCleanupParser();
+
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return 0;
+}
+
+/**
+ * usage:
+ * @name: the program name.
+ *
+ * Prints usage information.
+ */
+static void
+usage(const char *name) {
+ assert(name);
+
+ fprintf(stderr, "Usage: %s <xml-file> <xpath-expr> [<known-ns-list>]\n", name);
+ fprintf(stderr, "where <known-ns-list> is a list of known namespaces\n");
+ fprintf(stderr, "in \"<prefix1>=<href1> <prefix2>=href2> ...\" format\n");
+}
+
+/**
+ * execute_xpath_expression:
+ * @filename: the input XML filename.
+ * @xpathExpr: the xpath expression for evaluation.
+ * @nsList: the optional list of known namespaces in
+ * "<prefix1>=<href1> <prefix2>=href2> ..." format.
+ *
+ * Parses input XML file, evaluates XPath expression and prints results.
+ *
+ * Returns 0 on success and a negative value otherwise.
+ */
+int
+execute_xpath_expression(const char* filename, const xmlChar* xpathExpr, const xmlChar* nsList) {
+ xmlDocPtr doc;
+ xmlXPathContextPtr xpathCtx;
+ xmlXPathObjectPtr xpathObj;
+
+ assert(filename);
+ assert(xpathExpr);
+
+ /* Load XML document */
+ doc = xmlParseFile(filename);
+ if (doc == NULL) {
+ fprintf(stderr, "Error: unable to parse file \"%s\"\n", filename);
+ return(-1);
+ }
+
+ /* Create xpath evaluation context */
+ xpathCtx = xmlXPathNewContext(doc);
+ if(xpathCtx == NULL) {
+ fprintf(stderr,"Error: unable to create new XPath context\n");
+ xmlFreeDoc(doc);
+ return(-1);
+ }
+
+ /* Register namespaces from list (if any) */
+ if((nsList != NULL) && (register_namespaces(xpathCtx, nsList) < 0)) {
+ fprintf(stderr,"Error: failed to register namespaces list \"%s\"\n", nsList);
+ xmlXPathFreeContext(xpathCtx);
+ xmlFreeDoc(doc);
+ return(-1);
+ }
+
+ /* Evaluate xpath expression */
+ xpathObj = xmlXPathEvalExpression(xpathExpr, xpathCtx);
+ if(xpathObj == NULL) {
+ fprintf(stderr,"Error: unable to evaluate xpath expression \"%s\"\n", xpathExpr);
+ xmlXPathFreeContext(xpathCtx);
+ xmlFreeDoc(doc);
+ return(-1);
+ }
+
+ /* Print results */
+ print_xpath_nodes(xpathObj->nodesetval, stdout);
+
+ /* Cleanup */
+ xmlXPathFreeObject(xpathObj);
+ xmlXPathFreeContext(xpathCtx);
+ xmlFreeDoc(doc);
+
+ return(0);
+}
+
+/**
+ * register_namespaces:
+ * @xpathCtx: the pointer to an XPath context.
+ * @nsList: the list of known namespaces in
+ * "<prefix1>=<href1> <prefix2>=href2> ..." format.
+ *
+ * Registers namespaces from @nsList in @xpathCtx.
+ *
+ * Returns 0 on success and a negative value otherwise.
+ */
+int
+register_namespaces(xmlXPathContextPtr xpathCtx, const xmlChar* nsList) {
+ xmlChar* nsListDup;
+ xmlChar* prefix;
+ xmlChar* href;
+ xmlChar* next;
+
+ assert(xpathCtx);
+ assert(nsList);
+
+ nsListDup = xmlStrdup(nsList);
+ if(nsListDup == NULL) {
+ fprintf(stderr, "Error: unable to strdup namespaces list\n");
+ return(-1);
+ }
+
+ next = nsListDup;
+ while(next != NULL) {
+ /* skip spaces */
+ while((*next) == ' ') next++;
+ if((*next) == '\0') break;
+
+ /* find prefix */
+ prefix = next;
+ next = (xmlChar*)xmlStrchr(next, '=');
+ if(next == NULL) {
+ fprintf(stderr,"Error: invalid namespaces list format\n");
+ xmlFree(nsListDup);
+ return(-1);
+ }
+ *(next++) = '\0';
+
+ /* find href */
+ href = next;
+ next = (xmlChar*)xmlStrchr(next, ' ');
+ if(next != NULL) {
+ *(next++) = '\0';
+ }
+
+ /* do register namespace */
+ if(xmlXPathRegisterNs(xpathCtx, prefix, href) != 0) {
+ fprintf(stderr,"Error: unable to register NS with prefix=\"%s\" and href=\"%s\"\n", prefix, href);
+ xmlFree(nsListDup);
+ return(-1);
+ }
+ }
+
+ xmlFree(nsListDup);
+ return(0);
+}
+
+/**
+ * print_xpath_nodes:
+ * @nodes: the nodes set.
+ * @output: the output file handle.
+ *
+ * Prints the @nodes content to @output.
+ */
+void
+print_xpath_nodes(xmlNodeSetPtr nodes, FILE* output) {
+ xmlNodePtr cur;
+ int size;
+ int i;
+
+ assert(output);
+ size = (nodes) ? nodes->nodeNr : 0;
+
+ fprintf(output, "Result (%d nodes):\n", size);
+ for(i = 0; i < size; ++i) {
+ assert(nodes->nodeTab[i]);
+
+ if(nodes->nodeTab[i]->type == XML_NAMESPACE_DECL) {
+ xmlNsPtr ns;
+
+ ns = (xmlNsPtr)nodes->nodeTab[i];
+ cur = (xmlNodePtr)ns->next;
+ if(cur->ns) {
+ fprintf(output, "= namespace \"%s\"=\"%s\" for node %s:%s\n",
+ ns->prefix, ns->href, cur->ns->href, cur->name);
+ } else {
+ fprintf(output, "= namespace \"%s\"=\"%s\" for node %s\n",
+ ns->prefix, ns->href, cur->name);
+ }
+ } else if(nodes->nodeTab[i]->type == XML_ELEMENT_NODE) {
+ cur = nodes->nodeTab[i];
+ if(cur->ns) {
+ fprintf(output, "= element node \"%s:%s\"\n",
+ cur->ns->href, cur->name);
+ } else {
+ fprintf(output, "= element node \"%s\"\n",
+ cur->name);
+ }
+ } else {
+ cur = nodes->nodeTab[i];
+ fprintf(output, "= node \"%s\": type %d\n", cur->name, cur->type);
+ }
+ }
+}
+
+#else
+int main(void) {
+ fprintf(stderr, "XPath support not compiled in\n");
+ exit(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/xpath1.res b/libxml2-2.9.10/doc/examples/xpath1.res
new file mode 100644
index 0000000..76af3a9
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/xpath1.res
@@ -0,0 +1,5 @@
+Result (4 nodes):
+= element node "child2"
+= element node "child2"
+= element node "child2"
+= element node "child2"
diff --git a/libxml2-2.9.10/doc/examples/xpath2.c b/libxml2-2.9.10/doc/examples/xpath2.c
new file mode 100644
index 0000000..f604114
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/xpath2.c
@@ -0,0 +1,190 @@
+/**
+ * section: XPath
+ * synopsis: Load a document, locate subelements with XPath, modify
+ * said elements and save the resulting document.
+ * purpose: Shows how to make a full round-trip from a load/edit/save
+ * usage: xpath2 <xml-file> <xpath-expr> <new-value>
+ * test: xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res
+ * author: Aleksey Sanin and Daniel Veillard
+ * copy: see Copyright for the status of this software.
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+
+#if defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_SAX1_ENABLED) && \
+ defined(LIBXML_OUTPUT_ENABLED)
+
+
+static void usage(const char *name);
+static int example4(const char *filename, const xmlChar * xpathExpr,
+ const xmlChar * value);
+static void update_xpath_nodes(xmlNodeSetPtr nodes, const xmlChar * value);
+
+
+int
+main(int argc, char **argv) {
+ /* Parse command line and process file */
+ if (argc != 4) {
+ fprintf(stderr, "Error: wrong number of arguments.\n");
+ usage(argv[0]);
+ return(-1);
+ }
+
+ /* Init libxml */
+ xmlInitParser();
+ LIBXML_TEST_VERSION
+
+ /* Do the main job */
+ if (example4(argv[1], BAD_CAST argv[2], BAD_CAST argv[3])) {
+ usage(argv[0]);
+ return(-1);
+ }
+
+ /* Shutdown libxml */
+ xmlCleanupParser();
+
+ /*
+ * this is to debug memory for regression tests
+ */
+ xmlMemoryDump();
+ return 0;
+}
+
+/**
+ * usage:
+ * @name: the program name.
+ *
+ * Prints usage information.
+ */
+static void
+usage(const char *name) {
+ assert(name);
+
+ fprintf(stderr, "Usage: %s <xml-file> <xpath-expr> <value>\n", name);
+}
+
+/**
+ * example4:
+ * @filename: the input XML filename.
+ * @xpathExpr: the xpath expression for evaluation.
+ * @value: the new node content.
+ *
+ * Parses input XML file, evaluates XPath expression and update the nodes
+ * then print the result.
+ *
+ * Returns 0 on success and a negative value otherwise.
+ */
+static int
+example4(const char* filename, const xmlChar* xpathExpr, const xmlChar* value) {
+ xmlDocPtr doc;
+ xmlXPathContextPtr xpathCtx;
+ xmlXPathObjectPtr xpathObj;
+
+ assert(filename);
+ assert(xpathExpr);
+ assert(value);
+
+ /* Load XML document */
+ doc = xmlParseFile(filename);
+ if (doc == NULL) {
+ fprintf(stderr, "Error: unable to parse file \"%s\"\n", filename);
+ return(-1);
+ }
+
+ /* Create xpath evaluation context */
+ xpathCtx = xmlXPathNewContext(doc);
+ if(xpathCtx == NULL) {
+ fprintf(stderr,"Error: unable to create new XPath context\n");
+ xmlFreeDoc(doc);
+ return(-1);
+ }
+
+ /* Evaluate xpath expression */
+ xpathObj = xmlXPathEvalExpression(xpathExpr, xpathCtx);
+ if(xpathObj == NULL) {
+ fprintf(stderr,"Error: unable to evaluate xpath expression \"%s\"\n", xpathExpr);
+ xmlXPathFreeContext(xpathCtx);
+ xmlFreeDoc(doc);
+ return(-1);
+ }
+
+ /* update selected nodes */
+ update_xpath_nodes(xpathObj->nodesetval, value);
+
+
+ /* Cleanup of XPath data */
+ xmlXPathFreeObject(xpathObj);
+ xmlXPathFreeContext(xpathCtx);
+
+ /* dump the resulting document */
+ xmlDocDump(stdout, doc);
+
+
+ /* free the document */
+ xmlFreeDoc(doc);
+
+ return(0);
+}
+
+/**
+ * update_xpath_nodes:
+ * @nodes: the nodes set.
+ * @value: the new value for the node(s)
+ *
+ * Prints the @nodes content to @output.
+ */
+static void
+update_xpath_nodes(xmlNodeSetPtr nodes, const xmlChar* value) {
+ int size;
+ int i;
+
+ assert(value);
+ size = (nodes) ? nodes->nodeNr : 0;
+
+ /*
+ * NOTE: the nodes are processed in reverse order, i.e. reverse document
+ * order because xmlNodeSetContent can actually free up descendant
+ * of the node and such nodes may have been selected too ! Handling
+ * in reverse order ensure that descendant are accessed first, before
+ * they get removed. Mixing XPath and modifications on a tree must be
+ * done carefully !
+ */
+ for(i = size - 1; i >= 0; i--) {
+ assert(nodes->nodeTab[i]);
+
+ xmlNodeSetContent(nodes->nodeTab[i], value);
+ /*
+ * All the elements returned by an XPath query are pointers to
+ * elements from the tree *except* namespace nodes where the XPath
+ * semantic is different from the implementation in libxml2 tree.
+ * As a result when a returned node set is freed when
+ * xmlXPathFreeObject() is called, that routine must check the
+ * element type. But node from the returned set may have been removed
+ * by xmlNodeSetContent() resulting in access to freed data.
+ * This can be exercised by running
+ * valgrind xpath2 test3.xml '//discarded' discarded
+ * There is 2 ways around it:
+ * - make a copy of the pointers to the nodes from the result set
+ * then call xmlXPathFreeObject() and then modify the nodes
+ * or
+ * - remove the reference to the modified nodes from the node set
+ * as they are processed, if they are not namespace nodes.
+ */
+ if (nodes->nodeTab[i]->type != XML_NAMESPACE_DECL)
+ nodes->nodeTab[i] = NULL;
+ }
+}
+
+#else
+int main(void) {
+ fprintf(stderr, "XPath support not compiled in\n");
+ exit(1);
+}
+#endif
diff --git a/libxml2-2.9.10/doc/examples/xpath2.res b/libxml2-2.9.10/doc/examples/xpath2.res
new file mode 100644
index 0000000..4e89699
--- /dev/null
+++ b/libxml2-2.9.10/doc/examples/xpath2.res
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<doc>
+ <parent>
+ <discarded>discarded</discarded>
+ <preserved/>
+ This text node must be discarded
+ <discarded>discarded</discarded>
+ <preserved>
+ content1
+ <child1/>
+ <child2>content2</child2>
+ <preserved>too</preserved>
+ <child2>content3</child2>
+ <preserved/>
+ <child2>content4</child2>
+ <preserved/>
+ <child2>content5</child2>
+ content6
+ </preserved>
+ This text node must be discarded
+ <discarded>discarded</discarded>
+ This text node must be discarded
+ <preserved/>
+ This text node must be discarded
+ <preserved/>
+ This text node must be discarded
+ <discarded>discarded</discarded>
+ This text node must be discarded
+ </parent>
+</doc>
diff --git a/libxml2-2.9.10/doc/guidelines.html b/libxml2-2.9.10/doc/guidelines.html
new file mode 100644
index 0000000..af4a7b3
--- /dev/null
+++ b/libxml2-2.9.10/doc/guidelines.html
@@ -0,0 +1,374 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html">
+ <style type="text/css"></style>
+<!--
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+ </style>
+-->
+ <title>XML resources publication guidelines</title>
+</head>
+
+<body bgcolor="#fffacd" text="#000000">
+<h1 align="center">XML resources publication guidelines</h1>
+
+<p></p>
+
+<p>The goal of this document is to provide a set of guidelines and tips
+helping the publication and deployment of <a
+href="http://www.w3.org/XML/">XML</a> resources for the <a
+href="http://www.gnome.org/">GNOME project</a>. However it is not tied to
+GNOME and might be helpful more generally. I welcome <a
+href="mailto:veillard@redhat.com">feedback</a> on this document.</p>
+
+<p>The intended audience is the software developers who started using XML
+for some of the resources of their project, as a storage format, for data
+exchange, checking or transformations. There have been an increasing number
+of new XML formats defined, but not all steps have been taken, possibly because of
+lack of documentation, to truly gain all the benefits of the use of XML.
+These guidelines hope to improve the matter and provide a better overview of
+the overall XML processing and associated steps needed to deploy it
+successfully:</p>
+
+<p>Table of contents:</p>
+<ol>
+ <li><a href="#Design">Design guidelines</a></li>
+ <li><a href="#Canonical">Canonical URL</a></li>
+ <li><a href="#Catalog">Catalog setup</a></li>
+ <li><a href="#Package">Package integration</a></li>
+</ol>
+
+<h2><a name="Design">Design guidelines</a></h2>
+
+<p>This part intends to focus on the format itself of XML. It may arrive
+a bit too late since the structure of the document may already be cast in
+existing and deployed code. Still, here are a few rules which might be helpful
+when designing a new XML vocabulary or making the revision of an existing
+format:</p>
+
+<h3>Reuse existing formats:</h3>
+
+<p>This may sounds a bit simplistic, but before designing your own format,
+try to lookup existing XML vocabularies on similar data. Ideally this allows
+you to reuse them, in which case a lot of the existing tools like DTD, schemas
+and stylesheets may already be available. If you are looking at a
+documentation format, <a href="http://www.docbook.org/">DocBook</a> should
+handle your needs. If reuse is not possible because some semantic or use case
+aspects are too different this will be helpful avoiding design errors like
+targeting the vocabulary to the wrong abstraction level. In this format
+design phase try to be synthetic and be sure to express the real content of
+your data and use the XML structure to express the semantic and context of
+those data.</p>
+
+<h3>DTD rules:</h3>
+
+<p>Building a DTD (Document Type Definition) or a Schema describing the
+structure allowed by instances is the core of the design process of the
+vocabulary. Here are a few tips:</p>
+<ul>
+ <li>use significant words for the element and attributes names.</li>
+ <li>do not use attributes for general textual content, attributes
+ will be modified by the parser before reaching the application,
+ spaces and line informations will be modified.</li>
+ <li>use single elements for every string that might be subject to
+ localization. The canonical way to localize XML content is to use
+ siblings element carrying different xml:lang attributes like in the
+ following:
+ <pre>&lt;welcome&gt;
+ &lt;msg xml:lang="en"&gt;hello&lt;/msg&gt;
+ &lt;msg xml:lang="fr"&gt;bonjour&lt;/msg&gt;
+&lt;/welcome&gt;</pre>
+ </li>
+ <li>use attributes to refine the content of an element but avoid them for
+ more complex tasks, attribute parsing is not cheaper than an element and
+ it is far easier to make an element content more complex while attribute
+ will have to remain very simple.</li>
+</ul>
+
+<h3>Versioning:</h3>
+
+<p>As part of the design, make sure the structure you define will be usable
+for future extension that you may not consider for the current version. There
+are two parts to this:</p>
+<ul>
+ <li>Make sure the instance contains a version number which will allow to
+ make backward compatibility easy. Something as simple as having a
+ <code>version="1.0"</code> on the root document of the instance is
+ sufficient.</li>
+ <li>While designing the code doing the analysis of the data provided by the
+ XML parser, make sure you can work with unknown versions, generate a UI
+ warning and process only the tags recognized by your version but keep in
+ mind that you should not break on unknown elements if the version
+ attribute was not in the recognized set.</li>
+</ul>
+
+<h3>Other design parts:</h3>
+
+<p>While defining you vocabulary, try to think in term of other usage of your
+data, for example how using XSLT stylesheets could be used to make an HTML
+view of your data, or to convert it into a different format. Checking XML
+Schemas and looking at defining an XML Schema with a more complete
+validation and datatyping of your data structures is important, this helps
+avoiding some mistakes in the design phase.</p>
+
+<h3>Namespace:</h3>
+
+<p>If you expect your XML vocabulary to be used or recognized outside of your
+application (for example binding a specific processing from a graphic shell
+like Nautilus to an instance of your data) then you should really define an <a
+href="http://www.w3.org/TR/REC-xml-names/">XML namespace</a> for your
+vocabulary. A namespace name is an URL (absolute URI more precisely). It is
+generally recommended to anchor it as an HTTP resource to a server associated
+with the software project. See the next section about this. In practice this
+will mean that XML parsers will not handle your element names as-is but as a
+couple based on the namespace name and the element name. This allows it to
+recognize and disambiguate processing. Unicity of the namespace name can be
+for the most part guaranteed by the use of the DNS registry. Namespace can
+also be used to carry versioning information like:</p>
+
+<p><code>"http://www.gnome.org/project/projectname/1.0/"</code></p>
+
+<p>An easy way to use them is to make them the default namespace on the
+root element of the XML instance like:</p>
+<pre>&lt;structure xmlns="http://www.gnome.org/project/projectname/1.0/"&gt;
+ &lt;data&gt;
+ ...
+ &lt;/data&gt;
+&lt;/structure&gt;</pre>
+
+<p>In that document, structure and all descendant elements like data are in
+the given namespace.</p>
+
+<h2><a name="Canonical">Canonical URL</a></h2>
+
+<p>As seen in the previous namespace section, while XML processing is not
+tied to the Web there is a natural synergy between both. XML was designed to
+be available on the Web, and keeping the infrastructure that way helps
+deploying the XML resources. The core of this issue is the notion of
+"Canonical URL" of an XML resource. The resource can be an XML document, a
+DTD, a stylesheet, a schema, or even non-XML data associated with an XML
+resource, the canonical URL is the URL where the "master" copy of that
+resource is expected to be present on the Web. Usually when processing XML a
+copy of the resource will be present on the local disk, maybe in
+/usr/share/xml or /usr/share/sgml maybe in /opt or even on C:\projectname\
+(horror !). The key point is that the way to name that resource should be
+independent of the actual place where it resides on disk if it is available,
+and the fact that the processing will still work if there is no local copy
+(and that the machine where the processing is connected to the Internet).</p>
+
+<p>What this really means is that one should never use the local name of a
+resource to reference it but always use the canonical URL. For example in a
+DocBook instance the following should not be used:</p>
+<pre>&lt;!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"<br>
+
+
+ "/usr/share/xml/docbook/4.2/docbookx.dtd"&gt;</pre>
+
+<p>But always reference the canonical URL for the DTD:</p>
+<pre>&lt;!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"<br>
+
+
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"&gt; </pre>
+
+<p>Similarly, the document instance may reference the <a
+href="http://www.w3.org/TR/xslt">XSLT</a> stylesheets needed to process it to
+generate HTML, and the canonical URL should be used:</p>
+<pre>&lt;?xml-stylesheet
+ href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"
+ type="text/xsl"?&gt;</pre>
+
+<p>Defining the canonical URL for the resources needed should obey a few
+simple rules similar to those used to design namespace names:</p>
+<ul>
+ <li>use a DNS name you know is associated to the project and will be
+ available on the long term</li>
+ <li>within that server space, reserve the right to the subtree where you
+ intend to keep those data</li>
+ <li>version the URL so that multiple concurrent versions of the resources
+ can be hosted simultaneously</li>
+</ul>
+
+<h2><a name="Catalog">Catalog setup</a></h2>
+
+<h3>How catalogs work:</h3>
+
+<p>The catalogs are the technical mechanism which allow the XML processing
+tools to use a local copy of the resources if it is available even if the
+instance document references the canonical URL. <a
+href="http://www.oasis-open.org/committees/entity/">XML Catalogs</a> are
+anchored in the root catalog (usually <code>/etc/xml/catalog</code> or
+defined by the user). They are a tree of XML documents defining the mappings
+between the canonical naming space and the local installed ones, this can be
+seen as a static cache structure.</p>
+
+<p>When the XML processor is asked to process a resource it will
+automatically test for a locally available version in the catalog, starting
+from the root catalog, and possibly fetching sub-catalog resources until it
+finds that the catalog has that resource or not. If not the default
+processing of fetching the resource from the Web is done, allowing in most
+case to recover from a catalog miss. The key point is that the document
+instances are totally independent of the availability of a catalog or from
+the actual place where the local resource they reference may be installed.
+This greatly improves the management of the documents in the long run, making
+them independent of the platform or toolchain used to process them. The
+figure below tries to express that mechanism:<img src="catalog.gif"
+alt="Picture describing the catalog "></p>
+
+<h3>Usual catalog setup:</h3>
+
+<p>Usually catalogs for a project are setup as a 2 level hierarchical cache,
+the root catalog containing only "delegates" indicating a separate subcatalog
+dedicated to the project. The goal is to keep the root catalog clean and
+simplify the maintenance of the catalog by using separate catalogs per
+project. For example when creating a catalog for the <a
+href="http://www.w3.org/TR/xhtml1">XHTML1</a> DTDs, only 3 items are added to
+the root catalog:</p>
+<pre> &lt;delegatePublic publicIdStartString="-//W3C//DTD XHTML 1.0"
+ catalog="file:///usr/share/sgml/xhtml1/xmlcatalog"/&gt;
+ &lt;delegateSystem systemIdStartString="http://www.w3.org/TR/xhtml1/DTD"
+ catalog="file:///usr/share/sgml/xhtml1/xmlcatalog"/&gt;
+ &lt;delegateURI uriStartString="http://www.w3.org/TR/xhtml1/DTD"
+ catalog="file:///usr/share/sgml/xhtml1/xmlcatalog"/&gt;</pre>
+
+<p>They are all "delegates" meaning that if the catalog system is asked to
+resolve a reference corresponding to them, it has to lookup a sub catalog.
+Here the subcatalog was installed as
+<code>/usr/share/sgml/xhtml1/xmlcatalog</code> in the local tree. That
+decision is left to the sysadmin or the packager for that system and may
+obey different rules, but the actual place on the filesystem (or on a
+resource cache on the local network) will not influence the processing as
+long as it is available. The first rule indicate that if the reference uses a
+PUBLIC identifier beginning with the</p>
+
+<p><code>"-//W3C//DTD XHTML 1.0"</code></p>
+
+<p>substring, then the catalog lookup should be limited to the specific given
+lookup catalog. Similarly the second and third entries indicate those
+delegation rules for SYSTEM, DOCTYPE or normal URI references when the URL
+starts with the <code>"http://www.w3.org/TR/xhtml1/DTD"</code> substring
+which indicates the location on the W3C server where the XHTML1 resources are
+stored. Those are the beginning of all Canonical URLs for XHTML1 resources.
+Those three rules are sufficient in practice to capture all references to XHTML1
+resources and direct the processing tools to the right subcatalog.</p>
+
+<h3>A subcatalog example:</h3>
+
+<p>Here is the complete subcatalog used for XHTML1:</p>
+<pre>&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
+ "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;
+&lt;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"&gt;
+ &lt;public publicId="-//W3C//DTD XHTML 1.0 Strict//EN"
+ uri="xhtml1-20020801/DTD/xhtml1-strict.dtd"/&gt;
+ &lt;public publicId="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ uri="xhtml1-20020801/DTD/xhtml1-transitional.dtd"/&gt;
+ &lt;public publicId="-//W3C//DTD XHTML 1.0 Frameset//EN"
+ uri="xhtml1-20020801/DTD/xhtml1-frameset.dtd"/&gt;
+ &lt;rewriteSystem systemIdStartString="http://www.w3.org/TR/xhtml1/DTD"
+ rewritePrefix="xhtml1-20020801/DTD"/&gt;
+ &lt;rewriteURI uriStartString="http://www.w3.org/TR/xhtml1/DTD"
+ rewritePrefix="xhtml1-20020801/DTD"/&gt;
+&lt;/catalog&gt;</pre>
+
+<p>There are a few things to notice:</p>
+<ul>
+ <li>this is an XML resource, it points to the DTD using Canonical URLs, the
+ root element defines a namespace (but based on an URN not an HTTP
+ URL).</li>
+ <li>it contains 5 rules, the 3 first ones are direct mapping for the 3
+ PUBLIC identifiers defined by the XHTML1 specification and associating
+ them with the local resource containing the DTD, the 2 last ones are
+ rewrite rules allowing to build the local filename for any URL based on
+ "http://www.w3.org/TR/xhtml1/DTD", the local cache simplifies the rules by
+ keeping the same structure as the on-line server at the Canonical URL</li>
+ <li>the local resources are designated using URI references (the uri or
+ rewritePrefix attributes), the base being the containing sub-catalog URL,
+ which means that in practice the copy of the XHTML1 strict DTD is stored
+ locally in
+ <code>/usr/share/sgml/xhtml1/xmlcatalog/xhtml1-20020801/DTD/xhtml1-strict.dtd</code></li>
+</ul>
+
+<p>Those 5 rules are sufficient to cover all references to the resources held
+at the Canonical URL for the XHTML1 DTDs.</p>
+
+<h2><a name="Package">Package integration</a></h2>
+
+<p>Creating and removing catalogs should be handled as part of the process of
+(un)installing the local copy of the resources. The catalog files being XML
+resources should be processed with XML based tools to avoid problems with the
+generated files, the xmlcatalog command coming with libxml2 allows you to create
+catalogs, and add or remove rules at that time. Here is a complete example
+coming from the RPM for the XHTML1 DTDs post install script. While this example
+is platform and packaging specific, this can be useful as a an example in
+other contexts:</p>
+<pre>%post
+CATALOG=/usr/share/sgml/xhtml1/xmlcatalog
+#
+# Register it in the super catalog with the appropriate delegates
+#
+ROOTCATALOG=/etc/xml/catalog
+
+if [ ! -r $ROOTCATALOG ]
+then
+ /usr/bin/xmlcatalog --noout --create $ROOTCATALOG
+fi
+
+if [ -w $ROOTCATALOG ]
+then
+ /usr/bin/xmlcatalog --noout --add "delegatePublic" \
+ "-//W3C//DTD XHTML 1.0" \
+ "file://$CATALOG" $ROOTCATALOG
+ /usr/bin/xmlcatalog --noout --add "delegateSystem" \
+ "http://www.w3.org/TR/xhtml1/DTD" \
+ "file://$CATALOG" $ROOTCATALOG
+ /usr/bin/xmlcatalog --noout --add "delegateURI" \
+ "http://www.w3.org/TR/xhtml1/DTD" \
+ "file://$CATALOG" $ROOTCATALOG
+fi</pre>
+
+<p>The XHTML1 subcatalog is not created on-the-fly in that case, it is
+installed as part of the files of the packages. So the only work needed is to
+make sure the root catalog exists and register the delegate rules.</p>
+
+<p>Similarly, the script for the post-uninstall just remove the rules from the
+catalog:</p>
+<pre>%postun
+#
+# On removal, unregister the xmlcatalog from the supercatalog
+#
+if [ "$1" = 0 ]; then
+ CATALOG=/usr/share/sgml/xhtml1/xmlcatalog
+ ROOTCATALOG=/etc/xml/catalog
+
+ if [ -w $ROOTCATALOG ]
+ then
+ /usr/bin/xmlcatalog --noout --del \
+ "-//W3C//DTD XHTML 1.0" $ROOTCATALOG
+ /usr/bin/xmlcatalog --noout --del \
+ "http://www.w3.org/TR/xhtml1/DTD" $ROOTCATALOG
+ /usr/bin/xmlcatalog --noout --del \
+ "http://www.w3.org/TR/xhtml1/DTD" $ROOTCATALOG
+ fi
+fi</pre>
+
+<p>Note the test against $1, this is needed to not remove the delegate rules
+in case of upgrade of the package.</p>
+
+<p>Following the set of guidelines and tips provided in this document should
+help deploy the XML resources in the GNOME framework without much pain and
+ensure a smooth evolution of the resource and instances.</p>
+
+<p><a href="mailto:veillard@redhat.com">Daniel Veillard</a></p>
+
+<p>$Id$</p>
+
+<p></p>
+</body>
+</html>
diff --git a/libxml2-2.9.10/doc/help.html b/libxml2-2.9.10/doc/help.html
new file mode 100644
index 0000000..0c2bccf
--- /dev/null
+++ b/libxml2-2.9.10/doc/help.html
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>How to help</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>How to help</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>You can help the project in various ways, the best thing to do first is to
+subscribe to the mailing-list as explained before, check the <a href="http://mail.gnome.org/archives/xml/">archives </a>and the <a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Gnome bug
+database</a>:</p><ol>
+ <li>Provide patches when you find problems.</li>
+ <li>Provide the diffs when you port libxml2 to a new platform. They may not
+ be integrated in all cases but help pinpointing portability problems
+ and</li>
+ <li>Provide documentation fixes (either as patches to the code comments or
+ as HTML diffs).</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>Take one of the points raised in the archive or the bug database and
+ provide a fix. <a href="mailto:daniel@veillard.com">Get in touch with me
+ </a>before to avoid synchronization problems and check that the suggested
+ fix 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>
diff --git a/libxml2-2.9.10/doc/html/book1.html b/libxml2-2.9.10/doc/html/book1.html
new file mode 100644
index 0000000..a869493
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/book1.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Reference Manual for libxml2</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></h1><h2>Reference Manual for libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</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>
diff --git a/libxml2-2.9.10/doc/html/home.png b/libxml2-2.9.10/doc/html/home.png
new file mode 100644
index 0000000..1700361
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/home.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/html/index.html b/libxml2-2.9.10/doc/html/index.html
new file mode 100644
index 0000000..a869493
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/index.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Reference Manual for libxml2</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></h1><h2>Reference Manual for libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</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>
diff --git a/libxml2-2.9.10/doc/html/left.png b/libxml2-2.9.10/doc/html/left.png
new file mode 100644
index 0000000..2d05b3d
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/left.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/html/libxml-DOCBparser.html b/libxml2-2.9.10/doc/html/libxml-DOCBparser.html
new file mode 100644
index 0000000..85060c3
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-DOCBparser.html
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module DOCBparser from libxml2</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></h1><h2>Module DOCBparser from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-HTMLparser.html">HTMLparser</a></th><td><a accesskey="n" href="libxml-HTMLparser.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><h2 style="font-weight:bold;color:red;text-align:center">This module is deprecated</h2><p>interface for a DocBook SGML non-verifying parser This code is DEPRECATED, and should not be used anymore. </p><div class="deprecated"><h2>Table of Contents</h2><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a name="docbParserInputPtr" id="docbParserInputPtr">docbParserInputPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserCtxt">xmlParserCtxt</a> <a name="docbParserCtxt" id="docbParserCtxt">docbParserCtxt</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a name="docbParserCtxtPtr" id="docbParserCtxtPtr">docbParserCtxtPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserInput">xmlParserInput</a> <a name="docbParserInput" id="docbParserInput">docbParserInput</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a name="docbDocPtr" id="docbDocPtr">docbDocPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> <a name="docbSAXHandler" id="docbSAXHandler">docbSAXHandler</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> <a name="docbSAXHandlerPtr" id="docbSAXHandlerPtr">docbSAXHandlerPtr</a>
+</pre><pre class="programlisting">void <a href="#docbFreeParserCtxt">docbFreeParserCtxt</a> (<a href="libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-DOCBparser.html#docbDocPtr">docbDocPtr</a> <a href="#docbParseDoc">docbParseDoc</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding)</pre>
+<pre class="programlisting"><a href="libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> <a href="#docbCreateFileParserCtxt">docbCreateFileParserCtxt</a> (const char * filename, <br /> const char * encoding)</pre>
+<pre class="programlisting"><a href="libxml-DOCBparser.html#docbDocPtr">docbDocPtr</a> <a href="#docbSAXParseFile">docbSAXParseFile</a> (const char * filename, <br /> const char * encoding, <br /> <a href="libxml-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br /> void * userData)</pre>
+<pre class="programlisting"><a href="libxml-DOCBparser.html#docbDocPtr">docbDocPtr</a> <a href="#docbSAXParseDoc">docbSAXParseDoc</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding, <br /> <a href="libxml-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br /> void * userData)</pre>
+<pre class="programlisting"><a href="libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> <a href="#docbCreatePushParserCtxt">docbCreatePushParserCtxt</a> (<a href="libxml-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> const char * chunk, <br /> int size, <br /> const char * filename, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting">int <a href="#docbEncodeEntities">docbEncodeEntities</a> (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen, <br /> int quoteChar)</pre>
+<pre class="programlisting"><a href="libxml-DOCBparser.html#docbDocPtr">docbDocPtr</a> <a href="#docbParseFile">docbParseFile</a> (const char * filename, <br /> const char * encoding)</pre>
+<pre class="programlisting">int <a href="#docbParseDocument">docbParseDocument</a> (<a href="libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#docbParseChunk">docbParseChunk</a> (<a href="libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> int terminate)</pre>
+<h2>Description</h2>
+<h3><a name="docbFreeParserCtxt" id="docbFreeParserCtxt"></a>Function: docbFreeParserCtxt</h3><pre class="programlisting">void docbFreeParserCtxt (<a href="libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt)<br />
+</pre><p>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an SGML parser context</td></tr></tbody></table></div><h3><a name="docbParseDoc" id="docbParseDoc"></a>Function: docbParseDoc</h3><pre class="programlisting"><a href="libxml-DOCBparser.html#docbDocPtr">docbDocPtr</a> docbParseDoc (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding)<br />
+</pre><p>parse an SGML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the SGML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="docbCreateFileParserCtxt" id="docbCreateFileParserCtxt"></a>Function: docbCreateFileParserCtxt</h3><pre class="programlisting"><a href="libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> docbCreateFileParserCtxt (const char * filename, <br /> const char * encoding)<br />
+</pre><p>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the SGML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="docbSAXParseFile" id="docbSAXParseFile"></a>Function: docbSAXParseFile</h3><pre class="programlisting"><a href="libxml-DOCBparser.html#docbDocPtr">docbDocPtr</a> docbSAXParseFile (const char * filename, <br /> const char * encoding, <br /> <a href="libxml-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br /> void * userData)<br />
+</pre><p>parse an SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the SGML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="docbSAXParseDoc" id="docbSAXParseDoc"></a>Function: docbSAXParseDoc</h3><pre class="programlisting"><a href="libxml-DOCBparser.html#docbDocPtr">docbDocPtr</a> docbSAXParseDoc (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding, <br /> <a href="libxml-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br /> void * userData)<br />
+</pre><p>parse an SGML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the SGML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="docbCreatePushParserCtxt" id="docbCreatePushParserCtxt"></a>Function: docbCreatePushParserCtxt</h3><pre class="programlisting"><a href="libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> docbCreatePushParserCtxt (<a href="libxml-DOCBparser.html#docbSAXHandlerPtr">docbSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> const char * chunk, <br /> int size, <br /> const char * filename, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a parser context for using the DocBook SGML parser in push mode To allow content encoding detection, @size should be &gt;= 4 The value of @filename is used for fetching external entities and error/warning reports.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>a pointer to an array of chars</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>number of chars in the array</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>an optional file name or URI</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>an optional encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="docbEncodeEntities" id="docbEncodeEntities"></a>Function: docbEncodeEntities</h3><pre class="programlisting">int docbEncodeEntities (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen, <br /> int quoteChar)<br />
+</pre><p>Take a block of UTF-8 chars in and try to convert it to an ASCII plus SGML entities block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of UTF-8 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>quoteChar</tt></i>:</span></td><td>the quote character to escape (' or ") or zero.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div><h3><a name="docbParseFile" id="docbParseFile"></a>Function: docbParseFile</h3><pre class="programlisting"><a href="libxml-DOCBparser.html#docbDocPtr">docbDocPtr</a> docbParseFile (const char * filename, <br /> const char * encoding)<br />
+</pre><p>parse a Docbook SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="docbParseDocument" id="docbParseDocument"></a>Function: docbParseDocument</h3><pre class="programlisting">int docbParseDocument (<a href="libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an SGML document (and build a tree if using the standard SAX interface).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an SGML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0, -1 in case of error. the parser context is augmented as a result of the parsing.</td></tr></tbody></table></div><h3><a name="docbParseChunk" id="docbParseChunk"></a>Function: docbParseChunk</h3><pre class="programlisting">int docbParseChunk (<a href="libxml-DOCBparser.html#docbParserCtxtPtr">docbParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> int terminate)<br />
+</pre><p>Parse a Chunk of memory</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-HTMLparser.html b/libxml2-2.9.10/doc/html/libxml-HTMLparser.html
new file mode 100644
index 0000000..4269480
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-HTMLparser.html
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module HTMLparser from libxml2</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></h1><h2>Module HTMLparser from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-DOCBparser.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-DOCBparser.html">DOCBparser</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-HTMLtree.html">HTMLtree</a></th><td><a accesskey="n" href="libxml-HTMLtree.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>this module implements an HTML 4.0 non-verifying parser with API compatible with the XML parser ones. It should be able to parse "real world" HTML, even if severely broken from a specification point of view. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#htmlDefaultSubelement">htmlDefaultSubelement</a></pre><pre class="programlisting">#define <a href="#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a></pre><pre class="programlisting">#define <a href="#htmlRequiredAttrs">htmlRequiredAttrs</a></pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a name="htmlDocPtr" id="htmlDocPtr">htmlDocPtr</a>
+</pre><pre class="programlisting">Structure <a href="#htmlElemDesc">htmlElemDesc</a><br />struct _htmlElemDesc
+</pre><pre class="programlisting">Typedef <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * <a name="htmlElemDescPtr" id="htmlElemDescPtr">htmlElemDescPtr</a>
+</pre><pre class="programlisting">Structure <a href="#htmlEntityDesc">htmlEntityDesc</a><br />struct _htmlEntityDesc
+</pre><pre class="programlisting">Typedef <a href="libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * <a name="htmlEntityDescPtr" id="htmlEntityDescPtr">htmlEntityDescPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a name="htmlNodePtr" id="htmlNodePtr">htmlNodePtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserCtxt">xmlParserCtxt</a> <a name="htmlParserCtxt" id="htmlParserCtxt">htmlParserCtxt</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a name="htmlParserCtxtPtr" id="htmlParserCtxtPtr">htmlParserCtxtPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserInput">xmlParserInput</a> <a name="htmlParserInput" id="htmlParserInput">htmlParserInput</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a name="htmlParserInputPtr" id="htmlParserInputPtr">htmlParserInputPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> <a name="htmlParserNodeInfo" id="htmlParserNodeInfo">htmlParserNodeInfo</a>
+</pre><pre class="programlisting">Enum <a href="#htmlParserOption">htmlParserOption</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> <a name="htmlSAXHandler" id="htmlSAXHandler">htmlSAXHandler</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> <a name="htmlSAXHandlerPtr" id="htmlSAXHandlerPtr">htmlSAXHandlerPtr</a>
+</pre><pre class="programlisting">Enum <a href="#htmlStatus">htmlStatus</a>
+</pre><pre class="programlisting">int <a href="#UTF8ToHtml">UTF8ToHtml</a> (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlStatus">htmlStatus</a> <a href="#htmlAttrAllowed">htmlAttrAllowed</a> (const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * elt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * attr, <br /> int legacy)</pre>
+<pre class="programlisting">int <a href="#htmlAutoCloseTag">htmlAutoCloseTag</a> (<a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> elem)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> <a href="#htmlCreateMemoryParserCtxt">htmlCreateMemoryParserCtxt</a> (const char * buffer, <br /> int size)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> <a href="#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</a> (<a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> const char * chunk, <br /> int size, <br /> const char * filename, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadDoc">htmlCtxtReadDoc</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadFd">htmlCtxtReadFd</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadFile">htmlCtxtReadFile</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const char * filename, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadIO">htmlCtxtReadIO</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadMemory">htmlCtxtReadMemory</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting">void <a href="#htmlCtxtReset">htmlCtxtReset</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#htmlCtxtUseOptions">htmlCtxtUseOptions</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#htmlElementAllowedHere">htmlElementAllowedHere</a> (const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * parent, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elt)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlStatus">htmlStatus</a> <a href="#htmlElementStatusHere">htmlElementStatusHere</a> (const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * parent, <br /> const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * elt)</pre>
+<pre class="programlisting">int <a href="#htmlEncodeEntities">htmlEncodeEntities</a> (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen, <br /> int quoteChar)</pre>
+<pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * <a href="#htmlEntityLookup">htmlEntityLookup</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * <a href="#htmlEntityValueLookup">htmlEntityValueLookup</a> (unsigned int value)</pre>
+<pre class="programlisting">void <a href="#htmlFreeParserCtxt">htmlFreeParserCtxt</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#htmlHandleOmittedElem">htmlHandleOmittedElem</a> (int val)</pre>
+<pre class="programlisting">int <a href="#htmlIsAutoClosed">htmlIsAutoClosed</a> (<a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br /> <a href="libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> elem)</pre>
+<pre class="programlisting">int <a href="#htmlIsScriptAttribute">htmlIsScriptAttribute</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> <a href="#htmlNewParserCtxt">htmlNewParserCtxt</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlStatus">htmlStatus</a> <a href="#htmlNodeStatus">htmlNodeStatus</a> (const <a href="libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> node, <br /> int legacy)</pre>
+<pre class="programlisting">int <a href="#htmlParseCharRef">htmlParseCharRef</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#htmlParseChunk">htmlParseChunk</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> int terminate)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlParseDoc">htmlParseDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding)</pre>
+<pre class="programlisting">int <a href="#htmlParseDocument">htmlParseDocument</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#htmlParseElement">htmlParseElement</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * <a href="#htmlParseEntityRef">htmlParseEntityRef</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** str)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlParseFile">htmlParseFile</a> (const char * filename, <br /> const char * encoding)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadDoc">htmlReadDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadFd">htmlReadFd</a> (int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadFile">htmlReadFile</a> (const char * filename, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadIO">htmlReadIO</a> (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadMemory">htmlReadMemory</a> (const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlSAXParseDoc">htmlSAXParseDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding, <br /> <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * userData)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlSAXParseFile">htmlSAXParseFile</a> (const char * filename, <br /> const char * encoding, <br /> <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * userData)</pre>
+<pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * <a href="#htmlTagLookup">htmlTagLookup</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * tag)</pre>
+<h2>Description</h2>
+<h3><a name="htmlDefaultSubelement" id="htmlDefaultSubelement"></a>Macro: htmlDefaultSubelement</h3><pre>#define htmlDefaultSubelement</pre><p>Returns the default subelement for this element</p>
+<h3><a name="htmlElementAllowedHereDesc" id="htmlElementAllowedHereDesc"></a>Macro: htmlElementAllowedHereDesc</h3><pre>#define htmlElementAllowedHereDesc</pre><p>Checks whether an HTML element description may be a direct child of the specified element. Returns 1 if allowed; 0 otherwise.</p>
+<h3><a name="htmlRequiredAttrs" id="htmlRequiredAttrs"></a>Macro: htmlRequiredAttrs</h3><pre>#define htmlRequiredAttrs</pre><p>Returns the attributes required for the specified element.</p>
+<h3><a name="htmlElemDesc" id="htmlElemDesc">Structure htmlElemDesc</a></h3><pre class="programlisting">Structure htmlElemDesc<br />struct _htmlElemDesc {
+ const char * name : The tag name
+ char startTag : Whether the start tag can be implied
+ char endTag : Whether the end tag can be implied
+ char saveEndTag : Whether the end tag should be saved
+ char empty : Is this an empty element ?
+ char depr : Is this a deprecated element ?
+ char dtd : 1: only in Loose DTD, 2: only Frameset
+ char isinline : is this a block 0 or inline 1 element
+ const char * desc : the description NRK Jan.2003 * New fiel
+ const char ** subelts : allowed sub-elements of this element
+ const char * defaultsubelt : subelement for suggested auto-repair if
+ const char ** attrs_opt : Optional Attributes
+ const char ** attrs_depr : Additional deprecated attributes
+ const char ** attrs_req : Required attributes
+}</pre><h3><a name="htmlEntityDesc" id="htmlEntityDesc">Structure htmlEntityDesc</a></h3><pre class="programlisting">Structure htmlEntityDesc<br />struct _htmlEntityDesc {
+ unsigned int value : the UNICODE value for the character
+ const char * name : The entity name
+ const char * desc : the description
+}</pre><h3>Enum <a name="htmlParserOption" id="htmlParserOption">htmlParserOption</a></h3><pre class="programlisting">Enum htmlParserOption {
+ <a name="HTML_PARSE_RECOVER" id="HTML_PARSE_RECOVER">HTML_PARSE_RECOVER</a> = 1 : Relaxed parsing
+ <a name="HTML_PARSE_NODEFDTD" id="HTML_PARSE_NODEFDTD">HTML_PARSE_NODEFDTD</a> = 4 : do not default a doctype if not found
+ <a name="HTML_PARSE_NOERROR" id="HTML_PARSE_NOERROR">HTML_PARSE_NOERROR</a> = 32 : suppress error reports
+ <a name="HTML_PARSE_NOWARNING" id="HTML_PARSE_NOWARNING">HTML_PARSE_NOWARNING</a> = 64 : suppress warning reports
+ <a name="HTML_PARSE_PEDANTIC" id="HTML_PARSE_PEDANTIC">HTML_PARSE_PEDANTIC</a> = 128 : pedantic error reporting
+ <a name="HTML_PARSE_NOBLANKS" id="HTML_PARSE_NOBLANKS">HTML_PARSE_NOBLANKS</a> = 256 : remove blank nodes
+ <a name="HTML_PARSE_NONET" id="HTML_PARSE_NONET">HTML_PARSE_NONET</a> = 2048 : Forbid network access
+ <a name="HTML_PARSE_NOIMPLIED" id="HTML_PARSE_NOIMPLIED">HTML_PARSE_NOIMPLIED</a> = 8192 : Do not add implied html/body... elements
+ <a name="HTML_PARSE_COMPACT" id="HTML_PARSE_COMPACT">HTML_PARSE_COMPACT</a> = 65536 : compact small text nodes
+ <a name="HTML_PARSE_IGNORE_ENC" id="HTML_PARSE_IGNORE_ENC">HTML_PARSE_IGNORE_ENC</a> = 2097152 : ignore internal document encoding hint
+}
+</pre><h3>Enum <a name="htmlStatus" id="htmlStatus">htmlStatus</a></h3><pre class="programlisting">Enum htmlStatus {
+ <a name="HTML_NA" id="HTML_NA">HTML_NA</a> = 0 : something we don't check at all
+ <a name="HTML_INVALID" id="HTML_INVALID">HTML_INVALID</a> = 1
+ <a name="HTML_DEPRECATED" id="HTML_DEPRECATED">HTML_DEPRECATED</a> = 2
+ <a name="HTML_VALID" id="HTML_VALID">HTML_VALID</a> = 4
+ <a name="HTML_REQUIRED" id="HTML_REQUIRED">HTML_REQUIRED</a> = 12 : VALID bit set so ( &amp; <a href="libxml-HTMLparser.html#HTML_VALID">HTML_VALID</a> ) is TRUE
+}
+</pre><h3><a name="UTF8ToHtml" id="UTF8ToHtml"></a>Function: UTF8ToHtml</h3><pre class="programlisting">int UTF8ToHtml (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen)<br />
+</pre><p>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of UTF-8 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div><h3><a name="htmlAttrAllowed" id="htmlAttrAllowed"></a>Function: htmlAttrAllowed</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlStatus">htmlStatus</a> htmlAttrAllowed (const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * elt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * attr, <br /> int legacy)<br />
+</pre><p>Checks whether an <a href="libxml-SAX.html#attribute">attribute</a> is valid for an element Has full knowledge of Required and Deprecated attributes</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>elt</tt></i>:</span></td><td>HTML element</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>HTML <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>legacy</tt></i>:</span></td><td>whether to allow deprecated attributes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>one of HTML_REQUIRED, HTML_VALID, HTML_DEPRECATED, <a href="libxml-HTMLparser.html#HTML_INVALID">HTML_INVALID</a></td></tr></tbody></table></div><h3><a name="htmlAutoCloseTag" id="htmlAutoCloseTag"></a>Function: htmlAutoCloseTag</h3><pre class="programlisting">int htmlAutoCloseTag (<a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> elem)<br />
+</pre><p>The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if the element or one of it's children would autoclose the given tag.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the HTML document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The tag name</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the HTML element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if autoclose, 0 otherwise</td></tr></tbody></table></div><h3><a name="htmlCreateMemoryParserCtxt" id="htmlCreateMemoryParserCtxt"></a>Function: htmlCreateMemoryParserCtxt</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> htmlCreateMemoryParserCtxt (const char * buffer, <br /> int size)<br />
+</pre><p>Create a parser context for an HTML in-memory document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="htmlCreatePushParserCtxt" id="htmlCreatePushParserCtxt"></a>Function: htmlCreatePushParserCtxt</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> htmlCreatePushParserCtxt (<a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> const char * chunk, <br /> int size, <br /> const char * filename, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a parser context for using the HTML parser in push mode The value of @filename is used for fetching external entities and error/warning reports.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>a pointer to an array of chars</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>number of chars in the array</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>an optional file name or URI</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>an optional encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="htmlCtxtReadDoc" id="htmlCtxtReadDoc"></a>Function: htmlCtxtReadDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlCtxtReadDoc (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlCtxtReadFd" id="htmlCtxtReadFd"></a>Function: htmlCtxtReadFd</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlCtxtReadFd (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlCtxtReadFile" id="htmlCtxtReadFile"></a>Function: htmlCtxtReadFile</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlCtxtReadFile (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const char * filename, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlCtxtReadIO" id="htmlCtxtReadIO"></a>Function: htmlCtxtReadIO</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlCtxtReadIO (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an HTML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlCtxtReadMemory" id="htmlCtxtReadMemory"></a>Function: htmlCtxtReadMemory</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlCtxtReadMemory (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlCtxtReset" id="htmlCtxtReset"></a>Function: htmlCtxtReset</h3><pre class="programlisting">void htmlCtxtReset (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Reset a parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr></tbody></table></div><h3><a name="htmlCtxtUseOptions" id="htmlCtxtUseOptions"></a>Function: htmlCtxtUseOptions</h3><pre class="programlisting">int htmlCtxtUseOptions (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> int options)<br />
+</pre><p>Applies the options to the parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, the set of unknown or unimplemented options in case of error.</td></tr></tbody></table></div><h3><a name="htmlElementAllowedHere" id="htmlElementAllowedHere"></a>Function: htmlElementAllowedHere</h3><pre class="programlisting">int htmlElementAllowedHere (const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * parent, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elt)<br />
+</pre><p>Checks whether an HTML element may be a direct child of a parent element. Note - doesn't check for deprecated elements</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>HTML parent element</td></tr><tr><td><span class="term"><i><tt>elt</tt></i>:</span></td><td>HTML element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if allowed; 0 otherwise.</td></tr></tbody></table></div><h3><a name="htmlElementStatusHere" id="htmlElementStatusHere"></a>Function: htmlElementStatusHere</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlStatus">htmlStatus</a> htmlElementStatusHere (const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * parent, <br /> const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * elt)<br />
+</pre><p>Checks whether an HTML element may be a direct child of a parent element. and if so whether it is valid or deprecated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>HTML parent element</td></tr><tr><td><span class="term"><i><tt>elt</tt></i>:</span></td><td>HTML element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>one of HTML_VALID, HTML_DEPRECATED, <a href="libxml-HTMLparser.html#HTML_INVALID">HTML_INVALID</a></td></tr></tbody></table></div><h3><a name="htmlEncodeEntities" id="htmlEncodeEntities"></a>Function: htmlEncodeEntities</h3><pre class="programlisting">int htmlEncodeEntities (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen, <br /> int quoteChar)<br />
+</pre><p>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of UTF-8 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>quoteChar</tt></i>:</span></td><td>the quote character to escape (' or ") or zero.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div><h3><a name="htmlEntityLookup" id="htmlEntityLookup"></a>Function: htmlEntityLookup</h3><pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * htmlEntityLookup (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Lookup the given entity in EntitiesTable TODO: the linear scan is really ugly, an hash table is really needed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the associated <a href="libxml-HTMLparser.html#htmlEntityDescPtr">htmlEntityDescPtr</a> if found, NULL otherwise.</td></tr></tbody></table></div><h3><a name="htmlEntityValueLookup" id="htmlEntityValueLookup"></a>Function: htmlEntityValueLookup</h3><pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * htmlEntityValueLookup (unsigned int value)<br />
+</pre><p>Lookup the given entity in EntitiesTable TODO: the linear scan is really ugly, an hash table is really needed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the entity's unicode value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the associated <a href="libxml-HTMLparser.html#htmlEntityDescPtr">htmlEntityDescPtr</a> if found, NULL otherwise.</td></tr></tbody></table></div><h3><a name="htmlFreeParserCtxt" id="htmlFreeParserCtxt"></a>Function: htmlFreeParserCtxt</h3><pre class="programlisting">void htmlFreeParserCtxt (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr></tbody></table></div><h3><a name="htmlHandleOmittedElem" id="htmlHandleOmittedElem"></a>Function: htmlHandleOmittedElem</h3><pre class="programlisting">int htmlHandleOmittedElem (int val)<br />
+</pre><p>Set and return the previous value for handling HTML omitted tags.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no handling, 1 for auto insertion.</td></tr></tbody></table></div><h3><a name="htmlIsAutoClosed" id="htmlIsAutoClosed"></a>Function: htmlIsAutoClosed</h3><pre class="programlisting">int htmlIsAutoClosed (<a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br /> <a href="libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> elem)<br />
+</pre><p>The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if a tag is autoclosed by one of it's child</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the HTML document</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the HTML element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if autoclosed, 0 otherwise</td></tr></tbody></table></div><h3><a name="htmlIsScriptAttribute" id="htmlIsScriptAttribute"></a>Function: htmlIsScriptAttribute</h3><pre class="programlisting">int htmlIsScriptAttribute (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Check if an <a href="libxml-SAX.html#attribute">attribute</a> is of content type Script</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>an <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 is the <a href="libxml-SAX.html#attribute">attribute</a> is a script 0 otherwise</td></tr></tbody></table></div><h3><a name="htmlNewParserCtxt" id="htmlNewParserCtxt"></a>Function: htmlNewParserCtxt</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> htmlNewParserCtxt (void)<br />
+</pre><p>Allocate and initialize a new parser context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> or NULL in case of allocation error</td></tr></tbody></table></div><h3><a name="htmlNodeStatus" id="htmlNodeStatus"></a>Function: htmlNodeStatus</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlStatus">htmlStatus</a> htmlNodeStatus (const <a href="libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> node, <br /> int legacy)<br />
+</pre><p>Checks whether the tree node is valid. Experimental (the author only uses the HTML enhancements in a SAX parser)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>an <a href="libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> in a tree</td></tr><tr><td><span class="term"><i><tt>legacy</tt></i>:</span></td><td>whether to allow deprecated elements (YES is faster here for Element nodes)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>for Element nodes, a return from <a href="libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a> (if legacy allowed) or <a href="libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a> (otherwise). for Attribute nodes, a return from <a href="libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a> for other nodes, <a href="libxml-HTMLparser.html#HTML_NA">HTML_NA</a> (no checks performed)</td></tr></tbody></table></div><h3><a name="htmlParseCharRef" id="htmlParseCharRef"></a>Function: htmlParseCharRef</h3><pre class="programlisting">int htmlParseCharRef (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse Reference declarations [66] CharRef ::= '&amp;#' [0-9]+ ';' | '&amp;#x' [0-9a-fA-F]+ ';'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value parsed (as an int)</td></tr></tbody></table></div><h3><a name="htmlParseChunk" id="htmlParseChunk"></a>Function: htmlParseChunk</h3><pre class="programlisting">int htmlParseChunk (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> int terminate)<br />
+</pre><p>Parse a Chunk of memory</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div><h3><a name="htmlParseDoc" id="htmlParseDoc"></a>Function: htmlParseDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlParseDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding)<br />
+</pre><p>parse an HTML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlParseDocument" id="htmlParseDocument"></a>Function: htmlParseDocument</h3><pre class="programlisting">int htmlParseDocument (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an HTML document (and build a tree if using the standard SAX interface).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0, -1 in case of error. the parser context is augmented as a result of the parsing.</td></tr></tbody></table></div><h3><a name="htmlParseElement" id="htmlParseElement"></a>Function: htmlParseElement</h3><pre class="programlisting">void htmlParseElement (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an HTML element, this is highly recursive this is kept for compatibility with previous code versions [39] element ::= EmptyElemTag | STag content ETag [41] Attribute ::= Name Eq AttValue</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr></tbody></table></div><h3><a name="htmlParseEntityRef" id="htmlParseEntityRef"></a>Function: htmlParseEntityRef</h3><pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * htmlParseEntityRef (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** str)<br />
+</pre><p>parse an HTML ENTITY references [68] EntityRef ::= '&amp;' Name ';'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>location to store the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the associated <a href="libxml-HTMLparser.html#htmlEntityDescPtr">htmlEntityDescPtr</a> if found, or NULL otherwise, if non-NULL *str will have to be freed by the caller.</td></tr></tbody></table></div><h3><a name="htmlParseFile" id="htmlParseFile"></a>Function: htmlParseFile</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlParseFile (const char * filename, <br /> const char * encoding)<br />
+</pre><p>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlReadDoc" id="htmlReadDoc"></a>Function: htmlReadDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlReadFd" id="htmlReadFd"></a>Function: htmlReadFd</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadFd (int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML from a file descriptor and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlReadFile" id="htmlReadFile"></a>Function: htmlReadFile</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadFile (const char * filename, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML file from the filesystem or the network.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlReadIO" id="htmlReadIO"></a>Function: htmlReadIO</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadIO (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an HTML document from I/O functions and source and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlReadMemory" id="htmlReadMemory"></a>Function: htmlReadMemory</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadMemory (const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlSAXParseDoc" id="htmlSAXParseDoc"></a>Function: htmlSAXParseDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlSAXParseDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding, <br /> <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * userData)<br />
+</pre><p>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree unless SAX is NULL or the document is not well formed.</td></tr></tbody></table></div><h3><a name="htmlSAXParseFile" id="htmlSAXParseFile"></a>Function: htmlSAXParseFile</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlSAXParseFile (const char * filename, <br /> const char * encoding, <br /> <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * userData)<br />
+</pre><p>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree unless SAX is NULL or the document is not well formed.</td></tr></tbody></table></div><h3><a name="htmlTagLookup" id="htmlTagLookup"></a>Function: htmlTagLookup</h3><pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * htmlTagLookup (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * tag)<br />
+</pre><p>Lookup the HTML tag in the ElementTable</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tag</tt></i>:</span></td><td>The tag name in lowercase</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the related <a href="libxml-HTMLparser.html#htmlElemDescPtr">htmlElemDescPtr</a> or NULL if not found.</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-HTMLtree.html b/libxml2-2.9.10/doc/html/libxml-HTMLtree.html
new file mode 100644
index 0000000..1bbec8c
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-HTMLtree.html
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module HTMLtree from libxml2</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></h1><h2>Module HTMLtree from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-HTMLparser.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-HTMLparser.html">HTMLparser</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-SAX.html">SAX</a></th><td><a accesskey="n" href="libxml-SAX.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>this module implements a few function needed to process tree in an HTML specific way. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a></pre><pre class="programlisting">#define <a href="#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a></pre><pre class="programlisting">#define <a href="#HTML_PI_NODE">HTML_PI_NODE</a></pre><pre class="programlisting">#define <a href="#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a></pre><pre class="programlisting">#define <a href="#HTML_TEXT_NODE">HTML_TEXT_NODE</a></pre><pre class="programlisting">void <a href="#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding, <br /> int format)</pre>
+<pre class="programlisting">void <a href="#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding)</pre>
+<pre class="programlisting">int <a href="#htmlDocDump">htmlDocDump</a> (FILE * f, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#htmlDocDumpMemory">htmlDocDumpMemory</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br /> int * size)</pre>
+<pre class="programlisting">void <a href="#htmlDocDumpMemoryFormat">htmlDocDumpMemoryFormat</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br /> int * size, <br /> int format)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#htmlGetMetaEncoding">htmlGetMetaEncoding</a> (<a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#htmlIsBooleanAttr">htmlIsBooleanAttr</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlNewDoc">htmlNewDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlNewDocNoDtD">htmlNewDocNoDtD</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID)</pre>
+<pre class="programlisting">int <a href="#htmlNodeDump">htmlNodeDump</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#htmlNodeDumpFile">htmlNodeDumpFile</a> (FILE * out, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting">int <a href="#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a> (FILE * out, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const char * encoding, <br /> int format)</pre>
+<pre class="programlisting">void <a href="#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const char * encoding, <br /> int format)</pre>
+<pre class="programlisting">void <a href="#htmlNodeDumpOutput">htmlNodeDumpOutput</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const char * encoding)</pre>
+<pre class="programlisting">int <a href="#htmlSaveFile">htmlSaveFile</a> (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)</pre>
+<pre class="programlisting">int <a href="#htmlSaveFileEnc">htmlSaveFileEnc</a> (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding)</pre>
+<pre class="programlisting">int <a href="#htmlSaveFileFormat">htmlSaveFileFormat</a> (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding, <br /> int format)</pre>
+<pre class="programlisting">int <a href="#htmlSetMetaEncoding">htmlSetMetaEncoding</a> (<a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * encoding)</pre>
+<h2>Description</h2>
+<h3><a name="HTML_COMMENT_NODE" id="HTML_COMMENT_NODE"></a>Macro: HTML_COMMENT_NODE</h3><pre>#define HTML_COMMENT_NODE</pre><p>Macro. A <a href="libxml-SAX.html#comment">comment</a> in a HTML document is really implemented the same way as a <a href="libxml-SAX.html#comment">comment</a> in an XML document.</p>
+<h3><a name="HTML_ENTITY_REF_NODE" id="HTML_ENTITY_REF_NODE"></a>Macro: HTML_ENTITY_REF_NODE</h3><pre>#define HTML_ENTITY_REF_NODE</pre><p>Macro. An entity <a href="libxml-SAX.html#reference">reference</a> in a HTML document is really implemented the same way as an entity <a href="libxml-SAX.html#reference">reference</a> in an XML document.</p>
+<h3><a name="HTML_PI_NODE" id="HTML_PI_NODE"></a>Macro: HTML_PI_NODE</h3><pre>#define HTML_PI_NODE</pre><p>Macro. A processing instruction in a HTML document is really implemented the same way as a processing instruction in an XML document.</p>
+<h3><a name="HTML_PRESERVE_NODE" id="HTML_PRESERVE_NODE"></a>Macro: HTML_PRESERVE_NODE</h3><pre>#define HTML_PRESERVE_NODE</pre><p>Macro. A preserved node in a HTML document is really implemented the same way as a CDATA section in an XML document.</p>
+<h3><a name="HTML_TEXT_NODE" id="HTML_TEXT_NODE"></a>Macro: HTML_TEXT_NODE</h3><pre>#define HTML_TEXT_NODE</pre><p>Macro. A text node in a HTML document is really implemented the same way as a text node in an XML document.</p>
+<h3><a name="htmlDocContentDumpFormatOutput" id="htmlDocContentDumpFormatOutput"></a>Function: htmlDocContentDumpFormatOutput</h3><pre class="programlisting">void htmlDocContentDumpFormatOutput (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding, <br /> int format)<br />
+</pre><p>Dump an HTML document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the HTML buffer output</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding string</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr></tbody></table></div><h3><a name="htmlDocContentDumpOutput" id="htmlDocContentDumpOutput"></a>Function: htmlDocContentDumpOutput</h3><pre class="programlisting">void htmlDocContentDumpOutput (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding)<br />
+</pre><p>Dump an HTML document. Formatting return/spaces are added.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the HTML buffer output</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding string</td></tr></tbody></table></div><h3><a name="htmlDocDump" id="htmlDocDump"></a>Function: htmlDocDump</h3><pre class="programlisting">int htmlDocDump (FILE * f, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br />
+</pre><p>Dump an HTML document to an open FILE.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the FILE*</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="htmlDocDumpMemory" id="htmlDocDumpMemory"></a>Function: htmlDocDumpMemory</h3><pre class="programlisting">void htmlDocDumpMemory (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br /> int * size)<br />
+</pre><p>Dump an HTML document in memory and return the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * and it's size. It's up to the caller to free the memory.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>OUT: the memory pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>OUT: the memory length</td></tr></tbody></table></div><h3><a name="htmlDocDumpMemoryFormat" id="htmlDocDumpMemoryFormat"></a>Function: htmlDocDumpMemoryFormat</h3><pre class="programlisting">void htmlDocDumpMemoryFormat (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br /> int * size, <br /> int format)<br />
+</pre><p>Dump an HTML document in memory and return the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * and it's size. It's up to the caller to free the memory.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>OUT: the memory pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>OUT: the memory length</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr></tbody></table></div><h3><a name="htmlGetMetaEncoding" id="htmlGetMetaEncoding"></a>Function: htmlGetMetaEncoding</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * htmlGetMetaEncoding (<a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc)<br />
+</pre><p>Encoding definition lookup in the Meta tags</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current encoding as flagged in the HTML source</td></tr></tbody></table></div><h3><a name="htmlIsBooleanAttr" id="htmlIsBooleanAttr"></a>Function: htmlIsBooleanAttr</h3><pre class="programlisting">int htmlIsBooleanAttr (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Determine if a given <a href="libxml-SAX.html#attribute">attribute</a> is a boolean attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the <a href="libxml-SAX.html#attribute">attribute</a> to check</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>false if the <a href="libxml-SAX.html#attribute">attribute</a> is not boolean, true otherwise.</td></tr></tbody></table></div><h3><a name="htmlNewDoc" id="htmlNewDoc"></a>Function: htmlNewDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlNewDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID)<br />
+</pre><p>Creates a new HTML document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>URI for the dtd, or NULL</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID of the DTD, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new document</td></tr></tbody></table></div><h3><a name="htmlNewDocNoDtD" id="htmlNewDocNoDtD"></a>Function: htmlNewDocNoDtD</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlNewDocNoDtD (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID)<br />
+</pre><p>Creates a new HTML document without a DTD node if @URI and @ExternalID are NULL</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>URI for the dtd, or NULL</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID of the DTD, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new document, do not initialize the DTD if not provided</td></tr></tbody></table></div><h3><a name="htmlNodeDump" id="htmlNodeDump"></a>Function: htmlNodeDump</h3><pre class="programlisting">int htmlNodeDump (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns are added.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the HTML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error</td></tr></tbody></table></div><h3><a name="htmlNodeDumpFile" id="htmlNodeDumpFile"></a>Function: htmlNodeDumpFile</h3><pre class="programlisting">void htmlNodeDumpFile (FILE * out, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns are added.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the FILE pointer</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr></tbody></table></div><h3><a name="htmlNodeDumpFileFormat" id="htmlNodeDumpFileFormat"></a>Function: htmlNodeDumpFileFormat</h3><pre class="programlisting">int htmlNodeDumpFileFormat (FILE * out, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const char * encoding, <br /> int format)<br />
+</pre><p>Dump an HTML node, recursive behaviour,children are printed too. TODO: if encoding == NULL try to save in the doc encoding</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the FILE pointer</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="htmlNodeDumpFormatOutput" id="htmlNodeDumpFormatOutput"></a>Function: htmlNodeDumpFormatOutput</h3><pre class="programlisting">void htmlNodeDumpFormatOutput (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const char * encoding, <br /> int format)<br />
+</pre><p>Dump an HTML node, recursive behaviour,children are printed too.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the HTML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding string</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr></tbody></table></div><h3><a name="htmlNodeDumpOutput" id="htmlNodeDumpOutput"></a>Function: htmlNodeDumpOutput</h3><pre class="programlisting">void htmlNodeDumpOutput (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const char * encoding)<br />
+</pre><p>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns/spaces are added.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the HTML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding string</td></tr></tbody></table></div><h3><a name="htmlSaveFile" id="htmlSaveFile"></a>Function: htmlSaveFile</h3><pre class="programlisting">int htmlSaveFile (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br />
+</pre><p>Dump an HTML document to a file. If @filename is "-" the stdout file is used.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename (or URL)</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="htmlSaveFileEnc" id="htmlSaveFileEnc"></a>Function: htmlSaveFileEnc</h3><pre class="programlisting">int htmlSaveFileEnc (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding)<br />
+</pre><p>Dump an HTML document to a file using a given encoding and formatting returns/spaces are added.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="htmlSaveFileFormat" id="htmlSaveFileFormat"></a>Function: htmlSaveFileFormat</h3><pre class="programlisting">int htmlSaveFileFormat (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding, <br /> int format)<br />
+</pre><p>Dump an HTML document to a file using a given encoding.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="htmlSetMetaEncoding" id="htmlSetMetaEncoding"></a>Function: htmlSetMetaEncoding</h3><pre class="programlisting">int htmlSetMetaEncoding (<a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * encoding)<br />
+</pre><p>Sets the current encoding in the Meta tags NOTE: this will not change the document content encoding, just the META flag associated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-SAX.html b/libxml2-2.9.10/doc/html/libxml-SAX.html
new file mode 100644
index 0000000..d23c73a
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-SAX.html
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module SAX from libxml2</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></h1><h2>Module SAX from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-HTMLtree.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-HTMLtree.html">HTMLtree</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-SAX2.html">SAX2</a></th><td><a accesskey="n" href="libxml-SAX2.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><h2 style="font-weight:bold;color:red;text-align:center">This module is deprecated</h2><p>DEPRECATED set of SAX version 1 interfaces used to build the DOM tree. </p><div class="deprecated"><h2>Table of Contents</h2><pre class="programlisting">void <a href="#comment">comment</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#checkNamespace">checkNamespace</a> (void * ctx, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespace)</pre>
+<pre class="programlisting">int <a href="#getColumnNumber">getColumnNumber</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#entityDecl">entityDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">void <a href="#attribute">attribute</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#getNamespace">getNamespace</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#setDocumentLocator">setDocumentLocator</a> (void * ctx, <br /> <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc)</pre>
+<pre class="programlisting">void <a href="#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a> (<a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr, <br /> int warning)</pre>
+<pre class="programlisting">void <a href="#ignorableWhitespace">ignorableWhitespace</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#hasExternalSubset">hasExternalSubset</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#unparsedEntityDecl">unparsedEntityDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * notationName)</pre>
+<pre class="programlisting">void <a href="#globalNamespace">globalNamespace</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)</pre>
+<pre class="programlisting">int <a href="#hasInternalSubset">hasInternalSubset</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#reference">reference</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#notationDecl">notationDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#getSystemId">getSystemId</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#externalSubset">externalSubset</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#resolveEntity">resolveEntity</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)</pre>
+<pre class="programlisting">void <a href="#startDocument">startDocument</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#setNamespace">setNamespace</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#cdataBlock">cdataBlock</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int len)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#getPublicId">getPublicId</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#inithtmlDefaultSAXHandler">inithtmlDefaultSAXHandler</a> (<a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr)</pre>
+<pre class="programlisting">void <a href="#processingInstruction">processingInstruction</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * data)</pre>
+<pre class="programlisting">void <a href="#endElement">endElement</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#namespaceDecl">namespaceDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)</pre>
+<pre class="programlisting">void <a href="#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a> (<a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#getEntity">getEntity</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#characters">characters</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)</pre>
+<pre class="programlisting">void <a href="#elementDecl">elementDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)</pre>
+<pre class="programlisting">void <a href="#startElement">startElement</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** atts)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#getParameterEntity">getParameterEntity</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#attributeDecl">attributeDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> int type, <br /> int def, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)</pre>
+<pre class="programlisting">int <a href="#isStandalone">isStandalone</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#internalSubset">internalSubset</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
+<pre class="programlisting">void <a href="#endDocument">endDocument</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#getLineNumber">getLineNumber</a> (void * ctx)</pre>
+<h2>Description</h2>
+<h3><a name="comment" id="comment"></a>Function: comment</h3><pre class="programlisting">void comment (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>A <a href="libxml-SAX.html#comment">comment</a> has been parsed. DEPRECATED: use xmlSAX2Comment()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml-SAX.html#comment">comment</a> content</td></tr></tbody></table></div><h3><a name="checkNamespace" id="checkNamespace"></a>Function: checkNamespace</h3><pre class="programlisting">int checkNamespace (void * ctx, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespace)<br />
+</pre><p>Check that the current element namespace is the same as the one read upon parsing. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>namespace</tt></i>:</span></td><td>the namespace to check against</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="getColumnNumber" id="getColumnNumber"></a>Function: getColumnNumber</h3><pre class="programlisting">int getColumnNumber (void * ctx)<br />
+</pre><p>Provide the column number of the current parsing point. DEPRECATED: use xmlSAX2GetColumnNumber()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int</td></tr></tbody></table></div><h3><a name="entityDecl" id="entityDecl"></a>Function: entityDecl</h3><pre class="programlisting">void entityDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>An entity definition has been parsed DEPRECATED: use xmlSAX2EntityDecl()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity value (without processing).</td></tr></tbody></table></div><h3><a name="attribute" id="attribute"></a>Function: attribute</h3><pre class="programlisting">void attribute (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Handle an <a href="libxml-SAX.html#attribute">attribute</a> that has been read by the parser. The default handling is to convert the <a href="libxml-SAX.html#attribute">attribute</a> into an DOM subtree and past it in a new <a href="libxml-tree.html#xmlAttr">xmlAttr</a> element added to the element. DEPRECATED: use xmlSAX2Attribute()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>The <a href="libxml-SAX.html#attribute">attribute</a> name, including namespace prefix</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>The <a href="libxml-SAX.html#attribute">attribute</a> value</td></tr></tbody></table></div><h3><a name="getNamespace" id="getNamespace"></a>Function: getNamespace</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> getNamespace (void * ctx)<br />
+</pre><p>Get the current element namespace. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> or NULL if none</td></tr></tbody></table></div><h3><a name="setDocumentLocator" id="setDocumentLocator"></a>Function: setDocumentLocator</h3><pre class="programlisting">void setDocumentLocator (void * ctx, <br /> <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc)<br />
+</pre><p>Receive the document locator at startup, actually <a href="libxml-globals.html#xmlDefaultSAXLocator">xmlDefaultSAXLocator</a> Everything is available on the context, so this is useless in our case. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>loc</tt></i>:</span></td><td>A SAX Locator</td></tr></tbody></table></div><h3><a name="initxmlDefaultSAXHandler" id="initxmlDefaultSAXHandler"></a>Function: initxmlDefaultSAXHandler</h3><pre class="programlisting">void initxmlDefaultSAXHandler (<a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr, <br /> int warning)<br />
+</pre><p>Initialize the default XML SAX version 1 handler DEPRECATED: use xmlSAX2InitDefaultSAXHandler() for the new SAX2 blocks</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr><tr><td><span class="term"><i><tt>warning</tt></i>:</span></td><td>flag if non-zero sets the handler warning procedure</td></tr></tbody></table></div><h3><a name="ignorableWhitespace" id="ignorableWhitespace"></a>Function: ignorableWhitespace</h3><pre class="programlisting">void ignorableWhitespace (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)<br />
+</pre><p>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use <a href="libxml-SAX.html#characters">characters</a> DEPRECATED: use xmlSAX2IgnorableWhitespace()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div><h3><a name="hasExternalSubset" id="hasExternalSubset"></a>Function: hasExternalSubset</h3><pre class="programlisting">int hasExternalSubset (void * ctx)<br />
+</pre><p>Does this document has an external subset DEPRECATED: use xmlSAX2HasExternalSubset()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div><h3><a name="unparsedEntityDecl" id="unparsedEntityDecl"></a>Function: unparsedEntityDecl</h3><pre class="programlisting">void unparsedEntityDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * notationName)<br />
+</pre><p>What to do when an unparsed entity declaration is parsed DEPRECATED: use xmlSAX2UnparsedEntityDecl()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the entity</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i>:</span></td><td>the name of the notation</td></tr></tbody></table></div><h3><a name="globalNamespace" id="globalNamespace"></a>Function: globalNamespace</h3><pre class="programlisting">void globalNamespace (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br />
+</pre><p>An old global namespace has been parsed. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the namespace associated URN</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix</td></tr></tbody></table></div><h3><a name="hasInternalSubset" id="hasInternalSubset"></a>Function: hasInternalSubset</h3><pre class="programlisting">int hasInternalSubset (void * ctx)<br />
+</pre><p>Does this document has an internal subset DEPRECATED: use xmlSAX2HasInternalSubset()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div><h3><a name="reference" id="reference"></a>Function: reference</h3><pre class="programlisting">void reference (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>called when an entity <a href="libxml-SAX.html#reference">reference</a> is detected. DEPRECATED: use xmlSAX2Reference()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr></tbody></table></div><h3><a name="notationDecl" id="notationDecl"></a>Function: notationDecl</h3><pre class="programlisting">void notationDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)<br />
+</pre><p>What to do when a notation declaration has been parsed. DEPRECATED: use xmlSAX2NotationDecl()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the notation</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr></tbody></table></div><h3><a name="getSystemId" id="getSystemId"></a>Function: getSystemId</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * getSystemId (void * ctx)<br />
+</pre><p>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd DEPRECATED: use xmlSAX2GetSystemId()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr></tbody></table></div><h3><a name="externalSubset" id="externalSubset"></a>Function: externalSubset</h3><pre class="programlisting">void externalSubset (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
+</pre><p>Callback on external subset declaration. DEPRECATED: use xmlSAX2ExternalSubset()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div><h3><a name="resolveEntity" id="resolveEntity"></a>Function: resolveEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> resolveEntity (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)<br />
+</pre><p>The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it's own entity resolution routine DEPRECATED: use xmlSAX2ResolveEntity()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> if inlined or NULL for DOM behaviour.</td></tr></tbody></table></div><h3><a name="startDocument" id="startDocument"></a>Function: startDocument</h3><pre class="programlisting">void startDocument (void * ctx)<br />
+</pre><p>called when the document start being processed. DEPRECATED: use xmlSAX2StartDocument()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div><h3><a name="setNamespace" id="setNamespace"></a>Function: setNamespace</h3><pre class="programlisting">void setNamespace (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Set the current element namespace. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the namespace prefix</td></tr></tbody></table></div><h3><a name="cdataBlock" id="cdataBlock"></a>Function: cdataBlock</h3><pre class="programlisting">void cdataBlock (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int len)<br />
+</pre><p>called when a pcdata block has been parsed DEPRECATED: use xmlSAX2CDataBlock()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>The pcdata content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the block length</td></tr></tbody></table></div><h3><a name="getPublicId" id="getPublicId"></a>Function: getPublicId</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * getPublicId (void * ctx)<br />
+</pre><p>Provides the public ID e.g. "-//SGMLSOURCE//DTD DEMO//EN" DEPRECATED: use xmlSAX2GetPublicId()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr></tbody></table></div><h3><a name="inithtmlDefaultSAXHandler" id="inithtmlDefaultSAXHandler"></a>Function: inithtmlDefaultSAXHandler</h3><pre class="programlisting">void inithtmlDefaultSAXHandler (<a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr)<br />
+</pre><p>Initialize the default HTML SAX version 1 handler DEPRECATED: use xmlSAX2InitHtmlDefaultSAXHandler() for the new SAX2 blocks</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr></tbody></table></div><h3><a name="processingInstruction" id="processingInstruction"></a>Function: processingInstruction</h3><pre class="programlisting">void processingInstruction (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * data)<br />
+</pre><p>A processing instruction has been parsed. DEPRECATED: use xmlSAX2ProcessingInstruction()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the target name</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the PI data's</td></tr></tbody></table></div><h3><a name="endElement" id="endElement"></a>Function: endElement</h3><pre class="programlisting">void endElement (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>called when the end of an element has been detected. DEPRECATED: use xmlSAX2EndElement()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The element name</td></tr></tbody></table></div><h3><a name="namespaceDecl" id="namespaceDecl"></a>Function: namespaceDecl</h3><pre class="programlisting">void namespaceDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br />
+</pre><p>A namespace has been parsed. DEPRECATED</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the namespace associated URN</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix</td></tr></tbody></table></div><h3><a name="initdocbDefaultSAXHandler" id="initdocbDefaultSAXHandler"></a>Function: initdocbDefaultSAXHandler</h3><pre class="programlisting">void initdocbDefaultSAXHandler (<a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * hdlr)<br />
+</pre><p>Initialize the default DocBook SAX version 1 handler DEPRECATED: use xmlSAX2InitDocbDefaultSAXHandler() for the new SAX2 blocks</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr></tbody></table></div><h3><a name="getEntity" id="getEntity"></a>Function: getEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> getEntity (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Get an entity by name DEPRECATED: use xmlSAX2GetEntity()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div><h3><a name="characters" id="characters"></a>Function: characters</h3><pre class="programlisting">void characters (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)<br />
+</pre><p>receiving some chars from the parser. DEPRECATED: use xmlSAX2Characters()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div><h3><a name="elementDecl" id="elementDecl"></a>Function: elementDecl</h3><pre class="programlisting">void elementDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)<br />
+</pre><p>An element definition has been parsed DEPRECATED: use xmlSAX2ElementDecl()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the element type</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the element value tree</td></tr></tbody></table></div><h3><a name="startElement" id="startElement"></a>Function: startElement</h3><pre class="programlisting">void startElement (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** atts)<br />
+</pre><p>called when an opening tag has been processed. DEPRECATED: use xmlSAX2StartElement()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>The element name, including namespace prefix</td></tr><tr><td><span class="term"><i><tt>atts</tt></i>:</span></td><td>An array of name/value attributes pairs, NULL terminated</td></tr></tbody></table></div><h3><a name="getParameterEntity" id="getParameterEntity"></a>Function: getParameterEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> getParameterEntity (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Get a parameter entity by name DEPRECATED: use xmlSAX2GetParameterEntity()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div><h3><a name="attributeDecl" id="attributeDecl"></a>Function: attributeDecl</h3><pre class="programlisting">void attributeDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> int type, <br /> int def, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)<br />
+</pre><p>An <a href="libxml-SAX.html#attribute">attribute</a> definition has been parsed DEPRECATED: use xmlSAX2AttributeDecl()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> type</td></tr><tr><td><span class="term"><i><tt>def</tt></i>:</span></td><td>the type of default value</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> default value</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the tree of enumerated value set</td></tr></tbody></table></div><h3><a name="isStandalone" id="isStandalone"></a>Function: isStandalone</h3><pre class="programlisting">int isStandalone (void * ctx)<br />
+</pre><p>Is this document tagged standalone ? DEPRECATED: use xmlSAX2IsStandalone()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div><h3><a name="internalSubset" id="internalSubset"></a>Function: internalSubset</h3><pre class="programlisting">void internalSubset (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
+</pre><p>Callback on internal subset declaration. DEPRECATED: use xmlSAX2InternalSubset()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div><h3><a name="endDocument" id="endDocument"></a>Function: endDocument</h3><pre class="programlisting">void endDocument (void * ctx)<br />
+</pre><p>called when the document end has been detected. DEPRECATED: use xmlSAX2EndDocument()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div><h3><a name="getLineNumber" id="getLineNumber"></a>Function: getLineNumber</h3><pre class="programlisting">int getLineNumber (void * ctx)<br />
+</pre><p>Provide the line number of the current parsing point. DEPRECATED: use xmlSAX2GetLineNumber()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int</td></tr></tbody></table></div></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-SAX2.html b/libxml2-2.9.10/doc/html/libxml-SAX2.html
new file mode 100644
index 0000000..bdcb11d
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-SAX2.html
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module SAX2 from libxml2</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></h1><h2>Module SAX2 from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-SAX.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-SAX.html">SAX</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-c14n.html">c14n</a></th><td><a accesskey="n" href="libxml-c14n.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>those are the default SAX2 interfaces used by the library when building DOM tree. </p><h2>Table of Contents</h2><pre class="programlisting">void <a href="#docbDefaultSAXHandlerInit">docbDefaultSAXHandlerInit</a> (void)</pre>
+<pre class="programlisting">void <a href="#htmlDefaultSAXHandlerInit">htmlDefaultSAXHandlerInit</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlDefaultSAXHandlerInit">xmlDefaultSAXHandlerInit</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2AttributeDecl">xmlSAX2AttributeDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> int type, <br /> int def, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2CDataBlock">xmlSAX2CDataBlock</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int len)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2Characters">xmlSAX2Characters</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2Comment">xmlSAX2Comment</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2ElementDecl">xmlSAX2ElementDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2EndDocument">xmlSAX2EndDocument</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2EndElement">xmlSAX2EndElement</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2EntityDecl">xmlSAX2EntityDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2ExternalSubset">xmlSAX2ExternalSubset</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
+<pre class="programlisting">int <a href="#xmlSAX2GetColumnNumber">xmlSAX2GetColumnNumber</a> (void * ctx)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlSAX2GetEntity">xmlSAX2GetEntity</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlSAX2GetLineNumber">xmlSAX2GetLineNumber</a> (void * ctx)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlSAX2GetParameterEntity">xmlSAX2GetParameterEntity</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSAX2GetPublicId">xmlSAX2GetPublicId</a> (void * ctx)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlSAX2HasExternalSubset">xmlSAX2HasExternalSubset</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlSAX2HasInternalSubset">xmlSAX2HasInternalSubset</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a> (<a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr, <br /> int warning)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2InitDocbDefaultSAXHandler">xmlSAX2InitDocbDefaultSAXHandler</a> (<a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2InitHtmlDefaultSAXHandler">xmlSAX2InitHtmlDefaultSAXHandler</a> (<a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2InternalSubset">xmlSAX2InternalSubset</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
+<pre class="programlisting">int <a href="#xmlSAX2IsStandalone">xmlSAX2IsStandalone</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2NotationDecl">xmlSAX2NotationDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2ProcessingInstruction">xmlSAX2ProcessingInstruction</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * data)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2Reference">xmlSAX2Reference</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a> (void * ctx, <br /> <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2StartDocument">xmlSAX2StartDocument</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2StartElement">xmlSAX2StartElement</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** atts)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> int nb_namespaces, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces, <br /> int nb_attributes, <br /> int nb_defaulted, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** attributes)</pre>
+<pre class="programlisting">void <a href="#xmlSAX2UnparsedEntityDecl">xmlSAX2UnparsedEntityDecl</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * notationName)</pre>
+<pre class="programlisting">int <a href="#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a> (int version)</pre>
+<pre class="programlisting">int <a href="#xmlSAXVersion">xmlSAXVersion</a> (<a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr, <br /> int version)</pre>
+<h2>Description</h2>
+<h3><a name="docbDefaultSAXHandlerInit" id="docbDefaultSAXHandlerInit"></a>Function: docbDefaultSAXHandlerInit</h3><pre class="programlisting">void docbDefaultSAXHandlerInit (void)<br />
+</pre><p>Initialize the default SAX handler</p>
+<h3><a name="htmlDefaultSAXHandlerInit" id="htmlDefaultSAXHandlerInit"></a>Function: htmlDefaultSAXHandlerInit</h3><pre class="programlisting">void htmlDefaultSAXHandlerInit (void)<br />
+</pre><p>Initialize the default SAX handler</p>
+<h3><a name="xmlDefaultSAXHandlerInit" id="xmlDefaultSAXHandlerInit"></a>Function: xmlDefaultSAXHandlerInit</h3><pre class="programlisting">void xmlDefaultSAXHandlerInit (void)<br />
+</pre><p>Initialize the default SAX2 handler</p>
+<h3><a name="xmlSAX2AttributeDecl" id="xmlSAX2AttributeDecl"></a>Function: xmlSAX2AttributeDecl</h3><pre class="programlisting">void xmlSAX2AttributeDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> int type, <br /> int def, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)<br />
+</pre><p>An <a href="libxml-SAX.html#attribute">attribute</a> definition has been parsed</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> type</td></tr><tr><td><span class="term"><i><tt>def</tt></i>:</span></td><td>the type of default value</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> default value</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the tree of enumerated value set</td></tr></tbody></table></div><h3><a name="xmlSAX2CDataBlock" id="xmlSAX2CDataBlock"></a>Function: xmlSAX2CDataBlock</h3><pre class="programlisting">void xmlSAX2CDataBlock (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int len)<br />
+</pre><p>called when a pcdata block has been parsed</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>The pcdata content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the block length</td></tr></tbody></table></div><h3><a name="xmlSAX2Characters" id="xmlSAX2Characters"></a>Function: xmlSAX2Characters</h3><pre class="programlisting">void xmlSAX2Characters (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)<br />
+</pre><p>receiving some chars from the parser.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div><h3><a name="xmlSAX2Comment" id="xmlSAX2Comment"></a>Function: xmlSAX2Comment</h3><pre class="programlisting">void xmlSAX2Comment (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>A <a href="libxml-SAX2.html#xmlSAX2Comment">xmlSAX2Comment</a> has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml-SAX2.html#xmlSAX2Comment">xmlSAX2Comment</a> content</td></tr></tbody></table></div><h3><a name="xmlSAX2ElementDecl" id="xmlSAX2ElementDecl"></a>Function: xmlSAX2ElementDecl</h3><pre class="programlisting">void xmlSAX2ElementDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)<br />
+</pre><p>An element definition has been parsed</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the element type</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the element value tree</td></tr></tbody></table></div><h3><a name="xmlSAX2EndDocument" id="xmlSAX2EndDocument"></a>Function: xmlSAX2EndDocument</h3><pre class="programlisting">void xmlSAX2EndDocument (void * ctx)<br />
+</pre><p>called when the document end has been detected.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div><h3><a name="xmlSAX2EndElement" id="xmlSAX2EndElement"></a>Function: xmlSAX2EndElement</h3><pre class="programlisting">void xmlSAX2EndElement (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>called when the end of an element has been detected.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The element name</td></tr></tbody></table></div><h3><a name="xmlSAX2EndElementNs" id="xmlSAX2EndElementNs"></a>Function: xmlSAX2EndElementNs</h3><pre class="programlisting">void xmlSAX2EndElementNs (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI)<br />
+</pre><p>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>localname</tt></i>:</span></td><td>the local name of the element</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the element namespace prefix if available</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace name if available</td></tr></tbody></table></div><h3><a name="xmlSAX2EntityDecl" id="xmlSAX2EntityDecl"></a>Function: xmlSAX2EntityDecl</h3><pre class="programlisting">void xmlSAX2EntityDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>An entity definition has been parsed</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity value (without processing).</td></tr></tbody></table></div><h3><a name="xmlSAX2ExternalSubset" id="xmlSAX2ExternalSubset"></a>Function: xmlSAX2ExternalSubset</h3><pre class="programlisting">void xmlSAX2ExternalSubset (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
+</pre><p>Callback on external subset declaration.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div><h3><a name="xmlSAX2GetColumnNumber" id="xmlSAX2GetColumnNumber"></a>Function: xmlSAX2GetColumnNumber</h3><pre class="programlisting">int xmlSAX2GetColumnNumber (void * ctx)<br />
+</pre><p>Provide the column number of the current parsing point.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int</td></tr></tbody></table></div><h3><a name="xmlSAX2GetEntity" id="xmlSAX2GetEntity"></a>Function: xmlSAX2GetEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlSAX2GetEntity (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Get an entity by name</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div><h3><a name="xmlSAX2GetLineNumber" id="xmlSAX2GetLineNumber"></a>Function: xmlSAX2GetLineNumber</h3><pre class="programlisting">int xmlSAX2GetLineNumber (void * ctx)<br />
+</pre><p>Provide the line number of the current parsing point.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int</td></tr></tbody></table></div><h3><a name="xmlSAX2GetParameterEntity" id="xmlSAX2GetParameterEntity"></a>Function: xmlSAX2GetParameterEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlSAX2GetParameterEntity (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Get a parameter entity by name</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div><h3><a name="xmlSAX2GetPublicId" id="xmlSAX2GetPublicId"></a>Function: xmlSAX2GetPublicId</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSAX2GetPublicId (void * ctx)<br />
+</pre><p>Provides the public ID e.g. "-//SGMLSOURCE//DTD DEMO//EN"</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr></tbody></table></div><h3><a name="xmlSAX2GetSystemId" id="xmlSAX2GetSystemId"></a>Function: xmlSAX2GetSystemId</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSAX2GetSystemId (void * ctx)<br />
+</pre><p>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr></tbody></table></div><h3><a name="xmlSAX2HasExternalSubset" id="xmlSAX2HasExternalSubset"></a>Function: xmlSAX2HasExternalSubset</h3><pre class="programlisting">int xmlSAX2HasExternalSubset (void * ctx)<br />
+</pre><p>Does this document has an external subset</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div><h3><a name="xmlSAX2HasInternalSubset" id="xmlSAX2HasInternalSubset"></a>Function: xmlSAX2HasInternalSubset</h3><pre class="programlisting">int xmlSAX2HasInternalSubset (void * ctx)<br />
+</pre><p>Does this document has an internal subset</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div><h3><a name="xmlSAX2IgnorableWhitespace" id="xmlSAX2IgnorableWhitespace"></a>Function: xmlSAX2IgnorableWhitespace</h3><pre class="programlisting">void xmlSAX2IgnorableWhitespace (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)<br />
+</pre><p>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use <a href="libxml-SAX2.html#xmlSAX2Characters">xmlSAX2Characters</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div><h3><a name="xmlSAX2InitDefaultSAXHandler" id="xmlSAX2InitDefaultSAXHandler"></a>Function: xmlSAX2InitDefaultSAXHandler</h3><pre class="programlisting">void xmlSAX2InitDefaultSAXHandler (<a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr, <br /> int warning)<br />
+</pre><p>Initialize the default XML SAX2 handler</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr><tr><td><span class="term"><i><tt>warning</tt></i>:</span></td><td>flag if non-zero sets the handler warning procedure</td></tr></tbody></table></div><h3><a name="xmlSAX2InitDocbDefaultSAXHandler" id="xmlSAX2InitDocbDefaultSAXHandler"></a>Function: xmlSAX2InitDocbDefaultSAXHandler</h3><pre class="programlisting">void xmlSAX2InitDocbDefaultSAXHandler (<a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr)<br />
+</pre><p>Initialize the default DocBook SAX2 handler</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr></tbody></table></div><h3><a name="xmlSAX2InitHtmlDefaultSAXHandler" id="xmlSAX2InitHtmlDefaultSAXHandler"></a>Function: xmlSAX2InitHtmlDefaultSAXHandler</h3><pre class="programlisting">void xmlSAX2InitHtmlDefaultSAXHandler (<a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr)<br />
+</pre><p>Initialize the default HTML SAX2 handler</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr></tbody></table></div><h3><a name="xmlSAX2InternalSubset" id="xmlSAX2InternalSubset"></a>Function: xmlSAX2InternalSubset</h3><pre class="programlisting">void xmlSAX2InternalSubset (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
+</pre><p>Callback on internal subset declaration.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div><h3><a name="xmlSAX2IsStandalone" id="xmlSAX2IsStandalone"></a>Function: xmlSAX2IsStandalone</h3><pre class="programlisting">int xmlSAX2IsStandalone (void * ctx)<br />
+</pre><p>Is this document tagged standalone ?</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div><h3><a name="xmlSAX2NotationDecl" id="xmlSAX2NotationDecl"></a>Function: xmlSAX2NotationDecl</h3><pre class="programlisting">void xmlSAX2NotationDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)<br />
+</pre><p>What to do when a notation declaration has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the notation</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr></tbody></table></div><h3><a name="xmlSAX2ProcessingInstruction" id="xmlSAX2ProcessingInstruction"></a>Function: xmlSAX2ProcessingInstruction</h3><pre class="programlisting">void xmlSAX2ProcessingInstruction (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * data)<br />
+</pre><p>A processing instruction has been parsed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the target name</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the PI data's</td></tr></tbody></table></div><h3><a name="xmlSAX2Reference" id="xmlSAX2Reference"></a>Function: xmlSAX2Reference</h3><pre class="programlisting">void xmlSAX2Reference (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>called when an entity <a href="libxml-SAX2.html#xmlSAX2Reference">xmlSAX2Reference</a> is detected.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr></tbody></table></div><h3><a name="xmlSAX2ResolveEntity" id="xmlSAX2ResolveEntity"></a>Function: xmlSAX2ResolveEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlSAX2ResolveEntity (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)<br />
+</pre><p>The entity loader, to control the loading of external entities, the application can either: - override this xmlSAX2ResolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it's own entity resolution routine</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> if inlined or NULL for DOM behaviour.</td></tr></tbody></table></div><h3><a name="xmlSAX2SetDocumentLocator" id="xmlSAX2SetDocumentLocator"></a>Function: xmlSAX2SetDocumentLocator</h3><pre class="programlisting">void xmlSAX2SetDocumentLocator (void * ctx, <br /> <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc)<br />
+</pre><p>Receive the document locator at startup, actually <a href="libxml-globals.html#xmlDefaultSAXLocator">xmlDefaultSAXLocator</a> Everything is available on the context, so this is useless in our case.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>loc</tt></i>:</span></td><td>A SAX Locator</td></tr></tbody></table></div><h3><a name="xmlSAX2StartDocument" id="xmlSAX2StartDocument"></a>Function: xmlSAX2StartDocument</h3><pre class="programlisting">void xmlSAX2StartDocument (void * ctx)<br />
+</pre><p>called when the document start being processed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div><h3><a name="xmlSAX2StartElement" id="xmlSAX2StartElement"></a>Function: xmlSAX2StartElement</h3><pre class="programlisting">void xmlSAX2StartElement (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** atts)<br />
+</pre><p>called when an opening tag has been processed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>The element name, including namespace prefix</td></tr><tr><td><span class="term"><i><tt>atts</tt></i>:</span></td><td>An array of name/value attributes pairs, NULL terminated</td></tr></tbody></table></div><h3><a name="xmlSAX2StartElementNs" id="xmlSAX2StartElementNs"></a>Function: xmlSAX2StartElementNs</h3><pre class="programlisting">void xmlSAX2StartElementNs (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> int nb_namespaces, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces, <br /> int nb_attributes, <br /> int nb_defaulted, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** attributes)<br />
+</pre><p>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>localname</tt></i>:</span></td><td>the local name of the element</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the element namespace prefix if available</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace name if available</td></tr><tr><td><span class="term"><i><tt>nb_namespaces</tt></i>:</span></td><td>number of namespace definitions on that node</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>pointer to the array of prefix/URI pairs namespace definitions</td></tr><tr><td><span class="term"><i><tt>nb_attributes</tt></i>:</span></td><td>the number of attributes on that node</td></tr><tr><td><span class="term"><i><tt>nb_defaulted</tt></i>:</span></td><td>the number of defaulted attributes.</td></tr><tr><td><span class="term"><i><tt>attributes</tt></i>:</span></td><td>pointer to the array of (localname/prefix/URI/value/end) <a href="libxml-SAX.html#attribute">attribute</a> values.</td></tr></tbody></table></div><h3><a name="xmlSAX2UnparsedEntityDecl" id="xmlSAX2UnparsedEntityDecl"></a>Function: xmlSAX2UnparsedEntityDecl</h3><pre class="programlisting">void xmlSAX2UnparsedEntityDecl (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * notationName)<br />
+</pre><p>What to do when an unparsed entity declaration is parsed</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the entity</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i>:</span></td><td>the name of the notation</td></tr></tbody></table></div><h3><a name="xmlSAXDefaultVersion" id="xmlSAXDefaultVersion"></a>Function: xmlSAXDefaultVersion</h3><pre class="programlisting">int xmlSAXDefaultVersion (int version)<br />
+</pre><p>Set the default version of SAX used globally by the library. By default, during initialization the default is set to 2. Note that it is generally a better coding style to use xmlSAXVersion() to set up the version explicitly for a given parsing context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>version</tt></i>:</span></td><td>the version, 1 or 2</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous value in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlSAXVersion" id="xmlSAXVersion"></a>Function: xmlSAXVersion</h3><pre class="programlisting">int xmlSAXVersion (<a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> * hdlr, <br /> int version)<br />
+</pre><p>Initialize the default XML SAX handler according to the version</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>hdlr</tt></i>:</span></td><td>the SAX handler</td></tr><tr><td><span class="term"><i><tt>version</tt></i>:</span></td><td>the version, 1 or 2</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-c14n.html b/libxml2-2.9.10/doc/html/libxml-c14n.html
new file mode 100644
index 0000000..d891026
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-c14n.html
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module c14n from libxml2</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></h1><h2>Module c14n from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-SAX2.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-SAX2.html">SAX2</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-catalog.html">catalog</a></th><td><a accesskey="n" href="libxml-catalog.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>the c14n modules provides a "Canonical XML" implementation</p><h2>Table of Contents</h2><pre class="programlisting">Enum <a href="#xmlC14NMode">xmlC14NMode</a>
+</pre><pre class="programlisting">int <a href="#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> int mode, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br /> int with_comments, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr)</pre>
+<pre class="programlisting">int <a href="#xmlC14NDocSave">xmlC14NDocSave</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> int mode, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br /> int with_comments, <br /> const char * filename, <br /> int compression)</pre>
+<pre class="programlisting">int <a href="#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> int mode, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br /> int with_comments, <br /> <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf)</pre>
+<pre class="programlisting">int <a href="#xmlC14NExecute">xmlC14NExecute</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a> is_visible_callback, <br /> void * user_data, <br /> int mode, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br /> int with_comments, <br /> <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf)</pre>
+<pre class="programlisting">Function type: <a href="#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a>
+int <a href="#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a> (void * user_data, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent)
+</pre>
+<h2>Description</h2>
+<h3>Enum <a name="xmlC14NMode" id="xmlC14NMode">xmlC14NMode</a></h3><pre class="programlisting">Enum xmlC14NMode {
+ <a name="XML_C14N_1_0" id="XML_C14N_1_0">XML_C14N_1_0</a> = 0 : Original C14N 1.0 spec
+ <a name="XML_C14N_EXCLUSIVE_1_0" id="XML_C14N_EXCLUSIVE_1_0">XML_C14N_EXCLUSIVE_1_0</a> = 1 : Exclusive C14N 1.0 spec
+ <a name="XML_C14N_1_1" id="XML_C14N_1_1">XML_C14N_1_1</a> = 2 : C14N 1.1 spec
+}
+</pre><h3><a name="xmlC14NDocDumpMemory" id="xmlC14NDocDumpMemory"></a>Function: xmlC14NDocDumpMemory</h3><pre class="programlisting">int xmlC14NDocDumpMemory (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> int mode, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br /> int with_comments, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr)<br />
+</pre><p>Dumps the canonized image of given XML document into memory. For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document for canonization</td></tr><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>the nodes set to be included in the canonized image or NULL if all document nodes should be included</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the c14n mode (see @xmlC14NMode)</td></tr><tr><td><span class="term"><i><tt>inclusive_ns_prefixes</tt></i>:</span></td><td>the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)</td></tr><tr><td><span class="term"><i><tt>with_comments</tt></i>:</span></td><td>include comments in the result (!=0) or not (==0)</td></tr><tr><td><span class="term"><i><tt>doc_txt_ptr</tt></i>:</span></td><td>the memory pointer for allocated canonical XML text; the caller of this functions is responsible for calling xmlFree() to free allocated memory</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written on success or a negative value on fail</td></tr></tbody></table></div><h3><a name="xmlC14NDocSave" id="xmlC14NDocSave"></a>Function: xmlC14NDocSave</h3><pre class="programlisting">int xmlC14NDocSave (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> int mode, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br /> int with_comments, <br /> const char * filename, <br /> int compression)<br />
+</pre><p>Dumps the canonized image of given XML document into the file. For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document for canonization</td></tr><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>the nodes set to be included in the canonized image or NULL if all document nodes should be included</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the c14n mode (see @xmlC14NMode)</td></tr><tr><td><span class="term"><i><tt>inclusive_ns_prefixes</tt></i>:</span></td><td>the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)</td></tr><tr><td><span class="term"><i><tt>with_comments</tt></i>:</span></td><td>include comments in the result (!=0) or not (==0)</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename to store canonical XML image</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>the compression level (zlib required): -1 - libxml default, 0 - uncompressed, &gt;0 - compression level</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written success or a negative value on fail</td></tr></tbody></table></div><h3><a name="xmlC14NDocSaveTo" id="xmlC14NDocSaveTo"></a>Function: xmlC14NDocSaveTo</h3><pre class="programlisting">int xmlC14NDocSaveTo (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> int mode, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br /> int with_comments, <br /> <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf)<br />
+</pre><p>Dumps the canonized image of given XML document into the provided buffer. For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document for canonization</td></tr><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>the nodes set to be included in the canonized image or NULL if all document nodes should be included</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the c14n mode (see @xmlC14NMode)</td></tr><tr><td><span class="term"><i><tt>inclusive_ns_prefixes</tt></i>:</span></td><td>the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)</td></tr><tr><td><span class="term"><i><tt>with_comments</tt></i>:</span></td><td>include comments in the result (!=0) or not (==0)</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>non-negative value on success or a negative value on fail</td></tr></tbody></table></div><h3><a name="xmlC14NExecute" id="xmlC14NExecute"></a>Function: xmlC14NExecute</h3><pre class="programlisting">int xmlC14NExecute (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-c14n.html#xmlC14NIsVisibleCallback">xmlC14NIsVisibleCallback</a> is_visible_callback, <br /> void * user_data, <br /> int mode, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** inclusive_ns_prefixes, <br /> int with_comments, <br /> <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf)<br />
+</pre><p>Dumps the canonized image of given XML document into the provided buffer. For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document for canonization</td></tr><tr><td><span class="term"><i><tt>is_visible_callback</tt></i>:</span></td><td>the function to use to determine is node visible or not</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>the first parameter for @is_visible_callback function (in most cases, it is nodes set)</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the c14n mode (see @xmlC14NMode)</td></tr><tr><td><span class="term"><i><tt>inclusive_ns_prefixes</tt></i>:</span></td><td>the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)</td></tr><tr><td><span class="term"><i><tt>with_comments</tt></i>:</span></td><td>include comments in the result (!=0) or not (==0)</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>non-negative value on success or a negative value on fail</td></tr></tbody></table></div><h3><a name="xmlC14NIsVisibleCallback" id="xmlC14NIsVisibleCallback"></a>Function type: xmlC14NIsVisibleCallback</h3><pre class="programlisting">Function type: xmlC14NIsVisibleCallback
+int xmlC14NIsVisibleCallback (void * user_data, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent)
+</pre><p>Signature for a C14N callback on visible nodes</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>user data</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the node should be included</td></tr></tbody></table></div><br />
+<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>
diff --git a/libxml2-2.9.10/doc/html/libxml-catalog.html b/libxml2-2.9.10/doc/html/libxml-catalog.html
new file mode 100644
index 0000000..3d6b2cc
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-catalog.html
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module catalog from libxml2</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></h1><h2>Module catalog from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-c14n.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-c14n.html">c14n</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-chvalid.html">chvalid</a></th><td><a accesskey="n" href="libxml-chvalid.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>the catalog module implements the support for XML Catalogs and SGML catalogs </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_CATALOGS_NAMESPACE">XML_CATALOGS_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XML_CATALOG_PI">XML_CATALOG_PI</a></pre><pre class="programlisting">Structure <a href="#xmlCatalog">xmlCatalog</a><br />struct _xmlCatalog
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Enum <a href="#xmlCatalogAllow">xmlCatalogAllow</a>
+</pre><pre class="programlisting">Enum <a href="#xmlCatalogPrefer">xmlCatalogPrefer</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-catalog.html#xmlCatalog">xmlCatalog</a> * <a name="xmlCatalogPtr" id="xmlCatalogPtr">xmlCatalogPtr</a>
+</pre><pre class="programlisting">int <a href="#xmlACatalogAdd">xmlACatalogAdd</a> (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * orig, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * replace)</pre>
+<pre class="programlisting">void <a href="#xmlACatalogDump">xmlACatalogDump</a> (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> FILE * out)</pre>
+<pre class="programlisting">int <a href="#xmlACatalogRemove">xmlACatalogRemove</a> (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlACatalogResolve">xmlACatalogResolve</a> (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlACatalogResolvePublic">xmlACatalogResolvePublic</a> (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlACatalogResolveSystem">xmlACatalogResolveSystem</a> (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlACatalogResolveURI">xmlACatalogResolveURI</a> (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI)</pre>
+<pre class="programlisting">int <a href="#xmlCatalogAdd">xmlCatalogAdd</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * orig, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * replace)</pre>
+<pre class="programlisting">void * <a href="#xmlCatalogAddLocal">xmlCatalogAddLocal</a> (void * catalogs, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URL)</pre>
+<pre class="programlisting">void <a href="#xmlCatalogCleanup">xmlCatalogCleanup</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlCatalogConvert">xmlCatalogConvert</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlCatalogDump">xmlCatalogDump</a> (FILE * out)</pre>
+<pre class="programlisting">void <a href="#xmlCatalogFreeLocal">xmlCatalogFreeLocal</a> (void * catalogs)</pre>
+<pre class="programlisting"><a href="libxml-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a> <a href="#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a> (void)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogGetPublic">xmlCatalogGetPublic</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogGetSystem">xmlCatalogGetSystem</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)</pre>
+<pre class="programlisting">int <a href="#xmlCatalogIsEmpty">xmlCatalogIsEmpty</a> (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a> (void * catalogs, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogLocalResolveURI">xmlCatalogLocalResolveURI</a> (void * catalogs, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI)</pre>
+<pre class="programlisting">int <a href="#xmlCatalogRemove">xmlCatalogRemove</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogResolve">xmlCatalogResolve</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogResolvePublic">xmlCatalogResolvePublic</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogResolveSystem">xmlCatalogResolveSystem</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCatalogResolveURI">xmlCatalogResolveURI</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI)</pre>
+<pre class="programlisting">int <a href="#xmlCatalogSetDebug">xmlCatalogSetDebug</a> (int level)</pre>
+<pre class="programlisting"><a href="libxml-catalog.html#xmlCatalogPrefer">xmlCatalogPrefer</a> <a href="#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a> (<a href="libxml-catalog.html#xmlCatalogPrefer">xmlCatalogPrefer</a> prefer)</pre>
+<pre class="programlisting">void <a href="#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a> (<a href="libxml-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a> allow)</pre>
+<pre class="programlisting">int <a href="#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a> (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal)</pre>
+<pre class="programlisting">void <a href="#xmlFreeCatalog">xmlFreeCatalog</a> (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal)</pre>
+<pre class="programlisting">void <a href="#xmlInitializeCatalog">xmlInitializeCatalog</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> <a href="#xmlLoadACatalog">xmlLoadACatalog</a> (const char * filename)</pre>
+<pre class="programlisting">int <a href="#xmlLoadCatalog">xmlLoadCatalog</a> (const char * filename)</pre>
+<pre class="programlisting">void <a href="#xmlLoadCatalogs">xmlLoadCatalogs</a> (const char * pathss)</pre>
+<pre class="programlisting"><a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> <a href="#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a> (const char * filename)</pre>
+<pre class="programlisting"><a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> <a href="#xmlNewCatalog">xmlNewCatalog</a> (int sgml)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseCatalogFile">xmlParseCatalogFile</a> (const char * filename)</pre>
+<h2>Description</h2>
+<h3><a name="XML_CATALOGS_NAMESPACE" id="XML_CATALOGS_NAMESPACE"></a>Macro: XML_CATALOGS_NAMESPACE</h3><pre>#define XML_CATALOGS_NAMESPACE</pre><p>The namespace for the XML Catalogs elements.</p>
+<h3><a name="XML_CATALOG_PI" id="XML_CATALOG_PI"></a>Macro: XML_CATALOG_PI</h3><pre>#define XML_CATALOG_PI</pre><p>The specific XML Catalog Processing Instruction name.</p>
+<h3><a name="xmlCatalog" id="xmlCatalog">Structure xmlCatalog</a></h3><pre class="programlisting">Structure xmlCatalog<br />struct _xmlCatalog {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlCatalogAllow" id="xmlCatalogAllow">xmlCatalogAllow</a></h3><pre class="programlisting">Enum xmlCatalogAllow {
+ <a name="XML_CATA_ALLOW_NONE" id="XML_CATA_ALLOW_NONE">XML_CATA_ALLOW_NONE</a> = 0
+ <a name="XML_CATA_ALLOW_GLOBAL" id="XML_CATA_ALLOW_GLOBAL">XML_CATA_ALLOW_GLOBAL</a> = 1
+ <a name="XML_CATA_ALLOW_DOCUMENT" id="XML_CATA_ALLOW_DOCUMENT">XML_CATA_ALLOW_DOCUMENT</a> = 2
+ <a name="XML_CATA_ALLOW_ALL" id="XML_CATA_ALLOW_ALL">XML_CATA_ALLOW_ALL</a> = 3
+}
+</pre><h3>Enum <a name="xmlCatalogPrefer" id="xmlCatalogPrefer">xmlCatalogPrefer</a></h3><pre class="programlisting">Enum xmlCatalogPrefer {
+ <a name="XML_CATA_PREFER_NONE" id="XML_CATA_PREFER_NONE">XML_CATA_PREFER_NONE</a> = 0
+ <a name="XML_CATA_PREFER_PUBLIC" id="XML_CATA_PREFER_PUBLIC">XML_CATA_PREFER_PUBLIC</a> = 1
+ <a name="XML_CATA_PREFER_SYSTEM" id="XML_CATA_PREFER_SYSTEM">XML_CATA_PREFER_SYSTEM</a> = 2
+}
+</pre><h3><a name="xmlACatalogAdd" id="xmlACatalogAdd"></a>Function: xmlACatalogAdd</h3><pre class="programlisting">int xmlACatalogAdd (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * orig, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * replace)<br />
+</pre><p>Add an entry in the catalog, it may overwrite existing but different entries.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of record to add to the catalog</td></tr><tr><td><span class="term"><i><tt>orig</tt></i>:</span></td><td>the system, public or prefix to match</td></tr><tr><td><span class="term"><i><tt>replace</tt></i>:</span></td><td>the replacement value for the match</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlACatalogDump" id="xmlACatalogDump"></a>Function: xmlACatalogDump</h3><pre class="programlisting">void xmlACatalogDump (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> FILE * out)<br />
+</pre><p>Dump the given catalog to the given file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the file.</td></tr></tbody></table></div><h3><a name="xmlACatalogRemove" id="xmlACatalogRemove"></a>Function: xmlACatalogRemove</h3><pre class="programlisting">int xmlACatalogRemove (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Remove an entry from the catalog</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to remove</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries removed if successful, -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlACatalogResolve" id="xmlACatalogResolve"></a>Function: xmlACatalogResolve</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlACatalogResolve (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br />
+</pre><p>Do a complete resolution lookup of an External Identifier</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlACatalogResolvePublic" id="xmlACatalogResolvePublic"></a>Function: xmlACatalogResolvePublic</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlACatalogResolvePublic (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID)<br />
+</pre><p>Try to lookup the catalog local <a href="libxml-SAX.html#reference">reference</a> associated to a public ID in that catalog</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local resource if found or NULL otherwise, the value returned must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlACatalogResolveSystem" id="xmlACatalogResolveSystem"></a>Function: xmlACatalogResolveSystem</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlACatalogResolveSystem (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br />
+</pre><p>Try to lookup the catalog resource for a system ID</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resource if found or NULL otherwise, the value returned must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlACatalogResolveURI" id="xmlACatalogResolveURI"></a>Function: xmlACatalogResolveURI</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlACatalogResolveURI (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI)<br />
+</pre><p>Do a complete resolution lookup of an URI</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlCatalogAdd" id="xmlCatalogAdd"></a>Function: xmlCatalogAdd</h3><pre class="programlisting">int xmlCatalogAdd (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * orig, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * replace)<br />
+</pre><p>Add an entry in the catalog, it may overwrite existing but different entries. If called before any other catalog routine, allows to override the default shared catalog put in place by xmlInitializeCatalog();</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of record to add to the catalog</td></tr><tr><td><span class="term"><i><tt>orig</tt></i>:</span></td><td>the system, public or prefix to match</td></tr><tr><td><span class="term"><i><tt>replace</tt></i>:</span></td><td>the replacement value for the match</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlCatalogAddLocal" id="xmlCatalogAddLocal"></a>Function: xmlCatalogAddLocal</h3><pre class="programlisting">void * xmlCatalogAddLocal (void * catalogs, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URL)<br />
+</pre><p>Add the new entry to the catalog list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catalogs</tt></i>:</span></td><td>a document's list of catalogs</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL to a new local catalog</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the updated list</td></tr></tbody></table></div><h3><a name="xmlCatalogCleanup" id="xmlCatalogCleanup"></a>Function: xmlCatalogCleanup</h3><pre class="programlisting">void xmlCatalogCleanup (void)<br />
+</pre><p>Free up all the memory associated with catalogs</p>
+<h3><a name="xmlCatalogConvert" id="xmlCatalogConvert"></a>Function: xmlCatalogConvert</h3><pre class="programlisting">int xmlCatalogConvert (void)<br />
+</pre><p>Convert all the SGML catalog entries as XML ones</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries converted if successful, -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlCatalogDump" id="xmlCatalogDump"></a>Function: xmlCatalogDump</h3><pre class="programlisting">void xmlCatalogDump (FILE * out)<br />
+</pre><p>Dump all the global catalog content to the given file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the file.</td></tr></tbody></table></div><h3><a name="xmlCatalogFreeLocal" id="xmlCatalogFreeLocal"></a>Function: xmlCatalogFreeLocal</h3><pre class="programlisting">void xmlCatalogFreeLocal (void * catalogs)<br />
+</pre><p>Free up the memory associated to the catalog list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catalogs</tt></i>:</span></td><td>a document's list of catalogs</td></tr></tbody></table></div><h3><a name="xmlCatalogGetDefaults" id="xmlCatalogGetDefaults"></a>Function: xmlCatalogGetDefaults</h3><pre class="programlisting"><a href="libxml-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a> xmlCatalogGetDefaults (void)<br />
+</pre><p>Used to get the user preference w.r.t. to what catalogs should be accepted</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a href="libxml-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a> value</td></tr></tbody></table></div><h3><a name="xmlCatalogGetPublic" id="xmlCatalogGetPublic"></a>Function: xmlCatalogGetPublic</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogGetPublic (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID)<br />
+</pre><p>Try to lookup the catalog <a href="libxml-SAX.html#reference">reference</a> associated to a public ID DEPRECATED, use xmlCatalogResolvePublic()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resource if found or NULL otherwise.</td></tr></tbody></table></div><h3><a name="xmlCatalogGetSystem" id="xmlCatalogGetSystem"></a>Function: xmlCatalogGetSystem</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogGetSystem (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br />
+</pre><p>Try to lookup the catalog <a href="libxml-SAX.html#reference">reference</a> associated to a system ID DEPRECATED, use xmlCatalogResolveSystem()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resource if found or NULL otherwise.</td></tr></tbody></table></div><h3><a name="xmlCatalogIsEmpty" id="xmlCatalogIsEmpty"></a>Function: xmlCatalogIsEmpty</h3><pre class="programlisting">int xmlCatalogIsEmpty (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal)<br />
+</pre><p>Check is a catalog is empty</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>should this create an SGML catalog</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the catalog is empty, 0 if not, amd -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlCatalogLocalResolve" id="xmlCatalogLocalResolve"></a>Function: xmlCatalogLocalResolve</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogLocalResolve (void * catalogs, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br />
+</pre><p>Do a complete resolution lookup of an External Identifier using a document's private catalog list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catalogs</tt></i>:</span></td><td>a document's list of catalogs</td></tr><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlCatalogLocalResolveURI" id="xmlCatalogLocalResolveURI"></a>Function: xmlCatalogLocalResolveURI</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogLocalResolveURI (void * catalogs, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI)<br />
+</pre><p>Do a complete resolution lookup of an URI using a document's private catalog list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catalogs</tt></i>:</span></td><td>a document's list of catalogs</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlCatalogRemove" id="xmlCatalogRemove"></a>Function: xmlCatalogRemove</h3><pre class="programlisting">int xmlCatalogRemove (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Remove an entry from the catalog</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to remove</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries removed if successful, -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlCatalogResolve" id="xmlCatalogResolve"></a>Function: xmlCatalogResolve</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogResolve (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br />
+</pre><p>Do a complete resolution lookup of an External Identifier</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlCatalogResolvePublic" id="xmlCatalogResolvePublic"></a>Function: xmlCatalogResolvePublic</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogResolvePublic (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubID)<br />
+</pre><p>Try to lookup the catalog <a href="libxml-SAX.html#reference">reference</a> associated to a public ID</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pubID</tt></i>:</span></td><td>the public ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resource if found or NULL otherwise, the value returned must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlCatalogResolveSystem" id="xmlCatalogResolveSystem"></a>Function: xmlCatalogResolveSystem</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogResolveSystem (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysID)<br />
+</pre><p>Try to lookup the catalog resource for a system ID</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sysID</tt></i>:</span></td><td>the system ID string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resource if found or NULL otherwise, the value returned must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlCatalogResolveURI" id="xmlCatalogResolveURI"></a>Function: xmlCatalogResolveURI</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCatalogResolveURI (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI)<br />
+</pre><p>Do a complete resolution lookup of an URI</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the URI of the resource or NULL if not found, it must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlCatalogSetDebug" id="xmlCatalogSetDebug"></a>Function: xmlCatalogSetDebug</h3><pre class="programlisting">int xmlCatalogSetDebug (int level)<br />
+</pre><p>Used to set the debug level for catalog operation, 0 disable debugging, 1 enable it</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>level</tt></i>:</span></td><td>the debug level of catalogs required</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous value of the catalog debugging level</td></tr></tbody></table></div><h3><a name="xmlCatalogSetDefaultPrefer" id="xmlCatalogSetDefaultPrefer"></a>Function: xmlCatalogSetDefaultPrefer</h3><pre class="programlisting"><a href="libxml-catalog.html#xmlCatalogPrefer">xmlCatalogPrefer</a> xmlCatalogSetDefaultPrefer (<a href="libxml-catalog.html#xmlCatalogPrefer">xmlCatalogPrefer</a> prefer)<br />
+</pre><p>Allows to set the preference between public and system for deletion in XML Catalog resolution. C.f. section 4.1.1 of the spec Values accepted are <a href="libxml-catalog.html#XML_CATA_PREFER_PUBLIC">XML_CATA_PREFER_PUBLIC</a> or <a href="libxml-catalog.html#XML_CATA_PREFER_SYSTEM">XML_CATA_PREFER_SYSTEM</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>prefer</tt></i>:</span></td><td>the default preference for delegation</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous value of the default preference for delegation</td></tr></tbody></table></div><h3><a name="xmlCatalogSetDefaults" id="xmlCatalogSetDefaults"></a>Function: xmlCatalogSetDefaults</h3><pre class="programlisting">void xmlCatalogSetDefaults (<a href="libxml-catalog.html#xmlCatalogAllow">xmlCatalogAllow</a> allow)<br />
+</pre><p>Used to set the user preference w.r.t. to what catalogs should be accepted</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>allow</tt></i>:</span></td><td>what catalogs should be accepted</td></tr></tbody></table></div><h3><a name="xmlConvertSGMLCatalog" id="xmlConvertSGMLCatalog"></a>Function: xmlConvertSGMLCatalog</h3><pre class="programlisting">int xmlConvertSGMLCatalog (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal)<br />
+</pre><p>Convert all the SGML catalog entries as XML ones</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>the catalog</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries converted if successful, -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlFreeCatalog" id="xmlFreeCatalog"></a>Function: xmlFreeCatalog</h3><pre class="programlisting">void xmlFreeCatalog (<a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> catal)<br />
+</pre><p>Free the memory allocated to a Catalog</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>catal</tt></i>:</span></td><td>a Catalog</td></tr></tbody></table></div><h3><a name="xmlInitializeCatalog" id="xmlInitializeCatalog"></a>Function: xmlInitializeCatalog</h3><pre class="programlisting">void xmlInitializeCatalog (void)<br />
+</pre><p>Do the catalog initialization. this function is not thread safe, catalog initialization should preferably be done once at startup</p>
+<h3><a name="xmlLoadACatalog" id="xmlLoadACatalog"></a>Function: xmlLoadACatalog</h3><pre class="programlisting"><a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> xmlLoadACatalog (const char * filename)<br />
+</pre><p>Load the catalog and build the associated data structures. This can be either an XML Catalog or an SGML Catalog It will recurse in SGML CATALOG entries. On the other hand XML Catalogs are not handled recursively.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file path</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the catalog parsed or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlLoadCatalog" id="xmlLoadCatalog"></a>Function: xmlLoadCatalog</h3><pre class="programlisting">int xmlLoadCatalog (const char * filename)<br />
+</pre><p>Load the catalog and makes its definitions effective for the default external entity loader. It will recurse in SGML CATALOG entries. this function is not thread safe, catalog initialization should preferably be done once at startup</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file path</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlLoadCatalogs" id="xmlLoadCatalogs"></a>Function: xmlLoadCatalogs</h3><pre class="programlisting">void xmlLoadCatalogs (const char * pathss)<br />
+</pre><p>Load the catalogs and makes their definitions effective for the default external entity loader. this function is not thread safe, catalog initialization should preferably be done once at startup</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pathss</tt></i>:</span></td><td>a list of directories separated by a colon or a space.</td></tr></tbody></table></div><h3><a name="xmlLoadSGMLSuperCatalog" id="xmlLoadSGMLSuperCatalog"></a>Function: xmlLoadSGMLSuperCatalog</h3><pre class="programlisting"><a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> xmlLoadSGMLSuperCatalog (const char * filename)<br />
+</pre><p>Load an SGML super catalog. It won't expand CATALOG or DELEGATE references. This is only needed for manipulating SGML Super Catalogs like adding and removing CATALOG or DELEGATE entries.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file path</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the catalog parsed or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlNewCatalog" id="xmlNewCatalog"></a>Function: xmlNewCatalog</h3><pre class="programlisting"><a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> xmlNewCatalog (int sgml)<br />
+</pre><p>create a new Catalog.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sgml</tt></i>:</span></td><td>should this create an SGML catalog</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-catalog.html#xmlCatalogPtr">xmlCatalogPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlParseCatalogFile" id="xmlParseCatalogFile"></a>Function: xmlParseCatalogFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseCatalogFile (const char * filename)<br />
+</pre><p>parse an XML file and build a tree. It's like xmlParseFile() except it bypass all catalog lookups.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree or NULL in case of error</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-chvalid.html b/libxml2-2.9.10/doc/html/libxml-chvalid.html
new file mode 100644
index 0000000..a837fe6
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-chvalid.html
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module chvalid from libxml2</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></h1><h2>Module chvalid from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-catalog.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-catalog.html">catalog</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-debugXML.html">debugXML</a></th><td><a accesskey="n" href="libxml-debugXML.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>this module exports interfaces for the character range validation APIs This file is automatically generated from the cvs source definition files using the genChRanges.py Python script </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#xmlIsBaseCharQ">xmlIsBaseCharQ</a></pre><pre class="programlisting">#define <a href="#xmlIsBaseChar_ch">xmlIsBaseChar_ch</a></pre><pre class="programlisting">#define <a href="#xmlIsBlankQ">xmlIsBlankQ</a></pre><pre class="programlisting">#define <a href="#xmlIsBlank_ch">xmlIsBlank_ch</a></pre><pre class="programlisting">#define <a href="#xmlIsCharQ">xmlIsCharQ</a></pre><pre class="programlisting">#define <a href="#xmlIsChar_ch">xmlIsChar_ch</a></pre><pre class="programlisting">#define <a href="#xmlIsCombiningQ">xmlIsCombiningQ</a></pre><pre class="programlisting">#define <a href="#xmlIsDigitQ">xmlIsDigitQ</a></pre><pre class="programlisting">#define <a href="#xmlIsDigit_ch">xmlIsDigit_ch</a></pre><pre class="programlisting">#define <a href="#xmlIsExtenderQ">xmlIsExtenderQ</a></pre><pre class="programlisting">#define <a href="#xmlIsExtender_ch">xmlIsExtender_ch</a></pre><pre class="programlisting">#define <a href="#xmlIsIdeographicQ">xmlIsIdeographicQ</a></pre><pre class="programlisting">#define <a href="#xmlIsPubidCharQ">xmlIsPubidCharQ</a></pre><pre class="programlisting">#define <a href="#xmlIsPubidChar_ch">xmlIsPubidChar_ch</a></pre><pre class="programlisting">Structure <a href="#xmlChLRange">xmlChLRange</a><br />struct _xmlChLRange
+</pre><pre class="programlisting">Typedef <a href="libxml-chvalid.html#xmlChLRange">xmlChLRange</a> * <a name="xmlChLRangePtr" id="xmlChLRangePtr">xmlChLRangePtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlChRangeGroup">xmlChRangeGroup</a><br />struct _xmlChRangeGroup
+</pre><pre class="programlisting">Typedef <a href="libxml-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> * <a name="xmlChRangeGroupPtr" id="xmlChRangeGroupPtr">xmlChRangeGroupPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlChSRange">xmlChSRange</a><br />struct _xmlChSRange
+</pre><pre class="programlisting">Typedef <a href="libxml-chvalid.html#xmlChSRange">xmlChSRange</a> * <a name="xmlChSRangePtr" id="xmlChSRangePtr">xmlChSRangePtr</a>
+</pre><pre class="programlisting">int <a href="#xmlCharInRange">xmlCharInRange</a> (unsigned int val, <br /> const <a href="libxml-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> * rptr)</pre>
+<pre class="programlisting">int <a href="#xmlIsBaseChar">xmlIsBaseChar</a> (unsigned int ch)</pre>
+<pre class="programlisting">int <a href="#xmlIsBlank">xmlIsBlank</a> (unsigned int ch)</pre>
+<pre class="programlisting">int <a href="#xmlIsChar">xmlIsChar</a> (unsigned int ch)</pre>
+<pre class="programlisting">int <a href="#xmlIsCombining">xmlIsCombining</a> (unsigned int ch)</pre>
+<pre class="programlisting">int <a href="#xmlIsDigit">xmlIsDigit</a> (unsigned int ch)</pre>
+<pre class="programlisting">int <a href="#xmlIsExtender">xmlIsExtender</a> (unsigned int ch)</pre>
+<pre class="programlisting">int <a href="#xmlIsIdeographic">xmlIsIdeographic</a> (unsigned int ch)</pre>
+<pre class="programlisting">int <a href="#xmlIsPubidChar">xmlIsPubidChar</a> (unsigned int ch)</pre>
+<h2>Description</h2>
+<h3><a name="xmlIsBaseCharQ" id="xmlIsBaseCharQ"></a>Macro: xmlIsBaseCharQ</h3><pre>#define xmlIsBaseCharQ</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsBaseChar_ch" id="xmlIsBaseChar_ch"></a>Macro: xmlIsBaseChar_ch</h3><pre>#define xmlIsBaseChar_ch</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsBlankQ" id="xmlIsBlankQ"></a>Macro: xmlIsBlankQ</h3><pre>#define xmlIsBlankQ</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsBlank_ch" id="xmlIsBlank_ch"></a>Macro: xmlIsBlank_ch</h3><pre>#define xmlIsBlank_ch</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsCharQ" id="xmlIsCharQ"></a>Macro: xmlIsCharQ</h3><pre>#define xmlIsCharQ</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsChar_ch" id="xmlIsChar_ch"></a>Macro: xmlIsChar_ch</h3><pre>#define xmlIsChar_ch</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsCombiningQ" id="xmlIsCombiningQ"></a>Macro: xmlIsCombiningQ</h3><pre>#define xmlIsCombiningQ</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsDigitQ" id="xmlIsDigitQ"></a>Macro: xmlIsDigitQ</h3><pre>#define xmlIsDigitQ</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsDigit_ch" id="xmlIsDigit_ch"></a>Macro: xmlIsDigit_ch</h3><pre>#define xmlIsDigit_ch</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsExtenderQ" id="xmlIsExtenderQ"></a>Macro: xmlIsExtenderQ</h3><pre>#define xmlIsExtenderQ</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsExtender_ch" id="xmlIsExtender_ch"></a>Macro: xmlIsExtender_ch</h3><pre>#define xmlIsExtender_ch</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsIdeographicQ" id="xmlIsIdeographicQ"></a>Macro: xmlIsIdeographicQ</h3><pre>#define xmlIsIdeographicQ</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsPubidCharQ" id="xmlIsPubidCharQ"></a>Macro: xmlIsPubidCharQ</h3><pre>#define xmlIsPubidCharQ</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlIsPubidChar_ch" id="xmlIsPubidChar_ch"></a>Macro: xmlIsPubidChar_ch</h3><pre>#define xmlIsPubidChar_ch</pre><p>Automatically generated by genChRanges.py</p>
+<h3><a name="xmlChLRange" id="xmlChLRange">Structure xmlChLRange</a></h3><pre class="programlisting">Structure xmlChLRange<br />struct _xmlChLRange {
+ unsigned int low
+ unsigned int high
+}</pre><h3><a name="xmlChRangeGroup" id="xmlChRangeGroup">Structure xmlChRangeGroup</a></h3><pre class="programlisting">Structure xmlChRangeGroup<br />struct _xmlChRangeGroup {
+ int nbShortRange
+ int nbLongRange
+ const <a href="libxml-chvalid.html#xmlChSRange">xmlChSRange</a> * shortRange : points to an array of ranges
+ const <a href="libxml-chvalid.html#xmlChLRange">xmlChLRange</a> * longRange
+}</pre><h3><a name="xmlChSRange" id="xmlChSRange">Structure xmlChSRange</a></h3><pre class="programlisting">Structure xmlChSRange<br />struct _xmlChSRange {
+ unsigned short low
+ unsigned short high
+}</pre><h3><a name="xmlCharInRange" id="xmlCharInRange"></a>Function: xmlCharInRange</h3><pre class="programlisting">int xmlCharInRange (unsigned int val, <br /> const <a href="libxml-chvalid.html#xmlChRangeGroup">xmlChRangeGroup</a> * rptr)<br />
+</pre><p>Does a binary search of the range table to determine if char is valid</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>character to be validated</td></tr><tr><td><span class="term"><i><tt>rptr</tt></i>:</span></td><td>pointer to range to be used to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if character valid, false otherwise</td></tr></tbody></table></div><h3><a name="xmlIsBaseChar" id="xmlIsBaseChar"></a>Function: xmlIsBaseChar</h3><pre class="programlisting">int xmlIsBaseChar (unsigned int ch)<br />
+</pre><p>This function is DEPRECATED. Use <a href="libxml-chvalid.html#xmlIsBaseChar_ch">xmlIsBaseChar_ch</a> or <a href="libxml-chvalid.html#xmlIsBaseCharQ">xmlIsBaseCharQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div><h3><a name="xmlIsBlank" id="xmlIsBlank"></a>Function: xmlIsBlank</h3><pre class="programlisting">int xmlIsBlank (unsigned int ch)<br />
+</pre><p>This function is DEPRECATED. Use <a href="libxml-chvalid.html#xmlIsBlank_ch">xmlIsBlank_ch</a> or <a href="libxml-chvalid.html#xmlIsBlankQ">xmlIsBlankQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div><h3><a name="xmlIsChar" id="xmlIsChar"></a>Function: xmlIsChar</h3><pre class="programlisting">int xmlIsChar (unsigned int ch)<br />
+</pre><p>This function is DEPRECATED. Use <a href="libxml-chvalid.html#xmlIsChar_ch">xmlIsChar_ch</a> or <a href="libxml-chvalid.html#xmlIsCharQ">xmlIsCharQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div><h3><a name="xmlIsCombining" id="xmlIsCombining"></a>Function: xmlIsCombining</h3><pre class="programlisting">int xmlIsCombining (unsigned int ch)<br />
+</pre><p>This function is DEPRECATED. Use <a href="libxml-chvalid.html#xmlIsCombiningQ">xmlIsCombiningQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div><h3><a name="xmlIsDigit" id="xmlIsDigit"></a>Function: xmlIsDigit</h3><pre class="programlisting">int xmlIsDigit (unsigned int ch)<br />
+</pre><p>This function is DEPRECATED. Use <a href="libxml-chvalid.html#xmlIsDigit_ch">xmlIsDigit_ch</a> or <a href="libxml-chvalid.html#xmlIsDigitQ">xmlIsDigitQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div><h3><a name="xmlIsExtender" id="xmlIsExtender"></a>Function: xmlIsExtender</h3><pre class="programlisting">int xmlIsExtender (unsigned int ch)<br />
+</pre><p>This function is DEPRECATED. Use <a href="libxml-chvalid.html#xmlIsExtender_ch">xmlIsExtender_ch</a> or <a href="libxml-chvalid.html#xmlIsExtenderQ">xmlIsExtenderQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div><h3><a name="xmlIsIdeographic" id="xmlIsIdeographic"></a>Function: xmlIsIdeographic</h3><pre class="programlisting">int xmlIsIdeographic (unsigned int ch)<br />
+</pre><p>This function is DEPRECATED. Use <a href="libxml-chvalid.html#xmlIsIdeographicQ">xmlIsIdeographicQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div><h3><a name="xmlIsPubidChar" id="xmlIsPubidChar"></a>Function: xmlIsPubidChar</h3><pre class="programlisting">int xmlIsPubidChar (unsigned int ch)<br />
+</pre><p>This function is DEPRECATED. Use <a href="libxml-chvalid.html#xmlIsPubidChar_ch">xmlIsPubidChar_ch</a> or <a href="libxml-chvalid.html#xmlIsPubidCharQ">xmlIsPubidCharQ</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>character to validate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true if argument valid, false otherwise</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-debugXML.html b/libxml2-2.9.10/doc/html/libxml-debugXML.html
new file mode 100644
index 0000000..6b5f0e0
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-debugXML.html
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module debugXML from libxml2</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></h1><h2>Module debugXML from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-chvalid.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-chvalid.html">chvalid</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-dict.html">dict</a></th><td><a accesskey="n" href="libxml-dict.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>Interfaces to a set of routines used for debugging the tree produced by the XML parser. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlShellCtxt">xmlShellCtxt</a><br />struct _xmlShellCtxt
+</pre><pre class="programlisting">Typedef <a href="libxml-debugXML.html#xmlShellCtxt">xmlShellCtxt</a> * <a name="xmlShellCtxtPtr" id="xmlShellCtxtPtr">xmlShellCtxtPtr</a>
+</pre><pre class="programlisting">const char * <a href="#xmlBoolToText">xmlBoolToText</a> (int boolval)</pre>
+<pre class="programlisting">int <a href="#xmlDebugCheckDocument">xmlDebugCheckDocument</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">void <a href="#xmlDebugDumpAttr">xmlDebugDumpAttr</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br /> int depth)</pre>
+<pre class="programlisting">void <a href="#xmlDebugDumpAttrList">xmlDebugDumpAttrList</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br /> int depth)</pre>
+<pre class="programlisting">void <a href="#xmlDebugDumpDTD">xmlDebugDumpDTD</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)</pre>
+<pre class="programlisting">void <a href="#xmlDebugDumpDocument">xmlDebugDumpDocument</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">void <a href="#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">void <a href="#xmlDebugDumpEntities">xmlDebugDumpEntities</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">void <a href="#xmlDebugDumpNode">xmlDebugDumpNode</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int depth)</pre>
+<pre class="programlisting">void <a href="#xmlDebugDumpNodeList">xmlDebugDumpNodeList</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int depth)</pre>
+<pre class="programlisting">void <a href="#xmlDebugDumpOneNode">xmlDebugDumpOneNode</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int depth)</pre>
+<pre class="programlisting">void <a href="#xmlDebugDumpString">xmlDebugDumpString</a> (FILE * output, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting">int <a href="#xmlLsCountNode">xmlLsCountNode</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">void <a href="#xmlLsOneNode">xmlLsOneNode</a> (FILE * output, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">void <a href="#xmlShell">xmlShell</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> char * filename, <br /> <a href="libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a> input, <br /> FILE * output)</pre>
+<pre class="programlisting">int <a href="#xmlShellBase">xmlShellBase</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<pre class="programlisting">int <a href="#xmlShellCat">xmlShellCat</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<pre class="programlisting">Function type: <a href="#xmlShellCmd">xmlShellCmd</a>
+int <a href="#xmlShellCmd">xmlShellCmd</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)
+</pre>
+<pre class="programlisting">int <a href="#xmlShellDir">xmlShellDir</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<pre class="programlisting">int <a href="#xmlShellDu">xmlShellDu</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<pre class="programlisting">int <a href="#xmlShellList">xmlShellList</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<pre class="programlisting">int <a href="#xmlShellLoad">xmlShellLoad</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * filename, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<pre class="programlisting">void <a href="#xmlShellPrintNode">xmlShellPrintNode</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">void <a href="#xmlShellPrintXPathError">xmlShellPrintXPathError</a> (int errorType, <br /> const char * arg)</pre>
+<pre class="programlisting">void <a href="#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> list)</pre>
+<pre class="programlisting">int <a href="#xmlShellPwd">xmlShellPwd</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * buffer, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<pre class="programlisting">Function type: <a href="#xmlShellReadlineFunc">xmlShellReadlineFunc</a>
+char * <a href="#xmlShellReadlineFunc">xmlShellReadlineFunc</a> (char * prompt)
+</pre>
+<pre class="programlisting">int <a href="#xmlShellSave">xmlShellSave</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * filename, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<pre class="programlisting">int <a href="#xmlShellValidate">xmlShellValidate</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * dtd, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<pre class="programlisting">int <a href="#xmlShellWrite">xmlShellWrite</a> (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * filename, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<h2>Description</h2>
+<h3><a name="xmlShellCtxt" id="xmlShellCtxt">Structure xmlShellCtxt</a></h3><pre class="programlisting">Structure xmlShellCtxt<br />struct _xmlShellCtxt {
+ char * filename
+ <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> pctxt
+ int loaded
+ FILE * output
+ <a href="libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a> input
+}</pre><h3><a name="xmlBoolToText" id="xmlBoolToText"></a>Function: xmlBoolToText</h3><pre class="programlisting">const char * xmlBoolToText (int boolval)<br />
+</pre><p>Convenient way to turn bool into text</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>boolval</tt></i>:</span></td><td>a bool to turn into text</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to either "True" or "False"</td></tr></tbody></table></div><h3><a name="xmlDebugCheckDocument" id="xmlDebugCheckDocument"></a>Function: xmlDebugCheckDocument</h3><pre class="programlisting">int xmlDebugCheckDocument (FILE * output, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Check the document for potential content problems, and output the errors to @output</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of errors found</td></tr></tbody></table></div><h3><a name="xmlDebugDumpAttr" id="xmlDebugDumpAttr"></a>Function: xmlDebugDumpAttr</h3><pre class="programlisting">void xmlDebugDumpAttr (FILE * output, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br /> int depth)<br />
+</pre><p>Dumps debug information for the <a href="libxml-SAX.html#attribute">attribute</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div><h3><a name="xmlDebugDumpAttrList" id="xmlDebugDumpAttrList"></a>Function: xmlDebugDumpAttrList</h3><pre class="programlisting">void xmlDebugDumpAttrList (FILE * output, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br /> int depth)<br />
+</pre><p>Dumps debug information for the <a href="libxml-SAX.html#attribute">attribute</a> list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> list</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div><h3><a name="xmlDebugDumpDTD" id="xmlDebugDumpDTD"></a>Function: xmlDebugDumpDTD</h3><pre class="programlisting">void xmlDebugDumpDTD (FILE * output, <br /> <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)<br />
+</pre><p>Dumps debug information for the DTD</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>the DTD</td></tr></tbody></table></div><h3><a name="xmlDebugDumpDocument" id="xmlDebugDumpDocument"></a>Function: xmlDebugDumpDocument</h3><pre class="programlisting">void xmlDebugDumpDocument (FILE * output, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Dumps debug information for the document, it's recursive</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div><h3><a name="xmlDebugDumpDocumentHead" id="xmlDebugDumpDocumentHead"></a>Function: xmlDebugDumpDocumentHead</h3><pre class="programlisting">void xmlDebugDumpDocumentHead (FILE * output, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Dumps debug information concerning the document, not recursive</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div><h3><a name="xmlDebugDumpEntities" id="xmlDebugDumpEntities"></a>Function: xmlDebugDumpEntities</h3><pre class="programlisting">void xmlDebugDumpEntities (FILE * output, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Dumps debug information for all the entities in use by the document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div><h3><a name="xmlDebugDumpNode" id="xmlDebugDumpNode"></a>Function: xmlDebugDumpNode</h3><pre class="programlisting">void xmlDebugDumpNode (FILE * output, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int depth)<br />
+</pre><p>Dumps debug information for the element node, it is recursive</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div><h3><a name="xmlDebugDumpNodeList" id="xmlDebugDumpNodeList"></a>Function: xmlDebugDumpNodeList</h3><pre class="programlisting">void xmlDebugDumpNodeList (FILE * output, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int depth)<br />
+</pre><p>Dumps debug information for the list of element node, it is recursive</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node list</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div><h3><a name="xmlDebugDumpOneNode" id="xmlDebugDumpOneNode"></a>Function: xmlDebugDumpOneNode</h3><pre class="programlisting">void xmlDebugDumpOneNode (FILE * output, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int depth)<br />
+</pre><p>Dumps debug information for the element node, it is not recursive</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div><h3><a name="xmlDebugDumpString" id="xmlDebugDumpString"></a>Function: xmlDebugDumpString</h3><pre class="programlisting">void xmlDebugDumpString (FILE * output, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>Dumps informations about the string, shorten it if necessary</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr></tbody></table></div><h3><a name="xmlLsCountNode" id="xmlLsCountNode"></a>Function: xmlLsCountNode</h3><pre class="programlisting">int xmlLsCountNode (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Count the children of @node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to count</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of children of @node.</td></tr></tbody></table></div><h3><a name="xmlLsOneNode" id="xmlLsOneNode"></a>Function: xmlLsOneNode</h3><pre class="programlisting">void xmlLsOneNode (FILE * output, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Dump to @output the type and name of @node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to dump</td></tr></tbody></table></div><h3><a name="xmlShell" id="xmlShell"></a>Function: xmlShell</h3><pre class="programlisting">void xmlShell (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> char * filename, <br /> <a href="libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a> input, <br /> FILE * output)<br />
+</pre><p>Implements the XML shell This allow to load, validate, view, modify and save a document using a environment similar to a UNIX commandline.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the initial document</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the output buffer</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the line reading function</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the output FILE*, defaults to stdout if NULL</td></tr></tbody></table></div><h3><a name="xmlShellBase" id="xmlShellBase"></a>Function: xmlShellBase</h3><pre class="programlisting">int xmlShellBase (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Implements the XML shell function "base" dumps the current XML base of the node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div><h3><a name="xmlShellCat" id="xmlShellCat"></a>Function: xmlShellCat</h3><pre class="programlisting">int xmlShellCat (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Implements the XML shell function "cat" dumps the serialization node content (XML or HTML).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div><h3><a name="xmlShellCmd" id="xmlShellCmd"></a>Function type: xmlShellCmd</h3><pre class="programlisting">Function type: xmlShellCmd
+int xmlShellCmd (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)
+</pre><p>This is a generic signature for the XML shell functions.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a string argument</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a first node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>a second node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int, negative returns indicating errors.</td></tr></tbody></table></div><br />
+<h3><a name="xmlShellDir" id="xmlShellDir"></a>Function: xmlShellDir</h3><pre class="programlisting">int xmlShellDir (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Implements the XML shell function "dir" dumps informations about the node (namespace, attributes, content).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div><h3><a name="xmlShellDu" id="xmlShellDu"></a>Function: xmlShellDu</h3><pre class="programlisting">int xmlShellDu (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Implements the XML shell function "du" show the structure of the subtree under node @tree If @tree is null, the command works on the current node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>a node defining a subtree</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlShellList" id="xmlShellList"></a>Function: xmlShellList</h3><pre class="programlisting">int xmlShellList (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * arg, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Implements the XML shell function "ls" Does an Unix like listing of the given node (like a directory)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div><h3><a name="xmlShellLoad" id="xmlShellLoad"></a>Function: xmlShellLoad</h3><pre class="programlisting">int xmlShellLoad (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * filename, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Implements the XML shell function "load" loads a new document specified by the filename</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file name</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 if loading failed</td></tr></tbody></table></div><h3><a name="xmlShellPrintNode" id="xmlShellPrintNode"></a>Function: xmlShellPrintNode</h3><pre class="programlisting">void xmlShellPrintNode (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Print node to the output FILE</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a non-null node to print to the output FILE</td></tr></tbody></table></div><h3><a name="xmlShellPrintXPathError" id="xmlShellPrintXPathError"></a>Function: xmlShellPrintXPathError</h3><pre class="programlisting">void xmlShellPrintXPathError (int errorType, <br /> const char * arg)<br />
+</pre><p>Print the xpath error to libxml default error channel</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>errorType</tt></i>:</span></td><td>valid xpath error id</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the argument that cause xpath to fail</td></tr></tbody></table></div><h3><a name="xmlShellPrintXPathResult" id="xmlShellPrintXPathResult"></a>Function: xmlShellPrintXPathResult</h3><pre class="programlisting">void xmlShellPrintXPathResult (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> list)<br />
+</pre><p>Prints result to the output FILE</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>a valid result generated by an xpath evaluation</td></tr></tbody></table></div><h3><a name="xmlShellPwd" id="xmlShellPwd"></a>Function: xmlShellPwd</h3><pre class="programlisting">int xmlShellPwd (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * buffer, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Implements the XML shell function "pwd" Show the full path from the root to the node, if needed building thumblers when similar elements exists at a given ancestor level. The output is compatible with XPath commands.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>the output buffer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlShellReadlineFunc" id="xmlShellReadlineFunc"></a>Function type: xmlShellReadlineFunc</h3><pre class="programlisting">Function type: xmlShellReadlineFunc
+char * xmlShellReadlineFunc (char * prompt)
+</pre><p>This is a generic signature for the XML shell input function.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>prompt</tt></i>:</span></td><td>a string prompt</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string which will be freed by the Shell.</td></tr></tbody></table></div><br />
+<h3><a name="xmlShellSave" id="xmlShellSave"></a>Function: xmlShellSave</h3><pre class="programlisting">int xmlShellSave (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * filename, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Implements the XML shell function "save" Write the current document to the filename, or it's original name</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file name (optional)</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlShellValidate" id="xmlShellValidate"></a>Function: xmlShellValidate</h3><pre class="programlisting">int xmlShellValidate (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * dtd, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Implements the XML shell function "validate" Validate the document, if a DTD path is provided, then the validation is done against the given DTD.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>the DTD URI (optional)</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlShellWrite" id="xmlShellWrite"></a>Function: xmlShellWrite</h3><pre class="programlisting">int xmlShellWrite (<a href="libxml-debugXML.html#xmlShellCtxtPtr">xmlShellCtxtPtr</a> ctxt, <br /> char * filename, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Implements the XML shell function "write" Write the current node to the filename, it saves the serialization of the subtree under the @node specified</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the shell context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file name</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node in the tree</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-dict.html b/libxml2-2.9.10/doc/html/libxml-dict.html
new file mode 100644
index 0000000..1e65f86
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-dict.html
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module dict from libxml2</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></h1><h2>Module dict from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-debugXML.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-debugXML.html">debugXML</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-encoding.html">encoding</a></th><td><a accesskey="n" href="libxml-encoding.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>dictionary of reusable strings, just used to avoid allocation and freeing operations. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlDict">xmlDict</a><br />struct _xmlDict
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-dict.html#xmlDict">xmlDict</a> * <a name="xmlDictPtr" id="xmlDictPtr">xmlDictPtr</a>
+</pre><pre class="programlisting">void <a href="#xmlDictCleanup">xmlDictCleanup</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> <a href="#xmlDictCreate">xmlDictCreate</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> <a href="#xmlDictCreateSub">xmlDictCreateSub</a> (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> sub)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlDictExists">xmlDictExists</a> (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)</pre>
+<pre class="programlisting">void <a href="#xmlDictFree">xmlDictFree</a> (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre>
+<pre class="programlisting">size_t <a href="#xmlDictGetUsage">xmlDictGetUsage</a> (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlDictLookup">xmlDictLookup</a> (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlDictOwns">xmlDictOwns</a> (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlDictQLookup">xmlDictQLookup</a> (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlDictReference">xmlDictReference</a> (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre>
+<pre class="programlisting">size_t <a href="#xmlDictSetLimit">xmlDictSetLimit</a> (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> size_t limit)</pre>
+<pre class="programlisting">int <a href="#xmlDictSize">xmlDictSize</a> (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre>
+<pre class="programlisting">int <a href="#xmlInitializeDict">xmlInitializeDict</a> (void)</pre>
+<h2>Description</h2>
+<h3><a name="xmlDict" id="xmlDict">Structure xmlDict</a></h3><pre class="programlisting">Structure xmlDict<br />struct _xmlDict {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlDictCleanup" id="xmlDictCleanup"></a>Function: xmlDictCleanup</h3><pre class="programlisting">void xmlDictCleanup (void)<br />
+</pre><p>Free the dictionary mutex. Do not call unless sure the library is not in use anymore !</p>
+<h3><a name="xmlDictCreate" id="xmlDictCreate"></a>Function: xmlDictCreate</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreate (void)<br />
+</pre><p>Create a new dictionary</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlDictCreateSub" id="xmlDictCreateSub"></a>Function: xmlDictCreateSub</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreateSub (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br />
+</pre><p>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlDictExists" id="xmlDictExists"></a>Function: xmlDictExists</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictExists (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
+</pre><p>Check if the @name exists in the dictionary @dict.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div><h3><a name="xmlDictFree" id="xmlDictFree"></a>Function: xmlDictFree</h3><pre class="programlisting">void xmlDictFree (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+</pre><p>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr></tbody></table></div><h3><a name="xmlDictGetUsage" id="xmlDictGetUsage"></a>Function: xmlDictGetUsage</h3><pre class="programlisting">size_t xmlDictGetUsage (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+</pre><p>Get how much memory is used by a dictionary for strings Added in 2.9.0</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div><h3><a name="xmlDictLookup" id="xmlDictLookup"></a>Function: xmlDictLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictLookup (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
+</pre><p>Add the @name to the dictionary @dict if not present.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictOwns" id="xmlDictOwns"></a>Function: xmlDictOwns</h3><pre class="programlisting">int xmlDictOwns (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>check if a string is owned by the dictionary</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictQLookup" id="xmlDictQLookup"></a>Function: xmlDictQLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictQLookup (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Add the QName @prefix:@name to the hash @dict if not present.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictReference" id="xmlDictReference"></a>Function: xmlDictReference</h3><pre class="programlisting">int xmlDictReference (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+</pre><p>Increment the <a href="libxml-SAX.html#reference">reference</a> counter of a dictionary</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictSetLimit" id="xmlDictSetLimit"></a>Function: xmlDictSetLimit</h3><pre class="programlisting">size_t xmlDictSetLimit (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> size_t limit)<br />
+</pre><p>Set a size limit for the dictionary Added in 2.9.0</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div><h3><a name="xmlDictSize" id="xmlDictSize"></a>Function: xmlDictSize</h3><pre class="programlisting">int xmlDictSize (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+</pre><p>Query the number of elements installed in the hash @dict.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionary or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlInitializeDict" id="xmlInitializeDict"></a>Function: xmlInitializeDict</h3><pre class="programlisting">int xmlInitializeDict (void)<br />
+</pre><p>Do the dictionary mutex initialization. this function is deprecated</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if initialization was already done, and 1 if that call led to the initialization</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-encoding.html b/libxml2-2.9.10/doc/html/libxml-encoding.html
new file mode 100644
index 0000000..0315764
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-encoding.html
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module encoding from libxml2</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></h1><h2>Module encoding from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-dict.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-dict.html">dict</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-entities.html">entities</a></th><td><a accesskey="n" href="libxml-entities.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a></pre><pre class="programlisting">Structure <a href="#uconv_t">uconv_t</a><br />struct _uconv_t
+</pre><pre class="programlisting">Enum <a href="#xmlCharEncoding">xmlCharEncoding</a>
+</pre><pre class="programlisting">Structure <a href="#xmlCharEncodingHandler">xmlCharEncodingHandler</a><br />struct _xmlCharEncodingHandler
+</pre><pre class="programlisting">Typedef <a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * <a name="xmlCharEncodingHandlerPtr" id="xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>
+</pre><pre class="programlisting">int <a href="#UTF8Toisolat1">UTF8Toisolat1</a> (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen)</pre>
+<pre class="programlisting">int <a href="#isolat1ToUTF8">isolat1ToUTF8</a> (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen)</pre>
+<pre class="programlisting">int <a href="#xmlAddEncodingAlias">xmlAddEncodingAlias</a> (const char * name, <br /> const char * alias)</pre>
+<pre class="programlisting">int <a href="#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a> (<a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler)</pre>
+<pre class="programlisting">int <a href="#xmlCharEncFirstLine">xmlCharEncFirstLine</a> (<a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)</pre>
+<pre class="programlisting">int <a href="#xmlCharEncInFunc">xmlCharEncInFunc</a> (<a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)</pre>
+<pre class="programlisting">int <a href="#xmlCharEncOutFunc">xmlCharEncOutFunc</a> (<a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)</pre>
+<pre class="programlisting">Function type: <a href="#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a>
+int <a href="#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a>
+int <a href="#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen)
+</pre>
+<pre class="programlisting">void <a href="#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlCleanupEncodingAliases">xmlCleanupEncodingAliases</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlDelEncodingAlias">xmlDelEncodingAlias</a> (const char * alias)</pre>
+<pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> <a href="#xmlDetectCharEncoding">xmlDetectCharEncoding</a> (const unsigned char * in, <br /> int len)</pre>
+<pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> <a href="#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a> (const char * name)</pre>
+<pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> <a href="#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a> (<a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting">const char * <a href="#xmlGetCharEncodingName">xmlGetCharEncodingName</a> (<a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting">const char * <a href="#xmlGetEncodingAlias">xmlGetEncodingAlias</a> (const char * alias)</pre>
+<pre class="programlisting">void <a href="#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> <a href="#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a> (const char * name, <br /> <a href="libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> input, <br /> <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> output)</pre>
+<pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> <a href="#xmlParseCharEncoding">xmlParseCharEncoding</a> (const char * name)</pre>
+<pre class="programlisting">void <a href="#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a> (<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)</pre>
+<h2>Description</h2>
+<h3><a name="ICU_PIVOT_BUF_SIZE" id="ICU_PIVOT_BUF_SIZE"></a>Macro: ICU_PIVOT_BUF_SIZE</h3><pre>#define ICU_PIVOT_BUF_SIZE</pre><p></p>
+<h3><a name="uconv_t" id="uconv_t">Structure uconv_t</a></h3><pre class="programlisting">Structure uconv_t<br />struct _uconv_t {
+ UConverter * uconv : for conversion between an encoding and
+ UConverter * utf8 : for conversion between UTF-8 and UTF-16
+ UCharpivot_buf[ICU_PIVOT_BUF_SIZE] pivot_buf
+ UChar * pivot_source
+ UChar * pivot_target
+}</pre><h3>Enum <a name="xmlCharEncoding" id="xmlCharEncoding">xmlCharEncoding</a></h3><pre class="programlisting">Enum xmlCharEncoding {
+ <a name="XML_CHAR_ENCODING_ERROR" id="XML_CHAR_ENCODING_ERROR">XML_CHAR_ENCODING_ERROR</a> = -1 : No char encoding detected
+ <a name="XML_CHAR_ENCODING_NONE" id="XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a> = 0 : No char encoding detected
+ <a name="XML_CHAR_ENCODING_UTF8" id="XML_CHAR_ENCODING_UTF8">XML_CHAR_ENCODING_UTF8</a> = 1 : UTF-8
+ <a name="XML_CHAR_ENCODING_UTF16LE" id="XML_CHAR_ENCODING_UTF16LE">XML_CHAR_ENCODING_UTF16LE</a> = 2 : UTF-16 little endian
+ <a name="XML_CHAR_ENCODING_UTF16BE" id="XML_CHAR_ENCODING_UTF16BE">XML_CHAR_ENCODING_UTF16BE</a> = 3 : UTF-16 big endian
+ <a name="XML_CHAR_ENCODING_UCS4LE" id="XML_CHAR_ENCODING_UCS4LE">XML_CHAR_ENCODING_UCS4LE</a> = 4 : UCS-4 little endian
+ <a name="XML_CHAR_ENCODING_UCS4BE" id="XML_CHAR_ENCODING_UCS4BE">XML_CHAR_ENCODING_UCS4BE</a> = 5 : UCS-4 big endian
+ <a name="XML_CHAR_ENCODING_EBCDIC" id="XML_CHAR_ENCODING_EBCDIC">XML_CHAR_ENCODING_EBCDIC</a> = 6 : EBCDIC uh!
+ <a name="XML_CHAR_ENCODING_UCS4_2143" id="XML_CHAR_ENCODING_UCS4_2143">XML_CHAR_ENCODING_UCS4_2143</a> = 7 : UCS-4 unusual ordering
+ <a name="XML_CHAR_ENCODING_UCS4_3412" id="XML_CHAR_ENCODING_UCS4_3412">XML_CHAR_ENCODING_UCS4_3412</a> = 8 : UCS-4 unusual ordering
+ <a name="XML_CHAR_ENCODING_UCS2" id="XML_CHAR_ENCODING_UCS2">XML_CHAR_ENCODING_UCS2</a> = 9 : UCS-2
+ <a name="XML_CHAR_ENCODING_8859_1" id="XML_CHAR_ENCODING_8859_1">XML_CHAR_ENCODING_8859_1</a> = 10 : ISO-8859-1 ISO Latin 1
+ <a name="XML_CHAR_ENCODING_8859_2" id="XML_CHAR_ENCODING_8859_2">XML_CHAR_ENCODING_8859_2</a> = 11 : ISO-8859-2 ISO Latin 2
+ <a name="XML_CHAR_ENCODING_8859_3" id="XML_CHAR_ENCODING_8859_3">XML_CHAR_ENCODING_8859_3</a> = 12 : ISO-8859-3
+ <a name="XML_CHAR_ENCODING_8859_4" id="XML_CHAR_ENCODING_8859_4">XML_CHAR_ENCODING_8859_4</a> = 13 : ISO-8859-4
+ <a name="XML_CHAR_ENCODING_8859_5" id="XML_CHAR_ENCODING_8859_5">XML_CHAR_ENCODING_8859_5</a> = 14 : ISO-8859-5
+ <a name="XML_CHAR_ENCODING_8859_6" id="XML_CHAR_ENCODING_8859_6">XML_CHAR_ENCODING_8859_6</a> = 15 : ISO-8859-6
+ <a name="XML_CHAR_ENCODING_8859_7" id="XML_CHAR_ENCODING_8859_7">XML_CHAR_ENCODING_8859_7</a> = 16 : ISO-8859-7
+ <a name="XML_CHAR_ENCODING_8859_8" id="XML_CHAR_ENCODING_8859_8">XML_CHAR_ENCODING_8859_8</a> = 17 : ISO-8859-8
+ <a name="XML_CHAR_ENCODING_8859_9" id="XML_CHAR_ENCODING_8859_9">XML_CHAR_ENCODING_8859_9</a> = 18 : ISO-8859-9
+ <a name="XML_CHAR_ENCODING_2022_JP" id="XML_CHAR_ENCODING_2022_JP">XML_CHAR_ENCODING_2022_JP</a> = 19 : ISO-2022-JP
+ <a name="XML_CHAR_ENCODING_SHIFT_JIS" id="XML_CHAR_ENCODING_SHIFT_JIS">XML_CHAR_ENCODING_SHIFT_JIS</a> = 20 : Shift_JIS
+ <a name="XML_CHAR_ENCODING_EUC_JP" id="XML_CHAR_ENCODING_EUC_JP">XML_CHAR_ENCODING_EUC_JP</a> = 21 : EUC-JP
+ <a name="XML_CHAR_ENCODING_ASCII" id="XML_CHAR_ENCODING_ASCII">XML_CHAR_ENCODING_ASCII</a> = 22 : pure ASCII
+}
+</pre><h3><a name="xmlCharEncodingHandler" id="xmlCharEncodingHandler">Structure xmlCharEncodingHandler</a></h3><pre class="programlisting">Structure xmlCharEncodingHandler<br />struct _xmlCharEncodingHandler {
+ char * name
+ <a href="libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> input
+ <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> output
+ iconv_t iconv_in
+ iconv_t iconv_out
+ <a href="libxml-encoding.html#uconv_t">uconv_t</a> * uconv_in
+ <a href="libxml-encoding.html#uconv_t">uconv_t</a> * uconv_out
+}</pre><h3><a name="UTF8Toisolat1" id="UTF8Toisolat1"></a>Function: UTF8Toisolat1</h3><pre class="programlisting">int UTF8Toisolat1 (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen)<br />
+</pre><p>Take a block of UTF-8 chars in and try to convert it to an ISO Latin 1 block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of UTF-8 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div><h3><a name="isolat1ToUTF8" id="isolat1ToUTF8"></a>Function: isolat1ToUTF8</h3><pre class="programlisting">int isolat1ToUTF8 (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen)<br />
+</pre><p>Take a block of ISO Latin 1 chars in and try to convert it to an UTF-8 block of chars out.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of ISO Latin 1 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written if success, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div><h3><a name="xmlAddEncodingAlias" id="xmlAddEncodingAlias"></a>Function: xmlAddEncodingAlias</h3><pre class="programlisting">int xmlAddEncodingAlias (const char * name, <br /> const char * alias)<br />
+</pre><p>Registers an alias @alias for an encoding named @name. Existing alias will be overwritten.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the encoding name as parsed, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>alias</tt></i>:</span></td><td>the alias name as parsed, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlCharEncCloseFunc" id="xmlCharEncCloseFunc"></a>Function: xmlCharEncCloseFunc</h3><pre class="programlisting">int xmlCharEncCloseFunc (<a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler)<br />
+</pre><p>Generic front-end for encoding handler close function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>char encoding transformation data structure</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success, or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlCharEncFirstLine" id="xmlCharEncFirstLine"></a>Function: xmlCharEncFirstLine</h3><pre class="programlisting">int xmlCharEncFirstLine (<a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)<br />
+</pre><p>Front-end for the encoding handler input function, but handle only the very first line, i.e. limit itself to 45 chars.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>char encoding transformation data structure</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> for the output.</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> for the input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can't fit into the encoding we want), or</td></tr></tbody></table></div><h3><a name="xmlCharEncInFunc" id="xmlCharEncInFunc"></a>Function: xmlCharEncInFunc</h3><pre class="programlisting">int xmlCharEncInFunc (<a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)<br />
+</pre><p>Generic front-end for the encoding handler input function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>char encoding transformation data structure</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> for the output.</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> for the input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can't fit into the encoding we want), or</td></tr></tbody></table></div><h3><a name="xmlCharEncOutFunc" id="xmlCharEncOutFunc"></a>Function: xmlCharEncOutFunc</h3><pre class="programlisting">int xmlCharEncOutFunc (<a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)<br />
+</pre><p>Generic front-end for the encoding handler output function a first call with @in == NULL has to be made firs to initiate the output in case of non-stateless encoding needing to initiate their state or the output (like the BOM in UTF16). In case of UTF8 sequence conversion errors for the given encoder, the content will be automatically remapped to a CharRef sequence.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>char encoding transformation data structure</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> for the output.</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> for the input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can't fit into the encoding we want), or</td></tr></tbody></table></div><h3><a name="xmlCharEncodingInputFunc" id="xmlCharEncodingInputFunc"></a>Function type: xmlCharEncodingInputFunc</h3><pre class="programlisting">Function type: xmlCharEncodingInputFunc
+int xmlCharEncodingInputFunc (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen)
+</pre><p>Take a block of chars in the original encoding and try to convert it to an UTF-8 block of chars out.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the UTF-8 result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of chars in the original encoding</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets consumed.</td></tr></tbody></table></div><br />
+<h3><a name="xmlCharEncodingOutputFunc" id="xmlCharEncodingOutputFunc"></a>Function type: xmlCharEncodingOutputFunc</h3><pre class="programlisting">Function type: xmlCharEncodingOutputFunc
+int xmlCharEncodingOutputFunc (unsigned char * out, <br /> int * outlen, <br /> const unsigned char * in, <br /> int * inlen)
+</pre><p>Take a block of UTF-8 chars in and try to convert it to another encoding. Note: a first call designed to produce heading info is called with in = NULL. If stateful this should also initialize the encoder state.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a pointer to an array of bytes to store the result</td></tr><tr><td><span class="term"><i><tt>outlen</tt></i>:</span></td><td>the length of @out</td></tr><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to an array of UTF-8 chars</td></tr><tr><td><span class="term"><i><tt>inlen</tt></i>:</span></td><td>the length of @in</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets produced.</td></tr></tbody></table></div><br />
+<h3><a name="xmlCleanupCharEncodingHandlers" id="xmlCleanupCharEncodingHandlers"></a>Function: xmlCleanupCharEncodingHandlers</h3><pre class="programlisting">void xmlCleanupCharEncodingHandlers (void)<br />
+</pre><p>Cleanup the memory allocated for the char encoding support, it unregisters all the encoding handlers and the aliases.</p>
+<h3><a name="xmlCleanupEncodingAliases" id="xmlCleanupEncodingAliases"></a>Function: xmlCleanupEncodingAliases</h3><pre class="programlisting">void xmlCleanupEncodingAliases (void)<br />
+</pre><p>Unregisters all aliases</p>
+<h3><a name="xmlDelEncodingAlias" id="xmlDelEncodingAlias"></a>Function: xmlDelEncodingAlias</h3><pre class="programlisting">int xmlDelEncodingAlias (const char * alias)<br />
+</pre><p>Unregisters an encoding alias @alias</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>alias</tt></i>:</span></td><td>the alias name as parsed, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDetectCharEncoding" id="xmlDetectCharEncoding"></a>Function: xmlDetectCharEncoding</h3><pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> xmlDetectCharEncoding (const unsigned char * in, <br /> int len)<br />
+</pre><p>Guess the encoding of the entity using the first bytes of the entity content according to the non-normative appendix F of the XML-1.0 recommendation.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a pointer to the first bytes of the XML entity, must be at least 2 bytes long (at least 4 if encoding is UTF4 variant).</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>pointer to the length of the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>one of the XML_CHAR_ENCODING_... values.</td></tr></tbody></table></div><h3><a name="xmlFindCharEncodingHandler" id="xmlFindCharEncodingHandler"></a>Function: xmlFindCharEncodingHandler</h3><pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> xmlFindCharEncodingHandler (const char * name)<br />
+</pre><p>Search in the registered set the handler able to read/write that encoding.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>a string describing the char encoding.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the handler or NULL if not found</td></tr></tbody></table></div><h3><a name="xmlGetCharEncodingHandler" id="xmlGetCharEncodingHandler"></a>Function: xmlGetCharEncodingHandler</h3><pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> xmlGetCharEncodingHandler (<a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Search in the registered set the handler able to read/write that encoding.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>an <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> value.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the handler or NULL if not found</td></tr></tbody></table></div><h3><a name="xmlGetCharEncodingName" id="xmlGetCharEncodingName"></a>Function: xmlGetCharEncodingName</h3><pre class="programlisting">const char * xmlGetCharEncodingName (<a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>The "canonical" name for XML encoding. C.f. http://www.w3.org/TR/REC-xml#charencoding Section 4.3.3 Character Encoding in Entities</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the canonical name for the given encoding</td></tr></tbody></table></div><h3><a name="xmlGetEncodingAlias" id="xmlGetEncodingAlias"></a>Function: xmlGetEncodingAlias</h3><pre class="programlisting">const char * xmlGetEncodingAlias (const char * alias)<br />
+</pre><p>Lookup an encoding name for the given alias.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>alias</tt></i>:</span></td><td>the alias name as parsed, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not found, otherwise the original name</td></tr></tbody></table></div><h3><a name="xmlInitCharEncodingHandlers" id="xmlInitCharEncodingHandlers"></a>Function: xmlInitCharEncodingHandlers</h3><pre class="programlisting">void xmlInitCharEncodingHandlers (void)<br />
+</pre><p>Initialize the char encoding support, it registers the default encoding supported. NOTE: while public, this function usually doesn't need to be called in normal processing.</p>
+<h3><a name="xmlNewCharEncodingHandler" id="xmlNewCharEncodingHandler"></a>Function: xmlNewCharEncodingHandler</h3><pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> xmlNewCharEncodingHandler (const char * name, <br /> <a href="libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> input, <br /> <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> output)<br />
+</pre><p>Create and registers an xmlCharEncodingHandler.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the encoding name, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the <a href="libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> to read that encoding</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> to write that encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> created (or NULL in case of error).</td></tr></tbody></table></div><h3><a name="xmlParseCharEncoding" id="xmlParseCharEncoding"></a>Function: xmlParseCharEncoding</h3><pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> xmlParseCharEncoding (const char * name)<br />
+</pre><p>Compare the string to the encoding schemes already known. Note that the comparison is case insensitive accordingly to the section [XML] 4.3.3 Character Encoding in Entities.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the encoding name as parsed, in UTF-8 format (ASCII actually)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>one of the XML_CHAR_ENCODING_... values or <a href="libxml-encoding.html#XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a> if not recognized.</td></tr></tbody></table></div><h3><a name="xmlRegisterCharEncodingHandler" id="xmlRegisterCharEncodingHandler"></a>Function: xmlRegisterCharEncodingHandler</h3><pre class="programlisting">void xmlRegisterCharEncodingHandler (<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)<br />
+</pre><p>Register the char encoding handler, surprising, isn't it ?</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler block</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-entities.html b/libxml2-2.9.10/doc/html/libxml-entities.html
new file mode 100644
index 0000000..aa0db7f
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-entities.html
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module entities from libxml2</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></h1><h2>Module entities from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-encoding.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-encoding.html">encoding</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-globals.html">globals</a></th><td><a accesskey="n" href="libxml-globals.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>this module provides some of the entity API needed for the parser and applications. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlEntitiesTable">xmlEntitiesTable</a><br />struct _xmlHashTable
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-entities.html#xmlEntitiesTable">xmlEntitiesTable</a> * <a name="xmlEntitiesTablePtr" id="xmlEntitiesTablePtr">xmlEntitiesTablePtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlEntityType">xmlEntityType</a>
+</pre><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlAddDocEntity">xmlAddDocEntity</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlAddDtdEntity">xmlAddDtdEntity</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">void <a href="#xmlCleanupPredefinedEntities">xmlCleanupPredefinedEntities</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> <a href="#xmlCopyEntitiesTable">xmlCopyEntitiesTable</a> (<a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table)</pre>
+<pre class="programlisting"><a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> <a href="#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlDumpEntitiesTable">xmlDumpEntitiesTable</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table)</pre>
+<pre class="programlisting">void <a href="#xmlDumpEntityDecl">xmlDumpEntityDecl</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> ent)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlEncodeEntities">xmlEncodeEntities</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * input)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * input)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * input)</pre>
+<pre class="programlisting">void <a href="#xmlFreeEntitiesTable">xmlFreeEntitiesTable</a> (<a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlGetDocEntity">xmlGetDocEntity</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlGetDtdEntity">xmlGetDtdEntity</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlGetParameterEntity">xmlGetParameterEntity</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlGetPredefinedEntity">xmlGetPredefinedEntity</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#xmlInitializePredefinedEntities">xmlInitializePredefinedEntities</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlNewEntity">xmlNewEntity</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<h2>Description</h2>
+<h3><a name="xmlEntitiesTable" id="xmlEntitiesTable">Structure xmlEntitiesTable</a></h3><pre class="programlisting">Structure xmlEntitiesTable<br />struct _xmlHashTable {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlEntityType" id="xmlEntityType">xmlEntityType</a></h3><pre class="programlisting">Enum xmlEntityType {
+ <a name="XML_INTERNAL_GENERAL_ENTITY" id="XML_INTERNAL_GENERAL_ENTITY">XML_INTERNAL_GENERAL_ENTITY</a> = 1
+ <a name="XML_EXTERNAL_GENERAL_PARSED_ENTITY" id="XML_EXTERNAL_GENERAL_PARSED_ENTITY">XML_EXTERNAL_GENERAL_PARSED_ENTITY</a> = 2
+ <a name="XML_EXTERNAL_GENERAL_UNPARSED_ENTITY" id="XML_EXTERNAL_GENERAL_UNPARSED_ENTITY">XML_EXTERNAL_GENERAL_UNPARSED_ENTITY</a> = 3
+ <a name="XML_INTERNAL_PARAMETER_ENTITY" id="XML_INTERNAL_PARAMETER_ENTITY">XML_INTERNAL_PARAMETER_ENTITY</a> = 4
+ <a name="XML_EXTERNAL_PARAMETER_ENTITY" id="XML_EXTERNAL_PARAMETER_ENTITY">XML_EXTERNAL_PARAMETER_ENTITY</a> = 5
+ <a name="XML_INTERNAL_PREDEFINED_ENTITY" id="XML_INTERNAL_PREDEFINED_ENTITY">XML_INTERNAL_PREDEFINED_ENTITY</a> = 6
+}
+</pre><h3><a name="xmlAddDocEntity" id="xmlAddDocEntity"></a>Function: xmlAddDocEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlAddDocEntity (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Register a new entity for this document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type XML_xxx_yyy_ENTITY</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the entity external ID if available</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the entity system ID if available</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the entity or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAddDtdEntity" id="xmlAddDtdEntity"></a>Function: xmlAddDtdEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlAddDtdEntity (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Register a new entity for this document DTD external subset.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type XML_xxx_yyy_ENTITY</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the entity external ID if available</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the entity system ID if available</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the entity or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlCleanupPredefinedEntities" id="xmlCleanupPredefinedEntities"></a>Function: xmlCleanupPredefinedEntities</h3><pre class="programlisting">void xmlCleanupPredefinedEntities (void)<br />
+</pre><p>Cleanup up the predefined entities table. Deprecated call</p>
+<h3><a name="xmlCopyEntitiesTable" id="xmlCopyEntitiesTable"></a>Function: xmlCopyEntitiesTable</h3><pre class="programlisting"><a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> xmlCopyEntitiesTable (<a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table)<br />
+</pre><p>Build a copy of an entity table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An entity table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCreateEntitiesTable" id="xmlCreateEntitiesTable"></a>Function: xmlCreateEntitiesTable</h3><pre class="programlisting"><a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> xmlCreateEntitiesTable (void)<br />
+</pre><p>create and initialize an empty entities hash table. This really doesn't make sense and should be deprecated</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> just created or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlDumpEntitiesTable" id="xmlDumpEntitiesTable"></a>Function: xmlDumpEntitiesTable</h3><pre class="programlisting">void xmlDumpEntitiesTable (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table)<br />
+</pre><p>This will dump the content of the entity table as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>An XML buffer.</td></tr><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An entity table</td></tr></tbody></table></div><h3><a name="xmlDumpEntityDecl" id="xmlDumpEntityDecl"></a>Function: xmlDumpEntityDecl</h3><pre class="programlisting">void xmlDumpEntityDecl (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> ent)<br />
+</pre><p>This will dump the content of the entity table as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>An XML buffer.</td></tr><tr><td><span class="term"><i><tt>ent</tt></i>:</span></td><td>An entity table</td></tr></tbody></table></div><h3><a name="xmlEncodeEntities" id="xmlEncodeEntities"></a>Function: xmlEncodeEntities</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlEncodeEntities (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * input)<br />
+</pre><p>TODO: remove xmlEncodeEntities, once we are not afraid of breaking binary compatibility People must migrate their code to <a href="libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a> ! This routine will issue a warning when encountered.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document containing the string</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>A string to convert to XML.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL</td></tr></tbody></table></div><h3><a name="xmlEncodeEntitiesReentrant" id="xmlEncodeEntitiesReentrant"></a>Function: xmlEncodeEntitiesReentrant</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlEncodeEntitiesReentrant (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * input)<br />
+</pre><p>Do a global encoding of a string, replacing the predefined entities and non ASCII values with their entities and CharRef counterparts. Contrary to xmlEncodeEntities, this routine is reentrant, and result must be deallocated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document containing the string</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>A string to convert to XML.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>A newly allocated string with the substitution done.</td></tr></tbody></table></div><h3><a name="xmlEncodeSpecialChars" id="xmlEncodeSpecialChars"></a>Function: xmlEncodeSpecialChars</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlEncodeSpecialChars (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * input)<br />
+</pre><p>Do a global encoding of a string, replacing the predefined entities this routine is reentrant, and result must be deallocated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document containing the string</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>A string to convert to XML.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>A newly allocated string with the substitution done.</td></tr></tbody></table></div><h3><a name="xmlFreeEntitiesTable" id="xmlFreeEntitiesTable"></a>Function: xmlFreeEntitiesTable</h3><pre class="programlisting">void xmlFreeEntitiesTable (<a href="libxml-entities.html#xmlEntitiesTablePtr">xmlEntitiesTablePtr</a> table)<br />
+</pre><p>Deallocate the memory used by an entities hash table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An entity table</td></tr></tbody></table></div><h3><a name="xmlGetDocEntity" id="xmlGetDocEntity"></a>Function: xmlGetDocEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlGetDocEntity (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Do an entity lookup in the document entity hash table and</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document referencing the entity</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the corresponding entity, otherwise a lookup is done in the predefined entities too. Returns A pointer to the entity structure or NULL if not found.</td></tr></tbody></table></div><h3><a name="xmlGetDtdEntity" id="xmlGetDtdEntity"></a>Function: xmlGetDtdEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlGetDtdEntity (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Do an entity lookup in the DTD entity hash table and</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document referencing the entity</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the corresponding entity, if found. Note: the first argument is the document node, not the DTD node. Returns A pointer to the entity structure or NULL if not found.</td></tr></tbody></table></div><h3><a name="xmlGetParameterEntity" id="xmlGetParameterEntity"></a>Function: xmlGetParameterEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlGetParameterEntity (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Do an entity lookup in the internal and external subsets and</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document referencing the entity</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the corresponding parameter entity, if found. Returns A pointer to the entity structure or NULL if not found.</td></tr></tbody></table></div><h3><a name="xmlGetPredefinedEntity" id="xmlGetPredefinedEntity"></a>Function: xmlGetPredefinedEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlGetPredefinedEntity (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Check whether this name is an predefined entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the entity</td></tr></tbody></table></div><h3><a name="xmlInitializePredefinedEntities" id="xmlInitializePredefinedEntities"></a>Function: xmlInitializePredefinedEntities</h3><pre class="programlisting">void xmlInitializePredefinedEntities (void)<br />
+</pre><p>Set up the predefined entities. Deprecated call</p>
+<h3><a name="xmlNewEntity" id="xmlNewEntity"></a>Function: xmlNewEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlNewEntity (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Create a new entity, this differs from xmlAddDocEntity() that if the document is NULL or has no internal subset defined, then an unlinked entity structure will be returned, it is then the responsibility of the caller to link it to the document later or free it when not needed anymore.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type XML_xxx_yyy_ENTITY</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the entity external ID if available</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the entity system ID if available</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the entity or NULL in case of error</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-globals.html b/libxml2-2.9.10/doc/html/libxml-globals.html
new file mode 100644
index 0000000..3366de0
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-globals.html
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module globals from libxml2</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></h1><h2>Module globals from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-entities.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-entities.html">entities</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-hash.html">hash</a></th><td><a accesskey="n" href="libxml-hash.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>all the global variables and thread handling for those variables is handled by this module. The bottom of this file is automatically generated by build_glob.py based on the description file global.data </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlGlobalState">xmlGlobalState</a><br />struct _xmlGlobalState
+</pre><pre class="programlisting">Typedef <a href="libxml-globals.html#xmlGlobalState">xmlGlobalState</a> * <a name="xmlGlobalStatePtr" id="xmlGlobalStatePtr">xmlGlobalStatePtr</a>
+</pre><pre class="programlisting">void <a href="#xmlCleanupGlobals">xmlCleanupGlobals</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> <a href="#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a> (<a href="libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> func)</pre>
+<pre class="programlisting">Function type: <a href="#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a>
+void <a href="#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)
+</pre>
+<pre class="programlisting">void <a href="#xmlInitGlobals">xmlInitGlobals</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlInitializeGlobalState">xmlInitializeGlobalState</a> (<a href="libxml-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a> gs)</pre>
+<pre class="programlisting"><a href="libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> <a href="#xmlOutputBufferCreateFilenameDefault">xmlOutputBufferCreateFilenameDefault</a> (<a href="libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> func)</pre>
+<pre class="programlisting">Function type: <a href="#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a>
+<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder, <br /> int compression)
+</pre>
+<pre class="programlisting"><a href="libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> <a href="#xmlParserInputBufferCreateFilenameDefault">xmlParserInputBufferCreateFilenameDefault</a> (<a href="libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> func)</pre>
+<pre class="programlisting">Function type: <a href="#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a>
+<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)
+</pre>
+<pre class="programlisting"><a href="libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> <a href="#xmlRegisterNodeDefault">xmlRegisterNodeDefault</a> (<a href="libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> func)</pre>
+<pre class="programlisting">Function type: <a href="#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a>
+void <a href="#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)
+</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> <a href="#xmlThrDefBufferAllocScheme">xmlThrDefBufferAllocScheme</a> (<a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> v)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefDefaultBufferSize">xmlThrDefDefaultBufferSize</a> (int v)</pre>
+<pre class="programlisting"><a href="libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> <a href="#xmlThrDefDeregisterNodeDefault">xmlThrDefDeregisterNodeDefault</a> (<a href="libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> func)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefDoValidityCheckingDefaultValue">xmlThrDefDoValidityCheckingDefaultValue</a> (int v)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefGetWarningsDefaultValue">xmlThrDefGetWarningsDefaultValue</a> (int v)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefIndentTreeOutput">xmlThrDefIndentTreeOutput</a> (int v)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefKeepBlanksDefaultValue">xmlThrDefKeepBlanksDefaultValue</a> (int v)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefLineNumbersDefaultValue">xmlThrDefLineNumbersDefaultValue</a> (int v)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefLoadExtDtdDefaultValue">xmlThrDefLoadExtDtdDefaultValue</a> (int v)</pre>
+<pre class="programlisting"><a href="libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> <a href="#xmlThrDefOutputBufferCreateFilenameDefault">xmlThrDefOutputBufferCreateFilenameDefault</a> (<a href="libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> func)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefParserDebugEntities">xmlThrDefParserDebugEntities</a> (int v)</pre>
+<pre class="programlisting"><a href="libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> <a href="#xmlThrDefParserInputBufferCreateFilenameDefault">xmlThrDefParserInputBufferCreateFilenameDefault</a> (<a href="libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> func)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefPedanticParserDefaultValue">xmlThrDefPedanticParserDefaultValue</a> (int v)</pre>
+<pre class="programlisting"><a href="libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> <a href="#xmlThrDefRegisterNodeDefault">xmlThrDefRegisterNodeDefault</a> (<a href="libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> func)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefSaveNoEmptyTags">xmlThrDefSaveNoEmptyTags</a> (int v)</pre>
+<pre class="programlisting">void <a href="#xmlThrDefSetGenericErrorFunc">xmlThrDefSetGenericErrorFunc</a> (void * ctx, <br /> <a href="libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> handler)</pre>
+<pre class="programlisting">void <a href="#xmlThrDefSetStructuredErrorFunc">xmlThrDefSetStructuredErrorFunc</a> (void * ctx, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> handler)</pre>
+<pre class="programlisting">int <a href="#xmlThrDefSubstituteEntitiesDefaultValue">xmlThrDefSubstituteEntitiesDefaultValue</a> (int v)</pre>
+<pre class="programlisting">const char * <a href="#xmlThrDefTreeIndentString">xmlThrDefTreeIndentString</a> (const char * v)</pre>
+<h2>Description</h2>
+<h3><a name="xmlGlobalState" id="xmlGlobalState">Structure xmlGlobalState</a></h3><pre class="programlisting">Structure xmlGlobalState<br />struct _xmlGlobalState {
+ const char * xmlParserVersion
+ <a href="libxml-tree.html#xmlSAXLocator">xmlSAXLocator</a> xmlDefaultSAXLocator
+ <a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> xmlDefaultSAXHandler
+ <a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> docbDefaultSAXHandler
+ <a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> htmlDefaultSAXHandler
+ <a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> xmlFree
+ <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> xmlMalloc
+ <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> xmlMemStrdup
+ <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> xmlRealloc
+ <a href="libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> xmlGenericError
+ <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> xmlStructuredError
+ void * xmlGenericErrorContext
+ int oldXMLWDcompatibility
+ <a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> xmlBufferAllocScheme
+ int xmlDefaultBufferSize
+ int xmlSubstituteEntitiesDefaultValue
+ int xmlDoValidityCheckingDefaultValue
+ int xmlGetWarningsDefaultValue
+ int xmlKeepBlanksDefaultValue
+ int xmlLineNumbersDefaultValue
+ int xmlLoadExtDtdDefaultValue
+ int xmlParserDebugEntities
+ int xmlPedanticParserDefaultValue
+ int xmlSaveNoEmptyTags
+ int xmlIndentTreeOutput
+ const char * xmlTreeIndentString
+ <a href="libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> xmlRegisterNodeDefaultValue
+ <a href="libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> xmlDeregisterNodeDefaultValue
+ <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> xmlMallocAtomic
+ <a href="libxml-xmlerror.html#xmlError">xmlError</a> xmlLastError
+ <a href="libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> xmlParserInputBufferCreateFilenameValue
+ <a href="libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> xmlOutputBufferCreateFilenameValue
+ void * xmlStructuredErrorContext
+}</pre><h3><a name="xmlCleanupGlobals" id="xmlCleanupGlobals"></a>Function: xmlCleanupGlobals</h3><pre class="programlisting">void xmlCleanupGlobals (void)<br />
+</pre><p>Additional cleanup for multi-threading</p>
+<h3><a name="xmlDeregisterNodeDefault" id="xmlDeregisterNodeDefault"></a>Function: xmlDeregisterNodeDefault</h3><pre class="programlisting"><a href="libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> xmlDeregisterNodeDefault (<a href="libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> func)<br />
+</pre><p>Registers a callback for node destruction</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>function pointer to the new DeregisterNodeFunc</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous value of the deregistration function</td></tr></tbody></table></div><h3><a name="xmlDeregisterNodeFunc" id="xmlDeregisterNodeFunc"></a>Function type: xmlDeregisterNodeFunc</h3><pre class="programlisting">Function type: xmlDeregisterNodeFunc
+void xmlDeregisterNodeFunc (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)
+</pre><p>Signature for the deregistration callback of a discarded node</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr></tbody></table></div><br />
+<h3><a name="xmlInitGlobals" id="xmlInitGlobals"></a>Function: xmlInitGlobals</h3><pre class="programlisting">void xmlInitGlobals (void)<br />
+</pre><p>Additional initialisation for multi-threading</p>
+<h3><a name="xmlInitializeGlobalState" id="xmlInitializeGlobalState"></a>Function: xmlInitializeGlobalState</h3><pre class="programlisting">void xmlInitializeGlobalState (<a href="libxml-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a> gs)<br />
+</pre><p>xmlInitializeGlobalState() initialize a global state with all the default values of the library.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>gs</tt></i>:</span></td><td>a pointer to a newly allocated global state</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateFilenameDefault" id="xmlOutputBufferCreateFilenameDefault"></a>Function: xmlOutputBufferCreateFilenameDefault</h3><pre class="programlisting"><a href="libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> xmlOutputBufferCreateFilenameDefault (<a href="libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> func)<br />
+</pre><p>Registers a callback for URI output file handling</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>function pointer to the new OutputBufferCreateFilenameFunc</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the old value of the registration function</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateFilenameFunc" id="xmlOutputBufferCreateFilenameFunc"></a>Function type: xmlOutputBufferCreateFilenameFunc</h3><pre class="programlisting">Function type: xmlOutputBufferCreateFilenameFunc
+<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFilenameFunc (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder, <br /> int compression)
+</pre><p>Signature for the function doing the lookup for a suitable output method corresponding to an URI.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI to write to</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> in case of success or NULL if no method was found.</td></tr></tbody></table></div><br />
+<h3><a name="xmlParserInputBufferCreateFilenameDefault" id="xmlParserInputBufferCreateFilenameDefault"></a>Function: xmlParserInputBufferCreateFilenameDefault</h3><pre class="programlisting"><a href="libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> xmlParserInputBufferCreateFilenameDefault (<a href="libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> func)<br />
+</pre><p>Registers a callback for URI input file handling</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>function pointer to the new ParserInputBufferCreateFilenameFunc</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the old value of the registration function</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateFilenameFunc" id="xmlParserInputBufferCreateFilenameFunc"></a>Function type: xmlParserInputBufferCreateFilenameFunc</h3><pre class="programlisting">Function type: xmlParserInputBufferCreateFilenameFunc
+<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFilenameFunc (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)
+</pre><p>Signature for the function doing the lookup for a suitable input method corresponding to an URI.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI to read from</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the requested source encoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in case of success or NULL if no method was found.</td></tr></tbody></table></div><br />
+<h3><a name="xmlRegisterNodeDefault" id="xmlRegisterNodeDefault"></a>Function: xmlRegisterNodeDefault</h3><pre class="programlisting"><a href="libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> xmlRegisterNodeDefault (<a href="libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> func)<br />
+</pre><p>Registers a callback for node creation</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>function pointer to the new RegisterNodeFunc</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the old value of the registration function</td></tr></tbody></table></div><h3><a name="xmlRegisterNodeFunc" id="xmlRegisterNodeFunc"></a>Function type: xmlRegisterNodeFunc</h3><pre class="programlisting">Function type: xmlRegisterNodeFunc
+void xmlRegisterNodeFunc (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)
+</pre><p>Signature for the registration callback of a created node</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr></tbody></table></div><br />
+<h3><a name="xmlThrDefBufferAllocScheme" id="xmlThrDefBufferAllocScheme"></a>Function: xmlThrDefBufferAllocScheme</h3><pre class="programlisting"><a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> xmlThrDefBufferAllocScheme (<a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefDefaultBufferSize" id="xmlThrDefDefaultBufferSize"></a>Function: xmlThrDefDefaultBufferSize</h3><pre class="programlisting">int xmlThrDefDefaultBufferSize (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefDeregisterNodeDefault" id="xmlThrDefDeregisterNodeDefault"></a>Function: xmlThrDefDeregisterNodeDefault</h3><pre class="programlisting"><a href="libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> xmlThrDefDeregisterNodeDefault (<a href="libxml-globals.html#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> func)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefDoValidityCheckingDefaultValue" id="xmlThrDefDoValidityCheckingDefaultValue"></a>Function: xmlThrDefDoValidityCheckingDefaultValue</h3><pre class="programlisting">int xmlThrDefDoValidityCheckingDefaultValue (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefGetWarningsDefaultValue" id="xmlThrDefGetWarningsDefaultValue"></a>Function: xmlThrDefGetWarningsDefaultValue</h3><pre class="programlisting">int xmlThrDefGetWarningsDefaultValue (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefIndentTreeOutput" id="xmlThrDefIndentTreeOutput"></a>Function: xmlThrDefIndentTreeOutput</h3><pre class="programlisting">int xmlThrDefIndentTreeOutput (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefKeepBlanksDefaultValue" id="xmlThrDefKeepBlanksDefaultValue"></a>Function: xmlThrDefKeepBlanksDefaultValue</h3><pre class="programlisting">int xmlThrDefKeepBlanksDefaultValue (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefLineNumbersDefaultValue" id="xmlThrDefLineNumbersDefaultValue"></a>Function: xmlThrDefLineNumbersDefaultValue</h3><pre class="programlisting">int xmlThrDefLineNumbersDefaultValue (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefLoadExtDtdDefaultValue" id="xmlThrDefLoadExtDtdDefaultValue"></a>Function: xmlThrDefLoadExtDtdDefaultValue</h3><pre class="programlisting">int xmlThrDefLoadExtDtdDefaultValue (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefOutputBufferCreateFilenameDefault" id="xmlThrDefOutputBufferCreateFilenameDefault"></a>Function: xmlThrDefOutputBufferCreateFilenameDefault</h3><pre class="programlisting"><a href="libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> xmlThrDefOutputBufferCreateFilenameDefault (<a href="libxml-globals.html#xmlOutputBufferCreateFilenameFunc">xmlOutputBufferCreateFilenameFunc</a> func)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefParserDebugEntities" id="xmlThrDefParserDebugEntities"></a>Function: xmlThrDefParserDebugEntities</h3><pre class="programlisting">int xmlThrDefParserDebugEntities (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefParserInputBufferCreateFilenameDefault" id="xmlThrDefParserInputBufferCreateFilenameDefault"></a>Function: xmlThrDefParserInputBufferCreateFilenameDefault</h3><pre class="programlisting"><a href="libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> xmlThrDefParserInputBufferCreateFilenameDefault (<a href="libxml-globals.html#xmlParserInputBufferCreateFilenameFunc">xmlParserInputBufferCreateFilenameFunc</a> func)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefPedanticParserDefaultValue" id="xmlThrDefPedanticParserDefaultValue"></a>Function: xmlThrDefPedanticParserDefaultValue</h3><pre class="programlisting">int xmlThrDefPedanticParserDefaultValue (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefRegisterNodeDefault" id="xmlThrDefRegisterNodeDefault"></a>Function: xmlThrDefRegisterNodeDefault</h3><pre class="programlisting"><a href="libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> xmlThrDefRegisterNodeDefault (<a href="libxml-globals.html#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> func)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefSaveNoEmptyTags" id="xmlThrDefSaveNoEmptyTags"></a>Function: xmlThrDefSaveNoEmptyTags</h3><pre class="programlisting">int xmlThrDefSaveNoEmptyTags (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefSetGenericErrorFunc" id="xmlThrDefSetGenericErrorFunc"></a>Function: xmlThrDefSetGenericErrorFunc</h3><pre class="programlisting">void xmlThrDefSetGenericErrorFunc (void * ctx, <br /> <a href="libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> handler)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefSetStructuredErrorFunc" id="xmlThrDefSetStructuredErrorFunc"></a>Function: xmlThrDefSetStructuredErrorFunc</h3><pre class="programlisting">void xmlThrDefSetStructuredErrorFunc (void * ctx, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> handler)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefSubstituteEntitiesDefaultValue" id="xmlThrDefSubstituteEntitiesDefaultValue"></a>Function: xmlThrDefSubstituteEntitiesDefaultValue</h3><pre class="programlisting">int xmlThrDefSubstituteEntitiesDefaultValue (int v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlThrDefTreeIndentString" id="xmlThrDefTreeIndentString"></a>Function: xmlThrDefTreeIndentString</h3><pre class="programlisting">const char * xmlThrDefTreeIndentString (const char * v)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>v</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-hash.html b/libxml2-2.9.10/doc/html/libxml-hash.html
new file mode 100644
index 0000000..8458541
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-hash.html
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module hash from libxml2</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></h1><h2>Module hash from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-globals.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-globals.html">globals</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-list.html">list</a></th><td><a accesskey="n" href="libxml-list.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>This module implements the hash table support used in various places in the library. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_CAST_FPTR">XML_CAST_FPTR</a></pre><pre class="programlisting">Structure <a href="#xmlHashTable">xmlHashTable</a><br />struct _xmlHashTable
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-hash.html#xmlHashTable">xmlHashTable</a> * <a name="xmlHashTablePtr" id="xmlHashTablePtr">xmlHashTablePtr</a>
+</pre><pre class="programlisting">int <a href="#xmlHashAddEntry">xmlHashAddEntry</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> void * userdata)</pre>
+<pre class="programlisting">int <a href="#xmlHashAddEntry2">xmlHashAddEntry2</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> void * userdata)</pre>
+<pre class="programlisting">int <a href="#xmlHashAddEntry3">xmlHashAddEntry3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> void * userdata)</pre>
+<pre class="programlisting">Function type: <a href="#xmlHashCopier">xmlHashCopier</a>
+void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre>
+<pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCopy">xmlHashCopy</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashCopier">xmlHashCopier</a> f)</pre>
+<pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreate">xmlHashCreate</a> (int size)</pre>
+<pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreateDict">xmlHashCreateDict</a> (int size, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre>
+<pre class="programlisting">Function type: <a href="#xmlHashDeallocator">xmlHashDeallocator</a>
+void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre>
+<pre class="programlisting">void <a href="#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a> (void * entry, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#xmlHashFree">xmlHashFree</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)</pre>
+<pre class="programlisting">void * <a href="#xmlHashLookup">xmlHashLookup</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void * <a href="#xmlHashLookup2">xmlHashLookup2</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2)</pre>
+<pre class="programlisting">void * <a href="#xmlHashLookup3">xmlHashLookup3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3)</pre>
+<pre class="programlisting">void * <a href="#xmlHashQLookup">xmlHashQLookup</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void * <a href="#xmlHashQLookup2">xmlHashQLookup2</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2)</pre>
+<pre class="programlisting">void * <a href="#xmlHashQLookup3">xmlHashQLookup3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix3, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3)</pre>
+<pre class="programlisting">int <a href="#xmlHashRemoveEntry">xmlHashRemoveEntry</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)</pre>
+<pre class="programlisting">int <a href="#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)</pre>
+<pre class="programlisting">int <a href="#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)</pre>
+<pre class="programlisting">void <a href="#xmlHashScan">xmlHashScan</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br /> void * data)</pre>
+<pre class="programlisting">void <a href="#xmlHashScan3">xmlHashScan3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> <a href="libxml-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br /> void * data)</pre>
+<pre class="programlisting">void <a href="#xmlHashScanFull">xmlHashScanFull</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br /> void * data)</pre>
+<pre class="programlisting">void <a href="#xmlHashScanFull3">xmlHashScanFull3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br /> void * data)</pre>
+<pre class="programlisting">Function type: <a href="#xmlHashScanner">xmlHashScanner</a>
+void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlHashScannerFull">xmlHashScannerFull</a>
+void <a href="#xmlHashScannerFull">xmlHashScannerFull</a> (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3)
+</pre>
+<pre class="programlisting">int <a href="#xmlHashSize">xmlHashSize</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table)</pre>
+<pre class="programlisting">int <a href="#xmlHashUpdateEntry">xmlHashUpdateEntry</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> void * userdata, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)</pre>
+<pre class="programlisting">int <a href="#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> void * userdata, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)</pre>
+<pre class="programlisting">int <a href="#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> void * userdata, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)</pre>
+<h2>Description</h2>
+<h3><a name="XML_CAST_FPTR" id="XML_CAST_FPTR"></a>Macro: XML_CAST_FPTR</h3><pre>#define XML_CAST_FPTR</pre><p>Macro to do a casting from an object pointer to a function pointer without encountering a warning from gcc #define XML_CAST_FPTR(fptr) (*(void **)(&amp;fptr)) This macro violated ISO C aliasing rules (gcc4 on s390 broke) so it is disabled now</p>
+<h3><a name="xmlHashTable" id="xmlHashTable">Structure xmlHashTable</a></h3><pre class="programlisting">Structure xmlHashTable<br />struct _xmlHashTable {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlHashAddEntry" id="xmlHashAddEntry"></a>Function: xmlHashAddEntry</h3><pre class="programlisting">int xmlHashAddEntry (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> void * userdata)<br />
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the @name. Duplicate names generate errors.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashAddEntry2" id="xmlHashAddEntry2"></a>Function: xmlHashAddEntry2</h3><pre class="programlisting">int xmlHashAddEntry2 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> void * userdata)<br />
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Duplicate tuples generate errors.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashAddEntry3" id="xmlHashAddEntry3"></a>Function: xmlHashAddEntry3</h3><pre class="programlisting">int xmlHashAddEntry3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> void * userdata)<br />
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Duplicate entries generate errors.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashCopier" id="xmlHashCopier"></a>Function type: xmlHashCopier</h3><pre class="programlisting">Function type: xmlHashCopier
+void * xmlHashCopier (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre><p>Callback to copy data from a hash.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the data or NULL in case of error.</td></tr></tbody></table></div><br />
+<h3><a name="xmlHashCopy" id="xmlHashCopy"></a>Function: xmlHashCopy</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCopy (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashCopier">xmlHashCopier</a> f)<br />
+</pre><p>Scan the hash @table and applied @f to each value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the copier function for items in the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new table or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashCreate" id="xmlHashCreate"></a>Function: xmlHashCreate</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreate (int size)<br />
+</pre><p>Create a new xmlHashTablePtr.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlHashCreateDict" id="xmlHashCreateDict"></a>Function: xmlHashCreateDict</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreateDict (int size, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+</pre><p>Create a new <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> which will use @dict as the internal dictionary</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlHashDeallocator" id="xmlHashDeallocator"></a>Function type: xmlHashDeallocator</h3><pre class="programlisting">Function type: xmlHashDeallocator
+void xmlHashDeallocator (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre><p>Callback to free data from a hash.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div><br />
+<h3><a name="xmlHashDefaultDeallocator" id="xmlHashDefaultDeallocator"></a>Function: xmlHashDefaultDeallocator</h3><pre class="programlisting">void xmlHashDefaultDeallocator (void * entry, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Free a hash table entry with xmlFree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>entry</tt></i>:</span></td><td>the hash table entry</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entry's name</td></tr></tbody></table></div><h3><a name="xmlHashFree" id="xmlHashFree"></a>Function: xmlHashFree</h3><pre class="programlisting">void xmlHashFree (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
+</pre><p>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for items in the hash</td></tr></tbody></table></div><h3><a name="xmlHashLookup" id="xmlHashLookup"></a>Function: xmlHashLookup</h3><pre class="programlisting">void * xmlHashLookup (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Find the userdata specified by the @name.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer to the userdata</td></tr></tbody></table></div><h3><a name="xmlHashLookup2" id="xmlHashLookup2"></a>Function: xmlHashLookup2</h3><pre class="programlisting">void * xmlHashLookup2 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2)<br />
+</pre><p>Find the userdata specified by the (@name, @name2) tuple.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer to the userdata</td></tr></tbody></table></div><h3><a name="xmlHashLookup3" id="xmlHashLookup3"></a>Function: xmlHashLookup3</h3><pre class="programlisting">void * xmlHashLookup3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3)<br />
+</pre><p>Find the userdata specified by the (@name, @name2, @name3) tuple.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the a pointer to the userdata</td></tr></tbody></table></div><h3><a name="xmlHashQLookup" id="xmlHashQLookup"></a>Function: xmlHashQLookup</h3><pre class="programlisting">void * xmlHashQLookup (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Find the userdata specified by the QName @prefix:@name/@name.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer to the userdata</td></tr></tbody></table></div><h3><a name="xmlHashQLookup2" id="xmlHashQLookup2"></a>Function: xmlHashQLookup2</h3><pre class="programlisting">void * xmlHashQLookup2 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2)<br />
+</pre><p>Find the userdata specified by the QNames tuple</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>prefix2</tt></i>:</span></td><td>the second prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer to the userdata</td></tr></tbody></table></div><h3><a name="xmlHashQLookup3" id="xmlHashQLookup3"></a>Function: xmlHashQLookup3</h3><pre class="programlisting">void * xmlHashQLookup3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix3, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3)<br />
+</pre><p>Find the userdata specified by the (@name, @name2, @name3) tuple.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>prefix2</tt></i>:</span></td><td>the second prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>prefix3</tt></i>:</span></td><td>the third prefix of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the a pointer to the userdata</td></tr></tbody></table></div><h3><a name="xmlHashRemoveEntry" id="xmlHashRemoveEntry"></a>Function: xmlHashRemoveEntry</h3><pre class="programlisting">int xmlHashRemoveEntry (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
+</pre><p>Find the userdata specified by the @name and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for removed item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the removal succeeded and -1 in case of error or not found.</td></tr></tbody></table></div><h3><a name="xmlHashRemoveEntry2" id="xmlHashRemoveEntry2"></a>Function: xmlHashRemoveEntry2</h3><pre class="programlisting">int xmlHashRemoveEntry2 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
+</pre><p>Find the userdata specified by the (@name, @name2) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for removed item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the removal succeeded and -1 in case of error or not found.</td></tr></tbody></table></div><h3><a name="xmlHashRemoveEntry3" id="xmlHashRemoveEntry3"></a>Function: xmlHashRemoveEntry3</h3><pre class="programlisting">int xmlHashRemoveEntry3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
+</pre><p>Find the userdata specified by the (@name, @name2, @name3) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for removed item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the removal succeeded and -1 in case of error or not found.</td></tr></tbody></table></div><h3><a name="xmlHashScan" id="xmlHashScan"></a>Function: xmlHashScan</h3><pre class="programlisting">void xmlHashScan (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br /> void * data)<br />
+</pre><p>Scan the hash @table and applied @f to each value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div><h3><a name="xmlHashScan3" id="xmlHashScan3"></a>Function: xmlHashScan3</h3><pre class="programlisting">void xmlHashScan3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> <a href="libxml-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br /> void * data)<br />
+</pre><p>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div><h3><a name="xmlHashScanFull" id="xmlHashScanFull"></a>Function: xmlHashScanFull</h3><pre class="programlisting">void xmlHashScanFull (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br /> void * data)<br />
+</pre><p>Scan the hash @table and applied @f to each value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div><h3><a name="xmlHashScanFull3" id="xmlHashScanFull3"></a>Function: xmlHashScanFull3</h3><pre class="programlisting">void xmlHashScanFull3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br /> void * data)<br />
+</pre><p>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div><h3><a name="xmlHashScanner" id="xmlHashScanner"></a>Function type: xmlHashScanner</h3><pre class="programlisting">Function type: xmlHashScanner
+void xmlHashScanner (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre><p>Callback when scanning data in a hash with the simple scanner.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra scanner data</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div><br />
+<h3><a name="xmlHashScannerFull" id="xmlHashScannerFull"></a>Function type: xmlHashScannerFull</h3><pre class="programlisting">Function type: xmlHashScannerFull
+void xmlHashScannerFull (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3)
+</pre><p>Callback when scanning data in a hash with the full scanner.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra scanner data</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>the second name associated</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>the third name associated</td></tr></tbody></table></div><br />
+<h3><a name="xmlHashSize" id="xmlHashSize"></a>Function: xmlHashSize</h3><pre class="programlisting">int xmlHashSize (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table)<br />
+</pre><p>Query the number of elements installed in the hash @table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the hash table or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlHashUpdateEntry" id="xmlHashUpdateEntry"></a>Function: xmlHashUpdateEntry</h3><pre class="programlisting">int xmlHashUpdateEntry (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> void * userdata, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the @name. Existing entry for this @name will be removed and freed with @f if found.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for replaced item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashUpdateEntry2" id="xmlHashUpdateEntry2"></a>Function: xmlHashUpdateEntry2</h3><pre class="programlisting">int xmlHashUpdateEntry2 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> void * userdata, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Existing entry for this tuple will be removed and freed with @f if found.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for replaced item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashUpdateEntry3" id="xmlHashUpdateEntry3"></a>Function: xmlHashUpdateEntry3</h3><pre class="programlisting">int xmlHashUpdateEntry3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> void * userdata, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
+</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Existing entry for this tuple will be removed and freed with @f if found.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for replaced item (if any)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-lib.html b/libxml2-2.9.10/doc/html/libxml-lib.html
new file mode 100644
index 0000000..a869493
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-lib.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Reference Manual for libxml2</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></h1><h2>Reference Manual for libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</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>
diff --git a/libxml2-2.9.10/doc/html/libxml-list.html b/libxml2-2.9.10/doc/html/libxml-list.html
new file mode 100644
index 0000000..f17e113
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-list.html
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module list from libxml2</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></h1><h2>Module list from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-hash.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-hash.html">hash</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-nanoftp.html">nanoftp</a></th><td><a accesskey="n" href="libxml-nanoftp.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>this module implement the list support used in various place in the library. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlLink">xmlLink</a><br />struct _xmlLink
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-list.html#xmlLink">xmlLink</a> * <a name="xmlLinkPtr" id="xmlLinkPtr">xmlLinkPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlList">xmlList</a><br />struct _xmlList
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-list.html#xmlList">xmlList</a> * <a name="xmlListPtr" id="xmlListPtr">xmlListPtr</a>
+</pre><pre class="programlisting">void * <a href="#xmlLinkGetData">xmlLinkGetData</a> (<a href="libxml-list.html#xmlLinkPtr">xmlLinkPtr</a> lk)</pre>
+<pre class="programlisting">int <a href="#xmlListAppend">xmlListAppend</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
+<pre class="programlisting">void <a href="#xmlListClear">xmlListClear</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
+<pre class="programlisting">int <a href="#xmlListCopy">xmlListCopy</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> cur, <br /> const <a href="libxml-list.html#xmlListPtr">xmlListPtr</a> old)</pre>
+<pre class="programlisting"><a href="libxml-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlListCreate">xmlListCreate</a> (<a href="libxml-list.html#xmlListDeallocator">xmlListDeallocator</a> deallocator, <br /> <a href="libxml-list.html#xmlListDataCompare">xmlListDataCompare</a> compare)</pre>
+<pre class="programlisting">Function type: <a href="#xmlListDataCompare">xmlListDataCompare</a>
+int <a href="#xmlListDataCompare">xmlListDataCompare</a> (const void * data0, <br /> const void * data1)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlListDeallocator">xmlListDeallocator</a>
+void <a href="#xmlListDeallocator">xmlListDeallocator</a> (<a href="libxml-list.html#xmlLinkPtr">xmlLinkPtr</a> lk)
+</pre>
+<pre class="programlisting">void <a href="#xmlListDelete">xmlListDelete</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
+<pre class="programlisting"><a href="libxml-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlListDup">xmlListDup</a> (const <a href="libxml-list.html#xmlListPtr">xmlListPtr</a> old)</pre>
+<pre class="programlisting">int <a href="#xmlListEmpty">xmlListEmpty</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
+<pre class="programlisting"><a href="libxml-list.html#xmlLinkPtr">xmlLinkPtr</a> <a href="#xmlListEnd">xmlListEnd</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
+<pre class="programlisting"><a href="libxml-list.html#xmlLinkPtr">xmlLinkPtr</a> <a href="#xmlListFront">xmlListFront</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
+<pre class="programlisting">int <a href="#xmlListInsert">xmlListInsert</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
+<pre class="programlisting">void <a href="#xmlListMerge">xmlListMerge</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l1, <br /> <a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l2)</pre>
+<pre class="programlisting">void <a href="#xmlListPopBack">xmlListPopBack</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
+<pre class="programlisting">void <a href="#xmlListPopFront">xmlListPopFront</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
+<pre class="programlisting">int <a href="#xmlListPushBack">xmlListPushBack</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlListPushFront">xmlListPushFront</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlListRemoveAll">xmlListRemoveAll</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlListRemoveFirst">xmlListRemoveFirst</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlListRemoveLast">xmlListRemoveLast</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
+<pre class="programlisting">void <a href="#xmlListReverse">xmlListReverse</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
+<pre class="programlisting">void * <a href="#xmlListReverseSearch">xmlListReverseSearch</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
+<pre class="programlisting">void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)</pre>
+<pre class="programlisting">void * <a href="#xmlListSearch">xmlListSearch</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlListSize">xmlListSize</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
+<pre class="programlisting">void <a href="#xmlListSort">xmlListSort</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
+<pre class="programlisting">void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)</pre>
+<pre class="programlisting">Function type: <a href="#xmlListWalker">xmlListWalker</a>
+int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br /> void * user)
+</pre>
+<h2>Description</h2>
+<h3><a name="xmlLink" id="xmlLink">Structure xmlLink</a></h3><pre class="programlisting">Structure xmlLink<br />struct _xmlLink {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlList" id="xmlList">Structure xmlList</a></h3><pre class="programlisting">Structure xmlList<br />struct _xmlList {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlLinkGetData" id="xmlLinkGetData"></a>Function: xmlLinkGetData</h3><pre class="programlisting">void * xmlLinkGetData (<a href="libxml-list.html#xmlLinkPtr">xmlLinkPtr</a> lk)<br />
+</pre><p>See Returns.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>lk</tt></i>:</span></td><td>a link</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the data referenced from this link</td></tr></tbody></table></div><h3><a name="xmlListAppend" id="xmlListAppend"></a>Function: xmlListAppend</h3><pre class="programlisting">int xmlListAppend (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
+</pre><p>Insert data in the ordered list at the end for this value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, 1 in case of failure</td></tr></tbody></table></div><h3><a name="xmlListClear" id="xmlListClear"></a>Function: xmlListClear</h3><pre class="programlisting">void xmlListClear (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+</pre><p>Remove the all data in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListCopy" id="xmlListCopy"></a>Function: xmlListCopy</h3><pre class="programlisting">int xmlListCopy (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> cur, <br /> const <a href="libxml-list.html#xmlListPtr">xmlListPtr</a> old)<br />
+</pre><p>Move all the element from the old list in the new list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the new list</td></tr><tr><td><span class="term"><i><tt>old</tt></i>:</span></td><td>the old list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success 1 in case of error</td></tr></tbody></table></div><h3><a name="xmlListCreate" id="xmlListCreate"></a>Function: xmlListCreate</h3><pre class="programlisting"><a href="libxml-list.html#xmlListPtr">xmlListPtr</a> xmlListCreate (<a href="libxml-list.html#xmlListDeallocator">xmlListDeallocator</a> deallocator, <br /> <a href="libxml-list.html#xmlListDataCompare">xmlListDataCompare</a> compare)<br />
+</pre><p>Create a new list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>deallocator</tt></i>:</span></td><td>an optional deallocator function</td></tr><tr><td><span class="term"><i><tt>compare</tt></i>:</span></td><td>an optional comparison function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new list or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlListDataCompare" id="xmlListDataCompare"></a>Function type: xmlListDataCompare</h3><pre class="programlisting">Function type: xmlListDataCompare
+int xmlListDataCompare (const void * data0, <br /> const void * data1)
+</pre><p>Callback function used to compare 2 data.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>data0</tt></i>:</span></td><td>the first data</td></tr><tr><td><span class="term"><i><tt>data1</tt></i>:</span></td><td>the second data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 is equality, -1 or 1 otherwise depending on the ordering.</td></tr></tbody></table></div><br />
+<h3><a name="xmlListDeallocator" id="xmlListDeallocator"></a>Function type: xmlListDeallocator</h3><pre class="programlisting">Function type: xmlListDeallocator
+void xmlListDeallocator (<a href="libxml-list.html#xmlLinkPtr">xmlLinkPtr</a> lk)
+</pre><p>Callback function used to free data from a list.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>lk</tt></i>:</span></td><td>the data to deallocate</td></tr></tbody></table></div><br />
+<h3><a name="xmlListDelete" id="xmlListDelete"></a>Function: xmlListDelete</h3><pre class="programlisting">void xmlListDelete (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+</pre><p>Deletes the list and its associated data</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListDup" id="xmlListDup"></a>Function: xmlListDup</h3><pre class="programlisting"><a href="libxml-list.html#xmlListPtr">xmlListPtr</a> xmlListDup (const <a href="libxml-list.html#xmlListPtr">xmlListPtr</a> old)<br />
+</pre><p>Duplicate the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>old</tt></i>:</span></td><td>the list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new copy of the list or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlListEmpty" id="xmlListEmpty"></a>Function: xmlListEmpty</h3><pre class="programlisting">int xmlListEmpty (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+</pre><p>Is the list empty ?</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the list is empty, 0 if not empty and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlListEnd" id="xmlListEnd"></a>Function: xmlListEnd</h3><pre class="programlisting"><a href="libxml-list.html#xmlLinkPtr">xmlLinkPtr</a> xmlListEnd (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+</pre><p>Get the last element in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last element in the list, or NULL</td></tr></tbody></table></div><h3><a name="xmlListFront" id="xmlListFront"></a>Function: xmlListFront</h3><pre class="programlisting"><a href="libxml-list.html#xmlLinkPtr">xmlLinkPtr</a> xmlListFront (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+</pre><p>Get the first element in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the first element in the list, or NULL</td></tr></tbody></table></div><h3><a name="xmlListInsert" id="xmlListInsert"></a>Function: xmlListInsert</h3><pre class="programlisting">int xmlListInsert (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
+</pre><p>Insert data in the ordered list at the beginning for this value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, 1 in case of failure</td></tr></tbody></table></div><h3><a name="xmlListMerge" id="xmlListMerge"></a>Function: xmlListMerge</h3><pre class="programlisting">void xmlListMerge (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l1, <br /> <a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l2)<br />
+</pre><p>include all the elements of the second list in the first one and clear the second list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l1</tt></i>:</span></td><td>the original list</td></tr><tr><td><span class="term"><i><tt>l2</tt></i>:</span></td><td>the new list</td></tr></tbody></table></div><h3><a name="xmlListPopBack" id="xmlListPopBack"></a>Function: xmlListPopBack</h3><pre class="programlisting">void xmlListPopBack (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+</pre><p>Removes the last element in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListPopFront" id="xmlListPopFront"></a>Function: xmlListPopFront</h3><pre class="programlisting">void xmlListPopFront (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+</pre><p>Removes the first element in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListPushBack" id="xmlListPushBack"></a>Function: xmlListPushBack</h3><pre class="programlisting">int xmlListPushBack (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
+</pre><p>add the new data at the end of the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>new data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if successful, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlListPushFront" id="xmlListPushFront"></a>Function: xmlListPushFront</h3><pre class="programlisting">int xmlListPushFront (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
+</pre><p>add the new data at the beginning of the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>new data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if successful, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlListRemoveAll" id="xmlListRemoveAll"></a>Function: xmlListRemoveAll</h3><pre class="programlisting">int xmlListRemoveAll (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
+</pre><p>Remove the all instance associated to data in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of deallocation, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListRemoveFirst" id="xmlListRemoveFirst"></a>Function: xmlListRemoveFirst</h3><pre class="programlisting">int xmlListRemoveFirst (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
+</pre><p>Remove the first instance associated to data in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListRemoveLast" id="xmlListRemoveLast"></a>Function: xmlListRemoveLast</h3><pre class="programlisting">int xmlListRemoveLast (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
+</pre><p>Remove the last instance associated to data in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListReverse" id="xmlListReverse"></a>Function: xmlListReverse</h3><pre class="programlisting">void xmlListReverse (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+</pre><p>Reverse the order of the elements in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListReverseSearch" id="xmlListReverseSearch"></a>Function: xmlListReverseSearch</h3><pre class="programlisting">void * xmlListReverseSearch (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
+</pre><p>Search the list in reverse order for an existing value of @data</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlListReverseWalk" id="xmlListReverseWalk"></a>Function: xmlListReverseWalk</h3><pre class="programlisting">void xmlListReverseWalk (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)<br />
+</pre><p>Walk all the element of the list in reverse order and apply the walker function to it</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div><h3><a name="xmlListSearch" id="xmlListSearch"></a>Function: xmlListSearch</h3><pre class="programlisting">void * xmlListSearch (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
+</pre><p>Search the list for an existing value of @data</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlListSize" id="xmlListSize"></a>Function: xmlListSize</h3><pre class="programlisting">int xmlListSize (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+</pre><p>Get the number of elements in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the list or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlListSort" id="xmlListSort"></a>Function: xmlListSort</h3><pre class="programlisting">void xmlListSort (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+</pre><p>Sort all the elements in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListWalk" id="xmlListWalk"></a>Function: xmlListWalk</h3><pre class="programlisting">void xmlListWalk (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)<br />
+</pre><p>Walk all the element of the first from first to last and apply the walker function to it</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div><h3><a name="xmlListWalker" id="xmlListWalker"></a>Function type: xmlListWalker</h3><pre class="programlisting">Function type: xmlListWalker
+int xmlListWalker (const void * data, <br /> void * user)
+</pre><p>Callback function used when walking a list with xmlListWalk().</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data found in the list</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>extra user provided data to the walker</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 to stop walking the list, 1 otherwise.</td></tr></tbody></table></div><br />
+<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>
diff --git a/libxml2-2.9.10/doc/html/libxml-nanoftp.html b/libxml2-2.9.10/doc/html/libxml-nanoftp.html
new file mode 100644
index 0000000..3e3ac62
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-nanoftp.html
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module nanoftp from libxml2</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></h1><h2>Module nanoftp from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-list.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-list.html">list</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-nanohttp.html">nanohttp</a></th><td><a accesskey="n" href="libxml-nanohttp.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>minimal FTP implementation allowing to fetch resources like external subset. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#INVALID_SOCKET">INVALID_SOCKET</a></pre><pre class="programlisting">#define <a href="#SOCKET">SOCKET</a></pre><pre class="programlisting">Function type: <a href="#ftpDataCallback">ftpDataCallback</a>
+void <a href="#ftpDataCallback">ftpDataCallback</a> (void * userData, <br /> const char * data, <br /> int len)
+</pre>
+<pre class="programlisting">Function type: <a href="#ftpListCallback">ftpListCallback</a>
+void <a href="#ftpListCallback">ftpListCallback</a> (void * userData, <br /> const char * filename, <br /> const char * attrib, <br /> const char * owner, <br /> const char * group, <br /> unsigned long size, <br /> int links, <br /> int year, <br /> const char * month, <br /> int day, <br /> int hour, <br /> int minute)
+</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPClose">xmlNanoFTPClose</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPCloseConnection">xmlNanoFTPCloseConnection</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPConnect">xmlNanoFTPConnect</a> (void * ctx)</pre>
+<pre class="programlisting">void * <a href="#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a> (const char * server, <br /> int port)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPCwd">xmlNanoFTPCwd</a> (void * ctx, <br /> const char * directory)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPDele">xmlNanoFTPDele</a> (void * ctx, <br /> const char * file)</pre>
+<pre class="programlisting">void <a href="#xmlNanoFTPFreeCtxt">xmlNanoFTPFreeCtxt</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPGet">xmlNanoFTPGet</a> (void * ctx, <br /> <a href="libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a> callback, <br /> void * userData, <br /> const char * filename)</pre>
+<pre class="programlisting"><a href="libxml-nanoftp.html#SOCKET">SOCKET</a> <a href="#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a> (void * ctx)</pre>
+<pre class="programlisting"><a href="libxml-nanoftp.html#SOCKET">SOCKET</a> <a href="#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a> (void * ctx, <br /> const char * filename)</pre>
+<pre class="programlisting">void <a href="#xmlNanoFTPInit">xmlNanoFTPInit</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPList">xmlNanoFTPList</a> (void * ctx, <br /> <a href="libxml-nanoftp.html#ftpListCallback">ftpListCallback</a> callback, <br /> void * userData, <br /> const char * filename)</pre>
+<pre class="programlisting">void * <a href="#xmlNanoFTPNewCtxt">xmlNanoFTPNewCtxt</a> (const char * URL)</pre>
+<pre class="programlisting">void * <a href="#xmlNanoFTPOpen">xmlNanoFTPOpen</a> (const char * URL)</pre>
+<pre class="programlisting">void <a href="#xmlNanoFTPProxy">xmlNanoFTPProxy</a> (const char * host, <br /> int port, <br /> const char * user, <br /> const char * passwd, <br /> int type)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPQuit">xmlNanoFTPQuit</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPRead">xmlNanoFTPRead</a> (void * ctx, <br /> void * dest, <br /> int len)</pre>
+<pre class="programlisting">void <a href="#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a> (const char * URL)</pre>
+<pre class="programlisting">int <a href="#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a> (void * ctx, <br /> const char * URL)</pre>
+<h2>Description</h2>
+<h3><a name="INVALID_SOCKET" id="INVALID_SOCKET"></a>Macro: INVALID_SOCKET</h3><pre>#define INVALID_SOCKET</pre><p>macro used to provide portability of code to windows sockets the value to be used when the socket is not valid</p>
+<h3><a name="SOCKET" id="SOCKET"></a>Macro: SOCKET</h3><pre>#define SOCKET</pre><p>macro used to provide portability of code to windows sockets</p>
+<h3><a name="ftpDataCallback" id="ftpDataCallback"></a>Function type: ftpDataCallback</h3><pre class="programlisting">Function type: ftpDataCallback
+void ftpDataCallback (void * userData, <br /> const char * data, <br /> int len)
+</pre><p>A callback for the <a href="libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a> command.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>the user provided context</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data received</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>its size in bytes</td></tr></tbody></table></div><br />
+<h3><a name="ftpListCallback" id="ftpListCallback"></a>Function type: ftpListCallback</h3><pre class="programlisting">Function type: ftpListCallback
+void ftpListCallback (void * userData, <br /> const char * filename, <br /> const char * attrib, <br /> const char * owner, <br /> const char * group, <br /> unsigned long size, <br /> int links, <br /> int year, <br /> const char * month, <br /> int day, <br /> int hour, <br /> int minute)
+</pre><p>A callback for the <a href="libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a> command. Note that only one of year and day:minute are specified.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>user provided data for the callback</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file name (including "-&gt;" when links are shown)</td></tr><tr><td><span class="term"><i><tt>attrib</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> string</td></tr><tr><td><span class="term"><i><tt>owner</tt></i>:</span></td><td>the owner string</td></tr><tr><td><span class="term"><i><tt>group</tt></i>:</span></td><td>the group string</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the file size</td></tr><tr><td><span class="term"><i><tt>links</tt></i>:</span></td><td>the link count</td></tr><tr><td><span class="term"><i><tt>year</tt></i>:</span></td><td>the year</td></tr><tr><td><span class="term"><i><tt>month</tt></i>:</span></td><td>the month</td></tr><tr><td><span class="term"><i><tt>day</tt></i>:</span></td><td>the day</td></tr><tr><td><span class="term"><i><tt>hour</tt></i>:</span></td><td>the hour</td></tr><tr><td><span class="term"><i><tt>minute</tt></i>:</span></td><td>the minute</td></tr></tbody></table></div><br />
+<h3><a name="xmlNanoFTPCheckResponse" id="xmlNanoFTPCheckResponse"></a>Function: xmlNanoFTPCheckResponse</h3><pre class="programlisting">int xmlNanoFTPCheckResponse (void * ctx)<br />
+</pre><p>Check if there is a response from the FTP server after a command.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the code number, or 0</td></tr></tbody></table></div><h3><a name="xmlNanoFTPCleanup" id="xmlNanoFTPCleanup"></a>Function: xmlNanoFTPCleanup</h3><pre class="programlisting">void xmlNanoFTPCleanup (void)<br />
+</pre><p>Cleanup the FTP protocol layer. This cleanup proxy informations.</p>
+<h3><a name="xmlNanoFTPClose" id="xmlNanoFTPClose"></a>Function: xmlNanoFTPClose</h3><pre class="programlisting">int xmlNanoFTPClose (void * ctx)<br />
+</pre><p>Close the connection and both control and transport</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlNanoFTPCloseConnection" id="xmlNanoFTPCloseConnection"></a>Function: xmlNanoFTPCloseConnection</h3><pre class="programlisting">int xmlNanoFTPCloseConnection (void * ctx)<br />
+</pre><p>Close the data connection from the server</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlNanoFTPConnect" id="xmlNanoFTPConnect"></a>Function: xmlNanoFTPConnect</h3><pre class="programlisting">int xmlNanoFTPConnect (void * ctx)<br />
+</pre><p>Tries to open a control connection</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlNanoFTPConnectTo" id="xmlNanoFTPConnectTo"></a>Function: xmlNanoFTPConnectTo</h3><pre class="programlisting">void * xmlNanoFTPConnectTo (const char * server, <br /> int port)<br />
+</pre><p>Tries to open a control connection to the given server/port</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>server</tt></i>:</span></td><td>an FTP server name</td></tr><tr><td><span class="term"><i><tt>port</tt></i>:</span></td><td>the port (use 21 if 0)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an fTP context or NULL if it failed</td></tr></tbody></table></div><h3><a name="xmlNanoFTPCwd" id="xmlNanoFTPCwd"></a>Function: xmlNanoFTPCwd</h3><pre class="programlisting">int xmlNanoFTPCwd (void * ctx, <br /> const char * directory)<br />
+</pre><p>Tries to change the remote directory</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>directory</tt></i>:</span></td><td>a directory on the server</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 1 if CWD worked, 0 if it failed</td></tr></tbody></table></div><h3><a name="xmlNanoFTPDele" id="xmlNanoFTPDele"></a>Function: xmlNanoFTPDele</h3><pre class="programlisting">int xmlNanoFTPDele (void * ctx, <br /> const char * file)<br />
+</pre><p>Tries to delete an item (file or directory) from server</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>a file or directory on the server</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 1 if DELE worked, 0 if it failed</td></tr></tbody></table></div><h3><a name="xmlNanoFTPFreeCtxt" id="xmlNanoFTPFreeCtxt"></a>Function: xmlNanoFTPFreeCtxt</h3><pre class="programlisting">void xmlNanoFTPFreeCtxt (void * ctx)<br />
+</pre><p>Frees the context after closing the connection.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr></tbody></table></div><h3><a name="xmlNanoFTPGet" id="xmlNanoFTPGet"></a>Function: xmlNanoFTPGet</h3><pre class="programlisting">int xmlNanoFTPGet (void * ctx, <br /> <a href="libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a> callback, <br /> void * userData, <br /> const char * filename)<br />
+</pre><p>Fetch the given file from the server. All data are passed back in the callbacks. The last callback has a size of 0 block.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>callback</tt></i>:</span></td><td>the user callback</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>the user callback data</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file to retrieve</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlNanoFTPGetConnection" id="xmlNanoFTPGetConnection"></a>Function: xmlNanoFTPGetConnection</h3><pre class="programlisting"><a href="libxml-nanoftp.html#SOCKET">SOCKET</a> xmlNanoFTPGetConnection (void * ctx)<br />
+</pre><p>Try to open a data connection to the server. Currently only passive mode is supported.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlNanoFTPGetResponse" id="xmlNanoFTPGetResponse"></a>Function: xmlNanoFTPGetResponse</h3><pre class="programlisting">int xmlNanoFTPGetResponse (void * ctx)<br />
+</pre><p>Get the response from the FTP server after a command.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the code number</td></tr></tbody></table></div><h3><a name="xmlNanoFTPGetSocket" id="xmlNanoFTPGetSocket"></a>Function: xmlNanoFTPGetSocket</h3><pre class="programlisting"><a href="libxml-nanoftp.html#SOCKET">SOCKET</a> xmlNanoFTPGetSocket (void * ctx, <br /> const char * filename)<br />
+</pre><p>Initiate fetch of the given file from the server.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file to retrieve (or NULL if path is in context).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the socket for the data connection, or &lt;0 in case of error</td></tr></tbody></table></div><h3><a name="xmlNanoFTPInit" id="xmlNanoFTPInit"></a>Function: xmlNanoFTPInit</h3><pre class="programlisting">void xmlNanoFTPInit (void)<br />
+</pre><p>Initialize the FTP protocol layer. Currently it just checks for proxy informations, and get the hostname</p>
+<h3><a name="xmlNanoFTPList" id="xmlNanoFTPList"></a>Function: xmlNanoFTPList</h3><pre class="programlisting">int xmlNanoFTPList (void * ctx, <br /> <a href="libxml-nanoftp.html#ftpListCallback">ftpListCallback</a> callback, <br /> void * userData, <br /> const char * filename)<br />
+</pre><p>Do a listing on the server. All files info are passed back in the callbacks.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>callback</tt></i>:</span></td><td>the user callback</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>the user callback data</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>optional files to list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 incase of error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlNanoFTPNewCtxt" id="xmlNanoFTPNewCtxt"></a>Function: xmlNanoFTPNewCtxt</h3><pre class="programlisting">void * xmlNanoFTPNewCtxt (const char * URL)<br />
+</pre><p>Allocate and initialize a new FTP context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL used to initialize the context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an FTP context or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlNanoFTPOpen" id="xmlNanoFTPOpen"></a>Function: xmlNanoFTPOpen</h3><pre class="programlisting">void * xmlNanoFTPOpen (const char * URL)<br />
+</pre><p>Start to fetch the given ftp:// resource</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL to the resource</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an FTP context, or NULL</td></tr></tbody></table></div><h3><a name="xmlNanoFTPProxy" id="xmlNanoFTPProxy"></a>Function: xmlNanoFTPProxy</h3><pre class="programlisting">void xmlNanoFTPProxy (const char * host, <br /> int port, <br /> const char * user, <br /> const char * passwd, <br /> int type)<br />
+</pre><p>Setup the FTP proxy informations. This can also be done by using ftp_proxy ftp_proxy_user and ftp_proxy_password environment variables.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>host</tt></i>:</span></td><td>the proxy host name</td></tr><tr><td><span class="term"><i><tt>port</tt></i>:</span></td><td>the proxy port</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>the proxy user name</td></tr><tr><td><span class="term"><i><tt>passwd</tt></i>:</span></td><td>the proxy password</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of proxy 1 for using SITE, 2 for USER a@b</td></tr></tbody></table></div><h3><a name="xmlNanoFTPQuit" id="xmlNanoFTPQuit"></a>Function: xmlNanoFTPQuit</h3><pre class="programlisting">int xmlNanoFTPQuit (void * ctx)<br />
+</pre><p>Send a QUIT command to the server</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlNanoFTPRead" id="xmlNanoFTPRead"></a>Function: xmlNanoFTPRead</h3><pre class="programlisting">int xmlNanoFTPRead (void * ctx, <br /> void * dest, <br /> int len)<br />
+</pre><p>This function tries to read @len bytes from the existing FTP connection and saves them in @dest. This is a blocking call.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the FTP context</td></tr><tr><td><span class="term"><i><tt>dest</tt></i>:</span></td><td>a buffer</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the buffer length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.</td></tr></tbody></table></div><h3><a name="xmlNanoFTPScanProxy" id="xmlNanoFTPScanProxy"></a>Function: xmlNanoFTPScanProxy</h3><pre class="programlisting">void xmlNanoFTPScanProxy (const char * URL)<br />
+</pre><p>(Re)Initialize the FTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like ftp://myproxy/ or ftp://myproxy:3128/ A NULL URL cleans up proxy informations.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The proxy URL used to initialize the proxy context</td></tr></tbody></table></div><h3><a name="xmlNanoFTPUpdateURL" id="xmlNanoFTPUpdateURL"></a>Function: xmlNanoFTPUpdateURL</h3><pre class="programlisting">int xmlNanoFTPUpdateURL (void * ctx, <br /> const char * URL)<br />
+</pre><p>Update an FTP context by parsing the URL and finding new path it indicates. If there is an error in the protocol, hostname, port or other information, the error is raised. It indicates a new connection has to be established.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an FTP context</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL used to update the context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if Ok, -1 in case of error (other host).</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-nanohttp.html b/libxml2-2.9.10/doc/html/libxml-nanohttp.html
new file mode 100644
index 0000000..f507c14
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-nanohttp.html
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module nanohttp from libxml2</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></h1><h2>Module nanohttp from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-nanoftp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-nanoftp.html">nanoftp</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-parser.html">parser</a></th><td><a accesskey="n" href="libxml-parser.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>minimal HTTP implementation allowing to fetch resources like external subset. </p><h2>Table of Contents</h2><pre class="programlisting">const char * <a href="#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlNanoHTTPCleanup">xmlNanoHTTPCleanup</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlNanoHTTPClose">xmlNanoHTTPClose</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a> (void * ctx)</pre>
+<pre class="programlisting">const char * <a href="#xmlNanoHTTPEncoding">xmlNanoHTTPEncoding</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a> (const char * URL, <br /> const char * filename, <br /> char ** contentType)</pre>
+<pre class="programlisting">void <a href="#xmlNanoHTTPInit">xmlNanoHTTPInit</a> (void)</pre>
+<pre class="programlisting">void * <a href="#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a> (const char * URL, <br /> const char * method, <br /> const char * input, <br /> char ** contentType, <br /> const char * headers, <br /> int ilen)</pre>
+<pre class="programlisting">void * <a href="#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a> (const char * URL, <br /> const char * method, <br /> const char * input, <br /> char ** contentType, <br /> char ** redir, <br /> const char * headers, <br /> int ilen)</pre>
+<pre class="programlisting">const char * <a href="#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a> (void * ctx)</pre>
+<pre class="programlisting">void * <a href="#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a> (const char * URL, <br /> char ** contentType)</pre>
+<pre class="programlisting">void * <a href="#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a> (const char * URL, <br /> char ** contentType, <br /> char ** redir)</pre>
+<pre class="programlisting">int <a href="#xmlNanoHTTPRead">xmlNanoHTTPRead</a> (void * ctx, <br /> void * dest, <br /> int len)</pre>
+<pre class="programlisting">const char * <a href="#xmlNanoHTTPRedir">xmlNanoHTTPRedir</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a> (void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlNanoHTTPSave">xmlNanoHTTPSave</a> (void * ctxt, <br /> const char * filename)</pre>
+<pre class="programlisting">void <a href="#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a> (const char * URL)</pre>
+<h2>Description</h2>
+<h3><a name="xmlNanoHTTPAuthHeader" id="xmlNanoHTTPAuthHeader"></a>Function: xmlNanoHTTPAuthHeader</h3><pre class="programlisting">const char * xmlNanoHTTPAuthHeader (void * ctx)<br />
+</pre><p>Get the authentication header of an HTTP context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the stashed value of the WWW-Authenticate or Proxy-Authenticate header.</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPCleanup" id="xmlNanoHTTPCleanup"></a>Function: xmlNanoHTTPCleanup</h3><pre class="programlisting">void xmlNanoHTTPCleanup (void)<br />
+</pre><p>Cleanup the HTTP protocol layer.</p>
+<h3><a name="xmlNanoHTTPClose" id="xmlNanoHTTPClose"></a>Function: xmlNanoHTTPClose</h3><pre class="programlisting">void xmlNanoHTTPClose (void * ctx)<br />
+</pre><p>This function closes an HTTP context, it ends up the connection and free all data related to it.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPContentLength" id="xmlNanoHTTPContentLength"></a>Function: xmlNanoHTTPContentLength</h3><pre class="programlisting">int xmlNanoHTTPContentLength (void * ctx)<br />
+</pre><p>Provides the specified content length from the HTTP header.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified content length from the HTTP header. Note that a value of -1 indicates that the content length element was not included in the response header.</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPEncoding" id="xmlNanoHTTPEncoding"></a>Function: xmlNanoHTTPEncoding</h3><pre class="programlisting">const char * xmlNanoHTTPEncoding (void * ctx)<br />
+</pre><p>Provides the specified encoding if specified in the HTTP headers.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified encoding or NULL if not available</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPFetch" id="xmlNanoHTTPFetch"></a>Function: xmlNanoHTTPFetch</h3><pre class="programlisting">int xmlNanoHTTPFetch (const char * URL, <br /> const char * filename, <br /> char ** contentType)<br />
+</pre><p>This function try to fetch the indicated resource via HTTP GET and save it's content in the file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename where the content should be saved</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>if available the Content-Type information will be returned at that location</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 incase of success. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPInit" id="xmlNanoHTTPInit"></a>Function: xmlNanoHTTPInit</h3><pre class="programlisting">void xmlNanoHTTPInit (void)<br />
+</pre><p>Initialize the HTTP protocol layer. Currently it just checks for proxy informations</p>
+<h3><a name="xmlNanoHTTPMethod" id="xmlNanoHTTPMethod"></a>Function: xmlNanoHTTPMethod</h3><pre class="programlisting">void * xmlNanoHTTPMethod (const char * URL, <br /> const char * method, <br /> const char * input, <br /> char ** contentType, <br /> const char * headers, <br /> int ilen)<br />
+</pre><p>This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>method</tt></i>:</span></td><td>the HTTP method to use</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the input string if any</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>the Content-Type information IN and OUT</td></tr><tr><td><span class="term"><i><tt>headers</tt></i>:</span></td><td>the extra headers</td></tr><tr><td><span class="term"><i><tt>ilen</tt></i>:</span></td><td>input length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPMethodRedir" id="xmlNanoHTTPMethodRedir"></a>Function: xmlNanoHTTPMethodRedir</h3><pre class="programlisting">void * xmlNanoHTTPMethodRedir (const char * URL, <br /> const char * method, <br /> const char * input, <br /> char ** contentType, <br /> char ** redir, <br /> const char * headers, <br /> int ilen)<br />
+</pre><p>This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>method</tt></i>:</span></td><td>the HTTP method to use</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the input string if any</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>the Content-Type information IN and OUT</td></tr><tr><td><span class="term"><i><tt>redir</tt></i>:</span></td><td>the redirected URL OUT</td></tr><tr><td><span class="term"><i><tt>headers</tt></i>:</span></td><td>the extra headers</td></tr><tr><td><span class="term"><i><tt>ilen</tt></i>:</span></td><td>input length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, or redir, if provided must be freed by the caller</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPMimeType" id="xmlNanoHTTPMimeType"></a>Function: xmlNanoHTTPMimeType</h3><pre class="programlisting">const char * xmlNanoHTTPMimeType (void * ctx)<br />
+</pre><p>Provides the specified Mime-Type if specified in the HTTP headers.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified Mime-Type or NULL if not available</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPOpen" id="xmlNanoHTTPOpen"></a>Function: xmlNanoHTTPOpen</h3><pre class="programlisting">void * xmlNanoHTTPOpen (const char * URL, <br /> char ** contentType)<br />
+</pre><p>This function try to open a connection to the indicated resource via HTTP GET.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>if available the Content-Type information will be returned at that location</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPOpenRedir" id="xmlNanoHTTPOpenRedir"></a>Function: xmlNanoHTTPOpenRedir</h3><pre class="programlisting">void * xmlNanoHTTPOpenRedir (const char * URL, <br /> char ** contentType, <br /> char ** redir)<br />
+</pre><p>This function try to open a connection to the indicated resource via HTTP GET.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>if available the Content-Type information will be returned at that location</td></tr><tr><td><span class="term"><i><tt>redir</tt></i>:</span></td><td>if available the redirected URL will be returned</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPRead" id="xmlNanoHTTPRead"></a>Function: xmlNanoHTTPRead</h3><pre class="programlisting">int xmlNanoHTTPRead (void * ctx, <br /> void * dest, <br /> int len)<br />
+</pre><p>This function tries to read @len bytes from the existing HTTP connection and saves them in @dest. This is a blocking call.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>dest</tt></i>:</span></td><td>a buffer</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the buffer length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPRedir" id="xmlNanoHTTPRedir"></a>Function: xmlNanoHTTPRedir</h3><pre class="programlisting">const char * xmlNanoHTTPRedir (void * ctx)<br />
+</pre><p>Provides the specified redirection URL if available from the HTTP header.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified redirection URL or NULL if not redirected.</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPReturnCode" id="xmlNanoHTTPReturnCode"></a>Function: xmlNanoHTTPReturnCode</h3><pre class="programlisting">int xmlNanoHTTPReturnCode (void * ctx)<br />
+</pre><p>Get the latest HTTP return code received</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the HTTP return code for the request.</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPSave" id="xmlNanoHTTPSave"></a>Function: xmlNanoHTTPSave</h3><pre class="programlisting">int xmlNanoHTTPSave (void * ctxt, <br /> const char * filename)<br />
+</pre><p>This function saves the output of the HTTP transaction to a file It closes and free the context at the end</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename where the content should be saved</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 incase of success.</td></tr></tbody></table></div><h3><a name="xmlNanoHTTPScanProxy" id="xmlNanoHTTPScanProxy"></a>Function: xmlNanoHTTPScanProxy</h3><pre class="programlisting">void xmlNanoHTTPScanProxy (const char * URL)<br />
+</pre><p>(Re)Initialize the HTTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like http://myproxy/ or http://myproxy:3128/ A NULL URL cleans up proxy informations.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The proxy URL used to initialize the proxy context</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-parser.html b/libxml2-2.9.10/doc/html/libxml-parser.html
new file mode 100644
index 0000000..d1c320e
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-parser.html
@@ -0,0 +1,559 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module parser from libxml2</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></h1><h2>Module parser from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-nanohttp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-nanohttp.html">nanohttp</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-parserInternals.html">parserInternals</a></th><td><a accesskey="n" href="libxml-parserInternals.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>Interfaces, constants and types related to the XML parser </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a></pre><pre class="programlisting">#define <a href="#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a></pre><pre class="programlisting">#define <a href="#XML_DETECT_IDS">XML_DETECT_IDS</a></pre><pre class="programlisting">#define <a href="#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a></pre><pre class="programlisting">#define <a href="#XML_SKIP_IDS">XML_SKIP_IDS</a></pre><pre class="programlisting">Enum <a href="#xmlFeature">xmlFeature</a>
+</pre><pre class="programlisting">Enum <a href="#xmlParserInputState">xmlParserInputState</a>
+</pre><pre class="programlisting">Enum <a href="#xmlParserMode">xmlParserMode</a>
+</pre><pre class="programlisting">Structure <a href="#xmlParserNodeInfo">xmlParserNodeInfo</a><br />struct _xmlParserNodeInfo
+</pre><pre class="programlisting">Typedef <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * <a name="xmlParserNodeInfoPtr" id="xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a><br />struct _xmlParserNodeInfoSeq
+</pre><pre class="programlisting">Typedef <a href="libxml-parser.html#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a> * <a name="xmlParserNodeInfoSeqPtr" id="xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlParserOption">xmlParserOption</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSAXHandlerV1">xmlSAXHandlerV1</a><br />struct _xmlSAXHandlerV1
+</pre><pre class="programlisting">Typedef <a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a> * <a name="xmlSAXHandlerV1Ptr" id="xmlSAXHandlerV1Ptr">xmlSAXHandlerV1Ptr</a>
+</pre><pre class="programlisting">Function type: <a href="#attributeDeclSAXFunc">attributeDeclSAXFunc</a>
+void <a href="#attributeDeclSAXFunc">attributeDeclSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> int type, <br /> int def, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)
+</pre>
+<pre class="programlisting">Function type: <a href="#attributeSAXFunc">attributeSAXFunc</a>
+void <a href="#attributeSAXFunc">attributeSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)
+</pre>
+<pre class="programlisting">Function type: <a href="#cdataBlockSAXFunc">cdataBlockSAXFunc</a>
+void <a href="#cdataBlockSAXFunc">cdataBlockSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int len)
+</pre>
+<pre class="programlisting">Function type: <a href="#charactersSAXFunc">charactersSAXFunc</a>
+void <a href="#charactersSAXFunc">charactersSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)
+</pre>
+<pre class="programlisting">Function type: <a href="#commentSAXFunc">commentSAXFunc</a>
+void <a href="#commentSAXFunc">commentSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)
+</pre>
+<pre class="programlisting">Function type: <a href="#elementDeclSAXFunc">elementDeclSAXFunc</a>
+void <a href="#elementDeclSAXFunc">elementDeclSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)
+</pre>
+<pre class="programlisting">Function type: <a href="#endDocumentSAXFunc">endDocumentSAXFunc</a>
+void <a href="#endDocumentSAXFunc">endDocumentSAXFunc</a> (void * ctx)
+</pre>
+<pre class="programlisting">Function type: <a href="#endElementNsSAX2Func">endElementNsSAX2Func</a>
+void <a href="#endElementNsSAX2Func">endElementNsSAX2Func</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI)
+</pre>
+<pre class="programlisting">Function type: <a href="#endElementSAXFunc">endElementSAXFunc</a>
+void <a href="#endElementSAXFunc">endElementSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre>
+<pre class="programlisting">Function type: <a href="#entityDeclSAXFunc">entityDeclSAXFunc</a>
+void <a href="#entityDeclSAXFunc">entityDeclSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)
+</pre>
+<pre class="programlisting">Function type: <a href="#errorSAXFunc">errorSAXFunc</a>
+void <a href="#errorSAXFunc">errorSAXFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<pre class="programlisting">Function type: <a href="#externalSubsetSAXFunc">externalSubsetSAXFunc</a>
+void <a href="#externalSubsetSAXFunc">externalSubsetSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)
+</pre>
+<pre class="programlisting">Function type: <a href="#fatalErrorSAXFunc">fatalErrorSAXFunc</a>
+void <a href="#fatalErrorSAXFunc">fatalErrorSAXFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<pre class="programlisting">Function type: <a href="#getEntitySAXFunc">getEntitySAXFunc</a>
+<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#getEntitySAXFunc">getEntitySAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre>
+<pre class="programlisting">Function type: <a href="#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a>
+<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre>
+<pre class="programlisting">Function type: <a href="#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a>
+int <a href="#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a> (void * ctx)
+</pre>
+<pre class="programlisting">Function type: <a href="#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a>
+int <a href="#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a> (void * ctx)
+</pre>
+<pre class="programlisting">Function type: <a href="#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a>
+void <a href="#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)
+</pre>
+<pre class="programlisting">Function type: <a href="#internalSubsetSAXFunc">internalSubsetSAXFunc</a>
+void <a href="#internalSubsetSAXFunc">internalSubsetSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)
+</pre>
+<pre class="programlisting">Function type: <a href="#isStandaloneSAXFunc">isStandaloneSAXFunc</a>
+int <a href="#isStandaloneSAXFunc">isStandaloneSAXFunc</a> (void * ctx)
+</pre>
+<pre class="programlisting">Function type: <a href="#notationDeclSAXFunc">notationDeclSAXFunc</a>
+void <a href="#notationDeclSAXFunc">notationDeclSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)
+</pre>
+<pre class="programlisting">Function type: <a href="#processingInstructionSAXFunc">processingInstructionSAXFunc</a>
+void <a href="#processingInstructionSAXFunc">processingInstructionSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * data)
+</pre>
+<pre class="programlisting">Function type: <a href="#referenceSAXFunc">referenceSAXFunc</a>
+void <a href="#referenceSAXFunc">referenceSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre>
+<pre class="programlisting">Function type: <a href="#resolveEntitySAXFunc">resolveEntitySAXFunc</a>
+<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#resolveEntitySAXFunc">resolveEntitySAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)
+</pre>
+<pre class="programlisting">Function type: <a href="#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a>
+void <a href="#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a> (void * ctx, <br /> <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc)
+</pre>
+<pre class="programlisting">Function type: <a href="#startDocumentSAXFunc">startDocumentSAXFunc</a>
+void <a href="#startDocumentSAXFunc">startDocumentSAXFunc</a> (void * ctx)
+</pre>
+<pre class="programlisting">Function type: <a href="#startElementNsSAX2Func">startElementNsSAX2Func</a>
+void <a href="#startElementNsSAX2Func">startElementNsSAX2Func</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> int nb_namespaces, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces, <br /> int nb_attributes, <br /> int nb_defaulted, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** attributes)
+</pre>
+<pre class="programlisting">Function type: <a href="#startElementSAXFunc">startElementSAXFunc</a>
+void <a href="#startElementSAXFunc">startElementSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** atts)
+</pre>
+<pre class="programlisting">Function type: <a href="#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a>
+void <a href="#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a> (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * notationName)
+</pre>
+<pre class="programlisting">Function type: <a href="#warningSAXFunc">warningSAXFunc</a>
+void <a href="#warningSAXFunc">warningSAXFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<pre class="programlisting">long <a href="#xmlByteConsumed">xmlByteConsumed</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlCleanupParser">xmlCleanupParser</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a> (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq)</pre>
+<pre class="programlisting">void <a href="#xmlClearParserCtxt">xmlClearParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> const char * chunk, <br /> int size, <br /> const char * filename)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCtxtReadDoc">xmlCtxtReadDoc</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCtxtReadFd">xmlCtxtReadFd</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCtxtReadFile">xmlCtxtReadFile</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * filename, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCtxtReadIO">xmlCtxtReadIO</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCtxtReadMemory">xmlCtxtReadMemory</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting">void <a href="#xmlCtxtReset">xmlCtxtReset</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlCtxtResetPush">xmlCtxtResetPush</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> const char * filename, <br /> const char * encoding)</pre>
+<pre class="programlisting">int <a href="#xmlCtxtUseOptions">xmlCtxtUseOptions</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int options)</pre>
+<pre class="programlisting">Function type: <a href="#xmlExternalEntityLoader">xmlExternalEntityLoader</a>
+<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlExternalEntityLoader">xmlExternalEntityLoader</a> (const char * URL, <br /> const char * ID, <br /> <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context)
+</pre>
+<pre class="programlisting">void <a href="#xmlFreeParserCtxt">xmlFreeParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> <a href="#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlGetFeature">xmlGetFeature</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * name, <br /> void * result)</pre>
+<pre class="programlisting">int <a href="#xmlGetFeaturesList">xmlGetFeaturesList</a> (int * len, <br /> const char ** result)</pre>
+<pre class="programlisting">int <a href="#xmlHasFeature">xmlHasFeature</a> (<a href="libxml-parser.html#xmlFeature">xmlFeature</a> feature)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlIOParseDTD">xmlIOParseDTD</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting">void <a href="#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a> (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq)</pre>
+<pre class="programlisting">void <a href="#xmlInitParser">xmlInitParser</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlInitParserCtxt">xmlInitParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a> (int val)</pre>
+<pre class="programlisting">int <a href="#xmlLineNumbersDefault">xmlLineNumbersDefault</a> (int val)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlLoadExternalEntity">xmlLoadExternalEntity</a> (const char * URL, <br /> const char * ID, <br /> <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNewIOInputStream">xmlNewIOInputStream</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlNewParserCtxt">xmlNewParserCtxt</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> int depth, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * string, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)</pre>
+<pre class="programlisting">int <a href="#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> int depth, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * string, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst, <br /> int recover)</pre>
+<pre class="programlisting">int <a href="#xmlParseChunk">xmlParseChunk</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> int terminate)</pre>
+<pre class="programlisting">int <a href="#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URL, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlParseDTD">xmlParseDTD</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseDoc">xmlParseDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)</pre>
+<pre class="programlisting">int <a href="#xmlParseDocument">xmlParseDocument</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseEntity">xmlParseEntity</a> (const char * filename)</pre>
+<pre class="programlisting">int <a href="#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlParseExternalEntity">xmlParseExternalEntity</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> int depth, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URL, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseFile">xmlParseFile</a> (const char * filename)</pre>
+<pre class="programlisting"><a href="libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a> <a href="#xmlParseInNodeContext">xmlParseInNodeContext</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const char * data, <br /> int datalen, <br /> int options, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseMemory">xmlParseMemory</a> (const char * buffer, <br /> int size)</pre>
+<pre class="programlisting">void <a href="#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info)</pre>
+<pre class="programlisting">const <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * <a href="#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a> (const <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx, <br /> const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">unsigned long <a href="#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a> (const <a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq, <br /> const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">Function type: <a href="#xmlParserInputDeallocate">xmlParserInputDeallocate</a>
+void <a href="#xmlParserInputDeallocate">xmlParserInputDeallocate</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)
+</pre>
+<pre class="programlisting">int <a href="#xmlParserInputGrow">xmlParserInputGrow</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlParserInputRead">xmlParserInputRead</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlPedanticParserDefault">xmlPedanticParserDefault</a> (int val)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlReadDoc">xmlReadDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlReadFd">xmlReadFd</a> (int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlReadFile">xmlReadFile</a> (const char * filename, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlReadIO">xmlReadIO</a> (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlReadMemory">xmlReadMemory</a> (const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlRecoverDoc">xmlRecoverDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlRecoverFile">xmlRecoverFile</a> (const char * filename)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlRecoverMemory">xmlRecoverMemory</a> (const char * buffer, <br /> int size)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlSAXParseDTD">xmlSAXParseDTD</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseDoc">xmlSAXParseDoc</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> int recovery)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseEntity">xmlSAXParseEntity</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * filename)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseFile">xmlSAXParseFile</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * filename, <br /> int recovery)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * filename, <br /> int recovery, <br /> void * data)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseMemory">xmlSAXParseMemory</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * buffer, <br /> int size, <br /> int recovery)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * buffer, <br /> int size, <br /> int recovery, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlSAXUserParseFile">xmlSAXUserParseFile</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> const char * filename)</pre>
+<pre class="programlisting">int <a href="#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> const char * buffer, <br /> int size)</pre>
+<pre class="programlisting">void <a href="#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a> (<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> f)</pre>
+<pre class="programlisting">int <a href="#xmlSetFeature">xmlSetFeature</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * name, <br /> void * value)</pre>
+<pre class="programlisting">void <a href="#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buffer, <br /> const char * filename)</pre>
+<pre class="programlisting">void <a href="#xmlStopParser">xmlStopParser</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a> (int val)</pre>
+<h2>Description</h2>
+<h3><a name="XML_COMPLETE_ATTRS" id="XML_COMPLETE_ATTRS"></a>Macro: XML_COMPLETE_ATTRS</h3><pre>#define XML_COMPLETE_ATTRS</pre><p>Bit in the loadsubset context field to tell to do complete the elements attributes lists with the ones defaulted from the DTDs. Use it to initialize xmlLoadExtDtdDefaultValue.</p>
+<h3><a name="XML_DEFAULT_VERSION" id="XML_DEFAULT_VERSION"></a>Macro: XML_DEFAULT_VERSION</h3><pre>#define XML_DEFAULT_VERSION</pre><p>The default version of XML used: 1.0</p>
+<h3><a name="XML_DETECT_IDS" id="XML_DETECT_IDS"></a>Macro: XML_DETECT_IDS</h3><pre>#define XML_DETECT_IDS</pre><p>Bit in the loadsubset context field to tell to do ID/REFs lookups. Use it to initialize xmlLoadExtDtdDefaultValue.</p>
+<h3><a name="XML_SAX2_MAGIC" id="XML_SAX2_MAGIC"></a>Macro: XML_SAX2_MAGIC</h3><pre>#define XML_SAX2_MAGIC</pre><p>Special constant found in SAX2 blocks initialized fields</p>
+<h3><a name="XML_SKIP_IDS" id="XML_SKIP_IDS"></a>Macro: XML_SKIP_IDS</h3><pre>#define XML_SKIP_IDS</pre><p>Bit in the loadsubset context field to tell to not do ID/REFs registration. Used to initialize <a href="libxml-globals.html#xmlLoadExtDtdDefaultValue">xmlLoadExtDtdDefaultValue</a> in some special cases.</p>
+<h3>Enum <a name="xmlFeature" id="xmlFeature">xmlFeature</a></h3><pre class="programlisting">Enum xmlFeature {
+ <a name="XML_WITH_THREAD" id="XML_WITH_THREAD">XML_WITH_THREAD</a> = 1
+ <a name="XML_WITH_TREE" id="XML_WITH_TREE">XML_WITH_TREE</a> = 2
+ <a name="XML_WITH_OUTPUT" id="XML_WITH_OUTPUT">XML_WITH_OUTPUT</a> = 3
+ <a name="XML_WITH_PUSH" id="XML_WITH_PUSH">XML_WITH_PUSH</a> = 4
+ <a name="XML_WITH_READER" id="XML_WITH_READER">XML_WITH_READER</a> = 5
+ <a name="XML_WITH_PATTERN" id="XML_WITH_PATTERN">XML_WITH_PATTERN</a> = 6
+ <a name="XML_WITH_WRITER" id="XML_WITH_WRITER">XML_WITH_WRITER</a> = 7
+ <a name="XML_WITH_SAX1" id="XML_WITH_SAX1">XML_WITH_SAX1</a> = 8
+ <a name="XML_WITH_FTP" id="XML_WITH_FTP">XML_WITH_FTP</a> = 9
+ <a name="XML_WITH_HTTP" id="XML_WITH_HTTP">XML_WITH_HTTP</a> = 10
+ <a name="XML_WITH_VALID" id="XML_WITH_VALID">XML_WITH_VALID</a> = 11
+ <a name="XML_WITH_HTML" id="XML_WITH_HTML">XML_WITH_HTML</a> = 12
+ <a name="XML_WITH_LEGACY" id="XML_WITH_LEGACY">XML_WITH_LEGACY</a> = 13
+ <a name="XML_WITH_C14N" id="XML_WITH_C14N">XML_WITH_C14N</a> = 14
+ <a name="XML_WITH_CATALOG" id="XML_WITH_CATALOG">XML_WITH_CATALOG</a> = 15
+ <a name="XML_WITH_XPATH" id="XML_WITH_XPATH">XML_WITH_XPATH</a> = 16
+ <a name="XML_WITH_XPTR" id="XML_WITH_XPTR">XML_WITH_XPTR</a> = 17
+ <a name="XML_WITH_XINCLUDE" id="XML_WITH_XINCLUDE">XML_WITH_XINCLUDE</a> = 18
+ <a name="XML_WITH_ICONV" id="XML_WITH_ICONV">XML_WITH_ICONV</a> = 19
+ <a name="XML_WITH_ISO8859X" id="XML_WITH_ISO8859X">XML_WITH_ISO8859X</a> = 20
+ <a name="XML_WITH_UNICODE" id="XML_WITH_UNICODE">XML_WITH_UNICODE</a> = 21
+ <a name="XML_WITH_REGEXP" id="XML_WITH_REGEXP">XML_WITH_REGEXP</a> = 22
+ <a name="XML_WITH_AUTOMATA" id="XML_WITH_AUTOMATA">XML_WITH_AUTOMATA</a> = 23
+ <a name="XML_WITH_EXPR" id="XML_WITH_EXPR">XML_WITH_EXPR</a> = 24
+ <a name="XML_WITH_SCHEMAS" id="XML_WITH_SCHEMAS">XML_WITH_SCHEMAS</a> = 25
+ <a name="XML_WITH_SCHEMATRON" id="XML_WITH_SCHEMATRON">XML_WITH_SCHEMATRON</a> = 26
+ <a name="XML_WITH_MODULES" id="XML_WITH_MODULES">XML_WITH_MODULES</a> = 27
+ <a name="XML_WITH_DEBUG" id="XML_WITH_DEBUG">XML_WITH_DEBUG</a> = 28
+ <a name="XML_WITH_DEBUG_MEM" id="XML_WITH_DEBUG_MEM">XML_WITH_DEBUG_MEM</a> = 29
+ <a name="XML_WITH_DEBUG_RUN" id="XML_WITH_DEBUG_RUN">XML_WITH_DEBUG_RUN</a> = 30
+ <a name="XML_WITH_ZLIB" id="XML_WITH_ZLIB">XML_WITH_ZLIB</a> = 31
+ <a name="XML_WITH_ICU" id="XML_WITH_ICU">XML_WITH_ICU</a> = 32
+ <a name="XML_WITH_LZMA" id="XML_WITH_LZMA">XML_WITH_LZMA</a> = 33
+ <a name="XML_WITH_NONE" id="XML_WITH_NONE">XML_WITH_NONE</a> = 99999 : just to be sure of allocation size
+}
+</pre><h3>Enum <a name="xmlParserInputState" id="xmlParserInputState">xmlParserInputState</a></h3><pre class="programlisting">Enum xmlParserInputState {
+ <a name="XML_PARSER_EOF" id="XML_PARSER_EOF">XML_PARSER_EOF</a> = -1 : nothing is to be parsed
+ <a name="XML_PARSER_START" id="XML_PARSER_START">XML_PARSER_START</a> = 0 : nothing has been parsed
+ <a name="XML_PARSER_MISC" id="XML_PARSER_MISC">XML_PARSER_MISC</a> = 1 : Misc* before int subset
+ <a name="XML_PARSER_PI" id="XML_PARSER_PI">XML_PARSER_PI</a> = 2 : Within a processing instruction
+ <a name="XML_PARSER_DTD" id="XML_PARSER_DTD">XML_PARSER_DTD</a> = 3 : within some DTD content
+ <a name="XML_PARSER_PROLOG" id="XML_PARSER_PROLOG">XML_PARSER_PROLOG</a> = 4 : Misc* after internal subset
+ <a name="XML_PARSER_COMMENT" id="XML_PARSER_COMMENT">XML_PARSER_COMMENT</a> = 5 : within a <a href="libxml-SAX.html#comment">comment</a>
+ <a name="XML_PARSER_START_TAG" id="XML_PARSER_START_TAG">XML_PARSER_START_TAG</a> = 6 : within a start tag
+ <a name="XML_PARSER_CONTENT" id="XML_PARSER_CONTENT">XML_PARSER_CONTENT</a> = 7 : within the content
+ <a name="XML_PARSER_CDATA_SECTION" id="XML_PARSER_CDATA_SECTION">XML_PARSER_CDATA_SECTION</a> = 8 : within a CDATA section
+ <a name="XML_PARSER_END_TAG" id="XML_PARSER_END_TAG">XML_PARSER_END_TAG</a> = 9 : within a closing tag
+ <a name="XML_PARSER_ENTITY_DECL" id="XML_PARSER_ENTITY_DECL">XML_PARSER_ENTITY_DECL</a> = 10 : within an entity declaration
+ <a name="XML_PARSER_ENTITY_VALUE" id="XML_PARSER_ENTITY_VALUE">XML_PARSER_ENTITY_VALUE</a> = 11 : within an entity value in a decl
+ <a name="XML_PARSER_ATTRIBUTE_VALUE" id="XML_PARSER_ATTRIBUTE_VALUE">XML_PARSER_ATTRIBUTE_VALUE</a> = 12 : within an <a href="libxml-SAX.html#attribute">attribute</a> value
+ <a name="XML_PARSER_SYSTEM_LITERAL" id="XML_PARSER_SYSTEM_LITERAL">XML_PARSER_SYSTEM_LITERAL</a> = 13 : within a SYSTEM value
+ <a name="XML_PARSER_EPILOG" id="XML_PARSER_EPILOG">XML_PARSER_EPILOG</a> = 14 : the Misc* after the last end tag
+ <a name="XML_PARSER_IGNORE" id="XML_PARSER_IGNORE">XML_PARSER_IGNORE</a> = 15 : within an IGNORED section
+ <a name="XML_PARSER_PUBLIC_LITERAL" id="XML_PARSER_PUBLIC_LITERAL">XML_PARSER_PUBLIC_LITERAL</a> = 16 : within a PUBLIC value
+}
+</pre><h3>Enum <a name="xmlParserMode" id="xmlParserMode">xmlParserMode</a></h3><pre class="programlisting">Enum xmlParserMode {
+ <a name="XML_PARSE_UNKNOWN" id="XML_PARSE_UNKNOWN">XML_PARSE_UNKNOWN</a> = 0
+ <a name="XML_PARSE_DOM" id="XML_PARSE_DOM">XML_PARSE_DOM</a> = 1
+ <a name="XML_PARSE_SAX" id="XML_PARSE_SAX">XML_PARSE_SAX</a> = 2
+ <a name="XML_PARSE_PUSH_DOM" id="XML_PARSE_PUSH_DOM">XML_PARSE_PUSH_DOM</a> = 3
+ <a name="XML_PARSE_PUSH_SAX" id="XML_PARSE_PUSH_SAX">XML_PARSE_PUSH_SAX</a> = 4
+ <a name="XML_PARSE_READER" id="XML_PARSE_READER">XML_PARSE_READER</a> = 5
+}
+</pre><h3><a name="xmlParserNodeInfo" id="xmlParserNodeInfo">Structure xmlParserNodeInfo</a></h3><pre class="programlisting">Structure xmlParserNodeInfo<br />struct _xmlParserNodeInfo {
+ const struct _xmlNode * node : Position &amp; line # that text that create
+ unsigned long begin_pos
+ unsigned long begin_line
+ unsigned long end_pos
+ unsigned long end_line
+}</pre><h3><a name="xmlParserNodeInfoSeq" id="xmlParserNodeInfoSeq">Structure xmlParserNodeInfoSeq</a></h3><pre class="programlisting">Structure xmlParserNodeInfoSeq<br />struct _xmlParserNodeInfoSeq {
+ unsigned long maximum
+ unsigned long length
+ <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * buffer
+}</pre><h3>Enum <a name="xmlParserOption" id="xmlParserOption">xmlParserOption</a></h3><pre class="programlisting">Enum xmlParserOption {
+ <a name="XML_PARSE_RECOVER" id="XML_PARSE_RECOVER">XML_PARSE_RECOVER</a> = 1 : recover on errors
+ <a name="XML_PARSE_NOENT" id="XML_PARSE_NOENT">XML_PARSE_NOENT</a> = 2 : substitute entities
+ <a name="XML_PARSE_DTDLOAD" id="XML_PARSE_DTDLOAD">XML_PARSE_DTDLOAD</a> = 4 : load the external subset
+ <a name="XML_PARSE_DTDATTR" id="XML_PARSE_DTDATTR">XML_PARSE_DTDATTR</a> = 8 : default DTD attributes
+ <a name="XML_PARSE_DTDVALID" id="XML_PARSE_DTDVALID">XML_PARSE_DTDVALID</a> = 16 : validate with the DTD
+ <a name="XML_PARSE_NOERROR" id="XML_PARSE_NOERROR">XML_PARSE_NOERROR</a> = 32 : suppress error reports
+ <a name="XML_PARSE_NOWARNING" id="XML_PARSE_NOWARNING">XML_PARSE_NOWARNING</a> = 64 : suppress warning reports
+ <a name="XML_PARSE_PEDANTIC" id="XML_PARSE_PEDANTIC">XML_PARSE_PEDANTIC</a> = 128 : pedantic error reporting
+ <a name="XML_PARSE_NOBLANKS" id="XML_PARSE_NOBLANKS">XML_PARSE_NOBLANKS</a> = 256 : remove blank nodes
+ <a name="XML_PARSE_SAX1" id="XML_PARSE_SAX1">XML_PARSE_SAX1</a> = 512 : use the SAX1 interface internally
+ <a name="XML_PARSE_XINCLUDE" id="XML_PARSE_XINCLUDE">XML_PARSE_XINCLUDE</a> = 1024 : Implement XInclude substitution
+ <a name="XML_PARSE_NONET" id="XML_PARSE_NONET">XML_PARSE_NONET</a> = 2048 : Forbid network access
+ <a name="XML_PARSE_NODICT" id="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 : Do not reuse the context dictionary
+ <a name="XML_PARSE_NSCLEAN" id="XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a> = 8192 : remove redundant namespaces declarations
+ <a name="XML_PARSE_NOCDATA" id="XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a> = 16384 : merge CDATA as text nodes
+ <a name="XML_PARSE_NOXINCNODE" id="XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a> = 32768 : do not generate XINCLUDE START/END nodes
+ <a name="XML_PARSE_COMPACT" id="XML_PARSE_COMPACT">XML_PARSE_COMPACT</a> = 65536 : compact small text nodes; no modification of the tree allowed afterwards (will possibly crash if you try to modify the tree)
+ <a name="XML_PARSE_OLD10" id="XML_PARSE_OLD10">XML_PARSE_OLD10</a> = 131072 : parse using XML-1.0 before update 5
+ <a name="XML_PARSE_NOBASEFIX" id="XML_PARSE_NOBASEFIX">XML_PARSE_NOBASEFIX</a> = 262144 : do not fixup XINCLUDE xml:base uris
+ <a name="XML_PARSE_HUGE" id="XML_PARSE_HUGE">XML_PARSE_HUGE</a> = 524288 : relax any hardcoded limit from the parser
+ <a name="XML_PARSE_OLDSAX" id="XML_PARSE_OLDSAX">XML_PARSE_OLDSAX</a> = 1048576 : parse using SAX2 interface before 2.7.0
+ <a name="XML_PARSE_IGNORE_ENC" id="XML_PARSE_IGNORE_ENC">XML_PARSE_IGNORE_ENC</a> = 2097152 : ignore internal document encoding hint
+ <a name="XML_PARSE_BIG_LINES" id="XML_PARSE_BIG_LINES">XML_PARSE_BIG_LINES</a> = 4194304 : Store big lines numbers in text PSVI field
+}
+</pre><h3><a name="xmlSAXHandlerV1" id="xmlSAXHandlerV1">Structure xmlSAXHandlerV1</a></h3><pre class="programlisting">Structure xmlSAXHandlerV1<br />struct _xmlSAXHandlerV1 {
+ <a href="libxml-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a> internalSubset
+ <a href="libxml-parser.html#isStandaloneSAXFunc">isStandaloneSAXFunc</a> isStandalone
+ <a href="libxml-parser.html#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a> hasInternalSubset
+ <a href="libxml-parser.html#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a> hasExternalSubset
+ <a href="libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a> resolveEntity
+ <a href="libxml-parser.html#getEntitySAXFunc">getEntitySAXFunc</a> getEntity
+ <a href="libxml-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a> entityDecl
+ <a href="libxml-parser.html#notationDeclSAXFunc">notationDeclSAXFunc</a> notationDecl
+ <a href="libxml-parser.html#attributeDeclSAXFunc">attributeDeclSAXFunc</a> attributeDecl
+ <a href="libxml-parser.html#elementDeclSAXFunc">elementDeclSAXFunc</a> elementDecl
+ <a href="libxml-parser.html#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a> unparsedEntityDecl
+ <a href="libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a> setDocumentLocator
+ <a href="libxml-parser.html#startDocumentSAXFunc">startDocumentSAXFunc</a> startDocument
+ <a href="libxml-parser.html#endDocumentSAXFunc">endDocumentSAXFunc</a> endDocument
+ <a href="libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a> startElement
+ <a href="libxml-parser.html#endElementSAXFunc">endElementSAXFunc</a> endElement
+ <a href="libxml-parser.html#referenceSAXFunc">referenceSAXFunc</a> reference
+ <a href="libxml-parser.html#charactersSAXFunc">charactersSAXFunc</a> characters
+ <a href="libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a> ignorableWhitespace
+ <a href="libxml-parser.html#processingInstructionSAXFunc">processingInstructionSAXFunc</a> processingInstruction
+ <a href="libxml-parser.html#commentSAXFunc">commentSAXFunc</a> comment
+ <a href="libxml-parser.html#warningSAXFunc">warningSAXFunc</a> warning
+ <a href="libxml-parser.html#errorSAXFunc">errorSAXFunc</a> error
+ <a href="libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a> fatalError : unused error() get all the errors
+ <a href="libxml-parser.html#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a> getParameterEntity
+ <a href="libxml-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a> cdataBlock
+ <a href="libxml-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a> externalSubset
+ unsigned int initialized
+}</pre><h3><a name="attributeDeclSAXFunc" id="attributeDeclSAXFunc"></a>Function type: attributeDeclSAXFunc</h3><pre class="programlisting">Function type: attributeDeclSAXFunc
+void attributeDeclSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * fullname, <br /> int type, <br /> int def, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)
+</pre><p>An <a href="libxml-SAX.html#attribute">attribute</a> definition has been parsed.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> type</td></tr><tr><td><span class="term"><i><tt>def</tt></i>:</span></td><td>the type of default value</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> default value</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the tree of enumerated value set</td></tr></tbody></table></div><br />
+<h3><a name="attributeSAXFunc" id="attributeSAXFunc"></a>Function type: attributeSAXFunc</h3><pre class="programlisting">Function type: attributeSAXFunc
+void attributeSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)
+</pre><p>Handle an <a href="libxml-SAX.html#attribute">attribute</a> that has been read by the parser. The default handling is to convert the <a href="libxml-SAX.html#attribute">attribute</a> into an DOM subtree and past it in a new <a href="libxml-tree.html#xmlAttr">xmlAttr</a> element added to the element.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The <a href="libxml-SAX.html#attribute">attribute</a> name, including namespace prefix</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>The <a href="libxml-SAX.html#attribute">attribute</a> value</td></tr></tbody></table></div><br />
+<h3><a name="cdataBlockSAXFunc" id="cdataBlockSAXFunc"></a>Function type: cdataBlockSAXFunc</h3><pre class="programlisting">Function type: cdataBlockSAXFunc
+void cdataBlockSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int len)
+</pre><p>Called when a pcdata block has been parsed.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>The pcdata content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the block length</td></tr></tbody></table></div><br />
+<h3><a name="charactersSAXFunc" id="charactersSAXFunc"></a>Function type: charactersSAXFunc</h3><pre class="programlisting">Function type: charactersSAXFunc
+void charactersSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)
+</pre><p>Receiving some chars from the parser.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div><br />
+<h3><a name="commentSAXFunc" id="commentSAXFunc"></a>Function type: commentSAXFunc</h3><pre class="programlisting">Function type: commentSAXFunc
+void commentSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)
+</pre><p>A <a href="libxml-SAX.html#comment">comment</a> has been parsed.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml-SAX.html#comment">comment</a> content</td></tr></tbody></table></div><br />
+<h3><a name="elementDeclSAXFunc" id="elementDeclSAXFunc"></a>Function type: elementDeclSAXFunc</h3><pre class="programlisting">Function type: elementDeclSAXFunc
+void elementDeclSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)
+</pre><p>An element definition has been parsed.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the element type</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the element value tree</td></tr></tbody></table></div><br />
+<h3><a name="endDocumentSAXFunc" id="endDocumentSAXFunc"></a>Function type: endDocumentSAXFunc</h3><pre class="programlisting">Function type: endDocumentSAXFunc
+void endDocumentSAXFunc (void * ctx)
+</pre><p>Called when the document end has been detected.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div><br />
+<h3><a name="endElementNsSAX2Func" id="endElementNsSAX2Func"></a>Function type: endElementNsSAX2Func</h3><pre class="programlisting">Function type: endElementNsSAX2Func
+void endElementNsSAX2Func (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI)
+</pre><p>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>localname</tt></i>:</span></td><td>the local name of the element</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the element namespace prefix if available</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace name if available</td></tr></tbody></table></div><br />
+<h3><a name="endElementSAXFunc" id="endElementSAXFunc"></a>Function type: endElementSAXFunc</h3><pre class="programlisting">Function type: endElementSAXFunc
+void endElementSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre><p>Called when the end of an element has been detected.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The element name</td></tr></tbody></table></div><br />
+<h3><a name="entityDeclSAXFunc" id="entityDeclSAXFunc"></a>Function type: entityDeclSAXFunc</h3><pre class="programlisting">Function type: entityDeclSAXFunc
+void entityDeclSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)
+</pre><p>An entity definition has been parsed.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the entity type</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the entity value (without processing).</td></tr></tbody></table></div><br />
+<h3><a name="errorSAXFunc" id="errorSAXFunc"></a>Function type: errorSAXFunc</h3><pre class="programlisting">Function type: errorSAXFunc
+void errorSAXFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Display and format an error messages, callback.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div><br />
+<h3><a name="externalSubsetSAXFunc" id="externalSubsetSAXFunc"></a>Function type: externalSubsetSAXFunc</h3><pre class="programlisting">Function type: externalSubsetSAXFunc
+void externalSubsetSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)
+</pre><p>Callback on external subset declaration.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div><br />
+<h3><a name="fatalErrorSAXFunc" id="fatalErrorSAXFunc"></a>Function type: fatalErrorSAXFunc</h3><pre class="programlisting">Function type: fatalErrorSAXFunc
+void fatalErrorSAXFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Display and format fatal error messages, callback. Note: so far fatalError() SAX callbacks are not used, error() get all the callbacks for errors.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div><br />
+<h3><a name="getEntitySAXFunc" id="getEntitySAXFunc"></a>Function type: getEntitySAXFunc</h3><pre class="programlisting">Function type: getEntitySAXFunc
+<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> getEntitySAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre><p>Get an entity by name.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div><br />
+<h3><a name="getParameterEntitySAXFunc" id="getParameterEntitySAXFunc"></a>Function type: getParameterEntitySAXFunc</h3><pre class="programlisting">Function type: getParameterEntitySAXFunc
+<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> getParameterEntitySAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre><p>Get a parameter entity by name.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found.</td></tr></tbody></table></div><br />
+<h3><a name="hasExternalSubsetSAXFunc" id="hasExternalSubsetSAXFunc"></a>Function type: hasExternalSubsetSAXFunc</h3><pre class="programlisting">Function type: hasExternalSubsetSAXFunc
+int hasExternalSubsetSAXFunc (void * ctx)
+</pre><p>Does this document has an external subset?</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div><br />
+<h3><a name="hasInternalSubsetSAXFunc" id="hasInternalSubsetSAXFunc"></a>Function type: hasInternalSubsetSAXFunc</h3><pre class="programlisting">Function type: hasInternalSubsetSAXFunc
+int hasInternalSubsetSAXFunc (void * ctx)
+</pre><p>Does this document has an internal subset.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div><br />
+<h3><a name="ignorableWhitespaceSAXFunc" id="ignorableWhitespaceSAXFunc"></a>Function type: ignorableWhitespaceSAXFunc</h3><pre class="programlisting">Function type: ignorableWhitespaceSAXFunc
+void ignorableWhitespaceSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ch, <br /> int len)
+</pre><p>Receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use characters.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr></tbody></table></div><br />
+<h3><a name="internalSubsetSAXFunc" id="internalSubsetSAXFunc"></a>Function type: internalSubsetSAXFunc</h3><pre class="programlisting">Function type: internalSubsetSAXFunc
+void internalSubsetSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)
+</pre><p>Callback on internal subset declaration.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the root element name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the SYSTEM ID (e.g. filename or URL)</td></tr></tbody></table></div><br />
+<h3><a name="isStandaloneSAXFunc" id="isStandaloneSAXFunc"></a>Function type: isStandaloneSAXFunc</h3><pre class="programlisting">Function type: isStandaloneSAXFunc
+int isStandaloneSAXFunc (void * ctx)
+</pre><p>Is this document tagged standalone?</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true</td></tr></tbody></table></div><br />
+<h3><a name="notationDeclSAXFunc" id="notationDeclSAXFunc"></a>Function type: notationDeclSAXFunc</h3><pre class="programlisting">Function type: notationDeclSAXFunc
+void notationDeclSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)
+</pre><p>What to do when a notation declaration has been parsed.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the notation</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr></tbody></table></div><br />
+<h3><a name="processingInstructionSAXFunc" id="processingInstructionSAXFunc"></a>Function type: processingInstructionSAXFunc</h3><pre class="programlisting">Function type: processingInstructionSAXFunc
+void processingInstructionSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * data)
+</pre><p>A processing instruction has been parsed.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the target name</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the PI data's</td></tr></tbody></table></div><br />
+<h3><a name="referenceSAXFunc" id="referenceSAXFunc"></a>Function type: referenceSAXFunc</h3><pre class="programlisting">Function type: referenceSAXFunc
+void referenceSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+</pre><p>Called when an entity <a href="libxml-SAX.html#reference">reference</a> is detected.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The entity name</td></tr></tbody></table></div><br />
+<h3><a name="resolveEntitySAXFunc" id="resolveEntitySAXFunc"></a>Function type: resolveEntitySAXFunc</h3><pre class="programlisting">Function type: resolveEntitySAXFunc
+<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> resolveEntitySAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId)
+</pre><p>Callback: The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it's own entity resolution routine</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> if inlined or NULL for DOM behaviour.</td></tr></tbody></table></div><br />
+<h3><a name="setDocumentLocatorSAXFunc" id="setDocumentLocatorSAXFunc"></a>Function type: setDocumentLocatorSAXFunc</h3><pre class="programlisting">Function type: setDocumentLocatorSAXFunc
+void setDocumentLocatorSAXFunc (void * ctx, <br /> <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc)
+</pre><p>Receive the document locator at startup, actually xmlDefaultSAXLocator. Everything is available on the context, so this is useless in our case.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>loc</tt></i>:</span></td><td>A SAX Locator</td></tr></tbody></table></div><br />
+<h3><a name="startDocumentSAXFunc" id="startDocumentSAXFunc"></a>Function type: startDocumentSAXFunc</h3><pre class="programlisting">Function type: startDocumentSAXFunc
+void startDocumentSAXFunc (void * ctx)
+</pre><p>Called when the document start being processed.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr></tbody></table></div><br />
+<h3><a name="startElementNsSAX2Func" id="startElementNsSAX2Func"></a>Function type: startElementNsSAX2Func</h3><pre class="programlisting">Function type: startElementNsSAX2Func
+void startElementNsSAX2Func (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> int nb_namespaces, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces, <br /> int nb_attributes, <br /> int nb_defaulted, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** attributes)
+</pre><p>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>localname</tt></i>:</span></td><td>the local name of the element</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the element namespace prefix if available</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace name if available</td></tr><tr><td><span class="term"><i><tt>nb_namespaces</tt></i>:</span></td><td>number of namespace definitions on that node</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>pointer to the array of prefix/URI pairs namespace definitions</td></tr><tr><td><span class="term"><i><tt>nb_attributes</tt></i>:</span></td><td>the number of attributes on that node</td></tr><tr><td><span class="term"><i><tt>nb_defaulted</tt></i>:</span></td><td>the number of defaulted attributes. The defaulted ones are at the end of the array</td></tr><tr><td><span class="term"><i><tt>attributes</tt></i>:</span></td><td>pointer to the array of (localname/prefix/URI/value/end) <a href="libxml-SAX.html#attribute">attribute</a> values.</td></tr></tbody></table></div><br />
+<h3><a name="startElementSAXFunc" id="startElementSAXFunc"></a>Function type: startElementSAXFunc</h3><pre class="programlisting">Function type: startElementSAXFunc
+void startElementSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** atts)
+</pre><p>Called when an opening tag has been processed.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The element name, including namespace prefix</td></tr><tr><td><span class="term"><i><tt>atts</tt></i>:</span></td><td>An array of name/value attributes pairs, NULL terminated</td></tr></tbody></table></div><br />
+<h3><a name="unparsedEntityDeclSAXFunc" id="unparsedEntityDeclSAXFunc"></a>Function type: unparsedEntityDeclSAXFunc</h3><pre class="programlisting">Function type: unparsedEntityDeclSAXFunc
+void unparsedEntityDeclSAXFunc (void * ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemId, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * notationName)
+</pre><p>What to do when an unparsed entity declaration is parsed.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the user data (XML parser context)</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>The name of the entity</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td>The public ID of the entity</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td>The system ID of the entity</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i>:</span></td><td>the name of the notation</td></tr></tbody></table></div><br />
+<h3><a name="warningSAXFunc" id="warningSAXFunc"></a>Function type: warningSAXFunc</h3><pre class="programlisting">Function type: warningSAXFunc
+void warningSAXFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Display and format a warning messages, callback.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div><br />
+<h3><a name="xmlByteConsumed" id="xmlByteConsumed"></a>Function: xmlByteConsumed</h3><pre class="programlisting">long xmlByteConsumed (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>This function provides the current index of the parser relative to the start of the current entity. This function is computed in bytes from the beginning starting at zero and finishing at the size in byte of the file if parsing a file. The function is of constant cost if the input is UTF-8 but can be costly if run on non-UTF-8 input.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the index in bytes from the beginning of the entity or -1 in case the index could not be computed.</td></tr></tbody></table></div><h3><a name="xmlCleanupParser" id="xmlCleanupParser"></a>Function: xmlCleanupParser</h3><pre class="programlisting">void xmlCleanupParser (void)<br />
+</pre><p>This function name is somewhat misleading. It does not clean up parser state, it cleans up memory allocated by the library itself. It is a cleanup function for the XML library. It tries to reclaim all related global memory allocated for the library processing. It doesn't deallocate any document related memory. One should call xmlCleanupParser() only when the process has finished using the library and all XML/HTML documents built with it. See also xmlInitParser() which has the opposite function of preparing the library for operations. WARNING: if your application is multithreaded or has plugin support calling this may crash the application if another thread or a plugin is still using libxml2. It's sometimes very hard to guess if libxml2 is in use in the application, some libraries or plugins may use it without notice. In case of doubt abstain from calling this function or do it just before calling exit() to avoid leak reports from valgrind !</p>
+<h3><a name="xmlClearNodeInfoSeq" id="xmlClearNodeInfoSeq"></a>Function: xmlClearNodeInfoSeq</h3><pre class="programlisting">void xmlClearNodeInfoSeq (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq)<br />
+</pre><p>-- Clear (release memory and reinitialize) node info sequence</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>seq</tt></i>:</span></td><td>a node info sequence pointer</td></tr></tbody></table></div><h3><a name="xmlClearParserCtxt" id="xmlClearParserCtxt"></a>Function: xmlClearParserCtxt</h3><pre class="programlisting">void xmlClearParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Clear (release owned resources) and reinitialize a parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlCreateDocParserCtxt" id="xmlCreateDocParserCtxt"></a>Function: xmlCreateDocParserCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateDocParserCtxt (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)<br />
+</pre><p>Creates a parser context for an XML in-memory document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="xmlCreateIOParserCtxt" id="xmlCreateIOParserCtxt"></a>Function: xmlCreateIOParserCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateIOParserCtxt (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a parser context for using the XML parser with an existing I/O stream</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="xmlCreatePushParserCtxt" id="xmlCreatePushParserCtxt"></a>Function: xmlCreatePushParserCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreatePushParserCtxt (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> const char * chunk, <br /> int size, <br /> const char * filename)<br />
+</pre><p>Create a parser context for using the XML parser in push mode. If @buffer and @size are non-NULL, the data is used to detect the encoding. The remaining <a href="libxml-SAX.html#characters">characters</a> will be parsed so they don't need to be fed in again through xmlParseChunk. To allow content encoding detection, @size should be &gt;= 4 The value of @filename is used for fetching external entities and error/warning reports.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>a pointer to an array of chars</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>number of chars in the array</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>an optional file name or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="xmlCtxtReadDoc" id="xmlCtxtReadDoc"></a>Function: xmlCtxtReadDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadDoc (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlCtxtReadFd" id="xmlCtxtReadFd"></a>Function: xmlCtxtReadFd</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadFd (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context NOTE that the file descriptor will not be closed when the reader is closed or reset.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlCtxtReadFile" id="xmlCtxtReadFile"></a>Function: xmlCtxtReadFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadFile (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * filename, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlCtxtReadIO" id="xmlCtxtReadIO"></a>Function: xmlCtxtReadIO</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadIO (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlCtxtReadMemory" id="xmlCtxtReadMemory"></a>Function: xmlCtxtReadMemory</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadMemory (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlCtxtReset" id="xmlCtxtReset"></a>Function: xmlCtxtReset</h3><pre class="programlisting">void xmlCtxtReset (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Reset a parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlCtxtResetPush" id="xmlCtxtResetPush"></a>Function: xmlCtxtResetPush</h3><pre class="programlisting">int xmlCtxtResetPush (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> const char * filename, <br /> const char * encoding)<br />
+</pre><p>Reset a push parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>a pointer to an array of chars</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>number of chars in the array</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>an optional file name or URI</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and 1 in case of error</td></tr></tbody></table></div><h3><a name="xmlCtxtUseOptions" id="xmlCtxtUseOptions"></a>Function: xmlCtxtUseOptions</h3><pre class="programlisting">int xmlCtxtUseOptions (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int options)<br />
+</pre><p>Applies the options to the parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, the set of unknown or unimplemented options in case of error.</td></tr></tbody></table></div><h3><a name="xmlExternalEntityLoader" id="xmlExternalEntityLoader"></a>Function type: xmlExternalEntityLoader</h3><pre class="programlisting">Function type: xmlExternalEntityLoader
+<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlExternalEntityLoader (const char * URL, <br /> const char * ID, <br /> <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context)
+</pre><p>External entity loaders types.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The System ID of the resource requested</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>The Public ID of the resource requested</td></tr><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the entity input parser.</td></tr></tbody></table></div><br />
+<h3><a name="xmlFreeParserCtxt" id="xmlFreeParserCtxt"></a>Function: xmlFreeParserCtxt</h3><pre class="programlisting">void xmlFreeParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlGetExternalEntityLoader" id="xmlGetExternalEntityLoader"></a>Function: xmlGetExternalEntityLoader</h3><pre class="programlisting"><a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> xmlGetExternalEntityLoader (void)<br />
+</pre><p>Get the default external entity resolver function for the application</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> function pointer</td></tr></tbody></table></div><h3><a name="xmlGetFeature" id="xmlGetFeature"></a>Function: xmlGetFeature</h3><pre class="programlisting">int xmlGetFeature (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * name, <br /> void * result)<br />
+</pre><p>Read the current value of one feature of this parser instance</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML/HTML parser context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the feature name</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>location to store the result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case or error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlGetFeaturesList" id="xmlGetFeaturesList"></a>Function: xmlGetFeaturesList</h3><pre class="programlisting">int xmlGetFeaturesList (int * len, <br /> const char ** result)<br />
+</pre><p>Copy at most *@len feature names into the @result array</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the features name array (input/output)</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>an array of string to be filled with the features name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case or error, or the total number of features, len is updated with the number of strings copied, strings must not be deallocated</td></tr></tbody></table></div><h3><a name="xmlHasFeature" id="xmlHasFeature"></a>Function: xmlHasFeature</h3><pre class="programlisting">int xmlHasFeature (<a href="libxml-parser.html#xmlFeature">xmlFeature</a> feature)<br />
+</pre><p>Examines if the library has been compiled with a given feature.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>feature</tt></i>:</span></td><td>the feature to be examined</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a non-zero value if the feature exist, otherwise zero. Returns zero (0) if the feature does not exist or an unknown unknown feature is requested, non-zero otherwise.</td></tr></tbody></table></div><h3><a name="xmlIOParseDTD" id="xmlIOParseDTD"></a>Function: xmlIOParseDTD</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlIOParseDTD (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Load and parse a DTD</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block or NULL</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an Input Buffer</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error. @input will be freed by the function in any case.</td></tr></tbody></table></div><h3><a name="xmlInitNodeInfoSeq" id="xmlInitNodeInfoSeq"></a>Function: xmlInitNodeInfoSeq</h3><pre class="programlisting">void xmlInitNodeInfoSeq (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq)<br />
+</pre><p>-- Initialize (set to initial state) node info sequence</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>seq</tt></i>:</span></td><td>a node info sequence pointer</td></tr></tbody></table></div><h3><a name="xmlInitParser" id="xmlInitParser"></a>Function: xmlInitParser</h3><pre class="programlisting">void xmlInitParser (void)<br />
+</pre><p>Initialization function for the XML parser. This is not reentrant. Call once before processing in case of use in multithreaded programs.</p>
+<h3><a name="xmlInitParserCtxt" id="xmlInitParserCtxt"></a>Function: xmlInitParserCtxt</h3><pre class="programlisting">int xmlInitParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Initialize a parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlKeepBlanksDefault" id="xmlKeepBlanksDefault"></a>Function: xmlKeepBlanksDefault</h3><pre class="programlisting">int xmlKeepBlanksDefault (int val)<br />
+</pre><p>Set and return the previous value for default blanks text nodes support. The 1.x version of the parser used an heuristic to try to detect ignorable white spaces. As a result the SAX callback was generating xmlSAX2IgnorableWhitespace() callbacks instead of characters() one, and when using the DOM output text nodes containing those blanks were not generated. The 2.x and later version will switch to the XML standard way and ignorableWhitespace() are only generated when running the parser in validating mode and when the current element doesn't allow CDATA or mixed content. This function is provided as a way to force the standard behavior on 1.X libs and to switch back to the old mode for compatibility when running 1.X client code on 2.X . Upgrade of 1.X code should be done by using xmlIsBlankNode() commodity function to detect the "empty" nodes generated. This value also affect autogeneration of indentation when saving code if blanks sections are kept, indentation is not generated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no substitution, 1 for substitution.</td></tr></tbody></table></div><h3><a name="xmlLineNumbersDefault" id="xmlLineNumbersDefault"></a>Function: xmlLineNumbersDefault</h3><pre class="programlisting">int xmlLineNumbersDefault (int val)<br />
+</pre><p>Set and return the previous value for enabling line numbers in elements contents. This may break on old application and is turned off by default.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no substitution, 1 for substitution.</td></tr></tbody></table></div><h3><a name="xmlLoadExternalEntity" id="xmlLoadExternalEntity"></a>Function: xmlLoadExternalEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlLoadExternalEntity (const char * URL, <br /> const char * ID, <br /> <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Load an external entity, note that the use of this function for unparsed entities may generate problems</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the Public ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context in which the entity is called or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> or NULL</td></tr></tbody></table></div><h3><a name="xmlNewIOInputStream" id="xmlNewIOInputStream"></a>Function: xmlNewIOInputStream</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewIOInputStream (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a new input stream structure encapsulating the @input into a stream suitable for the parser.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an I/O Input</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream or NULL</td></tr></tbody></table></div><h3><a name="xmlNewParserCtxt" id="xmlNewParserCtxt"></a>Function: xmlNewParserCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlNewParserCtxt (void)<br />
+</pre><p>Allocate and initialize a new parser context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> or NULL</td></tr></tbody></table></div><h3><a name="xmlParseBalancedChunkMemory" id="xmlParseBalancedChunkMemory"></a>Function: xmlParseBalancedChunkMemory</h3><pre class="programlisting">int xmlParseBalancedChunkMemory (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> int depth, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * string, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)<br />
+</pre><p>Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document the chunk pertains to</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler bloc (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>Used for loop detection, use 0</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the input string in UTF8 or ISO-Latin (zero terminated)</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise</td></tr></tbody></table></div><h3><a name="xmlParseBalancedChunkMemoryRecover" id="xmlParseBalancedChunkMemoryRecover"></a>Function: xmlParseBalancedChunkMemoryRecover</h3><pre class="programlisting">int xmlParseBalancedChunkMemoryRecover (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> int depth, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * string, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst, <br /> int recover)<br />
+</pre><p>Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document the chunk pertains to</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler bloc (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>Used for loop detection, use 0</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the input string in UTF8 or ISO-Latin (zero terminated)</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>recover</tt></i>:</span></td><td>return nodes even if the data is broken (use 0)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise In case recover is set to 1, the nodelist will not be empty even if the parsed chunk is not well balanced, assuming the parsing succeeded to some extent.</td></tr></tbody></table></div><h3><a name="xmlParseChunk" id="xmlParseChunk"></a>Function: xmlParseChunk</h3><pre class="programlisting">int xmlParseChunk (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> int terminate)<br />
+</pre><p>Parse a Chunk of memory</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div><h3><a name="xmlParseCtxtExternalEntity" id="xmlParseCtxtExternalEntity"></a>Function: xmlParseCtxtExternalEntity</h3><pre class="programlisting">int xmlParseCtxtExternalEntity (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URL, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)<br />
+</pre><p>Parse an external general entity within an existing parsing context An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the existing parsing context</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the System ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise</td></tr></tbody></table></div><h3><a name="xmlParseDTD" id="xmlParseDTD"></a>Function: xmlParseDTD</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlParseDTD (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
+</pre><p>Load and parse an external subset.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>a NAME* containing the External ID of the DTD</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>a NAME* containing the URL to the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlParseDoc" id="xmlParseDoc"></a>Function: xmlParseDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)<br />
+</pre><p>parse an XML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlParseDocument" id="xmlParseDocument"></a>Function: xmlParseDocument</h3><pre class="programlisting">int xmlParseDocument (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML document (and build a tree if using the standard SAX interface). [1] document ::= prolog element Misc* [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0, -1 in case of error. the parser context is augmented as a result of the parsing.</td></tr></tbody></table></div><h3><a name="xmlParseEntity" id="xmlParseEntity"></a>Function: xmlParseEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseEntity (const char * filename)<br />
+</pre><p>parse an XML external entity out of context and build a tree. [78] extParsedEnt ::= TextDecl? content This correspond to a "Well Balanced" chunk</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlParseExtParsedEnt" id="xmlParseExtParsedEnt"></a>Function: xmlParseExtParsedEnt</h3><pre class="programlisting">int xmlParseExtParsedEnt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse a general parsed entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0, -1 in case of error. the parser context is augmented as a result of the parsing.</td></tr></tbody></table></div><h3><a name="xmlParseExternalEntity" id="xmlParseExternalEntity"></a>Function: xmlParseExternalEntity</h3><pre class="programlisting">int xmlParseExternalEntity (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> int depth, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URL, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)<br />
+</pre><p>Parse an external general entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document the chunk pertains to</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler bloc (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>Used for loop detection, use 0</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the System ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise</td></tr></tbody></table></div><h3><a name="xmlParseFile" id="xmlParseFile"></a>Function: xmlParseFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseFile (const char * filename)<br />
+</pre><p>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree if the file was wellformed, NULL otherwise.</td></tr></tbody></table></div><h3><a name="xmlParseInNodeContext" id="xmlParseInNodeContext"></a>Function: xmlParseInNodeContext</h3><pre class="programlisting"><a href="libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a> xmlParseInNodeContext (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const char * data, <br /> int datalen, <br /> int options, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)<br />
+</pre><p>Parse a well-balanced chunk of an XML document within the context (DTD, namespaces, etc ...) of the given node. The allowed sequence for the data is a Well Balanced Chunk defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the context node</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the input string</td></tr><tr><td><span class="term"><i><tt>datalen</tt></i>:</span></td><td>the input string length in bytes</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td><a href="libxml-xmlerror.html#XML_ERR_OK">XML_ERR_OK</a> if the chunk is well balanced, and the parser error code otherwise</td></tr></tbody></table></div><h3><a name="xmlParseMemory" id="xmlParseMemory"></a>Function: xmlParseMemory</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseMemory (const char * buffer, <br /> int size)<br />
+</pre><p>parse an XML in-memory block and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlParserAddNodeInfo" id="xmlParserAddNodeInfo"></a>Function: xmlParserAddNodeInfo</h3><pre class="programlisting">void xmlParserAddNodeInfo (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info)<br />
+</pre><p>Insert node info record into the sorted sequence</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>a node info sequence pointer</td></tr></tbody></table></div><h3><a name="xmlParserFindNodeInfo" id="xmlParserFindNodeInfo"></a>Function: xmlParserFindNodeInfo</h3><pre class="programlisting">const <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * xmlParserFindNodeInfo (const <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx, <br /> const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Find the parser node info struct for a given node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>an XML node within the tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> block pointer or NULL</td></tr></tbody></table></div><h3><a name="xmlParserFindNodeInfoIndex" id="xmlParserFindNodeInfoIndex"></a>Function: xmlParserFindNodeInfoIndex</h3><pre class="programlisting">unsigned long xmlParserFindNodeInfoIndex (const <a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq, <br /> const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p><a href="libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a> : Find the index that the info record for the given node is or should be at in a sorted sequence</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>seq</tt></i>:</span></td><td>a node info sequence pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>an XML node pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a long indicating the position of the record</td></tr></tbody></table></div><h3><a name="xmlParserInputDeallocate" id="xmlParserInputDeallocate"></a>Function type: xmlParserInputDeallocate</h3><pre class="programlisting">Function type: xmlParserInputDeallocate
+void xmlParserInputDeallocate (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)
+</pre><p>Callback for freeing some parser input allocations.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string to deallocate</td></tr></tbody></table></div><br />
+<h3><a name="xmlParserInputGrow" id="xmlParserInputGrow"></a>Function: xmlParserInputGrow</h3><pre class="programlisting">int xmlParserInputGrow (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in, <br /> int len)<br />
+</pre><p>This function increase the input for the parser. It tries to preserve pointers to the input buffer, and keep already read data</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an XML parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>an indicative size for the lookahead</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of char read, or -1 in case of error, 0 indicate the end of this entity</td></tr></tbody></table></div><h3><a name="xmlParserInputRead" id="xmlParserInputRead"></a>Function: xmlParserInputRead</h3><pre class="programlisting">int xmlParserInputRead (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in, <br /> int len)<br />
+</pre><p>This function was internal and is deprecated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an XML parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>an indicative size for the lookahead</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 as this is an error to use it.</td></tr></tbody></table></div><h3><a name="xmlPedanticParserDefault" id="xmlPedanticParserDefault"></a>Function: xmlPedanticParserDefault</h3><pre class="programlisting">int xmlPedanticParserDefault (int val)<br />
+</pre><p>Set and return the previous value for enabling pedantic warnings.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no substitution, 1 for substitution.</td></tr></tbody></table></div><h3><a name="xmlReadDoc" id="xmlReadDoc"></a>Function: xmlReadDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlReadFd" id="xmlReadFd"></a>Function: xmlReadFd</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadFd (int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML from a file descriptor and build a tree. NOTE that the file descriptor will not be closed when the reader is closed or reset.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlReadFile" id="xmlReadFile"></a>Function: xmlReadFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadFile (const char * filename, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML file from the filesystem or the network.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlReadIO" id="xmlReadIO"></a>Function: xmlReadIO</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadIO (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML document from I/O functions and source and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlReadMemory" id="xmlReadMemory"></a>Function: xmlReadMemory</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadMemory (const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML in-memory document and build a tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlRecoverDoc" id="xmlRecoverDoc"></a>Function: xmlRecoverDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)<br />
+</pre><p>parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a attempt to build a tree is tried anyway</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree or NULL in case of failure</td></tr></tbody></table></div><h3><a name="xmlRecoverFile" id="xmlRecoverFile"></a>Function: xmlRecoverFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverFile (const char * filename)<br />
+</pre><p>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, it attempts to build a tree anyway</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree or NULL in case of failure</td></tr></tbody></table></div><h3><a name="xmlRecoverMemory" id="xmlRecoverMemory"></a>Function: xmlRecoverMemory</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverMemory (const char * buffer, <br /> int size)<br />
+</pre><p>parse an XML in-memory block and build a tree. In the case the document is not Well Formed, an attempt to build a tree is tried anyway</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSAXParseDTD" id="xmlSAXParseDTD"></a>Function: xmlSAXParseDTD</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlSAXParseDTD (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
+</pre><p>Load and parse an external subset.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>a NAME* containing the External ID of the DTD</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>a NAME* containing the URL to the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlSAXParseDoc" id="xmlSAXParseDoc"></a>Function: xmlSAXParseDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseDoc (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> int recovery)<br />
+</pre><p>parse an XML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read no Well Formed documents</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlSAXParseEntity" id="xmlSAXParseEntity"></a>Function: xmlSAXParseEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseEntity (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * filename)<br />
+</pre><p>parse an XML external entity out of context and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. [78] extParsedEnt ::= TextDecl? content This correspond to a "Well Balanced" chunk</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlSAXParseFile" id="xmlSAXParseFile"></a>Function: xmlSAXParseFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseFile (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * filename, <br /> int recovery)<br />
+</pre><p>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read no Well Formed documents</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlSAXParseFileWithData" id="xmlSAXParseFileWithData"></a>Function: xmlSAXParseFileWithData</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseFileWithData (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * filename, <br /> int recovery, <br /> void * data)<br />
+</pre><p>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. User data (void *) is stored within the parser context in the context's _private member, so it is available nearly everywhere in libxml</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read no Well Formed documents</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlSAXParseMemory" id="xmlSAXParseMemory"></a>Function: xmlSAXParseMemory</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseMemory (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * buffer, <br /> int size, <br /> int recovery)<br />
+</pre><p>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read not Well Formed documents</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlSAXParseMemoryWithData" id="xmlSAXParseMemoryWithData"></a>Function: xmlSAXParseMemoryWithData</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseMemoryWithData (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * buffer, <br /> int size, <br /> int recovery, <br /> void * data)<br />
+</pre><p>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. User data (void *) is stored within the parser context in the context's _private member, so it is available nearly everywhere in libxml</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read no Well Formed documents</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlSAXUserParseFile" id="xmlSAXUserParseFile"></a>Function: xmlSAXUserParseFile</h3><pre class="programlisting">int xmlSAXUserParseFile (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> const char * filename)<br />
+</pre><p>parse an XML file and call the given SAX handler routines. Automatic support for ZLIB/Compress compressed document is provided</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success or a error number otherwise</td></tr></tbody></table></div><h3><a name="xmlSAXUserParseMemory" id="xmlSAXUserParseMemory"></a>Function: xmlSAXUserParseMemory</h3><pre class="programlisting">int xmlSAXUserParseMemory (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data, <br /> const char * buffer, <br /> int size)<br />
+</pre><p>A better SAX parsing routine. parse an XML in-memory buffer and call the given SAX handler routines.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>The user data returned on SAX callbacks</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an in-memory XML document input</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the length of the XML document in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success or a error number otherwise</td></tr></tbody></table></div><h3><a name="xmlSetExternalEntityLoader" id="xmlSetExternalEntityLoader"></a>Function: xmlSetExternalEntityLoader</h3><pre class="programlisting">void xmlSetExternalEntityLoader (<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> f)<br />
+</pre><p>Changes the defaultexternal entity resolver function for the application</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the new entity resolver function</td></tr></tbody></table></div><h3><a name="xmlSetFeature" id="xmlSetFeature"></a>Function: xmlSetFeature</h3><pre class="programlisting">int xmlSetFeature (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * name, <br /> void * value)<br />
+</pre><p>Change the current value of one feature of this parser instance</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML/HTML parser context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the feature name</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>pointer to the location of the new value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case or error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlSetupParserForBuffer" id="xmlSetupParserForBuffer"></a>Function: xmlSetupParserForBuffer</h3><pre class="programlisting">void xmlSetupParserForBuffer (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buffer, <br /> const char * filename)<br />
+</pre><p>Setup the parser context to parse a new buffer; Clears any prior contents from the parser context. The buffer parameter must not be NULL, but the filename parameter can be</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buffer</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file name</td></tr></tbody></table></div><h3><a name="xmlStopParser" id="xmlStopParser"></a>Function: xmlStopParser</h3><pre class="programlisting">void xmlStopParser (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Blocks further parser processing</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlSubstituteEntitiesDefault" id="xmlSubstituteEntitiesDefault"></a>Function: xmlSubstituteEntitiesDefault</h3><pre class="programlisting">int xmlSubstituteEntitiesDefault (int val)<br />
+</pre><p>Set and return the previous value for default entity support. Initially the parser always keep entity references instead of substituting entity values in the output. This function has to be used to change the default parser behavior SAX::substituteEntities() has to be used for changing that on a file by file basis.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no substitution, 1 for substitution.</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-parserInternals.html b/libxml2-2.9.10/doc/html/libxml-parserInternals.html
new file mode 100644
index 0000000..357803e
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-parserInternals.html
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module parserInternals from libxml2</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></h1><h2>Module parserInternals from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-parser.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-parser.html">parser</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-pattern.html">pattern</a></th><td><a accesskey="n" href="libxml-pattern.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>this module exports a number of internal parsing routines they are not really all intended for applications but can prove useful doing low level processing. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#INPUT_CHUNK">INPUT_CHUNK</a></pre><pre class="programlisting">#define <a href="#IS_ASCII_DIGIT">IS_ASCII_DIGIT</a></pre><pre class="programlisting">#define <a href="#IS_ASCII_LETTER">IS_ASCII_LETTER</a></pre><pre class="programlisting">#define <a href="#IS_BASECHAR">IS_BASECHAR</a></pre><pre class="programlisting">#define <a href="#IS_BLANK">IS_BLANK</a></pre><pre class="programlisting">#define <a href="#IS_BLANK_CH">IS_BLANK_CH</a></pre><pre class="programlisting">#define <a href="#IS_BYTE_CHAR">IS_BYTE_CHAR</a></pre><pre class="programlisting">#define <a href="#IS_CHAR">IS_CHAR</a></pre><pre class="programlisting">#define <a href="#IS_CHAR_CH">IS_CHAR_CH</a></pre><pre class="programlisting">#define <a href="#IS_COMBINING">IS_COMBINING</a></pre><pre class="programlisting">#define <a href="#IS_COMBINING_CH">IS_COMBINING_CH</a></pre><pre class="programlisting">#define <a href="#IS_DIGIT">IS_DIGIT</a></pre><pre class="programlisting">#define <a href="#IS_DIGIT_CH">IS_DIGIT_CH</a></pre><pre class="programlisting">#define <a href="#IS_EXTENDER">IS_EXTENDER</a></pre><pre class="programlisting">#define <a href="#IS_EXTENDER_CH">IS_EXTENDER_CH</a></pre><pre class="programlisting">#define <a href="#IS_IDEOGRAPHIC">IS_IDEOGRAPHIC</a></pre><pre class="programlisting">#define <a href="#IS_LETTER">IS_LETTER</a></pre><pre class="programlisting">#define <a href="#IS_LETTER_CH">IS_LETTER_CH</a></pre><pre class="programlisting">#define <a href="#IS_PUBIDCHAR">IS_PUBIDCHAR</a></pre><pre class="programlisting">#define <a href="#IS_PUBIDCHAR_CH">IS_PUBIDCHAR_CH</a></pre><pre class="programlisting">#define <a href="#MOVETO_ENDTAG">MOVETO_ENDTAG</a></pre><pre class="programlisting">#define <a href="#MOVETO_STARTTAG">MOVETO_STARTTAG</a></pre><pre class="programlisting">#define <a href="#SKIP_EOL">SKIP_EOL</a></pre><pre class="programlisting">#define <a href="#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a></pre><pre class="programlisting">#define <a href="#XML_MAX_LOOKUP_LIMIT">XML_MAX_LOOKUP_LIMIT</a></pre><pre class="programlisting">#define <a href="#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a></pre><pre class="programlisting">#define <a href="#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a></pre><pre class="programlisting">#define <a href="#XML_MAX_TEXT_LENGTH">XML_MAX_TEXT_LENGTH</a></pre><pre class="programlisting">#define <a href="#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a></pre><pre class="programlisting">#define <a href="#XML_SUBSTITUTE_NONE">XML_SUBSTITUTE_NONE</a></pre><pre class="programlisting">#define <a href="#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a></pre><pre class="programlisting">#define <a href="#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a></pre><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> <a href="#htmlCreateFileParserCtxt">htmlCreateFileParserCtxt</a> (const char * filename, <br /> const char * encoding)</pre>
+<pre class="programlisting">void <a href="#htmlInitAutoClose">htmlInitAutoClose</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#inputPop">inputPop</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#inputPush">inputPush</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> value)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#namePop">namePop</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#namePush">namePush</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#nodePop">nodePop</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#nodePush">nodePush</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> value)</pre>
+<pre class="programlisting">int <a href="#xmlCheckLanguageID">xmlCheckLanguageID</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * lang)</pre>
+<pre class="programlisting">int <a href="#xmlCopyChar">xmlCopyChar</a> (int len, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * out, <br /> int val)</pre>
+<pre class="programlisting">int <a href="#xmlCopyCharMultiByte">xmlCopyCharMultiByte</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * out, <br /> int val)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URL, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * base)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateFileParserCtxt">xmlCreateFileParserCtxt</a> (const char * filename)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateMemoryParserCtxt">xmlCreateMemoryParserCtxt</a> (const char * buffer, <br /> int size)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a> (const char * filename, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlCurrentChar">xmlCurrentChar</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int * len)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlDecodeEntities">xmlDecodeEntities</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int len, <br /> int what, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end2, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end3)</pre>
+<pre class="programlisting">Function type: <a href="#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a>
+void <a href="#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a> (<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> ent, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> firstNode, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> lastNode)
+</pre>
+<pre class="programlisting">void <a href="#xmlErrMemory">xmlErrMemory</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * extra)</pre>
+<pre class="programlisting">void <a href="#xmlFreeInputStream">xmlFreeInputStream</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)</pre>
+<pre class="programlisting">void <a href="#xmlHandleEntity">xmlHandleEntity</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> entity)</pre>
+<pre class="programlisting">int <a href="#xmlIsLetter">xmlIsLetter</a> (int c)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNamespaceParseQName">xmlNamespaceParseQName</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** prefix)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNewEntityInputStream">xmlNewEntityInputStream</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> entity)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNewInputFromFile">xmlNewInputFromFile</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * filename)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNewInputStream">xmlNewInputStream</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNewStringInputStream">xmlNewStringInputStream</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buffer)</pre>
+<pre class="programlisting">void <a href="#xmlNextChar">xmlNextChar</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseAttValue">xmlParseAttValue</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseAttribute">xmlParseAttribute</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** value)</pre>
+<pre class="programlisting">void <a href="#xmlParseAttributeListDecl">xmlParseAttributeListDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlParseAttributeType">xmlParseAttributeType</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> * tree)</pre>
+<pre class="programlisting">void <a href="#xmlParseCDSect">xmlParseCDSect</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseCharData">xmlParseCharData</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int cdata)</pre>
+<pre class="programlisting">int <a href="#xmlParseCharRef">xmlParseCharRef</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseComment">xmlParseComment</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseContent">xmlParseContent</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlParseDefaultDecl">xmlParseDefaultDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** value)</pre>
+<pre class="programlisting">void <a href="#xmlParseDocTypeDecl">xmlParseDocTypeDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseElement">xmlParseElement</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int inputchk)</pre>
+<pre class="programlisting">int <a href="#xmlParseElementContentDecl">xmlParseElementContentDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> * result)</pre>
+<pre class="programlisting">int <a href="#xmlParseElementDecl">xmlParseElementDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int inputchk)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseEncName">xmlParseEncName</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseEncodingDecl">xmlParseEncodingDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseEndTag">xmlParseEndTag</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseEntityDecl">xmlParseEntityDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> <a href="#xmlParseEntityRef">xmlParseEntityRef</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseEntityValue">xmlParseEntityValue</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** orig)</pre>
+<pre class="programlisting">int <a href="#xmlParseEnumeratedType">xmlParseEnumeratedType</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> * tree)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> <a href="#xmlParseEnumerationType">xmlParseEnumerationType</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseExternalID">xmlParseExternalID</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** publicID, <br /> int strict)</pre>
+<pre class="programlisting">void <a href="#xmlParseExternalSubset">xmlParseExternalSubset</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
+<pre class="programlisting">void <a href="#xmlParseMarkupDecl">xmlParseMarkupDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseMisc">xmlParseMisc</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseName">xmlParseName</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseNamespace">xmlParseNamespace</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseNmtoken">xmlParseNmtoken</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseNotationDecl">xmlParseNotationDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> <a href="#xmlParseNotationType">xmlParseNotationType</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParsePEReference">xmlParsePEReference</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParsePI">xmlParsePI</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParsePITarget">xmlParsePITarget</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParsePubidLiteral">xmlParsePubidLiteral</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseQuotedString">xmlParseQuotedString</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseReference">xmlParseReference</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlParseSDDecl">xmlParseSDDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseStartTag">xmlParseStartTag</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseSystemLiteral">xmlParseSystemLiteral</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseTextDecl">xmlParseTextDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseVersionInfo">xmlParseVersionInfo</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseVersionNum">xmlParseVersionNum</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParseXMLDecl">xmlParseXMLDecl</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParserHandlePEReference">xmlParserHandlePEReference</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParserHandleReference">xmlParserHandleReference</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlParserInputShrink">xmlParserInputShrink</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> <a href="#xmlPopInput">xmlPopInput</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlPushInput">xmlPushInput</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlScanName">xmlScanName</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a> (<a href="libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a> func)</pre>
+<pre class="programlisting">int <a href="#xmlSkipBlankChars">xmlSkipBlankChars</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSplitQName">xmlSplitQName</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** prefix)</pre>
+<pre class="programlisting">int <a href="#xmlStringCurrentChar">xmlStringCurrentChar</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> int * len)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStringDecodeEntities">xmlStringDecodeEntities</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int what, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end2, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end3)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int len, <br /> int what, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end2, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end3)</pre>
+<pre class="programlisting">int <a href="#xmlSwitchEncoding">xmlSwitchEncoding</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting">int <a href="#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)</pre>
+<pre class="programlisting">int <a href="#xmlSwitchToEncoding">xmlSwitchToEncoding</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)</pre>
+<h2>Description</h2>
+<h3><a name="INPUT_CHUNK" id="INPUT_CHUNK"></a>Macro: INPUT_CHUNK</h3><pre>#define INPUT_CHUNK</pre><p>The parser tries to always have that amount of input ready. One of the point is providing context when reporting errors.</p>
+<h3><a name="IS_ASCII_DIGIT" id="IS_ASCII_DIGIT"></a>Macro: IS_ASCII_DIGIT</h3><pre>#define IS_ASCII_DIGIT</pre><p>Macro to check [0-9]</p>
+<h3><a name="IS_ASCII_LETTER" id="IS_ASCII_LETTER"></a>Macro: IS_ASCII_LETTER</h3><pre>#define IS_ASCII_LETTER</pre><p>Macro to check [a-zA-Z]</p>
+<h3><a name="IS_BASECHAR" id="IS_BASECHAR"></a>Macro: IS_BASECHAR</h3><pre>#define IS_BASECHAR</pre><p>Macro to check the following production in the XML spec: [85] BaseChar ::= ... long list see REC ...</p>
+<h3><a name="IS_BLANK" id="IS_BLANK"></a>Macro: IS_BLANK</h3><pre>#define IS_BLANK</pre><p>Macro to check the following production in the XML spec: [3] S ::= (#x20 | #x9 | #xD | #xA)+</p>
+<h3><a name="IS_BLANK_CH" id="IS_BLANK_CH"></a>Macro: IS_BLANK_CH</h3><pre>#define IS_BLANK_CH</pre><p>Behaviour same as <a href="libxml-parserInternals.html#IS_BLANK">IS_BLANK</a></p>
+<h3><a name="IS_BYTE_CHAR" id="IS_BYTE_CHAR"></a>Macro: IS_BYTE_CHAR</h3><pre>#define IS_BYTE_CHAR</pre><p>Macro to check the following production in the XML spec: [2] Char ::= #x9 | #xA | #xD | [#x20...] any byte character in the accepted range</p>
+<h3><a name="IS_CHAR" id="IS_CHAR"></a>Macro: IS_CHAR</h3><pre>#define IS_CHAR</pre><p>Macro to check the following production in the XML spec: [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.</p>
+<h3><a name="IS_CHAR_CH" id="IS_CHAR_CH"></a>Macro: IS_CHAR_CH</h3><pre>#define IS_CHAR_CH</pre><p>Behaves like <a href="libxml-parserInternals.html#IS_CHAR">IS_CHAR</a> on single-byte value</p>
+<h3><a name="IS_COMBINING" id="IS_COMBINING"></a>Macro: IS_COMBINING</h3><pre>#define IS_COMBINING</pre><p>Macro to check the following production in the XML spec: [87] CombiningChar ::= ... long list see REC ...</p>
+<h3><a name="IS_COMBINING_CH" id="IS_COMBINING_CH"></a>Macro: IS_COMBINING_CH</h3><pre>#define IS_COMBINING_CH</pre><p>Always false (all combining chars &gt; 0xff)</p>
+<h3><a name="IS_DIGIT" id="IS_DIGIT"></a>Macro: IS_DIGIT</h3><pre>#define IS_DIGIT</pre><p>Macro to check the following production in the XML spec: [88] Digit ::= ... long list see REC ...</p>
+<h3><a name="IS_DIGIT_CH" id="IS_DIGIT_CH"></a>Macro: IS_DIGIT_CH</h3><pre>#define IS_DIGIT_CH</pre><p>Behaves like <a href="libxml-parserInternals.html#IS_DIGIT">IS_DIGIT</a> but with a single byte argument</p>
+<h3><a name="IS_EXTENDER" id="IS_EXTENDER"></a>Macro: IS_EXTENDER</h3><pre>#define IS_EXTENDER</pre><p>Macro to check the following production in the XML spec: [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E] | [#x30FC-#x30FE]</p>
+<h3><a name="IS_EXTENDER_CH" id="IS_EXTENDER_CH"></a>Macro: IS_EXTENDER_CH</h3><pre>#define IS_EXTENDER_CH</pre><p>Behaves like <a href="libxml-parserInternals.html#IS_EXTENDER">IS_EXTENDER</a> but with a single-byte argument</p>
+<h3><a name="IS_IDEOGRAPHIC" id="IS_IDEOGRAPHIC"></a>Macro: IS_IDEOGRAPHIC</h3><pre>#define IS_IDEOGRAPHIC</pre><p>Macro to check the following production in the XML spec: [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]</p>
+<h3><a name="IS_LETTER" id="IS_LETTER"></a>Macro: IS_LETTER</h3><pre>#define IS_LETTER</pre><p>Macro to check the following production in the XML spec: [84] Letter ::= BaseChar | Ideographic</p>
+<h3><a name="IS_LETTER_CH" id="IS_LETTER_CH"></a>Macro: IS_LETTER_CH</h3><pre>#define IS_LETTER_CH</pre><p>Macro behaves like IS_LETTER, but only check base chars</p>
+<h3><a name="IS_PUBIDCHAR" id="IS_PUBIDCHAR"></a>Macro: IS_PUBIDCHAR</h3><pre>#define IS_PUBIDCHAR</pre><p>Macro to check the following production in the XML spec: [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]</p>
+<h3><a name="IS_PUBIDCHAR_CH" id="IS_PUBIDCHAR_CH"></a>Macro: IS_PUBIDCHAR_CH</h3><pre>#define IS_PUBIDCHAR_CH</pre><p>Same as <a href="libxml-parserInternals.html#IS_PUBIDCHAR">IS_PUBIDCHAR</a> but for single-byte value</p>
+<h3><a name="MOVETO_ENDTAG" id="MOVETO_ENDTAG"></a>Macro: MOVETO_ENDTAG</h3><pre>#define MOVETO_ENDTAG</pre><p>Skips to the next '&gt;' char.</p>
+<h3><a name="MOVETO_STARTTAG" id="MOVETO_STARTTAG"></a>Macro: MOVETO_STARTTAG</h3><pre>#define MOVETO_STARTTAG</pre><p>Skips to the next '&lt;' char.</p>
+<h3><a name="SKIP_EOL" id="SKIP_EOL"></a>Macro: SKIP_EOL</h3><pre>#define SKIP_EOL</pre><p>Skips the end of line chars.</p>
+<h3><a name="XML_MAX_DICTIONARY_LIMIT" id="XML_MAX_DICTIONARY_LIMIT"></a>Macro: XML_MAX_DICTIONARY_LIMIT</h3><pre>#define XML_MAX_DICTIONARY_LIMIT</pre><p>Maximum size allowed by the parser for a dictionary by default This is not a limitation of the parser but a safety boundary feature, use <a href="libxml-parser.html#XML_PARSE_HUGE">XML_PARSE_HUGE</a> option to override it. Introduced in 2.9.0</p>
+<h3><a name="XML_MAX_LOOKUP_LIMIT" id="XML_MAX_LOOKUP_LIMIT"></a>Macro: XML_MAX_LOOKUP_LIMIT</h3><pre>#define XML_MAX_LOOKUP_LIMIT</pre><p>Maximum size allowed by the parser for ahead lookup This is an upper boundary enforced by the parser to avoid bad behaviour on "unfriendly' content Introduced in 2.9.0</p>
+<h3><a name="XML_MAX_NAMELEN" id="XML_MAX_NAMELEN"></a>Macro: XML_MAX_NAMELEN</h3><pre>#define XML_MAX_NAMELEN</pre><p>Identifiers can be longer, but this will be more costly at runtime.</p>
+<h3><a name="XML_MAX_NAME_LENGTH" id="XML_MAX_NAME_LENGTH"></a>Macro: XML_MAX_NAME_LENGTH</h3><pre>#define XML_MAX_NAME_LENGTH</pre><p>Maximum size allowed for a markup identifier. This is not a limitation of the parser but a safety boundary feature, use <a href="libxml-parser.html#XML_PARSE_HUGE">XML_PARSE_HUGE</a> option to override it. Note that with the use of parsing dictionaries overriding the limit may result in more runtime memory usage in face of "unfriendly' content Introduced in 2.9.0</p>
+<h3><a name="XML_MAX_TEXT_LENGTH" id="XML_MAX_TEXT_LENGTH"></a>Macro: XML_MAX_TEXT_LENGTH</h3><pre>#define XML_MAX_TEXT_LENGTH</pre><p>Maximum size allowed for a single text node when building a tree. This is not a limitation of the parser but a safety boundary feature, use <a href="libxml-parser.html#XML_PARSE_HUGE">XML_PARSE_HUGE</a> option to override it. Introduced in 2.9.0</p>
+<h3><a name="XML_SUBSTITUTE_BOTH" id="XML_SUBSTITUTE_BOTH"></a>Macro: XML_SUBSTITUTE_BOTH</h3><pre>#define XML_SUBSTITUTE_BOTH</pre><p>Both general and parameter entities need to be substituted.</p>
+<h3><a name="XML_SUBSTITUTE_NONE" id="XML_SUBSTITUTE_NONE"></a>Macro: XML_SUBSTITUTE_NONE</h3><pre>#define XML_SUBSTITUTE_NONE</pre><p>If no entities need to be substituted.</p>
+<h3><a name="XML_SUBSTITUTE_PEREF" id="XML_SUBSTITUTE_PEREF"></a>Macro: XML_SUBSTITUTE_PEREF</h3><pre>#define XML_SUBSTITUTE_PEREF</pre><p>Whether parameter entities need to be substituted.</p>
+<h3><a name="XML_SUBSTITUTE_REF" id="XML_SUBSTITUTE_REF"></a>Macro: XML_SUBSTITUTE_REF</h3><pre>#define XML_SUBSTITUTE_REF</pre><p>Whether general entities need to be substituted.</p>
+<h3><a name="htmlCreateFileParserCtxt" id="htmlCreateFileParserCtxt"></a>Function: htmlCreateFileParserCtxt</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> htmlCreateFileParserCtxt (const char * filename, <br /> const char * encoding)<br />
+</pre><p>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="htmlInitAutoClose" id="htmlInitAutoClose"></a>Function: htmlInitAutoClose</h3><pre class="programlisting">void htmlInitAutoClose (void)<br />
+</pre><p>Initialize the htmlStartCloseIndex for fast lookup of closing tags names. This is not reentrant. Call xmlInitParser() once before processing in case of use in multithreaded programs.</p>
+<h3><a name="inputPop" id="inputPop"></a>Function: inputPop</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> inputPop (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Pops the top parser input from the input stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the input just removed</td></tr></tbody></table></div><h3><a name="inputPush" id="inputPush"></a>Function: inputPush</h3><pre class="programlisting">int inputPush (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> value)<br />
+</pre><p>Pushes a new parser input on top of the input stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the parser input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, the index in the stack otherwise</td></tr></tbody></table></div><h3><a name="namePop" id="namePop"></a>Function: namePop</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namePop (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Pops the top element name from the name stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the name just removed</td></tr></tbody></table></div><h3><a name="namePush" id="namePush"></a>Function: namePush</h3><pre class="programlisting">int namePush (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Pushes a new element name on top of the name stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, the index in the stack otherwise</td></tr></tbody></table></div><h3><a name="nodePop" id="nodePop"></a>Function: nodePop</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> nodePop (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Pops the top element node from the node stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node just removed</td></tr></tbody></table></div><h3><a name="nodePush" id="nodePush"></a>Function: nodePush</h3><pre class="programlisting">int nodePush (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> value)<br />
+</pre><p>Pushes a new element node on top of the node stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, the index in the stack otherwise</td></tr></tbody></table></div><h3><a name="xmlCheckLanguageID" id="xmlCheckLanguageID"></a>Function: xmlCheckLanguageID</h3><pre class="programlisting">int xmlCheckLanguageID (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * lang)<br />
+</pre><p>Checks that the value conforms to the LanguageID production: NOTE: this is somewhat deprecated, those productions were removed from the XML Second edition. [33] LanguageID ::= Langcode ('-' Subcode)* [34] Langcode ::= ISO639Code | IanaCode | UserCode [35] ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= ('i' | 'I') '-' ([a-z] | [A-Z])+ [37] UserCode ::= ('x' | 'X') '-' ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+ The current REC <a href="libxml-SAX.html#reference">reference</a> the successors of RFC 1766, currently 5646 http://www.rfc-editor.org/rfc/rfc5646.txt langtag = language ["-" script] ["-" region] *("-" variant) *("-" extension) ["-" privateuse] language = 2*3ALPHA ; shortest ISO 639 code ["-" extlang] ; sometimes followed by ; extended language subtags / 4ALPHA ; or reserved for future use / 5*8ALPHA ; or registered language subtag extlang = 3ALPHA ; selected ISO 639 codes *2("-" 3ALPHA) ; permanently reserved script = 4ALPHA ; ISO 15924 code region = 2ALPHA ; ISO 3166-1 code / 3DIGIT ; UN M.49 code variant = 5*8alphanum ; registered variants / (DIGIT 3alphanum) extension = singleton 1*("-" (2*8alphanum)) ; Single alphanumerics ; "x" reserved for private use singleton = DIGIT ; 0 - 9 / %x41-57 ; A - W / %x59-5A ; Y - Z / %x61-77 ; a - w / %x79-7A ; y - z it sounds right to still allow Irregular i-xxx IANA and user codes too The parser below doesn't try to cope with extension or privateuse that could be added but that's not interoperable anyway</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>lang</tt></i>:</span></td><td>pointer to the string value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if correct 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlCopyChar" id="xmlCopyChar"></a>Function: xmlCopyChar</h3><pre class="programlisting">int xmlCopyChar (int len, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * out, <br /> int val)<br />
+</pre><p>append the char value in the array</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>Ignored, compatibility</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the char value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> written</td></tr></tbody></table></div><h3><a name="xmlCopyCharMultiByte" id="xmlCopyCharMultiByte"></a>Function: xmlCopyCharMultiByte</h3><pre class="programlisting">int xmlCopyCharMultiByte (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * out, <br /> int val)<br />
+</pre><p>append the char value in the array</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the char value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> written</td></tr></tbody></table></div><h3><a name="xmlCreateEntityParserCtxt" id="xmlCreateEntityParserCtxt"></a>Function: xmlCreateEntityParserCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateEntityParserCtxt (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URL, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * base)<br />
+</pre><p>Create a parser context for an external entity Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the entity URL</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the entity PUBLIC ID</td></tr><tr><td><span class="term"><i><tt>base</tt></i>:</span></td><td>a possible base for the target URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="xmlCreateFileParserCtxt" id="xmlCreateFileParserCtxt"></a>Function: xmlCreateFileParserCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateFileParserCtxt (const char * filename)<br />
+</pre><p>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="xmlCreateMemoryParserCtxt" id="xmlCreateMemoryParserCtxt"></a>Function: xmlCreateMemoryParserCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateMemoryParserCtxt (const char * buffer, <br /> int size)<br />
+</pre><p>Create a parser context for an XML in-memory document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="xmlCreateURLParserCtxt" id="xmlCreateURLParserCtxt"></a>Function: xmlCreateURLParserCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateURLParserCtxt (const char * filename, <br /> int options)<br />
+</pre><p>Create a parser context for a file or URL content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time and for file accesses</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser context or NULL</td></tr></tbody></table></div><h3><a name="xmlCurrentChar" id="xmlCurrentChar"></a>Function: xmlCurrentChar</h3><pre class="programlisting">int xmlCurrentChar (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int * len)<br />
+</pre><p>The current char value, if using UTF-8 this may actually span multiple bytes in the input buffer. Implement the end of line normalization: 2.11 End-of-Line Handling Wherever an external parsed entity or the literal entity value of an internal parsed entity contains either the literal two-character sequence "#xD#xA" or a standalone literal #xD, an XML processor must pass to the application the single character #xA. This behavior can conveniently be produced by normalizing all line breaks to #xA on input, before parsing.)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XML parser context</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>pointer to the length of the char read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current char value and its length</td></tr></tbody></table></div><h3><a name="xmlDecodeEntities" id="xmlDecodeEntities"></a>Function: xmlDecodeEntities</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDecodeEntities (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int len, <br /> int what, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end2, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end3)<br />
+</pre><p>This function is deprecated, we now always process entities content through <a href="libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a> TODO: remove it in next major release. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= '%' Name ';'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len to decode (in bytes !), -1 for no size limit</td></tr><tr><td><span class="term"><i><tt>what</tt></i>:</span></td><td>combination of <a href="libxml-parserInternals.html#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a> and <a href="libxml-parserInternals.html#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a></td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end2</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end3</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>A newly allocated string with the substitution done. The caller must deallocate it !</td></tr></tbody></table></div><h3><a name="xmlEntityReferenceFunc" id="xmlEntityReferenceFunc"></a>Function type: xmlEntityReferenceFunc</h3><pre class="programlisting">Function type: xmlEntityReferenceFunc
+void xmlEntityReferenceFunc (<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> ent, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> firstNode, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> lastNode)
+</pre><p>Callback function used when one needs to be able to track back the provenance of a chunk of nodes inherited from an entity replacement.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ent</tt></i>:</span></td><td>the entity</td></tr><tr><td><span class="term"><i><tt>firstNode</tt></i>:</span></td><td>the fist node in the chunk</td></tr><tr><td><span class="term"><i><tt>lastNode</tt></i>:</span></td><td>the last nod in the chunk</td></tr></tbody></table></div><br />
+<h3><a name="xmlErrMemory" id="xmlErrMemory"></a>Function: xmlErrMemory</h3><pre class="programlisting">void xmlErrMemory (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * extra)<br />
+</pre><p>Handle a redefinition of <a href="libxml-SAX.html#attribute">attribute</a> error</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>extra</tt></i>:</span></td><td>extra informations</td></tr></tbody></table></div><h3><a name="xmlFreeInputStream" id="xmlFreeInputStream"></a>Function: xmlFreeInputStream</h3><pre class="programlisting">void xmlFreeInputStream (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br />
+</pre><p>Free up an input stream.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a></td></tr></tbody></table></div><h3><a name="xmlHandleEntity" id="xmlHandleEntity"></a>Function: xmlHandleEntity</h3><pre class="programlisting">void xmlHandleEntity (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> entity)<br />
+</pre><p>Default handling of defined entities, when should we define a new input stream ? When do we just handle that as a set of chars ? OBSOLETE: to be removed at some point.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>entity</tt></i>:</span></td><td>an XML entity pointer.</td></tr></tbody></table></div><h3><a name="xmlIsLetter" id="xmlIsLetter"></a>Function: xmlIsLetter</h3><pre class="programlisting">int xmlIsLetter (int c)<br />
+</pre><p>Check whether the character is allowed by the production [84] Letter ::= BaseChar | Ideographic</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>c</tt></i>:</span></td><td>an unicode character (int)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if not, non-zero otherwise</td></tr></tbody></table></div><h3><a name="xmlNamespaceParseNCName" id="xmlNamespaceParseNCName"></a>Function: xmlNamespaceParseNCName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlNamespaceParseNCName (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML namespace name. TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. [NS 3] NCName ::= (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace name or NULL</td></tr></tbody></table></div><h3><a name="xmlNamespaceParseNSDef" id="xmlNamespaceParseNSDef"></a>Function: xmlNamespaceParseNSDef</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlNamespaceParseNSDef (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse a namespace prefix declaration TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. [NS 1] NSDef ::= PrefixDef Eq SystemLiteral [NS 2] PrefixDef ::= 'xmlns' (':' NCName)?</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace name</td></tr></tbody></table></div><h3><a name="xmlNamespaceParseQName" id="xmlNamespaceParseQName"></a>Function: xmlNamespaceParseQName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlNamespaceParseQName (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** prefix)<br />
+</pre><p>TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. parse an XML qualified name [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local part, and prefix is updated to get the Prefix if any.</td></tr></tbody></table></div><h3><a name="xmlNewEntityInputStream" id="xmlNewEntityInputStream"></a>Function: xmlNewEntityInputStream</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewEntityInputStream (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> entity)<br />
+</pre><p>Create a new input stream based on an <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>entity</tt></i>:</span></td><td>an Entity pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream or NULL</td></tr></tbody></table></div><h3><a name="xmlNewInputFromFile" id="xmlNewInputFromFile"></a>Function: xmlNewInputFromFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewInputFromFile (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * filename)<br />
+</pre><p>Create a new input stream based on a file or an URL.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename to use as entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlNewInputStream" id="xmlNewInputStream"></a>Function: xmlNewInputStream</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewInputStream (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Create a new input stream structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream or NULL</td></tr></tbody></table></div><h3><a name="xmlNewStringInputStream" id="xmlNewStringInputStream"></a>Function: xmlNewStringInputStream</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewStringInputStream (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buffer)<br />
+</pre><p>Create a new input stream based on a memory buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an memory buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream</td></tr></tbody></table></div><h3><a name="xmlNextChar" id="xmlNextChar"></a>Function: xmlNextChar</h3><pre class="programlisting">void xmlNextChar (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Skip to the next char input char.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseAttValue" id="xmlParseAttValue"></a>Function: xmlParseAttValue</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseAttValue (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse a value for an <a href="libxml-SAX.html#attribute">attribute</a> Note: the parser won't do substitution of entities here, this will be handled later in <a href="libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a> [10] AttValue ::= '"' ([^&lt;&amp;"] | Reference)* '"' | "'" ([^&lt;&amp;'] | Reference)* "'" 3.3.3 Attribute-Value Normalization: Before the value of an <a href="libxml-SAX.html#attribute">attribute</a> is passed to the application or checked for validity, the XML processor must normalize it as follows: - a character <a href="libxml-SAX.html#reference">reference</a> is processed by appending the referenced character to the <a href="libxml-SAX.html#attribute">attribute</a> value - an entity <a href="libxml-SAX.html#reference">reference</a> is processed by recursively processing the replacement text of the entity - a whitespace character (#x20, #xD, #xA, #x9) is processed by appending #x20 to the normalized value, except that only a single #x20 is appended for a "#xD#xA" sequence that is part of an external parsed entity or the literal entity value of an internal parsed entity - other <a href="libxml-SAX.html#characters">characters</a> are processed by appending them to the normalized value If the declared value is not CDATA, then the XML processor must further process the normalized <a href="libxml-SAX.html#attribute">attribute</a> value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) <a href="libxml-SAX.html#characters">characters</a> by a single space (#x20) character. All attributes for which no declaration has been read should be treated by a non-validating parser as if declared CDATA.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the AttValue parsed or NULL. The value has to be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlParseAttribute" id="xmlParseAttribute"></a>Function: xmlParseAttribute</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseAttribute (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** value)<br />
+</pre><p>parse an <a href="libxml-SAX.html#attribute">attribute</a> [41] Attribute ::= Name Eq AttValue [ WFC: No External Entity References ] Attribute values cannot contain direct or indirect entity references to external entities. [ WFC: No &lt; in Attribute Values ] The replacement text of any entity referred to directly or indirectly in an <a href="libxml-SAX.html#attribute">attribute</a> value (other than "&amp;lt;") must not contain a &lt;. [ VC: Attribute Value Type ] The <a href="libxml-SAX.html#attribute">attribute</a> must have been declared; the value must be of the type declared for it. [25] Eq ::= S? '=' S? With namespace: [NS 11] Attribute ::= QName Eq AttValue Also the case QName == xmlns:??? is handled independently as a namespace definition.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** used to store the value of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name, and the value in *value.</td></tr></tbody></table></div><h3><a name="xmlParseAttributeListDecl" id="xmlParseAttributeListDecl"></a>Function: xmlParseAttributeListDecl</h3><pre class="programlisting">void xmlParseAttributeListDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>: parse the Attribute list def for an element [52] AttlistDecl ::= '&lt;!ATTLIST' S Name AttDef* S? '&gt;' [53] AttDef ::= S Name S AttType S DefaultDecl</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseAttributeType" id="xmlParseAttributeType"></a>Function: xmlParseAttributeType</h3><pre class="programlisting">int xmlParseAttributeType (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> * tree)<br />
+</pre><p>parse the Attribute list def for an element [54] AttType ::= StringType | TokenizedType | EnumeratedType [55] StringType ::= 'CDATA' [56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS' Validity constraints for <a href="libxml-SAX.html#attribute">attribute</a> values syntax are checked in xmlValidateAttributeValue() [ VC: ID ] Values of type ID must match the Name production. A name must not appear more than once in an XML document as a value of this type; i.e., ID values must uniquely identify the elements which bear them. [ VC: One ID per Element Type ] No element type may have more than one ID <a href="libxml-SAX.html#attribute">attribute</a> specified. [ VC: ID Attribute Default ] An ID <a href="libxml-SAX.html#attribute">attribute</a> must have a declared default of #IMPLIED or #REQUIRED. [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names; each IDREF Name must match the value of an ID <a href="libxml-SAX.html#attribute">attribute</a> on some element in the XML document; i.e. IDREF values must match the value of some ID attribute. [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names; each Entity Name must match the name of an unparsed entity declared in the DTD. [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the enumeration tree built while parsing</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> type</td></tr></tbody></table></div><h3><a name="xmlParseCDSect" id="xmlParseCDSect"></a>Function: xmlParseCDSect</h3><pre class="programlisting">void xmlParseCDSect (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Parse escaped pure raw content. [18] CDSect ::= CDStart CData CDEnd [19] CDStart ::= '&lt;![CDATA[' [20] Data ::= (Char* - (Char* ']]&gt;' Char*)) [21] CDEnd ::= ']]&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseCharData" id="xmlParseCharData"></a>Function: xmlParseCharData</h3><pre class="programlisting">void xmlParseCharData (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int cdata)<br />
+</pre><p>parse a CharData section. if we are within a CDATA section ']]&gt;' marks an end of section. The right angle bracket (&gt;) may be represented using the string "&amp;gt;", and must, for compatibility, be escaped using "&amp;gt;" or a character <a href="libxml-SAX.html#reference">reference</a> when it appears in the string "]]&gt;" in content, when that string is not marking the end of a CDATA section. [14] CharData ::= [^&lt;&amp;]* - ([^&lt;&amp;]* ']]&gt;' [^&lt;&amp;]*)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>cdata</tt></i>:</span></td><td>int indicating whether we are within a CDATA section</td></tr></tbody></table></div><h3><a name="xmlParseCharRef" id="xmlParseCharRef"></a>Function: xmlParseCharRef</h3><pre class="programlisting">int xmlParseCharRef (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse Reference declarations [66] CharRef ::= '&amp;#' [0-9]+ ';' | '&amp;#x' [0-9a-fA-F]+ ';' [ WFC: Legal Character ] Characters referred to using character references must match the production for Char.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value parsed (as an int), 0 in case of error</td></tr></tbody></table></div><h3><a name="xmlParseComment" id="xmlParseComment"></a>Function: xmlParseComment</h3><pre class="programlisting">void xmlParseComment (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Skip an XML (SGML) <a href="libxml-SAX.html#comment">comment</a> &lt;!-- .... --&gt; The spec says that "For compatibility, the string "--" (double-hyphen) must not occur within comments. " [15] Comment ::= '&lt;!--' ((Char - '-') | ('-' (Char - '-')))* '--&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseContent" id="xmlParseContent"></a>Function: xmlParseContent</h3><pre class="programlisting">void xmlParseContent (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Parse a content: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseDefaultDecl" id="xmlParseDefaultDecl"></a>Function: xmlParseDefaultDecl</h3><pre class="programlisting">int xmlParseDefaultDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** value)<br />
+</pre><p>Parse an <a href="libxml-SAX.html#attribute">attribute</a> default declaration [60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue) [ VC: Required Attribute ] if the default declaration is the keyword #REQUIRED, then the <a href="libxml-SAX.html#attribute">attribute</a> must be specified for all elements of the type in the attribute-list declaration. [ VC: Attribute Default Legal ] The declared default value must meet the lexical constraints of the declared <a href="libxml-SAX.html#attribute">attribute</a> type c.f. xmlValidateAttributeDecl() [ VC: Fixed Attribute Default ] if an <a href="libxml-SAX.html#attribute">attribute</a> has a default value declared with the #FIXED keyword, instances of that <a href="libxml-SAX.html#attribute">attribute</a> must match the default value. [ WFC: No &lt; in Attribute Values ] handled in xmlParseAttValue()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>Receive a possible fixed default value for the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>XML_ATTRIBUTE_NONE, XML_ATTRIBUTE_REQUIRED, <a href="libxml-tree.html#XML_ATTRIBUTE_IMPLIED">XML_ATTRIBUTE_IMPLIED</a> or XML_ATTRIBUTE_FIXED.</td></tr></tbody></table></div><h3><a name="xmlParseDocTypeDecl" id="xmlParseDocTypeDecl"></a>Function: xmlParseDocTypeDecl</h3><pre class="programlisting">void xmlParseDocTypeDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse a DOCTYPE declaration [28] doctypedecl ::= '&lt;!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdecl | PEReference | S)* ']' S?)? '&gt;' [ VC: Root Element Type ] The Name in the document type declaration must match the element type of the root element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseElement" id="xmlParseElement"></a>Function: xmlParseElement</h3><pre class="programlisting">void xmlParseElement (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML element [39] element ::= EmptyElemTag | STag content ETag [ WFC: Element Type Match ] The Name in an element's end-tag must match the element type in the start-tag.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseElementChildrenContentDecl" id="xmlParseElementChildrenContentDecl"></a>Function: xmlParseElementChildrenContentDecl</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlParseElementChildrenContentDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int inputchk)<br />
+</pre><p>parse the declaration for a Mixed Element content The leading '(' and spaces have been skipped in <a href="libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a> [47] children ::= (choice | seq) ('?' | '*' | '+')? [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')? [49] choice ::= '(' S? cp ( S? '|' S? cp )* S? ')' [50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')' [ VC: Proper Group/PE Nesting ] applies to [49] and [50] TODO Parameter-entity replacement text must be properly nested with parenthesized groups. That is to say, if either of the opening or closing parentheses in a choice, seq, or Mixed construct is contained in the replacement text for a parameter entity, both must be contained in the same replacement text. For interoperability, if a parameter-entity <a href="libxml-SAX.html#reference">reference</a> appears in a choice, seq, or Mixed construct, its replacement text should not be empty, and neither the first nor last non-blank character of the replacement text should be a connector (| or ,).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>inputchk</tt></i>:</span></td><td>the input used for the current entity, needed for boundary checks</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the tree of <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> describing the element hierarchy.</td></tr></tbody></table></div><h3><a name="xmlParseElementContentDecl" id="xmlParseElementContentDecl"></a>Function: xmlParseElementContentDecl</h3><pre class="programlisting">int xmlParseElementContentDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> * result)<br />
+</pre><p>parse the declaration for an Element content either Mixed or Children, the cases EMPTY and ANY are handled directly in <a href="libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a> [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | children</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the element being defined.</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the Element Content pointer will be stored here if any</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type of element content XML_ELEMENT_TYPE_xxx</td></tr></tbody></table></div><h3><a name="xmlParseElementDecl" id="xmlParseElementDecl"></a>Function: xmlParseElementDecl</h3><pre class="programlisting">int xmlParseElementDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an Element declaration. [45] elementdecl ::= '&lt;!ELEMENT' S Name S contentspec S? '&gt;' [ VC: Unique Element Type Declaration ] No element type may be declared more than once</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type of the element, or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlParseElementMixedContentDecl" id="xmlParseElementMixedContentDecl"></a>Function: xmlParseElementMixedContentDecl</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlParseElementMixedContentDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int inputchk)<br />
+</pre><p>parse the declaration for a Mixed Element content The leading '(' and spaces have been skipped in <a href="libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a> [51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*' | '(' S? '#PCDATA' S? ')' [ VC: Proper Group/PE Nesting ] applies to [51] too (see [49]) [ VC: No Duplicate Types ] The same name must not appear more than once in a single mixed-content declaration.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>inputchk</tt></i>:</span></td><td>the input used for the current entity, needed for boundary checks</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the list of the <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> describing the element choices</td></tr></tbody></table></div><h3><a name="xmlParseEncName" id="xmlParseEncName"></a>Function: xmlParseEncName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseEncName (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse the XML encoding name [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the encoding name value or NULL</td></tr></tbody></table></div><h3><a name="xmlParseEncodingDecl" id="xmlParseEncodingDecl"></a>Function: xmlParseEncodingDecl</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseEncodingDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse the XML encoding declaration [80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' | "'" EncName "'") this setups the conversion filters.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the encoding value or NULL</td></tr></tbody></table></div><h3><a name="xmlParseEndTag" id="xmlParseEndTag"></a>Function: xmlParseEndTag</h3><pre class="programlisting">void xmlParseEndTag (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an end of tag [42] ETag ::= '&lt;/' Name S? '&gt;' With namespace [NS 9] ETag ::= '&lt;/' QName S? '&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseEntityDecl" id="xmlParseEntityDecl"></a>Function: xmlParseEntityDecl</h3><pre class="programlisting">void xmlParseEntityDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse &lt;!ENTITY declarations [70] EntityDecl ::= GEDecl | PEDecl [71] GEDecl ::= '&lt;!ENTITY' S Name S EntityDef S? '&gt;' [72] PEDecl ::= '&lt;!ENTITY' S '%' S Name S PEDef S? '&gt;' [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?) [74] PEDef ::= EntityValue | ExternalID [76] NDataDecl ::= S 'NDATA' S Name [ VC: Notation Declared ] The Name must match the declared name of a notation.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseEntityRef" id="xmlParseEntityRef"></a>Function: xmlParseEntityRef</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> xmlParseEntityRef (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse ENTITY references declarations [68] EntityRef ::= '&amp;' Name ';' [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with "standalone='yes'", the Name given in the entity <a href="libxml-SAX.html#reference">reference</a> must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot. The declaration of a parameter entity must precede any <a href="libxml-SAX.html#reference">reference</a> to it. Similarly, the declaration of a general entity must precede any <a href="libxml-SAX.html#reference">reference</a> to it which appears in a default value in an attribute-list declaration. Note that if entities are declared in the external subset or in external parameter entities, a non-validating processor is not obligated to read and process their declarations; for such documents, the rule that an entity must be declared is a well-formedness constraint only if standalone='yes'. [ WFC: Parsed Entity ] An entity <a href="libxml-SAX.html#reference">reference</a> must not contain the name of an unparsed entity</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> if found, or NULL otherwise.</td></tr></tbody></table></div><h3><a name="xmlParseEntityValue" id="xmlParseEntityValue"></a>Function: xmlParseEntityValue</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseEntityValue (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** orig)<br />
+</pre><p>parse a value for ENTITY declarations [9] EntityValue ::= '"' ([^%&amp;"] | PEReference | Reference)* '"' | "'" ([^%&amp;'] | PEReference | Reference)* "'"</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>orig</tt></i>:</span></td><td>if non-NULL store a copy of the original entity value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the EntityValue parsed with <a href="libxml-SAX.html#reference">reference</a> substituted or NULL</td></tr></tbody></table></div><h3><a name="xmlParseEnumeratedType" id="xmlParseEnumeratedType"></a>Function: xmlParseEnumeratedType</h3><pre class="programlisting">int xmlParseEnumeratedType (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> * tree)<br />
+</pre><p>parse an Enumerated <a href="libxml-SAX.html#attribute">attribute</a> type. [57] EnumeratedType ::= NotationType | Enumeration [58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the enumeration tree built while parsing</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td><a href="libxml-tree.html#XML_ATTRIBUTE_ENUMERATION">XML_ATTRIBUTE_ENUMERATION</a> or <a href="libxml-tree.html#XML_ATTRIBUTE_NOTATION">XML_ATTRIBUTE_NOTATION</a></td></tr></tbody></table></div><h3><a name="xmlParseEnumerationType" id="xmlParseEnumerationType"></a>Function: xmlParseEnumerationType</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> xmlParseEnumerationType (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an Enumeration <a href="libxml-SAX.html#attribute">attribute</a> type. [59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')' [ VC: Enumeration ] Values of this type must match one of the Nmtoken tokens in the declaration</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the enumeration <a href="libxml-SAX.html#attribute">attribute</a> tree built while parsing</td></tr></tbody></table></div><h3><a name="xmlParseExternalID" id="xmlParseExternalID"></a>Function: xmlParseExternalID</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseExternalID (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** publicID, <br /> int strict)<br />
+</pre><p>Parse an External ID or a Public ID NOTE: Productions [75] and [83] interact badly since [75] can generate 'PUBLIC' S PubidLiteral S SystemLiteral [75] ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral [83] PublicID ::= 'PUBLIC' S PubidLiteral</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>publicID</tt></i>:</span></td><td>a xmlChar** receiving PubidLiteral</td></tr><tr><td><span class="term"><i><tt>strict</tt></i>:</span></td><td>indicate whether we should restrict parsing to only production [75], see NOTE below</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the function returns SystemLiteral and in the second case publicID receives PubidLiteral, is strict is off it is possible to return NULL and have publicID set.</td></tr></tbody></table></div><h3><a name="xmlParseExternalSubset" id="xmlParseExternalSubset"></a>Function: xmlParseExternalSubset</h3><pre class="programlisting">void xmlParseExternalSubset (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
+</pre><p>parse Markup declarations from an external subset [30] extSubset ::= textDecl? extSubsetDecl [31] extSubsetDecl ::= (markupdecl | conditionalSect | PEReference | S) *</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external identifier</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the system identifier (or URL)</td></tr></tbody></table></div><h3><a name="xmlParseMarkupDecl" id="xmlParseMarkupDecl"></a>Function: xmlParseMarkupDecl</h3><pre class="programlisting">void xmlParseMarkupDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse Markup declarations [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment [ VC: Proper Declaration/PE Nesting ] Parameter-entity replacement text must be properly nested with markup declarations. That is to say, if either the first character or the last character of a markup declaration (markupdecl above) is contained in the replacement text for a parameter-entity reference, both must be contained in the same replacement text. [ WFC: PEs in Internal Subset ] In the internal DTD subset, parameter-entity references can occur only where markup declarations can occur, not within markup declarations. (This does not apply to references that occur in external parameter entities or to the external subset.)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseMisc" id="xmlParseMisc"></a>Function: xmlParseMisc</h3><pre class="programlisting">void xmlParseMisc (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML Misc* optional field. [27] Misc ::= Comment | PI | S</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseName" id="xmlParseName"></a>Function: xmlParseName</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseName (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML name. [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (#x20 Name)*</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the Name parsed or NULL</td></tr></tbody></table></div><h3><a name="xmlParseNamespace" id="xmlParseNamespace"></a>Function: xmlParseNamespace</h3><pre class="programlisting">void xmlParseNamespace (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>xmlParseNamespace: parse specific PI '&lt;?namespace ...' constructs. This is what the older xml-name Working Draft specified, a bunch of other stuff may still rely on it, so support is still here as if it was declared on the root of the Tree:-( TODO: remove from library To be removed at next drop of binary compatibility</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseNmtoken" id="xmlParseNmtoken"></a>Function: xmlParseNmtoken</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseNmtoken (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML Nmtoken. [7] Nmtoken ::= (NameChar)+ [8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the Nmtoken parsed or NULL</td></tr></tbody></table></div><h3><a name="xmlParseNotationDecl" id="xmlParseNotationDecl"></a>Function: xmlParseNotationDecl</h3><pre class="programlisting">void xmlParseNotationDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse a notation declaration [82] NotationDecl ::= '&lt;!NOTATION' S Name S (ExternalID | PublicID) S? '&gt;' Hence there is actually 3 choices: 'PUBLIC' S PubidLiteral 'PUBLIC' S PubidLiteral S SystemLiteral and 'SYSTEM' S SystemLiteral See the NOTE on xmlParseExternalID().</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseNotationType" id="xmlParseNotationType"></a>Function: xmlParseNotationType</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> xmlParseNotationType (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an Notation <a href="libxml-SAX.html#attribute">attribute</a> type. Note: the leading 'NOTATION' S part has already being parsed... [58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')' [ VC: Notation Attributes ] Values of this type must match one of the notation names included in the declaration; all notation names in the declaration must be declared.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the notation <a href="libxml-SAX.html#attribute">attribute</a> tree built while parsing</td></tr></tbody></table></div><h3><a name="xmlParsePEReference" id="xmlParsePEReference"></a>Function: xmlParsePEReference</h3><pre class="programlisting">void xmlParsePEReference (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse PEReference declarations The entity content is handled directly by pushing it's content as a new input stream. [69] PEReference ::= '%' Name ';' [ WFC: No Recursion ] A parsed entity must not contain a recursive <a href="libxml-SAX.html#reference">reference</a> to itself, either directly or indirectly. [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with "standalone='yes'", ... ... The declaration of a parameter entity must precede any <a href="libxml-SAX.html#reference">reference</a> to it... [ VC: Entity Declared ] In a document with an external subset or external parameter entities with "standalone='no'", ... ... The declaration of a parameter entity must precede any <a href="libxml-SAX.html#reference">reference</a> to it... [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParsePI" id="xmlParsePI"></a>Function: xmlParsePI</h3><pre class="programlisting">void xmlParsePI (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML Processing Instruction. [16] PI ::= '&lt;?' PITarget (S (Char* - (Char* '?&gt;' Char*)))? '?&gt;' The processing is transferred to SAX once parsed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParsePITarget" id="xmlParsePITarget"></a>Function: xmlParsePITarget</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParsePITarget (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse the name of a PI [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the PITarget name or NULL</td></tr></tbody></table></div><h3><a name="xmlParsePubidLiteral" id="xmlParsePubidLiteral"></a>Function: xmlParsePubidLiteral</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParsePubidLiteral (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML public literal [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the PubidLiteral parsed or NULL.</td></tr></tbody></table></div><h3><a name="xmlParseQuotedString" id="xmlParseQuotedString"></a>Function: xmlParseQuotedString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseQuotedString (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Parse and return a string between quotes or doublequotes TODO: Deprecated, to be removed at next drop of binary compatibility</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string parser or NULL.</td></tr></tbody></table></div><h3><a name="xmlParseReference" id="xmlParseReference"></a>Function: xmlParseReference</h3><pre class="programlisting">void xmlParseReference (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse and handle entity references in content, depending on the SAX interface, this may end-up in a call to character() if this is a CharRef, a predefined entity, if there is no reference() callback. or if the parser was asked to switch to that mode. [67] Reference ::= EntityRef | CharRef</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseSDDecl" id="xmlParseSDDecl"></a>Function: xmlParseSDDecl</h3><pre class="programlisting">int xmlParseSDDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse the XML standalone declaration [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"')) [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value "no" if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the <a href="libxml-SAX.html#attribute">attribute</a> appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if standalone="yes" 0 if standalone="no" -2 if standalone <a href="libxml-SAX.html#attribute">attribute</a> is missing or invalid (A standalone value of -2 means that the XML declaration was found, but no value was specified for the standalone attribute).</td></tr></tbody></table></div><h3><a name="xmlParseStartTag" id="xmlParseStartTag"></a>Function: xmlParseStartTag</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseStartTag (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse a start of tag either for rule element or EmptyElement. In both case we don't parse the tag closing chars. [40] STag ::= '&lt;' Name (S Attribute)* S? '&gt;' [ WFC: Unique Att Spec ] No <a href="libxml-SAX.html#attribute">attribute</a> name may appear more than once in the same start-tag or empty-element tag. [44] EmptyElemTag ::= '&lt;' Name (S Attribute)* S? '/&gt;' [ WFC: Unique Att Spec ] No <a href="libxml-SAX.html#attribute">attribute</a> name may appear more than once in the same start-tag or empty-element tag. With namespace: [NS 8] STag ::= '&lt;' QName (S Attribute)* S? '&gt;' [NS 10] EmptyElement ::= '&lt;' QName (S Attribute)* S? '/&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the element name parsed</td></tr></tbody></table></div><h3><a name="xmlParseSystemLiteral" id="xmlParseSystemLiteral"></a>Function: xmlParseSystemLiteral</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseSystemLiteral (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML Literal [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the SystemLiteral parsed or NULL</td></tr></tbody></table></div><h3><a name="xmlParseTextDecl" id="xmlParseTextDecl"></a>Function: xmlParseTextDecl</h3><pre class="programlisting">void xmlParseTextDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML declaration header for external entities [77] TextDecl ::= '&lt;?xml' VersionInfo? EncodingDecl S? '?&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseVersionInfo" id="xmlParseVersionInfo"></a>Function: xmlParseVersionInfo</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseVersionInfo (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse the XML version. [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ") [25] Eq ::= S? '=' S?</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the version string, e.g. "1.0"</td></tr></tbody></table></div><h3><a name="xmlParseVersionNum" id="xmlParseVersionNum"></a>Function: xmlParseVersionNum</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseVersionNum (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse the XML version value. [26] VersionNum ::= '1.' [0-9]+ In practice allow [0-9].[0-9]+ at that level</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string giving the XML version number, or NULL</td></tr></tbody></table></div><h3><a name="xmlParseXMLDecl" id="xmlParseXMLDecl"></a>Function: xmlParseXMLDecl</h3><pre class="programlisting">void xmlParseXMLDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse an XML declaration header [23] XMLDecl ::= '&lt;?xml' VersionInfo EncodingDecl? SDDecl? S? '?&gt;'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParserHandlePEReference" id="xmlParserHandlePEReference"></a>Function: xmlParserHandlePEReference</h3><pre class="programlisting">void xmlParserHandlePEReference (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>[69] PEReference ::= '%' Name ';' [ WFC: No Recursion ] A parsed entity must not contain a recursive <a href="libxml-SAX.html#reference">reference</a> to itself, either directly or indirectly. [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with "standalone='yes'", ... ... The declaration of a parameter entity must precede any <a href="libxml-SAX.html#reference">reference</a> to it... [ VC: Entity Declared ] In a document with an external subset or external parameter entities with "standalone='no'", ... ... The declaration of a parameter entity must precede any <a href="libxml-SAX.html#reference">reference</a> to it... [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled. A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc i.e. - Included in literal in entity values - Included as Parameter Entity <a href="libxml-SAX.html#reference">reference</a> within DTDs</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr></tbody></table></div><h3><a name="xmlParserHandleReference" id="xmlParserHandleReference"></a>Function: xmlParserHandleReference</h3><pre class="programlisting">void xmlParserHandleReference (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>TODO: Remove, now deprecated ... the test is done directly in the content parsing routines. [67] Reference ::= EntityRef | CharRef [68] EntityRef ::= '&amp;' Name ';' [ WFC: Entity Declared ] the Name given in the entity <a href="libxml-SAX.html#reference">reference</a> must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot. [ WFC: Parsed Entity ] An entity <a href="libxml-SAX.html#reference">reference</a> must not contain the name of an unparsed entity [66] CharRef ::= '&amp;#' [0-9]+ ';' | '&amp;#x' [0-9a-fA-F]+ ';' A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr></tbody></table></div><h3><a name="xmlParserInputShrink" id="xmlParserInputShrink"></a>Function: xmlParserInputShrink</h3><pre class="programlisting">void xmlParserInputShrink (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in)<br />
+</pre><p>This function removes used input for the parser.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an XML parser input</td></tr></tbody></table></div><h3><a name="xmlPopInput" id="xmlPopInput"></a>Function: xmlPopInput</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> xmlPopInput (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>xmlPopInput: the current input pointed by ctxt-&gt;input came to an end pop it and return the next char.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> in the parser context</td></tr></tbody></table></div><h3><a name="xmlPushInput" id="xmlPushInput"></a>Function: xmlPushInput</h3><pre class="programlisting">int xmlPushInput (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br />
+</pre><p>xmlPushInput: switch to a new input stream which is stacked on top of the previous one(s).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an XML parser input fragment (entity, XML fragment ...).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error or the index in the input stack</td></tr></tbody></table></div><h3><a name="xmlScanName" id="xmlScanName"></a>Function: xmlScanName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlScanName (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>Trickery: parse an XML name but without consuming the input flow Needed for rollback cases. Used only when parsing entities references. TODO: seems deprecated now, only used in the default part of <a href="libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a> [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (S Name)*</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the Name parsed or NULL</td></tr></tbody></table></div><h3><a name="xmlSetEntityReferenceFunc" id="xmlSetEntityReferenceFunc"></a>Function: xmlSetEntityReferenceFunc</h3><pre class="programlisting">void xmlSetEntityReferenceFunc (<a href="libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a> func)<br />
+</pre><p>Set the function to call call back when a xml <a href="libxml-SAX.html#reference">reference</a> has been made</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>A valid function</td></tr></tbody></table></div><h3><a name="xmlSkipBlankChars" id="xmlSkipBlankChars"></a>Function: xmlSkipBlankChars</h3><pre class="programlisting">int xmlSkipBlankChars (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>skip all blanks character found at that point in the input streams. It pops up finished entities in the process if allowable at that point.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of space chars skipped</td></tr></tbody></table></div><h3><a name="xmlSplitQName" id="xmlSplitQName"></a>Function: xmlSplitQName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** prefix)<br />
+</pre><p>parse an UTF8 encoded XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local part, and prefix is updated to get the Prefix if any.</td></tr></tbody></table></div><h3><a name="xmlStringCurrentChar" id="xmlStringCurrentChar"></a>Function: xmlStringCurrentChar</h3><pre class="programlisting">int xmlStringCurrentChar (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> int * len)<br />
+</pre><p>The current char value, if using UTF-8 this may actually span multiple bytes in the input buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XML parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>pointer to the beginning of the char</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>pointer to the length of the char read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current char value and its length</td></tr></tbody></table></div><h3><a name="xmlStringDecodeEntities" id="xmlStringDecodeEntities"></a>Function: xmlStringDecodeEntities</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStringDecodeEntities (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int what, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end2, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end3)<br />
+</pre><p>Takes a entity string content and process to do the adequate substitutions. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= '%' Name ';'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the input string</td></tr><tr><td><span class="term"><i><tt>what</tt></i>:</span></td><td>combination of <a href="libxml-parserInternals.html#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a> and <a href="libxml-parserInternals.html#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a></td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end2</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end3</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>A newly allocated string with the substitution done. The caller must deallocate it !</td></tr></tbody></table></div><h3><a name="xmlStringLenDecodeEntities" id="xmlStringLenDecodeEntities"></a>Function: xmlStringLenDecodeEntities</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStringLenDecodeEntities (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int len, <br /> int what, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end2, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> end3)<br />
+</pre><p>Takes a entity string content and process to do the adequate substitutions. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= '%' Name ';'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the input string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the string length</td></tr><tr><td><span class="term"><i><tt>what</tt></i>:</span></td><td>combination of <a href="libxml-parserInternals.html#XML_SUBSTITUTE_REF">XML_SUBSTITUTE_REF</a> and <a href="libxml-parserInternals.html#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a></td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end2</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>end3</tt></i>:</span></td><td>an end marker xmlChar, 0 if none</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>A newly allocated string with the substitution done. The caller must deallocate it !</td></tr></tbody></table></div><h3><a name="xmlSwitchEncoding" id="xmlSwitchEncoding"></a>Function: xmlSwitchEncoding</h3><pre class="programlisting">int xmlSwitchEncoding (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>change the input functions when discovering the character encoding of a given entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the encoding value (number)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlSwitchInputEncoding" id="xmlSwitchInputEncoding"></a>Function: xmlSwitchInputEncoding</h3><pre class="programlisting">int xmlSwitchInputEncoding (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)<br />
+</pre><p>change the input functions when discovering the character encoding of a given entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the input stream</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the encoding handler</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlSwitchToEncoding" id="xmlSwitchToEncoding"></a>Function: xmlSwitchToEncoding</h3><pre class="programlisting">int xmlSwitchToEncoding (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)<br />
+</pre><p>change the input functions when discovering the character encoding of a given entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the parser context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the encoding handler</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 otherwise</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-pattern.html b/libxml2-2.9.10/doc/html/libxml-pattern.html
new file mode 100644
index 0000000..e75108a
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-pattern.html
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module pattern from libxml2</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></h1><h2>Module pattern from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-parserInternals.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-parserInternals.html">parserInternals</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-relaxng.html">relaxng</a></th><td><a accesskey="n" href="libxml-relaxng.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>allows to compile and test pattern expressions for nodes either in a tree or based on a parser state. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlPattern">xmlPattern</a><br />struct _xmlPattern
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Enum <a href="#xmlPatternFlags">xmlPatternFlags</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-pattern.html#xmlPattern">xmlPattern</a> * <a name="xmlPatternPtr" id="xmlPatternPtr">xmlPatternPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlStreamCtxt">xmlStreamCtxt</a><br />struct _xmlStreamCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-pattern.html#xmlStreamCtxt">xmlStreamCtxt</a> * <a name="xmlStreamCtxtPtr" id="xmlStreamCtxtPtr">xmlStreamCtxtPtr</a>
+</pre><pre class="programlisting">void <a href="#xmlFreePattern">xmlFreePattern</a> (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
+<pre class="programlisting">void <a href="#xmlFreePatternList">xmlFreePatternList</a> (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
+<pre class="programlisting">void <a href="#xmlFreeStreamCtxt">xmlFreeStreamCtxt</a> (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream)</pre>
+<pre class="programlisting">int <a href="#xmlPatternFromRoot">xmlPatternFromRoot</a> (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
+<pre class="programlisting"><a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> <a href="#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a> (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
+<pre class="programlisting">int <a href="#xmlPatternMatch">xmlPatternMatch</a> (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">int <a href="#xmlPatternMaxDepth">xmlPatternMaxDepth</a> (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
+<pre class="programlisting">int <a href="#xmlPatternMinDepth">xmlPatternMinDepth</a> (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
+<pre class="programlisting">int <a href="#xmlPatternStreamable">xmlPatternStreamable</a> (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
+<pre class="programlisting"><a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> <a href="#xmlPatterncompile">xmlPatterncompile</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br /> <a href="libxml-dict.html#xmlDict">xmlDict</a> * dict, <br /> int flags, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)</pre>
+<pre class="programlisting">int <a href="#xmlStreamPop">xmlStreamPop</a> (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream)</pre>
+<pre class="programlisting">int <a href="#xmlStreamPush">xmlStreamPush</a> (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)</pre>
+<pre class="programlisting">int <a href="#xmlStreamPushAttr">xmlStreamPushAttr</a> (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)</pre>
+<pre class="programlisting">int <a href="#xmlStreamPushNode">xmlStreamPushNode</a> (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns, <br /> int nodeType)</pre>
+<pre class="programlisting">int <a href="#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a> (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> streamCtxt)</pre>
+<h2>Description</h2>
+<h3><a name="xmlPattern" id="xmlPattern">Structure xmlPattern</a></h3><pre class="programlisting">Structure xmlPattern<br />struct _xmlPattern {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlPatternFlags" id="xmlPatternFlags">xmlPatternFlags</a></h3><pre class="programlisting">Enum xmlPatternFlags {
+ <a name="XML_PATTERN_DEFAULT" id="XML_PATTERN_DEFAULT">XML_PATTERN_DEFAULT</a> = 0 : simple pattern match
+ <a name="XML_PATTERN_XPATH" id="XML_PATTERN_XPATH">XML_PATTERN_XPATH</a> = 1 : standard XPath pattern
+ <a name="XML_PATTERN_XSSEL" id="XML_PATTERN_XSSEL">XML_PATTERN_XSSEL</a> = 2 : XPath subset for schema selector
+ <a name="XML_PATTERN_XSFIELD" id="XML_PATTERN_XSFIELD">XML_PATTERN_XSFIELD</a> = 4 : XPath subset for schema field
+}
+</pre><h3><a name="xmlStreamCtxt" id="xmlStreamCtxt">Structure xmlStreamCtxt</a></h3><pre class="programlisting">Structure xmlStreamCtxt<br />struct _xmlStreamCtxt {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlFreePattern" id="xmlFreePattern"></a>Function: xmlFreePattern</h3><pre class="programlisting">void xmlFreePattern (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
+</pre><p>Free up the memory allocated by @comp</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>an XSLT comp</td></tr></tbody></table></div><h3><a name="xmlFreePatternList" id="xmlFreePatternList"></a>Function: xmlFreePatternList</h3><pre class="programlisting">void xmlFreePatternList (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
+</pre><p>Free up the memory allocated by all the elements of @comp</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>an XSLT comp list</td></tr></tbody></table></div><h3><a name="xmlFreeStreamCtxt" id="xmlFreeStreamCtxt"></a>Function: xmlFreeStreamCtxt</h3><pre class="programlisting">void xmlFreeStreamCtxt (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream)<br />
+</pre><p>Free the stream context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr></tbody></table></div><h3><a name="xmlPatternFromRoot" id="xmlPatternFromRoot"></a>Function: xmlPatternFromRoot</h3><pre class="programlisting">int xmlPatternFromRoot (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
+</pre><p>Check if the pattern must be looked at from the root.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlPatternGetStreamCtxt" id="xmlPatternGetStreamCtxt"></a>Function: xmlPatternGetStreamCtxt</h3><pre class="programlisting"><a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> xmlPatternGetStreamCtxt (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
+</pre><p>Get a streaming context for that pattern Use <a href="libxml-pattern.html#xmlFreeStreamCtxt">xmlFreeStreamCtxt</a> to free the context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the context or NULL in case of failure</td></tr></tbody></table></div><h3><a name="xmlPatternMatch" id="xmlPatternMatch"></a>Function: xmlPatternMatch</h3><pre class="programlisting">int xmlPatternMatch (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Test whether the node matches the pattern</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if it matches, 0 if it doesn't and -1 in case of failure</td></tr></tbody></table></div><h3><a name="xmlPatternMaxDepth" id="xmlPatternMaxDepth"></a>Function: xmlPatternMaxDepth</h3><pre class="programlisting">int xmlPatternMaxDepth (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
+</pre><p>Check the maximum depth reachable by a pattern</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-2 if no limit (using //), otherwise the depth, and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlPatternMinDepth" id="xmlPatternMinDepth"></a>Function: xmlPatternMinDepth</h3><pre class="programlisting">int xmlPatternMinDepth (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
+</pre><p>Check the minimum depth reachable by a pattern, 0 mean the / or . are part of the set.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error otherwise the depth,</td></tr></tbody></table></div><h3><a name="xmlPatternStreamable" id="xmlPatternStreamable"></a>Function: xmlPatternStreamable</h3><pre class="programlisting">int xmlPatternStreamable (<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
+</pre><p>Check if the pattern is streamable i.e. xmlPatternGetStreamCtxt() should work.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if streamable, 0 if not and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlPatterncompile" id="xmlPatterncompile"></a>Function: xmlPatterncompile</h3><pre class="programlisting"><a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> xmlPatterncompile (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br /> <a href="libxml-dict.html#xmlDict">xmlDict</a> * dict, <br /> int flags, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)<br />
+</pre><p>Compile a pattern.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>the pattern to compile</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>an optional dictionary for interned strings</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>compilation flags, see <a href="libxml-pattern.html#xmlPatternFlags">xmlPatternFlags</a></td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the compiled form of the pattern or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlStreamPop" id="xmlStreamPop"></a>Function: xmlStreamPop</h3><pre class="programlisting">int xmlStreamPop (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream)<br />
+</pre><p>push one level from the stream.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise.</td></tr></tbody></table></div><h3><a name="xmlStreamPush" id="xmlStreamPush"></a>Function: xmlStreamPush</h3><pre class="programlisting">int xmlStreamPush (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)<br />
+</pre><p>Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an element-node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the current name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.</td></tr></tbody></table></div><h3><a name="xmlStreamPushAttr" id="xmlStreamPushAttr"></a>Function: xmlStreamPushAttr</h3><pre class="programlisting">int xmlStreamPushAttr (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)<br />
+</pre><p>Push new <a href="libxml-SAX.html#attribute">attribute</a> data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an attribute-node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the current name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.</td></tr></tbody></table></div><h3><a name="xmlStreamPushNode" id="xmlStreamPushNode"></a>Function: xmlStreamPushNode</h3><pre class="programlisting">int xmlStreamPushNode (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns, <br /> int nodeType)<br />
+</pre><p>Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Different from xmlStreamPush() this function can be fed with nodes of type: element-, attribute-, text-, cdata-section-, comment- and processing-instruction-node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the current name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace name</td></tr><tr><td><span class="term"><i><tt>nodeType</tt></i>:</span></td><td>the type of the node being pushed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.</td></tr></tbody></table></div><h3><a name="xmlStreamWantsAnyNode" id="xmlStreamWantsAnyNode"></a>Function: xmlStreamWantsAnyNode</h3><pre class="programlisting">int xmlStreamWantsAnyNode (<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> streamCtxt)<br />
+</pre><p>Query if the streaming pattern additionally needs to be fed with text-, cdata-section-, comment- and processing-instruction-nodes. If the result is 0 then only element-nodes and attribute-nodes need to be pushed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>streamCtxt</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of need of nodes of the above described types, 0 otherwise. -1 on API errors.</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-relaxng.html b/libxml2-2.9.10/doc/html/libxml-relaxng.html
new file mode 100644
index 0000000..2834110
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-relaxng.html
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module relaxng from libxml2</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></h1><h2>Module relaxng from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-pattern.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-pattern.html">pattern</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-schemasInternals.html">schemasInternals</a></th><td><a accesskey="n" href="libxml-schemasInternals.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>implementation of the Relax-NG validation </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlRelaxNG">xmlRelaxNG</a><br />struct _xmlRelaxNG
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Structure <a href="#xmlRelaxNGParserCtxt">xmlRelaxNGParserCtxt</a><br />struct _xmlRelaxNGParserCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-relaxng.html#xmlRelaxNGParserCtxt">xmlRelaxNGParserCtxt</a> * <a name="xmlRelaxNGParserCtxtPtr" id="xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlRelaxNGParserFlag">xmlRelaxNGParserFlag</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-relaxng.html#xmlRelaxNG">xmlRelaxNG</a> * <a name="xmlRelaxNGPtr" id="xmlRelaxNGPtr">xmlRelaxNGPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlRelaxNGValidCtxt">xmlRelaxNGValidCtxt</a><br />struct _xmlRelaxNGValidCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-relaxng.html#xmlRelaxNGValidCtxt">xmlRelaxNGValidCtxt</a> * <a name="xmlRelaxNGValidCtxtPtr" id="xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlRelaxNGValidErr">xmlRelaxNGValidErr</a>
+</pre><pre class="programlisting">void <a href="#xmlRelaxNGCleanupTypes">xmlRelaxNGCleanupTypes</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlRelaxNGDump">xmlRelaxNGDump</a> (FILE * output, <br /> <a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)</pre>
+<pre class="programlisting">void <a href="#xmlRelaxNGDumpTree">xmlRelaxNGDumpTree</a> (FILE * output, <br /> <a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)</pre>
+<pre class="programlisting">void <a href="#xmlRelaxNGFree">xmlRelaxNGFree</a> (<a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)</pre>
+<pre class="programlisting">void <a href="#xmlRelaxNGFreeParserCtxt">xmlRelaxNGFreeParserCtxt</a> (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlRelaxNGFreeValidCtxt">xmlRelaxNGFreeValidCtxt</a> (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a> (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> * err, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> * warn, <br /> void ** ctx)</pre>
+<pre class="programlisting">int <a href="#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a> (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> * err, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> * warn, <br /> void ** ctx)</pre>
+<pre class="programlisting">int <a href="#xmlRelaxNGInitTypes">xmlRelaxNGInitTypes</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> <a href="#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> <a href="#xmlRelaxNGNewMemParserCtxt">xmlRelaxNGNewMemParserCtxt</a> (const char * buffer, <br /> int size)</pre>
+<pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> <a href="#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a> (const char * URL)</pre>
+<pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> <a href="#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a> (<a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)</pre>
+<pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> <a href="#xmlRelaxNGParse">xmlRelaxNGParse</a> (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a> (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br /> void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlRelaxNGSetParserStructuredErrors">xmlRelaxNGSetParserStructuredErrors</a> (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br /> void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a> (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br /> void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a> (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br /> void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a> (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a> (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
+<pre class="programlisting">int <a href="#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a> (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
+<pre class="programlisting">int <a href="#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a> (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * data, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a> (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
+<pre class="programlisting">Function type: <a href="#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a>
+void <a href="#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a>
+void <a href="#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<pre class="programlisting">int <a href="#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a> (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br /> int flags)</pre>
+<h2>Description</h2>
+<h3><a name="xmlRelaxNG" id="xmlRelaxNG">Structure xmlRelaxNG</a></h3><pre class="programlisting">Structure xmlRelaxNG<br />struct _xmlRelaxNG {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlRelaxNGParserCtxt" id="xmlRelaxNGParserCtxt">Structure xmlRelaxNGParserCtxt</a></h3><pre class="programlisting">Structure xmlRelaxNGParserCtxt<br />struct _xmlRelaxNGParserCtxt {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlRelaxNGParserFlag" id="xmlRelaxNGParserFlag">xmlRelaxNGParserFlag</a></h3><pre class="programlisting">Enum xmlRelaxNGParserFlag {
+ <a name="XML_RELAXNGP_NONE" id="XML_RELAXNGP_NONE">XML_RELAXNGP_NONE</a> = 0
+ <a name="XML_RELAXNGP_FREE_DOC" id="XML_RELAXNGP_FREE_DOC">XML_RELAXNGP_FREE_DOC</a> = 1
+ <a name="XML_RELAXNGP_CRNG" id="XML_RELAXNGP_CRNG">XML_RELAXNGP_CRNG</a> = 2
+}
+</pre><h3><a name="xmlRelaxNGValidCtxt" id="xmlRelaxNGValidCtxt">Structure xmlRelaxNGValidCtxt</a></h3><pre class="programlisting">Structure xmlRelaxNGValidCtxt<br />struct _xmlRelaxNGValidCtxt {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlRelaxNGValidErr" id="xmlRelaxNGValidErr">xmlRelaxNGValidErr</a></h3><pre class="programlisting">Enum xmlRelaxNGValidErr {
+ <a name="XML_RELAXNG_OK" id="XML_RELAXNG_OK">XML_RELAXNG_OK</a> = 0
+ <a name="XML_RELAXNG_ERR_MEMORY" id="XML_RELAXNG_ERR_MEMORY">XML_RELAXNG_ERR_MEMORY</a> = 1
+ <a name="XML_RELAXNG_ERR_TYPE" id="XML_RELAXNG_ERR_TYPE">XML_RELAXNG_ERR_TYPE</a> = 2
+ <a name="XML_RELAXNG_ERR_TYPEVAL" id="XML_RELAXNG_ERR_TYPEVAL">XML_RELAXNG_ERR_TYPEVAL</a> = 3
+ <a name="XML_RELAXNG_ERR_DUPID" id="XML_RELAXNG_ERR_DUPID">XML_RELAXNG_ERR_DUPID</a> = 4
+ <a name="XML_RELAXNG_ERR_TYPECMP" id="XML_RELAXNG_ERR_TYPECMP">XML_RELAXNG_ERR_TYPECMP</a> = 5
+ <a name="XML_RELAXNG_ERR_NOSTATE" id="XML_RELAXNG_ERR_NOSTATE">XML_RELAXNG_ERR_NOSTATE</a> = 6
+ <a name="XML_RELAXNG_ERR_NODEFINE" id="XML_RELAXNG_ERR_NODEFINE">XML_RELAXNG_ERR_NODEFINE</a> = 7
+ <a name="XML_RELAXNG_ERR_LISTEXTRA" id="XML_RELAXNG_ERR_LISTEXTRA">XML_RELAXNG_ERR_LISTEXTRA</a> = 8
+ <a name="XML_RELAXNG_ERR_LISTEMPTY" id="XML_RELAXNG_ERR_LISTEMPTY">XML_RELAXNG_ERR_LISTEMPTY</a> = 9
+ <a name="XML_RELAXNG_ERR_INTERNODATA" id="XML_RELAXNG_ERR_INTERNODATA">XML_RELAXNG_ERR_INTERNODATA</a> = 10
+ <a name="XML_RELAXNG_ERR_INTERSEQ" id="XML_RELAXNG_ERR_INTERSEQ">XML_RELAXNG_ERR_INTERSEQ</a> = 11
+ <a name="XML_RELAXNG_ERR_INTEREXTRA" id="XML_RELAXNG_ERR_INTEREXTRA">XML_RELAXNG_ERR_INTEREXTRA</a> = 12
+ <a name="XML_RELAXNG_ERR_ELEMNAME" id="XML_RELAXNG_ERR_ELEMNAME">XML_RELAXNG_ERR_ELEMNAME</a> = 13
+ <a name="XML_RELAXNG_ERR_ATTRNAME" id="XML_RELAXNG_ERR_ATTRNAME">XML_RELAXNG_ERR_ATTRNAME</a> = 14
+ <a name="XML_RELAXNG_ERR_ELEMNONS" id="XML_RELAXNG_ERR_ELEMNONS">XML_RELAXNG_ERR_ELEMNONS</a> = 15
+ <a name="XML_RELAXNG_ERR_ATTRNONS" id="XML_RELAXNG_ERR_ATTRNONS">XML_RELAXNG_ERR_ATTRNONS</a> = 16
+ <a name="XML_RELAXNG_ERR_ELEMWRONGNS" id="XML_RELAXNG_ERR_ELEMWRONGNS">XML_RELAXNG_ERR_ELEMWRONGNS</a> = 17
+ <a name="XML_RELAXNG_ERR_ATTRWRONGNS" id="XML_RELAXNG_ERR_ATTRWRONGNS">XML_RELAXNG_ERR_ATTRWRONGNS</a> = 18
+ <a name="XML_RELAXNG_ERR_ELEMEXTRANS" id="XML_RELAXNG_ERR_ELEMEXTRANS">XML_RELAXNG_ERR_ELEMEXTRANS</a> = 19
+ <a name="XML_RELAXNG_ERR_ATTREXTRANS" id="XML_RELAXNG_ERR_ATTREXTRANS">XML_RELAXNG_ERR_ATTREXTRANS</a> = 20
+ <a name="XML_RELAXNG_ERR_ELEMNOTEMPTY" id="XML_RELAXNG_ERR_ELEMNOTEMPTY">XML_RELAXNG_ERR_ELEMNOTEMPTY</a> = 21
+ <a name="XML_RELAXNG_ERR_NOELEM" id="XML_RELAXNG_ERR_NOELEM">XML_RELAXNG_ERR_NOELEM</a> = 22
+ <a name="XML_RELAXNG_ERR_NOTELEM" id="XML_RELAXNG_ERR_NOTELEM">XML_RELAXNG_ERR_NOTELEM</a> = 23
+ <a name="XML_RELAXNG_ERR_ATTRVALID" id="XML_RELAXNG_ERR_ATTRVALID">XML_RELAXNG_ERR_ATTRVALID</a> = 24
+ <a name="XML_RELAXNG_ERR_CONTENTVALID" id="XML_RELAXNG_ERR_CONTENTVALID">XML_RELAXNG_ERR_CONTENTVALID</a> = 25
+ <a name="XML_RELAXNG_ERR_EXTRACONTENT" id="XML_RELAXNG_ERR_EXTRACONTENT">XML_RELAXNG_ERR_EXTRACONTENT</a> = 26
+ <a name="XML_RELAXNG_ERR_INVALIDATTR" id="XML_RELAXNG_ERR_INVALIDATTR">XML_RELAXNG_ERR_INVALIDATTR</a> = 27
+ <a name="XML_RELAXNG_ERR_DATAELEM" id="XML_RELAXNG_ERR_DATAELEM">XML_RELAXNG_ERR_DATAELEM</a> = 28
+ <a name="XML_RELAXNG_ERR_VALELEM" id="XML_RELAXNG_ERR_VALELEM">XML_RELAXNG_ERR_VALELEM</a> = 29
+ <a name="XML_RELAXNG_ERR_LISTELEM" id="XML_RELAXNG_ERR_LISTELEM">XML_RELAXNG_ERR_LISTELEM</a> = 30
+ <a name="XML_RELAXNG_ERR_DATATYPE" id="XML_RELAXNG_ERR_DATATYPE">XML_RELAXNG_ERR_DATATYPE</a> = 31
+ <a name="XML_RELAXNG_ERR_VALUE" id="XML_RELAXNG_ERR_VALUE">XML_RELAXNG_ERR_VALUE</a> = 32
+ <a name="XML_RELAXNG_ERR_LIST" id="XML_RELAXNG_ERR_LIST">XML_RELAXNG_ERR_LIST</a> = 33
+ <a name="XML_RELAXNG_ERR_NOGRAMMAR" id="XML_RELAXNG_ERR_NOGRAMMAR">XML_RELAXNG_ERR_NOGRAMMAR</a> = 34
+ <a name="XML_RELAXNG_ERR_EXTRADATA" id="XML_RELAXNG_ERR_EXTRADATA">XML_RELAXNG_ERR_EXTRADATA</a> = 35
+ <a name="XML_RELAXNG_ERR_LACKDATA" id="XML_RELAXNG_ERR_LACKDATA">XML_RELAXNG_ERR_LACKDATA</a> = 36
+ <a name="XML_RELAXNG_ERR_INTERNAL" id="XML_RELAXNG_ERR_INTERNAL">XML_RELAXNG_ERR_INTERNAL</a> = 37
+ <a name="XML_RELAXNG_ERR_ELEMWRONG" id="XML_RELAXNG_ERR_ELEMWRONG">XML_RELAXNG_ERR_ELEMWRONG</a> = 38
+ <a name="XML_RELAXNG_ERR_TEXTWRONG" id="XML_RELAXNG_ERR_TEXTWRONG">XML_RELAXNG_ERR_TEXTWRONG</a> = 39
+}
+</pre><h3><a name="xmlRelaxNGCleanupTypes" id="xmlRelaxNGCleanupTypes"></a>Function: xmlRelaxNGCleanupTypes</h3><pre class="programlisting">void xmlRelaxNGCleanupTypes (void)<br />
+</pre><p>Cleanup the default Schemas type library associated to RelaxNG</p>
+<h3><a name="xmlRelaxNGDump" id="xmlRelaxNGDump"></a>Function: xmlRelaxNGDump</h3><pre class="programlisting">void xmlRelaxNGDump (FILE * output, <br /> <a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br />
+</pre><p>Dump a RelaxNG structure back</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the file output</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div><h3><a name="xmlRelaxNGDumpTree" id="xmlRelaxNGDumpTree"></a>Function: xmlRelaxNGDumpTree</h3><pre class="programlisting">void xmlRelaxNGDumpTree (FILE * output, <br /> <a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br />
+</pre><p>Dump the transformed RelaxNG tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the file output</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div><h3><a name="xmlRelaxNGFree" id="xmlRelaxNGFree"></a>Function: xmlRelaxNGFree</h3><pre class="programlisting">void xmlRelaxNGFree (<a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br />
+</pre><p>Deallocate a RelaxNG structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div><h3><a name="xmlRelaxNGFreeParserCtxt" id="xmlRelaxNGFreeParserCtxt"></a>Function: xmlRelaxNGFreeParserCtxt</h3><pre class="programlisting">void xmlRelaxNGFreeParserCtxt (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt)<br />
+</pre><p>Free the resources associated to the schema parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema parser context</td></tr></tbody></table></div><h3><a name="xmlRelaxNGFreeValidCtxt" id="xmlRelaxNGFreeValidCtxt"></a>Function: xmlRelaxNGFreeValidCtxt</h3><pre class="programlisting">void xmlRelaxNGFreeValidCtxt (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt)<br />
+</pre><p>Free the resources associated to the schema validation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema validation context</td></tr></tbody></table></div><h3><a name="xmlRelaxNGGetParserErrors" id="xmlRelaxNGGetParserErrors"></a>Function: xmlRelaxNGGetParserErrors</h3><pre class="programlisting">int xmlRelaxNGGetParserErrors (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> * err, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> * warn, <br /> void ** ctx)<br />
+</pre><p>Get the callback information used to handle errors for a validation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error callback result</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning callback result</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 otherwise.</td></tr></tbody></table></div><h3><a name="xmlRelaxNGGetValidErrors" id="xmlRelaxNGGetValidErrors"></a>Function: xmlRelaxNGGetValidErrors</h3><pre class="programlisting">int xmlRelaxNGGetValidErrors (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> * err, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> * warn, <br /> void ** ctx)<br />
+</pre><p>Get the error and warning callback informations</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function result</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function result</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error and 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlRelaxNGInitTypes" id="xmlRelaxNGInitTypes"></a>Function: xmlRelaxNGInitTypes</h3><pre class="programlisting">int xmlRelaxNGInitTypes (void)<br />
+</pre><p>Initialize the default type libraries.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlRelaxNGNewDocParserCtxt" id="xmlRelaxNGNewDocParserCtxt"></a>Function: xmlRelaxNGNewDocParserCtxt</h3><pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> xmlRelaxNGNewDocParserCtxt (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Create an XML RelaxNGs parser context for that document. Note: since the process of compiling a RelaxNG schemas modifies the document, the @doc parameter is duplicated internally.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a preparsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlRelaxNGNewMemParserCtxt" id="xmlRelaxNGNewMemParserCtxt"></a>Function: xmlRelaxNGNewMemParserCtxt</h3><pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> xmlRelaxNGNewMemParserCtxt (const char * buffer, <br /> int size)<br />
+</pre><p>Create an XML RelaxNGs parse context for that memory buffer expected to contain an XML RelaxNGs file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array containing the schemas</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlRelaxNGNewParserCtxt" id="xmlRelaxNGNewParserCtxt"></a>Function: xmlRelaxNGNewParserCtxt</h3><pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> xmlRelaxNGNewParserCtxt (const char * URL)<br />
+</pre><p>Create an XML RelaxNGs parse context for that file/resource expected to contain an XML RelaxNGs file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the location of the schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlRelaxNGNewValidCtxt" id="xmlRelaxNGNewValidCtxt"></a>Function: xmlRelaxNGNewValidCtxt</h3><pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> xmlRelaxNGNewValidCtxt (<a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br />
+</pre><p>Create an XML RelaxNGs validation context based on the given schema</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled XML RelaxNGs</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the validation context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlRelaxNGParse" id="xmlRelaxNGParse"></a>Function: xmlRelaxNGParse</h3><pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> xmlRelaxNGParse (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse a schema definition resource and build an internal XML Schema structure which can be used to validate instances.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal XML RelaxNG structure built from the resource or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlRelaxNGSetParserErrors" id="xmlRelaxNGSetParserErrors"></a>Function: xmlRelaxNGSetParserErrors</h3><pre class="programlisting">void xmlRelaxNGSetParserErrors (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br /> void * ctx)<br />
+</pre><p>Set the callback functions used to handle errors for a validation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error callback</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning callback</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks</td></tr></tbody></table></div><h3><a name="xmlRelaxNGSetParserStructuredErrors" id="xmlRelaxNGSetParserStructuredErrors"></a>Function: xmlRelaxNGSetParserStructuredErrors</h3><pre class="programlisting">void xmlRelaxNGSetParserStructuredErrors (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br /> void * ctx)<br />
+</pre><p>Set the callback functions used to handle errors for a parsing context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG parser context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the error callback</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks</td></tr></tbody></table></div><h3><a name="xmlRelaxNGSetValidErrors" id="xmlRelaxNGSetValidErrors"></a>Function: xmlRelaxNGSetValidErrors</h3><pre class="programlisting">void xmlRelaxNGSetValidErrors (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br /> void * ctx)<br />
+</pre><p>Set the error and warning callback informations</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlRelaxNGSetValidStructuredErrors" id="xmlRelaxNGSetValidStructuredErrors"></a>Function: xmlRelaxNGSetValidStructuredErrors</h3><pre class="programlisting">void xmlRelaxNGSetValidStructuredErrors (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br /> void * ctx)<br />
+</pre><p>Set the structured error callback</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the structured error function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlRelaxNGValidateDoc" id="xmlRelaxNGValidateDoc"></a>Function: xmlRelaxNGValidateDoc</h3><pre class="programlisting">int xmlRelaxNGValidateDoc (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Validate a document tree in memory.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the document is valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlRelaxNGValidateFullElement" id="xmlRelaxNGValidateFullElement"></a>Function: xmlRelaxNGValidateFullElement</h3><pre class="programlisting">int xmlRelaxNGValidateFullElement (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br />
+</pre><p>Validate a full subtree when xmlRelaxNGValidatePushElement() returned 0 and the content of the node has been expanded.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlRelaxNGValidatePopElement" id="xmlRelaxNGValidatePopElement"></a>Function: xmlRelaxNGValidatePopElement</h3><pre class="programlisting">int xmlRelaxNGValidatePopElement (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br />
+</pre><p>Pop the element end from the RelaxNG validation stack.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the RelaxNG validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlRelaxNGValidatePushCData" id="xmlRelaxNGValidatePushCData"></a>Function: xmlRelaxNGValidatePushCData</h3><pre class="programlisting">int xmlRelaxNGValidatePushCData (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * data, <br /> int len)<br />
+</pre><p>check the CData parsed for validation in the current stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the RelaxNG validation context</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>some character data read</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlRelaxNGValidatePushElement" id="xmlRelaxNGValidatePushElement"></a>Function: xmlRelaxNGValidatePushElement</h3><pre class="programlisting">int xmlRelaxNGValidatePushElement (<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br />
+</pre><p>Push a new element start on the RelaxNG validation stack.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or 0 if validating the element requires a full node, and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlRelaxNGValidityErrorFunc" id="xmlRelaxNGValidityErrorFunc"></a>Function type: xmlRelaxNGValidityErrorFunc</h3><pre class="programlisting">Function type: xmlRelaxNGValidityErrorFunc
+void xmlRelaxNGValidityErrorFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Signature of an error callback from a Relax-NG validation</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div><br />
+<h3><a name="xmlRelaxNGValidityWarningFunc" id="xmlRelaxNGValidityWarningFunc"></a>Function type: xmlRelaxNGValidityWarningFunc</h3><pre class="programlisting">Function type: xmlRelaxNGValidityWarningFunc
+void xmlRelaxNGValidityWarningFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Signature of a warning callback from a Relax-NG validation</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div><br />
+<h3><a name="xmlRelaxParserSetFlag" id="xmlRelaxParserSetFlag"></a>Function: xmlRelaxParserSetFlag</h3><pre class="programlisting">int xmlRelaxParserSetFlag (<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br /> int flags)<br />
+</pre><p>Semi private function used to pass informations to a parser context which are a combination of <a href="libxml-relaxng.html#xmlRelaxNGParserFlag">xmlRelaxNGParserFlag</a> .</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a RelaxNG parser context</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of flags values</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success and -1 in case of error</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-schemasInternals.html b/libxml2-2.9.10/doc/html/libxml-schemasInternals.html
new file mode 100644
index 0000000..766811e
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-schemasInternals.html
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module schemasInternals from libxml2</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></h1><h2>Module schemasInternals from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-relaxng.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-relaxng.html">relaxng</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-schematron.html">schematron</a></th><td><a accesskey="n" href="libxml-schematron.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not guaranteed to be API or ABI stable ! </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_REDEFINED">XML_SCHEMAS_TYPE_REDEFINED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a></pre><pre class="programlisting">Structure <a href="#xmlSchemaAnnot">xmlSchemaAnnot</a><br />struct _xmlSchemaAnnot
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaAnnot">xmlSchemaAnnot</a> * <a name="xmlSchemaAnnotPtr" id="xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaAttribute">xmlSchemaAttribute</a><br />struct _xmlSchemaAttribute
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaAttributeGroup">xmlSchemaAttributeGroup</a><br />struct _xmlSchemaAttributeGroup
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaAttributeGroup">xmlSchemaAttributeGroup</a> * <a name="xmlSchemaAttributeGroupPtr" id="xmlSchemaAttributeGroupPtr">xmlSchemaAttributeGroupPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaAttributeLink">xmlSchemaAttributeLink</a><br />struct _xmlSchemaAttributeLink
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaAttributeLink">xmlSchemaAttributeLink</a> * <a name="xmlSchemaAttributeLinkPtr" id="xmlSchemaAttributeLinkPtr">xmlSchemaAttributeLinkPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaAttribute">xmlSchemaAttribute</a> * <a name="xmlSchemaAttributePtr" id="xmlSchemaAttributePtr">xmlSchemaAttributePtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlSchemaContentType">xmlSchemaContentType</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaElement">xmlSchemaElement</a><br />struct _xmlSchemaElement
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaElement">xmlSchemaElement</a> * <a name="xmlSchemaElementPtr" id="xmlSchemaElementPtr">xmlSchemaElementPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaFacet">xmlSchemaFacet</a><br />struct _xmlSchemaFacet
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaFacetLink">xmlSchemaFacetLink</a><br />struct _xmlSchemaFacetLink
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaFacetLink">xmlSchemaFacetLink</a> * <a name="xmlSchemaFacetLinkPtr" id="xmlSchemaFacetLinkPtr">xmlSchemaFacetLinkPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaFacet">xmlSchemaFacet</a> * <a name="xmlSchemaFacetPtr" id="xmlSchemaFacetPtr">xmlSchemaFacetPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaNotation">xmlSchemaNotation</a><br />struct _xmlSchemaNotation
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaNotation">xmlSchemaNotation</a> * <a name="xmlSchemaNotationPtr" id="xmlSchemaNotationPtr">xmlSchemaNotationPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaType">xmlSchemaType</a><br />struct _xmlSchemaType
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaTypeLink">xmlSchemaTypeLink</a><br />struct _xmlSchemaTypeLink
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaTypeLink">xmlSchemaTypeLink</a> * <a name="xmlSchemaTypeLinkPtr" id="xmlSchemaTypeLinkPtr">xmlSchemaTypeLinkPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaType">xmlSchemaType</a> * <a name="xmlSchemaTypePtr" id="xmlSchemaTypePtr">xmlSchemaTypePtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlSchemaTypeType">xmlSchemaTypeType</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaVal">xmlSchemaVal</a><br />struct _xmlSchemaVal
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaVal">xmlSchemaVal</a> * <a name="xmlSchemaValPtr" id="xmlSchemaValPtr">xmlSchemaValPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlSchemaValType">xmlSchemaValType</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaWildcard">xmlSchemaWildcard</a><br />struct _xmlSchemaWildcard
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaWildcardNs">xmlSchemaWildcardNs</a><br />struct _xmlSchemaWildcardNs
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaWildcardNs">xmlSchemaWildcardNs</a> * <a name="xmlSchemaWildcardNsPtr" id="xmlSchemaWildcardNsPtr">xmlSchemaWildcardNsPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaWildcard">xmlSchemaWildcard</a> * <a name="xmlSchemaWildcardPtr" id="xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a>
+</pre><pre class="programlisting">void <a href="#xmlSchemaFreeType">xmlSchemaFreeType</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</a> (<a href="libxml-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a> wildcard)</pre>
+<h2>Description</h2>
+<h3><a name="XML_SCHEMAS_ANYATTR_LAX" id="XML_SCHEMAS_ANYATTR_LAX"></a>Macro: XML_SCHEMAS_ANYATTR_LAX</h3><pre>#define XML_SCHEMAS_ANYATTR_LAX</pre><p>Ignore validation non definition on attributes Obsolete, not used anymore.</p>
+<h3><a name="XML_SCHEMAS_ANYATTR_SKIP" id="XML_SCHEMAS_ANYATTR_SKIP"></a>Macro: XML_SCHEMAS_ANYATTR_SKIP</h3><pre>#define XML_SCHEMAS_ANYATTR_SKIP</pre><p>Skip unknown <a href="libxml-SAX.html#attribute">attribute</a> from validation Obsolete, not used anymore.</p>
+<h3><a name="XML_SCHEMAS_ANYATTR_STRICT" id="XML_SCHEMAS_ANYATTR_STRICT"></a>Macro: XML_SCHEMAS_ANYATTR_STRICT</h3><pre>#define XML_SCHEMAS_ANYATTR_STRICT</pre><p>Apply strict validation rules on attributes Obsolete, not used anymore.</p>
+<h3><a name="XML_SCHEMAS_ANY_LAX" id="XML_SCHEMAS_ANY_LAX"></a>Macro: XML_SCHEMAS_ANY_LAX</h3><pre>#define XML_SCHEMAS_ANY_LAX</pre><p>Used by wildcards. Validate if type found, don't worry if not found</p>
+<h3><a name="XML_SCHEMAS_ANY_SKIP" id="XML_SCHEMAS_ANY_SKIP"></a>Macro: XML_SCHEMAS_ANY_SKIP</h3><pre>#define XML_SCHEMAS_ANY_SKIP</pre><p>Skip unknown <a href="libxml-SAX.html#attribute">attribute</a> from validation</p>
+<h3><a name="XML_SCHEMAS_ANY_STRICT" id="XML_SCHEMAS_ANY_STRICT"></a>Macro: XML_SCHEMAS_ANY_STRICT</h3><pre>#define XML_SCHEMAS_ANY_STRICT</pre><p>Used by wildcards. Apply strict validation rules</p>
+<h3><a name="XML_SCHEMAS_ATTRGROUP_GLOBAL" id="XML_SCHEMAS_ATTRGROUP_GLOBAL"></a>Macro: XML_SCHEMAS_ATTRGROUP_GLOBAL</h3><pre>#define XML_SCHEMAS_ATTRGROUP_GLOBAL</pre><p>The <a href="libxml-SAX.html#attribute">attribute</a> group has been defined.</p>
+<h3><a name="XML_SCHEMAS_ATTRGROUP_HAS_REFS" id="XML_SCHEMAS_ATTRGROUP_HAS_REFS"></a>Macro: XML_SCHEMAS_ATTRGROUP_HAS_REFS</h3><pre>#define XML_SCHEMAS_ATTRGROUP_HAS_REFS</pre><p>Whether this attr. group contains attr. group references.</p>
+<h3><a name="XML_SCHEMAS_ATTRGROUP_MARKED" id="XML_SCHEMAS_ATTRGROUP_MARKED"></a>Macro: XML_SCHEMAS_ATTRGROUP_MARKED</h3><pre>#define XML_SCHEMAS_ATTRGROUP_MARKED</pre><p>Marks the attr group as marked; used for circular checks.</p>
+<h3><a name="XML_SCHEMAS_ATTRGROUP_REDEFINED" id="XML_SCHEMAS_ATTRGROUP_REDEFINED"></a>Macro: XML_SCHEMAS_ATTRGROUP_REDEFINED</h3><pre>#define XML_SCHEMAS_ATTRGROUP_REDEFINED</pre><p>The attr group was redefined.</p>
+<h3><a name="XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED" id="XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED"></a>Macro: XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</h3><pre>#define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</pre><p>The <a href="libxml-SAX.html#attribute">attribute</a> wildcard has been built.</p>
+<h3><a name="XML_SCHEMAS_ATTR_FIXED" id="XML_SCHEMAS_ATTR_FIXED"></a>Macro: XML_SCHEMAS_ATTR_FIXED</h3><pre>#define XML_SCHEMAS_ATTR_FIXED</pre><p>the <a href="libxml-SAX.html#attribute">attribute</a> has a fixed value</p>
+<h3><a name="XML_SCHEMAS_ATTR_GLOBAL" id="XML_SCHEMAS_ATTR_GLOBAL"></a>Macro: XML_SCHEMAS_ATTR_GLOBAL</h3><pre>#define XML_SCHEMAS_ATTR_GLOBAL</pre><p>allow elements in no namespace</p>
+<h3><a name="XML_SCHEMAS_ATTR_INTERNAL_RESOLVED" id="XML_SCHEMAS_ATTR_INTERNAL_RESOLVED"></a>Macro: XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</h3><pre>#define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</pre><p>this is set when the "type" and "ref" references have been resolved.</p>
+<h3><a name="XML_SCHEMAS_ATTR_NSDEFAULT" id="XML_SCHEMAS_ATTR_NSDEFAULT"></a>Macro: XML_SCHEMAS_ATTR_NSDEFAULT</h3><pre>#define XML_SCHEMAS_ATTR_NSDEFAULT</pre><p>allow elements in no namespace</p>
+<h3><a name="XML_SCHEMAS_ATTR_USE_OPTIONAL" id="XML_SCHEMAS_ATTR_USE_OPTIONAL"></a>Macro: XML_SCHEMAS_ATTR_USE_OPTIONAL</h3><pre>#define XML_SCHEMAS_ATTR_USE_OPTIONAL</pre><p>The <a href="libxml-SAX.html#attribute">attribute</a> is optional.</p>
+<h3><a name="XML_SCHEMAS_ATTR_USE_PROHIBITED" id="XML_SCHEMAS_ATTR_USE_PROHIBITED"></a>Macro: XML_SCHEMAS_ATTR_USE_PROHIBITED</h3><pre>#define XML_SCHEMAS_ATTR_USE_PROHIBITED</pre><p>Used by wildcards. The <a href="libxml-SAX.html#attribute">attribute</a> is prohibited.</p>
+<h3><a name="XML_SCHEMAS_ATTR_USE_REQUIRED" id="XML_SCHEMAS_ATTR_USE_REQUIRED"></a>Macro: XML_SCHEMAS_ATTR_USE_REQUIRED</h3><pre>#define XML_SCHEMAS_ATTR_USE_REQUIRED</pre><p>The <a href="libxml-SAX.html#attribute">attribute</a> is required.</p>
+<h3><a name="XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION" id="XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION"></a>Macro: XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</h3><pre>#define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</pre><p>the schema has "extension" in the set of blockDefault.</p>
+<h3><a name="XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION" id="XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION"></a>Macro: XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</h3><pre>#define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</pre><p>the schema has "restriction" in the set of blockDefault.</p>
+<h3><a name="XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION" id="XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION"></a>Macro: XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</h3><pre>#define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</pre><p>the schema has "substitution" in the set of blockDefault.</p>
+<h3><a name="XML_SCHEMAS_ELEM_ABSTRACT" id="XML_SCHEMAS_ELEM_ABSTRACT"></a>Macro: XML_SCHEMAS_ELEM_ABSTRACT</h3><pre>#define XML_SCHEMAS_ELEM_ABSTRACT</pre><p>the element is abstract</p>
+<h3><a name="XML_SCHEMAS_ELEM_BLOCK_ABSENT" id="XML_SCHEMAS_ELEM_BLOCK_ABSENT"></a>Macro: XML_SCHEMAS_ELEM_BLOCK_ABSENT</h3><pre>#define XML_SCHEMAS_ELEM_BLOCK_ABSENT</pre><p>the "block" <a href="libxml-SAX.html#attribute">attribute</a> is absent</p>
+<h3><a name="XML_SCHEMAS_ELEM_BLOCK_EXTENSION" id="XML_SCHEMAS_ELEM_BLOCK_EXTENSION"></a>Macro: XML_SCHEMAS_ELEM_BLOCK_EXTENSION</h3><pre>#define XML_SCHEMAS_ELEM_BLOCK_EXTENSION</pre><p>disallowed substitutions are absent</p>
+<h3><a name="XML_SCHEMAS_ELEM_BLOCK_RESTRICTION" id="XML_SCHEMAS_ELEM_BLOCK_RESTRICTION"></a>Macro: XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</h3><pre>#define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</pre><p>disallowed substitutions: "restriction"</p>
+<h3><a name="XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION" id="XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION"></a>Macro: XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</h3><pre>#define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</pre><p>disallowed substitutions: "substitution"</p>
+<h3><a name="XML_SCHEMAS_ELEM_CIRCULAR" id="XML_SCHEMAS_ELEM_CIRCULAR"></a>Macro: XML_SCHEMAS_ELEM_CIRCULAR</h3><pre>#define XML_SCHEMAS_ELEM_CIRCULAR</pre><p>a helper flag for the search of circular references.</p>
+<h3><a name="XML_SCHEMAS_ELEM_DEFAULT" id="XML_SCHEMAS_ELEM_DEFAULT"></a>Macro: XML_SCHEMAS_ELEM_DEFAULT</h3><pre>#define XML_SCHEMAS_ELEM_DEFAULT</pre><p>the element has a default value</p>
+<h3><a name="XML_SCHEMAS_ELEM_FINAL_ABSENT" id="XML_SCHEMAS_ELEM_FINAL_ABSENT"></a>Macro: XML_SCHEMAS_ELEM_FINAL_ABSENT</h3><pre>#define XML_SCHEMAS_ELEM_FINAL_ABSENT</pre><p>substitution group exclusions are absent</p>
+<h3><a name="XML_SCHEMAS_ELEM_FINAL_EXTENSION" id="XML_SCHEMAS_ELEM_FINAL_EXTENSION"></a>Macro: XML_SCHEMAS_ELEM_FINAL_EXTENSION</h3><pre>#define XML_SCHEMAS_ELEM_FINAL_EXTENSION</pre><p>substitution group exclusions: "extension"</p>
+<h3><a name="XML_SCHEMAS_ELEM_FINAL_RESTRICTION" id="XML_SCHEMAS_ELEM_FINAL_RESTRICTION"></a>Macro: XML_SCHEMAS_ELEM_FINAL_RESTRICTION</h3><pre>#define XML_SCHEMAS_ELEM_FINAL_RESTRICTION</pre><p>substitution group exclusions: "restriction"</p>
+<h3><a name="XML_SCHEMAS_ELEM_FIXED" id="XML_SCHEMAS_ELEM_FIXED"></a>Macro: XML_SCHEMAS_ELEM_FIXED</h3><pre>#define XML_SCHEMAS_ELEM_FIXED</pre><p>the element has a fixed value</p>
+<h3><a name="XML_SCHEMAS_ELEM_GLOBAL" id="XML_SCHEMAS_ELEM_GLOBAL"></a>Macro: XML_SCHEMAS_ELEM_GLOBAL</h3><pre>#define XML_SCHEMAS_ELEM_GLOBAL</pre><p>the element is global</p>
+<h3><a name="XML_SCHEMAS_ELEM_INTERNAL_CHECKED" id="XML_SCHEMAS_ELEM_INTERNAL_CHECKED"></a>Macro: XML_SCHEMAS_ELEM_INTERNAL_CHECKED</h3><pre>#define XML_SCHEMAS_ELEM_INTERNAL_CHECKED</pre><p>this is set when the elem decl has been checked against all constraints</p>
+<h3><a name="XML_SCHEMAS_ELEM_INTERNAL_RESOLVED" id="XML_SCHEMAS_ELEM_INTERNAL_RESOLVED"></a>Macro: XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</h3><pre>#define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</pre><p>this is set when "type", "ref", "substitutionGroup" references have been resolved.</p>
+<h3><a name="XML_SCHEMAS_ELEM_NILLABLE" id="XML_SCHEMAS_ELEM_NILLABLE"></a>Macro: XML_SCHEMAS_ELEM_NILLABLE</h3><pre>#define XML_SCHEMAS_ELEM_NILLABLE</pre><p>the element is nillable</p>
+<h3><a name="XML_SCHEMAS_ELEM_NSDEFAULT" id="XML_SCHEMAS_ELEM_NSDEFAULT"></a>Macro: XML_SCHEMAS_ELEM_NSDEFAULT</h3><pre>#define XML_SCHEMAS_ELEM_NSDEFAULT</pre><p>allow elements in no namespace Obsolete, not used anymore.</p>
+<h3><a name="XML_SCHEMAS_ELEM_REF" id="XML_SCHEMAS_ELEM_REF"></a>Macro: XML_SCHEMAS_ELEM_REF</h3><pre>#define XML_SCHEMAS_ELEM_REF</pre><p>the element is a <a href="libxml-SAX.html#reference">reference</a> to a type</p>
+<h3><a name="XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD" id="XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD"></a>Macro: XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</h3><pre>#define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</pre><p>the declaration is a substitution group head</p>
+<h3><a name="XML_SCHEMAS_ELEM_TOPLEVEL" id="XML_SCHEMAS_ELEM_TOPLEVEL"></a>Macro: XML_SCHEMAS_ELEM_TOPLEVEL</h3><pre>#define XML_SCHEMAS_ELEM_TOPLEVEL</pre><p>the element is top level obsolete: use <a href="libxml-schemasInternals.html#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a> instead</p>
+<h3><a name="XML_SCHEMAS_FACET_COLLAPSE" id="XML_SCHEMAS_FACET_COLLAPSE"></a>Macro: XML_SCHEMAS_FACET_COLLAPSE</h3><pre>#define XML_SCHEMAS_FACET_COLLAPSE</pre><p>collapse the types of the facet</p>
+<h3><a name="XML_SCHEMAS_FACET_PRESERVE" id="XML_SCHEMAS_FACET_PRESERVE"></a>Macro: XML_SCHEMAS_FACET_PRESERVE</h3><pre>#define XML_SCHEMAS_FACET_PRESERVE</pre><p>preserve the type of the facet</p>
+<h3><a name="XML_SCHEMAS_FACET_REPLACE" id="XML_SCHEMAS_FACET_REPLACE"></a>Macro: XML_SCHEMAS_FACET_REPLACE</h3><pre>#define XML_SCHEMAS_FACET_REPLACE</pre><p>replace the type of the facet</p>
+<h3><a name="XML_SCHEMAS_FACET_UNKNOWN" id="XML_SCHEMAS_FACET_UNKNOWN"></a>Macro: XML_SCHEMAS_FACET_UNKNOWN</h3><pre>#define XML_SCHEMAS_FACET_UNKNOWN</pre><p>unknown facet handling</p>
+<h3><a name="XML_SCHEMAS_FINAL_DEFAULT_EXTENSION" id="XML_SCHEMAS_FINAL_DEFAULT_EXTENSION"></a>Macro: XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</h3><pre>#define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</pre><p>the schema has "extension" in the set of finalDefault.</p>
+<h3><a name="XML_SCHEMAS_FINAL_DEFAULT_LIST" id="XML_SCHEMAS_FINAL_DEFAULT_LIST"></a>Macro: XML_SCHEMAS_FINAL_DEFAULT_LIST</h3><pre>#define XML_SCHEMAS_FINAL_DEFAULT_LIST</pre><p>the schema has "list" in the set of finalDefault.</p>
+<h3><a name="XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION" id="XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION"></a>Macro: XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</h3><pre>#define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</pre><p>the schema has "restriction" in the set of finalDefault.</p>
+<h3><a name="XML_SCHEMAS_FINAL_DEFAULT_UNION" id="XML_SCHEMAS_FINAL_DEFAULT_UNION"></a>Macro: XML_SCHEMAS_FINAL_DEFAULT_UNION</h3><pre>#define XML_SCHEMAS_FINAL_DEFAULT_UNION</pre><p>the schema has "union" in the set of finalDefault.</p>
+<h3><a name="XML_SCHEMAS_INCLUDING_CONVERT_NS" id="XML_SCHEMAS_INCLUDING_CONVERT_NS"></a>Macro: XML_SCHEMAS_INCLUDING_CONVERT_NS</h3><pre>#define XML_SCHEMAS_INCLUDING_CONVERT_NS</pre><p>the schema is currently including an other schema with no target namespace.</p>
+<h3><a name="XML_SCHEMAS_QUALIF_ATTR" id="XML_SCHEMAS_QUALIF_ATTR"></a>Macro: XML_SCHEMAS_QUALIF_ATTR</h3><pre>#define XML_SCHEMAS_QUALIF_ATTR</pre><p>Reflects attributeFormDefault == qualified in an XML schema document.</p>
+<h3><a name="XML_SCHEMAS_QUALIF_ELEM" id="XML_SCHEMAS_QUALIF_ELEM"></a>Macro: XML_SCHEMAS_QUALIF_ELEM</h3><pre>#define XML_SCHEMAS_QUALIF_ELEM</pre><p>Reflects elementFormDefault == qualified in an XML schema document.</p>
+<h3><a name="XML_SCHEMAS_TYPE_ABSTRACT" id="XML_SCHEMAS_TYPE_ABSTRACT"></a>Macro: XML_SCHEMAS_TYPE_ABSTRACT</h3><pre>#define XML_SCHEMAS_TYPE_ABSTRACT</pre><p>the simple/complexType is abstract.</p>
+<h3><a name="XML_SCHEMAS_TYPE_BLOCK_DEFAULT" id="XML_SCHEMAS_TYPE_BLOCK_DEFAULT"></a>Macro: XML_SCHEMAS_TYPE_BLOCK_DEFAULT</h3><pre>#define XML_SCHEMAS_TYPE_BLOCK_DEFAULT</pre><p>the complexType did not specify 'block' so use the default of the &lt;schema&gt; item.</p>
+<h3><a name="XML_SCHEMAS_TYPE_BLOCK_EXTENSION" id="XML_SCHEMAS_TYPE_BLOCK_EXTENSION"></a>Macro: XML_SCHEMAS_TYPE_BLOCK_EXTENSION</h3><pre>#define XML_SCHEMAS_TYPE_BLOCK_EXTENSION</pre><p>the complexType has a 'block' of "extension".</p>
+<h3><a name="XML_SCHEMAS_TYPE_BLOCK_RESTRICTION" id="XML_SCHEMAS_TYPE_BLOCK_RESTRICTION"></a>Macro: XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</h3><pre>#define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</pre><p>the complexType has a 'block' of "restriction".</p>
+<h3><a name="XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE" id="XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE"></a>Macro: XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</h3><pre>#define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</pre><p>Marks the item as a builtin primitive.</p>
+<h3><a name="XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION" id="XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION"></a>Macro: XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</h3><pre>#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</pre><p>the simple or complex type has a derivation method of "extension".</p>
+<h3><a name="XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION" id="XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION"></a>Macro: XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</h3><pre>#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</pre><p>the simple or complex type has a derivation method of "restriction".</p>
+<h3><a name="XML_SCHEMAS_TYPE_FACETSNEEDVALUE" id="XML_SCHEMAS_TYPE_FACETSNEEDVALUE"></a>Macro: XML_SCHEMAS_TYPE_FACETSNEEDVALUE</h3><pre>#define XML_SCHEMAS_TYPE_FACETSNEEDVALUE</pre><p>indicates if the facets need a computed value</p>
+<h3><a name="XML_SCHEMAS_TYPE_FINAL_DEFAULT" id="XML_SCHEMAS_TYPE_FINAL_DEFAULT"></a>Macro: XML_SCHEMAS_TYPE_FINAL_DEFAULT</h3><pre>#define XML_SCHEMAS_TYPE_FINAL_DEFAULT</pre><p>the simpleType has a final of "default".</p>
+<h3><a name="XML_SCHEMAS_TYPE_FINAL_EXTENSION" id="XML_SCHEMAS_TYPE_FINAL_EXTENSION"></a>Macro: XML_SCHEMAS_TYPE_FINAL_EXTENSION</h3><pre>#define XML_SCHEMAS_TYPE_FINAL_EXTENSION</pre><p>the complexType has a final of "extension".</p>
+<h3><a name="XML_SCHEMAS_TYPE_FINAL_LIST" id="XML_SCHEMAS_TYPE_FINAL_LIST"></a>Macro: XML_SCHEMAS_TYPE_FINAL_LIST</h3><pre>#define XML_SCHEMAS_TYPE_FINAL_LIST</pre><p>the simpleType has a final of "list".</p>
+<h3><a name="XML_SCHEMAS_TYPE_FINAL_RESTRICTION" id="XML_SCHEMAS_TYPE_FINAL_RESTRICTION"></a>Macro: XML_SCHEMAS_TYPE_FINAL_RESTRICTION</h3><pre>#define XML_SCHEMAS_TYPE_FINAL_RESTRICTION</pre><p>the simpleType/complexType has a final of "restriction".</p>
+<h3><a name="XML_SCHEMAS_TYPE_FINAL_UNION" id="XML_SCHEMAS_TYPE_FINAL_UNION"></a>Macro: XML_SCHEMAS_TYPE_FINAL_UNION</h3><pre>#define XML_SCHEMAS_TYPE_FINAL_UNION</pre><p>the simpleType has a final of "union".</p>
+<h3><a name="XML_SCHEMAS_TYPE_FIXUP_1" id="XML_SCHEMAS_TYPE_FIXUP_1"></a>Macro: XML_SCHEMAS_TYPE_FIXUP_1</h3><pre>#define XML_SCHEMAS_TYPE_FIXUP_1</pre><p>First stage of fixup was done.</p>
+<h3><a name="XML_SCHEMAS_TYPE_GLOBAL" id="XML_SCHEMAS_TYPE_GLOBAL"></a>Macro: XML_SCHEMAS_TYPE_GLOBAL</h3><pre>#define XML_SCHEMAS_TYPE_GLOBAL</pre><p>the type is global</p>
+<h3><a name="XML_SCHEMAS_TYPE_HAS_FACETS" id="XML_SCHEMAS_TYPE_HAS_FACETS"></a>Macro: XML_SCHEMAS_TYPE_HAS_FACETS</h3><pre>#define XML_SCHEMAS_TYPE_HAS_FACETS</pre><p>has facets</p>
+<h3><a name="XML_SCHEMAS_TYPE_INTERNAL_INVALID" id="XML_SCHEMAS_TYPE_INTERNAL_INVALID"></a>Macro: XML_SCHEMAS_TYPE_INTERNAL_INVALID</h3><pre>#define XML_SCHEMAS_TYPE_INTERNAL_INVALID</pre><p>indicates that the type is invalid</p>
+<h3><a name="XML_SCHEMAS_TYPE_INTERNAL_RESOLVED" id="XML_SCHEMAS_TYPE_INTERNAL_RESOLVED"></a>Macro: XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</h3><pre>#define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</pre><p>indicates that the type was typefixed</p>
+<h3><a name="XML_SCHEMAS_TYPE_MARKED" id="XML_SCHEMAS_TYPE_MARKED"></a>Macro: XML_SCHEMAS_TYPE_MARKED</h3><pre>#define XML_SCHEMAS_TYPE_MARKED</pre><p>Marks the item as marked; used for circular checks.</p>
+<h3><a name="XML_SCHEMAS_TYPE_MIXED" id="XML_SCHEMAS_TYPE_MIXED"></a>Macro: XML_SCHEMAS_TYPE_MIXED</h3><pre>#define XML_SCHEMAS_TYPE_MIXED</pre><p>the element content type is mixed</p>
+<h3><a name="XML_SCHEMAS_TYPE_NORMVALUENEEDED" id="XML_SCHEMAS_TYPE_NORMVALUENEEDED"></a>Macro: XML_SCHEMAS_TYPE_NORMVALUENEEDED</h3><pre>#define XML_SCHEMAS_TYPE_NORMVALUENEEDED</pre><p>indicates if the facets (pattern) need a normalized value</p>
+<h3><a name="XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD" id="XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD"></a>Macro: XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</h3><pre>#define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</pre><p>the complexType owns an <a href="libxml-SAX.html#attribute">attribute</a> wildcard, i.e. it can be freed by the complexType</p>
+<h3><a name="XML_SCHEMAS_TYPE_REDEFINED" id="XML_SCHEMAS_TYPE_REDEFINED"></a>Macro: XML_SCHEMAS_TYPE_REDEFINED</h3><pre>#define XML_SCHEMAS_TYPE_REDEFINED</pre><p>The type was redefined.</p>
+<h3><a name="XML_SCHEMAS_TYPE_VARIETY_ABSENT" id="XML_SCHEMAS_TYPE_VARIETY_ABSENT"></a>Macro: XML_SCHEMAS_TYPE_VARIETY_ABSENT</h3><pre>#define XML_SCHEMAS_TYPE_VARIETY_ABSENT</pre><p>the simpleType has a variety of "absent". TODO: Actually not necessary :-/, since if none of the variety flags occur then it's automatically absent.</p>
+<h3><a name="XML_SCHEMAS_TYPE_VARIETY_ATOMIC" id="XML_SCHEMAS_TYPE_VARIETY_ATOMIC"></a>Macro: XML_SCHEMAS_TYPE_VARIETY_ATOMIC</h3><pre>#define XML_SCHEMAS_TYPE_VARIETY_ATOMIC</pre><p>the simpleType has a variety of "union".</p>
+<h3><a name="XML_SCHEMAS_TYPE_VARIETY_LIST" id="XML_SCHEMAS_TYPE_VARIETY_LIST"></a>Macro: XML_SCHEMAS_TYPE_VARIETY_LIST</h3><pre>#define XML_SCHEMAS_TYPE_VARIETY_LIST</pre><p>the simpleType has a variety of "list".</p>
+<h3><a name="XML_SCHEMAS_TYPE_VARIETY_UNION" id="XML_SCHEMAS_TYPE_VARIETY_UNION"></a>Macro: XML_SCHEMAS_TYPE_VARIETY_UNION</h3><pre>#define XML_SCHEMAS_TYPE_VARIETY_UNION</pre><p>the simpleType has a variety of "union".</p>
+<h3><a name="XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE" id="XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE"></a>Macro: XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</h3><pre>#define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</pre><p>a whitespace-facet value of "collapse"</p>
+<h3><a name="XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE" id="XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE"></a>Macro: XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</h3><pre>#define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</pre><p>a whitespace-facet value of "preserve"</p>
+<h3><a name="XML_SCHEMAS_TYPE_WHITESPACE_REPLACE" id="XML_SCHEMAS_TYPE_WHITESPACE_REPLACE"></a>Macro: XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</h3><pre>#define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</pre><p>a whitespace-facet value of "replace"</p>
+<h3><a name="XML_SCHEMAS_WILDCARD_COMPLETE" id="XML_SCHEMAS_WILDCARD_COMPLETE"></a>Macro: XML_SCHEMAS_WILDCARD_COMPLETE</h3><pre>#define XML_SCHEMAS_WILDCARD_COMPLETE</pre><p>If the wildcard is complete.</p>
+<h3><a name="xmlSchemaAnnot" id="xmlSchemaAnnot">Structure xmlSchemaAnnot</a></h3><pre class="programlisting">Structure xmlSchemaAnnot<br />struct _xmlSchemaAnnot {
+ struct _xmlSchemaAnnot * next
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> content : the annotation
+}</pre><h3><a name="xmlSchemaAttribute" id="xmlSchemaAttribute">Structure xmlSchemaAttribute</a></h3><pre class="programlisting">Structure xmlSchemaAttribute<br />struct _xmlSchemaAttribute {
+ <a href="libxml-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type
+ struct _xmlSchemaAttribute * next : the next <a href="libxml-SAX.html#attribute">attribute</a> (not used?)
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : the name of the declaration
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * id : Deprecated; not used
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ref : Deprecated; not used
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * refNs : Deprecated; not used
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * typeName : the local name of the type definition
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * typeNs : the ns URI of the type definition
+ <a href="libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> base : Deprecated; not used
+ int occurs : Deprecated; not used
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * defValue : The initial value of the value constrai
+ <a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> subtypes : the type definition
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace
+ int flags
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * refPrefix : Deprecated; not used
+ <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> defVal : The compiled value constraint
+ <a href="libxml-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a> refDecl : Deprecated; not used
+}</pre><h3><a name="xmlSchemaAttributeGroup" id="xmlSchemaAttributeGroup">Structure xmlSchemaAttributeGroup</a></h3><pre class="programlisting">Structure xmlSchemaAttributeGroup<br />struct _xmlSchemaAttributeGroup {
+ <a href="libxml-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ struct _xmlSchemaAttribute * next : the next <a href="libxml-SAX.html#attribute">attribute</a> if in a group ...
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * id
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ref : Deprecated; not used
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * refNs : Deprecated; not used
+ <a href="libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a> attributes : Deprecated; not used
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int flags
+ <a href="libxml-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a> attributeWildcard
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * refPrefix : Deprecated; not used
+ <a href="libxml-schemasInternals.html#xmlSchemaAttributeGroupPtr">xmlSchemaAttributeGroupPtr</a> refItem : Deprecated; not used
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace
+ void * attrUses
+}</pre><h3><a name="xmlSchemaAttributeLink" id="xmlSchemaAttributeLink">Structure xmlSchemaAttributeLink</a></h3><pre class="programlisting">Structure xmlSchemaAttributeLink<br />struct _xmlSchemaAttributeLink {
+ struct _xmlSchemaAttributeLink * next : the next <a href="libxml-SAX.html#attribute">attribute</a> link ...
+ struct _xmlSchemaAttribute * attr : the linked <a href="libxml-SAX.html#attribute">attribute</a>
+}</pre><h3>Enum <a name="xmlSchemaContentType" id="xmlSchemaContentType">xmlSchemaContentType</a></h3><pre class="programlisting">Enum xmlSchemaContentType {
+ <a name="XML_SCHEMA_CONTENT_UNKNOWN" id="XML_SCHEMA_CONTENT_UNKNOWN">XML_SCHEMA_CONTENT_UNKNOWN</a> = 0
+ <a name="XML_SCHEMA_CONTENT_EMPTY" id="XML_SCHEMA_CONTENT_EMPTY">XML_SCHEMA_CONTENT_EMPTY</a> = 1
+ <a name="XML_SCHEMA_CONTENT_ELEMENTS" id="XML_SCHEMA_CONTENT_ELEMENTS">XML_SCHEMA_CONTENT_ELEMENTS</a> = 2
+ <a name="XML_SCHEMA_CONTENT_MIXED" id="XML_SCHEMA_CONTENT_MIXED">XML_SCHEMA_CONTENT_MIXED</a> = 3
+ <a name="XML_SCHEMA_CONTENT_SIMPLE" id="XML_SCHEMA_CONTENT_SIMPLE">XML_SCHEMA_CONTENT_SIMPLE</a> = 4
+ <a name="XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS" id="XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS">XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS</a> = 5 : Obsolete
+ <a name="XML_SCHEMA_CONTENT_BASIC" id="XML_SCHEMA_CONTENT_BASIC">XML_SCHEMA_CONTENT_BASIC</a> = 6
+ <a name="XML_SCHEMA_CONTENT_ANY" id="XML_SCHEMA_CONTENT_ANY">XML_SCHEMA_CONTENT_ANY</a> = 7
+}
+</pre><h3><a name="xmlSchemaElement" id="xmlSchemaElement">Structure xmlSchemaElement</a></h3><pre class="programlisting">Structure xmlSchemaElement<br />struct _xmlSchemaElement {
+ <a href="libxml-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ struct _xmlSchemaType * next : Not used?
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * id : Deprecated; not used
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ref : Deprecated; not used
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * refNs : Deprecated; not used
+ <a href="libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> subtypes : the type definition
+ <a href="libxml-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a> attributes
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int minOccurs : Deprecated; not used
+ int maxOccurs : Deprecated; not used
+ int flags
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namedType
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namedTypeNs
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * substGroup
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * substGroupNs
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * scope
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value : The original value of the value constra
+ struct _xmlSchemaElement * refDecl : This will now be used for the substitut
+ <a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> contModel : Obsolete for WXS, maybe used for RelaxN
+ <a href="libxml-schemasInternals.html#xmlSchemaContentType">xmlSchemaContentType</a> contentType
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * refPrefix : Deprecated; not used
+ <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> defVal : The compiled value constraint.
+ void * idcs : The identity-constraint defs
+}</pre><h3><a name="xmlSchemaFacet" id="xmlSchemaFacet">Structure xmlSchemaFacet</a></h3><pre class="programlisting">Structure xmlSchemaFacet<br />struct _xmlSchemaFacet {
+ <a href="libxml-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ struct _xmlSchemaFacet * next : the next type if in a sequence ...
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value : The original value
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * id : Obsolete
+ <a href="libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int fixed : XML_SCHEMAS_FACET_PRESERVE, etc.
+ int whitespace
+ <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val : The compiled value
+ <a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp : The regex for patterns
+}</pre><h3><a name="xmlSchemaFacetLink" id="xmlSchemaFacetLink">Structure xmlSchemaFacetLink</a></h3><pre class="programlisting">Structure xmlSchemaFacetLink<br />struct _xmlSchemaFacetLink {
+ struct _xmlSchemaFacetLink * next : the next facet link ...
+ <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet : the linked facet
+}</pre><h3><a name="xmlSchemaNotation" id="xmlSchemaNotation">Structure xmlSchemaNotation</a></h3><pre class="programlisting">Structure xmlSchemaNotation<br />struct _xmlSchemaNotation {
+ <a href="libxml-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name
+ <a href="libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * identifier
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace
+}</pre><h3><a name="xmlSchemaType" id="xmlSchemaType">Structure xmlSchemaType</a></h3><pre class="programlisting">Structure xmlSchemaType<br />struct _xmlSchemaType {
+ <a href="libxml-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ struct _xmlSchemaType * next : the next type if in a sequence ...
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * id : Deprecated; not used
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ref : Deprecated; not used
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * refNs : Deprecated; not used
+ <a href="libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> subtypes
+ <a href="libxml-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a> attributes : Deprecated; not used
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int minOccurs : Deprecated; not used
+ int maxOccurs : Deprecated; not used
+ int flags
+ <a href="libxml-schemasInternals.html#xmlSchemaContentType">xmlSchemaContentType</a> contentType
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * base : Base type's local name
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * baseNs : Base type's target namespace
+ <a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> baseType : The base type component
+ <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facets : Local facets
+ struct _xmlSchemaType * redef : Deprecated; not used
+ int recurse : Obsolete
+ <a href="libxml-schemasInternals.html#xmlSchemaAttributeLinkPtr">xmlSchemaAttributeLinkPtr</a> * attributeUses : Deprecated; not used
+ <a href="libxml-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a> attributeWildcard
+ int builtInType : Type of built-in types.
+ <a href="libxml-schemasInternals.html#xmlSchemaTypeLinkPtr">xmlSchemaTypeLinkPtr</a> memberTypes : member-types if a union type.
+ <a href="libxml-schemasInternals.html#xmlSchemaFacetLinkPtr">xmlSchemaFacetLinkPtr</a> facetSet : All facets (incl. inherited)
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * refPrefix : Deprecated; not used
+ <a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> contentTypeDef : Used for the simple content of complex
+ <a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> contModel : Holds the automaton of the content mode
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace
+ void * attrUses
+}</pre><h3><a name="xmlSchemaTypeLink" id="xmlSchemaTypeLink">Structure xmlSchemaTypeLink</a></h3><pre class="programlisting">Structure xmlSchemaTypeLink<br />struct _xmlSchemaTypeLink {
+ struct _xmlSchemaTypeLink * next : the next type link ...
+ <a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type : the linked type
+}</pre><h3>Enum <a name="xmlSchemaTypeType" id="xmlSchemaTypeType">xmlSchemaTypeType</a></h3><pre class="programlisting">Enum xmlSchemaTypeType {
+ <a name="XML_SCHEMA_TYPE_BASIC" id="XML_SCHEMA_TYPE_BASIC">XML_SCHEMA_TYPE_BASIC</a> = 1 : A built-in datatype
+ <a name="XML_SCHEMA_TYPE_ANY" id="XML_SCHEMA_TYPE_ANY">XML_SCHEMA_TYPE_ANY</a> = 2
+ <a name="XML_SCHEMA_TYPE_FACET" id="XML_SCHEMA_TYPE_FACET">XML_SCHEMA_TYPE_FACET</a> = 3
+ <a name="XML_SCHEMA_TYPE_SIMPLE" id="XML_SCHEMA_TYPE_SIMPLE">XML_SCHEMA_TYPE_SIMPLE</a> = 4
+ <a name="XML_SCHEMA_TYPE_COMPLEX" id="XML_SCHEMA_TYPE_COMPLEX">XML_SCHEMA_TYPE_COMPLEX</a> = 5
+ <a name="XML_SCHEMA_TYPE_SEQUENCE" id="XML_SCHEMA_TYPE_SEQUENCE">XML_SCHEMA_TYPE_SEQUENCE</a> = 6
+ <a name="XML_SCHEMA_TYPE_CHOICE" id="XML_SCHEMA_TYPE_CHOICE">XML_SCHEMA_TYPE_CHOICE</a> = 7
+ <a name="XML_SCHEMA_TYPE_ALL" id="XML_SCHEMA_TYPE_ALL">XML_SCHEMA_TYPE_ALL</a> = 8
+ <a name="XML_SCHEMA_TYPE_SIMPLE_CONTENT" id="XML_SCHEMA_TYPE_SIMPLE_CONTENT">XML_SCHEMA_TYPE_SIMPLE_CONTENT</a> = 9
+ <a name="XML_SCHEMA_TYPE_COMPLEX_CONTENT" id="XML_SCHEMA_TYPE_COMPLEX_CONTENT">XML_SCHEMA_TYPE_COMPLEX_CONTENT</a> = 10
+ <a name="XML_SCHEMA_TYPE_UR" id="XML_SCHEMA_TYPE_UR">XML_SCHEMA_TYPE_UR</a> = 11
+ <a name="XML_SCHEMA_TYPE_RESTRICTION" id="XML_SCHEMA_TYPE_RESTRICTION">XML_SCHEMA_TYPE_RESTRICTION</a> = 12
+ <a name="XML_SCHEMA_TYPE_EXTENSION" id="XML_SCHEMA_TYPE_EXTENSION">XML_SCHEMA_TYPE_EXTENSION</a> = 13
+ <a name="XML_SCHEMA_TYPE_ELEMENT" id="XML_SCHEMA_TYPE_ELEMENT">XML_SCHEMA_TYPE_ELEMENT</a> = 14
+ <a name="XML_SCHEMA_TYPE_ATTRIBUTE" id="XML_SCHEMA_TYPE_ATTRIBUTE">XML_SCHEMA_TYPE_ATTRIBUTE</a> = 15
+ <a name="XML_SCHEMA_TYPE_ATTRIBUTEGROUP" id="XML_SCHEMA_TYPE_ATTRIBUTEGROUP">XML_SCHEMA_TYPE_ATTRIBUTEGROUP</a> = 16
+ <a name="XML_SCHEMA_TYPE_GROUP" id="XML_SCHEMA_TYPE_GROUP">XML_SCHEMA_TYPE_GROUP</a> = 17
+ <a name="XML_SCHEMA_TYPE_NOTATION" id="XML_SCHEMA_TYPE_NOTATION">XML_SCHEMA_TYPE_NOTATION</a> = 18
+ <a name="XML_SCHEMA_TYPE_LIST" id="XML_SCHEMA_TYPE_LIST">XML_SCHEMA_TYPE_LIST</a> = 19
+ <a name="XML_SCHEMA_TYPE_UNION" id="XML_SCHEMA_TYPE_UNION">XML_SCHEMA_TYPE_UNION</a> = 20
+ <a name="XML_SCHEMA_TYPE_ANY_ATTRIBUTE" id="XML_SCHEMA_TYPE_ANY_ATTRIBUTE">XML_SCHEMA_TYPE_ANY_ATTRIBUTE</a> = 21
+ <a name="XML_SCHEMA_TYPE_IDC_UNIQUE" id="XML_SCHEMA_TYPE_IDC_UNIQUE">XML_SCHEMA_TYPE_IDC_UNIQUE</a> = 22
+ <a name="XML_SCHEMA_TYPE_IDC_KEY" id="XML_SCHEMA_TYPE_IDC_KEY">XML_SCHEMA_TYPE_IDC_KEY</a> = 23
+ <a name="XML_SCHEMA_TYPE_IDC_KEYREF" id="XML_SCHEMA_TYPE_IDC_KEYREF">XML_SCHEMA_TYPE_IDC_KEYREF</a> = 24
+ <a name="XML_SCHEMA_TYPE_PARTICLE" id="XML_SCHEMA_TYPE_PARTICLE">XML_SCHEMA_TYPE_PARTICLE</a> = 25
+ <a name="XML_SCHEMA_TYPE_ATTRIBUTE_USE" id="XML_SCHEMA_TYPE_ATTRIBUTE_USE">XML_SCHEMA_TYPE_ATTRIBUTE_USE</a> = 26
+ <a name="XML_SCHEMA_FACET_MININCLUSIVE" id="XML_SCHEMA_FACET_MININCLUSIVE">XML_SCHEMA_FACET_MININCLUSIVE</a> = 1000
+ <a name="XML_SCHEMA_FACET_MINEXCLUSIVE" id="XML_SCHEMA_FACET_MINEXCLUSIVE">XML_SCHEMA_FACET_MINEXCLUSIVE</a> = 1001
+ <a name="XML_SCHEMA_FACET_MAXINCLUSIVE" id="XML_SCHEMA_FACET_MAXINCLUSIVE">XML_SCHEMA_FACET_MAXINCLUSIVE</a> = 1002
+ <a name="XML_SCHEMA_FACET_MAXEXCLUSIVE" id="XML_SCHEMA_FACET_MAXEXCLUSIVE">XML_SCHEMA_FACET_MAXEXCLUSIVE</a> = 1003
+ <a name="XML_SCHEMA_FACET_TOTALDIGITS" id="XML_SCHEMA_FACET_TOTALDIGITS">XML_SCHEMA_FACET_TOTALDIGITS</a> = 1004
+ <a name="XML_SCHEMA_FACET_FRACTIONDIGITS" id="XML_SCHEMA_FACET_FRACTIONDIGITS">XML_SCHEMA_FACET_FRACTIONDIGITS</a> = 1005
+ <a name="XML_SCHEMA_FACET_PATTERN" id="XML_SCHEMA_FACET_PATTERN">XML_SCHEMA_FACET_PATTERN</a> = 1006
+ <a name="XML_SCHEMA_FACET_ENUMERATION" id="XML_SCHEMA_FACET_ENUMERATION">XML_SCHEMA_FACET_ENUMERATION</a> = 1007
+ <a name="XML_SCHEMA_FACET_WHITESPACE" id="XML_SCHEMA_FACET_WHITESPACE">XML_SCHEMA_FACET_WHITESPACE</a> = 1008
+ <a name="XML_SCHEMA_FACET_LENGTH" id="XML_SCHEMA_FACET_LENGTH">XML_SCHEMA_FACET_LENGTH</a> = 1009
+ <a name="XML_SCHEMA_FACET_MAXLENGTH" id="XML_SCHEMA_FACET_MAXLENGTH">XML_SCHEMA_FACET_MAXLENGTH</a> = 1010
+ <a name="XML_SCHEMA_FACET_MINLENGTH" id="XML_SCHEMA_FACET_MINLENGTH">XML_SCHEMA_FACET_MINLENGTH</a> = 1011
+ <a name="XML_SCHEMA_EXTRA_QNAMEREF" id="XML_SCHEMA_EXTRA_QNAMEREF">XML_SCHEMA_EXTRA_QNAMEREF</a> = 2000
+ <a name="XML_SCHEMA_EXTRA_ATTR_USE_PROHIB" id="XML_SCHEMA_EXTRA_ATTR_USE_PROHIB">XML_SCHEMA_EXTRA_ATTR_USE_PROHIB</a> = 2001
+}
+</pre><h3><a name="xmlSchemaVal" id="xmlSchemaVal">Structure xmlSchemaVal</a></h3><pre class="programlisting">Structure xmlSchemaVal<br />struct _xmlSchemaVal {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlSchemaValType" id="xmlSchemaValType">xmlSchemaValType</a></h3><pre class="programlisting">Enum xmlSchemaValType {
+ <a name="XML_SCHEMAS_UNKNOWN" id="XML_SCHEMAS_UNKNOWN">XML_SCHEMAS_UNKNOWN</a> = 0
+ <a name="XML_SCHEMAS_STRING" id="XML_SCHEMAS_STRING">XML_SCHEMAS_STRING</a> = 1
+ <a name="XML_SCHEMAS_NORMSTRING" id="XML_SCHEMAS_NORMSTRING">XML_SCHEMAS_NORMSTRING</a> = 2
+ <a name="XML_SCHEMAS_DECIMAL" id="XML_SCHEMAS_DECIMAL">XML_SCHEMAS_DECIMAL</a> = 3
+ <a name="XML_SCHEMAS_TIME" id="XML_SCHEMAS_TIME">XML_SCHEMAS_TIME</a> = 4
+ <a name="XML_SCHEMAS_GDAY" id="XML_SCHEMAS_GDAY">XML_SCHEMAS_GDAY</a> = 5
+ <a name="XML_SCHEMAS_GMONTH" id="XML_SCHEMAS_GMONTH">XML_SCHEMAS_GMONTH</a> = 6
+ <a name="XML_SCHEMAS_GMONTHDAY" id="XML_SCHEMAS_GMONTHDAY">XML_SCHEMAS_GMONTHDAY</a> = 7
+ <a name="XML_SCHEMAS_GYEAR" id="XML_SCHEMAS_GYEAR">XML_SCHEMAS_GYEAR</a> = 8
+ <a name="XML_SCHEMAS_GYEARMONTH" id="XML_SCHEMAS_GYEARMONTH">XML_SCHEMAS_GYEARMONTH</a> = 9
+ <a name="XML_SCHEMAS_DATE" id="XML_SCHEMAS_DATE">XML_SCHEMAS_DATE</a> = 10
+ <a name="XML_SCHEMAS_DATETIME" id="XML_SCHEMAS_DATETIME">XML_SCHEMAS_DATETIME</a> = 11
+ <a name="XML_SCHEMAS_DURATION" id="XML_SCHEMAS_DURATION">XML_SCHEMAS_DURATION</a> = 12
+ <a name="XML_SCHEMAS_FLOAT" id="XML_SCHEMAS_FLOAT">XML_SCHEMAS_FLOAT</a> = 13
+ <a name="XML_SCHEMAS_DOUBLE" id="XML_SCHEMAS_DOUBLE">XML_SCHEMAS_DOUBLE</a> = 14
+ <a name="XML_SCHEMAS_BOOLEAN" id="XML_SCHEMAS_BOOLEAN">XML_SCHEMAS_BOOLEAN</a> = 15
+ <a name="XML_SCHEMAS_TOKEN" id="XML_SCHEMAS_TOKEN">XML_SCHEMAS_TOKEN</a> = 16
+ <a name="XML_SCHEMAS_LANGUAGE" id="XML_SCHEMAS_LANGUAGE">XML_SCHEMAS_LANGUAGE</a> = 17
+ <a name="XML_SCHEMAS_NMTOKEN" id="XML_SCHEMAS_NMTOKEN">XML_SCHEMAS_NMTOKEN</a> = 18
+ <a name="XML_SCHEMAS_NMTOKENS" id="XML_SCHEMAS_NMTOKENS">XML_SCHEMAS_NMTOKENS</a> = 19
+ <a name="XML_SCHEMAS_NAME" id="XML_SCHEMAS_NAME">XML_SCHEMAS_NAME</a> = 20
+ <a name="XML_SCHEMAS_QNAME" id="XML_SCHEMAS_QNAME">XML_SCHEMAS_QNAME</a> = 21
+ <a name="XML_SCHEMAS_NCNAME" id="XML_SCHEMAS_NCNAME">XML_SCHEMAS_NCNAME</a> = 22
+ <a name="XML_SCHEMAS_ID" id="XML_SCHEMAS_ID">XML_SCHEMAS_ID</a> = 23
+ <a name="XML_SCHEMAS_IDREF" id="XML_SCHEMAS_IDREF">XML_SCHEMAS_IDREF</a> = 24
+ <a name="XML_SCHEMAS_IDREFS" id="XML_SCHEMAS_IDREFS">XML_SCHEMAS_IDREFS</a> = 25
+ <a name="XML_SCHEMAS_ENTITY" id="XML_SCHEMAS_ENTITY">XML_SCHEMAS_ENTITY</a> = 26
+ <a name="XML_SCHEMAS_ENTITIES" id="XML_SCHEMAS_ENTITIES">XML_SCHEMAS_ENTITIES</a> = 27
+ <a name="XML_SCHEMAS_NOTATION" id="XML_SCHEMAS_NOTATION">XML_SCHEMAS_NOTATION</a> = 28
+ <a name="XML_SCHEMAS_ANYURI" id="XML_SCHEMAS_ANYURI">XML_SCHEMAS_ANYURI</a> = 29
+ <a name="XML_SCHEMAS_INTEGER" id="XML_SCHEMAS_INTEGER">XML_SCHEMAS_INTEGER</a> = 30
+ <a name="XML_SCHEMAS_NPINTEGER" id="XML_SCHEMAS_NPINTEGER">XML_SCHEMAS_NPINTEGER</a> = 31
+ <a name="XML_SCHEMAS_NINTEGER" id="XML_SCHEMAS_NINTEGER">XML_SCHEMAS_NINTEGER</a> = 32
+ <a name="XML_SCHEMAS_NNINTEGER" id="XML_SCHEMAS_NNINTEGER">XML_SCHEMAS_NNINTEGER</a> = 33
+ <a name="XML_SCHEMAS_PINTEGER" id="XML_SCHEMAS_PINTEGER">XML_SCHEMAS_PINTEGER</a> = 34
+ <a name="XML_SCHEMAS_INT" id="XML_SCHEMAS_INT">XML_SCHEMAS_INT</a> = 35
+ <a name="XML_SCHEMAS_UINT" id="XML_SCHEMAS_UINT">XML_SCHEMAS_UINT</a> = 36
+ <a name="XML_SCHEMAS_LONG" id="XML_SCHEMAS_LONG">XML_SCHEMAS_LONG</a> = 37
+ <a name="XML_SCHEMAS_ULONG" id="XML_SCHEMAS_ULONG">XML_SCHEMAS_ULONG</a> = 38
+ <a name="XML_SCHEMAS_SHORT" id="XML_SCHEMAS_SHORT">XML_SCHEMAS_SHORT</a> = 39
+ <a name="XML_SCHEMAS_USHORT" id="XML_SCHEMAS_USHORT">XML_SCHEMAS_USHORT</a> = 40
+ <a name="XML_SCHEMAS_BYTE" id="XML_SCHEMAS_BYTE">XML_SCHEMAS_BYTE</a> = 41
+ <a name="XML_SCHEMAS_UBYTE" id="XML_SCHEMAS_UBYTE">XML_SCHEMAS_UBYTE</a> = 42
+ <a name="XML_SCHEMAS_HEXBINARY" id="XML_SCHEMAS_HEXBINARY">XML_SCHEMAS_HEXBINARY</a> = 43
+ <a name="XML_SCHEMAS_BASE64BINARY" id="XML_SCHEMAS_BASE64BINARY">XML_SCHEMAS_BASE64BINARY</a> = 44
+ <a name="XML_SCHEMAS_ANYTYPE" id="XML_SCHEMAS_ANYTYPE">XML_SCHEMAS_ANYTYPE</a> = 45
+ <a name="XML_SCHEMAS_ANYSIMPLETYPE" id="XML_SCHEMAS_ANYSIMPLETYPE">XML_SCHEMAS_ANYSIMPLETYPE</a> = 46
+}
+</pre><h3><a name="xmlSchemaWildcard" id="xmlSchemaWildcard">Structure xmlSchemaWildcard</a></h3><pre class="programlisting">Structure xmlSchemaWildcard<br />struct _xmlSchemaWildcard {
+ <a href="libxml-schemasInternals.html#xmlSchemaTypeType">xmlSchemaTypeType</a> type : The kind of type
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * id : Deprecated; not used
+ <a href="libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int minOccurs : Deprecated; not used
+ int maxOccurs : Deprecated; not used
+ int processContents
+ int any : Indicates if the ns constraint is of ##
+ <a href="libxml-schemasInternals.html#xmlSchemaWildcardNsPtr">xmlSchemaWildcardNsPtr</a> nsSet : The list of allowed namespaces
+ <a href="libxml-schemasInternals.html#xmlSchemaWildcardNsPtr">xmlSchemaWildcardNsPtr</a> negNsSet : The negated namespace
+ int flags
+}</pre><h3><a name="xmlSchemaWildcardNs" id="xmlSchemaWildcardNs">Structure xmlSchemaWildcardNs</a></h3><pre class="programlisting">Structure xmlSchemaWildcardNs<br />struct _xmlSchemaWildcardNs {
+ struct _xmlSchemaWildcardNs * next : the next constraint link ...
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value : the value
+}</pre><h3><a name="xmlSchemaFreeType" id="xmlSchemaFreeType"></a>Function: xmlSchemaFreeType</h3><pre class="programlisting">void xmlSchemaFreeType (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type)<br />
+</pre><p>Deallocate a Schema Type structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>a schema type structure</td></tr></tbody></table></div><h3><a name="xmlSchemaFreeWildcard" id="xmlSchemaFreeWildcard"></a>Function: xmlSchemaFreeWildcard</h3><pre class="programlisting">void xmlSchemaFreeWildcard (<a href="libxml-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a> wildcard)<br />
+</pre><p>Deallocates a wildcard structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>wildcard</tt></i>:</span></td><td>a wildcard structure</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-schematron.html b/libxml2-2.9.10/doc/html/libxml-schematron.html
new file mode 100644
index 0000000..f3a834b
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-schematron.html
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module schematron from libxml2</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></h1><h2>Module schematron from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-schemasInternals.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-schemasInternals.html">schemasInternals</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-threads.html">threads</a></th><td><a accesskey="n" href="libxml-threads.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface to the XML Schematron validity checking. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlSchematron">xmlSchematron</a><br />struct _xmlSchematron
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Structure <a href="#xmlSchematronParserCtxt">xmlSchematronParserCtxt</a><br />struct _xmlSchematronParserCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-schematron.html#xmlSchematronParserCtxt">xmlSchematronParserCtxt</a> * <a name="xmlSchematronParserCtxtPtr" id="xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-schematron.html#xmlSchematron">xmlSchematron</a> * <a name="xmlSchematronPtr" id="xmlSchematronPtr">xmlSchematronPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSchematronValidCtxt">xmlSchematronValidCtxt</a><br />struct _xmlSchematronValidCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-schematron.html#xmlSchematronValidCtxt">xmlSchematronValidCtxt</a> * <a name="xmlSchematronValidCtxtPtr" id="xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlSchematronValidOptions">xmlSchematronValidOptions</a>
+</pre><pre class="programlisting">void <a href="#xmlSchematronFree">xmlSchematronFree</a> (<a href="libxml-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> schema)</pre>
+<pre class="programlisting">void <a href="#xmlSchematronFreeParserCtxt">xmlSchematronFreeParserCtxt</a> (<a href="libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlSchematronFreeValidCtxt">xmlSchematronFreeValidCtxt</a> (<a href="libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> <a href="#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting"><a href="libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> <a href="#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a> (const char * buffer, <br /> int size)</pre>
+<pre class="programlisting"><a href="libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> <a href="#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a> (const char * URL)</pre>
+<pre class="programlisting"><a href="libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> <a href="#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a> (<a href="libxml-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> schema, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> <a href="#xmlSchematronParse">xmlSchematronParse</a> (<a href="libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlSchematronSetValidStructuredErrors">xmlSchematronSetValidStructuredErrors</a> (<a href="libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br /> void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a> (<a href="libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> instance)</pre>
+<pre class="programlisting">Function type: <a href="#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a>
+void <a href="#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a>
+void <a href="#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<h2>Description</h2>
+<h3><a name="xmlSchematron" id="xmlSchematron">Structure xmlSchematron</a></h3><pre class="programlisting">Structure xmlSchematron<br />struct _xmlSchematron {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlSchematronParserCtxt" id="xmlSchematronParserCtxt">Structure xmlSchematronParserCtxt</a></h3><pre class="programlisting">Structure xmlSchematronParserCtxt<br />struct _xmlSchematronParserCtxt {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlSchematronValidCtxt" id="xmlSchematronValidCtxt">Structure xmlSchematronValidCtxt</a></h3><pre class="programlisting">Structure xmlSchematronValidCtxt<br />struct _xmlSchematronValidCtxt {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlSchematronValidOptions" id="xmlSchematronValidOptions">xmlSchematronValidOptions</a></h3><pre class="programlisting">Enum xmlSchematronValidOptions {
+ <a name="XML_SCHEMATRON_OUT_QUIET" id="XML_SCHEMATRON_OUT_QUIET">XML_SCHEMATRON_OUT_QUIET</a> = 1 : quiet no report
+ <a name="XML_SCHEMATRON_OUT_TEXT" id="XML_SCHEMATRON_OUT_TEXT">XML_SCHEMATRON_OUT_TEXT</a> = 2 : build a textual report
+ <a name="XML_SCHEMATRON_OUT_XML" id="XML_SCHEMATRON_OUT_XML">XML_SCHEMATRON_OUT_XML</a> = 4 : output SVRL
+ <a name="XML_SCHEMATRON_OUT_ERROR" id="XML_SCHEMATRON_OUT_ERROR">XML_SCHEMATRON_OUT_ERROR</a> = 8 : output via <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a>
+ <a name="XML_SCHEMATRON_OUT_FILE" id="XML_SCHEMATRON_OUT_FILE">XML_SCHEMATRON_OUT_FILE</a> = 256 : output to a file descriptor
+ <a name="XML_SCHEMATRON_OUT_BUFFER" id="XML_SCHEMATRON_OUT_BUFFER">XML_SCHEMATRON_OUT_BUFFER</a> = 512 : output to a buffer
+ <a name="XML_SCHEMATRON_OUT_IO" id="XML_SCHEMATRON_OUT_IO">XML_SCHEMATRON_OUT_IO</a> = 1024 : output to I/O mechanism
+}
+</pre><h3><a name="xmlSchematronFree" id="xmlSchematronFree"></a>Function: xmlSchematronFree</h3><pre class="programlisting">void xmlSchematronFree (<a href="libxml-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> schema)<br />
+</pre><p>Deallocate a Schematron structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div><h3><a name="xmlSchematronFreeParserCtxt" id="xmlSchematronFreeParserCtxt"></a>Function: xmlSchematronFreeParserCtxt</h3><pre class="programlisting">void xmlSchematronFreeParserCtxt (<a href="libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> ctxt)<br />
+</pre><p>Free the resources associated to the schema parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema parser context</td></tr></tbody></table></div><h3><a name="xmlSchematronFreeValidCtxt" id="xmlSchematronFreeValidCtxt"></a>Function: xmlSchematronFreeValidCtxt</h3><pre class="programlisting">void xmlSchematronFreeValidCtxt (<a href="libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt)<br />
+</pre><p>Free the resources associated to the schema validation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema validation context</td></tr></tbody></table></div><h3><a name="xmlSchematronNewDocParserCtxt" id="xmlSchematronNewDocParserCtxt"></a>Function: xmlSchematronNewDocParserCtxt</h3><pre class="programlisting"><a href="libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> xmlSchematronNewDocParserCtxt (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Create an XML Schematrons parse context for that document. NB. The document may be modified during the parsing process.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a preparsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchematronNewMemParserCtxt" id="xmlSchematronNewMemParserCtxt"></a>Function: xmlSchematronNewMemParserCtxt</h3><pre class="programlisting"><a href="libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> xmlSchematronNewMemParserCtxt (const char * buffer, <br /> int size)<br />
+</pre><p>Create an XML Schematrons parse context for that memory buffer expected to contain an XML Schematrons file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array containing the schemas</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchematronNewParserCtxt" id="xmlSchematronNewParserCtxt"></a>Function: xmlSchematronNewParserCtxt</h3><pre class="programlisting"><a href="libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> xmlSchematronNewParserCtxt (const char * URL)<br />
+</pre><p>Create an XML Schematrons parse context for that file/resource expected to contain an XML Schematrons file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the location of the schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchematronNewValidCtxt" id="xmlSchematronNewValidCtxt"></a>Function: xmlSchematronNewValidCtxt</h3><pre class="programlisting"><a href="libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> xmlSchematronNewValidCtxt (<a href="libxml-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> schema, <br /> int options)<br />
+</pre><p>Create an XML Schematrons validation context based on the given schema.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled XML Schematrons</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of <a href="libxml-schematron.html#xmlSchematronValidOptions">xmlSchematronValidOptions</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the validation context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchematronParse" id="xmlSchematronParse"></a>Function: xmlSchematronParse</h3><pre class="programlisting"><a href="libxml-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a> xmlSchematronParse (<a href="libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse a schema definition resource and build an internal XML Schema structure which can be used to validate instances.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal XML Schematron structure built from the resource or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchematronSetValidStructuredErrors" id="xmlSchematronSetValidStructuredErrors"></a>Function: xmlSchematronSetValidStructuredErrors</h3><pre class="programlisting">void xmlSchematronSetValidStructuredErrors (<a href="libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br /> void * ctx)<br />
+</pre><p>Set the structured error callback</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Schematron validation context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the structured error function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlSchematronValidateDoc" id="xmlSchematronValidateDoc"></a>Function: xmlSchematronValidateDoc</h3><pre class="programlisting">int xmlSchematronValidateDoc (<a href="libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> instance)<br />
+</pre><p>Validate a tree instance against the schematron</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema validation context</td></tr><tr><td><span class="term"><i><tt>instance</tt></i>:</span></td><td>the document instance tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of internal error and an error count otherwise.</td></tr></tbody></table></div><h3><a name="xmlSchematronValidityErrorFunc" id="xmlSchematronValidityErrorFunc"></a>Function type: xmlSchematronValidityErrorFunc</h3><pre class="programlisting">Function type: xmlSchematronValidityErrorFunc
+void xmlSchematronValidityErrorFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Signature of an error callback from a Schematron validation</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div><br />
+<h3><a name="xmlSchematronValidityWarningFunc" id="xmlSchematronValidityWarningFunc"></a>Function type: xmlSchematronValidityWarningFunc</h3><pre class="programlisting">Function type: xmlSchematronValidityWarningFunc
+void xmlSchematronValidityWarningFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Signature of a warning callback from a Schematron validation</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div><br />
+<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>
diff --git a/libxml2-2.9.10/doc/html/libxml-threads.html b/libxml2-2.9.10/doc/html/libxml-threads.html
new file mode 100644
index 0000000..5837a78
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-threads.html
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module threads from libxml2</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></h1><h2>Module threads from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-schematron.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-schematron.html">schematron</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-tree.html">tree</a></th><td><a accesskey="n" href="libxml-tree.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>set of generic threading related routines should work with pthreads, Windows native or TLS threads </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlMutex">xmlMutex</a><br />struct _xmlMutex
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-threads.html#xmlMutex">xmlMutex</a> * <a name="xmlMutexPtr" id="xmlMutexPtr">xmlMutexPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlRMutex">xmlRMutex</a><br />struct _xmlRMutex
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-threads.html#xmlRMutex">xmlRMutex</a> * <a name="xmlRMutexPtr" id="xmlRMutexPtr">xmlRMutexPtr</a>
+</pre><pre class="programlisting">void <a href="#xmlCleanupThreads">xmlCleanupThreads</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlDllMain">xmlDllMain</a> (void * hinstDLL, <br /> unsigned long fdwReason, <br /> void * lpvReserved)</pre>
+<pre class="programlisting">void <a href="#xmlFreeMutex">xmlFreeMutex</a> (<a href="libxml-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok)</pre>
+<pre class="programlisting">void <a href="#xmlFreeRMutex">xmlFreeRMutex</a> (<a href="libxml-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok)</pre>
+<pre class="programlisting"><a href="libxml-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a> <a href="#xmlGetGlobalState">xmlGetGlobalState</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlGetThreadId">xmlGetThreadId</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlInitThreads">xmlInitThreads</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlIsMainThread">xmlIsMainThread</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlLockLibrary">xmlLockLibrary</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlMutexLock">xmlMutexLock</a> (<a href="libxml-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok)</pre>
+<pre class="programlisting">void <a href="#xmlMutexUnlock">xmlMutexUnlock</a> (<a href="libxml-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok)</pre>
+<pre class="programlisting"><a href="libxml-threads.html#xmlMutexPtr">xmlMutexPtr</a> <a href="#xmlNewMutex">xmlNewMutex</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> <a href="#xmlNewRMutex">xmlNewRMutex</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlRMutexLock">xmlRMutexLock</a> (<a href="libxml-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok)</pre>
+<pre class="programlisting">void <a href="#xmlRMutexUnlock">xmlRMutexUnlock</a> (<a href="libxml-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok)</pre>
+<pre class="programlisting">void <a href="#xmlUnlockLibrary">xmlUnlockLibrary</a> (void)</pre>
+<h2>Description</h2>
+<h3><a name="xmlMutex" id="xmlMutex">Structure xmlMutex</a></h3><pre class="programlisting">Structure xmlMutex<br />struct _xmlMutex {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlRMutex" id="xmlRMutex">Structure xmlRMutex</a></h3><pre class="programlisting">Structure xmlRMutex<br />struct _xmlRMutex {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlCleanupThreads" id="xmlCleanupThreads"></a>Function: xmlCleanupThreads</h3><pre class="programlisting">void xmlCleanupThreads (void)<br />
+</pre><p>xmlCleanupThreads() is used to to cleanup all the thread related data of the libxml2 library once processing has ended. WARNING: if your application is multithreaded or has plugin support calling this may crash the application if another thread or a plugin is still using libxml2. It's sometimes very hard to guess if libxml2 is in use in the application, some libraries or plugins may use it without notice. In case of doubt abstain from calling this function or do it just before calling exit() to avoid leak reports from valgrind !</p>
+<h3><a name="xmlDllMain" id="xmlDllMain"></a>Function: xmlDllMain</h3><pre class="programlisting">int xmlDllMain (void * hinstDLL, <br /> unsigned long fdwReason, <br /> void * lpvReserved)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>hinstDLL</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>fdwReason</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>lpvReserved</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlFreeMutex" id="xmlFreeMutex"></a>Function: xmlFreeMutex</h3><pre class="programlisting">void xmlFreeMutex (<a href="libxml-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok)<br />
+</pre><p>xmlFreeMutex() is used to reclaim resources associated with a libxml2 token struct.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the simple mutex</td></tr></tbody></table></div><h3><a name="xmlFreeRMutex" id="xmlFreeRMutex"></a>Function: xmlFreeRMutex</h3><pre class="programlisting">void xmlFreeRMutex (<a href="libxml-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok)<br />
+</pre><p>xmlRFreeMutex() is used to reclaim resources associated with a reentrant mutex.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the reentrant mutex</td></tr></tbody></table></div><h3><a name="xmlGetGlobalState" id="xmlGetGlobalState"></a>Function: xmlGetGlobalState</h3><pre class="programlisting"><a href="libxml-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a> xmlGetGlobalState (void)<br />
+</pre><p>xmlGetGlobalState() is called to retrieve the global state for a thread.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the thread global state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlGetThreadId" id="xmlGetThreadId"></a>Function: xmlGetThreadId</h3><pre class="programlisting">int xmlGetThreadId (void)<br />
+</pre><p>xmlGetThreadId() find the current thread ID number Note that this is likely to be broken on some platforms using pthreads as the specification doesn't mandate pthread_t to be an integer type</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current thread ID number</td></tr></tbody></table></div><h3><a name="xmlInitThreads" id="xmlInitThreads"></a>Function: xmlInitThreads</h3><pre class="programlisting">void xmlInitThreads (void)<br />
+</pre><p>xmlInitThreads() is used to to initialize all the thread related data of the libxml2 library.</p>
+<h3><a name="xmlIsMainThread" id="xmlIsMainThread"></a>Function: xmlIsMainThread</h3><pre class="programlisting">int xmlIsMainThread (void)<br />
+</pre><p>xmlIsMainThread() check whether the current thread is the main thread.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the current thread is the main thread, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlLockLibrary" id="xmlLockLibrary"></a>Function: xmlLockLibrary</h3><pre class="programlisting">void xmlLockLibrary (void)<br />
+</pre><p>xmlLockLibrary() is used to take out a re-entrant lock on the libxml2 library.</p>
+<h3><a name="xmlMutexLock" id="xmlMutexLock"></a>Function: xmlMutexLock</h3><pre class="programlisting">void xmlMutexLock (<a href="libxml-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok)<br />
+</pre><p>xmlMutexLock() is used to lock a libxml2 token.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the simple mutex</td></tr></tbody></table></div><h3><a name="xmlMutexUnlock" id="xmlMutexUnlock"></a>Function: xmlMutexUnlock</h3><pre class="programlisting">void xmlMutexUnlock (<a href="libxml-threads.html#xmlMutexPtr">xmlMutexPtr</a> tok)<br />
+</pre><p>xmlMutexUnlock() is used to unlock a libxml2 token.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the simple mutex</td></tr></tbody></table></div><h3><a name="xmlNewMutex" id="xmlNewMutex"></a>Function: xmlNewMutex</h3><pre class="programlisting"><a href="libxml-threads.html#xmlMutexPtr">xmlMutexPtr</a> xmlNewMutex (void)<br />
+</pre><p>xmlNewMutex() is used to allocate a libxml2 token struct for use in synchronizing access to data.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new simple mutex pointer or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlNewRMutex" id="xmlNewRMutex"></a>Function: xmlNewRMutex</h3><pre class="programlisting"><a href="libxml-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> xmlNewRMutex (void)<br />
+</pre><p>xmlRNewMutex() is used to allocate a reentrant mutex for use in synchronizing access to data. token_r is a re-entrant lock and thus useful for synchronizing access to data structures that may be manipulated in a recursive fashion.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reentrant mutex pointer or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlRMutexLock" id="xmlRMutexLock"></a>Function: xmlRMutexLock</h3><pre class="programlisting">void xmlRMutexLock (<a href="libxml-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok)<br />
+</pre><p>xmlRMutexLock() is used to lock a libxml2 token_r.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the reentrant mutex</td></tr></tbody></table></div><h3><a name="xmlRMutexUnlock" id="xmlRMutexUnlock"></a>Function: xmlRMutexUnlock</h3><pre class="programlisting">void xmlRMutexUnlock (<a href="libxml-threads.html#xmlRMutexPtr">xmlRMutexPtr</a> tok)<br />
+</pre><p>xmlRMutexUnlock() is used to unlock a libxml2 token_r.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tok</tt></i>:</span></td><td>the reentrant mutex</td></tr></tbody></table></div><h3><a name="xmlUnlockLibrary" id="xmlUnlockLibrary"></a>Function: xmlUnlockLibrary</h3><pre class="programlisting">void xmlUnlockLibrary (void)<br />
+</pre><p>xmlUnlockLibrary() is used to release a re-entrant lock on the libxml2 library.</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>
diff --git a/libxml2-2.9.10/doc/html/libxml-tree.html b/libxml2-2.9.10/doc/html/libxml-tree.html
new file mode 100644
index 0000000..e78af7b
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-tree.html
@@ -0,0 +1,991 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module tree from libxml2</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></h1><h2>Module tree from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-threads.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-threads.html">threads</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-uri.html">uri</a></th><td><a accesskey="n" href="libxml-uri.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>this module describes the structures found in an tree resulting from an XML or HTML parsing, as well as the API provided for various processing on that tree </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#BASE_BUFFER_SIZE">BASE_BUFFER_SIZE</a></pre><pre class="programlisting">#define <a href="#LIBXML2_NEW_BUFFER">LIBXML2_NEW_BUFFER</a></pre><pre class="programlisting">#define <a href="#XML_GET_CONTENT">XML_GET_CONTENT</a></pre><pre class="programlisting">#define <a href="#XML_GET_LINE">XML_GET_LINE</a></pre><pre class="programlisting">#define <a href="#XML_LOCAL_NAMESPACE">XML_LOCAL_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XML_XML_ID">XML_XML_ID</a></pre><pre class="programlisting">#define <a href="#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#xmlChildrenNode">xmlChildrenNode</a></pre><pre class="programlisting">#define <a href="#xmlRootNode">xmlRootNode</a></pre><pre class="programlisting">Structure <a href="#xmlAttr">xmlAttr</a><br />struct _xmlAttr
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlAttr">xmlAttr</a> * <a name="xmlAttrPtr" id="xmlAttrPtr">xmlAttrPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlAttribute">xmlAttribute</a><br />struct _xmlAttribute
+</pre><pre class="programlisting">Enum <a href="#xmlAttributeDefault">xmlAttributeDefault</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlAttribute">xmlAttribute</a> * <a name="xmlAttributePtr" id="xmlAttributePtr">xmlAttributePtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlAttributeType">xmlAttributeType</a>
+</pre><pre class="programlisting">Structure <a href="#xmlBuf">xmlBuf</a><br />struct _xmlBuf
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlBuf">xmlBuf</a> * <a name="xmlBufPtr" id="xmlBufPtr">xmlBufPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlBuffer">xmlBuffer</a><br />struct _xmlBuffer
+</pre><pre class="programlisting">Enum <a href="#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> * <a name="xmlBufferPtr" id="xmlBufferPtr">xmlBufferPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlDOMWrapCtxt">xmlDOMWrapCtxt</a><br />struct _xmlDOMWrapCtxt
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlDOMWrapCtxt">xmlDOMWrapCtxt</a> * <a name="xmlDOMWrapCtxtPtr" id="xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlDoc">xmlDoc</a><br />struct _xmlDoc
+</pre><pre class="programlisting">Enum <a href="#xmlDocProperties">xmlDocProperties</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * <a name="xmlDocPtr" id="xmlDocPtr">xmlDocPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlDtd">xmlDtd</a><br />struct _xmlDtd
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlDtd">xmlDtd</a> * <a name="xmlDtdPtr" id="xmlDtdPtr">xmlDtdPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlElement">xmlElement</a><br />struct _xmlElement
+</pre><pre class="programlisting">Structure <a href="#xmlElementContent">xmlElementContent</a><br />struct _xmlElementContent
+</pre><pre class="programlisting">Enum <a href="#xmlElementContentOccur">xmlElementContentOccur</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlElementContent">xmlElementContent</a> * <a name="xmlElementContentPtr" id="xmlElementContentPtr">xmlElementContentPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlElementContentType">xmlElementContentType</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlElement">xmlElement</a> * <a name="xmlElementPtr" id="xmlElementPtr">xmlElementPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlElementType">xmlElementType</a>
+</pre><pre class="programlisting">Enum <a href="#xmlElementTypeVal">xmlElementTypeVal</a>
+</pre><pre class="programlisting">Structure <a href="#xmlEntity">xmlEntity</a><br />struct _xmlEntity
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlEntity">xmlEntity</a> * <a name="xmlEntityPtr" id="xmlEntityPtr">xmlEntityPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlEnumeration">xmlEnumeration</a><br />struct _xmlEnumeration
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlEnumeration">xmlEnumeration</a> * <a name="xmlEnumerationPtr" id="xmlEnumerationPtr">xmlEnumerationPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlID">xmlID</a><br />struct _xmlID
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlID">xmlID</a> * <a name="xmlIDPtr" id="xmlIDPtr">xmlIDPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlNode">xmlNode</a><br />struct _xmlNode
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlNode">xmlNode</a> * <a name="xmlNodePtr" id="xmlNodePtr">xmlNodePtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlNotation">xmlNotation</a><br />struct _xmlNotation
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlNotation">xmlNotation</a> * <a name="xmlNotationPtr" id="xmlNotationPtr">xmlNotationPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlNs">xmlNs</a><br />struct _xmlNs
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlNs">xmlNs</a> * <a name="xmlNsPtr" id="xmlNsPtr">xmlNsPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlElementType">xmlElementType</a> <a name="xmlNsType" id="xmlNsType">xmlNsType</a>
+</pre><pre class="programlisting">Structure <a href="#xmlOutputBuffer">xmlOutputBuffer</a><br />struct _xmlOutputBuffer
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlOutputBuffer">xmlOutputBuffer</a> * <a name="xmlOutputBufferPtr" id="xmlOutputBufferPtr">xmlOutputBufferPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlParserCtxt">xmlParserCtxt</a><br />struct _xmlParserCtxt
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserCtxt">xmlParserCtxt</a> * <a name="xmlParserCtxtPtr" id="xmlParserCtxtPtr">xmlParserCtxtPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlParserInput">xmlParserInput</a><br />struct _xmlParserInput
+</pre><pre class="programlisting">Structure <a href="#xmlParserInputBuffer">xmlParserInputBuffer</a><br />struct _xmlParserInputBuffer
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserInputBuffer">xmlParserInputBuffer</a> * <a name="xmlParserInputBufferPtr" id="xmlParserInputBufferPtr">xmlParserInputBufferPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlParserInput">xmlParserInput</a> * <a name="xmlParserInputPtr" id="xmlParserInputPtr">xmlParserInputPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlRef">xmlRef</a><br />struct _xmlRef
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlRef">xmlRef</a> * <a name="xmlRefPtr" id="xmlRefPtr">xmlRefPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSAXHandler">xmlSAXHandler</a><br />struct _xmlSAXHandler
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlSAXHandler">xmlSAXHandler</a> * <a name="xmlSAXHandlerPtr" id="xmlSAXHandlerPtr">xmlSAXHandlerPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSAXLocator">xmlSAXLocator</a><br />struct _xmlSAXLocator
+</pre><pre class="programlisting">Typedef <a href="libxml-tree.html#xmlSAXLocator">xmlSAXLocator</a> * <a name="xmlSAXLocatorPtr" id="xmlSAXLocatorPtr">xmlSAXLocatorPtr</a>
+</pre><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlAddChild">xmlAddChild</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlAddChildList">xmlAddChildList</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlAddNextSibling">xmlAddNextSibling</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlAddPrevSibling">xmlAddPrevSibling</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlAddSibling">xmlAddSibling</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
+<pre class="programlisting">void <a href="#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * string)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBufContent">xmlBufContent</a> (const <a href="libxml-tree.html#xmlBuf">xmlBuf</a> * buf)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBufEnd">xmlBufEnd</a> (<a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buf)</pre>
+<pre class="programlisting">int <a href="#xmlBufGetNodeContent">xmlBufGetNodeContent</a> (<a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)</pre>
+<pre class="programlisting">size_t <a href="#xmlBufNodeDump">xmlBufNodeDump</a> (<a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> int level, <br /> int format)</pre>
+<pre class="programlisting">size_t <a href="#xmlBufShrink">xmlBufShrink</a> (<a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br /> size_t len)</pre>
+<pre class="programlisting">size_t <a href="#xmlBufUse">xmlBufUse</a> (const <a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buf)</pre>
+<pre class="programlisting">int <a href="#xmlBufferAdd">xmlBufferAdd</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlBufferAddHead">xmlBufferAddHead</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlBufferCCat">xmlBufferCCat</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const char * str)</pre>
+<pre class="programlisting">int <a href="#xmlBufferCat">xmlBufferCat</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBufferContent">xmlBufferContent</a> (const <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> * buf)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> <a href="#xmlBufferCreate">xmlBufferCreate</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> <a href="#xmlBufferCreateSize">xmlBufferCreateSize</a> (size_t size)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> <a href="#xmlBufferCreateStatic">xmlBufferCreateStatic</a> (void * mem, <br /> size_t size)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBufferDetach">xmlBufferDetach</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)</pre>
+<pre class="programlisting">int <a href="#xmlBufferDump">xmlBufferDump</a> (FILE * file, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)</pre>
+<pre class="programlisting">void <a href="#xmlBufferEmpty">xmlBufferEmpty</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)</pre>
+<pre class="programlisting">void <a href="#xmlBufferFree">xmlBufferFree</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)</pre>
+<pre class="programlisting">int <a href="#xmlBufferGrow">xmlBufferGrow</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> unsigned int len)</pre>
+<pre class="programlisting">int <a href="#xmlBufferLength">xmlBufferLength</a> (const <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> * buf)</pre>
+<pre class="programlisting">int <a href="#xmlBufferResize">xmlBufferResize</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> unsigned int size)</pre>
+<pre class="programlisting">void <a href="#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> scheme)</pre>
+<pre class="programlisting">int <a href="#xmlBufferShrink">xmlBufferShrink</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> unsigned int len)</pre>
+<pre class="programlisting">void <a href="#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * string)</pre>
+<pre class="programlisting">void <a href="#xmlBufferWriteChar">xmlBufferWriteChar</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const char * string)</pre>
+<pre class="programlisting">void <a href="#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * string)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBuildQName">xmlBuildQName</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ncname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * memory, <br /> int len)</pre>
+<pre class="programlisting">unsigned long <a href="#xmlChildElementCount">xmlChildElementCount</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlCopyDoc">xmlCopyDoc</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> int recursive)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlCopyDtd">xmlCopyDtd</a> (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlCopyNamespace">xmlCopyNamespace</a> (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlCopyNamespaceList">xmlCopyNamespaceList</a> (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlCopyNode">xmlCopyNode</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int extended)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlCopyNodeList">xmlCopyNodeList</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlCopyProp">xmlCopyProp</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlCopyPropList">xmlCopyPropList</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlCreateIntSubset">xmlCreateIntSubset</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
+<pre class="programlisting">Function type: <a href="#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a>
+<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a> (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nsName, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nsPrefix)
+</pre>
+<pre class="programlisting">int <a href="#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a> (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> sourceDoc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> destDoc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> destParent, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a> (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> sourceDoc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * resNode, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> destDoc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> destParent, <br /> int deep, <br /> int options)</pre>
+<pre class="programlisting">void <a href="#xmlDOMWrapFreeCtxt">xmlDOMWrapFreeCtxt</a> (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> <a href="#xmlDOMWrapNewCtxt">xmlDOMWrapNewCtxt</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a> (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a> (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlDocCopyNode">xmlDocCopyNode</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> int extended)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlDocCopyNodeList">xmlDocCopyNodeList</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">int <a href="#xmlDocDump">xmlDocDump</a> (FILE * f, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br /> int * size, <br /> int format)</pre>
+<pre class="programlisting">void <a href="#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> out_doc, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr, <br /> int * doc_txt_len, <br /> const char * txt_encoding, <br /> int format)</pre>
+<pre class="programlisting">void <a href="#xmlDocDumpMemory">xmlDocDumpMemory</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br /> int * size)</pre>
+<pre class="programlisting">void <a href="#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> out_doc, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr, <br /> int * doc_txt_len, <br /> const char * txt_encoding)</pre>
+<pre class="programlisting">int <a href="#xmlDocFormatDump">xmlDocFormatDump</a> (FILE * f, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> int format)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlDocGetRootElement">xmlDocGetRootElement</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlDocSetRootElement">xmlDocSetRootElement</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> root)</pre>
+<pre class="programlisting">void <a href="#xmlElemDump">xmlElemDump</a> (FILE * f, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlFirstElementChild">xmlFirstElementChild</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent)</pre>
+<pre class="programlisting">void <a href="#xmlFreeDoc">xmlFreeDoc</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlFreeDtd">xmlFreeDtd</a> (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlFreeNode">xmlFreeNode</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlFreeNodeList">xmlFreeNodeList</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlFreeNs">xmlFreeNs</a> (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlFreeNsList">xmlFreeNsList</a> (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlFreeProp">xmlFreeProp</a> (<a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlFreePropList">xmlFreePropList</a> (<a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> <a href="#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlGetCompressMode">xmlGetCompressMode</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlGetDocCompressMode">xmlGetDocCompressMode</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlGetIntSubset">xmlGetIntSubset</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlGetLastChild">xmlGetLastChild</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * parent)</pre>
+<pre class="programlisting">long <a href="#xmlGetLineNo">xmlGetLineNo</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlGetNoNsProp">xmlGetNoNsProp</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlGetNodePath">xmlGetNodePath</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> * <a href="#xmlGetNsList">xmlGetNsList</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlGetNsProp">xmlGetNsProp</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlGetProp">xmlGetProp</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlHasNsProp">xmlHasNsProp</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlHasProp">xmlHasProp</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlIsBlankNode">xmlIsBlankNode</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node)</pre>
+<pre class="programlisting">int <a href="#xmlIsXHTML">xmlIsXHTML</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicID)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlLastElementChild">xmlLastElementChild</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewCDataBlock">xmlNewCDataBlock</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewCharRef">xmlNewCharRef</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewChild">xmlNewChild</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewComment">xmlNewComment</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlNewDoc">xmlNewDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * version)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocComment">xmlNewDocComment</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocFragment">xmlNewDocFragment</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocNode">xmlNewDocNode</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocPI">xmlNewDocPI</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlNewDocProp">xmlNewDocProp</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocRawNode">xmlNewDocRawNode</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocText">xmlNewDocText</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewDocTextLen">xmlNewDocTextLen</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlNewDtd">xmlNewDtd</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlNewGlobalNs">xmlNewGlobalNs</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewNode">xmlNewNode</a> (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewNodeEatName">xmlNewNodeEatName</a> (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlNewNs">xmlNewNs</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlNewNsProp">xmlNewNsProp</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlNewNsPropEatName">xmlNewNsPropEatName</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewPI">xmlNewPI</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlNewProp">xmlNewProp</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewReference">xmlNewReference</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewText">xmlNewText</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewTextChild">xmlNewTextChild</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNewTextLen">xmlNewTextLen</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlNextElementSibling">xmlNextElementSibling</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">void <a href="#xmlNodeAddContent">xmlNodeAddContent</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">void <a href="#xmlNodeAddContentLen">xmlNodeAddContentLen</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlNodeBufGetContent">xmlNodeBufGetContent</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)</pre>
+<pre class="programlisting">int <a href="#xmlNodeDump">xmlNodeDump</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> int level, <br /> int format)</pre>
+<pre class="programlisting">void <a href="#xmlNodeDumpOutput">xmlNodeDumpOutput</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> int level, <br /> int format, <br /> const char * encoding)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNodeGetBase">xmlNodeGetBase</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNodeGetContent">xmlNodeGetContent</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNodeGetLang">xmlNodeGetLang</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)</pre>
+<pre class="programlisting">int <a href="#xmlNodeGetSpacePreserve">xmlNodeGetSpacePreserve</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)</pre>
+<pre class="programlisting">int <a href="#xmlNodeIsText">xmlNodeIsText</a> (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNodeListGetRawString">xmlNodeListGetRawString</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * list, <br /> int inLine)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNodeListGetString">xmlNodeListGetString</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * list, <br /> int inLine)</pre>
+<pre class="programlisting">void <a href="#xmlNodeSetBase">xmlNodeSetBase</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * uri)</pre>
+<pre class="programlisting">void <a href="#xmlNodeSetContent">xmlNodeSetContent</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">void <a href="#xmlNodeSetContentLen">xmlNodeSetContentLen</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)</pre>
+<pre class="programlisting">void <a href="#xmlNodeSetLang">xmlNodeSetLang</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * lang)</pre>
+<pre class="programlisting">void <a href="#xmlNodeSetName">xmlNodeSetName</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> int val)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlPreviousElementSibling">xmlPreviousElementSibling</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">int <a href="#xmlReconciliateNs">xmlReconciliateNs</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree)</pre>
+<pre class="programlisting">int <a href="#xmlRemoveProp">xmlRemoveProp</a> (<a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlReplaceNode">xmlReplaceNode</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> old, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting">int <a href="#xmlSaveFile">xmlSaveFile</a> (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)</pre>
+<pre class="programlisting">int <a href="#xmlSaveFileEnc">xmlSaveFileEnc</a> (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding)</pre>
+<pre class="programlisting">int <a href="#xmlSaveFileTo">xmlSaveFileTo</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding)</pre>
+<pre class="programlisting">int <a href="#xmlSaveFormatFile">xmlSaveFormatFile</a> (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> int format)</pre>
+<pre class="programlisting">int <a href="#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a> (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding, <br /> int format)</pre>
+<pre class="programlisting">int <a href="#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding, <br /> int format)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlSearchNs">xmlSearchNs</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> <a href="#xmlSearchNsByHref">xmlSearchNsByHref</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href)</pre>
+<pre class="programlisting">void <a href="#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a> (<a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> scheme)</pre>
+<pre class="programlisting">void <a href="#xmlSetCompressMode">xmlSetCompressMode</a> (int mode)</pre>
+<pre class="programlisting">void <a href="#xmlSetDocCompressMode">xmlSetDocCompressMode</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> int mode)</pre>
+<pre class="programlisting">void <a href="#xmlSetListDoc">xmlSetListDoc</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> list, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">void <a href="#xmlSetNs">xmlSetNs</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlSetNsProp">xmlSetNsProp</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlSetProp">xmlSetProp</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">void <a href="#xmlSetTreeDoc">xmlSetTreeDoc</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSplitQName2">xmlSplitQName2</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** prefix)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSplitQName3">xmlSplitQName3</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int * len)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlStringGetNodeList">xmlStringGetNodeList</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a> (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlTextConcat">xmlTextConcat</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextMerge">xmlTextMerge</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> first, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> second)</pre>
+<pre class="programlisting">void <a href="#xmlUnlinkNode">xmlUnlinkNode</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting">int <a href="#xmlUnsetNsProp">xmlUnsetNsProp</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlUnsetProp">xmlUnsetProp</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlValidateNCName">xmlValidateNCName</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int space)</pre>
+<pre class="programlisting">int <a href="#xmlValidateNMToken">xmlValidateNMToken</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int space)</pre>
+<pre class="programlisting">int <a href="#xmlValidateName">xmlValidateName</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int space)</pre>
+<pre class="programlisting">int <a href="#xmlValidateQName">xmlValidateQName</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int space)</pre>
+<h2>Description</h2>
+<h3><a name="BASE_BUFFER_SIZE" id="BASE_BUFFER_SIZE"></a>Macro: BASE_BUFFER_SIZE</h3><pre>#define BASE_BUFFER_SIZE</pre><p>default buffer size 4000.</p>
+<h3><a name="LIBXML2_NEW_BUFFER" id="LIBXML2_NEW_BUFFER"></a>Macro: LIBXML2_NEW_BUFFER</h3><pre>#define LIBXML2_NEW_BUFFER</pre><p>Macro used to express that the API use the new buffers for <a href="libxml-tree.html#xmlParserInputBuffer">xmlParserInputBuffer</a> and xmlOutputBuffer. The change was introduced in 2.9.0.</p>
+<h3><a name="XML_GET_CONTENT" id="XML_GET_CONTENT"></a>Macro: XML_GET_CONTENT</h3><pre>#define XML_GET_CONTENT</pre><p>Macro to extract the content pointer of a node.</p>
+<h3><a name="XML_GET_LINE" id="XML_GET_LINE"></a>Macro: XML_GET_LINE</h3><pre>#define XML_GET_LINE</pre><p>Macro to extract the line number of an element node.</p>
+<h3><a name="XML_LOCAL_NAMESPACE" id="XML_LOCAL_NAMESPACE"></a>Macro: XML_LOCAL_NAMESPACE</h3><pre>#define XML_LOCAL_NAMESPACE</pre><p>A namespace declaration node.</p>
+<h3><a name="XML_XML_ID" id="XML_XML_ID"></a>Macro: XML_XML_ID</h3><pre>#define XML_XML_ID</pre><p>This is the name for the special xml:id <a href="libxml-SAX.html#attribute">attribute</a></p>
+<h3><a name="XML_XML_NAMESPACE" id="XML_XML_NAMESPACE"></a>Macro: XML_XML_NAMESPACE</h3><pre>#define XML_XML_NAMESPACE</pre><p>This is the namespace for the special xml: prefix predefined in the XML Namespace specification.</p>
+<h3><a name="xmlChildrenNode" id="xmlChildrenNode"></a>Macro: xmlChildrenNode</h3><pre>#define xmlChildrenNode</pre><p>Macro for compatibility naming layer with libxml1. Maps to "children."</p>
+<h3><a name="xmlRootNode" id="xmlRootNode"></a>Macro: xmlRootNode</h3><pre>#define xmlRootNode</pre><p>Macro for compatibility naming layer with libxml1. Maps to "children".</p>
+<h3><a name="xmlAttr" id="xmlAttr">Structure xmlAttr</a></h3><pre class="programlisting">Structure xmlAttr<br />struct _xmlAttr {
+ void * _private : application data
+ <a href="libxml-tree.html#xmlElementType">xmlElementType</a> type : XML_ATTRIBUTE_NODE, must be second !
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : the name of the property
+ struct _xmlNode * children : the value of the property
+ struct _xmlNode * last : NULL
+ struct _xmlNode * parent : child-&gt;parent link
+ struct _xmlAttr * next : next sibling link
+ struct _xmlAttr * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document
+ <a href="libxml-tree.html#xmlNs">xmlNs</a> * ns : pointer to the associated namespace
+ <a href="libxml-tree.html#xmlAttributeType">xmlAttributeType</a> atype : the <a href="libxml-SAX.html#attribute">attribute</a> type if validating
+ void * psvi : for type/PSVI informations
+}</pre><h3><a name="xmlAttribute" id="xmlAttribute">Structure xmlAttribute</a></h3><pre class="programlisting">Structure xmlAttribute<br />struct _xmlAttribute {
+ void * _private : application data
+ <a href="libxml-tree.html#xmlElementType">xmlElementType</a> type : XML_ATTRIBUTE_DECL, must be second !
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : Attribute name
+ struct _xmlNode * children : NULL
+ struct _xmlNode * last : NULL
+ struct _xmlDtd * parent : -&gt; DTD
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document
+ struct _xmlAttribute * nexth : next in hash table
+ <a href="libxml-tree.html#xmlAttributeType">xmlAttributeType</a> atype : The <a href="libxml-SAX.html#attribute">attribute</a> type
+ <a href="libxml-tree.html#xmlAttributeDefault">xmlAttributeDefault</a> def : the default
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * defaultValue : or the default value
+ <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree : or the enumeration tree if any
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix : the namespace prefix if any
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem : Element holding the <a href="libxml-SAX.html#attribute">attribute</a>
+}</pre><h3>Enum <a name="xmlAttributeDefault" id="xmlAttributeDefault">xmlAttributeDefault</a></h3><pre class="programlisting">Enum xmlAttributeDefault {
+ <a name="XML_ATTRIBUTE_NONE" id="XML_ATTRIBUTE_NONE">XML_ATTRIBUTE_NONE</a> = 1
+ <a name="XML_ATTRIBUTE_REQUIRED" id="XML_ATTRIBUTE_REQUIRED">XML_ATTRIBUTE_REQUIRED</a> = 2
+ <a name="XML_ATTRIBUTE_IMPLIED" id="XML_ATTRIBUTE_IMPLIED">XML_ATTRIBUTE_IMPLIED</a> = 3
+ <a name="XML_ATTRIBUTE_FIXED" id="XML_ATTRIBUTE_FIXED">XML_ATTRIBUTE_FIXED</a> = 4
+}
+</pre><h3>Enum <a name="xmlAttributeType" id="xmlAttributeType">xmlAttributeType</a></h3><pre class="programlisting">Enum xmlAttributeType {
+ <a name="XML_ATTRIBUTE_CDATA" id="XML_ATTRIBUTE_CDATA">XML_ATTRIBUTE_CDATA</a> = 1
+ <a name="XML_ATTRIBUTE_ID" id="XML_ATTRIBUTE_ID">XML_ATTRIBUTE_ID</a> = 2
+ <a name="XML_ATTRIBUTE_IDREF" id="XML_ATTRIBUTE_IDREF">XML_ATTRIBUTE_IDREF</a> = 3
+ <a name="XML_ATTRIBUTE_IDREFS" id="XML_ATTRIBUTE_IDREFS">XML_ATTRIBUTE_IDREFS</a> = 4
+ <a name="XML_ATTRIBUTE_ENTITY" id="XML_ATTRIBUTE_ENTITY">XML_ATTRIBUTE_ENTITY</a> = 5
+ <a name="XML_ATTRIBUTE_ENTITIES" id="XML_ATTRIBUTE_ENTITIES">XML_ATTRIBUTE_ENTITIES</a> = 6
+ <a name="XML_ATTRIBUTE_NMTOKEN" id="XML_ATTRIBUTE_NMTOKEN">XML_ATTRIBUTE_NMTOKEN</a> = 7
+ <a name="XML_ATTRIBUTE_NMTOKENS" id="XML_ATTRIBUTE_NMTOKENS">XML_ATTRIBUTE_NMTOKENS</a> = 8
+ <a name="XML_ATTRIBUTE_ENUMERATION" id="XML_ATTRIBUTE_ENUMERATION">XML_ATTRIBUTE_ENUMERATION</a> = 9
+ <a name="XML_ATTRIBUTE_NOTATION" id="XML_ATTRIBUTE_NOTATION">XML_ATTRIBUTE_NOTATION</a> = 10
+}
+</pre><h3><a name="xmlBuf" id="xmlBuf">Structure xmlBuf</a></h3><pre class="programlisting">Structure xmlBuf<br />struct _xmlBuf {
+The content of this structure is not made public by the API.
+}</pre>
+ A pointer to a buffer structure, the actual structure internals are not public
+ <h3><a name="xmlBuffer" id="xmlBuffer">Structure xmlBuffer</a></h3><pre class="programlisting">Structure xmlBuffer<br />struct _xmlBuffer {
+ <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content : The buffer content UTF8
+ unsigned int use : The buffer size used
+ unsigned int size : The buffer size
+ <a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> alloc : The realloc method
+ <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * contentIO : in IO mode we may have a different base
+}</pre><h3>Enum <a name="xmlBufferAllocationScheme" id="xmlBufferAllocationScheme">xmlBufferAllocationScheme</a></h3><pre class="programlisting">Enum xmlBufferAllocationScheme {
+ <a name="XML_BUFFER_ALLOC_DOUBLEIT" id="XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a> = 1 : double each time one need to grow
+ <a name="XML_BUFFER_ALLOC_EXACT" id="XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a> = 2 : grow only to the minimal size
+ <a name="XML_BUFFER_ALLOC_IMMUTABLE" id="XML_BUFFER_ALLOC_IMMUTABLE">XML_BUFFER_ALLOC_IMMUTABLE</a> = 3 : immutable buffer
+ <a name="XML_BUFFER_ALLOC_IO" id="XML_BUFFER_ALLOC_IO">XML_BUFFER_ALLOC_IO</a> = 4 : special allocation scheme used for I/O
+ <a name="XML_BUFFER_ALLOC_HYBRID" id="XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a> = 5 : exact up to a threshold, and doubleit thereafter
+ <a name="XML_BUFFER_ALLOC_BOUNDED" id="XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a> = 6 : limit the upper size of the buffer
+}
+</pre><h3><a name="xmlDOMWrapCtxt" id="xmlDOMWrapCtxt">Structure xmlDOMWrapCtxt</a></h3><pre class="programlisting">Structure xmlDOMWrapCtxt<br />struct _xmlDOMWrapCtxt {
+ void * _private : * The type of this context, just in case
+ int type : * Internal namespace map used for variou
+ void * namespaceMap : * Use this one to acquire an <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> in
+ <a href="libxml-tree.html#xmlDOMWrapAcquireNsFunction">xmlDOMWrapAcquireNsFunction</a> getNsForNodeFunc
+}</pre><h3><a name="xmlDoc" id="xmlDoc">Structure xmlDoc</a></h3><pre class="programlisting">Structure xmlDoc<br />struct _xmlDoc {
+ void * _private : application data
+ <a href="libxml-tree.html#xmlElementType">xmlElementType</a> type : XML_DOCUMENT_NODE, must be second !
+ char * name : name/filename/URI of the document
+ struct _xmlNode * children : the document tree
+ struct _xmlNode * last : last child link
+ struct _xmlNode * parent : child-&gt;parent link
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : autoreference to itself End of common p
+ int compression : level of zlib compression
+ int standalone : standalone document (no external refs)
+ struct _xmlDtd * intSubset : the document internal subset
+ struct _xmlDtd * extSubset : the document external subset
+ struct _xmlNs * oldNs : Global namespace, the old way
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * version : the XML version string
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * encoding : external initial encoding, if any
+ void * ids : Hash table for ID attributes if any
+ void * refs : Hash table for IDREFs attributes if any
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URL : The URI for that document
+ int charset : Internal flag for charset handling, act
+ struct _xmlDict * dict : dict used to allocate names or NULL
+ void * psvi : for type/PSVI informations
+ int parseFlags : set of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a> used to parse th
+ int properties : set of <a href="libxml-tree.html#xmlDocProperties">xmlDocProperties</a> for this docume
+}</pre><h3>Enum <a name="xmlDocProperties" id="xmlDocProperties">xmlDocProperties</a></h3><pre class="programlisting">Enum xmlDocProperties {
+ <a name="XML_DOC_WELLFORMED" id="XML_DOC_WELLFORMED">XML_DOC_WELLFORMED</a> = 1 : document is XML well formed
+ <a name="XML_DOC_NSVALID" id="XML_DOC_NSVALID">XML_DOC_NSVALID</a> = 2 : document is Namespace valid
+ <a name="XML_DOC_OLD10" id="XML_DOC_OLD10">XML_DOC_OLD10</a> = 4 : parsed with old XML-1.0 parser
+ <a name="XML_DOC_DTDVALID" id="XML_DOC_DTDVALID">XML_DOC_DTDVALID</a> = 8 : DTD validation was successful
+ <a name="XML_DOC_XINCLUDE" id="XML_DOC_XINCLUDE">XML_DOC_XINCLUDE</a> = 16 : XInclude substitution was done
+ <a name="XML_DOC_USERBUILT" id="XML_DOC_USERBUILT">XML_DOC_USERBUILT</a> = 32 : Document was built using the API and not by parsing an instance
+ <a name="XML_DOC_INTERNAL" id="XML_DOC_INTERNAL">XML_DOC_INTERNAL</a> = 64 : built for internal processing
+ <a name="XML_DOC_HTML" id="XML_DOC_HTML">XML_DOC_HTML</a> = 128 : parsed or built HTML document
+}
+</pre><h3><a name="xmlDtd" id="xmlDtd">Structure xmlDtd</a></h3><pre class="programlisting">Structure xmlDtd<br />struct _xmlDtd {
+ void * _private : application data
+ <a href="libxml-tree.html#xmlElementType">xmlElementType</a> type : XML_DTD_NODE, must be second !
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : Name of the DTD
+ struct _xmlNode * children : the value of the property link
+ struct _xmlNode * last : last child link
+ struct _xmlDoc * parent : child-&gt;parent link
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document End of common p
+ void * notations : Hash table for notations if any
+ void * elements : Hash table for elements if any
+ void * attributes : Hash table for attributes if any
+ void * entities : Hash table for entities if any
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID : External identifier for PUBLIC DTD
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID : URI for a SYSTEM or PUBLIC DTD
+ void * pentities : Hash table for param entities if any
+}</pre><h3><a name="xmlElement" id="xmlElement">Structure xmlElement</a></h3><pre class="programlisting">Structure xmlElement<br />struct _xmlElement {
+ void * _private : application data
+ <a href="libxml-tree.html#xmlElementType">xmlElementType</a> type : XML_ELEMENT_DECL, must be second !
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : Element name
+ struct _xmlNode * children : NULL
+ struct _xmlNode * last : NULL
+ struct _xmlDtd * parent : -&gt; DTD
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document
+ <a href="libxml-tree.html#xmlElementTypeVal">xmlElementTypeVal</a> etype : The type
+ <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content : the allowed element content
+ <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> attributes : List of the declared attributes
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix : the namespace prefix if any
+ <a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> contModel : the validating regexp
+ void * contModel
+}</pre><h3><a name="xmlElementContent" id="xmlElementContent">Structure xmlElementContent</a></h3><pre class="programlisting">Structure xmlElementContent<br />struct _xmlElementContent {
+ <a href="libxml-tree.html#xmlElementContentType">xmlElementContentType</a> type : PCDATA, ELEMENT, SEQ or OR
+ <a href="libxml-tree.html#xmlElementContentOccur">xmlElementContentOccur</a> ocur : ONCE, OPT, MULT or PLUS
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : Element name
+ struct _xmlElementContent * c1 : first child
+ struct _xmlElementContent * c2 : second child
+ struct _xmlElementContent * parent : parent
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix : Namespace prefix
+}</pre><h3>Enum <a name="xmlElementContentOccur" id="xmlElementContentOccur">xmlElementContentOccur</a></h3><pre class="programlisting">Enum xmlElementContentOccur {
+ <a name="XML_ELEMENT_CONTENT_ONCE" id="XML_ELEMENT_CONTENT_ONCE">XML_ELEMENT_CONTENT_ONCE</a> = 1
+ <a name="XML_ELEMENT_CONTENT_OPT" id="XML_ELEMENT_CONTENT_OPT">XML_ELEMENT_CONTENT_OPT</a> = 2
+ <a name="XML_ELEMENT_CONTENT_MULT" id="XML_ELEMENT_CONTENT_MULT">XML_ELEMENT_CONTENT_MULT</a> = 3
+ <a name="XML_ELEMENT_CONTENT_PLUS" id="XML_ELEMENT_CONTENT_PLUS">XML_ELEMENT_CONTENT_PLUS</a> = 4
+}
+</pre><h3>Enum <a name="xmlElementContentType" id="xmlElementContentType">xmlElementContentType</a></h3><pre class="programlisting">Enum xmlElementContentType {
+ <a name="XML_ELEMENT_CONTENT_PCDATA" id="XML_ELEMENT_CONTENT_PCDATA">XML_ELEMENT_CONTENT_PCDATA</a> = 1
+ <a name="XML_ELEMENT_CONTENT_ELEMENT" id="XML_ELEMENT_CONTENT_ELEMENT">XML_ELEMENT_CONTENT_ELEMENT</a> = 2
+ <a name="XML_ELEMENT_CONTENT_SEQ" id="XML_ELEMENT_CONTENT_SEQ">XML_ELEMENT_CONTENT_SEQ</a> = 3
+ <a name="XML_ELEMENT_CONTENT_OR" id="XML_ELEMENT_CONTENT_OR">XML_ELEMENT_CONTENT_OR</a> = 4
+}
+</pre><h3>Enum <a name="xmlElementType" id="xmlElementType">xmlElementType</a></h3><pre class="programlisting">Enum xmlElementType {
+ <a name="XML_ELEMENT_NODE" id="XML_ELEMENT_NODE">XML_ELEMENT_NODE</a> = 1
+ <a name="XML_ATTRIBUTE_NODE" id="XML_ATTRIBUTE_NODE">XML_ATTRIBUTE_NODE</a> = 2
+ <a name="XML_TEXT_NODE" id="XML_TEXT_NODE">XML_TEXT_NODE</a> = 3
+ <a name="XML_CDATA_SECTION_NODE" id="XML_CDATA_SECTION_NODE">XML_CDATA_SECTION_NODE</a> = 4
+ <a name="XML_ENTITY_REF_NODE" id="XML_ENTITY_REF_NODE">XML_ENTITY_REF_NODE</a> = 5
+ <a name="XML_ENTITY_NODE" id="XML_ENTITY_NODE">XML_ENTITY_NODE</a> = 6
+ <a name="XML_PI_NODE" id="XML_PI_NODE">XML_PI_NODE</a> = 7
+ <a name="XML_COMMENT_NODE" id="XML_COMMENT_NODE">XML_COMMENT_NODE</a> = 8
+ <a name="XML_DOCUMENT_NODE" id="XML_DOCUMENT_NODE">XML_DOCUMENT_NODE</a> = 9
+ <a name="XML_DOCUMENT_TYPE_NODE" id="XML_DOCUMENT_TYPE_NODE">XML_DOCUMENT_TYPE_NODE</a> = 10
+ <a name="XML_DOCUMENT_FRAG_NODE" id="XML_DOCUMENT_FRAG_NODE">XML_DOCUMENT_FRAG_NODE</a> = 11
+ <a name="XML_NOTATION_NODE" id="XML_NOTATION_NODE">XML_NOTATION_NODE</a> = 12
+ <a name="XML_HTML_DOCUMENT_NODE" id="XML_HTML_DOCUMENT_NODE">XML_HTML_DOCUMENT_NODE</a> = 13
+ <a name="XML_DTD_NODE" id="XML_DTD_NODE">XML_DTD_NODE</a> = 14
+ <a name="XML_ELEMENT_DECL" id="XML_ELEMENT_DECL">XML_ELEMENT_DECL</a> = 15
+ <a name="XML_ATTRIBUTE_DECL" id="XML_ATTRIBUTE_DECL">XML_ATTRIBUTE_DECL</a> = 16
+ <a name="XML_ENTITY_DECL" id="XML_ENTITY_DECL">XML_ENTITY_DECL</a> = 17
+ <a name="XML_NAMESPACE_DECL" id="XML_NAMESPACE_DECL">XML_NAMESPACE_DECL</a> = 18
+ <a name="XML_XINCLUDE_START" id="XML_XINCLUDE_START">XML_XINCLUDE_START</a> = 19
+ <a name="XML_XINCLUDE_END" id="XML_XINCLUDE_END">XML_XINCLUDE_END</a> = 20
+ <a name="XML_DOCB_DOCUMENT_NODE" id="XML_DOCB_DOCUMENT_NODE">XML_DOCB_DOCUMENT_NODE</a> = 21
+}
+</pre><h3>Enum <a name="xmlElementTypeVal" id="xmlElementTypeVal">xmlElementTypeVal</a></h3><pre class="programlisting">Enum xmlElementTypeVal {
+ <a name="XML_ELEMENT_TYPE_UNDEFINED" id="XML_ELEMENT_TYPE_UNDEFINED">XML_ELEMENT_TYPE_UNDEFINED</a> = 0
+ <a name="XML_ELEMENT_TYPE_EMPTY" id="XML_ELEMENT_TYPE_EMPTY">XML_ELEMENT_TYPE_EMPTY</a> = 1
+ <a name="XML_ELEMENT_TYPE_ANY" id="XML_ELEMENT_TYPE_ANY">XML_ELEMENT_TYPE_ANY</a> = 2
+ <a name="XML_ELEMENT_TYPE_MIXED" id="XML_ELEMENT_TYPE_MIXED">XML_ELEMENT_TYPE_MIXED</a> = 3
+ <a name="XML_ELEMENT_TYPE_ELEMENT" id="XML_ELEMENT_TYPE_ELEMENT">XML_ELEMENT_TYPE_ELEMENT</a> = 4
+}
+</pre><h3><a name="xmlEntity" id="xmlEntity">Structure xmlEntity</a></h3><pre class="programlisting">Structure xmlEntity<br />struct _xmlEntity {
+ void * _private : application data
+ <a href="libxml-tree.html#xmlElementType">xmlElementType</a> type : XML_ENTITY_DECL, must be second !
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : Entity name
+ struct _xmlNode * children : First child link
+ struct _xmlNode * last : Last child link
+ struct _xmlDtd * parent : -&gt; DTD
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document
+ <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * orig : content without ref substitution
+ <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content : content or ndata if unparsed
+ int length : the content length
+ <a href="libxml-entities.html#xmlEntityType">xmlEntityType</a> etype : The entity type
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID : External identifier for PUBLIC
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID : URI for a SYSTEM or PUBLIC Entity
+ struct _xmlEntity * nexte : unused
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI : the full URI as computed
+ int owner : does the entity own the childrens
+ int checked : was the entity content checked this is
+}</pre><h3><a name="xmlEnumeration" id="xmlEnumeration">Structure xmlEnumeration</a></h3><pre class="programlisting">Structure xmlEnumeration<br />struct _xmlEnumeration {
+ struct _xmlEnumeration * next : next one
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : Enumeration name
+}</pre><h3><a name="xmlID" id="xmlID">Structure xmlID</a></h3><pre class="programlisting">Structure xmlID<br />struct _xmlID {
+ struct _xmlID * next : next ID
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value : The ID name
+ <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr : The <a href="libxml-SAX.html#attribute">attribute</a> holding it
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : The <a href="libxml-SAX.html#attribute">attribute</a> if attr is not available
+ int lineno : The line number if attr is not availabl
+ struct _xmlDoc * doc : The document holding the ID
+}</pre><h3><a name="xmlNode" id="xmlNode">Structure xmlNode</a></h3><pre class="programlisting">Structure xmlNode<br />struct _xmlNode {
+ void * _private : application data
+ <a href="libxml-tree.html#xmlElementType">xmlElementType</a> type : type number, must be second !
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : the name of the node, or the entity
+ struct _xmlNode * children : parent-&gt;childs link
+ struct _xmlNode * last : last child link
+ struct _xmlNode * parent : child-&gt;parent link
+ struct _xmlNode * next : next sibling link
+ struct _xmlNode * prev : previous sibling link
+ struct _xmlDoc * doc : the containing document End of common p
+ <a href="libxml-tree.html#xmlNs">xmlNs</a> * ns : pointer to the associated namespace
+ <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content : the content
+ struct _xmlAttr * properties : properties list
+ <a href="libxml-tree.html#xmlNs">xmlNs</a> * nsDef : namespace definitions on this node
+ void * psvi : for type/PSVI informations
+ unsigned short line : line number
+ unsigned short extra : extra data for XPath/XSLT
+}</pre><h3><a name="xmlNotation" id="xmlNotation">Structure xmlNotation</a></h3><pre class="programlisting">Structure xmlNotation<br />struct _xmlNotation {
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : Notation name
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * PublicID : Public identifier, if any
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID : System identifier, if any
+}</pre><h3><a name="xmlNs" id="xmlNs">Structure xmlNs</a></h3><pre class="programlisting">Structure xmlNs<br />struct _xmlNs {
+ struct _xmlNs * next : next Ns link for this node
+ <a href="libxml-tree.html#xmlNsType">xmlNsType</a> type : global or local
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href : URL for the namespace
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix : prefix for the namespace
+ void * _private : application data
+ struct _xmlDoc * context : normally an <a href="libxml-tree.html#xmlDoc">xmlDoc</a>
+}</pre><h3><a name="xmlOutputBuffer" id="xmlOutputBuffer">Structure xmlOutputBuffer</a></h3><pre class="programlisting">Structure xmlOutputBuffer<br />struct _xmlOutputBuffer {
+ void * context
+ <a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> writecallback
+ <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> closecallback
+ <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder : I18N conversions to UTF-8
+ <a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buffer : Local buffer encoded in UTF-8 or ISOLat
+ <a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> conv : if encoder != NULL buffer for output
+ int written : total number of byte written
+ int error
+}</pre><h3><a name="xmlParserCtxt" id="xmlParserCtxt">Structure xmlParserCtxt</a></h3><pre class="programlisting">Structure xmlParserCtxt<br />struct _xmlParserCtxt {
+ struct _xmlSAXHandler * sax : The SAX handler
+ void * userData : For SAX interface only, used by DOM bui
+ <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> myDoc : the document being built
+ int wellFormed : is the document well formed
+ int replaceEntities : shall we replace entities ?
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * version : the XML version string
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * encoding : the declared encoding, if any
+ int standalone : standalone document
+ int html : an HTML(1)/Docbook(2) document * 3 is H
+ <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input : Current input stream
+ int inputNr : Number of current input streams
+ int inputMax : Max number of input streams
+ <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> * inputTab : stack of inputs Node analysis stack onl
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node : Current parsed Node
+ int nodeNr : Depth of the parsing stack
+ int nodeMax : Max depth of the parsing stack
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * nodeTab : array of nodes
+ int record_info : Whether node info should be kept
+ <a href="libxml-parser.html#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a> node_seq : info about each node parsed
+ int errNo : error code
+ int hasExternalSubset : <a href="libxml-SAX.html#reference">reference</a> and external subset
+ int hasPErefs : the internal subset has PE refs
+ int external : are we parsing an external entity
+ int valid : is the document valid
+ int validate : shall we try to validate ?
+ <a href="libxml-valid.html#xmlValidCtxt">xmlValidCtxt</a> vctxt : The validity context
+ <a href="libxml-parser.html#xmlParserInputState">xmlParserInputState</a> instate : current type of input
+ int token : next char look-ahead
+ char * directory : the data directory Node name stack
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : Current parsed Node
+ int nameNr : Depth of the parsing stack
+ int nameMax : Max depth of the parsing stack
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * * nameTab : array of nodes
+ long nbChars : number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> processed
+ long checkIndex : used by progressive parsing lookup
+ int keepBlanks : ugly but ...
+ int disableSAX : SAX callbacks are disabled
+ int inSubset : Parsing is in int 1/ext 2 subset
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * intSubName : name of subset
+ <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * extSubURI : URI of external subset
+ <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * extSubSystem : SYSTEM ID of external subset xml:space
+ int * space : Should the parser preserve spaces
+ int spaceNr : Depth of the parsing stack
+ int spaceMax : Max depth of the parsing stack
+ int * spaceTab : array of space infos
+ int depth : to prevent entity substitution loops
+ <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> entity : used to check entities boundaries
+ int charset : encoding of the in-memory content actua
+ int nodelen : Those two fields are there to
+ int nodemem : Speed up large node parsing
+ int pedantic : signal pedantic warnings
+ void * _private : For user data, libxml won't touch it
+ int loadsubset : should the external subset be loaded
+ int linenumbers : set line number in element content
+ void * catalogs : document's own catalog
+ int recovery : run in recovery mode
+ int progressive : is this a progressive parsing
+ <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionary for the parser
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * * atts : array for the attributes callbacks
+ int maxatts : the size of the array
+ int docdict : * pre-interned strings *
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str_xml
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str_xmlns
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str_xml_ns : * Everything below is used only by the n
+ int sax2 : operating in the new SAX mode
+ int nsNr : the number of inherited namespaces
+ int nsMax : the size of the arrays
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * * nsTab : the array of prefix/namespace name
+ int * attallocs : which <a href="libxml-SAX.html#attribute">attribute</a> were allocated
+ void * * pushTab : array of data for push
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> attsDefault : defaulted attributes if any
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> attsSpecial : non-CDATA attributes if any
+ int nsWellFormed : is the document XML Namespace okay
+ int options : * Those fields are needed only for strea
+ int dictNames : Use dictionary names for the tree
+ int freeElemsNr : number of freed element nodes
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> freeElems : List of freed element nodes
+ int freeAttrsNr : number of freed attributes nodes
+ <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> freeAttrs : * the complete error informations for th
+ <a href="libxml-xmlerror.html#xmlError">xmlError</a> lastError
+ <a href="libxml-parser.html#xmlParserMode">xmlParserMode</a> parseMode : the parser mode
+ unsigned long nbentities : number of entities references
+ unsigned long sizeentities : size of parsed entities for use by HTML
+ <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * nodeInfo : Current NodeInfo
+ int nodeInfoNr : Depth of the parsing stack
+ int nodeInfoMax : Max depth of the parsing stack
+ <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * nodeInfoTab : array of nodeInfos
+ int input_id : we need to label inputs
+ unsigned long sizeentcopy : volume of entity copy
+}</pre><h3><a name="xmlParserInput" id="xmlParserInput">Structure xmlParserInput</a></h3><pre class="programlisting">Structure xmlParserInput<br />struct _xmlParserInput {
+ <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> buf : UTF-8 encoded buffer
+ const char * filename : The file analyzed, if any
+ const char * directory : the directory/base of the file
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * base : Base of the array to parse
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur : Current char being parsed
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * end : end of the array to parse
+ int length : length if known
+ int line : Current line
+ int col : * NOTE: consumed is only tested for equa
+ unsigned long consumed : How many xmlChars already consumed
+ <a href="libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a> free : function to deallocate the base
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * encoding : the encoding string for entity
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * version : the version string for entity
+ int standalone : Was that entity marked standalone
+ int id : an unique identifier for the entity
+}</pre><h3><a name="xmlParserInputBuffer" id="xmlParserInputBuffer">Structure xmlParserInputBuffer</a></h3><pre class="programlisting">Structure xmlParserInputBuffer<br />struct _xmlParserInputBuffer {
+ void * context
+ <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> readcallback
+ <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> closecallback
+ <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder : I18N conversions to UTF-8
+ <a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buffer : Local buffer encoded in UTF-8
+ <a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> raw : if encoder != NULL buffer for raw input
+ int compressed : -1=unknown, 0=not compressed, 1=compres
+ int error
+ unsigned long rawconsumed : amount consumed from raw
+}</pre><h3><a name="xmlRef" id="xmlRef">Structure xmlRef</a></h3><pre class="programlisting">Structure xmlRef<br />struct _xmlRef {
+ struct _xmlRef * next : next Ref
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value : The Ref name
+ <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr : The <a href="libxml-SAX.html#attribute">attribute</a> holding it
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : The <a href="libxml-SAX.html#attribute">attribute</a> if attr is not available
+ int lineno : The line number if attr is not availabl
+}</pre><h3><a name="xmlSAXHandler" id="xmlSAXHandler">Structure xmlSAXHandler</a></h3><pre class="programlisting">Structure xmlSAXHandler<br />struct _xmlSAXHandler {
+ <a href="libxml-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a> internalSubset
+ <a href="libxml-parser.html#isStandaloneSAXFunc">isStandaloneSAXFunc</a> isStandalone
+ <a href="libxml-parser.html#hasInternalSubsetSAXFunc">hasInternalSubsetSAXFunc</a> hasInternalSubset
+ <a href="libxml-parser.html#hasExternalSubsetSAXFunc">hasExternalSubsetSAXFunc</a> hasExternalSubset
+ <a href="libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a> resolveEntity
+ <a href="libxml-parser.html#getEntitySAXFunc">getEntitySAXFunc</a> getEntity
+ <a href="libxml-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a> entityDecl
+ <a href="libxml-parser.html#notationDeclSAXFunc">notationDeclSAXFunc</a> notationDecl
+ <a href="libxml-parser.html#attributeDeclSAXFunc">attributeDeclSAXFunc</a> attributeDecl
+ <a href="libxml-parser.html#elementDeclSAXFunc">elementDeclSAXFunc</a> elementDecl
+ <a href="libxml-parser.html#unparsedEntityDeclSAXFunc">unparsedEntityDeclSAXFunc</a> unparsedEntityDecl
+ <a href="libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a> setDocumentLocator
+ <a href="libxml-parser.html#startDocumentSAXFunc">startDocumentSAXFunc</a> startDocument
+ <a href="libxml-parser.html#endDocumentSAXFunc">endDocumentSAXFunc</a> endDocument
+ <a href="libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a> startElement
+ <a href="libxml-parser.html#endElementSAXFunc">endElementSAXFunc</a> endElement
+ <a href="libxml-parser.html#referenceSAXFunc">referenceSAXFunc</a> reference
+ <a href="libxml-parser.html#charactersSAXFunc">charactersSAXFunc</a> characters
+ <a href="libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a> ignorableWhitespace
+ <a href="libxml-parser.html#processingInstructionSAXFunc">processingInstructionSAXFunc</a> processingInstruction
+ <a href="libxml-parser.html#commentSAXFunc">commentSAXFunc</a> comment
+ <a href="libxml-parser.html#warningSAXFunc">warningSAXFunc</a> warning
+ <a href="libxml-parser.html#errorSAXFunc">errorSAXFunc</a> error
+ <a href="libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a> fatalError : unused error() get all the errors
+ <a href="libxml-parser.html#getParameterEntitySAXFunc">getParameterEntitySAXFunc</a> getParameterEntity
+ <a href="libxml-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a> cdataBlock
+ <a href="libxml-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a> externalSubset
+ unsigned int initialized : The following fields are extensions ava
+ void * _private
+ <a href="libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a> startElementNs
+ <a href="libxml-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a> endElementNs
+ <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror
+}</pre><h3><a name="xmlSAXLocator" id="xmlSAXLocator">Structure xmlSAXLocator</a></h3><pre class="programlisting">Structure xmlSAXLocator<br />struct _xmlSAXLocator {
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *(*getPublicId) getPublicId
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *(*getSystemId) getSystemId
+ int(*getLineNumber) getLineNumber
+ int(*getColumnNumber) getColumnNumber
+}</pre><h3><a name="xmlAddChild" id="xmlAddChild"></a>Function: xmlAddChild</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlAddChild (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Add a new node to @parent, at the end of the child (or property) list merging adjacent TEXT nodes (in which case @cur is freed) If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an <a href="libxml-SAX.html#attribute">attribute</a> with equal name, it is first destroyed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the child node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the child or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlAddChildList" id="xmlAddChildList"></a>Function: xmlAddChildList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlAddChildList (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Add a list of node at the end of the child list of the parent merging adjacent TEXT nodes (@cur may be freed)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first node in the list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last child or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlAddNextSibling" id="xmlAddNextSibling"></a>Function: xmlAddNextSibling</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlAddNextSibling (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br />
+</pre><p>Add a new node @elem as the next sibling of @cur If the new node was already inserted in a document it is first unlinked from its existing context. As a result of text merging @elem may be freed. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an <a href="libxml-SAX.html#attribute">attribute</a> with equal name, it is first destroyed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the child node</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the new node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new node or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlAddPrevSibling" id="xmlAddPrevSibling"></a>Function: xmlAddPrevSibling</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlAddPrevSibling (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br />
+</pre><p>Add a new node @elem as the previous sibling of @cur merging adjacent TEXT nodes (@elem may be freed) If the new node was already inserted in a document it is first unlinked from its existing context. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an <a href="libxml-SAX.html#attribute">attribute</a> with equal name, it is first destroyed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the child node</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the new node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new node or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlAddSibling" id="xmlAddSibling"></a>Function: xmlAddSibling</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlAddSibling (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br />
+</pre><p>Add a new element @elem to the list of siblings of @cur merging adjacent TEXT nodes (@elem may be freed) If the new element was already inserted in a document it is first unlinked from its existing context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the child node</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the new node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new element or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlAttrSerializeTxtContent" id="xmlAttrSerializeTxtContent"></a>Function: xmlAttrSerializeTxtContent</h3><pre class="programlisting">void xmlAttrSerializeTxtContent (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * string)<br />
+</pre><p>Serialize text <a href="libxml-SAX.html#attribute">attribute</a> values to an xml simple buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> node</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the text content</td></tr></tbody></table></div><h3><a name="xmlBufContent" id="xmlBufContent"></a>Function: xmlBufContent</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlBufContent (const <a href="libxml-tree.html#xmlBuf">xmlBuf</a> * buf)<br />
+</pre><p>Function to extract the content of a buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal content</td></tr></tbody></table></div><h3><a name="xmlBufEnd" id="xmlBufEnd"></a>Function: xmlBufEnd</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlBufEnd (<a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buf)<br />
+</pre><p>Function to extract the end of the content of a buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the end of the internal content or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlBufGetNodeContent" id="xmlBufGetNodeContent"></a>Function: xmlBufGetNodeContent</h3><pre class="programlisting">int xmlBufGetNodeContent (<a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)<br />
+</pre><p>Read the value of a node @cur, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buf with this value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>a buffer <a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a></td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlBufNodeDump" id="xmlBufNodeDump"></a>Function: xmlBufNodeDump</h3><pre class="programlisting">size_t xmlBufNodeDump (<a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> int level, <br /> int format)<br />
+</pre><p>Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>level</tt></i>:</span></td><td>the imbrication level for indenting</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>is formatting allowed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written to the buffer, in case of error 0 is returned or @buf stores the error</td></tr></tbody></table></div><h3><a name="xmlBufShrink" id="xmlBufShrink"></a>Function: xmlBufShrink</h3><pre class="programlisting">size_t xmlBufShrink (<a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buf, <br /> size_t len)<br />
+</pre><p>Remove the beginning of an XML buffer. NOTE that this routine behaviour differs from xmlBufferShrink() as it will return 0 on error instead of -1 due to size_t being used as the return type.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to dump</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> to remove</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte removed or 0 in case of failure</td></tr></tbody></table></div><h3><a name="xmlBufUse" id="xmlBufUse"></a>Function: xmlBufUse</h3><pre class="programlisting">size_t xmlBufUse (const <a href="libxml-tree.html#xmlBufPtr">xmlBufPtr</a> buf)<br />
+</pre><p>Function to get the length of a buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the length of data in the internal content</td></tr></tbody></table></div><h3><a name="xmlBufferAdd" id="xmlBufferAdd"></a>Function: xmlBufferAdd</h3><pre class="programlisting">int xmlBufferAdd (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int len)<br />
+</pre><p>Add a string range to an XML buffer. if len == -1, the length of str is recomputed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to dump</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the #xmlChar string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of #xmlChar to add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 successful, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlBufferAddHead" id="xmlBufferAddHead"></a>Function: xmlBufferAddHead</h3><pre class="programlisting">int xmlBufferAddHead (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int len)<br />
+</pre><p>Add a string range to the beginning of an XML buffer. if len == -1, the length of @str is recomputed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the #xmlChar string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of #xmlChar to add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 successful, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlBufferCCat" id="xmlBufferCCat"></a>Function: xmlBufferCCat</h3><pre class="programlisting">int xmlBufferCCat (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const char * str)<br />
+</pre><p>Append a zero terminated C string to an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to dump</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the C char string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 successful, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlBufferCat" id="xmlBufferCat"></a>Function: xmlBufferCat</h3><pre class="programlisting">int xmlBufferCat (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>Append a zero terminated string to an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to add to</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the #xmlChar string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 successful, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlBufferContent" id="xmlBufferContent"></a>Function: xmlBufferContent</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlBufferContent (const <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> * buf)<br />
+</pre><p>Function to extract the content of a buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal content</td></tr></tbody></table></div><h3><a name="xmlBufferCreate" id="xmlBufferCreate"></a>Function: xmlBufferCreate</h3><pre class="programlisting"><a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> xmlBufferCreate (void)<br />
+</pre><p>routine to create an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new structure.</td></tr></tbody></table></div><h3><a name="xmlBufferCreateSize" id="xmlBufferCreateSize"></a>Function: xmlBufferCreateSize</h3><pre class="programlisting"><a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> xmlBufferCreateSize (size_t size)<br />
+</pre><p>routine to create an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>initial size of buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new structure.</td></tr></tbody></table></div><h3><a name="xmlBufferCreateStatic" id="xmlBufferCreateStatic"></a>Function: xmlBufferCreateStatic</h3><pre class="programlisting"><a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> xmlBufferCreateStatic (void * mem, <br /> size_t size)<br />
+</pre><p>routine to create an XML buffer from an immutable memory area. The area won't be modified nor copied, and is expected to be present until the end of the buffer lifetime.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>the memory area</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new structure.</td></tr></tbody></table></div><h3><a name="xmlBufferDetach" id="xmlBufferDetach"></a>Function: xmlBufferDetach</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlBufferDetach (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)<br />
+</pre><p>Remove the string contained in a buffer and gie it back to the caller. The buffer is reset to an empty content. This doesn't work with immutable buffers as they can't be reset.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous string contained by the buffer.</td></tr></tbody></table></div><h3><a name="xmlBufferDump" id="xmlBufferDump"></a>Function: xmlBufferDump</h3><pre class="programlisting">int xmlBufferDump (FILE * file, <br /> <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)<br />
+</pre><p>Dumps an XML buffer to a FILE *.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file output</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to dump</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of #xmlChar written</td></tr></tbody></table></div><h3><a name="xmlBufferEmpty" id="xmlBufferEmpty"></a>Function: xmlBufferEmpty</h3><pre class="programlisting">void xmlBufferEmpty (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)<br />
+</pre><p>empty a buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr></tbody></table></div><h3><a name="xmlBufferFree" id="xmlBufferFree"></a>Function: xmlBufferFree</h3><pre class="programlisting">void xmlBufferFree (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf)<br />
+</pre><p>Frees an XML buffer. It frees both the content and the structure which encapsulate it.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to free</td></tr></tbody></table></div><h3><a name="xmlBufferGrow" id="xmlBufferGrow"></a>Function: xmlBufferGrow</h3><pre class="programlisting">int xmlBufferGrow (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> unsigned int len)<br />
+</pre><p>Grow the available space of an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the minimum free size to allocate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new available space or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlBufferLength" id="xmlBufferLength"></a>Function: xmlBufferLength</h3><pre class="programlisting">int xmlBufferLength (const <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> * buf)<br />
+</pre><p>Function to get the length of a buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the length of data in the internal content</td></tr></tbody></table></div><h3><a name="xmlBufferResize" id="xmlBufferResize"></a>Function: xmlBufferResize</h3><pre class="programlisting">int xmlBufferResize (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> unsigned int size)<br />
+</pre><p>Resize a buffer to accommodate minimum size of @size.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to resize</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the desired size</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of problems, 1 otherwise</td></tr></tbody></table></div><h3><a name="xmlBufferSetAllocationScheme" id="xmlBufferSetAllocationScheme"></a>Function: xmlBufferSetAllocationScheme</h3><pre class="programlisting">void xmlBufferSetAllocationScheme (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> scheme)<br />
+</pre><p>Sets the allocation scheme for this buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to tune</td></tr><tr><td><span class="term"><i><tt>scheme</tt></i>:</span></td><td>allocation scheme to use</td></tr></tbody></table></div><h3><a name="xmlBufferShrink" id="xmlBufferShrink"></a>Function: xmlBufferShrink</h3><pre class="programlisting">int xmlBufferShrink (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> unsigned int len)<br />
+</pre><p>Remove the beginning of an XML buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the buffer to dump</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> to remove</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of #xmlChar removed, or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlBufferWriteCHAR" id="xmlBufferWriteCHAR"></a>Function: xmlBufferWriteCHAR</h3><pre class="programlisting">void xmlBufferWriteCHAR (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * string)<br />
+</pre><p>routine which manages and grows an output buffer. This one adds xmlChars at the end of the buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the string to add</td></tr></tbody></table></div><h3><a name="xmlBufferWriteChar" id="xmlBufferWriteChar"></a>Function: xmlBufferWriteChar</h3><pre class="programlisting">void xmlBufferWriteChar (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const char * string)<br />
+</pre><p>routine which manage and grows an output buffer. This one add C chars at the end of the array.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the string to add</td></tr></tbody></table></div><h3><a name="xmlBufferWriteQuotedString" id="xmlBufferWriteQuotedString"></a>Function: xmlBufferWriteQuotedString</h3><pre class="programlisting">void xmlBufferWriteQuotedString (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * string)<br />
+</pre><p>routine which manage and grows an output buffer. This one writes a quoted or double quoted #xmlChar string, checking first if it holds quote or double-quotes internally</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the string to add</td></tr></tbody></table></div><h3><a name="xmlBuildQName" id="xmlBuildQName"></a>Function: xmlBuildQName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlBuildQName (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ncname, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * memory, <br /> int len)<br />
+</pre><p>Builds the QName @prefix:@ncname in @memory if there is enough space and prefix is not NULL nor empty, otherwise allocate a new string. If prefix is NULL or empty it returns ncname.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ncname</tt></i>:</span></td><td>the Name</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>preallocated memory</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>preallocated memory length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new string which must be freed by the caller if different from @memory and @ncname or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlChildElementCount" id="xmlChildElementCount"></a>Function: xmlChildElementCount</h3><pre class="programlisting">unsigned long xmlChildElementCount (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent)<br />
+</pre><p>Finds the current number of child nodes of that element which are element nodes. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back <a href="libxml-SAX.html#reference">reference</a> from entities content to entities references.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the count of element child or 0 if not available</td></tr></tbody></table></div><h3><a name="xmlCopyDoc" id="xmlCopyDoc"></a>Function: xmlCopyDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCopyDoc (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> int recursive)<br />
+</pre><p>Do a copy of the document info. If recursive, the content tree will be copied too as well as DTD, namespaces and entities.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>recursive</tt></i>:</span></td><td>if not zero do a recursive copy.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlDocPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyDtd" id="xmlCopyDtd"></a>Function: xmlCopyDtd</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlCopyDtd (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)<br />
+</pre><p>Do a copy of the dtd.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>the dtd</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlDtdPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNamespace" id="xmlCopyNamespace"></a>Function: xmlCopyNamespace</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> xmlCopyNamespace (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)<br />
+</pre><p>Do a copy of the namespace.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNsPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNamespaceList" id="xmlCopyNamespaceList"></a>Function: xmlCopyNamespaceList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> xmlCopyNamespaceList (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)<br />
+</pre><p>Do a copy of an namespace list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNsPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNode" id="xmlCopyNode"></a>Function: xmlCopyNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlCopyNode (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int extended)<br />
+</pre><p>Do a copy of the node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>extended</tt></i>:</span></td><td>if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNodeList" id="xmlCopyNodeList"></a>Function: xmlCopyNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlCopyNodeList (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Do a recursive copy of the node list. Use xmlDocCopyNodeList() if possible to ensure string interning.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the first node in the list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyProp" id="xmlCopyProp"></a>Function: xmlCopyProp</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlCopyProp (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br />
+</pre><p>Do a copy of the attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the element where the <a href="libxml-SAX.html#attribute">attribute</a> will be grafted</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlAttrPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyPropList" id="xmlCopyPropList"></a>Function: xmlCopyPropList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlCopyPropList (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br />
+</pre><p>Do a copy of an <a href="libxml-SAX.html#attribute">attribute</a> list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the element where the attributes will be grafted</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlAttrPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCreateIntSubset" id="xmlCreateIntSubset"></a>Function: xmlCreateIntSubset</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlCreateIntSubset (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
+</pre><p>Create the internal subset of a document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document pointer</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the DTD name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external (PUBLIC) ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the system ID</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new DTD structure</td></tr></tbody></table></div><h3><a name="xmlDOMWrapAcquireNsFunction" id="xmlDOMWrapAcquireNsFunction"></a>Function type: xmlDOMWrapAcquireNsFunction</h3><pre class="programlisting">Function type: xmlDOMWrapAcquireNsFunction
+<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> xmlDOMWrapAcquireNsFunction (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nsName, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nsPrefix)
+</pre><p>A function called to acquire namespaces (xmlNs) from the wrapper.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a DOM wrapper context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the context node (element or attribute)</td></tr><tr><td><span class="term"><i><tt>nsName</tt></i>:</span></td><td>the requested namespace name</td></tr><tr><td><span class="term"><i><tt>nsPrefix</tt></i>:</span></td><td>the requested namespace prefix</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> or NULL in case of an error.</td></tr></tbody></table></div><br />
+<h3><a name="xmlDOMWrapAdoptNode" id="xmlDOMWrapAdoptNode"></a>Function: xmlDOMWrapAdoptNode</h3><pre class="programlisting">int xmlDOMWrapAdoptNode (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> sourceDoc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> destDoc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> destParent, <br /> int options)<br />
+</pre><p>References of out-of scope ns-decls are remapped to point to @destDoc: 1) If @destParent is given, then nsDef entries on element-nodes are used 2) If *no* @destParent is given, then @destDoc-&gt;oldNs entries are used This is the case when you have an unlinked node and just want to move it to the context of If @destParent is given, it ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in <a href="libxml-SAX.html#attribute">attribute</a> values or element content. NOTE: This function was not intensively tested.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the optional context for custom processing</td></tr><tr><td><span class="term"><i><tt>sourceDoc</tt></i>:</span></td><td>the optional sourceDoc</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to start with</td></tr><tr><td><span class="term"><i><tt>destDoc</tt></i>:</span></td><td>the destination doc</td></tr><tr><td><span class="term"><i><tt>destParent</tt></i>:</span></td><td>the optional new parent of @node in @destDoc</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>option flags</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the operation succeeded, 1 if a node of unsupported type was given, 2 if a node of not yet supported type was given and -1 on API/internal errors.</td></tr></tbody></table></div><h3><a name="xmlDOMWrapCloneNode" id="xmlDOMWrapCloneNode"></a>Function: xmlDOMWrapCloneNode</h3><pre class="programlisting">int xmlDOMWrapCloneNode (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> sourceDoc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * resNode, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> destDoc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> destParent, <br /> int deep, <br /> int options)<br />
+</pre><p>References of out-of scope ns-decls are remapped to point to @destDoc: 1) If @destParent is given, then nsDef entries on element-nodes are used 2) If *no* @destParent is given, then @destDoc-&gt;oldNs entries are used. This is the case when you don't know already where the cloned branch will be added to. If @destParent is given, it ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in <a href="libxml-SAX.html#attribute">attribute</a> values or element content. TODO: 1) What to do with XInclude? Currently this returns an error for XInclude.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the optional context for custom processing</td></tr><tr><td><span class="term"><i><tt>sourceDoc</tt></i>:</span></td><td>the optional sourceDoc</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to start with</td></tr><tr><td><span class="term"><i><tt>resNode</tt></i>:</span></td><td>the clone of the given @node</td></tr><tr><td><span class="term"><i><tt>destDoc</tt></i>:</span></td><td>the destination doc</td></tr><tr><td><span class="term"><i><tt>destParent</tt></i>:</span></td><td>the optional new parent of @node in @destDoc</td></tr><tr><td><span class="term"><i><tt>deep</tt></i>:</span></td><td>descend into child if set</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>option flags</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the operation succeeded, 1 if a node of unsupported (or not yet supported) type was given, -1 on API/internal errors.</td></tr></tbody></table></div><h3><a name="xmlDOMWrapFreeCtxt" id="xmlDOMWrapFreeCtxt"></a>Function: xmlDOMWrapFreeCtxt</h3><pre class="programlisting">void xmlDOMWrapFreeCtxt (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt)<br />
+</pre><p>Frees the DOM-wrapper context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the DOM-wrapper context</td></tr></tbody></table></div><h3><a name="xmlDOMWrapNewCtxt" id="xmlDOMWrapNewCtxt"></a>Function: xmlDOMWrapNewCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> xmlDOMWrapNewCtxt (void)<br />
+</pre><p>Allocates and initializes a new DOM-wrapper context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> or NULL in case of an internal error.</td></tr></tbody></table></div><h3><a name="xmlDOMWrapReconcileNamespaces" id="xmlDOMWrapReconcileNamespaces"></a>Function: xmlDOMWrapReconcileNamespaces</h3><pre class="programlisting">int xmlDOMWrapReconcileNamespaces (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> int options)<br />
+</pre><p>Ensures that ns-references point to ns-decls hold on element-nodes. Ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in <a href="libxml-SAX.html#attribute">attribute</a> values or element content. NOTE: This function was not intensively tested.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>DOM wrapper context, unused at the moment</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element-node</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>option flags</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if succeeded, -1 otherwise and on API/internal errors.</td></tr></tbody></table></div><h3><a name="xmlDOMWrapRemoveNode" id="xmlDOMWrapRemoveNode"></a>Function: xmlDOMWrapRemoveNode</h3><pre class="programlisting">int xmlDOMWrapRemoveNode (<a href="libxml-tree.html#xmlDOMWrapCtxtPtr">xmlDOMWrapCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int options)<br />
+</pre><p>Unlinks the given node from its owner. This will substitute ns-references to node-&gt;nsDef for ns-references to doc-&gt;oldNs, thus ensuring the removed branch to be autark wrt ns-references. NOTE: This function was not intensively tested.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a DOM wrapper context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the doc</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to be removed.</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>set of options, unused at the moment</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success, 1 if the node is not supported, -1 on API and internal errors.</td></tr></tbody></table></div><h3><a name="xmlDocCopyNode" id="xmlDocCopyNode"></a>Function: xmlDocCopyNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlDocCopyNode (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> int extended)<br />
+</pre><p>Do a copy of the node to a given document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>extended</tt></i>:</span></td><td>if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlDocCopyNodeList" id="xmlDocCopyNodeList"></a>Function: xmlDocCopyNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlDocCopyNodeList (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Do a recursive copy of the node list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the target document</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the first node in the list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlDocDump" id="xmlDocDump"></a>Function: xmlDocDump</h3><pre class="programlisting">int xmlDocDump (FILE * f, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br />
+</pre><p>Dump an XML document to an open FILE.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the FILE*</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlDocDumpFormatMemory" id="xmlDocDumpFormatMemory"></a>Function: xmlDocDumpFormatMemory</h3><pre class="programlisting">void xmlDocDumpFormatMemory (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br /> int * size, <br /> int format)<br />
+</pre><p>Dump an XML document in memory and return the #xmlChar * and it's size. It's up to the caller to free the memory with xmlFree(). Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>OUT: the memory pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>OUT: the memory length</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr></tbody></table></div><h3><a name="xmlDocDumpFormatMemoryEnc" id="xmlDocDumpFormatMemoryEnc"></a>Function: xmlDocDumpFormatMemoryEnc</h3><pre class="programlisting">void xmlDocDumpFormatMemoryEnc (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> out_doc, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr, <br /> int * doc_txt_len, <br /> const char * txt_encoding, <br /> int format)<br />
+</pre><p>Dump the current DOM tree into memory using the character encoding specified by the caller. Note it is up to the caller of this function to free the allocated memory with xmlFree(). Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out_doc</tt></i>:</span></td><td>Document to generate XML text from</td></tr><tr><td><span class="term"><i><tt>doc_txt_ptr</tt></i>:</span></td><td>Memory pointer for allocated XML text</td></tr><tr><td><span class="term"><i><tt>doc_txt_len</tt></i>:</span></td><td>Length of the generated XML text</td></tr><tr><td><span class="term"><i><tt>txt_encoding</tt></i>:</span></td><td>Character encoding to use when generating XML text</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr></tbody></table></div><h3><a name="xmlDocDumpMemory" id="xmlDocDumpMemory"></a>Function: xmlDocDumpMemory</h3><pre class="programlisting">void xmlDocDumpMemory (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br /> int * size)<br />
+</pre><p>Dump an XML document in memory and return the #xmlChar * and it's size in bytes. It's up to the caller to free the memory with xmlFree(). The resulting byte array is zero terminated, though the last 0 is not included in the returned size.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>OUT: the memory pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>OUT: the memory length</td></tr></tbody></table></div><h3><a name="xmlDocDumpMemoryEnc" id="xmlDocDumpMemoryEnc"></a>Function: xmlDocDumpMemoryEnc</h3><pre class="programlisting">void xmlDocDumpMemoryEnc (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> out_doc, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr, <br /> int * doc_txt_len, <br /> const char * txt_encoding)<br />
+</pre><p>Dump the current DOM tree into memory using the character encoding specified by the caller. Note it is up to the caller of this function to free the allocated memory with xmlFree().</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out_doc</tt></i>:</span></td><td>Document to generate XML text from</td></tr><tr><td><span class="term"><i><tt>doc_txt_ptr</tt></i>:</span></td><td>Memory pointer for allocated XML text</td></tr><tr><td><span class="term"><i><tt>doc_txt_len</tt></i>:</span></td><td>Length of the generated XML text</td></tr><tr><td><span class="term"><i><tt>txt_encoding</tt></i>:</span></td><td>Character encoding to use when generating XML text</td></tr></tbody></table></div><h3><a name="xmlDocFormatDump" id="xmlDocFormatDump"></a>Function: xmlDocFormatDump</h3><pre class="programlisting">int xmlDocFormatDump (FILE * f, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> int format)<br />
+</pre><p>Dump an XML document to an open FILE.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the FILE*</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure. Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</td></tr></tbody></table></div><h3><a name="xmlDocGetRootElement" id="xmlDocGetRootElement"></a>Function: xmlDocGetRootElement</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlDocGetRootElement (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc)<br />
+</pre><p>Get the root element of the document (doc-&gt;children is a list containing possibly comments, PIs, etc ...).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the #xmlNodePtr for the root or NULL</td></tr></tbody></table></div><h3><a name="xmlDocSetRootElement" id="xmlDocSetRootElement"></a>Function: xmlDocSetRootElement</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlDocSetRootElement (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> root)<br />
+</pre><p>Set the root element of the document (doc-&gt;children is a list containing possibly comments, PIs, etc ...).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>root</tt></i>:</span></td><td>the new document root element, if root is NULL no action is taken, to remove a node from a document use xmlUnlinkNode(root) instead.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the old root element if any was found, NULL if root was NULL</td></tr></tbody></table></div><h3><a name="xmlElemDump" id="xmlElemDump"></a>Function: xmlElemDump</h3><pre class="programlisting">void xmlElemDump (FILE * f, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Dump an XML/HTML node, recursive behaviour, children are printed too.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr></tbody></table></div><h3><a name="xmlFirstElementChild" id="xmlFirstElementChild"></a>Function: xmlFirstElementChild</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlFirstElementChild (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent)<br />
+</pre><p>Finds the first child node of that element which is a Element node Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back <a href="libxml-SAX.html#reference">reference</a> from entities content to entities references.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the first element child or NULL if not available</td></tr></tbody></table></div><h3><a name="xmlFreeDoc" id="xmlFreeDoc"></a>Function: xmlFreeDoc</h3><pre class="programlisting">void xmlFreeDoc (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br />
+</pre><p>Free up all the structures used by a document, tree included.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>pointer to the document</td></tr></tbody></table></div><h3><a name="xmlFreeDtd" id="xmlFreeDtd"></a>Function: xmlFreeDtd</h3><pre class="programlisting">void xmlFreeDtd (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> cur)<br />
+</pre><p>Free a DTD structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the DTD structure to free up</td></tr></tbody></table></div><h3><a name="xmlFreeNode" id="xmlFreeNode"></a>Function: xmlFreeNode</h3><pre class="programlisting">void xmlFreeNode (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Free a node, this is a recursive behaviour, all the children are freed too. This doesn't unlink the child from the list, use xmlUnlinkNode() first.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node</td></tr></tbody></table></div><h3><a name="xmlFreeNodeList" id="xmlFreeNodeList"></a>Function: xmlFreeNodeList</h3><pre class="programlisting">void xmlFreeNodeList (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Free a node and all its siblings, this is a recursive behaviour, all the children are freed too.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first node in the list</td></tr></tbody></table></div><h3><a name="xmlFreeNs" id="xmlFreeNs"></a>Function: xmlFreeNs</h3><pre class="programlisting">void xmlFreeNs (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)<br />
+</pre><p>Free up the structures associated to a namespace</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the namespace pointer</td></tr></tbody></table></div><h3><a name="xmlFreeNsList" id="xmlFreeNsList"></a>Function: xmlFreeNsList</h3><pre class="programlisting">void xmlFreeNsList (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)<br />
+</pre><p>Free up all the structures associated to the chained namespaces.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first namespace pointer</td></tr></tbody></table></div><h3><a name="xmlFreeProp" id="xmlFreeProp"></a>Function: xmlFreeProp</h3><pre class="programlisting">void xmlFreeProp (<a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br />
+</pre><p>Free one attribute, all the content is freed too</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>an <a href="libxml-SAX.html#attribute">attribute</a></td></tr></tbody></table></div><h3><a name="xmlFreePropList" id="xmlFreePropList"></a>Function: xmlFreePropList</h3><pre class="programlisting">void xmlFreePropList (<a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br />
+</pre><p>Free a property and all its siblings, all the children are freed too.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first property in the list</td></tr></tbody></table></div><h3><a name="xmlGetBufferAllocationScheme" id="xmlGetBufferAllocationScheme"></a>Function: xmlGetBufferAllocationScheme</h3><pre class="programlisting"><a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> xmlGetBufferAllocationScheme (void)<br />
+</pre><p>Types are <a href="libxml-tree.html#XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a> - use exact sizes, keeps memory usage down <a href="libxml-tree.html#XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a> - double buffer when extra needed, improves performance <a href="libxml-tree.html#XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a> - use exact sizes on small strings to keep memory usage tight in normal usage, and doubleit on large strings to avoid pathological performance.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current allocation scheme</td></tr></tbody></table></div><h3><a name="xmlGetCompressMode" id="xmlGetCompressMode"></a>Function: xmlGetCompressMode</h3><pre class="programlisting">int xmlGetCompressMode (void)<br />
+</pre><p>get the default compression mode used, ZLIB based.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 (uncompressed) to 9 (max compression)</td></tr></tbody></table></div><h3><a name="xmlGetDocCompressMode" id="xmlGetDocCompressMode"></a>Function: xmlGetDocCompressMode</h3><pre class="programlisting">int xmlGetDocCompressMode (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc)<br />
+</pre><p>get the compression ratio for a document, ZLIB based</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 (uncompressed) to 9 (max compression)</td></tr></tbody></table></div><h3><a name="xmlGetIntSubset" id="xmlGetIntSubset"></a>Function: xmlGetIntSubset</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlGetIntSubset (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc)<br />
+</pre><p>Get the internal subset of a document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the DTD structure or NULL if not found</td></tr></tbody></table></div><h3><a name="xmlGetLastChild" id="xmlGetLastChild"></a>Function: xmlGetLastChild</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlGetLastChild (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * parent)<br />
+</pre><p>Search the last child of a node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last child or NULL if none.</td></tr></tbody></table></div><h3><a name="xmlGetLineNo" id="xmlGetLineNo"></a>Function: xmlGetLineNo</h3><pre class="programlisting">long xmlGetLineNo (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node)<br />
+</pre><p>Get line number of @node. Try to override the limitation of lines being store in 16 bits ints if <a href="libxml-parser.html#XML_PARSE_BIG_LINES">XML_PARSE_BIG_LINES</a> parser option was used</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>valid node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the line number if successful, -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlGetNoNsProp" id="xmlGetNoNsProp"></a>Function: xmlGetNoNsProp</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlGetNoNsProp (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Search and get the value of an <a href="libxml-SAX.html#attribute">attribute</a> associated to a node This does the entity substitution. This function looks in DTD <a href="libxml-SAX.html#attribute">attribute</a> declaration for #FIXED or default declaration values unless DTD use has been turned off. This function is similar to <a href="libxml-tree.html#xmlGetProp">xmlGetProp</a> except it will accept only an <a href="libxml-SAX.html#attribute">attribute</a> in no namespace.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> value or NULL if not found. It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div><h3><a name="xmlGetNodePath" id="xmlGetNodePath"></a>Function: xmlGetNodePath</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlGetNodePath (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node)<br />
+</pre><p>Build a structure based Path for the given node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new path or NULL in case of error. The caller must free the returned string</td></tr></tbody></table></div><h3><a name="xmlGetNsList" id="xmlGetNsList"></a>Function: xmlGetNsList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> * xmlGetNsList (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node)<br />
+</pre><p>Search all the namespace applying to a given element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an NULL terminated array of all the #xmlNsPtr found that need to be freed by the caller or NULL if no namespace if defined</td></tr></tbody></table></div><h3><a name="xmlGetNsProp" id="xmlGetNsProp"></a>Function: xmlGetNsProp</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlGetNsProp (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)<br />
+</pre><p>Search and get the value of an <a href="libxml-SAX.html#attribute">attribute</a> associated to a node This <a href="libxml-SAX.html#attribute">attribute</a> has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD <a href="libxml-SAX.html#attribute">attribute</a> declaration for #FIXED or default declaration values unless DTD use has been turned off.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the URI of the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> value or NULL if not found. It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div><h3><a name="xmlGetProp" id="xmlGetProp"></a>Function: xmlGetProp</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlGetProp (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Search and get the value of an <a href="libxml-SAX.html#attribute">attribute</a> associated to a node This does the entity substitution. This function looks in DTD <a href="libxml-SAX.html#attribute">attribute</a> declaration for #FIXED or default declaration values unless DTD use has been turned off. NOTE: this function acts independently of namespaces associated to the attribute. Use xmlGetNsProp() or xmlGetNoNsProp() for namespace aware processing.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> value or NULL if not found. It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div><h3><a name="xmlHasNsProp" id="xmlHasNsProp"></a>Function: xmlHasNsProp</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlHasNsProp (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)<br />
+</pre><p>Search for an <a href="libxml-SAX.html#attribute">attribute</a> associated to a node This <a href="libxml-SAX.html#attribute">attribute</a> has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD <a href="libxml-SAX.html#attribute">attribute</a> declaration for #FIXED or default declaration values unless DTD use has been turned off. Note that a namespace of NULL indicates to use the default namespace.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the URI of the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> or the <a href="libxml-SAX.html#attribute">attribute</a> declaration or NULL if neither was found.</td></tr></tbody></table></div><h3><a name="xmlHasProp" id="xmlHasProp"></a>Function: xmlHasProp</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlHasProp (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Search an <a href="libxml-SAX.html#attribute">attribute</a> associated to a node This function also looks in DTD <a href="libxml-SAX.html#attribute">attribute</a> declaration for #FIXED or default declaration values unless DTD use has been turned off.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> or the <a href="libxml-SAX.html#attribute">attribute</a> declaration or NULL if neither was found.</td></tr></tbody></table></div><h3><a name="xmlIsBlankNode" id="xmlIsBlankNode"></a>Function: xmlIsBlankNode</h3><pre class="programlisting">int xmlIsBlankNode (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node)<br />
+</pre><p>Checks whether this node is an empty or whitespace only (and possibly ignorable) text-node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 yes, 0 no</td></tr></tbody></table></div><h3><a name="xmlIsXHTML" id="xmlIsXHTML"></a>Function: xmlIsXHTML</h3><pre class="programlisting">int xmlIsXHTML (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * systemID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * publicID)<br />
+</pre><p>Try to find if the document correspond to an XHTML DTD</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>systemID</tt></i>:</span></td><td>the system identifier</td></tr><tr><td><span class="term"><i><tt>publicID</tt></i>:</span></td><td>the public identifier</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if not and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlLastElementChild" id="xmlLastElementChild"></a>Function: xmlLastElementChild</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlLastElementChild (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent)<br />
+</pre><p>Finds the last child node of that element which is a Element node Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back <a href="libxml-SAX.html#reference">reference</a> from entities content to entities references.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last element child or NULL if not available</td></tr></tbody></table></div><h3><a name="xmlNewCDataBlock" id="xmlNewCDataBlock"></a>Function: xmlNewCDataBlock</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewCDataBlock (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)<br />
+</pre><p>Creation of a new node containing a CDATA block.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the CDATA block content content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the block</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewCharRef" id="xmlNewCharRef"></a>Function: xmlNewCharRef</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewCharRef (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Creation of a new character <a href="libxml-SAX.html#reference">reference</a> node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the char ref string, starting with # or "&amp;# ... ;"</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewChild" id="xmlNewChild"></a>Function: xmlNewChild</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewChild (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (NULL). If @ns is NULL, the newly created element inherits the namespace of @parent. If @content is non NULL, a child list containing the TEXTs and ENTITY_REFs node will be created. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references. XML special chars must be escaped first by using xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should be used.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the child</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the XML content of the child if any.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewComment" id="xmlNewComment"></a>Function: xmlNewComment</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewComment (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a new node containing a comment.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the <a href="libxml-SAX.html#comment">comment</a> content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewDoc" id="xmlNewDoc"></a>Function: xmlNewDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlNewDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * version)<br />
+</pre><p>Creates a new XML document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>version</tt></i>:</span></td><td><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string giving the version of XML "1.0"</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new document</td></tr></tbody></table></div><h3><a name="xmlNewDocComment" id="xmlNewDocComment"></a>Function: xmlNewDocComment</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocComment (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a new node containing a <a href="libxml-SAX.html#comment">comment</a> within a document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the <a href="libxml-SAX.html#comment">comment</a> content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewDocFragment" id="xmlNewDocFragment"></a>Function: xmlNewDocFragment</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocFragment (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Creation of a new Fragment node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document owning the fragment</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewDocNode" id="xmlNewDocNode"></a>Function: xmlNewDocNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocNode (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a new node element within a document. @ns and @content are optional (NULL). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don't need entities support.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the node name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the XML text content if any</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewDocNodeEatName" id="xmlNewDocNodeEatName"></a>Function: xmlNewDocNodeEatName</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocNodeEatName (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a new node element within a document. @ns and @content are optional (NULL). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don't need entities support.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the node name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the XML text content if any</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewDocPI" id="xmlNewDocPI"></a>Function: xmlNewDocPI</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocPI (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a processing instruction element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the target document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the processing instruction name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the PI content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewDocProp" id="xmlNewDocProp"></a>Function: xmlNewDocProp</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlNewDocProp (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Create a new property carried by a document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the <a href="libxml-SAX.html#attribute">attribute</a></td></tr></tbody></table></div><h3><a name="xmlNewDocRawNode" id="xmlNewDocRawNode"></a>Function: xmlNewDocRawNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocRawNode (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a new node element within a document. @ns and @content are optional (NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the node name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content if any</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewDocText" id="xmlNewDocText"></a>Function: xmlNewDocText</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocText (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a new text node within a document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewDocTextLen" id="xmlNewDocTextLen"></a>Function: xmlNewDocTextLen</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewDocTextLen (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)<br />
+</pre><p>Creation of a new text node with an extra content length parameter. The text node pertain to a given document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the text len.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewDtd" id="xmlNewDtd"></a>Function: xmlNewDtd</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlNewDtd (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
+</pre><p>Creation of a new DTD for the external subset. To create an internal subset, use xmlCreateIntSubset().</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document pointer</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the DTD name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the system ID</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new DTD structure</td></tr></tbody></table></div><h3><a name="xmlNewGlobalNs" id="xmlNewGlobalNs"></a>Function: xmlNewGlobalNs</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> xmlNewGlobalNs (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br />
+</pre><p>Creation of a Namespace, the old way using PI and without scoping DEPRECATED !!!</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document carrying the namespace</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the URI associated</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix for the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL this functionality had been removed</td></tr></tbody></table></div><h3><a name="xmlNewNode" id="xmlNewNode"></a>Function: xmlNewNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewNode (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Creation of a new node element. @ns is optional (NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the node name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object. Uses xmlStrdup() to make copy of @name.</td></tr></tbody></table></div><h3><a name="xmlNewNodeEatName" id="xmlNewNodeEatName"></a>Function: xmlNewNodeEatName</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewNodeEatName (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Creation of a new node element. @ns is optional (NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the node name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object, with pointer @name as new node's name. Use xmlNewNode() if a copy of @name string is is needed as new node's name.</td></tr></tbody></table></div><h3><a name="xmlNewNs" id="xmlNewNs"></a>Function: xmlNewNs</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> xmlNewNs (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br />
+</pre><p>Creation of a new Namespace. This function will refuse to create a namespace with a similar prefix than an existing one present on this node. Note that for a default namespace, @prefix should be NULL. We use href==NULL in the case of an element creation where the namespace was not defined.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the element carrying the namespace</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the URI associated</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix for the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new namespace pointer or NULL</td></tr></tbody></table></div><h3><a name="xmlNewNsProp" id="xmlNewNsProp"></a>Function: xmlNewNsProp</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlNewNsProp (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Create a new property tagged with a namespace and carried by a node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the holding node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the <a href="libxml-SAX.html#attribute">attribute</a></td></tr></tbody></table></div><h3><a name="xmlNewNsPropEatName" id="xmlNewNsPropEatName"></a>Function: xmlNewNsPropEatName</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlNewNsPropEatName (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Create a new property tagged with a namespace and carried by a node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the holding node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the <a href="libxml-SAX.html#attribute">attribute</a></td></tr></tbody></table></div><h3><a name="xmlNewPI" id="xmlNewPI"></a>Function: xmlNewPI</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewPI (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a processing instruction element. Use xmlDocNewPI preferably to get string interning</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the processing instruction name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the PI content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewProp" id="xmlNewProp"></a>Function: xmlNewProp</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlNewProp (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Create a new property carried by a node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the holding node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the <a href="libxml-SAX.html#attribute">attribute</a></td></tr></tbody></table></div><h3><a name="xmlNewReference" id="xmlNewReference"></a>Function: xmlNewReference</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewReference (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Creation of a new <a href="libxml-SAX.html#reference">reference</a> node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#reference">reference</a> name, or the <a href="libxml-SAX.html#reference">reference</a> string with &amp; and ;</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewText" id="xmlNewText"></a>Function: xmlNewText</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewText (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a new text node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewTextChild" id="xmlNewTextChild"></a>Function: xmlNewTextChild</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewTextChild (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> parent, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Creation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (NULL). If @ns is NULL, the newly created element inherits the namespace of @parent. If @content is non NULL, a child TEXT node will be created containing the string @content. NOTE: Use xmlNewChild() if @content will contain entities that need to be preserved. Use this function, xmlNewTextChild(), if you need to ensure that reserved XML chars that might appear in @content, such as the ampersand, greater-than or less-than signs, are automatically replaced by their XML escaped entity representations.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the child</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content of the child if any.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewTextLen" id="xmlNewTextLen"></a>Function: xmlNewTextLen</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewTextLen (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)<br />
+</pre><p>Creation of a new text node with an extra parameter for the content's length</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the text len.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNextElementSibling" id="xmlNextElementSibling"></a>Function: xmlNextElementSibling</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNextElementSibling (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Finds the first closest next sibling of the node which is an element node. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back <a href="libxml-SAX.html#reference">reference</a> from entities content to entities references.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element sibling or NULL if not available</td></tr></tbody></table></div><h3><a name="xmlNodeAddContent" id="xmlNodeAddContent"></a>Function: xmlNodeAddContent</h3><pre class="programlisting">void xmlNodeAddContent (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>extra content</td></tr></tbody></table></div><h3><a name="xmlNodeAddContentLen" id="xmlNodeAddContentLen"></a>Function: xmlNodeAddContentLen</h3><pre class="programlisting">void xmlNodeAddContentLen (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)<br />
+</pre><p>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>extra content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size of @content</td></tr></tbody></table></div><h3><a name="xmlNodeBufGetContent" id="xmlNodeBufGetContent"></a>Function: xmlNodeBufGetContent</h3><pre class="programlisting">int xmlNodeBufGetContent (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)<br />
+</pre><p>Read the value of a node @cur, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buffer with this value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a buffer</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlNodeDump" id="xmlNodeDump"></a>Function: xmlNodeDump</h3><pre class="programlisting">int xmlNodeDump (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> int level, <br /> int format)<br />
+</pre><p>Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called. Since this is using <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a> structures it is limited to 2GB and somehow deprecated, use xmlNodeDumpOutput() instead.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>level</tt></i>:</span></td><td>the imbrication level for indenting</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>is formatting allowed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written to the buffer or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlNodeDumpOutput" id="xmlNodeDumpOutput"></a>Function: xmlNodeDumpOutput</h3><pre class="programlisting">void xmlNodeDumpOutput (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> int level, <br /> int format, <br /> const char * encoding)<br />
+</pre><p>Dump an XML node, recursive behaviour, children are printed too. Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>level</tt></i>:</span></td><td>the imbrication level for indenting</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>is formatting allowed</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>an optional encoding string</td></tr></tbody></table></div><h3><a name="xmlNodeGetBase" id="xmlNodeGetBase"></a>Function: xmlNodeGetBase</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlNodeGetBase (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)<br />
+</pre><p>Searches for the BASE URL. The code should work on both XML and HTML document even if base mechanisms are completely different. It returns the base as defined in RFC 2396 sections 5.1.1. Base URI within Document Content and 5.1.2. Base URI from the Encapsulating Entity However it does not return the document base (5.1.3), use doc-&gt;URL in this case</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document the node pertains to</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being checked</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the base URL, or NULL if not found It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div><h3><a name="xmlNodeGetContent" id="xmlNodeGetContent"></a>Function: xmlNodeGetContent</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlNodeGetContent (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)<br />
+</pre><p>Read the value of a node, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlChar * or NULL if no content is available. It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div><h3><a name="xmlNodeGetLang" id="xmlNodeGetLang"></a>Function: xmlNodeGetLang</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlNodeGetLang (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)<br />
+</pre><p>Searches the language of a node, i.e. the values of the xml:lang <a href="libxml-SAX.html#attribute">attribute</a> or the one carried by the nearest ancestor.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being checked</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the lang value, or NULL if not found It's up to the caller to free the memory with xmlFree().</td></tr></tbody></table></div><h3><a name="xmlNodeGetSpacePreserve" id="xmlNodeGetSpacePreserve"></a>Function: xmlNodeGetSpacePreserve</h3><pre class="programlisting">int xmlNodeGetSpacePreserve (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * cur)<br />
+</pre><p>Searches the space preserving behaviour of a node, i.e. the values of the xml:space <a href="libxml-SAX.html#attribute">attribute</a> or the one carried by the nearest ancestor.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being checked</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 if xml:space is not inherited, 0 if "default", 1 if "preserve"</td></tr></tbody></table></div><h3><a name="xmlNodeIsText" id="xmlNodeIsText"></a>Function: xmlNodeIsText</h3><pre class="programlisting">int xmlNodeIsText (const <a href="libxml-tree.html#xmlNode">xmlNode</a> * node)<br />
+</pre><p>Is this node a Text node ?</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 yes, 0 no</td></tr></tbody></table></div><h3><a name="xmlNodeListGetRawString" id="xmlNodeListGetRawString"></a>Function: xmlNodeListGetRawString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlNodeListGetRawString (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * list, <br /> int inLine)<br />
+</pre><p>Builds the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs, contrary to xmlNodeListGetString() this function doesn't do any character encoding handling.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>a Node list</td></tr><tr><td><span class="term"><i><tt>inLine</tt></i>:</span></td><td>should we replace entity contents or show their external form</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the string copy, the caller must free it with xmlFree().</td></tr></tbody></table></div><h3><a name="xmlNodeListGetString" id="xmlNodeListGetString"></a>Function: xmlNodeListGetString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlNodeListGetString (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-tree.html#xmlNode">xmlNode</a> * list, <br /> int inLine)<br />
+</pre><p>Build the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>a Node list</td></tr><tr><td><span class="term"><i><tt>inLine</tt></i>:</span></td><td>should we replace entity contents or show their external form</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the string copy, the caller must free it with xmlFree().</td></tr></tbody></table></div><h3><a name="xmlNodeSetBase" id="xmlNodeSetBase"></a>Function: xmlNodeSetBase</h3><pre class="programlisting">void xmlNodeSetBase (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * uri)<br />
+</pre><p>Set (or reset) the base URI of a node, i.e. the value of the xml:base attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>the new base URI</td></tr></tbody></table></div><h3><a name="xmlNodeSetContent" id="xmlNodeSetContent"></a>Function: xmlNodeSetContent</h3><pre class="programlisting">void xmlNodeSetContent (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the new value of the content</td></tr></tbody></table></div><h3><a name="xmlNodeSetContentLen" id="xmlNodeSetContentLen"></a>Function: xmlNodeSetContentLen</h3><pre class="programlisting">void xmlNodeSetContentLen (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)<br />
+</pre><p>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the new value of the content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size of @content</td></tr></tbody></table></div><h3><a name="xmlNodeSetLang" id="xmlNodeSetLang"></a>Function: xmlNodeSetLang</h3><pre class="programlisting">void xmlNodeSetLang (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * lang)<br />
+</pre><p>Set the language of a node, i.e. the values of the xml:lang attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>lang</tt></i>:</span></td><td>the language description</td></tr></tbody></table></div><h3><a name="xmlNodeSetName" id="xmlNodeSetName"></a>Function: xmlNodeSetName</h3><pre class="programlisting">void xmlNodeSetName (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Set (or reset) the name of a node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the new tag name</td></tr></tbody></table></div><h3><a name="xmlNodeSetSpacePreserve" id="xmlNodeSetSpacePreserve"></a>Function: xmlNodeSetSpacePreserve</h3><pre class="programlisting">void xmlNodeSetSpacePreserve (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> int val)<br />
+</pre><p>Set (or reset) the space preserving behaviour of a node, i.e. the value of the xml:space attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the xml:space value ("0": default, 1: "preserve")</td></tr></tbody></table></div><h3><a name="xmlPreviousElementSibling" id="xmlPreviousElementSibling"></a>Function: xmlPreviousElementSibling</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlPreviousElementSibling (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Finds the first closest previous sibling of the node which is an element node. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back <a href="libxml-SAX.html#reference">reference</a> from entities content to entities references.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous element sibling or NULL if not available</td></tr></tbody></table></div><h3><a name="xmlReconciliateNs" id="xmlReconciliateNs"></a>Function: xmlReconciliateNs</h3><pre class="programlisting">int xmlReconciliateNs (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree)<br />
+</pre><p>This function checks that all the namespaces declared within the given tree are properly declared. This is needed for example after Copy or Cut and then paste operations. The subtree may still hold pointers to namespace declarations outside the subtree or invalid/masked. As much as possible the function try to reuse the existing namespaces found in the new environment. If not possible the new namespaces are redeclared on @tree at the top of the given subtree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>a node defining the subtree to reconciliate</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of namespace declarations created or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlRemoveProp" id="xmlRemoveProp"></a>Function: xmlRemoveProp</h3><pre class="programlisting">int xmlRemoveProp (<a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br />
+</pre><p>Unlink and free one attribute, all the content is freed too Note this doesn't work for namespace definition attributes</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>an <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlReplaceNode" id="xmlReplaceNode"></a>Function: xmlReplaceNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlReplaceNode (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> old, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Unlink the old node from its current context, prune the new one at the same place. If @cur was already inserted in a document it is first unlinked from its existing context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>old</tt></i>:</span></td><td>the old node</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the @old node</td></tr></tbody></table></div><h3><a name="xmlSaveFile" id="xmlSaveFile"></a>Function: xmlSaveFile</h3><pre class="programlisting">int xmlSaveFile (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br />
+</pre><p>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is "-" the stdout file is used.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename (or URL)</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlSaveFileEnc" id="xmlSaveFileEnc"></a>Function: xmlSaveFileEnc</h3><pre class="programlisting">int xmlSaveFileEnc (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding)<br />
+</pre><p>Dump an XML document, converting it to the given encoding</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename (or URL)</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the name of an encoding (or NULL)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlSaveFileTo" id="xmlSaveFileTo"></a>Function: xmlSaveFileTo</h3><pre class="programlisting">int xmlSaveFileTo (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding)<br />
+</pre><p>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output I/O buffer</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding if any assuming the I/O layer handles the transcoding</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlSaveFormatFile" id="xmlSaveFormatFile"></a>Function: xmlSaveFormatFile</h3><pre class="programlisting">int xmlSaveFormatFile (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> int format)<br />
+</pre><p>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is "-" the stdout file is used. If @format is set then the document will be indented on output. Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename (or URL)</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlSaveFormatFileEnc" id="xmlSaveFormatFileEnc"></a>Function: xmlSaveFormatFileEnc</h3><pre class="programlisting">int xmlSaveFormatFileEnc (const char * filename, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding, <br /> int format)<br />
+</pre><p>Dump an XML document to a file or an URL.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URL to output</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document being saved</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the name of the encoding to use or NULL.</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces be added.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error. Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</td></tr></tbody></table></div><h3><a name="xmlSaveFormatFileTo" id="xmlSaveFormatFileTo"></a>Function: xmlSaveFormatFileTo</h3><pre class="programlisting">int xmlSaveFormatFileTo (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br /> const char * encoding, <br /> int format)<br />
+</pre><p>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output I/O buffer</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding if any assuming the I/O layer handles the transcoding</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlSearchNs" id="xmlSearchNs"></a>Function: xmlSearchNs</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> xmlSearchNs (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)<br />
+</pre><p>Search a Ns registered under a given name space for a document. recurse on the parents until it finds the defined namespace or return NULL otherwise. @nameSpace can be NULL, this is a search for the default namespace. We don't allow to cross entities boundaries. If you don't declare the namespace within those you will be in troubles !!! A warning is generated to cover this case.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the namespace prefix</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace pointer or NULL.</td></tr></tbody></table></div><h3><a name="xmlSearchNsByHref" id="xmlSearchNsByHref"></a>Function: xmlSearchNsByHref</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> xmlSearchNsByHref (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href)<br />
+</pre><p>Search a Ns aliasing a given URI. Recurse on the parents until it finds the defined namespace or return NULL otherwise.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the namespace value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace pointer or NULL.</td></tr></tbody></table></div><h3><a name="xmlSetBufferAllocationScheme" id="xmlSetBufferAllocationScheme"></a>Function: xmlSetBufferAllocationScheme</h3><pre class="programlisting">void xmlSetBufferAllocationScheme (<a href="libxml-tree.html#xmlBufferAllocationScheme">xmlBufferAllocationScheme</a> scheme)<br />
+</pre><p>Set the buffer allocation method. Types are <a href="libxml-tree.html#XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a> - use exact sizes, keeps memory usage down <a href="libxml-tree.html#XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a> - double buffer when extra needed, improves performance</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>scheme</tt></i>:</span></td><td>allocation method to use</td></tr></tbody></table></div><h3><a name="xmlSetCompressMode" id="xmlSetCompressMode"></a>Function: xmlSetCompressMode</h3><pre class="programlisting">void xmlSetCompressMode (int mode)<br />
+</pre><p>set the default compression mode used, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the compression ratio</td></tr></tbody></table></div><h3><a name="xmlSetDocCompressMode" id="xmlSetDocCompressMode"></a>Function: xmlSetDocCompressMode</h3><pre class="programlisting">void xmlSetDocCompressMode (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> int mode)<br />
+</pre><p>set the compression ratio for a document, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the compression ratio</td></tr></tbody></table></div><h3><a name="xmlSetListDoc" id="xmlSetListDoc"></a>Function: xmlSetListDoc</h3><pre class="programlisting">void xmlSetListDoc (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> list, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>update all nodes in the list to point to the right document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>the first element</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div><h3><a name="xmlSetNs" id="xmlSetNs"></a>Function: xmlSetNs</h3><pre class="programlisting">void xmlSetNs (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns)<br />
+</pre><p>Associate a namespace to a node, a posteriori.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node in the document</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a namespace pointer</td></tr></tbody></table></div><h3><a name="xmlSetNsProp" id="xmlSetNsProp"></a>Function: xmlSetNsProp</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlSetNsProp (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Set (or reset) an <a href="libxml-SAX.html#attribute">attribute</a> carried by a node. The ns structure must be in scope, this is not checked</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace definition</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> pointer.</td></tr></tbody></table></div><h3><a name="xmlSetProp" id="xmlSetProp"></a>Function: xmlSetProp</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlSetProp (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Set (or reset) an <a href="libxml-SAX.html#attribute">attribute</a> carried by a node. If @name has a prefix, then the corresponding namespace-binding will be used, if in scope; it is an error it there's no such ns-binding for the prefix in scope.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name (a QName)</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> pointer.</td></tr></tbody></table></div><h3><a name="xmlSetTreeDoc" id="xmlSetTreeDoc"></a>Function: xmlSetTreeDoc</h3><pre class="programlisting">void xmlSetTreeDoc (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>update all nodes under the tree to point to the right document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the top element</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div><h3><a name="xmlSplitQName2" id="xmlSplitQName2"></a>Function: xmlSplitQName2</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName2 (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** prefix)<br />
+</pre><p>parse an XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if the name doesn't have a prefix. Otherwise, returns the local part, and prefix is updated to get the Prefix. Both the return value and the prefix must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlSplitQName3" id="xmlSplitQName3"></a>Function: xmlSplitQName3</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName3 (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int * len)<br />
+</pre><p>parse an XML qualified name string,i</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>an int *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if it is not a Qualified Name, otherwise, update len with the length in byte of the prefix and return a pointer to the start of the name without the prefix</td></tr></tbody></table></div><h3><a name="xmlStringGetNodeList" id="xmlStringGetNodeList"></a>Function: xmlStringGetNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlStringGetNodeList (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the first child</td></tr></tbody></table></div><h3><a name="xmlStringLenGetNodeList" id="xmlStringLenGetNodeList"></a>Function: xmlStringLenGetNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlStringLenGetNodeList (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int len)<br />
+</pre><p>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value of the text</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the string value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the first child</td></tr></tbody></table></div><h3><a name="xmlTextConcat" id="xmlTextConcat"></a>Function: xmlTextConcat</h3><pre class="programlisting">int xmlTextConcat (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)<br />
+</pre><p>Concat the given string at the end of the existing node content</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>@content length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlTextMerge" id="xmlTextMerge"></a>Function: xmlTextMerge</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlTextMerge (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> first, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> second)<br />
+</pre><p>Merge two text nodes into one</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>first</tt></i>:</span></td><td>the first text node</td></tr><tr><td><span class="term"><i><tt>second</tt></i>:</span></td><td>the second text node being merged</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the first text node augmented</td></tr></tbody></table></div><h3><a name="xmlUnlinkNode" id="xmlUnlinkNode"></a>Function: xmlUnlinkNode</h3><pre class="programlisting">void xmlUnlinkNode (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Unlink a node from it's current context, the node is not freed If one need to free the node, use xmlFreeNode() routine after the unlink to discard it. Note that namespace nodes can't be unlinked as they do not have pointer to their parent.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node</td></tr></tbody></table></div><h3><a name="xmlUnsetNsProp" id="xmlUnsetNsProp"></a>Function: xmlUnsetNsProp</h3><pre class="programlisting">int xmlUnsetNsProp (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Remove an <a href="libxml-SAX.html#attribute">attribute</a> carried by a node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace definition</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 if not found</td></tr></tbody></table></div><h3><a name="xmlUnsetProp" id="xmlUnsetProp"></a>Function: xmlUnsetProp</h3><pre class="programlisting">int xmlUnsetProp (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Remove an <a href="libxml-SAX.html#attribute">attribute</a> carried by a node. This handles only attributes in no namespace.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 if not found</td></tr></tbody></table></div><h3><a name="xmlValidateNCName" id="xmlValidateNCName"></a>Function: xmlValidateNCName</h3><pre class="programlisting">int xmlValidateNCName (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int space)<br />
+</pre><p>Check that a value conforms to the lexical space of NCName</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>space</tt></i>:</span></td><td>allow spaces in front and end of the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlValidateNMToken" id="xmlValidateNMToken"></a>Function: xmlValidateNMToken</h3><pre class="programlisting">int xmlValidateNMToken (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int space)<br />
+</pre><p>Check that a value conforms to the lexical space of NMToken</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>space</tt></i>:</span></td><td>allow spaces in front and end of the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlValidateName" id="xmlValidateName"></a>Function: xmlValidateName</h3><pre class="programlisting">int xmlValidateName (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int space)<br />
+</pre><p>Check that a value conforms to the lexical space of Name</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>space</tt></i>:</span></td><td>allow spaces in front and end of the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlValidateQName" id="xmlValidateQName"></a>Function: xmlValidateQName</h3><pre class="programlisting">int xmlValidateQName (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> int space)<br />
+</pre><p>Check that a value conforms to the lexical space of QName</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>space</tt></i>:</span></td><td>allow spaces in front and end of the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-uri.html b/libxml2-2.9.10/doc/html/libxml-uri.html
new file mode 100644
index 0000000..01ce7b1
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-uri.html
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module uri from libxml2</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></h1><h2>Module uri from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-tree.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-tree.html">tree</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-valid.html">valid</a></th><td><a accesskey="n" href="libxml-valid.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>library of generic URI related routines Implements RFC 2396 </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlURI">xmlURI</a><br />struct _xmlURI
+</pre><pre class="programlisting">Typedef <a href="libxml-uri.html#xmlURI">xmlURI</a> * <a name="xmlURIPtr" id="xmlURIPtr">xmlURIPtr</a>
+</pre><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBuildRelativeURI">xmlBuildRelativeURI</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * base)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBuildURI">xmlBuildURI</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * base)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCanonicPath">xmlCanonicPath</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * path)</pre>
+<pre class="programlisting"><a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> <a href="#xmlCreateURI">xmlCreateURI</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlFreeURI">xmlFreeURI</a> (<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri)</pre>
+<pre class="programlisting">int <a href="#xmlNormalizeURIPath">xmlNormalizeURIPath</a> (char * path)</pre>
+<pre class="programlisting"><a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> <a href="#xmlParseURI">xmlParseURI</a> (const char * str)</pre>
+<pre class="programlisting"><a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> <a href="#xmlParseURIRaw">xmlParseURIRaw</a> (const char * str, <br /> int raw)</pre>
+<pre class="programlisting">int <a href="#xmlParseURIReference">xmlParseURIReference</a> (<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri, <br /> const char * str)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlPathToURI">xmlPathToURI</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * path)</pre>
+<pre class="programlisting">void <a href="#xmlPrintURI">xmlPrintURI</a> (FILE * stream, <br /> <a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSaveUri">xmlSaveUri</a> (<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlURIEscape">xmlURIEscape</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlURIEscapeStr">xmlURIEscapeStr</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * list)</pre>
+<pre class="programlisting">char * <a href="#xmlURIUnescapeString">xmlURIUnescapeString</a> (const char * str, <br /> int len, <br /> char * target)</pre>
+<h2>Description</h2>
+<h3><a name="xmlURI" id="xmlURI">Structure xmlURI</a></h3><pre class="programlisting">Structure xmlURI<br />struct _xmlURI {
+ char * scheme : the URI scheme
+ char * opaque : opaque part
+ char * authority : the authority part
+ char * server : the server part
+ char * user : the user part
+ int port : the port number
+ char * path : the path string
+ char * query : the query string (deprecated - use with
+ char * fragment : the fragment identifier
+ int cleanup : parsing potentially unclean URI
+ char * query_raw : the query string (as it appears in the
+}</pre><h3><a name="xmlBuildRelativeURI" id="xmlBuildRelativeURI"></a>Function: xmlBuildRelativeURI</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlBuildRelativeURI (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * base)<br />
+</pre><p>Expresses the URI of the <a href="libxml-SAX.html#reference">reference</a> in terms relative to the base. Some examples of this operation include: base = "http://site1.com/docs/book1.html" URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif pic1.gif http://site2.com/docs/pic1.gif http://site2.com/docs/pic1.gif base = "docs/book1.html" URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif http://site1.com/docs/pic1.gif Note: if the URI <a href="libxml-SAX.html#reference">reference</a> is really weird or complicated, it may be worthwhile to first convert it into a "nice" one by calling <a href="libxml-uri.html#xmlBuildURI">xmlBuildURI</a> (using 'base') before calling this routine, since this routine (for reasonable efficiency) assumes URI has already been through some validation.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI <a href="libxml-SAX.html#reference">reference</a> under consideration</td></tr><tr><td><span class="term"><i><tt>base</tt></i>:</span></td><td>the base value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new URI string (to be freed by the caller) or NULL in case error.</td></tr></tbody></table></div><h3><a name="xmlBuildURI" id="xmlBuildURI"></a>Function: xmlBuildURI</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlBuildURI (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * base)<br />
+</pre><p>Computes he final URI of the <a href="libxml-SAX.html#reference">reference</a> done by checking that the given URI is valid, and building the final URI using the base URI. This is processed according to section 5.2 of the RFC 2396 5.2. Resolving Relative References to Absolute Form</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI instance found in the document</td></tr><tr><td><span class="term"><i><tt>base</tt></i>:</span></td><td>the base value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new URI string (to be freed by the caller) or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCanonicPath" id="xmlCanonicPath"></a>Function: xmlCanonicPath</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCanonicPath (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * path)<br />
+</pre><p>Constructs a canonic path from the specified path.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>the resource locator in a filesystem notation</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new canonic path, or a duplicate of the path parameter if the construction fails. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.</td></tr></tbody></table></div><h3><a name="xmlCreateURI" id="xmlCreateURI"></a>Function: xmlCreateURI</h3><pre class="programlisting"><a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> xmlCreateURI (void)<br />
+</pre><p>Simply creates an empty <a href="libxml-uri.html#xmlURI">xmlURI</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new structure or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlFreeURI" id="xmlFreeURI"></a>Function: xmlFreeURI</h3><pre class="programlisting">void xmlFreeURI (<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri)<br />
+</pre><p>Free up the <a href="libxml-uri.html#xmlURI">xmlURI</a> struct</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>pointer to an <a href="libxml-uri.html#xmlURI">xmlURI</a></td></tr></tbody></table></div><h3><a name="xmlNormalizeURIPath" id="xmlNormalizeURIPath"></a>Function: xmlNormalizeURIPath</h3><pre class="programlisting">int xmlNormalizeURIPath (char * path)<br />
+</pre><p>Applies the 5 normalization steps to a path string--that is, RFC 2396 Section 5.2, steps 6.c through 6.g. Normalization occurs directly on the string, no new allocation is done</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>pointer to the path string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or an error code</td></tr></tbody></table></div><h3><a name="xmlParseURI" id="xmlParseURI"></a>Function: xmlParseURI</h3><pre class="programlisting"><a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> xmlParseURI (const char * str)<br />
+</pre><p>Parse an URI based on RFC 3986 URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the URI string to analyze</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly built <a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlParseURIRaw" id="xmlParseURIRaw"></a>Function: xmlParseURIRaw</h3><pre class="programlisting"><a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> xmlParseURIRaw (const char * str, <br /> int raw)<br />
+</pre><p>Parse an URI but allows to keep intact the original fragments. URI-reference = URI / relative-ref</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the URI string to analyze</td></tr><tr><td><span class="term"><i><tt>raw</tt></i>:</span></td><td>if 1 unescaping of URI pieces are disabled</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly built <a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlParseURIReference" id="xmlParseURIReference"></a>Function: xmlParseURIReference</h3><pre class="programlisting">int xmlParseURIReference (<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri, <br /> const char * str)<br />
+</pre><p>Parse an URI <a href="libxml-SAX.html#reference">reference</a> string based on RFC 3986 and fills in the appropriate fields of the @uri structure URI-reference = URI / relative-ref</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>pointer to an URI structure</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string to analyze</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or the error code</td></tr></tbody></table></div><h3><a name="xmlPathToURI" id="xmlPathToURI"></a>Function: xmlPathToURI</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlPathToURI (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * path)<br />
+</pre><p>Constructs an URI expressing the existing path</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>the resource locator in a filesystem notation</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new URI, or a duplicate of the path parameter if the construction fails. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.</td></tr></tbody></table></div><h3><a name="xmlPrintURI" id="xmlPrintURI"></a>Function: xmlPrintURI</h3><pre class="programlisting">void xmlPrintURI (FILE * stream, <br /> <a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri)<br />
+</pre><p>Prints the URI in the stream @stream.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>a FILE* for the output</td></tr><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>pointer to an <a href="libxml-uri.html#xmlURI">xmlURI</a></td></tr></tbody></table></div><h3><a name="xmlSaveUri" id="xmlSaveUri"></a>Function: xmlSaveUri</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSaveUri (<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri)<br />
+</pre><p>Save the URI as an escaped string</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>pointer to an <a href="libxml-uri.html#xmlURI">xmlURI</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new string (to be deallocated by caller)</td></tr></tbody></table></div><h3><a name="xmlURIEscape" id="xmlURIEscape"></a>Function: xmlURIEscape</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlURIEscape (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>Escaping routine, does not do validity checks ! It will try to escape the chars needing this, but this is heuristic based it's impossible to be sure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string of the URI to escape</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an copy of the string, but escaped 25 May 2001 Uses <a href="libxml-uri.html#xmlParseURI">xmlParseURI</a> and <a href="libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a> to try to escape correctly according to RFC2396. - Carl Douglas</td></tr></tbody></table></div><h3><a name="xmlURIEscapeStr" id="xmlURIEscapeStr"></a>Function: xmlURIEscapeStr</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlURIEscapeStr (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * list)<br />
+</pre><p>This routine escapes a string to hex, ignoring reserved <a href="libxml-SAX.html#characters">characters</a> (a-z) and the <a href="libxml-SAX.html#characters">characters</a> in the exception list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>string to escape</td></tr><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>exception list string of chars not to escape</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new escaped string or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlURIUnescapeString" id="xmlURIUnescapeString"></a>Function: xmlURIUnescapeString</h3><pre class="programlisting">char * xmlURIUnescapeString (const char * str, <br /> int len, <br /> char * target)<br />
+</pre><p>Unescaping routine, but does not check that the string is an URI. The output is a direct unsigned char translation of %XX values (no encoding) Note that the length of the result can only be smaller or same size as the input string.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string to unescape</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length in bytes to unescape (or &lt;= 0 to indicate full string)</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>optional destination buffer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the string, but unescaped, will return NULL only in case of error</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-valid.html b/libxml2-2.9.10/doc/html/libxml-valid.html
new file mode 100644
index 0000000..8acb88a
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-valid.html
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module valid from libxml2</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></h1><h2>Module valid from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-uri.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-uri.html">uri</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xinclude.html">xinclude</a></th><td><a accesskey="n" href="libxml-xinclude.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>API for the DTD handling and the validity checking </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a></pre><pre class="programlisting">#define <a href="#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a></pre><pre class="programlisting">Structure <a href="#xmlAttributeTable">xmlAttributeTable</a><br />struct _xmlHashTable
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-valid.html#xmlAttributeTable">xmlAttributeTable</a> * <a name="xmlAttributeTablePtr" id="xmlAttributeTablePtr">xmlAttributeTablePtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlElementTable">xmlElementTable</a><br />struct _xmlHashTable
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-valid.html#xmlElementTable">xmlElementTable</a> * <a name="xmlElementTablePtr" id="xmlElementTablePtr">xmlElementTablePtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlIDTable">xmlIDTable</a><br />struct _xmlHashTable
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-valid.html#xmlIDTable">xmlIDTable</a> * <a name="xmlIDTablePtr" id="xmlIDTablePtr">xmlIDTablePtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlNotationTable">xmlNotationTable</a><br />struct _xmlHashTable
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-valid.html#xmlNotationTable">xmlNotationTable</a> * <a name="xmlNotationTablePtr" id="xmlNotationTablePtr">xmlNotationTablePtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlRefTable">xmlRefTable</a><br />struct _xmlHashTable
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-valid.html#xmlRefTable">xmlRefTable</a> * <a name="xmlRefTablePtr" id="xmlRefTablePtr">xmlRefTablePtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlValidCtxt">xmlValidCtxt</a><br />struct _xmlValidCtxt
+</pre><pre class="programlisting">Typedef <a href="libxml-valid.html#xmlValidCtxt">xmlValidCtxt</a> * <a name="xmlValidCtxtPtr" id="xmlValidCtxtPtr">xmlValidCtxtPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlValidState">xmlValidState</a><br />struct _xmlValidState
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-valid.html#xmlValidState">xmlValidState</a> * <a name="xmlValidStatePtr" id="xmlValidStatePtr">xmlValidStatePtr</a>
+</pre><pre class="programlisting"><a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> <a href="#xmlAddAttributeDecl">xmlAddAttributeDecl</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns, <br /> <a href="libxml-tree.html#xmlAttributeType">xmlAttributeType</a> type, <br /> <a href="libxml-tree.html#xmlAttributeDefault">xmlAttributeDefault</a> def, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> <a href="#xmlAddElementDecl">xmlAddElementDecl</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-tree.html#xmlElementTypeVal">xmlElementTypeVal</a> type, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlIDPtr">xmlIDPtr</a> <a href="#xmlAddID">xmlAddID</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> <a href="#xmlAddNotationDecl">xmlAddNotationDecl</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * PublicID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlRefPtr">xmlRefPtr</a> <a href="#xmlAddRef">xmlAddRef</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)</pre>
+<pre class="programlisting"><a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> <a href="#xmlCopyAttributeTable">xmlCopyAttributeTable</a> (<a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlCopyDocElementContent">xmlCopyDocElementContent</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlCopyElementContent">xmlCopyElementContent</a> (<a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> <a href="#xmlCopyElementTable">xmlCopyElementTable</a> (<a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> <a href="#xmlCopyEnumeration">xmlCopyEnumeration</a> (<a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> <a href="#xmlCopyNotationTable">xmlCopyNotationTable</a> (<a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> <a href="#xmlCreateEnumeration">xmlCreateEnumeration</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#xmlDumpAttributeDecl">xmlDumpAttributeDecl</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr)</pre>
+<pre class="programlisting">void <a href="#xmlDumpAttributeTable">xmlDumpAttributeTable</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table)</pre>
+<pre class="programlisting">void <a href="#xmlDumpElementDecl">xmlDumpElementDecl</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem)</pre>
+<pre class="programlisting">void <a href="#xmlDumpElementTable">xmlDumpElementTable</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table)</pre>
+<pre class="programlisting">void <a href="#xmlDumpNotationDecl">xmlDumpNotationDecl</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota)</pre>
+<pre class="programlisting">void <a href="#xmlDumpNotationTable">xmlDumpNotationTable</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table)</pre>
+<pre class="programlisting">void <a href="#xmlFreeAttributeTable">xmlFreeAttributeTable</a> (<a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table)</pre>
+<pre class="programlisting">void <a href="#xmlFreeDocElementContent">xmlFreeDocElementContent</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlFreeElementContent">xmlFreeElementContent</a> (<a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlFreeElementTable">xmlFreeElementTable</a> (<a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table)</pre>
+<pre class="programlisting">void <a href="#xmlFreeEnumeration">xmlFreeEnumeration</a> (<a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur)</pre>
+<pre class="programlisting">void <a href="#xmlFreeIDTable">xmlFreeIDTable</a> (<a href="libxml-valid.html#xmlIDTablePtr">xmlIDTablePtr</a> table)</pre>
+<pre class="programlisting">void <a href="#xmlFreeNotationTable">xmlFreeNotationTable</a> (<a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table)</pre>
+<pre class="programlisting">void <a href="#xmlFreeRefTable">xmlFreeRefTable</a> (<a href="libxml-valid.html#xmlRefTablePtr">xmlRefTablePtr</a> table)</pre>
+<pre class="programlisting">void <a href="#xmlFreeValidCtxt">xmlFreeValidCtxt</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> <a href="#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a> (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> <a href="#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a> (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> <a href="#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a> (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> <a href="#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a> (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> <a href="#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a> (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> <a href="#xmlGetID">xmlGetID</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID)</pre>
+<pre class="programlisting"><a href="libxml-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlGetRefs">xmlGetRefs</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID)</pre>
+<pre class="programlisting">int <a href="#xmlIsID">xmlIsID</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)</pre>
+<pre class="programlisting">int <a href="#xmlIsMixedElement">xmlIsMixedElement</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlIsRef">xmlIsRef</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlNewDocElementContent">xmlNewDocElementContent</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-tree.html#xmlElementContentType">xmlElementContentType</a> type)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="#xmlNewElementContent">xmlNewElementContent</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-tree.html#xmlElementContentType">xmlElementContentType</a> type)</pre>
+<pre class="programlisting"><a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> <a href="#xmlNewValidCtxt">xmlNewValidCtxt</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlRemoveID">xmlRemoveID</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)</pre>
+<pre class="programlisting">int <a href="#xmlRemoveRef">xmlRemoveRef</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)</pre>
+<pre class="programlisting">void <a href="#xmlSnprintfElementContent">xmlSnprintfElementContent</a> (char * buf, <br /> int size, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content, <br /> int englob)</pre>
+<pre class="programlisting">void <a href="#xmlSprintfElementContent">xmlSprintfElementContent</a> (char * buf, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content, <br /> int englob)</pre>
+<pre class="programlisting">int <a href="#xmlValidBuildContentModel">xmlValidBuildContentModel</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a> (<a href="libxml-tree.html#xmlElementContent">xmlElementContent</a> * ctree, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** names, <br /> int * len, <br /> int max)</pre>
+<pre class="programlisting">int <a href="#xmlValidGetValidElements">xmlValidGetValidElements</a> (<a href="libxml-tree.html#xmlNode">xmlNode</a> * prev, <br /> <a href="libxml-tree.html#xmlNode">xmlNode</a> * next, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** names, <br /> int max)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr)</pre>
+<pre class="programlisting">int <a href="#xmlValidateAttributeValue">xmlValidateAttributeValue</a> (<a href="libxml-tree.html#xmlAttributeType">xmlAttributeType</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlValidateDocument">xmlValidateDocument</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#xmlValidateDtd">xmlValidateDtd</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)</pre>
+<pre class="programlisting">int <a href="#xmlValidateDtdFinal">xmlValidateDtdFinal</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#xmlValidateElement">xmlValidateElement</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
+<pre class="programlisting">int <a href="#xmlValidateElementDecl">xmlValidateElementDecl</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem)</pre>
+<pre class="programlisting">int <a href="#xmlValidateNameValue">xmlValidateNameValue</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlValidateNamesValue">xmlValidateNamesValue</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlValidateNmtokenValue">xmlValidateNmtokenValue</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlValidateNmtokensValue">xmlValidateNmtokensValue</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlValidateNotationDecl">xmlValidateNotationDecl</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota)</pre>
+<pre class="programlisting">int <a href="#xmlValidateNotationUse">xmlValidateNotationUse</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * notationName)</pre>
+<pre class="programlisting">int <a href="#xmlValidateOneAttribute">xmlValidateOneAttribute</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlValidateOneElement">xmlValidateOneElement</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
+<pre class="programlisting">int <a href="#xmlValidateOneNamespace">xmlValidateOneNamespace</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlValidatePopElement">xmlValidatePopElement</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * qname)</pre>
+<pre class="programlisting">int <a href="#xmlValidatePushCData">xmlValidatePushCData</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * data, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlValidatePushElement">xmlValidatePushElement</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * qname)</pre>
+<pre class="programlisting">int <a href="#xmlValidateRoot">xmlValidateRoot</a> (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">Function type: <a href="#xmlValidityErrorFunc">xmlValidityErrorFunc</a>
+void <a href="#xmlValidityErrorFunc">xmlValidityErrorFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlValidityWarningFunc">xmlValidityWarningFunc</a>
+void <a href="#xmlValidityWarningFunc">xmlValidityWarningFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<h2>Description</h2>
+<h3><a name="XML_CTXT_FINISH_DTD_0" id="XML_CTXT_FINISH_DTD_0"></a>Macro: XML_CTXT_FINISH_DTD_0</h3><pre>#define XML_CTXT_FINISH_DTD_0</pre><p>Special value for finishDtd field when embedded in an <a href="libxml-tree.html#xmlParserCtxt">xmlParserCtxt</a></p>
+<h3><a name="XML_CTXT_FINISH_DTD_1" id="XML_CTXT_FINISH_DTD_1"></a>Macro: XML_CTXT_FINISH_DTD_1</h3><pre>#define XML_CTXT_FINISH_DTD_1</pre><p>Special value for finishDtd field when embedded in an <a href="libxml-tree.html#xmlParserCtxt">xmlParserCtxt</a></p>
+<h3><a name="xmlAttributeTable" id="xmlAttributeTable">Structure xmlAttributeTable</a></h3><pre class="programlisting">Structure xmlAttributeTable<br />struct _xmlHashTable {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlElementTable" id="xmlElementTable">Structure xmlElementTable</a></h3><pre class="programlisting">Structure xmlElementTable<br />struct _xmlHashTable {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlIDTable" id="xmlIDTable">Structure xmlIDTable</a></h3><pre class="programlisting">Structure xmlIDTable<br />struct _xmlHashTable {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlNotationTable" id="xmlNotationTable">Structure xmlNotationTable</a></h3><pre class="programlisting">Structure xmlNotationTable<br />struct _xmlHashTable {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlRefTable" id="xmlRefTable">Structure xmlRefTable</a></h3><pre class="programlisting">Structure xmlRefTable<br />struct _xmlHashTable {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlValidCtxt" id="xmlValidCtxt">Structure xmlValidCtxt</a></h3><pre class="programlisting">Structure xmlValidCtxt<br />struct _xmlValidCtxt {
+ void * userData : user specific data block
+ <a href="libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a> error : the callback in case of errors
+ <a href="libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a> warning : the callback in case of warning Node an
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node : Current parsed Node
+ int nodeNr : Depth of the parsing stack
+ int nodeMax : Max depth of the parsing stack
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * nodeTab : array of nodes
+ unsigned int finishDtd : finished validating the Dtd ?
+ <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc : the document
+ int valid : temporary validity check result state s
+ <a href="libxml-valid.html#xmlValidState">xmlValidState</a> * vstate : current state
+ int vstateNr : Depth of the validation stack
+ int vstateMax : Max depth of the validation stack
+ <a href="libxml-valid.html#xmlValidState">xmlValidState</a> * vstateTab : array of validation states
+ <a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am : the automata
+ <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> state : used to build the automata
+ void * am
+ void * state
+}</pre><h3><a name="xmlValidState" id="xmlValidState">Structure xmlValidState</a></h3><pre class="programlisting">Structure xmlValidState<br />struct _xmlValidState {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlAddAttributeDecl" id="xmlAddAttributeDecl"></a>Function: xmlAddAttributeDecl</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> xmlAddAttributeDecl (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns, <br /> <a href="libxml-tree.html#xmlAttributeType">xmlAttributeType</a> type, <br /> <a href="libxml-tree.html#xmlAttributeDefault">xmlAttributeDefault</a> def, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * defaultValue, <br /> <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree)<br />
+</pre><p>Register a new <a href="libxml-SAX.html#attribute">attribute</a> declaration Note that @tree becomes the ownership of the DTD</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>pointer to the DTD</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> namespace prefix</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> type</td></tr><tr><td><span class="term"><i><tt>def</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> default type</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> default value</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>if it's an enumeration, the associated list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not new, otherwise the <a href="libxml-SAX.html#attribute">attribute</a> decl</td></tr></tbody></table></div><h3><a name="xmlAddElementDecl" id="xmlAddElementDecl"></a>Function: xmlAddElementDecl</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> xmlAddElementDecl (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-tree.html#xmlElementTypeVal">xmlElementTypeVal</a> type, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content)<br />
+</pre><p>Register a new element declaration</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>pointer to the DTD</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the element type</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the element content tree or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the entity</td></tr></tbody></table></div><h3><a name="xmlAddID" id="xmlAddID"></a>Function: xmlAddID</h3><pre class="programlisting"><a href="libxml-tree.html#xmlIDPtr">xmlIDPtr</a> xmlAddID (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br />
+</pre><p>Register a new id declaration</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>pointer to the document</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value name</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> holding the ID</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the new <a href="libxml-tree.html#xmlIDPtr">xmlIDPtr</a></td></tr></tbody></table></div><h3><a name="xmlAddNotationDecl" id="xmlAddNotationDecl"></a>Function: xmlAddNotationDecl</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> xmlAddNotationDecl (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * PublicID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
+</pre><p>Register a new notation declaration</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>pointer to the DTD</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entity name</td></tr><tr><td><span class="term"><i><tt>PublicID</tt></i>:</span></td><td>the public identifier or NULL</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the system identifier or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the entity</td></tr></tbody></table></div><h3><a name="xmlAddRef" id="xmlAddRef"></a>Function: xmlAddRef</h3><pre class="programlisting"><a href="libxml-tree.html#xmlRefPtr">xmlRefPtr</a> xmlAddRef (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br />
+</pre><p>Register a new ref declaration</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>pointer to the document</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value name</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> holding the Ref</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the new <a href="libxml-tree.html#xmlRefPtr">xmlRefPtr</a></td></tr></tbody></table></div><h3><a name="xmlCopyAttributeTable" id="xmlCopyAttributeTable"></a>Function: xmlCopyAttributeTable</h3><pre class="programlisting"><a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> xmlCopyAttributeTable (<a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table)<br />
+</pre><p>Build a copy of an <a href="libxml-SAX.html#attribute">attribute</a> table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An <a href="libxml-SAX.html#attribute">attribute</a> table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyDocElementContent" id="xmlCopyDocElementContent"></a>Function: xmlCopyDocElementContent</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlCopyDocElementContent (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)<br />
+</pre><p>Build a copy of an element content description.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document owning the element declaration</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>An element content pointer.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyElementContent" id="xmlCopyElementContent"></a>Function: xmlCopyElementContent</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlCopyElementContent (<a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)<br />
+</pre><p>Build a copy of an element content description. Deprecated, use <a href="libxml-valid.html#xmlCopyDocElementContent">xmlCopyDocElementContent</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>An element content pointer.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyElementTable" id="xmlCopyElementTable"></a>Function: xmlCopyElementTable</h3><pre class="programlisting"><a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> xmlCopyElementTable (<a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table)<br />
+</pre><p>Build a copy of an element table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An element table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyEnumeration" id="xmlCopyEnumeration"></a>Function: xmlCopyEnumeration</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> xmlCopyEnumeration (<a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur)<br />
+</pre><p>Copy an enumeration <a href="libxml-SAX.html#attribute">attribute</a> node (recursive).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the tree to copy.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> just created or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNotationTable" id="xmlCopyNotationTable"></a>Function: xmlCopyNotationTable</h3><pre class="programlisting"><a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> xmlCopyNotationTable (<a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table)<br />
+</pre><p>Build a copy of a notation table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>A notation table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCreateEnumeration" id="xmlCreateEnumeration"></a>Function: xmlCreateEnumeration</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> xmlCreateEnumeration (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>create and initialize an enumeration <a href="libxml-SAX.html#attribute">attribute</a> node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the enumeration name or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> just created or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlDumpAttributeDecl" id="xmlDumpAttributeDecl"></a>Function: xmlDumpAttributeDecl</h3><pre class="programlisting">void xmlDumpAttributeDecl (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr)<br />
+</pre><p>This will dump the content of the <a href="libxml-SAX.html#attribute">attribute</a> declaration as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>An <a href="libxml-SAX.html#attribute">attribute</a> declaration</td></tr></tbody></table></div><h3><a name="xmlDumpAttributeTable" id="xmlDumpAttributeTable"></a>Function: xmlDumpAttributeTable</h3><pre class="programlisting">void xmlDumpAttributeTable (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table)<br />
+</pre><p>This will dump the content of the <a href="libxml-SAX.html#attribute">attribute</a> table as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An <a href="libxml-SAX.html#attribute">attribute</a> table</td></tr></tbody></table></div><h3><a name="xmlDumpElementDecl" id="xmlDumpElementDecl"></a>Function: xmlDumpElementDecl</h3><pre class="programlisting">void xmlDumpElementDecl (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem)<br />
+</pre><p>This will dump the content of the element declaration as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>An element table</td></tr></tbody></table></div><h3><a name="xmlDumpElementTable" id="xmlDumpElementTable"></a>Function: xmlDumpElementTable</h3><pre class="programlisting">void xmlDumpElementTable (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table)<br />
+</pre><p>This will dump the content of the element table as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An element table</td></tr></tbody></table></div><h3><a name="xmlDumpNotationDecl" id="xmlDumpNotationDecl"></a>Function: xmlDumpNotationDecl</h3><pre class="programlisting">void xmlDumpNotationDecl (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota)<br />
+</pre><p>This will dump the content the notation declaration as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>nota</tt></i>:</span></td><td>A notation declaration</td></tr></tbody></table></div><h3><a name="xmlDumpNotationTable" id="xmlDumpNotationTable"></a>Function: xmlDumpNotationTable</h3><pre class="programlisting">void xmlDumpNotationTable (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table)<br />
+</pre><p>This will dump the content of the notation table as an XML DTD definition</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the XML buffer output</td></tr><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>A notation table</td></tr></tbody></table></div><h3><a name="xmlFreeAttributeTable" id="xmlFreeAttributeTable"></a>Function: xmlFreeAttributeTable</h3><pre class="programlisting">void xmlFreeAttributeTable (<a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table)<br />
+</pre><p>Deallocate the memory used by an entities hash table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An <a href="libxml-SAX.html#attribute">attribute</a> table</td></tr></tbody></table></div><h3><a name="xmlFreeDocElementContent" id="xmlFreeDocElementContent"></a>Function: xmlFreeDocElementContent</h3><pre class="programlisting">void xmlFreeDocElementContent (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)<br />
+</pre><p>Free an element content structure. The whole subtree is removed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document owning the element declaration</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the element content tree to free</td></tr></tbody></table></div><h3><a name="xmlFreeElementContent" id="xmlFreeElementContent"></a>Function: xmlFreeElementContent</h3><pre class="programlisting">void xmlFreeElementContent (<a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur)<br />
+</pre><p>Free an element content structure. The whole subtree is removed. Deprecated, use <a href="libxml-valid.html#xmlFreeDocElementContent">xmlFreeDocElementContent</a> instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the element content tree to free</td></tr></tbody></table></div><h3><a name="xmlFreeElementTable" id="xmlFreeElementTable"></a>Function: xmlFreeElementTable</h3><pre class="programlisting">void xmlFreeElementTable (<a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table)<br />
+</pre><p>Deallocate the memory used by an element hash table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An element table</td></tr></tbody></table></div><h3><a name="xmlFreeEnumeration" id="xmlFreeEnumeration"></a>Function: xmlFreeEnumeration</h3><pre class="programlisting">void xmlFreeEnumeration (<a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur)<br />
+</pre><p>free an enumeration <a href="libxml-SAX.html#attribute">attribute</a> node (recursive).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the tree to free.</td></tr></tbody></table></div><h3><a name="xmlFreeIDTable" id="xmlFreeIDTable"></a>Function: xmlFreeIDTable</h3><pre class="programlisting">void xmlFreeIDTable (<a href="libxml-valid.html#xmlIDTablePtr">xmlIDTablePtr</a> table)<br />
+</pre><p>Deallocate the memory used by an ID hash table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An id table</td></tr></tbody></table></div><h3><a name="xmlFreeNotationTable" id="xmlFreeNotationTable"></a>Function: xmlFreeNotationTable</h3><pre class="programlisting">void xmlFreeNotationTable (<a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table)<br />
+</pre><p>Deallocate the memory used by an entities hash table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An notation table</td></tr></tbody></table></div><h3><a name="xmlFreeRefTable" id="xmlFreeRefTable"></a>Function: xmlFreeRefTable</h3><pre class="programlisting">void xmlFreeRefTable (<a href="libxml-valid.html#xmlRefTablePtr">xmlRefTablePtr</a> table)<br />
+</pre><p>Deallocate the memory used by an Ref hash table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>An ref table</td></tr></tbody></table></div><h3><a name="xmlFreeValidCtxt" id="xmlFreeValidCtxt"></a>Function: xmlFreeValidCtxt</h3><pre class="programlisting">void xmlFreeValidCtxt (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> cur)<br />
+</pre><p>Free a validation context structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the validation context to free</td></tr></tbody></table></div><h3><a name="xmlGetDtdAttrDesc" id="xmlGetDtdAttrDesc"></a>Function: xmlGetDtdAttrDesc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> xmlGetDtdAttrDesc (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Search the DTD for the description of this <a href="libxml-SAX.html#attribute">attribute</a> on this element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a pointer to the DtD to search</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> if found or NULL</td></tr></tbody></table></div><h3><a name="xmlGetDtdElementDesc" id="xmlGetDtdElementDesc"></a>Function: xmlGetDtdElementDesc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> xmlGetDtdElementDesc (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Search the DTD for the description of this element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a pointer to the DtD to search</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> if found or NULL</td></tr></tbody></table></div><h3><a name="xmlGetDtdNotationDesc" id="xmlGetDtdNotationDesc"></a>Function: xmlGetDtdNotationDesc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> xmlGetDtdNotationDesc (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Search the DTD for the description of this notation</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a pointer to the DtD to search</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the notation name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> if found or NULL</td></tr></tbody></table></div><h3><a name="xmlGetDtdQAttrDesc" id="xmlGetDtdQAttrDesc"></a>Function: xmlGetDtdQAttrDesc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> xmlGetDtdQAttrDesc (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br />
+</pre><p>Search the DTD for the description of this qualified <a href="libxml-SAX.html#attribute">attribute</a> on this element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a pointer to the DtD to search</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> namespace prefix</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> if found or NULL</td></tr></tbody></table></div><h3><a name="xmlGetDtdQElementDesc" id="xmlGetDtdQElementDesc"></a>Function: xmlGetDtdQElementDesc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> xmlGetDtdQElementDesc (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br />
+</pre><p>Search the DTD for the description of this element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a pointer to the DtD to search</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the element namespace prefix</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> if found or NULL</td></tr></tbody></table></div><h3><a name="xmlGetID" id="xmlGetID"></a>Function: xmlGetID</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> xmlGetID (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID)<br />
+</pre><p>Search the <a href="libxml-SAX.html#attribute">attribute</a> declaring the given ID</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>pointer to the document</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the ID value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not found, otherwise the <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> defining the ID</td></tr></tbody></table></div><h3><a name="xmlGetRefs" id="xmlGetRefs"></a>Function: xmlGetRefs</h3><pre class="programlisting"><a href="libxml-list.html#xmlListPtr">xmlListPtr</a> xmlGetRefs (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID)<br />
+</pre><p>Find the set of references for the supplied ID.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>pointer to the document</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the ID value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not found, otherwise node set for the ID.</td></tr></tbody></table></div><h3><a name="xmlIsID" id="xmlIsID"></a>Function: xmlIsID</h3><pre class="programlisting">int xmlIsID (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br />
+</pre><p>Determine whether an <a href="libxml-SAX.html#attribute">attribute</a> is of type ID. In case we have DTD(s) then this is done if DTD loading has been requested. In the case of HTML documents parsed with the HTML parser, then ID detection is done systematically.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element carrying the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or 1 depending on the lookup result</td></tr></tbody></table></div><h3><a name="xmlIsMixedElement" id="xmlIsMixedElement"></a>Function: xmlIsMixedElement</h3><pre class="programlisting">int xmlIsMixedElement (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Search in the DtDs whether an element accept Mixed content (or ANY) basically if it is supposed to accept text childs</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no, 1 if yes, and -1 if no element description is available</td></tr></tbody></table></div><h3><a name="xmlIsRef" id="xmlIsRef"></a>Function: xmlIsRef</h3><pre class="programlisting">int xmlIsRef (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br />
+</pre><p>Determine whether an <a href="libxml-SAX.html#attribute">attribute</a> is of type Ref. In case we have DTD(s) then this is simple, otherwise we use an heuristic: name Ref (upper or lowercase).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the element carrying the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or 1 depending on the lookup result</td></tr></tbody></table></div><h3><a name="xmlNewDocElementContent" id="xmlNewDocElementContent"></a>Function: xmlNewDocElementContent</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlNewDocElementContent (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-tree.html#xmlElementContentType">xmlElementContentType</a> type)<br />
+</pre><p>Allocate an element content structure for the document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the subelement name or NULL</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of element content decl</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the new element content structure</td></tr></tbody></table></div><h3><a name="xmlNewElementContent" id="xmlNewElementContent"></a>Function: xmlNewElementContent</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlNewElementContent (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-tree.html#xmlElementContentType">xmlElementContentType</a> type)<br />
+</pre><p>Allocate an element content structure. Deprecated in favor of <a href="libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the subelement name or NULL</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of element content decl</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the new element content structure</td></tr></tbody></table></div><h3><a name="xmlNewValidCtxt" id="xmlNewValidCtxt"></a>Function: xmlNewValidCtxt</h3><pre class="programlisting"><a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> xmlNewValidCtxt (void)<br />
+</pre><p>Allocate a validation context structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not, otherwise the new validation context structure</td></tr></tbody></table></div><h3><a name="xmlRemoveID" id="xmlRemoveID"></a>Function: xmlRemoveID</h3><pre class="programlisting">int xmlRemoveID (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br />
+</pre><p>Remove the given <a href="libxml-SAX.html#attribute">attribute</a> from the ID table maintained internally.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 if the lookup failed and 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlRemoveRef" id="xmlRemoveRef"></a>Function: xmlRemoveRef</h3><pre class="programlisting">int xmlRemoveRef (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr)<br />
+</pre><p>Remove the given <a href="libxml-SAX.html#attribute">attribute</a> from the Ref table maintained internally.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 if the lookup failed and 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlSnprintfElementContent" id="xmlSnprintfElementContent"></a>Function: xmlSnprintfElementContent</h3><pre class="programlisting">void xmlSnprintfElementContent (char * buf, <br /> int size, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content, <br /> int englob)<br />
+</pre><p>This will dump the content of the element content definition Intended just for the debug routine</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output buffer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the buffer size</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>An element table</td></tr><tr><td><span class="term"><i><tt>englob</tt></i>:</span></td><td>1 if one must print the englobing parenthesis, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlSprintfElementContent" id="xmlSprintfElementContent"></a>Function: xmlSprintfElementContent</h3><pre class="programlisting">void xmlSprintfElementContent (char * buf, <br /> <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content, <br /> int englob)<br />
+</pre><p>Deprecated, unsafe, use <a href="libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output buffer</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>An element table</td></tr><tr><td><span class="term"><i><tt>englob</tt></i>:</span></td><td>1 if one must print the englobing parenthesis, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidBuildContentModel" id="xmlValidBuildContentModel"></a>Function: xmlValidBuildContentModel</h3><pre class="programlisting">int xmlValidBuildContentModel (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem)<br />
+</pre><p>(Re)Build the automata associated to the content model of this element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a validation context</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element declaration node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, 0 in case of error</td></tr></tbody></table></div><h3><a name="xmlValidCtxtNormalizeAttributeValue" id="xmlValidCtxtNormalizeAttributeValue"></a>Function: xmlValidCtxtNormalizeAttributeValue</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlValidCtxtNormalizeAttributeValue (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Does the validation related extra step of the normalization of <a href="libxml-SAX.html#attribute">attribute</a> values: If the declared value is not CDATA, then the XML processor must further process the normalized <a href="libxml-SAX.html#attribute">attribute</a> value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) <a href="libxml-SAX.html#characters">characters</a> by single space (#x20) character. Also check VC: Standalone Document Declaration in P32, and update ctxt-&gt;valid accordingly</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context or NULL</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the parent</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.</td></tr></tbody></table></div><h3><a name="xmlValidGetPotentialChildren" id="xmlValidGetPotentialChildren"></a>Function: xmlValidGetPotentialChildren</h3><pre class="programlisting">int xmlValidGetPotentialChildren (<a href="libxml-tree.html#xmlElementContent">xmlElementContent</a> * ctree, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** names, <br /> int * len, <br /> int max)<br />
+</pre><p>Build/extend a list of potential children allowed by the content tree</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctree</tt></i>:</span></td><td>an element content tree</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>an array to store the list of child names</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>a pointer to the number of element in the list</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of element in the list, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlValidGetValidElements" id="xmlValidGetValidElements"></a>Function: xmlValidGetValidElements</h3><pre class="programlisting">int xmlValidGetValidElements (<a href="libxml-tree.html#xmlNode">xmlNode</a> * prev, <br /> <a href="libxml-tree.html#xmlNode">xmlNode</a> * next, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** names, <br /> int max)<br />
+</pre><p>This function returns the list of authorized children to insert within an existing tree while respecting the validity constraints forced by the Dtd. The insertion point is defined using @prev and @next in the following ways: to insert before 'node': xmlValidGetValidElements(node-&gt;prev, node, ... to insert next 'node': xmlValidGetValidElements(node, node-&gt;next, ... to replace 'node': xmlValidGetValidElements(node-&gt;prev, node-&gt;next, ... to prepend a child to 'node': xmlValidGetValidElements(NULL, node-&gt;childs, to append a child to 'node': xmlValidGetValidElements(node-&gt;last, NULL, ... pointers to the element names are inserted at the beginning of the array and do not need to be freed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>prev</tt></i>:</span></td><td>an element to insert after</td></tr><tr><td><span class="term"><i><tt>next</tt></i>:</span></td><td>an element to insert next</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>an array to store the list of child names</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of element in the list, or -1 in case of error. If the function returns the value @max the caller is invited to grow the receiving array and retry.</td></tr></tbody></table></div><h3><a name="xmlValidNormalizeAttributeValue" id="xmlValidNormalizeAttributeValue"></a>Function: xmlValidNormalizeAttributeValue</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlValidNormalizeAttributeValue (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Does the validation related extra step of the normalization of <a href="libxml-SAX.html#attribute">attribute</a> values: If the declared value is not CDATA, then the XML processor must further process the normalized <a href="libxml-SAX.html#attribute">attribute</a> value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) <a href="libxml-SAX.html#characters">characters</a> by single space (#x20) character.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>the parent</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.</td></tr></tbody></table></div><h3><a name="xmlValidateAttributeDecl" id="xmlValidateAttributeDecl"></a>Function: xmlValidateAttributeDecl</h3><pre class="programlisting">int xmlValidateAttributeDecl (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr)<br />
+</pre><p>Try to validate a single <a href="libxml-SAX.html#attribute">attribute</a> definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Default Legal ] - [ VC: Enumeration ] - [ VC: ID Attribute Default ] The ID/IDREF uniqueness and matching are done separately</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>an <a href="libxml-SAX.html#attribute">attribute</a> definition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateAttributeValue" id="xmlValidateAttributeValue"></a>Function: xmlValidateAttributeValue</h3><pre class="programlisting">int xmlValidateAttributeValue (<a href="libxml-tree.html#xmlAttributeType">xmlAttributeType</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Validate that the given <a href="libxml-SAX.html#attribute">attribute</a> value match the proper production [ VC: ID ] Values of type ID must match the Name production.... [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names ... [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names ... [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>an <a href="libxml-SAX.html#attribute">attribute</a> type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>an <a href="libxml-SAX.html#attribute">attribute</a> value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateDocument" id="xmlValidateDocument"></a>Function: xmlValidateDocument</h3><pre class="programlisting">int xmlValidateDocument (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Try to validate the document instance basically it does the all the checks described by the XML Rec i.e. validates the internal and external subset (if present) and validate the document tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateDocumentFinal" id="xmlValidateDocumentFinal"></a>Function: xmlValidateDocumentFinal</h3><pre class="programlisting">int xmlValidateDocumentFinal (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Does the final step for the document validation once all the incremental validation steps have been completed basically it does the following checks described by the XML Rec Check all the IDREF/IDREFS attributes definition for validity</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateDtd" id="xmlValidateDtd"></a>Function: xmlValidateDtd</h3><pre class="programlisting">int xmlValidateDtd (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)<br />
+</pre><p>Try to validate the document against the dtd instance Basically it does check all the definitions in the DtD. Note the the internal subset (if present) is de-coupled (i.e. not used), which could give problems if ID or IDREF is present.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>a dtd instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateDtdFinal" id="xmlValidateDtdFinal"></a>Function: xmlValidateDtdFinal</h3><pre class="programlisting">int xmlValidateDtdFinal (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Does the final step for the dtds validation once all the subsets have been parsed basically it does the following checks described by the XML Rec - check that ENTITY and ENTITIES type attributes default or possible values matches one of the defined entities. - check that NOTATION type attributes default or possible values matches one of the defined notations.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 if invalid and -1 if not well-formed</td></tr></tbody></table></div><h3><a name="xmlValidateElement" id="xmlValidateElement"></a>Function: xmlValidateElement</h3><pre class="programlisting">int xmlValidateElement (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br />
+</pre><p>Try to validate the subtree under an element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateElementDecl" id="xmlValidateElementDecl"></a>Function: xmlValidateElementDecl</h3><pre class="programlisting">int xmlValidateElementDecl (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem)<br />
+</pre><p>Try to validate a single element definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: One ID per Element Type ] - [ VC: No Duplicate Types ] - [ VC: Unique Element Type Declaration ]</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element definition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateNameValue" id="xmlValidateNameValue"></a>Function: xmlValidateNameValue</h3><pre class="programlisting">int xmlValidateNameValue (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Validate that the given value match Name production</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>an Name value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateNamesValue" id="xmlValidateNamesValue"></a>Function: xmlValidateNamesValue</h3><pre class="programlisting">int xmlValidateNamesValue (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Validate that the given value match Names production</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>an Names value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateNmtokenValue" id="xmlValidateNmtokenValue"></a>Function: xmlValidateNmtokenValue</h3><pre class="programlisting">int xmlValidateNmtokenValue (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Validate that the given value match Nmtoken production [ VC: Name Token ]</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>an Nmtoken value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateNmtokensValue" id="xmlValidateNmtokensValue"></a>Function: xmlValidateNmtokensValue</h3><pre class="programlisting">int xmlValidateNmtokensValue (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Validate that the given value match Nmtokens production [ VC: Name Token ]</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>an Nmtokens value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateNotationDecl" id="xmlValidateNotationDecl"></a>Function: xmlValidateNotationDecl</h3><pre class="programlisting">int xmlValidateNotationDecl (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota)<br />
+</pre><p>Try to validate a single notation definition basically it does the following checks as described by the XML-1.0 recommendation: - it seems that no validity constraint exists on notation declarations But this function get called anyway ...</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>nota</tt></i>:</span></td><td>a notation definition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateNotationUse" id="xmlValidateNotationUse"></a>Function: xmlValidateNotationUse</h3><pre class="programlisting">int xmlValidateNotationUse (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * notationName)<br />
+</pre><p>Validate that the given name match a notation declaration. - [ VC: Notation Declared ]</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i>:</span></td><td>the notation name to check</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateOneAttribute" id="xmlValidateOneAttribute"></a>Function: xmlValidateOneAttribute</h3><pre class="programlisting">int xmlValidateOneAttribute (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Try to validate a single <a href="libxml-SAX.html#attribute">attribute</a> for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF uniqueness and matching are done separately</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>an <a href="libxml-SAX.html#attribute">attribute</a> instance</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> value (without entities processing)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateOneElement" id="xmlValidateOneElement"></a>Function: xmlValidateOneElement</h3><pre class="programlisting">int xmlValidateOneElement (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br />
+</pre><p>Try to validate a single element and it's attributes, basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: Required Attribute ] Then call xmlValidateOneAttribute() for each <a href="libxml-SAX.html#attribute">attribute</a> present. The ID/IDREF checkings are done separately</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateOneNamespace" id="xmlValidateOneNamespace"></a>Function: xmlValidateOneNamespace</h3><pre class="programlisting">int xmlValidateOneNamespace (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Try to validate a single namespace declaration for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF uniqueness and matching are done separately</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>an namespace declaration instance</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the <a href="libxml-SAX.html#attribute">attribute</a> value (without entities processing)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidatePopElement" id="xmlValidatePopElement"></a>Function: xmlValidatePopElement</h3><pre class="programlisting">int xmlValidatePopElement (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * qname)<br />
+</pre><p>Pop the element end from the validation stack.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>qname</tt></i>:</span></td><td>the qualified name as appearing in the serialization</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidatePushCData" id="xmlValidatePushCData"></a>Function: xmlValidatePushCData</h3><pre class="programlisting">int xmlValidatePushCData (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * data, <br /> int len)<br />
+</pre><p>check the CData parsed for validation in the current stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>some character data read</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidatePushElement" id="xmlValidatePushElement"></a>Function: xmlValidatePushElement</h3><pre class="programlisting">int xmlValidatePushElement (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * qname)<br />
+</pre><p>Push a new element start on the validation stack.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element instance</td></tr><tr><td><span class="term"><i><tt>qname</tt></i>:</span></td><td>the qualified name as appearing in the serialization</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if no validation problem was found or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidateRoot" id="xmlValidateRoot"></a>Function: xmlValidateRoot</h3><pre class="programlisting">int xmlValidateRoot (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Try to validate a the root element basically it does the following check as described by the XML-1.0 recommendation: - [ VC: Root Element Type ] it doesn't try to recurse or apply other check to the element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document instance</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid or 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlValidityErrorFunc" id="xmlValidityErrorFunc"></a>Function type: xmlValidityErrorFunc</h3><pre class="programlisting">Function type: xmlValidityErrorFunc
+void xmlValidityErrorFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Callback called when a validity error is found. This is a message oriented function similar to an *printf function.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>usually an <a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the string to format *printf like vararg</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>remaining arguments to the format</td></tr></tbody></table></div><br />
+<h3><a name="xmlValidityWarningFunc" id="xmlValidityWarningFunc"></a>Function type: xmlValidityWarningFunc</h3><pre class="programlisting">Function type: xmlValidityWarningFunc
+void xmlValidityWarningFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Callback called when a validity warning is found. This is a message oriented function similar to an *printf function.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>usually an <a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the string to format *printf like vararg</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>remaining arguments to the format</td></tr></tbody></table></div><br />
+<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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xinclude.html b/libxml2-2.9.10/doc/html/libxml-xinclude.html
new file mode 100644
index 0000000..5fcf09b
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xinclude.html
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xinclude from libxml2</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></h1><h2>Module xinclude from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-valid.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-valid.html">valid</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xlink.html">xlink</a></th><td><a accesskey="n" href="libxml-xlink.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>API to handle XInclude processing, implements the World Wide Web Consortium Last Call Working Draft 10 November 2003</p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XINCLUDE_FALLBACK">XINCLUDE_FALLBACK</a></pre><pre class="programlisting">#define <a href="#XINCLUDE_HREF">XINCLUDE_HREF</a></pre><pre class="programlisting">#define <a href="#XINCLUDE_NODE">XINCLUDE_NODE</a></pre><pre class="programlisting">#define <a href="#XINCLUDE_NS">XINCLUDE_NS</a></pre><pre class="programlisting">#define <a href="#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a></pre><pre class="programlisting">#define <a href="#XINCLUDE_PARSE">XINCLUDE_PARSE</a></pre><pre class="programlisting">#define <a href="#XINCLUDE_PARSE_ENCODING">XINCLUDE_PARSE_ENCODING</a></pre><pre class="programlisting">#define <a href="#XINCLUDE_PARSE_TEXT">XINCLUDE_PARSE_TEXT</a></pre><pre class="programlisting">#define <a href="#XINCLUDE_PARSE_XML">XINCLUDE_PARSE_XML</a></pre><pre class="programlisting">#define <a href="#XINCLUDE_PARSE_XPOINTER">XINCLUDE_PARSE_XPOINTER</a></pre><pre class="programlisting">Structure <a href="#xmlXIncludeCtxt">xmlXIncludeCtxt</a><br />struct _xmlXIncludeCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xinclude.html#xmlXIncludeCtxt">xmlXIncludeCtxt</a> * <a name="xmlXIncludeCtxtPtr" id="xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a>
+</pre><pre class="programlisting">void <a href="#xmlXIncludeFreeContext">xmlXIncludeFreeContext</a> (<a href="libxml-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> <a href="#xmlXIncludeNewContext">xmlXIncludeNewContext</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#xmlXIncludeProcess">xmlXIncludeProcess</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> int flags)</pre>
+<pre class="programlisting">int <a href="#xmlXIncludeProcessFlagsData">xmlXIncludeProcessFlagsData</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> int flags, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a> (<a href="libxml-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">int <a href="#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree)</pre>
+<pre class="programlisting">int <a href="#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br /> int flags)</pre>
+<pre class="programlisting">int <a href="#xmlXIncludeProcessTreeFlagsData">xmlXIncludeProcessTreeFlagsData</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br /> int flags, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a> (<a href="libxml-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt, <br /> int flags)</pre>
+<h2>Description</h2>
+<h3><a name="XINCLUDE_FALLBACK" id="XINCLUDE_FALLBACK"></a>Macro: XINCLUDE_FALLBACK</h3><pre>#define XINCLUDE_FALLBACK</pre><p>Macro defining "fallback"</p>
+<h3><a name="XINCLUDE_HREF" id="XINCLUDE_HREF"></a>Macro: XINCLUDE_HREF</h3><pre>#define XINCLUDE_HREF</pre><p>Macro defining "href"</p>
+<h3><a name="XINCLUDE_NODE" id="XINCLUDE_NODE"></a>Macro: XINCLUDE_NODE</h3><pre>#define XINCLUDE_NODE</pre><p>Macro defining "include"</p>
+<h3><a name="XINCLUDE_NS" id="XINCLUDE_NS"></a>Macro: XINCLUDE_NS</h3><pre>#define XINCLUDE_NS</pre><p>Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude</p>
+<h3><a name="XINCLUDE_OLD_NS" id="XINCLUDE_OLD_NS"></a>Macro: XINCLUDE_OLD_NS</h3><pre>#define XINCLUDE_OLD_NS</pre><p>Macro defining the draft Xinclude namespace: http://www.w3.org/2001/XInclude</p>
+<h3><a name="XINCLUDE_PARSE" id="XINCLUDE_PARSE"></a>Macro: XINCLUDE_PARSE</h3><pre>#define XINCLUDE_PARSE</pre><p>Macro defining "parse"</p>
+<h3><a name="XINCLUDE_PARSE_ENCODING" id="XINCLUDE_PARSE_ENCODING"></a>Macro: XINCLUDE_PARSE_ENCODING</h3><pre>#define XINCLUDE_PARSE_ENCODING</pre><p>Macro defining "encoding"</p>
+<h3><a name="XINCLUDE_PARSE_TEXT" id="XINCLUDE_PARSE_TEXT"></a>Macro: XINCLUDE_PARSE_TEXT</h3><pre>#define XINCLUDE_PARSE_TEXT</pre><p>Macro defining "text"</p>
+<h3><a name="XINCLUDE_PARSE_XML" id="XINCLUDE_PARSE_XML"></a>Macro: XINCLUDE_PARSE_XML</h3><pre>#define XINCLUDE_PARSE_XML</pre><p>Macro defining "xml"</p>
+<h3><a name="XINCLUDE_PARSE_XPOINTER" id="XINCLUDE_PARSE_XPOINTER"></a>Macro: XINCLUDE_PARSE_XPOINTER</h3><pre>#define XINCLUDE_PARSE_XPOINTER</pre><p>Macro defining "xpointer"</p>
+<h3><a name="xmlXIncludeCtxt" id="xmlXIncludeCtxt">Structure xmlXIncludeCtxt</a></h3><pre class="programlisting">Structure xmlXIncludeCtxt<br />struct _xmlXIncludeCtxt {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlXIncludeFreeContext" id="xmlXIncludeFreeContext"></a>Function: xmlXIncludeFreeContext</h3><pre class="programlisting">void xmlXIncludeFreeContext (<a href="libxml-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt)<br />
+</pre><p>Free an XInclude context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XInclude context</td></tr></tbody></table></div><h3><a name="xmlXIncludeNewContext" id="xmlXIncludeNewContext"></a>Function: xmlXIncludeNewContext</h3><pre class="programlisting"><a href="libxml-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> xmlXIncludeNewContext (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Creates a new XInclude context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an XML Document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new set</td></tr></tbody></table></div><h3><a name="xmlXIncludeProcess" id="xmlXIncludeProcess"></a>Function: xmlXIncludeProcess</h3><pre class="programlisting">int xmlXIncludeProcess (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Implement the XInclude substitution on the XML document @doc</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div><h3><a name="xmlXIncludeProcessFlags" id="xmlXIncludeProcessFlags"></a>Function: xmlXIncludeProcessFlags</h3><pre class="programlisting">int xmlXIncludeProcessFlags (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> int flags)<br />
+</pre><p>Implement the XInclude substitution on the XML document @doc</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an XML document</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a> used for parsing XML includes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div><h3><a name="xmlXIncludeProcessFlagsData" id="xmlXIncludeProcessFlagsData"></a>Function: xmlXIncludeProcessFlagsData</h3><pre class="programlisting">int xmlXIncludeProcessFlagsData (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> int flags, <br /> void * data)<br />
+</pre><p>Implement the XInclude substitution on the XML document @doc</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an XML document</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a> used for parsing XML includes</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>application data that will be passed to the parser context in the _private field of the parser context(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div><h3><a name="xmlXIncludeProcessNode" id="xmlXIncludeProcessNode"></a>Function: xmlXIncludeProcessNode</h3><pre class="programlisting">int xmlXIncludeProcessNode (<a href="libxml-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Implement the XInclude substitution for the given subtree reusing the informations and data coming from the given context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an existing XInclude context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node in an XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div><h3><a name="xmlXIncludeProcessTree" id="xmlXIncludeProcessTree"></a>Function: xmlXIncludeProcessTree</h3><pre class="programlisting">int xmlXIncludeProcessTree (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree)<br />
+</pre><p>Implement the XInclude substitution for the given subtree</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>a node in an XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div><h3><a name="xmlXIncludeProcessTreeFlags" id="xmlXIncludeProcessTreeFlags"></a>Function: xmlXIncludeProcessTreeFlags</h3><pre class="programlisting">int xmlXIncludeProcessTreeFlags (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br /> int flags)<br />
+</pre><p>Implement the XInclude substitution for the given subtree</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>a node in an XML document</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a> used for parsing XML includes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div><h3><a name="xmlXIncludeProcessTreeFlagsData" id="xmlXIncludeProcessTreeFlagsData"></a>Function: xmlXIncludeProcessTreeFlagsData</h3><pre class="programlisting">int xmlXIncludeProcessTreeFlagsData (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> tree, <br /> int flags, <br /> void * data)<br />
+</pre><p>Implement the XInclude substitution on the XML node @tree</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>an XML node</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a> used for parsing XML includes</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>application data that will be passed to the parser context in the _private field of the parser context(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no substitution were done, -1 if some processing failed or the number of substitutions done.</td></tr></tbody></table></div><h3><a name="xmlXIncludeSetFlags" id="xmlXIncludeSetFlags"></a>Function: xmlXIncludeSetFlags</h3><pre class="programlisting">int xmlXIncludeSetFlags (<a href="libxml-xinclude.html#xmlXIncludeCtxtPtr">xmlXIncludeCtxtPtr</a> ctxt, <br /> int flags)<br />
+</pre><p>Set the flags used for further processing of XML resources.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XInclude processing context</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>a set of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a> used for parsing XML includes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xlink.html b/libxml2-2.9.10/doc/html/libxml-xlink.html
new file mode 100644
index 0000000..b5dc078
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xlink.html
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xlink from libxml2</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></h1><h2>Module xlink from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xinclude.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xinclude.html">xinclude</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlIO.html">xmlIO</a></th><td><a accesskey="n" href="libxml-xmlIO.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>unfinished XLink detection module </p><h2>Table of Contents</h2><pre class="programlisting">Enum <a href="#xlinkActuate">xlinkActuate</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a name="xlinkHRef" id="xlinkHRef">xlinkHRef</a>
+</pre><pre class="programlisting">Structure <a href="#xlinkHandler">xlinkHandler</a><br />struct _xlinkHandler
+</pre><pre class="programlisting">Typedef <a href="libxml-xlink.html#xlinkHandler">xlinkHandler</a> * <a name="xlinkHandlerPtr" id="xlinkHandlerPtr">xlinkHandlerPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a name="xlinkRole" id="xlinkRole">xlinkRole</a>
+</pre><pre class="programlisting">Enum <a href="#xlinkShow">xlinkShow</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a name="xlinkTitle" id="xlinkTitle">xlinkTitle</a>
+</pre><pre class="programlisting">Enum <a href="#xlinkType">xlinkType</a>
+</pre><pre class="programlisting">Function type: <a href="#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a>
+void <a href="#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a> (void * ctx, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int nbLocators, <br /> const <a href="libxml-xlink.html#xlinkHRef">xlinkHRef</a> * hrefs, <br /> const <a href="libxml-xlink.html#xlinkRole">xlinkRole</a> * roles, <br /> int nbArcs, <br /> const <a href="libxml-xlink.html#xlinkRole">xlinkRole</a> * from, <br /> const <a href="libxml-xlink.html#xlinkRole">xlinkRole</a> * to, <br /> <a href="libxml-xlink.html#xlinkShow">xlinkShow</a> * show, <br /> <a href="libxml-xlink.html#xlinkActuate">xlinkActuate</a> * actuate, <br /> int nbTitles, <br /> const <a href="libxml-xlink.html#xlinkTitle">xlinkTitle</a> * titles, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** langs)
+</pre>
+<pre class="programlisting">Function type: <a href="#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a>
+void <a href="#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a> (void * ctx, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int nbLocators, <br /> const <a href="libxml-xlink.html#xlinkHRef">xlinkHRef</a> * hrefs, <br /> const <a href="libxml-xlink.html#xlinkRole">xlinkRole</a> * roles, <br /> int nbTitles, <br /> const <a href="libxml-xlink.html#xlinkTitle">xlinkTitle</a> * titles, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** langs)
+</pre>
+<pre class="programlisting"><a href="libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a> <a href="#xlinkGetDefaultDetect">xlinkGetDefaultDetect</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a> <a href="#xlinkGetDefaultHandler">xlinkGetDefaultHandler</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-xlink.html#xlinkType">xlinkType</a> <a href="#xlinkIsLink">xlinkIsLink</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">Function type: <a href="#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a>
+void <a href="#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a> (void * ctx, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)
+</pre>
+<pre class="programlisting">void <a href="#xlinkSetDefaultDetect">xlinkSetDefaultDetect</a> (<a href="libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a> func)</pre>
+<pre class="programlisting">void <a href="#xlinkSetDefaultHandler">xlinkSetDefaultHandler</a> (<a href="libxml-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a> handler)</pre>
+<pre class="programlisting">Function type: <a href="#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a>
+void <a href="#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a> (void * ctx, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xlink.html#xlinkHRef">xlinkHRef</a> href, <br /> const <a href="libxml-xlink.html#xlinkRole">xlinkRole</a> role, <br /> const <a href="libxml-xlink.html#xlinkTitle">xlinkTitle</a> title)
+</pre>
+<h2>Description</h2>
+<h3>Enum <a name="xlinkActuate" id="xlinkActuate">xlinkActuate</a></h3><pre class="programlisting">Enum xlinkActuate {
+ <a name="XLINK_ACTUATE_NONE" id="XLINK_ACTUATE_NONE">XLINK_ACTUATE_NONE</a> = 0
+ <a name="XLINK_ACTUATE_AUTO" id="XLINK_ACTUATE_AUTO">XLINK_ACTUATE_AUTO</a> = 1
+ <a name="XLINK_ACTUATE_ONREQUEST" id="XLINK_ACTUATE_ONREQUEST">XLINK_ACTUATE_ONREQUEST</a> = 2
+}
+</pre><h3><a name="xlinkHandler" id="xlinkHandler">Structure xlinkHandler</a></h3><pre class="programlisting">Structure xlinkHandler<br />struct _xlinkHandler {
+ <a href="libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a> simple
+ <a href="libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a> extended
+ <a href="libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a> set
+}</pre><h3>Enum <a name="xlinkShow" id="xlinkShow">xlinkShow</a></h3><pre class="programlisting">Enum xlinkShow {
+ <a name="XLINK_SHOW_NONE" id="XLINK_SHOW_NONE">XLINK_SHOW_NONE</a> = 0
+ <a name="XLINK_SHOW_NEW" id="XLINK_SHOW_NEW">XLINK_SHOW_NEW</a> = 1
+ <a name="XLINK_SHOW_EMBED" id="XLINK_SHOW_EMBED">XLINK_SHOW_EMBED</a> = 2
+ <a name="XLINK_SHOW_REPLACE" id="XLINK_SHOW_REPLACE">XLINK_SHOW_REPLACE</a> = 3
+}
+</pre><h3>Enum <a name="xlinkType" id="xlinkType">xlinkType</a></h3><pre class="programlisting">Enum xlinkType {
+ <a name="XLINK_TYPE_NONE" id="XLINK_TYPE_NONE">XLINK_TYPE_NONE</a> = 0
+ <a name="XLINK_TYPE_SIMPLE" id="XLINK_TYPE_SIMPLE">XLINK_TYPE_SIMPLE</a> = 1
+ <a name="XLINK_TYPE_EXTENDED" id="XLINK_TYPE_EXTENDED">XLINK_TYPE_EXTENDED</a> = 2
+ <a name="XLINK_TYPE_EXTENDED_SET" id="XLINK_TYPE_EXTENDED_SET">XLINK_TYPE_EXTENDED_SET</a> = 3
+}
+</pre><h3><a name="xlinkExtendedLinkFunk" id="xlinkExtendedLinkFunk"></a>Function type: xlinkExtendedLinkFunk</h3><pre class="programlisting">Function type: xlinkExtendedLinkFunk
+void xlinkExtendedLinkFunk (void * ctx, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int nbLocators, <br /> const <a href="libxml-xlink.html#xlinkHRef">xlinkHRef</a> * hrefs, <br /> const <a href="libxml-xlink.html#xlinkRole">xlinkRole</a> * roles, <br /> int nbArcs, <br /> const <a href="libxml-xlink.html#xlinkRole">xlinkRole</a> * from, <br /> const <a href="libxml-xlink.html#xlinkRole">xlinkRole</a> * to, <br /> <a href="libxml-xlink.html#xlinkShow">xlinkShow</a> * show, <br /> <a href="libxml-xlink.html#xlinkActuate">xlinkActuate</a> * actuate, <br /> int nbTitles, <br /> const <a href="libxml-xlink.html#xlinkTitle">xlinkTitle</a> * titles, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** langs)
+</pre><p>This is the prototype for a extended link detection callback.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>user data pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node carrying the link</td></tr><tr><td><span class="term"><i><tt>nbLocators</tt></i>:</span></td><td>the number of locators detected on the link</td></tr><tr><td><span class="term"><i><tt>hrefs</tt></i>:</span></td><td>pointer to the array of locator hrefs</td></tr><tr><td><span class="term"><i><tt>roles</tt></i>:</span></td><td>pointer to the array of locator roles</td></tr><tr><td><span class="term"><i><tt>nbArcs</tt></i>:</span></td><td>the number of arcs detected on the link</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>pointer to the array of source roles found on the arcs</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>pointer to the array of target roles found on the arcs</td></tr><tr><td><span class="term"><i><tt>show</tt></i>:</span></td><td>array of values for the show attributes found on the arcs</td></tr><tr><td><span class="term"><i><tt>actuate</tt></i>:</span></td><td>array of values for the actuate attributes found on the arcs</td></tr><tr><td><span class="term"><i><tt>nbTitles</tt></i>:</span></td><td>the number of titles detected on the link</td></tr><tr><td><span class="term"><i><tt>titles</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>langs</tt></i>:</span></td><td>array of xml:lang values for the titles</td></tr></tbody></table></div><br />
+<h3><a name="xlinkExtendedLinkSetFunk" id="xlinkExtendedLinkSetFunk"></a>Function type: xlinkExtendedLinkSetFunk</h3><pre class="programlisting">Function type: xlinkExtendedLinkSetFunk
+void xlinkExtendedLinkSetFunk (void * ctx, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int nbLocators, <br /> const <a href="libxml-xlink.html#xlinkHRef">xlinkHRef</a> * hrefs, <br /> const <a href="libxml-xlink.html#xlinkRole">xlinkRole</a> * roles, <br /> int nbTitles, <br /> const <a href="libxml-xlink.html#xlinkTitle">xlinkTitle</a> * titles, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** langs)
+</pre><p>This is the prototype for a extended link set detection callback.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>user data pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node carrying the link</td></tr><tr><td><span class="term"><i><tt>nbLocators</tt></i>:</span></td><td>the number of locators detected on the link</td></tr><tr><td><span class="term"><i><tt>hrefs</tt></i>:</span></td><td>pointer to the array of locator hrefs</td></tr><tr><td><span class="term"><i><tt>roles</tt></i>:</span></td><td>pointer to the array of locator roles</td></tr><tr><td><span class="term"><i><tt>nbTitles</tt></i>:</span></td><td>the number of titles detected on the link</td></tr><tr><td><span class="term"><i><tt>titles</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>langs</tt></i>:</span></td><td>array of xml:lang values for the titles</td></tr></tbody></table></div><br />
+<h3><a name="xlinkGetDefaultDetect" id="xlinkGetDefaultDetect"></a>Function: xlinkGetDefaultDetect</h3><pre class="programlisting"><a href="libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a> xlinkGetDefaultDetect (void)<br />
+</pre><p>Get the default xlink detection routine</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current function or NULL;</td></tr></tbody></table></div><h3><a name="xlinkGetDefaultHandler" id="xlinkGetDefaultHandler"></a>Function: xlinkGetDefaultHandler</h3><pre class="programlisting"><a href="libxml-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a> xlinkGetDefaultHandler (void)<br />
+</pre><p>Get the default xlink handler.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a href="libxml-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a> value.</td></tr></tbody></table></div><h3><a name="xlinkIsLink" id="xlinkIsLink"></a>Function: xlinkIsLink</h3><pre class="programlisting"><a href="libxml-xlink.html#xlinkType">xlinkType</a> xlinkIsLink (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Check whether the given node carries the attributes needed to be a link element (or is one of the linking elements issued from the (X)HTML DtDs). This routine don't try to do full checking of the link validity but tries to detect and return the appropriate link type.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document containing the node</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node pointer itself</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xlink.html#xlinkType">xlinkType</a> of the node (XLINK_TYPE_NONE if there is no link detected.</td></tr></tbody></table></div><h3><a name="xlinkNodeDetectFunc" id="xlinkNodeDetectFunc"></a>Function type: xlinkNodeDetectFunc</h3><pre class="programlisting">Function type: xlinkNodeDetectFunc
+void xlinkNodeDetectFunc (void * ctx, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)
+</pre><p>This is the prototype for the link detection routine. It calls the default link detection callbacks upon link detection.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>user data pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to check</td></tr></tbody></table></div><br />
+<h3><a name="xlinkSetDefaultDetect" id="xlinkSetDefaultDetect"></a>Function: xlinkSetDefaultDetect</h3><pre class="programlisting">void xlinkSetDefaultDetect (<a href="libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a> func)<br />
+</pre><p>Set the default xlink detection routine</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>pointer to the new detection routine.</td></tr></tbody></table></div><h3><a name="xlinkSetDefaultHandler" id="xlinkSetDefaultHandler"></a>Function: xlinkSetDefaultHandler</h3><pre class="programlisting">void xlinkSetDefaultHandler (<a href="libxml-xlink.html#xlinkHandlerPtr">xlinkHandlerPtr</a> handler)<br />
+</pre><p>Set the default xlink handlers</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new value for the xlink handler block</td></tr></tbody></table></div><h3><a name="xlinkSimpleLinkFunk" id="xlinkSimpleLinkFunk"></a>Function type: xlinkSimpleLinkFunk</h3><pre class="programlisting">Function type: xlinkSimpleLinkFunk
+void xlinkSimpleLinkFunk (void * ctx, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xlink.html#xlinkHRef">xlinkHRef</a> href, <br /> const <a href="libxml-xlink.html#xlinkRole">xlinkRole</a> role, <br /> const <a href="libxml-xlink.html#xlinkTitle">xlinkTitle</a> title)
+</pre><p>This is the prototype for a simple link detection callback.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>user data pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node carrying the link</td></tr><tr><td><span class="term"><i><tt>href</tt></i>:</span></td><td>the target of the link</td></tr><tr><td><span class="term"><i><tt>role</tt></i>:</span></td><td>the role string</td></tr><tr><td><span class="term"><i><tt>title</tt></i>:</span></td><td>the link title</td></tr></tbody></table></div><br />
+<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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlIO.html b/libxml2-2.9.10/doc/html/libxml-xmlIO.html
new file mode 100644
index 0000000..a3118df
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlIO.html
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlIO from libxml2</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></h1><h2>Module xmlIO from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xlink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xlink.html">xlink</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlautomata.html">xmlautomata</a></th><td><a accesskey="n" href="libxml-xmlautomata.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the I/O interfaces used by the parser </p><h2>Table of Contents</h2><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlAllocOutputBuffer">xmlAllocOutputBuffer</a> (<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a> (<a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting">int <a href="#xmlCheckFilename">xmlCheckFilename</a> (const char * path)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlCheckHTTPInput">xmlCheckHTTPInput</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> ret)</pre>
+<pre class="programlisting">void <a href="#xmlCleanupInputCallbacks">xmlCleanupInputCallbacks</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlCleanupOutputCallbacks">xmlCleanupOutputCallbacks</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlFileClose">xmlFileClose</a> (void * context)</pre>
+<pre class="programlisting">int <a href="#xmlFileMatch">xmlFileMatch</a> (const char * filename)</pre>
+<pre class="programlisting">void * <a href="#xmlFileOpen">xmlFileOpen</a> (const char * filename)</pre>
+<pre class="programlisting">int <a href="#xmlFileRead">xmlFileRead</a> (void * context, <br /> char * buffer, <br /> int len)</pre>
+<pre class="programlisting">void <a href="#xmlFreeParserInputBuffer">xmlFreeParserInputBuffer</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in)</pre>
+<pre class="programlisting">int <a href="#xmlIOFTPClose">xmlIOFTPClose</a> (void * context)</pre>
+<pre class="programlisting">int <a href="#xmlIOFTPMatch">xmlIOFTPMatch</a> (const char * filename)</pre>
+<pre class="programlisting">void * <a href="#xmlIOFTPOpen">xmlIOFTPOpen</a> (const char * filename)</pre>
+<pre class="programlisting">int <a href="#xmlIOFTPRead">xmlIOFTPRead</a> (void * context, <br /> char * buffer, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlIOHTTPClose">xmlIOHTTPClose</a> (void * context)</pre>
+<pre class="programlisting">int <a href="#xmlIOHTTPMatch">xmlIOHTTPMatch</a> (const char * filename)</pre>
+<pre class="programlisting">void * <a href="#xmlIOHTTPOpen">xmlIOHTTPOpen</a> (const char * filename)</pre>
+<pre class="programlisting">void * <a href="#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a> (const char * post_uri, <br /> int compression)</pre>
+<pre class="programlisting">int <a href="#xmlIOHTTPRead">xmlIOHTTPRead</a> (void * context, <br /> char * buffer, <br /> int len)</pre>
+<pre class="programlisting">Function type: <a href="#xmlInputCloseCallback">xmlInputCloseCallback</a>
+int <a href="#xmlInputCloseCallback">xmlInputCloseCallback</a> (void * context)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlInputMatchCallback">xmlInputMatchCallback</a>
+int <a href="#xmlInputMatchCallback">xmlInputMatchCallback</a> (char const * filename)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlInputOpenCallback">xmlInputOpenCallback</a>
+void * <a href="#xmlInputOpenCallback">xmlInputOpenCallback</a> (char const * filename)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlInputReadCallback">xmlInputReadCallback</a>
+int <a href="#xmlInputReadCallback">xmlInputReadCallback</a> (void * context, <br /> char * buffer, <br /> int len)
+</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a> (const char * URL, <br /> const char * ID, <br /> <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * path)</pre>
+<pre class="programlisting">int <a href="#xmlOutputBufferClose">xmlOutputBufferClose</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a> (int fd, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a> (FILE * file, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a> (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder, <br /> int compression)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a> (<a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite, <br /> <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)</pre>
+<pre class="programlisting">int <a href="#xmlOutputBufferFlush">xmlOutputBufferFlush</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)</pre>
+<pre class="programlisting">size_t <a href="#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)</pre>
+<pre class="programlisting">int <a href="#xmlOutputBufferWrite">xmlOutputBufferWrite</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> int len, <br /> const char * buf)</pre>
+<pre class="programlisting">int <a href="#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escaping)</pre>
+<pre class="programlisting">int <a href="#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> const char * str)</pre>
+<pre class="programlisting">Function type: <a href="#xmlOutputCloseCallback">xmlOutputCloseCallback</a>
+int <a href="#xmlOutputCloseCallback">xmlOutputCloseCallback</a> (void * context)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlOutputMatchCallback">xmlOutputMatchCallback</a>
+int <a href="#xmlOutputMatchCallback">xmlOutputMatchCallback</a> (char const * filename)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlOutputOpenCallback">xmlOutputOpenCallback</a>
+void * <a href="#xmlOutputOpenCallback">xmlOutputOpenCallback</a> (char const * filename)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlOutputWriteCallback">xmlOutputWriteCallback</a>
+int <a href="#xmlOutputWriteCallback">xmlOutputWriteCallback</a> (void * context, <br /> const char * buffer, <br /> int len)
+</pre>
+<pre class="programlisting">char * <a href="#xmlParserGetDirectory">xmlParserGetDirectory</a> (const char * filename)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a> (int fd, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a> (FILE * file, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a> (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a> (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a> (const char * mem, <br /> int size, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a> (const char * mem, <br /> int size, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
+<pre class="programlisting">int <a href="#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlParserInputBufferPush">xmlParserInputBufferPush</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len, <br /> const char * buf)</pre>
+<pre class="programlisting">int <a href="#xmlParserInputBufferRead">xmlParserInputBufferRead</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlPopInputCallbacks">xmlPopInputCallbacks</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlRegisterDefaultOutputCallbacks">xmlRegisterDefaultOutputCallbacks</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a> (<a href="libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a> matchFunc, <br /> <a href="libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a> openFunc, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> readFunc, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> closeFunc)</pre>
+<pre class="programlisting">int <a href="#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a> (<a href="libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a> matchFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a> openFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> writeFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> closeFunc)</pre>
+<h2>Description</h2>
+<h3><a name="xmlAllocOutputBuffer" id="xmlAllocOutputBuffer"></a>Function: xmlAllocOutputBuffer</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlAllocOutputBuffer (<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br />
+</pre><p>Create a buffered parser output</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div><h3><a name="xmlAllocParserInputBuffer" id="xmlAllocParserInputBuffer"></a>Function: xmlAllocParserInputBuffer</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlAllocParserInputBuffer (<a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a buffered parser input for progressive parsing</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlCheckFilename" id="xmlCheckFilename"></a>Function: xmlCheckFilename</h3><pre class="programlisting">int xmlCheckFilename (const char * path)<br />
+</pre><p>function checks to see if @path is a valid source (file, socket...) for XML. if stat is not available on the target machine,</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>the path to check</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1. if stat fails, returns 0 (if calling stat on the filename fails, it can't be right). if stat succeeds and the file is a directory, returns 2. otherwise returns 1.</td></tr></tbody></table></div><h3><a name="xmlCheckHTTPInput" id="xmlCheckHTTPInput"></a>Function: xmlCheckHTTPInput</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlCheckHTTPInput (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> ret)<br />
+</pre><p>Check an input in case it was created from an HTTP stream, in that case it will handle encoding and update of the base URL in case of redirection. It also checks for HTTP errors in which case the input is cleanly freed up and an appropriate error is raised in context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>ret</tt></i>:</span></td><td>an XML parser input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the input or NULL in case of HTTP error.</td></tr></tbody></table></div><h3><a name="xmlCleanupInputCallbacks" id="xmlCleanupInputCallbacks"></a>Function: xmlCleanupInputCallbacks</h3><pre class="programlisting">void xmlCleanupInputCallbacks (void)<br />
+</pre><p>clears the entire input callback table. this includes the compiled-in I/O.</p>
+<h3><a name="xmlCleanupOutputCallbacks" id="xmlCleanupOutputCallbacks"></a>Function: xmlCleanupOutputCallbacks</h3><pre class="programlisting">void xmlCleanupOutputCallbacks (void)<br />
+</pre><p>clears the entire output callback table. this includes the compiled-in I/O callbacks.</p>
+<h3><a name="xmlFileClose" id="xmlFileClose"></a>Function: xmlFileClose</h3><pre class="programlisting">int xmlFileClose (void * context)<br />
+</pre><p>Close an I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlFileMatch" id="xmlFileMatch"></a>Function: xmlFileMatch</h3><pre class="programlisting">int xmlFileMatch (const char * filename)<br />
+</pre><p>input from FILE *</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if matches, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlFileOpen" id="xmlFileOpen"></a>Function: xmlFileOpen</h3><pre class="programlisting">void * xmlFileOpen (const char * filename)<br />
+</pre><p>Wrapper around xmlFileOpen_real that try it with an unescaped version of @filename, if this fails fallback to @filename</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a handler or NULL in case or failure</td></tr></tbody></table></div><h3><a name="xmlFileRead" id="xmlFileRead"></a>Function: xmlFileRead</h3><pre class="programlisting">int xmlFileRead (void * context, <br /> char * buffer, <br /> int len)<br />
+</pre><p>Read @len bytes to @buffer from the I/O channel.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>where to drop data</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>number of bytes to write</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or &lt; 0 in case of failure</td></tr></tbody></table></div><h3><a name="xmlFreeParserInputBuffer" id="xmlFreeParserInputBuffer"></a>Function: xmlFreeParserInputBuffer</h3><pre class="programlisting">void xmlFreeParserInputBuffer (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in)<br />
+</pre><p>Free up the memory used by a buffered parser input</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr></tbody></table></div><h3><a name="xmlIOFTPClose" id="xmlIOFTPClose"></a>Function: xmlIOFTPClose</h3><pre class="programlisting">int xmlIOFTPClose (void * context)<br />
+</pre><p>Close an FTP I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div><h3><a name="xmlIOFTPMatch" id="xmlIOFTPMatch"></a>Function: xmlIOFTPMatch</h3><pre class="programlisting">int xmlIOFTPMatch (const char * filename)<br />
+</pre><p>check if the URI matches an FTP one</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if matches, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlIOFTPOpen" id="xmlIOFTPOpen"></a>Function: xmlIOFTPOpen</h3><pre class="programlisting">void * xmlIOFTPOpen (const char * filename)<br />
+</pre><p>open an FTP I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an I/O context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlIOFTPRead" id="xmlIOFTPRead"></a>Function: xmlIOFTPRead</h3><pre class="programlisting">int xmlIOFTPRead (void * context, <br /> char * buffer, <br /> int len)<br />
+</pre><p>Read @len bytes to @buffer from the I/O channel.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>where to drop data</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>number of bytes to write</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written</td></tr></tbody></table></div><h3><a name="xmlIOHTTPClose" id="xmlIOHTTPClose"></a>Function: xmlIOHTTPClose</h3><pre class="programlisting">int xmlIOHTTPClose (void * context)<br />
+</pre><p>Close an HTTP I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div><h3><a name="xmlIOHTTPMatch" id="xmlIOHTTPMatch"></a>Function: xmlIOHTTPMatch</h3><pre class="programlisting">int xmlIOHTTPMatch (const char * filename)<br />
+</pre><p>check if the URI matches an HTTP one</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if matches, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlIOHTTPOpen" id="xmlIOHTTPOpen"></a>Function: xmlIOHTTPOpen</h3><pre class="programlisting">void * xmlIOHTTPOpen (const char * filename)<br />
+</pre><p>open an HTTP I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an I/O context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlIOHTTPOpenW" id="xmlIOHTTPOpenW"></a>Function: xmlIOHTTPOpenW</h3><pre class="programlisting">void * xmlIOHTTPOpenW (const char * post_uri, <br /> int compression)<br />
+</pre><p>Open a temporary buffer to collect the document for a subsequent HTTP POST request. Non-static as is called from the output buffer creation routine.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>post_uri</tt></i>:</span></td><td>The destination URI for the document</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>The compression desired for the document.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an I/O context or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlIOHTTPRead" id="xmlIOHTTPRead"></a>Function: xmlIOHTTPRead</h3><pre class="programlisting">int xmlIOHTTPRead (void * context, <br /> char * buffer, <br /> int len)<br />
+</pre><p>Read @len bytes to @buffer from the I/O channel.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>where to drop data</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>number of bytes to write</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written</td></tr></tbody></table></div><h3><a name="xmlInputCloseCallback" id="xmlInputCloseCallback"></a>Function type: xmlInputCloseCallback</h3><pre class="programlisting">Function type: xmlInputCloseCallback
+int xmlInputCloseCallback (void * context)
+</pre><p>Callback used in the I/O Input API to close the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Input context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><br />
+<h3><a name="xmlInputMatchCallback" id="xmlInputMatchCallback"></a>Function type: xmlInputMatchCallback</h3><pre class="programlisting">Function type: xmlInputMatchCallback
+int xmlInputMatchCallback (char const * filename)
+</pre><p>Callback used in the I/O Input API to detect if the current handler can provide input functionality for this resource.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if yes and 0 if another Input module should be used</td></tr></tbody></table></div><br />
+<h3><a name="xmlInputOpenCallback" id="xmlInputOpenCallback"></a>Function type: xmlInputOpenCallback</h3><pre class="programlisting">Function type: xmlInputOpenCallback
+void * xmlInputOpenCallback (char const * filename)
+</pre><p>Callback used in the I/O Input API to open the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an Input context or NULL in case or error</td></tr></tbody></table></div><br />
+<h3><a name="xmlInputReadCallback" id="xmlInputReadCallback"></a>Function type: xmlInputReadCallback</h3><pre class="programlisting">Function type: xmlInputReadCallback
+int xmlInputReadCallback (void * context, <br /> char * buffer, <br /> int len)
+</pre><p>Callback used in the I/O Input API to read the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Input context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>the buffer to store data read</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the buffer in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes read or -1 in case of error</td></tr></tbody></table></div><br />
+<h3><a name="xmlNoNetExternalEntityLoader" id="xmlNoNetExternalEntityLoader"></a>Function: xmlNoNetExternalEntityLoader</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNoNetExternalEntityLoader (const char * URL, <br /> const char * ID, <br /> <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+</pre><p>A specific entity loader disabling network accesses, though still allowing local catalog accesses for resolution.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the System ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context in which the entity is called or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new allocated xmlParserInputPtr, or NULL.</td></tr></tbody></table></div><h3><a name="xmlNormalizeWindowsPath" id="xmlNormalizeWindowsPath"></a>Function: xmlNormalizeWindowsPath</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlNormalizeWindowsPath (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * path)<br />
+</pre><p>This function is obsolete. Please see xmlURIFromPath in uri.c for a better solution.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>the input file path</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a canonicalized version of the path</td></tr></tbody></table></div><h3><a name="xmlOutputBufferClose" id="xmlOutputBufferClose"></a>Function: xmlOutputBufferClose</h3><pre class="programlisting">int xmlOutputBufferClose (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br />
+</pre><p>flushes and close the output I/O channel and free up all the associated resources</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateBuffer" id="xmlOutputBufferCreateBuffer"></a>Function: xmlOutputBufferCreateBuffer</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateBuffer (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br />
+</pre><p>Create a buffered output for the progressive saving to a <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateFd" id="xmlOutputBufferCreateFd"></a>Function: xmlOutputBufferCreateFd</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFd (int fd, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br />
+</pre><p>Create a buffered output for the progressive saving to a file descriptor</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>a file descriptor number</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateFile" id="xmlOutputBufferCreateFile"></a>Function: xmlOutputBufferCreateFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFile (FILE * file, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br />
+</pre><p>Create a buffered output for the progressive saving to a FILE * buffered C I/O</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>a FILE*</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateFilename" id="xmlOutputBufferCreateFilename"></a>Function: xmlOutputBufferCreateFilename</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFilename (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder, <br /> int compression)<br />
+</pre><p>Create a buffered output for the progressive saving of a file If filename is "-' then we use stdout as the output. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. TODO: currently if compression is set, the library only support writing to a local file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>a C string containing the URI or filename</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>the compression ration (0 none, 9 max).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new output or NULL</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateIO" id="xmlOutputBufferCreateIO"></a>Function: xmlOutputBufferCreateIO</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateIO (<a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite, <br /> <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br />
+</pre><p>Create a buffered output for the progressive saving to an I/O handler</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>iowrite</tt></i>:</span></td><td>an I/O write function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div><h3><a name="xmlOutputBufferFlush" id="xmlOutputBufferFlush"></a>Function: xmlOutputBufferFlush</h3><pre class="programlisting">int xmlOutputBufferFlush (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br />
+</pre><p>flushes the output I/O channel</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlOutputBufferGetContent" id="xmlOutputBufferGetContent"></a>Function: xmlOutputBufferGetContent</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlOutputBufferGetContent (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br />
+</pre><p>Gives a pointer to the data currently held in the output buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the data or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlOutputBufferGetSize" id="xmlOutputBufferGetSize"></a>Function: xmlOutputBufferGetSize</h3><pre class="programlisting">size_t xmlOutputBufferGetSize (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br />
+</pre><p>Gives the length of the data currently held in the output buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case or error or no data is held, the size otherwise</td></tr></tbody></table></div><h3><a name="xmlOutputBufferWrite" id="xmlOutputBufferWrite"></a>Function: xmlOutputBufferWrite</h3><pre class="programlisting">int xmlOutputBufferWrite (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> int len, <br /> const char * buf)<br />
+</pre><p>Write the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered parser output</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size in bytes of the array.</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars immediately written, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlOutputBufferWriteEscape" id="xmlOutputBufferWriteEscape"></a>Function: xmlOutputBufferWriteEscape</h3><pre class="programlisting">int xmlOutputBufferWriteEscape (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escaping)<br />
+</pre><p>Write the content of the string in the output I/O buffer This routine escapes the <a href="libxml-SAX.html#characters">characters</a> and then handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered parser output</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>a zero terminated UTF-8 string</td></tr><tr><td><span class="term"><i><tt>escaping</tt></i>:</span></td><td>an optional escaping function (or NULL)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars immediately written, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlOutputBufferWriteString" id="xmlOutputBufferWriteString"></a>Function: xmlOutputBufferWriteString</h3><pre class="programlisting">int xmlOutputBufferWriteString (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> const char * str)<br />
+</pre><p>Write the content of the string in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered parser output</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>a zero terminated C string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars immediately written, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlOutputCloseCallback" id="xmlOutputCloseCallback"></a>Function type: xmlOutputCloseCallback</h3><pre class="programlisting">Function type: xmlOutputCloseCallback
+int xmlOutputCloseCallback (void * context)
+</pre><p>Callback used in the I/O Output API to close the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Output context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><br />
+<h3><a name="xmlOutputMatchCallback" id="xmlOutputMatchCallback"></a>Function type: xmlOutputMatchCallback</h3><pre class="programlisting">Function type: xmlOutputMatchCallback
+int xmlOutputMatchCallback (char const * filename)
+</pre><p>Callback used in the I/O Output API to detect if the current handler can provide output functionality for this resource.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if yes and 0 if another Output module should be used</td></tr></tbody></table></div><br />
+<h3><a name="xmlOutputOpenCallback" id="xmlOutputOpenCallback"></a>Function type: xmlOutputOpenCallback</h3><pre class="programlisting">Function type: xmlOutputOpenCallback
+void * xmlOutputOpenCallback (char const * filename)
+</pre><p>Callback used in the I/O Output API to open the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an Output context or NULL in case or error</td></tr></tbody></table></div><br />
+<h3><a name="xmlOutputWriteCallback" id="xmlOutputWriteCallback"></a>Function type: xmlOutputWriteCallback</h3><pre class="programlisting">Function type: xmlOutputWriteCallback
+int xmlOutputWriteCallback (void * context, <br /> const char * buffer, <br /> int len)
+</pre><p>Callback used in the I/O Output API to write to the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Output context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>the buffer of data to write</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the buffer in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error</td></tr></tbody></table></div><br />
+<h3><a name="xmlParserGetDirectory" id="xmlParserGetDirectory"></a>Function: xmlParserGetDirectory</h3><pre class="programlisting">char * xmlParserGetDirectory (const char * filename)<br />
+</pre><p>lookup the directory for that file</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the path to a file</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new allocated string containing the directory, or NULL.</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateFd" id="xmlParserInputBufferCreateFd"></a>Function: xmlParserInputBufferCreateFd</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFd (int fd, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a buffered parser input for the progressive parsing for the input from a file descriptor</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>a file descriptor number</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateFile" id="xmlParserInputBufferCreateFile"></a>Function: xmlParserInputBufferCreateFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFile (FILE * file, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a buffered parser input for the progressive parsing of a FILE * buffered C I/O</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>a FILE*</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateFilename" id="xmlParserInputBufferCreateFilename"></a>Function: xmlParserInputBufferCreateFilename</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFilename (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a buffered parser input for the progressive parsing of a file If filename is "-' then we use stdin as the input. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. Do an encoding check if enc == <a href="libxml-encoding.html#XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>a C string containing the URI or filename</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateIO" id="xmlParserInputBufferCreateIO"></a>Function: xmlParserInputBufferCreateIO</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateIO (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a buffered parser input for the progressive parsing for the input from an I/O handler</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateMem" id="xmlParserInputBufferCreateMem"></a>Function: xmlParserInputBufferCreateMem</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateMem (const char * mem, <br /> int size, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a buffered parser input for the progressive parsing for the input from a memory area.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>the memory input</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the length of the memory block</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateStatic" id="xmlParserInputBufferCreateStatic"></a>Function: xmlParserInputBufferCreateStatic</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateStatic (const char * mem, <br /> int size, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+</pre><p>Create a buffered parser input for the progressive parsing for the input from an immutable memory area. This will not copy the memory area to the buffer, but the memory is expected to be available until the end of the parsing, this is useful for example when using mmap'ed file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>the memory input</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the length of the memory block</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferGrow" id="xmlParserInputBufferGrow"></a>Function: xmlParserInputBufferGrow</h3><pre class="programlisting">int xmlParserInputBufferGrow (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len)<br />
+</pre><p>Grow up the content of the input buffer, the old data are preserved This routine handle the I18N transcoding to internal UTF-8 This routine is used when operating the parser in normal (pull) mode TODO: one should be able to remove one extra copy by copying directly onto in-&gt;buffer or in-&gt;raw</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>indicative value of the amount of chars to read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars read and stored in the buffer, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferPush" id="xmlParserInputBufferPush"></a>Function: xmlParserInputBufferPush</h3><pre class="programlisting">int xmlParserInputBufferPush (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len, <br /> const char * buf)<br />
+</pre><p>Push the content of the arry in the input buffer This routine handle the I18N transcoding to internal UTF-8 This is used when operating the parser in progressive (push) mode.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size in bytes of the array.</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars read and stored in the buffer, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferRead" id="xmlParserInputBufferRead"></a>Function: xmlParserInputBufferRead</h3><pre class="programlisting">int xmlParserInputBufferRead (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len)<br />
+</pre><p>Refresh the content of the input buffer, the old data are considered consumed This routine handle the I18N transcoding to internal UTF-8</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>indicative value of the amount of chars to read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars read and stored in the buffer, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlPopInputCallbacks" id="xmlPopInputCallbacks"></a>Function: xmlPopInputCallbacks</h3><pre class="programlisting">int xmlPopInputCallbacks (void)<br />
+</pre><p>Clear the top input callback from the input stack. this includes the compiled-in I/O.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of input callback registered or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlRegisterDefaultInputCallbacks" id="xmlRegisterDefaultInputCallbacks"></a>Function: xmlRegisterDefaultInputCallbacks</h3><pre class="programlisting">void xmlRegisterDefaultInputCallbacks (void)<br />
+</pre><p>Registers the default compiled-in I/O handlers.</p>
+<h3><a name="xmlRegisterDefaultOutputCallbacks" id="xmlRegisterDefaultOutputCallbacks"></a>Function: xmlRegisterDefaultOutputCallbacks</h3><pre class="programlisting">void xmlRegisterDefaultOutputCallbacks (void)<br />
+</pre><p>Registers the default compiled-in I/O handlers.</p>
+<h3><a name="xmlRegisterHTTPPostCallbacks" id="xmlRegisterHTTPPostCallbacks"></a>Function: xmlRegisterHTTPPostCallbacks</h3><pre class="programlisting">void xmlRegisterHTTPPostCallbacks (void)<br />
+</pre><p>By default, libxml submits HTTP output requests using the "PUT" method. Calling this method changes the HTTP output method to use the "POST" method instead.</p>
+<h3><a name="xmlRegisterInputCallbacks" id="xmlRegisterInputCallbacks"></a>Function: xmlRegisterInputCallbacks</h3><pre class="programlisting">int xmlRegisterInputCallbacks (<a href="libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a> matchFunc, <br /> <a href="libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a> openFunc, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> readFunc, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> closeFunc)<br />
+</pre><p>Register a new set of I/O callback for handling parser input.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>matchFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a></td></tr><tr><td><span class="term"><i><tt>openFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a></td></tr><tr><td><span class="term"><i><tt>readFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a></td></tr><tr><td><span class="term"><i><tt>closeFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the registered handler number or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlRegisterOutputCallbacks" id="xmlRegisterOutputCallbacks"></a>Function: xmlRegisterOutputCallbacks</h3><pre class="programlisting">int xmlRegisterOutputCallbacks (<a href="libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a> matchFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a> openFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> writeFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> closeFunc)<br />
+</pre><p>Register a new set of I/O callback for handling output.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>matchFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a></td></tr><tr><td><span class="term"><i><tt>openFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a></td></tr><tr><td><span class="term"><i><tt>writeFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a></td></tr><tr><td><span class="term"><i><tt>closeFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the registered handler number or -1 in case of error</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlautomata.html b/libxml2-2.9.10/doc/html/libxml-xmlautomata.html
new file mode 100644
index 0000000..a66b366
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlautomata.html
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlautomata from libxml2</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></h1><h2>Module xmlautomata from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlIO.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlIO.html">xmlIO</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlerror.html">xmlerror</a></th><td><a accesskey="n" href="libxml-xmlerror.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>the API to build regexp automata </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlAutomata">xmlAutomata</a><br />struct _xmlAutomata
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlautomata.html#xmlAutomata">xmlAutomata</a> * <a name="xmlAutomataPtr" id="xmlAutomataPtr">xmlAutomataPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlAutomataState">xmlAutomataState</a><br />struct _xmlAutomataState
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlautomata.html#xmlAutomataState">xmlAutomataState</a> * <a name="xmlAutomataStatePtr" id="xmlAutomataStatePtr">xmlAutomataStatePtr</a>
+</pre><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> <a href="#xmlAutomataCompile">xmlAutomataCompile</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataGetInitState">xmlAutomataGetInitState</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)</pre>
+<pre class="programlisting">int <a href="#xmlAutomataIsDeterminist">xmlAutomataIsDeterminist</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> int lax)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> int min, <br /> int max, <br /> void * data)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br /> int min, <br /> int max, <br /> void * data)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> int counter)</pre>
+<pre class="programlisting">int <a href="#xmlAutomataNewCounter">xmlAutomataNewCounter</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> int min, <br /> int max)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> int counter)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br /> void * data)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> int min, <br /> int max, <br /> void * data)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br /> int min, <br /> int max, <br /> void * data)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewState">xmlAutomataNewState</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewTransition">xmlAutomataNewTransition</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> void * data)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> <a href="#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlAutomataSetFinalState">xmlAutomataSetFinalState</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> state)</pre>
+<pre class="programlisting">void <a href="#xmlFreeAutomata">xmlFreeAutomata</a> (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> <a href="#xmlNewAutomata">xmlNewAutomata</a> (void)</pre>
+<h2>Description</h2>
+<h3><a name="xmlAutomata" id="xmlAutomata">Structure xmlAutomata</a></h3><pre class="programlisting">Structure xmlAutomata<br />struct _xmlAutomata {
+The content of this structure is not made public by the API.
+}</pre>
+ A libxml automata description, It can be compiled into a regexp
+ <h3><a name="xmlAutomataState" id="xmlAutomataState">Structure xmlAutomataState</a></h3><pre class="programlisting">Structure xmlAutomataState<br />struct _xmlAutomataState {
+The content of this structure is not made public by the API.
+}</pre>
+ A state int the automata description,
+ <h3><a name="xmlAutomataCompile" id="xmlAutomataCompile"></a>Function: xmlAutomataCompile</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> xmlAutomataCompile (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)<br />
+</pre><p>Compile the automata into a Reg Exp ready for being executed. The automata should be free after this point.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the compiled regexp or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataGetInitState" id="xmlAutomataGetInitState"></a>Function: xmlAutomataGetInitState</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataGetInitState (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)<br />
+</pre><p>Initial state lookup</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the initial state of the automata</td></tr></tbody></table></div><h3><a name="xmlAutomataIsDeterminist" id="xmlAutomataIsDeterminist"></a>Function: xmlAutomataIsDeterminist</h3><pre class="programlisting">int xmlAutomataIsDeterminist (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)<br />
+</pre><p>Checks if an automata is determinist.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if not, and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewAllTrans" id="xmlAutomataNewAllTrans"></a>Function: xmlAutomataNewAllTrans</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewAllTrans (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> int lax)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a an ALL transition from the @from state to the target state. That transition is an epsilon transition allowed only when all transitions from the @from node have been activated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>lax</tt></i>:</span></td><td>allow to transition if not all all transitions have been activated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewCountTrans" id="xmlAutomataNewCountTrans"></a>Function: xmlAutomataNewCountTrans</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewCountTrans (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> int min, <br /> int max, <br /> void * data)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewCountTrans2" id="xmlAutomataNewCountTrans2"></a>Function: xmlAutomataNewCountTrans2</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewCountTrans2 (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br /> int min, <br /> int max, <br /> void * data)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>token2</tt></i>:</span></td><td>the second input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewCountedTrans" id="xmlAutomataNewCountedTrans"></a>Function: xmlAutomataNewCountedTrans</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewCountedTrans (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> int counter)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will increment the counter provided</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>counter</tt></i>:</span></td><td>the counter associated to that transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewCounter" id="xmlAutomataNewCounter"></a>Function: xmlAutomataNewCounter</h3><pre class="programlisting">int xmlAutomataNewCounter (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> int min, <br /> int max)<br />
+</pre><p>Create a new counter</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimal value on the counter</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximal value on the counter</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the counter number or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewCounterTrans" id="xmlAutomataNewCounterTrans"></a>Function: xmlAutomataNewCounterTrans</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewCounterTrans (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> int counter)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will be allowed only if the counter is within the right range.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>counter</tt></i>:</span></td><td>the counter associated to that transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewEpsilon" id="xmlAutomataNewEpsilon"></a>Function: xmlAutomataNewEpsilon</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewEpsilon (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewNegTrans" id="xmlAutomataNewNegTrans"></a>Function: xmlAutomataNewNegTrans</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewNegTrans (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br /> void * data)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by any value except (@token,@token2) Note that if @token2 is not NULL, then (X, NULL) won't match to follow # the semantic of XSD ##other</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the first input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>token2</tt></i>:</span></td><td>the second input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data passed to the callback function if the transition is activated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewOnceTrans" id="xmlAutomataNewOnceTrans"></a>Function: xmlAutomataNewOnceTrans</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewOnceTrans (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> int min, <br /> int max, <br /> void * data)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max, moreover that transition can only be crossed once.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewOnceTrans2" id="xmlAutomataNewOnceTrans2"></a>Function: xmlAutomataNewOnceTrans2</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewOnceTrans2 (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br /> int min, <br /> int max, <br /> void * data)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max, moreover that transition can only be crossed once.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>token2</tt></i>:</span></td><td>the second input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximum successive occurrences of token</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewState" id="xmlAutomataNewState"></a>Function: xmlAutomataNewState</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewState (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)<br />
+</pre><p>Create a new disconnected state in the automata</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewTransition" id="xmlAutomataNewTransition"></a>Function: xmlAutomataNewTransition</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewTransition (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> void * data)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data passed to the callback function if the transition is activated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewTransition2" id="xmlAutomataNewTransition2"></a>Function: xmlAutomataNewTransition2</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> xmlAutomataNewTransition2 (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br /> void * data)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the first input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>token2</tt></i>:</span></td><td>the second input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data passed to the callback function if the transition is activated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataSetFinalState" id="xmlAutomataSetFinalState"></a>Function: xmlAutomataSetFinalState</h3><pre class="programlisting">int xmlAutomataSetFinalState (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br /> <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> state)<br />
+</pre><p>Makes that state a final state</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>state</tt></i>:</span></td><td>a state in this automata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlFreeAutomata" id="xmlFreeAutomata"></a>Function: xmlFreeAutomata</h3><pre class="programlisting">void xmlFreeAutomata (<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)<br />
+</pre><p>Free an automata</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr></tbody></table></div><h3><a name="xmlNewAutomata" id="xmlNewAutomata"></a>Function: xmlNewAutomata</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> xmlNewAutomata (void)<br />
+</pre><p>Create a new automata</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new object or NULL in case of failure</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlerror.html b/libxml2-2.9.10/doc/html/libxml-xmlerror.html
new file mode 100644
index 0000000..1b418a3
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlerror.html
@@ -0,0 +1,865 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlerror from libxml2</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></h1><h2>Module xmlerror from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlautomata.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlautomata.html">xmlautomata</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlexports.html">xmlexports</a></th><td><a accesskey="n" href="libxml-xmlexports.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>the API used to report errors </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlError">xmlError</a><br />struct _xmlError
+</pre><pre class="programlisting">Enum <a href="#xmlErrorDomain">xmlErrorDomain</a>
+</pre><pre class="programlisting">Enum <a href="#xmlErrorLevel">xmlErrorLevel</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlerror.html#xmlError">xmlError</a> * <a name="xmlErrorPtr" id="xmlErrorPtr">xmlErrorPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlParserErrors">xmlParserErrors</a>
+</pre><pre class="programlisting">void <a href="#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a> (<a href="libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> * handler)</pre>
+<pre class="programlisting">int <a href="#xmlCopyError">xmlCopyError</a> (<a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> from, <br /> <a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> to)</pre>
+<pre class="programlisting"><a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> <a href="#xmlCtxtGetLastError">xmlCtxtGetLastError</a> (void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlCtxtResetLastError">xmlCtxtResetLastError</a> (void * ctx)</pre>
+<pre class="programlisting">Function type: <a href="#xmlGenericErrorFunc">xmlGenericErrorFunc</a>
+void <a href="#xmlGenericErrorFunc">xmlGenericErrorFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<pre class="programlisting"><a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> <a href="#xmlGetLastError">xmlGetLastError</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlParserError">xmlParserError</a> (void * ctx, <br /> const char * msg, <br /> ... ...)</pre>
+<pre class="programlisting">void <a href="#xmlParserPrintFileContext">xmlParserPrintFileContext</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)</pre>
+<pre class="programlisting">void <a href="#xmlParserPrintFileInfo">xmlParserPrintFileInfo</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)</pre>
+<pre class="programlisting">void <a href="#xmlParserValidityError">xmlParserValidityError</a> (void * ctx, <br /> const char * msg, <br /> ... ...)</pre>
+<pre class="programlisting">void <a href="#xmlParserValidityWarning">xmlParserValidityWarning</a> (void * ctx, <br /> const char * msg, <br /> ... ...)</pre>
+<pre class="programlisting">void <a href="#xmlParserWarning">xmlParserWarning</a> (void * ctx, <br /> const char * msg, <br /> ... ...)</pre>
+<pre class="programlisting">void <a href="#xmlResetError">xmlResetError</a> (<a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> err)</pre>
+<pre class="programlisting">void <a href="#xmlResetLastError">xmlResetLastError</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a> (void * ctx, <br /> <a href="libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> handler)</pre>
+<pre class="programlisting">void <a href="#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a> (void * ctx, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> handler)</pre>
+<pre class="programlisting">Function type: <a href="#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a>
+void <a href="#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> (void * userData, <br /> <a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> error)
+</pre>
+<h2>Description</h2>
+<h3><a name="xmlError" id="xmlError">Structure xmlError</a></h3><pre class="programlisting">Structure xmlError<br />struct _xmlError {
+ int domain : What part of the library raised this er
+ int code : The error code, e.g. an <a href="libxml-xmlerror.html#xmlParserError">xmlParserError</a>
+ char * message : human-readable informative error messag
+ <a href="libxml-xmlerror.html#xmlErrorLevel">xmlErrorLevel</a> level : how consequent is the error
+ char * file : the filename
+ int line : the line number if available
+ char * str1 : extra string information
+ char * str2 : extra string information
+ char * str3 : extra string information
+ int int1 : extra number information
+ int int2 : error column # or 0 if N/A (todo: renam
+ void * ctxt : the parser context if available
+ void * node : the node in the tree
+}</pre><h3>Enum <a name="xmlErrorDomain" id="xmlErrorDomain">xmlErrorDomain</a></h3><pre class="programlisting">Enum xmlErrorDomain {
+ <a name="XML_FROM_NONE" id="XML_FROM_NONE">XML_FROM_NONE</a> = 0
+ <a name="XML_FROM_PARSER" id="XML_FROM_PARSER">XML_FROM_PARSER</a> = 1 : The XML parser
+ <a name="XML_FROM_TREE" id="XML_FROM_TREE">XML_FROM_TREE</a> = 2 : The tree module
+ <a name="XML_FROM_NAMESPACE" id="XML_FROM_NAMESPACE">XML_FROM_NAMESPACE</a> = 3 : The XML Namespace module
+ <a name="XML_FROM_DTD" id="XML_FROM_DTD">XML_FROM_DTD</a> = 4 : The XML DTD validation with parser contex
+ <a name="XML_FROM_HTML" id="XML_FROM_HTML">XML_FROM_HTML</a> = 5 : The HTML parser
+ <a name="XML_FROM_MEMORY" id="XML_FROM_MEMORY">XML_FROM_MEMORY</a> = 6 : The memory allocator
+ <a name="XML_FROM_OUTPUT" id="XML_FROM_OUTPUT">XML_FROM_OUTPUT</a> = 7 : The serialization code
+ <a name="XML_FROM_IO" id="XML_FROM_IO">XML_FROM_IO</a> = 8 : The Input/Output stack
+ <a name="XML_FROM_FTP" id="XML_FROM_FTP">XML_FROM_FTP</a> = 9 : The FTP module
+ <a name="XML_FROM_HTTP" id="XML_FROM_HTTP">XML_FROM_HTTP</a> = 10 : The HTTP module
+ <a name="XML_FROM_XINCLUDE" id="XML_FROM_XINCLUDE">XML_FROM_XINCLUDE</a> = 11 : The XInclude processing
+ <a name="XML_FROM_XPATH" id="XML_FROM_XPATH">XML_FROM_XPATH</a> = 12 : The XPath module
+ <a name="XML_FROM_XPOINTER" id="XML_FROM_XPOINTER">XML_FROM_XPOINTER</a> = 13 : The XPointer module
+ <a name="XML_FROM_REGEXP" id="XML_FROM_REGEXP">XML_FROM_REGEXP</a> = 14 : The regular expressions module
+ <a name="XML_FROM_DATATYPE" id="XML_FROM_DATATYPE">XML_FROM_DATATYPE</a> = 15 : The W3C XML Schemas Datatype module
+ <a name="XML_FROM_SCHEMASP" id="XML_FROM_SCHEMASP">XML_FROM_SCHEMASP</a> = 16 : The W3C XML Schemas parser module
+ <a name="XML_FROM_SCHEMASV" id="XML_FROM_SCHEMASV">XML_FROM_SCHEMASV</a> = 17 : The W3C XML Schemas validation module
+ <a name="XML_FROM_RELAXNGP" id="XML_FROM_RELAXNGP">XML_FROM_RELAXNGP</a> = 18 : The Relax-NG parser module
+ <a name="XML_FROM_RELAXNGV" id="XML_FROM_RELAXNGV">XML_FROM_RELAXNGV</a> = 19 : The Relax-NG validator module
+ <a name="XML_FROM_CATALOG" id="XML_FROM_CATALOG">XML_FROM_CATALOG</a> = 20 : The Catalog module
+ <a name="XML_FROM_C14N" id="XML_FROM_C14N">XML_FROM_C14N</a> = 21 : The Canonicalization module
+ <a name="XML_FROM_XSLT" id="XML_FROM_XSLT">XML_FROM_XSLT</a> = 22 : The XSLT engine from libxslt
+ <a name="XML_FROM_VALID" id="XML_FROM_VALID">XML_FROM_VALID</a> = 23 : The XML DTD validation with valid context
+ <a name="XML_FROM_CHECK" id="XML_FROM_CHECK">XML_FROM_CHECK</a> = 24 : The error checking module
+ <a name="XML_FROM_WRITER" id="XML_FROM_WRITER">XML_FROM_WRITER</a> = 25 : The xmlwriter module
+ <a name="XML_FROM_MODULE" id="XML_FROM_MODULE">XML_FROM_MODULE</a> = 26 : The dynamically loaded module modul
+ <a name="XML_FROM_I18N" id="XML_FROM_I18N">XML_FROM_I18N</a> = 27 : The module handling character conversion
+ <a name="XML_FROM_SCHEMATRONV" id="XML_FROM_SCHEMATRONV">XML_FROM_SCHEMATRONV</a> = 28 : The Schematron validator module
+ <a name="XML_FROM_BUFFER" id="XML_FROM_BUFFER">XML_FROM_BUFFER</a> = 29 : The buffers module
+ <a name="XML_FROM_URI" id="XML_FROM_URI">XML_FROM_URI</a> = 30 : The URI module
+}
+</pre><h3>Enum <a name="xmlErrorLevel" id="xmlErrorLevel">xmlErrorLevel</a></h3><pre class="programlisting">Enum xmlErrorLevel {
+ <a name="XML_ERR_NONE" id="XML_ERR_NONE">XML_ERR_NONE</a> = 0
+ <a name="XML_ERR_WARNING" id="XML_ERR_WARNING">XML_ERR_WARNING</a> = 1 : A simple warning
+ <a name="XML_ERR_ERROR" id="XML_ERR_ERROR">XML_ERR_ERROR</a> = 2 : A recoverable error
+ <a name="XML_ERR_FATAL" id="XML_ERR_FATAL">XML_ERR_FATAL</a> = 3 : A fatal error
+}
+</pre><h3>Enum <a name="xmlParserErrors" id="xmlParserErrors">xmlParserErrors</a></h3><pre class="programlisting">Enum xmlParserErrors {
+ <a name="XML_ERR_OK" id="XML_ERR_OK">XML_ERR_OK</a> = 0
+ <a name="XML_ERR_INTERNAL_ERROR" id="XML_ERR_INTERNAL_ERROR">XML_ERR_INTERNAL_ERROR</a> = 1 : 1
+ <a name="XML_ERR_NO_MEMORY" id="XML_ERR_NO_MEMORY">XML_ERR_NO_MEMORY</a> = 2 : 2
+ <a name="XML_ERR_DOCUMENT_START" id="XML_ERR_DOCUMENT_START">XML_ERR_DOCUMENT_START</a> = 3 : 3
+ <a name="XML_ERR_DOCUMENT_EMPTY" id="XML_ERR_DOCUMENT_EMPTY">XML_ERR_DOCUMENT_EMPTY</a> = 4 : 4
+ <a name="XML_ERR_DOCUMENT_END" id="XML_ERR_DOCUMENT_END">XML_ERR_DOCUMENT_END</a> = 5 : 5
+ <a name="XML_ERR_INVALID_HEX_CHARREF" id="XML_ERR_INVALID_HEX_CHARREF">XML_ERR_INVALID_HEX_CHARREF</a> = 6 : 6
+ <a name="XML_ERR_INVALID_DEC_CHARREF" id="XML_ERR_INVALID_DEC_CHARREF">XML_ERR_INVALID_DEC_CHARREF</a> = 7 : 7
+ <a name="XML_ERR_INVALID_CHARREF" id="XML_ERR_INVALID_CHARREF">XML_ERR_INVALID_CHARREF</a> = 8 : 8
+ <a name="XML_ERR_INVALID_CHAR" id="XML_ERR_INVALID_CHAR">XML_ERR_INVALID_CHAR</a> = 9 : 9
+ <a name="XML_ERR_CHARREF_AT_EOF" id="XML_ERR_CHARREF_AT_EOF">XML_ERR_CHARREF_AT_EOF</a> = 10 : 10
+ <a name="XML_ERR_CHARREF_IN_PROLOG" id="XML_ERR_CHARREF_IN_PROLOG">XML_ERR_CHARREF_IN_PROLOG</a> = 11 : 11
+ <a name="XML_ERR_CHARREF_IN_EPILOG" id="XML_ERR_CHARREF_IN_EPILOG">XML_ERR_CHARREF_IN_EPILOG</a> = 12 : 12
+ <a name="XML_ERR_CHARREF_IN_DTD" id="XML_ERR_CHARREF_IN_DTD">XML_ERR_CHARREF_IN_DTD</a> = 13 : 13
+ <a name="XML_ERR_ENTITYREF_AT_EOF" id="XML_ERR_ENTITYREF_AT_EOF">XML_ERR_ENTITYREF_AT_EOF</a> = 14 : 14
+ <a name="XML_ERR_ENTITYREF_IN_PROLOG" id="XML_ERR_ENTITYREF_IN_PROLOG">XML_ERR_ENTITYREF_IN_PROLOG</a> = 15 : 15
+ <a name="XML_ERR_ENTITYREF_IN_EPILOG" id="XML_ERR_ENTITYREF_IN_EPILOG">XML_ERR_ENTITYREF_IN_EPILOG</a> = 16 : 16
+ <a name="XML_ERR_ENTITYREF_IN_DTD" id="XML_ERR_ENTITYREF_IN_DTD">XML_ERR_ENTITYREF_IN_DTD</a> = 17 : 17
+ <a name="XML_ERR_PEREF_AT_EOF" id="XML_ERR_PEREF_AT_EOF">XML_ERR_PEREF_AT_EOF</a> = 18 : 18
+ <a name="XML_ERR_PEREF_IN_PROLOG" id="XML_ERR_PEREF_IN_PROLOG">XML_ERR_PEREF_IN_PROLOG</a> = 19 : 19
+ <a name="XML_ERR_PEREF_IN_EPILOG" id="XML_ERR_PEREF_IN_EPILOG">XML_ERR_PEREF_IN_EPILOG</a> = 20 : 20
+ <a name="XML_ERR_PEREF_IN_INT_SUBSET" id="XML_ERR_PEREF_IN_INT_SUBSET">XML_ERR_PEREF_IN_INT_SUBSET</a> = 21 : 21
+ <a name="XML_ERR_ENTITYREF_NO_NAME" id="XML_ERR_ENTITYREF_NO_NAME">XML_ERR_ENTITYREF_NO_NAME</a> = 22 : 22
+ <a name="XML_ERR_ENTITYREF_SEMICOL_MISSING" id="XML_ERR_ENTITYREF_SEMICOL_MISSING">XML_ERR_ENTITYREF_SEMICOL_MISSING</a> = 23 : 23
+ <a name="XML_ERR_PEREF_NO_NAME" id="XML_ERR_PEREF_NO_NAME">XML_ERR_PEREF_NO_NAME</a> = 24 : 24
+ <a name="XML_ERR_PEREF_SEMICOL_MISSING" id="XML_ERR_PEREF_SEMICOL_MISSING">XML_ERR_PEREF_SEMICOL_MISSING</a> = 25 : 25
+ <a name="XML_ERR_UNDECLARED_ENTITY" id="XML_ERR_UNDECLARED_ENTITY">XML_ERR_UNDECLARED_ENTITY</a> = 26 : 26
+ <a name="XML_WAR_UNDECLARED_ENTITY" id="XML_WAR_UNDECLARED_ENTITY">XML_WAR_UNDECLARED_ENTITY</a> = 27 : 27
+ <a name="XML_ERR_UNPARSED_ENTITY" id="XML_ERR_UNPARSED_ENTITY">XML_ERR_UNPARSED_ENTITY</a> = 28 : 28
+ <a name="XML_ERR_ENTITY_IS_EXTERNAL" id="XML_ERR_ENTITY_IS_EXTERNAL">XML_ERR_ENTITY_IS_EXTERNAL</a> = 29 : 29
+ <a name="XML_ERR_ENTITY_IS_PARAMETER" id="XML_ERR_ENTITY_IS_PARAMETER">XML_ERR_ENTITY_IS_PARAMETER</a> = 30 : 30
+ <a name="XML_ERR_UNKNOWN_ENCODING" id="XML_ERR_UNKNOWN_ENCODING">XML_ERR_UNKNOWN_ENCODING</a> = 31 : 31
+ <a name="XML_ERR_UNSUPPORTED_ENCODING" id="XML_ERR_UNSUPPORTED_ENCODING">XML_ERR_UNSUPPORTED_ENCODING</a> = 32 : 32
+ <a name="XML_ERR_STRING_NOT_STARTED" id="XML_ERR_STRING_NOT_STARTED">XML_ERR_STRING_NOT_STARTED</a> = 33 : 33
+ <a name="XML_ERR_STRING_NOT_CLOSED" id="XML_ERR_STRING_NOT_CLOSED">XML_ERR_STRING_NOT_CLOSED</a> = 34 : 34
+ <a name="XML_ERR_NS_DECL_ERROR" id="XML_ERR_NS_DECL_ERROR">XML_ERR_NS_DECL_ERROR</a> = 35 : 35
+ <a name="XML_ERR_ENTITY_NOT_STARTED" id="XML_ERR_ENTITY_NOT_STARTED">XML_ERR_ENTITY_NOT_STARTED</a> = 36 : 36
+ <a name="XML_ERR_ENTITY_NOT_FINISHED" id="XML_ERR_ENTITY_NOT_FINISHED">XML_ERR_ENTITY_NOT_FINISHED</a> = 37 : 37
+ <a name="XML_ERR_LT_IN_ATTRIBUTE" id="XML_ERR_LT_IN_ATTRIBUTE">XML_ERR_LT_IN_ATTRIBUTE</a> = 38 : 38
+ <a name="XML_ERR_ATTRIBUTE_NOT_STARTED" id="XML_ERR_ATTRIBUTE_NOT_STARTED">XML_ERR_ATTRIBUTE_NOT_STARTED</a> = 39 : 39
+ <a name="XML_ERR_ATTRIBUTE_NOT_FINISHED" id="XML_ERR_ATTRIBUTE_NOT_FINISHED">XML_ERR_ATTRIBUTE_NOT_FINISHED</a> = 40 : 40
+ <a name="XML_ERR_ATTRIBUTE_WITHOUT_VALUE" id="XML_ERR_ATTRIBUTE_WITHOUT_VALUE">XML_ERR_ATTRIBUTE_WITHOUT_VALUE</a> = 41 : 41
+ <a name="XML_ERR_ATTRIBUTE_REDEFINED" id="XML_ERR_ATTRIBUTE_REDEFINED">XML_ERR_ATTRIBUTE_REDEFINED</a> = 42 : 42
+ <a name="XML_ERR_LITERAL_NOT_STARTED" id="XML_ERR_LITERAL_NOT_STARTED">XML_ERR_LITERAL_NOT_STARTED</a> = 43 : 43
+ <a name="XML_ERR_LITERAL_NOT_FINISHED" id="XML_ERR_LITERAL_NOT_FINISHED">XML_ERR_LITERAL_NOT_FINISHED</a> = 44 : 44
+ <a name="XML_ERR_COMMENT_NOT_FINISHED" id="XML_ERR_COMMENT_NOT_FINISHED">XML_ERR_COMMENT_NOT_FINISHED</a> = 45 : 45
+ <a name="XML_ERR_PI_NOT_STARTED" id="XML_ERR_PI_NOT_STARTED">XML_ERR_PI_NOT_STARTED</a> = 46 : 46
+ <a name="XML_ERR_PI_NOT_FINISHED" id="XML_ERR_PI_NOT_FINISHED">XML_ERR_PI_NOT_FINISHED</a> = 47 : 47
+ <a name="XML_ERR_NOTATION_NOT_STARTED" id="XML_ERR_NOTATION_NOT_STARTED">XML_ERR_NOTATION_NOT_STARTED</a> = 48 : 48
+ <a name="XML_ERR_NOTATION_NOT_FINISHED" id="XML_ERR_NOTATION_NOT_FINISHED">XML_ERR_NOTATION_NOT_FINISHED</a> = 49 : 49
+ <a name="XML_ERR_ATTLIST_NOT_STARTED" id="XML_ERR_ATTLIST_NOT_STARTED">XML_ERR_ATTLIST_NOT_STARTED</a> = 50 : 50
+ <a name="XML_ERR_ATTLIST_NOT_FINISHED" id="XML_ERR_ATTLIST_NOT_FINISHED">XML_ERR_ATTLIST_NOT_FINISHED</a> = 51 : 51
+ <a name="XML_ERR_MIXED_NOT_STARTED" id="XML_ERR_MIXED_NOT_STARTED">XML_ERR_MIXED_NOT_STARTED</a> = 52 : 52
+ <a name="XML_ERR_MIXED_NOT_FINISHED" id="XML_ERR_MIXED_NOT_FINISHED">XML_ERR_MIXED_NOT_FINISHED</a> = 53 : 53
+ <a name="XML_ERR_ELEMCONTENT_NOT_STARTED" id="XML_ERR_ELEMCONTENT_NOT_STARTED">XML_ERR_ELEMCONTENT_NOT_STARTED</a> = 54 : 54
+ <a name="XML_ERR_ELEMCONTENT_NOT_FINISHED" id="XML_ERR_ELEMCONTENT_NOT_FINISHED">XML_ERR_ELEMCONTENT_NOT_FINISHED</a> = 55 : 55
+ <a name="XML_ERR_XMLDECL_NOT_STARTED" id="XML_ERR_XMLDECL_NOT_STARTED">XML_ERR_XMLDECL_NOT_STARTED</a> = 56 : 56
+ <a name="XML_ERR_XMLDECL_NOT_FINISHED" id="XML_ERR_XMLDECL_NOT_FINISHED">XML_ERR_XMLDECL_NOT_FINISHED</a> = 57 : 57
+ <a name="XML_ERR_CONDSEC_NOT_STARTED" id="XML_ERR_CONDSEC_NOT_STARTED">XML_ERR_CONDSEC_NOT_STARTED</a> = 58 : 58
+ <a name="XML_ERR_CONDSEC_NOT_FINISHED" id="XML_ERR_CONDSEC_NOT_FINISHED">XML_ERR_CONDSEC_NOT_FINISHED</a> = 59 : 59
+ <a name="XML_ERR_EXT_SUBSET_NOT_FINISHED" id="XML_ERR_EXT_SUBSET_NOT_FINISHED">XML_ERR_EXT_SUBSET_NOT_FINISHED</a> = 60 : 60
+ <a name="XML_ERR_DOCTYPE_NOT_FINISHED" id="XML_ERR_DOCTYPE_NOT_FINISHED">XML_ERR_DOCTYPE_NOT_FINISHED</a> = 61 : 61
+ <a name="XML_ERR_MISPLACED_CDATA_END" id="XML_ERR_MISPLACED_CDATA_END">XML_ERR_MISPLACED_CDATA_END</a> = 62 : 62
+ <a name="XML_ERR_CDATA_NOT_FINISHED" id="XML_ERR_CDATA_NOT_FINISHED">XML_ERR_CDATA_NOT_FINISHED</a> = 63 : 63
+ <a name="XML_ERR_RESERVED_XML_NAME" id="XML_ERR_RESERVED_XML_NAME">XML_ERR_RESERVED_XML_NAME</a> = 64 : 64
+ <a name="XML_ERR_SPACE_REQUIRED" id="XML_ERR_SPACE_REQUIRED">XML_ERR_SPACE_REQUIRED</a> = 65 : 65
+ <a name="XML_ERR_SEPARATOR_REQUIRED" id="XML_ERR_SEPARATOR_REQUIRED">XML_ERR_SEPARATOR_REQUIRED</a> = 66 : 66
+ <a name="XML_ERR_NMTOKEN_REQUIRED" id="XML_ERR_NMTOKEN_REQUIRED">XML_ERR_NMTOKEN_REQUIRED</a> = 67 : 67
+ <a name="XML_ERR_NAME_REQUIRED" id="XML_ERR_NAME_REQUIRED">XML_ERR_NAME_REQUIRED</a> = 68 : 68
+ <a name="XML_ERR_PCDATA_REQUIRED" id="XML_ERR_PCDATA_REQUIRED">XML_ERR_PCDATA_REQUIRED</a> = 69 : 69
+ <a name="XML_ERR_URI_REQUIRED" id="XML_ERR_URI_REQUIRED">XML_ERR_URI_REQUIRED</a> = 70 : 70
+ <a name="XML_ERR_PUBID_REQUIRED" id="XML_ERR_PUBID_REQUIRED">XML_ERR_PUBID_REQUIRED</a> = 71 : 71
+ <a name="XML_ERR_LT_REQUIRED" id="XML_ERR_LT_REQUIRED">XML_ERR_LT_REQUIRED</a> = 72 : 72
+ <a name="XML_ERR_GT_REQUIRED" id="XML_ERR_GT_REQUIRED">XML_ERR_GT_REQUIRED</a> = 73 : 73
+ <a name="XML_ERR_LTSLASH_REQUIRED" id="XML_ERR_LTSLASH_REQUIRED">XML_ERR_LTSLASH_REQUIRED</a> = 74 : 74
+ <a name="XML_ERR_EQUAL_REQUIRED" id="XML_ERR_EQUAL_REQUIRED">XML_ERR_EQUAL_REQUIRED</a> = 75 : 75
+ <a name="XML_ERR_TAG_NAME_MISMATCH" id="XML_ERR_TAG_NAME_MISMATCH">XML_ERR_TAG_NAME_MISMATCH</a> = 76 : 76
+ <a name="XML_ERR_TAG_NOT_FINISHED" id="XML_ERR_TAG_NOT_FINISHED">XML_ERR_TAG_NOT_FINISHED</a> = 77 : 77
+ <a name="XML_ERR_STANDALONE_VALUE" id="XML_ERR_STANDALONE_VALUE">XML_ERR_STANDALONE_VALUE</a> = 78 : 78
+ <a name="XML_ERR_ENCODING_NAME" id="XML_ERR_ENCODING_NAME">XML_ERR_ENCODING_NAME</a> = 79 : 79
+ <a name="XML_ERR_HYPHEN_IN_COMMENT" id="XML_ERR_HYPHEN_IN_COMMENT">XML_ERR_HYPHEN_IN_COMMENT</a> = 80 : 80
+ <a name="XML_ERR_INVALID_ENCODING" id="XML_ERR_INVALID_ENCODING">XML_ERR_INVALID_ENCODING</a> = 81 : 81
+ <a name="XML_ERR_EXT_ENTITY_STANDALONE" id="XML_ERR_EXT_ENTITY_STANDALONE">XML_ERR_EXT_ENTITY_STANDALONE</a> = 82 : 82
+ <a name="XML_ERR_CONDSEC_INVALID" id="XML_ERR_CONDSEC_INVALID">XML_ERR_CONDSEC_INVALID</a> = 83 : 83
+ <a name="XML_ERR_VALUE_REQUIRED" id="XML_ERR_VALUE_REQUIRED">XML_ERR_VALUE_REQUIRED</a> = 84 : 84
+ <a name="XML_ERR_NOT_WELL_BALANCED" id="XML_ERR_NOT_WELL_BALANCED">XML_ERR_NOT_WELL_BALANCED</a> = 85 : 85
+ <a name="XML_ERR_EXTRA_CONTENT" id="XML_ERR_EXTRA_CONTENT">XML_ERR_EXTRA_CONTENT</a> = 86 : 86
+ <a name="XML_ERR_ENTITY_CHAR_ERROR" id="XML_ERR_ENTITY_CHAR_ERROR">XML_ERR_ENTITY_CHAR_ERROR</a> = 87 : 87
+ <a name="XML_ERR_ENTITY_PE_INTERNAL" id="XML_ERR_ENTITY_PE_INTERNAL">XML_ERR_ENTITY_PE_INTERNAL</a> = 88 : 88
+ <a name="XML_ERR_ENTITY_LOOP" id="XML_ERR_ENTITY_LOOP">XML_ERR_ENTITY_LOOP</a> = 89 : 89
+ <a name="XML_ERR_ENTITY_BOUNDARY" id="XML_ERR_ENTITY_BOUNDARY">XML_ERR_ENTITY_BOUNDARY</a> = 90 : 90
+ <a name="XML_ERR_INVALID_URI" id="XML_ERR_INVALID_URI">XML_ERR_INVALID_URI</a> = 91 : 91
+ <a name="XML_ERR_URI_FRAGMENT" id="XML_ERR_URI_FRAGMENT">XML_ERR_URI_FRAGMENT</a> = 92 : 92
+ <a name="XML_WAR_CATALOG_PI" id="XML_WAR_CATALOG_PI">XML_WAR_CATALOG_PI</a> = 93 : 93
+ <a name="XML_ERR_NO_DTD" id="XML_ERR_NO_DTD">XML_ERR_NO_DTD</a> = 94 : 94
+ <a name="XML_ERR_CONDSEC_INVALID_KEYWORD" id="XML_ERR_CONDSEC_INVALID_KEYWORD">XML_ERR_CONDSEC_INVALID_KEYWORD</a> = 95 : 95
+ <a name="XML_ERR_VERSION_MISSING" id="XML_ERR_VERSION_MISSING">XML_ERR_VERSION_MISSING</a> = 96 : 96
+ <a name="XML_WAR_UNKNOWN_VERSION" id="XML_WAR_UNKNOWN_VERSION">XML_WAR_UNKNOWN_VERSION</a> = 97 : 97
+ <a name="XML_WAR_LANG_VALUE" id="XML_WAR_LANG_VALUE">XML_WAR_LANG_VALUE</a> = 98 : 98
+ <a name="XML_WAR_NS_URI" id="XML_WAR_NS_URI">XML_WAR_NS_URI</a> = 99 : 99
+ <a name="XML_WAR_NS_URI_RELATIVE" id="XML_WAR_NS_URI_RELATIVE">XML_WAR_NS_URI_RELATIVE</a> = 100 : 100
+ <a name="XML_ERR_MISSING_ENCODING" id="XML_ERR_MISSING_ENCODING">XML_ERR_MISSING_ENCODING</a> = 101 : 101
+ <a name="XML_WAR_SPACE_VALUE" id="XML_WAR_SPACE_VALUE">XML_WAR_SPACE_VALUE</a> = 102 : 102
+ <a name="XML_ERR_NOT_STANDALONE" id="XML_ERR_NOT_STANDALONE">XML_ERR_NOT_STANDALONE</a> = 103 : 103
+ <a name="XML_ERR_ENTITY_PROCESSING" id="XML_ERR_ENTITY_PROCESSING">XML_ERR_ENTITY_PROCESSING</a> = 104 : 104
+ <a name="XML_ERR_NOTATION_PROCESSING" id="XML_ERR_NOTATION_PROCESSING">XML_ERR_NOTATION_PROCESSING</a> = 105 : 105
+ <a name="XML_WAR_NS_COLUMN" id="XML_WAR_NS_COLUMN">XML_WAR_NS_COLUMN</a> = 106 : 106
+ <a name="XML_WAR_ENTITY_REDEFINED" id="XML_WAR_ENTITY_REDEFINED">XML_WAR_ENTITY_REDEFINED</a> = 107 : 107
+ <a name="XML_ERR_UNKNOWN_VERSION" id="XML_ERR_UNKNOWN_VERSION">XML_ERR_UNKNOWN_VERSION</a> = 108 : 108
+ <a name="XML_ERR_VERSION_MISMATCH" id="XML_ERR_VERSION_MISMATCH">XML_ERR_VERSION_MISMATCH</a> = 109 : 109
+ <a name="XML_ERR_NAME_TOO_LONG" id="XML_ERR_NAME_TOO_LONG">XML_ERR_NAME_TOO_LONG</a> = 110 : 110
+ <a name="XML_ERR_USER_STOP" id="XML_ERR_USER_STOP">XML_ERR_USER_STOP</a> = 111 : 111
+ <a name="XML_NS_ERR_XML_NAMESPACE" id="XML_NS_ERR_XML_NAMESPACE">XML_NS_ERR_XML_NAMESPACE</a> = 200
+ <a name="XML_NS_ERR_UNDEFINED_NAMESPACE" id="XML_NS_ERR_UNDEFINED_NAMESPACE">XML_NS_ERR_UNDEFINED_NAMESPACE</a> = 201 : 201
+ <a name="XML_NS_ERR_QNAME" id="XML_NS_ERR_QNAME">XML_NS_ERR_QNAME</a> = 202 : 202
+ <a name="XML_NS_ERR_ATTRIBUTE_REDEFINED" id="XML_NS_ERR_ATTRIBUTE_REDEFINED">XML_NS_ERR_ATTRIBUTE_REDEFINED</a> = 203 : 203
+ <a name="XML_NS_ERR_EMPTY" id="XML_NS_ERR_EMPTY">XML_NS_ERR_EMPTY</a> = 204 : 204
+ <a name="XML_NS_ERR_COLON" id="XML_NS_ERR_COLON">XML_NS_ERR_COLON</a> = 205 : 205
+ <a name="XML_DTD_ATTRIBUTE_DEFAULT" id="XML_DTD_ATTRIBUTE_DEFAULT">XML_DTD_ATTRIBUTE_DEFAULT</a> = 500
+ <a name="XML_DTD_ATTRIBUTE_REDEFINED" id="XML_DTD_ATTRIBUTE_REDEFINED">XML_DTD_ATTRIBUTE_REDEFINED</a> = 501 : 501
+ <a name="XML_DTD_ATTRIBUTE_VALUE" id="XML_DTD_ATTRIBUTE_VALUE">XML_DTD_ATTRIBUTE_VALUE</a> = 502 : 502
+ <a name="XML_DTD_CONTENT_ERROR" id="XML_DTD_CONTENT_ERROR">XML_DTD_CONTENT_ERROR</a> = 503 : 503
+ <a name="XML_DTD_CONTENT_MODEL" id="XML_DTD_CONTENT_MODEL">XML_DTD_CONTENT_MODEL</a> = 504 : 504
+ <a name="XML_DTD_CONTENT_NOT_DETERMINIST" id="XML_DTD_CONTENT_NOT_DETERMINIST">XML_DTD_CONTENT_NOT_DETERMINIST</a> = 505 : 505
+ <a name="XML_DTD_DIFFERENT_PREFIX" id="XML_DTD_DIFFERENT_PREFIX">XML_DTD_DIFFERENT_PREFIX</a> = 506 : 506
+ <a name="XML_DTD_ELEM_DEFAULT_NAMESPACE" id="XML_DTD_ELEM_DEFAULT_NAMESPACE">XML_DTD_ELEM_DEFAULT_NAMESPACE</a> = 507 : 507
+ <a name="XML_DTD_ELEM_NAMESPACE" id="XML_DTD_ELEM_NAMESPACE">XML_DTD_ELEM_NAMESPACE</a> = 508 : 508
+ <a name="XML_DTD_ELEM_REDEFINED" id="XML_DTD_ELEM_REDEFINED">XML_DTD_ELEM_REDEFINED</a> = 509 : 509
+ <a name="XML_DTD_EMPTY_NOTATION" id="XML_DTD_EMPTY_NOTATION">XML_DTD_EMPTY_NOTATION</a> = 510 : 510
+ <a name="XML_DTD_ENTITY_TYPE" id="XML_DTD_ENTITY_TYPE">XML_DTD_ENTITY_TYPE</a> = 511 : 511
+ <a name="XML_DTD_ID_FIXED" id="XML_DTD_ID_FIXED">XML_DTD_ID_FIXED</a> = 512 : 512
+ <a name="XML_DTD_ID_REDEFINED" id="XML_DTD_ID_REDEFINED">XML_DTD_ID_REDEFINED</a> = 513 : 513
+ <a name="XML_DTD_ID_SUBSET" id="XML_DTD_ID_SUBSET">XML_DTD_ID_SUBSET</a> = 514 : 514
+ <a name="XML_DTD_INVALID_CHILD" id="XML_DTD_INVALID_CHILD">XML_DTD_INVALID_CHILD</a> = 515 : 515
+ <a name="XML_DTD_INVALID_DEFAULT" id="XML_DTD_INVALID_DEFAULT">XML_DTD_INVALID_DEFAULT</a> = 516 : 516
+ <a name="XML_DTD_LOAD_ERROR" id="XML_DTD_LOAD_ERROR">XML_DTD_LOAD_ERROR</a> = 517 : 517
+ <a name="XML_DTD_MISSING_ATTRIBUTE" id="XML_DTD_MISSING_ATTRIBUTE">XML_DTD_MISSING_ATTRIBUTE</a> = 518 : 518
+ <a name="XML_DTD_MIXED_CORRUPT" id="XML_DTD_MIXED_CORRUPT">XML_DTD_MIXED_CORRUPT</a> = 519 : 519
+ <a name="XML_DTD_MULTIPLE_ID" id="XML_DTD_MULTIPLE_ID">XML_DTD_MULTIPLE_ID</a> = 520 : 520
+ <a name="XML_DTD_NO_DOC" id="XML_DTD_NO_DOC">XML_DTD_NO_DOC</a> = 521 : 521
+ <a name="XML_DTD_NO_DTD" id="XML_DTD_NO_DTD">XML_DTD_NO_DTD</a> = 522 : 522
+ <a name="XML_DTD_NO_ELEM_NAME" id="XML_DTD_NO_ELEM_NAME">XML_DTD_NO_ELEM_NAME</a> = 523 : 523
+ <a name="XML_DTD_NO_PREFIX" id="XML_DTD_NO_PREFIX">XML_DTD_NO_PREFIX</a> = 524 : 524
+ <a name="XML_DTD_NO_ROOT" id="XML_DTD_NO_ROOT">XML_DTD_NO_ROOT</a> = 525 : 525
+ <a name="XML_DTD_NOTATION_REDEFINED" id="XML_DTD_NOTATION_REDEFINED">XML_DTD_NOTATION_REDEFINED</a> = 526 : 526
+ <a name="XML_DTD_NOTATION_VALUE" id="XML_DTD_NOTATION_VALUE">XML_DTD_NOTATION_VALUE</a> = 527 : 527
+ <a name="XML_DTD_NOT_EMPTY" id="XML_DTD_NOT_EMPTY">XML_DTD_NOT_EMPTY</a> = 528 : 528
+ <a name="XML_DTD_NOT_PCDATA" id="XML_DTD_NOT_PCDATA">XML_DTD_NOT_PCDATA</a> = 529 : 529
+ <a name="XML_DTD_NOT_STANDALONE" id="XML_DTD_NOT_STANDALONE">XML_DTD_NOT_STANDALONE</a> = 530 : 530
+ <a name="XML_DTD_ROOT_NAME" id="XML_DTD_ROOT_NAME">XML_DTD_ROOT_NAME</a> = 531 : 531
+ <a name="XML_DTD_STANDALONE_WHITE_SPACE" id="XML_DTD_STANDALONE_WHITE_SPACE">XML_DTD_STANDALONE_WHITE_SPACE</a> = 532 : 532
+ <a name="XML_DTD_UNKNOWN_ATTRIBUTE" id="XML_DTD_UNKNOWN_ATTRIBUTE">XML_DTD_UNKNOWN_ATTRIBUTE</a> = 533 : 533
+ <a name="XML_DTD_UNKNOWN_ELEM" id="XML_DTD_UNKNOWN_ELEM">XML_DTD_UNKNOWN_ELEM</a> = 534 : 534
+ <a name="XML_DTD_UNKNOWN_ENTITY" id="XML_DTD_UNKNOWN_ENTITY">XML_DTD_UNKNOWN_ENTITY</a> = 535 : 535
+ <a name="XML_DTD_UNKNOWN_ID" id="XML_DTD_UNKNOWN_ID">XML_DTD_UNKNOWN_ID</a> = 536 : 536
+ <a name="XML_DTD_UNKNOWN_NOTATION" id="XML_DTD_UNKNOWN_NOTATION">XML_DTD_UNKNOWN_NOTATION</a> = 537 : 537
+ <a name="XML_DTD_STANDALONE_DEFAULTED" id="XML_DTD_STANDALONE_DEFAULTED">XML_DTD_STANDALONE_DEFAULTED</a> = 538 : 538
+ <a name="XML_DTD_XMLID_VALUE" id="XML_DTD_XMLID_VALUE">XML_DTD_XMLID_VALUE</a> = 539 : 539
+ <a name="XML_DTD_XMLID_TYPE" id="XML_DTD_XMLID_TYPE">XML_DTD_XMLID_TYPE</a> = 540 : 540
+ <a name="XML_DTD_DUP_TOKEN" id="XML_DTD_DUP_TOKEN">XML_DTD_DUP_TOKEN</a> = 541 : 541
+ <a name="XML_HTML_STRUCURE_ERROR" id="XML_HTML_STRUCURE_ERROR">XML_HTML_STRUCURE_ERROR</a> = 800
+ <a name="XML_HTML_UNKNOWN_TAG" id="XML_HTML_UNKNOWN_TAG">XML_HTML_UNKNOWN_TAG</a> = 801 : 801
+ <a name="XML_RNGP_ANYNAME_ATTR_ANCESTOR" id="XML_RNGP_ANYNAME_ATTR_ANCESTOR">XML_RNGP_ANYNAME_ATTR_ANCESTOR</a> = 1000
+ <a name="XML_RNGP_ATTR_CONFLICT" id="XML_RNGP_ATTR_CONFLICT">XML_RNGP_ATTR_CONFLICT</a> = 1001 : 1001
+ <a name="XML_RNGP_ATTRIBUTE_CHILDREN" id="XML_RNGP_ATTRIBUTE_CHILDREN">XML_RNGP_ATTRIBUTE_CHILDREN</a> = 1002 : 1002
+ <a name="XML_RNGP_ATTRIBUTE_CONTENT" id="XML_RNGP_ATTRIBUTE_CONTENT">XML_RNGP_ATTRIBUTE_CONTENT</a> = 1003 : 1003
+ <a name="XML_RNGP_ATTRIBUTE_EMPTY" id="XML_RNGP_ATTRIBUTE_EMPTY">XML_RNGP_ATTRIBUTE_EMPTY</a> = 1004 : 1004
+ <a name="XML_RNGP_ATTRIBUTE_NOOP" id="XML_RNGP_ATTRIBUTE_NOOP">XML_RNGP_ATTRIBUTE_NOOP</a> = 1005 : 1005
+ <a name="XML_RNGP_CHOICE_CONTENT" id="XML_RNGP_CHOICE_CONTENT">XML_RNGP_CHOICE_CONTENT</a> = 1006 : 1006
+ <a name="XML_RNGP_CHOICE_EMPTY" id="XML_RNGP_CHOICE_EMPTY">XML_RNGP_CHOICE_EMPTY</a> = 1007 : 1007
+ <a name="XML_RNGP_CREATE_FAILURE" id="XML_RNGP_CREATE_FAILURE">XML_RNGP_CREATE_FAILURE</a> = 1008 : 1008
+ <a name="XML_RNGP_DATA_CONTENT" id="XML_RNGP_DATA_CONTENT">XML_RNGP_DATA_CONTENT</a> = 1009 : 1009
+ <a name="XML_RNGP_DEF_CHOICE_AND_INTERLEAVE" id="XML_RNGP_DEF_CHOICE_AND_INTERLEAVE">XML_RNGP_DEF_CHOICE_AND_INTERLEAVE</a> = 1010 : 1010
+ <a name="XML_RNGP_DEFINE_CREATE_FAILED" id="XML_RNGP_DEFINE_CREATE_FAILED">XML_RNGP_DEFINE_CREATE_FAILED</a> = 1011 : 1011
+ <a name="XML_RNGP_DEFINE_EMPTY" id="XML_RNGP_DEFINE_EMPTY">XML_RNGP_DEFINE_EMPTY</a> = 1012 : 1012
+ <a name="XML_RNGP_DEFINE_MISSING" id="XML_RNGP_DEFINE_MISSING">XML_RNGP_DEFINE_MISSING</a> = 1013 : 1013
+ <a name="XML_RNGP_DEFINE_NAME_MISSING" id="XML_RNGP_DEFINE_NAME_MISSING">XML_RNGP_DEFINE_NAME_MISSING</a> = 1014 : 1014
+ <a name="XML_RNGP_ELEM_CONTENT_EMPTY" id="XML_RNGP_ELEM_CONTENT_EMPTY">XML_RNGP_ELEM_CONTENT_EMPTY</a> = 1015 : 1015
+ <a name="XML_RNGP_ELEM_CONTENT_ERROR" id="XML_RNGP_ELEM_CONTENT_ERROR">XML_RNGP_ELEM_CONTENT_ERROR</a> = 1016 : 1016
+ <a name="XML_RNGP_ELEMENT_EMPTY" id="XML_RNGP_ELEMENT_EMPTY">XML_RNGP_ELEMENT_EMPTY</a> = 1017 : 1017
+ <a name="XML_RNGP_ELEMENT_CONTENT" id="XML_RNGP_ELEMENT_CONTENT">XML_RNGP_ELEMENT_CONTENT</a> = 1018 : 1018
+ <a name="XML_RNGP_ELEMENT_NAME" id="XML_RNGP_ELEMENT_NAME">XML_RNGP_ELEMENT_NAME</a> = 1019 : 1019
+ <a name="XML_RNGP_ELEMENT_NO_CONTENT" id="XML_RNGP_ELEMENT_NO_CONTENT">XML_RNGP_ELEMENT_NO_CONTENT</a> = 1020 : 1020
+ <a name="XML_RNGP_ELEM_TEXT_CONFLICT" id="XML_RNGP_ELEM_TEXT_CONFLICT">XML_RNGP_ELEM_TEXT_CONFLICT</a> = 1021 : 1021
+ <a name="XML_RNGP_EMPTY" id="XML_RNGP_EMPTY">XML_RNGP_EMPTY</a> = 1022 : 1022
+ <a name="XML_RNGP_EMPTY_CONSTRUCT" id="XML_RNGP_EMPTY_CONSTRUCT">XML_RNGP_EMPTY_CONSTRUCT</a> = 1023 : 1023
+ <a name="XML_RNGP_EMPTY_CONTENT" id="XML_RNGP_EMPTY_CONTENT">XML_RNGP_EMPTY_CONTENT</a> = 1024 : 1024
+ <a name="XML_RNGP_EMPTY_NOT_EMPTY" id="XML_RNGP_EMPTY_NOT_EMPTY">XML_RNGP_EMPTY_NOT_EMPTY</a> = 1025 : 1025
+ <a name="XML_RNGP_ERROR_TYPE_LIB" id="XML_RNGP_ERROR_TYPE_LIB">XML_RNGP_ERROR_TYPE_LIB</a> = 1026 : 1026
+ <a name="XML_RNGP_EXCEPT_EMPTY" id="XML_RNGP_EXCEPT_EMPTY">XML_RNGP_EXCEPT_EMPTY</a> = 1027 : 1027
+ <a name="XML_RNGP_EXCEPT_MISSING" id="XML_RNGP_EXCEPT_MISSING">XML_RNGP_EXCEPT_MISSING</a> = 1028 : 1028
+ <a name="XML_RNGP_EXCEPT_MULTIPLE" id="XML_RNGP_EXCEPT_MULTIPLE">XML_RNGP_EXCEPT_MULTIPLE</a> = 1029 : 1029
+ <a name="XML_RNGP_EXCEPT_NO_CONTENT" id="XML_RNGP_EXCEPT_NO_CONTENT">XML_RNGP_EXCEPT_NO_CONTENT</a> = 1030 : 1030
+ <a name="XML_RNGP_EXTERNALREF_EMTPY" id="XML_RNGP_EXTERNALREF_EMTPY">XML_RNGP_EXTERNALREF_EMTPY</a> = 1031 : 1031
+ <a name="XML_RNGP_EXTERNAL_REF_FAILURE" id="XML_RNGP_EXTERNAL_REF_FAILURE">XML_RNGP_EXTERNAL_REF_FAILURE</a> = 1032 : 1032
+ <a name="XML_RNGP_EXTERNALREF_RECURSE" id="XML_RNGP_EXTERNALREF_RECURSE">XML_RNGP_EXTERNALREF_RECURSE</a> = 1033 : 1033
+ <a name="XML_RNGP_FORBIDDEN_ATTRIBUTE" id="XML_RNGP_FORBIDDEN_ATTRIBUTE">XML_RNGP_FORBIDDEN_ATTRIBUTE</a> = 1034 : 1034
+ <a name="XML_RNGP_FOREIGN_ELEMENT" id="XML_RNGP_FOREIGN_ELEMENT">XML_RNGP_FOREIGN_ELEMENT</a> = 1035 : 1035
+ <a name="XML_RNGP_GRAMMAR_CONTENT" id="XML_RNGP_GRAMMAR_CONTENT">XML_RNGP_GRAMMAR_CONTENT</a> = 1036 : 1036
+ <a name="XML_RNGP_GRAMMAR_EMPTY" id="XML_RNGP_GRAMMAR_EMPTY">XML_RNGP_GRAMMAR_EMPTY</a> = 1037 : 1037
+ <a name="XML_RNGP_GRAMMAR_MISSING" id="XML_RNGP_GRAMMAR_MISSING">XML_RNGP_GRAMMAR_MISSING</a> = 1038 : 1038
+ <a name="XML_RNGP_GRAMMAR_NO_START" id="XML_RNGP_GRAMMAR_NO_START">XML_RNGP_GRAMMAR_NO_START</a> = 1039 : 1039
+ <a name="XML_RNGP_GROUP_ATTR_CONFLICT" id="XML_RNGP_GROUP_ATTR_CONFLICT">XML_RNGP_GROUP_ATTR_CONFLICT</a> = 1040 : 1040
+ <a name="XML_RNGP_HREF_ERROR" id="XML_RNGP_HREF_ERROR">XML_RNGP_HREF_ERROR</a> = 1041 : 1041
+ <a name="XML_RNGP_INCLUDE_EMPTY" id="XML_RNGP_INCLUDE_EMPTY">XML_RNGP_INCLUDE_EMPTY</a> = 1042 : 1042
+ <a name="XML_RNGP_INCLUDE_FAILURE" id="XML_RNGP_INCLUDE_FAILURE">XML_RNGP_INCLUDE_FAILURE</a> = 1043 : 1043
+ <a name="XML_RNGP_INCLUDE_RECURSE" id="XML_RNGP_INCLUDE_RECURSE">XML_RNGP_INCLUDE_RECURSE</a> = 1044 : 1044
+ <a name="XML_RNGP_INTERLEAVE_ADD" id="XML_RNGP_INTERLEAVE_ADD">XML_RNGP_INTERLEAVE_ADD</a> = 1045 : 1045
+ <a name="XML_RNGP_INTERLEAVE_CREATE_FAILED" id="XML_RNGP_INTERLEAVE_CREATE_FAILED">XML_RNGP_INTERLEAVE_CREATE_FAILED</a> = 1046 : 1046
+ <a name="XML_RNGP_INTERLEAVE_EMPTY" id="XML_RNGP_INTERLEAVE_EMPTY">XML_RNGP_INTERLEAVE_EMPTY</a> = 1047 : 1047
+ <a name="XML_RNGP_INTERLEAVE_NO_CONTENT" id="XML_RNGP_INTERLEAVE_NO_CONTENT">XML_RNGP_INTERLEAVE_NO_CONTENT</a> = 1048 : 1048
+ <a name="XML_RNGP_INVALID_DEFINE_NAME" id="XML_RNGP_INVALID_DEFINE_NAME">XML_RNGP_INVALID_DEFINE_NAME</a> = 1049 : 1049
+ <a name="XML_RNGP_INVALID_URI" id="XML_RNGP_INVALID_URI">XML_RNGP_INVALID_URI</a> = 1050 : 1050
+ <a name="XML_RNGP_INVALID_VALUE" id="XML_RNGP_INVALID_VALUE">XML_RNGP_INVALID_VALUE</a> = 1051 : 1051
+ <a name="XML_RNGP_MISSING_HREF" id="XML_RNGP_MISSING_HREF">XML_RNGP_MISSING_HREF</a> = 1052 : 1052
+ <a name="XML_RNGP_NAME_MISSING" id="XML_RNGP_NAME_MISSING">XML_RNGP_NAME_MISSING</a> = 1053 : 1053
+ <a name="XML_RNGP_NEED_COMBINE" id="XML_RNGP_NEED_COMBINE">XML_RNGP_NEED_COMBINE</a> = 1054 : 1054
+ <a name="XML_RNGP_NOTALLOWED_NOT_EMPTY" id="XML_RNGP_NOTALLOWED_NOT_EMPTY">XML_RNGP_NOTALLOWED_NOT_EMPTY</a> = 1055 : 1055
+ <a name="XML_RNGP_NSNAME_ATTR_ANCESTOR" id="XML_RNGP_NSNAME_ATTR_ANCESTOR">XML_RNGP_NSNAME_ATTR_ANCESTOR</a> = 1056 : 1056
+ <a name="XML_RNGP_NSNAME_NO_NS" id="XML_RNGP_NSNAME_NO_NS">XML_RNGP_NSNAME_NO_NS</a> = 1057 : 1057
+ <a name="XML_RNGP_PARAM_FORBIDDEN" id="XML_RNGP_PARAM_FORBIDDEN">XML_RNGP_PARAM_FORBIDDEN</a> = 1058 : 1058
+ <a name="XML_RNGP_PARAM_NAME_MISSING" id="XML_RNGP_PARAM_NAME_MISSING">XML_RNGP_PARAM_NAME_MISSING</a> = 1059 : 1059
+ <a name="XML_RNGP_PARENTREF_CREATE_FAILED" id="XML_RNGP_PARENTREF_CREATE_FAILED">XML_RNGP_PARENTREF_CREATE_FAILED</a> = 1060 : 1060
+ <a name="XML_RNGP_PARENTREF_NAME_INVALID" id="XML_RNGP_PARENTREF_NAME_INVALID">XML_RNGP_PARENTREF_NAME_INVALID</a> = 1061 : 1061
+ <a name="XML_RNGP_PARENTREF_NO_NAME" id="XML_RNGP_PARENTREF_NO_NAME">XML_RNGP_PARENTREF_NO_NAME</a> = 1062 : 1062
+ <a name="XML_RNGP_PARENTREF_NO_PARENT" id="XML_RNGP_PARENTREF_NO_PARENT">XML_RNGP_PARENTREF_NO_PARENT</a> = 1063 : 1063
+ <a name="XML_RNGP_PARENTREF_NOT_EMPTY" id="XML_RNGP_PARENTREF_NOT_EMPTY">XML_RNGP_PARENTREF_NOT_EMPTY</a> = 1064 : 1064
+ <a name="XML_RNGP_PARSE_ERROR" id="XML_RNGP_PARSE_ERROR">XML_RNGP_PARSE_ERROR</a> = 1065 : 1065
+ <a name="XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME" id="XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME">XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME</a> = 1066 : 1066
+ <a name="XML_RNGP_PAT_ATTR_ATTR" id="XML_RNGP_PAT_ATTR_ATTR">XML_RNGP_PAT_ATTR_ATTR</a> = 1067 : 1067
+ <a name="XML_RNGP_PAT_ATTR_ELEM" id="XML_RNGP_PAT_ATTR_ELEM">XML_RNGP_PAT_ATTR_ELEM</a> = 1068 : 1068
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_ATTR" id="XML_RNGP_PAT_DATA_EXCEPT_ATTR">XML_RNGP_PAT_DATA_EXCEPT_ATTR</a> = 1069 : 1069
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_ELEM" id="XML_RNGP_PAT_DATA_EXCEPT_ELEM">XML_RNGP_PAT_DATA_EXCEPT_ELEM</a> = 1070 : 1070
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_EMPTY" id="XML_RNGP_PAT_DATA_EXCEPT_EMPTY">XML_RNGP_PAT_DATA_EXCEPT_EMPTY</a> = 1071 : 1071
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_GROUP" id="XML_RNGP_PAT_DATA_EXCEPT_GROUP">XML_RNGP_PAT_DATA_EXCEPT_GROUP</a> = 1072 : 1072
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE" id="XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE">XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE</a> = 1073 : 1073
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_LIST" id="XML_RNGP_PAT_DATA_EXCEPT_LIST">XML_RNGP_PAT_DATA_EXCEPT_LIST</a> = 1074 : 1074
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_ONEMORE" id="XML_RNGP_PAT_DATA_EXCEPT_ONEMORE">XML_RNGP_PAT_DATA_EXCEPT_ONEMORE</a> = 1075 : 1075
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_REF" id="XML_RNGP_PAT_DATA_EXCEPT_REF">XML_RNGP_PAT_DATA_EXCEPT_REF</a> = 1076 : 1076
+ <a name="XML_RNGP_PAT_DATA_EXCEPT_TEXT" id="XML_RNGP_PAT_DATA_EXCEPT_TEXT">XML_RNGP_PAT_DATA_EXCEPT_TEXT</a> = 1077 : 1077
+ <a name="XML_RNGP_PAT_LIST_ATTR" id="XML_RNGP_PAT_LIST_ATTR">XML_RNGP_PAT_LIST_ATTR</a> = 1078 : 1078
+ <a name="XML_RNGP_PAT_LIST_ELEM" id="XML_RNGP_PAT_LIST_ELEM">XML_RNGP_PAT_LIST_ELEM</a> = 1079 : 1079
+ <a name="XML_RNGP_PAT_LIST_INTERLEAVE" id="XML_RNGP_PAT_LIST_INTERLEAVE">XML_RNGP_PAT_LIST_INTERLEAVE</a> = 1080 : 1080
+ <a name="XML_RNGP_PAT_LIST_LIST" id="XML_RNGP_PAT_LIST_LIST">XML_RNGP_PAT_LIST_LIST</a> = 1081 : 1081
+ <a name="XML_RNGP_PAT_LIST_REF" id="XML_RNGP_PAT_LIST_REF">XML_RNGP_PAT_LIST_REF</a> = 1082 : 1082
+ <a name="XML_RNGP_PAT_LIST_TEXT" id="XML_RNGP_PAT_LIST_TEXT">XML_RNGP_PAT_LIST_TEXT</a> = 1083 : 1083
+ <a name="XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME" id="XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME">XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME</a> = 1084 : 1084
+ <a name="XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME" id="XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME">XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME</a> = 1085 : 1085
+ <a name="XML_RNGP_PAT_ONEMORE_GROUP_ATTR" id="XML_RNGP_PAT_ONEMORE_GROUP_ATTR">XML_RNGP_PAT_ONEMORE_GROUP_ATTR</a> = 1086 : 1086
+ <a name="XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR" id="XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR">XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR</a> = 1087 : 1087
+ <a name="XML_RNGP_PAT_START_ATTR" id="XML_RNGP_PAT_START_ATTR">XML_RNGP_PAT_START_ATTR</a> = 1088 : 1088
+ <a name="XML_RNGP_PAT_START_DATA" id="XML_RNGP_PAT_START_DATA">XML_RNGP_PAT_START_DATA</a> = 1089 : 1089
+ <a name="XML_RNGP_PAT_START_EMPTY" id="XML_RNGP_PAT_START_EMPTY">XML_RNGP_PAT_START_EMPTY</a> = 1090 : 1090
+ <a name="XML_RNGP_PAT_START_GROUP" id="XML_RNGP_PAT_START_GROUP">XML_RNGP_PAT_START_GROUP</a> = 1091 : 1091
+ <a name="XML_RNGP_PAT_START_INTERLEAVE" id="XML_RNGP_PAT_START_INTERLEAVE">XML_RNGP_PAT_START_INTERLEAVE</a> = 1092 : 1092
+ <a name="XML_RNGP_PAT_START_LIST" id="XML_RNGP_PAT_START_LIST">XML_RNGP_PAT_START_LIST</a> = 1093 : 1093
+ <a name="XML_RNGP_PAT_START_ONEMORE" id="XML_RNGP_PAT_START_ONEMORE">XML_RNGP_PAT_START_ONEMORE</a> = 1094 : 1094
+ <a name="XML_RNGP_PAT_START_TEXT" id="XML_RNGP_PAT_START_TEXT">XML_RNGP_PAT_START_TEXT</a> = 1095 : 1095
+ <a name="XML_RNGP_PAT_START_VALUE" id="XML_RNGP_PAT_START_VALUE">XML_RNGP_PAT_START_VALUE</a> = 1096 : 1096
+ <a name="XML_RNGP_PREFIX_UNDEFINED" id="XML_RNGP_PREFIX_UNDEFINED">XML_RNGP_PREFIX_UNDEFINED</a> = 1097 : 1097
+ <a name="XML_RNGP_REF_CREATE_FAILED" id="XML_RNGP_REF_CREATE_FAILED">XML_RNGP_REF_CREATE_FAILED</a> = 1098 : 1098
+ <a name="XML_RNGP_REF_CYCLE" id="XML_RNGP_REF_CYCLE">XML_RNGP_REF_CYCLE</a> = 1099 : 1099
+ <a name="XML_RNGP_REF_NAME_INVALID" id="XML_RNGP_REF_NAME_INVALID">XML_RNGP_REF_NAME_INVALID</a> = 1100 : 1100
+ <a name="XML_RNGP_REF_NO_DEF" id="XML_RNGP_REF_NO_DEF">XML_RNGP_REF_NO_DEF</a> = 1101 : 1101
+ <a name="XML_RNGP_REF_NO_NAME" id="XML_RNGP_REF_NO_NAME">XML_RNGP_REF_NO_NAME</a> = 1102 : 1102
+ <a name="XML_RNGP_REF_NOT_EMPTY" id="XML_RNGP_REF_NOT_EMPTY">XML_RNGP_REF_NOT_EMPTY</a> = 1103 : 1103
+ <a name="XML_RNGP_START_CHOICE_AND_INTERLEAVE" id="XML_RNGP_START_CHOICE_AND_INTERLEAVE">XML_RNGP_START_CHOICE_AND_INTERLEAVE</a> = 1104 : 1104
+ <a name="XML_RNGP_START_CONTENT" id="XML_RNGP_START_CONTENT">XML_RNGP_START_CONTENT</a> = 1105 : 1105
+ <a name="XML_RNGP_START_EMPTY" id="XML_RNGP_START_EMPTY">XML_RNGP_START_EMPTY</a> = 1106 : 1106
+ <a name="XML_RNGP_START_MISSING" id="XML_RNGP_START_MISSING">XML_RNGP_START_MISSING</a> = 1107 : 1107
+ <a name="XML_RNGP_TEXT_EXPECTED" id="XML_RNGP_TEXT_EXPECTED">XML_RNGP_TEXT_EXPECTED</a> = 1108 : 1108
+ <a name="XML_RNGP_TEXT_HAS_CHILD" id="XML_RNGP_TEXT_HAS_CHILD">XML_RNGP_TEXT_HAS_CHILD</a> = 1109 : 1109
+ <a name="XML_RNGP_TYPE_MISSING" id="XML_RNGP_TYPE_MISSING">XML_RNGP_TYPE_MISSING</a> = 1110 : 1110
+ <a name="XML_RNGP_TYPE_NOT_FOUND" id="XML_RNGP_TYPE_NOT_FOUND">XML_RNGP_TYPE_NOT_FOUND</a> = 1111 : 1111
+ <a name="XML_RNGP_TYPE_VALUE" id="XML_RNGP_TYPE_VALUE">XML_RNGP_TYPE_VALUE</a> = 1112 : 1112
+ <a name="XML_RNGP_UNKNOWN_ATTRIBUTE" id="XML_RNGP_UNKNOWN_ATTRIBUTE">XML_RNGP_UNKNOWN_ATTRIBUTE</a> = 1113 : 1113
+ <a name="XML_RNGP_UNKNOWN_COMBINE" id="XML_RNGP_UNKNOWN_COMBINE">XML_RNGP_UNKNOWN_COMBINE</a> = 1114 : 1114
+ <a name="XML_RNGP_UNKNOWN_CONSTRUCT" id="XML_RNGP_UNKNOWN_CONSTRUCT">XML_RNGP_UNKNOWN_CONSTRUCT</a> = 1115 : 1115
+ <a name="XML_RNGP_UNKNOWN_TYPE_LIB" id="XML_RNGP_UNKNOWN_TYPE_LIB">XML_RNGP_UNKNOWN_TYPE_LIB</a> = 1116 : 1116
+ <a name="XML_RNGP_URI_FRAGMENT" id="XML_RNGP_URI_FRAGMENT">XML_RNGP_URI_FRAGMENT</a> = 1117 : 1117
+ <a name="XML_RNGP_URI_NOT_ABSOLUTE" id="XML_RNGP_URI_NOT_ABSOLUTE">XML_RNGP_URI_NOT_ABSOLUTE</a> = 1118 : 1118
+ <a name="XML_RNGP_VALUE_EMPTY" id="XML_RNGP_VALUE_EMPTY">XML_RNGP_VALUE_EMPTY</a> = 1119 : 1119
+ <a name="XML_RNGP_VALUE_NO_CONTENT" id="XML_RNGP_VALUE_NO_CONTENT">XML_RNGP_VALUE_NO_CONTENT</a> = 1120 : 1120
+ <a name="XML_RNGP_XMLNS_NAME" id="XML_RNGP_XMLNS_NAME">XML_RNGP_XMLNS_NAME</a> = 1121 : 1121
+ <a name="XML_RNGP_XML_NS" id="XML_RNGP_XML_NS">XML_RNGP_XML_NS</a> = 1122 : 1122
+ <a name="XML_XPATH_EXPRESSION_OK" id="XML_XPATH_EXPRESSION_OK">XML_XPATH_EXPRESSION_OK</a> = 1200
+ <a name="XML_XPATH_NUMBER_ERROR" id="XML_XPATH_NUMBER_ERROR">XML_XPATH_NUMBER_ERROR</a> = 1201 : 1201
+ <a name="XML_XPATH_UNFINISHED_LITERAL_ERROR" id="XML_XPATH_UNFINISHED_LITERAL_ERROR">XML_XPATH_UNFINISHED_LITERAL_ERROR</a> = 1202 : 1202
+ <a name="XML_XPATH_START_LITERAL_ERROR" id="XML_XPATH_START_LITERAL_ERROR">XML_XPATH_START_LITERAL_ERROR</a> = 1203 : 1203
+ <a name="XML_XPATH_VARIABLE_REF_ERROR" id="XML_XPATH_VARIABLE_REF_ERROR">XML_XPATH_VARIABLE_REF_ERROR</a> = 1204 : 1204
+ <a name="XML_XPATH_UNDEF_VARIABLE_ERROR" id="XML_XPATH_UNDEF_VARIABLE_ERROR">XML_XPATH_UNDEF_VARIABLE_ERROR</a> = 1205 : 1205
+ <a name="XML_XPATH_INVALID_PREDICATE_ERROR" id="XML_XPATH_INVALID_PREDICATE_ERROR">XML_XPATH_INVALID_PREDICATE_ERROR</a> = 1206 : 1206
+ <a name="XML_XPATH_EXPR_ERROR" id="XML_XPATH_EXPR_ERROR">XML_XPATH_EXPR_ERROR</a> = 1207 : 1207
+ <a name="XML_XPATH_UNCLOSED_ERROR" id="XML_XPATH_UNCLOSED_ERROR">XML_XPATH_UNCLOSED_ERROR</a> = 1208 : 1208
+ <a name="XML_XPATH_UNKNOWN_FUNC_ERROR" id="XML_XPATH_UNKNOWN_FUNC_ERROR">XML_XPATH_UNKNOWN_FUNC_ERROR</a> = 1209 : 1209
+ <a name="XML_XPATH_INVALID_OPERAND" id="XML_XPATH_INVALID_OPERAND">XML_XPATH_INVALID_OPERAND</a> = 1210 : 1210
+ <a name="XML_XPATH_INVALID_TYPE" id="XML_XPATH_INVALID_TYPE">XML_XPATH_INVALID_TYPE</a> = 1211 : 1211
+ <a name="XML_XPATH_INVALID_ARITY" id="XML_XPATH_INVALID_ARITY">XML_XPATH_INVALID_ARITY</a> = 1212 : 1212
+ <a name="XML_XPATH_INVALID_CTXT_SIZE" id="XML_XPATH_INVALID_CTXT_SIZE">XML_XPATH_INVALID_CTXT_SIZE</a> = 1213 : 1213
+ <a name="XML_XPATH_INVALID_CTXT_POSITION" id="XML_XPATH_INVALID_CTXT_POSITION">XML_XPATH_INVALID_CTXT_POSITION</a> = 1214 : 1214
+ <a name="XML_XPATH_MEMORY_ERROR" id="XML_XPATH_MEMORY_ERROR">XML_XPATH_MEMORY_ERROR</a> = 1215 : 1215
+ <a name="XML_XPTR_SYNTAX_ERROR" id="XML_XPTR_SYNTAX_ERROR">XML_XPTR_SYNTAX_ERROR</a> = 1216 : 1216
+ <a name="XML_XPTR_RESOURCE_ERROR" id="XML_XPTR_RESOURCE_ERROR">XML_XPTR_RESOURCE_ERROR</a> = 1217 : 1217
+ <a name="XML_XPTR_SUB_RESOURCE_ERROR" id="XML_XPTR_SUB_RESOURCE_ERROR">XML_XPTR_SUB_RESOURCE_ERROR</a> = 1218 : 1218
+ <a name="XML_XPATH_UNDEF_PREFIX_ERROR" id="XML_XPATH_UNDEF_PREFIX_ERROR">XML_XPATH_UNDEF_PREFIX_ERROR</a> = 1219 : 1219
+ <a name="XML_XPATH_ENCODING_ERROR" id="XML_XPATH_ENCODING_ERROR">XML_XPATH_ENCODING_ERROR</a> = 1220 : 1220
+ <a name="XML_XPATH_INVALID_CHAR_ERROR" id="XML_XPATH_INVALID_CHAR_ERROR">XML_XPATH_INVALID_CHAR_ERROR</a> = 1221 : 1221
+ <a name="XML_TREE_INVALID_HEX" id="XML_TREE_INVALID_HEX">XML_TREE_INVALID_HEX</a> = 1300
+ <a name="XML_TREE_INVALID_DEC" id="XML_TREE_INVALID_DEC">XML_TREE_INVALID_DEC</a> = 1301 : 1301
+ <a name="XML_TREE_UNTERMINATED_ENTITY" id="XML_TREE_UNTERMINATED_ENTITY">XML_TREE_UNTERMINATED_ENTITY</a> = 1302 : 1302
+ <a name="XML_TREE_NOT_UTF8" id="XML_TREE_NOT_UTF8">XML_TREE_NOT_UTF8</a> = 1303 : 1303
+ <a name="XML_SAVE_NOT_UTF8" id="XML_SAVE_NOT_UTF8">XML_SAVE_NOT_UTF8</a> = 1400
+ <a name="XML_SAVE_CHAR_INVALID" id="XML_SAVE_CHAR_INVALID">XML_SAVE_CHAR_INVALID</a> = 1401 : 1401
+ <a name="XML_SAVE_NO_DOCTYPE" id="XML_SAVE_NO_DOCTYPE">XML_SAVE_NO_DOCTYPE</a> = 1402 : 1402
+ <a name="XML_SAVE_UNKNOWN_ENCODING" id="XML_SAVE_UNKNOWN_ENCODING">XML_SAVE_UNKNOWN_ENCODING</a> = 1403 : 1403
+ <a name="XML_REGEXP_COMPILE_ERROR" id="XML_REGEXP_COMPILE_ERROR">XML_REGEXP_COMPILE_ERROR</a> = 1450
+ <a name="XML_IO_UNKNOWN" id="XML_IO_UNKNOWN">XML_IO_UNKNOWN</a> = 1500
+ <a name="XML_IO_EACCES" id="XML_IO_EACCES">XML_IO_EACCES</a> = 1501 : 1501
+ <a name="XML_IO_EAGAIN" id="XML_IO_EAGAIN">XML_IO_EAGAIN</a> = 1502 : 1502
+ <a name="XML_IO_EBADF" id="XML_IO_EBADF">XML_IO_EBADF</a> = 1503 : 1503
+ <a name="XML_IO_EBADMSG" id="XML_IO_EBADMSG">XML_IO_EBADMSG</a> = 1504 : 1504
+ <a name="XML_IO_EBUSY" id="XML_IO_EBUSY">XML_IO_EBUSY</a> = 1505 : 1505
+ <a name="XML_IO_ECANCELED" id="XML_IO_ECANCELED">XML_IO_ECANCELED</a> = 1506 : 1506
+ <a name="XML_IO_ECHILD" id="XML_IO_ECHILD">XML_IO_ECHILD</a> = 1507 : 1507
+ <a name="XML_IO_EDEADLK" id="XML_IO_EDEADLK">XML_IO_EDEADLK</a> = 1508 : 1508
+ <a name="XML_IO_EDOM" id="XML_IO_EDOM">XML_IO_EDOM</a> = 1509 : 1509
+ <a name="XML_IO_EEXIST" id="XML_IO_EEXIST">XML_IO_EEXIST</a> = 1510 : 1510
+ <a name="XML_IO_EFAULT" id="XML_IO_EFAULT">XML_IO_EFAULT</a> = 1511 : 1511
+ <a name="XML_IO_EFBIG" id="XML_IO_EFBIG">XML_IO_EFBIG</a> = 1512 : 1512
+ <a name="XML_IO_EINPROGRESS" id="XML_IO_EINPROGRESS">XML_IO_EINPROGRESS</a> = 1513 : 1513
+ <a name="XML_IO_EINTR" id="XML_IO_EINTR">XML_IO_EINTR</a> = 1514 : 1514
+ <a name="XML_IO_EINVAL" id="XML_IO_EINVAL">XML_IO_EINVAL</a> = 1515 : 1515
+ <a name="XML_IO_EIO" id="XML_IO_EIO">XML_IO_EIO</a> = 1516 : 1516
+ <a name="XML_IO_EISDIR" id="XML_IO_EISDIR">XML_IO_EISDIR</a> = 1517 : 1517
+ <a name="XML_IO_EMFILE" id="XML_IO_EMFILE">XML_IO_EMFILE</a> = 1518 : 1518
+ <a name="XML_IO_EMLINK" id="XML_IO_EMLINK">XML_IO_EMLINK</a> = 1519 : 1519
+ <a name="XML_IO_EMSGSIZE" id="XML_IO_EMSGSIZE">XML_IO_EMSGSIZE</a> = 1520 : 1520
+ <a name="XML_IO_ENAMETOOLONG" id="XML_IO_ENAMETOOLONG">XML_IO_ENAMETOOLONG</a> = 1521 : 1521
+ <a name="XML_IO_ENFILE" id="XML_IO_ENFILE">XML_IO_ENFILE</a> = 1522 : 1522
+ <a name="XML_IO_ENODEV" id="XML_IO_ENODEV">XML_IO_ENODEV</a> = 1523 : 1523
+ <a name="XML_IO_ENOENT" id="XML_IO_ENOENT">XML_IO_ENOENT</a> = 1524 : 1524
+ <a name="XML_IO_ENOEXEC" id="XML_IO_ENOEXEC">XML_IO_ENOEXEC</a> = 1525 : 1525
+ <a name="XML_IO_ENOLCK" id="XML_IO_ENOLCK">XML_IO_ENOLCK</a> = 1526 : 1526
+ <a name="XML_IO_ENOMEM" id="XML_IO_ENOMEM">XML_IO_ENOMEM</a> = 1527 : 1527
+ <a name="XML_IO_ENOSPC" id="XML_IO_ENOSPC">XML_IO_ENOSPC</a> = 1528 : 1528
+ <a name="XML_IO_ENOSYS" id="XML_IO_ENOSYS">XML_IO_ENOSYS</a> = 1529 : 1529
+ <a name="XML_IO_ENOTDIR" id="XML_IO_ENOTDIR">XML_IO_ENOTDIR</a> = 1530 : 1530
+ <a name="XML_IO_ENOTEMPTY" id="XML_IO_ENOTEMPTY">XML_IO_ENOTEMPTY</a> = 1531 : 1531
+ <a name="XML_IO_ENOTSUP" id="XML_IO_ENOTSUP">XML_IO_ENOTSUP</a> = 1532 : 1532
+ <a name="XML_IO_ENOTTY" id="XML_IO_ENOTTY">XML_IO_ENOTTY</a> = 1533 : 1533
+ <a name="XML_IO_ENXIO" id="XML_IO_ENXIO">XML_IO_ENXIO</a> = 1534 : 1534
+ <a name="XML_IO_EPERM" id="XML_IO_EPERM">XML_IO_EPERM</a> = 1535 : 1535
+ <a name="XML_IO_EPIPE" id="XML_IO_EPIPE">XML_IO_EPIPE</a> = 1536 : 1536
+ <a name="XML_IO_ERANGE" id="XML_IO_ERANGE">XML_IO_ERANGE</a> = 1537 : 1537
+ <a name="XML_IO_EROFS" id="XML_IO_EROFS">XML_IO_EROFS</a> = 1538 : 1538
+ <a name="XML_IO_ESPIPE" id="XML_IO_ESPIPE">XML_IO_ESPIPE</a> = 1539 : 1539
+ <a name="XML_IO_ESRCH" id="XML_IO_ESRCH">XML_IO_ESRCH</a> = 1540 : 1540
+ <a name="XML_IO_ETIMEDOUT" id="XML_IO_ETIMEDOUT">XML_IO_ETIMEDOUT</a> = 1541 : 1541
+ <a name="XML_IO_EXDEV" id="XML_IO_EXDEV">XML_IO_EXDEV</a> = 1542 : 1542
+ <a name="XML_IO_NETWORK_ATTEMPT" id="XML_IO_NETWORK_ATTEMPT">XML_IO_NETWORK_ATTEMPT</a> = 1543 : 1543
+ <a name="XML_IO_ENCODER" id="XML_IO_ENCODER">XML_IO_ENCODER</a> = 1544 : 1544
+ <a name="XML_IO_FLUSH" id="XML_IO_FLUSH">XML_IO_FLUSH</a> = 1545 : 1545
+ <a name="XML_IO_WRITE" id="XML_IO_WRITE">XML_IO_WRITE</a> = 1546 : 1546
+ <a name="XML_IO_NO_INPUT" id="XML_IO_NO_INPUT">XML_IO_NO_INPUT</a> = 1547 : 1547
+ <a name="XML_IO_BUFFER_FULL" id="XML_IO_BUFFER_FULL">XML_IO_BUFFER_FULL</a> = 1548 : 1548
+ <a name="XML_IO_LOAD_ERROR" id="XML_IO_LOAD_ERROR">XML_IO_LOAD_ERROR</a> = 1549 : 1549
+ <a name="XML_IO_ENOTSOCK" id="XML_IO_ENOTSOCK">XML_IO_ENOTSOCK</a> = 1550 : 1550
+ <a name="XML_IO_EISCONN" id="XML_IO_EISCONN">XML_IO_EISCONN</a> = 1551 : 1551
+ <a name="XML_IO_ECONNREFUSED" id="XML_IO_ECONNREFUSED">XML_IO_ECONNREFUSED</a> = 1552 : 1552
+ <a name="XML_IO_ENETUNREACH" id="XML_IO_ENETUNREACH">XML_IO_ENETUNREACH</a> = 1553 : 1553
+ <a name="XML_IO_EADDRINUSE" id="XML_IO_EADDRINUSE">XML_IO_EADDRINUSE</a> = 1554 : 1554
+ <a name="XML_IO_EALREADY" id="XML_IO_EALREADY">XML_IO_EALREADY</a> = 1555 : 1555
+ <a name="XML_IO_EAFNOSUPPORT" id="XML_IO_EAFNOSUPPORT">XML_IO_EAFNOSUPPORT</a> = 1556 : 1556
+ <a name="XML_XINCLUDE_RECURSION" id="XML_XINCLUDE_RECURSION">XML_XINCLUDE_RECURSION</a> = 1600
+ <a name="XML_XINCLUDE_PARSE_VALUE" id="XML_XINCLUDE_PARSE_VALUE">XML_XINCLUDE_PARSE_VALUE</a> = 1601 : 1601
+ <a name="XML_XINCLUDE_ENTITY_DEF_MISMATCH" id="XML_XINCLUDE_ENTITY_DEF_MISMATCH">XML_XINCLUDE_ENTITY_DEF_MISMATCH</a> = 1602 : 1602
+ <a name="XML_XINCLUDE_NO_HREF" id="XML_XINCLUDE_NO_HREF">XML_XINCLUDE_NO_HREF</a> = 1603 : 1603
+ <a name="XML_XINCLUDE_NO_FALLBACK" id="XML_XINCLUDE_NO_FALLBACK">XML_XINCLUDE_NO_FALLBACK</a> = 1604 : 1604
+ <a name="XML_XINCLUDE_HREF_URI" id="XML_XINCLUDE_HREF_URI">XML_XINCLUDE_HREF_URI</a> = 1605 : 1605
+ <a name="XML_XINCLUDE_TEXT_FRAGMENT" id="XML_XINCLUDE_TEXT_FRAGMENT">XML_XINCLUDE_TEXT_FRAGMENT</a> = 1606 : 1606
+ <a name="XML_XINCLUDE_TEXT_DOCUMENT" id="XML_XINCLUDE_TEXT_DOCUMENT">XML_XINCLUDE_TEXT_DOCUMENT</a> = 1607 : 1607
+ <a name="XML_XINCLUDE_INVALID_CHAR" id="XML_XINCLUDE_INVALID_CHAR">XML_XINCLUDE_INVALID_CHAR</a> = 1608 : 1608
+ <a name="XML_XINCLUDE_BUILD_FAILED" id="XML_XINCLUDE_BUILD_FAILED">XML_XINCLUDE_BUILD_FAILED</a> = 1609 : 1609
+ <a name="XML_XINCLUDE_UNKNOWN_ENCODING" id="XML_XINCLUDE_UNKNOWN_ENCODING">XML_XINCLUDE_UNKNOWN_ENCODING</a> = 1610 : 1610
+ <a name="XML_XINCLUDE_MULTIPLE_ROOT" id="XML_XINCLUDE_MULTIPLE_ROOT">XML_XINCLUDE_MULTIPLE_ROOT</a> = 1611 : 1611
+ <a name="XML_XINCLUDE_XPTR_FAILED" id="XML_XINCLUDE_XPTR_FAILED">XML_XINCLUDE_XPTR_FAILED</a> = 1612 : 1612
+ <a name="XML_XINCLUDE_XPTR_RESULT" id="XML_XINCLUDE_XPTR_RESULT">XML_XINCLUDE_XPTR_RESULT</a> = 1613 : 1613
+ <a name="XML_XINCLUDE_INCLUDE_IN_INCLUDE" id="XML_XINCLUDE_INCLUDE_IN_INCLUDE">XML_XINCLUDE_INCLUDE_IN_INCLUDE</a> = 1614 : 1614
+ <a name="XML_XINCLUDE_FALLBACKS_IN_INCLUDE" id="XML_XINCLUDE_FALLBACKS_IN_INCLUDE">XML_XINCLUDE_FALLBACKS_IN_INCLUDE</a> = 1615 : 1615
+ <a name="XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE" id="XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE">XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE</a> = 1616 : 1616
+ <a name="XML_XINCLUDE_DEPRECATED_NS" id="XML_XINCLUDE_DEPRECATED_NS">XML_XINCLUDE_DEPRECATED_NS</a> = 1617 : 1617
+ <a name="XML_XINCLUDE_FRAGMENT_ID" id="XML_XINCLUDE_FRAGMENT_ID">XML_XINCLUDE_FRAGMENT_ID</a> = 1618 : 1618
+ <a name="XML_CATALOG_MISSING_ATTR" id="XML_CATALOG_MISSING_ATTR">XML_CATALOG_MISSING_ATTR</a> = 1650
+ <a name="XML_CATALOG_ENTRY_BROKEN" id="XML_CATALOG_ENTRY_BROKEN">XML_CATALOG_ENTRY_BROKEN</a> = 1651 : 1651
+ <a name="XML_CATALOG_PREFER_VALUE" id="XML_CATALOG_PREFER_VALUE">XML_CATALOG_PREFER_VALUE</a> = 1652 : 1652
+ <a name="XML_CATALOG_NOT_CATALOG" id="XML_CATALOG_NOT_CATALOG">XML_CATALOG_NOT_CATALOG</a> = 1653 : 1653
+ <a name="XML_CATALOG_RECURSION" id="XML_CATALOG_RECURSION">XML_CATALOG_RECURSION</a> = 1654 : 1654
+ <a name="XML_SCHEMAP_PREFIX_UNDEFINED" id="XML_SCHEMAP_PREFIX_UNDEFINED">XML_SCHEMAP_PREFIX_UNDEFINED</a> = 1700
+ <a name="XML_SCHEMAP_ATTRFORMDEFAULT_VALUE" id="XML_SCHEMAP_ATTRFORMDEFAULT_VALUE">XML_SCHEMAP_ATTRFORMDEFAULT_VALUE</a> = 1701 : 1701
+ <a name="XML_SCHEMAP_ATTRGRP_NONAME_NOREF" id="XML_SCHEMAP_ATTRGRP_NONAME_NOREF">XML_SCHEMAP_ATTRGRP_NONAME_NOREF</a> = 1702 : 1702
+ <a name="XML_SCHEMAP_ATTR_NONAME_NOREF" id="XML_SCHEMAP_ATTR_NONAME_NOREF">XML_SCHEMAP_ATTR_NONAME_NOREF</a> = 1703 : 1703
+ <a name="XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF" id="XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF">XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF</a> = 1704 : 1704
+ <a name="XML_SCHEMAP_ELEMFORMDEFAULT_VALUE" id="XML_SCHEMAP_ELEMFORMDEFAULT_VALUE">XML_SCHEMAP_ELEMFORMDEFAULT_VALUE</a> = 1705 : 1705
+ <a name="XML_SCHEMAP_ELEM_NONAME_NOREF" id="XML_SCHEMAP_ELEM_NONAME_NOREF">XML_SCHEMAP_ELEM_NONAME_NOREF</a> = 1706 : 1706
+ <a name="XML_SCHEMAP_EXTENSION_NO_BASE" id="XML_SCHEMAP_EXTENSION_NO_BASE">XML_SCHEMAP_EXTENSION_NO_BASE</a> = 1707 : 1707
+ <a name="XML_SCHEMAP_FACET_NO_VALUE" id="XML_SCHEMAP_FACET_NO_VALUE">XML_SCHEMAP_FACET_NO_VALUE</a> = 1708 : 1708
+ <a name="XML_SCHEMAP_FAILED_BUILD_IMPORT" id="XML_SCHEMAP_FAILED_BUILD_IMPORT">XML_SCHEMAP_FAILED_BUILD_IMPORT</a> = 1709 : 1709
+ <a name="XML_SCHEMAP_GROUP_NONAME_NOREF" id="XML_SCHEMAP_GROUP_NONAME_NOREF">XML_SCHEMAP_GROUP_NONAME_NOREF</a> = 1710 : 1710
+ <a name="XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI" id="XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI">XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI</a> = 1711 : 1711
+ <a name="XML_SCHEMAP_IMPORT_REDEFINE_NSNAME" id="XML_SCHEMAP_IMPORT_REDEFINE_NSNAME">XML_SCHEMAP_IMPORT_REDEFINE_NSNAME</a> = 1712 : 1712
+ <a name="XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI" id="XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI">XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI</a> = 1713 : 1713
+ <a name="XML_SCHEMAP_INVALID_BOOLEAN" id="XML_SCHEMAP_INVALID_BOOLEAN">XML_SCHEMAP_INVALID_BOOLEAN</a> = 1714 : 1714
+ <a name="XML_SCHEMAP_INVALID_ENUM" id="XML_SCHEMAP_INVALID_ENUM">XML_SCHEMAP_INVALID_ENUM</a> = 1715 : 1715
+ <a name="XML_SCHEMAP_INVALID_FACET" id="XML_SCHEMAP_INVALID_FACET">XML_SCHEMAP_INVALID_FACET</a> = 1716 : 1716
+ <a name="XML_SCHEMAP_INVALID_FACET_VALUE" id="XML_SCHEMAP_INVALID_FACET_VALUE">XML_SCHEMAP_INVALID_FACET_VALUE</a> = 1717 : 1717
+ <a name="XML_SCHEMAP_INVALID_MAXOCCURS" id="XML_SCHEMAP_INVALID_MAXOCCURS">XML_SCHEMAP_INVALID_MAXOCCURS</a> = 1718 : 1718
+ <a name="XML_SCHEMAP_INVALID_MINOCCURS" id="XML_SCHEMAP_INVALID_MINOCCURS">XML_SCHEMAP_INVALID_MINOCCURS</a> = 1719 : 1719
+ <a name="XML_SCHEMAP_INVALID_REF_AND_SUBTYPE" id="XML_SCHEMAP_INVALID_REF_AND_SUBTYPE">XML_SCHEMAP_INVALID_REF_AND_SUBTYPE</a> = 1720 : 1720
+ <a name="XML_SCHEMAP_INVALID_WHITE_SPACE" id="XML_SCHEMAP_INVALID_WHITE_SPACE">XML_SCHEMAP_INVALID_WHITE_SPACE</a> = 1721 : 1721
+ <a name="XML_SCHEMAP_NOATTR_NOREF" id="XML_SCHEMAP_NOATTR_NOREF">XML_SCHEMAP_NOATTR_NOREF</a> = 1722 : 1722
+ <a name="XML_SCHEMAP_NOTATION_NO_NAME" id="XML_SCHEMAP_NOTATION_NO_NAME">XML_SCHEMAP_NOTATION_NO_NAME</a> = 1723 : 1723
+ <a name="XML_SCHEMAP_NOTYPE_NOREF" id="XML_SCHEMAP_NOTYPE_NOREF">XML_SCHEMAP_NOTYPE_NOREF</a> = 1724 : 1724
+ <a name="XML_SCHEMAP_REF_AND_SUBTYPE" id="XML_SCHEMAP_REF_AND_SUBTYPE">XML_SCHEMAP_REF_AND_SUBTYPE</a> = 1725 : 1725
+ <a name="XML_SCHEMAP_RESTRICTION_NONAME_NOREF" id="XML_SCHEMAP_RESTRICTION_NONAME_NOREF">XML_SCHEMAP_RESTRICTION_NONAME_NOREF</a> = 1726 : 1726
+ <a name="XML_SCHEMAP_SIMPLETYPE_NONAME" id="XML_SCHEMAP_SIMPLETYPE_NONAME">XML_SCHEMAP_SIMPLETYPE_NONAME</a> = 1727 : 1727
+ <a name="XML_SCHEMAP_TYPE_AND_SUBTYPE" id="XML_SCHEMAP_TYPE_AND_SUBTYPE">XML_SCHEMAP_TYPE_AND_SUBTYPE</a> = 1728 : 1728
+ <a name="XML_SCHEMAP_UNKNOWN_ALL_CHILD" id="XML_SCHEMAP_UNKNOWN_ALL_CHILD">XML_SCHEMAP_UNKNOWN_ALL_CHILD</a> = 1729 : 1729
+ <a name="XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD" id="XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD">XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD</a> = 1730 : 1730
+ <a name="XML_SCHEMAP_UNKNOWN_ATTR_CHILD" id="XML_SCHEMAP_UNKNOWN_ATTR_CHILD">XML_SCHEMAP_UNKNOWN_ATTR_CHILD</a> = 1731 : 1731
+ <a name="XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD" id="XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD">XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD</a> = 1732 : 1732
+ <a name="XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP" id="XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP">XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP</a> = 1733 : 1733
+ <a name="XML_SCHEMAP_UNKNOWN_BASE_TYPE" id="XML_SCHEMAP_UNKNOWN_BASE_TYPE">XML_SCHEMAP_UNKNOWN_BASE_TYPE</a> = 1734 : 1734
+ <a name="XML_SCHEMAP_UNKNOWN_CHOICE_CHILD" id="XML_SCHEMAP_UNKNOWN_CHOICE_CHILD">XML_SCHEMAP_UNKNOWN_CHOICE_CHILD</a> = 1735 : 1735
+ <a name="XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD" id="XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD">XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD</a> = 1736 : 1736
+ <a name="XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD" id="XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD">XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD</a> = 1737 : 1737
+ <a name="XML_SCHEMAP_UNKNOWN_ELEM_CHILD" id="XML_SCHEMAP_UNKNOWN_ELEM_CHILD">XML_SCHEMAP_UNKNOWN_ELEM_CHILD</a> = 1738 : 1738
+ <a name="XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD" id="XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD">XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD</a> = 1739 : 1739
+ <a name="XML_SCHEMAP_UNKNOWN_FACET_CHILD" id="XML_SCHEMAP_UNKNOWN_FACET_CHILD">XML_SCHEMAP_UNKNOWN_FACET_CHILD</a> = 1740 : 1740
+ <a name="XML_SCHEMAP_UNKNOWN_FACET_TYPE" id="XML_SCHEMAP_UNKNOWN_FACET_TYPE">XML_SCHEMAP_UNKNOWN_FACET_TYPE</a> = 1741 : 1741
+ <a name="XML_SCHEMAP_UNKNOWN_GROUP_CHILD" id="XML_SCHEMAP_UNKNOWN_GROUP_CHILD">XML_SCHEMAP_UNKNOWN_GROUP_CHILD</a> = 1742 : 1742
+ <a name="XML_SCHEMAP_UNKNOWN_IMPORT_CHILD" id="XML_SCHEMAP_UNKNOWN_IMPORT_CHILD">XML_SCHEMAP_UNKNOWN_IMPORT_CHILD</a> = 1743 : 1743
+ <a name="XML_SCHEMAP_UNKNOWN_LIST_CHILD" id="XML_SCHEMAP_UNKNOWN_LIST_CHILD">XML_SCHEMAP_UNKNOWN_LIST_CHILD</a> = 1744 : 1744
+ <a name="XML_SCHEMAP_UNKNOWN_NOTATION_CHILD" id="XML_SCHEMAP_UNKNOWN_NOTATION_CHILD">XML_SCHEMAP_UNKNOWN_NOTATION_CHILD</a> = 1745 : 1745
+ <a name="XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD" id="XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD">XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD</a> = 1746 : 1746
+ <a name="XML_SCHEMAP_UNKNOWN_REF" id="XML_SCHEMAP_UNKNOWN_REF">XML_SCHEMAP_UNKNOWN_REF</a> = 1747 : 1747
+ <a name="XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD" id="XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD">XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD</a> = 1748 : 1748
+ <a name="XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD" id="XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD">XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD</a> = 1749 : 1749
+ <a name="XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD" id="XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD">XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD</a> = 1750 : 1750
+ <a name="XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD" id="XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD">XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD</a> = 1751 : 1751
+ <a name="XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD" id="XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD">XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD</a> = 1752 : 1752
+ <a name="XML_SCHEMAP_UNKNOWN_TYPE" id="XML_SCHEMAP_UNKNOWN_TYPE">XML_SCHEMAP_UNKNOWN_TYPE</a> = 1753 : 1753
+ <a name="XML_SCHEMAP_UNKNOWN_UNION_CHILD" id="XML_SCHEMAP_UNKNOWN_UNION_CHILD">XML_SCHEMAP_UNKNOWN_UNION_CHILD</a> = 1754 : 1754
+ <a name="XML_SCHEMAP_ELEM_DEFAULT_FIXED" id="XML_SCHEMAP_ELEM_DEFAULT_FIXED">XML_SCHEMAP_ELEM_DEFAULT_FIXED</a> = 1755 : 1755
+ <a name="XML_SCHEMAP_REGEXP_INVALID" id="XML_SCHEMAP_REGEXP_INVALID">XML_SCHEMAP_REGEXP_INVALID</a> = 1756 : 1756
+ <a name="XML_SCHEMAP_FAILED_LOAD" id="XML_SCHEMAP_FAILED_LOAD">XML_SCHEMAP_FAILED_LOAD</a> = 1757 : 1757
+ <a name="XML_SCHEMAP_NOTHING_TO_PARSE" id="XML_SCHEMAP_NOTHING_TO_PARSE">XML_SCHEMAP_NOTHING_TO_PARSE</a> = 1758 : 1758
+ <a name="XML_SCHEMAP_NOROOT" id="XML_SCHEMAP_NOROOT">XML_SCHEMAP_NOROOT</a> = 1759 : 1759
+ <a name="XML_SCHEMAP_REDEFINED_GROUP" id="XML_SCHEMAP_REDEFINED_GROUP">XML_SCHEMAP_REDEFINED_GROUP</a> = 1760 : 1760
+ <a name="XML_SCHEMAP_REDEFINED_TYPE" id="XML_SCHEMAP_REDEFINED_TYPE">XML_SCHEMAP_REDEFINED_TYPE</a> = 1761 : 1761
+ <a name="XML_SCHEMAP_REDEFINED_ELEMENT" id="XML_SCHEMAP_REDEFINED_ELEMENT">XML_SCHEMAP_REDEFINED_ELEMENT</a> = 1762 : 1762
+ <a name="XML_SCHEMAP_REDEFINED_ATTRGROUP" id="XML_SCHEMAP_REDEFINED_ATTRGROUP">XML_SCHEMAP_REDEFINED_ATTRGROUP</a> = 1763 : 1763
+ <a name="XML_SCHEMAP_REDEFINED_ATTR" id="XML_SCHEMAP_REDEFINED_ATTR">XML_SCHEMAP_REDEFINED_ATTR</a> = 1764 : 1764
+ <a name="XML_SCHEMAP_REDEFINED_NOTATION" id="XML_SCHEMAP_REDEFINED_NOTATION">XML_SCHEMAP_REDEFINED_NOTATION</a> = 1765 : 1765
+ <a name="XML_SCHEMAP_FAILED_PARSE" id="XML_SCHEMAP_FAILED_PARSE">XML_SCHEMAP_FAILED_PARSE</a> = 1766 : 1766
+ <a name="XML_SCHEMAP_UNKNOWN_PREFIX" id="XML_SCHEMAP_UNKNOWN_PREFIX">XML_SCHEMAP_UNKNOWN_PREFIX</a> = 1767 : 1767
+ <a name="XML_SCHEMAP_DEF_AND_PREFIX" id="XML_SCHEMAP_DEF_AND_PREFIX">XML_SCHEMAP_DEF_AND_PREFIX</a> = 1768 : 1768
+ <a name="XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD" id="XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD">XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD</a> = 1769 : 1769
+ <a name="XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI" id="XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI">XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI</a> = 1770 : 1770
+ <a name="XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI" id="XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI">XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI</a> = 1771 : 1771
+ <a name="XML_SCHEMAP_NOT_SCHEMA" id="XML_SCHEMAP_NOT_SCHEMA">XML_SCHEMAP_NOT_SCHEMA</a> = 1772 : 1772
+ <a name="XML_SCHEMAP_UNKNOWN_MEMBER_TYPE" id="XML_SCHEMAP_UNKNOWN_MEMBER_TYPE">XML_SCHEMAP_UNKNOWN_MEMBER_TYPE</a> = 1773 : 1773
+ <a name="XML_SCHEMAP_INVALID_ATTR_USE" id="XML_SCHEMAP_INVALID_ATTR_USE">XML_SCHEMAP_INVALID_ATTR_USE</a> = 1774 : 1774
+ <a name="XML_SCHEMAP_RECURSIVE" id="XML_SCHEMAP_RECURSIVE">XML_SCHEMAP_RECURSIVE</a> = 1775 : 1775
+ <a name="XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE" id="XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE">XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE</a> = 1776 : 1776
+ <a name="XML_SCHEMAP_INVALID_ATTR_COMBINATION" id="XML_SCHEMAP_INVALID_ATTR_COMBINATION">XML_SCHEMAP_INVALID_ATTR_COMBINATION</a> = 1777 : 1777
+ <a name="XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION" id="XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION">XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION</a> = 1778 : 1778
+ <a name="XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD" id="XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD">XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD</a> = 1779 : 1779
+ <a name="XML_SCHEMAP_INVALID_ATTR_NAME" id="XML_SCHEMAP_INVALID_ATTR_NAME">XML_SCHEMAP_INVALID_ATTR_NAME</a> = 1780 : 1780
+ <a name="XML_SCHEMAP_REF_AND_CONTENT" id="XML_SCHEMAP_REF_AND_CONTENT">XML_SCHEMAP_REF_AND_CONTENT</a> = 1781 : 1781
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_1" id="XML_SCHEMAP_CT_PROPS_CORRECT_1">XML_SCHEMAP_CT_PROPS_CORRECT_1</a> = 1782 : 1782
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_2" id="XML_SCHEMAP_CT_PROPS_CORRECT_2">XML_SCHEMAP_CT_PROPS_CORRECT_2</a> = 1783 : 1783
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_3" id="XML_SCHEMAP_CT_PROPS_CORRECT_3">XML_SCHEMAP_CT_PROPS_CORRECT_3</a> = 1784 : 1784
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_4" id="XML_SCHEMAP_CT_PROPS_CORRECT_4">XML_SCHEMAP_CT_PROPS_CORRECT_4</a> = 1785 : 1785
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_5" id="XML_SCHEMAP_CT_PROPS_CORRECT_5">XML_SCHEMAP_CT_PROPS_CORRECT_5</a> = 1786 : 1786
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1</a> = 1787 : 1787
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1</a> = 1788 : 1788
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2</a> = 1789 : 1789
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2</a> = 1790 : 1790
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3</a> = 1791 : 1791
+ <a name="XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER" id="XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER">XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER</a> = 1792 : 1792
+ <a name="XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE" id="XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE">XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE</a> = 1793 : 1793
+ <a name="XML_SCHEMAP_UNION_NOT_EXPRESSIBLE" id="XML_SCHEMAP_UNION_NOT_EXPRESSIBLE">XML_SCHEMAP_UNION_NOT_EXPRESSIBLE</a> = 1794 : 1794
+ <a name="XML_SCHEMAP_SRC_IMPORT_3_1" id="XML_SCHEMAP_SRC_IMPORT_3_1">XML_SCHEMAP_SRC_IMPORT_3_1</a> = 1795 : 1795
+ <a name="XML_SCHEMAP_SRC_IMPORT_3_2" id="XML_SCHEMAP_SRC_IMPORT_3_2">XML_SCHEMAP_SRC_IMPORT_3_2</a> = 1796 : 1796
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1</a> = 1797 : 1797
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2</a> = 1798 : 1798
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3</a> = 1799 : 1799
+ <a name="XML_SCHEMAP_COS_CT_EXTENDS_1_3" id="XML_SCHEMAP_COS_CT_EXTENDS_1_3">XML_SCHEMAP_COS_CT_EXTENDS_1_3</a> = 1800 : 1800
+ <a name="XML_SCHEMAV_NOROOT" id="XML_SCHEMAV_NOROOT">XML_SCHEMAV_NOROOT</a> = 1801
+ <a name="XML_SCHEMAV_UNDECLAREDELEM" id="XML_SCHEMAV_UNDECLAREDELEM">XML_SCHEMAV_UNDECLAREDELEM</a> = 1802 : 1802
+ <a name="XML_SCHEMAV_NOTTOPLEVEL" id="XML_SCHEMAV_NOTTOPLEVEL">XML_SCHEMAV_NOTTOPLEVEL</a> = 1803 : 1803
+ <a name="XML_SCHEMAV_MISSING" id="XML_SCHEMAV_MISSING">XML_SCHEMAV_MISSING</a> = 1804 : 1804
+ <a name="XML_SCHEMAV_WRONGELEM" id="XML_SCHEMAV_WRONGELEM">XML_SCHEMAV_WRONGELEM</a> = 1805 : 1805
+ <a name="XML_SCHEMAV_NOTYPE" id="XML_SCHEMAV_NOTYPE">XML_SCHEMAV_NOTYPE</a> = 1806 : 1806
+ <a name="XML_SCHEMAV_NOROLLBACK" id="XML_SCHEMAV_NOROLLBACK">XML_SCHEMAV_NOROLLBACK</a> = 1807 : 1807
+ <a name="XML_SCHEMAV_ISABSTRACT" id="XML_SCHEMAV_ISABSTRACT">XML_SCHEMAV_ISABSTRACT</a> = 1808 : 1808
+ <a name="XML_SCHEMAV_NOTEMPTY" id="XML_SCHEMAV_NOTEMPTY">XML_SCHEMAV_NOTEMPTY</a> = 1809 : 1809
+ <a name="XML_SCHEMAV_ELEMCONT" id="XML_SCHEMAV_ELEMCONT">XML_SCHEMAV_ELEMCONT</a> = 1810 : 1810
+ <a name="XML_SCHEMAV_HAVEDEFAULT" id="XML_SCHEMAV_HAVEDEFAULT">XML_SCHEMAV_HAVEDEFAULT</a> = 1811 : 1811
+ <a name="XML_SCHEMAV_NOTNILLABLE" id="XML_SCHEMAV_NOTNILLABLE">XML_SCHEMAV_NOTNILLABLE</a> = 1812 : 1812
+ <a name="XML_SCHEMAV_EXTRACONTENT" id="XML_SCHEMAV_EXTRACONTENT">XML_SCHEMAV_EXTRACONTENT</a> = 1813 : 1813
+ <a name="XML_SCHEMAV_INVALIDATTR" id="XML_SCHEMAV_INVALIDATTR">XML_SCHEMAV_INVALIDATTR</a> = 1814 : 1814
+ <a name="XML_SCHEMAV_INVALIDELEM" id="XML_SCHEMAV_INVALIDELEM">XML_SCHEMAV_INVALIDELEM</a> = 1815 : 1815
+ <a name="XML_SCHEMAV_NOTDETERMINIST" id="XML_SCHEMAV_NOTDETERMINIST">XML_SCHEMAV_NOTDETERMINIST</a> = 1816 : 1816
+ <a name="XML_SCHEMAV_CONSTRUCT" id="XML_SCHEMAV_CONSTRUCT">XML_SCHEMAV_CONSTRUCT</a> = 1817 : 1817
+ <a name="XML_SCHEMAV_INTERNAL" id="XML_SCHEMAV_INTERNAL">XML_SCHEMAV_INTERNAL</a> = 1818 : 1818
+ <a name="XML_SCHEMAV_NOTSIMPLE" id="XML_SCHEMAV_NOTSIMPLE">XML_SCHEMAV_NOTSIMPLE</a> = 1819 : 1819
+ <a name="XML_SCHEMAV_ATTRUNKNOWN" id="XML_SCHEMAV_ATTRUNKNOWN">XML_SCHEMAV_ATTRUNKNOWN</a> = 1820 : 1820
+ <a name="XML_SCHEMAV_ATTRINVALID" id="XML_SCHEMAV_ATTRINVALID">XML_SCHEMAV_ATTRINVALID</a> = 1821 : 1821
+ <a name="XML_SCHEMAV_VALUE" id="XML_SCHEMAV_VALUE">XML_SCHEMAV_VALUE</a> = 1822 : 1822
+ <a name="XML_SCHEMAV_FACET" id="XML_SCHEMAV_FACET">XML_SCHEMAV_FACET</a> = 1823 : 1823
+ <a name="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1" id="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1</a> = 1824 : 1824
+ <a name="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2" id="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2</a> = 1825 : 1825
+ <a name="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3" id="XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3">XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3</a> = 1826 : 1826
+ <a name="XML_SCHEMAV_CVC_TYPE_3_1_1" id="XML_SCHEMAV_CVC_TYPE_3_1_1">XML_SCHEMAV_CVC_TYPE_3_1_1</a> = 1827 : 1827
+ <a name="XML_SCHEMAV_CVC_TYPE_3_1_2" id="XML_SCHEMAV_CVC_TYPE_3_1_2">XML_SCHEMAV_CVC_TYPE_3_1_2</a> = 1828 : 1828
+ <a name="XML_SCHEMAV_CVC_FACET_VALID" id="XML_SCHEMAV_CVC_FACET_VALID">XML_SCHEMAV_CVC_FACET_VALID</a> = 1829 : 1829
+ <a name="XML_SCHEMAV_CVC_LENGTH_VALID" id="XML_SCHEMAV_CVC_LENGTH_VALID">XML_SCHEMAV_CVC_LENGTH_VALID</a> = 1830 : 1830
+ <a name="XML_SCHEMAV_CVC_MINLENGTH_VALID" id="XML_SCHEMAV_CVC_MINLENGTH_VALID">XML_SCHEMAV_CVC_MINLENGTH_VALID</a> = 1831 : 1831
+ <a name="XML_SCHEMAV_CVC_MAXLENGTH_VALID" id="XML_SCHEMAV_CVC_MAXLENGTH_VALID">XML_SCHEMAV_CVC_MAXLENGTH_VALID</a> = 1832 : 1832
+ <a name="XML_SCHEMAV_CVC_MININCLUSIVE_VALID" id="XML_SCHEMAV_CVC_MININCLUSIVE_VALID">XML_SCHEMAV_CVC_MININCLUSIVE_VALID</a> = 1833 : 1833
+ <a name="XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID" id="XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID</a> = 1834 : 1834
+ <a name="XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID" id="XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID</a> = 1835 : 1835
+ <a name="XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID" id="XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID</a> = 1836 : 1836
+ <a name="XML_SCHEMAV_CVC_TOTALDIGITS_VALID" id="XML_SCHEMAV_CVC_TOTALDIGITS_VALID">XML_SCHEMAV_CVC_TOTALDIGITS_VALID</a> = 1837 : 1837
+ <a name="XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID" id="XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID">XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID</a> = 1838 : 1838
+ <a name="XML_SCHEMAV_CVC_PATTERN_VALID" id="XML_SCHEMAV_CVC_PATTERN_VALID">XML_SCHEMAV_CVC_PATTERN_VALID</a> = 1839 : 1839
+ <a name="XML_SCHEMAV_CVC_ENUMERATION_VALID" id="XML_SCHEMAV_CVC_ENUMERATION_VALID">XML_SCHEMAV_CVC_ENUMERATION_VALID</a> = 1840 : 1840
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1</a> = 1841 : 1841
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2</a> = 1842 : 1842
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3</a> = 1843 : 1843
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4">XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4</a> = 1844 : 1844
+ <a name="XML_SCHEMAV_CVC_ELT_1" id="XML_SCHEMAV_CVC_ELT_1">XML_SCHEMAV_CVC_ELT_1</a> = 1845 : 1845
+ <a name="XML_SCHEMAV_CVC_ELT_2" id="XML_SCHEMAV_CVC_ELT_2">XML_SCHEMAV_CVC_ELT_2</a> = 1846 : 1846
+ <a name="XML_SCHEMAV_CVC_ELT_3_1" id="XML_SCHEMAV_CVC_ELT_3_1">XML_SCHEMAV_CVC_ELT_3_1</a> = 1847 : 1847
+ <a name="XML_SCHEMAV_CVC_ELT_3_2_1" id="XML_SCHEMAV_CVC_ELT_3_2_1">XML_SCHEMAV_CVC_ELT_3_2_1</a> = 1848 : 1848
+ <a name="XML_SCHEMAV_CVC_ELT_3_2_2" id="XML_SCHEMAV_CVC_ELT_3_2_2">XML_SCHEMAV_CVC_ELT_3_2_2</a> = 1849 : 1849
+ <a name="XML_SCHEMAV_CVC_ELT_4_1" id="XML_SCHEMAV_CVC_ELT_4_1">XML_SCHEMAV_CVC_ELT_4_1</a> = 1850 : 1850
+ <a name="XML_SCHEMAV_CVC_ELT_4_2" id="XML_SCHEMAV_CVC_ELT_4_2">XML_SCHEMAV_CVC_ELT_4_2</a> = 1851 : 1851
+ <a name="XML_SCHEMAV_CVC_ELT_4_3" id="XML_SCHEMAV_CVC_ELT_4_3">XML_SCHEMAV_CVC_ELT_4_3</a> = 1852 : 1852
+ <a name="XML_SCHEMAV_CVC_ELT_5_1_1" id="XML_SCHEMAV_CVC_ELT_5_1_1">XML_SCHEMAV_CVC_ELT_5_1_1</a> = 1853 : 1853
+ <a name="XML_SCHEMAV_CVC_ELT_5_1_2" id="XML_SCHEMAV_CVC_ELT_5_1_2">XML_SCHEMAV_CVC_ELT_5_1_2</a> = 1854 : 1854
+ <a name="XML_SCHEMAV_CVC_ELT_5_2_1" id="XML_SCHEMAV_CVC_ELT_5_2_1">XML_SCHEMAV_CVC_ELT_5_2_1</a> = 1855 : 1855
+ <a name="XML_SCHEMAV_CVC_ELT_5_2_2_1" id="XML_SCHEMAV_CVC_ELT_5_2_2_1">XML_SCHEMAV_CVC_ELT_5_2_2_1</a> = 1856 : 1856
+ <a name="XML_SCHEMAV_CVC_ELT_5_2_2_2_1" id="XML_SCHEMAV_CVC_ELT_5_2_2_2_1">XML_SCHEMAV_CVC_ELT_5_2_2_2_1</a> = 1857 : 1857
+ <a name="XML_SCHEMAV_CVC_ELT_5_2_2_2_2" id="XML_SCHEMAV_CVC_ELT_5_2_2_2_2">XML_SCHEMAV_CVC_ELT_5_2_2_2_2</a> = 1858 : 1858
+ <a name="XML_SCHEMAV_CVC_ELT_6" id="XML_SCHEMAV_CVC_ELT_6">XML_SCHEMAV_CVC_ELT_6</a> = 1859 : 1859
+ <a name="XML_SCHEMAV_CVC_ELT_7" id="XML_SCHEMAV_CVC_ELT_7">XML_SCHEMAV_CVC_ELT_7</a> = 1860 : 1860
+ <a name="XML_SCHEMAV_CVC_ATTRIBUTE_1" id="XML_SCHEMAV_CVC_ATTRIBUTE_1">XML_SCHEMAV_CVC_ATTRIBUTE_1</a> = 1861 : 1861
+ <a name="XML_SCHEMAV_CVC_ATTRIBUTE_2" id="XML_SCHEMAV_CVC_ATTRIBUTE_2">XML_SCHEMAV_CVC_ATTRIBUTE_2</a> = 1862 : 1862
+ <a name="XML_SCHEMAV_CVC_ATTRIBUTE_3" id="XML_SCHEMAV_CVC_ATTRIBUTE_3">XML_SCHEMAV_CVC_ATTRIBUTE_3</a> = 1863 : 1863
+ <a name="XML_SCHEMAV_CVC_ATTRIBUTE_4" id="XML_SCHEMAV_CVC_ATTRIBUTE_4">XML_SCHEMAV_CVC_ATTRIBUTE_4</a> = 1864 : 1864
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1</a> = 1865 : 1865
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1</a> = 1866 : 1866
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2</a> = 1867 : 1867
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_4" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_4">XML_SCHEMAV_CVC_COMPLEX_TYPE_4</a> = 1868 : 1868
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1</a> = 1869 : 1869
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2">XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2</a> = 1870 : 1870
+ <a name="XML_SCHEMAV_ELEMENT_CONTENT" id="XML_SCHEMAV_ELEMENT_CONTENT">XML_SCHEMAV_ELEMENT_CONTENT</a> = 1871 : 1871
+ <a name="XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING" id="XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING">XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING</a> = 1872 : 1872
+ <a name="XML_SCHEMAV_CVC_COMPLEX_TYPE_1" id="XML_SCHEMAV_CVC_COMPLEX_TYPE_1">XML_SCHEMAV_CVC_COMPLEX_TYPE_1</a> = 1873 : 1873
+ <a name="XML_SCHEMAV_CVC_AU" id="XML_SCHEMAV_CVC_AU">XML_SCHEMAV_CVC_AU</a> = 1874 : 1874
+ <a name="XML_SCHEMAV_CVC_TYPE_1" id="XML_SCHEMAV_CVC_TYPE_1">XML_SCHEMAV_CVC_TYPE_1</a> = 1875 : 1875
+ <a name="XML_SCHEMAV_CVC_TYPE_2" id="XML_SCHEMAV_CVC_TYPE_2">XML_SCHEMAV_CVC_TYPE_2</a> = 1876 : 1876
+ <a name="XML_SCHEMAV_CVC_IDC" id="XML_SCHEMAV_CVC_IDC">XML_SCHEMAV_CVC_IDC</a> = 1877 : 1877
+ <a name="XML_SCHEMAV_CVC_WILDCARD" id="XML_SCHEMAV_CVC_WILDCARD">XML_SCHEMAV_CVC_WILDCARD</a> = 1878 : 1878
+ <a name="XML_SCHEMAV_MISC" id="XML_SCHEMAV_MISC">XML_SCHEMAV_MISC</a> = 1879 : 1879
+ <a name="XML_XPTR_UNKNOWN_SCHEME" id="XML_XPTR_UNKNOWN_SCHEME">XML_XPTR_UNKNOWN_SCHEME</a> = 1900
+ <a name="XML_XPTR_CHILDSEQ_START" id="XML_XPTR_CHILDSEQ_START">XML_XPTR_CHILDSEQ_START</a> = 1901 : 1901
+ <a name="XML_XPTR_EVAL_FAILED" id="XML_XPTR_EVAL_FAILED">XML_XPTR_EVAL_FAILED</a> = 1902 : 1902
+ <a name="XML_XPTR_EXTRA_OBJECTS" id="XML_XPTR_EXTRA_OBJECTS">XML_XPTR_EXTRA_OBJECTS</a> = 1903 : 1903
+ <a name="XML_C14N_CREATE_CTXT" id="XML_C14N_CREATE_CTXT">XML_C14N_CREATE_CTXT</a> = 1950
+ <a name="XML_C14N_REQUIRES_UTF8" id="XML_C14N_REQUIRES_UTF8">XML_C14N_REQUIRES_UTF8</a> = 1951 : 1951
+ <a name="XML_C14N_CREATE_STACK" id="XML_C14N_CREATE_STACK">XML_C14N_CREATE_STACK</a> = 1952 : 1952
+ <a name="XML_C14N_INVALID_NODE" id="XML_C14N_INVALID_NODE">XML_C14N_INVALID_NODE</a> = 1953 : 1953
+ <a name="XML_C14N_UNKNOW_NODE" id="XML_C14N_UNKNOW_NODE">XML_C14N_UNKNOW_NODE</a> = 1954 : 1954
+ <a name="XML_C14N_RELATIVE_NAMESPACE" id="XML_C14N_RELATIVE_NAMESPACE">XML_C14N_RELATIVE_NAMESPACE</a> = 1955 : 1955
+ <a name="XML_FTP_PASV_ANSWER" id="XML_FTP_PASV_ANSWER">XML_FTP_PASV_ANSWER</a> = 2000
+ <a name="XML_FTP_EPSV_ANSWER" id="XML_FTP_EPSV_ANSWER">XML_FTP_EPSV_ANSWER</a> = 2001 : 2001
+ <a name="XML_FTP_ACCNT" id="XML_FTP_ACCNT">XML_FTP_ACCNT</a> = 2002 : 2002
+ <a name="XML_FTP_URL_SYNTAX" id="XML_FTP_URL_SYNTAX">XML_FTP_URL_SYNTAX</a> = 2003 : 2003
+ <a name="XML_HTTP_URL_SYNTAX" id="XML_HTTP_URL_SYNTAX">XML_HTTP_URL_SYNTAX</a> = 2020
+ <a name="XML_HTTP_USE_IP" id="XML_HTTP_USE_IP">XML_HTTP_USE_IP</a> = 2021 : 2021
+ <a name="XML_HTTP_UNKNOWN_HOST" id="XML_HTTP_UNKNOWN_HOST">XML_HTTP_UNKNOWN_HOST</a> = 2022 : 2022
+ <a name="XML_SCHEMAP_SRC_SIMPLE_TYPE_1" id="XML_SCHEMAP_SRC_SIMPLE_TYPE_1">XML_SCHEMAP_SRC_SIMPLE_TYPE_1</a> = 3000
+ <a name="XML_SCHEMAP_SRC_SIMPLE_TYPE_2" id="XML_SCHEMAP_SRC_SIMPLE_TYPE_2">XML_SCHEMAP_SRC_SIMPLE_TYPE_2</a> = 3001 : 3001
+ <a name="XML_SCHEMAP_SRC_SIMPLE_TYPE_3" id="XML_SCHEMAP_SRC_SIMPLE_TYPE_3">XML_SCHEMAP_SRC_SIMPLE_TYPE_3</a> = 3002 : 3002
+ <a name="XML_SCHEMAP_SRC_SIMPLE_TYPE_4" id="XML_SCHEMAP_SRC_SIMPLE_TYPE_4">XML_SCHEMAP_SRC_SIMPLE_TYPE_4</a> = 3003 : 3003
+ <a name="XML_SCHEMAP_SRC_RESOLVE" id="XML_SCHEMAP_SRC_RESOLVE">XML_SCHEMAP_SRC_RESOLVE</a> = 3004 : 3004
+ <a name="XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE" id="XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE</a> = 3005 : 3005
+ <a name="XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE" id="XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE</a> = 3006 : 3006
+ <a name="XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES" id="XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES">XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES</a> = 3007 : 3007
+ <a name="XML_SCHEMAP_ST_PROPS_CORRECT_1" id="XML_SCHEMAP_ST_PROPS_CORRECT_1">XML_SCHEMAP_ST_PROPS_CORRECT_1</a> = 3008 : 3008
+ <a name="XML_SCHEMAP_ST_PROPS_CORRECT_2" id="XML_SCHEMAP_ST_PROPS_CORRECT_2">XML_SCHEMAP_ST_PROPS_CORRECT_2</a> = 3009 : 3009
+ <a name="XML_SCHEMAP_ST_PROPS_CORRECT_3" id="XML_SCHEMAP_ST_PROPS_CORRECT_3">XML_SCHEMAP_ST_PROPS_CORRECT_3</a> = 3010 : 3010
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_1_1" id="XML_SCHEMAP_COS_ST_RESTRICTS_1_1">XML_SCHEMAP_COS_ST_RESTRICTS_1_1</a> = 3011 : 3011
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_1_2" id="XML_SCHEMAP_COS_ST_RESTRICTS_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_1_2</a> = 3012 : 3012
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1" id="XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1</a> = 3013 : 3013
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2" id="XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2">XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2</a> = 3014 : 3014
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_1" id="XML_SCHEMAP_COS_ST_RESTRICTS_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_1</a> = 3015 : 3015
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1" id="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1</a> = 3016 : 3016
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2" id="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2</a> = 3017 : 3017
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1" id="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1</a> = 3018 : 3018
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2" id="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2</a> = 3019 : 3019
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3" id="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3</a> = 3020 : 3020
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4" id="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4</a> = 3021 : 3021
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5" id="XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5">XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5</a> = 3022 : 3022
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_1" id="XML_SCHEMAP_COS_ST_RESTRICTS_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_1</a> = 3023 : 3023
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1" id="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1</a> = 3024 : 3024
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2" id="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2</a> = 3025 : 3025
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2" id="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2</a> = 3026 : 3026
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1" id="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1</a> = 3027 : 3027
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3" id="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3</a> = 3028 : 3028
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4" id="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4</a> = 3029 : 3029
+ <a name="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5" id="XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5">XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5</a> = 3030 : 3030
+ <a name="XML_SCHEMAP_COS_ST_DERIVED_OK_2_1" id="XML_SCHEMAP_COS_ST_DERIVED_OK_2_1">XML_SCHEMAP_COS_ST_DERIVED_OK_2_1</a> = 3031 : 3031
+ <a name="XML_SCHEMAP_COS_ST_DERIVED_OK_2_2" id="XML_SCHEMAP_COS_ST_DERIVED_OK_2_2">XML_SCHEMAP_COS_ST_DERIVED_OK_2_2</a> = 3032 : 3032
+ <a name="XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED" id="XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED">XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED</a> = 3033 : 3033
+ <a name="XML_SCHEMAP_S4S_ELEM_MISSING" id="XML_SCHEMAP_S4S_ELEM_MISSING">XML_SCHEMAP_S4S_ELEM_MISSING</a> = 3034 : 3034
+ <a name="XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED" id="XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED">XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED</a> = 3035 : 3035
+ <a name="XML_SCHEMAP_S4S_ATTR_MISSING" id="XML_SCHEMAP_S4S_ATTR_MISSING">XML_SCHEMAP_S4S_ATTR_MISSING</a> = 3036 : 3036
+ <a name="XML_SCHEMAP_S4S_ATTR_INVALID_VALUE" id="XML_SCHEMAP_S4S_ATTR_INVALID_VALUE">XML_SCHEMAP_S4S_ATTR_INVALID_VALUE</a> = 3037 : 3037
+ <a name="XML_SCHEMAP_SRC_ELEMENT_1" id="XML_SCHEMAP_SRC_ELEMENT_1">XML_SCHEMAP_SRC_ELEMENT_1</a> = 3038 : 3038
+ <a name="XML_SCHEMAP_SRC_ELEMENT_2_1" id="XML_SCHEMAP_SRC_ELEMENT_2_1">XML_SCHEMAP_SRC_ELEMENT_2_1</a> = 3039 : 3039
+ <a name="XML_SCHEMAP_SRC_ELEMENT_2_2" id="XML_SCHEMAP_SRC_ELEMENT_2_2">XML_SCHEMAP_SRC_ELEMENT_2_2</a> = 3040 : 3040
+ <a name="XML_SCHEMAP_SRC_ELEMENT_3" id="XML_SCHEMAP_SRC_ELEMENT_3">XML_SCHEMAP_SRC_ELEMENT_3</a> = 3041 : 3041
+ <a name="XML_SCHEMAP_P_PROPS_CORRECT_1" id="XML_SCHEMAP_P_PROPS_CORRECT_1">XML_SCHEMAP_P_PROPS_CORRECT_1</a> = 3042 : 3042
+ <a name="XML_SCHEMAP_P_PROPS_CORRECT_2_1" id="XML_SCHEMAP_P_PROPS_CORRECT_2_1">XML_SCHEMAP_P_PROPS_CORRECT_2_1</a> = 3043 : 3043
+ <a name="XML_SCHEMAP_P_PROPS_CORRECT_2_2" id="XML_SCHEMAP_P_PROPS_CORRECT_2_2">XML_SCHEMAP_P_PROPS_CORRECT_2_2</a> = 3044 : 3044
+ <a name="XML_SCHEMAP_E_PROPS_CORRECT_2" id="XML_SCHEMAP_E_PROPS_CORRECT_2">XML_SCHEMAP_E_PROPS_CORRECT_2</a> = 3045 : 3045
+ <a name="XML_SCHEMAP_E_PROPS_CORRECT_3" id="XML_SCHEMAP_E_PROPS_CORRECT_3">XML_SCHEMAP_E_PROPS_CORRECT_3</a> = 3046 : 3046
+ <a name="XML_SCHEMAP_E_PROPS_CORRECT_4" id="XML_SCHEMAP_E_PROPS_CORRECT_4">XML_SCHEMAP_E_PROPS_CORRECT_4</a> = 3047 : 3047
+ <a name="XML_SCHEMAP_E_PROPS_CORRECT_5" id="XML_SCHEMAP_E_PROPS_CORRECT_5">XML_SCHEMAP_E_PROPS_CORRECT_5</a> = 3048 : 3048
+ <a name="XML_SCHEMAP_E_PROPS_CORRECT_6" id="XML_SCHEMAP_E_PROPS_CORRECT_6">XML_SCHEMAP_E_PROPS_CORRECT_6</a> = 3049 : 3049
+ <a name="XML_SCHEMAP_SRC_INCLUDE" id="XML_SCHEMAP_SRC_INCLUDE">XML_SCHEMAP_SRC_INCLUDE</a> = 3050 : 3050
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_1" id="XML_SCHEMAP_SRC_ATTRIBUTE_1">XML_SCHEMAP_SRC_ATTRIBUTE_1</a> = 3051 : 3051
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_2" id="XML_SCHEMAP_SRC_ATTRIBUTE_2">XML_SCHEMAP_SRC_ATTRIBUTE_2</a> = 3052 : 3052
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_3_1" id="XML_SCHEMAP_SRC_ATTRIBUTE_3_1">XML_SCHEMAP_SRC_ATTRIBUTE_3_1</a> = 3053 : 3053
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_3_2" id="XML_SCHEMAP_SRC_ATTRIBUTE_3_2">XML_SCHEMAP_SRC_ATTRIBUTE_3_2</a> = 3054 : 3054
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_4" id="XML_SCHEMAP_SRC_ATTRIBUTE_4">XML_SCHEMAP_SRC_ATTRIBUTE_4</a> = 3055 : 3055
+ <a name="XML_SCHEMAP_NO_XMLNS" id="XML_SCHEMAP_NO_XMLNS">XML_SCHEMAP_NO_XMLNS</a> = 3056 : 3056
+ <a name="XML_SCHEMAP_NO_XSI" id="XML_SCHEMAP_NO_XSI">XML_SCHEMAP_NO_XSI</a> = 3057 : 3057
+ <a name="XML_SCHEMAP_COS_VALID_DEFAULT_1" id="XML_SCHEMAP_COS_VALID_DEFAULT_1">XML_SCHEMAP_COS_VALID_DEFAULT_1</a> = 3058 : 3058
+ <a name="XML_SCHEMAP_COS_VALID_DEFAULT_2_1" id="XML_SCHEMAP_COS_VALID_DEFAULT_2_1">XML_SCHEMAP_COS_VALID_DEFAULT_2_1</a> = 3059 : 3059
+ <a name="XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1" id="XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1">XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1</a> = 3060 : 3060
+ <a name="XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2" id="XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2">XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2</a> = 3061 : 3061
+ <a name="XML_SCHEMAP_CVC_SIMPLE_TYPE" id="XML_SCHEMAP_CVC_SIMPLE_TYPE">XML_SCHEMAP_CVC_SIMPLE_TYPE</a> = 3062 : 3062
+ <a name="XML_SCHEMAP_COS_CT_EXTENDS_1_1" id="XML_SCHEMAP_COS_CT_EXTENDS_1_1">XML_SCHEMAP_COS_CT_EXTENDS_1_1</a> = 3063 : 3063
+ <a name="XML_SCHEMAP_SRC_IMPORT_1_1" id="XML_SCHEMAP_SRC_IMPORT_1_1">XML_SCHEMAP_SRC_IMPORT_1_1</a> = 3064 : 3064
+ <a name="XML_SCHEMAP_SRC_IMPORT_1_2" id="XML_SCHEMAP_SRC_IMPORT_1_2">XML_SCHEMAP_SRC_IMPORT_1_2</a> = 3065 : 3065
+ <a name="XML_SCHEMAP_SRC_IMPORT_2" id="XML_SCHEMAP_SRC_IMPORT_2">XML_SCHEMAP_SRC_IMPORT_2</a> = 3066 : 3066
+ <a name="XML_SCHEMAP_SRC_IMPORT_2_1" id="XML_SCHEMAP_SRC_IMPORT_2_1">XML_SCHEMAP_SRC_IMPORT_2_1</a> = 3067 : 3067
+ <a name="XML_SCHEMAP_SRC_IMPORT_2_2" id="XML_SCHEMAP_SRC_IMPORT_2_2">XML_SCHEMAP_SRC_IMPORT_2_2</a> = 3068 : 3068
+ <a name="XML_SCHEMAP_INTERNAL" id="XML_SCHEMAP_INTERNAL">XML_SCHEMAP_INTERNAL</a> = 3069 : 3069 non-W3C
+ <a name="XML_SCHEMAP_NOT_DETERMINISTIC" id="XML_SCHEMAP_NOT_DETERMINISTIC">XML_SCHEMAP_NOT_DETERMINISTIC</a> = 3070 : 3070 non-W3C
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1" id="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1</a> = 3071 : 3071
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2" id="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2</a> = 3072 : 3072
+ <a name="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3" id="XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3">XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3</a> = 3073 : 3073
+ <a name="XML_SCHEMAP_MG_PROPS_CORRECT_1" id="XML_SCHEMAP_MG_PROPS_CORRECT_1">XML_SCHEMAP_MG_PROPS_CORRECT_1</a> = 3074 : 3074
+ <a name="XML_SCHEMAP_MG_PROPS_CORRECT_2" id="XML_SCHEMAP_MG_PROPS_CORRECT_2">XML_SCHEMAP_MG_PROPS_CORRECT_2</a> = 3075 : 3075
+ <a name="XML_SCHEMAP_SRC_CT_1" id="XML_SCHEMAP_SRC_CT_1">XML_SCHEMAP_SRC_CT_1</a> = 3076 : 3076
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3</a> = 3077 : 3077
+ <a name="XML_SCHEMAP_AU_PROPS_CORRECT_2" id="XML_SCHEMAP_AU_PROPS_CORRECT_2">XML_SCHEMAP_AU_PROPS_CORRECT_2</a> = 3078 : 3078
+ <a name="XML_SCHEMAP_A_PROPS_CORRECT_2" id="XML_SCHEMAP_A_PROPS_CORRECT_2">XML_SCHEMAP_A_PROPS_CORRECT_2</a> = 3079 : 3079
+ <a name="XML_SCHEMAP_C_PROPS_CORRECT" id="XML_SCHEMAP_C_PROPS_CORRECT">XML_SCHEMAP_C_PROPS_CORRECT</a> = 3080 : 3080
+ <a name="XML_SCHEMAP_SRC_REDEFINE" id="XML_SCHEMAP_SRC_REDEFINE">XML_SCHEMAP_SRC_REDEFINE</a> = 3081 : 3081
+ <a name="XML_SCHEMAP_SRC_IMPORT" id="XML_SCHEMAP_SRC_IMPORT">XML_SCHEMAP_SRC_IMPORT</a> = 3082 : 3082
+ <a name="XML_SCHEMAP_WARN_SKIP_SCHEMA" id="XML_SCHEMAP_WARN_SKIP_SCHEMA">XML_SCHEMAP_WARN_SKIP_SCHEMA</a> = 3083 : 3083
+ <a name="XML_SCHEMAP_WARN_UNLOCATED_SCHEMA" id="XML_SCHEMAP_WARN_UNLOCATED_SCHEMA">XML_SCHEMAP_WARN_UNLOCATED_SCHEMA</a> = 3084 : 3084
+ <a name="XML_SCHEMAP_WARN_ATTR_REDECL_PROH" id="XML_SCHEMAP_WARN_ATTR_REDECL_PROH">XML_SCHEMAP_WARN_ATTR_REDECL_PROH</a> = 3085 : 3085
+ <a name="XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH" id="XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH">XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH</a> = 3086 : 3085
+ <a name="XML_SCHEMAP_AG_PROPS_CORRECT" id="XML_SCHEMAP_AG_PROPS_CORRECT">XML_SCHEMAP_AG_PROPS_CORRECT</a> = 3087 : 3086
+ <a name="XML_SCHEMAP_COS_CT_EXTENDS_1_2" id="XML_SCHEMAP_COS_CT_EXTENDS_1_2">XML_SCHEMAP_COS_CT_EXTENDS_1_2</a> = 3088 : 3087
+ <a name="XML_SCHEMAP_AU_PROPS_CORRECT" id="XML_SCHEMAP_AU_PROPS_CORRECT">XML_SCHEMAP_AU_PROPS_CORRECT</a> = 3089 : 3088
+ <a name="XML_SCHEMAP_A_PROPS_CORRECT_3" id="XML_SCHEMAP_A_PROPS_CORRECT_3">XML_SCHEMAP_A_PROPS_CORRECT_3</a> = 3090 : 3089
+ <a name="XML_SCHEMAP_COS_ALL_LIMITED" id="XML_SCHEMAP_COS_ALL_LIMITED">XML_SCHEMAP_COS_ALL_LIMITED</a> = 3091 : 3090
+ <a name="XML_SCHEMATRONV_ASSERT" id="XML_SCHEMATRONV_ASSERT">XML_SCHEMATRONV_ASSERT</a> = 4000 : 4000
+ <a name="XML_SCHEMATRONV_REPORT" id="XML_SCHEMATRONV_REPORT">XML_SCHEMATRONV_REPORT</a> = 4001
+ <a name="XML_MODULE_OPEN" id="XML_MODULE_OPEN">XML_MODULE_OPEN</a> = 4900 : 4900
+ <a name="XML_MODULE_CLOSE" id="XML_MODULE_CLOSE">XML_MODULE_CLOSE</a> = 4901 : 4901
+ <a name="XML_CHECK_FOUND_ELEMENT" id="XML_CHECK_FOUND_ELEMENT">XML_CHECK_FOUND_ELEMENT</a> = 5000
+ <a name="XML_CHECK_FOUND_ATTRIBUTE" id="XML_CHECK_FOUND_ATTRIBUTE">XML_CHECK_FOUND_ATTRIBUTE</a> = 5001 : 5001
+ <a name="XML_CHECK_FOUND_TEXT" id="XML_CHECK_FOUND_TEXT">XML_CHECK_FOUND_TEXT</a> = 5002 : 5002
+ <a name="XML_CHECK_FOUND_CDATA" id="XML_CHECK_FOUND_CDATA">XML_CHECK_FOUND_CDATA</a> = 5003 : 5003
+ <a name="XML_CHECK_FOUND_ENTITYREF" id="XML_CHECK_FOUND_ENTITYREF">XML_CHECK_FOUND_ENTITYREF</a> = 5004 : 5004
+ <a name="XML_CHECK_FOUND_ENTITY" id="XML_CHECK_FOUND_ENTITY">XML_CHECK_FOUND_ENTITY</a> = 5005 : 5005
+ <a name="XML_CHECK_FOUND_PI" id="XML_CHECK_FOUND_PI">XML_CHECK_FOUND_PI</a> = 5006 : 5006
+ <a name="XML_CHECK_FOUND_COMMENT" id="XML_CHECK_FOUND_COMMENT">XML_CHECK_FOUND_COMMENT</a> = 5007 : 5007
+ <a name="XML_CHECK_FOUND_DOCTYPE" id="XML_CHECK_FOUND_DOCTYPE">XML_CHECK_FOUND_DOCTYPE</a> = 5008 : 5008
+ <a name="XML_CHECK_FOUND_FRAGMENT" id="XML_CHECK_FOUND_FRAGMENT">XML_CHECK_FOUND_FRAGMENT</a> = 5009 : 5009
+ <a name="XML_CHECK_FOUND_NOTATION" id="XML_CHECK_FOUND_NOTATION">XML_CHECK_FOUND_NOTATION</a> = 5010 : 5010
+ <a name="XML_CHECK_UNKNOWN_NODE" id="XML_CHECK_UNKNOWN_NODE">XML_CHECK_UNKNOWN_NODE</a> = 5011 : 5011
+ <a name="XML_CHECK_ENTITY_TYPE" id="XML_CHECK_ENTITY_TYPE">XML_CHECK_ENTITY_TYPE</a> = 5012 : 5012
+ <a name="XML_CHECK_NO_PARENT" id="XML_CHECK_NO_PARENT">XML_CHECK_NO_PARENT</a> = 5013 : 5013
+ <a name="XML_CHECK_NO_DOC" id="XML_CHECK_NO_DOC">XML_CHECK_NO_DOC</a> = 5014 : 5014
+ <a name="XML_CHECK_NO_NAME" id="XML_CHECK_NO_NAME">XML_CHECK_NO_NAME</a> = 5015 : 5015
+ <a name="XML_CHECK_NO_ELEM" id="XML_CHECK_NO_ELEM">XML_CHECK_NO_ELEM</a> = 5016 : 5016
+ <a name="XML_CHECK_WRONG_DOC" id="XML_CHECK_WRONG_DOC">XML_CHECK_WRONG_DOC</a> = 5017 : 5017
+ <a name="XML_CHECK_NO_PREV" id="XML_CHECK_NO_PREV">XML_CHECK_NO_PREV</a> = 5018 : 5018
+ <a name="XML_CHECK_WRONG_PREV" id="XML_CHECK_WRONG_PREV">XML_CHECK_WRONG_PREV</a> = 5019 : 5019
+ <a name="XML_CHECK_NO_NEXT" id="XML_CHECK_NO_NEXT">XML_CHECK_NO_NEXT</a> = 5020 : 5020
+ <a name="XML_CHECK_WRONG_NEXT" id="XML_CHECK_WRONG_NEXT">XML_CHECK_WRONG_NEXT</a> = 5021 : 5021
+ <a name="XML_CHECK_NOT_DTD" id="XML_CHECK_NOT_DTD">XML_CHECK_NOT_DTD</a> = 5022 : 5022
+ <a name="XML_CHECK_NOT_ATTR" id="XML_CHECK_NOT_ATTR">XML_CHECK_NOT_ATTR</a> = 5023 : 5023
+ <a name="XML_CHECK_NOT_ATTR_DECL" id="XML_CHECK_NOT_ATTR_DECL">XML_CHECK_NOT_ATTR_DECL</a> = 5024 : 5024
+ <a name="XML_CHECK_NOT_ELEM_DECL" id="XML_CHECK_NOT_ELEM_DECL">XML_CHECK_NOT_ELEM_DECL</a> = 5025 : 5025
+ <a name="XML_CHECK_NOT_ENTITY_DECL" id="XML_CHECK_NOT_ENTITY_DECL">XML_CHECK_NOT_ENTITY_DECL</a> = 5026 : 5026
+ <a name="XML_CHECK_NOT_NS_DECL" id="XML_CHECK_NOT_NS_DECL">XML_CHECK_NOT_NS_DECL</a> = 5027 : 5027
+ <a name="XML_CHECK_NO_HREF" id="XML_CHECK_NO_HREF">XML_CHECK_NO_HREF</a> = 5028 : 5028
+ <a name="XML_CHECK_WRONG_PARENT" id="XML_CHECK_WRONG_PARENT">XML_CHECK_WRONG_PARENT</a> = 5029 : 5029
+ <a name="XML_CHECK_NS_SCOPE" id="XML_CHECK_NS_SCOPE">XML_CHECK_NS_SCOPE</a> = 5030 : 5030
+ <a name="XML_CHECK_NS_ANCESTOR" id="XML_CHECK_NS_ANCESTOR">XML_CHECK_NS_ANCESTOR</a> = 5031 : 5031
+ <a name="XML_CHECK_NOT_UTF8" id="XML_CHECK_NOT_UTF8">XML_CHECK_NOT_UTF8</a> = 5032 : 5032
+ <a name="XML_CHECK_NO_DICT" id="XML_CHECK_NO_DICT">XML_CHECK_NO_DICT</a> = 5033 : 5033
+ <a name="XML_CHECK_NOT_NCNAME" id="XML_CHECK_NOT_NCNAME">XML_CHECK_NOT_NCNAME</a> = 5034 : 5034
+ <a name="XML_CHECK_OUTSIDE_DICT" id="XML_CHECK_OUTSIDE_DICT">XML_CHECK_OUTSIDE_DICT</a> = 5035 : 5035
+ <a name="XML_CHECK_WRONG_NAME" id="XML_CHECK_WRONG_NAME">XML_CHECK_WRONG_NAME</a> = 5036 : 5036
+ <a name="XML_CHECK_NAME_NOT_NULL" id="XML_CHECK_NAME_NOT_NULL">XML_CHECK_NAME_NOT_NULL</a> = 5037 : 5037
+ <a name="XML_I18N_NO_NAME" id="XML_I18N_NO_NAME">XML_I18N_NO_NAME</a> = 6000
+ <a name="XML_I18N_NO_HANDLER" id="XML_I18N_NO_HANDLER">XML_I18N_NO_HANDLER</a> = 6001 : 6001
+ <a name="XML_I18N_EXCESS_HANDLER" id="XML_I18N_EXCESS_HANDLER">XML_I18N_EXCESS_HANDLER</a> = 6002 : 6002
+ <a name="XML_I18N_CONV_FAILED" id="XML_I18N_CONV_FAILED">XML_I18N_CONV_FAILED</a> = 6003 : 6003
+ <a name="XML_I18N_NO_OUTPUT" id="XML_I18N_NO_OUTPUT">XML_I18N_NO_OUTPUT</a> = 6004 : 6004
+ <a name="XML_BUF_OVERFLOW" id="XML_BUF_OVERFLOW">XML_BUF_OVERFLOW</a> = 7000
+}
+</pre><h3><a name="initGenericErrorDefaultFunc" id="initGenericErrorDefaultFunc"></a>Function: initGenericErrorDefaultFunc</h3><pre class="programlisting">void initGenericErrorDefaultFunc (<a href="libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> * handler)<br />
+</pre><p>Set or reset (if NULL) the default handler for generic errors to the builtin error function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the handler</td></tr></tbody></table></div><h3><a name="xmlCopyError" id="xmlCopyError"></a>Function: xmlCopyError</h3><pre class="programlisting">int xmlCopyError (<a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> from, <br /> <a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> to)<br />
+</pre><p>Save the original error to the new place.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>a source error</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>a target error</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlCtxtGetLastError" id="xmlCtxtGetLastError"></a>Function: xmlCtxtGetLastError</h3><pre class="programlisting"><a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> xmlCtxtGetLastError (void * ctx)<br />
+</pre><p>Get the last parsing error registered.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div><h3><a name="xmlCtxtResetLastError" id="xmlCtxtResetLastError"></a>Function: xmlCtxtResetLastError</h3><pre class="programlisting">void xmlCtxtResetLastError (void * ctx)<br />
+</pre><p>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlGenericErrorFunc" id="xmlGenericErrorFunc"></a>Function type: xmlGenericErrorFunc</h3><pre class="programlisting">Function type: xmlGenericErrorFunc
+void xmlGenericErrorFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Signature of the function to use when there is an error and no parsing or validity context available .</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>a parsing context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>the extra arguments of the varargs to format the message</td></tr></tbody></table></div><br />
+<h3><a name="xmlGetLastError" id="xmlGetLastError"></a>Function: xmlGetLastError</h3><pre class="programlisting"><a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> xmlGetLastError (void)<br />
+</pre><p>Get the last global error registered. This is per thread if compiled with thread support.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div><h3><a name="xmlParserError" id="xmlParserError"></a>Function: xmlParserError</h3><pre class="programlisting">void xmlParserError (void * ctx, <br /> const char * msg, <br /> ... ...)<br />
+</pre><p>Display and format an error messages, gives file, line, position and extra parameters.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div><h3><a name="xmlParserPrintFileContext" id="xmlParserPrintFileContext"></a>Function: xmlParserPrintFileContext</h3><pre class="programlisting">void xmlParserPrintFileContext (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br />
+</pre><p>Displays current context within the input content for error tracking</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input</td></tr></tbody></table></div><h3><a name="xmlParserPrintFileInfo" id="xmlParserPrintFileInfo"></a>Function: xmlParserPrintFileInfo</h3><pre class="programlisting">void xmlParserPrintFileInfo (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br />
+</pre><p>Displays the associated file and line informations for the current input</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input</td></tr></tbody></table></div><h3><a name="xmlParserValidityError" id="xmlParserValidityError"></a>Function: xmlParserValidityError</h3><pre class="programlisting">void xmlParserValidityError (void * ctx, <br /> const char * msg, <br /> ... ...)<br />
+</pre><p>Display and format an validity error messages, gives file, line, position and extra parameters.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div><h3><a name="xmlParserValidityWarning" id="xmlParserValidityWarning"></a>Function: xmlParserValidityWarning</h3><pre class="programlisting">void xmlParserValidityWarning (void * ctx, <br /> const char * msg, <br /> ... ...)<br />
+</pre><p>Display and format a validity warning messages, gives file, line, position and extra parameters.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div><h3><a name="xmlParserWarning" id="xmlParserWarning"></a>Function: xmlParserWarning</h3><pre class="programlisting">void xmlParserWarning (void * ctx, <br /> const char * msg, <br /> ... ...)<br />
+</pre><p>Display and format a warning messages, gives file, line, position and extra parameters.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div><h3><a name="xmlResetError" id="xmlResetError"></a>Function: xmlResetError</h3><pre class="programlisting">void xmlResetError (<a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> err)<br />
+</pre><p>Cleanup the error.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>pointer to the error.</td></tr></tbody></table></div><h3><a name="xmlResetLastError" id="xmlResetLastError"></a>Function: xmlResetLastError</h3><pre class="programlisting">void xmlResetLastError (void)<br />
+</pre><p>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</p>
+<h3><a name="xmlSetGenericErrorFunc" id="xmlSetGenericErrorFunc"></a>Function: xmlSetGenericErrorFunc</h3><pre class="programlisting">void xmlSetGenericErrorFunc (void * ctx, <br /> <a href="libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> handler)<br />
+</pre><p>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL. For multi-threaded applications, this must be set separately for each thread.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div><h3><a name="xmlSetStructuredErrorFunc" id="xmlSetStructuredErrorFunc"></a>Function: xmlSetStructuredErrorFunc</h3><pre class="programlisting">void xmlSetStructuredErrorFunc (void * ctx, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> handler)<br />
+</pre><p>Function to reset the handler and the error context for out of context structured error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler For multi-threaded applications, this must be set separately for each thread.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div><h3><a name="xmlStructuredErrorFunc" id="xmlStructuredErrorFunc"></a>Function type: xmlStructuredErrorFunc</h3><pre class="programlisting">Function type: xmlStructuredErrorFunc
+void xmlStructuredErrorFunc (void * userData, <br /> <a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> error)
+</pre><p>Signature of the function to use when there is an error and the module handles the new error reporting mechanism.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>user provided data for the error callback</td></tr><tr><td><span class="term"><i><tt>error</tt></i>:</span></td><td>the error being raised.</td></tr></tbody></table></div><br />
+<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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlexports.html b/libxml2-2.9.10/doc/html/libxml-xmlexports.html
new file mode 100644
index 0000000..a5a4d75
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlexports.html
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlexports from libxml2</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></h1><h2>Module xmlexports from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlerror.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlerror.html">xmlerror</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlmemory.html">xmlmemory</a></th><td><a accesskey="n" href="libxml-xmlmemory.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>macros for marking symbols as exportable/importable. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#LIBXML_DLL_IMPORT">LIBXML_DLL_IMPORT</a></pre><pre class="programlisting">#define <a href="#XMLCALL">XMLCALL</a></pre><pre class="programlisting">#define <a href="#XMLCDECL">XMLCDECL</a></pre><pre class="programlisting">#define <a href="#XMLPUBFUN">XMLPUBFUN</a></pre><pre class="programlisting">#define <a href="#XMLPUBVAR">XMLPUBVAR</a></pre><h2>Description</h2>
+<h3><a name="LIBXML_DLL_IMPORT" id="LIBXML_DLL_IMPORT"></a>Macro: LIBXML_DLL_IMPORT</h3><pre>#define LIBXML_DLL_IMPORT</pre><p></p>
+<h3><a name="XMLCALL" id="XMLCALL"></a>Macro: XMLCALL</h3><pre>#define XMLCALL</pre><p></p>
+<h3><a name="XMLCDECL" id="XMLCDECL"></a>Macro: XMLCDECL</h3><pre>#define XMLCDECL</pre><p></p>
+<h3><a name="XMLPUBFUN" id="XMLPUBFUN"></a>Macro: XMLPUBFUN</h3><pre>#define XMLPUBFUN</pre><p></p>
+<h3><a name="XMLPUBVAR" id="XMLPUBVAR"></a>Macro: XMLPUBVAR</h3><pre>#define XMLPUBVAR</pre><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlmemory.html b/libxml2-2.9.10/doc/html/libxml-xmlmemory.html
new file mode 100644
index 0000000..3ee8a2d
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlmemory.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlmemory from libxml2</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></h1><h2>Module xmlmemory from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlexports.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlexports.html">xmlexports</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlmodule.html">xmlmodule</a></th><td><a accesskey="n" href="libxml-xmlmodule.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>provides interfaces for the memory allocator, including debugging capabilities. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#DEBUG_MEMORY">DEBUG_MEMORY</a></pre><pre class="programlisting">Variable <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> <a name="xmlMalloc" id="xmlMalloc"></a>xmlMalloc
+
+</pre><pre class="programlisting">Variable <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> <a name="xmlMallocAtomic" id="xmlMallocAtomic"></a>xmlMallocAtomic
+
+</pre><pre class="programlisting">Variable <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> <a name="xmlMemStrdup" id="xmlMemStrdup"></a>xmlMemStrdup
+
+</pre><pre class="programlisting">Variable <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> <a name="xmlRealloc" id="xmlRealloc"></a>xmlRealloc
+
+</pre><pre class="programlisting">void <a href="#xmlCleanupMemory">xmlCleanupMemory</a> (void)</pre>
+<pre class="programlisting">Function type: <a href="#xmlFreeFunc">xmlFreeFunc</a>
+void <a href="#xmlFreeFunc">xmlFreeFunc</a> (void * mem)
+</pre>
+<pre class="programlisting">int <a href="#xmlGcMemGet">xmlGcMemGet</a> (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocAtomicFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc)</pre>
+<pre class="programlisting">int <a href="#xmlGcMemSetup">xmlGcMemSetup</a> (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocAtomicFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> strdupFunc)</pre>
+<pre class="programlisting">int <a href="#xmlInitMemory">xmlInitMemory</a> (void)</pre>
+<pre class="programlisting">void * <a href="#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a> (size_t size, <br /> const char * file, <br /> int line)</pre>
+<pre class="programlisting">Function type: <a href="#xmlMallocFunc">xmlMallocFunc</a>
+void * <a href="#xmlMallocFunc">xmlMallocFunc</a> (size_t size)
+</pre>
+<pre class="programlisting">void * <a href="#xmlMallocLoc">xmlMallocLoc</a> (size_t size, <br /> const char * file, <br /> int line)</pre>
+<pre class="programlisting">int <a href="#xmlMemBlocks">xmlMemBlocks</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlMemDisplay">xmlMemDisplay</a> (FILE * fp)</pre>
+<pre class="programlisting">void <a href="#xmlMemDisplayLast">xmlMemDisplayLast</a> (FILE * fp, <br /> long nbBytes)</pre>
+<pre class="programlisting">void <a href="#xmlMemFree">xmlMemFree</a> (void * ptr)</pre>
+<pre class="programlisting">int <a href="#xmlMemGet">xmlMemGet</a> (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc)</pre>
+<pre class="programlisting">void * <a href="#xmlMemMalloc">xmlMemMalloc</a> (size_t size)</pre>
+<pre class="programlisting">void * <a href="#xmlMemRealloc">xmlMemRealloc</a> (void * ptr, <br /> size_t size)</pre>
+<pre class="programlisting">int <a href="#xmlMemSetup">xmlMemSetup</a> (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> strdupFunc)</pre>
+<pre class="programlisting">void <a href="#xmlMemShow">xmlMemShow</a> (FILE * fp, <br /> int nr)</pre>
+<pre class="programlisting">char * <a href="#xmlMemStrdupLoc">xmlMemStrdupLoc</a> (const char * str, <br /> const char * file, <br /> int line)</pre>
+<pre class="programlisting">int <a href="#xmlMemUsed">xmlMemUsed</a> (void)</pre>
+<pre class="programlisting">void <a href="#xmlMemoryDump">xmlMemoryDump</a> (void)</pre>
+<pre class="programlisting">char * <a href="#xmlMemoryStrdup">xmlMemoryStrdup</a> (const char * str)</pre>
+<pre class="programlisting">Function type: <a href="#xmlReallocFunc">xmlReallocFunc</a>
+void * <a href="#xmlReallocFunc">xmlReallocFunc</a> (void * mem, <br /> size_t size)
+</pre>
+<pre class="programlisting">void * <a href="#xmlReallocLoc">xmlReallocLoc</a> (void * ptr, <br /> size_t size, <br /> const char * file, <br /> int line)</pre>
+<pre class="programlisting">Function type: <a href="#xmlStrdupFunc">xmlStrdupFunc</a>
+char * <a href="#xmlStrdupFunc">xmlStrdupFunc</a> (const char * str)
+</pre>
+<h2>Description</h2>
+<h3><a name="DEBUG_MEMORY" id="DEBUG_MEMORY"></a>Macro: DEBUG_MEMORY</h3><pre>#define DEBUG_MEMORY</pre><p><a href="libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a> replaces the allocator with a collect and debug shell to the libc allocator. <a href="libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a> should only be activated when debugging libxml i.e. if libxml has been configured with --with-debug-mem too. #define DEBUG_MEMORY_FREED #define <a href="libxml-xmlversion.html#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a></p>
+<h3><a name="xmlCleanupMemory" id="xmlCleanupMemory"></a>Function: xmlCleanupMemory</h3><pre class="programlisting">void xmlCleanupMemory (void)<br />
+</pre><p>Free up all the memory allocated by the library for its own use. This should not be called by user level code.</p>
+<h3><a name="xmlFreeFunc" id="xmlFreeFunc"></a>Function type: xmlFreeFunc</h3><pre class="programlisting">Function type: xmlFreeFunc
+void xmlFreeFunc (void * mem)
+</pre><p>Signature for a free() implementation.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>an already allocated block of memory</td></tr></tbody></table></div><br />
+<h3><a name="xmlGcMemGet" id="xmlGcMemGet"></a>Function: xmlGcMemGet</h3><pre class="programlisting">int xmlGcMemGet (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocAtomicFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc)<br />
+</pre><p>Provides the memory access functions set currently in use The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas useful for garbage collected memory allocators</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>place to save the free() function in use</td></tr><tr><td><span class="term"><i><tt>mallocFunc</tt></i>:</span></td><td>place to save the malloc() function in use</td></tr><tr><td><span class="term"><i><tt>mallocAtomicFunc</tt></i>:</span></td><td>place to save the atomic malloc() function in use</td></tr><tr><td><span class="term"><i><tt>reallocFunc</tt></i>:</span></td><td>place to save the realloc() function in use</td></tr><tr><td><span class="term"><i><tt>strdupFunc</tt></i>:</span></td><td>place to save the strdup() function in use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlGcMemSetup" id="xmlGcMemSetup"></a>Function: xmlGcMemSetup</h3><pre class="programlisting">int xmlGcMemSetup (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocAtomicFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> strdupFunc)<br />
+</pre><p>Override the default memory access functions with a new set This has to be called before any other libxml routines ! The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas useful for garbage collected memory allocators Should this be blocked if there was already some allocations done ?</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>the free() function to use</td></tr><tr><td><span class="term"><i><tt>mallocFunc</tt></i>:</span></td><td>the malloc() function to use</td></tr><tr><td><span class="term"><i><tt>mallocAtomicFunc</tt></i>:</span></td><td>the malloc() function to use for atomic allocations</td></tr><tr><td><span class="term"><i><tt>reallocFunc</tt></i>:</span></td><td>the realloc() function to use</td></tr><tr><td><span class="term"><i><tt>strdupFunc</tt></i>:</span></td><td>the strdup() function to use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlInitMemory" id="xmlInitMemory"></a>Function: xmlInitMemory</h3><pre class="programlisting">int xmlInitMemory (void)<br />
+</pre><p>Initialize the memory layer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlMallocAtomicLoc" id="xmlMallocAtomicLoc"></a>Function: xmlMallocAtomicLoc</h3><pre class="programlisting">void * xmlMallocAtomicLoc (size_t size, <br /> const char * file, <br /> int line)<br />
+</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an unsigned int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMallocFunc" id="xmlMallocFunc"></a>Function type: xmlMallocFunc</h3><pre class="programlisting">Function type: xmlMallocFunc
+void * xmlMallocFunc (size_t size)
+</pre><p>Signature for a malloc() implementation.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size requested in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the newly allocated block or NULL in case of error.</td></tr></tbody></table></div><br />
+<h3><a name="xmlMallocLoc" id="xmlMallocLoc"></a>Function: xmlMallocLoc</h3><pre class="programlisting">void * xmlMallocLoc (size_t size, <br /> const char * file, <br /> int line)<br />
+</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMemBlocks" id="xmlMemBlocks"></a>Function: xmlMemBlocks</h3><pre class="programlisting">int xmlMemBlocks (void)<br />
+</pre><p>Provides the number of memory areas currently allocated</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int representing the number of blocks</td></tr></tbody></table></div><h3><a name="xmlMemDisplay" id="xmlMemDisplay"></a>Function: xmlMemDisplay</h3><pre class="programlisting">void xmlMemDisplay (FILE * fp)<br />
+</pre><p>show in-extenso the memory blocks allocated</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fp</tt></i>:</span></td><td>a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist</td></tr></tbody></table></div><h3><a name="xmlMemDisplayLast" id="xmlMemDisplayLast"></a>Function: xmlMemDisplayLast</h3><pre class="programlisting">void xmlMemDisplayLast (FILE * fp, <br /> long nbBytes)<br />
+</pre><p>the last nbBytes of memory allocated and not freed, useful for dumping the memory left allocated between two places at runtime.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fp</tt></i>:</span></td><td>a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist</td></tr><tr><td><span class="term"><i><tt>nbBytes</tt></i>:</span></td><td>the amount of memory to dump</td></tr></tbody></table></div><h3><a name="xmlMemFree" id="xmlMemFree"></a>Function: xmlMemFree</h3><pre class="programlisting">void xmlMemFree (void * ptr)<br />
+</pre><p>a free() equivalent, with error checking.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td>the memory block pointer</td></tr></tbody></table></div><h3><a name="xmlMemGet" id="xmlMemGet"></a>Function: xmlMemGet</h3><pre class="programlisting">int xmlMemGet (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc)<br />
+</pre><p>Provides the memory access functions set currently in use</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>place to save the free() function in use</td></tr><tr><td><span class="term"><i><tt>mallocFunc</tt></i>:</span></td><td>place to save the malloc() function in use</td></tr><tr><td><span class="term"><i><tt>reallocFunc</tt></i>:</span></td><td>place to save the realloc() function in use</td></tr><tr><td><span class="term"><i><tt>strdupFunc</tt></i>:</span></td><td>place to save the strdup() function in use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlMemMalloc" id="xmlMemMalloc"></a>Function: xmlMemMalloc</h3><pre class="programlisting">void * xmlMemMalloc (size_t size)<br />
+</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMemRealloc" id="xmlMemRealloc"></a>Function: xmlMemRealloc</h3><pre class="programlisting">void * xmlMemRealloc (void * ptr, <br /> size_t size)<br />
+</pre><p>a realloc() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td>the initial memory block pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMemSetup" id="xmlMemSetup"></a>Function: xmlMemSetup</h3><pre class="programlisting">int xmlMemSetup (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> strdupFunc)<br />
+</pre><p>Override the default memory access functions with a new set This has to be called before any other libxml routines ! Should this be blocked if there was already some allocations done ?</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>the free() function to use</td></tr><tr><td><span class="term"><i><tt>mallocFunc</tt></i>:</span></td><td>the malloc() function to use</td></tr><tr><td><span class="term"><i><tt>reallocFunc</tt></i>:</span></td><td>the realloc() function to use</td></tr><tr><td><span class="term"><i><tt>strdupFunc</tt></i>:</span></td><td>the strdup() function to use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlMemShow" id="xmlMemShow"></a>Function: xmlMemShow</h3><pre class="programlisting">void xmlMemShow (FILE * fp, <br /> int nr)<br />
+</pre><p>show a show display of the memory allocated, and dump the @nr last allocated areas which were not freed</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fp</tt></i>:</span></td><td>a FILE descriptor used as the output file</td></tr><tr><td><span class="term"><i><tt>nr</tt></i>:</span></td><td>number of entries to dump</td></tr></tbody></table></div><h3><a name="xmlMemStrdupLoc" id="xmlMemStrdupLoc"></a>Function: xmlMemStrdupLoc</h3><pre class="programlisting">char * xmlMemStrdupLoc (const char * str, <br /> const char * file, <br /> int line)<br />
+</pre><p>a strdup() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the initial string pointer</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new string or NULL if allocation error occurred.</td></tr></tbody></table></div><h3><a name="xmlMemUsed" id="xmlMemUsed"></a>Function: xmlMemUsed</h3><pre class="programlisting">int xmlMemUsed (void)<br />
+</pre><p>Provides the amount of memory currently allocated</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int representing the amount of memory allocated.</td></tr></tbody></table></div><h3><a name="xmlMemoryDump" id="xmlMemoryDump"></a>Function: xmlMemoryDump</h3><pre class="programlisting">void xmlMemoryDump (void)<br />
+</pre><p>Dump in-extenso the memory blocks allocated to the file .memorylist</p>
+<h3><a name="xmlMemoryStrdup" id="xmlMemoryStrdup"></a>Function: xmlMemoryStrdup</h3><pre class="programlisting">char * xmlMemoryStrdup (const char * str)<br />
+</pre><p>a strdup() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the initial string pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new string or NULL if allocation error occurred.</td></tr></tbody></table></div><h3><a name="xmlReallocFunc" id="xmlReallocFunc"></a>Function type: xmlReallocFunc</h3><pre class="programlisting">Function type: xmlReallocFunc
+void * xmlReallocFunc (void * mem, <br /> size_t size)
+</pre><p>Signature for a realloc() implementation.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>an already allocated block of memory</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the new size requested in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the newly reallocated block or NULL in case of error.</td></tr></tbody></table></div><br />
+<h3><a name="xmlReallocLoc" id="xmlReallocLoc"></a>Function: xmlReallocLoc</h3><pre class="programlisting">void * xmlReallocLoc (void * ptr, <br /> size_t size, <br /> const char * file, <br /> int line)<br />
+</pre><p>a realloc() equivalent, with logging of the allocation info.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td>the initial memory block pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlStrdupFunc" id="xmlStrdupFunc"></a>Function type: xmlStrdupFunc</h3><pre class="programlisting">Function type: xmlStrdupFunc
+char * xmlStrdupFunc (const char * str)
+</pre><p>Signature for an strdup() implementation.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>a zero terminated string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the copy of the string or NULL in case of error.</td></tr></tbody></table></div><br />
+<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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlmodule.html b/libxml2-2.9.10/doc/html/libxml-xmlmodule.html
new file mode 100644
index 0000000..1aa8afc
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlmodule.html
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlmodule from libxml2</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></h1><h2>Module xmlmodule from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlmemory.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlmemory.html">xmlmemory</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlreader.html">xmlreader</a></th><td><a accesskey="n" href="libxml-xmlreader.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>basic API for dynamic module loading, used by libexslt added in 2.6.17 </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlModule">xmlModule</a><br />struct _xmlModule
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Enum <a href="#xmlModuleOption">xmlModuleOption</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlmodule.html#xmlModule">xmlModule</a> * <a name="xmlModulePtr" id="xmlModulePtr">xmlModulePtr</a>
+</pre><pre class="programlisting">int <a href="#xmlModuleClose">xmlModuleClose</a> (<a href="libxml-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module)</pre>
+<pre class="programlisting">int <a href="#xmlModuleFree">xmlModuleFree</a> (<a href="libxml-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module)</pre>
+<pre class="programlisting"><a href="libxml-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> <a href="#xmlModuleOpen">xmlModuleOpen</a> (const char * name, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlModuleSymbol">xmlModuleSymbol</a> (<a href="libxml-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module, <br /> const char * name, <br /> void ** symbol)</pre>
+<h2>Description</h2>
+<h3><a name="xmlModule" id="xmlModule">Structure xmlModule</a></h3><pre class="programlisting">Structure xmlModule<br />struct _xmlModule {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlModuleOption" id="xmlModuleOption">xmlModuleOption</a></h3><pre class="programlisting">Enum xmlModuleOption {
+ <a name="XML_MODULE_LAZY" id="XML_MODULE_LAZY">XML_MODULE_LAZY</a> = 1 : lazy binding
+ <a name="XML_MODULE_LOCAL" id="XML_MODULE_LOCAL">XML_MODULE_LOCAL</a> = 2 : local binding
+}
+</pre>
+ A handle to a dynamically loaded module
+ <h3><a name="xmlModuleClose" id="xmlModuleClose"></a>Function: xmlModuleClose</h3><pre class="programlisting">int xmlModuleClose (<a href="libxml-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module)<br />
+</pre><p>The close operations unload the associated module and free the data associated to the module.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>module</tt></i>:</span></td><td>the module handle</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of argument error and -2 if the module could not be closed/unloaded.</td></tr></tbody></table></div><h3><a name="xmlModuleFree" id="xmlModuleFree"></a>Function: xmlModuleFree</h3><pre class="programlisting">int xmlModuleFree (<a href="libxml-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module)<br />
+</pre><p>The free operations free the data associated to the module but does not unload the associated shared library which may still be in use.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>module</tt></i>:</span></td><td>the module handle</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of argument error</td></tr></tbody></table></div><h3><a name="xmlModuleOpen" id="xmlModuleOpen"></a>Function: xmlModuleOpen</h3><pre class="programlisting"><a href="libxml-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> xmlModuleOpen (const char * name, <br /> int options)<br />
+</pre><p>Opens a module/shared library given its name or path NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We cannot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * . TODO: options are not yet implemented.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the module name</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of <a href="libxml-xmlmodule.html#xmlModuleOption">xmlModuleOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a handle for the module or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlModuleSymbol" id="xmlModuleSymbol"></a>Function: xmlModuleSymbol</h3><pre class="programlisting">int xmlModuleSymbol (<a href="libxml-xmlmodule.html#xmlModulePtr">xmlModulePtr</a> module, <br /> const char * name, <br /> void ** symbol)<br />
+</pre><p>Lookup for a symbol address in the given module NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We cannot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * .</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>module</tt></i>:</span></td><td>the module</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the symbol</td></tr><tr><td><span class="term"><i><tt>symbol</tt></i>:</span></td><td>the resulting symbol address</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the symbol was found, or -1 in case of error</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlreader.html b/libxml2-2.9.10/doc/html/libxml-xmlreader.html
new file mode 100644
index 0000000..bb1debc
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlreader.html
@@ -0,0 +1,330 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlreader from libxml2</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></h1><h2>Module xmlreader from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlmodule.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlmodule.html">xmlmodule</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlregexp.html">xmlregexp</a></th><td><a accesskey="n" href="libxml-xmlregexp.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>API of the XML streaming API based on C# interfaces. </p><h2>Table of Contents</h2><pre class="programlisting">Enum <a href="#xmlParserProperties">xmlParserProperties</a>
+</pre><pre class="programlisting">Enum <a href="#xmlParserSeverities">xmlParserSeverities</a>
+</pre><pre class="programlisting">Enum <a href="#xmlReaderTypes">xmlReaderTypes</a>
+</pre><pre class="programlisting">Structure <a href="#xmlTextReader">xmlTextReader</a><br />struct _xmlTextReader
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef void * <a name="xmlTextReaderLocatorPtr" id="xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlTextReaderMode">xmlTextReaderMode</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlreader.html#xmlTextReader">xmlTextReader</a> * <a name="xmlTextReaderPtr" id="xmlTextReaderPtr">xmlTextReaderPtr</a>
+</pre><pre class="programlisting">void <a href="#xmlFreeTextReader">xmlFreeTextReader</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlNewTextReader">xmlNewTextReader</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> const char * URI)</pre>
+<pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a> (const char * URI)</pre>
+<pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForDoc">xmlReaderForDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForFd">xmlReaderForFd</a> (int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForFile">xmlReaderForFile</a> (const char * filename, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForIO">xmlReaderForIO</a> (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForMemory">xmlReaderForMemory</a> (const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlReaderNewDoc">xmlReaderNewDoc</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlReaderNewFd">xmlReaderNewFd</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlReaderNewFile">xmlReaderNewFile</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * filename, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlReaderNewIO">xmlReaderNewIO</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlReaderNewMemory">xmlReaderNewMemory</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlReaderNewWalker">xmlReaderNewWalker</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderWalker">xmlReaderWalker</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderAttributeCount">xmlTextReaderAttributeCount</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderBaseUri">xmlTextReaderBaseUri</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">long <a href="#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderClose">xmlTextReaderClose</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstBaseUri">xmlTextReaderConstBaseUri</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstEncoding">xmlTextReaderConstEncoding</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstLocalName">xmlTextReaderConstLocalName</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstName">xmlTextReaderConstName</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstNamespaceUri">xmlTextReaderConstNamespaceUri</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstPrefix">xmlTextReaderConstPrefix</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstString">xmlTextReaderConstString</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstValue">xmlTextReaderConstValue</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstXmlVersion">xmlTextReaderConstXmlVersion</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderDepth">xmlTextReaderDepth</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">Function type: <a href="#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a>
+void <a href="#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> (void * arg, <br /> const char * msg, <br /> <a href="libxml-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a> severity, <br /> <a href="libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)
+</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderExpand">xmlTextReaderExpand</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int no)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localName, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)</pre>
+<pre class="programlisting">void <a href="#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> * f, <br /> void ** arg)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderGetParserColumnNumber">xmlTextReaderGetParserColumnNumber</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderGetParserLineNumber">xmlTextReaderGetParserLineNumber</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int prop)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderHasAttributes">xmlTextReaderHasAttributes</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderHasValue">xmlTextReaderHasValue</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderIsEmptyElement">xmlTextReaderIsEmptyElement</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderIsValid">xmlTextReaderIsValid</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLocalName">xmlTextReaderLocalName</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a> (<a href="libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a> (<a href="libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderMoveToAttribute">xmlTextReaderMoveToAttribute</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int no)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderMoveToAttributeNs">xmlTextReaderMoveToAttributeNs</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localName, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderMoveToFirstAttribute">xmlTextReaderMoveToFirstAttribute</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderMoveToNextAttribute">xmlTextReaderMoveToNextAttribute</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderName">xmlTextReaderName</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderNamespaceUri">xmlTextReaderNamespaceUri</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderNext">xmlTextReaderNext</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderNodeType">xmlTextReaderNodeType</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderNormalization">xmlTextReaderNormalization</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderPrefix">xmlTextReaderPrefix</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderPreserve">xmlTextReaderPreserve</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderQuoteChar">xmlTextReaderQuoteChar</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderRead">xmlTextReaderRead</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderReadState">xmlTextReaderReadState</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadString">xmlTextReaderReadString</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * rng)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderRelaxNGValidateCtxt">xmlTextReaderRelaxNGValidateCtxt</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * xsd)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> int options)</pre>
+<pre class="programlisting">void <a href="#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> f, <br /> void * arg)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int prop, <br /> int value)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)</pre>
+<pre class="programlisting">void <a href="#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> f, <br /> void * arg)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderSetup">xmlTextReaderSetup</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderStandalone">xmlTextReaderStandalone</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderValue">xmlTextReaderValue</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
+<h2>Description</h2>
+<h3>Enum <a name="xmlParserProperties" id="xmlParserProperties">xmlParserProperties</a></h3><pre class="programlisting">Enum xmlParserProperties {
+ <a name="XML_PARSER_LOADDTD" id="XML_PARSER_LOADDTD">XML_PARSER_LOADDTD</a> = 1
+ <a name="XML_PARSER_DEFAULTATTRS" id="XML_PARSER_DEFAULTATTRS">XML_PARSER_DEFAULTATTRS</a> = 2
+ <a name="XML_PARSER_VALIDATE" id="XML_PARSER_VALIDATE">XML_PARSER_VALIDATE</a> = 3
+ <a name="XML_PARSER_SUBST_ENTITIES" id="XML_PARSER_SUBST_ENTITIES">XML_PARSER_SUBST_ENTITIES</a> = 4
+}
+</pre><h3>Enum <a name="xmlParserSeverities" id="xmlParserSeverities">xmlParserSeverities</a></h3><pre class="programlisting">Enum xmlParserSeverities {
+ <a name="XML_PARSER_SEVERITY_VALIDITY_WARNING" id="XML_PARSER_SEVERITY_VALIDITY_WARNING">XML_PARSER_SEVERITY_VALIDITY_WARNING</a> = 1
+ <a name="XML_PARSER_SEVERITY_VALIDITY_ERROR" id="XML_PARSER_SEVERITY_VALIDITY_ERROR">XML_PARSER_SEVERITY_VALIDITY_ERROR</a> = 2
+ <a name="XML_PARSER_SEVERITY_WARNING" id="XML_PARSER_SEVERITY_WARNING">XML_PARSER_SEVERITY_WARNING</a> = 3
+ <a name="XML_PARSER_SEVERITY_ERROR" id="XML_PARSER_SEVERITY_ERROR">XML_PARSER_SEVERITY_ERROR</a> = 4
+}
+</pre><h3>Enum <a name="xmlReaderTypes" id="xmlReaderTypes">xmlReaderTypes</a></h3><pre class="programlisting">Enum xmlReaderTypes {
+ <a name="XML_READER_TYPE_NONE" id="XML_READER_TYPE_NONE">XML_READER_TYPE_NONE</a> = 0
+ <a name="XML_READER_TYPE_ELEMENT" id="XML_READER_TYPE_ELEMENT">XML_READER_TYPE_ELEMENT</a> = 1
+ <a name="XML_READER_TYPE_ATTRIBUTE" id="XML_READER_TYPE_ATTRIBUTE">XML_READER_TYPE_ATTRIBUTE</a> = 2
+ <a name="XML_READER_TYPE_TEXT" id="XML_READER_TYPE_TEXT">XML_READER_TYPE_TEXT</a> = 3
+ <a name="XML_READER_TYPE_CDATA" id="XML_READER_TYPE_CDATA">XML_READER_TYPE_CDATA</a> = 4
+ <a name="XML_READER_TYPE_ENTITY_REFERENCE" id="XML_READER_TYPE_ENTITY_REFERENCE">XML_READER_TYPE_ENTITY_REFERENCE</a> = 5
+ <a name="XML_READER_TYPE_ENTITY" id="XML_READER_TYPE_ENTITY">XML_READER_TYPE_ENTITY</a> = 6
+ <a name="XML_READER_TYPE_PROCESSING_INSTRUCTION" id="XML_READER_TYPE_PROCESSING_INSTRUCTION">XML_READER_TYPE_PROCESSING_INSTRUCTION</a> = 7
+ <a name="XML_READER_TYPE_COMMENT" id="XML_READER_TYPE_COMMENT">XML_READER_TYPE_COMMENT</a> = 8
+ <a name="XML_READER_TYPE_DOCUMENT" id="XML_READER_TYPE_DOCUMENT">XML_READER_TYPE_DOCUMENT</a> = 9
+ <a name="XML_READER_TYPE_DOCUMENT_TYPE" id="XML_READER_TYPE_DOCUMENT_TYPE">XML_READER_TYPE_DOCUMENT_TYPE</a> = 10
+ <a name="XML_READER_TYPE_DOCUMENT_FRAGMENT" id="XML_READER_TYPE_DOCUMENT_FRAGMENT">XML_READER_TYPE_DOCUMENT_FRAGMENT</a> = 11
+ <a name="XML_READER_TYPE_NOTATION" id="XML_READER_TYPE_NOTATION">XML_READER_TYPE_NOTATION</a> = 12
+ <a name="XML_READER_TYPE_WHITESPACE" id="XML_READER_TYPE_WHITESPACE">XML_READER_TYPE_WHITESPACE</a> = 13
+ <a name="XML_READER_TYPE_SIGNIFICANT_WHITESPACE" id="XML_READER_TYPE_SIGNIFICANT_WHITESPACE">XML_READER_TYPE_SIGNIFICANT_WHITESPACE</a> = 14
+ <a name="XML_READER_TYPE_END_ELEMENT" id="XML_READER_TYPE_END_ELEMENT">XML_READER_TYPE_END_ELEMENT</a> = 15
+ <a name="XML_READER_TYPE_END_ENTITY" id="XML_READER_TYPE_END_ENTITY">XML_READER_TYPE_END_ENTITY</a> = 16
+ <a name="XML_READER_TYPE_XML_DECLARATION" id="XML_READER_TYPE_XML_DECLARATION">XML_READER_TYPE_XML_DECLARATION</a> = 17
+}
+</pre><h3><a name="xmlTextReader" id="xmlTextReader">Structure xmlTextReader</a></h3><pre class="programlisting">Structure xmlTextReader<br />struct _xmlTextReader {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlTextReaderMode" id="xmlTextReaderMode">xmlTextReaderMode</a></h3><pre class="programlisting">Enum xmlTextReaderMode {
+ <a name="XML_TEXTREADER_MODE_INITIAL" id="XML_TEXTREADER_MODE_INITIAL">XML_TEXTREADER_MODE_INITIAL</a> = 0
+ <a name="XML_TEXTREADER_MODE_INTERACTIVE" id="XML_TEXTREADER_MODE_INTERACTIVE">XML_TEXTREADER_MODE_INTERACTIVE</a> = 1
+ <a name="XML_TEXTREADER_MODE_ERROR" id="XML_TEXTREADER_MODE_ERROR">XML_TEXTREADER_MODE_ERROR</a> = 2
+ <a name="XML_TEXTREADER_MODE_EOF" id="XML_TEXTREADER_MODE_EOF">XML_TEXTREADER_MODE_EOF</a> = 3
+ <a name="XML_TEXTREADER_MODE_CLOSED" id="XML_TEXTREADER_MODE_CLOSED">XML_TEXTREADER_MODE_CLOSED</a> = 4
+ <a name="XML_TEXTREADER_MODE_READING" id="XML_TEXTREADER_MODE_READING">XML_TEXTREADER_MODE_READING</a> = 5
+}
+</pre>
+ Pointer to an xmlReader context.
+ <h3><a name="xmlFreeTextReader" id="xmlFreeTextReader"></a>Function: xmlFreeTextReader</h3><pre class="programlisting">void xmlFreeTextReader (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Deallocate all the resources associated to the reader</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a></td></tr></tbody></table></div><h3><a name="xmlNewTextReader" id="xmlNewTextReader"></a>Function: xmlNewTextReader</h3><pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlNewTextReader (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> const char * URI)<br />
+</pre><p>Create an <a href="libxml-xmlreader.html#xmlTextReader">xmlTextReader</a> structure fed with @input</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> used to read data</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI information for the source if available</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlNewTextReaderFilename" id="xmlNewTextReaderFilename"></a>Function: xmlNewTextReaderFilename</h3><pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlNewTextReaderFilename (const char * URI)<br />
+</pre><p>Create an <a href="libxml-xmlreader.html#xmlTextReader">xmlTextReader</a> structure fed with the resource at @URI</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI of the resource to process</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlReaderForDoc" id="xmlReaderForDoc"></a>Function: xmlReaderForDoc</h3><pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderForDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlReaderForFd" id="xmlReaderForFd"></a>Function: xmlReaderForFd</h3><pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderForFd (int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Create an xmltextReader for an XML from a file descriptor. The parsing flags @options are a combination of xmlParserOption. NOTE that the file descriptor will not be closed when the reader is closed or reset.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlReaderForFile" id="xmlReaderForFile"></a>Function: xmlReaderForFile</h3><pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderForFile (const char * filename, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlReaderForIO" id="xmlReaderForIO"></a>Function: xmlReaderForIO</h3><pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderForIO (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Create an xmltextReader for an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlReaderForMemory" id="xmlReaderForMemory"></a>Function: xmlReaderForMemory</h3><pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderForMemory (const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlReaderNewDoc" id="xmlReaderNewDoc"></a>Function: xmlReaderNewDoc</h3><pre class="programlisting">int xmlReaderNewDoc (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to a zero terminated string</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlReaderNewFd" id="xmlReaderNewFd"></a>Function: xmlReaderNewFd</h3><pre class="programlisting">int xmlReaderNewFd (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int fd, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Setup an xmltextReader to parse an XML from a file descriptor. NOTE that the file descriptor will not be closed when the reader is closed or reset. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>an open file descriptor</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlReaderNewFile" id="xmlReaderNewFile"></a>Function: xmlReaderNewFile</h3><pre class="programlisting">int xmlReaderNewFile (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * filename, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file or URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlReaderNewIO" id="xmlReaderNewIO"></a>Function: xmlReaderNewIO</h3><pre class="programlisting">int xmlReaderNewIO (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Setup an xmltextReader to parse an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlReaderNewMemory" id="xmlReaderNewMemory"></a>Function: xmlReaderNewMemory</h3><pre class="programlisting">int xmlReaderNewMemory (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlReaderNewWalker" id="xmlReaderNewWalker"></a>Function: xmlReaderNewWalker</h3><pre class="programlisting">int xmlReaderNewWalker (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Setup an xmltextReader to parse a preparsed XML document. This reuses the existing @reader xmlTextReader.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a preparsed document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlReaderWalker" id="xmlReaderWalker"></a>Function: xmlReaderWalker</h3><pre class="programlisting"><a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> xmlReaderWalker (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Create an xmltextReader for a preparsed document.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a preparsed document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new reader or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderAttributeCount" id="xmlTextReaderAttributeCount"></a>Function: xmlTextReaderAttributeCount</h3><pre class="programlisting">int xmlTextReaderAttributeCount (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Provides the number of attributes of the current node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 i no attributes, -1 in case of error or the <a href="libxml-SAX.html#attribute">attribute</a> count</td></tr></tbody></table></div><h3><a name="xmlTextReaderBaseUri" id="xmlTextReaderBaseUri"></a>Function: xmlTextReaderBaseUri</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderBaseUri (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The base URI of the node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the base URI or NULL if not available, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderByteConsumed" id="xmlTextReaderByteConsumed"></a>Function: xmlTextReaderByteConsumed</h3><pre class="programlisting">long xmlTextReaderByteConsumed (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>This function provides the current index of the parser used by the reader, relative to the start of the current entity. This function actually just wraps a call to xmlBytesConsumed() for the parser context associated with the reader. See xmlBytesConsumed() for more information.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the index in bytes from the beginning of the entity or -1 in case the index could not be computed.</td></tr></tbody></table></div><h3><a name="xmlTextReaderClose" id="xmlTextReaderClose"></a>Function: xmlTextReaderClose</h3><pre class="programlisting">int xmlTextReaderClose (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>This method releases any resources allocated by the current instance changes the state to Closed and close any underlying input.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderConstBaseUri" id="xmlTextReaderConstBaseUri"></a>Function: xmlTextReaderConstBaseUri</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstBaseUri (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The base URI of the node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the base URI or NULL if not available, the string will be deallocated with the reader</td></tr></tbody></table></div><h3><a name="xmlTextReaderConstEncoding" id="xmlTextReaderConstEncoding"></a>Function: xmlTextReaderConstEncoding</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstEncoding (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Determine the encoding of the document being read.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the encoding of the document or NULL in case of error. The string is deallocated with the reader.</td></tr></tbody></table></div><h3><a name="xmlTextReaderConstLocalName" id="xmlTextReaderConstLocalName"></a>Function: xmlTextReaderConstLocalName</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstLocalName (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The local name of the node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local name or NULL if not available, the string will be deallocated with the reader.</td></tr></tbody></table></div><h3><a name="xmlTextReaderConstName" id="xmlTextReaderConstName"></a>Function: xmlTextReaderConstName</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstName (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The qualified name of the node, equal to Prefix :LocalName.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local name or NULL if not available, the string is deallocated with the reader.</td></tr></tbody></table></div><h3><a name="xmlTextReaderConstNamespaceUri" id="xmlTextReaderConstNamespaceUri"></a>Function: xmlTextReaderConstNamespaceUri</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstNamespaceUri (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The URI defining the namespace associated with the node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace URI or NULL if not available, the string will be deallocated with the reader</td></tr></tbody></table></div><h3><a name="xmlTextReaderConstPrefix" id="xmlTextReaderConstPrefix"></a>Function: xmlTextReaderConstPrefix</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstPrefix (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>A shorthand <a href="libxml-SAX.html#reference">reference</a> to the namespace associated with the node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the prefix or NULL if not available, the string is deallocated with the reader.</td></tr></tbody></table></div><h3><a name="xmlTextReaderConstString" id="xmlTextReaderConstString"></a>Function: xmlTextReaderConstString</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstString (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>Get an interned string from the reader, allows for example to speedup string name comparisons</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string to intern.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an interned copy of the string or NULL in case of error. The string will be deallocated with the reader.</td></tr></tbody></table></div><h3><a name="xmlTextReaderConstValue" id="xmlTextReaderConstValue"></a>Function: xmlTextReaderConstValue</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstValue (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Provides the text value of the node if present</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string or NULL if not available. The result will be deallocated on the next Read() operation.</td></tr></tbody></table></div><h3><a name="xmlTextReaderConstXmlLang" id="xmlTextReaderConstXmlLang"></a>Function: xmlTextReaderConstXmlLang</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstXmlLang (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The xml:lang scope within which the node resides.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the xml:lang value or NULL if none exists.</td></tr></tbody></table></div><h3><a name="xmlTextReaderConstXmlVersion" id="xmlTextReaderConstXmlVersion"></a>Function: xmlTextReaderConstXmlVersion</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderConstXmlVersion (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Determine the XML version of the document being read.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the XML version of the document or NULL in case of error. The string is deallocated with the reader.</td></tr></tbody></table></div><h3><a name="xmlTextReaderCurrentDoc" id="xmlTextReaderCurrentDoc"></a>Function: xmlTextReaderCurrentDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlTextReaderCurrentDoc (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Hacking interface allowing to get the <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> corresponding to the current document being accessed by the xmlTextReader. NOTE: as a result of this call, the reader will not destroy the associated XML document and calling xmlFreeDoc() on the result is needed once the reader parsing has finished.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderCurrentNode" id="xmlTextReaderCurrentNode"></a>Function: xmlTextReaderCurrentNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlTextReaderCurrentNode (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Hacking interface allowing to get the <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> corresponding to the current node being accessed by the xmlTextReader. This is dangerous because the underlying node may be destroyed on the next Reads.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderDepth" id="xmlTextReaderDepth"></a>Function: xmlTextReaderDepth</h3><pre class="programlisting">int xmlTextReaderDepth (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The depth of the node in the tree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the depth or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderErrorFunc" id="xmlTextReaderErrorFunc"></a>Function type: xmlTextReaderErrorFunc</h3><pre class="programlisting">Function type: xmlTextReaderErrorFunc
+void xmlTextReaderErrorFunc (void * arg, <br /> const char * msg, <br /> <a href="libxml-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a> severity, <br /> <a href="libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)
+</pre><p>Signature of an error callback from a reader parser</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the user argument</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>severity</tt></i>:</span></td><td>the severity of the error</td></tr><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>a locator indicating where the error occurred</td></tr></tbody></table></div><br />
+<h3><a name="xmlTextReaderExpand" id="xmlTextReaderExpand"></a>Function: xmlTextReaderExpand</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlTextReaderExpand (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Reads the contents of the current node and the full subtree. It then makes the subtree available until the next xmlTextReaderRead() call</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a node pointer valid until the next xmlTextReaderRead() call or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderGetAttribute" id="xmlTextReaderGetAttribute"></a>Function: xmlTextReaderGetAttribute</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderGetAttribute (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Provides the value of the <a href="libxml-SAX.html#attribute">attribute</a> with the specified qualified name.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the qualified name of the attribute.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderGetAttributeNo" id="xmlTextReaderGetAttributeNo"></a>Function: xmlTextReaderGetAttributeNo</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderGetAttributeNo (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int no)<br />
+</pre><p>Provides the value of the <a href="libxml-SAX.html#attribute">attribute</a> with the specified index relative to the containing element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>no</tt></i>:</span></td><td>the zero-based index of the <a href="libxml-SAX.html#attribute">attribute</a> relative to the containing element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderGetAttributeNs" id="xmlTextReaderGetAttributeNs"></a>Function: xmlTextReaderGetAttributeNs</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderGetAttributeNs (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localName, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)<br />
+</pre><p>Provides the value of the specified <a href="libxml-SAX.html#attribute">attribute</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>localName</tt></i>:</span></td><td>the local name of the attribute.</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>the namespace URI of the attribute.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderGetErrorHandler" id="xmlTextReaderGetErrorHandler"></a>Function: xmlTextReaderGetErrorHandler</h3><pre class="programlisting">void xmlTextReaderGetErrorHandler (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> * f, <br /> void ** arg)<br />
+</pre><p>Retrieve the error callback function and user argument.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the callback function or NULL is no callback has been registered</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a user argument</td></tr></tbody></table></div><h3><a name="xmlTextReaderGetParserColumnNumber" id="xmlTextReaderGetParserColumnNumber"></a>Function: xmlTextReaderGetParserColumnNumber</h3><pre class="programlisting">int xmlTextReaderGetParserColumnNumber (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Provide the column number of the current parsing point.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the user data (XML reader context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int or 0 if not available</td></tr></tbody></table></div><h3><a name="xmlTextReaderGetParserLineNumber" id="xmlTextReaderGetParserLineNumber"></a>Function: xmlTextReaderGetParserLineNumber</h3><pre class="programlisting">int xmlTextReaderGetParserLineNumber (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Provide the line number of the current parsing point.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the user data (XML reader context)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int or 0 if not available</td></tr></tbody></table></div><h3><a name="xmlTextReaderGetParserProp" id="xmlTextReaderGetParserProp"></a>Function: xmlTextReaderGetParserProp</h3><pre class="programlisting">int xmlTextReaderGetParserProp (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int prop)<br />
+</pre><p>Read the parser internal property.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>prop</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlParserProperties">xmlParserProperties</a> to get</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value, usually 0 or 1, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderGetRemainder" id="xmlTextReaderGetRemainder"></a>Function: xmlTextReaderGetRemainder</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlTextReaderGetRemainder (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Method to get the remainder of the buffered XML. this method stops the parser, set its state to End Of File and return the input stream with what is left that the parser did not use. The implementation is not good, the parser certainly progressed past what's left in reader-&gt;input, and there is an allocation problem. Best would be to rewrite it differently.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> attached to the XML or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderHasAttributes" id="xmlTextReaderHasAttributes"></a>Function: xmlTextReaderHasAttributes</h3><pre class="programlisting">int xmlTextReaderHasAttributes (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Whether the node has attributes.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false, and -1 in case or error</td></tr></tbody></table></div><h3><a name="xmlTextReaderHasValue" id="xmlTextReaderHasValue"></a>Function: xmlTextReaderHasValue</h3><pre class="programlisting">int xmlTextReaderHasValue (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Whether the node can have a text value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false, and -1 in case or error</td></tr></tbody></table></div><h3><a name="xmlTextReaderIsDefault" id="xmlTextReaderIsDefault"></a>Function: xmlTextReaderIsDefault</h3><pre class="programlisting">int xmlTextReaderIsDefault (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Whether an Attribute node was generated from the default value defined in the DTD or schema.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if not defaulted, 1 if defaulted, and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderIsEmptyElement" id="xmlTextReaderIsEmptyElement"></a>Function: xmlTextReaderIsEmptyElement</h3><pre class="programlisting">int xmlTextReaderIsEmptyElement (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Check if the current node is empty</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if empty, 0 if not and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderIsNamespaceDecl" id="xmlTextReaderIsNamespaceDecl"></a>Function: xmlTextReaderIsNamespaceDecl</h3><pre class="programlisting">int xmlTextReaderIsNamespaceDecl (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Determine whether the current node is a namespace declaration rather than a regular attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the current node is a namespace declaration, 0 if it is a regular <a href="libxml-SAX.html#attribute">attribute</a> or other type of node, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderIsValid" id="xmlTextReaderIsValid"></a>Function: xmlTextReaderIsValid</h3><pre class="programlisting">int xmlTextReaderIsValid (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Retrieve the validity status from the parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the flag value 1 if valid, 0 if no, and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderLocalName" id="xmlTextReaderLocalName"></a>Function: xmlTextReaderLocalName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderLocalName (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The local name of the node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local name or NULL if not available, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderLocatorBaseURI" id="xmlTextReaderLocatorBaseURI"></a>Function: xmlTextReaderLocatorBaseURI</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderLocatorBaseURI (<a href="libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)<br />
+</pre><p>Obtain the base URI for the given locator.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the base URI or NULL in case of error, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderLocatorLineNumber" id="xmlTextReaderLocatorLineNumber"></a>Function: xmlTextReaderLocatorLineNumber</h3><pre class="programlisting">int xmlTextReaderLocatorLineNumber (<a href="libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)<br />
+</pre><p>Obtain the line number for the given locator.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the line number or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderLookupNamespace" id="xmlTextReaderLookupNamespace"></a>Function: xmlTextReaderLookupNamespace</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderLookupNamespace (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br />
+</pre><p>Resolves a namespace prefix in the scope of the current element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix whose namespace URI is to be resolved. To return the default namespace, specify NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the namespace URI to which the prefix maps or NULL in case of error. The string must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderMoveToAttribute" id="xmlTextReaderMoveToAttribute"></a>Function: xmlTextReaderMoveToAttribute</h3><pre class="programlisting">int xmlTextReaderMoveToAttribute (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Moves the position of the current instance to the <a href="libxml-SAX.html#attribute">attribute</a> with the specified qualified name.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the qualified name of the attribute.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not found</td></tr></tbody></table></div><h3><a name="xmlTextReaderMoveToAttributeNo" id="xmlTextReaderMoveToAttributeNo"></a>Function: xmlTextReaderMoveToAttributeNo</h3><pre class="programlisting">int xmlTextReaderMoveToAttributeNo (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int no)<br />
+</pre><p>Moves the position of the current instance to the <a href="libxml-SAX.html#attribute">attribute</a> with the specified index relative to the containing element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>no</tt></i>:</span></td><td>the zero-based index of the <a href="libxml-SAX.html#attribute">attribute</a> relative to the containing element.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not found</td></tr></tbody></table></div><h3><a name="xmlTextReaderMoveToAttributeNs" id="xmlTextReaderMoveToAttributeNs"></a>Function: xmlTextReaderMoveToAttributeNs</h3><pre class="programlisting">int xmlTextReaderMoveToAttributeNs (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localName, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)<br />
+</pre><p>Moves the position of the current instance to the <a href="libxml-SAX.html#attribute">attribute</a> with the specified local name and namespace URI.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>localName</tt></i>:</span></td><td>the local name of the attribute.</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>the namespace URI of the attribute.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not found</td></tr></tbody></table></div><h3><a name="xmlTextReaderMoveToElement" id="xmlTextReaderMoveToElement"></a>Function: xmlTextReaderMoveToElement</h3><pre class="programlisting">int xmlTextReaderMoveToElement (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Moves the position of the current instance to the node that contains the current Attribute node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not moved</td></tr></tbody></table></div><h3><a name="xmlTextReaderMoveToFirstAttribute" id="xmlTextReaderMoveToFirstAttribute"></a>Function: xmlTextReaderMoveToFirstAttribute</h3><pre class="programlisting">int xmlTextReaderMoveToFirstAttribute (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Moves the position of the current instance to the first <a href="libxml-SAX.html#attribute">attribute</a> associated with the current node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not found</td></tr></tbody></table></div><h3><a name="xmlTextReaderMoveToNextAttribute" id="xmlTextReaderMoveToNextAttribute"></a>Function: xmlTextReaderMoveToNextAttribute</h3><pre class="programlisting">int xmlTextReaderMoveToNextAttribute (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Moves the position of the current instance to the next <a href="libxml-SAX.html#attribute">attribute</a> associated with the current node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, -1 in case of error, 0 if not found</td></tr></tbody></table></div><h3><a name="xmlTextReaderName" id="xmlTextReaderName"></a>Function: xmlTextReaderName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderName (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The qualified name of the node, equal to Prefix :LocalName.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the local name or NULL if not available, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderNamespaceUri" id="xmlTextReaderNamespaceUri"></a>Function: xmlTextReaderNamespaceUri</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderNamespaceUri (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The URI defining the namespace associated with the node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace URI or NULL if not available, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderNext" id="xmlTextReaderNext"></a>Function: xmlTextReaderNext</h3><pre class="programlisting">int xmlTextReaderNext (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Skip to the node following the current one in document order while avoiding the subtree if any.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderNextSibling" id="xmlTextReaderNextSibling"></a>Function: xmlTextReaderNextSibling</h3><pre class="programlisting">int xmlTextReaderNextSibling (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Skip to the node following the current one in document order while avoiding the subtree if any. Currently implemented only for Readers built on a document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderNodeType" id="xmlTextReaderNodeType"></a>Function: xmlTextReaderNodeType</h3><pre class="programlisting">int xmlTextReaderNodeType (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Get the node type of the current node Reference: http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/XmlNodeType.html</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlReaderTypes">xmlReaderTypes</a> of the current node or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderNormalization" id="xmlTextReaderNormalization"></a>Function: xmlTextReaderNormalization</h3><pre class="programlisting">int xmlTextReaderNormalization (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The value indicating whether to normalize white space and <a href="libxml-SAX.html#attribute">attribute</a> values. Since <a href="libxml-SAX.html#attribute">attribute</a> value and end of line normalizations are a MUST in the XML specification only the value true is accepted. The broken bahaviour of accepting out of range character entities like &amp;#0; is of course not supported either.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderPrefix" id="xmlTextReaderPrefix"></a>Function: xmlTextReaderPrefix</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderPrefix (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>A shorthand <a href="libxml-SAX.html#reference">reference</a> to the namespace associated with the node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the prefix or NULL if not available, if non NULL it need to be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderPreserve" id="xmlTextReaderPreserve"></a>Function: xmlTextReaderPreserve</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlTextReaderPreserve (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>This tells the XML Reader to preserve the current node. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderPreservePattern" id="xmlTextReaderPreservePattern"></a>Function: xmlTextReaderPreservePattern</h3><pre class="programlisting">int xmlTextReaderPreservePattern (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)<br />
+</pre><p>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XPath subset pattern</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a non-negative number in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderQuoteChar" id="xmlTextReaderQuoteChar"></a>Function: xmlTextReaderQuoteChar</h3><pre class="programlisting">int xmlTextReaderQuoteChar (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The quotation mark character used to enclose the value of an attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>" or ' and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderRead" id="xmlTextReaderRead"></a>Function: xmlTextReaderRead</h3><pre class="programlisting">int xmlTextReaderRead (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Moves the position of the current instance to the next node in the stream, exposing its properties.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderReadAttributeValue" id="xmlTextReaderReadAttributeValue"></a>Function: xmlTextReaderReadAttributeValue</h3><pre class="programlisting">int xmlTextReaderReadAttributeValue (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Parses an <a href="libxml-SAX.html#attribute">attribute</a> value into one or more Text and EntityReference nodes.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 in case of success, 0 if the reader was not positioned on an <a href="libxml-SAX.html#attribute">attribute</a> node or all the <a href="libxml-SAX.html#attribute">attribute</a> values have been read, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderReadInnerXml" id="xmlTextReaderReadInnerXml"></a>Function: xmlTextReaderReadInnerXml</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderReadInnerXml (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Reads the contents of the current node, including child nodes and markup.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the XML content, or NULL if the current node is neither an element nor attribute, or has no child nodes. The string must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderReadOuterXml" id="xmlTextReaderReadOuterXml"></a>Function: xmlTextReaderReadOuterXml</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderReadOuterXml (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Reads the contents of the current node, including child nodes and markup.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the node and any XML content, or NULL if the current node cannot be serialized. The string must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderReadState" id="xmlTextReaderReadState"></a>Function: xmlTextReaderReadState</h3><pre class="programlisting">int xmlTextReaderReadState (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Gets the read state of the reader.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the state value, or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderReadString" id="xmlTextReaderReadString"></a>Function: xmlTextReaderReadString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderReadString (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Reads the contents of an element or a text node as a string.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the contents of the Element or Text node, or NULL if the reader is positioned on any other type of node. The string must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderRelaxNGSetSchema" id="xmlTextReaderRelaxNGSetSchema"></a>Function: xmlTextReaderRelaxNGSetSchema</h3><pre class="programlisting">int xmlTextReaderRelaxNGSetSchema (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br />
+</pre><p>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then RelaxNG validation is deactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled RelaxNG schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the RelaxNG validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderRelaxNGValidate" id="xmlTextReaderRelaxNGValidate"></a>Function: xmlTextReaderRelaxNGValidate</h3><pre class="programlisting">int xmlTextReaderRelaxNGValidate (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * rng)<br />
+</pre><p>Use RelaxNG schema to validate the document as it is processed. Activation is only possible before the first Read(). If @rng is NULL, then RelaxNG schema validation is deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>rng</tt></i>:</span></td><td>the path to a RelaxNG schema or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the schemas validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderRelaxNGValidateCtxt" id="xmlTextReaderRelaxNGValidateCtxt"></a>Function: xmlTextReaderRelaxNGValidateCtxt</h3><pre class="programlisting">int xmlTextReaderRelaxNGValidateCtxt (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br /> int options)<br />
+</pre><p>Use RelaxNG schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then RelaxNG schema validation is deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the RelaxNG schema validation context or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>options (not used yet)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the schemas validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderSchemaValidate" id="xmlTextReaderSchemaValidate"></a>Function: xmlTextReaderSchemaValidate</h3><pre class="programlisting">int xmlTextReaderSchemaValidate (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * xsd)<br />
+</pre><p>Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). If @xsd is NULL, then XML Schema validation is deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>xsd</tt></i>:</span></td><td>the path to a W3C XSD schema or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the schemas validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderSchemaValidateCtxt" id="xmlTextReaderSchemaValidateCtxt"></a>Function: xmlTextReaderSchemaValidateCtxt</h3><pre class="programlisting">int xmlTextReaderSchemaValidateCtxt (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> int options)<br />
+</pre><p>Use W3C XSD schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then XML Schema validation is deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XML Schema validation context or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>options (not used yet)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the schemas validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderSetErrorHandler" id="xmlTextReaderSetErrorHandler"></a>Function: xmlTextReaderSetErrorHandler</h3><pre class="programlisting">void xmlTextReaderSetErrorHandler (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> f, <br /> void * arg)<br />
+</pre><p>Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the callback function to call on error and warnings</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a user argument to pass to the callback function</td></tr></tbody></table></div><h3><a name="xmlTextReaderSetParserProp" id="xmlTextReaderSetParserProp"></a>Function: xmlTextReaderSetParserProp</h3><pre class="programlisting">int xmlTextReaderSetParserProp (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int prop, <br /> int value)<br />
+</pre><p>Change the parser processing behaviour by changing some of its internal properties. Note that some properties can only be changed before any read has been done.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>prop</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlParserProperties">xmlParserProperties</a> to set</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>usually 0 or 1 to (de)activate it</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the call was successful, or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderSetSchema" id="xmlTextReaderSetSchema"></a>Function: xmlTextReaderSetSchema</h3><pre class="programlisting">int xmlTextReaderSetSchema (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)<br />
+</pre><p>Use XSD Schema to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then Schema validation is deactivated. The @schema should not be freed until the reader is deallocated or its use has been deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled Schema schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the Schema validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderSetStructuredErrorHandler" id="xmlTextReaderSetStructuredErrorHandler"></a>Function: xmlTextReaderSetStructuredErrorHandler</h3><pre class="programlisting">void xmlTextReaderSetStructuredErrorHandler (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> f, <br /> void * arg)<br />
+</pre><p>Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the callback function to call on error and warnings</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a user argument to pass to the callback function</td></tr></tbody></table></div><h3><a name="xmlTextReaderSetup" id="xmlTextReaderSetup"></a>Function: xmlTextReaderSetup</h3><pre class="programlisting">int xmlTextReaderSetup (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Setup an XML reader with new options</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> used to feed the reader, will be destroyed with it.</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderStandalone" id="xmlTextReaderStandalone"></a>Function: xmlTextReaderStandalone</h3><pre class="programlisting">int xmlTextReaderStandalone (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Determine the standalone status of the document being read.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the document was declared to be standalone, 0 if it was declared to be not standalone, or -1 if the document did not specify its standalone status or in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderValue" id="xmlTextReaderValue"></a>Function: xmlTextReaderValue</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderValue (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>Provides the text value of the node if present</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string or NULL if not available. The result must be deallocated with xmlFree()</td></tr></tbody></table></div><h3><a name="xmlTextReaderXmlLang" id="xmlTextReaderXmlLang"></a>Function: xmlTextReaderXmlLang</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderXmlLang (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+</pre><p>The xml:lang scope within which the node resides.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the xml:lang value or NULL if none exists., if non NULL it need to be freed by the caller.</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlregexp.html b/libxml2-2.9.10/doc/html/libxml-xmlregexp.html
new file mode 100644
index 0000000..99b7636
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlregexp.html
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlregexp from libxml2</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></h1><h2>Module xmlregexp from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlreader.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlreader.html">xmlreader</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlsave.html">xmlsave</a></th><td><a accesskey="n" href="libxml-xmlsave.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>basic API for libxml regular expressions handling used for XML Schemas and validation. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlExpCtxt">xmlExpCtxt</a><br />struct _xmlExpCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlregexp.html#xmlExpCtxt">xmlExpCtxt</a> * <a name="xmlExpCtxtPtr" id="xmlExpCtxtPtr">xmlExpCtxtPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlExpNode">xmlExpNode</a><br />struct _xmlExpNode
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlregexp.html#xmlExpNode">xmlExpNode</a> * <a name="xmlExpNodePtr" id="xmlExpNodePtr">xmlExpNodePtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlExpNodeType">xmlExpNodeType</a>
+</pre><pre class="programlisting">Structure <a href="#xmlRegExecCtxt">xmlRegExecCtxt</a><br />struct _xmlRegExecCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlregexp.html#xmlRegExecCtxt">xmlRegExecCtxt</a> * <a name="xmlRegExecCtxtPtr" id="xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlRegexp">xmlRegexp</a><br />struct _xmlRegexp
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlregexp.html#xmlRegexp">xmlRegexp</a> * <a name="xmlRegexpPtr" id="xmlRegexpPtr">xmlRegexpPtr</a>
+</pre><pre class="programlisting">int <a href="#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlExpDump">xmlExpDump</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpExpDerive">xmlExpExpDerive</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub)</pre>
+<pre class="programlisting">void <a href="#xmlExpFree">xmlExpFree</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)</pre>
+<pre class="programlisting">void <a href="#xmlExpFreeCtxt">xmlExpFreeCtxt</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlExpGetLanguage">xmlExpGetLanguage</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** langList, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlExpGetStart">xmlExpGetStart</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** tokList, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlExpIsNillable">xmlExpIsNillable</a> (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)</pre>
+<pre class="programlisting">int <a href="#xmlExpMaxToken">xmlExpMaxToken</a> (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewAtom">xmlExpNewAtom</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> <a href="#xmlExpNewCtxt">xmlExpNewCtxt</a> (int maxNodes, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewOr">xmlExpNewOr</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewRange">xmlExpNewRange</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br /> int min, <br /> int max)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewSeq">xmlExpNewSeq</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpParse">xmlExpParse</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> const char * expr)</pre>
+<pre class="programlisting">void <a href="#xmlExpRef">xmlExpRef</a> (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpStringDerive">xmlExpStringDerive</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlExpSubsume">xmlExpSubsume</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub)</pre>
+<pre class="programlisting">Function type: <a href="#xmlRegExecCallbacks">xmlRegExecCallbacks</a>
+void <a href="#xmlRegExecCallbacks">xmlRegExecCallbacks</a> (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> void * transdata, <br /> void * inputdata)
+</pre>
+<pre class="programlisting">int <a href="#xmlRegExecErrInfo">xmlRegExecErrInfo</a> (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** string, <br /> int * nbval, <br /> int * nbneg, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** values, <br /> int * terminal)</pre>
+<pre class="programlisting">int <a href="#xmlRegExecNextValues">xmlRegExecNextValues</a> (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br /> int * nbval, <br /> int * nbneg, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** values, <br /> int * terminal)</pre>
+<pre class="programlisting">int <a href="#xmlRegExecPushString">xmlRegExecPushString</a> (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlRegExecPushString2">xmlRegExecPushString2</a> (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value2, <br /> void * data)</pre>
+<pre class="programlisting">void <a href="#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a> (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec)</pre>
+<pre class="programlisting">void <a href="#xmlRegFreeRegexp">xmlRegFreeRegexp</a> (<a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> <a href="#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a> (<a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp, <br /> <a href="libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a> callback, <br /> void * data)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> <a href="#xmlRegexpCompile">xmlRegexpCompile</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * regexp)</pre>
+<pre class="programlisting">int <a href="#xmlRegexpExec">xmlRegexpExec</a> (<a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a> (<a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp)</pre>
+<pre class="programlisting">void <a href="#xmlRegexpPrint">xmlRegexpPrint</a> (FILE * output, <br /> <a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp)</pre>
+<h2>Description</h2>
+<h3><a name="xmlExpCtxt" id="xmlExpCtxt">Structure xmlExpCtxt</a></h3><pre class="programlisting">Structure xmlExpCtxt<br />struct _xmlExpCtxt {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlExpNode" id="xmlExpNode">Structure xmlExpNode</a></h3><pre class="programlisting">Structure xmlExpNode<br />struct _xmlExpNode {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlExpNodeType" id="xmlExpNodeType">xmlExpNodeType</a></h3><pre class="programlisting">Enum xmlExpNodeType {
+ <a name="XML_EXP_EMPTY" id="XML_EXP_EMPTY">XML_EXP_EMPTY</a> = 0
+ <a name="XML_EXP_FORBID" id="XML_EXP_FORBID">XML_EXP_FORBID</a> = 1
+ <a name="XML_EXP_ATOM" id="XML_EXP_ATOM">XML_EXP_ATOM</a> = 2
+ <a name="XML_EXP_SEQ" id="XML_EXP_SEQ">XML_EXP_SEQ</a> = 3
+ <a name="XML_EXP_OR" id="XML_EXP_OR">XML_EXP_OR</a> = 4
+ <a name="XML_EXP_COUNT" id="XML_EXP_COUNT">XML_EXP_COUNT</a> = 5
+}
+</pre><h3><a name="xmlRegExecCtxt" id="xmlRegExecCtxt">Structure xmlRegExecCtxt</a></h3><pre class="programlisting">Structure xmlRegExecCtxt<br />struct _xmlRegExecCtxt {
+The content of this structure is not made public by the API.
+}</pre>
+ A libxml progressive regular expression evaluation context
+ <h3><a name="xmlRegexp" id="xmlRegexp">Structure xmlRegexp</a></h3><pre class="programlisting">Structure xmlRegexp<br />struct _xmlRegexp {
+The content of this structure is not made public by the API.
+}</pre>
+ A libxml regular expression, they can actually be far more complex thank the POSIX regex expressions.
+ <h3><a name="xmlExpCtxtNbCons" id="xmlExpCtxtNbCons"></a>Function: xmlExpCtxtNbCons</h3><pre class="programlisting">int xmlExpCtxtNbCons (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)<br />
+</pre><p>Debugging facility provides the number of allocated nodes over lifetime</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an expression context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of nodes ever allocated or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpCtxtNbNodes" id="xmlExpCtxtNbNodes"></a>Function: xmlExpCtxtNbNodes</h3><pre class="programlisting">int xmlExpCtxtNbNodes (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)<br />
+</pre><p>Debugging facility provides the number of allocated nodes at a that point</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an expression context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of nodes in use or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpDump" id="xmlExpDump"></a>Function: xmlExpDump</h3><pre class="programlisting">void xmlExpDump (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)<br />
+</pre><p>Serialize the expression as compiled to the buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>a buffer to receive the output</td></tr><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>the compiled expression</td></tr></tbody></table></div><h3><a name="xmlExpExpDerive" id="xmlExpExpDerive"></a>Function: xmlExpExpDerive</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpExpDerive (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub)<br />
+</pre><p>Evaluates the expression resulting from @exp consuming a sub expression @sub Based on algebraic derivation and sometimes direct Brzozowski derivation it usually takes less than linear time and can handle expressions generating infinite languages.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expressions context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the englobing expression</td></tr><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>the subexpression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting expression or NULL in case of internal error, the result must be freed</td></tr></tbody></table></div><h3><a name="xmlExpFree" id="xmlExpFree"></a>Function: xmlExpFree</h3><pre class="programlisting">void xmlExpFree (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)<br />
+</pre><p>Dereference the expression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr></tbody></table></div><h3><a name="xmlExpFreeCtxt" id="xmlExpFreeCtxt"></a>Function: xmlExpFreeCtxt</h3><pre class="programlisting">void xmlExpFreeCtxt (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)<br />
+</pre><p>Free an expression context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an expression context</td></tr></tbody></table></div><h3><a name="xmlExpGetLanguage" id="xmlExpGetLanguage"></a>Function: xmlExpGetLanguage</h3><pre class="programlisting">int xmlExpGetLanguage (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** langList, <br /> int len)<br />
+</pre><p>Find all the strings used in @exp and store them in @list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>langList</tt></i>:</span></td><td>where to store the tokens</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the allocated length of @list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings</td></tr></tbody></table></div><h3><a name="xmlExpGetStart" id="xmlExpGetStart"></a>Function: xmlExpGetStart</h3><pre class="programlisting">int xmlExpGetStart (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** tokList, <br /> int len)<br />
+</pre><p>Find all the strings that appears at the start of the languages accepted by @exp and store them in @list. E.g. for (a, b) | c it will return the list [a, c]</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>tokList</tt></i>:</span></td><td>where to store the tokens</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the allocated length of @list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings</td></tr></tbody></table></div><h3><a name="xmlExpIsNillable" id="xmlExpIsNillable"></a>Function: xmlExpIsNillable</h3><pre class="programlisting">int xmlExpIsNillable (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)<br />
+</pre><p>Finds if the expression is nillable, i.e. if it accepts the empty sequence</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if nillable, 0 if not and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpMaxToken" id="xmlExpMaxToken"></a>Function: xmlExpMaxToken</h3><pre class="programlisting">int xmlExpMaxToken (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)<br />
+</pre><p>Indicate the maximum number of input a expression can accept</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>a compiled expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the maximum length or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewAtom" id="xmlExpNewAtom"></a>Function: xmlExpNewAtom</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewAtom (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
+</pre><p>Get the atom associated to this name from that context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the atom name</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the atom name length in byte (or -1);</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewCtxt" id="xmlExpNewCtxt"></a>Function: xmlExpNewCtxt</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> xmlExpNewCtxt (int maxNodes, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+</pre><p>Creates a new context for manipulating expressions</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewOr" id="xmlExpNewOr"></a>Function: xmlExpNewOr</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewOr (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
+</pre><p>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewRange" id="xmlExpNewRange"></a>Function: xmlExpNewRange</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewRange (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br /> int min, <br /> int max)<br />
+</pre><p>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>subset</tt></i>:</span></td><td>the expression to be repeated</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the lower bound for the repetition</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the upper bound for the repetition, -1 means infinite</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewSeq" id="xmlExpNewSeq"></a>Function: xmlExpNewSeq</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewSeq (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
+</pre><p>Get the atom associated to the sequence @left , @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpParse" id="xmlExpParse"></a>Function: xmlExpParse</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpParse (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> const char * expr)<br />
+</pre><p>Minimal parser for regexps, it understand the following constructs - string terminals - choice operator | - sequence operator , - subexpressions (...) - usual cardinality operators + * and ? - finite sequences { min, max } - infinite sequences { min, * } There is minimal checkings made especially no checking on strings values</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expressions context</td></tr><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>the 0 terminated string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new expression or NULL in case of failure</td></tr></tbody></table></div><h3><a name="xmlExpRef" id="xmlExpRef"></a>Function: xmlExpRef</h3><pre class="programlisting">void xmlExpRef (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)<br />
+</pre><p>Increase the <a href="libxml-SAX.html#reference">reference</a> count of the expression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr></tbody></table></div><h3><a name="xmlExpStringDerive" id="xmlExpStringDerive"></a>Function: xmlExpStringDerive</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpStringDerive (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int len)<br />
+</pre><p>Do one step of Brzozowski derivation of the expression @exp with respect to the input string</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the string len in bytes if available</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting expression or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlExpSubsume" id="xmlExpSubsume"></a>Function: xmlExpSubsume</h3><pre class="programlisting">int xmlExpSubsume (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub)<br />
+</pre><p>Check whether @exp accepts all the languages accepted by @sub the input being a subexpression.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expressions context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the englobing expression</td></tr><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>the subexpression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 if false and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlRegExecCallbacks" id="xmlRegExecCallbacks"></a>Function type: xmlRegExecCallbacks</h3><pre class="programlisting">Function type: xmlRegExecCallbacks
+void xmlRegExecCallbacks (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br /> void * transdata, <br /> void * inputdata)
+</pre><p>Callback function when doing a transition in the automata</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>the regular expression context</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the current token string</td></tr><tr><td><span class="term"><i><tt>transdata</tt></i>:</span></td><td>transition data</td></tr><tr><td><span class="term"><i><tt>inputdata</tt></i>:</span></td><td>input data</td></tr></tbody></table></div><br />
+<h3><a name="xmlRegExecErrInfo" id="xmlRegExecErrInfo"></a>Function: xmlRegExecErrInfo</h3><pre class="programlisting">int xmlRegExecErrInfo (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** string, <br /> int * nbval, <br /> int * nbneg, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** values, <br /> int * terminal)<br />
+</pre><p>Extract error informations from the regexp execution, the parameter @string will be updated with the value pushed and not accepted, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>a regexp execution context generating an error</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>return value for the error string</td></tr><tr><td><span class="term"><i><tt>nbval</tt></i>:</span></td><td>pointer to the number of accepted values IN/OUT</td></tr><tr><td><span class="term"><i><tt>nbneg</tt></i>:</span></td><td>return number of negative transitions</td></tr><tr><td><span class="term"><i><tt>values</tt></i>:</span></td><td>pointer to the array of acceptable values</td></tr><tr><td><span class="term"><i><tt>terminal</tt></i>:</span></td><td>return value if this was a terminal state</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>will be freed with the @exec context and don't need to be deallocated. Returns: 0 in case of success or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlRegExecNextValues" id="xmlRegExecNextValues"></a>Function: xmlRegExecNextValues</h3><pre class="programlisting">int xmlRegExecNextValues (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br /> int * nbval, <br /> int * nbneg, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** values, <br /> int * terminal)<br />
+</pre><p>Extract informations from the regexp execution, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>a regexp execution context</td></tr><tr><td><span class="term"><i><tt>nbval</tt></i>:</span></td><td>pointer to the number of accepted values IN/OUT</td></tr><tr><td><span class="term"><i><tt>nbneg</tt></i>:</span></td><td>return number of negative transitions</td></tr><tr><td><span class="term"><i><tt>values</tt></i>:</span></td><td>pointer to the array of acceptable values</td></tr><tr><td><span class="term"><i><tt>terminal</tt></i>:</span></td><td>return value if this was a terminal state</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>will be freed with the @exec context and don't need to be deallocated. Returns: 0 in case of success or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlRegExecPushString" id="xmlRegExecPushString"></a>Function: xmlRegExecPushString</h3><pre class="programlisting">int xmlRegExecPushString (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> void * data)<br />
+</pre><p>Push one input token in the execution context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>a regexp execution context or NULL to indicate the end</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a string token input</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the token to reuse in callbacks</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.</td></tr></tbody></table></div><h3><a name="xmlRegExecPushString2" id="xmlRegExecPushString2"></a>Function: xmlRegExecPushString2</h3><pre class="programlisting">int xmlRegExecPushString2 (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value2, <br /> void * data)<br />
+</pre><p>Push one input token in the execution context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>a regexp execution context or NULL to indicate the end</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the first string token input</td></tr><tr><td><span class="term"><i><tt>value2</tt></i>:</span></td><td>the second string token input</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the token to reuse in callbacks</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.</td></tr></tbody></table></div><h3><a name="xmlRegFreeExecCtxt" id="xmlRegFreeExecCtxt"></a>Function: xmlRegFreeExecCtxt</h3><pre class="programlisting">void xmlRegFreeExecCtxt (<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec)<br />
+</pre><p>Free the structures associated to a regular expression evaluation context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td>a regular expression evaluation context</td></tr></tbody></table></div><h3><a name="xmlRegFreeRegexp" id="xmlRegFreeRegexp"></a>Function: xmlRegFreeRegexp</h3><pre class="programlisting">void xmlRegFreeRegexp (<a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp)<br />
+</pre><p>Free a regexp</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>regexp</tt></i>:</span></td><td>the regexp</td></tr></tbody></table></div><h3><a name="xmlRegNewExecCtxt" id="xmlRegNewExecCtxt"></a>Function: xmlRegNewExecCtxt</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> xmlRegNewExecCtxt (<a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp, <br /> <a href="libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a> callback, <br /> void * data)<br />
+</pre><p>Build a context used for progressive evaluation of a regexp.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>a precompiled regular expression</td></tr><tr><td><span class="term"><i><tt>callback</tt></i>:</span></td><td>a callback function used for handling progresses in the automata matching phase</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the context data associated to the callback in this context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new context</td></tr></tbody></table></div><h3><a name="xmlRegexpCompile" id="xmlRegexpCompile"></a>Function: xmlRegexpCompile</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> xmlRegexpCompile (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * regexp)<br />
+</pre><p>Parses a regular expression conforming to XML Schemas Part 2 Datatype Appendix F and builds an automata suitable for testing strings against that regular expression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>regexp</tt></i>:</span></td><td>a regular expression string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the compiled expression or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlRegexpExec" id="xmlRegexpExec"></a>Function: xmlRegexpExec</h3><pre class="programlisting">int xmlRegexpExec (<a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Check if the regular expression generates the value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled regular expression</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the value to check against the regular expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if it matches, 0 if not and a negative value in case of error</td></tr></tbody></table></div><h3><a name="xmlRegexpIsDeterminist" id="xmlRegexpIsDeterminist"></a>Function: xmlRegexpIsDeterminist</h3><pre class="programlisting">int xmlRegexpIsDeterminist (<a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp)<br />
+</pre><p>Check if the regular expression is determinist</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled regular expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if it yes, 0 if not and a negative value in case of error</td></tr></tbody></table></div><h3><a name="xmlRegexpPrint" id="xmlRegexpPrint"></a>Function: xmlRegexpPrint</h3><pre class="programlisting">void xmlRegexpPrint (FILE * output, <br /> <a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp)<br />
+</pre><p>Print the content of the compiled regular expression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the file for the output debug</td></tr><tr><td><span class="term"><i><tt>regexp</tt></i>:</span></td><td>the compiled regexp</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlsave.html b/libxml2-2.9.10/doc/html/libxml-xmlsave.html
new file mode 100644
index 0000000..c3bea9f
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlsave.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlsave from libxml2</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></h1><h2>Module xmlsave from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlregexp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlregexp.html">xmlregexp</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlschemas.html">xmlschemas</a></th><td><a accesskey="n" href="libxml-xmlschemas.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>API to save document or subtree of document </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlSaveCtxt">xmlSaveCtxt</a><br />struct _xmlSaveCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlsave.html#xmlSaveCtxt">xmlSaveCtxt</a> * <a name="xmlSaveCtxtPtr" id="xmlSaveCtxtPtr">xmlSaveCtxtPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlSaveOption">xmlSaveOption</a>
+</pre><pre class="programlisting">int <a href="#xmlSaveClose">xmlSaveClose</a> (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">long <a href="#xmlSaveDoc">xmlSaveDoc</a> (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#xmlSaveFlush">xmlSaveFlush</a> (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a> (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br /> <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escape)</pre>
+<pre class="programlisting">int <a href="#xmlSaveSetEscape">xmlSaveSetEscape</a> (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br /> <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escape)</pre>
+<pre class="programlisting"><a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> <a href="#xmlSaveToBuffer">xmlSaveToBuffer</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> <a href="#xmlSaveToFd">xmlSaveToFd</a> (int fd, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> <a href="#xmlSaveToFilename">xmlSaveToFilename</a> (const char * filename, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> <a href="#xmlSaveToIO">xmlSaveToIO</a> (<a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite, <br /> <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * encoding, <br /> int options)</pre>
+<pre class="programlisting">long <a href="#xmlSaveTree">xmlSaveTree</a> (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<h2>Description</h2>
+<h3><a name="xmlSaveCtxt" id="xmlSaveCtxt">Structure xmlSaveCtxt</a></h3><pre class="programlisting">Structure xmlSaveCtxt<br />struct _xmlSaveCtxt {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlSaveOption" id="xmlSaveOption">xmlSaveOption</a></h3><pre class="programlisting">Enum xmlSaveOption {
+ <a name="XML_SAVE_FORMAT" id="XML_SAVE_FORMAT">XML_SAVE_FORMAT</a> = 1 : format save output
+ <a name="XML_SAVE_NO_DECL" id="XML_SAVE_NO_DECL">XML_SAVE_NO_DECL</a> = 2 : drop the xml declaration
+ <a name="XML_SAVE_NO_EMPTY" id="XML_SAVE_NO_EMPTY">XML_SAVE_NO_EMPTY</a> = 4 : no empty tags
+ <a name="XML_SAVE_NO_XHTML" id="XML_SAVE_NO_XHTML">XML_SAVE_NO_XHTML</a> = 8 : disable XHTML1 specific rules
+ <a name="XML_SAVE_XHTML" id="XML_SAVE_XHTML">XML_SAVE_XHTML</a> = 16 : force XHTML1 specific rules
+ <a name="XML_SAVE_AS_XML" id="XML_SAVE_AS_XML">XML_SAVE_AS_XML</a> = 32 : force XML serialization on HTML doc
+ <a name="XML_SAVE_AS_HTML" id="XML_SAVE_AS_HTML">XML_SAVE_AS_HTML</a> = 64 : force HTML serialization on XML doc
+ <a name="XML_SAVE_WSNONSIG" id="XML_SAVE_WSNONSIG">XML_SAVE_WSNONSIG</a> = 128 : format with non-significant whitespace
+}
+</pre><h3><a name="xmlSaveClose" id="xmlSaveClose"></a>Function: xmlSaveClose</h3><pre class="programlisting">int xmlSaveClose (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt)<br />
+</pre><p>Close a document saving context, i.e. make sure that all bytes have been output and free the associated data.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlSaveDoc" id="xmlSaveDoc"></a>Function: xmlSaveDoc</h3><pre class="programlisting">long xmlSaveDoc (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Save a full document to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlSaveFlush" id="xmlSaveFlush"></a>Function: xmlSaveFlush</h3><pre class="programlisting">int xmlSaveFlush (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt)<br />
+</pre><p>Flush a document saving context, i.e. make sure that all bytes have been output.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlSaveSetAttrEscape" id="xmlSaveSetAttrEscape"></a>Function: xmlSaveSetAttrEscape</h3><pre class="programlisting">int xmlSaveSetAttrEscape (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br /> <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escape)<br />
+</pre><p>Set a custom escaping function to be used for text in <a href="libxml-SAX.html#attribute">attribute</a> content</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>escape</tt></i>:</span></td><td>the escaping function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlSaveSetEscape" id="xmlSaveSetEscape"></a>Function: xmlSaveSetEscape</h3><pre class="programlisting">int xmlSaveSetEscape (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br /> <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escape)<br />
+</pre><p>Set a custom escaping function to be used for text in element content</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>escape</tt></i>:</span></td><td>the escaping function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlSaveToBuffer" id="xmlSaveToBuffer"></a>Function: xmlSaveToBuffer</h3><pre class="programlisting"><a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> xmlSaveToBuffer (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Create a document saving context serializing to a buffer with the encoding and the options given</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a buffer</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding name to use or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of xmlSaveOptions</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new serialization context or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlSaveToFd" id="xmlSaveToFd"></a>Function: xmlSaveToFd</h3><pre class="programlisting"><a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> xmlSaveToFd (int fd, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Create a document saving context serializing to a file descriptor with the encoding and the options given.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>a file descriptor number</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding name to use or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of xmlSaveOptions</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new serialization context or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlSaveToFilename" id="xmlSaveToFilename"></a>Function: xmlSaveToFilename</h3><pre class="programlisting"><a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> xmlSaveToFilename (const char * filename, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Create a document saving context serializing to a filename or possibly to an URL (but this is less reliable) with the encoding and the options given.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>a file name or an URL</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding name to use or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of xmlSaveOptions</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new serialization context or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlSaveToIO" id="xmlSaveToIO"></a>Function: xmlSaveToIO</h3><pre class="programlisting"><a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> xmlSaveToIO (<a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite, <br /> <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Create a document saving context serializing to a file descriptor with the encoding and the options given</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>iowrite</tt></i>:</span></td><td>an I/O write function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding name to use or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a set of xmlSaveOptions</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new serialization context or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlSaveTree" id="xmlSaveTree"></a>Function: xmlSaveTree</h3><pre class="programlisting">long xmlSaveTree (<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Save a subtree starting at the node parameter to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a document saving context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the top node of the subtree to save</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlschemas.html b/libxml2-2.9.10/doc/html/libxml-xmlschemas.html
new file mode 100644
index 0000000..3729afb
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlschemas.html
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlschemas from libxml2</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></h1><h2>Module xmlschemas from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlsave.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlsave.html">xmlsave</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlschemastypes.html">xmlschemastypes</a></th><td><a accesskey="n" href="libxml-xmlschemastypes.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface to the XML Schemas handling and schema validity checking, it is incomplete right now. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlSchema">xmlSchema</a><br />struct _xmlSchema
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaParserCtxt">xmlSchemaParserCtxt</a><br />struct _xmlSchemaParserCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlschemas.html#xmlSchemaParserCtxt">xmlSchemaParserCtxt</a> * <a name="xmlSchemaParserCtxtPtr" id="xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlschemas.html#xmlSchema">xmlSchema</a> * <a name="xmlSchemaPtr" id="xmlSchemaPtr">xmlSchemaPtr</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlschemas.html#xmlSchemaSAXPlugStruct">xmlSchemaSAXPlugStruct</a> * <a name="xmlSchemaSAXPlugPtr" id="xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaSAXPlugStruct">xmlSchemaSAXPlugStruct</a><br />struct _xmlSchemaSAXPlug
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Structure <a href="#xmlSchemaValidCtxt">xmlSchemaValidCtxt</a><br />struct _xmlSchemaValidCtxt
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlschemas.html#xmlSchemaValidCtxt">xmlSchemaValidCtxt</a> * <a name="xmlSchemaValidCtxtPtr" id="xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlSchemaValidError">xmlSchemaValidError</a>
+</pre><pre class="programlisting">Enum <a href="#xmlSchemaValidOption">xmlSchemaValidOption</a>
+</pre><pre class="programlisting">void <a href="#xmlSchemaDump">xmlSchemaDump</a> (FILE * output, <br /> <a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaFree">xmlSchemaFree</a> (<a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaFreeParserCtxt">xmlSchemaFreeParserCtxt</a> (<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaFreeValidCtxt">xmlSchemaFreeValidCtxt</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a> (<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> * err, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> * warn, <br /> void ** ctx)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> * err, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> * warn, <br /> void ** ctx)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaIsValid">xmlSchemaIsValid</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> <a href="#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> <a href="#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a> (const char * buffer, <br /> int size)</pre>
+<pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> <a href="#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a> (const char * URL)</pre>
+<pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> <a href="#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a> (<a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)</pre>
+<pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> <a href="#xmlSchemaParse">xmlSchemaParse</a> (<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a> <a href="#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> * sax, <br /> void ** user_data)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a> (<a href="libxml-xmlschemas.html#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a> plug)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a> (<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> err, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> warn, <br /> void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaSetParserStructuredErrors">xmlSchemaSetParserStructuredErrors</a> (<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br /> void * ctx)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> err, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> warn, <br /> void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> int options)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br /> void * ctx)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidCtxtGetOptions">xmlSchemaValidCtxtGetOptions</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="#xmlSchemaValidCtxtGetParserCtxt">xmlSchemaValidCtxtGetParserCtxt</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateFile">xmlSchemaValidateFile</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> const char * filename, <br /> int options)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaValidateSetFilename">xmlSchemaValidateSetFilename</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> vctxt, <br /> const char * filename)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaValidateSetLocator">xmlSchemaValidateSetLocator</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> vctxt, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a> f, <br /> void * ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateStream">xmlSchemaValidateStream</a> (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc, <br /> <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data)</pre>
+<pre class="programlisting">Function type: <a href="#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a>
+void <a href="#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a>
+int <a href="#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a> (void * ctx, <br /> const char ** file, <br /> unsigned long * line)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a>
+void <a href="#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre>
+<h2>Description</h2>
+<h3><a name="xmlSchema" id="xmlSchema">Structure xmlSchema</a></h3><pre class="programlisting">Structure xmlSchema<br />struct _xmlSchema {
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : schema name
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * targetNamespace : the target namespace
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * version
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * id : Obsolete
+ <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc
+ <a href="libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ int flags
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> typeDecl
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> attrDecl
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> attrgrpDecl
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> elemDecl
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> notaDecl
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> schemasImports
+ void * _private : unused by the library for users or bind
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> groupDecl
+ <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict
+ void * includes : the includes, this is opaque for now
+ int preserve : whether to free the document
+ int counter : used to give anonymous components uniqu
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> idcDef : All identity-constraint defs.
+ void * volatiles : Obsolete
+}</pre><h3><a name="xmlSchemaParserCtxt" id="xmlSchemaParserCtxt">Structure xmlSchemaParserCtxt</a></h3><pre class="programlisting">Structure xmlSchemaParserCtxt<br />struct _xmlSchemaParserCtxt {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlSchemaSAXPlugStruct" id="xmlSchemaSAXPlugStruct">Structure xmlSchemaSAXPlugStruct</a></h3><pre class="programlisting">Structure xmlSchemaSAXPlugStruct<br />struct _xmlSchemaSAXPlug {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlSchemaValidCtxt" id="xmlSchemaValidCtxt">Structure xmlSchemaValidCtxt</a></h3><pre class="programlisting">Structure xmlSchemaValidCtxt<br />struct _xmlSchemaValidCtxt {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlSchemaValidError" id="xmlSchemaValidError">xmlSchemaValidError</a></h3><pre class="programlisting">Enum xmlSchemaValidError {
+ <a name="XML_SCHEMAS_ERR_OK" id="XML_SCHEMAS_ERR_OK">XML_SCHEMAS_ERR_OK</a> = 0
+ <a name="XML_SCHEMAS_ERR_NOROOT" id="XML_SCHEMAS_ERR_NOROOT">XML_SCHEMAS_ERR_NOROOT</a> = 1
+ <a name="XML_SCHEMAS_ERR_UNDECLAREDELEM" id="XML_SCHEMAS_ERR_UNDECLAREDELEM">XML_SCHEMAS_ERR_UNDECLAREDELEM</a> = 2
+ <a name="XML_SCHEMAS_ERR_NOTTOPLEVEL" id="XML_SCHEMAS_ERR_NOTTOPLEVEL">XML_SCHEMAS_ERR_NOTTOPLEVEL</a> = 3
+ <a name="XML_SCHEMAS_ERR_MISSING" id="XML_SCHEMAS_ERR_MISSING">XML_SCHEMAS_ERR_MISSING</a> = 4
+ <a name="XML_SCHEMAS_ERR_WRONGELEM" id="XML_SCHEMAS_ERR_WRONGELEM">XML_SCHEMAS_ERR_WRONGELEM</a> = 5
+ <a name="XML_SCHEMAS_ERR_NOTYPE" id="XML_SCHEMAS_ERR_NOTYPE">XML_SCHEMAS_ERR_NOTYPE</a> = 6
+ <a name="XML_SCHEMAS_ERR_NOROLLBACK" id="XML_SCHEMAS_ERR_NOROLLBACK">XML_SCHEMAS_ERR_NOROLLBACK</a> = 7
+ <a name="XML_SCHEMAS_ERR_ISABSTRACT" id="XML_SCHEMAS_ERR_ISABSTRACT">XML_SCHEMAS_ERR_ISABSTRACT</a> = 8
+ <a name="XML_SCHEMAS_ERR_NOTEMPTY" id="XML_SCHEMAS_ERR_NOTEMPTY">XML_SCHEMAS_ERR_NOTEMPTY</a> = 9
+ <a name="XML_SCHEMAS_ERR_ELEMCONT" id="XML_SCHEMAS_ERR_ELEMCONT">XML_SCHEMAS_ERR_ELEMCONT</a> = 10
+ <a name="XML_SCHEMAS_ERR_HAVEDEFAULT" id="XML_SCHEMAS_ERR_HAVEDEFAULT">XML_SCHEMAS_ERR_HAVEDEFAULT</a> = 11
+ <a name="XML_SCHEMAS_ERR_NOTNILLABLE" id="XML_SCHEMAS_ERR_NOTNILLABLE">XML_SCHEMAS_ERR_NOTNILLABLE</a> = 12
+ <a name="XML_SCHEMAS_ERR_EXTRACONTENT" id="XML_SCHEMAS_ERR_EXTRACONTENT">XML_SCHEMAS_ERR_EXTRACONTENT</a> = 13
+ <a name="XML_SCHEMAS_ERR_INVALIDATTR" id="XML_SCHEMAS_ERR_INVALIDATTR">XML_SCHEMAS_ERR_INVALIDATTR</a> = 14
+ <a name="XML_SCHEMAS_ERR_INVALIDELEM" id="XML_SCHEMAS_ERR_INVALIDELEM">XML_SCHEMAS_ERR_INVALIDELEM</a> = 15
+ <a name="XML_SCHEMAS_ERR_NOTDETERMINIST" id="XML_SCHEMAS_ERR_NOTDETERMINIST">XML_SCHEMAS_ERR_NOTDETERMINIST</a> = 16
+ <a name="XML_SCHEMAS_ERR_CONSTRUCT" id="XML_SCHEMAS_ERR_CONSTRUCT">XML_SCHEMAS_ERR_CONSTRUCT</a> = 17
+ <a name="XML_SCHEMAS_ERR_INTERNAL" id="XML_SCHEMAS_ERR_INTERNAL">XML_SCHEMAS_ERR_INTERNAL</a> = 18
+ <a name="XML_SCHEMAS_ERR_NOTSIMPLE" id="XML_SCHEMAS_ERR_NOTSIMPLE">XML_SCHEMAS_ERR_NOTSIMPLE</a> = 19
+ <a name="XML_SCHEMAS_ERR_ATTRUNKNOWN" id="XML_SCHEMAS_ERR_ATTRUNKNOWN">XML_SCHEMAS_ERR_ATTRUNKNOWN</a> = 20
+ <a name="XML_SCHEMAS_ERR_ATTRINVALID" id="XML_SCHEMAS_ERR_ATTRINVALID">XML_SCHEMAS_ERR_ATTRINVALID</a> = 21
+ <a name="XML_SCHEMAS_ERR_VALUE" id="XML_SCHEMAS_ERR_VALUE">XML_SCHEMAS_ERR_VALUE</a> = 22
+ <a name="XML_SCHEMAS_ERR_FACET" id="XML_SCHEMAS_ERR_FACET">XML_SCHEMAS_ERR_FACET</a> = 23
+ <a name="XML_SCHEMAS_ERR_" id="XML_SCHEMAS_ERR_">XML_SCHEMAS_ERR_</a> = 24
+ <a name="XML_SCHEMAS_ERR_XXX" id="XML_SCHEMAS_ERR_XXX">XML_SCHEMAS_ERR_XXX</a> = 25
+}
+</pre><h3>Enum <a name="xmlSchemaValidOption" id="xmlSchemaValidOption">xmlSchemaValidOption</a></h3><pre class="programlisting">Enum xmlSchemaValidOption {
+ <a name="XML_SCHEMA_VAL_VC_I_CREATE" id="XML_SCHEMA_VAL_VC_I_CREATE">XML_SCHEMA_VAL_VC_I_CREATE</a> = 1 : Default/fixed: create an <a href="libxml-SAX.html#attribute">attribute</a> node * or an element's text node on the instance. *
+}
+</pre><h3><a name="xmlSchemaDump" id="xmlSchemaDump"></a>Function: xmlSchemaDump</h3><pre class="programlisting">void xmlSchemaDump (FILE * output, <br /> <a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)<br />
+</pre><p>Dump a Schema structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the file output</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div><h3><a name="xmlSchemaFree" id="xmlSchemaFree"></a>Function: xmlSchemaFree</h3><pre class="programlisting">void xmlSchemaFree (<a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)<br />
+</pre><p>Deallocate a Schema structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a schema structure</td></tr></tbody></table></div><h3><a name="xmlSchemaFreeParserCtxt" id="xmlSchemaFreeParserCtxt"></a>Function: xmlSchemaFreeParserCtxt</h3><pre class="programlisting">void xmlSchemaFreeParserCtxt (<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt)<br />
+</pre><p>Free the resources associated to the schema parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema parser context</td></tr></tbody></table></div><h3><a name="xmlSchemaFreeValidCtxt" id="xmlSchemaFreeValidCtxt"></a>Function: xmlSchemaFreeValidCtxt</h3><pre class="programlisting">void xmlSchemaFreeValidCtxt (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)<br />
+</pre><p>Free the resources associated to the schema validation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema validation context</td></tr></tbody></table></div><h3><a name="xmlSchemaGetParserErrors" id="xmlSchemaGetParserErrors"></a>Function: xmlSchemaGetParserErrors</h3><pre class="programlisting">int xmlSchemaGetParserErrors (<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> * err, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> * warn, <br /> void ** ctx)<br />
+</pre><p>Get the callback information used to handle errors for a parser context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XMl-Schema parser context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error callback result</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning callback result</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlSchemaGetValidErrors" id="xmlSchemaGetValidErrors"></a>Function: xmlSchemaGetValidErrors</h3><pre class="programlisting">int xmlSchemaGetValidErrors (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> * err, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> * warn, <br /> void ** ctx)<br />
+</pre><p>Get the error and warning callback informations</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XML-Schema validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function result</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function result</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error and 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlSchemaIsValid" id="xmlSchemaIsValid"></a>Function: xmlSchemaIsValid</h3><pre class="programlisting">int xmlSchemaIsValid (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)<br />
+</pre><p>Check if any error was detected during validation.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if valid so far, 0 if errors were detected, and -1 in case of internal error.</td></tr></tbody></table></div><h3><a name="xmlSchemaNewDocParserCtxt" id="xmlSchemaNewDocParserCtxt"></a>Function: xmlSchemaNewDocParserCtxt</h3><pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> xmlSchemaNewDocParserCtxt (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Create an XML Schemas parse context for that document. NB. The document may be modified during the parsing process.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a preparsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchemaNewMemParserCtxt" id="xmlSchemaNewMemParserCtxt"></a>Function: xmlSchemaNewMemParserCtxt</h3><pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> xmlSchemaNewMemParserCtxt (const char * buffer, <br /> int size)<br />
+</pre><p>Create an XML Schemas parse context for that memory buffer expected to contain an XML Schemas file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array containing the schemas</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchemaNewParserCtxt" id="xmlSchemaNewParserCtxt"></a>Function: xmlSchemaNewParserCtxt</h3><pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> xmlSchemaNewParserCtxt (const char * URL)<br />
+</pre><p>Create an XML Schemas parse context for that file/resource expected to contain an XML Schemas file.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the location of the schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchemaNewValidCtxt" id="xmlSchemaNewValidCtxt"></a>Function: xmlSchemaNewValidCtxt</h3><pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> xmlSchemaNewValidCtxt (<a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)<br />
+</pre><p>Create an XML Schemas validation context based on the given schema.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled XML Schemas</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the validation context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchemaParse" id="xmlSchemaParse"></a>Function: xmlSchemaParse</h3><pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> xmlSchemaParse (<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt)<br />
+</pre><p>parse a schema definition resource and build an internal XML Schema structure which can be used to validate instances.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal XML Schema structure built from the resource or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchemaSAXPlug" id="xmlSchemaSAXPlug"></a>Function: xmlSchemaSAXPlug</h3><pre class="programlisting"><a href="libxml-xmlschemas.html#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a> xmlSchemaSAXPlug (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> * sax, <br /> void ** user_data)<br />
+</pre><p>Plug a SAX based validation layer in a SAX parsing event flow. The original @saxptr and @dataptr data are replaced by new pointers but the calls to the original will be maintained.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a pointer to the original <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a></td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>a pointer to the original SAX user data pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to a data structure needed to unplug the validation layer or NULL in case of errors.</td></tr></tbody></table></div><h3><a name="xmlSchemaSAXUnplug" id="xmlSchemaSAXUnplug"></a>Function: xmlSchemaSAXUnplug</h3><pre class="programlisting">int xmlSchemaSAXUnplug (<a href="libxml-xmlschemas.html#xmlSchemaSAXPlugPtr">xmlSchemaSAXPlugPtr</a> plug)<br />
+</pre><p>Unplug a SAX based validation layer in a SAX parsing event flow. The original pointers used in the call are restored.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>plug</tt></i>:</span></td><td>a data structure returned by <a href="libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlSchemaSetParserErrors" id="xmlSchemaSetParserErrors"></a>Function: xmlSchemaSetParserErrors</h3><pre class="programlisting">void xmlSchemaSetParserErrors (<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> err, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> warn, <br /> void * ctx)<br />
+</pre><p>Set the callback functions used to handle errors for a validation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error callback</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning callback</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks</td></tr></tbody></table></div><h3><a name="xmlSchemaSetParserStructuredErrors" id="xmlSchemaSetParserStructuredErrors"></a>Function: xmlSchemaSetParserStructuredErrors</h3><pre class="programlisting">void xmlSchemaSetParserStructuredErrors (<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br /> void * ctx)<br />
+</pre><p>Set the structured error callback</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema parser context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the structured error function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlSchemaSetValidErrors" id="xmlSchemaSetValidErrors"></a>Function: xmlSchemaSetValidErrors</h3><pre class="programlisting">void xmlSchemaSetValidErrors (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> err, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> warn, <br /> void * ctx)<br />
+</pre><p>Set the error and warning callback informations</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlSchemaSetValidOptions" id="xmlSchemaSetValidOptions"></a>Function: xmlSchemaSetValidOptions</h3><pre class="programlisting">int xmlSchemaSetValidOptions (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> int options)<br />
+</pre><p>Sets the options to be used during the validation.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-xmlschemas.html#xmlSchemaValidOption">xmlSchemaValidOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of an API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaSetValidStructuredErrors" id="xmlSchemaSetValidStructuredErrors"></a>Function: xmlSchemaSetValidStructuredErrors</h3><pre class="programlisting">void xmlSchemaSetValidStructuredErrors (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br /> void * ctx)<br />
+</pre><p>Set the structured error callback</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the structured error function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlSchemaValidCtxtGetOptions" id="xmlSchemaValidCtxtGetOptions"></a>Function: xmlSchemaValidCtxtGetOptions</h3><pre class="programlisting">int xmlSchemaValidCtxtGetOptions (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)<br />
+</pre><p>Get the validation context options.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the option combination or -1 on error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidCtxtGetParserCtxt" id="xmlSchemaValidCtxtGetParserCtxt"></a>Function: xmlSchemaValidCtxtGetParserCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlSchemaValidCtxtGetParserCtxt (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)<br />
+</pre><p>allow access to the parser context of the schema validation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the parser context of the schema validation context or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateDoc" id="xmlSchemaValidateDoc"></a>Function: xmlSchemaValidateDoc</h3><pre class="programlisting">int xmlSchemaValidateDoc (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Validate a document tree in memory.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateFile" id="xmlSchemaValidateFile"></a>Function: xmlSchemaValidateFile</h3><pre class="programlisting">int xmlSchemaValidateFile (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> const char * filename, <br /> int options)<br />
+</pre><p>Do a schemas validation of the given resource, it will use the SAX streamable validation internally.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI of the instance</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a future set of options, currently unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the document is valid, a positive error code number otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateOneElement" id="xmlSchemaValidateOneElement"></a>Function: xmlSchemaValidateOneElement</h3><pre class="programlisting">int xmlSchemaValidateOneElement (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br />
+</pre><p>Validate a branch of a tree, starting with the given @elem.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an element node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the element and its subtree is valid, a positive error code number otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateSetFilename" id="xmlSchemaValidateSetFilename"></a>Function: xmlSchemaValidateSetFilename</h3><pre class="programlisting">void xmlSchemaValidateSetFilename (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> vctxt, <br /> const char * filename)<br />
+</pre><p>Workaround to provide file error reporting information when this is not provided by current APIs</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>vctxt</tt></i>:</span></td><td>the schema validation context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the file name</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateSetLocator" id="xmlSchemaValidateSetLocator"></a>Function: xmlSchemaValidateSetLocator</h3><pre class="programlisting">void xmlSchemaValidateSetLocator (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> vctxt, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidityLocatorFunc">xmlSchemaValidityLocatorFunc</a> f, <br /> void * ctxt)<br />
+</pre><p>Allows to set a locator function to the validation context, which will be used to provide file and line information since those are not provided as part of the SAX validation flow Setting @f to NULL disable the locator.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>vctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the locator function pointer</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the locator context</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateStream" id="xmlSchemaValidateStream"></a>Function: xmlSchemaValidateStream</h3><pre class="programlisting">int xmlSchemaValidateStream (<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc, <br /> <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> void * user_data)<br />
+</pre><p>Validate an input based on a flow of SAX event from the parser and forward the events to the @sax handler with the provided @user_data the user provided @sax handler must be a SAX2 one.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the input to use for reading the data</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>an optional encoding information</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>a SAX handler for the resulting events</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td>the context to provide to the SAX handler.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidityErrorFunc" id="xmlSchemaValidityErrorFunc"></a>Function type: xmlSchemaValidityErrorFunc</h3><pre class="programlisting">Function type: xmlSchemaValidityErrorFunc
+void xmlSchemaValidityErrorFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Signature of an error callback from an XSD validation</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div><br />
+<h3><a name="xmlSchemaValidityLocatorFunc" id="xmlSchemaValidityLocatorFunc"></a>Function type: xmlSchemaValidityLocatorFunc</h3><pre class="programlisting">Function type: xmlSchemaValidityLocatorFunc
+int xmlSchemaValidityLocatorFunc (void * ctx, <br /> const char ** file, <br /> unsigned long * line)
+</pre><p>A schemas validation locator, a callback called by the validator. This is used when file or node informations are not available to find out what file and line number are affected</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>user provided context</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>returned file information</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>returned line information</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><br />
+<h3><a name="xmlSchemaValidityWarningFunc" id="xmlSchemaValidityWarningFunc"></a>Function type: xmlSchemaValidityWarningFunc</h3><pre class="programlisting">Function type: xmlSchemaValidityWarningFunc
+void xmlSchemaValidityWarningFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
+</pre><p>Signature of a warning callback from an XSD validation</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the validation context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra arguments</td></tr></tbody></table></div><br />
+<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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlschemastypes.html b/libxml2-2.9.10/doc/html/libxml-xmlschemastypes.html
new file mode 100644
index 0000000..d6d0ae0
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlschemastypes.html
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlschemastypes from libxml2</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></h1><h2>Module xmlschemastypes from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlschemas.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlschemas.html">xmlschemas</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlstring.html">xmlstring</a></th><td><a accesskey="n" href="libxml-xmlstring.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>module providing the XML Schema Datatypes implementation both definition and validity checking </p><h2>Table of Contents</h2><pre class="programlisting">Enum <a href="#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a>
+</pre><pre class="programlisting">int <a href="#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a> (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> <a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> typeDecl, <br /> <a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> pctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaCleanupTypes">xmlSchemaCleanupTypes</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSchemaCollapseString">xmlSchemaCollapseString</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaCompareValues">xmlSchemaCompareValues</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> x, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> y)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaCompareValuesWhtsp">xmlSchemaCompareValuesWhtsp</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> x, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> xws, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> y, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> yws)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> <a href="#xmlSchemaCopyValue">xmlSchemaCopyValue</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a> (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaFreeValue">xmlSchemaFreeValue</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> value)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> <a href="#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> <a href="#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a> (<a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> type)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** retValue)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** retValue, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)</pre>
+<pre class="programlisting">unsigned long <a href="#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a> (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> <a href="#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> <a href="#xmlSchemaGetValType">xmlSchemaGetValType</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)</pre>
+<pre class="programlisting">void <a href="#xmlSchemaInitTypes">xmlSchemaInitTypes</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> int facetType)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> <a href="#xmlSchemaNewFacet">xmlSchemaNewFacet</a> (void)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> <a href="#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> <a href="#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceName, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localName)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> <a href="#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a> (<a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> base, <br /> <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a> (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> fws, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> unsigned long * length)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a> (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> unsigned long * length, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a> (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> unsigned long actualLen, <br /> unsigned long * expectedLen)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValueAppend">xmlSchemaValueAppend</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> prev, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> cur)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValueGetAsBoolean">xmlSchemaValueGetAsBoolean</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSchemaValueGetAsString">xmlSchemaValueGetAsString</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> <a href="#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
+<h2>Description</h2>
+<h3>Enum <a name="xmlSchemaWhitespaceValueType" id="xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a></h3><pre class="programlisting">Enum xmlSchemaWhitespaceValueType {
+ <a name="XML_SCHEMA_WHITESPACE_UNKNOWN" id="XML_SCHEMA_WHITESPACE_UNKNOWN">XML_SCHEMA_WHITESPACE_UNKNOWN</a> = 0
+ <a name="XML_SCHEMA_WHITESPACE_PRESERVE" id="XML_SCHEMA_WHITESPACE_PRESERVE">XML_SCHEMA_WHITESPACE_PRESERVE</a> = 1
+ <a name="XML_SCHEMA_WHITESPACE_REPLACE" id="XML_SCHEMA_WHITESPACE_REPLACE">XML_SCHEMA_WHITESPACE_REPLACE</a> = 2
+ <a name="XML_SCHEMA_WHITESPACE_COLLAPSE" id="XML_SCHEMA_WHITESPACE_COLLAPSE">XML_SCHEMA_WHITESPACE_COLLAPSE</a> = 3
+}
+</pre><h3><a name="xmlSchemaCheckFacet" id="xmlSchemaCheckFacet"></a>Function: xmlSchemaCheckFacet</h3><pre class="programlisting">int xmlSchemaCheckFacet (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> <a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> typeDecl, <br /> <a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> pctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Checks and computes the values of facets.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet</td></tr><tr><td><span class="term"><i><tt>typeDecl</tt></i>:</span></td><td>the schema type definition</td></tr><tr><td><span class="term"><i><tt>pctxt</tt></i>:</span></td><td>the schema parser context or NULL</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the optional name of the type</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if valid, a positive error code if not valid and -1 in case of an internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaCleanupTypes" id="xmlSchemaCleanupTypes"></a>Function: xmlSchemaCleanupTypes</h3><pre class="programlisting">void xmlSchemaCleanupTypes (void)<br />
+</pre><p>Cleanup the default XML Schemas type library</p>
+<h3><a name="xmlSchemaCollapseString" id="xmlSchemaCollapseString"></a>Function: xmlSchemaCollapseString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSchemaCollapseString (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Removes and normalize white spaces in the string</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new string or NULL if no change was required.</td></tr></tbody></table></div><h3><a name="xmlSchemaCompareValues" id="xmlSchemaCompareValues"></a>Function: xmlSchemaCompareValues</h3><pre class="programlisting">int xmlSchemaCompareValues (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> x, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> y)<br />
+</pre><p>Compare 2 values</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>x</tt></i>:</span></td><td>a first value</td></tr><tr><td><span class="term"><i><tt>y</tt></i>:</span></td><td>a second value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error</td></tr></tbody></table></div><h3><a name="xmlSchemaCompareValuesWhtsp" id="xmlSchemaCompareValuesWhtsp"></a>Function: xmlSchemaCompareValuesWhtsp</h3><pre class="programlisting">int xmlSchemaCompareValuesWhtsp (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> x, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> xws, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> y, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> yws)<br />
+</pre><p>Compare 2 values</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>x</tt></i>:</span></td><td>a first value</td></tr><tr><td><span class="term"><i><tt>xws</tt></i>:</span></td><td>the whitespace value of x</td></tr><tr><td><span class="term"><i><tt>y</tt></i>:</span></td><td>a second value</td></tr><tr><td><span class="term"><i><tt>yws</tt></i>:</span></td><td>the whitespace value of y</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error</td></tr></tbody></table></div><h3><a name="xmlSchemaCopyValue" id="xmlSchemaCopyValue"></a>Function: xmlSchemaCopyValue</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> xmlSchemaCopyValue (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br />
+</pre><p>Copies the precomputed value. This duplicates any string within.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value to be copied</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the copy or NULL if a copy for a data-type is not implemented.</td></tr></tbody></table></div><h3><a name="xmlSchemaFreeFacet" id="xmlSchemaFreeFacet"></a>Function: xmlSchemaFreeFacet</h3><pre class="programlisting">void xmlSchemaFreeFacet (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet)<br />
+</pre><p>Deallocate a Schema Facet structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>a schema facet structure</td></tr></tbody></table></div><h3><a name="xmlSchemaFreeValue" id="xmlSchemaFreeValue"></a>Function: xmlSchemaFreeValue</h3><pre class="programlisting">void xmlSchemaFreeValue (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> value)<br />
+</pre><p>Cleanup the default XML Schemas type library</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to free</td></tr></tbody></table></div><h3><a name="xmlSchemaGetBuiltInListSimpleTypeItemType" id="xmlSchemaGetBuiltInListSimpleTypeItemType"></a>Function: xmlSchemaGetBuiltInListSimpleTypeItemType</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> xmlSchemaGetBuiltInListSimpleTypeItemType (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type)<br />
+</pre><p>Lookup function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the built-in simple type.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the item type of @type as defined by the built-in datatype hierarchy of XML Schema Part 2: Datatypes, or NULL in case of an error.</td></tr></tbody></table></div><h3><a name="xmlSchemaGetBuiltInType" id="xmlSchemaGetBuiltInType"></a>Function: xmlSchemaGetBuiltInType</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> xmlSchemaGetBuiltInType (<a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> type)<br />
+</pre><p>Gives you the type struct for a built-in type by its type id.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of the built in type</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type if found, NULL otherwise.</td></tr></tbody></table></div><h3><a name="xmlSchemaGetCanonValue" id="xmlSchemaGetCanonValue"></a>Function: xmlSchemaGetCanonValue</h3><pre class="programlisting">int xmlSchemaGetCanonValue (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** retValue)<br />
+</pre><p>Get the canonical lexical representation of the value. The caller has to FREE the returned retValue. WARNING: Some value types are not supported yet, resulting in a @retValue of "???". TODO: XML Schema 1.0 does not define canonical representations for: duration, gYearMonth, gYear, gMonthDay, gMonth, gDay, anyURI, QName, NOTATION. This will be fixed in XML Schema 1.1.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>retValue</tt></i>:</span></td><td>the returned value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value could be built, 1 if the value type is not supported yet and -1 in case of API errors.</td></tr></tbody></table></div><h3><a name="xmlSchemaGetCanonValueWhtsp" id="xmlSchemaGetCanonValueWhtsp"></a>Function: xmlSchemaGetCanonValueWhtsp</h3><pre class="programlisting">int xmlSchemaGetCanonValueWhtsp (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** retValue, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)<br />
+</pre><p>Get the canonical representation of the value. The caller has to free the returned @retValue.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>retValue</tt></i>:</span></td><td>the returned value</td></tr><tr><td><span class="term"><i><tt>ws</tt></i>:</span></td><td>the whitespace type of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value could be built, 1 if the value type is not supported yet and -1 in case of API errors.</td></tr></tbody></table></div><h3><a name="xmlSchemaGetFacetValueAsULong" id="xmlSchemaGetFacetValueAsULong"></a>Function: xmlSchemaGetFacetValueAsULong</h3><pre class="programlisting">unsigned long xmlSchemaGetFacetValueAsULong (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet)<br />
+</pre><p>Extract the value of a facet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>an schemas type facet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value as a long</td></tr></tbody></table></div><h3><a name="xmlSchemaGetPredefinedType" id="xmlSchemaGetPredefinedType"></a>Function: xmlSchemaGetPredefinedType</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> xmlSchemaGetPredefinedType (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)<br />
+</pre><p>Lookup a type in the default XML Schemas type library</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the type name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the URI of the namespace usually "http://www.w3.org/2001/XMLSchema"</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type if found, NULL otherwise</td></tr></tbody></table></div><h3><a name="xmlSchemaGetValType" id="xmlSchemaGetValType"></a>Function: xmlSchemaGetValType</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> xmlSchemaGetValType (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br />
+</pre><p>Accessor for the type of a value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a schemas value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> of the value</td></tr></tbody></table></div><h3><a name="xmlSchemaInitTypes" id="xmlSchemaInitTypes"></a>Function: xmlSchemaInitTypes</h3><pre class="programlisting">void xmlSchemaInitTypes (void)<br />
+</pre><p>Initialize the default XML Schemas type library</p>
+<h3><a name="xmlSchemaIsBuiltInTypeFacet" id="xmlSchemaIsBuiltInTypeFacet"></a>Function: xmlSchemaIsBuiltInTypeFacet</h3><pre class="programlisting">int xmlSchemaIsBuiltInTypeFacet (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> int facetType)<br />
+</pre><p>Evaluates if a specific facet can be used in conjunction with a type.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the built-in type</td></tr><tr><td><span class="term"><i><tt>facetType</tt></i>:</span></td><td>the facet type</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the facet can be used with the given built-in type, 0 otherwise and -1 in case the type is not a built-in type.</td></tr></tbody></table></div><h3><a name="xmlSchemaNewFacet" id="xmlSchemaNewFacet"></a>Function: xmlSchemaNewFacet</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> xmlSchemaNewFacet (void)<br />
+</pre><p>Allocate a new Facet structure.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly allocated structure or NULL in case or error</td></tr></tbody></table></div><h3><a name="xmlSchemaNewNOTATIONValue" id="xmlSchemaNewNOTATIONValue"></a>Function: xmlSchemaNewNOTATIONValue</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> xmlSchemaNewNOTATIONValue (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)<br />
+</pre><p>Allocate a new NOTATION value. The given values are consumed and freed with the struct.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the notation name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the notation namespace name or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new value or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchemaNewQNameValue" id="xmlSchemaNewQNameValue"></a>Function: xmlSchemaNewQNameValue</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> xmlSchemaNewQNameValue (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceName, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * localName)<br />
+</pre><p>Allocate a new QName value. The given values are consumed and freed with the struct.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>namespaceName</tt></i>:</span></td><td>the namespace name</td></tr><tr><td><span class="term"><i><tt>localName</tt></i>:</span></td><td>the local name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new value or NULL in case of an error.</td></tr></tbody></table></div><h3><a name="xmlSchemaNewStringValue" id="xmlSchemaNewStringValue"></a>Function: xmlSchemaNewStringValue</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> xmlSchemaNewStringValue (<a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Allocate a new simple type value. The type can be of XML_SCHEMAS_STRING. WARNING: This one is intended to be expanded for other string based types. We need this for anySimpleType as well. The given value is consumed and freed with the struct.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the value type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new value or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlSchemaValPredefTypeNode" id="xmlSchemaValPredefTypeNode"></a>Function: xmlSchemaValPredefTypeNode</h3><pre class="programlisting">int xmlSchemaValPredefTypeNode (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the predefined type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the return computed value</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node containing the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValPredefTypeNodeNoNorm" id="xmlSchemaValPredefTypeNodeNoNorm"></a>Function: xmlSchemaValPredefTypeNodeNoNorm</h3><pre class="programlisting">int xmlSchemaValPredefTypeNodeNoNorm (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val. This one does apply any normalization to the value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the predefined type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the return computed value</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node containing the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateFacet" id="xmlSchemaValidateFacet"></a>Function: xmlSchemaValidateFacet</h3><pre class="programlisting">int xmlSchemaValidateFacet (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> base, <br /> <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br />
+</pre><p>Check a value against a facet condition</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>base</tt></i>:</span></td><td>the base type</td></tr><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr of the value to validate</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateFacetWhtsp" id="xmlSchemaValidateFacetWhtsp"></a>Function: xmlSchemaValidateFacetWhtsp</h3><pre class="programlisting">int xmlSchemaValidateFacetWhtsp (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> fws, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)<br />
+</pre><p>Check a value against a facet condition. This takes value normalization according to the specified whitespace types into account. Note that @value needs to be the *normalized* value if the facet is of type "pattern".</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>fws</tt></i>:</span></td><td>the whitespace type of the facet's value</td></tr><tr><td><span class="term"><i><tt>valType</tt></i>:</span></td><td>the built-in type of the value</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical (or normalized for pattern) repr of the value to validate</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>ws</tt></i>:</span></td><td>the whitespace type of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateLengthFacet" id="xmlSchemaValidateLengthFacet"></a>Function: xmlSchemaValidateLengthFacet</h3><pre class="programlisting">int xmlSchemaValidateLengthFacet (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> unsigned long * length)<br />
+</pre><p>Checka a value against a "length", "minLength" and "maxLength" facet; sets @length to the computed length of @value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the built-in type</td></tr><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr. of the value to be validated</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>length</tt></i>:</span></td><td>the actual length of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateLengthFacetWhtsp" id="xmlSchemaValidateLengthFacetWhtsp"></a>Function: xmlSchemaValidateLengthFacetWhtsp</h3><pre class="programlisting">int xmlSchemaValidateLengthFacetWhtsp (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> unsigned long * length, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)<br />
+</pre><p>Checka a value against a "length", "minLength" and "maxLength" facet; sets @length to the computed length of @value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>valType</tt></i>:</span></td><td>the built-in type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr. of the value to be validated</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>length</tt></i>:</span></td><td>the actual length of the value</td></tr><tr><td><span class="term"><i><tt>ws</tt></i>:</span></td><td>the whitespace type of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateListSimpleTypeFacet" id="xmlSchemaValidateListSimpleTypeFacet"></a>Function: xmlSchemaValidateListSimpleTypeFacet</h3><pre class="programlisting">int xmlSchemaValidateListSimpleTypeFacet (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> unsigned long actualLen, <br /> unsigned long * expectedLen)<br />
+</pre><p>Checks the value of a list simple type against a facet.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr of the value to validate</td></tr><tr><td><span class="term"><i><tt>actualLen</tt></i>:</span></td><td>the number of list items</td></tr><tr><td><span class="term"><i><tt>expectedLen</tt></i>:</span></td><td>the resulting expected number of list items</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value is valid, a positive error code number otherwise and -1 in case of an internal error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidatePredefinedType" id="xmlSchemaValidatePredefinedType"></a>Function: xmlSchemaValidatePredefinedType</h3><pre class="programlisting">int xmlSchemaValidatePredefinedType (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val)<br />
+</pre><p>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the predefined type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the return computed value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValueAppend" id="xmlSchemaValueAppend"></a>Function: xmlSchemaValueAppend</h3><pre class="programlisting">int xmlSchemaValueAppend (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> prev, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> cur)<br />
+</pre><p>Appends a next sibling to a list of computed values.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>prev</tt></i>:</span></td><td>the value</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the value to be appended</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if succeeded and -1 on API errors.</td></tr></tbody></table></div><h3><a name="xmlSchemaValueGetAsBoolean" id="xmlSchemaValueGetAsBoolean"></a>Function: xmlSchemaValueGetAsBoolean</h3><pre class="programlisting">int xmlSchemaValueGetAsBoolean (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br />
+</pre><p>Accessor for the boolean value of a computed value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true and 0 if false, or in case of an error. Hmm.</td></tr></tbody></table></div><h3><a name="xmlSchemaValueGetAsString" id="xmlSchemaValueGetAsString"></a>Function: xmlSchemaValueGetAsString</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSchemaValueGetAsString (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br />
+</pre><p>Accessor for the string value of a computed value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string value or NULL if there was none, or on API errors.</td></tr></tbody></table></div><h3><a name="xmlSchemaValueGetNext" id="xmlSchemaValueGetNext"></a>Function: xmlSchemaValueGetNext</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> xmlSchemaValueGetNext (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> cur)<br />
+</pre><p>Accessor for the next sibling of a list of computed values.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next value or NULL if there was none, or on API errors.</td></tr></tbody></table></div><h3><a name="xmlSchemaWhiteSpaceReplace" id="xmlSchemaWhiteSpaceReplace"></a>Function: xmlSchemaWhiteSpaceReplace</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSchemaWhiteSpaceReplace (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+</pre><p>Replaces 0xd, 0x9 and 0xa with a space.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new string or NULL if no change was required.</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlstring.html b/libxml2-2.9.10/doc/html/libxml-xmlstring.html
new file mode 100644
index 0000000..6940084
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlstring.html
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlstring from libxml2</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></h1><h2>Module xmlstring from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlschemastypes.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlschemastypes.html">xmlschemastypes</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlunicode.html">xmlunicode</a></th><td><a accesskey="n" href="libxml-xmlunicode.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>type and interfaces needed for the internal string handling of the library, especially UTF8 processing. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#BAD_CAST">BAD_CAST</a></pre><pre class="programlisting">Typedef unsigned char <a name="xmlChar" id="xmlChar">xmlChar</a>
+</pre><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCharStrdup">xmlCharStrdup</a> (const char * cur)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCharStrndup">xmlCharStrndup</a> (const char * cur, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlCheckUTF8">xmlCheckUTF8</a> (const unsigned char * utf)</pre>
+<pre class="programlisting">int <a href="#xmlGetUTF8Char">xmlGetUTF8Char</a> (const unsigned char * utf, <br /> int * len)</pre>
+<pre class="programlisting">int <a href="#xmlStrEqual">xmlStrEqual</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
+<pre class="programlisting">int <a href="#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlStrQEqual">xmlStrQEqual</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pref, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting">int <a href="#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> va_list ap)</pre>
+<pre class="programlisting">int <a href="#xmlStrcasecmp">xmlStrcasecmp</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcasestr">xmlStrcasestr</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcat">xmlStrcat</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrchr">xmlStrchr</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> val)</pre>
+<pre class="programlisting">int <a href="#xmlStrcmp">xmlStrcmp</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrdup">xmlStrdup</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)</pre>
+<pre class="programlisting">int <a href="#xmlStrlen">xmlStrlen</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting">int <a href="#xmlStrncasecmp">xmlStrncasecmp</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br /> int len)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrncat">xmlStrncat</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add, <br /> int len)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrncatNew">xmlStrncatNew</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlStrncmp">xmlStrncmp</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br /> int len)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrndup">xmlStrndup</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> int len)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrstr">xmlStrstr</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrsub">xmlStrsub</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int start, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlUTF8Charcmp">xmlUTF8Charcmp</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf2)</pre>
+<pre class="programlisting">int <a href="#xmlUTF8Size">xmlUTF8Size</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf)</pre>
+<pre class="programlisting">int <a href="#xmlUTF8Strlen">xmlUTF8Strlen</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf)</pre>
+<pre class="programlisting">int <a href="#xmlUTF8Strloc">xmlUTF8Strloc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utfchar)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlUTF8Strndup">xmlUTF8Strndup</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int len)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlUTF8Strpos">xmlUTF8Strpos</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int pos)</pre>
+<pre class="programlisting">int <a href="#xmlUTF8Strsize">xmlUTF8Strsize</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int len)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlUTF8Strsub">xmlUTF8Strsub</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int start, <br /> int len)</pre>
+<h2>Description</h2>
+<h3><a name="BAD_CAST" id="BAD_CAST"></a>Macro: BAD_CAST</h3><pre>#define BAD_CAST</pre><p>Macro to cast a string to an <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * when one know its safe.</p>
+
+ This is a basic byte in an UTF-8 encoded string. It's unsigned allowing to pinpoint case where char * are assigned to xmlChar * (possibly making serialization back impossible).
+ <h3><a name="xmlCharStrdup" id="xmlCharStrdup"></a>Function: xmlCharStrdup</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCharStrdup (const char * cur)<br />
+</pre><p>a strdup for char's to xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input char *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div><h3><a name="xmlCharStrndup" id="xmlCharStrndup"></a>Function: xmlCharStrndup</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlCharStrndup (const char * cur, <br /> int len)<br />
+</pre><p>a strndup for char's to xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input char *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @cur</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div><h3><a name="xmlCheckUTF8" id="xmlCheckUTF8"></a>Function: xmlCheckUTF8</h3><pre class="programlisting">int xmlCheckUTF8 (const unsigned char * utf)<br />
+</pre><p>Checks @utf for being valid UTF-8. @utf is assumed to be null-terminated. This function is not super-strict, as it will allow longer UTF-8 sequences than necessary. Note that Java is capable of producing these sequences if provoked. Also note, this routine checks for the 4-byte maximum size, but does not check for 0x10ffff maximum value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>Pointer to putative UTF-8 encoded string.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>value: true if @utf is valid.</td></tr></tbody></table></div><h3><a name="xmlGetUTF8Char" id="xmlGetUTF8Char"></a>Function: xmlGetUTF8Char</h3><pre class="programlisting">int xmlGetUTF8Char (const unsigned char * utf, <br /> int * len)<br />
+</pre><p>Read the first UTF8 character from @utf</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>a pointer to the minimum number of bytes present in the sequence. This is used to assure the next character is completely contained within the sequence.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error)</td></tr></tbody></table></div><h3><a name="xmlStrEqual" id="xmlStrEqual"></a>Function: xmlStrEqual</h3><pre class="programlisting">int xmlStrEqual (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
+</pre><p>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrPrintf" id="xmlStrPrintf"></a>Function: xmlStrPrintf</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> ... ...)<br />
+</pre><p>Formats @msg and places result into @buf.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div><h3><a name="xmlStrQEqual" id="xmlStrQEqual"></a>Function: xmlStrQEqual</h3><pre class="programlisting">int xmlStrQEqual (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pref, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>Check if a QName is Equal to a given string</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrVPrintf" id="xmlStrVPrintf"></a>Function: xmlStrVPrintf</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> va_list ap)<br />
+</pre><p>Formats @msg and places result into @buf.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div><h3><a name="xmlStrcasecmp" id="xmlStrcasecmp"></a>Function: xmlStrcasecmp</h3><pre class="programlisting">int xmlStrcasecmp (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
+</pre><p>a strcasecmp for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the integer result of the comparison</td></tr></tbody></table></div><h3><a name="xmlStrcasestr" id="xmlStrcasestr"></a>Function: xmlStrcasestr</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrcasestr (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)<br />
+</pre><p>a case-ignoring strstr for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array (haystack)</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> to search (needle)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div><h3><a name="xmlStrcat" id="xmlStrcat"></a>Function: xmlStrcat</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrcat (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add)<br />
+</pre><p>a strcat for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * containing the concatenated string. The original @cur is reallocated and should not be freed.</td></tr></tbody></table></div><h3><a name="xmlStrchr" id="xmlStrchr"></a>Function: xmlStrchr</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrchr (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> val)<br />
+</pre><p>a strchr for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> to search</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div><h3><a name="xmlStrcmp" id="xmlStrcmp"></a>Function: xmlStrcmp</h3><pre class="programlisting">int xmlStrcmp (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
+</pre><p>a strcmp for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the integer result of the comparison</td></tr></tbody></table></div><h3><a name="xmlStrdup" id="xmlStrdup"></a>Function: xmlStrdup</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrdup (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)<br />
+</pre><p>a strdup for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div><h3><a name="xmlStrlen" id="xmlStrlen"></a>Function: xmlStrlen</h3><pre class="programlisting">int xmlStrlen (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>length of a xmlChar's string</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> contained in the ARRAY.</td></tr></tbody></table></div><h3><a name="xmlStrncasecmp" id="xmlStrncasecmp"></a>Function: xmlStrncasecmp</h3><pre class="programlisting">int xmlStrncasecmp (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br /> int len)<br />
+</pre><p>a strncasecmp for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the max comparison length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the integer result of the comparison</td></tr></tbody></table></div><h3><a name="xmlStrncat" id="xmlStrncat"></a>Function: xmlStrncat</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrncat (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add, <br /> int len)<br />
+</pre><p>a strncat for array of xmlChar's, it will extend @cur with the len first bytes of @add. Note that if @len &lt; 0 then this is an API error and NULL will be returned.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of @add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *, the original @cur is reallocated and should not be freed.</td></tr></tbody></table></div><h3><a name="xmlStrncatNew" id="xmlStrncatNew"></a>Function: xmlStrncatNew</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrncatNew (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br /> int len)<br />
+</pre><p>same as xmlStrncat, but creates a new string. The original two strings are not freed. If @len is &lt; 0 then the length will be calculated automatically.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @str2 or &lt; 0</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div><h3><a name="xmlStrncmp" id="xmlStrncmp"></a>Function: xmlStrncmp</h3><pre class="programlisting">int xmlStrncmp (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br /> int len)<br />
+</pre><p>a strncmp for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the max comparison length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the integer result of the comparison</td></tr></tbody></table></div><h3><a name="xmlStrndup" id="xmlStrndup"></a>Function: xmlStrndup</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrndup (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> int len)<br />
+</pre><p>a strndup for array of xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @cur</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div><h3><a name="xmlStrstr" id="xmlStrstr"></a>Function: xmlStrstr</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrstr (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)<br />
+</pre><p>a strstr for xmlChar's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array (haystack)</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> to search (needle)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div><h3><a name="xmlStrsub" id="xmlStrsub"></a>Function: xmlStrsub</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrsub (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int start, <br /> int len)<br />
+</pre><p>Extract a substring of a given string</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array (haystack)</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the index of the first char (zero based)</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the substring</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div><h3><a name="xmlUTF8Charcmp" id="xmlUTF8Charcmp"></a>Function: xmlUTF8Charcmp</h3><pre class="programlisting">int xmlUTF8Charcmp (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf2)<br />
+</pre><p>compares the two UCS4 values</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf1</tt></i>:</span></td><td>pointer to first UTF8 char</td></tr><tr><td><span class="term"><i><tt>utf2</tt></i>:</span></td><td>pointer to second UTF8 char</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>result of the compare as with <a href="libxml-xmlstring.html#xmlStrncmp">xmlStrncmp</a></td></tr></tbody></table></div><h3><a name="xmlUTF8Size" id="xmlUTF8Size"></a>Function: xmlUTF8Size</h3><pre class="programlisting">int xmlUTF8Size (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf)<br />
+</pre><p>calculates the internal size of a UTF8 character</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>pointer to the UTF8 character</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the numbers of bytes in the character, -1 on format error</td></tr></tbody></table></div><h3><a name="xmlUTF8Strlen" id="xmlUTF8Strlen"></a>Function: xmlUTF8Strlen</h3><pre class="programlisting">int xmlUTF8Strlen (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf)<br />
+</pre><p>compute the length of an UTF8 string, it doesn't do a full UTF8 checking of the content of the string.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> in the string or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlUTF8Strloc" id="xmlUTF8Strloc"></a>Function: xmlUTF8Strloc</h3><pre class="programlisting">int xmlUTF8Strloc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utfchar)<br />
+</pre><p>a function to provide the relative location of a UTF8 char</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>utfchar</tt></i>:</span></td><td>the UTF8 character to be found</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the relative character position of the desired char or -1 if not found</td></tr></tbody></table></div><h3><a name="xmlUTF8Strndup" id="xmlUTF8Strndup"></a>Function: xmlUTF8Strndup</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlUTF8Strndup (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int len)<br />
+</pre><p>a strndup for array of UTF8's</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @utf (in chars)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new UTF8 * or NULL</td></tr></tbody></table></div><h3><a name="xmlUTF8Strpos" id="xmlUTF8Strpos"></a>Function: xmlUTF8Strpos</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlUTF8Strpos (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int pos)<br />
+</pre><p>a function to provide the equivalent of fetching a character from a string array</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>pos</tt></i>:</span></td><td>the position of the desired UTF8 char (in chars)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the UTF8 character or NULL</td></tr></tbody></table></div><h3><a name="xmlUTF8Strsize" id="xmlUTF8Strsize"></a>Function: xmlUTF8Strsize</h3><pre class="programlisting">int xmlUTF8Strsize (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int len)<br />
+</pre><p>storage size of an UTF8 string the behaviour is not guaranteed if the input string is not UTF-8</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> in the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the storage size of the first 'len' <a href="libxml-SAX.html#characters">characters</a> of ARRAY</td></tr></tbody></table></div><h3><a name="xmlUTF8Strsub" id="xmlUTF8Strsub"></a>Function: xmlUTF8Strsub</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlUTF8Strsub (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int start, <br /> int len)<br />
+</pre><p>Create a substring from a given UTF-8 string Note: positions are given in units of UTF-8 chars</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>relative pos of first char</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>total number to copy</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to a newly created string or NULL if any problem</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlunicode.html b/libxml2-2.9.10/doc/html/libxml-xmlunicode.html
new file mode 100644
index 0000000..c7a3a3b
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlunicode.html
@@ -0,0 +1,512 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlunicode from libxml2</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></h1><h2>Module xmlunicode from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlstring.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlstring.html">xmlstring</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlversion.html">xmlversion</a></th><td><a accesskey="n" href="libxml-xmlversion.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>API for the Unicode character APIs This file is automatically generated from the UCS description files of the Unicode Character Database</p><h2>Table of Contents</h2><pre class="programlisting">int <a href="#xmlUCSIsAegeanNumbers">xmlUCSIsAegeanNumbers</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsAlphabeticPresentationForms">xmlUCSIsAlphabeticPresentationForms</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsArabic">xmlUCSIsArabic</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsArabicPresentationFormsA">xmlUCSIsArabicPresentationFormsA</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsArabicPresentationFormsB">xmlUCSIsArabicPresentationFormsB</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsArmenian">xmlUCSIsArmenian</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsArrows">xmlUCSIsArrows</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsBasicLatin">xmlUCSIsBasicLatin</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsBengali">xmlUCSIsBengali</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsBlock">xmlUCSIsBlock</a> (int code, <br /> const char * block)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsBlockElements">xmlUCSIsBlockElements</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsBopomofo">xmlUCSIsBopomofo</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsBopomofoExtended">xmlUCSIsBopomofoExtended</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsBoxDrawing">xmlUCSIsBoxDrawing</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsBraillePatterns">xmlUCSIsBraillePatterns</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsBuhid">xmlUCSIsBuhid</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsByzantineMusicalSymbols">xmlUCSIsByzantineMusicalSymbols</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCJKCompatibility">xmlUCSIsCJKCompatibility</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCJKCompatibilityForms">xmlUCSIsCJKCompatibilityForms</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCJKCompatibilityIdeographs">xmlUCSIsCJKCompatibilityIdeographs</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCJKCompatibilityIdeographsSupplement">xmlUCSIsCJKCompatibilityIdeographsSupplement</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCJKRadicalsSupplement">xmlUCSIsCJKRadicalsSupplement</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCJKSymbolsandPunctuation">xmlUCSIsCJKSymbolsandPunctuation</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCJKUnifiedIdeographs">xmlUCSIsCJKUnifiedIdeographs</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCJKUnifiedIdeographsExtensionA">xmlUCSIsCJKUnifiedIdeographsExtensionA</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCJKUnifiedIdeographsExtensionB">xmlUCSIsCJKUnifiedIdeographsExtensionB</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCat">xmlUCSIsCat</a> (int code, <br /> const char * cat)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatC">xmlUCSIsCatC</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatCc">xmlUCSIsCatCc</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatCf">xmlUCSIsCatCf</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatCo">xmlUCSIsCatCo</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatCs">xmlUCSIsCatCs</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatL">xmlUCSIsCatL</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatLl">xmlUCSIsCatLl</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatLm">xmlUCSIsCatLm</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatLo">xmlUCSIsCatLo</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatLt">xmlUCSIsCatLt</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatLu">xmlUCSIsCatLu</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatM">xmlUCSIsCatM</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatMc">xmlUCSIsCatMc</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatMe">xmlUCSIsCatMe</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatMn">xmlUCSIsCatMn</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatN">xmlUCSIsCatN</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatNd">xmlUCSIsCatNd</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatNl">xmlUCSIsCatNl</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatNo">xmlUCSIsCatNo</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatP">xmlUCSIsCatP</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatPc">xmlUCSIsCatPc</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatPd">xmlUCSIsCatPd</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatPe">xmlUCSIsCatPe</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatPf">xmlUCSIsCatPf</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatPi">xmlUCSIsCatPi</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatPo">xmlUCSIsCatPo</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatPs">xmlUCSIsCatPs</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatS">xmlUCSIsCatS</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatSc">xmlUCSIsCatSc</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatSk">xmlUCSIsCatSk</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatSm">xmlUCSIsCatSm</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatSo">xmlUCSIsCatSo</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatZ">xmlUCSIsCatZ</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatZl">xmlUCSIsCatZl</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatZp">xmlUCSIsCatZp</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCatZs">xmlUCSIsCatZs</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCherokee">xmlUCSIsCherokee</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCombiningDiacriticalMarks">xmlUCSIsCombiningDiacriticalMarks</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCombiningDiacriticalMarksforSymbols">xmlUCSIsCombiningDiacriticalMarksforSymbols</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCombiningHalfMarks">xmlUCSIsCombiningHalfMarks</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCombiningMarksforSymbols">xmlUCSIsCombiningMarksforSymbols</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsControlPictures">xmlUCSIsControlPictures</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCurrencySymbols">xmlUCSIsCurrencySymbols</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCypriotSyllabary">xmlUCSIsCypriotSyllabary</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCyrillic">xmlUCSIsCyrillic</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsCyrillicSupplement">xmlUCSIsCyrillicSupplement</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsDeseret">xmlUCSIsDeseret</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsDevanagari">xmlUCSIsDevanagari</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsDingbats">xmlUCSIsDingbats</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsEnclosedAlphanumerics">xmlUCSIsEnclosedAlphanumerics</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsEnclosedCJKLettersandMonths">xmlUCSIsEnclosedCJKLettersandMonths</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsEthiopic">xmlUCSIsEthiopic</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsGeneralPunctuation">xmlUCSIsGeneralPunctuation</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsGeometricShapes">xmlUCSIsGeometricShapes</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsGeorgian">xmlUCSIsGeorgian</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsGothic">xmlUCSIsGothic</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsGreek">xmlUCSIsGreek</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsGreekExtended">xmlUCSIsGreekExtended</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsGreekandCoptic">xmlUCSIsGreekandCoptic</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsGujarati">xmlUCSIsGujarati</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsGurmukhi">xmlUCSIsGurmukhi</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsHalfwidthandFullwidthForms">xmlUCSIsHalfwidthandFullwidthForms</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsHangulCompatibilityJamo">xmlUCSIsHangulCompatibilityJamo</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsHangulJamo">xmlUCSIsHangulJamo</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsHangulSyllables">xmlUCSIsHangulSyllables</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsHanunoo">xmlUCSIsHanunoo</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsHebrew">xmlUCSIsHebrew</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsHighPrivateUseSurrogates">xmlUCSIsHighPrivateUseSurrogates</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsHighSurrogates">xmlUCSIsHighSurrogates</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsHiragana">xmlUCSIsHiragana</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsIPAExtensions">xmlUCSIsIPAExtensions</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsIdeographicDescriptionCharacters">xmlUCSIsIdeographicDescriptionCharacters</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsKanbun">xmlUCSIsKanbun</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsKangxiRadicals">xmlUCSIsKangxiRadicals</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsKannada">xmlUCSIsKannada</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsKatakana">xmlUCSIsKatakana</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsKatakanaPhoneticExtensions">xmlUCSIsKatakanaPhoneticExtensions</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsKhmer">xmlUCSIsKhmer</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsKhmerSymbols">xmlUCSIsKhmerSymbols</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsLao">xmlUCSIsLao</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsLatin1Supplement">xmlUCSIsLatin1Supplement</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsLatinExtendedA">xmlUCSIsLatinExtendedA</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsLatinExtendedAdditional">xmlUCSIsLatinExtendedAdditional</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsLatinExtendedB">xmlUCSIsLatinExtendedB</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsLetterlikeSymbols">xmlUCSIsLetterlikeSymbols</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsLimbu">xmlUCSIsLimbu</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsLinearBIdeograms">xmlUCSIsLinearBIdeograms</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsLinearBSyllabary">xmlUCSIsLinearBSyllabary</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsLowSurrogates">xmlUCSIsLowSurrogates</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMalayalam">xmlUCSIsMalayalam</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMathematicalAlphanumericSymbols">xmlUCSIsMathematicalAlphanumericSymbols</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMathematicalOperators">xmlUCSIsMathematicalOperators</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMiscellaneousMathematicalSymbolsA">xmlUCSIsMiscellaneousMathematicalSymbolsA</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMiscellaneousMathematicalSymbolsB">xmlUCSIsMiscellaneousMathematicalSymbolsB</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMiscellaneousSymbols">xmlUCSIsMiscellaneousSymbols</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMiscellaneousSymbolsandArrows">xmlUCSIsMiscellaneousSymbolsandArrows</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMiscellaneousTechnical">xmlUCSIsMiscellaneousTechnical</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMongolian">xmlUCSIsMongolian</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMusicalSymbols">xmlUCSIsMusicalSymbols</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsMyanmar">xmlUCSIsMyanmar</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsNumberForms">xmlUCSIsNumberForms</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsOgham">xmlUCSIsOgham</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsOldItalic">xmlUCSIsOldItalic</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsOpticalCharacterRecognition">xmlUCSIsOpticalCharacterRecognition</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsOriya">xmlUCSIsOriya</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsOsmanya">xmlUCSIsOsmanya</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsPhoneticExtensions">xmlUCSIsPhoneticExtensions</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsPrivateUse">xmlUCSIsPrivateUse</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsPrivateUseArea">xmlUCSIsPrivateUseArea</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsRunic">xmlUCSIsRunic</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsShavian">xmlUCSIsShavian</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSinhala">xmlUCSIsSinhala</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSmallFormVariants">xmlUCSIsSmallFormVariants</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSpacingModifierLetters">xmlUCSIsSpacingModifierLetters</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSpecials">xmlUCSIsSpecials</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSuperscriptsandSubscripts">xmlUCSIsSuperscriptsandSubscripts</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSupplementalArrowsA">xmlUCSIsSupplementalArrowsA</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSupplementalArrowsB">xmlUCSIsSupplementalArrowsB</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSupplementalMathematicalOperators">xmlUCSIsSupplementalMathematicalOperators</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSupplementaryPrivateUseAreaA">xmlUCSIsSupplementaryPrivateUseAreaA</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSupplementaryPrivateUseAreaB">xmlUCSIsSupplementaryPrivateUseAreaB</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsSyriac">xmlUCSIsSyriac</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsTagalog">xmlUCSIsTagalog</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsTagbanwa">xmlUCSIsTagbanwa</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsTags">xmlUCSIsTags</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsTaiLe">xmlUCSIsTaiLe</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsTaiXuanJingSymbols">xmlUCSIsTaiXuanJingSymbols</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsTamil">xmlUCSIsTamil</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsTelugu">xmlUCSIsTelugu</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsThaana">xmlUCSIsThaana</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsThai">xmlUCSIsThai</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsTibetan">xmlUCSIsTibetan</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsUgaritic">xmlUCSIsUgaritic</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsUnifiedCanadianAboriginalSyllabics">xmlUCSIsUnifiedCanadianAboriginalSyllabics</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsVariationSelectors">xmlUCSIsVariationSelectors</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsVariationSelectorsSupplement">xmlUCSIsVariationSelectorsSupplement</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsYiRadicals">xmlUCSIsYiRadicals</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsYiSyllables">xmlUCSIsYiSyllables</a> (int code)</pre>
+<pre class="programlisting">int <a href="#xmlUCSIsYijingHexagramSymbols">xmlUCSIsYijingHexagramSymbols</a> (int code)</pre>
+<h2>Description</h2>
+<h3><a name="xmlUCSIsAegeanNumbers" id="xmlUCSIsAegeanNumbers"></a>Function: xmlUCSIsAegeanNumbers</h3><pre class="programlisting">int xmlUCSIsAegeanNumbers (int code)<br />
+</pre><p>Check whether the character is part of AegeanNumbers UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsAlphabeticPresentationForms" id="xmlUCSIsAlphabeticPresentationForms"></a>Function: xmlUCSIsAlphabeticPresentationForms</h3><pre class="programlisting">int xmlUCSIsAlphabeticPresentationForms (int code)<br />
+</pre><p>Check whether the character is part of AlphabeticPresentationForms UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsArabic" id="xmlUCSIsArabic"></a>Function: xmlUCSIsArabic</h3><pre class="programlisting">int xmlUCSIsArabic (int code)<br />
+</pre><p>Check whether the character is part of Arabic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsArabicPresentationFormsA" id="xmlUCSIsArabicPresentationFormsA"></a>Function: xmlUCSIsArabicPresentationFormsA</h3><pre class="programlisting">int xmlUCSIsArabicPresentationFormsA (int code)<br />
+</pre><p>Check whether the character is part of ArabicPresentationForms-A UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsArabicPresentationFormsB" id="xmlUCSIsArabicPresentationFormsB"></a>Function: xmlUCSIsArabicPresentationFormsB</h3><pre class="programlisting">int xmlUCSIsArabicPresentationFormsB (int code)<br />
+</pre><p>Check whether the character is part of ArabicPresentationForms-B UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsArmenian" id="xmlUCSIsArmenian"></a>Function: xmlUCSIsArmenian</h3><pre class="programlisting">int xmlUCSIsArmenian (int code)<br />
+</pre><p>Check whether the character is part of Armenian UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsArrows" id="xmlUCSIsArrows"></a>Function: xmlUCSIsArrows</h3><pre class="programlisting">int xmlUCSIsArrows (int code)<br />
+</pre><p>Check whether the character is part of Arrows UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsBasicLatin" id="xmlUCSIsBasicLatin"></a>Function: xmlUCSIsBasicLatin</h3><pre class="programlisting">int xmlUCSIsBasicLatin (int code)<br />
+</pre><p>Check whether the character is part of BasicLatin UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsBengali" id="xmlUCSIsBengali"></a>Function: xmlUCSIsBengali</h3><pre class="programlisting">int xmlUCSIsBengali (int code)<br />
+</pre><p>Check whether the character is part of Bengali UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsBlock" id="xmlUCSIsBlock"></a>Function: xmlUCSIsBlock</h3><pre class="programlisting">int xmlUCSIsBlock (int code, <br /> const char * block)<br />
+</pre><p>Check whether the character is part of the UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>block</tt></i>:</span></td><td>UCS block name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 on unknown block</td></tr></tbody></table></div><h3><a name="xmlUCSIsBlockElements" id="xmlUCSIsBlockElements"></a>Function: xmlUCSIsBlockElements</h3><pre class="programlisting">int xmlUCSIsBlockElements (int code)<br />
+</pre><p>Check whether the character is part of BlockElements UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsBopomofo" id="xmlUCSIsBopomofo"></a>Function: xmlUCSIsBopomofo</h3><pre class="programlisting">int xmlUCSIsBopomofo (int code)<br />
+</pre><p>Check whether the character is part of Bopomofo UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsBopomofoExtended" id="xmlUCSIsBopomofoExtended"></a>Function: xmlUCSIsBopomofoExtended</h3><pre class="programlisting">int xmlUCSIsBopomofoExtended (int code)<br />
+</pre><p>Check whether the character is part of BopomofoExtended UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsBoxDrawing" id="xmlUCSIsBoxDrawing"></a>Function: xmlUCSIsBoxDrawing</h3><pre class="programlisting">int xmlUCSIsBoxDrawing (int code)<br />
+</pre><p>Check whether the character is part of BoxDrawing UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsBraillePatterns" id="xmlUCSIsBraillePatterns"></a>Function: xmlUCSIsBraillePatterns</h3><pre class="programlisting">int xmlUCSIsBraillePatterns (int code)<br />
+</pre><p>Check whether the character is part of BraillePatterns UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsBuhid" id="xmlUCSIsBuhid"></a>Function: xmlUCSIsBuhid</h3><pre class="programlisting">int xmlUCSIsBuhid (int code)<br />
+</pre><p>Check whether the character is part of Buhid UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsByzantineMusicalSymbols" id="xmlUCSIsByzantineMusicalSymbols"></a>Function: xmlUCSIsByzantineMusicalSymbols</h3><pre class="programlisting">int xmlUCSIsByzantineMusicalSymbols (int code)<br />
+</pre><p>Check whether the character is part of ByzantineMusicalSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCJKCompatibility" id="xmlUCSIsCJKCompatibility"></a>Function: xmlUCSIsCJKCompatibility</h3><pre class="programlisting">int xmlUCSIsCJKCompatibility (int code)<br />
+</pre><p>Check whether the character is part of CJKCompatibility UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCJKCompatibilityForms" id="xmlUCSIsCJKCompatibilityForms"></a>Function: xmlUCSIsCJKCompatibilityForms</h3><pre class="programlisting">int xmlUCSIsCJKCompatibilityForms (int code)<br />
+</pre><p>Check whether the character is part of CJKCompatibilityForms UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCJKCompatibilityIdeographs" id="xmlUCSIsCJKCompatibilityIdeographs"></a>Function: xmlUCSIsCJKCompatibilityIdeographs</h3><pre class="programlisting">int xmlUCSIsCJKCompatibilityIdeographs (int code)<br />
+</pre><p>Check whether the character is part of CJKCompatibilityIdeographs UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCJKCompatibilityIdeographsSupplement" id="xmlUCSIsCJKCompatibilityIdeographsSupplement"></a>Function: xmlUCSIsCJKCompatibilityIdeographsSupplement</h3><pre class="programlisting">int xmlUCSIsCJKCompatibilityIdeographsSupplement (int code)<br />
+</pre><p>Check whether the character is part of CJKCompatibilityIdeographsSupplement UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCJKRadicalsSupplement" id="xmlUCSIsCJKRadicalsSupplement"></a>Function: xmlUCSIsCJKRadicalsSupplement</h3><pre class="programlisting">int xmlUCSIsCJKRadicalsSupplement (int code)<br />
+</pre><p>Check whether the character is part of CJKRadicalsSupplement UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCJKSymbolsandPunctuation" id="xmlUCSIsCJKSymbolsandPunctuation"></a>Function: xmlUCSIsCJKSymbolsandPunctuation</h3><pre class="programlisting">int xmlUCSIsCJKSymbolsandPunctuation (int code)<br />
+</pre><p>Check whether the character is part of CJKSymbolsandPunctuation UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCJKUnifiedIdeographs" id="xmlUCSIsCJKUnifiedIdeographs"></a>Function: xmlUCSIsCJKUnifiedIdeographs</h3><pre class="programlisting">int xmlUCSIsCJKUnifiedIdeographs (int code)<br />
+</pre><p>Check whether the character is part of CJKUnifiedIdeographs UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCJKUnifiedIdeographsExtensionA" id="xmlUCSIsCJKUnifiedIdeographsExtensionA"></a>Function: xmlUCSIsCJKUnifiedIdeographsExtensionA</h3><pre class="programlisting">int xmlUCSIsCJKUnifiedIdeographsExtensionA (int code)<br />
+</pre><p>Check whether the character is part of CJKUnifiedIdeographsExtensionA UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCJKUnifiedIdeographsExtensionB" id="xmlUCSIsCJKUnifiedIdeographsExtensionB"></a>Function: xmlUCSIsCJKUnifiedIdeographsExtensionB</h3><pre class="programlisting">int xmlUCSIsCJKUnifiedIdeographsExtensionB (int code)<br />
+</pre><p>Check whether the character is part of CJKUnifiedIdeographsExtensionB UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCat" id="xmlUCSIsCat"></a>Function: xmlUCSIsCat</h3><pre class="programlisting">int xmlUCSIsCat (int code, <br /> const char * cat)<br />
+</pre><p>Check whether the character is part of the UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>cat</tt></i>:</span></td><td>UCS Category name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 on unknown category</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatC" id="xmlUCSIsCatC"></a>Function: xmlUCSIsCatC</h3><pre class="programlisting">int xmlUCSIsCatC (int code)<br />
+</pre><p>Check whether the character is part of C UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatCc" id="xmlUCSIsCatCc"></a>Function: xmlUCSIsCatCc</h3><pre class="programlisting">int xmlUCSIsCatCc (int code)<br />
+</pre><p>Check whether the character is part of Cc UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatCf" id="xmlUCSIsCatCf"></a>Function: xmlUCSIsCatCf</h3><pre class="programlisting">int xmlUCSIsCatCf (int code)<br />
+</pre><p>Check whether the character is part of Cf UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatCo" id="xmlUCSIsCatCo"></a>Function: xmlUCSIsCatCo</h3><pre class="programlisting">int xmlUCSIsCatCo (int code)<br />
+</pre><p>Check whether the character is part of Co UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatCs" id="xmlUCSIsCatCs"></a>Function: xmlUCSIsCatCs</h3><pre class="programlisting">int xmlUCSIsCatCs (int code)<br />
+</pre><p>Check whether the character is part of Cs UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatL" id="xmlUCSIsCatL"></a>Function: xmlUCSIsCatL</h3><pre class="programlisting">int xmlUCSIsCatL (int code)<br />
+</pre><p>Check whether the character is part of L UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatLl" id="xmlUCSIsCatLl"></a>Function: xmlUCSIsCatLl</h3><pre class="programlisting">int xmlUCSIsCatLl (int code)<br />
+</pre><p>Check whether the character is part of Ll UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatLm" id="xmlUCSIsCatLm"></a>Function: xmlUCSIsCatLm</h3><pre class="programlisting">int xmlUCSIsCatLm (int code)<br />
+</pre><p>Check whether the character is part of Lm UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatLo" id="xmlUCSIsCatLo"></a>Function: xmlUCSIsCatLo</h3><pre class="programlisting">int xmlUCSIsCatLo (int code)<br />
+</pre><p>Check whether the character is part of Lo UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatLt" id="xmlUCSIsCatLt"></a>Function: xmlUCSIsCatLt</h3><pre class="programlisting">int xmlUCSIsCatLt (int code)<br />
+</pre><p>Check whether the character is part of Lt UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatLu" id="xmlUCSIsCatLu"></a>Function: xmlUCSIsCatLu</h3><pre class="programlisting">int xmlUCSIsCatLu (int code)<br />
+</pre><p>Check whether the character is part of Lu UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatM" id="xmlUCSIsCatM"></a>Function: xmlUCSIsCatM</h3><pre class="programlisting">int xmlUCSIsCatM (int code)<br />
+</pre><p>Check whether the character is part of M UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatMc" id="xmlUCSIsCatMc"></a>Function: xmlUCSIsCatMc</h3><pre class="programlisting">int xmlUCSIsCatMc (int code)<br />
+</pre><p>Check whether the character is part of Mc UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatMe" id="xmlUCSIsCatMe"></a>Function: xmlUCSIsCatMe</h3><pre class="programlisting">int xmlUCSIsCatMe (int code)<br />
+</pre><p>Check whether the character is part of Me UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatMn" id="xmlUCSIsCatMn"></a>Function: xmlUCSIsCatMn</h3><pre class="programlisting">int xmlUCSIsCatMn (int code)<br />
+</pre><p>Check whether the character is part of Mn UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatN" id="xmlUCSIsCatN"></a>Function: xmlUCSIsCatN</h3><pre class="programlisting">int xmlUCSIsCatN (int code)<br />
+</pre><p>Check whether the character is part of N UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatNd" id="xmlUCSIsCatNd"></a>Function: xmlUCSIsCatNd</h3><pre class="programlisting">int xmlUCSIsCatNd (int code)<br />
+</pre><p>Check whether the character is part of Nd UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatNl" id="xmlUCSIsCatNl"></a>Function: xmlUCSIsCatNl</h3><pre class="programlisting">int xmlUCSIsCatNl (int code)<br />
+</pre><p>Check whether the character is part of Nl UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatNo" id="xmlUCSIsCatNo"></a>Function: xmlUCSIsCatNo</h3><pre class="programlisting">int xmlUCSIsCatNo (int code)<br />
+</pre><p>Check whether the character is part of No UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatP" id="xmlUCSIsCatP"></a>Function: xmlUCSIsCatP</h3><pre class="programlisting">int xmlUCSIsCatP (int code)<br />
+</pre><p>Check whether the character is part of P UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatPc" id="xmlUCSIsCatPc"></a>Function: xmlUCSIsCatPc</h3><pre class="programlisting">int xmlUCSIsCatPc (int code)<br />
+</pre><p>Check whether the character is part of Pc UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatPd" id="xmlUCSIsCatPd"></a>Function: xmlUCSIsCatPd</h3><pre class="programlisting">int xmlUCSIsCatPd (int code)<br />
+</pre><p>Check whether the character is part of Pd UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatPe" id="xmlUCSIsCatPe"></a>Function: xmlUCSIsCatPe</h3><pre class="programlisting">int xmlUCSIsCatPe (int code)<br />
+</pre><p>Check whether the character is part of Pe UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatPf" id="xmlUCSIsCatPf"></a>Function: xmlUCSIsCatPf</h3><pre class="programlisting">int xmlUCSIsCatPf (int code)<br />
+</pre><p>Check whether the character is part of Pf UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatPi" id="xmlUCSIsCatPi"></a>Function: xmlUCSIsCatPi</h3><pre class="programlisting">int xmlUCSIsCatPi (int code)<br />
+</pre><p>Check whether the character is part of Pi UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatPo" id="xmlUCSIsCatPo"></a>Function: xmlUCSIsCatPo</h3><pre class="programlisting">int xmlUCSIsCatPo (int code)<br />
+</pre><p>Check whether the character is part of Po UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatPs" id="xmlUCSIsCatPs"></a>Function: xmlUCSIsCatPs</h3><pre class="programlisting">int xmlUCSIsCatPs (int code)<br />
+</pre><p>Check whether the character is part of Ps UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatS" id="xmlUCSIsCatS"></a>Function: xmlUCSIsCatS</h3><pre class="programlisting">int xmlUCSIsCatS (int code)<br />
+</pre><p>Check whether the character is part of S UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatSc" id="xmlUCSIsCatSc"></a>Function: xmlUCSIsCatSc</h3><pre class="programlisting">int xmlUCSIsCatSc (int code)<br />
+</pre><p>Check whether the character is part of Sc UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatSk" id="xmlUCSIsCatSk"></a>Function: xmlUCSIsCatSk</h3><pre class="programlisting">int xmlUCSIsCatSk (int code)<br />
+</pre><p>Check whether the character is part of Sk UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatSm" id="xmlUCSIsCatSm"></a>Function: xmlUCSIsCatSm</h3><pre class="programlisting">int xmlUCSIsCatSm (int code)<br />
+</pre><p>Check whether the character is part of Sm UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatSo" id="xmlUCSIsCatSo"></a>Function: xmlUCSIsCatSo</h3><pre class="programlisting">int xmlUCSIsCatSo (int code)<br />
+</pre><p>Check whether the character is part of So UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatZ" id="xmlUCSIsCatZ"></a>Function: xmlUCSIsCatZ</h3><pre class="programlisting">int xmlUCSIsCatZ (int code)<br />
+</pre><p>Check whether the character is part of Z UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatZl" id="xmlUCSIsCatZl"></a>Function: xmlUCSIsCatZl</h3><pre class="programlisting">int xmlUCSIsCatZl (int code)<br />
+</pre><p>Check whether the character is part of Zl UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatZp" id="xmlUCSIsCatZp"></a>Function: xmlUCSIsCatZp</h3><pre class="programlisting">int xmlUCSIsCatZp (int code)<br />
+</pre><p>Check whether the character is part of Zp UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCatZs" id="xmlUCSIsCatZs"></a>Function: xmlUCSIsCatZs</h3><pre class="programlisting">int xmlUCSIsCatZs (int code)<br />
+</pre><p>Check whether the character is part of Zs UCS Category</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCherokee" id="xmlUCSIsCherokee"></a>Function: xmlUCSIsCherokee</h3><pre class="programlisting">int xmlUCSIsCherokee (int code)<br />
+</pre><p>Check whether the character is part of Cherokee UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCombiningDiacriticalMarks" id="xmlUCSIsCombiningDiacriticalMarks"></a>Function: xmlUCSIsCombiningDiacriticalMarks</h3><pre class="programlisting">int xmlUCSIsCombiningDiacriticalMarks (int code)<br />
+</pre><p>Check whether the character is part of CombiningDiacriticalMarks UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCombiningDiacriticalMarksforSymbols" id="xmlUCSIsCombiningDiacriticalMarksforSymbols"></a>Function: xmlUCSIsCombiningDiacriticalMarksforSymbols</h3><pre class="programlisting">int xmlUCSIsCombiningDiacriticalMarksforSymbols (int code)<br />
+</pre><p>Check whether the character is part of CombiningDiacriticalMarksforSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCombiningHalfMarks" id="xmlUCSIsCombiningHalfMarks"></a>Function: xmlUCSIsCombiningHalfMarks</h3><pre class="programlisting">int xmlUCSIsCombiningHalfMarks (int code)<br />
+</pre><p>Check whether the character is part of CombiningHalfMarks UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCombiningMarksforSymbols" id="xmlUCSIsCombiningMarksforSymbols"></a>Function: xmlUCSIsCombiningMarksforSymbols</h3><pre class="programlisting">int xmlUCSIsCombiningMarksforSymbols (int code)<br />
+</pre><p>Check whether the character is part of CombiningMarksforSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsControlPictures" id="xmlUCSIsControlPictures"></a>Function: xmlUCSIsControlPictures</h3><pre class="programlisting">int xmlUCSIsControlPictures (int code)<br />
+</pre><p>Check whether the character is part of ControlPictures UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCurrencySymbols" id="xmlUCSIsCurrencySymbols"></a>Function: xmlUCSIsCurrencySymbols</h3><pre class="programlisting">int xmlUCSIsCurrencySymbols (int code)<br />
+</pre><p>Check whether the character is part of CurrencySymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCypriotSyllabary" id="xmlUCSIsCypriotSyllabary"></a>Function: xmlUCSIsCypriotSyllabary</h3><pre class="programlisting">int xmlUCSIsCypriotSyllabary (int code)<br />
+</pre><p>Check whether the character is part of CypriotSyllabary UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCyrillic" id="xmlUCSIsCyrillic"></a>Function: xmlUCSIsCyrillic</h3><pre class="programlisting">int xmlUCSIsCyrillic (int code)<br />
+</pre><p>Check whether the character is part of Cyrillic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsCyrillicSupplement" id="xmlUCSIsCyrillicSupplement"></a>Function: xmlUCSIsCyrillicSupplement</h3><pre class="programlisting">int xmlUCSIsCyrillicSupplement (int code)<br />
+</pre><p>Check whether the character is part of CyrillicSupplement UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsDeseret" id="xmlUCSIsDeseret"></a>Function: xmlUCSIsDeseret</h3><pre class="programlisting">int xmlUCSIsDeseret (int code)<br />
+</pre><p>Check whether the character is part of Deseret UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsDevanagari" id="xmlUCSIsDevanagari"></a>Function: xmlUCSIsDevanagari</h3><pre class="programlisting">int xmlUCSIsDevanagari (int code)<br />
+</pre><p>Check whether the character is part of Devanagari UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsDingbats" id="xmlUCSIsDingbats"></a>Function: xmlUCSIsDingbats</h3><pre class="programlisting">int xmlUCSIsDingbats (int code)<br />
+</pre><p>Check whether the character is part of Dingbats UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsEnclosedAlphanumerics" id="xmlUCSIsEnclosedAlphanumerics"></a>Function: xmlUCSIsEnclosedAlphanumerics</h3><pre class="programlisting">int xmlUCSIsEnclosedAlphanumerics (int code)<br />
+</pre><p>Check whether the character is part of EnclosedAlphanumerics UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsEnclosedCJKLettersandMonths" id="xmlUCSIsEnclosedCJKLettersandMonths"></a>Function: xmlUCSIsEnclosedCJKLettersandMonths</h3><pre class="programlisting">int xmlUCSIsEnclosedCJKLettersandMonths (int code)<br />
+</pre><p>Check whether the character is part of EnclosedCJKLettersandMonths UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsEthiopic" id="xmlUCSIsEthiopic"></a>Function: xmlUCSIsEthiopic</h3><pre class="programlisting">int xmlUCSIsEthiopic (int code)<br />
+</pre><p>Check whether the character is part of Ethiopic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsGeneralPunctuation" id="xmlUCSIsGeneralPunctuation"></a>Function: xmlUCSIsGeneralPunctuation</h3><pre class="programlisting">int xmlUCSIsGeneralPunctuation (int code)<br />
+</pre><p>Check whether the character is part of GeneralPunctuation UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsGeometricShapes" id="xmlUCSIsGeometricShapes"></a>Function: xmlUCSIsGeometricShapes</h3><pre class="programlisting">int xmlUCSIsGeometricShapes (int code)<br />
+</pre><p>Check whether the character is part of GeometricShapes UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsGeorgian" id="xmlUCSIsGeorgian"></a>Function: xmlUCSIsGeorgian</h3><pre class="programlisting">int xmlUCSIsGeorgian (int code)<br />
+</pre><p>Check whether the character is part of Georgian UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsGothic" id="xmlUCSIsGothic"></a>Function: xmlUCSIsGothic</h3><pre class="programlisting">int xmlUCSIsGothic (int code)<br />
+</pre><p>Check whether the character is part of Gothic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsGreek" id="xmlUCSIsGreek"></a>Function: xmlUCSIsGreek</h3><pre class="programlisting">int xmlUCSIsGreek (int code)<br />
+</pre><p>Check whether the character is part of Greek UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsGreekExtended" id="xmlUCSIsGreekExtended"></a>Function: xmlUCSIsGreekExtended</h3><pre class="programlisting">int xmlUCSIsGreekExtended (int code)<br />
+</pre><p>Check whether the character is part of GreekExtended UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsGreekandCoptic" id="xmlUCSIsGreekandCoptic"></a>Function: xmlUCSIsGreekandCoptic</h3><pre class="programlisting">int xmlUCSIsGreekandCoptic (int code)<br />
+</pre><p>Check whether the character is part of GreekandCoptic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsGujarati" id="xmlUCSIsGujarati"></a>Function: xmlUCSIsGujarati</h3><pre class="programlisting">int xmlUCSIsGujarati (int code)<br />
+</pre><p>Check whether the character is part of Gujarati UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsGurmukhi" id="xmlUCSIsGurmukhi"></a>Function: xmlUCSIsGurmukhi</h3><pre class="programlisting">int xmlUCSIsGurmukhi (int code)<br />
+</pre><p>Check whether the character is part of Gurmukhi UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsHalfwidthandFullwidthForms" id="xmlUCSIsHalfwidthandFullwidthForms"></a>Function: xmlUCSIsHalfwidthandFullwidthForms</h3><pre class="programlisting">int xmlUCSIsHalfwidthandFullwidthForms (int code)<br />
+</pre><p>Check whether the character is part of HalfwidthandFullwidthForms UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsHangulCompatibilityJamo" id="xmlUCSIsHangulCompatibilityJamo"></a>Function: xmlUCSIsHangulCompatibilityJamo</h3><pre class="programlisting">int xmlUCSIsHangulCompatibilityJamo (int code)<br />
+</pre><p>Check whether the character is part of HangulCompatibilityJamo UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsHangulJamo" id="xmlUCSIsHangulJamo"></a>Function: xmlUCSIsHangulJamo</h3><pre class="programlisting">int xmlUCSIsHangulJamo (int code)<br />
+</pre><p>Check whether the character is part of HangulJamo UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsHangulSyllables" id="xmlUCSIsHangulSyllables"></a>Function: xmlUCSIsHangulSyllables</h3><pre class="programlisting">int xmlUCSIsHangulSyllables (int code)<br />
+</pre><p>Check whether the character is part of HangulSyllables UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsHanunoo" id="xmlUCSIsHanunoo"></a>Function: xmlUCSIsHanunoo</h3><pre class="programlisting">int xmlUCSIsHanunoo (int code)<br />
+</pre><p>Check whether the character is part of Hanunoo UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsHebrew" id="xmlUCSIsHebrew"></a>Function: xmlUCSIsHebrew</h3><pre class="programlisting">int xmlUCSIsHebrew (int code)<br />
+</pre><p>Check whether the character is part of Hebrew UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsHighPrivateUseSurrogates" id="xmlUCSIsHighPrivateUseSurrogates"></a>Function: xmlUCSIsHighPrivateUseSurrogates</h3><pre class="programlisting">int xmlUCSIsHighPrivateUseSurrogates (int code)<br />
+</pre><p>Check whether the character is part of HighPrivateUseSurrogates UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsHighSurrogates" id="xmlUCSIsHighSurrogates"></a>Function: xmlUCSIsHighSurrogates</h3><pre class="programlisting">int xmlUCSIsHighSurrogates (int code)<br />
+</pre><p>Check whether the character is part of HighSurrogates UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsHiragana" id="xmlUCSIsHiragana"></a>Function: xmlUCSIsHiragana</h3><pre class="programlisting">int xmlUCSIsHiragana (int code)<br />
+</pre><p>Check whether the character is part of Hiragana UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsIPAExtensions" id="xmlUCSIsIPAExtensions"></a>Function: xmlUCSIsIPAExtensions</h3><pre class="programlisting">int xmlUCSIsIPAExtensions (int code)<br />
+</pre><p>Check whether the character is part of IPAExtensions UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsIdeographicDescriptionCharacters" id="xmlUCSIsIdeographicDescriptionCharacters"></a>Function: xmlUCSIsIdeographicDescriptionCharacters</h3><pre class="programlisting">int xmlUCSIsIdeographicDescriptionCharacters (int code)<br />
+</pre><p>Check whether the character is part of IdeographicDescriptionCharacters UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsKanbun" id="xmlUCSIsKanbun"></a>Function: xmlUCSIsKanbun</h3><pre class="programlisting">int xmlUCSIsKanbun (int code)<br />
+</pre><p>Check whether the character is part of Kanbun UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsKangxiRadicals" id="xmlUCSIsKangxiRadicals"></a>Function: xmlUCSIsKangxiRadicals</h3><pre class="programlisting">int xmlUCSIsKangxiRadicals (int code)<br />
+</pre><p>Check whether the character is part of KangxiRadicals UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsKannada" id="xmlUCSIsKannada"></a>Function: xmlUCSIsKannada</h3><pre class="programlisting">int xmlUCSIsKannada (int code)<br />
+</pre><p>Check whether the character is part of Kannada UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsKatakana" id="xmlUCSIsKatakana"></a>Function: xmlUCSIsKatakana</h3><pre class="programlisting">int xmlUCSIsKatakana (int code)<br />
+</pre><p>Check whether the character is part of Katakana UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsKatakanaPhoneticExtensions" id="xmlUCSIsKatakanaPhoneticExtensions"></a>Function: xmlUCSIsKatakanaPhoneticExtensions</h3><pre class="programlisting">int xmlUCSIsKatakanaPhoneticExtensions (int code)<br />
+</pre><p>Check whether the character is part of KatakanaPhoneticExtensions UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsKhmer" id="xmlUCSIsKhmer"></a>Function: xmlUCSIsKhmer</h3><pre class="programlisting">int xmlUCSIsKhmer (int code)<br />
+</pre><p>Check whether the character is part of Khmer UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsKhmerSymbols" id="xmlUCSIsKhmerSymbols"></a>Function: xmlUCSIsKhmerSymbols</h3><pre class="programlisting">int xmlUCSIsKhmerSymbols (int code)<br />
+</pre><p>Check whether the character is part of KhmerSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsLao" id="xmlUCSIsLao"></a>Function: xmlUCSIsLao</h3><pre class="programlisting">int xmlUCSIsLao (int code)<br />
+</pre><p>Check whether the character is part of Lao UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsLatin1Supplement" id="xmlUCSIsLatin1Supplement"></a>Function: xmlUCSIsLatin1Supplement</h3><pre class="programlisting">int xmlUCSIsLatin1Supplement (int code)<br />
+</pre><p>Check whether the character is part of Latin-1Supplement UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsLatinExtendedA" id="xmlUCSIsLatinExtendedA"></a>Function: xmlUCSIsLatinExtendedA</h3><pre class="programlisting">int xmlUCSIsLatinExtendedA (int code)<br />
+</pre><p>Check whether the character is part of LatinExtended-A UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsLatinExtendedAdditional" id="xmlUCSIsLatinExtendedAdditional"></a>Function: xmlUCSIsLatinExtendedAdditional</h3><pre class="programlisting">int xmlUCSIsLatinExtendedAdditional (int code)<br />
+</pre><p>Check whether the character is part of LatinExtendedAdditional UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsLatinExtendedB" id="xmlUCSIsLatinExtendedB"></a>Function: xmlUCSIsLatinExtendedB</h3><pre class="programlisting">int xmlUCSIsLatinExtendedB (int code)<br />
+</pre><p>Check whether the character is part of LatinExtended-B UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsLetterlikeSymbols" id="xmlUCSIsLetterlikeSymbols"></a>Function: xmlUCSIsLetterlikeSymbols</h3><pre class="programlisting">int xmlUCSIsLetterlikeSymbols (int code)<br />
+</pre><p>Check whether the character is part of LetterlikeSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsLimbu" id="xmlUCSIsLimbu"></a>Function: xmlUCSIsLimbu</h3><pre class="programlisting">int xmlUCSIsLimbu (int code)<br />
+</pre><p>Check whether the character is part of Limbu UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsLinearBIdeograms" id="xmlUCSIsLinearBIdeograms"></a>Function: xmlUCSIsLinearBIdeograms</h3><pre class="programlisting">int xmlUCSIsLinearBIdeograms (int code)<br />
+</pre><p>Check whether the character is part of LinearBIdeograms UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsLinearBSyllabary" id="xmlUCSIsLinearBSyllabary"></a>Function: xmlUCSIsLinearBSyllabary</h3><pre class="programlisting">int xmlUCSIsLinearBSyllabary (int code)<br />
+</pre><p>Check whether the character is part of LinearBSyllabary UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsLowSurrogates" id="xmlUCSIsLowSurrogates"></a>Function: xmlUCSIsLowSurrogates</h3><pre class="programlisting">int xmlUCSIsLowSurrogates (int code)<br />
+</pre><p>Check whether the character is part of LowSurrogates UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMalayalam" id="xmlUCSIsMalayalam"></a>Function: xmlUCSIsMalayalam</h3><pre class="programlisting">int xmlUCSIsMalayalam (int code)<br />
+</pre><p>Check whether the character is part of Malayalam UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMathematicalAlphanumericSymbols" id="xmlUCSIsMathematicalAlphanumericSymbols"></a>Function: xmlUCSIsMathematicalAlphanumericSymbols</h3><pre class="programlisting">int xmlUCSIsMathematicalAlphanumericSymbols (int code)<br />
+</pre><p>Check whether the character is part of MathematicalAlphanumericSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMathematicalOperators" id="xmlUCSIsMathematicalOperators"></a>Function: xmlUCSIsMathematicalOperators</h3><pre class="programlisting">int xmlUCSIsMathematicalOperators (int code)<br />
+</pre><p>Check whether the character is part of MathematicalOperators UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMiscellaneousMathematicalSymbolsA" id="xmlUCSIsMiscellaneousMathematicalSymbolsA"></a>Function: xmlUCSIsMiscellaneousMathematicalSymbolsA</h3><pre class="programlisting">int xmlUCSIsMiscellaneousMathematicalSymbolsA (int code)<br />
+</pre><p>Check whether the character is part of MiscellaneousMathematicalSymbols-A UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMiscellaneousMathematicalSymbolsB" id="xmlUCSIsMiscellaneousMathematicalSymbolsB"></a>Function: xmlUCSIsMiscellaneousMathematicalSymbolsB</h3><pre class="programlisting">int xmlUCSIsMiscellaneousMathematicalSymbolsB (int code)<br />
+</pre><p>Check whether the character is part of MiscellaneousMathematicalSymbols-B UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMiscellaneousSymbols" id="xmlUCSIsMiscellaneousSymbols"></a>Function: xmlUCSIsMiscellaneousSymbols</h3><pre class="programlisting">int xmlUCSIsMiscellaneousSymbols (int code)<br />
+</pre><p>Check whether the character is part of MiscellaneousSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMiscellaneousSymbolsandArrows" id="xmlUCSIsMiscellaneousSymbolsandArrows"></a>Function: xmlUCSIsMiscellaneousSymbolsandArrows</h3><pre class="programlisting">int xmlUCSIsMiscellaneousSymbolsandArrows (int code)<br />
+</pre><p>Check whether the character is part of MiscellaneousSymbolsandArrows UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMiscellaneousTechnical" id="xmlUCSIsMiscellaneousTechnical"></a>Function: xmlUCSIsMiscellaneousTechnical</h3><pre class="programlisting">int xmlUCSIsMiscellaneousTechnical (int code)<br />
+</pre><p>Check whether the character is part of MiscellaneousTechnical UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMongolian" id="xmlUCSIsMongolian"></a>Function: xmlUCSIsMongolian</h3><pre class="programlisting">int xmlUCSIsMongolian (int code)<br />
+</pre><p>Check whether the character is part of Mongolian UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMusicalSymbols" id="xmlUCSIsMusicalSymbols"></a>Function: xmlUCSIsMusicalSymbols</h3><pre class="programlisting">int xmlUCSIsMusicalSymbols (int code)<br />
+</pre><p>Check whether the character is part of MusicalSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsMyanmar" id="xmlUCSIsMyanmar"></a>Function: xmlUCSIsMyanmar</h3><pre class="programlisting">int xmlUCSIsMyanmar (int code)<br />
+</pre><p>Check whether the character is part of Myanmar UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsNumberForms" id="xmlUCSIsNumberForms"></a>Function: xmlUCSIsNumberForms</h3><pre class="programlisting">int xmlUCSIsNumberForms (int code)<br />
+</pre><p>Check whether the character is part of NumberForms UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsOgham" id="xmlUCSIsOgham"></a>Function: xmlUCSIsOgham</h3><pre class="programlisting">int xmlUCSIsOgham (int code)<br />
+</pre><p>Check whether the character is part of Ogham UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsOldItalic" id="xmlUCSIsOldItalic"></a>Function: xmlUCSIsOldItalic</h3><pre class="programlisting">int xmlUCSIsOldItalic (int code)<br />
+</pre><p>Check whether the character is part of OldItalic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsOpticalCharacterRecognition" id="xmlUCSIsOpticalCharacterRecognition"></a>Function: xmlUCSIsOpticalCharacterRecognition</h3><pre class="programlisting">int xmlUCSIsOpticalCharacterRecognition (int code)<br />
+</pre><p>Check whether the character is part of OpticalCharacterRecognition UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsOriya" id="xmlUCSIsOriya"></a>Function: xmlUCSIsOriya</h3><pre class="programlisting">int xmlUCSIsOriya (int code)<br />
+</pre><p>Check whether the character is part of Oriya UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsOsmanya" id="xmlUCSIsOsmanya"></a>Function: xmlUCSIsOsmanya</h3><pre class="programlisting">int xmlUCSIsOsmanya (int code)<br />
+</pre><p>Check whether the character is part of Osmanya UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsPhoneticExtensions" id="xmlUCSIsPhoneticExtensions"></a>Function: xmlUCSIsPhoneticExtensions</h3><pre class="programlisting">int xmlUCSIsPhoneticExtensions (int code)<br />
+</pre><p>Check whether the character is part of PhoneticExtensions UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsPrivateUse" id="xmlUCSIsPrivateUse"></a>Function: xmlUCSIsPrivateUse</h3><pre class="programlisting">int xmlUCSIsPrivateUse (int code)<br />
+</pre><p>Check whether the character is part of PrivateUse UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsPrivateUseArea" id="xmlUCSIsPrivateUseArea"></a>Function: xmlUCSIsPrivateUseArea</h3><pre class="programlisting">int xmlUCSIsPrivateUseArea (int code)<br />
+</pre><p>Check whether the character is part of PrivateUseArea UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsRunic" id="xmlUCSIsRunic"></a>Function: xmlUCSIsRunic</h3><pre class="programlisting">int xmlUCSIsRunic (int code)<br />
+</pre><p>Check whether the character is part of Runic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsShavian" id="xmlUCSIsShavian"></a>Function: xmlUCSIsShavian</h3><pre class="programlisting">int xmlUCSIsShavian (int code)<br />
+</pre><p>Check whether the character is part of Shavian UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSinhala" id="xmlUCSIsSinhala"></a>Function: xmlUCSIsSinhala</h3><pre class="programlisting">int xmlUCSIsSinhala (int code)<br />
+</pre><p>Check whether the character is part of Sinhala UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSmallFormVariants" id="xmlUCSIsSmallFormVariants"></a>Function: xmlUCSIsSmallFormVariants</h3><pre class="programlisting">int xmlUCSIsSmallFormVariants (int code)<br />
+</pre><p>Check whether the character is part of SmallFormVariants UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSpacingModifierLetters" id="xmlUCSIsSpacingModifierLetters"></a>Function: xmlUCSIsSpacingModifierLetters</h3><pre class="programlisting">int xmlUCSIsSpacingModifierLetters (int code)<br />
+</pre><p>Check whether the character is part of SpacingModifierLetters UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSpecials" id="xmlUCSIsSpecials"></a>Function: xmlUCSIsSpecials</h3><pre class="programlisting">int xmlUCSIsSpecials (int code)<br />
+</pre><p>Check whether the character is part of Specials UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSuperscriptsandSubscripts" id="xmlUCSIsSuperscriptsandSubscripts"></a>Function: xmlUCSIsSuperscriptsandSubscripts</h3><pre class="programlisting">int xmlUCSIsSuperscriptsandSubscripts (int code)<br />
+</pre><p>Check whether the character is part of SuperscriptsandSubscripts UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSupplementalArrowsA" id="xmlUCSIsSupplementalArrowsA"></a>Function: xmlUCSIsSupplementalArrowsA</h3><pre class="programlisting">int xmlUCSIsSupplementalArrowsA (int code)<br />
+</pre><p>Check whether the character is part of SupplementalArrows-A UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSupplementalArrowsB" id="xmlUCSIsSupplementalArrowsB"></a>Function: xmlUCSIsSupplementalArrowsB</h3><pre class="programlisting">int xmlUCSIsSupplementalArrowsB (int code)<br />
+</pre><p>Check whether the character is part of SupplementalArrows-B UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSupplementalMathematicalOperators" id="xmlUCSIsSupplementalMathematicalOperators"></a>Function: xmlUCSIsSupplementalMathematicalOperators</h3><pre class="programlisting">int xmlUCSIsSupplementalMathematicalOperators (int code)<br />
+</pre><p>Check whether the character is part of SupplementalMathematicalOperators UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSupplementaryPrivateUseAreaA" id="xmlUCSIsSupplementaryPrivateUseAreaA"></a>Function: xmlUCSIsSupplementaryPrivateUseAreaA</h3><pre class="programlisting">int xmlUCSIsSupplementaryPrivateUseAreaA (int code)<br />
+</pre><p>Check whether the character is part of SupplementaryPrivateUseArea-A UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSupplementaryPrivateUseAreaB" id="xmlUCSIsSupplementaryPrivateUseAreaB"></a>Function: xmlUCSIsSupplementaryPrivateUseAreaB</h3><pre class="programlisting">int xmlUCSIsSupplementaryPrivateUseAreaB (int code)<br />
+</pre><p>Check whether the character is part of SupplementaryPrivateUseArea-B UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsSyriac" id="xmlUCSIsSyriac"></a>Function: xmlUCSIsSyriac</h3><pre class="programlisting">int xmlUCSIsSyriac (int code)<br />
+</pre><p>Check whether the character is part of Syriac UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsTagalog" id="xmlUCSIsTagalog"></a>Function: xmlUCSIsTagalog</h3><pre class="programlisting">int xmlUCSIsTagalog (int code)<br />
+</pre><p>Check whether the character is part of Tagalog UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsTagbanwa" id="xmlUCSIsTagbanwa"></a>Function: xmlUCSIsTagbanwa</h3><pre class="programlisting">int xmlUCSIsTagbanwa (int code)<br />
+</pre><p>Check whether the character is part of Tagbanwa UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsTags" id="xmlUCSIsTags"></a>Function: xmlUCSIsTags</h3><pre class="programlisting">int xmlUCSIsTags (int code)<br />
+</pre><p>Check whether the character is part of Tags UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsTaiLe" id="xmlUCSIsTaiLe"></a>Function: xmlUCSIsTaiLe</h3><pre class="programlisting">int xmlUCSIsTaiLe (int code)<br />
+</pre><p>Check whether the character is part of TaiLe UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsTaiXuanJingSymbols" id="xmlUCSIsTaiXuanJingSymbols"></a>Function: xmlUCSIsTaiXuanJingSymbols</h3><pre class="programlisting">int xmlUCSIsTaiXuanJingSymbols (int code)<br />
+</pre><p>Check whether the character is part of TaiXuanJingSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsTamil" id="xmlUCSIsTamil"></a>Function: xmlUCSIsTamil</h3><pre class="programlisting">int xmlUCSIsTamil (int code)<br />
+</pre><p>Check whether the character is part of Tamil UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsTelugu" id="xmlUCSIsTelugu"></a>Function: xmlUCSIsTelugu</h3><pre class="programlisting">int xmlUCSIsTelugu (int code)<br />
+</pre><p>Check whether the character is part of Telugu UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsThaana" id="xmlUCSIsThaana"></a>Function: xmlUCSIsThaana</h3><pre class="programlisting">int xmlUCSIsThaana (int code)<br />
+</pre><p>Check whether the character is part of Thaana UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsThai" id="xmlUCSIsThai"></a>Function: xmlUCSIsThai</h3><pre class="programlisting">int xmlUCSIsThai (int code)<br />
+</pre><p>Check whether the character is part of Thai UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsTibetan" id="xmlUCSIsTibetan"></a>Function: xmlUCSIsTibetan</h3><pre class="programlisting">int xmlUCSIsTibetan (int code)<br />
+</pre><p>Check whether the character is part of Tibetan UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsUgaritic" id="xmlUCSIsUgaritic"></a>Function: xmlUCSIsUgaritic</h3><pre class="programlisting">int xmlUCSIsUgaritic (int code)<br />
+</pre><p>Check whether the character is part of Ugaritic UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsUnifiedCanadianAboriginalSyllabics" id="xmlUCSIsUnifiedCanadianAboriginalSyllabics"></a>Function: xmlUCSIsUnifiedCanadianAboriginalSyllabics</h3><pre class="programlisting">int xmlUCSIsUnifiedCanadianAboriginalSyllabics (int code)<br />
+</pre><p>Check whether the character is part of UnifiedCanadianAboriginalSyllabics UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsVariationSelectors" id="xmlUCSIsVariationSelectors"></a>Function: xmlUCSIsVariationSelectors</h3><pre class="programlisting">int xmlUCSIsVariationSelectors (int code)<br />
+</pre><p>Check whether the character is part of VariationSelectors UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsVariationSelectorsSupplement" id="xmlUCSIsVariationSelectorsSupplement"></a>Function: xmlUCSIsVariationSelectorsSupplement</h3><pre class="programlisting">int xmlUCSIsVariationSelectorsSupplement (int code)<br />
+</pre><p>Check whether the character is part of VariationSelectorsSupplement UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsYiRadicals" id="xmlUCSIsYiRadicals"></a>Function: xmlUCSIsYiRadicals</h3><pre class="programlisting">int xmlUCSIsYiRadicals (int code)<br />
+</pre><p>Check whether the character is part of YiRadicals UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsYiSyllables" id="xmlUCSIsYiSyllables"></a>Function: xmlUCSIsYiSyllables</h3><pre class="programlisting">int xmlUCSIsYiSyllables (int code)<br />
+</pre><p>Check whether the character is part of YiSyllables UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlUCSIsYijingHexagramSymbols" id="xmlUCSIsYijingHexagramSymbols"></a>Function: xmlUCSIsYijingHexagramSymbols</h3><pre class="programlisting">int xmlUCSIsYijingHexagramSymbols (int code)<br />
+</pre><p>Check whether the character is part of YijingHexagramSymbols UCS Block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>code</tt></i>:</span></td><td>UCS code point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlversion.html b/libxml2-2.9.10/doc/html/libxml-xmlversion.html
new file mode 100644
index 0000000..8690468
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlversion.html
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlversion from libxml2</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></h1><h2>Module xmlversion from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlunicode.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlunicode.html">xmlunicode</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlwriter.html">xmlwriter</a></th><td><a accesskey="n" href="libxml-xmlwriter.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>compile-time version informations for the XML library </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#ATTRIBUTE_UNUSED">ATTRIBUTE_UNUSED</a></pre><pre class="programlisting">#define <a href="#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a></pre><pre class="programlisting">#define <a href="#LIBXML_ATTR_ALLOC_SIZE">LIBXML_ATTR_ALLOC_SIZE</a></pre><pre class="programlisting">#define <a href="#LIBXML_ATTR_FORMAT">LIBXML_ATTR_FORMAT</a></pre><pre class="programlisting">#define <a href="#LIBXML_AUTOMATA_ENABLED">LIBXML_AUTOMATA_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_C14N_ENABLED">LIBXML_C14N_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_CATALOG_ENABLED">LIBXML_CATALOG_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a></pre><pre class="programlisting">#define <a href="#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_DOTTED_VERSION">LIBXML_DOTTED_VERSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_FTP_ENABLED">LIBXML_FTP_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_HTML_ENABLED">LIBXML_HTML_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_HTTP_ENABLED">LIBXML_HTTP_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_ICONV_ENABLED">LIBXML_ICONV_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_ICU_ENABLED">LIBXML_ICU_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_LZMA_ENABLED">LIBXML_LZMA_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_READER_ENABLED">LIBXML_READER_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_THREAD_ALLOC_ENABLED">LIBXML_THREAD_ALLOC_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_VALID_ENABLED">LIBXML_VALID_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_VERSION">LIBXML_VERSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a></pre><pre class="programlisting">#define <a href="#LIBXML_VERSION_STRING">LIBXML_VERSION_STRING</a></pre><pre class="programlisting">#define <a href="#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_XINCLUDE_ENABLED">LIBXML_XINCLUDE_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_XPATH_ENABLED">LIBXML_XPATH_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_XPTR_ENABLED">LIBXML_XPTR_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_ZLIB_ENABLED">LIBXML_ZLIB_ENABLED</a></pre><pre class="programlisting">#define <a href="#WITHOUT_TRIO">WITHOUT_TRIO</a></pre><pre class="programlisting">#define <a href="#WITH_TRIO">WITH_TRIO</a></pre><pre class="programlisting">void <a href="#xmlCheckVersion">xmlCheckVersion</a> (int version)</pre>
+<h2>Description</h2>
+<h3><a name="ATTRIBUTE_UNUSED" id="ATTRIBUTE_UNUSED"></a>Macro: ATTRIBUTE_UNUSED</h3><pre>#define ATTRIBUTE_UNUSED</pre><p>Macro used to signal to GCC unused function parameters</p>
+<h3><a name="DEBUG_MEMORY_LOCATION" id="DEBUG_MEMORY_LOCATION"></a>Macro: DEBUG_MEMORY_LOCATION</h3><pre>#define DEBUG_MEMORY_LOCATION</pre><p>Whether the memory debugging is configured in</p>
+<h3><a name="LIBXML_ATTR_ALLOC_SIZE" id="LIBXML_ATTR_ALLOC_SIZE"></a>Macro: LIBXML_ATTR_ALLOC_SIZE</h3><pre>#define LIBXML_ATTR_ALLOC_SIZE</pre><p>Macro used to indicate to GCC this is an allocator function</p>
+<h3><a name="LIBXML_ATTR_FORMAT" id="LIBXML_ATTR_FORMAT"></a>Macro: LIBXML_ATTR_FORMAT</h3><pre>#define LIBXML_ATTR_FORMAT</pre><p>Macro used to indicate to GCC the parameter are printf like</p>
+<h3><a name="LIBXML_AUTOMATA_ENABLED" id="LIBXML_AUTOMATA_ENABLED"></a>Macro: LIBXML_AUTOMATA_ENABLED</h3><pre>#define LIBXML_AUTOMATA_ENABLED</pre><p>Whether the automata interfaces are compiled in</p>
+<h3><a name="LIBXML_C14N_ENABLED" id="LIBXML_C14N_ENABLED"></a>Macro: LIBXML_C14N_ENABLED</h3><pre>#define LIBXML_C14N_ENABLED</pre><p>Whether the Canonicalization support is configured in</p>
+<h3><a name="LIBXML_CATALOG_ENABLED" id="LIBXML_CATALOG_ENABLED"></a>Macro: LIBXML_CATALOG_ENABLED</h3><pre>#define LIBXML_CATALOG_ENABLED</pre><p>Whether the Catalog support is configured in</p>
+<h3><a name="LIBXML_DEBUG_ENABLED" id="LIBXML_DEBUG_ENABLED"></a>Macro: LIBXML_DEBUG_ENABLED</h3><pre>#define LIBXML_DEBUG_ENABLED</pre><p>Whether Debugging module is configured in</p>
+<h3><a name="LIBXML_DEBUG_RUNTIME" id="LIBXML_DEBUG_RUNTIME"></a>Macro: LIBXML_DEBUG_RUNTIME</h3><pre>#define LIBXML_DEBUG_RUNTIME</pre><p>Whether the runtime debugging is configured in</p>
+<h3><a name="LIBXML_DOCB_ENABLED" id="LIBXML_DOCB_ENABLED"></a>Macro: LIBXML_DOCB_ENABLED</h3><pre>#define LIBXML_DOCB_ENABLED</pre><p>Whether the SGML Docbook support is configured in</p>
+<h3><a name="LIBXML_DOTTED_VERSION" id="LIBXML_DOTTED_VERSION"></a>Macro: LIBXML_DOTTED_VERSION</h3><pre>#define LIBXML_DOTTED_VERSION</pre><p>the version string like "1.2.3"</p>
+<h3><a name="LIBXML_EXPR_ENABLED" id="LIBXML_EXPR_ENABLED"></a>Macro: LIBXML_EXPR_ENABLED</h3><pre>#define LIBXML_EXPR_ENABLED</pre><p>Whether the formal expressions interfaces are compiled in This code is unused and disabled unconditionally for now.</p>
+<h3><a name="LIBXML_FTP_ENABLED" id="LIBXML_FTP_ENABLED"></a>Macro: LIBXML_FTP_ENABLED</h3><pre>#define LIBXML_FTP_ENABLED</pre><p>Whether the FTP support is configured in</p>
+<h3><a name="LIBXML_HTML_ENABLED" id="LIBXML_HTML_ENABLED"></a>Macro: LIBXML_HTML_ENABLED</h3><pre>#define LIBXML_HTML_ENABLED</pre><p>Whether the HTML support is configured in</p>
+<h3><a name="LIBXML_HTTP_ENABLED" id="LIBXML_HTTP_ENABLED"></a>Macro: LIBXML_HTTP_ENABLED</h3><pre>#define LIBXML_HTTP_ENABLED</pre><p>Whether the HTTP support is configured in</p>
+<h3><a name="LIBXML_ICONV_ENABLED" id="LIBXML_ICONV_ENABLED"></a>Macro: LIBXML_ICONV_ENABLED</h3><pre>#define LIBXML_ICONV_ENABLED</pre><p>Whether iconv support is available</p>
+<h3><a name="LIBXML_ICU_ENABLED" id="LIBXML_ICU_ENABLED"></a>Macro: LIBXML_ICU_ENABLED</h3><pre>#define LIBXML_ICU_ENABLED</pre><p>Whether icu support is available</p>
+<h3><a name="LIBXML_ISO8859X_ENABLED" id="LIBXML_ISO8859X_ENABLED"></a>Macro: LIBXML_ISO8859X_ENABLED</h3><pre>#define LIBXML_ISO8859X_ENABLED</pre><p>Whether ISO-8859-* support is made available in case iconv is not</p>
+<h3><a name="LIBXML_LEGACY_ENABLED" id="LIBXML_LEGACY_ENABLED"></a>Macro: LIBXML_LEGACY_ENABLED</h3><pre>#define LIBXML_LEGACY_ENABLED</pre><p>Whether the deprecated APIs are compiled in for compatibility</p>
+<h3><a name="LIBXML_LZMA_ENABLED" id="LIBXML_LZMA_ENABLED"></a>Macro: LIBXML_LZMA_ENABLED</h3><pre>#define LIBXML_LZMA_ENABLED</pre><p>Whether the Lzma support is compiled in</p>
+<h3><a name="LIBXML_MODULES_ENABLED" id="LIBXML_MODULES_ENABLED"></a>Macro: LIBXML_MODULES_ENABLED</h3><pre>#define LIBXML_MODULES_ENABLED</pre><p>Whether the module interfaces are compiled in</p>
+<h3><a name="LIBXML_MODULE_EXTENSION" id="LIBXML_MODULE_EXTENSION"></a>Macro: LIBXML_MODULE_EXTENSION</h3><pre>#define LIBXML_MODULE_EXTENSION</pre><p>the string suffix used by dynamic modules (usually shared libraries)</p>
+<h3><a name="LIBXML_OUTPUT_ENABLED" id="LIBXML_OUTPUT_ENABLED"></a>Macro: LIBXML_OUTPUT_ENABLED</h3><pre>#define LIBXML_OUTPUT_ENABLED</pre><p>Whether the serialization/saving support is configured in</p>
+<h3><a name="LIBXML_PATTERN_ENABLED" id="LIBXML_PATTERN_ENABLED"></a>Macro: LIBXML_PATTERN_ENABLED</h3><pre>#define LIBXML_PATTERN_ENABLED</pre><p>Whether the <a href="libxml-pattern.html#xmlPattern">xmlPattern</a> node selection interface is configured in</p>
+<h3><a name="LIBXML_PUSH_ENABLED" id="LIBXML_PUSH_ENABLED"></a>Macro: LIBXML_PUSH_ENABLED</h3><pre>#define LIBXML_PUSH_ENABLED</pre><p>Whether the push parsing interfaces are configured in</p>
+<h3><a name="LIBXML_READER_ENABLED" id="LIBXML_READER_ENABLED"></a>Macro: LIBXML_READER_ENABLED</h3><pre>#define LIBXML_READER_ENABLED</pre><p>Whether the xmlReader parsing interface is configured in</p>
+<h3><a name="LIBXML_REGEXP_ENABLED" id="LIBXML_REGEXP_ENABLED"></a>Macro: LIBXML_REGEXP_ENABLED</h3><pre>#define LIBXML_REGEXP_ENABLED</pre><p>Whether the regular expressions interfaces are compiled in</p>
+<h3><a name="LIBXML_SAX1_ENABLED" id="LIBXML_SAX1_ENABLED"></a>Macro: LIBXML_SAX1_ENABLED</h3><pre>#define LIBXML_SAX1_ENABLED</pre><p>Whether the older SAX1 interface is configured in</p>
+<h3><a name="LIBXML_SCHEMAS_ENABLED" id="LIBXML_SCHEMAS_ENABLED"></a>Macro: LIBXML_SCHEMAS_ENABLED</h3><pre>#define LIBXML_SCHEMAS_ENABLED</pre><p>Whether the Schemas validation interfaces are compiled in</p>
+<h3><a name="LIBXML_SCHEMATRON_ENABLED" id="LIBXML_SCHEMATRON_ENABLED"></a>Macro: LIBXML_SCHEMATRON_ENABLED</h3><pre>#define LIBXML_SCHEMATRON_ENABLED</pre><p>Whether the Schematron validation interfaces are compiled in</p>
+<h3><a name="LIBXML_TEST_VERSION" id="LIBXML_TEST_VERSION"></a>Macro: LIBXML_TEST_VERSION</h3><pre>#define LIBXML_TEST_VERSION</pre><p>Macro to check that the libxml version in use is compatible with the version the software has been compiled against</p>
+<h3><a name="LIBXML_THREAD_ALLOC_ENABLED" id="LIBXML_THREAD_ALLOC_ENABLED"></a>Macro: LIBXML_THREAD_ALLOC_ENABLED</h3><pre>#define LIBXML_THREAD_ALLOC_ENABLED</pre><p>Whether the allocation hooks are per-thread</p>
+<h3><a name="LIBXML_THREAD_ENABLED" id="LIBXML_THREAD_ENABLED"></a>Macro: LIBXML_THREAD_ENABLED</h3><pre>#define LIBXML_THREAD_ENABLED</pre><p>Whether the thread support is configured in</p>
+<h3><a name="LIBXML_TREE_ENABLED" id="LIBXML_TREE_ENABLED"></a>Macro: LIBXML_TREE_ENABLED</h3><pre>#define LIBXML_TREE_ENABLED</pre><p>Whether the DOM like tree manipulation API support is configured in</p>
+<h3><a name="LIBXML_UNICODE_ENABLED" id="LIBXML_UNICODE_ENABLED"></a>Macro: LIBXML_UNICODE_ENABLED</h3><pre>#define LIBXML_UNICODE_ENABLED</pre><p>Whether the Unicode related interfaces are compiled in</p>
+<h3><a name="LIBXML_VALID_ENABLED" id="LIBXML_VALID_ENABLED"></a>Macro: LIBXML_VALID_ENABLED</h3><pre>#define LIBXML_VALID_ENABLED</pre><p>Whether the DTD validation support is configured in</p>
+<h3><a name="LIBXML_VERSION" id="LIBXML_VERSION"></a>Macro: LIBXML_VERSION</h3><pre>#define LIBXML_VERSION</pre><p>the version number: 1.2.3 value is 10203</p>
+<h3><a name="LIBXML_VERSION_EXTRA" id="LIBXML_VERSION_EXTRA"></a>Macro: LIBXML_VERSION_EXTRA</h3><pre>#define LIBXML_VERSION_EXTRA</pre><p>extra version information, used to show a CVS compilation</p>
+<h3><a name="LIBXML_VERSION_STRING" id="LIBXML_VERSION_STRING"></a>Macro: LIBXML_VERSION_STRING</h3><pre>#define LIBXML_VERSION_STRING</pre><p>the version number string, 1.2.3 value is "10203"</p>
+<h3><a name="LIBXML_WRITER_ENABLED" id="LIBXML_WRITER_ENABLED"></a>Macro: LIBXML_WRITER_ENABLED</h3><pre>#define LIBXML_WRITER_ENABLED</pre><p>Whether the xmlWriter saving interface is configured in</p>
+<h3><a name="LIBXML_XINCLUDE_ENABLED" id="LIBXML_XINCLUDE_ENABLED"></a>Macro: LIBXML_XINCLUDE_ENABLED</h3><pre>#define LIBXML_XINCLUDE_ENABLED</pre><p>Whether XInclude is configured in</p>
+<h3><a name="LIBXML_XPATH_ENABLED" id="LIBXML_XPATH_ENABLED"></a>Macro: LIBXML_XPATH_ENABLED</h3><pre>#define LIBXML_XPATH_ENABLED</pre><p>Whether XPath is configured in</p>
+<h3><a name="LIBXML_XPTR_ENABLED" id="LIBXML_XPTR_ENABLED"></a>Macro: LIBXML_XPTR_ENABLED</h3><pre>#define LIBXML_XPTR_ENABLED</pre><p>Whether XPointer is configured in</p>
+<h3><a name="LIBXML_ZLIB_ENABLED" id="LIBXML_ZLIB_ENABLED"></a>Macro: LIBXML_ZLIB_ENABLED</h3><pre>#define LIBXML_ZLIB_ENABLED</pre><p>Whether the Zlib support is compiled in</p>
+<h3><a name="WITHOUT_TRIO" id="WITHOUT_TRIO"></a>Macro: WITHOUT_TRIO</h3><pre>#define WITHOUT_TRIO</pre><p>defined if the trio support should not be configured in</p>
+<h3><a name="WITH_TRIO" id="WITH_TRIO"></a>Macro: WITH_TRIO</h3><pre>#define WITH_TRIO</pre><p>defined if the trio support need to be configured in</p>
+<h3><a name="xmlCheckVersion" id="xmlCheckVersion"></a>Function: xmlCheckVersion</h3><pre class="programlisting">void xmlCheckVersion (int version)<br />
+</pre><p>check the compiled lib version against the include one. This can warn or immediately kill the application</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>version</tt></i>:</span></td><td>the include version number</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xmlwriter.html b/libxml2-2.9.10/doc/html/libxml-xmlwriter.html
new file mode 100644
index 0000000..c44d2ac
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xmlwriter.html
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xmlwriter from libxml2</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></h1><h2>Module xmlwriter from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlversion.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlversion.html">xmlversion</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xpath.html">xpath</a></th><td><a accesskey="n" href="libxml-xpath.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>text writing API for XML </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a></pre><pre class="programlisting">#define <a href="#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a></pre><pre class="programlisting">Structure <a href="#xmlTextWriter">xmlTextWriter</a><br />struct _xmlTextWriter
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlwriter.html#xmlTextWriter">xmlTextWriter</a> * <a name="xmlTextWriterPtr" id="xmlTextWriterPtr">xmlTextWriterPtr</a>
+</pre><pre class="programlisting">void <a href="#xmlFreeTextWriter">xmlFreeTextWriter</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriter">xmlNewTextWriter</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)</pre>
+<pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> * doc, <br /> int compression)</pre>
+<pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriterFilename">xmlNewTextWriterFilename</a> (const char * uri, <br /> int compression)</pre>
+<pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> int compression)</pre>
+<pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int compression)</pre>
+<pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> <a href="#xmlNewTextWriterTree">xmlNewTextWriterTree</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int compression)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterEndAttribute">xmlTextWriterEndAttribute</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterEndComment">xmlTextWriterEndComment</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterEndElement">xmlTextWriterEndElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterEndPI">xmlTextWriterEndPI</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterFlush">xmlTextWriterFlush</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterSetIndent">xmlTextWriterSetIndent</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int indent)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterSetIndentString">xmlTextWriterSetIndentString</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterSetQuoteChar">xmlTextWriterSetQuoteChar</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> quotechar)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartAttribute">xmlTextWriterStartAttribute</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartAttributeNS">xmlTextWriterStartAttributeNS</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartCDATA">xmlTextWriterStartCDATA</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartComment">xmlTextWriterStartComment</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartDTD">xmlTextWriterStartDTD</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartDTDAttlist">xmlTextWriterStartDTDAttlist</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartDTDElement">xmlTextWriterStartDTDElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartDocument">xmlTextWriterStartDocument</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * version, <br /> const char * encoding, <br /> const char * standalone)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartElement">xmlTextWriterStartElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartElementNS">xmlTextWriterStartElementNS</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterStartPI">xmlTextWriterStartPI</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteAttribute">xmlTextWriterWriteAttribute</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteAttributeNS">xmlTextWriterWriteAttributeNS</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteBase64">xmlTextWriterWriteBase64</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * data, <br /> int start, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteBinHex">xmlTextWriterWriteBinHex</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * data, <br /> int start, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteCDATA">xmlTextWriterWriteCDATA</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteComment">xmlTextWriterWriteComment</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * subset)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteDTDAttlist">xmlTextWriterWriteDTDAttlist</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteElement">xmlTextWriterWriteElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteElementNS">xmlTextWriterWriteElementNS</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatCDATA">xmlTextWriterWriteFormatCDATA</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatComment">xmlTextWriterWriteFormatComment</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatDTDAttlist">xmlTextWriterWriteFormatDTDAttlist</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatDTDElement">xmlTextWriterWriteFormatDTDElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatDTDInternalEntity">xmlTextWriterWriteFormatDTDInternalEntity</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatElement">xmlTextWriterWriteFormatElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatElementNS">xmlTextWriterWriteFormatElementNS</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatPI">xmlTextWriterWriteFormatPI</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatRaw">xmlTextWriterWriteFormatRaw</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteFormatString">xmlTextWriterWriteFormatString</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWritePI">xmlTextWriterWritePI</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteRaw">xmlTextWriterWriteRaw</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteString">xmlTextWriterWriteString</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatAttribute">xmlTextWriterWriteVFormatAttribute</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatAttributeNS">xmlTextWriterWriteVFormatAttributeNS</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatCDATA">xmlTextWriterWriteVFormatCDATA</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatComment">xmlTextWriterWriteVFormatComment</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatDTDAttlist">xmlTextWriterWriteVFormatDTDAttlist</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatDTDElement">xmlTextWriterWriteVFormatDTDElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatDTDInternalEntity">xmlTextWriterWriteVFormatDTDInternalEntity</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatElement">xmlTextWriterWriteVFormatElement</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatElementNS">xmlTextWriterWriteVFormatElementNS</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatPI">xmlTextWriterWriteVFormatPI</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> va_list argptr)</pre>
+<pre class="programlisting">int <a href="#xmlTextWriterWriteVFormatString">xmlTextWriterWriteVFormatString</a> (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> va_list argptr)</pre>
+<h2>Description</h2>
+<h3><a name="xmlTextWriterWriteDocType" id="xmlTextWriterWriteDocType"></a>Macro: xmlTextWriterWriteDocType</h3><pre>#define xmlTextWriterWriteDocType</pre><p>this macro maps to <a href="libxml-xmlwriter.html#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a></p>
+<h3><a name="xmlTextWriterWriteProcessingInstruction" id="xmlTextWriterWriteProcessingInstruction"></a>Macro: xmlTextWriterWriteProcessingInstruction</h3><pre>#define xmlTextWriterWriteProcessingInstruction</pre><p>This macro maps to <a href="libxml-xmlwriter.html#xmlTextWriterWritePI">xmlTextWriterWritePI</a></p>
+<h3><a name="xmlTextWriter" id="xmlTextWriter">Structure xmlTextWriter</a></h3><pre class="programlisting">Structure xmlTextWriter<br />struct _xmlTextWriter {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlFreeTextWriter" id="xmlFreeTextWriter"></a>Function: xmlFreeTextWriter</h3><pre class="programlisting">void xmlFreeTextWriter (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>Deallocate all the resources associated to the writer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr></tbody></table></div><h3><a name="xmlNewTextWriter" id="xmlNewTextWriter"></a>Function: xmlNewTextWriter</h3><pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriter (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br />
+</pre><p>Create a new <a href="libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure using an <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> NOTE: the @out parameter will be deallocated when the writer is closed (if the call succeed.)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlNewTextWriterDoc" id="xmlNewTextWriterDoc"></a>Function: xmlNewTextWriterDoc</h3><pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriterDoc (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> * doc, <br /> int compression)<br />
+</pre><p>Create a new <a href="libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure with @*doc as output</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>address of a <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> to hold the new XML document tree</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>compress the output?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlNewTextWriterFilename" id="xmlNewTextWriterFilename"></a>Function: xmlNewTextWriterFilename</h3><pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriterFilename (const char * uri, <br /> int compression)<br />
+</pre><p>Create a new <a href="libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure with @uri as output</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>the URI of the resource for the output</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>compress the output?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlNewTextWriterMemory" id="xmlNewTextWriterMemory"></a>Function: xmlNewTextWriterMemory</h3><pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriterMemory (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> int compression)<br />
+</pre><p>Create a new <a href="libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure with @buf as output TODO: handle compression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td><a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>compress the output?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlNewTextWriterPushParser" id="xmlNewTextWriterPushParser"></a>Function: xmlNewTextWriterPushParser</h3><pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriterPushParser (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> int compression)<br />
+</pre><p>Create a new <a href="libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure with @ctxt as output NOTE: the @ctxt context will be freed with the resulting writer (if the call succeeds). TODO: handle compression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> to hold the new XML document tree</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>compress the output?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlNewTextWriterTree" id="xmlNewTextWriterTree"></a>Function: xmlNewTextWriterTree</h3><pre class="programlisting"><a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> xmlNewTextWriterTree (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> int compression)<br />
+</pre><p>Create a new <a href="libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a> structure with @doc as output starting at @node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a></td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> or NULL for doc-&gt;children</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>compress the output?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndAttribute" id="xmlTextWriterEndAttribute"></a>Function: xmlTextWriterEndAttribute</h3><pre class="programlisting">int xmlTextWriterEndAttribute (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End the current xml element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndCDATA" id="xmlTextWriterEndCDATA"></a>Function: xmlTextWriterEndCDATA</h3><pre class="programlisting">int xmlTextWriterEndCDATA (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End an xml CDATA section.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndComment" id="xmlTextWriterEndComment"></a>Function: xmlTextWriterEndComment</h3><pre class="programlisting">int xmlTextWriterEndComment (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End the current xml comment.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndDTD" id="xmlTextWriterEndDTD"></a>Function: xmlTextWriterEndDTD</h3><pre class="programlisting">int xmlTextWriterEndDTD (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End an xml DTD.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndDTDAttlist" id="xmlTextWriterEndDTDAttlist"></a>Function: xmlTextWriterEndDTDAttlist</h3><pre class="programlisting">int xmlTextWriterEndDTDAttlist (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End an xml DTD <a href="libxml-SAX.html#attribute">attribute</a> list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndDTDElement" id="xmlTextWriterEndDTDElement"></a>Function: xmlTextWriterEndDTDElement</h3><pre class="programlisting">int xmlTextWriterEndDTDElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End an xml DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndDTDEntity" id="xmlTextWriterEndDTDEntity"></a>Function: xmlTextWriterEndDTDEntity</h3><pre class="programlisting">int xmlTextWriterEndDTDEntity (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End an xml DTD entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndDocument" id="xmlTextWriterEndDocument"></a>Function: xmlTextWriterEndDocument</h3><pre class="programlisting">int xmlTextWriterEndDocument (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End an xml document. All open elements are closed, and the content is flushed to the output.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndElement" id="xmlTextWriterEndElement"></a>Function: xmlTextWriterEndElement</h3><pre class="programlisting">int xmlTextWriterEndElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End the current xml element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndPI" id="xmlTextWriterEndPI"></a>Function: xmlTextWriterEndPI</h3><pre class="programlisting">int xmlTextWriterEndPI (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End the current xml PI.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterFlush" id="xmlTextWriterFlush"></a>Function: xmlTextWriterFlush</h3><pre class="programlisting">int xmlTextWriterFlush (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>Flush the output buffer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterFullEndElement" id="xmlTextWriterFullEndElement"></a>Function: xmlTextWriterFullEndElement</h3><pre class="programlisting">int xmlTextWriterFullEndElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End the current xml element. Writes an end tag even if the element is empty</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterSetIndent" id="xmlTextWriterSetIndent"></a>Function: xmlTextWriterSetIndent</h3><pre class="programlisting">int xmlTextWriterSetIndent (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int indent)<br />
+</pre><p>Set indentation output. indent = 0 do not indentation. indent &gt; 0 do indentation.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>indent</tt></i>:</span></td><td>do indentation?</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 on error or 0 otherwise.</td></tr></tbody></table></div><h3><a name="xmlTextWriterSetIndentString" id="xmlTextWriterSetIndentString"></a>Function: xmlTextWriterSetIndentString</h3><pre class="programlisting">int xmlTextWriterSetIndentString (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>Set string indentation.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 on error or 0 otherwise.</td></tr></tbody></table></div><h3><a name="xmlTextWriterSetQuoteChar" id="xmlTextWriterSetQuoteChar"></a>Function: xmlTextWriterSetQuoteChar</h3><pre class="programlisting">int xmlTextWriterSetQuoteChar (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> quotechar)<br />
+</pre><p>Set the character used for quoting attributes.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>quotechar</tt></i>:</span></td><td>the quote character</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 on error or 0 otherwise.</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartAttribute" id="xmlTextWriterStartAttribute"></a>Function: xmlTextWriterStartAttribute</h3><pre class="programlisting">int xmlTextWriterStartAttribute (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Start an xml attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartAttributeNS" id="xmlTextWriterStartAttributeNS"></a>Function: xmlTextWriterStartAttributeNS</h3><pre class="programlisting">int xmlTextWriterStartAttributeNS (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)<br />
+</pre><p>Start an xml <a href="libxml-SAX.html#attribute">attribute</a> with namespace support.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix or NULL</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartCDATA" id="xmlTextWriterStartCDATA"></a>Function: xmlTextWriterStartCDATA</h3><pre class="programlisting">int xmlTextWriterStartCDATA (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>Start an xml CDATA section.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartComment" id="xmlTextWriterStartComment"></a>Function: xmlTextWriterStartComment</h3><pre class="programlisting">int xmlTextWriterStartComment (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>Start an xml comment.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartDTD" id="xmlTextWriterStartDTD"></a>Function: xmlTextWriterStartDTD</h3><pre class="programlisting">int xmlTextWriterStartDTD (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid)<br />
+</pre><p>Start an xml DTD.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartDTDAttlist" id="xmlTextWriterStartDTDAttlist"></a>Function: xmlTextWriterStartDTDAttlist</h3><pre class="programlisting">int xmlTextWriterStartDTDAttlist (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Start an xml DTD ATTLIST.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD ATTLIST</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartDTDElement" id="xmlTextWriterStartDTDElement"></a>Function: xmlTextWriterStartDTDElement</h3><pre class="programlisting">int xmlTextWriterStartDTDElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Start an xml DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartDTDEntity" id="xmlTextWriterStartDTDEntity"></a>Function: xmlTextWriterStartDTDEntity</h3><pre class="programlisting">int xmlTextWriterStartDTDEntity (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Start an xml DTD ATTLIST.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD ATTLIST</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartDocument" id="xmlTextWriterStartDocument"></a>Function: xmlTextWriterStartDocument</h3><pre class="programlisting">int xmlTextWriterStartDocument (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * version, <br /> const char * encoding, <br /> const char * standalone)<br />
+</pre><p>Start a new xml document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>version</tt></i>:</span></td><td>the xml version ("1.0") or NULL for default ("1.0")</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding or NULL for default</td></tr><tr><td><span class="term"><i><tt>standalone</tt></i>:</span></td><td>"yes" or "no" or NULL for default</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartElement" id="xmlTextWriterStartElement"></a>Function: xmlTextWriterStartElement</h3><pre class="programlisting">int xmlTextWriterStartElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Start an xml element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartElementNS" id="xmlTextWriterStartElementNS"></a>Function: xmlTextWriterStartElementNS</h3><pre class="programlisting">int xmlTextWriterStartElementNS (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI)<br />
+</pre><p>Start an xml element with namespace support.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix or NULL</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterStartPI" id="xmlTextWriterStartPI"></a>Function: xmlTextWriterStartPI</h3><pre class="programlisting">int xmlTextWriterStartPI (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target)<br />
+</pre><p>Start an xml PI.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>PI target</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteAttribute" id="xmlTextWriterWriteAttribute"></a>Function: xmlTextWriterWriteAttribute</h3><pre class="programlisting">int xmlTextWriterWriteAttribute (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write an xml attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td><a href="libxml-SAX.html#attribute">attribute</a> content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteAttributeNS" id="xmlTextWriterWriteAttributeNS"></a>Function: xmlTextWriterWriteAttributeNS</h3><pre class="programlisting">int xmlTextWriterWriteAttributeNS (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write an xml attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml-SAX.html#attribute">attribute</a> local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td><a href="libxml-SAX.html#attribute">attribute</a> content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteBase64" id="xmlTextWriterWriteBase64"></a>Function: xmlTextWriterWriteBase64</h3><pre class="programlisting">int xmlTextWriterWriteBase64 (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * data, <br /> int start, <br /> int len)<br />
+</pre><p>Write an base64 encoded xml text.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>binary data</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the position within the data of the first byte to encode</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of bytes to encode</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteBinHex" id="xmlTextWriterWriteBinHex"></a>Function: xmlTextWriterWriteBinHex</h3><pre class="programlisting">int xmlTextWriterWriteBinHex (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * data, <br /> int start, <br /> int len)<br />
+</pre><p>Write a BinHex encoded xml text.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>binary data</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the position within the data of the first byte to encode</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of bytes to encode</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteCDATA" id="xmlTextWriterWriteCDATA"></a>Function: xmlTextWriterWriteCDATA</h3><pre class="programlisting">int xmlTextWriterWriteCDATA (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write an xml CDATA.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>CDATA content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteComment" id="xmlTextWriterWriteComment"></a>Function: xmlTextWriterWriteComment</h3><pre class="programlisting">int xmlTextWriterWriteComment (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write an xml comment.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td><a href="libxml-SAX.html#comment">comment</a> string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTD" id="xmlTextWriterWriteDTD"></a>Function: xmlTextWriterWriteDTD</h3><pre class="programlisting">int xmlTextWriterWriteDTD (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * subset)<br />
+</pre><p>Write a DTD.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>subset</tt></i>:</span></td><td>string content of the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDAttlist" id="xmlTextWriterWriteDTDAttlist"></a>Function: xmlTextWriterWriteDTDAttlist</h3><pre class="programlisting">int xmlTextWriterWriteDTDAttlist (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write a DTD ATTLIST.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD ATTLIST</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the ATTLIST</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDElement" id="xmlTextWriterWriteDTDElement"></a>Function: xmlTextWriterWriteDTDElement</h3><pre class="programlisting">int xmlTextWriterWriteDTDElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write a DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD element</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDEntity" id="xmlTextWriterWriteDTDEntity"></a>Function: xmlTextWriterWriteDTDEntity</h3><pre class="programlisting">int xmlTextWriterWriteDTDEntity (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write a DTD entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>ndataid</tt></i>:</span></td><td>the xml notation name.</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDExternalEntity" id="xmlTextWriterWriteDTDExternalEntity"></a>Function: xmlTextWriterWriteDTDExternalEntity</h3><pre class="programlisting">int xmlTextWriterWriteDTDExternalEntity (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid)<br />
+</pre><p>Write a DTD external entity. The entity must have been started with <a href="libxml-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>ndataid</tt></i>:</span></td><td>the xml notation name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDExternalEntityContents" id="xmlTextWriterWriteDTDExternalEntityContents"></a>Function: xmlTextWriterWriteDTDExternalEntityContents</h3><pre class="programlisting">int xmlTextWriterWriteDTDExternalEntityContents (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid)<br />
+</pre><p>Write the contents of a DTD external entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>ndataid</tt></i>:</span></td><td>the xml notation name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDInternalEntity" id="xmlTextWriterWriteDTDInternalEntity"></a>Function: xmlTextWriterWriteDTDInternalEntity</h3><pre class="programlisting">int xmlTextWriterWriteDTDInternalEntity (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write a DTD internal entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDNotation" id="xmlTextWriterWriteDTDNotation"></a>Function: xmlTextWriterWriteDTDNotation</h3><pre class="programlisting">int xmlTextWriterWriteDTDNotation (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid)<br />
+</pre><p>Write a DTD entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the xml notation</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteElement" id="xmlTextWriterWriteElement"></a>Function: xmlTextWriterWriteElement</h3><pre class="programlisting">int xmlTextWriterWriteElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write an xml element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element name</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>element content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteElementNS" id="xmlTextWriterWriteElementNS"></a>Function: xmlTextWriterWriteElementNS</h3><pre class="programlisting">int xmlTextWriterWriteElementNS (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write an xml element with namespace support.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>element content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatAttribute" id="xmlTextWriterWriteFormatAttribute"></a>Function: xmlTextWriterWriteFormatAttribute</h3><pre class="programlisting">int xmlTextWriterWriteFormatAttribute (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted xml attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatAttributeNS" id="xmlTextWriterWriteFormatAttributeNS"></a>Function: xmlTextWriterWriteFormatAttributeNS</h3><pre class="programlisting">int xmlTextWriterWriteFormatAttributeNS (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted xml attribute.with namespace support</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml-SAX.html#attribute">attribute</a> local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatCDATA" id="xmlTextWriterWriteFormatCDATA"></a>Function: xmlTextWriterWriteFormatCDATA</h3><pre class="programlisting">int xmlTextWriterWriteFormatCDATA (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted xml CDATA.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatComment" id="xmlTextWriterWriteFormatComment"></a>Function: xmlTextWriterWriteFormatComment</h3><pre class="programlisting">int xmlTextWriterWriteFormatComment (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write an xml comment.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatDTD" id="xmlTextWriterWriteFormatDTD"></a>Function: xmlTextWriterWriteFormatDTD</h3><pre class="programlisting">int xmlTextWriterWriteFormatDTD (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a DTD with a formatted markup declarations part.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatDTDAttlist" id="xmlTextWriterWriteFormatDTDAttlist"></a>Function: xmlTextWriterWriteFormatDTDAttlist</h3><pre class="programlisting">int xmlTextWriterWriteFormatDTDAttlist (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted DTD ATTLIST.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD ATTLIST</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatDTDElement" id="xmlTextWriterWriteFormatDTDElement"></a>Function: xmlTextWriterWriteFormatDTDElement</h3><pre class="programlisting">int xmlTextWriterWriteFormatDTDElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD element</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatDTDInternalEntity" id="xmlTextWriterWriteFormatDTDInternalEntity"></a>Function: xmlTextWriterWriteFormatDTDInternalEntity</h3><pre class="programlisting">int xmlTextWriterWriteFormatDTDInternalEntity (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted DTD internal entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatElement" id="xmlTextWriterWriteFormatElement"></a>Function: xmlTextWriterWriteFormatElement</h3><pre class="programlisting">int xmlTextWriterWriteFormatElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted xml element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element name</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatElementNS" id="xmlTextWriterWriteFormatElementNS"></a>Function: xmlTextWriterWriteFormatElementNS</h3><pre class="programlisting">int xmlTextWriterWriteFormatElementNS (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted xml element with namespace support.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatPI" id="xmlTextWriterWriteFormatPI"></a>Function: xmlTextWriterWriteFormatPI</h3><pre class="programlisting">int xmlTextWriterWriteFormatPI (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted PI.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>PI target</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatRaw" id="xmlTextWriterWriteFormatRaw"></a>Function: xmlTextWriterWriteFormatRaw</h3><pre class="programlisting">int xmlTextWriterWriteFormatRaw (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted raw xml text.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteFormatString" id="xmlTextWriterWriteFormatString"></a>Function: xmlTextWriterWriteFormatString</h3><pre class="programlisting">int xmlTextWriterWriteFormatString (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> ... ...)<br />
+</pre><p>Write a formatted xml text.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the format</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWritePI" id="xmlTextWriterWritePI"></a>Function: xmlTextWriterWritePI</h3><pre class="programlisting">int xmlTextWriterWritePI (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write an xml PI.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>PI target</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>PI content</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteRaw" id="xmlTextWriterWriteRaw"></a>Function: xmlTextWriterWriteRaw</h3><pre class="programlisting">int xmlTextWriterWriteRaw (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write a raw xml text.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>text string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteRawLen" id="xmlTextWriterWriteRawLen"></a>Function: xmlTextWriterWriteRawLen</h3><pre class="programlisting">int xmlTextWriterWriteRawLen (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)<br />
+</pre><p>Write an xml text. TODO: what about entities and special chars??</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>text string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>length of the text string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteString" id="xmlTextWriterWriteString"></a>Function: xmlTextWriterWriteString</h3><pre class="programlisting">int xmlTextWriterWriteString (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write an xml text.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>text string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatAttribute" id="xmlTextWriterWriteVFormatAttribute"></a>Function: xmlTextWriterWriteVFormatAttribute</h3><pre class="programlisting">int xmlTextWriterWriteVFormatAttribute (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted xml attribute.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml-SAX.html#attribute">attribute</a> name</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatAttributeNS" id="xmlTextWriterWriteVFormatAttributeNS"></a>Function: xmlTextWriterWriteVFormatAttributeNS</h3><pre class="programlisting">int xmlTextWriterWriteVFormatAttributeNS (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted xml attribute.with namespace support</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td><a href="libxml-SAX.html#attribute">attribute</a> local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatCDATA" id="xmlTextWriterWriteVFormatCDATA"></a>Function: xmlTextWriterWriteVFormatCDATA</h3><pre class="programlisting">int xmlTextWriterWriteVFormatCDATA (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted xml CDATA.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatComment" id="xmlTextWriterWriteVFormatComment"></a>Function: xmlTextWriterWriteVFormatComment</h3><pre class="programlisting">int xmlTextWriterWriteVFormatComment (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write an xml comment.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatDTD" id="xmlTextWriterWriteVFormatDTD"></a>Function: xmlTextWriterWriteVFormatDTD</h3><pre class="programlisting">int xmlTextWriterWriteVFormatDTD (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a DTD with a formatted markup declarations part.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatDTDAttlist" id="xmlTextWriterWriteVFormatDTDAttlist"></a>Function: xmlTextWriterWriteVFormatDTDAttlist</h3><pre class="programlisting">int xmlTextWriterWriteVFormatDTDAttlist (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted DTD ATTLIST.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD ATTLIST</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatDTDElement" id="xmlTextWriterWriteVFormatDTDElement"></a>Function: xmlTextWriterWriteVFormatDTDElement</h3><pre class="programlisting">int xmlTextWriterWriteVFormatDTDElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD element</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatDTDInternalEntity" id="xmlTextWriterWriteVFormatDTDInternalEntity"></a>Function: xmlTextWriterWriteVFormatDTDInternalEntity</h3><pre class="programlisting">int xmlTextWriterWriteVFormatDTDInternalEntity (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> int pe, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted DTD internal entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatElement" id="xmlTextWriterWriteVFormatElement"></a>Function: xmlTextWriterWriteVFormatElement</h3><pre class="programlisting">int xmlTextWriterWriteVFormatElement (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted xml element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element name</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatElementNS" id="xmlTextWriterWriteVFormatElementNS"></a>Function: xmlTextWriterWriteVFormatElementNS</h3><pre class="programlisting">int xmlTextWriterWriteVFormatElementNS (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted xml element with namespace support.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>namespace prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>element local name</td></tr><tr><td><span class="term"><i><tt>namespaceURI</tt></i>:</span></td><td>namespace URI</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatPI" id="xmlTextWriterWriteVFormatPI"></a>Function: xmlTextWriterWriteVFormatPI</h3><pre class="programlisting">int xmlTextWriterWriteVFormatPI (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * target, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted xml PI.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>PI target</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatRaw" id="xmlTextWriterWriteVFormatRaw"></a>Function: xmlTextWriterWriteVFormatRaw</h3><pre class="programlisting">int xmlTextWriterWriteVFormatRaw (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted raw xml text.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteVFormatString" id="xmlTextWriterWriteVFormatString"></a>Function: xmlTextWriterWriteVFormatString</h3><pre class="programlisting">int xmlTextWriterWriteVFormatString (<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br /> const char * format, <br /> va_list argptr)<br />
+</pre><p>Write a formatted xml text.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>format string (see printf)</td></tr><tr><td><span class="term"><i><tt>argptr</tt></i>:</span></td><td>pointer to the first member of the variable argument list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xpath.html b/libxml2-2.9.10/doc/html/libxml-xpath.html
new file mode 100644
index 0000000..5bdd564
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xpath.html
@@ -0,0 +1,323 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xpath from libxml2</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></h1><h2>Module xpath from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlwriter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlwriter.html">xmlwriter</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xpathInternals.html">xpathInternals</a></th><td><a accesskey="n" href="libxml-xpathInternals.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>API for the XML Path Language implementation XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer</p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a></pre><pre class="programlisting">#define <a href="#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a></pre><pre class="programlisting">#define <a href="#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a></pre><pre class="programlisting">#define <a href="#xmlXPathNodeSetIsEmpty">xmlXPathNodeSetIsEmpty</a></pre><pre class="programlisting">#define <a href="#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a></pre><pre class="programlisting">Structure <a href="#xmlNodeSet">xmlNodeSet</a><br />struct _xmlNodeSet
+</pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlNodeSet">xmlNodeSet</a> * <a name="xmlNodeSetPtr" id="xmlNodeSetPtr">xmlNodeSetPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlXPathAxis">xmlXPathAxis</a><br />struct _xmlXPathAxis
+</pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlXPathAxis">xmlXPathAxis</a> * <a name="xmlXPathAxisPtr" id="xmlXPathAxisPtr">xmlXPathAxisPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlXPathCompExpr">xmlXPathCompExpr</a><br />struct _xmlXPathCompExpr
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlXPathCompExpr">xmlXPathCompExpr</a> * <a name="xmlXPathCompExprPtr" id="xmlXPathCompExprPtr">xmlXPathCompExprPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlXPathContext">xmlXPathContext</a><br />struct _xmlXPathContext
+</pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a> * <a name="xmlXPathContextPtr" id="xmlXPathContextPtr">xmlXPathContextPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlXPathError">xmlXPathError</a>
+</pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlXPathFunct">xmlXPathFunct</a> * <a name="xmlXPathFuncPtr" id="xmlXPathFuncPtr">xmlXPathFuncPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlXPathFunct">xmlXPathFunct</a><br />struct _xmlXPathFunct
+</pre><pre class="programlisting">Structure <a href="#xmlXPathObject">xmlXPathObject</a><br />struct _xmlXPathObject
+</pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlXPathObject">xmlXPathObject</a> * <a name="xmlXPathObjectPtr" id="xmlXPathObjectPtr">xmlXPathObjectPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlXPathObjectType">xmlXPathObjectType</a>
+</pre><pre class="programlisting">Structure <a href="#xmlXPathParserContext">xmlXPathParserContext</a><br />struct _xmlXPathParserContext
+</pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a> * <a name="xmlXPathParserContextPtr" id="xmlXPathParserContextPtr">xmlXPathParserContextPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlXPathType">xmlXPathType</a><br />struct _xmlXPathType
+</pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlXPathType">xmlXPathType</a> * <a name="xmlXPathTypePtr" id="xmlXPathTypePtr">xmlXPathTypePtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlXPathVariable">xmlXPathVariable</a><br />struct _xmlXPathVariable
+</pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlXPathVariable">xmlXPathVariable</a> * <a name="xmlXPathVariablePtr" id="xmlXPathVariablePtr">xmlXPathVariablePtr</a>
+</pre><pre class="programlisting">Function type: <a href="#xmlXPathAxisFunc">xmlXPathAxisFunc</a>
+<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathAxisFunc">xmlXPathAxisFunc</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> cur)
+</pre>
+<pre class="programlisting">double <a href="#xmlXPathCastBooleanToNumber">xmlXPathCastBooleanToNumber</a> (int val)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathCastBooleanToString">xmlXPathCastBooleanToString</a> (int val)</pre>
+<pre class="programlisting">int <a href="#xmlXPathCastNodeSetToBoolean">xmlXPathCastNodeSetToBoolean</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns)</pre>
+<pre class="programlisting">double <a href="#xmlXPathCastNodeSetToNumber">xmlXPathCastNodeSetToNumber</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathCastNodeSetToString">xmlXPathCastNodeSetToString</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns)</pre>
+<pre class="programlisting">double <a href="#xmlXPathCastNodeToNumber">xmlXPathCastNodeToNumber</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathCastNodeToString">xmlXPathCastNodeToString</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">int <a href="#xmlXPathCastNumberToBoolean">xmlXPathCastNumberToBoolean</a> (double val)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathCastNumberToString">xmlXPathCastNumberToString</a> (double val)</pre>
+<pre class="programlisting">int <a href="#xmlXPathCastStringToBoolean">xmlXPathCastStringToBoolean</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)</pre>
+<pre class="programlisting">double <a href="#xmlXPathCastStringToNumber">xmlXPathCastStringToNumber</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)</pre>
+<pre class="programlisting">int <a href="#xmlXPathCastToBoolean">xmlXPathCastToBoolean</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)</pre>
+<pre class="programlisting">double <a href="#xmlXPathCastToNumber">xmlXPathCastToNumber</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathCastToString">xmlXPathCastToString</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)</pre>
+<pre class="programlisting">int <a href="#xmlXPathCmpNodes">xmlXPathCmpNodes</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node1, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> <a href="#xmlXPathCompile">xmlXPathCompile</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathCompiledEval">xmlXPathCompiledEval</a> (<a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)</pre>
+<pre class="programlisting">int <a href="#xmlXPathCompiledEvalToBoolean">xmlXPathCompiledEvalToBoolean</a> (<a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlXPathContextSetCache">xmlXPathContextSetCache</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> int active, <br /> int value, <br /> int options)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)</pre>
+<pre class="programlisting">Function type: <a href="#xmlXPathConvertFunc">xmlXPathConvertFunc</a>
+int <a href="#xmlXPathConvertFunc">xmlXPathConvertFunc</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj, <br /> int type)
+</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathConvertNumber">xmlXPathConvertNumber</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathConvertString">xmlXPathConvertString</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> <a href="#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathEval">xmlXPathEval</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathEvalExpression">xmlXPathEvalExpression</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)</pre>
+<pre class="programlisting">Function type: <a href="#xmlXPathEvalFunc">xmlXPathEvalFunc</a>
+void <a href="#xmlXPathEvalFunc">xmlXPathEvalFunc</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)
+</pre>
+<pre class="programlisting">int <a href="#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> res)</pre>
+<pre class="programlisting">void <a href="#xmlXPathFreeCompExpr">xmlXPathFreeCompExpr</a> (<a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp)</pre>
+<pre class="programlisting">void <a href="#xmlXPathFreeContext">xmlXPathFreeContext</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> obj)</pre>
+<pre class="programlisting">void <a href="#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj)</pre>
+<pre class="programlisting">void <a href="#xmlXPathFreeObject">xmlXPathFreeObject</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj)</pre>
+<pre class="programlisting">Function type: <a href="#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a>
+<a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> <a href="#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a> (void * ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)
+</pre>
+<pre class="programlisting">Function type: <a href="#xmlXPathFunction">xmlXPathFunction</a>
+void <a href="#xmlXPathFunction">xmlXPathFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)
+</pre>
+<pre class="programlisting">void <a href="#xmlXPathInit">xmlXPathInit</a> (void)</pre>
+<pre class="programlisting">int <a href="#xmlXPathIsInf">xmlXPathIsInf</a> (double val)</pre>
+<pre class="programlisting">int <a href="#xmlXPathIsNaN">xmlXPathIsNaN</a> (double val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> <a href="#xmlXPathNewContext">xmlXPathNewContext</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNodeEval">xmlXPathNodeEval</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathObjectCopy">xmlXPathObjectCopy</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)</pre>
+<pre class="programlisting">long <a href="#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
+<pre class="programlisting">int <a href="#xmlXPathSetContextNode">xmlXPathSetContextNode</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)</pre>
+<pre class="programlisting">Function type: <a href="#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a>
+<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a> (void * ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)
+</pre>
+<h2>Description</h2>
+<h3><a name="XML_XPATH_CHECKNS" id="XML_XPATH_CHECKNS"></a>Macro: XML_XPATH_CHECKNS</h3><pre>#define XML_XPATH_CHECKNS</pre><p>check namespaces at compilation</p>
+<h3><a name="XML_XPATH_NOVAR" id="XML_XPATH_NOVAR"></a>Macro: XML_XPATH_NOVAR</h3><pre>#define XML_XPATH_NOVAR</pre><p>forbid variables in expression</p>
+<h3><a name="xmlXPathNodeSetGetLength" id="xmlXPathNodeSetGetLength"></a>Macro: xmlXPathNodeSetGetLength</h3><pre>#define xmlXPathNodeSetGetLength</pre><p>Implement a functionality similar to the DOM NodeList.length. Returns the number of nodes in the node-set.</p>
+<h3><a name="xmlXPathNodeSetIsEmpty" id="xmlXPathNodeSetIsEmpty"></a>Macro: xmlXPathNodeSetIsEmpty</h3><pre>#define xmlXPathNodeSetIsEmpty</pre><p>Checks whether @ns is empty or not. Returns %TRUE if @ns is an empty node-set.</p>
+<h3><a name="xmlXPathNodeSetItem" id="xmlXPathNodeSetItem"></a>Macro: xmlXPathNodeSetItem</h3><pre>#define xmlXPathNodeSetItem</pre><p>Implements a functionality similar to the DOM NodeList.item(). Returns the <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> at the given @index in @ns or NULL if @index is out of range (0 to length-1)</p>
+<h3><a name="xmlNodeSet" id="xmlNodeSet">Structure xmlNodeSet</a></h3><pre class="programlisting">Structure xmlNodeSet<br />struct _xmlNodeSet {
+ int nodeNr : number of nodes in the set
+ int nodeMax : size of the array as allocated
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * nodeTab : array of nodes in no particular order @
+}</pre><h3><a name="xmlXPathAxis" id="xmlXPathAxis">Structure xmlXPathAxis</a></h3><pre class="programlisting">Structure xmlXPathAxis<br />struct _xmlXPathAxis {
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : the axis name
+ <a href="libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a> func : the search function
+}</pre><h3><a name="xmlXPathCompExpr" id="xmlXPathCompExpr">Structure xmlXPathCompExpr</a></h3><pre class="programlisting">Structure xmlXPathCompExpr<br />struct _xmlXPathCompExpr {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlXPathContext" id="xmlXPathContext">Structure xmlXPathContext</a></h3><pre class="programlisting">Structure xmlXPathContext<br />struct _xmlXPathContext {
+ <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc : The current document
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node : The current node
+ int nb_variables_unused : unused (hash table)
+ int max_variables_unused : unused (hash table)
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> varHash : Hash table of defined variables
+ int nb_types : number of defined types
+ int max_types : max number of types
+ <a href="libxml-xpath.html#xmlXPathTypePtr">xmlXPathTypePtr</a> types : Array of defined types
+ int nb_funcs_unused : unused (hash table)
+ int max_funcs_unused : unused (hash table)
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> funcHash : Hash table of defined funcs
+ int nb_axis : number of defined axis
+ int max_axis : max number of axis
+ <a href="libxml-xpath.html#xmlXPathAxisPtr">xmlXPathAxisPtr</a> axis : Array of defined axis the namespace nod
+ <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> * namespaces : Array of namespaces
+ int nsNr : number of namespace in scope
+ void * user : function to free extra variables
+ int contextSize : the context size
+ int proximityPosition : the proximity position extra stuff for
+ int xptr : is this an XPointer context?
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> here : for here()
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> origin : for origin() the set of namespace decla
+ <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> nsHash : The namespaces hash table
+ <a href="libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a> varLookupFunc : variable lookup func
+ void * varLookupData : variable lookup data Possibility to lin
+ void * extra : needed for XSLT The function name and U
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * function
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * functionURI : function lookup function and data
+ <a href="libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a> funcLookupFunc : function lookup func
+ void * funcLookupData : function lookup data temporary namespac
+ <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> * tmpNsList : Array of namespaces
+ int tmpNsNr : number of namespaces in scope error rep
+ void * userData : user specific data block
+ <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> error : the callback in case of errors
+ <a href="libxml-xmlerror.html#xmlError">xmlError</a> lastError : the last error
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> debugNode : the source node XSLT dictionary
+ <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionary if any
+ int flags : flags to control compilation Cache for
+ void * cache : Resource limits
+ unsigned long opLimit
+ unsigned long opCount
+ int depth
+ int maxDepth
+ int maxParserDepth
+}</pre><h3>Enum <a name="xmlXPathError" id="xmlXPathError">xmlXPathError</a></h3><pre class="programlisting">Enum xmlXPathError {
+ <a name="XPATH_EXPRESSION_OK" id="XPATH_EXPRESSION_OK">XPATH_EXPRESSION_OK</a> = 0
+ <a name="XPATH_NUMBER_ERROR" id="XPATH_NUMBER_ERROR">XPATH_NUMBER_ERROR</a> = 1
+ <a name="XPATH_UNFINISHED_LITERAL_ERROR" id="XPATH_UNFINISHED_LITERAL_ERROR">XPATH_UNFINISHED_LITERAL_ERROR</a> = 2
+ <a name="XPATH_START_LITERAL_ERROR" id="XPATH_START_LITERAL_ERROR">XPATH_START_LITERAL_ERROR</a> = 3
+ <a name="XPATH_VARIABLE_REF_ERROR" id="XPATH_VARIABLE_REF_ERROR">XPATH_VARIABLE_REF_ERROR</a> = 4
+ <a name="XPATH_UNDEF_VARIABLE_ERROR" id="XPATH_UNDEF_VARIABLE_ERROR">XPATH_UNDEF_VARIABLE_ERROR</a> = 5
+ <a name="XPATH_INVALID_PREDICATE_ERROR" id="XPATH_INVALID_PREDICATE_ERROR">XPATH_INVALID_PREDICATE_ERROR</a> = 6
+ <a name="XPATH_EXPR_ERROR" id="XPATH_EXPR_ERROR">XPATH_EXPR_ERROR</a> = 7
+ <a name="XPATH_UNCLOSED_ERROR" id="XPATH_UNCLOSED_ERROR">XPATH_UNCLOSED_ERROR</a> = 8
+ <a name="XPATH_UNKNOWN_FUNC_ERROR" id="XPATH_UNKNOWN_FUNC_ERROR">XPATH_UNKNOWN_FUNC_ERROR</a> = 9
+ <a name="XPATH_INVALID_OPERAND" id="XPATH_INVALID_OPERAND">XPATH_INVALID_OPERAND</a> = 10
+ <a name="XPATH_INVALID_TYPE" id="XPATH_INVALID_TYPE">XPATH_INVALID_TYPE</a> = 11
+ <a name="XPATH_INVALID_ARITY" id="XPATH_INVALID_ARITY">XPATH_INVALID_ARITY</a> = 12
+ <a name="XPATH_INVALID_CTXT_SIZE" id="XPATH_INVALID_CTXT_SIZE">XPATH_INVALID_CTXT_SIZE</a> = 13
+ <a name="XPATH_INVALID_CTXT_POSITION" id="XPATH_INVALID_CTXT_POSITION">XPATH_INVALID_CTXT_POSITION</a> = 14
+ <a name="XPATH_MEMORY_ERROR" id="XPATH_MEMORY_ERROR">XPATH_MEMORY_ERROR</a> = 15
+ <a name="XPTR_SYNTAX_ERROR" id="XPTR_SYNTAX_ERROR">XPTR_SYNTAX_ERROR</a> = 16
+ <a name="XPTR_RESOURCE_ERROR" id="XPTR_RESOURCE_ERROR">XPTR_RESOURCE_ERROR</a> = 17
+ <a name="XPTR_SUB_RESOURCE_ERROR" id="XPTR_SUB_RESOURCE_ERROR">XPTR_SUB_RESOURCE_ERROR</a> = 18
+ <a name="XPATH_UNDEF_PREFIX_ERROR" id="XPATH_UNDEF_PREFIX_ERROR">XPATH_UNDEF_PREFIX_ERROR</a> = 19
+ <a name="XPATH_ENCODING_ERROR" id="XPATH_ENCODING_ERROR">XPATH_ENCODING_ERROR</a> = 20
+ <a name="XPATH_INVALID_CHAR_ERROR" id="XPATH_INVALID_CHAR_ERROR">XPATH_INVALID_CHAR_ERROR</a> = 21
+ <a name="XPATH_INVALID_CTXT" id="XPATH_INVALID_CTXT">XPATH_INVALID_CTXT</a> = 22
+ <a name="XPATH_STACK_ERROR" id="XPATH_STACK_ERROR">XPATH_STACK_ERROR</a> = 23
+ <a name="XPATH_FORBID_VARIABLE_ERROR" id="XPATH_FORBID_VARIABLE_ERROR">XPATH_FORBID_VARIABLE_ERROR</a> = 24
+ <a name="XPATH_OP_LIMIT_EXCEEDED" id="XPATH_OP_LIMIT_EXCEEDED">XPATH_OP_LIMIT_EXCEEDED</a> = 25
+ <a name="XPATH_RECURSION_LIMIT_EXCEEDED" id="XPATH_RECURSION_LIMIT_EXCEEDED">XPATH_RECURSION_LIMIT_EXCEEDED</a> = 26
+}
+</pre><h3><a name="xmlXPathFunct" id="xmlXPathFunct">Structure xmlXPathFunct</a></h3><pre class="programlisting">Structure xmlXPathFunct<br />struct _xmlXPathFunct {
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : the function name
+ <a href="libxml-xpath.html#xmlXPathEvalFunc">xmlXPathEvalFunc</a> func : the evaluation function
+}</pre><h3><a name="xmlXPathObject" id="xmlXPathObject">Structure xmlXPathObject</a></h3><pre class="programlisting">Structure xmlXPathObject<br />struct _xmlXPathObject {
+ <a href="libxml-xpath.html#xmlXPathObjectType">xmlXPathObjectType</a> type
+ <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodesetval
+ int boolval
+ double floatval
+ <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * stringval
+ void * user
+ int index
+ void * user2
+ int index2
+}</pre><h3>Enum <a name="xmlXPathObjectType" id="xmlXPathObjectType">xmlXPathObjectType</a></h3><pre class="programlisting">Enum xmlXPathObjectType {
+ <a name="XPATH_UNDEFINED" id="XPATH_UNDEFINED">XPATH_UNDEFINED</a> = 0
+ <a name="XPATH_NODESET" id="XPATH_NODESET">XPATH_NODESET</a> = 1
+ <a name="XPATH_BOOLEAN" id="XPATH_BOOLEAN">XPATH_BOOLEAN</a> = 2
+ <a name="XPATH_NUMBER" id="XPATH_NUMBER">XPATH_NUMBER</a> = 3
+ <a name="XPATH_STRING" id="XPATH_STRING">XPATH_STRING</a> = 4
+ <a name="XPATH_POINT" id="XPATH_POINT">XPATH_POINT</a> = 5
+ <a name="XPATH_RANGE" id="XPATH_RANGE">XPATH_RANGE</a> = 6
+ <a name="XPATH_LOCATIONSET" id="XPATH_LOCATIONSET">XPATH_LOCATIONSET</a> = 7
+ <a name="XPATH_USERS" id="XPATH_USERS">XPATH_USERS</a> = 8
+ <a name="XPATH_XSLT_TREE" id="XPATH_XSLT_TREE">XPATH_XSLT_TREE</a> = 9 : An XSLT value tree, non modifiable
+}
+</pre><h3><a name="xmlXPathParserContext" id="xmlXPathParserContext">Structure xmlXPathParserContext</a></h3><pre class="programlisting">Structure xmlXPathParserContext<br />struct _xmlXPathParserContext {
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur : the current char being parsed
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * base : the full expression
+ int error : error code
+ <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> context : the evaluation context
+ <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value : the current value
+ int valueNr : number of values stacked
+ int valueMax : max number of values stacked
+ <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> * valueTab : stack of values
+ <a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp : the precompiled expression
+ int xptr : it this an XPointer expression
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> ancestor : used for walking preceding axis
+ int valueFrame : used to limit Pop on the stack
+}</pre><h3><a name="xmlXPathType" id="xmlXPathType">Structure xmlXPathType</a></h3><pre class="programlisting">Structure xmlXPathType<br />struct _xmlXPathType {
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : the type name
+ <a href="libxml-xpath.html#xmlXPathConvertFunc">xmlXPathConvertFunc</a> func : the conversion function
+}</pre><h3><a name="xmlXPathVariable" id="xmlXPathVariable">Structure xmlXPathVariable</a></h3><pre class="programlisting">Structure xmlXPathVariable<br />struct _xmlXPathVariable {
+ const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name : the variable name
+ <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value : the value
+}</pre><h3><a name="xmlXPathAxisFunc" id="xmlXPathAxisFunc"></a>Function type: xmlXPathAxisFunc</h3><pre class="programlisting">Function type: xmlXPathAxisFunc
+<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathAxisFunc (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> cur)
+</pre><p>An axis traversal function. To traverse an axis, the engine calls the first time with cur == NULL and repeat until the function returns NULL indicating the end of the axis traversal.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath interpreter context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the previous node being explored on that axis</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next node in that axis or NULL if at the end of the axis.</td></tr></tbody></table></div><br />
+<h3><a name="xmlXPathCastBooleanToNumber" id="xmlXPathCastBooleanToNumber"></a>Function: xmlXPathCastBooleanToNumber</h3><pre class="programlisting">double xmlXPathCastBooleanToNumber (int val)<br />
+</pre><p>Converts a boolean to its number value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a boolean</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number value</td></tr></tbody></table></div><h3><a name="xmlXPathCastBooleanToString" id="xmlXPathCastBooleanToString"></a>Function: xmlXPathCastBooleanToString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathCastBooleanToString (int val)<br />
+</pre><p>Converts a boolean to its string value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a boolean</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly allocated string.</td></tr></tbody></table></div><h3><a name="xmlXPathCastNodeSetToBoolean" id="xmlXPathCastNodeSetToBoolean"></a>Function: xmlXPathCastNodeSetToBoolean</h3><pre class="programlisting">int xmlXPathCastNodeSetToBoolean (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns)<br />
+</pre><p>Converts a node-set to its boolean value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the boolean value</td></tr></tbody></table></div><h3><a name="xmlXPathCastNodeSetToNumber" id="xmlXPathCastNodeSetToNumber"></a>Function: xmlXPathCastNodeSetToNumber</h3><pre class="programlisting">double xmlXPathCastNodeSetToNumber (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns)<br />
+</pre><p>Converts a node-set to its number value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number value</td></tr></tbody></table></div><h3><a name="xmlXPathCastNodeSetToString" id="xmlXPathCastNodeSetToString"></a>Function: xmlXPathCastNodeSetToString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathCastNodeSetToString (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> ns)<br />
+</pre><p>Converts a node-set to its string value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly allocated string.</td></tr></tbody></table></div><h3><a name="xmlXPathCastNodeToNumber" id="xmlXPathCastNodeToNumber"></a>Function: xmlXPathCastNodeToNumber</h3><pre class="programlisting">double xmlXPathCastNodeToNumber (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Converts a node to its number value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number value</td></tr></tbody></table></div><h3><a name="xmlXPathCastNodeToString" id="xmlXPathCastNodeToString"></a>Function: xmlXPathCastNodeToString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathCastNodeToString (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Converts a node to its string value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly allocated string.</td></tr></tbody></table></div><h3><a name="xmlXPathCastNumberToBoolean" id="xmlXPathCastNumberToBoolean"></a>Function: xmlXPathCastNumberToBoolean</h3><pre class="programlisting">int xmlXPathCastNumberToBoolean (double val)<br />
+</pre><p>Converts a number to its boolean value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the boolean value</td></tr></tbody></table></div><h3><a name="xmlXPathCastNumberToString" id="xmlXPathCastNumberToString"></a>Function: xmlXPathCastNumberToString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathCastNumberToString (double val)<br />
+</pre><p>Converts a number to its string value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly allocated string.</td></tr></tbody></table></div><h3><a name="xmlXPathCastStringToBoolean" id="xmlXPathCastStringToBoolean"></a>Function: xmlXPathCastStringToBoolean</h3><pre class="programlisting">int xmlXPathCastStringToBoolean (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)<br />
+</pre><p>Converts a string to its boolean value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the boolean value</td></tr></tbody></table></div><h3><a name="xmlXPathCastStringToNumber" id="xmlXPathCastStringToNumber"></a>Function: xmlXPathCastStringToNumber</h3><pre class="programlisting">double xmlXPathCastStringToNumber (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)<br />
+</pre><p>Converts a string to its number value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number value</td></tr></tbody></table></div><h3><a name="xmlXPathCastToBoolean" id="xmlXPathCastToBoolean"></a>Function: xmlXPathCastToBoolean</h3><pre class="programlisting">int xmlXPathCastToBoolean (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br />
+</pre><p>Converts an XPath object to its boolean value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the boolean value</td></tr></tbody></table></div><h3><a name="xmlXPathCastToNumber" id="xmlXPathCastToNumber"></a>Function: xmlXPathCastToNumber</h3><pre class="programlisting">double xmlXPathCastToNumber (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br />
+</pre><p>Converts an XPath object to its number value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number value</td></tr></tbody></table></div><h3><a name="xmlXPathCastToString" id="xmlXPathCastToString"></a>Function: xmlXPathCastToString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathCastToString (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br />
+</pre><p>Converts an existing object to its string() equivalent</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the allocated string value of the object, NULL in case of error. It's up to the caller to free the string memory with xmlFree().</td></tr></tbody></table></div><h3><a name="xmlXPathCmpNodes" id="xmlXPathCmpNodes"></a>Function: xmlXPathCmpNodes</h3><pre class="programlisting">int xmlXPathCmpNodes (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node1, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node2)<br />
+</pre><p>Compare two nodes w.r.t document order</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node1</tt></i>:</span></td><td>the first node</td></tr><tr><td><span class="term"><i><tt>node2</tt></i>:</span></td><td>the second node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-2 in case of error 1 if first point &lt; second point, 0 if it's the same node, -1 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathCompile" id="xmlXPathCompile"></a>Function: xmlXPathCompile</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> xmlXPathCompile (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>Compile an XPath expression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> resulting from the compilation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathCompiledEval" id="xmlXPathCompiledEval"></a>Function: xmlXPathCompiledEval</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathCompiledEval (<a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br />
+</pre><p>Evaluate the Precompiled XPath expression in the given context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled XPath expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathCompiledEvalToBoolean" id="xmlXPathCompiledEvalToBoolean"></a>Function: xmlXPathCompiledEvalToBoolean</h3><pre class="programlisting">int xmlXPathCompiledEvalToBoolean (<a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br />
+</pre><p>Applies the XPath boolean() function on the result of the given compiled expression.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled XPath expression</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the expression evaluated to true, 0 if to false and -1 in API and internal errors.</td></tr></tbody></table></div><h3><a name="xmlXPathContextSetCache" id="xmlXPathContextSetCache"></a>Function: xmlXPathContextSetCache</h3><pre class="programlisting">int xmlXPathContextSetCache (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> int active, <br /> int value, <br /> int options)<br />
+</pre><p>Creates/frees an object cache on the XPath context. If activates XPath objects (xmlXPathObject) will be cached internally to be reused. @options: 0: This will set the XPath object caching: @value: This will set the maximum number of XPath objects to be cached per slot There are 5 slots for: node-set, string, number, boolean, and misc objects. Use &lt;0 for the default number (100). Other values for @options have currently no effect.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>active</tt></i>:</span></td><td>enables/disables (creates/frees) the cache</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a value with semantics dependent on @options</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>options (currently only the value 0 is used)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the setting succeeded, and -1 on API or internal errors.</td></tr></tbody></table></div><h3><a name="xmlXPathConvertBoolean" id="xmlXPathConvertBoolean"></a>Function: xmlXPathConvertBoolean</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathConvertBoolean (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br />
+</pre><p>Converts an existing object to its boolean() equivalent</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new object, the old one is freed (or the operation is done directly on @val)</td></tr></tbody></table></div><h3><a name="xmlXPathConvertFunc" id="xmlXPathConvertFunc"></a>Function type: xmlXPathConvertFunc</h3><pre class="programlisting">Function type: xmlXPathConvertFunc
+int xmlXPathConvertFunc (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj, <br /> int type)
+</pre><p>A conversion function is associated to a type and used to cast the new type to primitive values.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the number of the target type</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div><br />
+<h3><a name="xmlXPathConvertNumber" id="xmlXPathConvertNumber"></a>Function: xmlXPathConvertNumber</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathConvertNumber (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br />
+</pre><p>Converts an existing object to its number() equivalent</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new object, the old one is freed (or the operation is done directly on @val)</td></tr></tbody></table></div><h3><a name="xmlXPathConvertString" id="xmlXPathConvertString"></a>Function: xmlXPathConvertString</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathConvertString (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br />
+</pre><p>Converts an existing object to its string() equivalent</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new object, the old one is freed (or the operation is done directly on @val)</td></tr></tbody></table></div><h3><a name="xmlXPathCtxtCompile" id="xmlXPathCtxtCompile"></a>Function: xmlXPathCtxtCompile</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> xmlXPathCtxtCompile (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>Compile an XPath expression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> resulting from the compilation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathEval" id="xmlXPathEval"></a>Function: xmlXPathEval</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathEval (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br />
+</pre><p>Evaluate the XPath Location Path in the given context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathEvalExpression" id="xmlXPathEvalExpression"></a>Function: xmlXPathEvalExpression</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathEvalExpression (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br />
+</pre><p>Alias for xmlXPathEval().</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathEvalFunc" id="xmlXPathEvalFunc"></a>Function type: xmlXPathEvalFunc</h3><pre class="programlisting">Function type: xmlXPathEvalFunc
+void xmlXPathEvalFunc (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)
+</pre><p>An XPath evaluation function, the parameters are on the XPath context stack.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments passed to the function</td></tr></tbody></table></div><br />
+<h3><a name="xmlXPathEvalPredicate" id="xmlXPathEvalPredicate"></a>Function: xmlXPathEvalPredicate</h3><pre class="programlisting">int xmlXPathEvalPredicate (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> res)<br />
+</pre><p>Evaluate a predicate result for the current node. A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the position of the context node in the context node list (as returned by the position function) and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>res</tt></i>:</span></td><td>the Predicate Expression evaluation result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if predicate is true, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathFreeCompExpr" id="xmlXPathFreeCompExpr"></a>Function: xmlXPathFreeCompExpr</h3><pre class="programlisting">void xmlXPathFreeCompExpr (<a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp)<br />
+</pre><p>Free up the memory allocated by @comp</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>an XPATH comp</td></tr></tbody></table></div><h3><a name="xmlXPathFreeContext" id="xmlXPathFreeContext"></a>Function: xmlXPathFreeContext</h3><pre class="programlisting">void xmlXPathFreeContext (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br />
+</pre><p>Free up an <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context to free</td></tr></tbody></table></div><h3><a name="xmlXPathFreeNodeSet" id="xmlXPathFreeNodeSet"></a>Function: xmlXPathFreeNodeSet</h3><pre class="programlisting">void xmlXPathFreeNodeSet (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> obj)<br />
+</pre><p>Free the NodeSet compound (not the actual nodes !).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> to free</td></tr></tbody></table></div><h3><a name="xmlXPathFreeNodeSetList" id="xmlXPathFreeNodeSetList"></a>Function: xmlXPathFreeNodeSetList</h3><pre class="programlisting">void xmlXPathFreeNodeSetList (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj)<br />
+</pre><p>Free up the <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> @obj but don't deallocate the objects in the list contrary to xmlXPathFreeObject().</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>an existing NodeSetList object</td></tr></tbody></table></div><h3><a name="xmlXPathFreeObject" id="xmlXPathFreeObject"></a>Function: xmlXPathFreeObject</h3><pre class="programlisting">void xmlXPathFreeObject (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj)<br />
+</pre><p>Free up an <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> object.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the object to free</td></tr></tbody></table></div><h3><a name="xmlXPathFuncLookupFunc" id="xmlXPathFuncLookupFunc"></a>Function type: xmlXPathFuncLookupFunc</h3><pre class="programlisting">Function type: xmlXPathFuncLookupFunc
+<a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> xmlXPathFuncLookupFunc (void * ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)
+</pre><p>Prototype for callbacks used to plug function lookup in the XPath engine.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>name of the function</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the namespace name hosting this function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the XPath function or NULL if not found.</td></tr></tbody></table></div><br />
+<h3><a name="xmlXPathFunction" id="xmlXPathFunction"></a>Function type: xmlXPathFunction</h3><pre class="programlisting">Function type: xmlXPathFunction
+void xmlXPathFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)
+</pre><p>An XPath function. The arguments (if any) are popped out from the context stack and the result is pushed on the stack.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath interprestation context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><br />
+<h3><a name="xmlXPathInit" id="xmlXPathInit"></a>Function: xmlXPathInit</h3><pre class="programlisting">void xmlXPathInit (void)<br />
+</pre><p>Initialize the XPath environment</p>
+<h3><a name="xmlXPathIsInf" id="xmlXPathIsInf"></a>Function: xmlXPathIsInf</h3><pre class="programlisting">int xmlXPathIsInf (double val)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathIsNaN" id="xmlXPathIsNaN"></a>Function: xmlXPathIsNaN</h3><pre class="programlisting">int xmlXPathIsNaN (double val)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is a NaN, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathNewContext" id="xmlXPathNewContext"></a>Function: xmlXPathNewContext</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> xmlXPathNewContext (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a> just allocated. The caller will need to free it.</td></tr></tbody></table></div><h3><a name="xmlXPathNodeEval" id="xmlXPathNodeEval"></a>Function: xmlXPathNodeEval</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNodeEval (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br />
+</pre><p>Evaluate the XPath Location Path in the given context. The node 'node' is set as the context node. The context node is not restored.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to to use as the context node</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathNodeSetCreate" id="xmlXPathNodeSetCreate"></a>Function: xmlXPathNodeSetCreate</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeSetCreate (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> of type double and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an initial xmlNodePtr, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathObjectCopy" id="xmlXPathObjectCopy"></a>Function: xmlXPathObjectCopy</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathObjectCopy (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br />
+</pre><p>allocate a new copy of a given object</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the original object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathOrderDocElems" id="xmlXPathOrderDocElems"></a>Function: xmlXPathOrderDocElems</h3><pre class="programlisting">long xmlXPathOrderDocElems (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+</pre><p>Call this routine to speed up XPath computation on static documents. This stamps all the element nodes with the document order Like for line information, the order is kept in the element-&gt;content field, the value stored is actually - the node number (starting at -1) to be able to differentiate from line numbers.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an input document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements found in the document or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlXPathSetContextNode" id="xmlXPathSetContextNode"></a>Function: xmlXPathSetContextNode</h3><pre class="programlisting">int xmlXPathSetContextNode (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br />
+</pre><p>Sets 'node' as the context node. The node must be in the same document as that associated with the context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node to to use as the context node</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error or 0 if successful</td></tr></tbody></table></div><h3><a name="xmlXPathVariableLookupFunc" id="xmlXPathVariableLookupFunc"></a>Function type: xmlXPathVariableLookupFunc</h3><pre class="programlisting">Function type: xmlXPathVariableLookupFunc
+<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathVariableLookupFunc (void * ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)
+</pre><p>Prototype for callbacks used to plug variable lookup in the XPath engine.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>name of the variable</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the namespace name hosting this variable</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the XPath object value or NULL if not found.</td></tr></tbody></table></div><br />
+<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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xpathInternals.html b/libxml2-2.9.10/doc/html/libxml-xpathInternals.html
new file mode 100644
index 0000000..8b894af
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xpathInternals.html
@@ -0,0 +1,394 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xpathInternals from libxml2</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></h1><h2>Module xpathInternals from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xpath.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xpath.html">xpath</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xpointer.html">xpointer</a></th><td><a accesskey="n" href="libxml-xpointer.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>internal interfaces for XML Path Language implementation used to build new modules on top of XPath like XPointer and XSLT </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a></pre><pre class="programlisting">#define <a href="#CAST_TO_NUMBER">CAST_TO_NUMBER</a></pre><pre class="programlisting">#define <a href="#CAST_TO_STRING">CAST_TO_STRING</a></pre><pre class="programlisting">#define <a href="#CHECK_ARITY">CHECK_ARITY</a></pre><pre class="programlisting">#define <a href="#CHECK_ERROR">CHECK_ERROR</a></pre><pre class="programlisting">#define <a href="#CHECK_ERROR0">CHECK_ERROR0</a></pre><pre class="programlisting">#define <a href="#CHECK_TYPE">CHECK_TYPE</a></pre><pre class="programlisting">#define <a href="#CHECK_TYPE0">CHECK_TYPE0</a></pre><pre class="programlisting">#define <a href="#XP_ERROR">XP_ERROR</a></pre><pre class="programlisting">#define <a href="#XP_ERROR0">XP_ERROR0</a></pre><pre class="programlisting">#define <a href="#xmlXPathCheckError">xmlXPathCheckError</a></pre><pre class="programlisting">#define <a href="#xmlXPathEmptyNodeSet">xmlXPathEmptyNodeSet</a></pre><pre class="programlisting">#define <a href="#xmlXPathGetContextNode">xmlXPathGetContextNode</a></pre><pre class="programlisting">#define <a href="#xmlXPathGetDocument">xmlXPathGetDocument</a></pre><pre class="programlisting">#define <a href="#xmlXPathGetError">xmlXPathGetError</a></pre><pre class="programlisting">#define <a href="#xmlXPathReturnBoolean">xmlXPathReturnBoolean</a></pre><pre class="programlisting">#define <a href="#xmlXPathReturnEmptyNodeSet">xmlXPathReturnEmptyNodeSet</a></pre><pre class="programlisting">#define <a href="#xmlXPathReturnEmptyString">xmlXPathReturnEmptyString</a></pre><pre class="programlisting">#define <a href="#xmlXPathReturnExternal">xmlXPathReturnExternal</a></pre><pre class="programlisting">#define <a href="#xmlXPathReturnFalse">xmlXPathReturnFalse</a></pre><pre class="programlisting">#define <a href="#xmlXPathReturnNodeSet">xmlXPathReturnNodeSet</a></pre><pre class="programlisting">#define <a href="#xmlXPathReturnNumber">xmlXPathReturnNumber</a></pre><pre class="programlisting">#define <a href="#xmlXPathReturnString">xmlXPathReturnString</a></pre><pre class="programlisting">#define <a href="#xmlXPathReturnTrue">xmlXPathReturnTrue</a></pre><pre class="programlisting">#define <a href="#xmlXPathSetArityError">xmlXPathSetArityError</a></pre><pre class="programlisting">#define <a href="#xmlXPathSetError">xmlXPathSetError</a></pre><pre class="programlisting">#define <a href="#xmlXPathSetTypeError">xmlXPathSetTypeError</a></pre><pre class="programlisting">#define <a href="#xmlXPathStackIsExternal">xmlXPathStackIsExternal</a></pre><pre class="programlisting">#define <a href="#xmlXPathStackIsNodeSet">xmlXPathStackIsNodeSet</a></pre><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#valuePop">valuePop</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#valuePush">valuePush</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value)</pre>
+<pre class="programlisting">void <a href="#xmlXPathAddValues">xmlXPathAddValues</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">int <a href="#xmlXPathCompareValues">xmlXPathCompareValues</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int inf, <br /> int strict)</pre>
+<pre class="programlisting">void <a href="#xmlXPathConcatFunction">xmlXPathConcatFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathContainsFunction">xmlXPathContainsFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathCountFunction">xmlXPathCountFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a> (FILE * output, <br /> <a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br /> int depth)</pre>
+<pre class="programlisting">void <a href="#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a> (FILE * output, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> cur, <br /> int depth)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathDifference">xmlXPathDifference</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathDistinct">xmlXPathDistinct</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathDistinctSorted">xmlXPathDistinctSorted</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes)</pre>
+<pre class="programlisting">void <a href="#xmlXPathDivValues">xmlXPathDivValues</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlXPathEqualValues">xmlXPathEqualValues</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathErr">xmlXPathErr</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int error)</pre>
+<pre class="programlisting">void <a href="#xmlXPathEvalExpr">xmlXPathEvalExpr</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> res)</pre>
+<pre class="programlisting">void <a href="#xmlXPathFalseFunction">xmlXPathFalseFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathFloorFunction">xmlXPathFloorFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathFreeParserContext">xmlXPathFreeParserContext</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> <a href="#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> <a href="#xmlXPathFunctionLookupNS">xmlXPathFunctionLookupNS</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)</pre>
+<pre class="programlisting">int <a href="#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)</pre>
+<pre class="programlisting">void <a href="#xmlXPathIdFunction">xmlXPathIdFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathIntersection">xmlXPathIntersection</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)</pre>
+<pre class="programlisting">int <a href="#xmlXPathIsNodeType">xmlXPathIsNodeType</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting">void <a href="#xmlXPathLangFunction">xmlXPathLangFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathLastFunction">xmlXPathLastFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathLeading">xmlXPathLeading</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)</pre>
+<pre class="programlisting">void <a href="#xmlXPathLocalNameFunction">xmlXPathLocalNameFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathModValues">xmlXPathModValues</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathMultValues">xmlXPathMultValues</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathNamespaceURIFunction">xmlXPathNamespaceURIFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewBoolean">xmlXPathNewBoolean</a> (int val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewCString">xmlXPathNewCString</a> (const char * val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewFloat">xmlXPathNewFloat</a> (double val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewNodeSet">xmlXPathNewNodeSet</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewNodeSetList">xmlXPathNewNodeSetList</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> <a href="#xmlXPathNewParserContext">xmlXPathNewParserContext</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewString">xmlXPathNewString</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathNewValueTree">xmlXPathNewValueTree</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextAncestor">xmlXPathNextAncestor</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextAttribute">xmlXPathNextAttribute</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextChild">xmlXPathNextChild</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextDescendant">xmlXPathNextDescendant</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextFollowing">xmlXPathNextFollowing</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextFollowingSibling">xmlXPathNextFollowingSibling</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextNamespace">xmlXPathNextNamespace</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextParent">xmlXPathNextParent</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextPreceding">xmlXPathNextPreceding</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPathNextSelf">xmlXPathNextSelf</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeLeading">xmlXPathNodeLeading</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeLeadingSorted">xmlXPathNodeLeadingSorted</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">int <a href="#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)</pre>
+<pre class="programlisting">int <a href="#xmlXPathNodeSetAddNs">xmlXPathNodeSetAddNs</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns)</pre>
+<pre class="programlisting">int <a href="#xmlXPathNodeSetAddUnique">xmlXPathNodeSetAddUnique</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)</pre>
+<pre class="programlisting">int <a href="#xmlXPathNodeSetContains">xmlXPathNodeSetContains</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)</pre>
+<pre class="programlisting">void <a href="#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)</pre>
+<pre class="programlisting">void <a href="#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a> (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val2)</pre>
+<pre class="programlisting">void <a href="#xmlXPathNodeSetRemove">xmlXPathNodeSetRemove</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> int val)</pre>
+<pre class="programlisting">void <a href="#xmlXPathNodeSetSort">xmlXPathNodeSetSort</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> set)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
+<pre class="programlisting">void <a href="#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">int <a href="#xmlXPathNotEqualValues">xmlXPathNotEqualValues</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathNotFunction">xmlXPathNotFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathNsLookup">xmlXPathNsLookup</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)</pre>
+<pre class="programlisting">void <a href="#xmlXPathNumberFunction">xmlXPathNumberFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathParseNCName">xmlXPathParseNCName</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathParseName">xmlXPathParseName</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlXPathPopBoolean">xmlXPathPopBoolean</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void * <a href="#xmlXPathPopExternal">xmlXPathPopExternal</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathPopNodeSet">xmlXPathPopNodeSet</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">double <a href="#xmlXPathPopNumber">xmlXPathPopNumber</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlXPathPopString">xmlXPathPopString</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathPositionFunction">xmlXPathPositionFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathRegisterAllFunctions">xmlXPathRegisterAllFunctions</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)</pre>
+<pre class="programlisting">int <a href="#xmlXPathRegisterFunc">xmlXPathRegisterFunc</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> f)</pre>
+<pre class="programlisting">void <a href="#xmlXPathRegisterFuncLookup">xmlXPathRegisterFuncLookup</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a> f, <br /> void * funcCtxt)</pre>
+<pre class="programlisting">int <a href="#xmlXPathRegisterFuncNS">xmlXPathRegisterFuncNS</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri, <br /> <a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> f)</pre>
+<pre class="programlisting">int <a href="#xmlXPathRegisterNs">xmlXPathRegisterNs</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)</pre>
+<pre class="programlisting">int <a href="#xmlXPathRegisterVariable">xmlXPathRegisterVariable</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value)</pre>
+<pre class="programlisting">void <a href="#xmlXPathRegisterVariableLookup">xmlXPathRegisterVariableLookup</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a> f, <br /> void * data)</pre>
+<pre class="programlisting">int <a href="#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value)</pre>
+<pre class="programlisting">void <a href="#xmlXPathRegisteredFuncsCleanup">xmlXPathRegisteredFuncsCleanup</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathRegisteredNsCleanup">xmlXPathRegisteredNsCleanup</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathRegisteredVariablesCleanup">xmlXPathRegisteredVariablesCleanup</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathRoot">xmlXPathRoot</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathRoundFunction">xmlXPathRoundFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathStartsWithFunction">xmlXPathStartsWithFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">double <a href="#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
+<pre class="programlisting">void <a href="#xmlXPathStringFunction">xmlXPathStringFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathStringLengthFunction">xmlXPathStringLengthFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathSubValues">xmlXPathSubValues</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathSumFunction">xmlXPathSumFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathTrailing">xmlXPathTrailing</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> <a href="#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)</pre>
+<pre class="programlisting">void <a href="#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathTrueFunction">xmlXPathTrueFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting">void <a href="#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathVariableLookup">xmlXPathVariableLookup</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathVariableLookupNS">xmlXPathVariableLookupNS</a> (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathWrapCString">xmlXPathWrapCString</a> (char * val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathWrapExternal">xmlXPathWrapExternal</a> (void * val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathWrapNodeSet">xmlXPathWrapNodeSet</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPathWrapString">xmlXPathWrapString</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)</pre>
+<pre class="programlisting">void <a href="#xmlXPatherror">xmlXPatherror</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> const char * file, <br /> int line, <br /> int no)</pre>
+<h2>Description</h2>
+<h3><a name="CAST_TO_BOOLEAN" id="CAST_TO_BOOLEAN"></a>Macro: CAST_TO_BOOLEAN</h3><pre>#define CAST_TO_BOOLEAN</pre><p>Macro to try to cast the value on the top of the XPath stack to a boolean.</p>
+<h3><a name="CAST_TO_NUMBER" id="CAST_TO_NUMBER"></a>Macro: CAST_TO_NUMBER</h3><pre>#define CAST_TO_NUMBER</pre><p>Macro to try to cast the value on the top of the XPath stack to a number.</p>
+<h3><a name="CAST_TO_STRING" id="CAST_TO_STRING"></a>Macro: CAST_TO_STRING</h3><pre>#define CAST_TO_STRING</pre><p>Macro to try to cast the value on the top of the XPath stack to a string.</p>
+<h3><a name="CHECK_ARITY" id="CHECK_ARITY"></a>Macro: CHECK_ARITY</h3><pre>#define CHECK_ARITY</pre><p>Macro to check that the number of args passed to an XPath function matches.</p>
+<h3><a name="CHECK_ERROR" id="CHECK_ERROR"></a>Macro: CHECK_ERROR</h3><pre>#define CHECK_ERROR</pre><p>Macro to return from the function if an XPath error was detected.</p>
+<h3><a name="CHECK_ERROR0" id="CHECK_ERROR0"></a>Macro: CHECK_ERROR0</h3><pre>#define CHECK_ERROR0</pre><p>Macro to return 0 from the function if an XPath error was detected.</p>
+<h3><a name="CHECK_TYPE" id="CHECK_TYPE"></a>Macro: CHECK_TYPE</h3><pre>#define CHECK_TYPE</pre><p>Macro to check that the value on top of the XPath stack is of a given type.</p>
+<h3><a name="CHECK_TYPE0" id="CHECK_TYPE0"></a>Macro: CHECK_TYPE0</h3><pre>#define CHECK_TYPE0</pre><p>Macro to check that the value on top of the XPath stack is of a given type. Return(0) in case of failure</p>
+<h3><a name="XP_ERROR" id="XP_ERROR"></a>Macro: XP_ERROR</h3><pre>#define XP_ERROR</pre><p>Macro to raise an XPath error and return.</p>
+<h3><a name="XP_ERROR0" id="XP_ERROR0"></a>Macro: XP_ERROR0</h3><pre>#define XP_ERROR0</pre><p>Macro to raise an XPath error and return 0.</p>
+<h3><a name="xmlXPathCheckError" id="xmlXPathCheckError"></a>Macro: xmlXPathCheckError</h3><pre>#define xmlXPathCheckError</pre><p>Check if an XPath error was raised. Returns true if an error has been raised, false otherwise.</p>
+<h3><a name="xmlXPathEmptyNodeSet" id="xmlXPathEmptyNodeSet"></a>Macro: xmlXPathEmptyNodeSet</h3><pre>#define xmlXPathEmptyNodeSet</pre><p>Empties a node-set.</p>
+<h3><a name="xmlXPathGetContextNode" id="xmlXPathGetContextNode"></a>Macro: xmlXPathGetContextNode</h3><pre>#define xmlXPathGetContextNode</pre><p>Get the context node of an XPath context. Returns the context node.</p>
+<h3><a name="xmlXPathGetDocument" id="xmlXPathGetDocument"></a>Macro: xmlXPathGetDocument</h3><pre>#define xmlXPathGetDocument</pre><p>Get the document of an XPath context. Returns the context document.</p>
+<h3><a name="xmlXPathGetError" id="xmlXPathGetError"></a>Macro: xmlXPathGetError</h3><pre>#define xmlXPathGetError</pre><p>Get the error code of an XPath context. Returns the context error.</p>
+<h3><a name="xmlXPathReturnBoolean" id="xmlXPathReturnBoolean"></a>Macro: xmlXPathReturnBoolean</h3><pre>#define xmlXPathReturnBoolean</pre><p>Pushes the boolean @val on the context stack.</p>
+<h3><a name="xmlXPathReturnEmptyNodeSet" id="xmlXPathReturnEmptyNodeSet"></a>Macro: xmlXPathReturnEmptyNodeSet</h3><pre>#define xmlXPathReturnEmptyNodeSet</pre><p>Pushes an empty node-set on the context stack.</p>
+<h3><a name="xmlXPathReturnEmptyString" id="xmlXPathReturnEmptyString"></a>Macro: xmlXPathReturnEmptyString</h3><pre>#define xmlXPathReturnEmptyString</pre><p>Pushes an empty string on the stack.</p>
+<h3><a name="xmlXPathReturnExternal" id="xmlXPathReturnExternal"></a>Macro: xmlXPathReturnExternal</h3><pre>#define xmlXPathReturnExternal</pre><p>Pushes user data on the context stack.</p>
+<h3><a name="xmlXPathReturnFalse" id="xmlXPathReturnFalse"></a>Macro: xmlXPathReturnFalse</h3><pre>#define xmlXPathReturnFalse</pre><p>Pushes false on the context stack.</p>
+<h3><a name="xmlXPathReturnNodeSet" id="xmlXPathReturnNodeSet"></a>Macro: xmlXPathReturnNodeSet</h3><pre>#define xmlXPathReturnNodeSet</pre><p>Pushes the node-set @ns on the context stack.</p>
+<h3><a name="xmlXPathReturnNumber" id="xmlXPathReturnNumber"></a>Macro: xmlXPathReturnNumber</h3><pre>#define xmlXPathReturnNumber</pre><p>Pushes the double @val on the context stack.</p>
+<h3><a name="xmlXPathReturnString" id="xmlXPathReturnString"></a>Macro: xmlXPathReturnString</h3><pre>#define xmlXPathReturnString</pre><p>Pushes the string @str on the context stack.</p>
+<h3><a name="xmlXPathReturnTrue" id="xmlXPathReturnTrue"></a>Macro: xmlXPathReturnTrue</h3><pre>#define xmlXPathReturnTrue</pre><p>Pushes true on the context stack.</p>
+<h3><a name="xmlXPathSetArityError" id="xmlXPathSetArityError"></a>Macro: xmlXPathSetArityError</h3><pre>#define xmlXPathSetArityError</pre><p>Raises an <a href="libxml-xpath.html#XPATH_INVALID_ARITY">XPATH_INVALID_ARITY</a> error.</p>
+<h3><a name="xmlXPathSetError" id="xmlXPathSetError"></a>Macro: xmlXPathSetError</h3><pre>#define xmlXPathSetError</pre><p>Raises an error.</p>
+<h3><a name="xmlXPathSetTypeError" id="xmlXPathSetTypeError"></a>Macro: xmlXPathSetTypeError</h3><pre>#define xmlXPathSetTypeError</pre><p>Raises an <a href="libxml-xpath.html#XPATH_INVALID_TYPE">XPATH_INVALID_TYPE</a> error.</p>
+<h3><a name="xmlXPathStackIsExternal" id="xmlXPathStackIsExternal"></a>Macro: xmlXPathStackIsExternal</h3><pre>#define xmlXPathStackIsExternal</pre><p>Checks if the current value on the XPath stack is an external object. Returns true if the current object on the stack is an external object.</p>
+<h3><a name="xmlXPathStackIsNodeSet" id="xmlXPathStackIsNodeSet"></a>Macro: xmlXPathStackIsNodeSet</h3><pre>#define xmlXPathStackIsNodeSet</pre><p>Check if the current value on the XPath stack is a node set or an XSLT value tree. Returns true if the current object on the stack is a node-set.</p>
+<h3><a name="valuePop" id="valuePop"></a>Function: valuePop</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> valuePop (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Pops the top XPath object from the value stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath evaluation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the XPath object just removed</td></tr></tbody></table></div><h3><a name="valuePush" id="valuePush"></a>Function: valuePush</h3><pre class="programlisting">int valuePush (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value)<br />
+</pre><p>Pushes a new XPath object on top of the value stack. If value is NULL, a memory error is recorded in the parser context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath evaluation context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the XPath object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of items on the value stack, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlXPathAddValues" id="xmlXPathAddValues"></a>Function: xmlXPathAddValues</h3><pre class="programlisting">void xmlXPathAddValues (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Implement the add operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div><h3><a name="xmlXPathBooleanFunction" id="xmlXPathBooleanFunction"></a>Function: xmlXPathBooleanFunction</h3><pre class="programlisting">void xmlXPathBooleanFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the boolean() XPath function boolean boolean(object) The boolean function converts its argument to a boolean as follows: - a number is true if and only if it is neither positive or negative zero nor NaN - a node-set is true if and only if it is non-empty - a string is true if and only if its length is non-zero</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathCeilingFunction" id="xmlXPathCeilingFunction"></a>Function: xmlXPathCeilingFunction</h3><pre class="programlisting">void xmlXPathCeilingFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the ceiling() XPath function number ceiling(number) The ceiling function returns the smallest (closest to negative infinity) number that is not less than the argument and that is an integer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathCompareValues" id="xmlXPathCompareValues"></a>Function: xmlXPathCompareValues</h3><pre class="programlisting">int xmlXPathCompareValues (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int inf, <br /> int strict)<br />
+</pre><p>Implement the compare operation on XPath objects: @arg1 &lt; @arg2 (1, 1, ... @arg1 &lt;= @arg2 (1, 0, ... @arg1 &gt; @arg2 (0, 1, ... @arg1 &gt;= @arg2 (0, 0, ... When neither object to be compared is a node-set and the operator is &lt;=, &lt;, &gt;=, &gt;, then the objects are compared by converted both objects to numbers and comparing the numbers according to IEEE 754. The &lt; comparison will be true if and only if the first number is less than the second number. The &lt;= comparison will be true if and only if the first number is less than or equal to the second number. The &gt; comparison will be true if and only if the first number is greater than the second number. The &gt;= comparison will be true if and only if the first number is greater than or equal to the second number.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>inf</tt></i>:</span></td><td>less than (1) or greater than (0)</td></tr><tr><td><span class="term"><i><tt>strict</tt></i>:</span></td><td>is the comparison strict</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the comparison succeeded, 0 if it failed</td></tr></tbody></table></div><h3><a name="xmlXPathConcatFunction" id="xmlXPathConcatFunction"></a>Function: xmlXPathConcatFunction</h3><pre class="programlisting">void xmlXPathConcatFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the concat() XPath function string concat(string, string, string*) The concat function returns the concatenation of its arguments.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathContainsFunction" id="xmlXPathContainsFunction"></a>Function: xmlXPathContainsFunction</h3><pre class="programlisting">void xmlXPathContainsFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the contains() XPath function boolean contains(string, string) The contains function returns true if the first argument string contains the second argument string, and otherwise returns false.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathCountFunction" id="xmlXPathCountFunction"></a>Function: xmlXPathCountFunction</h3><pre class="programlisting">void xmlXPathCountFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the count() XPath function number count(node-set)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathDebugDumpCompExpr" id="xmlXPathDebugDumpCompExpr"></a>Function: xmlXPathDebugDumpCompExpr</h3><pre class="programlisting">void xmlXPathDebugDumpCompExpr (FILE * output, <br /> <a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> comp, <br /> int depth)<br />
+</pre><p>Dumps the tree of the compiled XPath expression.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled XPath expression</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>the indentation level.</td></tr></tbody></table></div><h3><a name="xmlXPathDebugDumpObject" id="xmlXPathDebugDumpObject"></a>Function: xmlXPathDebugDumpObject</h3><pre class="programlisting">void xmlXPathDebugDumpObject (FILE * output, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> cur, <br /> int depth)<br />
+</pre><p>Dump the content of the object for debugging purposes</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * to dump the output</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the object to inspect</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td>indentation level</td></tr></tbody></table></div><h3><a name="xmlXPathDifference" id="xmlXPathDifference"></a>Function: xmlXPathDifference</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathDifference (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br />
+</pre><p>Implements the EXSLT - Sets difference() function: node-set set:difference (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the difference between the two node sets, or nodes1 if nodes2 is empty</td></tr></tbody></table></div><h3><a name="xmlXPathDistinct" id="xmlXPathDistinct"></a>Function: xmlXPathDistinct</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathDistinct (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes)<br />
+</pre><p>Implements the EXSLT - Sets distinct() function: node-set set:distinct (node-set) @nodes is sorted by document order, then #exslSetsDistinctSorted is called with the sorted node-set</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a subset of the nodes contained in @nodes, or @nodes if it is empty</td></tr></tbody></table></div><h3><a name="xmlXPathDistinctSorted" id="xmlXPathDistinctSorted"></a>Function: xmlXPathDistinctSorted</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathDistinctSorted (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes)<br />
+</pre><p>Implements the EXSLT - Sets distinct() function: node-set set:distinct (node-set)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a subset of the nodes contained in @nodes, or @nodes if it is empty</td></tr></tbody></table></div><h3><a name="xmlXPathDivValues" id="xmlXPathDivValues"></a>Function: xmlXPathDivValues</h3><pre class="programlisting">void xmlXPathDivValues (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Implement the div operation on XPath objects @arg1 / @arg2: The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div><h3><a name="xmlXPathEqualValues" id="xmlXPathEqualValues"></a>Function: xmlXPathEqualValues</h3><pre class="programlisting">int xmlXPathEqualValues (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Implement the equal operation on XPath objects content: @arg1 == @arg2</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or 1 depending on the results of the test.</td></tr></tbody></table></div><h3><a name="xmlXPathErr" id="xmlXPathErr"></a>Function: xmlXPathErr</h3><pre class="programlisting">void xmlXPathErr (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int error)<br />
+</pre><p>Handle an XPath error</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XPath parser context</td></tr><tr><td><span class="term"><i><tt>error</tt></i>:</span></td><td>the error code</td></tr></tbody></table></div><h3><a name="xmlXPathEvalExpr" id="xmlXPathEvalExpr"></a>Function: xmlXPathEvalExpr</h3><pre class="programlisting">void xmlXPathEvalExpr (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Parse and evaluate an XPath expression in the given context, then push the result on the context stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div><h3><a name="xmlXPathEvaluatePredicateResult" id="xmlXPathEvaluatePredicateResult"></a>Function: xmlXPathEvaluatePredicateResult</h3><pre class="programlisting">int xmlXPathEvaluatePredicateResult (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> res)<br />
+</pre><p>Evaluate a predicate result for the current node. A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the position of the context node in the context node list (as returned by the position function) and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>res</tt></i>:</span></td><td>the Predicate Expression evaluation result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if predicate is true, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathFalseFunction" id="xmlXPathFalseFunction"></a>Function: xmlXPathFalseFunction</h3><pre class="programlisting">void xmlXPathFalseFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the false() XPath function boolean false()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathFloorFunction" id="xmlXPathFloorFunction"></a>Function: xmlXPathFloorFunction</h3><pre class="programlisting">void xmlXPathFloorFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the floor() XPath function number floor(number) The floor function returns the largest (closest to positive infinity) number that is not greater than the argument and that is an integer.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathFreeParserContext" id="xmlXPathFreeParserContext"></a>Function: xmlXPathFreeParserContext</h3><pre class="programlisting">void xmlXPathFreeParserContext (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Free up an <a href="libxml-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context to free</td></tr></tbody></table></div><h3><a name="xmlXPathFunctionLookup" id="xmlXPathFunctionLookup"></a>Function: xmlXPathFunctionLookup</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> xmlXPathFunctionLookup (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Search in the Function array of the context for the given function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> or NULL if not found</td></tr></tbody></table></div><h3><a name="xmlXPathFunctionLookupNS" id="xmlXPathFunctionLookupNS"></a>Function: xmlXPathFunctionLookupNS</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> xmlXPathFunctionLookupNS (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)<br />
+</pre><p>Search in the Function array of the context for the given function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> or NULL if not found</td></tr></tbody></table></div><h3><a name="xmlXPathHasSameNodes" id="xmlXPathHasSameNodes"></a>Function: xmlXPathHasSameNodes</h3><pre class="programlisting">int xmlXPathHasSameNodes (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br />
+</pre><p>Implements the EXSLT - Sets has-same-nodes function: boolean set:has-same-node(node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true (1) if @nodes1 shares any node with @nodes2, false (0) otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathIdFunction" id="xmlXPathIdFunction"></a>Function: xmlXPathIdFunction</h3><pre class="programlisting">void xmlXPathIdFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the id() XPath function node-set id(object) The id function selects elements by their unique ID (see [5.2.1 Unique IDs]). When the argument to id is of type node-set, then the result is the union of the result of applying id to the string value of each of the nodes in the argument node-set. When the argument to id is of any other type, the argument is converted to a string as if by a call to the string function; the string is split into a whitespace-separated list of tokens (whitespace is any sequence of <a href="libxml-SAX.html#characters">characters</a> matching the production S); the result is a node-set containing the elements in the same document as the context node that have a unique ID equal to any of the tokens in the list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathIntersection" id="xmlXPathIntersection"></a>Function: xmlXPathIntersection</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathIntersection (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br />
+</pre><p>Implements the EXSLT - Sets intersection() function: node-set set:intersection (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a node set comprising the nodes that are within both the node sets passed as arguments</td></tr></tbody></table></div><h3><a name="xmlXPathIsNodeType" id="xmlXPathIsNodeType"></a>Function: xmlXPathIsNodeType</h3><pre class="programlisting">int xmlXPathIsNodeType (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Is the name given a NodeType one. [38] NodeType ::= 'comment' | 'text' | 'processing-instruction' | 'node'</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>a name string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathLangFunction" id="xmlXPathLangFunction"></a>Function: xmlXPathLangFunction</h3><pre class="programlisting">void xmlXPathLangFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the lang() XPath function boolean lang(string) The lang function returns true or false depending on whether the language of the context node as specified by xml:lang attributes is the same as or is a sublanguage of the language specified by the argument string. The language of the context node is determined by the value of the xml:lang <a href="libxml-SAX.html#attribute">attribute</a> on the context node, or, if the context node has no xml:lang attribute, by the value of the xml:lang <a href="libxml-SAX.html#attribute">attribute</a> on the nearest ancestor of the context node that has an xml:lang attribute. If there is no such attribute, then lang</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathLastFunction" id="xmlXPathLastFunction"></a>Function: xmlXPathLastFunction</h3><pre class="programlisting">void xmlXPathLastFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the last() XPath function number last() The last function returns the number of nodes in the context node list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathLeading" id="xmlXPathLeading"></a>Function: xmlXPathLeading</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathLeading (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br />
+</pre><p>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #exslSetsLeadingSorted is called.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes1 that precede the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn't contain @nodes2</td></tr></tbody></table></div><h3><a name="xmlXPathLeadingSorted" id="xmlXPathLeadingSorted"></a>Function: xmlXPathLeadingSorted</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathLeadingSorted (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br />
+</pre><p>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes1 that precede the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn't contain @nodes2</td></tr></tbody></table></div><h3><a name="xmlXPathLocalNameFunction" id="xmlXPathLocalNameFunction"></a>Function: xmlXPathLocalNameFunction</h3><pre class="programlisting">void xmlXPathLocalNameFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the local-name() XPath function string local-name(node-set?) The local-name function returns a string containing the local part of the name of the node in the argument node-set that is first in document order. If the node-set is empty or the first node has no name, an empty string is returned. If the argument is omitted it defaults to the context node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathModValues" id="xmlXPathModValues"></a>Function: xmlXPathModValues</h3><pre class="programlisting">void xmlXPathModValues (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Implement the mod operation on XPath objects: @arg1 / @arg2 The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div><h3><a name="xmlXPathMultValues" id="xmlXPathMultValues"></a>Function: xmlXPathMultValues</h3><pre class="programlisting">void xmlXPathMultValues (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Implement the multiply operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div><h3><a name="xmlXPathNamespaceURIFunction" id="xmlXPathNamespaceURIFunction"></a>Function: xmlXPathNamespaceURIFunction</h3><pre class="programlisting">void xmlXPathNamespaceURIFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the namespace-uri() XPath function string namespace-uri(node-set?) The namespace-uri function returns a string containing the namespace URI of the expanded name of the node in the argument node-set that is first in document order. If the node-set is empty, the first node has no name, or the expanded name has no namespace URI, an empty string is returned. If the argument is omitted it defaults to the context node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathNewBoolean" id="xmlXPathNewBoolean"></a>Function: xmlXPathNewBoolean</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewBoolean (int val)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type boolean and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the boolean value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathNewCString" id="xmlXPathNewCString"></a>Function: xmlXPathNewCString</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewCString (const char * val)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type string and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the char * value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathNewFloat" id="xmlXPathNewFloat"></a>Function: xmlXPathNewFloat</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewFloat (double val)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type double and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathNewNodeSet" id="xmlXPathNewNodeSet"></a>Function: xmlXPathNewNodeSet</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewNodeSet (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type NodeSet and initialize it with the single Node @val</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the NodePtr value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathNewNodeSetList" id="xmlXPathNewNodeSetList"></a>Function: xmlXPathNewNodeSetList</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewNodeSetList (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type NodeSet and initialize it with the Nodeset @val</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an existing NodeSet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathNewParserContext" id="xmlXPathNewParserContext"></a>Function: xmlXPathNewParserContext</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> xmlXPathNewParserContext (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathParserContext">xmlXPathParserContext</a> just allocated.</td></tr></tbody></table></div><h3><a name="xmlXPathNewString" id="xmlXPathNewString"></a>Function: xmlXPathNewString</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewString (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type string and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathNewValueTree" id="xmlXPathNewValueTree"></a>Function: xmlXPathNewValueTree</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNewValueTree (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type Value Tree (XSLT) and initialize it with the tree root @val</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the NodePtr value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathNextAncestor" id="xmlXPathNextAncestor"></a>Function: xmlXPathNextAncestor</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextAncestor (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "ancestor" direction the ancestor axis contains the ancestors of the context node; the ancestors of the context node consist of the parent of context node and the parent's parent and so on; the nodes are ordered in reverse document order; thus the parent is the first node on the axis, and the parent's parent is the second node on the axis</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextAncestorOrSelf" id="xmlXPathNextAncestorOrSelf"></a>Function: xmlXPathNextAncestorOrSelf</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextAncestorOrSelf (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "ancestor-or-self" direction he ancestor-or-self axis contains the context node and ancestors of the context node in reverse document order; thus the context node is the first node on the axis, and the context node's parent the second; parent here is defined the same as with the parent axis.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextAttribute" id="xmlXPathNextAttribute"></a>Function: xmlXPathNextAttribute</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextAttribute (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "attribute" direction TODO: support DTD inherited default attributes</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current <a href="libxml-SAX.html#attribute">attribute</a> in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextChild" id="xmlXPathNextChild"></a>Function: xmlXPathNextChild</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextChild (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "child" direction The child axis contains the children of the context node in document order.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextDescendant" id="xmlXPathNextDescendant"></a>Function: xmlXPathNextDescendant</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextDescendant (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "descendant" direction the descendant axis contains the descendants of the context node in document order; a descendant is a child or a child of a child and so on.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextDescendantOrSelf" id="xmlXPathNextDescendantOrSelf"></a>Function: xmlXPathNextDescendantOrSelf</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextDescendantOrSelf (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "descendant-or-self" direction the descendant-or-self axis contains the context node and the descendants of the context node in document order; thus the context node is the first node on the axis, and the first child of the context node is the second node on the axis</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextFollowing" id="xmlXPathNextFollowing"></a>Function: xmlXPathNextFollowing</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextFollowing (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "following" direction The following axis contains all nodes in the same document as the context node that are after the context node in document order, excluding any descendants and excluding <a href="libxml-SAX.html#attribute">attribute</a> nodes and namespace nodes; the nodes are ordered in document order</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextFollowingSibling" id="xmlXPathNextFollowingSibling"></a>Function: xmlXPathNextFollowingSibling</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextFollowingSibling (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "following-sibling" direction The following-sibling axis contains the following siblings of the context node in document order.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextNamespace" id="xmlXPathNextNamespace"></a>Function: xmlXPathNextNamespace</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextNamespace (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "namespace" direction the namespace axis contains the namespace nodes of the context node; the order of nodes on this axis is implementation-defined; the axis will be empty unless the context node is an element We keep the XML namespace node at the end of the list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current <a href="libxml-SAX.html#attribute">attribute</a> in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextParent" id="xmlXPathNextParent"></a>Function: xmlXPathNextParent</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextParent (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "parent" direction The parent axis contains the parent of the context node, if there is one.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextPreceding" id="xmlXPathNextPreceding"></a>Function: xmlXPathNextPreceding</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextPreceding (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "preceding" direction the preceding axis contains all nodes in the same document as the context node that are before the context node in document order, excluding any ancestors and excluding <a href="libxml-SAX.html#attribute">attribute</a> nodes and namespace nodes; the nodes are ordered in reverse document order</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextPrecedingSibling" id="xmlXPathNextPrecedingSibling"></a>Function: xmlXPathNextPrecedingSibling</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextPrecedingSibling (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "preceding-sibling" direction The preceding-sibling axis contains the preceding siblings of the context node in reverse document order; the first preceding sibling is first on the axis; the sibling preceding that node is the second on the axis and so on.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNextSelf" id="xmlXPathNextSelf"></a>Function: xmlXPathNextSelf</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPathNextSelf (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
+</pre><p>Traversal function for the "self" direction The self axis contains just the context node itself</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current node in the traversal</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next element following that axis</td></tr></tbody></table></div><h3><a name="xmlXPathNodeLeading" id="xmlXPathNodeLeading"></a>Function: xmlXPathNodeLeading</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeLeading (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes is sorted by document order, then #exslSetsNodeLeadingSorted is called.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node</td></tr></tbody></table></div><h3><a name="xmlXPathNodeLeadingSorted" id="xmlXPathNodeLeadingSorted"></a>Function: xmlXPathNodeLeadingSorted</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeLeadingSorted (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node</td></tr></tbody></table></div><h3><a name="xmlXPathNodeSetAdd" id="xmlXPathNodeSetAdd"></a>Function: xmlXPathNodeSetAdd</h3><pre class="programlisting">int xmlXPathNodeSetAdd (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br />
+</pre><p>add a new <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> to an existing NodeSet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial node set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a new <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlXPathNodeSetAddNs" id="xmlXPathNodeSetAddNs"></a>Function: xmlXPathNodeSetAddNs</h3><pre class="programlisting">int xmlXPathNodeSetAddNs (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns)<br />
+</pre><p>add a new namespace node to an existing NodeSet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial node set</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the hosting node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a the namespace node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlXPathNodeSetAddUnique" id="xmlXPathNodeSetAddUnique"></a>Function: xmlXPathNodeSetAddUnique</h3><pre class="programlisting">int xmlXPathNodeSetAddUnique (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br />
+</pre><p>add a new <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> to an existing NodeSet, optimized version when we are sure the node is not already in the set.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial node set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a new <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure</td></tr></tbody></table></div><h3><a name="xmlXPathNodeSetContains" id="xmlXPathNodeSetContains"></a>Function: xmlXPathNodeSetContains</h3><pre class="programlisting">int xmlXPathNodeSetContains (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br />
+</pre><p>checks whether @cur contains @val</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node-set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>true (1) if @cur contains @val, false (0) otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathNodeSetDel" id="xmlXPathNodeSetDel"></a>Function: xmlXPathNodeSetDel</h3><pre class="programlisting">void xmlXPathNodeSetDel (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> val)<br />
+</pre><p>Removes an <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> from an existing NodeSet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial node set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a></td></tr></tbody></table></div><h3><a name="xmlXPathNodeSetFreeNs" id="xmlXPathNodeSetFreeNs"></a>Function: xmlXPathNodeSetFreeNs</h3><pre class="programlisting">void xmlXPathNodeSetFreeNs (<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns)<br />
+</pre><p>Namespace nodes in libxml don't match the XPath semantic. In a node set the namespace nodes are duplicated and the next pointer is set to the parent node in the XPath semantic. Check if such a node needs to be freed</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the XPath namespace node found in a nodeset.</td></tr></tbody></table></div><h3><a name="xmlXPathNodeSetMerge" id="xmlXPathNodeSetMerge"></a>Function: xmlXPathNodeSetMerge</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeSetMerge (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val2)<br />
+</pre><p>Merges two nodesets, all nodes from @val2 are added to @val1 if @val1 is NULL, a new set is created and copied from @val2</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val1</tt></i>:</span></td><td>the first NodeSet or NULL</td></tr><tr><td><span class="term"><i><tt>val2</tt></i>:</span></td><td>the second NodeSet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>@val1 once extended or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlXPathNodeSetRemove" id="xmlXPathNodeSetRemove"></a>Function: xmlXPathNodeSetRemove</h3><pre class="programlisting">void xmlXPathNodeSetRemove (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> cur, <br /> int val)<br />
+</pre><p>Removes an entry from an existing NodeSet list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial node set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the index to remove</td></tr></tbody></table></div><h3><a name="xmlXPathNodeSetSort" id="xmlXPathNodeSetSort"></a>Function: xmlXPathNodeSetSort</h3><pre class="programlisting">void xmlXPathNodeSetSort (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> set)<br />
+</pre><p>Sort the node set in document order</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>set</tt></i>:</span></td><td>the node set</td></tr></tbody></table></div><h3><a name="xmlXPathNodeTrailing" id="xmlXPathNodeTrailing"></a>Function: xmlXPathNodeTrailing</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeTrailing (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes is sorted by document order, then #xmlXPathNodeTrailingSorted is called.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes that follow @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node</td></tr></tbody></table></div><h3><a name="xmlXPathNodeTrailingSorted" id="xmlXPathNodeTrailingSorted"></a>Function: xmlXPathNodeTrailingSorted</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathNodeTrailingSorted (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+</pre><p>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes that follow @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node</td></tr></tbody></table></div><h3><a name="xmlXPathNormalizeFunction" id="xmlXPathNormalizeFunction"></a>Function: xmlXPathNormalizeFunction</h3><pre class="programlisting">void xmlXPathNormalizeFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the normalize-space() XPath function string normalize-space(string?) The normalize-space function returns the argument string with white space normalized by stripping leading and trailing whitespace and replacing sequences of whitespace <a href="libxml-SAX.html#characters">characters</a> by a single space. Whitespace <a href="libxml-SAX.html#characters">characters</a> are the same allowed by the S production in XML. If the argument is omitted, it defaults to the context node converted to a string, in other words the value of the context node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathNotEqualValues" id="xmlXPathNotEqualValues"></a>Function: xmlXPathNotEqualValues</h3><pre class="programlisting">int xmlXPathNotEqualValues (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Implement the equal operation on XPath objects content: @arg1 == @arg2</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or 1 depending on the results of the test.</td></tr></tbody></table></div><h3><a name="xmlXPathNotFunction" id="xmlXPathNotFunction"></a>Function: xmlXPathNotFunction</h3><pre class="programlisting">void xmlXPathNotFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the not() XPath function boolean not(boolean) The not function returns true if its argument is false, and false otherwise.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathNsLookup" id="xmlXPathNsLookup"></a>Function: xmlXPathNsLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathNsLookup (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix)<br />
+</pre><p>Search in the namespace declaration array of the context for the given namespace name associated to the given prefix</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value or NULL if not found</td></tr></tbody></table></div><h3><a name="xmlXPathNumberFunction" id="xmlXPathNumberFunction"></a>Function: xmlXPathNumberFunction</h3><pre class="programlisting">void xmlXPathNumberFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the number() XPath function number number(object?)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathParseNCName" id="xmlXPathParseNCName"></a>Function: xmlXPathParseNCName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathParseNCName (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>parse an XML namespace non qualified name. [NS 3] NCName ::= (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace name or NULL</td></tr></tbody></table></div><h3><a name="xmlXPathParseName" id="xmlXPathParseName"></a>Function: xmlXPathParseName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathParseName (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>parse an XML name [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') (NameChar)*</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace name or NULL</td></tr></tbody></table></div><h3><a name="xmlXPathPopBoolean" id="xmlXPathPopBoolean"></a>Function: xmlXPathPopBoolean</h3><pre class="programlisting">int xmlXPathPopBoolean (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Pops a boolean from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the boolean</td></tr></tbody></table></div><h3><a name="xmlXPathPopExternal" id="xmlXPathPopExternal"></a>Function: xmlXPathPopExternal</h3><pre class="programlisting">void * xmlXPathPopExternal (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Pops an external object from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the object</td></tr></tbody></table></div><h3><a name="xmlXPathPopNodeSet" id="xmlXPathPopNodeSet"></a>Function: xmlXPathPopNodeSet</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathPopNodeSet (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Pops a node-set from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node-set</td></tr></tbody></table></div><h3><a name="xmlXPathPopNumber" id="xmlXPathPopNumber"></a>Function: xmlXPathPopNumber</h3><pre class="programlisting">double xmlXPathPopNumber (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Pops a number from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number</td></tr></tbody></table></div><h3><a name="xmlXPathPopString" id="xmlXPathPopString"></a>Function: xmlXPathPopString</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlXPathPopString (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Pops a string from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the string</td></tr></tbody></table></div><h3><a name="xmlXPathPositionFunction" id="xmlXPathPositionFunction"></a>Function: xmlXPathPositionFunction</h3><pre class="programlisting">void xmlXPathPositionFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the position() XPath function number position() The position function returns the position of the context node in the context node list. The first position is 1, and so the last position will be equal to last().</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathRegisterAllFunctions" id="xmlXPathRegisterAllFunctions"></a>Function: xmlXPathRegisterAllFunctions</h3><pre class="programlisting">void xmlXPathRegisterAllFunctions (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br />
+</pre><p>Registers all default XPath functions in this context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div><h3><a name="xmlXPathRegisterFunc" id="xmlXPathRegisterFunc"></a>Function: xmlXPathRegisterFunc</h3><pre class="programlisting">int xmlXPathRegisterFunc (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> f)<br />
+</pre><p>Register a new function. If @f is NULL it unregisters the function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the function implementation or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlXPathRegisterFuncLookup" id="xmlXPathRegisterFuncLookup"></a>Function: xmlXPathRegisterFuncLookup</h3><pre class="programlisting">void xmlXPathRegisterFuncLookup (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a> f, <br /> void * funcCtxt)<br />
+</pre><p>Registers an external mechanism to do function lookup.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the lookup function</td></tr><tr><td><span class="term"><i><tt>funcCtxt</tt></i>:</span></td><td>the lookup data</td></tr></tbody></table></div><h3><a name="xmlXPathRegisterFuncNS" id="xmlXPathRegisterFuncNS"></a>Function: xmlXPathRegisterFuncNS</h3><pre class="programlisting">int xmlXPathRegisterFuncNS (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri, <br /> <a href="libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a> f)<br />
+</pre><p>Register a new function. If @f is NULL it unregisters the function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the function implementation or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlXPathRegisterNs" id="xmlXPathRegisterNs"></a>Function: xmlXPathRegisterNs</h3><pre class="programlisting">int xmlXPathRegisterNs (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)<br />
+</pre><p>Register a new namespace. If @ns_uri is NULL it unregisters the namespace</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix cannot be NULL or empty string</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the namespace name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlXPathRegisterVariable" id="xmlXPathRegisterVariable"></a>Function: xmlXPathRegisterVariable</h3><pre class="programlisting">int xmlXPathRegisterVariable (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value)<br />
+</pre><p>Register a new variable value. If @value is NULL it unregisters the variable</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the variable value or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlXPathRegisterVariableLookup" id="xmlXPathRegisterVariableLookup"></a>Function: xmlXPathRegisterVariableLookup</h3><pre class="programlisting">void xmlXPathRegisterVariableLookup (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> <a href="libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a> f, <br /> void * data)<br />
+</pre><p>register an external mechanism to do variable lookup</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the lookup function</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the lookup data</td></tr></tbody></table></div><h3><a name="xmlXPathRegisterVariableNS" id="xmlXPathRegisterVariableNS"></a>Function: xmlXPathRegisterVariableNS</h3><pre class="programlisting">int xmlXPathRegisterVariableNS (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> value)<br />
+</pre><p>Register a new variable value. If @value is NULL it unregisters the variable</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the variable namespace URI</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the variable value or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlXPathRegisteredFuncsCleanup" id="xmlXPathRegisteredFuncsCleanup"></a>Function: xmlXPathRegisteredFuncsCleanup</h3><pre class="programlisting">void xmlXPathRegisteredFuncsCleanup (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br />
+</pre><p>Cleanup the XPath context data associated to registered functions</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div><h3><a name="xmlXPathRegisteredNsCleanup" id="xmlXPathRegisteredNsCleanup"></a>Function: xmlXPathRegisteredNsCleanup</h3><pre class="programlisting">void xmlXPathRegisteredNsCleanup (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br />
+</pre><p>Cleanup the XPath context data associated to registered variables</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div><h3><a name="xmlXPathRegisteredVariablesCleanup" id="xmlXPathRegisteredVariablesCleanup"></a>Function: xmlXPathRegisteredVariablesCleanup</h3><pre class="programlisting">void xmlXPathRegisteredVariablesCleanup (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br />
+</pre><p>Cleanup the XPath context data associated to registered variables</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div><h3><a name="xmlXPathRoot" id="xmlXPathRoot"></a>Function: xmlXPathRoot</h3><pre class="programlisting">void xmlXPathRoot (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Initialize the context to the root of the document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div><h3><a name="xmlXPathRoundFunction" id="xmlXPathRoundFunction"></a>Function: xmlXPathRoundFunction</h3><pre class="programlisting">void xmlXPathRoundFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is closest to positive infinity is returned.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathStartsWithFunction" id="xmlXPathStartsWithFunction"></a>Function: xmlXPathStartsWithFunction</h3><pre class="programlisting">void xmlXPathStartsWithFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the starts-with() XPath function boolean starts-with(string, string) The starts-with function returns true if the first argument string starts with the second argument string, and otherwise returns false.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathStringEvalNumber" id="xmlXPathStringEvalNumber"></a>Function: xmlXPathStringEvalNumber</h3><pre class="programlisting">double xmlXPathStringEvalNumber (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+</pre><p>[30a] Float ::= Number ('e' Digits?)? [30] Number ::= Digits ('.' Digits?)? | '.' Digits [31] Digits ::= [0-9]+ Compile a Number in the string In complement of the Number expression, this function also handles negative values : '-' Number.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>A string to scan</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the double value.</td></tr></tbody></table></div><h3><a name="xmlXPathStringFunction" id="xmlXPathStringFunction"></a>Function: xmlXPathStringFunction</h3><pre class="programlisting">void xmlXPathStringFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the string() XPath function string string(object?) The string function converts an object to a string as follows: - A node-set is converted to a string by returning the value of the node in the node-set that is first in document order. If the node-set is empty, an empty string is returned. - A number is converted to a string as follows + NaN is converted to the string NaN + positive zero is converted to the string 0 + negative zero is converted to the string 0 + positive infinity is converted to the string Infinity + negative infinity is converted to the string -Infinity + if the number is an integer, the number is represented in decimal form as a Number with no decimal point and no leading zeros, preceded by a minus sign (-) if the number is negative + otherwise, the number is represented in decimal form as a Number including a decimal point with at least one digit before the decimal point and at least one digit after the decimal point, preceded by a minus sign (-) if the number is negative; there must be no leading zeros before the decimal point apart possibly from the one required digit immediately before the decimal point; beyond the one required digit after the decimal point there must be as many, but only as many, more digits as are needed to uniquely distinguish the number from all other IEEE 754 numeric values. - The boolean false value is converted to the string false. The boolean true value is converted to the string true. If the argument is omitted, it defaults to a node-set with the context node as its only member.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathStringLengthFunction" id="xmlXPathStringLengthFunction"></a>Function: xmlXPathStringLengthFunction</h3><pre class="programlisting">void xmlXPathStringLengthFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the string-length() XPath function number string-length(string?) The string-length returns the number of <a href="libxml-SAX.html#characters">characters</a> in the string (see [3.6 Strings]). If the argument is omitted, it defaults to the context node converted to a string, in other words the value of the context node.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathSubValues" id="xmlXPathSubValues"></a>Function: xmlXPathSubValues</h3><pre class="programlisting">void xmlXPathSubValues (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Implement the subtraction operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div><h3><a name="xmlXPathSubstringAfterFunction" id="xmlXPathSubstringAfterFunction"></a>Function: xmlXPathSubstringAfterFunction</h3><pre class="programlisting">void xmlXPathSubstringAfterFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the substring-after() XPath function string substring-after(string, string) The substring-after function returns the substring of the first argument string that follows the first occurrence of the second argument string in the first argument string, or the empty stringi if the first argument string does not contain the second argument string. For example, substring-after("1999/04/01","/") returns 04/01, and substring-after("1999/04/01","19") returns 99/04/01.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathSubstringBeforeFunction" id="xmlXPathSubstringBeforeFunction"></a>Function: xmlXPathSubstringBeforeFunction</h3><pre class="programlisting">void xmlXPathSubstringBeforeFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the substring-before() XPath function string substring-before(string, string) The substring-before function returns the substring of the first argument string that precedes the first occurrence of the second argument string in the first argument string, or the empty string if the first argument string does not contain the second argument string. For example, substring-before("1999/04/01","/") returns 1999.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathSubstringFunction" id="xmlXPathSubstringFunction"></a>Function: xmlXPathSubstringFunction</h3><pre class="programlisting">void xmlXPathSubstringFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the substring() XPath function string substring(string, number, number?) The substring function returns the substring of the first argument starting at the position specified in the second argument with length specified in the third argument. For example, substring("12345",2,3) returns "234". If the third argument is not specified, it returns the substring starting at the position specified in the second argument and continuing to the end of the string. For example, substring("12345",2) returns "2345". More precisely, each character in the string (see [3.6 Strings]) is considered to have a numeric position: the position of the first character is 1, the position of the second character is 2 and so on. The returned substring contains those <a href="libxml-SAX.html#characters">characters</a> for which the position of the character is greater than or equal to the second argument and, if the third argument is specified, less than the sum of the second and third arguments; the comparisons and addition used for the above follow the standard IEEE 754 rules. Thus: - substring("12345", 1.5, 2.6) returns "234" - substring("12345", 0, 3) returns "12" - substring("12345", 0 div 0, 3) returns "" - substring("12345", 1, 0 div 0) returns "" - substring("12345", -42, 1 div 0) returns "12345" - substring("12345", -1 div 0, 1 div 0) returns ""</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathSumFunction" id="xmlXPathSumFunction"></a>Function: xmlXPathSumFunction</h3><pre class="programlisting">void xmlXPathSumFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the sum() XPath function number sum(node-set) The sum function returns the sum of the values of the nodes in the argument node-set.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathTrailing" id="xmlXPathTrailing"></a>Function: xmlXPathTrailing</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathTrailing (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br />
+</pre><p>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #xmlXPathTrailingSorted is called.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn't contain @nodes2</td></tr></tbody></table></div><h3><a name="xmlXPathTrailingSorted" id="xmlXPathTrailingSorted"></a>Function: xmlXPathTrailingSorted</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> xmlXPathTrailingSorted (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes1, <br /> <a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> nodes2)<br />
+</pre><p>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>nodes1</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>nodes2</tt></i>:</span></td><td>a node-set, sorted by document order</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn't contain @nodes2</td></tr></tbody></table></div><h3><a name="xmlXPathTranslateFunction" id="xmlXPathTranslateFunction"></a>Function: xmlXPathTranslateFunction</h3><pre class="programlisting">void xmlXPathTranslateFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the translate() XPath function string translate(string, string, string) The translate function returns the first argument string with occurrences of <a href="libxml-SAX.html#characters">characters</a> in the second argument string replaced by the character at the corresponding position in the third argument string. For example, translate("bar","abc","ABC") returns the string BAr. If there is a character in the second argument string with no character at a corresponding position in the third argument string (because the second argument string is longer than the third argument string), then occurrences of that character in the first argument string are removed. For example, translate("--aaa--","abc-","ABC")</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathTrueFunction" id="xmlXPathTrueFunction"></a>Function: xmlXPathTrueFunction</h3><pre class="programlisting">void xmlXPathTrueFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the true() XPath function boolean true()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathValueFlipSign" id="xmlXPathValueFlipSign"></a>Function: xmlXPathValueFlipSign</h3><pre class="programlisting">void xmlXPathValueFlipSign (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>Implement the unary - operation on an XPath object The numeric operators convert their operands to numbers as if by calling the number function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div><h3><a name="xmlXPathVariableLookup" id="xmlXPathVariableLookup"></a>Function: xmlXPathVariableLookup</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathVariableLookup (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Search in the Variable array of the context for the given variable value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the value or NULL if not found</td></tr></tbody></table></div><h3><a name="xmlXPathVariableLookupNS" id="xmlXPathVariableLookupNS"></a>Function: xmlXPathVariableLookupNS</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathVariableLookupNS (<a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)<br />
+</pre><p>Search in the Variable array of the context for the given variable value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the variable namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the a copy of the value or NULL if not found</td></tr></tbody></table></div><h3><a name="xmlXPathWrapCString" id="xmlXPathWrapCString"></a>Function: xmlXPathWrapCString</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathWrapCString (char * val)<br />
+</pre><p>Wraps a string into an XPath object.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the char * value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathWrapExternal" id="xmlXPathWrapExternal"></a>Function: xmlXPathWrapExternal</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathWrapExternal (void * val)<br />
+</pre><p>Wraps the @val data into an XPath object.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the user data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathWrapNodeSet" id="xmlXPathWrapNodeSet"></a>Function: xmlXPathWrapNodeSet</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathWrapNodeSet (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> val)<br />
+</pre><p>Wrap the Nodeset @val in a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the NodePtr value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPathWrapString" id="xmlXPathWrapString"></a>Function: xmlXPathWrapString</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathWrapString (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)<br />
+</pre><p>Wraps the @val string into an XPath object.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPatherror" id="xmlXPatherror"></a>Function: xmlXPatherror</h3><pre class="programlisting">void xmlXPatherror (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> const char * file, <br /> int line, <br /> int no)<br />
+</pre><p>Formats an error message.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>no</tt></i>:</span></td><td>the error number</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/libxml-xpointer.html b/libxml2-2.9.10/doc/html/libxml-xpointer.html
new file mode 100644
index 0000000..b4d8b54
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/libxml-xpointer.html
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Module xpointer from libxml2</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></h1><h2>Module xpointer from libxml2</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>API 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 style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xpathInternals.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xpathInternals.html">xpathInternals</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th></tr></table><p>API to handle XML Pointers Base implementation was made accordingly to W3C Candidate Recommendation 7 June 2000</p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlLocationSet">xmlLocationSet</a><br />struct _xmlLocationSet
+</pre><pre class="programlisting">Typedef <a href="libxml-xpointer.html#xmlLocationSet">xmlLocationSet</a> * <a name="xmlLocationSetPtr" id="xmlLocationSetPtr">xmlLocationSetPtr</a>
+</pre><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrEval">xmlXPtrEval</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)</pre>
+<pre class="programlisting">void <a href="#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void <a href="#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a> (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> obj)</pre>
+<pre class="programlisting">void <a href="#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a> (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> <a href="#xmlXPtrLocationSetCreate">xmlXPtrLocationSetCreate</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)</pre>
+<pre class="programlisting">void <a href="#xmlXPtrLocationSetDel">xmlXPtrLocationSetDel</a> (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)</pre>
+<pre class="programlisting"><a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> <a href="#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a> (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val1, <br /> <a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val2)</pre>
+<pre class="programlisting">void <a href="#xmlXPtrLocationSetRemove">xmlXPtrLocationSetRemove</a> (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br /> int val)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewCollapsedRange">xmlXPtrNewCollapsedRange</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> <a href="#xmlXPtrNewContext">xmlXPtrNewContext</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> here, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> origin)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewLocationSetNodeSet">xmlXPtrNewLocationSetNodeSet</a> (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> set)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> end)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRange">xmlXPtrNewRange</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br /> int startindex, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> end, <br /> int endindex)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRangeNodeObject">xmlXPtrNewRangeNodeObject</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRangeNodePoint">xmlXPtrNewRangeNodePoint</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRangeNodes">xmlXPtrNewRangeNodes</a> (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> end)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRangePointNode">xmlXPtrNewRangePointNode</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> start, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> end)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrNewRangePoints">xmlXPtrNewRangePoints</a> (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> start, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)</pre>
+<pre class="programlisting">void <a href="#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a> (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)</pre>
+<pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> <a href="#xmlXPtrWrapLocationSet">xmlXPtrWrapLocationSet</a> (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val)</pre>
+<h2>Description</h2>
+<h3><a name="xmlLocationSet" id="xmlLocationSet">Structure xmlLocationSet</a></h3><pre class="programlisting">Structure xmlLocationSet<br />struct _xmlLocationSet {
+ int locNr : number of locations in the set
+ int locMax : size of the array as allocated
+ <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> * locTab : array of locations
+}</pre><h3><a name="xmlXPtrBuildNodeList" id="xmlXPtrBuildNodeList"></a>Function: xmlXPtrBuildNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlXPtrBuildNodeList (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> obj)<br />
+</pre><p>Build a node list tree copy of the XPointer result. This will drop Attributes and Namespace declarations.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the XPointer result from the evaluation.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> list or NULL. the caller has to free the node tree.</td></tr></tbody></table></div><h3><a name="xmlXPtrEval" id="xmlXPtrEval"></a>Function: xmlXPtrEval</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrEval (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br />
+</pre><p>Evaluate the XPath Location Path in the given context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPointer expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPointer context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPtrEvalRangePredicate" id="xmlXPtrEvalRangePredicate"></a>Function: xmlXPtrEvalRangePredicate</h3><pre class="programlisting">void xmlXPtrEvalRangePredicate (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
+</pre><p>[8] Predicate ::= '[' PredicateExpr ']' [9] PredicateExpr ::= Expr Evaluate a predicate as in xmlXPathEvalPredicate() but for a Location Set instead of a node set</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPointer Parser context</td></tr></tbody></table></div><h3><a name="xmlXPtrFreeLocationSet" id="xmlXPtrFreeLocationSet"></a>Function: xmlXPtrFreeLocationSet</h3><pre class="programlisting">void xmlXPtrFreeLocationSet (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> obj)<br />
+</pre><p>Free the LocationSet compound (not the actual ranges !).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the <a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> to free</td></tr></tbody></table></div><h3><a name="xmlXPtrLocationSetAdd" id="xmlXPtrLocationSetAdd"></a>Function: xmlXPtrLocationSetAdd</h3><pre class="programlisting">void xmlXPtrLocationSetAdd (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br />
+</pre><p>add a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> to an existing LocationSet If the location already exist in the set @val is freed.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial range set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a></td></tr></tbody></table></div><h3><a name="xmlXPtrLocationSetCreate" id="xmlXPtrLocationSetCreate"></a>Function: xmlXPtrLocationSetCreate</h3><pre class="programlisting"><a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> xmlXPtrLocationSetCreate (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br />
+</pre><p>Create a new <a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> of type double and of value @val</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an initial xmlXPathObjectPtr, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrLocationSetDel" id="xmlXPtrLocationSetDel"></a>Function: xmlXPtrLocationSetDel</h3><pre class="programlisting">void xmlXPtrLocationSetDel (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> val)<br />
+</pre><p>Removes an <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> from an existing LocationSet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial range set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>an <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a></td></tr></tbody></table></div><h3><a name="xmlXPtrLocationSetMerge" id="xmlXPtrLocationSetMerge"></a>Function: xmlXPtrLocationSetMerge</h3><pre class="programlisting"><a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> xmlXPtrLocationSetMerge (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val1, <br /> <a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val2)<br />
+</pre><p>Merges two rangesets, all ranges from @val2 are added to @val1</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val1</tt></i>:</span></td><td>the first LocationSet</td></tr><tr><td><span class="term"><i><tt>val2</tt></i>:</span></td><td>the second LocationSet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>val1 once extended or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlXPtrLocationSetRemove" id="xmlXPtrLocationSetRemove"></a>Function: xmlXPtrLocationSetRemove</h3><pre class="programlisting">void xmlXPtrLocationSetRemove (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> cur, <br /> int val)<br />
+</pre><p>Removes an entry from an existing LocationSet list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the initial range set</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the index to remove</td></tr></tbody></table></div><h3><a name="xmlXPtrNewCollapsedRange" id="xmlXPtrNewCollapsedRange"></a>Function: xmlXPtrNewCollapsedRange</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewCollapsedRange (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range using a single nodes</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting and ending node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewContext" id="xmlXPtrNewContext"></a>Function: xmlXPtrNewContext</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> xmlXPtrNewContext (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> here, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> origin)<br />
+</pre><p>Create a new XPointer context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document</td></tr><tr><td><span class="term"><i><tt>here</tt></i>:</span></td><td>the node that directly contains the XPointer being evaluated or NULL</td></tr><tr><td><span class="term"><i><tt>origin</tt></i>:</span></td><td>the element from which a user or program initiated traversal of the link, or NULL.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a> just allocated.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewLocationSetNodeSet" id="xmlXPtrNewLocationSetNodeSet"></a>Function: xmlXPtrNewLocationSetNodeSet</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewLocationSetNodeSet (<a href="libxml-xpath.html#xmlNodeSetPtr">xmlNodeSetPtr</a> set)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type LocationSet and initialize it with all the nodes from @set</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>set</tt></i>:</span></td><td>a node set</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewLocationSetNodes" id="xmlXPtrNewLocationSetNodes"></a>Function: xmlXPtrNewLocationSetNodes</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewLocationSetNodes (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> end)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type LocationSet and initialize it with the single range made of the two nodes @start and @end</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the start NodePtr value</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the end NodePtr value or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewRange" id="xmlXPtrNewRange"></a>Function: xmlXPtrNewRange</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRange (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br /> int startindex, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> end, <br /> int endindex)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting node</td></tr><tr><td><span class="term"><i><tt>startindex</tt></i>:</span></td><td>the start index</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending point</td></tr><tr><td><span class="term"><i><tt>endindex</tt></i>:</span></td><td>the ending index</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewRangeNodeObject" id="xmlXPtrNewRangeNodeObject"></a>Function: xmlXPtrNewRangeNodeObject</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangeNodeObject (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range from a not to an object</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting node</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewRangeNodePoint" id="xmlXPtrNewRangeNodePoint"></a>Function: xmlXPtrNewRangeNodePoint</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangeNodePoint (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range from a node to a point</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting node</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewRangeNodes" id="xmlXPtrNewRangeNodes"></a>Function: xmlXPtrNewRangeNodes</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangeNodes (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> start, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> end)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range using 2 nodes</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting node</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewRangePointNode" id="xmlXPtrNewRangePointNode"></a>Function: xmlXPtrNewRangePointNode</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangePointNode (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> start, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> end)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range from a point to a node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting point</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewRangePoints" id="xmlXPtrNewRangePoints"></a>Function: xmlXPtrNewRangePoints</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangePoints (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> start, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)<br />
+</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range using 2 Points</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting point</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrRangeToFunction" id="xmlXPtrRangeToFunction"></a>Function: xmlXPtrRangeToFunction</h3><pre class="programlisting">void xmlXPtrRangeToFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
+</pre><p>Implement the range-to() XPointer function Obsolete. range-to is not a real function but a special type of location step which is handled in xpath.c.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPointer Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of args</td></tr></tbody></table></div><h3><a name="xmlXPtrWrapLocationSet" id="xmlXPtrWrapLocationSet"></a>Function: xmlXPtrWrapLocationSet</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrWrapLocationSet (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val)<br />
+</pre><p>Wrap the LocationSet @val in a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the LocationSet value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><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>
diff --git a/libxml2-2.9.10/doc/html/right.png b/libxml2-2.9.10/doc/html/right.png
new file mode 100644
index 0000000..92832e3
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/right.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/html/up.png b/libxml2-2.9.10/doc/html/up.png
new file mode 100644
index 0000000..85b3e2a
--- /dev/null
+++ b/libxml2-2.9.10/doc/html/up.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/index.html b/libxml2-2.9.10/doc/index.html
new file mode 100644
index 0000000..43cda48
--- /dev/null
+++ b/libxml2-2.9.10/doc/index.html
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style>
+ <title>The XML C parser and toolkit of Gnome</title>
+
+</head>
+<body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>libxml</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p></p><p style="text-align: right; font-style: italic; font-size: 10pt">"Programming
+with libxml2 is like the thrilling embrace of an exotic stranger." <a href="http://diveintomark.org/archives/2004/02/18/libxml2">Mark
+Pilgrim</a></p><p>Libxml2 is the XML C parser and toolkit developed for the Gnome project
+(but usable outside of the Gnome platform), it is free software available
+under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
+License</a>. XML itself is a metalanguage to design markup languages, i.e.
+text language where semantic and structure are added to the content using
+extra "markup" information enclosed between angle brackets. HTML is the most
+well-known markup language. Though the library is written in C <a href="python.html">a variety of language bindings</a> make it available in
+other environments.</p><p>Libxml2 is known to be very portable, the library should build and work
+without serious troubles on a variety of systems (Linux, Unix, Windows,
+CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, VxWorks, ...)</p><p>Libxml2 implements a number of existing standards related to markup
+languages:</p><ul>
+ <li>the XML standard: <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></li>
+ <li>Namespaces in XML: <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a></li>
+ <li>XML Base: <a href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a></li>
+ <li><a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC 2396</a> :
+ Uniform 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>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 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 <a href="http://www.cis.ohio-state.edu/rfc/rfc2781.txt">rfc2781</a>
+ [UTF-16] Unicode encodings, and more if using iconv support</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>Canonical XML Version 1.0: <a href="http://www.w3.org/TR/xml-c14n">http://www.w3.org/TR/xml-c14n</a>
+ and 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>
+ <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 May
+ 2001</a></li>
+ <li>W3C <a href="http://www.w3.org/TR/xml-id/">xml:id</a> Working Draft 7
+ April 2004</li>
+</ul><p>In most cases libxml2 tries to implement the specifications in a
+relatively strictly compliant way. As of release 2.4.16, libxml2 passed all
+1800+ tests from the <a href="http://www.oasis-open.org/committees/xml-conformance/">OASIS XML Tests
+Suite</a>.</p><p>To some extent libxml2 provides support for the following additional
+specifications but doesn't claim to implement them completely:</p><ul>
+ <li>Document Object Model (DOM) <a href="http://www.w3.org/TR/DOM-Level-2-Core/">http://www.w3.org/TR/DOM-Level-2-Core/</a>
+ the document model, but it doesn't implement the API itself, gdome2 does
+ this on top of libxml2</li>
+ <li><a href="http://www.cis.ohio-state.edu/rfc/rfc959.txt">RFC 959</a> :
+ libxml2 implements a basic FTP client code</li>
+ <li><a href="http://www.cis.ohio-state.edu/rfc/rfc1945.txt">RFC 1945</a> :
+ HTTP/1.0, again a basic HTTP client code</li>
+ <li>SAX: a SAX2 like interface and a minimal SAX1 implementation compatible
+ with early expat versions</li>
+</ul><p>A partial implementation of <a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schemas Part
+1: Structure</a> is being worked on but it would be far too early to make any
+conformance statement about it at the moment.</p><p>Separate documents:</p><ul>
+ <li><a href="http://xmlsoft.org/XSLT/">the libxslt page</a> providing an
+ implementation of XSLT 1.0 and common extensions like EXSLT for
+ libxml2</li>
+ <li><a href="http://gdome2.cs.unibo.it/">the gdome2 page</a>
+ : a standard DOM2 implementation for libxml2</li>
+ <li><a href="http://www.aleksey.com/xmlsec/">the XMLSec page</a>: an
+ implementation of <a href="http://www.w3.org/TR/xmldsig-core/">W3C XML
+ Digital Signature</a> for libxml2</li>
+ <li>also check the related links section for more related and active
+ projects.</li>
+</ul><p> Hosting sponsored by <a href="http://www.aoemedia.de/opensource-cms.html">Open Source CMS services</a> from AOE media.</p><p>Logo designed by <a href="mailto:liyanage@access.ch">Marc Liyanage</a>.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body>
+</html>
diff --git a/libxml2-2.9.10/doc/index.py b/libxml2-2.9.10/doc/index.py
new file mode 100755
index 0000000..77f9692
--- /dev/null
+++ b/libxml2-2.9.10/doc/index.py
@@ -0,0 +1,1258 @@
+#!/usr/bin/python -u
+#
+# imports the API description and fills up a database with
+# name relevance to modules, functions or web pages
+#
+# Operation needed:
+# =================
+#
+# install mysqld, the python wrappers for mysql and libxml2, start mysqld
+# Change the root passwd of mysql:
+# mysqladmin -u root password new_password
+# Create the new database xmlsoft
+# mysqladmin -p create xmlsoft
+# Create a database user 'veillard' and give him passord access
+# change veillard and abcde with the right user name and passwd
+# mysql -p
+# password:
+# mysql> GRANT ALL PRIVILEGES ON xmlsoft TO veillard@localhost
+# IDENTIFIED BY 'abcde' WITH GRANT OPTION;
+#
+# As the user check the access:
+# mysql -p xmlsoft
+# Enter password:
+# Welcome to the MySQL monitor....
+# mysql> use xmlsoft
+# Database changed
+# mysql> quit
+# Bye
+#
+# Then run the script in the doc subdir, it will create the symbols and
+# word tables and populate them with informations extracted from
+# the libxml2-api.xml API description, and make them accessible read-only
+# by nobody@loaclhost the user expected to be Apache's one
+#
+# On the Apache configuration, make sure you have php support enabled
+#
+
+import MySQLdb
+import libxml2
+import sys
+import string
+import os
+
+#
+# We are not interested in parsing errors here
+#
+def callback(ctx, str):
+ return
+libxml2.registerErrorHandler(callback, None)
+
+#
+# The dictionary of tables required and the SQL command needed
+# to create them
+#
+TABLES={
+ "symbols" : """CREATE TABLE symbols (
+ name varchar(255) BINARY NOT NULL,
+ module varchar(255) BINARY NOT NULL,
+ type varchar(25) NOT NULL,
+ descr varchar(255),
+ UNIQUE KEY name (name),
+ KEY module (module))""",
+ "words" : """CREATE TABLE words (
+ name varchar(50) BINARY NOT NULL,
+ symbol varchar(255) BINARY NOT NULL,
+ relevance int,
+ KEY name (name),
+ KEY symbol (symbol),
+ UNIQUE KEY ID (name, symbol))""",
+ "wordsHTML" : """CREATE TABLE wordsHTML (
+ name varchar(50) BINARY NOT NULL,
+ resource varchar(255) BINARY NOT NULL,
+ section varchar(255),
+ id varchar(50),
+ relevance int,
+ KEY name (name),
+ KEY resource (resource),
+ UNIQUE KEY ref (name, resource))""",
+ "wordsArchive" : """CREATE TABLE wordsArchive (
+ name varchar(50) BINARY NOT NULL,
+ ID int(11) NOT NULL,
+ relevance int,
+ KEY name (name),
+ UNIQUE KEY ref (name, ID))""",
+ "pages" : """CREATE TABLE pages (
+ resource varchar(255) BINARY NOT NULL,
+ title varchar(255) BINARY NOT NULL,
+ UNIQUE KEY name (resource))""",
+ "archives" : """CREATE TABLE archives (
+ ID int(11) NOT NULL auto_increment,
+ resource varchar(255) BINARY NOT NULL,
+ title varchar(255) BINARY NOT NULL,
+ UNIQUE KEY id (ID,resource(255)),
+ INDEX (ID),
+ INDEX (resource))""",
+ "Queries" : """CREATE TABLE Queries (
+ ID int(11) NOT NULL auto_increment,
+ Value varchar(50) NOT NULL,
+ Count int(11) NOT NULL,
+ UNIQUE KEY id (ID,Value(35)),
+ INDEX (ID))""",
+ "AllQueries" : """CREATE TABLE AllQueries (
+ ID int(11) NOT NULL auto_increment,
+ Value varchar(50) NOT NULL,
+ Count int(11) NOT NULL,
+ UNIQUE KEY id (ID,Value(35)),
+ INDEX (ID))""",
+}
+
+#
+# The XML API description file to parse
+#
+API="libxml2-api.xml"
+DB=None
+
+#########################################################################
+# #
+# MySQL database interfaces #
+# #
+#########################################################################
+def createTable(db, name):
+ global TABLES
+
+ if db == None:
+ return -1
+ if name == None:
+ return -1
+ c = db.cursor()
+
+ ret = c.execute("DROP TABLE IF EXISTS %s" % (name))
+ if ret == 1:
+ print "Removed table %s" % (name)
+ print "Creating table %s" % (name)
+ try:
+ ret = c.execute(TABLES[name])
+ except:
+ print "Failed to create table %s" % (name)
+ return -1
+ return ret
+
+def checkTables(db, verbose = 1):
+ global TABLES
+
+ if db == None:
+ return -1
+ c = db.cursor()
+ nbtables = c.execute("show tables")
+ if verbose:
+ print "Found %d tables" % (nbtables)
+ tables = {}
+ i = 0
+ while i < nbtables:
+ l = c.fetchone()
+ name = l[0]
+ tables[name] = {}
+ i = i + 1
+
+ for table in TABLES.keys():
+ if not tables.has_key(table):
+ print "table %s missing" % (table)
+ createTable(db, table)
+ try:
+ ret = c.execute("SELECT count(*) from %s" % table);
+ row = c.fetchone()
+ if verbose:
+ print "Table %s contains %d records" % (table, row[0])
+ except:
+ print "Troubles with table %s : repairing" % (table)
+ ret = c.execute("repair table %s" % table);
+ print "repairing returned %d" % (ret)
+ ret = c.execute("SELECT count(*) from %s" % table);
+ row = c.fetchone()
+ print "Table %s contains %d records" % (table, row[0])
+ if verbose:
+ print "checkTables finished"
+
+ # make sure apache can access the tables read-only
+ try:
+ ret = c.execute("GRANT SELECT ON xmlsoft.* TO nobody@localhost")
+ ret = c.execute("GRANT INSERT,SELECT,UPDATE ON xmlsoft.Queries TO nobody@localhost")
+ except:
+ pass
+ return 0
+
+def openMySQL(db="xmlsoft", passwd=None, verbose = 1):
+ global DB
+
+ if passwd == None:
+ try:
+ passwd = os.environ["MySQL_PASS"]
+ except:
+ print "No password available, set environment MySQL_PASS"
+ sys.exit(1)
+
+ DB = MySQLdb.connect(passwd=passwd, db=db)
+ if DB == None:
+ return -1
+ ret = checkTables(DB, verbose)
+ return ret
+
+def updateWord(name, symbol, relevance):
+ global DB
+
+ if DB == None:
+ openMySQL()
+ if DB == None:
+ return -1
+ if name == None:
+ return -1
+ if symbol == None:
+ return -1
+
+ c = DB.cursor()
+ try:
+ ret = c.execute(
+"""INSERT INTO words (name, symbol, relevance) VALUES ('%s','%s', %d)""" %
+ (name, symbol, relevance))
+ except:
+ try:
+ ret = c.execute(
+ """UPDATE words SET relevance = %d where name = '%s' and symbol = '%s'""" %
+ (relevance, name, symbol))
+ except:
+ print "Update word (%s, %s, %s) failed command" % (name, symbol, relevance)
+ print "UPDATE words SET relevance = %d where name = '%s' and symbol = '%s'" % (relevance, name, symbol)
+ print sys.exc_type, sys.exc_value
+ return -1
+
+ return ret
+
+def updateSymbol(name, module, type, desc):
+ global DB
+
+ updateWord(name, name, 50)
+ if DB == None:
+ openMySQL()
+ if DB == None:
+ return -1
+ if name == None:
+ return -1
+ if module == None:
+ return -1
+ if type == None:
+ return -1
+
+ try:
+ desc = string.replace(desc, "'", " ")
+ l = string.split(desc, ".")
+ desc = l[0]
+ desc = desc[0:99]
+ except:
+ desc = ""
+
+ c = DB.cursor()
+ try:
+ ret = c.execute(
+"""INSERT INTO symbols (name, module, type, descr) VALUES ('%s','%s', '%s', '%s')""" %
+ (name, module, type, desc))
+ except:
+ try:
+ ret = c.execute(
+"""UPDATE symbols SET module='%s', type='%s', descr='%s' where name='%s'""" %
+ (module, type, desc, name))
+ except:
+ print "Update symbol (%s, %s, %s) failed command" % (name, module, type)
+ print """UPDATE symbols SET module='%s', type='%s', descr='%s' where name='%s'""" % (module, type, desc, name)
+ print sys.exc_type, sys.exc_value
+ return -1
+
+ return ret
+
+def addFunction(name, module, desc = ""):
+ return updateSymbol(name, module, 'function', desc)
+
+def addMacro(name, module, desc = ""):
+ return updateSymbol(name, module, 'macro', desc)
+
+def addEnum(name, module, desc = ""):
+ return updateSymbol(name, module, 'enum', desc)
+
+def addStruct(name, module, desc = ""):
+ return updateSymbol(name, module, 'struct', desc)
+
+def addConst(name, module, desc = ""):
+ return updateSymbol(name, module, 'const', desc)
+
+def addType(name, module, desc = ""):
+ return updateSymbol(name, module, 'type', desc)
+
+def addFunctype(name, module, desc = ""):
+ return updateSymbol(name, module, 'functype', desc)
+
+def addPage(resource, title):
+ global DB
+
+ if DB == None:
+ openMySQL()
+ if DB == None:
+ return -1
+ if resource == None:
+ return -1
+
+ c = DB.cursor()
+ try:
+ ret = c.execute(
+ """INSERT INTO pages (resource, title) VALUES ('%s','%s')""" %
+ (resource, title))
+ except:
+ try:
+ ret = c.execute(
+ """UPDATE pages SET title='%s' WHERE resource='%s'""" %
+ (title, resource))
+ except:
+ print "Update symbol (%s, %s, %s) failed command" % (name, module, type)
+ print """UPDATE pages SET title='%s' WHERE resource='%s'""" % (title, resource)
+ print sys.exc_type, sys.exc_value
+ return -1
+
+ return ret
+
+def updateWordHTML(name, resource, desc, id, relevance):
+ global DB
+
+ if DB == None:
+ openMySQL()
+ if DB == None:
+ return -1
+ if name == None:
+ return -1
+ if resource == None:
+ return -1
+ if id == None:
+ id = ""
+ if desc == None:
+ desc = ""
+ else:
+ try:
+ desc = string.replace(desc, "'", " ")
+ desc = desc[0:99]
+ except:
+ desc = ""
+
+ c = DB.cursor()
+ try:
+ ret = c.execute(
+"""INSERT INTO wordsHTML (name, resource, section, id, relevance) VALUES ('%s','%s', '%s', '%s', '%d')""" %
+ (name, resource, desc, id, relevance))
+ except:
+ try:
+ ret = c.execute(
+"""UPDATE wordsHTML SET section='%s', id='%s', relevance='%d' where name='%s' and resource='%s'""" %
+ (desc, id, relevance, name, resource))
+ except:
+ print "Update symbol (%s, %s, %d) failed command" % (name, resource, relevance)
+ print """UPDATE wordsHTML SET section='%s', id='%s', relevance='%d' where name='%s' and resource='%s'""" % (desc, id, relevance, name, resource)
+ print sys.exc_type, sys.exc_value
+ return -1
+
+ return ret
+
+def checkXMLMsgArchive(url):
+ global DB
+
+ if DB == None:
+ openMySQL()
+ if DB == None:
+ return -1
+ if url == None:
+ return -1
+
+ c = DB.cursor()
+ try:
+ ret = c.execute(
+ """SELECT ID FROM archives WHERE resource='%s'""" % (url))
+ row = c.fetchone()
+ if row == None:
+ return -1
+ except:
+ return -1
+
+ return row[0]
+
+def addXMLMsgArchive(url, title):
+ global DB
+
+ if DB == None:
+ openMySQL()
+ if DB == None:
+ return -1
+ if url == None:
+ return -1
+ if title == None:
+ title = ""
+ else:
+ title = string.replace(title, "'", " ")
+ title = title[0:99]
+
+ c = DB.cursor()
+ try:
+ cmd = """INSERT INTO archives (resource, title) VALUES ('%s','%s')""" % (url, title)
+ ret = c.execute(cmd)
+ cmd = """SELECT ID FROM archives WHERE resource='%s'""" % (url)
+ ret = c.execute(cmd)
+ row = c.fetchone()
+ if row == None:
+ print "addXMLMsgArchive failed to get the ID: %s" % (url)
+ return -1
+ except:
+ print "addXMLMsgArchive failed command: %s" % (cmd)
+ return -1
+
+ return((int)(row[0]))
+
+def updateWordArchive(name, id, relevance):
+ global DB
+
+ if DB == None:
+ openMySQL()
+ if DB == None:
+ return -1
+ if name == None:
+ return -1
+ if id == None:
+ return -1
+
+ c = DB.cursor()
+ try:
+ ret = c.execute(
+"""INSERT INTO wordsArchive (name, id, relevance) VALUES ('%s', '%d', '%d')""" %
+ (name, id, relevance))
+ except:
+ try:
+ ret = c.execute(
+"""UPDATE wordsArchive SET relevance='%d' where name='%s' and ID='%d'""" %
+ (relevance, name, id))
+ except:
+ print "Update word archive (%s, %d, %d) failed command" % (name, id, relevance)
+ print """UPDATE wordsArchive SET relevance='%d' where name='%s' and ID='%d'""" % (relevance, name, id)
+ print sys.exc_type, sys.exc_value
+ return -1
+
+ return ret
+
+#########################################################################
+# #
+# Word dictionary and analysis routines #
+# #
+#########################################################################
+
+#
+# top 100 english word without the one len < 3 + own set
+#
+dropWords = {
+ 'the':0, 'this':0, 'can':0, 'man':0, 'had':0, 'him':0, 'only':0,
+ 'and':0, 'not':0, 'been':0, 'other':0, 'even':0, 'are':0, 'was':0,
+ 'new':0, 'most':0, 'but':0, 'when':0, 'some':0, 'made':0, 'from':0,
+ 'who':0, 'could':0, 'after':0, 'that':0, 'will':0, 'time':0, 'also':0,
+ 'have':0, 'more':0, 'these':0, 'did':0, 'was':0, 'two':0, 'many':0,
+ 'they':0, 'may':0, 'before':0, 'for':0, 'which':0, 'out':0, 'then':0,
+ 'must':0, 'one':0, 'through':0, 'with':0, 'you':0, 'said':0,
+ 'first':0, 'back':0, 'were':0, 'what':0, 'any':0, 'years':0, 'his':0,
+ 'her':0, 'where':0, 'all':0, 'its':0, 'now':0, 'much':0, 'she':0,
+ 'about':0, 'such':0, 'your':0, 'there':0, 'into':0, 'like':0, 'may':0,
+ 'would':0, 'than':0, 'our':0, 'well':0, 'their':0, 'them':0, 'over':0,
+ 'down':0,
+ 'net':0, 'www':0, 'bad':0, 'Okay':0, 'bin':0, 'cur':0,
+}
+
+wordsDict = {}
+wordsDictHTML = {}
+wordsDictArchive = {}
+
+def cleanupWordsString(str):
+ str = string.replace(str, ".", " ")
+ str = string.replace(str, "!", " ")
+ str = string.replace(str, "?", " ")
+ str = string.replace(str, ",", " ")
+ str = string.replace(str, "'", " ")
+ str = string.replace(str, '"', " ")
+ str = string.replace(str, ";", " ")
+ str = string.replace(str, "(", " ")
+ str = string.replace(str, ")", " ")
+ str = string.replace(str, "{", " ")
+ str = string.replace(str, "}", " ")
+ str = string.replace(str, "<", " ")
+ str = string.replace(str, ">", " ")
+ str = string.replace(str, "=", " ")
+ str = string.replace(str, "/", " ")
+ str = string.replace(str, "*", " ")
+ str = string.replace(str, ":", " ")
+ str = string.replace(str, "#", " ")
+ str = string.replace(str, "\\", " ")
+ str = string.replace(str, "\n", " ")
+ str = string.replace(str, "\r", " ")
+ str = string.replace(str, "\xc2", " ")
+ str = string.replace(str, "\xa0", " ")
+ return str
+
+def cleanupDescrString(str):
+ str = string.replace(str, "'", " ")
+ str = string.replace(str, "\n", " ")
+ str = string.replace(str, "\r", " ")
+ str = string.replace(str, "\xc2", " ")
+ str = string.replace(str, "\xa0", " ")
+ l = string.split(str)
+ str = string.join(str)
+ return str
+
+def splitIdentifier(str):
+ ret = []
+ while str != "":
+ cur = string.lower(str[0])
+ str = str[1:]
+ if ((cur < 'a') or (cur > 'z')):
+ continue
+ while (str != "") and (str[0] >= 'A') and (str[0] <= 'Z'):
+ cur = cur + string.lower(str[0])
+ str = str[1:]
+ while (str != "") and (str[0] >= 'a') and (str[0] <= 'z'):
+ cur = cur + str[0]
+ str = str[1:]
+ while (str != "") and (str[0] >= '0') and (str[0] <= '9'):
+ str = str[1:]
+ ret.append(cur)
+ return ret
+
+def addWord(word, module, symbol, relevance):
+ global wordsDict
+
+ if word == None or len(word) < 3:
+ return -1
+ if module == None or symbol == None:
+ return -1
+ if dropWords.has_key(word):
+ return 0
+ if ord(word[0]) > 0x80:
+ return 0
+
+ if wordsDict.has_key(word):
+ d = wordsDict[word]
+ if d == None:
+ return 0
+ if len(d) > 500:
+ wordsDict[word] = None
+ return 0
+ try:
+ relevance = relevance + d[(module, symbol)]
+ except:
+ pass
+ else:
+ wordsDict[word] = {}
+ wordsDict[word][(module, symbol)] = relevance
+ return relevance
+
+def addString(str, module, symbol, relevance):
+ if str == None or len(str) < 3:
+ return -1
+ ret = 0
+ str = cleanupWordsString(str)
+ l = string.split(str)
+ for word in l:
+ if len(word) > 2:
+ ret = ret + addWord(word, module, symbol, 5)
+
+ return ret
+
+def addWordHTML(word, resource, id, section, relevance):
+ global wordsDictHTML
+
+ if word == None or len(word) < 3:
+ return -1
+ if resource == None or section == None:
+ return -1
+ if dropWords.has_key(word):
+ return 0
+ if ord(word[0]) > 0x80:
+ return 0
+
+ section = cleanupDescrString(section)
+
+ if wordsDictHTML.has_key(word):
+ d = wordsDictHTML[word]
+ if d == None:
+ print "skipped %s" % (word)
+ return 0
+ try:
+ (r,i,s) = d[resource]
+ if i != None:
+ id = i
+ if s != None:
+ section = s
+ relevance = relevance + r
+ except:
+ pass
+ else:
+ wordsDictHTML[word] = {}
+ d = wordsDictHTML[word];
+ d[resource] = (relevance, id, section)
+ return relevance
+
+def addStringHTML(str, resource, id, section, relevance):
+ if str == None or len(str) < 3:
+ return -1
+ ret = 0
+ str = cleanupWordsString(str)
+ l = string.split(str)
+ for word in l:
+ if len(word) > 2:
+ try:
+ r = addWordHTML(word, resource, id, section, relevance)
+ if r < 0:
+ print "addWordHTML failed: %s %s" % (word, resource)
+ ret = ret + r
+ except:
+ print "addWordHTML failed: %s %s %d" % (word, resource, relevance)
+ print sys.exc_type, sys.exc_value
+
+ return ret
+
+def addWordArchive(word, id, relevance):
+ global wordsDictArchive
+
+ if word == None or len(word) < 3:
+ return -1
+ if id == None or id == -1:
+ return -1
+ if dropWords.has_key(word):
+ return 0
+ if ord(word[0]) > 0x80:
+ return 0
+
+ if wordsDictArchive.has_key(word):
+ d = wordsDictArchive[word]
+ if d == None:
+ print "skipped %s" % (word)
+ return 0
+ try:
+ r = d[id]
+ relevance = relevance + r
+ except:
+ pass
+ else:
+ wordsDictArchive[word] = {}
+ d = wordsDictArchive[word];
+ d[id] = relevance
+ return relevance
+
+def addStringArchive(str, id, relevance):
+ if str == None or len(str) < 3:
+ return -1
+ ret = 0
+ str = cleanupWordsString(str)
+ l = string.split(str)
+ for word in l:
+ i = len(word)
+ if i > 2:
+ try:
+ r = addWordArchive(word, id, relevance)
+ if r < 0:
+ print "addWordArchive failed: %s %s" % (word, id)
+ else:
+ ret = ret + r
+ except:
+ print "addWordArchive failed: %s %s %d" % (word, id, relevance)
+ print sys.exc_type, sys.exc_value
+ return ret
+
+#########################################################################
+# #
+# XML API description analysis #
+# #
+#########################################################################
+
+def loadAPI(filename):
+ doc = libxml2.parseFile(filename)
+ print "loaded %s" % (filename)
+ return doc
+
+def foundExport(file, symbol):
+ if file == None:
+ return 0
+ if symbol == None:
+ return 0
+ addFunction(symbol, file)
+ l = splitIdentifier(symbol)
+ for word in l:
+ addWord(word, file, symbol, 10)
+ return 1
+
+def analyzeAPIFile(top):
+ count = 0
+ name = top.prop("name")
+ cur = top.children
+ while cur != None:
+ if cur.type == 'text':
+ cur = cur.next
+ continue
+ if cur.name == "exports":
+ count = count + foundExport(name, cur.prop("symbol"))
+ else:
+ print "unexpected element %s in API doc <file name='%s'>" % (name)
+ cur = cur.next
+ return count
+
+def analyzeAPIFiles(top):
+ count = 0
+ cur = top.children
+
+ while cur != None:
+ if cur.type == 'text':
+ cur = cur.next
+ continue
+ if cur.name == "file":
+ count = count + analyzeAPIFile(cur)
+ else:
+ print "unexpected element %s in API doc <files>" % (cur.name)
+ cur = cur.next
+ return count
+
+def analyzeAPIEnum(top):
+ file = top.prop("file")
+ if file == None:
+ return 0
+ symbol = top.prop("name")
+ if symbol == None:
+ return 0
+
+ addEnum(symbol, file)
+ l = splitIdentifier(symbol)
+ for word in l:
+ addWord(word, file, symbol, 10)
+
+ return 1
+
+def analyzeAPIConst(top):
+ file = top.prop("file")
+ if file == None:
+ return 0
+ symbol = top.prop("name")
+ if symbol == None:
+ return 0
+
+ addConst(symbol, file)
+ l = splitIdentifier(symbol)
+ for word in l:
+ addWord(word, file, symbol, 10)
+
+ return 1
+
+def analyzeAPIType(top):
+ file = top.prop("file")
+ if file == None:
+ return 0
+ symbol = top.prop("name")
+ if symbol == None:
+ return 0
+
+ addType(symbol, file)
+ l = splitIdentifier(symbol)
+ for word in l:
+ addWord(word, file, symbol, 10)
+ return 1
+
+def analyzeAPIFunctype(top):
+ file = top.prop("file")
+ if file == None:
+ return 0
+ symbol = top.prop("name")
+ if symbol == None:
+ return 0
+
+ addFunctype(symbol, file)
+ l = splitIdentifier(symbol)
+ for word in l:
+ addWord(word, file, symbol, 10)
+ return 1
+
+def analyzeAPIStruct(top):
+ file = top.prop("file")
+ if file == None:
+ return 0
+ symbol = top.prop("name")
+ if symbol == None:
+ return 0
+
+ addStruct(symbol, file)
+ l = splitIdentifier(symbol)
+ for word in l:
+ addWord(word, file, symbol, 10)
+
+ info = top.prop("info")
+ if info != None:
+ info = string.replace(info, "'", " ")
+ info = string.strip(info)
+ l = string.split(info)
+ for word in l:
+ if len(word) > 2:
+ addWord(word, file, symbol, 5)
+ return 1
+
+def analyzeAPIMacro(top):
+ file = top.prop("file")
+ if file == None:
+ return 0
+ symbol = top.prop("name")
+ if symbol == None:
+ return 0
+ symbol = string.replace(symbol, "'", " ")
+ symbol = string.strip(symbol)
+
+ info = None
+ cur = top.children
+ while cur != None:
+ if cur.type == 'text':
+ cur = cur.next
+ continue
+ if cur.name == "info":
+ info = cur.content
+ break
+ cur = cur.next
+
+ l = splitIdentifier(symbol)
+ for word in l:
+ addWord(word, file, symbol, 10)
+
+ if info == None:
+ addMacro(symbol, file)
+ print "Macro %s description has no <info>" % (symbol)
+ return 0
+
+ info = string.replace(info, "'", " ")
+ info = string.strip(info)
+ addMacro(symbol, file, info)
+ l = string.split(info)
+ for word in l:
+ if len(word) > 2:
+ addWord(word, file, symbol, 5)
+ return 1
+
+def analyzeAPIFunction(top):
+ file = top.prop("file")
+ if file == None:
+ return 0
+ symbol = top.prop("name")
+ if symbol == None:
+ return 0
+
+ symbol = string.replace(symbol, "'", " ")
+ symbol = string.strip(symbol)
+ info = None
+ cur = top.children
+ while cur != None:
+ if cur.type == 'text':
+ cur = cur.next
+ continue
+ if cur.name == "info":
+ info = cur.content
+ elif cur.name == "return":
+ rinfo = cur.prop("info")
+ if rinfo != None:
+ rinfo = string.replace(rinfo, "'", " ")
+ rinfo = string.strip(rinfo)
+ addString(rinfo, file, symbol, 7)
+ elif cur.name == "arg":
+ ainfo = cur.prop("info")
+ if ainfo != None:
+ ainfo = string.replace(ainfo, "'", " ")
+ ainfo = string.strip(ainfo)
+ addString(ainfo, file, symbol, 5)
+ name = cur.prop("name")
+ if name != None:
+ name = string.replace(name, "'", " ")
+ name = string.strip(name)
+ addWord(name, file, symbol, 7)
+ cur = cur.next
+ if info == None:
+ print "Function %s description has no <info>" % (symbol)
+ addFunction(symbol, file, "")
+ else:
+ info = string.replace(info, "'", " ")
+ info = string.strip(info)
+ addFunction(symbol, file, info)
+ addString(info, file, symbol, 5)
+
+ l = splitIdentifier(symbol)
+ for word in l:
+ addWord(word, file, symbol, 10)
+
+ return 1
+
+def analyzeAPISymbols(top):
+ count = 0
+ cur = top.children
+
+ while cur != None:
+ if cur.type == 'text':
+ cur = cur.next
+ continue
+ if cur.name == "macro":
+ count = count + analyzeAPIMacro(cur)
+ elif cur.name == "function":
+ count = count + analyzeAPIFunction(cur)
+ elif cur.name == "const":
+ count = count + analyzeAPIConst(cur)
+ elif cur.name == "typedef":
+ count = count + analyzeAPIType(cur)
+ elif cur.name == "struct":
+ count = count + analyzeAPIStruct(cur)
+ elif cur.name == "enum":
+ count = count + analyzeAPIEnum(cur)
+ elif cur.name == "functype":
+ count = count + analyzeAPIFunctype(cur)
+ else:
+ print "unexpected element %s in API doc <files>" % (cur.name)
+ cur = cur.next
+ return count
+
+def analyzeAPI(doc):
+ count = 0
+ if doc == None:
+ return -1
+ root = doc.getRootElement()
+ if root.name != "api":
+ print "Unexpected root name"
+ return -1
+ cur = root.children
+ while cur != None:
+ if cur.type == 'text':
+ cur = cur.next
+ continue
+ if cur.name == "files":
+ pass
+# count = count + analyzeAPIFiles(cur)
+ elif cur.name == "symbols":
+ count = count + analyzeAPISymbols(cur)
+ else:
+ print "unexpected element %s in API doc" % (cur.name)
+ cur = cur.next
+ return count
+
+#########################################################################
+# #
+# Web pages parsing and analysis #
+# #
+#########################################################################
+
+import glob
+
+def analyzeHTMLText(doc, resource, p, section, id):
+ words = 0
+ try:
+ content = p.content
+ words = words + addStringHTML(content, resource, id, section, 5)
+ except:
+ return -1
+ return words
+
+def analyzeHTMLPara(doc, resource, p, section, id):
+ words = 0
+ try:
+ content = p.content
+ words = words + addStringHTML(content, resource, id, section, 5)
+ except:
+ return -1
+ return words
+
+def analyzeHTMLPre(doc, resource, p, section, id):
+ words = 0
+ try:
+ content = p.content
+ words = words + addStringHTML(content, resource, id, section, 5)
+ except:
+ return -1
+ return words
+
+def analyzeHTML(doc, resource, p, section, id):
+ words = 0
+ try:
+ content = p.content
+ words = words + addStringHTML(content, resource, id, section, 5)
+ except:
+ return -1
+ return words
+
+def analyzeHTML(doc, resource):
+ para = 0;
+ ctxt = doc.xpathNewContext()
+ try:
+ res = ctxt.xpathEval("//head/title")
+ title = res[0].content
+ except:
+ title = "Page %s" % (resource)
+ addPage(resource, title)
+ try:
+ items = ctxt.xpathEval("//h1 | //h2 | //h3 | //text()")
+ section = title
+ id = ""
+ for item in items:
+ if item.name == 'h1' or item.name == 'h2' or item.name == 'h3':
+ section = item.content
+ if item.prop("id"):
+ id = item.prop("id")
+ elif item.prop("name"):
+ id = item.prop("name")
+ elif item.type == 'text':
+ analyzeHTMLText(doc, resource, item, section, id)
+ para = para + 1
+ elif item.name == 'p':
+ analyzeHTMLPara(doc, resource, item, section, id)
+ para = para + 1
+ elif item.name == 'pre':
+ analyzeHTMLPre(doc, resource, item, section, id)
+ para = para + 1
+ else:
+ print "Page %s, unexpected %s element" % (resource, item.name)
+ except:
+ print "Page %s: problem analyzing" % (resource)
+ print sys.exc_type, sys.exc_value
+
+ return para
+
+def analyzeHTMLPages():
+ ret = 0
+ HTMLfiles = glob.glob("*.html") + glob.glob("tutorial/*.html")
+ for html in HTMLfiles:
+ if html[0:3] == "API":
+ continue
+ if html == "xml.html":
+ continue
+ try:
+ doc = libxml2.parseFile(html)
+ except:
+ doc = libxml2.htmlParseFile(html, None)
+ try:
+ res = analyzeHTML(doc, html)
+ print "Parsed %s : %d paragraphs" % (html, res)
+ ret = ret + 1
+ except:
+ print "could not parse %s" % (html)
+ return ret
+
+#########################################################################
+# #
+# Mail archives parsing and analysis #
+# #
+#########################################################################
+
+import time
+
+def getXMLDateArchive(t = None):
+ if t == None:
+ t = time.time()
+ T = time.gmtime(t)
+ month = time.strftime("%B", T)
+ year = T[0]
+ url = "http://mail.gnome.org/archives/xml/%d-%s/date.html" % (year, month)
+ return url
+
+def scanXMLMsgArchive(url, title, force = 0):
+ if url == None or title == None:
+ return 0
+
+ ID = checkXMLMsgArchive(url)
+ if force == 0 and ID != -1:
+ return 0
+
+ if ID == -1:
+ ID = addXMLMsgArchive(url, title)
+ if ID == -1:
+ return 0
+
+ try:
+ print "Loading %s" % (url)
+ doc = libxml2.htmlParseFile(url, None);
+ except:
+ doc = None
+ if doc == None:
+ print "Failed to parse %s" % (url)
+ return 0
+
+ addStringArchive(title, ID, 20)
+ ctxt = doc.xpathNewContext()
+ texts = ctxt.xpathEval("//pre//text()")
+ for text in texts:
+ addStringArchive(text.content, ID, 5)
+
+ return 1
+
+def scanXMLDateArchive(t = None, force = 0):
+ global wordsDictArchive
+
+ wordsDictArchive = {}
+
+ url = getXMLDateArchive(t)
+ print "loading %s" % (url)
+ try:
+ doc = libxml2.htmlParseFile(url, None);
+ except:
+ doc = None
+ if doc == None:
+ print "Failed to parse %s" % (url)
+ return -1
+ ctxt = doc.xpathNewContext()
+ anchors = ctxt.xpathEval("//a[@href]")
+ links = 0
+ newmsg = 0
+ for anchor in anchors:
+ href = anchor.prop("href")
+ if href == None or href[0:3] != "msg":
+ continue
+ try:
+ links = links + 1
+
+ msg = libxml2.buildURI(href, url)
+ title = anchor.content
+ if title != None and title[0:4] == 'Re: ':
+ title = title[4:]
+ if title != None and title[0:6] == '[xml] ':
+ title = title[6:]
+ newmsg = newmsg + scanXMLMsgArchive(msg, title, force)
+
+ except:
+ pass
+
+ return newmsg
+
+
+#########################################################################
+# #
+# Main code: open the DB, the API XML and analyze it #
+# #
+#########################################################################
+def analyzeArchives(t = None, force = 0):
+ global wordsDictArchive
+
+ ret = scanXMLDateArchive(t, force)
+ print "Indexed %d words in %d archive pages" % (len(wordsDictArchive), ret)
+
+ i = 0
+ skipped = 0
+ for word in wordsDictArchive.keys():
+ refs = wordsDictArchive[word]
+ if refs == None:
+ skipped = skipped + 1
+ continue;
+ for id in refs.keys():
+ relevance = refs[id]
+ updateWordArchive(word, id, relevance)
+ i = i + 1
+
+ print "Found %d associations in HTML pages" % (i)
+
+def analyzeHTMLTop():
+ global wordsDictHTML
+
+ ret = analyzeHTMLPages()
+ print "Indexed %d words in %d HTML pages" % (len(wordsDictHTML), ret)
+
+ i = 0
+ skipped = 0
+ for word in wordsDictHTML.keys():
+ refs = wordsDictHTML[word]
+ if refs == None:
+ skipped = skipped + 1
+ continue;
+ for resource in refs.keys():
+ (relevance, id, section) = refs[resource]
+ updateWordHTML(word, resource, section, id, relevance)
+ i = i + 1
+
+ print "Found %d associations in HTML pages" % (i)
+
+def analyzeAPITop():
+ global wordsDict
+ global API
+
+ try:
+ doc = loadAPI(API)
+ ret = analyzeAPI(doc)
+ print "Analyzed %d blocs" % (ret)
+ doc.freeDoc()
+ except:
+ print "Failed to parse and analyze %s" % (API)
+ print sys.exc_type, sys.exc_value
+ sys.exit(1)
+
+ print "Indexed %d words" % (len(wordsDict))
+ i = 0
+ skipped = 0
+ for word in wordsDict.keys():
+ refs = wordsDict[word]
+ if refs == None:
+ skipped = skipped + 1
+ continue;
+ for (module, symbol) in refs.keys():
+ updateWord(word, symbol, refs[(module, symbol)])
+ i = i + 1
+
+ print "Found %d associations, skipped %d words" % (i, skipped)
+
+def usage():
+ print "Usage index.py [--force] [--archive] [--archive-year year] [--archive-month month] [--API] [--docs]"
+ sys.exit(1)
+
+def main():
+ try:
+ openMySQL()
+ except:
+ print "Failed to open the database"
+ print sys.exc_type, sys.exc_value
+ sys.exit(1)
+
+ args = sys.argv[1:]
+ force = 0
+ if args:
+ i = 0
+ while i < len(args):
+ if args[i] == '--force':
+ force = 1
+ elif args[i] == '--archive':
+ analyzeArchives(None, force)
+ elif args[i] == '--archive-year':
+ i = i + 1;
+ year = args[i]
+ months = ["January" , "February", "March", "April", "May",
+ "June", "July", "August", "September", "October",
+ "November", "December"];
+ for month in months:
+ try:
+ str = "%s-%s" % (year, month)
+ T = time.strptime(str, "%Y-%B")
+ t = time.mktime(T) + 3600 * 24 * 10;
+ analyzeArchives(t, force)
+ except:
+ print "Failed to index month archive:"
+ print sys.exc_type, sys.exc_value
+ elif args[i] == '--archive-month':
+ i = i + 1;
+ month = args[i]
+ try:
+ T = time.strptime(month, "%Y-%B")
+ t = time.mktime(T) + 3600 * 24 * 10;
+ analyzeArchives(t, force)
+ except:
+ print "Failed to index month archive:"
+ print sys.exc_type, sys.exc_value
+ elif args[i] == '--API':
+ analyzeAPITop()
+ elif args[i] == '--docs':
+ analyzeHTMLTop()
+ else:
+ usage()
+ i = i + 1
+ else:
+ usage()
+
+if __name__ == "__main__":
+ main()
diff --git a/libxml2-2.9.10/doc/interface.html b/libxml2-2.9.10/doc/interface.html
new file mode 100644
index 0000000..0372a05
--- /dev/null
+++ b/libxml2-2.9.10/doc/interface.html
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>The SAX interface</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>The SAX interface</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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>Sometimes the DOM tree output is just too large to fit reasonably into
+memory. In that case (and if you don't expect to save back the XML document
+loaded using libxml), it's better to use the SAX interface of libxml. SAX is
+a <strong>callback-based interface</strong> to the parser. Before parsing,
+the application layer registers a customized set of callbacks which are
+called by the library as it progresses through the XML input.</p><p>To get more detailed step-by-step guidance on using the SAX interface of
+libxml, see the <a href="http://www.jamesh.id.au/articles/libxml-sax/libxml-sax.html">nice
+documentation</a>.written by <a href="mailto:james@daa.com.au">James
+Henstridge</a>.</p><p>You can debug the SAX behaviour by using the <strong>testSAX</strong>
+program located in the gnome-xml module (it's usually not shipped in the
+binary packages of libxml, but you can find it in the tar source
+distribution). Here is the sequence of callbacks that would be reported by
+testSAX when parsing the example XML document shown earlier:</p><pre>SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.getEntity(amp)
+SAX.startElement(EXAMPLE, prop1='gnome is great', prop2='&amp;amp; linux too')
+SAX.characters( , 3)
+SAX.startElement(head)
+SAX.characters( , 4)
+SAX.startElement(title)
+SAX.characters(Welcome to Gnome, 16)
+SAX.endElement(title)
+SAX.characters( , 3)
+SAX.endElement(head)
+SAX.characters( , 3)
+SAX.startElement(chapter)
+SAX.characters( , 4)
+SAX.startElement(title)
+SAX.characters(The Linux adventure, 19)
+SAX.endElement(title)
+SAX.characters( , 4)
+SAX.startElement(p)
+SAX.characters(bla bla bla ..., 15)
+SAX.endElement(p)
+SAX.characters( , 4)
+SAX.startElement(image, href='linus.gif')
+SAX.endElement(image)
+SAX.characters( , 4)
+SAX.startElement(p)
+SAX.characters(..., 3)
+SAX.endElement(p)
+SAX.characters( , 3)
+SAX.endElement(chapter)
+SAX.characters( , 1)
+SAX.endElement(EXAMPLE)
+SAX.endDocument()</pre><p>Most of the other interfaces of libxml2 are based on the DOM tree-building
+facility, so nearly everything up to the end of this document presupposes the
+use of the standard DOM tree build. Note that the DOM tree itself is built by
+a set of registered default callbacks, without internal specific
+interface.</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>
diff --git a/libxml2-2.9.10/doc/intro.html b/libxml2-2.9.10/doc/intro.html
new file mode 100644
index 0000000..efa0788
--- /dev/null
+++ b/libxml2-2.9.10/doc/intro.html
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Introduction</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>Introduction</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>This document describes libxml, the <a href="http://www.w3.org/XML/">XML</a> C parser and toolkit developed for the
+<a href="http://www.gnome.org/">Gnome</a> project. <a href="http://www.w3.org/XML/">XML is a standard</a> for building tag-based
+structured documents/data.</p><p>Here are some key points about libxml:</p><ul>
+ <li>Libxml2 exports Push (progressive) and Pull (blocking) type parser
+ interfaces for both XML and HTML.</li>
+ <li>Libxml2 can do DTD validation at parse time, using a parsed document
+ instance, or with an arbitrary DTD.</li>
+ <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, and
+ sticking closely to ANSI C/POSIX for easy embedding. Works on
+ Linux/Unix/Windows, ported to a number of other platforms.</li>
+ <li>Basic support for HTTP and FTP client allowing applications to fetch
+ remote resources.</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>Libxml2 also has a <a href="http://www.megginson.com/SAX/index.html">SAX like interface</a>;
+ the interface 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">MIT
+ License</a>. See the Copyright file in the distribution for the precise
+ wording.</li>
+</ul><p>Warning: unless you are forced to because your application links with a
+Gnome-1.X library requiring it, <strong><span style="background-color: #FF0000">Do Not Use libxml1</span></strong>, use
+libxml2</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>
diff --git a/libxml2-2.9.10/doc/library.html b/libxml2-2.9.10/doc/library.html
new file mode 100644
index 0000000..a3e9a57
--- /dev/null
+++ b/libxml2-2.9.10/doc/library.html
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>The parser interfaces</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>The parser interfaces</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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 section is directly intended to help programmers getting bootstrapped
+using the XML tollkit from the C language. It is not intended to be
+extensive. I hope the automatically generated documents will provide the
+completeness required, but as a separate set of documents. The interfaces of
+the XML parser are by principle low level, Those interested in a higher level
+API should <a href="#DOM">look at DOM</a>.</p><p>The <a href="html/libxml-parser.html">parser interfaces for XML</a> are
+separated from the <a href="html/libxml-htmlparser.html">HTML parser
+interfaces</a>. Let's have a look at how the XML parser can be called:</p><h3><a name="Invoking" id="Invoking">Invoking the parser : the pull method</a></h3><p>Usually, the first thing to do is to read an XML input. The parser accepts
+documents either from in-memory strings or from files. The functions are
+defined in "parser.h":</p><dl>
+ <dt><code>xmlDocPtr xmlParseMemory(char *buffer, int size);</code></dt>
+ <dd><p>Parse a null-terminated string containing the document.</p>
+ </dd>
+</dl><dl>
+ <dt><code>xmlDocPtr xmlParseFile(const char *filename);</code></dt>
+ <dd><p>Parse an XML document contained in a (possibly compressed)
+ file.</p>
+ </dd>
+</dl><p>The parser returns a pointer to the document structure (or NULL in case of
+failure).</p><h3 id="Invoking1">Invoking the parser: the push method</h3><p>In order for the application to keep the control when the document is
+being fetched (which is common for GUI based programs) libxml2 provides a
+push interface, too, as of version 1.8.3. Here are the interface
+functions:</p><pre>xmlParserCtxtPtr xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
+ void *user_data,
+ const char *chunk,
+ int size,
+ const char *filename);
+int xmlParseChunk (xmlParserCtxtPtr ctxt,
+ const char *chunk,
+ int size,
+ int terminate);</pre><p>and here is a simple example showing how to use the interface:</p><pre> FILE *f;
+
+ f = fopen(filename, "r");
+ if (f != NULL) {
+ int res, size = 1024;
+ char chars[1024];
+ xmlParserCtxtPtr ctxt;
+
+ res = fread(chars, 1, 4, f);
+ if (res &gt; 0) {
+ ctxt = xmlCreatePushParserCtxt(NULL, NULL,
+ chars, res, filename);
+ while ((res = fread(chars, 1, size, f)) &gt; 0) {
+ xmlParseChunk(ctxt, chars, res, 0);
+ }
+ xmlParseChunk(ctxt, chars, 0, 1);
+ doc = ctxt-&gt;myDoc;
+ xmlFreeParserCtxt(ctxt);
+ }
+ }</pre><p>The HTML parser embedded into libxml2 also has a push interface; the
+functions are just prefixed by "html" rather than "xml".</p><h3 id="Invoking2">Invoking the parser: the SAX interface</h3><p>The tree-building interface makes the parser memory-hungry, first loading
+the document in memory and then building the tree itself. Reading a document
+without building the tree is possible using the SAX interfaces (see SAX.h and
+<a href="http://www.daa.com.au/~james/gnome/xml-sax/xml-sax.html">James
+Henstridge's documentation</a>). Note also that the push interface can be
+limited to SAX: just use the two first arguments of
+<code>xmlCreatePushParserCtxt()</code>.</p><h3><a name="Building" id="Building">Building a tree from scratch</a></h3><p>The other way to get an XML tree in memory is by building it. Basically
+there is a set of functions dedicated to building new elements. (These are
+also described in &lt;libxml/tree.h&gt;.) For example, here is a piece of
+code that produces the XML document used in the previous examples:</p><pre> #include &lt;libxml/tree.h&gt;
+ xmlDocPtr doc;
+ xmlNodePtr tree, subtree;
+
+ doc = xmlNewDoc("1.0");
+ doc-&gt;children = xmlNewDocNode(doc, NULL, "EXAMPLE", NULL);
+ xmlSetProp(doc-&gt;children, "prop1", "gnome is great");
+ xmlSetProp(doc-&gt;children, "prop2", "&amp; linux too");
+ tree = xmlNewChild(doc-&gt;children, NULL, "head", NULL);
+ subtree = xmlNewChild(tree, NULL, "title", "Welcome to Gnome");
+ tree = xmlNewChild(doc-&gt;children, NULL, "chapter", NULL);
+ subtree = xmlNewChild(tree, NULL, "title", "The Linux adventure");
+ subtree = xmlNewChild(tree, NULL, "p", "bla bla bla ...");
+ subtree = xmlNewChild(tree, NULL, "image", NULL);
+ xmlSetProp(subtree, "href", "linus.gif");</pre><p>Not really rocket science ...</p><h3><a name="Traversing" id="Traversing">Traversing the tree</a></h3><p>Basically by <a href="html/libxml-tree.html">including "tree.h"</a> your
+code has access to the internal structure of all the elements of the tree.
+The names should be somewhat simple like <strong>parent</strong>,
+<strong>children</strong>, <strong>next</strong>, <strong>prev</strong>,
+<strong>properties</strong>, etc... For example, still with the previous
+example:</p><pre><code>doc-&gt;children-&gt;children-&gt;children</code></pre><p>points to the title element,</p><pre>doc-&gt;children-&gt;children-&gt;next-&gt;children-&gt;children</pre><p>points to the text node containing the chapter title "The Linux
+adventure".</p><p><strong>NOTE</strong>: XML allows <em>PI</em>s and <em>comments</em> to be
+present before the document root, so <code>doc-&gt;children</code> may point
+to an element which is not the document Root Element; a function
+<code>xmlDocGetRootElement()</code> was added for this purpose.</p><h3><a name="Modifying" id="Modifying">Modifying the tree</a></h3><p>Functions are provided for reading and writing the document content. Here
+is an excerpt from the <a href="html/libxml-tree.html">tree API</a>:</p><dl>
+ <dt><code>xmlAttrPtr xmlSetProp(xmlNodePtr node, const xmlChar *name, const
+ xmlChar *value);</code></dt>
+ <dd><p>This sets (or changes) an attribute carried by an ELEMENT node.
+ The value can be NULL.</p>
+ </dd>
+</dl><dl>
+ <dt><code>const xmlChar *xmlGetProp(xmlNodePtr node, const xmlChar
+ *name);</code></dt>
+ <dd><p>This function returns a pointer to new copy of the property
+ content. Note that the user must deallocate the result.</p>
+ </dd>
+</dl><p>Two functions are provided for reading and writing the text associated
+with elements:</p><dl>
+ <dt><code>xmlNodePtr xmlStringGetNodeList(xmlDocPtr doc, const xmlChar
+ *value);</code></dt>
+ <dd><p>This function takes an "external" string and converts it to one
+ text node or possibly to a list of entity and text nodes. All
+ non-predefined entity references like &amp;Gnome; will be stored
+ internally as entity nodes, hence the result of the function may not be
+ a single node.</p>
+ </dd>
+</dl><dl>
+ <dt><code>xmlChar *xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int
+ inLine);</code></dt>
+ <dd><p>This function is the inverse of
+ <code>xmlStringGetNodeList()</code>. It generates a new string
+ containing the content of the text and entity nodes. Note the extra
+ argument inLine. If this argument is set to 1, the function will expand
+ entity references. For example, instead of returning the &amp;Gnome;
+ XML encoding in the string, it will substitute it with its value (say,
+ "GNU Network Object Model Environment").</p>
+ </dd>
+</dl><h3><a name="Saving" id="Saving">Saving a tree</a></h3><p>Basically 3 options are possible:</p><dl>
+ <dt><code>void xmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int
+ *size);</code></dt>
+ <dd><p>Returns a buffer into which the document has been saved.</p>
+ </dd>
+</dl><dl>
+ <dt><code>extern void xmlDocDump(FILE *f, xmlDocPtr doc);</code></dt>
+ <dd><p>Dumps a document to an open file descriptor.</p>
+ </dd>
+</dl><dl>
+ <dt><code>int xmlSaveFile(const char *filename, xmlDocPtr cur);</code></dt>
+ <dd><p>Saves the document to a file. In this case, the compression
+ interface is triggered if it has been turned on.</p>
+ </dd>
+</dl><h3><a name="Compressio" id="Compressio">Compression</a></h3><p>The library transparently handles compression when doing file-based
+accesses. The level of compression on saves can be turned on either globally
+or individually for one file:</p><dl>
+ <dt><code>int xmlGetDocCompressMode (xmlDocPtr doc);</code></dt>
+ <dd><p>Gets the document compression ratio (0-9).</p>
+ </dd>
+</dl><dl>
+ <dt><code>void xmlSetDocCompressMode (xmlDocPtr doc, int mode);</code></dt>
+ <dd><p>Sets the document compression ratio.</p>
+ </dd>
+</dl><dl>
+ <dt><code>int xmlGetCompressMode(void);</code></dt>
+ <dd><p>Gets the default compression ratio.</p>
+ </dd>
+</dl><dl>
+ <dt><code>void xmlSetCompressMode(int mode);</code></dt>
+ <dd><p>Sets the default compression ratio.</p>
+ </dd>
+</dl><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/libxml2-2.9.10/doc/libxml.gif b/libxml2-2.9.10/doc/libxml.gif
new file mode 100644
index 0000000..e24adf8
--- /dev/null
+++ b/libxml2-2.9.10/doc/libxml.gif
Binary files differ
diff --git a/libxml2-2.9.10/doc/libxml2-api.xml b/libxml2-2.9.10/doc/libxml2-api.xml
new file mode 100644
index 0000000..f264a29
--- /dev/null
+++ b/libxml2-2.9.10/doc/libxml2-api.xml
@@ -0,0 +1,18529 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<api name='libxml2'>
+ <files>
+ <file name='DOCBparser'>
+ <summary>old DocBook SGML parser</summary>
+ <description>interface for a DocBook SGML non-verifying parser This code is DEPRECATED, and should not be used anymore. </description>
+ <author>Daniel Veillard </author>
+ <deprecated/>
+ <exports symbol='docbParserInputPtr' type='typedef'/>
+ <exports symbol='docbParserCtxt' type='typedef'/>
+ <exports symbol='docbParserCtxtPtr' type='typedef'/>
+ <exports symbol='docbParserInput' type='typedef'/>
+ <exports symbol='docbDocPtr' type='typedef'/>
+ <exports symbol='docbSAXHandler' type='typedef'/>
+ <exports symbol='docbSAXHandlerPtr' type='typedef'/>
+ <exports symbol='docbFreeParserCtxt' type='function'/>
+ <exports symbol='docbParseDoc' type='function'/>
+ <exports symbol='docbCreateFileParserCtxt' type='function'/>
+ <exports symbol='docbSAXParseFile' type='function'/>
+ <exports symbol='docbSAXParseDoc' type='function'/>
+ <exports symbol='docbCreatePushParserCtxt' type='function'/>
+ <exports symbol='docbEncodeEntities' type='function'/>
+ <exports symbol='docbParseFile' type='function'/>
+ <exports symbol='docbParseDocument' type='function'/>
+ <exports symbol='docbParseChunk' type='function'/>
+ </file>
+ <file name='HTMLparser'>
+ <summary>interface for an HTML 4.0 non-verifying parser</summary>
+ <description>this module implements an HTML 4.0 non-verifying parser with API compatible with the XML parser ones. It should be able to parse &quot;real world&quot; HTML, even if severely broken from a specification point of view. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='htmlDefaultSubelement' type='macro'/>
+ <exports symbol='htmlElementAllowedHereDesc' type='macro'/>
+ <exports symbol='htmlRequiredAttrs' type='macro'/>
+ <exports symbol='HTML_REQUIRED' type='enum'/>
+ <exports symbol='HTML_INVALID' type='enum'/>
+ <exports symbol='HTML_PARSE_NONET' type='enum'/>
+ <exports symbol='HTML_NA' type='enum'/>
+ <exports symbol='HTML_PARSE_COMPACT' type='enum'/>
+ <exports symbol='HTML_VALID' type='enum'/>
+ <exports symbol='HTML_PARSE_NOBLANKS' type='enum'/>
+ <exports symbol='HTML_PARSE_NODEFDTD' type='enum'/>
+ <exports symbol='HTML_PARSE_RECOVER' type='enum'/>
+ <exports symbol='HTML_DEPRECATED' type='enum'/>
+ <exports symbol='HTML_PARSE_NOERROR' type='enum'/>
+ <exports symbol='HTML_PARSE_PEDANTIC' type='enum'/>
+ <exports symbol='HTML_PARSE_IGNORE_ENC' type='enum'/>
+ <exports symbol='HTML_PARSE_NOIMPLIED' type='enum'/>
+ <exports symbol='HTML_PARSE_NOWARNING' type='enum'/>
+ <exports symbol='htmlParserNodeInfo' type='typedef'/>
+ <exports symbol='htmlParserInput' type='typedef'/>
+ <exports symbol='htmlParserCtxtPtr' type='typedef'/>
+ <exports symbol='htmlEntityDesc' type='typedef'/>
+ <exports symbol='htmlDocPtr' type='typedef'/>
+ <exports symbol='htmlSAXHandlerPtr' type='typedef'/>
+ <exports symbol='htmlStatus' type='typedef'/>
+ <exports symbol='htmlNodePtr' type='typedef'/>
+ <exports symbol='htmlElemDescPtr' type='typedef'/>
+ <exports symbol='htmlElemDesc' type='typedef'/>
+ <exports symbol='htmlSAXHandler' type='typedef'/>
+ <exports symbol='htmlParserInputPtr' type='typedef'/>
+ <exports symbol='htmlParserOption' type='typedef'/>
+ <exports symbol='htmlEntityDescPtr' type='typedef'/>
+ <exports symbol='htmlParserCtxt' type='typedef'/>
+ <exports symbol='_htmlEntityDesc' type='struct'/>
+ <exports symbol='_htmlElemDesc' type='struct'/>
+ <exports symbol='htmlIsScriptAttribute' type='function'/>
+ <exports symbol='htmlHandleOmittedElem' type='function'/>
+ <exports symbol='htmlReadFd' type='function'/>
+ <exports symbol='htmlReadIO' type='function'/>
+ <exports symbol='htmlParseFile' type='function'/>
+ <exports symbol='htmlCtxtReadDoc' type='function'/>
+ <exports symbol='htmlAutoCloseTag' type='function'/>
+ <exports symbol='htmlParseChunk' type='function'/>
+ <exports symbol='htmlTagLookup' type='function'/>
+ <exports symbol='htmlCreateMemoryParserCtxt' type='function'/>
+ <exports symbol='htmlCtxtReset' type='function'/>
+ <exports symbol='htmlElementAllowedHere' type='function'/>
+ <exports symbol='htmlCtxtReadIO' type='function'/>
+ <exports symbol='htmlCreatePushParserCtxt' type='function'/>
+ <exports symbol='htmlReadMemory' type='function'/>
+ <exports symbol='htmlIsAutoClosed' type='function'/>
+ <exports symbol='htmlParseCharRef' type='function'/>
+ <exports symbol='htmlReadDoc' type='function'/>
+ <exports symbol='htmlEncodeEntities' type='function'/>
+ <exports symbol='htmlNodeStatus' type='function'/>
+ <exports symbol='htmlAttrAllowed' type='function'/>
+ <exports symbol='htmlSAXParseFile' type='function'/>
+ <exports symbol='htmlParseEntityRef' type='function'/>
+ <exports symbol='htmlElementStatusHere' type='function'/>
+ <exports symbol='htmlEntityValueLookup' type='function'/>
+ <exports symbol='htmlParseElement' type='function'/>
+ <exports symbol='UTF8ToHtml' type='function'/>
+ <exports symbol='htmlEntityLookup' type='function'/>
+ <exports symbol='htmlFreeParserCtxt' type='function'/>
+ <exports symbol='htmlCtxtReadMemory' type='function'/>
+ <exports symbol='htmlCtxtReadFd' type='function'/>
+ <exports symbol='htmlReadFile' type='function'/>
+ <exports symbol='htmlCtxtReadFile' type='function'/>
+ <exports symbol='htmlParseDocument' type='function'/>
+ <exports symbol='htmlNewParserCtxt' type='function'/>
+ <exports symbol='htmlSAXParseDoc' type='function'/>
+ <exports symbol='htmlCtxtUseOptions' type='function'/>
+ <exports symbol='htmlParseDoc' type='function'/>
+ </file>
+ <file name='HTMLtree'>
+ <summary>specific APIs to process HTML tree, especially serialization</summary>
+ <description>this module implements a few function needed to process tree in an HTML specific way. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='HTML_ENTITY_REF_NODE' type='macro'/>
+ <exports symbol='HTML_COMMENT_NODE' type='macro'/>
+ <exports symbol='HTML_PRESERVE_NODE' type='macro'/>
+ <exports symbol='HTML_TEXT_NODE' type='macro'/>
+ <exports symbol='HTML_PI_NODE' type='macro'/>
+ <exports symbol='htmlNodeDumpFileFormat' type='function'/>
+ <exports symbol='htmlDocDumpMemory' type='function'/>
+ <exports symbol='htmlSaveFile' type='function'/>
+ <exports symbol='htmlDocDump' type='function'/>
+ <exports symbol='htmlDocDumpMemoryFormat' type='function'/>
+ <exports symbol='htmlIsBooleanAttr' type='function'/>
+ <exports symbol='htmlSaveFileFormat' type='function'/>
+ <exports symbol='htmlNodeDumpFormatOutput' type='function'/>
+ <exports symbol='htmlSetMetaEncoding' type='function'/>
+ <exports symbol='htmlSaveFileEnc' type='function'/>
+ <exports symbol='htmlNodeDumpOutput' type='function'/>
+ <exports symbol='htmlNodeDump' type='function'/>
+ <exports symbol='htmlNewDoc' type='function'/>
+ <exports symbol='htmlGetMetaEncoding' type='function'/>
+ <exports symbol='htmlNodeDumpFile' type='function'/>
+ <exports symbol='htmlDocContentDumpFormatOutput' type='function'/>
+ <exports symbol='htmlNewDocNoDtD' type='function'/>
+ <exports symbol='htmlDocContentDumpOutput' type='function'/>
+ </file>
+ <file name='SAX'>
+ <summary>Old SAX version 1 handler, deprecated</summary>
+ <description>DEPRECATED set of SAX version 1 interfaces used to build the DOM tree. </description>
+ <author>Daniel Veillard </author>
+ <deprecated/>
+ <exports symbol='comment' type='function'/>
+ <exports symbol='checkNamespace' type='function'/>
+ <exports symbol='getColumnNumber' type='function'/>
+ <exports symbol='entityDecl' type='function'/>
+ <exports symbol='attribute' type='function'/>
+ <exports symbol='getNamespace' type='function'/>
+ <exports symbol='setDocumentLocator' type='function'/>
+ <exports symbol='initxmlDefaultSAXHandler' type='function'/>
+ <exports symbol='ignorableWhitespace' type='function'/>
+ <exports symbol='hasExternalSubset' type='function'/>
+ <exports symbol='unparsedEntityDecl' type='function'/>
+ <exports symbol='globalNamespace' type='function'/>
+ <exports symbol='hasInternalSubset' type='function'/>
+ <exports symbol='reference' type='function'/>
+ <exports symbol='notationDecl' type='function'/>
+ <exports symbol='getSystemId' type='function'/>
+ <exports symbol='externalSubset' type='function'/>
+ <exports symbol='resolveEntity' type='function'/>
+ <exports symbol='startDocument' type='function'/>
+ <exports symbol='setNamespace' type='function'/>
+ <exports symbol='cdataBlock' type='function'/>
+ <exports symbol='getPublicId' type='function'/>
+ <exports symbol='inithtmlDefaultSAXHandler' type='function'/>
+ <exports symbol='processingInstruction' type='function'/>
+ <exports symbol='endElement' type='function'/>
+ <exports symbol='namespaceDecl' type='function'/>
+ <exports symbol='initdocbDefaultSAXHandler' type='function'/>
+ <exports symbol='getEntity' type='function'/>
+ <exports symbol='characters' type='function'/>
+ <exports symbol='elementDecl' type='function'/>
+ <exports symbol='startElement' type='function'/>
+ <exports symbol='getParameterEntity' type='function'/>
+ <exports symbol='attributeDecl' type='function'/>
+ <exports symbol='isStandalone' type='function'/>
+ <exports symbol='internalSubset' type='function'/>
+ <exports symbol='endDocument' type='function'/>
+ <exports symbol='getLineNumber' type='function'/>
+ </file>
+ <file name='SAX2'>
+ <summary>SAX2 parser interface used to build the DOM tree</summary>
+ <description>those are the default SAX2 interfaces used by the library when building DOM tree. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlSAX2EndElementNs' type='function'/>
+ <exports symbol='xmlSAX2Reference' type='function'/>
+ <exports symbol='xmlSAX2ElementDecl' type='function'/>
+ <exports symbol='xmlSAX2AttributeDecl' type='function'/>
+ <exports symbol='xmlSAX2Comment' type='function'/>
+ <exports symbol='xmlSAX2GetColumnNumber' type='function'/>
+ <exports symbol='xmlSAX2GetEntity' type='function'/>
+ <exports symbol='xmlSAX2UnparsedEntityDecl' type='function'/>
+ <exports symbol='xmlSAX2InitDocbDefaultSAXHandler' type='function'/>
+ <exports symbol='xmlSAXVersion' type='function'/>
+ <exports symbol='xmlSAX2IgnorableWhitespace' type='function'/>
+ <exports symbol='xmlSAX2NotationDecl' type='function'/>
+ <exports symbol='xmlSAX2StartDocument' type='function'/>
+ <exports symbol='xmlSAX2EndElement' type='function'/>
+ <exports symbol='xmlSAX2ResolveEntity' type='function'/>
+ <exports symbol='xmlSAX2ExternalSubset' type='function'/>
+ <exports symbol='xmlSAX2GetPublicId' type='function'/>
+ <exports symbol='xmlSAX2IsStandalone' type='function'/>
+ <exports symbol='xmlSAX2EndDocument' type='function'/>
+ <exports symbol='xmlSAX2ProcessingInstruction' type='function'/>
+ <exports symbol='xmlSAX2InternalSubset' type='function'/>
+ <exports symbol='xmlSAX2Characters' type='function'/>
+ <exports symbol='xmlSAXDefaultVersion' type='function'/>
+ <exports symbol='xmlSAX2StartElement' type='function'/>
+ <exports symbol='xmlSAX2SetDocumentLocator' type='function'/>
+ <exports symbol='xmlSAX2CDataBlock' type='function'/>
+ <exports symbol='xmlSAX2StartElementNs' type='function'/>
+ <exports symbol='xmlSAX2HasExternalSubset' type='function'/>
+ <exports symbol='htmlDefaultSAXHandlerInit' type='function'/>
+ <exports symbol='xmlSAX2GetLineNumber' type='function'/>
+ <exports symbol='xmlSAX2HasInternalSubset' type='function'/>
+ <exports symbol='xmlSAX2InitHtmlDefaultSAXHandler' type='function'/>
+ <exports symbol='docbDefaultSAXHandlerInit' type='function'/>
+ <exports symbol='xmlDefaultSAXHandlerInit' type='function'/>
+ <exports symbol='xmlSAX2InitDefaultSAXHandler' type='function'/>
+ <exports symbol='xmlSAX2GetParameterEntity' type='function'/>
+ <exports symbol='xmlSAX2GetSystemId' type='function'/>
+ <exports symbol='xmlSAX2EntityDecl' type='function'/>
+ </file>
+ <file name='c14n'>
+ <summary>Provide Canonical XML and Exclusive XML Canonicalization</summary>
+ <description>the c14n modules provides a &quot;Canonical XML&quot; implementation</description>
+ <author>Aleksey Sanin &lt;aleksey@aleksey.com&gt; </author>
+ <exports symbol='XML_C14N_1_1' type='enum'/>
+ <exports symbol='XML_C14N_1_0' type='enum'/>
+ <exports symbol='XML_C14N_EXCLUSIVE_1_0' type='enum'/>
+ <exports symbol='xmlC14NMode' type='typedef'/>
+ <exports symbol='xmlC14NExecute' type='function'/>
+ <exports symbol='xmlC14NDocSaveTo' type='function'/>
+ <exports symbol='xmlC14NIsVisibleCallback' type='function'/>
+ <exports symbol='xmlC14NDocSave' type='function'/>
+ <exports symbol='xmlC14NDocDumpMemory' type='function'/>
+ </file>
+ <file name='catalog'>
+ <summary>interfaces to the Catalog handling system</summary>
+ <description>the catalog module implements the support for XML Catalogs and SGML catalogs </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_CATALOG_PI' type='macro'/>
+ <exports symbol='XML_CATALOGS_NAMESPACE' type='macro'/>
+ <exports symbol='XML_CATA_ALLOW_NONE' type='enum'/>
+ <exports symbol='XML_CATA_PREFER_NONE' type='enum'/>
+ <exports symbol='XML_CATA_ALLOW_GLOBAL' type='enum'/>
+ <exports symbol='XML_CATA_PREFER_PUBLIC' type='enum'/>
+ <exports symbol='XML_CATA_ALLOW_DOCUMENT' type='enum'/>
+ <exports symbol='XML_CATA_ALLOW_ALL' type='enum'/>
+ <exports symbol='XML_CATA_PREFER_SYSTEM' type='enum'/>
+ <exports symbol='xmlCatalogAllow' type='typedef'/>
+ <exports symbol='xmlCatalogPrefer' type='typedef'/>
+ <exports symbol='xmlCatalog' type='typedef'/>
+ <exports symbol='xmlCatalogPtr' type='typedef'/>
+ <exports symbol='xmlFreeCatalog' type='function'/>
+ <exports symbol='xmlLoadCatalogs' type='function'/>
+ <exports symbol='xmlCatalogLocalResolve' type='function'/>
+ <exports symbol='xmlACatalogAdd' type='function'/>
+ <exports symbol='xmlACatalogResolvePublic' type='function'/>
+ <exports symbol='xmlCatalogGetDefaults' type='function'/>
+ <exports symbol='xmlACatalogRemove' type='function'/>
+ <exports symbol='xmlCatalogSetDefaultPrefer' type='function'/>
+ <exports symbol='xmlACatalogResolveURI' type='function'/>
+ <exports symbol='xmlCatalogAdd' type='function'/>
+ <exports symbol='xmlCatalogResolvePublic' type='function'/>
+ <exports symbol='xmlCatalogGetSystem' type='function'/>
+ <exports symbol='xmlInitializeCatalog' type='function'/>
+ <exports symbol='xmlLoadCatalog' type='function'/>
+ <exports symbol='xmlCatalogRemove' type='function'/>
+ <exports symbol='xmlCatalogIsEmpty' type='function'/>
+ <exports symbol='xmlACatalogDump' type='function'/>
+ <exports symbol='xmlCatalogFreeLocal' type='function'/>
+ <exports symbol='xmlACatalogResolve' type='function'/>
+ <exports symbol='xmlCatalogResolveSystem' type='function'/>
+ <exports symbol='xmlLoadSGMLSuperCatalog' type='function'/>
+ <exports symbol='xmlCatalogConvert' type='function'/>
+ <exports symbol='xmlCatalogGetPublic' type='function'/>
+ <exports symbol='xmlLoadACatalog' type='function'/>
+ <exports symbol='xmlACatalogResolveSystem' type='function'/>
+ <exports symbol='xmlCatalogLocalResolveURI' type='function'/>
+ <exports symbol='xmlConvertSGMLCatalog' type='function'/>
+ <exports symbol='xmlCatalogAddLocal' type='function'/>
+ <exports symbol='xmlNewCatalog' type='function'/>
+ <exports symbol='xmlParseCatalogFile' type='function'/>
+ <exports symbol='xmlCatalogSetDebug' type='function'/>
+ <exports symbol='xmlCatalogResolve' type='function'/>
+ <exports symbol='xmlCatalogSetDefaults' type='function'/>
+ <exports symbol='xmlCatalogDump' type='function'/>
+ <exports symbol='xmlCatalogCleanup' type='function'/>
+ <exports symbol='xmlCatalogResolveURI' type='function'/>
+ </file>
+ <file name='chvalid'>
+ <summary>Unicode character range checking</summary>
+ <description>this module exports interfaces for the character range validation APIs This file is automatically generated from the cvs source definition files using the genChRanges.py Python script </description>
+ <author>William Brack &lt;wbrack@mmm.com.hk&gt; </author>
+ <exports symbol='xmlIsExtender_ch' type='macro'/>
+ <exports symbol='xmlIsPubidCharQ' type='macro'/>
+ <exports symbol='xmlIsPubidChar_ch' type='macro'/>
+ <exports symbol='xmlIsIdeographicQ' type='macro'/>
+ <exports symbol='xmlIsExtenderQ' type='macro'/>
+ <exports symbol='xmlIsChar_ch' type='macro'/>
+ <exports symbol='xmlIsDigitQ' type='macro'/>
+ <exports symbol='xmlIsDigit_ch' type='macro'/>
+ <exports symbol='xmlIsBaseChar_ch' type='macro'/>
+ <exports symbol='xmlIsCombiningQ' type='macro'/>
+ <exports symbol='xmlIsBlankQ' type='macro'/>
+ <exports symbol='xmlIsCharQ' type='macro'/>
+ <exports symbol='xmlIsBaseCharQ' type='macro'/>
+ <exports symbol='xmlIsBlank_ch' type='macro'/>
+ <exports symbol='xmlChLRange' type='typedef'/>
+ <exports symbol='xmlChSRangePtr' type='typedef'/>
+ <exports symbol='xmlChLRangePtr' type='typedef'/>
+ <exports symbol='xmlChRangeGroupPtr' type='typedef'/>
+ <exports symbol='xmlChSRange' type='typedef'/>
+ <exports symbol='xmlChRangeGroup' type='typedef'/>
+ <exports symbol='_xmlChSRange' type='struct'/>
+ <exports symbol='_xmlChLRange' type='struct'/>
+ <exports symbol='_xmlChRangeGroup' type='struct'/>
+ <exports symbol='xmlIsBaseCharGroup' type='variable'/>
+ <exports symbol='xmlIsIdeographicGroup' type='variable'/>
+ <exports symbol='xmlIsDigitGroup' type='variable'/>
+ <exports symbol='xmlIsExtenderGroup' type='variable'/>
+ <exports symbol='xmlIsPubidChar_tab' type='variable'/>
+ <exports symbol='xmlIsCharGroup' type='variable'/>
+ <exports symbol='xmlIsCombiningGroup' type='variable'/>
+ <exports symbol='xmlIsChar' type='function'/>
+ <exports symbol='xmlIsDigit' type='function'/>
+ <exports symbol='xmlIsBlank' type='function'/>
+ <exports symbol='xmlIsIdeographic' type='function'/>
+ <exports symbol='xmlCharInRange' type='function'/>
+ <exports symbol='xmlIsPubidChar' type='function'/>
+ <exports symbol='xmlIsCombining' type='function'/>
+ <exports symbol='xmlIsBaseChar' type='function'/>
+ <exports symbol='xmlIsExtender' type='function'/>
+ </file>
+ <file name='debugXML'>
+ <summary>Tree debugging APIs</summary>
+ <description>Interfaces to a set of routines used for debugging the tree produced by the XML parser. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlShellCtxt' type='typedef'/>
+ <exports symbol='xmlShellCtxtPtr' type='typedef'/>
+ <exports symbol='_xmlShellCtxt' type='struct'/>
+ <exports symbol='xmlDebugDumpAttrList' type='function'/>
+ <exports symbol='xmlLsOneNode' type='function'/>
+ <exports symbol='xmlShellReadlineFunc' type='function'/>
+ <exports symbol='xmlShellSave' type='function'/>
+ <exports symbol='xmlBoolToText' type='function'/>
+ <exports symbol='xmlShellWrite' type='function'/>
+ <exports symbol='xmlShellDu' type='function'/>
+ <exports symbol='xmlShellValidate' type='function'/>
+ <exports symbol='xmlDebugCheckDocument' type='function'/>
+ <exports symbol='xmlShellPrintXPathResult' type='function'/>
+ <exports symbol='xmlShellCmd' type='function'/>
+ <exports symbol='xmlShellLoad' type='function'/>
+ <exports symbol='xmlDebugDumpString' type='function'/>
+ <exports symbol='xmlShellBase' type='function'/>
+ <exports symbol='xmlShellCat' type='function'/>
+ <exports symbol='xmlDebugDumpDTD' type='function'/>
+ <exports symbol='xmlDebugDumpNode' type='function'/>
+ <exports symbol='xmlDebugDumpEntities' type='function'/>
+ <exports symbol='xmlShellPrintNode' type='function'/>
+ <exports symbol='xmlShellPwd' type='function'/>
+ <exports symbol='xmlDebugDumpNodeList' type='function'/>
+ <exports symbol='xmlDebugDumpAttr' type='function'/>
+ <exports symbol='xmlDebugDumpDocument' type='function'/>
+ <exports symbol='xmlLsCountNode' type='function'/>
+ <exports symbol='xmlShellPrintXPathError' type='function'/>
+ <exports symbol='xmlShellDir' type='function'/>
+ <exports symbol='xmlDebugDumpOneNode' type='function'/>
+ <exports symbol='xmlShellList' type='function'/>
+ <exports symbol='xmlDebugDumpDocumentHead' type='function'/>
+ <exports symbol='xmlShell' type='function'/>
+ </file>
+ <file name='dict'>
+ <summary>string dictionary</summary>
+ <description>dictionary of reusable strings, just used to avoid allocation and freeing operations. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlDict' type='typedef'/>
+ <exports symbol='xmlDictPtr' type='typedef'/>
+ <exports symbol='xmlDictGetUsage' type='function'/>
+ <exports symbol='xmlDictReference' type='function'/>
+ <exports symbol='xmlDictCleanup' type='function'/>
+ <exports symbol='xmlDictSize' type='function'/>
+ <exports symbol='xmlDictExists' type='function'/>
+ <exports symbol='xmlDictSetLimit' type='function'/>
+ <exports symbol='xmlDictOwns' type='function'/>
+ <exports symbol='xmlDictQLookup' type='function'/>
+ <exports symbol='xmlInitializeDict' type='function'/>
+ <exports symbol='xmlDictCreateSub' type='function'/>
+ <exports symbol='xmlDictFree' type='function'/>
+ <exports symbol='xmlDictLookup' type='function'/>
+ <exports symbol='xmlDictCreate' type='function'/>
+ </file>
+ <file name='encoding'>
+ <summary>interface for the encoding conversion functions</summary>
+ <description>interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, &quot;The Unicode Standard -- Worldwide Character Encoding -- Version 1.0&quot;, Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='ICU_PIVOT_BUF_SIZE' type='macro'/>
+ <exports symbol='XML_CHAR_ENCODING_UCS4LE' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_ERROR' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_8859_5' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_EBCDIC' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_ASCII' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_UCS4_2143' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_NONE' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_UTF16BE' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_2022_JP' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_SHIFT_JIS' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_UCS4BE' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_UTF16LE' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_UCS4_3412' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_8859_8' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_8859_9' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_8859_6' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_8859_7' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_8859_4' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_EUC_JP' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_8859_2' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_8859_3' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_8859_1' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_UTF8' type='enum'/>
+ <exports symbol='XML_CHAR_ENCODING_UCS2' type='enum'/>
+ <exports symbol='uconv_t' type='typedef'/>
+ <exports symbol='xmlCharEncoding' type='typedef'/>
+ <exports symbol='xmlCharEncodingHandler' type='typedef'/>
+ <exports symbol='xmlCharEncodingHandlerPtr' type='typedef'/>
+ <exports symbol='_xmlCharEncodingHandler' type='struct'/>
+ <exports symbol='_uconv_t' type='struct'/>
+ <exports symbol='xmlDelEncodingAlias' type='function'/>
+ <exports symbol='xmlGetEncodingAlias' type='function'/>
+ <exports symbol='xmlRegisterCharEncodingHandler' type='function'/>
+ <exports symbol='UTF8Toisolat1' type='function'/>
+ <exports symbol='xmlInitCharEncodingHandlers' type='function'/>
+ <exports symbol='xmlAddEncodingAlias' type='function'/>
+ <exports symbol='xmlCleanupEncodingAliases' type='function'/>
+ <exports symbol='xmlCharEncOutFunc' type='function'/>
+ <exports symbol='xmlParseCharEncoding' type='function'/>
+ <exports symbol='xmlCharEncodingInputFunc' type='function'/>
+ <exports symbol='xmlCleanupCharEncodingHandlers' type='function'/>
+ <exports symbol='xmlNewCharEncodingHandler' type='function'/>
+ <exports symbol='xmlCharEncodingOutputFunc' type='function'/>
+ <exports symbol='isolat1ToUTF8' type='function'/>
+ <exports symbol='xmlFindCharEncodingHandler' type='function'/>
+ <exports symbol='xmlCharEncInFunc' type='function'/>
+ <exports symbol='xmlGetCharEncodingHandler' type='function'/>
+ <exports symbol='xmlCharEncFirstLine' type='function'/>
+ <exports symbol='xmlDetectCharEncoding' type='function'/>
+ <exports symbol='xmlCharEncCloseFunc' type='function'/>
+ <exports symbol='xmlGetCharEncodingName' type='function'/>
+ </file>
+ <file name='entities'>
+ <summary>interface for the XML entities handling</summary>
+ <description>this module provides some of the entity API needed for the parser and applications. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_EXTERNAL_GENERAL_PARSED_ENTITY' type='enum'/>
+ <exports symbol='XML_EXTERNAL_GENERAL_UNPARSED_ENTITY' type='enum'/>
+ <exports symbol='XML_INTERNAL_PREDEFINED_ENTITY' type='enum'/>
+ <exports symbol='XML_EXTERNAL_PARAMETER_ENTITY' type='enum'/>
+ <exports symbol='XML_INTERNAL_PARAMETER_ENTITY' type='enum'/>
+ <exports symbol='XML_INTERNAL_GENERAL_ENTITY' type='enum'/>
+ <exports symbol='xmlEntityType' type='typedef'/>
+ <exports symbol='xmlEntitiesTable' type='typedef'/>
+ <exports symbol='xmlEntitiesTablePtr' type='typedef'/>
+ <exports symbol='_xmlEntity' type='struct'/>
+ <exports symbol='xmlAddDocEntity' type='function'/>
+ <exports symbol='xmlNewEntity' type='function'/>
+ <exports symbol='xmlEncodeEntitiesReentrant' type='function'/>
+ <exports symbol='xmlGetDocEntity' type='function'/>
+ <exports symbol='xmlGetDtdEntity' type='function'/>
+ <exports symbol='xmlAddDtdEntity' type='function'/>
+ <exports symbol='xmlCopyEntitiesTable' type='function'/>
+ <exports symbol='xmlFreeEntitiesTable' type='function'/>
+ <exports symbol='xmlGetParameterEntity' type='function'/>
+ <exports symbol='xmlDumpEntitiesTable' type='function'/>
+ <exports symbol='xmlDumpEntityDecl' type='function'/>
+ <exports symbol='xmlCleanupPredefinedEntities' type='function'/>
+ <exports symbol='xmlCreateEntitiesTable' type='function'/>
+ <exports symbol='xmlEncodeEntities' type='function'/>
+ <exports symbol='xmlEncodeSpecialChars' type='function'/>
+ <exports symbol='xmlGetPredefinedEntity' type='function'/>
+ <exports symbol='xmlInitializePredefinedEntities' type='function'/>
+ </file>
+ <file name='globals'>
+ <summary>interface for all global variables of the library</summary>
+ <description>all the global variables and thread handling for those variables is handled by this module. The bottom of this file is automatically generated by build_glob.py based on the description file global.data </description>
+ <author>Gary Pennington &lt;Gary.Pennington@uk.sun.com&gt;, Daniel Veillard </author>
+ <exports symbol='xmlGlobalStatePtr' type='typedef'/>
+ <exports symbol='xmlGlobalState' type='typedef'/>
+ <exports symbol='_xmlGlobalState' type='struct'/>
+ <exports symbol='xmlTreeIndentString' type='variable'/>
+ <exports symbol='xmlIndentTreeOutput' type='variable'/>
+ <exports symbol='xmlDefaultBufferSize' type='variable'/>
+ <exports symbol='xmlRegisterNodeDefaultValue' type='variable'/>
+ <exports symbol='xmlGetWarningsDefaultValue' type='variable'/>
+ <exports symbol='docbDefaultSAXHandler' type='variable'/>
+ <exports symbol='xmlGenericErrorContext' type='variable'/>
+ <exports symbol='xmlDeregisterNodeDefaultValue' type='variable'/>
+ <exports symbol='xmlGenericError' type='variable'/>
+ <exports symbol='xmlMalloc' type='variable'/>
+ <exports symbol='xmlParserVersion' type='variable'/>
+ <exports symbol='xmlStructuredError' type='variable'/>
+ <exports symbol='xmlStructuredErrorContext' type='variable'/>
+ <exports symbol='xmlDoValidityCheckingDefaultValue' type='variable'/>
+ <exports symbol='xmlOutputBufferCreateFilenameValue' type='variable'/>
+ <exports symbol='xmlPedanticParserDefaultValue' type='variable'/>
+ <exports symbol='oldXMLWDcompatibility' type='variable'/>
+ <exports symbol='xmlRealloc' type='variable'/>
+ <exports symbol='xmlMemStrdup' type='variable'/>
+ <exports symbol='htmlDefaultSAXHandler' type='variable'/>
+ <exports symbol='xmlSaveNoEmptyTags' type='variable'/>
+ <exports symbol='xmlParserInputBufferCreateFilenameValue' type='variable'/>
+ <exports symbol='xmlKeepBlanksDefaultValue' type='variable'/>
+ <exports symbol='xmlSubstituteEntitiesDefaultValue' type='variable'/>
+ <exports symbol='xmlMallocAtomic' type='variable'/>
+ <exports symbol='xmlBufferAllocScheme' type='variable'/>
+ <exports symbol='xmlParserDebugEntities' type='variable'/>
+ <exports symbol='xmlFree' type='variable'/>
+ <exports symbol='xmlLoadExtDtdDefaultValue' type='variable'/>
+ <exports symbol='xmlLastError' type='variable'/>
+ <exports symbol='xmlLineNumbersDefaultValue' type='variable'/>
+ <exports symbol='xmlDefaultSAXHandler' type='variable'/>
+ <exports symbol='xmlDefaultSAXLocator' type='variable'/>
+ <exports symbol='xmlThrDefSetStructuredErrorFunc' type='function'/>
+ <exports symbol='xmlInitializeGlobalState' type='function'/>
+ <exports symbol='xmlThrDefBufferAllocScheme' type='function'/>
+ <exports symbol='xmlThrDefPedanticParserDefaultValue' type='function'/>
+ <exports symbol='xmlRegisterNodeDefault' type='function'/>
+ <exports symbol='xmlParserInputBufferCreateFilenameFunc' type='function'/>
+ <exports symbol='xmlThrDefOutputBufferCreateFilenameDefault' type='function'/>
+ <exports symbol='xmlDeregisterNodeDefault' type='function'/>
+ <exports symbol='xmlThrDefDefaultBufferSize' type='function'/>
+ <exports symbol='xmlOutputBufferCreateFilenameDefault' type='function'/>
+ <exports symbol='xmlThrDefLoadExtDtdDefaultValue' type='function'/>
+ <exports symbol='xmlThrDefRegisterNodeDefault' type='function'/>
+ <exports symbol='xmlThrDefKeepBlanksDefaultValue' type='function'/>
+ <exports symbol='xmlDeregisterNodeFunc' type='function'/>
+ <exports symbol='xmlThrDefParserDebugEntities' type='function'/>
+ <exports symbol='xmlThrDefParserInputBufferCreateFilenameDefault' type='function'/>
+ <exports symbol='xmlThrDefSetGenericErrorFunc' type='function'/>
+ <exports symbol='xmlParserInputBufferCreateFilenameDefault' type='function'/>
+ <exports symbol='xmlThrDefDoValidityCheckingDefaultValue' type='function'/>
+ <exports symbol='xmlCleanupGlobals' type='function'/>
+ <exports symbol='xmlThrDefGetWarningsDefaultValue' type='function'/>
+ <exports symbol='xmlThrDefDeregisterNodeDefault' type='function'/>
+ <exports symbol='xmlThrDefSubstituteEntitiesDefaultValue' type='function'/>
+ <exports symbol='xmlRegisterNodeFunc' type='function'/>
+ <exports symbol='xmlThrDefSaveNoEmptyTags' type='function'/>
+ <exports symbol='xmlThrDefIndentTreeOutput' type='function'/>
+ <exports symbol='xmlOutputBufferCreateFilenameFunc' type='function'/>
+ <exports symbol='xmlInitGlobals' type='function'/>
+ <exports symbol='xmlThrDefLineNumbersDefaultValue' type='function'/>
+ <exports symbol='xmlThrDefTreeIndentString' type='function'/>
+ </file>
+ <file name='hash'>
+ <summary>Chained hash tables</summary>
+ <description>This module implements the hash table support used in various places in the library. </description>
+ <author>Bjorn Reese &lt;bjorn.reese@systematic.dk&gt; </author>
+ <exports symbol='XML_CAST_FPTR' type='macro'/>
+ <exports symbol='xmlHashTable' type='typedef'/>
+ <exports symbol='xmlHashTablePtr' type='typedef'/>
+ <exports symbol='xmlHashScanFull' type='function'/>
+ <exports symbol='xmlHashScan' type='function'/>
+ <exports symbol='xmlHashScannerFull' type='function'/>
+ <exports symbol='xmlHashCreateDict' type='function'/>
+ <exports symbol='xmlHashAddEntry' type='function'/>
+ <exports symbol='xmlHashUpdateEntry' type='function'/>
+ <exports symbol='xmlHashQLookup3' type='function'/>
+ <exports symbol='xmlHashQLookup2' type='function'/>
+ <exports symbol='xmlHashScan3' type='function'/>
+ <exports symbol='xmlHashScanner' type='function'/>
+ <exports symbol='xmlHashDeallocator' type='function'/>
+ <exports symbol='xmlHashCreate' type='function'/>
+ <exports symbol='xmlHashFree' type='function'/>
+ <exports symbol='xmlHashLookup' type='function'/>
+ <exports symbol='xmlHashQLookup' type='function'/>
+ <exports symbol='xmlHashUpdateEntry2' type='function'/>
+ <exports symbol='xmlHashRemoveEntry2' type='function'/>
+ <exports symbol='xmlHashRemoveEntry3' type='function'/>
+ <exports symbol='xmlHashCopy' type='function'/>
+ <exports symbol='xmlHashScanFull3' type='function'/>
+ <exports symbol='xmlHashUpdateEntry3' type='function'/>
+ <exports symbol='xmlHashDefaultDeallocator' type='function'/>
+ <exports symbol='xmlHashLookup3' type='function'/>
+ <exports symbol='xmlHashLookup2' type='function'/>
+ <exports symbol='xmlHashRemoveEntry' type='function'/>
+ <exports symbol='xmlHashCopier' type='function'/>
+ <exports symbol='xmlHashAddEntry2' type='function'/>
+ <exports symbol='xmlHashAddEntry3' type='function'/>
+ <exports symbol='xmlHashSize' type='function'/>
+ </file>
+ <file name='list'>
+ <summary>lists interfaces</summary>
+ <description>this module implement the list support used in various place in the library. </description>
+ <author>Gary Pennington &lt;Gary.Pennington@uk.sun.com&gt; </author>
+ <exports symbol='xmlLink' type='typedef'/>
+ <exports symbol='xmlLinkPtr' type='typedef'/>
+ <exports symbol='xmlList' type='typedef'/>
+ <exports symbol='xmlListPtr' type='typedef'/>
+ <exports symbol='xmlListInsert' type='function'/>
+ <exports symbol='xmlListEmpty' type='function'/>
+ <exports symbol='xmlListSort' type='function'/>
+ <exports symbol='xmlListDeallocator' type='function'/>
+ <exports symbol='xmlListMerge' type='function'/>
+ <exports symbol='xmlListCreate' type='function'/>
+ <exports symbol='xmlListDup' type='function'/>
+ <exports symbol='xmlListRemoveLast' type='function'/>
+ <exports symbol='xmlListWalk' type='function'/>
+ <exports symbol='xmlListRemoveAll' type='function'/>
+ <exports symbol='xmlListCopy' type='function'/>
+ <exports symbol='xmlListPopFront' type='function'/>
+ <exports symbol='xmlListSearch' type='function'/>
+ <exports symbol='xmlListWalker' type='function'/>
+ <exports symbol='xmlListRemoveFirst' type='function'/>
+ <exports symbol='xmlListReverseWalk' type='function'/>
+ <exports symbol='xmlLinkGetData' type='function'/>
+ <exports symbol='xmlListClear' type='function'/>
+ <exports symbol='xmlListAppend' type='function'/>
+ <exports symbol='xmlListReverse' type='function'/>
+ <exports symbol='xmlListDataCompare' type='function'/>
+ <exports symbol='xmlListSize' type='function'/>
+ <exports symbol='xmlListPushFront' type='function'/>
+ <exports symbol='xmlListEnd' type='function'/>
+ <exports symbol='xmlListPopBack' type='function'/>
+ <exports symbol='xmlListReverseSearch' type='function'/>
+ <exports symbol='xmlListPushBack' type='function'/>
+ <exports symbol='xmlListFront' type='function'/>
+ <exports symbol='xmlListDelete' type='function'/>
+ </file>
+ <file name='nanoftp'>
+ <summary>minimal FTP implementation</summary>
+ <description>minimal FTP implementation allowing to fetch resources like external subset. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='INVALID_SOCKET' type='macro'/>
+ <exports symbol='SOCKET' type='macro'/>
+ <exports symbol='xmlNanoFTPQuit' type='function'/>
+ <exports symbol='xmlNanoFTPClose' type='function'/>
+ <exports symbol='ftpListCallback' type='function'/>
+ <exports symbol='xmlNanoFTPCloseConnection' type='function'/>
+ <exports symbol='xmlNanoFTPProxy' type='function'/>
+ <exports symbol='xmlNanoFTPUpdateURL' type='function'/>
+ <exports symbol='xmlNanoFTPGetConnection' type='function'/>
+ <exports symbol='xmlNanoFTPDele' type='function'/>
+ <exports symbol='xmlNanoFTPNewCtxt' type='function'/>
+ <exports symbol='xmlNanoFTPCheckResponse' type='function'/>
+ <exports symbol='xmlNanoFTPScanProxy' type='function'/>
+ <exports symbol='ftpDataCallback' type='function'/>
+ <exports symbol='xmlNanoFTPGetResponse' type='function'/>
+ <exports symbol='xmlNanoFTPCwd' type='function'/>
+ <exports symbol='xmlNanoFTPInit' type='function'/>
+ <exports symbol='xmlNanoFTPConnectTo' type='function'/>
+ <exports symbol='xmlNanoFTPList' type='function'/>
+ <exports symbol='xmlNanoFTPOpen' type='function'/>
+ <exports symbol='xmlNanoFTPConnect' type='function'/>
+ <exports symbol='xmlNanoFTPGetSocket' type='function'/>
+ <exports symbol='xmlNanoFTPGet' type='function'/>
+ <exports symbol='xmlNanoFTPRead' type='function'/>
+ <exports symbol='xmlNanoFTPFreeCtxt' type='function'/>
+ <exports symbol='xmlNanoFTPCleanup' type='function'/>
+ </file>
+ <file name='nanohttp'>
+ <summary>minimal HTTP implementation</summary>
+ <description>minimal HTTP implementation allowing to fetch resources like external subset. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlNanoHTTPRead' type='function'/>
+ <exports symbol='xmlNanoHTTPSave' type='function'/>
+ <exports symbol='xmlNanoHTTPRedir' type='function'/>
+ <exports symbol='xmlNanoHTTPAuthHeader' type='function'/>
+ <exports symbol='xmlNanoHTTPFetch' type='function'/>
+ <exports symbol='xmlNanoHTTPContentLength' type='function'/>
+ <exports symbol='xmlNanoHTTPMimeType' type='function'/>
+ <exports symbol='xmlNanoHTTPClose' type='function'/>
+ <exports symbol='xmlNanoHTTPCleanup' type='function'/>
+ <exports symbol='xmlNanoHTTPMethod' type='function'/>
+ <exports symbol='xmlNanoHTTPInit' type='function'/>
+ <exports symbol='xmlNanoHTTPOpen' type='function'/>
+ <exports symbol='xmlNanoHTTPOpenRedir' type='function'/>
+ <exports symbol='xmlNanoHTTPMethodRedir' type='function'/>
+ <exports symbol='xmlNanoHTTPScanProxy' type='function'/>
+ <exports symbol='xmlNanoHTTPEncoding' type='function'/>
+ <exports symbol='xmlNanoHTTPReturnCode' type='function'/>
+ </file>
+ <file name='parser'>
+ <summary>the core parser module</summary>
+ <description>Interfaces, constants and types related to the XML parser </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_COMPLETE_ATTRS' type='macro'/>
+ <exports symbol='XML_SKIP_IDS' type='macro'/>
+ <exports symbol='XML_SAX2_MAGIC' type='macro'/>
+ <exports symbol='XML_DETECT_IDS' type='macro'/>
+ <exports symbol='XML_DEFAULT_VERSION' type='macro'/>
+ <exports symbol='XML_WITH_NONE' type='enum'/>
+ <exports symbol='XML_WITH_SCHEMATRON' type='enum'/>
+ <exports symbol='XML_PARSER_ENTITY_DECL' type='enum'/>
+ <exports symbol='XML_PARSER_CONTENT' type='enum'/>
+ <exports symbol='XML_PARSE_NOBLANKS' type='enum'/>
+ <exports symbol='XML_WITH_PATTERN' type='enum'/>
+ <exports symbol='XML_PARSE_NODICT' type='enum'/>
+ <exports symbol='XML_PARSER_SYSTEM_LITERAL' type='enum'/>
+ <exports symbol='XML_WITH_REGEXP' type='enum'/>
+ <exports symbol='XML_PARSER_PI' type='enum'/>
+ <exports symbol='XML_PARSE_UNKNOWN' type='enum'/>
+ <exports symbol='XML_WITH_XPATH' type='enum'/>
+ <exports symbol='XML_WITH_HTML' type='enum'/>
+ <exports symbol='XML_PARSE_OLDSAX' type='enum'/>
+ <exports symbol='XML_WITH_LZMA' type='enum'/>
+ <exports symbol='XML_WITH_ICU' type='enum'/>
+ <exports symbol='XML_WITH_C14N' type='enum'/>
+ <exports symbol='XML_PARSE_PUSH_DOM' type='enum'/>
+ <exports symbol='XML_PARSER_PROLOG' type='enum'/>
+ <exports symbol='XML_PARSE_NONET' type='enum'/>
+ <exports symbol='XML_WITH_HTTP' type='enum'/>
+ <exports symbol='XML_PARSER_EPILOG' type='enum'/>
+ <exports symbol='XML_PARSER_END_TAG' type='enum'/>
+ <exports symbol='XML_WITH_DEBUG' type='enum'/>
+ <exports symbol='XML_WITH_READER' type='enum'/>
+ <exports symbol='XML_PARSE_DTDVALID' type='enum'/>
+ <exports symbol='XML_PARSE_DOM' type='enum'/>
+ <exports symbol='XML_PARSER_ATTRIBUTE_VALUE' type='enum'/>
+ <exports symbol='XML_PARSE_PUSH_SAX' type='enum'/>
+ <exports symbol='XML_WITH_TREE' type='enum'/>
+ <exports symbol='XML_PARSE_RECOVER' type='enum'/>
+ <exports symbol='XML_WITH_SCHEMAS' type='enum'/>
+ <exports symbol='XML_PARSE_PEDANTIC' type='enum'/>
+ <exports symbol='XML_PARSER_EOF' type='enum'/>
+ <exports symbol='XML_PARSER_CDATA_SECTION' type='enum'/>
+ <exports symbol='XML_WITH_LEGACY' type='enum'/>
+ <exports symbol='XML_WITH_OUTPUT' type='enum'/>
+ <exports symbol='XML_PARSE_XINCLUDE' type='enum'/>
+ <exports symbol='XML_PARSE_NOCDATA' type='enum'/>
+ <exports symbol='XML_PARSE_NOBASEFIX' type='enum'/>
+ <exports symbol='XML_PARSE_BIG_LINES' type='enum'/>
+ <exports symbol='XML_WITH_XINCLUDE' type='enum'/>
+ <exports symbol='XML_WITH_PUSH' type='enum'/>
+ <exports symbol='XML_PARSE_READER' type='enum'/>
+ <exports symbol='XML_WITH_THREAD' type='enum'/>
+ <exports symbol='XML_PARSE_SAX' type='enum'/>
+ <exports symbol='XML_PARSE_NOENT' type='enum'/>
+ <exports symbol='XML_PARSER_ENTITY_VALUE' type='enum'/>
+ <exports symbol='XML_PARSE_DTDLOAD' type='enum'/>
+ <exports symbol='XML_PARSE_DTDATTR' type='enum'/>
+ <exports symbol='XML_PARSE_NOWARNING' type='enum'/>
+ <exports symbol='XML_PARSE_OLD10' type='enum'/>
+ <exports symbol='XML_PARSE_NOERROR' type='enum'/>
+ <exports symbol='XML_WITH_ISO8859X' type='enum'/>
+ <exports symbol='XML_WITH_EXPR' type='enum'/>
+ <exports symbol='XML_PARSE_NSCLEAN' type='enum'/>
+ <exports symbol='XML_WITH_UNICODE' type='enum'/>
+ <exports symbol='XML_WITH_CATALOG' type='enum'/>
+ <exports symbol='XML_WITH_MODULES' type='enum'/>
+ <exports symbol='XML_WITH_XPTR' type='enum'/>
+ <exports symbol='XML_PARSE_IGNORE_ENC' type='enum'/>
+ <exports symbol='XML_PARSE_COMPACT' type='enum'/>
+ <exports symbol='XML_PARSE_SAX1' type='enum'/>
+ <exports symbol='XML_WITH_ZLIB' type='enum'/>
+ <exports symbol='XML_PARSE_NOXINCNODE' type='enum'/>
+ <exports symbol='XML_PARSER_DTD' type='enum'/>
+ <exports symbol='XML_PARSER_MISC' type='enum'/>
+ <exports symbol='XML_PARSER_START' type='enum'/>
+ <exports symbol='XML_WITH_DEBUG_MEM' type='enum'/>
+ <exports symbol='XML_PARSE_HUGE' type='enum'/>
+ <exports symbol='XML_WITH_FTP' type='enum'/>
+ <exports symbol='XML_PARSER_START_TAG' type='enum'/>
+ <exports symbol='XML_PARSER_IGNORE' type='enum'/>
+ <exports symbol='XML_PARSER_COMMENT' type='enum'/>
+ <exports symbol='XML_PARSER_PUBLIC_LITERAL' type='enum'/>
+ <exports symbol='XML_WITH_ICONV' type='enum'/>
+ <exports symbol='XML_WITH_WRITER' type='enum'/>
+ <exports symbol='XML_WITH_AUTOMATA' type='enum'/>
+ <exports symbol='XML_WITH_DEBUG_RUN' type='enum'/>
+ <exports symbol='XML_WITH_SAX1' type='enum'/>
+ <exports symbol='XML_WITH_VALID' type='enum'/>
+ <exports symbol='xmlParserNodeInfoSeqPtr' type='typedef'/>
+ <exports symbol='xmlSAXHandlerV1' type='typedef'/>
+ <exports symbol='xmlParserInputState' type='typedef'/>
+ <exports symbol='xmlParserNodeInfoPtr' type='typedef'/>
+ <exports symbol='xmlParserNodeInfoSeq' type='typedef'/>
+ <exports symbol='xmlFeature' type='typedef'/>
+ <exports symbol='xmlParserMode' type='typedef'/>
+ <exports symbol='xmlParserOption' type='typedef'/>
+ <exports symbol='xmlSAXHandlerV1Ptr' type='typedef'/>
+ <exports symbol='xmlParserNodeInfo' type='typedef'/>
+ <exports symbol='_xmlParserNodeInfo' type='struct'/>
+ <exports symbol='_xmlParserCtxt' type='struct'/>
+ <exports symbol='_xmlSAXHandlerV1' type='struct'/>
+ <exports symbol='_xmlParserInput' type='struct'/>
+ <exports symbol='_xmlSAXHandler' type='struct'/>
+ <exports symbol='_xmlParserNodeInfoSeq' type='struct'/>
+ <exports symbol='_xmlSAXLocator' type='struct'/>
+ <exports symbol='xmlSetupParserForBuffer' type='function'/>
+ <exports symbol='xmlCtxtReadFile' type='function'/>
+ <exports symbol='xmlParseCtxtExternalEntity' type='function'/>
+ <exports symbol='attributeDeclSAXFunc' type='function'/>
+ <exports symbol='getEntitySAXFunc' type='function'/>
+ <exports symbol='startElementSAXFunc' type='function'/>
+ <exports symbol='charactersSAXFunc' type='function'/>
+ <exports symbol='xmlClearNodeInfoSeq' type='function'/>
+ <exports symbol='xmlParseChunk' type='function'/>
+ <exports symbol='xmlParseEntity' type='function'/>
+ <exports symbol='xmlRecoverFile' type='function'/>
+ <exports symbol='xmlCtxtReadDoc' type='function'/>
+ <exports symbol='startElementNsSAX2Func' type='function'/>
+ <exports symbol='xmlCreateIOParserCtxt' type='function'/>
+ <exports symbol='xmlParseInNodeContext' type='function'/>
+ <exports symbol='referenceSAXFunc' type='function'/>
+ <exports symbol='hasExternalSubsetSAXFunc' type='function'/>
+ <exports symbol='xmlSAXParseDoc' type='function'/>
+ <exports symbol='xmlReadMemory' type='function'/>
+ <exports symbol='xmlParseMemory' type='function'/>
+ <exports symbol='xmlNewIOInputStream' type='function'/>
+ <exports symbol='processingInstructionSAXFunc' type='function'/>
+ <exports symbol='xmlParseBalancedChunkMemoryRecover' type='function'/>
+ <exports symbol='xmlInitParser' type='function'/>
+ <exports symbol='xmlCreateDocParserCtxt' type='function'/>
+ <exports symbol='errorSAXFunc' type='function'/>
+ <exports symbol='xmlSAXParseMemory' type='function'/>
+ <exports symbol='xmlRecoverMemory' type='function'/>
+ <exports symbol='xmlExternalEntityLoader' type='function'/>
+ <exports symbol='hasInternalSubsetSAXFunc' type='function'/>
+ <exports symbol='cdataBlockSAXFunc' type='function'/>
+ <exports symbol='xmlSAXParseFile' type='function'/>
+ <exports symbol='xmlParserInputDeallocate' type='function'/>
+ <exports symbol='xmlCtxtReadIO' type='function'/>
+ <exports symbol='xmlSAXParseMemoryWithData' type='function'/>
+ <exports symbol='xmlGetFeature' type='function'/>
+ <exports symbol='xmlIOParseDTD' type='function'/>
+ <exports symbol='xmlFreeParserCtxt' type='function'/>
+ <exports symbol='xmlParseDTD' type='function'/>
+ <exports symbol='xmlRecoverDoc' type='function'/>
+ <exports symbol='commentSAXFunc' type='function'/>
+ <exports symbol='xmlInitParserCtxt' type='function'/>
+ <exports symbol='attributeSAXFunc' type='function'/>
+ <exports symbol='xmlParserInputGrow' type='function'/>
+ <exports symbol='xmlCtxtReadMemory' type='function'/>
+ <exports symbol='externalSubsetSAXFunc' type='function'/>
+ <exports symbol='resolveEntitySAXFunc' type='function'/>
+ <exports symbol='xmlPedanticParserDefault' type='function'/>
+ <exports symbol='xmlSAXParseEntity' type='function'/>
+ <exports symbol='xmlParseDoc' type='function'/>
+ <exports symbol='xmlSAXParseFileWithData' type='function'/>
+ <exports symbol='xmlLineNumbersDefault' type='function'/>
+ <exports symbol='xmlGetExternalEntityLoader' type='function'/>
+ <exports symbol='elementDeclSAXFunc' type='function'/>
+ <exports symbol='xmlCtxtUseOptions' type='function'/>
+ <exports symbol='xmlCreatePushParserCtxt' type='function'/>
+ <exports symbol='xmlParserAddNodeInfo' type='function'/>
+ <exports symbol='xmlCtxtReadFd' type='function'/>
+ <exports symbol='internalSubsetSAXFunc' type='function'/>
+ <exports symbol='xmlNewParserCtxt' type='function'/>
+ <exports symbol='endDocumentSAXFunc' type='function'/>
+ <exports symbol='xmlParseFile' type='function'/>
+ <exports symbol='xmlParseDocument' type='function'/>
+ <exports symbol='setDocumentLocatorSAXFunc' type='function'/>
+ <exports symbol='getParameterEntitySAXFunc' type='function'/>
+ <exports symbol='ignorableWhitespaceSAXFunc' type='function'/>
+ <exports symbol='xmlInitNodeInfoSeq' type='function'/>
+ <exports symbol='xmlSubstituteEntitiesDefault' type='function'/>
+ <exports symbol='endElementSAXFunc' type='function'/>
+ <exports symbol='xmlParserFindNodeInfoIndex' type='function'/>
+ <exports symbol='xmlByteConsumed' type='function'/>
+ <exports symbol='xmlCtxtReset' type='function'/>
+ <exports symbol='xmlSetFeature' type='function'/>
+ <exports symbol='xmlKeepBlanksDefault' type='function'/>
+ <exports symbol='xmlParserInputRead' type='function'/>
+ <exports symbol='xmlReadFile' type='function'/>
+ <exports symbol='xmlGetFeaturesList' type='function'/>
+ <exports symbol='xmlHasFeature' type='function'/>
+ <exports symbol='unparsedEntityDeclSAXFunc' type='function'/>
+ <exports symbol='xmlSAXUserParseFile' type='function'/>
+ <exports symbol='fatalErrorSAXFunc' type='function'/>
+ <exports symbol='xmlSAXParseDTD' type='function'/>
+ <exports symbol='xmlParserFindNodeInfo' type='function'/>
+ <exports symbol='entityDeclSAXFunc' type='function'/>
+ <exports symbol='xmlLoadExternalEntity' type='function'/>
+ <exports symbol='xmlStopParser' type='function'/>
+ <exports symbol='xmlReadFd' type='function'/>
+ <exports symbol='xmlParseExtParsedEnt' type='function'/>
+ <exports symbol='xmlReadIO' type='function'/>
+ <exports symbol='xmlReadDoc' type='function'/>
+ <exports symbol='xmlSAXUserParseMemory' type='function'/>
+ <exports symbol='xmlParseBalancedChunkMemory' type='function'/>
+ <exports symbol='endElementNsSAX2Func' type='function'/>
+ <exports symbol='xmlCleanupParser' type='function'/>
+ <exports symbol='xmlCtxtResetPush' type='function'/>
+ <exports symbol='isStandaloneSAXFunc' type='function'/>
+ <exports symbol='startDocumentSAXFunc' type='function'/>
+ <exports symbol='xmlClearParserCtxt' type='function'/>
+ <exports symbol='xmlParseExternalEntity' type='function'/>
+ <exports symbol='notationDeclSAXFunc' type='function'/>
+ <exports symbol='warningSAXFunc' type='function'/>
+ <exports symbol='xmlSetExternalEntityLoader' type='function'/>
+ </file>
+ <file name='parserInternals'>
+ <summary>internals routines and limits exported by the parser.</summary>
+ <description>this module exports a number of internal parsing routines they are not really all intended for applications but can prove useful doing low level processing. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_SUBSTITUTE_REF' type='macro'/>
+ <exports symbol='IS_BLANK' type='macro'/>
+ <exports symbol='IS_BYTE_CHAR' type='macro'/>
+ <exports symbol='IS_PUBIDCHAR' type='macro'/>
+ <exports symbol='IS_DIGIT_CH' type='macro'/>
+ <exports symbol='IS_EXTENDER' type='macro'/>
+ <exports symbol='IS_ASCII_DIGIT' type='macro'/>
+ <exports symbol='IS_COMBINING_CH' type='macro'/>
+ <exports symbol='IS_CHAR' type='macro'/>
+ <exports symbol='IS_LETTER' type='macro'/>
+ <exports symbol='IS_IDEOGRAPHIC' type='macro'/>
+ <exports symbol='MOVETO_STARTTAG' type='macro'/>
+ <exports symbol='XML_MAX_NAME_LENGTH' type='macro'/>
+ <exports symbol='IS_ASCII_LETTER' type='macro'/>
+ <exports symbol='IS_DIGIT' type='macro'/>
+ <exports symbol='XML_MAX_DICTIONARY_LIMIT' type='macro'/>
+ <exports symbol='XML_SUBSTITUTE_PEREF' type='macro'/>
+ <exports symbol='MOVETO_ENDTAG' type='macro'/>
+ <exports symbol='SKIP_EOL' type='macro'/>
+ <exports symbol='IS_EXTENDER_CH' type='macro'/>
+ <exports symbol='IS_BLANK_CH' type='macro'/>
+ <exports symbol='IS_LETTER_CH' type='macro'/>
+ <exports symbol='XML_MAX_LOOKUP_LIMIT' type='macro'/>
+ <exports symbol='XML_MAX_TEXT_LENGTH' type='macro'/>
+ <exports symbol='XML_SUBSTITUTE_NONE' type='macro'/>
+ <exports symbol='IS_COMBINING' type='macro'/>
+ <exports symbol='XML_MAX_NAMELEN' type='macro'/>
+ <exports symbol='IS_BASECHAR' type='macro'/>
+ <exports symbol='INPUT_CHUNK' type='macro'/>
+ <exports symbol='IS_PUBIDCHAR_CH' type='macro'/>
+ <exports symbol='IS_CHAR_CH' type='macro'/>
+ <exports symbol='XML_SUBSTITUTE_BOTH' type='macro'/>
+ <exports symbol='xmlStringTextNoenc' type='variable'/>
+ <exports symbol='xmlStringComment' type='variable'/>
+ <exports symbol='xmlStringText' type='variable'/>
+ <exports symbol='xmlParserMaxDepth' type='variable'/>
+ <exports symbol='nodePop' type='function'/>
+ <exports symbol='xmlParseNotationDecl' type='function'/>
+ <exports symbol='xmlParseExternalSubset' type='function'/>
+ <exports symbol='xmlParseMisc' type='function'/>
+ <exports symbol='xmlSwitchInputEncoding' type='function'/>
+ <exports symbol='xmlNewStringInputStream' type='function'/>
+ <exports symbol='xmlParseExternalID' type='function'/>
+ <exports symbol='xmlScanName' type='function'/>
+ <exports symbol='xmlParseElementDecl' type='function'/>
+ <exports symbol='xmlParseMarkupDecl' type='function'/>
+ <exports symbol='htmlCreateFileParserCtxt' type='function'/>
+ <exports symbol='inputPush' type='function'/>
+ <exports symbol='xmlStringLenDecodeEntities' type='function'/>
+ <exports symbol='namePop' type='function'/>
+ <exports symbol='xmlParseContent' type='function'/>
+ <exports symbol='xmlNewInputStream' type='function'/>
+ <exports symbol='xmlNamespaceParseQName' type='function'/>
+ <exports symbol='xmlNewInputFromFile' type='function'/>
+ <exports symbol='xmlParserHandlePEReference' type='function'/>
+ <exports symbol='xmlStringDecodeEntities' type='function'/>
+ <exports symbol='xmlCreateFileParserCtxt' type='function'/>
+ <exports symbol='xmlParseCharRef' type='function'/>
+ <exports symbol='xmlParseElement' type='function'/>
+ <exports symbol='xmlParseTextDecl' type='function'/>
+ <exports symbol='xmlNewEntityInputStream' type='function'/>
+ <exports symbol='xmlCopyCharMultiByte' type='function'/>
+ <exports symbol='xmlParseElementChildrenContentDecl' type='function'/>
+ <exports symbol='xmlParseCharData' type='function'/>
+ <exports symbol='xmlParseVersionInfo' type='function'/>
+ <exports symbol='xmlParseSDDecl' type='function'/>
+ <exports symbol='xmlParseEnumeratedType' type='function'/>
+ <exports symbol='xmlHandleEntity' type='function'/>
+ <exports symbol='xmlCurrentChar' type='function'/>
+ <exports symbol='xmlSkipBlankChars' type='function'/>
+ <exports symbol='xmlParseNotationType' type='function'/>
+ <exports symbol='xmlParserInputShrink' type='function'/>
+ <exports symbol='xmlSetEntityReferenceFunc' type='function'/>
+ <exports symbol='xmlFreeInputStream' type='function'/>
+ <exports symbol='xmlParsePEReference' type='function'/>
+ <exports symbol='xmlCreateURLParserCtxt' type='function'/>
+ <exports symbol='xmlIsLetter' type='function'/>
+ <exports symbol='xmlCheckLanguageID' type='function'/>
+ <exports symbol='xmlNextChar' type='function'/>
+ <exports symbol='xmlParseEnumerationType' type='function'/>
+ <exports symbol='xmlParseAttributeType' type='function'/>
+ <exports symbol='xmlParseDefaultDecl' type='function'/>
+ <exports symbol='xmlParseSystemLiteral' type='function'/>
+ <exports symbol='xmlParseAttValue' type='function'/>
+ <exports symbol='xmlCreateMemoryParserCtxt' type='function'/>
+ <exports symbol='xmlParseAttributeListDecl' type='function'/>
+ <exports symbol='xmlParseName' type='function'/>
+ <exports symbol='xmlParseEncName' type='function'/>
+ <exports symbol='nodePush' type='function'/>
+ <exports symbol='xmlSwitchEncoding' type='function'/>
+ <exports symbol='xmlSwitchToEncoding' type='function'/>
+ <exports symbol='xmlParseEntityRef' type='function'/>
+ <exports symbol='xmlParseAttribute' type='function'/>
+ <exports symbol='xmlParseEndTag' type='function'/>
+ <exports symbol='xmlParseEncodingDecl' type='function'/>
+ <exports symbol='htmlInitAutoClose' type='function'/>
+ <exports symbol='xmlCreateEntityParserCtxt' type='function'/>
+ <exports symbol='xmlSplitQName' type='function'/>
+ <exports symbol='xmlParserHandleReference' type='function'/>
+ <exports symbol='xmlParsePITarget' type='function'/>
+ <exports symbol='xmlParseElementContentDecl' type='function'/>
+ <exports symbol='inputPop' type='function'/>
+ <exports symbol='xmlPopInput' type='function'/>
+ <exports symbol='xmlParsePubidLiteral' type='function'/>
+ <exports symbol='xmlPushInput' type='function'/>
+ <exports symbol='xmlParseEntityValue' type='function'/>
+ <exports symbol='xmlDecodeEntities' type='function'/>
+ <exports symbol='xmlParseVersionNum' type='function'/>
+ <exports symbol='xmlParseXMLDecl' type='function'/>
+ <exports symbol='xmlEntityReferenceFunc' type='function'/>
+ <exports symbol='xmlParseElementMixedContentDecl' type='function'/>
+ <exports symbol='xmlParseQuotedString' type='function'/>
+ <exports symbol='xmlNamespaceParseNSDef' type='function'/>
+ <exports symbol='xmlParseCDSect' type='function'/>
+ <exports symbol='xmlStringCurrentChar' type='function'/>
+ <exports symbol='xmlParseComment' type='function'/>
+ <exports symbol='xmlErrMemory' type='function'/>
+ <exports symbol='xmlNamespaceParseNCName' type='function'/>
+ <exports symbol='xmlParseNmtoken' type='function'/>
+ <exports symbol='xmlParseReference' type='function'/>
+ <exports symbol='namePush' type='function'/>
+ <exports symbol='xmlParseNamespace' type='function'/>
+ <exports symbol='xmlCopyChar' type='function'/>
+ <exports symbol='xmlParsePI' type='function'/>
+ <exports symbol='xmlParseDocTypeDecl' type='function'/>
+ <exports symbol='xmlParseStartTag' type='function'/>
+ <exports symbol='xmlParseEntityDecl' type='function'/>
+ </file>
+ <file name='pattern'>
+ <summary>pattern expression handling</summary>
+ <description>allows to compile and test pattern expressions for nodes either in a tree or based on a parser state. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_PATTERN_DEFAULT' type='enum'/>
+ <exports symbol='XML_PATTERN_XSFIELD' type='enum'/>
+ <exports symbol='XML_PATTERN_XSSEL' type='enum'/>
+ <exports symbol='XML_PATTERN_XPATH' type='enum'/>
+ <exports symbol='xmlStreamCtxtPtr' type='typedef'/>
+ <exports symbol='xmlPatternFlags' type='typedef'/>
+ <exports symbol='xmlStreamCtxt' type='typedef'/>
+ <exports symbol='xmlPattern' type='typedef'/>
+ <exports symbol='xmlPatternPtr' type='typedef'/>
+ <exports symbol='xmlPatternMinDepth' type='function'/>
+ <exports symbol='xmlPatternGetStreamCtxt' type='function'/>
+ <exports symbol='xmlPatternFromRoot' type='function'/>
+ <exports symbol='xmlFreePatternList' type='function'/>
+ <exports symbol='xmlPatternStreamable' type='function'/>
+ <exports symbol='xmlStreamPushAttr' type='function'/>
+ <exports symbol='xmlPatternMatch' type='function'/>
+ <exports symbol='xmlStreamWantsAnyNode' type='function'/>
+ <exports symbol='xmlStreamPop' type='function'/>
+ <exports symbol='xmlFreePattern' type='function'/>
+ <exports symbol='xmlStreamPush' type='function'/>
+ <exports symbol='xmlPatternMaxDepth' type='function'/>
+ <exports symbol='xmlPatterncompile' type='function'/>
+ <exports symbol='xmlStreamPushNode' type='function'/>
+ <exports symbol='xmlFreeStreamCtxt' type='function'/>
+ </file>
+ <file name='relaxng'>
+ <summary>implementation of the Relax-NG validation</summary>
+ <description>implementation of the Relax-NG validation </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_RELAXNG_ERR_DUPID' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_VALELEM' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ATTRVALID' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_LISTELEM' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_LISTEXTRA' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ATTRNONS' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_EXTRADATA' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ELEMNONS' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ELEMEXTRANS' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_DATATYPE' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_TYPECMP' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_VALUE' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_NOGRAMMAR' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_INTERSEQ' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_LACKDATA' type='enum'/>
+ <exports symbol='XML_RELAXNGP_FREE_DOC' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ATTRNAME' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ELEMNOTEMPTY' type='enum'/>
+ <exports symbol='XML_RELAXNG_OK' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_INTERNODATA' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ATTRWRONGNS' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_EXTRACONTENT' type='enum'/>
+ <exports symbol='XML_RELAXNGP_NONE' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ELEMWRONG' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_LISTEMPTY' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ATTREXTRANS' type='enum'/>
+ <exports symbol='XML_RELAXNGP_CRNG' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_TEXTWRONG' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_INVALIDATTR' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ELEMWRONGNS' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_CONTENTVALID' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_TYPEVAL' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_LIST' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_TYPE' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_NOELEM' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_MEMORY' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_ELEMNAME' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_DATAELEM' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_NODEFINE' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_NOSTATE' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_INTEREXTRA' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_INTERNAL' type='enum'/>
+ <exports symbol='XML_RELAXNG_ERR_NOTELEM' type='enum'/>
+ <exports symbol='xmlRelaxNG' type='typedef'/>
+ <exports symbol='xmlRelaxNGPtr' type='typedef'/>
+ <exports symbol='xmlRelaxNGValidErr' type='typedef'/>
+ <exports symbol='xmlRelaxNGParserCtxt' type='typedef'/>
+ <exports symbol='xmlRelaxNGParserCtxtPtr' type='typedef'/>
+ <exports symbol='xmlRelaxNGParserFlag' type='typedef'/>
+ <exports symbol='xmlRelaxNGValidCtxt' type='typedef'/>
+ <exports symbol='xmlRelaxNGValidCtxtPtr' type='typedef'/>
+ <exports symbol='xmlRelaxNGFreeValidCtxt' type='function'/>
+ <exports symbol='xmlRelaxNGNewDocParserCtxt' type='function'/>
+ <exports symbol='xmlRelaxNGSetValidErrors' type='function'/>
+ <exports symbol='xmlRelaxNGNewParserCtxt' type='function'/>
+ <exports symbol='xmlRelaxNGGetParserErrors' type='function'/>
+ <exports symbol='xmlRelaxNGValidatePopElement' type='function'/>
+ <exports symbol='xmlRelaxNGNewValidCtxt' type='function'/>
+ <exports symbol='xmlRelaxNGNewMemParserCtxt' type='function'/>
+ <exports symbol='xmlRelaxNGDump' type='function'/>
+ <exports symbol='xmlRelaxNGSetParserErrors' type='function'/>
+ <exports symbol='xmlRelaxNGParse' type='function'/>
+ <exports symbol='xmlRelaxNGSetParserStructuredErrors' type='function'/>
+ <exports symbol='xmlRelaxNGValidateFullElement' type='function'/>
+ <exports symbol='xmlRelaxNGValidityErrorFunc' type='function'/>
+ <exports symbol='xmlRelaxNGValidatePushElement' type='function'/>
+ <exports symbol='xmlRelaxNGFree' type='function'/>
+ <exports symbol='xmlRelaxNGValidateDoc' type='function'/>
+ <exports symbol='xmlRelaxNGSetValidStructuredErrors' type='function'/>
+ <exports symbol='xmlRelaxNGFreeParserCtxt' type='function'/>
+ <exports symbol='xmlRelaxNGGetValidErrors' type='function'/>
+ <exports symbol='xmlRelaxNGInitTypes' type='function'/>
+ <exports symbol='xmlRelaxNGDumpTree' type='function'/>
+ <exports symbol='xmlRelaxNGCleanupTypes' type='function'/>
+ <exports symbol='xmlRelaxNGValidatePushCData' type='function'/>
+ <exports symbol='xmlRelaxParserSetFlag' type='function'/>
+ <exports symbol='xmlRelaxNGValidityWarningFunc' type='function'/>
+ </file>
+ <file name='schemasInternals'>
+ <summary>internal interfaces for XML Schemas</summary>
+ <description>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not guaranteed to be API or ABI stable ! </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_EXTENSION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FIXUP_1' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_CIRCULAR' type='macro'/>
+ <exports symbol='XML_SCHEMAS_QUALIF_ATTR' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTR_USE_REQUIRED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FACET_COLLAPSE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_VARIETY_UNION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ANY_STRICT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_INTERNAL_RESOLVED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_QUALIF_ELEM' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_VARIETY_LIST' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_INTERNAL_CHECKED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_INCLUDING_CONVERT_NS' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTR_INTERNAL_RESOLVED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTR_USE_PROHIBITED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_NILLABLE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTRGROUP_REDEFINED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_BLOCK_DEFAULT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FINAL_EXTENSION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_REDEFINED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_FIXED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_VARIETY_ATOMIC' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FINAL_LIST' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTR_USE_OPTIONAL' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTR_NSDEFAULT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_WHITESPACE_REPLACE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_BLOCK_RESTRICTION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ANYATTR_STRICT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FACET_UNKNOWN' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTRGROUP_MARKED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FACET_PRESERVE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_BLOCK_EXTENSION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTR_GLOBAL' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ANYATTR_SKIP' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ANYATTR_LAX' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_GLOBAL' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_ABSTRACT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_MIXED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTR_FIXED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_INTERNAL_RESOLVED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ANY_SKIP' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_LIST' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_VARIETY_ABSENT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_FINAL_RESTRICTION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_WILDCARD_COMPLETE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_NSDEFAULT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_GLOBAL' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_TOPLEVEL' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ANY_LAX' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FINAL_RESTRICTION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_HAS_FACETS' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_FINAL_EXTENSION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_NORMVALUENEEDED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_FINAL_ABSENT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_BLOCK_EXTENSION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_INTERNAL_INVALID' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTRGROUP_HAS_REFS' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_ABSTRACT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FINAL_UNION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FINAL_DEFAULT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FACETSNEEDVALUE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_UNION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_BLOCK_RESTRICTION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FACET_REPLACE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_DEFAULT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_MARKED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_BLOCK_ABSENT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTRGROUP_GLOBAL' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_REF' type='macro'/>
+ <exports symbol='XML_SCHEMA_EXTRA_QNAMEREF' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_EXTENSION' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NMTOKEN' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ID' type='enum'/>
+ <exports symbol='XML_SCHEMAS_TIME' type='enum'/>
+ <exports symbol='XML_SCHEMAS_UBYTE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_DATETIME' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NNINTEGER' type='enum'/>
+ <exports symbol='XML_SCHEMAS_HEXBINARY' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_UNION' type='enum'/>
+ <exports symbol='XML_SCHEMAS_UNKNOWN' type='enum'/>
+ <exports symbol='XML_SCHEMAS_UINT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NPINTEGER' type='enum'/>
+ <exports symbol='XML_SCHEMAS_GMONTHDAY' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_MAXEXCLUSIVE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ULONG' type='enum'/>
+ <exports symbol='XML_SCHEMAS_PINTEGER' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_CHOICE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_DECIMAL' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_UR' type='enum'/>
+ <exports symbol='XML_SCHEMAS_DOUBLE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NINTEGER' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NORMSTRING' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_PARTICLE' type='enum'/>
+ <exports symbol='XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_SIMPLE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NCNAME' type='enum'/>
+ <exports symbol='XML_SCHEMAS_LONG' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ANY_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_BOOLEAN' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ENTITY' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_GROUP' type='enum'/>
+ <exports symbol='XML_SCHEMAS_GYEARMONTH' type='enum'/>
+ <exports symbol='XML_SCHEMAS_BASE64BINARY' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_FRACTIONDIGITS' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_WHITESPACE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_IDREF' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_TOTALDIGITS' type='enum'/>
+ <exports symbol='XML_SCHEMAS_QNAME' type='enum'/>
+ <exports symbol='XML_SCHEMAS_TOKEN' type='enum'/>
+ <exports symbol='XML_SCHEMA_CONTENT_BASIC' type='enum'/>
+ <exports symbol='XML_SCHEMA_CONTENT_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_ENUMERATION' type='enum'/>
+ <exports symbol='XML_SCHEMA_CONTENT_UNKNOWN' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_MININCLUSIVE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_GMONTH' type='enum'/>
+ <exports symbol='XML_SCHEMA_CONTENT_ELEMENTS' type='enum'/>
+ <exports symbol='XML_SCHEMAS_GYEAR' type='enum'/>
+ <exports symbol='XML_SCHEMA_EXTRA_ATTR_USE_PROHIB' type='enum'/>
+ <exports symbol='XML_SCHEMAS_BYTE' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ALL' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_IDC_KEYREF' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NOTATION' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_MAXINCLUSIVE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NAME' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_LIST' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ATTRIBUTE_USE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_GDAY' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ANY' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ANYURI' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_COMPLEX' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ATTRIBUTEGROUP' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_BASIC' type='enum'/>
+ <exports symbol='XML_SCHEMAS_IDREFS' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_IDC_UNIQUE' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_LENGTH' type='enum'/>
+ <exports symbol='XML_SCHEMA_CONTENT_SIMPLE' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_PATTERN' type='enum'/>
+ <exports symbol='XML_SCHEMAS_SHORT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_LANGUAGE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ANYSIMPLETYPE' type='enum'/>
+ <exports symbol='XML_SCHEMA_CONTENT_MIXED' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ANYTYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_DURATION' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_FACET' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NMTOKENS' type='enum'/>
+ <exports symbol='XML_SCHEMAS_USHORT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_INTEGER' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_COMPLEX_CONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_MINEXCLUSIVE' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_IDC_KEY' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_SIMPLE_CONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_FLOAT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ENTITIES' type='enum'/>
+ <exports symbol='XML_SCHEMAS_DATE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_STRING' type='enum'/>
+ <exports symbol='XML_SCHEMAS_INT' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_NOTATION' type='enum'/>
+ <exports symbol='XML_SCHEMA_CONTENT_ANY' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_MINLENGTH' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_RESTRICTION' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_SEQUENCE' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ELEMENT' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_MAXLENGTH' type='enum'/>
+ <exports symbol='xmlSchemaAttributeGroupPtr' type='typedef'/>
+ <exports symbol='xmlSchemaElementPtr' type='typedef'/>
+ <exports symbol='xmlSchemaFacetLinkPtr' type='typedef'/>
+ <exports symbol='xmlSchemaVal' type='typedef'/>
+ <exports symbol='xmlSchemaAttributeLinkPtr' type='typedef'/>
+ <exports symbol='xmlSchemaType' type='typedef'/>
+ <exports symbol='xmlSchemaAnnot' type='typedef'/>
+ <exports symbol='xmlSchemaAnnotPtr' type='typedef'/>
+ <exports symbol='xmlSchemaElement' type='typedef'/>
+ <exports symbol='xmlSchemaWildcard' type='typedef'/>
+ <exports symbol='xmlSchemaWildcardPtr' type='typedef'/>
+ <exports symbol='xmlSchemaFacetPtr' type='typedef'/>
+ <exports symbol='xmlSchemaTypeLink' type='typedef'/>
+ <exports symbol='xmlSchemaAttributeLink' type='typedef'/>
+ <exports symbol='xmlSchemaValPtr' type='typedef'/>
+ <exports symbol='xmlSchemaFacetLink' type='typedef'/>
+ <exports symbol='xmlSchemaWildcardNsPtr' type='typedef'/>
+ <exports symbol='xmlSchemaAttributeGroup' type='typedef'/>
+ <exports symbol='xmlSchemaTypeLinkPtr' type='typedef'/>
+ <exports symbol='xmlSchemaWildcardNs' type='typedef'/>
+ <exports symbol='xmlSchemaAttributePtr' type='typedef'/>
+ <exports symbol='xmlSchemaNotationPtr' type='typedef'/>
+ <exports symbol='xmlSchemaValType' type='typedef'/>
+ <exports symbol='xmlSchemaTypePtr' type='typedef'/>
+ <exports symbol='xmlSchemaNotation' type='typedef'/>
+ <exports symbol='xmlSchemaFacet' type='typedef'/>
+ <exports symbol='xmlSchemaContentType' type='typedef'/>
+ <exports symbol='xmlSchemaTypeType' type='typedef'/>
+ <exports symbol='xmlSchemaAttribute' type='typedef'/>
+ <exports symbol='_xmlSchemaWildcardNs' type='struct'/>
+ <exports symbol='_xmlSchemaNotation' type='struct'/>
+ <exports symbol='_xmlSchemaAttribute' type='struct'/>
+ <exports symbol='_xmlSchemaType' type='struct'/>
+ <exports symbol='_xmlSchemaAttributeGroup' type='struct'/>
+ <exports symbol='_xmlSchemaFacetLink' type='struct'/>
+ <exports symbol='_xmlSchemaElement' type='struct'/>
+ <exports symbol='_xmlSchema' type='struct'/>
+ <exports symbol='_xmlSchemaAttributeLink' type='struct'/>
+ <exports symbol='_xmlSchemaFacet' type='struct'/>
+ <exports symbol='_xmlSchemaWildcard' type='struct'/>
+ <exports symbol='_xmlSchemaTypeLink' type='struct'/>
+ <exports symbol='_xmlSchemaAnnot' type='struct'/>
+ <exports symbol='xmlSchemaFreeType' type='function'/>
+ <exports symbol='xmlSchemaFreeWildcard' type='function'/>
+ </file>
+ <file name='schematron'>
+ <summary>XML Schemastron implementation</summary>
+ <description>interface to the XML Schematron validity checking. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_SCHEMATRON_OUT_IO' type='enum'/>
+ <exports symbol='XML_SCHEMATRON_OUT_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMATRON_OUT_BUFFER' type='enum'/>
+ <exports symbol='XML_SCHEMATRON_OUT_FILE' type='enum'/>
+ <exports symbol='XML_SCHEMATRON_OUT_XML' type='enum'/>
+ <exports symbol='XML_SCHEMATRON_OUT_TEXT' type='enum'/>
+ <exports symbol='XML_SCHEMATRON_OUT_QUIET' type='enum'/>
+ <exports symbol='xmlSchematronValidCtxt' type='typedef'/>
+ <exports symbol='xmlSchematronValidOptions' type='typedef'/>
+ <exports symbol='xmlSchematronPtr' type='typedef'/>
+ <exports symbol='xmlSchematronParserCtxt' type='typedef'/>
+ <exports symbol='xmlSchematron' type='typedef'/>
+ <exports symbol='xmlSchematronValidCtxtPtr' type='typedef'/>
+ <exports symbol='xmlSchematronParserCtxtPtr' type='typedef'/>
+ <exports symbol='xmlSchematronValidateDoc' type='function'/>
+ <exports symbol='xmlSchematronFreeParserCtxt' type='function'/>
+ <exports symbol='xmlSchematronNewMemParserCtxt' type='function'/>
+ <exports symbol='xmlSchematronValidityErrorFunc' type='function'/>
+ <exports symbol='xmlSchematronNewParserCtxt' type='function'/>
+ <exports symbol='xmlSchematronValidityWarningFunc' type='function'/>
+ <exports symbol='xmlSchematronFree' type='function'/>
+ <exports symbol='xmlSchematronSetValidStructuredErrors' type='function'/>
+ <exports symbol='xmlSchematronFreeValidCtxt' type='function'/>
+ <exports symbol='xmlSchematronParse' type='function'/>
+ <exports symbol='xmlSchematronNewDocParserCtxt' type='function'/>
+ <exports symbol='xmlSchematronNewValidCtxt' type='function'/>
+ </file>
+ <file name='threads'>
+ <summary>interfaces for thread handling</summary>
+ <description>set of generic threading related routines should work with pthreads, Windows native or TLS threads </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlMutex' type='typedef'/>
+ <exports symbol='xmlRMutex' type='typedef'/>
+ <exports symbol='xmlRMutexPtr' type='typedef'/>
+ <exports symbol='xmlMutexPtr' type='typedef'/>
+ <exports symbol='xmlFreeRMutex' type='function'/>
+ <exports symbol='xmlGetThreadId' type='function'/>
+ <exports symbol='xmlMutexUnlock' type='function'/>
+ <exports symbol='xmlCleanupThreads' type='function'/>
+ <exports symbol='xmlLockLibrary' type='function'/>
+ <exports symbol='xmlNewRMutex' type='function'/>
+ <exports symbol='xmlMutexLock' type='function'/>
+ <exports symbol='xmlIsMainThread' type='function'/>
+ <exports symbol='xmlRMutexUnlock' type='function'/>
+ <exports symbol='xmlGetGlobalState' type='function'/>
+ <exports symbol='xmlNewMutex' type='function'/>
+ <exports symbol='xmlDllMain' type='function'/>
+ <exports symbol='xmlFreeMutex' type='function'/>
+ <exports symbol='xmlUnlockLibrary' type='function'/>
+ <exports symbol='xmlInitThreads' type='function'/>
+ <exports symbol='xmlRMutexLock' type='function'/>
+ </file>
+ <file name='tree'>
+ <summary>interfaces for tree manipulation</summary>
+ <description>this module describes the structures found in an tree resulting from an XML or HTML parsing, as well as the API provided for various processing on that tree </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_LOCAL_NAMESPACE' type='macro'/>
+ <exports symbol='BASE_BUFFER_SIZE' type='macro'/>
+ <exports symbol='XML_XML_ID' type='macro'/>
+ <exports symbol='xmlRootNode' type='macro'/>
+ <exports symbol='XML_GET_LINE' type='macro'/>
+ <exports symbol='XML_GET_CONTENT' type='macro'/>
+ <exports symbol='xmlChildrenNode' type='macro'/>
+ <exports symbol='XML_XML_NAMESPACE' type='macro'/>
+ <exports symbol='LIBXML2_NEW_BUFFER' type='macro'/>
+ <exports symbol='XML_ATTRIBUTE_IMPLIED' type='enum'/>
+ <exports symbol='XML_ELEMENT_CONTENT_ELEMENT' type='enum'/>
+ <exports symbol='XML_ENTITY_REF_NODE' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_IDREFS' type='enum'/>
+ <exports symbol='XML_BUFFER_ALLOC_DOUBLEIT' type='enum'/>
+ <exports symbol='XML_XINCLUDE_END' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_NODE' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_NMTOKENS' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_IDREF' type='enum'/>
+ <exports symbol='XML_ELEMENT_TYPE_ELEMENT' type='enum'/>
+ <exports symbol='XML_TEXT_NODE' type='enum'/>
+ <exports symbol='XML_CDATA_SECTION_NODE' type='enum'/>
+ <exports symbol='XML_ELEMENT_NODE' type='enum'/>
+ <exports symbol='XML_ELEMENT_DECL' type='enum'/>
+ <exports symbol='XML_DOC_USERBUILT' type='enum'/>
+ <exports symbol='XML_DOC_INTERNAL' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_REQUIRED' type='enum'/>
+ <exports symbol='XML_DOCUMENT_FRAG_NODE' type='enum'/>
+ <exports symbol='XML_DOC_DTDVALID' type='enum'/>
+ <exports symbol='XML_ELEMENT_TYPE_ANY' type='enum'/>
+ <exports symbol='XML_DOC_NSVALID' type='enum'/>
+ <exports symbol='XML_BUFFER_ALLOC_BOUNDED' type='enum'/>
+ <exports symbol='XML_ELEMENT_CONTENT_PCDATA' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_FIXED' type='enum'/>
+ <exports symbol='XML_DOCUMENT_TYPE_NODE' type='enum'/>
+ <exports symbol='XML_DOC_HTML' type='enum'/>
+ <exports symbol='XML_ELEMENT_CONTENT_ONCE' type='enum'/>
+ <exports symbol='XML_NAMESPACE_DECL' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_NOTATION' type='enum'/>
+ <exports symbol='XML_ELEMENT_TYPE_MIXED' type='enum'/>
+ <exports symbol='XML_XINCLUDE_START' type='enum'/>
+ <exports symbol='XML_BUFFER_ALLOC_HYBRID' type='enum'/>
+ <exports symbol='XML_DOC_XINCLUDE' type='enum'/>
+ <exports symbol='XML_BUFFER_ALLOC_EXACT' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_ENTITIES' type='enum'/>
+ <exports symbol='XML_BUFFER_ALLOC_IMMUTABLE' type='enum'/>
+ <exports symbol='XML_NOTATION_NODE' type='enum'/>
+ <exports symbol='XML_ELEMENT_CONTENT_SEQ' type='enum'/>
+ <exports symbol='XML_ELEMENT_TYPE_EMPTY' type='enum'/>
+ <exports symbol='XML_ELEMENT_CONTENT_OPT' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_ENUMERATION' type='enum'/>
+ <exports symbol='XML_DOC_OLD10' type='enum'/>
+ <exports symbol='XML_HTML_DOCUMENT_NODE' type='enum'/>
+ <exports symbol='XML_ELEMENT_TYPE_UNDEFINED' type='enum'/>
+ <exports symbol='XML_DOCUMENT_NODE' type='enum'/>
+ <exports symbol='XML_DOCB_DOCUMENT_NODE' type='enum'/>
+ <exports symbol='XML_COMMENT_NODE' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_NONE' type='enum'/>
+ <exports symbol='XML_DTD_NODE' type='enum'/>
+ <exports symbol='XML_ELEMENT_CONTENT_OR' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_NMTOKEN' type='enum'/>
+ <exports symbol='XML_PI_NODE' type='enum'/>
+ <exports symbol='XML_BUFFER_ALLOC_IO' type='enum'/>
+ <exports symbol='XML_ENTITY_NODE' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_ENTITY' type='enum'/>
+ <exports symbol='XML_DOC_WELLFORMED' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_DECL' type='enum'/>
+ <exports symbol='XML_ENTITY_DECL' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_ID' type='enum'/>
+ <exports symbol='XML_ATTRIBUTE_CDATA' type='enum'/>
+ <exports symbol='XML_ELEMENT_CONTENT_MULT' type='enum'/>
+ <exports symbol='XML_ELEMENT_CONTENT_PLUS' type='enum'/>
+ <exports symbol='xmlNs' type='typedef'/>
+ <exports symbol='xmlElementContent' type='typedef'/>
+ <exports symbol='xmlEnumerationPtr' type='typedef'/>
+ <exports symbol='xmlBuffer' type='typedef'/>
+ <exports symbol='xmlParserInputPtr' type='typedef'/>
+ <exports symbol='xmlSAXLocatorPtr' type='typedef'/>
+ <exports symbol='xmlParserInput' type='typedef'/>
+ <exports symbol='xmlElement' type='typedef'/>
+ <exports symbol='xmlNsType' type='typedef'/>
+ <exports symbol='xmlBufferAllocationScheme' type='typedef'/>
+ <exports symbol='xmlNode' type='typedef'/>
+ <exports symbol='xmlDocPtr' type='typedef'/>
+ <exports symbol='xmlBufferPtr' type='typedef'/>
+ <exports symbol='xmlDOMWrapCtxtPtr' type='typedef'/>
+ <exports symbol='xmlRefPtr' type='typedef'/>
+ <exports symbol='xmlParserInputBuffer' type='typedef'/>
+ <exports symbol='xmlRef' type='typedef'/>
+ <exports symbol='xmlDOMWrapCtxt' type='typedef'/>
+ <exports symbol='xmlNodePtr' type='typedef'/>
+ <exports symbol='xmlParserCtxt' type='typedef'/>
+ <exports symbol='xmlDtdPtr' type='typedef'/>
+ <exports symbol='xmlAttributeDefault' type='typedef'/>
+ <exports symbol='xmlBuf' type='typedef'/>
+ <exports symbol='xmlNotation' type='typedef'/>
+ <exports symbol='xmlElementType' type='typedef'/>
+ <exports symbol='xmlEntity' type='typedef'/>
+ <exports symbol='xmlAttr' type='typedef'/>
+ <exports symbol='xmlAttributePtr' type='typedef'/>
+ <exports symbol='xmlElementTypeVal' type='typedef'/>
+ <exports symbol='xmlNotationPtr' type='typedef'/>
+ <exports symbol='xmlElementPtr' type='typedef'/>
+ <exports symbol='xmlBufPtr' type='typedef'/>
+ <exports symbol='xmlElementContentOccur' type='typedef'/>
+ <exports symbol='xmlAttrPtr' type='typedef'/>
+ <exports symbol='xmlDoc' type='typedef'/>
+ <exports symbol='xmlID' type='typedef'/>
+ <exports symbol='xmlParserCtxtPtr' type='typedef'/>
+ <exports symbol='xmlEntityPtr' type='typedef'/>
+ <exports symbol='xmlEnumeration' type='typedef'/>
+ <exports symbol='xmlAttributeType' type='typedef'/>
+ <exports symbol='xmlNsPtr' type='typedef'/>
+ <exports symbol='xmlParserInputBufferPtr' type='typedef'/>
+ <exports symbol='xmlSAXHandler' type='typedef'/>
+ <exports symbol='xmlOutputBuffer' type='typedef'/>
+ <exports symbol='xmlSAXLocator' type='typedef'/>
+ <exports symbol='xmlElementContentPtr' type='typedef'/>
+ <exports symbol='xmlElementContentType' type='typedef'/>
+ <exports symbol='xmlDocProperties' type='typedef'/>
+ <exports symbol='xmlIDPtr' type='typedef'/>
+ <exports symbol='xmlDtd' type='typedef'/>
+ <exports symbol='xmlAttribute' type='typedef'/>
+ <exports symbol='xmlOutputBufferPtr' type='typedef'/>
+ <exports symbol='xmlSAXHandlerPtr' type='typedef'/>
+ <exports symbol='_xmlBuffer' type='struct'/>
+ <exports symbol='_xmlAttribute' type='struct'/>
+ <exports symbol='_xmlEnumeration' type='struct'/>
+ <exports symbol='_xmlNs' type='struct'/>
+ <exports symbol='_xmlNode' type='struct'/>
+ <exports symbol='_xmlDoc' type='struct'/>
+ <exports symbol='_xmlElement' type='struct'/>
+ <exports symbol='_xmlID' type='struct'/>
+ <exports symbol='_xmlNotation' type='struct'/>
+ <exports symbol='_xmlDtd' type='struct'/>
+ <exports symbol='_xmlRef' type='struct'/>
+ <exports symbol='_xmlAttr' type='struct'/>
+ <exports symbol='_xmlDOMWrapCtxt' type='struct'/>
+ <exports symbol='_xmlElementContent' type='struct'/>
+ <exports symbol='xmlDocCopyNode' type='function'/>
+ <exports symbol='xmlNewDocRawNode' type='function'/>
+ <exports symbol='xmlBufContent' type='function'/>
+ <exports symbol='xmlNewNsPropEatName' type='function'/>
+ <exports symbol='xmlStringGetNodeList' type='function'/>
+ <exports symbol='xmlNewCDataBlock' type='function'/>
+ <exports symbol='xmlBufferWriteCHAR' type='function'/>
+ <exports symbol='xmlNodeGetBase' type='function'/>
+ <exports symbol='xmlBufferEmpty' type='function'/>
+ <exports symbol='xmlBuildQName' type='function'/>
+ <exports symbol='xmlValidateNMToken' type='function'/>
+ <exports symbol='xmlSaveFormatFileEnc' type='function'/>
+ <exports symbol='xmlAddSibling' type='function'/>
+ <exports symbol='xmlBufferCreate' type='function'/>
+ <exports symbol='xmlNewDocFragment' type='function'/>
+ <exports symbol='xmlDocGetRootElement' type='function'/>
+ <exports symbol='xmlGetProp' type='function'/>
+ <exports symbol='xmlValidateName' type='function'/>
+ <exports symbol='xmlBufEnd' type='function'/>
+ <exports symbol='xmlValidateQName' type='function'/>
+ <exports symbol='xmlHasNsProp' type='function'/>
+ <exports symbol='xmlAddPrevSibling' type='function'/>
+ <exports symbol='xmlBufferAddHead' type='function'/>
+ <exports symbol='xmlNewPI' type='function'/>
+ <exports symbol='xmlDocDumpFormatMemoryEnc' type='function'/>
+ <exports symbol='xmlSetProp' type='function'/>
+ <exports symbol='xmlChildElementCount' type='function'/>
+ <exports symbol='xmlElemDump' type='function'/>
+ <exports symbol='xmlSaveFormatFileTo' type='function'/>
+ <exports symbol='xmlGetIntSubset' type='function'/>
+ <exports symbol='xmlNodeBufGetContent' type='function'/>
+ <exports symbol='xmlNextElementSibling' type='function'/>
+ <exports symbol='xmlBufferWriteChar' type='function'/>
+ <exports symbol='xmlBufferFree' type='function'/>
+ <exports symbol='xmlDOMWrapCloneNode' type='function'/>
+ <exports symbol='xmlNewNode' type='function'/>
+ <exports symbol='xmlSaveFileTo' type='function'/>
+ <exports symbol='xmlNewTextLen' type='function'/>
+ <exports symbol='xmlNewTextChild' type='function'/>
+ <exports symbol='xmlNodeSetContent' type='function'/>
+ <exports symbol='xmlBufferAdd' type='function'/>
+ <exports symbol='xmlNodeDumpOutput' type='function'/>
+ <exports symbol='xmlCopyNamespace' type='function'/>
+ <exports symbol='xmlSearchNsByHref' type='function'/>
+ <exports symbol='xmlAddChild' type='function'/>
+ <exports symbol='xmlReconciliateNs' type='function'/>
+ <exports symbol='xmlValidateNCName' type='function'/>
+ <exports symbol='xmlNewDocComment' type='function'/>
+ <exports symbol='xmlGetCompressMode' type='function'/>
+ <exports symbol='xmlNodeDump' type='function'/>
+ <exports symbol='xmlBufferCreateSize' type='function'/>
+ <exports symbol='xmlNodeListGetString' type='function'/>
+ <exports symbol='xmlSetCompressMode' type='function'/>
+ <exports symbol='xmlSetTreeDoc' type='function'/>
+ <exports symbol='xmlDOMWrapAdoptNode' type='function'/>
+ <exports symbol='xmlCopyNodeList' type='function'/>
+ <exports symbol='xmlNewDocNodeEatName' type='function'/>
+ <exports symbol='xmlAddChildList' type='function'/>
+ <exports symbol='xmlGetNodePath' type='function'/>
+ <exports symbol='xmlFreePropList' type='function'/>
+ <exports symbol='xmlNodeAddContent' type='function'/>
+ <exports symbol='xmlUnsetNsProp' type='function'/>
+ <exports symbol='xmlFirstElementChild' type='function'/>
+ <exports symbol='xmlAddNextSibling' type='function'/>
+ <exports symbol='xmlIsBlankNode' type='function'/>
+ <exports symbol='xmlNewGlobalNs' type='function'/>
+ <exports symbol='xmlBufferDump' type='function'/>
+ <exports symbol='xmlNodeGetContent' type='function'/>
+ <exports symbol='xmlCopyDoc' type='function'/>
+ <exports symbol='xmlDOMWrapNewCtxt' type='function'/>
+ <exports symbol='xmlDocDumpMemoryEnc' type='function'/>
+ <exports symbol='xmlBufGetNodeContent' type='function'/>
+ <exports symbol='xmlTextMerge' type='function'/>
+ <exports symbol='xmlDocDumpMemory' type='function'/>
+ <exports symbol='xmlNewDocPI' type='function'/>
+ <exports symbol='xmlFreeNs' type='function'/>
+ <exports symbol='xmlDocDump' type='function'/>
+ <exports symbol='xmlFreeProp' type='function'/>
+ <exports symbol='xmlGetNoNsProp' type='function'/>
+ <exports symbol='xmlSplitQName2' type='function'/>
+ <exports symbol='xmlNewProp' type='function'/>
+ <exports symbol='xmlTextConcat' type='function'/>
+ <exports symbol='xmlNodeGetSpacePreserve' type='function'/>
+ <exports symbol='xmlBufferShrink' type='function'/>
+ <exports symbol='xmlPreviousElementSibling' type='function'/>
+ <exports symbol='xmlNodeSetContentLen' type='function'/>
+ <exports symbol='xmlNodeAddContentLen' type='function'/>
+ <exports symbol='xmlBufferWriteQuotedString' type='function'/>
+ <exports symbol='xmlCopyProp' type='function'/>
+ <exports symbol='xmlReplaceNode' type='function'/>
+ <exports symbol='xmlSetDocCompressMode' type='function'/>
+ <exports symbol='xmlCopyNode' type='function'/>
+ <exports symbol='xmlUnlinkNode' type='function'/>
+ <exports symbol='xmlSplitQName3' type='function'/>
+ <exports symbol='xmlDOMWrapAcquireNsFunction' type='function'/>
+ <exports symbol='xmlBufUse' type='function'/>
+ <exports symbol='xmlDocSetRootElement' type='function'/>
+ <exports symbol='xmlGetLineNo' type='function'/>
+ <exports symbol='xmlBufferContent' type='function'/>
+ <exports symbol='xmlRemoveProp' type='function'/>
+ <exports symbol='xmlLastElementChild' type='function'/>
+ <exports symbol='xmlNodeGetLang' type='function'/>
+ <exports symbol='xmlGetDocCompressMode' type='function'/>
+ <exports symbol='xmlBufNodeDump' type='function'/>
+ <exports symbol='xmlGetNsProp' type='function'/>
+ <exports symbol='xmlNewDocProp' type='function'/>
+ <exports symbol='xmlFreeNode' type='function'/>
+ <exports symbol='xmlNewNsProp' type='function'/>
+ <exports symbol='xmlDOMWrapFreeCtxt' type='function'/>
+ <exports symbol='xmlBufferDetach' type='function'/>
+ <exports symbol='xmlBufferSetAllocationScheme' type='function'/>
+ <exports symbol='xmlNewChild' type='function'/>
+ <exports symbol='xmlSearchNs' type='function'/>
+ <exports symbol='xmlStringLenGetNodeList' type='function'/>
+ <exports symbol='xmlSaveFormatFile' type='function'/>
+ <exports symbol='xmlCopyPropList' type='function'/>
+ <exports symbol='xmlDocFormatDump' type='function'/>
+ <exports symbol='xmlNodeSetSpacePreserve' type='function'/>
+ <exports symbol='xmlHasProp' type='function'/>
+ <exports symbol='xmlBufferCat' type='function'/>
+ <exports symbol='xmlCreateIntSubset' type='function'/>
+ <exports symbol='xmlNewDoc' type='function'/>
+ <exports symbol='xmlNewCharRef' type='function'/>
+ <exports symbol='xmlCopyNamespaceList' type='function'/>
+ <exports symbol='xmlNewNodeEatName' type='function'/>
+ <exports symbol='xmlBufferResize' type='function'/>
+ <exports symbol='xmlNodeSetBase' type='function'/>
+ <exports symbol='xmlNewComment' type='function'/>
+ <exports symbol='xmlBufferLength' type='function'/>
+ <exports symbol='xmlNewText' type='function'/>
+ <exports symbol='xmlUnsetProp' type='function'/>
+ <exports symbol='xmlGetBufferAllocationScheme' type='function'/>
+ <exports symbol='xmlSaveFile' type='function'/>
+ <exports symbol='xmlDocCopyNodeList' type='function'/>
+ <exports symbol='xmlSetNs' type='function'/>
+ <exports symbol='xmlNewNs' type='function'/>
+ <exports symbol='xmlDOMWrapRemoveNode' type='function'/>
+ <exports symbol='xmlAttrSerializeTxtContent' type='function'/>
+ <exports symbol='xmlCopyDtd' type='function'/>
+ <exports symbol='xmlNewDocText' type='function'/>
+ <exports symbol='xmlNodeListGetRawString' type='function'/>
+ <exports symbol='xmlBufferCreateStatic' type='function'/>
+ <exports symbol='xmlNewReference' type='function'/>
+ <exports symbol='xmlDOMWrapReconcileNamespaces' type='function'/>
+ <exports symbol='xmlBufferCCat' type='function'/>
+ <exports symbol='xmlGetNsList' type='function'/>
+ <exports symbol='xmlBufferGrow' type='function'/>
+ <exports symbol='xmlNodeIsText' type='function'/>
+ <exports symbol='xmlSetBufferAllocationScheme' type='function'/>
+ <exports symbol='xmlIsXHTML' type='function'/>
+ <exports symbol='xmlNodeSetLang' type='function'/>
+ <exports symbol='xmlFreeDtd' type='function'/>
+ <exports symbol='xmlFreeNodeList' type='function'/>
+ <exports symbol='xmlFreeDoc' type='function'/>
+ <exports symbol='xmlBufShrink' type='function'/>
+ <exports symbol='xmlNewDocNode' type='function'/>
+ <exports symbol='xmlSaveFileEnc' type='function'/>
+ <exports symbol='xmlSetNsProp' type='function'/>
+ <exports symbol='xmlDocDumpFormatMemory' type='function'/>
+ <exports symbol='xmlSetListDoc' type='function'/>
+ <exports symbol='xmlNodeSetName' type='function'/>
+ <exports symbol='xmlNewDocTextLen' type='function'/>
+ <exports symbol='xmlNewDtd' type='function'/>
+ <exports symbol='xmlFreeNsList' type='function'/>
+ <exports symbol='xmlGetLastChild' type='function'/>
+ </file>
+ <file name='uri'>
+ <summary>library of generic URI related routines</summary>
+ <description>library of generic URI related routines Implements RFC 2396 </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlURI' type='typedef'/>
+ <exports symbol='xmlURIPtr' type='typedef'/>
+ <exports symbol='_xmlURI' type='struct'/>
+ <exports symbol='xmlNormalizeURIPath' type='function'/>
+ <exports symbol='xmlPrintURI' type='function'/>
+ <exports symbol='xmlParseURIRaw' type='function'/>
+ <exports symbol='xmlURIUnescapeString' type='function'/>
+ <exports symbol='xmlParseURI' type='function'/>
+ <exports symbol='xmlCreateURI' type='function'/>
+ <exports symbol='xmlURIEscapeStr' type='function'/>
+ <exports symbol='xmlPathToURI' type='function'/>
+ <exports symbol='xmlCanonicPath' type='function'/>
+ <exports symbol='xmlFreeURI' type='function'/>
+ <exports symbol='xmlParseURIReference' type='function'/>
+ <exports symbol='xmlBuildRelativeURI' type='function'/>
+ <exports symbol='xmlSaveUri' type='function'/>
+ <exports symbol='xmlURIEscape' type='function'/>
+ <exports symbol='xmlBuildURI' type='function'/>
+ </file>
+ <file name='valid'>
+ <summary>The DTD validation</summary>
+ <description>API for the DTD handling and the validity checking </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_CTXT_FINISH_DTD_0' type='macro'/>
+ <exports symbol='XML_CTXT_FINISH_DTD_1' type='macro'/>
+ <exports symbol='xmlElementTable' type='typedef'/>
+ <exports symbol='xmlValidStatePtr' type='typedef'/>
+ <exports symbol='xmlIDTablePtr' type='typedef'/>
+ <exports symbol='xmlNotationTablePtr' type='typedef'/>
+ <exports symbol='xmlValidCtxt' type='typedef'/>
+ <exports symbol='xmlElementTablePtr' type='typedef'/>
+ <exports symbol='xmlRefTablePtr' type='typedef'/>
+ <exports symbol='xmlNotationTable' type='typedef'/>
+ <exports symbol='xmlRefTable' type='typedef'/>
+ <exports symbol='xmlValidState' type='typedef'/>
+ <exports symbol='xmlAttributeTable' type='typedef'/>
+ <exports symbol='xmlAttributeTablePtr' type='typedef'/>
+ <exports symbol='xmlIDTable' type='typedef'/>
+ <exports symbol='xmlValidCtxtPtr' type='typedef'/>
+ <exports symbol='_xmlValidCtxt' type='struct'/>
+ <exports symbol='xmlFreeNotationTable' type='function'/>
+ <exports symbol='xmlValidateNameValue' type='function'/>
+ <exports symbol='xmlSnprintfElementContent' type='function'/>
+ <exports symbol='xmlAddRef' type='function'/>
+ <exports symbol='xmlDumpAttributeDecl' type='function'/>
+ <exports symbol='xmlValidateDocumentFinal' type='function'/>
+ <exports symbol='xmlValidateDtdFinal' type='function'/>
+ <exports symbol='xmlDumpAttributeTable' type='function'/>
+ <exports symbol='xmlCreateEnumeration' type='function'/>
+ <exports symbol='xmlValidateOneAttribute' type='function'/>
+ <exports symbol='xmlValidGetValidElements' type='function'/>
+ <exports symbol='xmlIsMixedElement' type='function'/>
+ <exports symbol='xmlDumpNotationDecl' type='function'/>
+ <exports symbol='xmlIsID' type='function'/>
+ <exports symbol='xmlGetDtdQAttrDesc' type='function'/>
+ <exports symbol='xmlNewDocElementContent' type='function'/>
+ <exports symbol='xmlFreeAttributeTable' type='function'/>
+ <exports symbol='xmlValidityErrorFunc' type='function'/>
+ <exports symbol='xmlValidateAttributeDecl' type='function'/>
+ <exports symbol='xmlGetDtdQElementDesc' type='function'/>
+ <exports symbol='xmlCopyNotationTable' type='function'/>
+ <exports symbol='xmlValidateDocument' type='function'/>
+ <exports symbol='xmlValidGetPotentialChildren' type='function'/>
+ <exports symbol='xmlAddNotationDecl' type='function'/>
+ <exports symbol='xmlValidateElementDecl' type='function'/>
+ <exports symbol='xmlAddAttributeDecl' type='function'/>
+ <exports symbol='xmlGetID' type='function'/>
+ <exports symbol='xmlCopyElementTable' type='function'/>
+ <exports symbol='xmlGetRefs' type='function'/>
+ <exports symbol='xmlSprintfElementContent' type='function'/>
+ <exports symbol='xmlValidateOneElement' type='function'/>
+ <exports symbol='xmlValidateNmtokenValue' type='function'/>
+ <exports symbol='xmlDumpElementTable' type='function'/>
+ <exports symbol='xmlValidCtxtNormalizeAttributeValue' type='function'/>
+ <exports symbol='xmlDumpElementDecl' type='function'/>
+ <exports symbol='xmlFreeElementContent' type='function'/>
+ <exports symbol='xmlValidateOneNamespace' type='function'/>
+ <exports symbol='xmlValidatePushElement' type='function'/>
+ <exports symbol='xmlIsRef' type='function'/>
+ <exports symbol='xmlCopyDocElementContent' type='function'/>
+ <exports symbol='xmlAddID' type='function'/>
+ <exports symbol='xmlFreeRefTable' type='function'/>
+ <exports symbol='xmlValidateNamesValue' type='function'/>
+ <exports symbol='xmlRemoveID' type='function'/>
+ <exports symbol='xmlFreeElementTable' type='function'/>
+ <exports symbol='xmlFreeIDTable' type='function'/>
+ <exports symbol='xmlFreeValidCtxt' type='function'/>
+ <exports symbol='xmlCopyAttributeTable' type='function'/>
+ <exports symbol='xmlCopyElementContent' type='function'/>
+ <exports symbol='xmlValidateAttributeValue' type='function'/>
+ <exports symbol='xmlRemoveRef' type='function'/>
+ <exports symbol='xmlValidityWarningFunc' type='function'/>
+ <exports symbol='xmlValidatePopElement' type='function'/>
+ <exports symbol='xmlFreeEnumeration' type='function'/>
+ <exports symbol='xmlCopyEnumeration' type='function'/>
+ <exports symbol='xmlGetDtdAttrDesc' type='function'/>
+ <exports symbol='xmlValidateDtd' type='function'/>
+ <exports symbol='xmlNewValidCtxt' type='function'/>
+ <exports symbol='xmlDumpNotationTable' type='function'/>
+ <exports symbol='xmlAddElementDecl' type='function'/>
+ <exports symbol='xmlValidNormalizeAttributeValue' type='function'/>
+ <exports symbol='xmlValidBuildContentModel' type='function'/>
+ <exports symbol='xmlValidateElement' type='function'/>
+ <exports symbol='xmlValidateNotationUse' type='function'/>
+ <exports symbol='xmlValidateRoot' type='function'/>
+ <exports symbol='xmlValidateNotationDecl' type='function'/>
+ <exports symbol='xmlNewElementContent' type='function'/>
+ <exports symbol='xmlGetDtdElementDesc' type='function'/>
+ <exports symbol='xmlGetDtdNotationDesc' type='function'/>
+ <exports symbol='xmlValidatePushCData' type='function'/>
+ <exports symbol='xmlValidateNmtokensValue' type='function'/>
+ <exports symbol='xmlFreeDocElementContent' type='function'/>
+ </file>
+ <file name='xinclude'>
+ <summary>implementation of XInclude</summary>
+ <description>API to handle XInclude processing, implements the World Wide Web Consortium Last Call Working Draft 10 November 2003</description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XINCLUDE_PARSE_TEXT' type='macro'/>
+ <exports symbol='XINCLUDE_PARSE_XPOINTER' type='macro'/>
+ <exports symbol='XINCLUDE_HREF' type='macro'/>
+ <exports symbol='XINCLUDE_FALLBACK' type='macro'/>
+ <exports symbol='XINCLUDE_NS' type='macro'/>
+ <exports symbol='XINCLUDE_PARSE' type='macro'/>
+ <exports symbol='XINCLUDE_NODE' type='macro'/>
+ <exports symbol='XINCLUDE_PARSE_XML' type='macro'/>
+ <exports symbol='XINCLUDE_PARSE_ENCODING' type='macro'/>
+ <exports symbol='XINCLUDE_OLD_NS' type='macro'/>
+ <exports symbol='xmlXIncludeCtxt' type='typedef'/>
+ <exports symbol='xmlXIncludeCtxtPtr' type='typedef'/>
+ <exports symbol='xmlXIncludeProcessTreeFlagsData' type='function'/>
+ <exports symbol='xmlXIncludeProcessFlagsData' type='function'/>
+ <exports symbol='xmlXIncludeProcessFlags' type='function'/>
+ <exports symbol='xmlXIncludeProcessTree' type='function'/>
+ <exports symbol='xmlXIncludeProcessNode' type='function'/>
+ <exports symbol='xmlXIncludeFreeContext' type='function'/>
+ <exports symbol='xmlXIncludeSetFlags' type='function'/>
+ <exports symbol='xmlXIncludeProcess' type='function'/>
+ <exports symbol='xmlXIncludeNewContext' type='function'/>
+ <exports symbol='xmlXIncludeProcessTreeFlags' type='function'/>
+ </file>
+ <file name='xlink'>
+ <summary>unfinished XLink detection module</summary>
+ <description>unfinished XLink detection module </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XLINK_ACTUATE_NONE' type='enum'/>
+ <exports symbol='XLINK_SHOW_NEW' type='enum'/>
+ <exports symbol='XLINK_ACTUATE_AUTO' type='enum'/>
+ <exports symbol='XLINK_TYPE_NONE' type='enum'/>
+ <exports symbol='XLINK_SHOW_REPLACE' type='enum'/>
+ <exports symbol='XLINK_ACTUATE_ONREQUEST' type='enum'/>
+ <exports symbol='XLINK_TYPE_EXTENDED' type='enum'/>
+ <exports symbol='XLINK_TYPE_EXTENDED_SET' type='enum'/>
+ <exports symbol='XLINK_SHOW_NONE' type='enum'/>
+ <exports symbol='XLINK_SHOW_EMBED' type='enum'/>
+ <exports symbol='XLINK_TYPE_SIMPLE' type='enum'/>
+ <exports symbol='xlinkTitle' type='typedef'/>
+ <exports symbol='xlinkShow' type='typedef'/>
+ <exports symbol='xlinkHRef' type='typedef'/>
+ <exports symbol='xlinkActuate' type='typedef'/>
+ <exports symbol='xlinkHandler' type='typedef'/>
+ <exports symbol='xlinkRole' type='typedef'/>
+ <exports symbol='xlinkHandlerPtr' type='typedef'/>
+ <exports symbol='xlinkType' type='typedef'/>
+ <exports symbol='_xlinkHandler' type='struct'/>
+ <exports symbol='xlinkSetDefaultDetect' type='function'/>
+ <exports symbol='xlinkSetDefaultHandler' type='function'/>
+ <exports symbol='xlinkExtendedLinkFunk' type='function'/>
+ <exports symbol='xlinkExtendedLinkSetFunk' type='function'/>
+ <exports symbol='xlinkSimpleLinkFunk' type='function'/>
+ <exports symbol='xlinkNodeDetectFunc' type='function'/>
+ <exports symbol='xlinkGetDefaultHandler' type='function'/>
+ <exports symbol='xlinkIsLink' type='function'/>
+ <exports symbol='xlinkGetDefaultDetect' type='function'/>
+ </file>
+ <file name='xmlIO'>
+ <summary>interface for the I/O interfaces used by the parser</summary>
+ <description>interface for the I/O interfaces used by the parser </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='_xmlParserInputBuffer' type='struct'/>
+ <exports symbol='_xmlOutputBuffer' type='struct'/>
+ <exports symbol='xmlIOHTTPRead' type='function'/>
+ <exports symbol='xmlInputMatchCallback' type='function'/>
+ <exports symbol='xmlRegisterDefaultOutputCallbacks' type='function'/>
+ <exports symbol='xmlFileClose' type='function'/>
+ <exports symbol='xmlOutputMatchCallback' type='function'/>
+ <exports symbol='xmlParserInputBufferPush' type='function'/>
+ <exports symbol='xmlIOFTPRead' type='function'/>
+ <exports symbol='xmlRegisterHTTPPostCallbacks' type='function'/>
+ <exports symbol='xmlIOFTPOpen' type='function'/>
+ <exports symbol='xmlIOFTPClose' type='function'/>
+ <exports symbol='xmlFileOpen' type='function'/>
+ <exports symbol='xmlOutputBufferCreateFile' type='function'/>
+ <exports symbol='xmlCheckFilename' type='function'/>
+ <exports symbol='xmlOutputOpenCallback' type='function'/>
+ <exports symbol='xmlParserInputBufferCreateFilename' type='function'/>
+ <exports symbol='xmlOutputBufferClose' type='function'/>
+ <exports symbol='xmlAllocParserInputBuffer' type='function'/>
+ <exports symbol='xmlOutputBufferCreateIO' type='function'/>
+ <exports symbol='xmlOutputWriteCallback' type='function'/>
+ <exports symbol='xmlOutputBufferFlush' type='function'/>
+ <exports symbol='xmlCheckHTTPInput' type='function'/>
+ <exports symbol='xmlRegisterOutputCallbacks' type='function'/>
+ <exports symbol='xmlParserInputBufferCreateMem' type='function'/>
+ <exports symbol='xmlIOFTPMatch' type='function'/>
+ <exports symbol='xmlRegisterInputCallbacks' type='function'/>
+ <exports symbol='xmlFreeParserInputBuffer' type='function'/>
+ <exports symbol='xmlRegisterDefaultInputCallbacks' type='function'/>
+ <exports symbol='xmlParserInputBufferGrow' type='function'/>
+ <exports symbol='xmlOutputCloseCallback' type='function'/>
+ <exports symbol='xmlAllocOutputBuffer' type='function'/>
+ <exports symbol='xmlNoNetExternalEntityLoader' type='function'/>
+ <exports symbol='xmlOutputBufferCreateBuffer' type='function'/>
+ <exports symbol='xmlIOHTTPMatch' type='function'/>
+ <exports symbol='xmlIOHTTPOpen' type='function'/>
+ <exports symbol='xmlParserInputBufferCreateIO' type='function'/>
+ <exports symbol='xmlOutputBufferCreateFd' type='function'/>
+ <exports symbol='xmlNormalizeWindowsPath' type='function'/>
+ <exports symbol='xmlInputReadCallback' type='function'/>
+ <exports symbol='xmlParserInputBufferCreateStatic' type='function'/>
+ <exports symbol='xmlOutputBufferGetContent' type='function'/>
+ <exports symbol='xmlIOHTTPClose' type='function'/>
+ <exports symbol='xmlOutputBufferWriteEscape' type='function'/>
+ <exports symbol='xmlOutputBufferCreateFilename' type='function'/>
+ <exports symbol='xmlOutputBufferGetSize' type='function'/>
+ <exports symbol='xmlCleanupOutputCallbacks' type='function'/>
+ <exports symbol='xmlInputOpenCallback' type='function'/>
+ <exports symbol='xmlParserInputBufferRead' type='function'/>
+ <exports symbol='xmlOutputBufferWriteString' type='function'/>
+ <exports symbol='xmlFileMatch' type='function'/>
+ <exports symbol='xmlPopInputCallbacks' type='function'/>
+ <exports symbol='xmlFileRead' type='function'/>
+ <exports symbol='xmlParserInputBufferCreateFile' type='function'/>
+ <exports symbol='xmlParserGetDirectory' type='function'/>
+ <exports symbol='xmlOutputBufferWrite' type='function'/>
+ <exports symbol='xmlCleanupInputCallbacks' type='function'/>
+ <exports symbol='xmlInputCloseCallback' type='function'/>
+ <exports symbol='xmlIOHTTPOpenW' type='function'/>
+ <exports symbol='xmlParserInputBufferCreateFd' type='function'/>
+ </file>
+ <file name='xmlautomata'>
+ <summary>API to build regexp automata</summary>
+ <description>the API to build regexp automata </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlAutomataStatePtr' type='typedef'/>
+ <exports symbol='xmlAutomata' type='typedef'/>
+ <exports symbol='xmlAutomataPtr' type='typedef'/>
+ <exports symbol='xmlAutomataState' type='typedef'/>
+ <exports symbol='xmlFreeAutomata' type='function'/>
+ <exports symbol='xmlAutomataNewCounter' type='function'/>
+ <exports symbol='xmlAutomataGetInitState' type='function'/>
+ <exports symbol='xmlAutomataNewTransition2' type='function'/>
+ <exports symbol='xmlAutomataNewState' type='function'/>
+ <exports symbol='xmlAutomataNewCountTrans' type='function'/>
+ <exports symbol='xmlAutomataNewOnceTrans2' type='function'/>
+ <exports symbol='xmlAutomataNewAllTrans' type='function'/>
+ <exports symbol='xmlAutomataNewCountedTrans' type='function'/>
+ <exports symbol='xmlAutomataNewCounterTrans' type='function'/>
+ <exports symbol='xmlAutomataCompile' type='function'/>
+ <exports symbol='xmlAutomataNewNegTrans' type='function'/>
+ <exports symbol='xmlAutomataNewEpsilon' type='function'/>
+ <exports symbol='xmlAutomataNewCountTrans2' type='function'/>
+ <exports symbol='xmlNewAutomata' type='function'/>
+ <exports symbol='xmlAutomataSetFinalState' type='function'/>
+ <exports symbol='xmlAutomataNewOnceTrans' type='function'/>
+ <exports symbol='xmlAutomataNewTransition' type='function'/>
+ <exports symbol='xmlAutomataIsDeterminist' type='function'/>
+ </file>
+ <file name='xmlerror'>
+ <summary>error handling</summary>
+ <description>the API used to report errors </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_DTD_ATTRIBUTE_VALUE' type='enum'/>
+ <exports symbol='XML_RNGP_PARAM_NAME_MISSING' type='enum'/>
+ <exports symbol='XML_RNGP_PARENTREF_NO_PARENT' type='enum'/>
+ <exports symbol='XML_IO_EISCONN' type='enum'/>
+ <exports symbol='XML_RNGP_VALUE_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ELEM_NONAME_NOREF' type='enum'/>
+ <exports symbol='XML_CHECK_NOT_DTD' type='enum'/>
+ <exports symbol='XML_SCHEMAP_S4S_ATTR_MISSING' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_IMPORT' type='enum'/>
+ <exports symbol='XML_SCHEMAV_VALUE' type='enum'/>
+ <exports symbol='XML_XPATH_UNKNOWN_FUNC_ERROR' type='enum'/>
+ <exports symbol='XML_ERR_DOCUMENT_START' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_TEXT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_AG_PROPS_CORRECT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_IMPORT_2_1' type='enum'/>
+ <exports symbol='XML_DTD_NOT_STANDALONE' type='enum'/>
+ <exports symbol='XML_HTTP_USE_IP' type='enum'/>
+ <exports symbol='XML_ERR_XMLDECL_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING' type='enum'/>
+ <exports symbol='XML_SCHEMAV_ELEMENT_CONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_IMPORT_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD' type='enum'/>
+ <exports symbol='XML_ERR_LT_IN_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_XINCLUDE_ENTITY_DEF_MISMATCH' type='enum'/>
+ <exports symbol='XML_SAVE_NOT_UTF8' type='enum'/>
+ <exports symbol='XML_ERR_GT_REQUIRED' type='enum'/>
+ <exports symbol='XML_XPTR_EXTRA_OBJECTS' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_ATTR_USE' type='enum'/>
+ <exports symbol='XML_IO_UNKNOWN' type='enum'/>
+ <exports symbol='XML_RNGP_INTERLEAVE_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION' type='enum'/>
+ <exports symbol='XML_IO_ECHILD' type='enum'/>
+ <exports symbol='XML_RNGP_NAME_MISSING' type='enum'/>
+ <exports symbol='XML_ERR_CONDSEC_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_2' type='enum'/>
+ <exports symbol='XML_IO_EINTR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_1' type='enum'/>
+ <exports symbol='XML_RNGP_XMLNS_NAME' type='enum'/>
+ <exports symbol='XML_RNGP_ATTRIBUTE_NOOP' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REDEFINED_GROUP' type='enum'/>
+ <exports symbol='XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI' type='enum'/>
+ <exports symbol='XML_ERR_CHARREF_IN_EPILOG' type='enum'/>
+ <exports symbol='XML_DTD_ID_SUBSET' type='enum'/>
+ <exports symbol='XML_SCHEMAP_FAILED_BUILD_IMPORT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD' type='enum'/>
+ <exports symbol='XML_XPTR_CHILDSEQ_START' type='enum'/>
+ <exports symbol='XML_ERR_EXT_SUBSET_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_FROM_DTD' type='enum'/>
+ <exports symbol='XML_CHECK_NOT_ATTR' type='enum'/>
+ <exports symbol='XML_DTD_ATTRIBUTE_DEFAULT' type='enum'/>
+ <exports symbol='XML_FROM_MODULE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_EXTRACONTENT' type='enum'/>
+ <exports symbol='XML_RNGP_ELEM_CONTENT_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAP_WARN_UNLOCATED_SCHEMA' type='enum'/>
+ <exports symbol='XML_IO_EMLINK' type='enum'/>
+ <exports symbol='XML_ERR_NMTOKEN_REQUIRED' type='enum'/>
+ <exports symbol='XML_RNGP_ANYNAME_ATTR_ANCESTOR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_3_1' type='enum'/>
+ <exports symbol='XML_ERR_PI_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_RNGP_START_CONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_3_2' type='enum'/>
+ <exports symbol='XML_RNGP_GROUP_ATTR_CONFLICT' type='enum'/>
+ <exports symbol='XML_RNGP_EMPTY' type='enum'/>
+ <exports symbol='XML_ERR_DOCUMENT_EMPTY' type='enum'/>
+ <exports symbol='XML_XINCLUDE_RECURSION' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_RESOLVE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_FACET_VALID' type='enum'/>
+ <exports symbol='XML_SCHEMAP_RESTRICTION_NONAME_NOREF' type='enum'/>
+ <exports symbol='XML_I18N_NO_OUTPUT' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_ERR_STANDALONE_VALUE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REDEFINED_ATTR' type='enum'/>
+ <exports symbol='XML_ERR_ENTITY_LOOP' type='enum'/>
+ <exports symbol='XML_IO_EINPROGRESS' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REDEFINED_NOTATION' type='enum'/>
+ <exports symbol='XML_HTML_STRUCURE_ERROR' type='enum'/>
+ <exports symbol='XML_DTD_INVALID_DEFAULT' type='enum'/>
+ <exports symbol='XML_FROM_SCHEMATRONV' type='enum'/>
+ <exports symbol='XML_DTD_EMPTY_NOTATION' type='enum'/>
+ <exports symbol='XML_RNGP_ELEMENT_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI' type='enum'/>
+ <exports symbol='XML_RNGP_INVALID_VALUE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD' type='enum'/>
+ <exports symbol='XML_ERR_PEREF_AT_EOF' type='enum'/>
+ <exports symbol='XML_DTD_NOT_EMPTY' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_START_LIST' type='enum'/>
+ <exports symbol='XML_ERR_LT_REQUIRED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_AU_PROPS_CORRECT_2' type='enum'/>
+ <exports symbol='XML_ERR_ATTLIST_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_ERR_PCDATA_REQUIRED' type='enum'/>
+ <exports symbol='XML_SCHEMAV_INTERNAL' type='enum'/>
+ <exports symbol='XML_ERR_STRING_NOT_CLOSED' type='enum'/>
+ <exports symbol='XML_ERR_ENTITYREF_IN_DTD' type='enum'/>
+ <exports symbol='XML_XPATH_VARIABLE_REF_ERROR' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME' type='enum'/>
+ <exports symbol='XML_IO_ECANCELED' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1' type='enum'/>
+ <exports symbol='XML_SCHEMAV_NOTSIMPLE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID' type='enum'/>
+ <exports symbol='XML_IO_EADDRINUSE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_LIST_CHILD' type='enum'/>
+ <exports symbol='XML_DTD_UNKNOWN_ID' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1' type='enum'/>
+ <exports symbol='XML_IO_EDOM' type='enum'/>
+ <exports symbol='XML_CHECK_NOT_ELEM_DECL' type='enum'/>
+ <exports symbol='XML_RNGP_DEFINE_CREATE_FAILED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ELEMENT_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ELEMENT_2_1' type='enum'/>
+ <exports symbol='XML_RNGP_INVALID_URI' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_LIST' type='enum'/>
+ <exports symbol='XML_RNGP_EXCEPT_NO_CONTENT' type='enum'/>
+ <exports symbol='XML_RNGP_EXTERNALREF_EMTPY' type='enum'/>
+ <exports symbol='XML_ERR_SPACE_REQUIRED' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MAXLENGTH_VALID' type='enum'/>
+ <exports symbol='XML_DTD_DIFFERENT_PREFIX' type='enum'/>
+ <exports symbol='XML_SCHEMAV_NOTDETERMINIST' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAV_MISSING' type='enum'/>
+ <exports symbol='XML_IO_EFAULT' type='enum'/>
+ <exports symbol='XML_XINCLUDE_XPTR_FAILED' type='enum'/>
+ <exports symbol='XML_FROM_FTP' type='enum'/>
+ <exports symbol='XML_RNGP_PARENTREF_CREATE_FAILED' type='enum'/>
+ <exports symbol='XML_ERR_RESERVED_XML_NAME' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_IMPORT_3_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_IMPORT_3_1' type='enum'/>
+ <exports symbol='XML_IO_EBADMSG' type='enum'/>
+ <exports symbol='XML_XPTR_RESOURCE_ERROR' type='enum'/>
+ <exports symbol='XML_RNGP_ATTR_CONFLICT' type='enum'/>
+ <exports symbol='XML_DTD_ELEM_REDEFINED' type='enum'/>
+ <exports symbol='XML_XINCLUDE_UNKNOWN_ENCODING' type='enum'/>
+ <exports symbol='XML_CATALOG_PREFER_VALUE' type='enum'/>
+ <exports symbol='XML_ERR_PEREF_SEMICOL_MISSING' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_IMPORT_1_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_IMPORT_1_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_TYPE_AND_SUBTYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_NO_XMLNS' type='enum'/>
+ <exports symbol='XML_IO_ENOTDIR' type='enum'/>
+ <exports symbol='XML_SAVE_CHAR_INVALID' type='enum'/>
+ <exports symbol='XML_ERR_ENTITYREF_NO_NAME' type='enum'/>
+ <exports symbol='XML_DTD_ID_FIXED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_A_PROPS_CORRECT_3' type='enum'/>
+ <exports symbol='XML_SCHEMAP_A_PROPS_CORRECT_2' type='enum'/>
+ <exports symbol='XML_WAR_NS_COLUMN' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_2_1' type='enum'/>
+ <exports symbol='XML_ERR_EXTRA_CONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_GROUP' type='enum'/>
+ <exports symbol='XML_ERR_LITERAL_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_REF_AND_SUBTYPE' type='enum'/>
+ <exports symbol='XML_RNGP_ELEM_TEXT_CONFLICT' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_TYPE_1' type='enum'/>
+ <exports symbol='XML_XPATH_INVALID_CHAR_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3' type='enum'/>
+ <exports symbol='XML_CHECK_NO_DICT' type='enum'/>
+ <exports symbol='XML_XINCLUDE_XPTR_RESULT' type='enum'/>
+ <exports symbol='XML_IO_ENXIO' type='enum'/>
+ <exports symbol='XML_XINCLUDE_FRAGMENT_ID' type='enum'/>
+ <exports symbol='XML_FROM_HTTP' type='enum'/>
+ <exports symbol='XML_DTD_NOTATION_REDEFINED' type='enum'/>
+ <exports symbol='XML_WAR_LANG_VALUE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_AU_PROPS_CORRECT' type='enum'/>
+ <exports symbol='XML_ERR_SEPARATOR_REQUIRED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED' type='enum'/>
+ <exports symbol='XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE' type='enum'/>
+ <exports symbol='XML_RNGP_ATTRIBUTE_CONTENT' type='enum'/>
+ <exports symbol='XML_DTD_XMLID_TYPE' type='enum'/>
+ <exports symbol='XML_RNGP_INTERLEAVE_ADD' type='enum'/>
+ <exports symbol='XML_DTD_ATTRIBUTE_REDEFINED' type='enum'/>
+ <exports symbol='XML_RNGP_UNKNOWN_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_ERR_UNDECLARED_ENTITY' type='enum'/>
+ <exports symbol='XML_ERR_PUBID_REQUIRED' type='enum'/>
+ <exports symbol='XML_IO_ENOTSOCK' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_START_GROUP' type='enum'/>
+ <exports symbol='XML_RNGP_NOTALLOWED_NOT_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_4' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_3' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_2' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_PREFIX_UNDEFINED' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_ATTR_ELEM' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_4_3' type='enum'/>
+ <exports symbol='XML_FTP_ACCNT' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_4_1' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_START_DATA' type='enum'/>
+ <exports symbol='XML_IO_ENOENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2' type='enum'/>
+ <exports symbol='XML_FROM_C14N' type='enum'/>
+ <exports symbol='XML_IO_EIO' type='enum'/>
+ <exports symbol='XML_DTD_NOT_PCDATA' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_ATTR_COMBINATION' type='enum'/>
+ <exports symbol='XML_RNGP_PARAM_FORBIDDEN' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD' type='enum'/>
+ <exports symbol='XML_FROM_WRITER' type='enum'/>
+ <exports symbol='XML_ERR_UNSUPPORTED_ENCODING' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME' type='enum'/>
+ <exports symbol='XML_ERR_ENTITYREF_IN_PROLOG' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_IDC' type='enum'/>
+ <exports symbol='XML_IO_ENOTTY' type='enum'/>
+ <exports symbol='XML_SCHEMAP_WARN_SKIP_SCHEMA' type='enum'/>
+ <exports symbol='XML_DTD_UNKNOWN_NOTATION' type='enum'/>
+ <exports symbol='XML_FROM_DATATYPE' type='enum'/>
+ <exports symbol='XML_ERR_WARNING' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ATTRFORMDEFAULT_VALUE' type='enum'/>
+ <exports symbol='XML_IO_EISDIR' type='enum'/>
+ <exports symbol='XML_XINCLUDE_MULTIPLE_ROOT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_UNION_CHILD' type='enum'/>
+ <exports symbol='XML_XPATH_MEMORY_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_NOROOT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_WARN_ATTR_REDECL_PROH' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_3_2_1' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_3_2_2' type='enum'/>
+ <exports symbol='XML_XPATH_UNCLOSED_ERROR' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_NOTATION' type='enum'/>
+ <exports symbol='XML_CHECK_NO_NEXT' type='enum'/>
+ <exports symbol='XML_CHECK_NOT_ATTR_DECL' type='enum'/>
+ <exports symbol='XML_CHECK_NO_PARENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_TOTALDIGITS_VALID' type='enum'/>
+ <exports symbol='XML_IO_ENOLCK' type='enum'/>
+ <exports symbol='XML_XINCLUDE_DEPRECATED_NS' type='enum'/>
+ <exports symbol='XML_RNGP_CHOICE_EMPTY' type='enum'/>
+ <exports symbol='XML_ERR_LITERAL_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_ERR_ENTITYREF_SEMICOL_MISSING' type='enum'/>
+ <exports symbol='XML_DTD_MULTIPLE_ID' type='enum'/>
+ <exports symbol='XML_FROM_XPATH' type='enum'/>
+ <exports symbol='XML_TREE_INVALID_DEC' type='enum'/>
+ <exports symbol='XML_SCHEMAP_EXTENSION_NO_BASE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_5' type='enum'/>
+ <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_4' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_DOCTYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_3' type='enum'/>
+ <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP' type='enum'/>
+ <exports symbol='XML_SCHEMAP_NO_XSI' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_3' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_1' type='enum'/>
+ <exports symbol='XML_CHECK_NO_NAME' type='enum'/>
+ <exports symbol='XML_ERR_CONDSEC_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_PI' type='enum'/>
+ <exports symbol='XML_ERR_EQUAL_REQUIRED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_WHITE_SPACE' type='enum'/>
+ <exports symbol='XML_DTD_UNKNOWN_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_5_1_2' type='enum'/>
+ <exports symbol='XML_RNGP_INTERLEAVE_CREATE_FAILED' type='enum'/>
+ <exports symbol='XML_IO_EAGAIN' type='enum'/>
+ <exports symbol='XML_ERR_NOTATION_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_DTD_ENTITY_TYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_4' type='enum'/>
+ <exports symbol='XML_RNGP_GRAMMAR_CONTENT' type='enum'/>
+ <exports symbol='XML_FTP_URL_SYNTAX' type='enum'/>
+ <exports symbol='XML_ERR_NONE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD' type='enum'/>
+ <exports symbol='XML_XPATH_NUMBER_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_FACET_TYPE' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_START_ONEMORE' type='enum'/>
+ <exports symbol='XML_ERR_CONDSEC_INVALID' type='enum'/>
+ <exports symbol='XML_XINCLUDE_INCLUDE_IN_INCLUDE' type='enum'/>
+ <exports symbol='XML_ERR_ENTITYREF_IN_EPILOG' type='enum'/>
+ <exports symbol='XML_RNGP_GRAMMAR_MISSING' type='enum'/>
+ <exports symbol='XML_RNGP_GRAMMAR_NO_START' type='enum'/>
+ <exports symbol='XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_LIST_INTERLEAVE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ELEMENT_3' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_REF' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_EMPTY' type='enum'/>
+ <exports symbol='XML_FROM_I18N' type='enum'/>
+ <exports symbol='XML_DTD_MISSING_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_IO_EMFILE' type='enum'/>
+ <exports symbol='XML_RNGP_EMPTY_NOT_EMPTY' type='enum'/>
+ <exports symbol='XML_ERR_VERSION_MISSING' type='enum'/>
+ <exports symbol='XML_IO_NO_INPUT' type='enum'/>
+ <exports symbol='XML_NS_ERR_UNDEFINED_NAMESPACE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MINLENGTH_VALID' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_WILDCARD' type='enum'/>
+ <exports symbol='XML_IO_WRITE' type='enum'/>
+ <exports symbol='XML_ERR_ENTITY_PE_INTERNAL' type='enum'/>
+ <exports symbol='XML_DTD_XMLID_VALUE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_DERIVED_OK_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_DERIVED_OK_2_1' type='enum'/>
+ <exports symbol='XML_CHECK_NOT_NS_DECL' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_ELEM' type='enum'/>
+ <exports symbol='XML_IO_NETWORK_ATTEMPT' type='enum'/>
+ <exports symbol='XML_MODULE_CLOSE' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_START_EMPTY' type='enum'/>
+ <exports symbol='XML_ERR_ATTLIST_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_XINCLUDE_TEXT_FRAGMENT' type='enum'/>
+ <exports symbol='XML_C14N_RELATIVE_NAMESPACE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_FAILED_LOAD' type='enum'/>
+ <exports symbol='XML_ERR_ATTRIBUTE_WITHOUT_VALUE' type='enum'/>
+ <exports symbol='XML_ERR_NAME_TOO_LONG' type='enum'/>
+ <exports symbol='XML_XPTR_SYNTAX_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_TYPE' type='enum'/>
+ <exports symbol='XML_CHECK_WRONG_DOC' type='enum'/>
+ <exports symbol='XML_NS_ERR_XML_NAMESPACE' type='enum'/>
+ <exports symbol='XML_ERR_DOCTYPE_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_XINCLUDE_PARSE_VALUE' type='enum'/>
+ <exports symbol='XML_RNGP_NSNAME_NO_NS' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_IMPORT_2_2' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_ELEMENT' type='enum'/>
+ <exports symbol='XML_RNGP_PARENTREF_NAME_INVALID' type='enum'/>
+ <exports symbol='XML_NS_ERR_QNAME' type='enum'/>
+ <exports symbol='XML_DTD_NOTATION_VALUE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_3' type='enum'/>
+ <exports symbol='XML_I18N_NO_NAME' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_1' type='enum'/>
+ <exports symbol='XML_RNGP_EXCEPT_MISSING' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_CT_EXTENDS_1_2' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_ALL_CHILD' type='enum'/>
+ <exports symbol='XML_DTD_MIXED_CORRUPT' type='enum'/>
+ <exports symbol='XML_ERR_ENTITY_BOUNDARY' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ELEMFORMDEFAULT_VALUE' type='enum'/>
+ <exports symbol='XML_I18N_EXCESS_HANDLER' type='enum'/>
+ <exports symbol='XML_RNGP_DATA_CONTENT' type='enum'/>
+ <exports symbol='XML_ERR_STRING_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_RNGP_EXCEPT_MULTIPLE' type='enum'/>
+ <exports symbol='XML_IO_EDEADLK' type='enum'/>
+ <exports symbol='XML_ERR_ATTRIBUTE_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE' type='enum'/>
+ <exports symbol='XML_IO_EINVAL' type='enum'/>
+ <exports symbol='XML_IO_ENAMETOOLONG' type='enum'/>
+ <exports symbol='XML_RNGP_EXTERNAL_REF_FAILURE' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_START_TEXT' type='enum'/>
+ <exports symbol='XML_CHECK_NO_DOC' type='enum'/>
+ <exports symbol='XML_DTD_INVALID_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_PATTERN_VALID' type='enum'/>
+ <exports symbol='XML_RNGP_TYPE_MISSING' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1' type='enum'/>
+ <exports symbol='XML_ERR_TAG_NAME_MISMATCH' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3' type='enum'/>
+ <exports symbol='XML_ERR_ENCODING_NAME' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5' type='enum'/>
+ <exports symbol='XML_SCHEMAV_MISC' type='enum'/>
+ <exports symbol='XML_IO_ECONNREFUSED' type='enum'/>
+ <exports symbol='XML_ERR_XMLDECL_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_P_PROPS_CORRECT_1' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_ENTITYREF' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_2_1' type='enum'/>
+ <exports symbol='XML_XINCLUDE_BUILD_FAILED' type='enum'/>
+ <exports symbol='XML_ERR_PEREF_NO_NAME' type='enum'/>
+ <exports symbol='XML_ERR_ENTITYREF_AT_EOF' type='enum'/>
+ <exports symbol='XML_SCHEMAP_NOATTR_NOREF' type='enum'/>
+ <exports symbol='XML_RNGP_ATTRIBUTE_CHILDREN' type='enum'/>
+ <exports symbol='XML_XPATH_UNDEF_PREFIX_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_1' type='enum'/>
+ <exports symbol='XML_SAVE_NO_DOCTYPE' type='enum'/>
+ <exports symbol='XML_ERR_PEREF_IN_EPILOG' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_4' type='enum'/>
+ <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_4' type='enum'/>
+ <exports symbol='XML_ERR_URI_FRAGMENT' type='enum'/>
+ <exports symbol='XML_IO_ESPIPE' type='enum'/>
+ <exports symbol='XML_DTD_NO_DOC' type='enum'/>
+ <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_NOT_SCHEMA' type='enum'/>
+ <exports symbol='XML_FROM_SCHEMASV' type='enum'/>
+ <exports symbol='XML_FROM_SCHEMASP' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_3_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_1' type='enum'/>
+ <exports symbol='XML_ERR_MIXED_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_DTD_STANDALONE_WHITE_SPACE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_FACET' type='enum'/>
+ <exports symbol='XML_IO_ENOTEMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAV_WRONGELEM' type='enum'/>
+ <exports symbol='XML_RNGP_TYPE_NOT_FOUND' type='enum'/>
+ <exports symbol='XML_IO_BUFFER_FULL' type='enum'/>
+ <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_6' type='enum'/>
+ <exports symbol='XML_DTD_CONTENT_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_MEMBER_TYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_NOROOT' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_6' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REDEFINED_TYPE' type='enum'/>
+ <exports symbol='XML_ERR_CDATA_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_TYPE_3_1_2' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_TYPE_3_1_1' type='enum'/>
+ <exports symbol='XML_CHECK_NS_ANCESTOR' type='enum'/>
+ <exports symbol='XML_ERR_DOCUMENT_END' type='enum'/>
+ <exports symbol='XML_ERR_ENTITY_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ENUMERATION_VALID' type='enum'/>
+ <exports symbol='XML_ERR_CHARREF_IN_PROLOG' type='enum'/>
+ <exports symbol='XML_RNGP_INVALID_DEFINE_NAME' type='enum'/>
+ <exports symbol='XML_SAVE_UNKNOWN_ENCODING' type='enum'/>
+ <exports symbol='XML_ERR_CONDSEC_INVALID_KEYWORD' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_7' type='enum'/>
+ <exports symbol='XML_SCHEMAV_NOTYPE' type='enum'/>
+ <exports symbol='XML_ERR_NO_MEMORY' type='enum'/>
+ <exports symbol='XML_FROM_IO' type='enum'/>
+ <exports symbol='XML_HTML_UNKNOWN_TAG' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_ATTR_NAME' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_START_ATTR' type='enum'/>
+ <exports symbol='XML_CHECK_WRONG_NAME' type='enum'/>
+ <exports symbol='XML_SCHEMAV_NOTEMPTY' type='enum'/>
+ <exports symbol='XML_IO_EROFS' type='enum'/>
+ <exports symbol='XML_IO_EXDEV' type='enum'/>
+ <exports symbol='XML_XINCLUDE_NO_FALLBACK' type='enum'/>
+ <exports symbol='XML_RNGP_URI_FRAGMENT' type='enum'/>
+ <exports symbol='XML_FROM_MEMORY' type='enum'/>
+ <exports symbol='XML_ERR_MISSING_ENCODING' type='enum'/>
+ <exports symbol='XML_RNGP_ELEMENT_CONTENT' type='enum'/>
+ <exports symbol='XML_RNGP_UNKNOWN_TYPE_LIB' type='enum'/>
+ <exports symbol='XML_SCHEMAP_NOT_DETERMINISTIC' type='enum'/>
+ <exports symbol='XML_XPATH_EXPRESSION_OK' type='enum'/>
+ <exports symbol='XML_HTTP_UNKNOWN_HOST' type='enum'/>
+ <exports symbol='XML_ERR_ENTITY_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_DTD_NO_DTD' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_ONEMORE_GROUP_ATTR' type='enum'/>
+ <exports symbol='XML_ERR_VALUE_REQUIRED' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_LIST_TEXT' type='enum'/>
+ <exports symbol='XML_RNGP_URI_NOT_ABSOLUTE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNION_NOT_EXPRESSIBLE' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_ATTR' type='enum'/>
+ <exports symbol='XML_FTP_PASV_ANSWER' type='enum'/>
+ <exports symbol='XML_ERR_VERSION_MISMATCH' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_BOOLEAN' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_4_2' type='enum'/>
+ <exports symbol='XML_DTD_ELEM_DEFAULT_NAMESPACE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_4' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REGEXP_INVALID' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_1' type='enum'/>
+ <exports symbol='XML_C14N_CREATE_STACK' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_1' type='enum'/>
+ <exports symbol='XML_FROM_RELAXNGV' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME' type='enum'/>
+ <exports symbol='XML_CHECK_ENTITY_TYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CONSTRUCT' type='enum'/>
+ <exports symbol='XML_RNGP_EXTERNALREF_RECURSE' type='enum'/>
+ <exports symbol='XML_RNGP_CHOICE_CONTENT' type='enum'/>
+ <exports symbol='XML_RNGP_UNKNOWN_COMBINE' type='enum'/>
+ <exports symbol='XML_RNGP_START_EMPTY' type='enum'/>
+ <exports symbol='XML_IO_ENCODER' type='enum'/>
+ <exports symbol='XML_WAR_NS_URI' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ATTRGRP_NONAME_NOREF' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1' type='enum'/>
+ <exports symbol='XML_ERR_ENTITY_IS_EXTERNAL' type='enum'/>
+ <exports symbol='XML_WAR_UNDECLARED_ENTITY' type='enum'/>
+ <exports symbol='XML_SCHEMAV_ATTRUNKNOWN' type='enum'/>
+ <exports symbol='XML_IO_ENODEV' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_REF' type='enum'/>
+ <exports symbol='XML_FROM_PARSER' type='enum'/>
+ <exports symbol='XML_C14N_CREATE_CTXT' type='enum'/>
+ <exports symbol='XML_XINCLUDE_TEXT_DOCUMENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_PREFIX' type='enum'/>
+ <exports symbol='XML_XINCLUDE_FALLBACKS_IN_INCLUDE' type='enum'/>
+ <exports symbol='XML_XPATH_INVALID_TYPE' type='enum'/>
+ <exports symbol='XML_CHECK_NS_SCOPE' type='enum'/>
+ <exports symbol='XML_IO_FLUSH' type='enum'/>
+ <exports symbol='XML_CATALOG_ENTRY_BROKEN' type='enum'/>
+ <exports symbol='XML_XPATH_INVALID_CTXT_POSITION' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_LENGTH_VALID' type='enum'/>
+ <exports symbol='XML_DTD_STANDALONE_DEFAULTED' type='enum'/>
+ <exports symbol='XML_DTD_UNKNOWN_ELEM' type='enum'/>
+ <exports symbol='XML_WAR_SPACE_VALUE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_FACET_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAP_NOTATION_NO_NAME' type='enum'/>
+ <exports symbol='XML_XPATH_START_LITERAL_ERROR' type='enum'/>
+ <exports symbol='XML_ERR_ELEMCONTENT_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_RNGP_INCLUDE_FAILURE' type='enum'/>
+ <exports symbol='XML_ERR_COMMENT_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2' type='enum'/>
+ <exports symbol='XML_BUF_OVERFLOW' type='enum'/>
+ <exports symbol='XML_IO_EMSGSIZE' type='enum'/>
+ <exports symbol='XML_FROM_CATALOG' type='enum'/>
+ <exports symbol='XML_SCHEMAV_ATTRINVALID' type='enum'/>
+ <exports symbol='XML_NS_ERR_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_2' type='enum'/>
+ <exports symbol='XML_FROM_HTML' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_MAXOCCURS' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD' type='enum'/>
+ <exports symbol='XML_RNGP_ELEMENT_NAME' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_START_VALUE' type='enum'/>
+ <exports symbol='XML_XPATH_INVALID_ARITY' type='enum'/>
+ <exports symbol='XML_RNGP_ERROR_TYPE_LIB' type='enum'/>
+ <exports symbol='XML_XPTR_EVAL_FAILED' type='enum'/>
+ <exports symbol='XML_DTD_NO_ROOT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_IMPORT_REDEFINE_NSNAME' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_ATTR_CHILD' type='enum'/>
+ <exports symbol='XML_ERR_UNKNOWN_ENCODING' type='enum'/>
+ <exports symbol='XML_RNGP_REF_NO_NAME' type='enum'/>
+ <exports symbol='XML_C14N_UNKNOW_NODE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REF_AND_SUBTYPE' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR' type='enum'/>
+ <exports symbol='XML_C14N_INVALID_NODE' type='enum'/>
+ <exports symbol='XML_RNGP_TEXT_EXPECTED' type='enum'/>
+ <exports symbol='XML_XPATH_UNDEF_VARIABLE_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAV_NOROLLBACK' type='enum'/>
+ <exports symbol='XML_SCHEMAV_FACET' type='enum'/>
+ <exports symbol='XML_ERR_INVALID_DEC_CHARREF' type='enum'/>
+ <exports symbol='XML_RNGP_NEED_COMBINE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_NOTTOPLEVEL' type='enum'/>
+ <exports symbol='XML_CATALOG_MISSING_ATTR' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_LIST_LIST' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_TYPE_2' type='enum'/>
+ <exports symbol='XML_RNGP_EXCEPT_EMPTY' type='enum'/>
+ <exports symbol='XML_XPATH_UNFINISHED_LITERAL_ERROR' type='enum'/>
+ <exports symbol='XML_RNGP_INTERLEAVE_NO_CONTENT' type='enum'/>
+ <exports symbol='XML_ERR_INVALID_HEX_CHARREF' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF' type='enum'/>
+ <exports symbol='XML_ERR_CHARREF_IN_DTD' type='enum'/>
+ <exports symbol='XML_IO_ENFILE' type='enum'/>
+ <exports symbol='XML_ERR_ENTITY_IS_PARAMETER' type='enum'/>
+ <exports symbol='XML_I18N_CONV_FAILED' type='enum'/>
+ <exports symbol='XML_CHECK_WRONG_PARENT' type='enum'/>
+ <exports symbol='XML_RNGP_PARENTREF_NO_NAME' type='enum'/>
+ <exports symbol='XML_IO_EPERM' type='enum'/>
+ <exports symbol='XML_IO_ENETUNREACH' type='enum'/>
+ <exports symbol='XML_ERR_CHARREF_AT_EOF' type='enum'/>
+ <exports symbol='XML_IO_ENOMEM' type='enum'/>
+ <exports symbol='XML_IO_ENOSPC' type='enum'/>
+ <exports symbol='XML_FROM_NONE' type='enum'/>
+ <exports symbol='XML_RNGP_TYPE_VALUE' type='enum'/>
+ <exports symbol='XML_FROM_REGEXP' type='enum'/>
+ <exports symbol='XML_RNGP_DEF_CHOICE_AND_INTERLEAVE' type='enum'/>
+ <exports symbol='XML_TREE_UNTERMINATED_ENTITY' type='enum'/>
+ <exports symbol='XML_ERR_URI_REQUIRED' type='enum'/>
+ <exports symbol='XML_FROM_TREE' type='enum'/>
+ <exports symbol='XML_ERR_EXT_ENTITY_STANDALONE' type='enum'/>
+ <exports symbol='XML_TREE_INVALID_HEX' type='enum'/>
+ <exports symbol='XML_C14N_REQUIRES_UTF8' type='enum'/>
+ <exports symbol='XML_ERR_ENTITY_PROCESSING' type='enum'/>
+ <exports symbol='XML_FROM_XINCLUDE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_CVC_SIMPLE_TYPE' type='enum'/>
+ <exports symbol='XML_RNGP_GRAMMAR_EMPTY' type='enum'/>
+ <exports symbol='XML_CHECK_NOT_NCNAME' type='enum'/>
+ <exports symbol='XML_RNGP_ELEMENT_NO_CONTENT' type='enum'/>
+ <exports symbol='XML_XINCLUDE_NO_HREF' type='enum'/>
+ <exports symbol='XML_XPATH_INVALID_OPERAND' type='enum'/>
+ <exports symbol='XML_IO_ENOEXEC' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_LIST_REF' type='enum'/>
+ <exports symbol='XML_XINCLUDE_HREF_URI' type='enum'/>
+ <exports symbol='XML_SCHEMAP_FAILED_PARSE' type='enum'/>
+ <exports symbol='XML_RNGP_HREF_ERROR' type='enum'/>
+ <exports symbol='XML_ERR_ATTRIBUTE_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ATTR_NONAME_NOREF' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_ELEMENT_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE' type='enum'/>
+ <exports symbol='XML_MODULE_OPEN' type='enum'/>
+ <exports symbol='XML_ERR_ENTITY_CHAR_ERROR' type='enum'/>
+ <exports symbol='XML_DTD_UNKNOWN_ENTITY' type='enum'/>
+ <exports symbol='XML_RNGP_PARSE_ERROR' type='enum'/>
+ <exports symbol='XML_ERR_NOTATION_PROCESSING' type='enum'/>
+ <exports symbol='XML_RNGP_XML_NS' type='enum'/>
+ <exports symbol='XML_ERR_MISPLACED_CDATA_END' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_ONEMORE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_CT_EXTENDS_1_1' type='enum'/>
+ <exports symbol='XML_RNGP_REF_CREATE_FAILED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_CT_EXTENDS_1_3' type='enum'/>
+ <exports symbol='XML_DTD_ROOT_NAME' type='enum'/>
+ <exports symbol='XML_RNGP_REF_NOT_EMPTY' type='enum'/>
+ <exports symbol='XML_CHECK_NO_HREF' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_CHOICE_CHILD' type='enum'/>
+ <exports symbol='XML_RNGP_ELEM_CONTENT_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAV_HAVEDEFAULT' type='enum'/>
+ <exports symbol='XML_I18N_NO_HANDLER' type='enum'/>
+ <exports symbol='XML_RNGP_MISSING_HREF' type='enum'/>
+ <exports symbol='XML_ERR_PI_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_ERR_UNKNOWN_VERSION' type='enum'/>
+ <exports symbol='XML_FROM_RELAXNGP' type='enum'/>
+ <exports symbol='XML_FROM_VALID' type='enum'/>
+ <exports symbol='XML_SCHEMAP_S4S_ATTR_INVALID_VALUE' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_TEXT' type='enum'/>
+ <exports symbol='XML_ERR_NO_DTD' type='enum'/>
+ <exports symbol='XML_RNGP_START_CHOICE_AND_INTERLEAVE' type='enum'/>
+ <exports symbol='XML_FROM_XSLT' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_LIST_ATTR' type='enum'/>
+ <exports symbol='XML_IO_EACCES' type='enum'/>
+ <exports symbol='XML_ERR_NOTATION_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_SCHEMATRONV_ASSERT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAV_INVALIDATTR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_RECURSIVE' type='enum'/>
+ <exports symbol='XML_HTTP_URL_SYNTAX' type='enum'/>
+ <exports symbol='XML_SCHEMAP_GROUP_NONAME_NOREF' type='enum'/>
+ <exports symbol='XML_DTD_DUP_TOKEN' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4' type='enum'/>
+ <exports symbol='XML_SCHEMAP_S4S_ELEM_MISSING' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_5_1_1' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_FRAGMENT' type='enum'/>
+ <exports symbol='XML_DTD_LOAD_ERROR' type='enum'/>
+ <exports symbol='XML_CHECK_UNKNOWN_NODE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_NOTATION_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAP_C_PROPS_CORRECT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_CT_1' type='enum'/>
+ <exports symbol='XML_RNGP_EMPTY_CONTENT' type='enum'/>
+ <exports symbol='XML_IO_EALREADY' type='enum'/>
+ <exports symbol='XML_IO_ERANGE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1' type='enum'/>
+ <exports symbol='XML_IO_ENOSYS' type='enum'/>
+ <exports symbol='XML_SCHEMAP_NOTHING_TO_PARSE' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1' type='enum'/>
+ <exports symbol='XML_XPATH_INVALID_CTXT_SIZE' type='enum'/>
+ <exports symbol='XML_CHECK_NO_ELEM' type='enum'/>
+ <exports symbol='XML_XPATH_EXPR_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI' type='enum'/>
+ <exports symbol='XML_RNGP_DEFINE_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_ENTITY' type='enum'/>
+ <exports symbol='XML_CHECK_NAME_NOT_NULL' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_MINOCCURS' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ALL_LIMITED' type='enum'/>
+ <exports symbol='XML_SCHEMATRONV_REPORT' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID' type='enum'/>
+ <exports symbol='XML_IO_EPIPE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_NOTYPE_NOREF' type='enum'/>
+ <exports symbol='XML_RNGP_ATTRIBUTE_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3' type='enum'/>
+ <exports symbol='XML_IO_LOAD_ERROR' type='enum'/>
+ <exports symbol='XML_CHECK_NOT_ENTITY_DECL' type='enum'/>
+ <exports symbol='XML_RNGP_CREATE_FAILURE' type='enum'/>
+ <exports symbol='XML_IO_EBADF' type='enum'/>
+ <exports symbol='XML_RNGP_PREFIX_UNDEFINED' type='enum'/>
+ <exports symbol='XML_ERR_HYPHEN_IN_COMMENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE' type='enum'/>
+ <exports symbol='XML_RNGP_INCLUDE_EMPTY' type='enum'/>
+ <exports symbol='XML_RNGP_PARENTREF_NOT_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAP_FACET_NO_VALUE' type='enum'/>
+ <exports symbol='XML_XPTR_SUB_RESOURCE_ERROR' type='enum'/>
+ <exports symbol='XML_ERR_NOT_STANDALONE' type='enum'/>
+ <exports symbol='XML_RNGP_START_MISSING' type='enum'/>
+ <exports symbol='XML_DTD_NO_PREFIX' type='enum'/>
+ <exports symbol='XML_CATALOG_RECURSION' type='enum'/>
+ <exports symbol='XML_RNGP_UNKNOWN_CONSTRUCT' type='enum'/>
+ <exports symbol='XML_ERR_UNPARSED_ENTITY' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_IMPORT_CHILD' type='enum'/>
+ <exports symbol='XML_FTP_EPSV_ANSWER' type='enum'/>
+ <exports symbol='XML_CHECK_NOT_UTF8' type='enum'/>
+ <exports symbol='XML_ERR_FATAL' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_1' type='enum'/>
+ <exports symbol='XML_DTD_ID_REDEFINED' type='enum'/>
+ <exports symbol='XML_XPATH_ENCODING_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_INCLUDE' type='enum'/>
+ <exports symbol='XML_RNGP_NSNAME_ATTR_ANCESTOR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_REDEFINE' type='enum'/>
+ <exports symbol='XML_RNGP_REF_CYCLE' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_ATTR_ATTR' type='enum'/>
+ <exports symbol='XML_XPTR_UNKNOWN_SCHEME' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_FACET_VALUE' type='enum'/>
+ <exports symbol='XML_FROM_CHECK' type='enum'/>
+ <exports symbol='XML_SCHEMAV_ELEMCONT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REF_AND_CONTENT' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_START_INTERLEAVE' type='enum'/>
+ <exports symbol='XML_DTD_CONTENT_NOT_DETERMINIST' type='enum'/>
+ <exports symbol='XML_DTD_NO_ELEM_NAME' type='enum'/>
+ <exports symbol='XML_CHECK_NO_PREV' type='enum'/>
+ <exports symbol='XML_RNGP_VALUE_NO_CONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD' type='enum'/>
+ <exports symbol='XML_TREE_NOT_UTF8' type='enum'/>
+ <exports symbol='XML_IO_EAFNOSUPPORT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1' type='enum'/>
+ <exports symbol='XML_CATALOG_NOT_CATALOG' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4' type='enum'/>
+ <exports symbol='XML_IO_EFBIG' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_COMMENT' type='enum'/>
+ <exports symbol='XML_RNGP_REF_NAME_INVALID' type='enum'/>
+ <exports symbol='XML_ERR_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1' type='enum'/>
+ <exports symbol='XML_DTD_ELEM_NAMESPACE' type='enum'/>
+ <exports symbol='XML_CHECK_OUTSIDE_DICT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_P_PROPS_CORRECT_2_1' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_2_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_2_2_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_P_PROPS_CORRECT_2_2' type='enum'/>
+ <exports symbol='XML_WAR_CATALOG_PI' type='enum'/>
+ <exports symbol='XML_REGEXP_COMPILE_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MININCLUSIVE_VALID' type='enum'/>
+ <exports symbol='XML_SCHEMAV_ISABSTRACT' type='enum'/>
+ <exports symbol='XML_RNGP_DEFINE_MISSING' type='enum'/>
+ <exports symbol='XML_ERR_NS_DECL_ERROR' type='enum'/>
+ <exports symbol='XML_ERR_INTERNAL_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1' type='enum'/>
+ <exports symbol='XML_ERR_ELEMCONTENT_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_FROM_NAMESPACE' type='enum'/>
+ <exports symbol='XML_IO_EBUSY' type='enum'/>
+ <exports symbol='XML_RNGP_INCLUDE_RECURSE' type='enum'/>
+ <exports symbol='XML_ERR_INVALID_URI' type='enum'/>
+ <exports symbol='XML_IO_ESRCH' type='enum'/>
+ <exports symbol='XML_FROM_XPOINTER' type='enum'/>
+ <exports symbol='XML_FROM_BUFFER' type='enum'/>
+ <exports symbol='XML_ERR_PEREF_IN_PROLOG' type='enum'/>
+ <exports symbol='XML_RNGP_TEXT_HAS_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAV_NOTNILLABLE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ELEM_DEFAULT_FIXED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REDEFINED_ELEMENT' type='enum'/>
+ <exports symbol='XML_RNGP_REF_NO_DEF' type='enum'/>
+ <exports symbol='XML_ERR_NOT_WELL_BALANCED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_5' type='enum'/>
+ <exports symbol='XML_ERR_INVALID_CHARREF' type='enum'/>
+ <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_2' type='enum'/>
+ <exports symbol='XML_ERR_INVALID_CHAR' type='enum'/>
+ <exports symbol='XML_RNGP_FOREIGN_ELEMENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DEF_AND_PREFIX' type='enum'/>
+ <exports symbol='XML_ERR_MIXED_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_ERR_USER_STOP' type='enum'/>
+ <exports symbol='XML_CHECK_FOUND_CDATA' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INTERNAL' type='enum'/>
+ <exports symbol='XML_SCHEMAV_INVALIDELEM' type='enum'/>
+ <exports symbol='XML_ERR_INVALID_ENCODING' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_AU' type='enum'/>
+ <exports symbol='XML_CHECK_WRONG_NEXT' type='enum'/>
+ <exports symbol='XML_ERR_TAG_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_ERR_LTSLASH_REQUIRED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REDEFINED_ATTRGROUP' type='enum'/>
+ <exports symbol='XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH' type='enum'/>
+ <exports symbol='XML_ERR_PEREF_IN_INT_SUBSET' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_BASE_TYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_ELEM_CHILD' type='enum'/>
+ <exports symbol='XML_WAR_UNKNOWN_VERSION' type='enum'/>
+ <exports symbol='XML_DTD_CONTENT_MODEL' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1' type='enum'/>
+ <exports symbol='XML_ERR_OK' type='enum'/>
+ <exports symbol='XML_NS_ERR_COLON' type='enum'/>
+ <exports symbol='XML_WAR_ENTITY_REDEFINED' type='enum'/>
+ <exports symbol='XML_ERR_ATTRIBUTE_REDEFINED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SIMPLETYPE_NONAME' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_GROUP_CHILD' type='enum'/>
+ <exports symbol='XML_IO_ENOTSUP' type='enum'/>
+ <exports symbol='XML_WAR_NS_URI_RELATIVE' type='enum'/>
+ <exports symbol='XML_NS_ERR_ATTRIBUTE_REDEFINED' type='enum'/>
+ <exports symbol='XML_ERR_NAME_REQUIRED' type='enum'/>
+ <exports symbol='XML_IO_ETIMEDOUT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INVALID_ENUM' type='enum'/>
+ <exports symbol='XML_RNGP_DEFINE_NAME_MISSING' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2' type='enum'/>
+ <exports symbol='XML_RNGP_EMPTY_CONSTRUCT' type='enum'/>
+ <exports symbol='XML_RNGP_FORBIDDEN_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_FROM_OUTPUT' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1' type='enum'/>
+ <exports symbol='XML_CHECK_WRONG_PREV' type='enum'/>
+ <exports symbol='XML_IO_EEXIST' type='enum'/>
+ <exports symbol='XML_SCHEMAP_MG_PROPS_CORRECT_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_MG_PROPS_CORRECT_1' type='enum'/>
+ <exports symbol='XML_FROM_URI' type='enum'/>
+ <exports symbol='XML_RNGP_PAT_LIST_ELEM' type='enum'/>
+ <exports symbol='XML_SCHEMAV_UNDECLAREDELEM' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3' type='enum'/>
+ <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_3' type='enum'/>
+ <exports symbol='XML_XINCLUDE_INVALID_CHAR' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4' type='enum'/>
+ <exports symbol='XML_XPATH_INVALID_PREDICATE_ERROR' type='enum'/>
+ <exports symbol='xmlErrorPtr' type='typedef'/>
+ <exports symbol='xmlErrorLevel' type='typedef'/>
+ <exports symbol='xmlParserErrors' type='typedef'/>
+ <exports symbol='xmlErrorDomain' type='typedef'/>
+ <exports symbol='xmlError' type='typedef'/>
+ <exports symbol='_xmlError' type='struct'/>
+ <exports symbol='xmlParserValidityError' type='function'/>
+ <exports symbol='xmlGenericErrorFunc' type='function'/>
+ <exports symbol='xmlSetGenericErrorFunc' type='function'/>
+ <exports symbol='xmlParserPrintFileInfo' type='function'/>
+ <exports symbol='xmlCtxtResetLastError' type='function'/>
+ <exports symbol='xmlResetLastError' type='function'/>
+ <exports symbol='initGenericErrorDefaultFunc' type='function'/>
+ <exports symbol='xmlCopyError' type='function'/>
+ <exports symbol='xmlParserValidityWarning' type='function'/>
+ <exports symbol='xmlParserPrintFileContext' type='function'/>
+ <exports symbol='xmlParserError' type='function'/>
+ <exports symbol='xmlParserWarning' type='function'/>
+ <exports symbol='xmlStructuredErrorFunc' type='function'/>
+ <exports symbol='xmlSetStructuredErrorFunc' type='function'/>
+ <exports symbol='xmlResetError' type='function'/>
+ <exports symbol='xmlGetLastError' type='function'/>
+ <exports symbol='xmlCtxtGetLastError' type='function'/>
+ </file>
+ <file name='xmlexports'>
+ <summary>macros for marking symbols as exportable/importable.</summary>
+ <description>macros for marking symbols as exportable/importable. </description>
+ <author>Igor Zlatovic &lt;igor@zlatkovic.com&gt; </author>
+ <exports symbol='XMLCALL' type='macro'/>
+ <exports symbol='XMLPUBVAR' type='macro'/>
+ <exports symbol='XMLCDECL' type='macro'/>
+ <exports symbol='XMLPUBFUN' type='macro'/>
+ <exports symbol='LIBXML_DLL_IMPORT' type='macro'/>
+ </file>
+ <file name='xmlmemory'>
+ <summary>interface for the memory allocator</summary>
+ <description>provides interfaces for the memory allocator, including debugging capabilities. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlRealloc' type='macro'/>
+ <exports symbol='xmlMalloc' type='macro'/>
+ <exports symbol='xmlMallocAtomic' type='macro'/>
+ <exports symbol='DEBUG_MEMORY' type='macro'/>
+ <exports symbol='xmlMemStrdup' type='macro'/>
+ <exports symbol='xmlMemRealloc' type='function'/>
+ <exports symbol='xmlInitMemory' type='function'/>
+ <exports symbol='xmlMemFree' type='function'/>
+ <exports symbol='xmlMemMalloc' type='function'/>
+ <exports symbol='xmlMemDisplayLast' type='function'/>
+ <exports symbol='xmlMemGet' type='function'/>
+ <exports symbol='xmlMemoryDump' type='function'/>
+ <exports symbol='xmlMallocLoc' type='function'/>
+ <exports symbol='xmlMemDisplay' type='function'/>
+ <exports symbol='xmlMemBlocks' type='function'/>
+ <exports symbol='xmlGcMemGet' type='function'/>
+ <exports symbol='xmlStrdupFunc' type='function'/>
+ <exports symbol='xmlFreeFunc' type='function'/>
+ <exports symbol='xmlMemShow' type='function'/>
+ <exports symbol='xmlMallocAtomicLoc' type='function'/>
+ <exports symbol='xmlReallocLoc' type='function'/>
+ <exports symbol='xmlCleanupMemory' type='function'/>
+ <exports symbol='xmlMemUsed' type='function'/>
+ <exports symbol='xmlMemSetup' type='function'/>
+ <exports symbol='xmlReallocFunc' type='function'/>
+ <exports symbol='xmlMallocFunc' type='function'/>
+ <exports symbol='xmlGcMemSetup' type='function'/>
+ <exports symbol='xmlMemoryStrdup' type='function'/>
+ <exports symbol='xmlMemStrdupLoc' type='function'/>
+ </file>
+ <file name='xmlmodule'>
+ <summary>dynamic module loading</summary>
+ <description>basic API for dynamic module loading, used by libexslt added in 2.6.17 </description>
+ <author>Joel W. Reed </author>
+ <exports symbol='XML_MODULE_LAZY' type='enum'/>
+ <exports symbol='XML_MODULE_LOCAL' type='enum'/>
+ <exports symbol='xmlModule' type='typedef'/>
+ <exports symbol='xmlModulePtr' type='typedef'/>
+ <exports symbol='xmlModuleOption' type='typedef'/>
+ <exports symbol='xmlModuleFree' type='function'/>
+ <exports symbol='xmlModuleSymbol' type='function'/>
+ <exports symbol='xmlModuleOpen' type='function'/>
+ <exports symbol='xmlModuleClose' type='function'/>
+ </file>
+ <file name='xmlreader'>
+ <summary>the XMLReader implementation</summary>
+ <description>API of the XML streaming API based on C# interfaces. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_READER_TYPE_DOCUMENT_FRAGMENT' type='enum'/>
+ <exports symbol='XML_PARSER_SEVERITY_ERROR' type='enum'/>
+ <exports symbol='XML_READER_TYPE_ELEMENT' type='enum'/>
+ <exports symbol='XML_READER_TYPE_TEXT' type='enum'/>
+ <exports symbol='XML_READER_TYPE_XML_DECLARATION' type='enum'/>
+ <exports symbol='XML_READER_TYPE_NONE' type='enum'/>
+ <exports symbol='XML_PARSER_SEVERITY_VALIDITY_ERROR' type='enum'/>
+ <exports symbol='XML_READER_TYPE_PROCESSING_INSTRUCTION' type='enum'/>
+ <exports symbol='XML_TEXTREADER_MODE_ERROR' type='enum'/>
+ <exports symbol='XML_READER_TYPE_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_PARSER_SEVERITY_WARNING' type='enum'/>
+ <exports symbol='XML_READER_TYPE_DOCUMENT' type='enum'/>
+ <exports symbol='XML_READER_TYPE_DOCUMENT_TYPE' type='enum'/>
+ <exports symbol='XML_READER_TYPE_END_ELEMENT' type='enum'/>
+ <exports symbol='XML_READER_TYPE_WHITESPACE' type='enum'/>
+ <exports symbol='XML_READER_TYPE_NOTATION' type='enum'/>
+ <exports symbol='XML_PARSER_SUBST_ENTITIES' type='enum'/>
+ <exports symbol='XML_READER_TYPE_ENTITY_REFERENCE' type='enum'/>
+ <exports symbol='XML_TEXTREADER_MODE_INITIAL' type='enum'/>
+ <exports symbol='XML_READER_TYPE_COMMENT' type='enum'/>
+ <exports symbol='XML_TEXTREADER_MODE_CLOSED' type='enum'/>
+ <exports symbol='XML_PARSER_DEFAULTATTRS' type='enum'/>
+ <exports symbol='XML_READER_TYPE_ENTITY' type='enum'/>
+ <exports symbol='XML_READER_TYPE_SIGNIFICANT_WHITESPACE' type='enum'/>
+ <exports symbol='XML_READER_TYPE_END_ENTITY' type='enum'/>
+ <exports symbol='XML_PARSER_VALIDATE' type='enum'/>
+ <exports symbol='XML_PARSER_SEVERITY_VALIDITY_WARNING' type='enum'/>
+ <exports symbol='XML_TEXTREADER_MODE_READING' type='enum'/>
+ <exports symbol='XML_TEXTREADER_MODE_EOF' type='enum'/>
+ <exports symbol='XML_READER_TYPE_CDATA' type='enum'/>
+ <exports symbol='XML_PARSER_LOADDTD' type='enum'/>
+ <exports symbol='XML_TEXTREADER_MODE_INTERACTIVE' type='enum'/>
+ <exports symbol='xmlTextReaderPtr' type='typedef'/>
+ <exports symbol='xmlParserSeverities' type='typedef'/>
+ <exports symbol='xmlParserProperties' type='typedef'/>
+ <exports symbol='xmlTextReaderMode' type='typedef'/>
+ <exports symbol='xmlTextReader' type='typedef'/>
+ <exports symbol='xmlTextReaderLocatorPtr' type='typedef'/>
+ <exports symbol='xmlReaderTypes' type='typedef'/>
+ <exports symbol='xmlNewTextReaderFilename' type='function'/>
+ <exports symbol='xmlTextReaderHasAttributes' type='function'/>
+ <exports symbol='xmlTextReaderReadState' type='function'/>
+ <exports symbol='xmlReaderForFile' type='function'/>
+ <exports symbol='xmlTextReaderConstNamespaceUri' type='function'/>
+ <exports symbol='xmlTextReaderCurrentDoc' type='function'/>
+ <exports symbol='xmlTextReaderGetParserLineNumber' type='function'/>
+ <exports symbol='xmlTextReaderExpand' type='function'/>
+ <exports symbol='xmlTextReaderXmlLang' type='function'/>
+ <exports symbol='xmlReaderForDoc' type='function'/>
+ <exports symbol='xmlReaderNewIO' type='function'/>
+ <exports symbol='xmlTextReaderClose' type='function'/>
+ <exports symbol='xmlTextReaderReadInnerXml' type='function'/>
+ <exports symbol='xmlTextReaderConstEncoding' type='function'/>
+ <exports symbol='xmlTextReaderNormalization' type='function'/>
+ <exports symbol='xmlTextReaderGetParserProp' type='function'/>
+ <exports symbol='xmlTextReaderMoveToAttribute' type='function'/>
+ <exports symbol='xmlTextReaderQuoteChar' type='function'/>
+ <exports symbol='xmlTextReaderSetSchema' type='function'/>
+ <exports symbol='xmlTextReaderValue' type='function'/>
+ <exports symbol='xmlTextReaderIsValid' type='function'/>
+ <exports symbol='xmlTextReaderMoveToFirstAttribute' type='function'/>
+ <exports symbol='xmlTextReaderGetParserColumnNumber' type='function'/>
+ <exports symbol='xmlTextReaderConstValue' type='function'/>
+ <exports symbol='xmlNewTextReader' type='function'/>
+ <exports symbol='xmlTextReaderGetAttributeNo' type='function'/>
+ <exports symbol='xmlTextReaderGetAttributeNs' type='function'/>
+ <exports symbol='xmlTextReaderConstName' type='function'/>
+ <exports symbol='xmlTextReaderConstString' type='function'/>
+ <exports symbol='xmlTextReaderConstXmlVersion' type='function'/>
+ <exports symbol='xmlTextReaderDepth' type='function'/>
+ <exports symbol='xmlTextReaderReadString' type='function'/>
+ <exports symbol='xmlTextReaderIsDefault' type='function'/>
+ <exports symbol='xmlTextReaderMoveToNextAttribute' type='function'/>
+ <exports symbol='xmlReaderNewWalker' type='function'/>
+ <exports symbol='xmlTextReaderConstPrefix' type='function'/>
+ <exports symbol='xmlReaderWalker' type='function'/>
+ <exports symbol='xmlTextReaderConstLocalName' type='function'/>
+ <exports symbol='xmlTextReaderNodeType' type='function'/>
+ <exports symbol='xmlFreeTextReader' type='function'/>
+ <exports symbol='xmlTextReaderName' type='function'/>
+ <exports symbol='xmlTextReaderRead' type='function'/>
+ <exports symbol='xmlTextReaderIsEmptyElement' type='function'/>
+ <exports symbol='xmlReaderNewMemory' type='function'/>
+ <exports symbol='xmlTextReaderSchemaValidateCtxt' type='function'/>
+ <exports symbol='xmlTextReaderHasValue' type='function'/>
+ <exports symbol='xmlTextReaderConstBaseUri' type='function'/>
+ <exports symbol='xmlTextReaderBaseUri' type='function'/>
+ <exports symbol='xmlTextReaderMoveToAttributeNo' type='function'/>
+ <exports symbol='xmlTextReaderLocatorLineNumber' type='function'/>
+ <exports symbol='xmlTextReaderMoveToAttributeNs' type='function'/>
+ <exports symbol='xmlTextReaderNext' type='function'/>
+ <exports symbol='xmlTextReaderAttributeCount' type='function'/>
+ <exports symbol='xmlTextReaderLookupNamespace' type='function'/>
+ <exports symbol='xmlTextReaderMoveToElement' type='function'/>
+ <exports symbol='xmlReaderForIO' type='function'/>
+ <exports symbol='xmlTextReaderReadOuterXml' type='function'/>
+ <exports symbol='xmlTextReaderRelaxNGValidateCtxt' type='function'/>
+ <exports symbol='xmlTextReaderPrefix' type='function'/>
+ <exports symbol='xmlTextReaderReadAttributeValue' type='function'/>
+ <exports symbol='xmlTextReaderNextSibling' type='function'/>
+ <exports symbol='xmlTextReaderErrorFunc' type='function'/>
+ <exports symbol='xmlReaderForFd' type='function'/>
+ <exports symbol='xmlTextReaderGetAttribute' type='function'/>
+ <exports symbol='xmlTextReaderLocalName' type='function'/>
+ <exports symbol='xmlTextReaderPreserve' type='function'/>
+ <exports symbol='xmlTextReaderCurrentNode' type='function'/>
+ <exports symbol='xmlTextReaderSetParserProp' type='function'/>
+ <exports symbol='xmlTextReaderGetRemainder' type='function'/>
+ <exports symbol='xmlTextReaderSetErrorHandler' type='function'/>
+ <exports symbol='xmlTextReaderIsNamespaceDecl' type='function'/>
+ <exports symbol='xmlReaderNewDoc' type='function'/>
+ <exports symbol='xmlTextReaderPreservePattern' type='function'/>
+ <exports symbol='xmlTextReaderConstXmlLang' type='function'/>
+ <exports symbol='xmlTextReaderGetErrorHandler' type='function'/>
+ <exports symbol='xmlTextReaderSetStructuredErrorHandler' type='function'/>
+ <exports symbol='xmlReaderNewFile' type='function'/>
+ <exports symbol='xmlTextReaderRelaxNGSetSchema' type='function'/>
+ <exports symbol='xmlReaderNewFd' type='function'/>
+ <exports symbol='xmlTextReaderRelaxNGValidate' type='function'/>
+ <exports symbol='xmlReaderForMemory' type='function'/>
+ <exports symbol='xmlTextReaderSetup' type='function'/>
+ <exports symbol='xmlTextReaderByteConsumed' type='function'/>
+ <exports symbol='xmlTextReaderLocatorBaseURI' type='function'/>
+ <exports symbol='xmlTextReaderNamespaceUri' type='function'/>
+ <exports symbol='xmlTextReaderSchemaValidate' type='function'/>
+ <exports symbol='xmlTextReaderStandalone' type='function'/>
+ </file>
+ <file name='xmlregexp'>
+ <summary>regular expressions handling</summary>
+ <description>basic API for libxml regular expressions handling used for XML Schemas and validation. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_EXP_COUNT' type='enum'/>
+ <exports symbol='XML_EXP_EMPTY' type='enum'/>
+ <exports symbol='XML_EXP_SEQ' type='enum'/>
+ <exports symbol='XML_EXP_ATOM' type='enum'/>
+ <exports symbol='XML_EXP_OR' type='enum'/>
+ <exports symbol='XML_EXP_FORBID' type='enum'/>
+ <exports symbol='xmlRegExecCtxtPtr' type='typedef'/>
+ <exports symbol='xmlExpCtxt' type='typedef'/>
+ <exports symbol='xmlExpNodePtr' type='typedef'/>
+ <exports symbol='xmlExpCtxtPtr' type='typedef'/>
+ <exports symbol='xmlExpNodeType' type='typedef'/>
+ <exports symbol='xmlRegExecCtxt' type='typedef'/>
+ <exports symbol='xmlExpNode' type='typedef'/>
+ <exports symbol='xmlRegexp' type='typedef'/>
+ <exports symbol='xmlRegexpPtr' type='typedef'/>
+ <exports symbol='forbiddenExp' type='variable'/>
+ <exports symbol='emptyExp' type='variable'/>
+ <exports symbol='xmlRegExecCallbacks' type='function'/>
+ <exports symbol='xmlRegNewExecCtxt' type='function'/>
+ <exports symbol='xmlExpNewOr' type='function'/>
+ <exports symbol='xmlRegFreeRegexp' type='function'/>
+ <exports symbol='xmlExpRef' type='function'/>
+ <exports symbol='xmlRegexpIsDeterminist' type='function'/>
+ <exports symbol='xmlRegExecErrInfo' type='function'/>
+ <exports symbol='xmlRegFreeExecCtxt' type='function'/>
+ <exports symbol='xmlExpCtxtNbCons' type='function'/>
+ <exports symbol='xmlExpSubsume' type='function'/>
+ <exports symbol='xmlRegExecPushString2' type='function'/>
+ <exports symbol='xmlRegExecNextValues' type='function'/>
+ <exports symbol='xmlExpExpDerive' type='function'/>
+ <exports symbol='xmlExpIsNillable' type='function'/>
+ <exports symbol='xmlExpFreeCtxt' type='function'/>
+ <exports symbol='xmlExpDump' type='function'/>
+ <exports symbol='xmlExpNewSeq' type='function'/>
+ <exports symbol='xmlExpFree' type='function'/>
+ <exports symbol='xmlExpNewRange' type='function'/>
+ <exports symbol='xmlRegexpCompile' type='function'/>
+ <exports symbol='xmlExpNewAtom' type='function'/>
+ <exports symbol='xmlRegexpExec' type='function'/>
+ <exports symbol='xmlRegExecPushString' type='function'/>
+ <exports symbol='xmlExpGetStart' type='function'/>
+ <exports symbol='xmlExpParse' type='function'/>
+ <exports symbol='xmlExpNewCtxt' type='function'/>
+ <exports symbol='xmlExpGetLanguage' type='function'/>
+ <exports symbol='xmlExpStringDerive' type='function'/>
+ <exports symbol='xmlExpCtxtNbNodes' type='function'/>
+ <exports symbol='xmlExpMaxToken' type='function'/>
+ <exports symbol='xmlRegexpPrint' type='function'/>
+ </file>
+ <file name='xmlsave'>
+ <summary>the XML document serializer</summary>
+ <description>API to save document or subtree of document </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_SAVE_XHTML' type='enum'/>
+ <exports symbol='XML_SAVE_AS_XML' type='enum'/>
+ <exports symbol='XML_SAVE_NO_EMPTY' type='enum'/>
+ <exports symbol='XML_SAVE_NO_XHTML' type='enum'/>
+ <exports symbol='XML_SAVE_NO_DECL' type='enum'/>
+ <exports symbol='XML_SAVE_AS_HTML' type='enum'/>
+ <exports symbol='XML_SAVE_FORMAT' type='enum'/>
+ <exports symbol='XML_SAVE_WSNONSIG' type='enum'/>
+ <exports symbol='xmlSaveOption' type='typedef'/>
+ <exports symbol='xmlSaveCtxt' type='typedef'/>
+ <exports symbol='xmlSaveCtxtPtr' type='typedef'/>
+ <exports symbol='xmlSaveToIO' type='function'/>
+ <exports symbol='xmlSaveToFd' type='function'/>
+ <exports symbol='xmlSaveClose' type='function'/>
+ <exports symbol='xmlSaveSetAttrEscape' type='function'/>
+ <exports symbol='xmlSaveToBuffer' type='function'/>
+ <exports symbol='xmlSaveToFilename' type='function'/>
+ <exports symbol='xmlSaveFlush' type='function'/>
+ <exports symbol='xmlSaveDoc' type='function'/>
+ <exports symbol='xmlSaveSetEscape' type='function'/>
+ <exports symbol='xmlSaveTree' type='function'/>
+ </file>
+ <file name='xmlschemas'>
+ <summary>incomplete XML Schemas structure implementation</summary>
+ <description>interface to the XML Schemas handling and schema validity checking, it is incomplete right now. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_SCHEMAS_ERR_NOTNILLABLE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_OK' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_NOROOT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_XXX' type='enum'/>
+ <exports symbol='XML_SCHEMA_VAL_VC_I_CREATE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_ISABSTRACT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_ATTRUNKNOWN' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_WRONGELEM' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_NOTDETERMINIST' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_INTERNAL' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_MISSING' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_INVALIDATTR' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_CONSTRUCT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_FACET' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_NOTYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_VALUE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_NOROLLBACK' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_NOTTOPLEVEL' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_NOTEMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_INVALIDELEM' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_ATTRINVALID' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_EXTRACONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_NOTSIMPLE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_UNDECLAREDELEM' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_HAVEDEFAULT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_ELEMCONT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ERR_' type='enum'/>
+ <exports symbol='xmlSchemaPtr' type='typedef'/>
+ <exports symbol='xmlSchemaParserCtxt' type='typedef'/>
+ <exports symbol='xmlSchemaValidOption' type='typedef'/>
+ <exports symbol='xmlSchemaSAXPlugPtr' type='typedef'/>
+ <exports symbol='xmlSchemaSAXPlugStruct' type='typedef'/>
+ <exports symbol='xmlSchemaValidCtxtPtr' type='typedef'/>
+ <exports symbol='xmlSchemaParserCtxtPtr' type='typedef'/>
+ <exports symbol='xmlSchema' type='typedef'/>
+ <exports symbol='xmlSchemaValidError' type='typedef'/>
+ <exports symbol='xmlSchemaValidCtxt' type='typedef'/>
+ <exports symbol='xmlSchemaNewDocParserCtxt' type='function'/>
+ <exports symbol='xmlSchemaSAXUnplug' type='function'/>
+ <exports symbol='xmlSchemaParse' type='function'/>
+ <exports symbol='xmlSchemaFreeParserCtxt' type='function'/>
+ <exports symbol='xmlSchemaValidateSetFilename' type='function'/>
+ <exports symbol='xmlSchemaNewParserCtxt' type='function'/>
+ <exports symbol='xmlSchemaIsValid' type='function'/>
+ <exports symbol='xmlSchemaValidityErrorFunc' type='function'/>
+ <exports symbol='xmlSchemaSAXPlug' type='function'/>
+ <exports symbol='xmlSchemaValidateStream' type='function'/>
+ <exports symbol='xmlSchemaGetParserErrors' type='function'/>
+ <exports symbol='xmlSchemaValidateSetLocator' type='function'/>
+ <exports symbol='xmlSchemaValidateOneElement' type='function'/>
+ <exports symbol='xmlSchemaSetValidStructuredErrors' type='function'/>
+ <exports symbol='xmlSchemaSetValidErrors' type='function'/>
+ <exports symbol='xmlSchemaValidCtxtGetOptions' type='function'/>
+ <exports symbol='xmlSchemaValidateFile' type='function'/>
+ <exports symbol='xmlSchemaValidateDoc' type='function'/>
+ <exports symbol='xmlSchemaFree' type='function'/>
+ <exports symbol='xmlSchemaNewMemParserCtxt' type='function'/>
+ <exports symbol='xmlSchemaValidityLocatorFunc' type='function'/>
+ <exports symbol='xmlSchemaGetValidErrors' type='function'/>
+ <exports symbol='xmlSchemaSetValidOptions' type='function'/>
+ <exports symbol='xmlSchemaSetParserErrors' type='function'/>
+ <exports symbol='xmlSchemaValidityWarningFunc' type='function'/>
+ <exports symbol='xmlSchemaDump' type='function'/>
+ <exports symbol='xmlSchemaFreeValidCtxt' type='function'/>
+ <exports symbol='xmlSchemaValidCtxtGetParserCtxt' type='function'/>
+ <exports symbol='xmlSchemaSetParserStructuredErrors' type='function'/>
+ <exports symbol='xmlSchemaNewValidCtxt' type='function'/>
+ </file>
+ <file name='xmlschemastypes'>
+ <summary>implementation of XML Schema Datatypes</summary>
+ <description>module providing the XML Schema Datatypes implementation both definition and validity checking </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='XML_SCHEMA_WHITESPACE_UNKNOWN' type='enum'/>
+ <exports symbol='XML_SCHEMA_WHITESPACE_COLLAPSE' type='enum'/>
+ <exports symbol='XML_SCHEMA_WHITESPACE_REPLACE' type='enum'/>
+ <exports symbol='XML_SCHEMA_WHITESPACE_PRESERVE' type='enum'/>
+ <exports symbol='xmlSchemaWhitespaceValueType' type='typedef'/>
+ <exports symbol='xmlSchemaValPredefTypeNode' type='function'/>
+ <exports symbol='xmlSchemaGetCanonValueWhtsp' type='function'/>
+ <exports symbol='xmlSchemaValidateLengthFacetWhtsp' type='function'/>
+ <exports symbol='xmlSchemaIsBuiltInTypeFacet' type='function'/>
+ <exports symbol='xmlSchemaGetCanonValue' type='function'/>
+ <exports symbol='xmlSchemaGetBuiltInListSimpleTypeItemType' type='function'/>
+ <exports symbol='xmlSchemaCompareValuesWhtsp' type='function'/>
+ <exports symbol='xmlSchemaValueGetAsBoolean' type='function'/>
+ <exports symbol='xmlSchemaCollapseString' type='function'/>
+ <exports symbol='xmlSchemaValPredefTypeNodeNoNorm' type='function'/>
+ <exports symbol='xmlSchemaValidateFacet' type='function'/>
+ <exports symbol='xmlSchemaNewFacet' type='function'/>
+ <exports symbol='xmlSchemaValueAppend' type='function'/>
+ <exports symbol='xmlSchemaCompareValues' type='function'/>
+ <exports symbol='xmlSchemaValidateLengthFacet' type='function'/>
+ <exports symbol='xmlSchemaGetValType' type='function'/>
+ <exports symbol='xmlSchemaGetPredefinedType' type='function'/>
+ <exports symbol='xmlSchemaValidatePredefinedType' type='function'/>
+ <exports symbol='xmlSchemaFreeFacet' type='function'/>
+ <exports symbol='xmlSchemaValidateListSimpleTypeFacet' type='function'/>
+ <exports symbol='xmlSchemaGetFacetValueAsULong' type='function'/>
+ <exports symbol='xmlSchemaFreeValue' type='function'/>
+ <exports symbol='xmlSchemaValueGetNext' type='function'/>
+ <exports symbol='xmlSchemaValueGetAsString' type='function'/>
+ <exports symbol='xmlSchemaCopyValue' type='function'/>
+ <exports symbol='xmlSchemaNewNOTATIONValue' type='function'/>
+ <exports symbol='xmlSchemaNewQNameValue' type='function'/>
+ <exports symbol='xmlSchemaCleanupTypes' type='function'/>
+ <exports symbol='xmlSchemaWhiteSpaceReplace' type='function'/>
+ <exports symbol='xmlSchemaNewStringValue' type='function'/>
+ <exports symbol='xmlSchemaGetBuiltInType' type='function'/>
+ <exports symbol='xmlSchemaInitTypes' type='function'/>
+ <exports symbol='xmlSchemaValidateFacetWhtsp' type='function'/>
+ <exports symbol='xmlSchemaCheckFacet' type='function'/>
+ </file>
+ <file name='xmlstring'>
+ <summary>set of routines to process strings</summary>
+ <description>type and interfaces needed for the internal string handling of the library, especially UTF8 processing. </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='BAD_CAST' type='macro'/>
+ <exports symbol='xmlChar' type='typedef'/>
+ <exports symbol='xmlStrcmp' type='function'/>
+ <exports symbol='xmlCharStrndup' type='function'/>
+ <exports symbol='xmlStrcasestr' type='function'/>
+ <exports symbol='xmlStrcat' type='function'/>
+ <exports symbol='xmlStrPrintf' type='function'/>
+ <exports symbol='xmlStrstr' type='function'/>
+ <exports symbol='xmlUTF8Size' type='function'/>
+ <exports symbol='xmlStrQEqual' type='function'/>
+ <exports symbol='xmlStrncatNew' type='function'/>
+ <exports symbol='xmlUTF8Strpos' type='function'/>
+ <exports symbol='xmlStrdup' type='function'/>
+ <exports symbol='xmlCharStrdup' type='function'/>
+ <exports symbol='xmlStrchr' type='function'/>
+ <exports symbol='xmlStrlen' type='function'/>
+ <exports symbol='xmlStrncmp' type='function'/>
+ <exports symbol='xmlStrsub' type='function'/>
+ <exports symbol='xmlStrncat' type='function'/>
+ <exports symbol='xmlGetUTF8Char' type='function'/>
+ <exports symbol='xmlStrcasecmp' type='function'/>
+ <exports symbol='xmlStrndup' type='function'/>
+ <exports symbol='xmlStrVPrintf' type='function'/>
+ <exports symbol='xmlUTF8Strsize' type='function'/>
+ <exports symbol='xmlCheckUTF8' type='function'/>
+ <exports symbol='xmlStrncasecmp' type='function'/>
+ <exports symbol='xmlUTF8Strlen' type='function'/>
+ <exports symbol='xmlUTF8Strsub' type='function'/>
+ <exports symbol='xmlStrEqual' type='function'/>
+ <exports symbol='xmlUTF8Charcmp' type='function'/>
+ <exports symbol='xmlUTF8Strndup' type='function'/>
+ <exports symbol='xmlUTF8Strloc' type='function'/>
+ </file>
+ <file name='xmlunicode'>
+ <summary>Unicode character APIs</summary>
+ <description>API for the Unicode character APIs This file is automatically generated from the UCS description files of the Unicode Character Database</description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlUCSIsBlockElements' type='function'/>
+ <exports symbol='xmlUCSIsBopomofo' type='function'/>
+ <exports symbol='xmlUCSIsDingbats' type='function'/>
+ <exports symbol='xmlUCSIsSuperscriptsandSubscripts' type='function'/>
+ <exports symbol='xmlUCSIsCombiningHalfMarks' type='function'/>
+ <exports symbol='xmlUCSIsTibetan' type='function'/>
+ <exports symbol='xmlUCSIsYiRadicals' type='function'/>
+ <exports symbol='xmlUCSIsCombiningMarksforSymbols' type='function'/>
+ <exports symbol='xmlUCSIsHangulSyllables' type='function'/>
+ <exports symbol='xmlUCSIsBasicLatin' type='function'/>
+ <exports symbol='xmlUCSIsCatSc' type='function'/>
+ <exports symbol='xmlUCSIsCatSo' type='function'/>
+ <exports symbol='xmlUCSIsLimbu' type='function'/>
+ <exports symbol='xmlUCSIsCatSm' type='function'/>
+ <exports symbol='xmlUCSIsCatSk' type='function'/>
+ <exports symbol='xmlUCSIsKhmerSymbols' type='function'/>
+ <exports symbol='xmlUCSIsMongolian' type='function'/>
+ <exports symbol='xmlUCSIsMalayalam' type='function'/>
+ <exports symbol='xmlUCSIsMathematicalAlphanumericSymbols' type='function'/>
+ <exports symbol='xmlUCSIsThaana' type='function'/>
+ <exports symbol='xmlUCSIsMyanmar' type='function'/>
+ <exports symbol='xmlUCSIsTags' type='function'/>
+ <exports symbol='xmlUCSIsCJKCompatibilityIdeographs' type='function'/>
+ <exports symbol='xmlUCSIsTelugu' type='function'/>
+ <exports symbol='xmlUCSIsLowSurrogates' type='function'/>
+ <exports symbol='xmlUCSIsOsmanya' type='function'/>
+ <exports symbol='xmlUCSIsSyriac' type='function'/>
+ <exports symbol='xmlUCSIsEthiopic' type='function'/>
+ <exports symbol='xmlUCSIsBoxDrawing' type='function'/>
+ <exports symbol='xmlUCSIsGreekExtended' type='function'/>
+ <exports symbol='xmlUCSIsGreekandCoptic' type='function'/>
+ <exports symbol='xmlUCSIsKannada' type='function'/>
+ <exports symbol='xmlUCSIsByzantineMusicalSymbols' type='function'/>
+ <exports symbol='xmlUCSIsEnclosedCJKLettersandMonths' type='function'/>
+ <exports symbol='xmlUCSIsCJKCompatibilityForms' type='function'/>
+ <exports symbol='xmlUCSIsCatCs' type='function'/>
+ <exports symbol='xmlUCSIsCJKRadicalsSupplement' type='function'/>
+ <exports symbol='xmlUCSIsCatCf' type='function'/>
+ <exports symbol='xmlUCSIsSmallFormVariants' type='function'/>
+ <exports symbol='xmlUCSIsHangulCompatibilityJamo' type='function'/>
+ <exports symbol='xmlUCSIsCatCc' type='function'/>
+ <exports symbol='xmlUCSIsCatCo' type='function'/>
+ <exports symbol='xmlUCSIsCherokee' type='function'/>
+ <exports symbol='xmlUCSIsGothic' type='function'/>
+ <exports symbol='xmlUCSIsKhmer' type='function'/>
+ <exports symbol='xmlUCSIsCombiningDiacriticalMarksforSymbols' type='function'/>
+ <exports symbol='xmlUCSIsOgham' type='function'/>
+ <exports symbol='xmlUCSIsOriya' type='function'/>
+ <exports symbol='xmlUCSIsLinearBIdeograms' type='function'/>
+ <exports symbol='xmlUCSIsBlock' type='function'/>
+ <exports symbol='xmlUCSIsBopomofoExtended' type='function'/>
+ <exports symbol='xmlUCSIsHangulJamo' type='function'/>
+ <exports symbol='xmlUCSIsTagbanwa' type='function'/>
+ <exports symbol='xmlUCSIsGeneralPunctuation' type='function'/>
+ <exports symbol='xmlUCSIsCyrillic' type='function'/>
+ <exports symbol='xmlUCSIsArrows' type='function'/>
+ <exports symbol='xmlUCSIsControlPictures' type='function'/>
+ <exports symbol='xmlUCSIsCJKUnifiedIdeographs' type='function'/>
+ <exports symbol='xmlUCSIsCatNl' type='function'/>
+ <exports symbol='xmlUCSIsCatNo' type='function'/>
+ <exports symbol='xmlUCSIsYijingHexagramSymbols' type='function'/>
+ <exports symbol='xmlUCSIsVariationSelectorsSupplement' type='function'/>
+ <exports symbol='xmlUCSIsBengali' type='function'/>
+ <exports symbol='xmlUCSIsPrivateUse' type='function'/>
+ <exports symbol='xmlUCSIsMusicalSymbols' type='function'/>
+ <exports symbol='xmlUCSIsMiscellaneousSymbols' type='function'/>
+ <exports symbol='xmlUCSIsCJKCompatibility' type='function'/>
+ <exports symbol='xmlUCSIsAegeanNumbers' type='function'/>
+ <exports symbol='xmlUCSIsDevanagari' type='function'/>
+ <exports symbol='xmlUCSIsSupplementalArrowsA' type='function'/>
+ <exports symbol='xmlUCSIsSupplementalArrowsB' type='function'/>
+ <exports symbol='xmlUCSIsNumberForms' type='function'/>
+ <exports symbol='xmlUCSIsSpacingModifierLetters' type='function'/>
+ <exports symbol='xmlUCSIsOpticalCharacterRecognition' type='function'/>
+ <exports symbol='xmlUCSIsCatPc' type='function'/>
+ <exports symbol='xmlUCSIsCatPf' type='function'/>
+ <exports symbol='xmlUCSIsCyrillicSupplement' type='function'/>
+ <exports symbol='xmlUCSIsCatPd' type='function'/>
+ <exports symbol='xmlUCSIsCatPi' type='function'/>
+ <exports symbol='xmlUCSIsCatPo' type='function'/>
+ <exports symbol='xmlUCSIsHighPrivateUseSurrogates' type='function'/>
+ <exports symbol='xmlUCSIsLatinExtendedAdditional' type='function'/>
+ <exports symbol='xmlUCSIsCatPs' type='function'/>
+ <exports symbol='xmlUCSIsHighSurrogates' type='function'/>
+ <exports symbol='xmlUCSIsLao' type='function'/>
+ <exports symbol='xmlUCSIsBraillePatterns' type='function'/>
+ <exports symbol='xmlUCSIsDeseret' type='function'/>
+ <exports symbol='xmlUCSIsEnclosedAlphanumerics' type='function'/>
+ <exports symbol='xmlUCSIsCombiningDiacriticalMarks' type='function'/>
+ <exports symbol='xmlUCSIsIdeographicDescriptionCharacters' type='function'/>
+ <exports symbol='xmlUCSIsPrivateUseArea' type='function'/>
+ <exports symbol='xmlUCSIsCat' type='function'/>
+ <exports symbol='xmlUCSIsCatLu' type='function'/>
+ <exports symbol='xmlUCSIsCatLt' type='function'/>
+ <exports symbol='xmlUCSIsYiSyllables' type='function'/>
+ <exports symbol='xmlUCSIsShavian' type='function'/>
+ <exports symbol='xmlUCSIsCatLo' type='function'/>
+ <exports symbol='xmlUCSIsCatLm' type='function'/>
+ <exports symbol='xmlUCSIsCatLl' type='function'/>
+ <exports symbol='xmlUCSIsMiscellaneousTechnical' type='function'/>
+ <exports symbol='xmlUCSIsUgaritic' type='function'/>
+ <exports symbol='xmlUCSIsCJKCompatibilityIdeographsSupplement' type='function'/>
+ <exports symbol='xmlUCSIsCypriotSyllabary' type='function'/>
+ <exports symbol='xmlUCSIsTamil' type='function'/>
+ <exports symbol='xmlUCSIsCatC' type='function'/>
+ <exports symbol='xmlUCSIsCatN' type='function'/>
+ <exports symbol='xmlUCSIsCatL' type='function'/>
+ <exports symbol='xmlUCSIsCatM' type='function'/>
+ <exports symbol='xmlUCSIsUnifiedCanadianAboriginalSyllabics' type='function'/>
+ <exports symbol='xmlUCSIsCatS' type='function'/>
+ <exports symbol='xmlUCSIsCatP' type='function'/>
+ <exports symbol='xmlUCSIsSinhala' type='function'/>
+ <exports symbol='xmlUCSIsGeorgian' type='function'/>
+ <exports symbol='xmlUCSIsCatZ' type='function'/>
+ <exports symbol='xmlUCSIsIPAExtensions' type='function'/>
+ <exports symbol='xmlUCSIsKangxiRadicals' type='function'/>
+ <exports symbol='xmlUCSIsGreek' type='function'/>
+ <exports symbol='xmlUCSIsCatPe' type='function'/>
+ <exports symbol='xmlUCSIsHanunoo' type='function'/>
+ <exports symbol='xmlUCSIsArmenian' type='function'/>
+ <exports symbol='xmlUCSIsSupplementaryPrivateUseAreaB' type='function'/>
+ <exports symbol='xmlUCSIsSupplementaryPrivateUseAreaA' type='function'/>
+ <exports symbol='xmlUCSIsKatakanaPhoneticExtensions' type='function'/>
+ <exports symbol='xmlUCSIsLetterlikeSymbols' type='function'/>
+ <exports symbol='xmlUCSIsPhoneticExtensions' type='function'/>
+ <exports symbol='xmlUCSIsArabic' type='function'/>
+ <exports symbol='xmlUCSIsHebrew' type='function'/>
+ <exports symbol='xmlUCSIsOldItalic' type='function'/>
+ <exports symbol='xmlUCSIsArabicPresentationFormsA' type='function'/>
+ <exports symbol='xmlUCSIsCatZp' type='function'/>
+ <exports symbol='xmlUCSIsCatZs' type='function'/>
+ <exports symbol='xmlUCSIsArabicPresentationFormsB' type='function'/>
+ <exports symbol='xmlUCSIsGeometricShapes' type='function'/>
+ <exports symbol='xmlUCSIsCatZl' type='function'/>
+ <exports symbol='xmlUCSIsTagalog' type='function'/>
+ <exports symbol='xmlUCSIsSpecials' type='function'/>
+ <exports symbol='xmlUCSIsGujarati' type='function'/>
+ <exports symbol='xmlUCSIsKatakana' type='function'/>
+ <exports symbol='xmlUCSIsHalfwidthandFullwidthForms' type='function'/>
+ <exports symbol='xmlUCSIsLatinExtendedB' type='function'/>
+ <exports symbol='xmlUCSIsLatinExtendedA' type='function'/>
+ <exports symbol='xmlUCSIsBuhid' type='function'/>
+ <exports symbol='xmlUCSIsMiscellaneousSymbolsandArrows' type='function'/>
+ <exports symbol='xmlUCSIsTaiLe' type='function'/>
+ <exports symbol='xmlUCSIsCJKSymbolsandPunctuation' type='function'/>
+ <exports symbol='xmlUCSIsTaiXuanJingSymbols' type='function'/>
+ <exports symbol='xmlUCSIsGurmukhi' type='function'/>
+ <exports symbol='xmlUCSIsMathematicalOperators' type='function'/>
+ <exports symbol='xmlUCSIsAlphabeticPresentationForms' type='function'/>
+ <exports symbol='xmlUCSIsCurrencySymbols' type='function'/>
+ <exports symbol='xmlUCSIsSupplementalMathematicalOperators' type='function'/>
+ <exports symbol='xmlUCSIsCJKUnifiedIdeographsExtensionA' type='function'/>
+ <exports symbol='xmlUCSIsKanbun' type='function'/>
+ <exports symbol='xmlUCSIsCJKUnifiedIdeographsExtensionB' type='function'/>
+ <exports symbol='xmlUCSIsThai' type='function'/>
+ <exports symbol='xmlUCSIsRunic' type='function'/>
+ <exports symbol='xmlUCSIsCatNd' type='function'/>
+ <exports symbol='xmlUCSIsLatin1Supplement' type='function'/>
+ <exports symbol='xmlUCSIsLinearBSyllabary' type='function'/>
+ <exports symbol='xmlUCSIsHiragana' type='function'/>
+ <exports symbol='xmlUCSIsMiscellaneousMathematicalSymbolsB' type='function'/>
+ <exports symbol='xmlUCSIsMiscellaneousMathematicalSymbolsA' type='function'/>
+ <exports symbol='xmlUCSIsCatMn' type='function'/>
+ <exports symbol='xmlUCSIsVariationSelectors' type='function'/>
+ <exports symbol='xmlUCSIsCatMc' type='function'/>
+ <exports symbol='xmlUCSIsCatMe' type='function'/>
+ </file>
+ <file name='xmlversion'>
+ <summary>compile-time version informations</summary>
+ <description>compile-time version informations for the XML library </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='LIBXML_VERSION_EXTRA' type='macro'/>
+ <exports symbol='LIBXML_MODULES_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_LEGACY_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_LZMA_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_READER_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_THREAD_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_DOTTED_VERSION' type='macro'/>
+ <exports symbol='LIBXML_ISO8859X_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_DEBUG_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_XINCLUDE_ENABLED' type='macro'/>
+ <exports symbol='ATTRIBUTE_UNUSED' type='macro'/>
+ <exports symbol='LIBXML_DOCB_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_PUSH_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_SAX1_ENABLED' type='macro'/>
+ <exports symbol='WITHOUT_TRIO' type='macro'/>
+ <exports symbol='LIBXML_SCHEMATRON_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_HTTP_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_OUTPUT_ENABLED' type='macro'/>
+ <exports symbol='WITH_TRIO' type='macro'/>
+ <exports symbol='LIBXML_DEBUG_RUNTIME' type='macro'/>
+ <exports symbol='LIBXML_VERSION' type='macro'/>
+ <exports symbol='LIBXML_XPTR_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_VERSION_STRING' type='macro'/>
+ <exports symbol='LIBXML_CATALOG_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_ATTR_ALLOC_SIZE' type='macro'/>
+ <exports symbol='LIBXML_REGEXP_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_ICU_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_MODULE_EXTENSION' type='macro'/>
+ <exports symbol='LIBXML_ICONV_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_HTML_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_UNICODE_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_FTP_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_AUTOMATA_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_ZLIB_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_WRITER_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_C14N_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_SCHEMAS_ENABLED' type='macro'/>
+ <exports symbol='DEBUG_MEMORY_LOCATION' type='macro'/>
+ <exports symbol='LIBXML_ATTR_FORMAT' type='macro'/>
+ <exports symbol='LIBXML_TEST_VERSION' type='macro'/>
+ <exports symbol='LIBXML_THREAD_ALLOC_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_XPATH_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_PATTERN_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_VALID_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_TREE_ENABLED' type='macro'/>
+ <exports symbol='LIBXML_EXPR_ENABLED' type='macro'/>
+ <exports symbol='xmlCheckVersion' type='function'/>
+ </file>
+ <file name='xmlwriter'>
+ <summary>text writing API for XML</summary>
+ <description>text writing API for XML </description>
+ <author>Alfred Mickautsch &lt;alfred@mickautsch.de&gt; </author>
+ <exports symbol='xmlTextWriterWriteProcessingInstruction' type='macro'/>
+ <exports symbol='xmlTextWriterWriteDocType' type='macro'/>
+ <exports symbol='xmlTextWriter' type='typedef'/>
+ <exports symbol='xmlTextWriterPtr' type='typedef'/>
+ <exports symbol='xmlTextWriterStartDocument' type='function'/>
+ <exports symbol='xmlTextWriterEndPI' type='function'/>
+ <exports symbol='xmlTextWriterWriteBase64' type='function'/>
+ <exports symbol='xmlTextWriterSetIndentString' type='function'/>
+ <exports symbol='xmlTextWriterStartAttribute' type='function'/>
+ <exports symbol='xmlTextWriterEndComment' type='function'/>
+ <exports symbol='xmlTextWriterWriteRawLen' type='function'/>
+ <exports symbol='xmlTextWriterWriteDTDExternalEntityContents' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatCDATA' type='function'/>
+ <exports symbol='xmlTextWriterStartAttributeNS' type='function'/>
+ <exports symbol='xmlNewTextWriterPushParser' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatAttributeNS' type='function'/>
+ <exports symbol='xmlTextWriterWriteDTDEntity' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatPI' type='function'/>
+ <exports symbol='xmlTextWriterWriteBinHex' type='function'/>
+ <exports symbol='xmlTextWriterEndAttribute' type='function'/>
+ <exports symbol='xmlTextWriterSetIndent' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatPI' type='function'/>
+ <exports symbol='xmlTextWriterEndDocument' type='function'/>
+ <exports symbol='xmlTextWriterWriteDTDAttlist' type='function'/>
+ <exports symbol='xmlTextWriterStartComment' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatDTD' type='function'/>
+ <exports symbol='xmlTextWriterEndCDATA' type='function'/>
+ <exports symbol='xmlTextWriterStartElementNS' type='function'/>
+ <exports symbol='xmlTextWriterEndDTDEntity' type='function'/>
+ <exports symbol='xmlNewTextWriter' type='function'/>
+ <exports symbol='xmlFreeTextWriter' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatDTDAttlist' type='function'/>
+ <exports symbol='xmlTextWriterStartPI' type='function'/>
+ <exports symbol='xmlTextWriterStartElement' type='function'/>
+ <exports symbol='xmlTextWriterWriteDTDExternalEntity' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatRaw' type='function'/>
+ <exports symbol='xmlTextWriterWriteCDATA' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatDTDInternalEntity' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatAttribute' type='function'/>
+ <exports symbol='xmlTextWriterEndDTDElement' type='function'/>
+ <exports symbol='xmlTextWriterEndDTD' type='function'/>
+ <exports symbol='xmlTextWriterWriteElement' type='function'/>
+ <exports symbol='xmlTextWriterEndElement' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatComment' type='function'/>
+ <exports symbol='xmlTextWriterStartCDATA' type='function'/>
+ <exports symbol='xmlNewTextWriterFilename' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatElement' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatComment' type='function'/>
+ <exports symbol='xmlTextWriterWriteAttributeNS' type='function'/>
+ <exports symbol='xmlTextWriterWritePI' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatDTDInternalEntity' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatString' type='function'/>
+ <exports symbol='xmlTextWriterWriteDTDInternalEntity' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatElementNS' type='function'/>
+ <exports symbol='xmlTextWriterWriteDTDNotation' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatElement' type='function'/>
+ <exports symbol='xmlTextWriterSetQuoteChar' type='function'/>
+ <exports symbol='xmlTextWriterWriteString' type='function'/>
+ <exports symbol='xmlTextWriterWriteElementNS' type='function'/>
+ <exports symbol='xmlTextWriterFullEndElement' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatAttributeNS' type='function'/>
+ <exports symbol='xmlTextWriterFlush' type='function'/>
+ <exports symbol='xmlTextWriterStartDTD' type='function'/>
+ <exports symbol='xmlTextWriterWriteAttribute' type='function'/>
+ <exports symbol='xmlNewTextWriterDoc' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatDTDElement' type='function'/>
+ <exports symbol='xmlTextWriterEndDTDAttlist' type='function'/>
+ <exports symbol='xmlNewTextWriterTree' type='function'/>
+ <exports symbol='xmlNewTextWriterMemory' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatCDATA' type='function'/>
+ <exports symbol='xmlTextWriterStartDTDAttlist' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatString' type='function'/>
+ <exports symbol='xmlTextWriterWriteComment' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatRaw' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatDTD' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatDTDAttlist' type='function'/>
+ <exports symbol='xmlTextWriterWriteRaw' type='function'/>
+ <exports symbol='xmlTextWriterWriteDTDElement' type='function'/>
+ <exports symbol='xmlTextWriterWriteDTD' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatAttribute' type='function'/>
+ <exports symbol='xmlTextWriterStartDTDEntity' type='function'/>
+ <exports symbol='xmlTextWriterWriteVFormatDTDElement' type='function'/>
+ <exports symbol='xmlTextWriterStartDTDElement' type='function'/>
+ <exports symbol='xmlTextWriterWriteFormatElementNS' type='function'/>
+ </file>
+ <file name='xpath'>
+ <summary>XML Path Language implementation</summary>
+ <description>API for the XML Path Language implementation XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer</description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlXPathNodeSetGetLength' type='macro'/>
+ <exports symbol='XML_XPATH_CHECKNS' type='macro'/>
+ <exports symbol='XML_XPATH_NOVAR' type='macro'/>
+ <exports symbol='xmlXPathNodeSetItem' type='macro'/>
+ <exports symbol='xmlXPathNodeSetIsEmpty' type='macro'/>
+ <exports symbol='XPATH_NUMBER_ERROR' type='enum'/>
+ <exports symbol='XPATH_BOOLEAN' type='enum'/>
+ <exports symbol='XPATH_START_LITERAL_ERROR' type='enum'/>
+ <exports symbol='XPATH_UNCLOSED_ERROR' type='enum'/>
+ <exports symbol='XPATH_INVALID_CHAR_ERROR' type='enum'/>
+ <exports symbol='XPATH_UNDEF_VARIABLE_ERROR' type='enum'/>
+ <exports symbol='XPATH_EXPRESSION_OK' type='enum'/>
+ <exports symbol='XPATH_NODESET' type='enum'/>
+ <exports symbol='XPATH_OP_LIMIT_EXCEEDED' type='enum'/>
+ <exports symbol='XPATH_VARIABLE_REF_ERROR' type='enum'/>
+ <exports symbol='XPATH_ENCODING_ERROR' type='enum'/>
+ <exports symbol='XPTR_RESOURCE_ERROR' type='enum'/>
+ <exports symbol='XPATH_NUMBER' type='enum'/>
+ <exports symbol='XPATH_POINT' type='enum'/>
+ <exports symbol='XPATH_USERS' type='enum'/>
+ <exports symbol='XPATH_UNDEF_PREFIX_ERROR' type='enum'/>
+ <exports symbol='XPATH_UNKNOWN_FUNC_ERROR' type='enum'/>
+ <exports symbol='XPATH_INVALID_CTXT_SIZE' type='enum'/>
+ <exports symbol='XPATH_RANGE' type='enum'/>
+ <exports symbol='XPTR_SYNTAX_ERROR' type='enum'/>
+ <exports symbol='XPATH_LOCATIONSET' type='enum'/>
+ <exports symbol='XPATH_INVALID_CTXT' type='enum'/>
+ <exports symbol='XPATH_INVALID_ARITY' type='enum'/>
+ <exports symbol='XPTR_SUB_RESOURCE_ERROR' type='enum'/>
+ <exports symbol='XPATH_STRING' type='enum'/>
+ <exports symbol='XPATH_INVALID_PREDICATE_ERROR' type='enum'/>
+ <exports symbol='XPATH_RECURSION_LIMIT_EXCEEDED' type='enum'/>
+ <exports symbol='XPATH_XSLT_TREE' type='enum'/>
+ <exports symbol='XPATH_EXPR_ERROR' type='enum'/>
+ <exports symbol='XPATH_FORBID_VARIABLE_ERROR' type='enum'/>
+ <exports symbol='XPATH_INVALID_TYPE' type='enum'/>
+ <exports symbol='XPATH_INVALID_CTXT_POSITION' type='enum'/>
+ <exports symbol='XPATH_UNDEFINED' type='enum'/>
+ <exports symbol='XPATH_MEMORY_ERROR' type='enum'/>
+ <exports symbol='XPATH_UNFINISHED_LITERAL_ERROR' type='enum'/>
+ <exports symbol='XPATH_STACK_ERROR' type='enum'/>
+ <exports symbol='XPATH_INVALID_OPERAND' type='enum'/>
+ <exports symbol='xmlXPathObjectType' type='typedef'/>
+ <exports symbol='xmlXPathVariablePtr' type='typedef'/>
+ <exports symbol='xmlXPathContext' type='typedef'/>
+ <exports symbol='xmlXPathError' type='typedef'/>
+ <exports symbol='xmlXPathFunct' type='typedef'/>
+ <exports symbol='xmlXPathTypePtr' type='typedef'/>
+ <exports symbol='xmlXPathType' type='typedef'/>
+ <exports symbol='xmlNodeSetPtr' type='typedef'/>
+ <exports symbol='xmlXPathFuncPtr' type='typedef'/>
+ <exports symbol='xmlXPathCompExprPtr' type='typedef'/>
+ <exports symbol='xmlXPathObject' type='typedef'/>
+ <exports symbol='xmlXPathCompExpr' type='typedef'/>
+ <exports symbol='xmlXPathContextPtr' type='typedef'/>
+ <exports symbol='xmlXPathParserContextPtr' type='typedef'/>
+ <exports symbol='xmlNodeSet' type='typedef'/>
+ <exports symbol='xmlXPathVariable' type='typedef'/>
+ <exports symbol='xmlXPathObjectPtr' type='typedef'/>
+ <exports symbol='xmlXPathAxis' type='typedef'/>
+ <exports symbol='xmlXPathAxisPtr' type='typedef'/>
+ <exports symbol='xmlXPathParserContext' type='typedef'/>
+ <exports symbol='_xmlXPathFunct' type='struct'/>
+ <exports symbol='_xmlXPathVariable' type='struct'/>
+ <exports symbol='_xmlXPathParserContext' type='struct'/>
+ <exports symbol='_xmlXPathType' type='struct'/>
+ <exports symbol='_xmlXPathObject' type='struct'/>
+ <exports symbol='_xmlXPathContext' type='struct'/>
+ <exports symbol='_xmlXPathAxis' type='struct'/>
+ <exports symbol='_xmlNodeSet' type='struct'/>
+ <exports symbol='xmlXPathNAN' type='variable'/>
+ <exports symbol='xmlXPathPINF' type='variable'/>
+ <exports symbol='xmlXPathNINF' type='variable'/>
+ <exports symbol='xmlXPathCastNodeSetToBoolean' type='function'/>
+ <exports symbol='xmlXPathFuncLookupFunc' type='function'/>
+ <exports symbol='xmlXPathNodeEval' type='function'/>
+ <exports symbol='xmlXPathCastNodeToString' type='function'/>
+ <exports symbol='xmlXPathIsNaN' type='function'/>
+ <exports symbol='xmlXPathContextSetCache' type='function'/>
+ <exports symbol='xmlXPathConvertString' type='function'/>
+ <exports symbol='xmlXPathCompiledEvalToBoolean' type='function'/>
+ <exports symbol='xmlXPathIsInf' type='function'/>
+ <exports symbol='xmlXPathOrderDocElems' type='function'/>
+ <exports symbol='xmlXPathNodeSetCreate' type='function'/>
+ <exports symbol='xmlXPathCastBooleanToNumber' type='function'/>
+ <exports symbol='xmlXPathCastNodeToNumber' type='function'/>
+ <exports symbol='xmlXPathCastStringToNumber' type='function'/>
+ <exports symbol='xmlXPathAxisFunc' type='function'/>
+ <exports symbol='xmlXPathCastToNumber' type='function'/>
+ <exports symbol='xmlXPathCastStringToBoolean' type='function'/>
+ <exports symbol='xmlXPathCastNumberToString' type='function'/>
+ <exports symbol='xmlXPathVariableLookupFunc' type='function'/>
+ <exports symbol='xmlXPathFreeObject' type='function'/>
+ <exports symbol='xmlXPathEvalPredicate' type='function'/>
+ <exports symbol='xmlXPathFreeContext' type='function'/>
+ <exports symbol='xmlXPathObjectCopy' type='function'/>
+ <exports symbol='xmlXPathFreeNodeSetList' type='function'/>
+ <exports symbol='xmlXPathEval' type='function'/>
+ <exports symbol='xmlXPathCastNodeSetToString' type='function'/>
+ <exports symbol='xmlXPathCompiledEval' type='function'/>
+ <exports symbol='xmlXPathEvalExpression' type='function'/>
+ <exports symbol='xmlXPathInit' type='function'/>
+ <exports symbol='xmlXPathConvertBoolean' type='function'/>
+ <exports symbol='xmlXPathConvertFunc' type='function'/>
+ <exports symbol='xmlXPathFunction' type='function'/>
+ <exports symbol='xmlXPathCmpNodes' type='function'/>
+ <exports symbol='xmlXPathCastToString' type='function'/>
+ <exports symbol='xmlXPathCtxtCompile' type='function'/>
+ <exports symbol='xmlXPathEvalFunc' type='function'/>
+ <exports symbol='xmlXPathCastBooleanToString' type='function'/>
+ <exports symbol='xmlXPathSetContextNode' type='function'/>
+ <exports symbol='xmlXPathCastNumberToBoolean' type='function'/>
+ <exports symbol='xmlXPathFreeNodeSet' type='function'/>
+ <exports symbol='xmlXPathFreeCompExpr' type='function'/>
+ <exports symbol='xmlXPathNewContext' type='function'/>
+ <exports symbol='xmlXPathConvertNumber' type='function'/>
+ <exports symbol='xmlXPathCompile' type='function'/>
+ <exports symbol='xmlXPathCastNodeSetToNumber' type='function'/>
+ <exports symbol='xmlXPathCastToBoolean' type='function'/>
+ </file>
+ <file name='xpathInternals'>
+ <summary>internal interfaces for XML Path Language implementation</summary>
+ <description>internal interfaces for XML Path Language implementation used to build new modules on top of XPath like XPointer and XSLT </description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlXPathStackIsExternal' type='macro'/>
+ <exports symbol='xmlXPathReturnEmptyString' type='macro'/>
+ <exports symbol='XP_ERROR0' type='macro'/>
+ <exports symbol='xmlXPathSetTypeError' type='macro'/>
+ <exports symbol='xmlXPathReturnEmptyNodeSet' type='macro'/>
+ <exports symbol='xmlXPathReturnTrue' type='macro'/>
+ <exports symbol='xmlXPathReturnBoolean' type='macro'/>
+ <exports symbol='xmlXPathGetContextNode' type='macro'/>
+ <exports symbol='CAST_TO_NUMBER' type='macro'/>
+ <exports symbol='CHECK_ARITY' type='macro'/>
+ <exports symbol='CHECK_TYPE0' type='macro'/>
+ <exports symbol='CAST_TO_STRING' type='macro'/>
+ <exports symbol='xmlXPathReturnExternal' type='macro'/>
+ <exports symbol='xmlXPathStackIsNodeSet' type='macro'/>
+ <exports symbol='xmlXPathCheckError' type='macro'/>
+ <exports symbol='xmlXPathSetError' type='macro'/>
+ <exports symbol='CHECK_ERROR' type='macro'/>
+ <exports symbol='xmlXPathReturnString' type='macro'/>
+ <exports symbol='CAST_TO_BOOLEAN' type='macro'/>
+ <exports symbol='xmlXPathSetArityError' type='macro'/>
+ <exports symbol='CHECK_TYPE' type='macro'/>
+ <exports symbol='xmlXPathReturnFalse' type='macro'/>
+ <exports symbol='xmlXPathReturnNumber' type='macro'/>
+ <exports symbol='CHECK_ERROR0' type='macro'/>
+ <exports symbol='xmlXPathGetDocument' type='macro'/>
+ <exports symbol='xmlXPathGetError' type='macro'/>
+ <exports symbol='XP_ERROR' type='macro'/>
+ <exports symbol='xmlXPathEmptyNodeSet' type='macro'/>
+ <exports symbol='xmlXPathReturnNodeSet' type='macro'/>
+ <exports symbol='xmlXPathNodeSetMerge' type='function'/>
+ <exports symbol='xmlXPathNumberFunction' type='function'/>
+ <exports symbol='xmlXPathNsLookup' type='function'/>
+ <exports symbol='xmlXPathNewNodeSet' type='function'/>
+ <exports symbol='xmlXPathNextAncestorOrSelf' type='function'/>
+ <exports symbol='xmlXPathNodeSetRemove' type='function'/>
+ <exports symbol='xmlXPathNewNodeSetList' type='function'/>
+ <exports symbol='xmlXPathPopBoolean' type='function'/>
+ <exports symbol='xmlXPathNewString' type='function'/>
+ <exports symbol='xmlXPathNodeLeadingSorted' type='function'/>
+ <exports symbol='xmlXPathNextChild' type='function'/>
+ <exports symbol='xmlXPathNextFollowingSibling' type='function'/>
+ <exports symbol='xmlXPathPopString' type='function'/>
+ <exports symbol='xmlXPathNamespaceURIFunction' type='function'/>
+ <exports symbol='xmlXPathCompareValues' type='function'/>
+ <exports symbol='xmlXPathConcatFunction' type='function'/>
+ <exports symbol='xmlXPathNodeSetContains' type='function'/>
+ <exports symbol='xmlXPatherror' type='function'/>
+ <exports symbol='xmlXPathNextAncestor' type='function'/>
+ <exports symbol='xmlXPathBooleanFunction' type='function'/>
+ <exports symbol='xmlXPathRoot' type='function'/>
+ <exports symbol='xmlXPathRegisteredNsCleanup' type='function'/>
+ <exports symbol='xmlXPathIsNodeType' type='function'/>
+ <exports symbol='xmlXPathNextFollowing' type='function'/>
+ <exports symbol='xmlXPathAddValues' type='function'/>
+ <exports symbol='xmlXPathRegisterVariable' type='function'/>
+ <exports symbol='valuePop' type='function'/>
+ <exports symbol='xmlXPathCeilingFunction' type='function'/>
+ <exports symbol='xmlXPathIntersection' type='function'/>
+ <exports symbol='xmlXPathContainsFunction' type='function'/>
+ <exports symbol='xmlXPathNodeSetSort' type='function'/>
+ <exports symbol='xmlXPathStartsWithFunction' type='function'/>
+ <exports symbol='xmlXPathNodeLeading' type='function'/>
+ <exports symbol='xmlXPathSumFunction' type='function'/>
+ <exports symbol='xmlXPathNotEqualValues' type='function'/>
+ <exports symbol='xmlXPathEvaluatePredicateResult' type='function'/>
+ <exports symbol='xmlXPathErr' type='function'/>
+ <exports symbol='xmlXPathNextPreceding' type='function'/>
+ <exports symbol='xmlXPathFunctionLookupNS' type='function'/>
+ <exports symbol='xmlXPathRegisteredFuncsCleanup' type='function'/>
+ <exports symbol='xmlXPathRegisterAllFunctions' type='function'/>
+ <exports symbol='xmlXPathFunctionLookup' type='function'/>
+ <exports symbol='xmlXPathPositionFunction' type='function'/>
+ <exports symbol='xmlXPathSubstringBeforeFunction' type='function'/>
+ <exports symbol='xmlXPathRegisteredVariablesCleanup' type='function'/>
+ <exports symbol='xmlXPathNewFloat' type='function'/>
+ <exports symbol='xmlXPathRegisterNs' type='function'/>
+ <exports symbol='xmlXPathNextParent' type='function'/>
+ <exports symbol='xmlXPathNodeSetFreeNs' type='function'/>
+ <exports symbol='xmlXPathHasSameNodes' type='function'/>
+ <exports symbol='xmlXPathDistinctSorted' type='function'/>
+ <exports symbol='valuePush' type='function'/>
+ <exports symbol='xmlXPathSubstringFunction' type='function'/>
+ <exports symbol='xmlXPathStringFunction' type='function'/>
+ <exports symbol='xmlXPathFloorFunction' type='function'/>
+ <exports symbol='xmlXPathIdFunction' type='function'/>
+ <exports symbol='xmlXPathLastFunction' type='function'/>
+ <exports symbol='xmlXPathStringLengthFunction' type='function'/>
+ <exports symbol='xmlXPathNextSelf' type='function'/>
+ <exports symbol='xmlXPathDebugDumpCompExpr' type='function'/>
+ <exports symbol='xmlXPathFalseFunction' type='function'/>
+ <exports symbol='xmlXPathValueFlipSign' type='function'/>
+ <exports symbol='xmlXPathTranslateFunction' type='function'/>
+ <exports symbol='xmlXPathRegisterFuncLookup' type='function'/>
+ <exports symbol='xmlXPathPopNumber' type='function'/>
+ <exports symbol='xmlXPathRoundFunction' type='function'/>
+ <exports symbol='xmlXPathPopNodeSet' type='function'/>
+ <exports symbol='xmlXPathCountFunction' type='function'/>
+ <exports symbol='xmlXPathParseNCName' type='function'/>
+ <exports symbol='xmlXPathTrueFunction' type='function'/>
+ <exports symbol='xmlXPathNewBoolean' type='function'/>
+ <exports symbol='xmlXPathSubValues' type='function'/>
+ <exports symbol='xmlXPathEqualValues' type='function'/>
+ <exports symbol='xmlXPathTrailingSorted' type='function'/>
+ <exports symbol='xmlXPathMultValues' type='function'/>
+ <exports symbol='xmlXPathModValues' type='function'/>
+ <exports symbol='xmlXPathNewParserContext' type='function'/>
+ <exports symbol='xmlXPathWrapNodeSet' type='function'/>
+ <exports symbol='xmlXPathWrapString' type='function'/>
+ <exports symbol='xmlXPathLangFunction' type='function'/>
+ <exports symbol='xmlXPathRegisterFuncNS' type='function'/>
+ <exports symbol='xmlXPathNodeSetAddNs' type='function'/>
+ <exports symbol='xmlXPathLocalNameFunction' type='function'/>
+ <exports symbol='xmlXPathDifference' type='function'/>
+ <exports symbol='xmlXPathLeadingSorted' type='function'/>
+ <exports symbol='xmlXPathNextPrecedingSibling' type='function'/>
+ <exports symbol='xmlXPathPopExternal' type='function'/>
+ <exports symbol='xmlXPathNormalizeFunction' type='function'/>
+ <exports symbol='xmlXPathRegisterVariableLookup' type='function'/>
+ <exports symbol='xmlXPathNodeSetDel' type='function'/>
+ <exports symbol='xmlXPathNodeTrailingSorted' type='function'/>
+ <exports symbol='xmlXPathNewCString' type='function'/>
+ <exports symbol='xmlXPathRegisterFunc' type='function'/>
+ <exports symbol='xmlXPathSubstringAfterFunction' type='function'/>
+ <exports symbol='xmlXPathNextDescendant' type='function'/>
+ <exports symbol='xmlXPathNextNamespace' type='function'/>
+ <exports symbol='xmlXPathWrapCString' type='function'/>
+ <exports symbol='xmlXPathFreeParserContext' type='function'/>
+ <exports symbol='xmlXPathNodeTrailing' type='function'/>
+ <exports symbol='xmlXPathNodeSetAdd' type='function'/>
+ <exports symbol='xmlXPathNodeSetAddUnique' type='function'/>
+ <exports symbol='xmlXPathNewValueTree' type='function'/>
+ <exports symbol='xmlXPathDistinct' type='function'/>
+ <exports symbol='xmlXPathVariableLookup' type='function'/>
+ <exports symbol='xmlXPathNotFunction' type='function'/>
+ <exports symbol='xmlXPathStringEvalNumber' type='function'/>
+ <exports symbol='xmlXPathNextDescendantOrSelf' type='function'/>
+ <exports symbol='xmlXPathWrapExternal' type='function'/>
+ <exports symbol='xmlXPathNextAttribute' type='function'/>
+ <exports symbol='xmlXPathDivValues' type='function'/>
+ <exports symbol='xmlXPathVariableLookupNS' type='function'/>
+ <exports symbol='xmlXPathRegisterVariableNS' type='function'/>
+ <exports symbol='xmlXPathTrailing' type='function'/>
+ <exports symbol='xmlXPathEvalExpr' type='function'/>
+ <exports symbol='xmlXPathDebugDumpObject' type='function'/>
+ <exports symbol='xmlXPathLeading' type='function'/>
+ <exports symbol='xmlXPathParseName' type='function'/>
+ </file>
+ <file name='xpointer'>
+ <summary>API to handle XML Pointers</summary>
+ <description>API to handle XML Pointers Base implementation was made accordingly to W3C Candidate Recommendation 7 June 2000</description>
+ <author>Daniel Veillard </author>
+ <exports symbol='xmlLocationSet' type='typedef'/>
+ <exports symbol='xmlLocationSetPtr' type='typedef'/>
+ <exports symbol='_xmlLocationSet' type='struct'/>
+ <exports symbol='xmlXPtrNewRange' type='function'/>
+ <exports symbol='xmlXPtrFreeLocationSet' type='function'/>
+ <exports symbol='xmlXPtrWrapLocationSet' type='function'/>
+ <exports symbol='xmlXPtrBuildNodeList' type='function'/>
+ <exports symbol='xmlXPtrEval' type='function'/>
+ <exports symbol='xmlXPtrNewRangeNodes' type='function'/>
+ <exports symbol='xmlXPtrLocationSetAdd' type='function'/>
+ <exports symbol='xmlXPtrRangeToFunction' type='function'/>
+ <exports symbol='xmlXPtrNewCollapsedRange' type='function'/>
+ <exports symbol='xmlXPtrNewRangePoints' type='function'/>
+ <exports symbol='xmlXPtrNewLocationSetNodeSet' type='function'/>
+ <exports symbol='xmlXPtrNewRangePointNode' type='function'/>
+ <exports symbol='xmlXPtrLocationSetCreate' type='function'/>
+ <exports symbol='xmlXPtrNewRangeNodeObject' type='function'/>
+ <exports symbol='xmlXPtrNewContext' type='function'/>
+ <exports symbol='xmlXPtrLocationSetRemove' type='function'/>
+ <exports symbol='xmlXPtrNewRangeNodePoint' type='function'/>
+ <exports symbol='xmlXPtrLocationSetDel' type='function'/>
+ <exports symbol='xmlXPtrLocationSetMerge' type='function'/>
+ <exports symbol='xmlXPtrEvalRangePredicate' type='function'/>
+ <exports symbol='xmlXPtrNewLocationSetNodes' type='function'/>
+ </file>
+ </files>
+ <symbols>
+ <macro name='ATTRIBUTE_UNUSED' file='xmlversion'>
+ <info>Macro used to signal to GCC unused function parameters</info>
+ </macro>
+ <macro name='BAD_CAST' file='xmlstring'>
+ <info>Macro to cast a string to an xmlChar * when one know its safe.</info>
+ </macro>
+ <macro name='BASE_BUFFER_SIZE' file='tree'>
+ <info>default buffer size 4000.</info>
+ </macro>
+ <macro name='CAST_TO_BOOLEAN' file='xpathInternals'>
+ <info>Macro to try to cast the value on the top of the XPath stack to a boolean.</info>
+ </macro>
+ <macro name='CAST_TO_NUMBER' file='xpathInternals'>
+ <info>Macro to try to cast the value on the top of the XPath stack to a number.</info>
+ </macro>
+ <macro name='CAST_TO_STRING' file='xpathInternals'>
+ <info>Macro to try to cast the value on the top of the XPath stack to a string.</info>
+ </macro>
+ <macro name='CHECK_ARITY' file='xpathInternals'>
+ <info>Macro to check that the number of args passed to an XPath function matches.</info>
+ <arg name='x' info='the number of expected args'/>
+ </macro>
+ <macro name='CHECK_ERROR' file='xpathInternals'>
+ <info>Macro to return from the function if an XPath error was detected.</info>
+ </macro>
+ <macro name='CHECK_ERROR0' file='xpathInternals'>
+ <info>Macro to return 0 from the function if an XPath error was detected.</info>
+ </macro>
+ <macro name='CHECK_TYPE' file='xpathInternals'>
+ <info>Macro to check that the value on top of the XPath stack is of a given type.</info>
+ <arg name='typeval' info='the XPath type'/>
+ </macro>
+ <macro name='CHECK_TYPE0' file='xpathInternals'>
+ <info>Macro to check that the value on top of the XPath stack is of a given type. Return(0) in case of failure</info>
+ <arg name='typeval' info='the XPath type'/>
+ </macro>
+ <macro name='DEBUG_MEMORY' file='xmlmemory'>
+ <info>DEBUG_MEMORY replaces the allocator with a collect and debug shell to the libc allocator. DEBUG_MEMORY should only be activated when debugging libxml i.e. if libxml has been configured with --with-debug-mem too. #define DEBUG_MEMORY_FREED #define DEBUG_MEMORY_LOCATION</info>
+ </macro>
+ <macro name='DEBUG_MEMORY_LOCATION' file='xmlversion'>
+ <info>Whether the memory debugging is configured in</info>
+ </macro>
+ <macro name='HTML_COMMENT_NODE' file='HTMLtree'>
+ <info>Macro. A comment in a HTML document is really implemented the same way as a comment in an XML document.</info>
+ </macro>
+ <macro name='HTML_ENTITY_REF_NODE' file='HTMLtree'>
+ <info>Macro. An entity reference in a HTML document is really implemented the same way as an entity reference in an XML document.</info>
+ </macro>
+ <macro name='HTML_PI_NODE' file='HTMLtree'>
+ <info>Macro. A processing instruction in a HTML document is really implemented the same way as a processing instruction in an XML document.</info>
+ </macro>
+ <macro name='HTML_PRESERVE_NODE' file='HTMLtree'>
+ <info>Macro. A preserved node in a HTML document is really implemented the same way as a CDATA section in an XML document.</info>
+ </macro>
+ <macro name='HTML_TEXT_NODE' file='HTMLtree'>
+ <info>Macro. A text node in a HTML document is really implemented the same way as a text node in an XML document.</info>
+ </macro>
+ <macro name='ICU_PIVOT_BUF_SIZE' file='encoding'>
+ </macro>
+ <macro name='INPUT_CHUNK' file='parserInternals'>
+ <info>The parser tries to always have that amount of input ready. One of the point is providing context when reporting errors.</info>
+ </macro>
+ <macro name='INVALID_SOCKET' file='nanoftp'>
+ <info>macro used to provide portability of code to windows sockets the value to be used when the socket is not valid</info>
+ </macro>
+ <macro name='IS_ASCII_DIGIT' file='parserInternals'>
+ <info>Macro to check [0-9]</info>
+ <arg name='c' info='an xmlChar value'/>
+ </macro>
+ <macro name='IS_ASCII_LETTER' file='parserInternals'>
+ <info>Macro to check [a-zA-Z]</info>
+ <arg name='c' info='an xmlChar value'/>
+ </macro>
+ <macro name='IS_BASECHAR' file='parserInternals'>
+ <info>Macro to check the following production in the XML spec: [85] BaseChar ::= ... long list see REC ...</info>
+ <arg name='c' info='an UNICODE value (int)'/>
+ </macro>
+ <macro name='IS_BLANK' file='parserInternals'>
+ <info>Macro to check the following production in the XML spec: [3] S ::= (#x20 | #x9 | #xD | #xA)+</info>
+ <arg name='c' info='an UNICODE value (int)'/>
+ </macro>
+ <macro name='IS_BLANK_CH' file='parserInternals'>
+ <info>Behaviour same as IS_BLANK</info>
+ <arg name='c' info='an xmlChar value (normally unsigned char)'/>
+ </macro>
+ <macro name='IS_BYTE_CHAR' file='parserInternals'>
+ <info>Macro to check the following production in the XML spec: [2] Char ::= #x9 | #xA | #xD | [#x20...] any byte character in the accepted range</info>
+ <arg name='c' info='an byte value (int)'/>
+ </macro>
+ <macro name='IS_CHAR' file='parserInternals'>
+ <info>Macro to check the following production in the XML spec: [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.</info>
+ <arg name='c' info='an UNICODE value (int)'/>
+ </macro>
+ <macro name='IS_CHAR_CH' file='parserInternals'>
+ <info>Behaves like IS_CHAR on single-byte value</info>
+ <arg name='c' info='an xmlChar (usually an unsigned char)'/>
+ </macro>
+ <macro name='IS_COMBINING' file='parserInternals'>
+ <info>Macro to check the following production in the XML spec: [87] CombiningChar ::= ... long list see REC ...</info>
+ <arg name='c' info='an UNICODE value (int)'/>
+ </macro>
+ <macro name='IS_COMBINING_CH' file='parserInternals'>
+ <info>Always false (all combining chars &gt; 0xff)</info>
+ <arg name='c' info='an xmlChar (usually an unsigned char)'/>
+ </macro>
+ <macro name='IS_DIGIT' file='parserInternals'>
+ <info>Macro to check the following production in the XML spec: [88] Digit ::= ... long list see REC ...</info>
+ <arg name='c' info='an UNICODE value (int)'/>
+ </macro>
+ <macro name='IS_DIGIT_CH' file='parserInternals'>
+ <info>Behaves like IS_DIGIT but with a single byte argument</info>
+ <arg name='c' info='an xmlChar value (usually an unsigned char)'/>
+ </macro>
+ <macro name='IS_EXTENDER' file='parserInternals'>
+ <info>Macro to check the following production in the XML spec: [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E] | [#x30FC-#x30FE]</info>
+ <arg name='c' info='an UNICODE value (int)'/>
+ </macro>
+ <macro name='IS_EXTENDER_CH' file='parserInternals'>
+ <info>Behaves like IS_EXTENDER but with a single-byte argument</info>
+ <arg name='c' info='an xmlChar value (usually an unsigned char)'/>
+ </macro>
+ <macro name='IS_IDEOGRAPHIC' file='parserInternals'>
+ <info>Macro to check the following production in the XML spec: [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]</info>
+ <arg name='c' info='an UNICODE value (int)'/>
+ </macro>
+ <macro name='IS_LETTER' file='parserInternals'>
+ <info>Macro to check the following production in the XML spec: [84] Letter ::= BaseChar | Ideographic</info>
+ <arg name='c' info='an UNICODE value (int)'/>
+ </macro>
+ <macro name='IS_LETTER_CH' file='parserInternals'>
+ <info>Macro behaves like IS_LETTER, but only check base chars</info>
+ <arg name='c' info='an xmlChar value (normally unsigned char)'/>
+ </macro>
+ <macro name='IS_PUBIDCHAR' file='parserInternals'>
+ <info>Macro to check the following production in the XML spec: [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-&apos;()+,./:=?;!*#@$_%]</info>
+ <arg name='c' info='an UNICODE value (int)'/>
+ </macro>
+ <macro name='IS_PUBIDCHAR_CH' file='parserInternals'>
+ <info>Same as IS_PUBIDCHAR but for single-byte value</info>
+ <arg name='c' info='an xmlChar value (normally unsigned char)'/>
+ </macro>
+ <macro name='LIBXML2_NEW_BUFFER' file='tree'>
+ <info>Macro used to express that the API use the new buffers for xmlParserInputBuffer and xmlOutputBuffer. The change was introduced in 2.9.0.</info>
+ </macro>
+ <macro name='LIBXML_ATTR_ALLOC_SIZE' file='xmlversion'>
+ <info>Macro used to indicate to GCC this is an allocator function</info>
+ </macro>
+ <macro name='LIBXML_ATTR_FORMAT' file='xmlversion'>
+ <info>Macro used to indicate to GCC the parameter are printf like</info>
+ </macro>
+ <macro name='LIBXML_AUTOMATA_ENABLED' file='xmlversion'>
+ <info>Whether the automata interfaces are compiled in</info>
+ </macro>
+ <macro name='LIBXML_C14N_ENABLED' file='xmlversion'>
+ <info>Whether the Canonicalization support is configured in</info>
+ </macro>
+ <macro name='LIBXML_CATALOG_ENABLED' file='xmlversion'>
+ <info>Whether the Catalog support is configured in</info>
+ </macro>
+ <macro name='LIBXML_DEBUG_ENABLED' file='xmlversion'>
+ <info>Whether Debugging module is configured in</info>
+ </macro>
+ <macro name='LIBXML_DEBUG_RUNTIME' file='xmlversion'>
+ <info>Whether the runtime debugging is configured in</info>
+ </macro>
+ <macro name='LIBXML_DLL_IMPORT' file='xmlexports'>
+ </macro>
+ <macro name='LIBXML_DOCB_ENABLED' file='xmlversion'>
+ <info>Whether the SGML Docbook support is configured in</info>
+ </macro>
+ <macro name='LIBXML_DOTTED_VERSION' file='xmlversion'>
+ <info>the version string like &quot;1.2.3&quot;</info>
+ </macro>
+ <macro name='LIBXML_EXPR_ENABLED' file='xmlversion'>
+ <info>Whether the formal expressions interfaces are compiled in This code is unused and disabled unconditionally for now.</info>
+ </macro>
+ <macro name='LIBXML_FTP_ENABLED' file='xmlversion'>
+ <info>Whether the FTP support is configured in</info>
+ </macro>
+ <macro name='LIBXML_HTML_ENABLED' file='xmlversion'>
+ <info>Whether the HTML support is configured in</info>
+ </macro>
+ <macro name='LIBXML_HTTP_ENABLED' file='xmlversion'>
+ <info>Whether the HTTP support is configured in</info>
+ </macro>
+ <macro name='LIBXML_ICONV_ENABLED' file='xmlversion'>
+ <info>Whether iconv support is available</info>
+ </macro>
+ <macro name='LIBXML_ICU_ENABLED' file='xmlversion'>
+ <info>Whether icu support is available</info>
+ </macro>
+ <macro name='LIBXML_ISO8859X_ENABLED' file='xmlversion'>
+ <info>Whether ISO-8859-* support is made available in case iconv is not</info>
+ </macro>
+ <macro name='LIBXML_LEGACY_ENABLED' file='xmlversion'>
+ <info>Whether the deprecated APIs are compiled in for compatibility</info>
+ </macro>
+ <macro name='LIBXML_LZMA_ENABLED' file='xmlversion'>
+ <info>Whether the Lzma support is compiled in</info>
+ </macro>
+ <macro name='LIBXML_MODULES_ENABLED' file='xmlversion'>
+ <info>Whether the module interfaces are compiled in</info>
+ </macro>
+ <macro name='LIBXML_MODULE_EXTENSION' file='xmlversion'>
+ <info>the string suffix used by dynamic modules (usually shared libraries)</info>
+ </macro>
+ <macro name='LIBXML_OUTPUT_ENABLED' file='xmlversion'>
+ <info>Whether the serialization/saving support is configured in</info>
+ </macro>
+ <macro name='LIBXML_PATTERN_ENABLED' file='xmlversion'>
+ <info>Whether the xmlPattern node selection interface is configured in</info>
+ </macro>
+ <macro name='LIBXML_PUSH_ENABLED' file='xmlversion'>
+ <info>Whether the push parsing interfaces are configured in</info>
+ </macro>
+ <macro name='LIBXML_READER_ENABLED' file='xmlversion'>
+ <info>Whether the xmlReader parsing interface is configured in</info>
+ </macro>
+ <macro name='LIBXML_REGEXP_ENABLED' file='xmlversion'>
+ <info>Whether the regular expressions interfaces are compiled in</info>
+ </macro>
+ <macro name='LIBXML_SAX1_ENABLED' file='xmlversion'>
+ <info>Whether the older SAX1 interface is configured in</info>
+ </macro>
+ <macro name='LIBXML_SCHEMAS_ENABLED' file='xmlversion'>
+ <info>Whether the Schemas validation interfaces are compiled in</info>
+ </macro>
+ <macro name='LIBXML_SCHEMATRON_ENABLED' file='xmlversion'>
+ <info>Whether the Schematron validation interfaces are compiled in</info>
+ </macro>
+ <macro name='LIBXML_TEST_VERSION' file='xmlversion'>
+ <info>Macro to check that the libxml version in use is compatible with the version the software has been compiled against</info>
+ </macro>
+ <macro name='LIBXML_THREAD_ALLOC_ENABLED' file='xmlversion'>
+ <info>Whether the allocation hooks are per-thread</info>
+ </macro>
+ <macro name='LIBXML_THREAD_ENABLED' file='xmlversion'>
+ <info>Whether the thread support is configured in</info>
+ </macro>
+ <macro name='LIBXML_TREE_ENABLED' file='xmlversion'>
+ <info>Whether the DOM like tree manipulation API support is configured in</info>
+ </macro>
+ <macro name='LIBXML_UNICODE_ENABLED' file='xmlversion'>
+ <info>Whether the Unicode related interfaces are compiled in</info>
+ </macro>
+ <macro name='LIBXML_VALID_ENABLED' file='xmlversion'>
+ <info>Whether the DTD validation support is configured in</info>
+ </macro>
+ <macro name='LIBXML_VERSION' file='xmlversion'>
+ <info>the version number: 1.2.3 value is 10203</info>
+ </macro>
+ <macro name='LIBXML_VERSION_EXTRA' file='xmlversion'>
+ <info>extra version information, used to show a CVS compilation</info>
+ </macro>
+ <macro name='LIBXML_VERSION_STRING' file='xmlversion'>
+ <info>the version number string, 1.2.3 value is &quot;10203&quot;</info>
+ </macro>
+ <macro name='LIBXML_WRITER_ENABLED' file='xmlversion'>
+ <info>Whether the xmlWriter saving interface is configured in</info>
+ </macro>
+ <macro name='LIBXML_XINCLUDE_ENABLED' file='xmlversion'>
+ <info>Whether XInclude is configured in</info>
+ </macro>
+ <macro name='LIBXML_XPATH_ENABLED' file='xmlversion'>
+ <info>Whether XPath is configured in</info>
+ </macro>
+ <macro name='LIBXML_XPTR_ENABLED' file='xmlversion'>
+ <info>Whether XPointer is configured in</info>
+ </macro>
+ <macro name='LIBXML_ZLIB_ENABLED' file='xmlversion'>
+ <info>Whether the Zlib support is compiled in</info>
+ </macro>
+ <macro name='MOVETO_ENDTAG' file='parserInternals'>
+ <info>Skips to the next &apos;&gt;&apos; char.</info>
+ <arg name='p' info='and UTF8 string pointer'/>
+ </macro>
+ <macro name='MOVETO_STARTTAG' file='parserInternals'>
+ <info>Skips to the next &apos;&lt;&apos; char.</info>
+ <arg name='p' info='and UTF8 string pointer'/>
+ </macro>
+ <macro name='SKIP_EOL' file='parserInternals'>
+ <info>Skips the end of line chars.</info>
+ <arg name='p' info='and UTF8 string pointer'/>
+ </macro>
+ <macro name='SOCKET' file='nanoftp'>
+ <info>macro used to provide portability of code to windows sockets</info>
+ </macro>
+ <macro name='WITHOUT_TRIO' file='xmlversion'>
+ <info>defined if the trio support should not be configured in</info>
+ </macro>
+ <macro name='WITH_TRIO' file='xmlversion'>
+ <info>defined if the trio support need to be configured in</info>
+ </macro>
+ <macro name='XINCLUDE_FALLBACK' file='xinclude'>
+ <info>Macro defining &quot;fallback&quot;</info>
+ </macro>
+ <macro name='XINCLUDE_HREF' file='xinclude'>
+ <info>Macro defining &quot;href&quot;</info>
+ </macro>
+ <macro name='XINCLUDE_NODE' file='xinclude'>
+ <info>Macro defining &quot;include&quot;</info>
+ </macro>
+ <macro name='XINCLUDE_NS' file='xinclude'>
+ <info>Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude</info>
+ </macro>
+ <macro name='XINCLUDE_OLD_NS' file='xinclude'>
+ <info>Macro defining the draft Xinclude namespace: http://www.w3.org/2001/XInclude</info>
+ </macro>
+ <macro name='XINCLUDE_PARSE' file='xinclude'>
+ <info>Macro defining &quot;parse&quot;</info>
+ </macro>
+ <macro name='XINCLUDE_PARSE_ENCODING' file='xinclude'>
+ <info>Macro defining &quot;encoding&quot;</info>
+ </macro>
+ <macro name='XINCLUDE_PARSE_TEXT' file='xinclude'>
+ <info>Macro defining &quot;text&quot;</info>
+ </macro>
+ <macro name='XINCLUDE_PARSE_XML' file='xinclude'>
+ <info>Macro defining &quot;xml&quot;</info>
+ </macro>
+ <macro name='XINCLUDE_PARSE_XPOINTER' file='xinclude'>
+ <info>Macro defining &quot;xpointer&quot;</info>
+ </macro>
+ <macro name='XMLCALL' file='xmlexports'>
+ </macro>
+ <macro name='XMLCDECL' file='xmlexports'>
+ </macro>
+ <macro name='XMLPUBFUN' file='xmlexports'>
+ </macro>
+ <macro name='XMLPUBVAR' file='xmlexports'>
+ </macro>
+ <macro name='XML_CAST_FPTR' file='hash'>
+ <info>Macro to do a casting from an object pointer to a function pointer without encountering a warning from gcc #define XML_CAST_FPTR(fptr) (*(void **)(&amp;fptr)) This macro violated ISO C aliasing rules (gcc4 on s390 broke) so it is disabled now</info>
+ <arg name='fptr' info='pointer to a function'/>
+ </macro>
+ <macro name='XML_CATALOGS_NAMESPACE' file='catalog'>
+ <info>The namespace for the XML Catalogs elements.</info>
+ </macro>
+ <macro name='XML_CATALOG_PI' file='catalog'>
+ <info>The specific XML Catalog Processing Instruction name.</info>
+ </macro>
+ <macro name='XML_COMPLETE_ATTRS' file='parser'>
+ <info>Bit in the loadsubset context field to tell to do complete the elements attributes lists with the ones defaulted from the DTDs. Use it to initialize xmlLoadExtDtdDefaultValue.</info>
+ </macro>
+ <macro name='XML_CTXT_FINISH_DTD_0' file='valid'>
+ <info>Special value for finishDtd field when embedded in an xmlParserCtxt</info>
+ </macro>
+ <macro name='XML_CTXT_FINISH_DTD_1' file='valid'>
+ <info>Special value for finishDtd field when embedded in an xmlParserCtxt</info>
+ </macro>
+ <macro name='XML_DEFAULT_VERSION' file='parser'>
+ <info>The default version of XML used: 1.0</info>
+ </macro>
+ <macro name='XML_DETECT_IDS' file='parser'>
+ <info>Bit in the loadsubset context field to tell to do ID/REFs lookups. Use it to initialize xmlLoadExtDtdDefaultValue.</info>
+ </macro>
+ <macro name='XML_GET_CONTENT' file='tree'>
+ <info>Macro to extract the content pointer of a node.</info>
+ </macro>
+ <macro name='XML_GET_LINE' file='tree'>
+ <info>Macro to extract the line number of an element node.</info>
+ </macro>
+ <macro name='XML_LOCAL_NAMESPACE' file='tree'>
+ <info>A namespace declaration node.</info>
+ </macro>
+ <macro name='XML_MAX_DICTIONARY_LIMIT' file='parserInternals'>
+ <info>Maximum size allowed by the parser for a dictionary by default This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Introduced in 2.9.0</info>
+ </macro>
+ <macro name='XML_MAX_LOOKUP_LIMIT' file='parserInternals'>
+ <info>Maximum size allowed by the parser for ahead lookup This is an upper boundary enforced by the parser to avoid bad behaviour on &quot;unfriendly&apos; content Introduced in 2.9.0</info>
+ </macro>
+ <macro name='XML_MAX_NAMELEN' file='parserInternals'>
+ <info>Identifiers can be longer, but this will be more costly at runtime.</info>
+ </macro>
+ <macro name='XML_MAX_NAME_LENGTH' file='parserInternals'>
+ <info>Maximum size allowed for a markup identifier. This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Note that with the use of parsing dictionaries overriding the limit may result in more runtime memory usage in face of &quot;unfriendly&apos; content Introduced in 2.9.0</info>
+ </macro>
+ <macro name='XML_MAX_TEXT_LENGTH' file='parserInternals'>
+ <info>Maximum size allowed for a single text node when building a tree. This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Introduced in 2.9.0</info>
+ </macro>
+ <macro name='XML_SAX2_MAGIC' file='parser'>
+ <info>Special constant found in SAX2 blocks initialized fields</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ANYATTR_LAX' file='schemasInternals'>
+ <info>Ignore validation non definition on attributes Obsolete, not used anymore.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ANYATTR_SKIP' file='schemasInternals'>
+ <info>Skip unknown attribute from validation Obsolete, not used anymore.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ANYATTR_STRICT' file='schemasInternals'>
+ <info>Apply strict validation rules on attributes Obsolete, not used anymore.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ANY_LAX' file='schemasInternals'>
+ <info>Used by wildcards. Validate if type found, don&apos;t worry if not found</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ANY_SKIP' file='schemasInternals'>
+ <info>Skip unknown attribute from validation</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ANY_STRICT' file='schemasInternals'>
+ <info>Used by wildcards. Apply strict validation rules</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTRGROUP_GLOBAL' file='schemasInternals'>
+ <info>The attribute group has been defined.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTRGROUP_HAS_REFS' file='schemasInternals'>
+ <info>Whether this attr. group contains attr. group references.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTRGROUP_MARKED' file='schemasInternals'>
+ <info>Marks the attr group as marked; used for circular checks.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTRGROUP_REDEFINED' file='schemasInternals'>
+ <info>The attr group was redefined.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED' file='schemasInternals'>
+ <info>The attribute wildcard has been built.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTR_FIXED' file='schemasInternals'>
+ <info>the attribute has a fixed value</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTR_GLOBAL' file='schemasInternals'>
+ <info>allow elements in no namespace</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTR_INTERNAL_RESOLVED' file='schemasInternals'>
+ <info>this is set when the &quot;type&quot; and &quot;ref&quot; references have been resolved.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTR_NSDEFAULT' file='schemasInternals'>
+ <info>allow elements in no namespace</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTR_USE_OPTIONAL' file='schemasInternals'>
+ <info>The attribute is optional.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTR_USE_PROHIBITED' file='schemasInternals'>
+ <info>Used by wildcards. The attribute is prohibited.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTR_USE_REQUIRED' file='schemasInternals'>
+ <info>The attribute is required.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION' file='schemasInternals'>
+ <info>the schema has &quot;extension&quot; in the set of blockDefault.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION' file='schemasInternals'>
+ <info>the schema has &quot;restriction&quot; in the set of blockDefault.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION' file='schemasInternals'>
+ <info>the schema has &quot;substitution&quot; in the set of blockDefault.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_ABSTRACT' file='schemasInternals'>
+ <info>the element is abstract</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_BLOCK_ABSENT' file='schemasInternals'>
+ <info>the &quot;block&quot; attribute is absent</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_BLOCK_EXTENSION' file='schemasInternals'>
+ <info>disallowed substitutions are absent</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_BLOCK_RESTRICTION' file='schemasInternals'>
+ <info>disallowed substitutions: &quot;restriction&quot;</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION' file='schemasInternals'>
+ <info>disallowed substitutions: &quot;substitution&quot;</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_CIRCULAR' file='schemasInternals'>
+ <info>a helper flag for the search of circular references.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_DEFAULT' file='schemasInternals'>
+ <info>the element has a default value</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_FINAL_ABSENT' file='schemasInternals'>
+ <info>substitution group exclusions are absent</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_FINAL_EXTENSION' file='schemasInternals'>
+ <info>substitution group exclusions: &quot;extension&quot;</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_FINAL_RESTRICTION' file='schemasInternals'>
+ <info>substitution group exclusions: &quot;restriction&quot;</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_FIXED' file='schemasInternals'>
+ <info>the element has a fixed value</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_GLOBAL' file='schemasInternals'>
+ <info>the element is global</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_INTERNAL_CHECKED' file='schemasInternals'>
+ <info>this is set when the elem decl has been checked against all constraints</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_INTERNAL_RESOLVED' file='schemasInternals'>
+ <info>this is set when &quot;type&quot;, &quot;ref&quot;, &quot;substitutionGroup&quot; references have been resolved.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_NILLABLE' file='schemasInternals'>
+ <info>the element is nillable</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_NSDEFAULT' file='schemasInternals'>
+ <info>allow elements in no namespace Obsolete, not used anymore.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_REF' file='schemasInternals'>
+ <info>the element is a reference to a type</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD' file='schemasInternals'>
+ <info>the declaration is a substitution group head</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ELEM_TOPLEVEL' file='schemasInternals'>
+ <info>the element is top level obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FACET_COLLAPSE' file='schemasInternals'>
+ <info>collapse the types of the facet</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FACET_PRESERVE' file='schemasInternals'>
+ <info>preserve the type of the facet</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FACET_REPLACE' file='schemasInternals'>
+ <info>replace the type of the facet</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FACET_UNKNOWN' file='schemasInternals'>
+ <info>unknown facet handling</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FINAL_DEFAULT_EXTENSION' file='schemasInternals'>
+ <info>the schema has &quot;extension&quot; in the set of finalDefault.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FINAL_DEFAULT_LIST' file='schemasInternals'>
+ <info>the schema has &quot;list&quot; in the set of finalDefault.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION' file='schemasInternals'>
+ <info>the schema has &quot;restriction&quot; in the set of finalDefault.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FINAL_DEFAULT_UNION' file='schemasInternals'>
+ <info>the schema has &quot;union&quot; in the set of finalDefault.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_INCLUDING_CONVERT_NS' file='schemasInternals'>
+ <info>the schema is currently including an other schema with no target namespace.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_QUALIF_ATTR' file='schemasInternals'>
+ <info>Reflects attributeFormDefault == qualified in an XML schema document.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_QUALIF_ELEM' file='schemasInternals'>
+ <info>Reflects elementFormDefault == qualified in an XML schema document.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_ABSTRACT' file='schemasInternals'>
+ <info>the simple/complexType is abstract.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_BLOCK_DEFAULT' file='schemasInternals'>
+ <info>the complexType did not specify &apos;block&apos; so use the default of the &lt;schema&gt; item.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_BLOCK_EXTENSION' file='schemasInternals'>
+ <info>the complexType has a &apos;block&apos; of &quot;extension&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_BLOCK_RESTRICTION' file='schemasInternals'>
+ <info>the complexType has a &apos;block&apos; of &quot;restriction&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE' file='schemasInternals'>
+ <info>Marks the item as a builtin primitive.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION' file='schemasInternals'>
+ <info>the simple or complex type has a derivation method of &quot;extension&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION' file='schemasInternals'>
+ <info>the simple or complex type has a derivation method of &quot;restriction&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_FACETSNEEDVALUE' file='schemasInternals'>
+ <info>indicates if the facets need a computed value</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_FINAL_DEFAULT' file='schemasInternals'>
+ <info>the simpleType has a final of &quot;default&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_FINAL_EXTENSION' file='schemasInternals'>
+ <info>the complexType has a final of &quot;extension&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_FINAL_LIST' file='schemasInternals'>
+ <info>the simpleType has a final of &quot;list&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_FINAL_RESTRICTION' file='schemasInternals'>
+ <info>the simpleType/complexType has a final of &quot;restriction&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_FINAL_UNION' file='schemasInternals'>
+ <info>the simpleType has a final of &quot;union&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_FIXUP_1' file='schemasInternals'>
+ <info>First stage of fixup was done.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_GLOBAL' file='schemasInternals'>
+ <info>the type is global</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_HAS_FACETS' file='schemasInternals'>
+ <info>has facets</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_INTERNAL_INVALID' file='schemasInternals'>
+ <info>indicates that the type is invalid</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_INTERNAL_RESOLVED' file='schemasInternals'>
+ <info>indicates that the type was typefixed</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_MARKED' file='schemasInternals'>
+ <info>Marks the item as marked; used for circular checks.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_MIXED' file='schemasInternals'>
+ <info>the element content type is mixed</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_NORMVALUENEEDED' file='schemasInternals'>
+ <info>indicates if the facets (pattern) need a normalized value</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD' file='schemasInternals'>
+ <info>the complexType owns an attribute wildcard, i.e. it can be freed by the complexType</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_REDEFINED' file='schemasInternals'>
+ <info>The type was redefined.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_VARIETY_ABSENT' file='schemasInternals'>
+ <info>the simpleType has a variety of &quot;absent&quot;. TODO: Actually not necessary :-/, since if none of the variety flags occur then it&apos;s automatically absent.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_VARIETY_ATOMIC' file='schemasInternals'>
+ <info>the simpleType has a variety of &quot;union&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_VARIETY_LIST' file='schemasInternals'>
+ <info>the simpleType has a variety of &quot;list&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_VARIETY_UNION' file='schemasInternals'>
+ <info>the simpleType has a variety of &quot;union&quot;.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE' file='schemasInternals'>
+ <info>a whitespace-facet value of &quot;collapse&quot;</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE' file='schemasInternals'>
+ <info>a whitespace-facet value of &quot;preserve&quot;</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_WHITESPACE_REPLACE' file='schemasInternals'>
+ <info>a whitespace-facet value of &quot;replace&quot;</info>
+ </macro>
+ <macro name='XML_SCHEMAS_WILDCARD_COMPLETE' file='schemasInternals'>
+ <info>If the wildcard is complete.</info>
+ </macro>
+ <macro name='XML_SKIP_IDS' file='parser'>
+ <info>Bit in the loadsubset context field to tell to not do ID/REFs registration. Used to initialize xmlLoadExtDtdDefaultValue in some special cases.</info>
+ </macro>
+ <macro name='XML_SUBSTITUTE_BOTH' file='parserInternals'>
+ <info>Both general and parameter entities need to be substituted.</info>
+ </macro>
+ <macro name='XML_SUBSTITUTE_NONE' file='parserInternals'>
+ <info>If no entities need to be substituted.</info>
+ </macro>
+ <macro name='XML_SUBSTITUTE_PEREF' file='parserInternals'>
+ <info>Whether parameter entities need to be substituted.</info>
+ </macro>
+ <macro name='XML_SUBSTITUTE_REF' file='parserInternals'>
+ <info>Whether general entities need to be substituted.</info>
+ </macro>
+ <macro name='XML_XML_ID' file='tree'>
+ <info>This is the name for the special xml:id attribute</info>
+ </macro>
+ <macro name='XML_XML_NAMESPACE' file='tree'>
+ <info>This is the namespace for the special xml: prefix predefined in the XML Namespace specification.</info>
+ </macro>
+ <macro name='XML_XPATH_CHECKNS' file='xpath'>
+ <info>check namespaces at compilation</info>
+ </macro>
+ <macro name='XML_XPATH_NOVAR' file='xpath'>
+ <info>forbid variables in expression</info>
+ </macro>
+ <macro name='XP_ERROR' file='xpathInternals'>
+ <info>Macro to raise an XPath error and return.</info>
+ <arg name='X' info='the error code'/>
+ </macro>
+ <macro name='XP_ERROR0' file='xpathInternals'>
+ <info>Macro to raise an XPath error and return 0.</info>
+ <arg name='X' info='the error code'/>
+ </macro>
+ <macro name='htmlDefaultSubelement' file='HTMLparser'>
+ <info>Returns the default subelement for this element</info>
+ <arg name='elt' info='HTML element'/>
+ </macro>
+ <macro name='htmlElementAllowedHereDesc' file='HTMLparser'>
+ <info>Checks whether an HTML element description may be a direct child of the specified element. Returns 1 if allowed; 0 otherwise.</info>
+ <arg name='parent' info='HTML parent element'/>
+ <arg name='elt' info='HTML element'/>
+ </macro>
+ <macro name='htmlRequiredAttrs' file='HTMLparser'>
+ <info>Returns the attributes required for the specified element.</info>
+ <arg name='elt' info='HTML element'/>
+ </macro>
+ <macro name='xmlChildrenNode' file='tree'>
+ <info>Macro for compatibility naming layer with libxml1. Maps to &quot;children.&quot;</info>
+ </macro>
+ <macro name='xmlIsBaseCharQ' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsBaseChar_ch' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsBlankQ' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsBlank_ch' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsCharQ' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsChar_ch' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsCombiningQ' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsDigitQ' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsDigit_ch' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsExtenderQ' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsExtender_ch' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsIdeographicQ' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsPubidCharQ' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlIsPubidChar_ch' file='chvalid'>
+ <info>Automatically generated by genChRanges.py</info>
+ <arg name='c' info='char to validate'/>
+ </macro>
+ <macro name='xmlRootNode' file='tree'>
+ <info>Macro for compatibility naming layer with libxml1. Maps to &quot;children&quot;.</info>
+ </macro>
+ <macro name='xmlTextWriterWriteDocType' file='xmlwriter'>
+ <info>this macro maps to xmlTextWriterWriteDTD</info>
+ </macro>
+ <macro name='xmlTextWriterWriteProcessingInstruction' file='xmlwriter'>
+ <info>This macro maps to xmlTextWriterWritePI</info>
+ </macro>
+ <macro name='xmlXPathCheckError' file='xpathInternals'>
+ <info>Check if an XPath error was raised. Returns true if an error has been raised, false otherwise.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathEmptyNodeSet' file='xpathInternals'>
+ <info>Empties a node-set.</info>
+ <arg name='ns' info='a node-set'/>
+ </macro>
+ <macro name='xmlXPathGetContextNode' file='xpathInternals'>
+ <info>Get the context node of an XPath context. Returns the context node.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathGetDocument' file='xpathInternals'>
+ <info>Get the document of an XPath context. Returns the context document.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathGetError' file='xpathInternals'>
+ <info>Get the error code of an XPath context. Returns the context error.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathNodeSetGetLength' file='xpath'>
+ <info>Implement a functionality similar to the DOM NodeList.length. Returns the number of nodes in the node-set.</info>
+ <arg name='ns' info='a node-set'/>
+ </macro>
+ <macro name='xmlXPathNodeSetIsEmpty' file='xpath'>
+ <info>Checks whether @ns is empty or not. Returns %TRUE if @ns is an empty node-set.</info>
+ <arg name='ns' info='a node-set'/>
+ </macro>
+ <macro name='xmlXPathNodeSetItem' file='xpath'>
+ <info>Implements a functionality similar to the DOM NodeList.item(). Returns the xmlNodePtr at the given @index in @ns or NULL if @index is out of range (0 to length-1)</info>
+ <arg name='ns' info='a node-set'/>
+ <arg name='index' info='index of a node in the set'/>
+ </macro>
+ <macro name='xmlXPathReturnBoolean' file='xpathInternals'>
+ <info>Pushes the boolean @val on the context stack.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ <arg name='val' info='a boolean'/>
+ </macro>
+ <macro name='xmlXPathReturnEmptyNodeSet' file='xpathInternals'>
+ <info>Pushes an empty node-set on the context stack.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathReturnEmptyString' file='xpathInternals'>
+ <info>Pushes an empty string on the stack.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathReturnExternal' file='xpathInternals'>
+ <info>Pushes user data on the context stack.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ <arg name='val' info='user data'/>
+ </macro>
+ <macro name='xmlXPathReturnFalse' file='xpathInternals'>
+ <info>Pushes false on the context stack.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathReturnNodeSet' file='xpathInternals'>
+ <info>Pushes the node-set @ns on the context stack.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ <arg name='ns' info='a node-set'/>
+ </macro>
+ <macro name='xmlXPathReturnNumber' file='xpathInternals'>
+ <info>Pushes the double @val on the context stack.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ <arg name='val' info='a double'/>
+ </macro>
+ <macro name='xmlXPathReturnString' file='xpathInternals'>
+ <info>Pushes the string @str on the context stack.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ <arg name='str' info='a string'/>
+ </macro>
+ <macro name='xmlXPathReturnTrue' file='xpathInternals'>
+ <info>Pushes true on the context stack.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathSetArityError' file='xpathInternals'>
+ <info>Raises an XPATH_INVALID_ARITY error.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathSetError' file='xpathInternals'>
+ <info>Raises an error.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ <arg name='err' info='an xmlXPathError code'/>
+ </macro>
+ <macro name='xmlXPathSetTypeError' file='xpathInternals'>
+ <info>Raises an XPATH_INVALID_TYPE error.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathStackIsExternal' file='xpathInternals'>
+ <info>Checks if the current value on the XPath stack is an external object. Returns true if the current object on the stack is an external object.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <macro name='xmlXPathStackIsNodeSet' file='xpathInternals'>
+ <info>Check if the current value on the XPath stack is a node set or an XSLT value tree. Returns true if the current object on the stack is a node-set.</info>
+ <arg name='ctxt' info='an XPath parser context'/>
+ </macro>
+ <enum name='HTML_DEPRECATED' file='HTMLparser' value='2' type='htmlStatus'/>
+ <enum name='HTML_INVALID' file='HTMLparser' value='1' type='htmlStatus'/>
+ <enum name='HTML_NA' file='HTMLparser' value='0' type='htmlStatus' info='something we don&apos;t check at all'/>
+ <enum name='HTML_PARSE_COMPACT' file='HTMLparser' value='65536' type='htmlParserOption' info='compact small text nodes'/>
+ <enum name='HTML_PARSE_IGNORE_ENC' file='HTMLparser' value='2097152' type='htmlParserOption' info=' ignore internal document encoding hint'/>
+ <enum name='HTML_PARSE_NOBLANKS' file='HTMLparser' value='256' type='htmlParserOption' info='remove blank nodes'/>
+ <enum name='HTML_PARSE_NODEFDTD' file='HTMLparser' value='4' type='htmlParserOption' info='do not default a doctype if not found'/>
+ <enum name='HTML_PARSE_NOERROR' file='HTMLparser' value='32' type='htmlParserOption' info='suppress error reports'/>
+ <enum name='HTML_PARSE_NOIMPLIED' file='HTMLparser' value='8192' type='htmlParserOption' info='Do not add implied html/body... elements'/>
+ <enum name='HTML_PARSE_NONET' file='HTMLparser' value='2048' type='htmlParserOption' info='Forbid network access'/>
+ <enum name='HTML_PARSE_NOWARNING' file='HTMLparser' value='64' type='htmlParserOption' info='suppress warning reports'/>
+ <enum name='HTML_PARSE_PEDANTIC' file='HTMLparser' value='128' type='htmlParserOption' info='pedantic error reporting'/>
+ <enum name='HTML_PARSE_RECOVER' file='HTMLparser' value='1' type='htmlParserOption' info='Relaxed parsing'/>
+ <enum name='HTML_REQUIRED' file='HTMLparser' value='12' type='htmlStatus' info=' VALID bit set so ( &amp; HTML_VALID ) is TRUE'/>
+ <enum name='HTML_VALID' file='HTMLparser' value='4' type='htmlStatus'/>
+ <enum name='XLINK_ACTUATE_AUTO' file='xlink' value='1' type='xlinkActuate'/>
+ <enum name='XLINK_ACTUATE_NONE' file='xlink' value='0' type='xlinkActuate'/>
+ <enum name='XLINK_ACTUATE_ONREQUEST' file='xlink' value='2' type='xlinkActuate'/>
+ <enum name='XLINK_SHOW_EMBED' file='xlink' value='2' type='xlinkShow'/>
+ <enum name='XLINK_SHOW_NEW' file='xlink' value='1' type='xlinkShow'/>
+ <enum name='XLINK_SHOW_NONE' file='xlink' value='0' type='xlinkShow'/>
+ <enum name='XLINK_SHOW_REPLACE' file='xlink' value='3' type='xlinkShow'/>
+ <enum name='XLINK_TYPE_EXTENDED' file='xlink' value='2' type='xlinkType'/>
+ <enum name='XLINK_TYPE_EXTENDED_SET' file='xlink' value='3' type='xlinkType'/>
+ <enum name='XLINK_TYPE_NONE' file='xlink' value='0' type='xlinkType'/>
+ <enum name='XLINK_TYPE_SIMPLE' file='xlink' value='1' type='xlinkType'/>
+ <enum name='XML_ATTRIBUTE_CDATA' file='tree' value='1' type='xmlAttributeType'/>
+ <enum name='XML_ATTRIBUTE_DECL' file='tree' value='16' type='xmlElementType'/>
+ <enum name='XML_ATTRIBUTE_ENTITIES' file='tree' value='6' type='xmlAttributeType'/>
+ <enum name='XML_ATTRIBUTE_ENTITY' file='tree' value='5' type='xmlAttributeType'/>
+ <enum name='XML_ATTRIBUTE_ENUMERATION' file='tree' value='9' type='xmlAttributeType'/>
+ <enum name='XML_ATTRIBUTE_FIXED' file='tree' value='4' type='xmlAttributeDefault'/>
+ <enum name='XML_ATTRIBUTE_ID' file='tree' value='2' type='xmlAttributeType'/>
+ <enum name='XML_ATTRIBUTE_IDREF' file='tree' value='3' type='xmlAttributeType'/>
+ <enum name='XML_ATTRIBUTE_IDREFS' file='tree' value='4' type='xmlAttributeType'/>
+ <enum name='XML_ATTRIBUTE_IMPLIED' file='tree' value='3' type='xmlAttributeDefault'/>
+ <enum name='XML_ATTRIBUTE_NMTOKEN' file='tree' value='7' type='xmlAttributeType'/>
+ <enum name='XML_ATTRIBUTE_NMTOKENS' file='tree' value='8' type='xmlAttributeType'/>
+ <enum name='XML_ATTRIBUTE_NODE' file='tree' value='2' type='xmlElementType'/>
+ <enum name='XML_ATTRIBUTE_NONE' file='tree' value='1' type='xmlAttributeDefault'/>
+ <enum name='XML_ATTRIBUTE_NOTATION' file='tree' value='10' type='xmlAttributeType'/>
+ <enum name='XML_ATTRIBUTE_REQUIRED' file='tree' value='2' type='xmlAttributeDefault'/>
+ <enum name='XML_BUFFER_ALLOC_BOUNDED' file='tree' value='6' type='xmlBufferAllocationScheme' info=' limit the upper size of the buffer'/>
+ <enum name='XML_BUFFER_ALLOC_DOUBLEIT' file='tree' value='1' type='xmlBufferAllocationScheme' info='double each time one need to grow'/>
+ <enum name='XML_BUFFER_ALLOC_EXACT' file='tree' value='2' type='xmlBufferAllocationScheme' info='grow only to the minimal size'/>
+ <enum name='XML_BUFFER_ALLOC_HYBRID' file='tree' value='5' type='xmlBufferAllocationScheme' info='exact up to a threshold, and doubleit thereafter'/>
+ <enum name='XML_BUFFER_ALLOC_IMMUTABLE' file='tree' value='3' type='xmlBufferAllocationScheme' info='immutable buffer'/>
+ <enum name='XML_BUFFER_ALLOC_IO' file='tree' value='4' type='xmlBufferAllocationScheme' info='special allocation scheme used for I/O'/>
+ <enum name='XML_BUF_OVERFLOW' file='xmlerror' value='7000' type='xmlParserErrors'/>
+ <enum name='XML_C14N_1_0' file='c14n' value='0' type='xmlC14NMode' info='Original C14N 1.0 spec'/>
+ <enum name='XML_C14N_1_1' file='c14n' value='2' type='xmlC14NMode' info=' C14N 1.1 spec'/>
+ <enum name='XML_C14N_CREATE_CTXT' file='xmlerror' value='1950' type='xmlParserErrors'/>
+ <enum name='XML_C14N_CREATE_STACK' file='xmlerror' value='1952' type='xmlParserErrors' info='1952'/>
+ <enum name='XML_C14N_EXCLUSIVE_1_0' file='c14n' value='1' type='xmlC14NMode' info='Exclusive C14N 1.0 spec'/>
+ <enum name='XML_C14N_INVALID_NODE' file='xmlerror' value='1953' type='xmlParserErrors' info='1953'/>
+ <enum name='XML_C14N_RELATIVE_NAMESPACE' file='xmlerror' value='1955' type='xmlParserErrors' info='1955'/>
+ <enum name='XML_C14N_REQUIRES_UTF8' file='xmlerror' value='1951' type='xmlParserErrors' info='1951'/>
+ <enum name='XML_C14N_UNKNOW_NODE' file='xmlerror' value='1954' type='xmlParserErrors' info='1954'/>
+ <enum name='XML_CATALOG_ENTRY_BROKEN' file='xmlerror' value='1651' type='xmlParserErrors' info='1651'/>
+ <enum name='XML_CATALOG_MISSING_ATTR' file='xmlerror' value='1650' type='xmlParserErrors'/>
+ <enum name='XML_CATALOG_NOT_CATALOG' file='xmlerror' value='1653' type='xmlParserErrors' info='1653'/>
+ <enum name='XML_CATALOG_PREFER_VALUE' file='xmlerror' value='1652' type='xmlParserErrors' info='1652'/>
+ <enum name='XML_CATALOG_RECURSION' file='xmlerror' value='1654' type='xmlParserErrors' info='1654'/>
+ <enum name='XML_CATA_ALLOW_ALL' file='catalog' value='3' type='xmlCatalogAllow'/>
+ <enum name='XML_CATA_ALLOW_DOCUMENT' file='catalog' value='2' type='xmlCatalogAllow'/>
+ <enum name='XML_CATA_ALLOW_GLOBAL' file='catalog' value='1' type='xmlCatalogAllow'/>
+ <enum name='XML_CATA_ALLOW_NONE' file='catalog' value='0' type='xmlCatalogAllow'/>
+ <enum name='XML_CATA_PREFER_NONE' file='catalog' value='0' type='xmlCatalogPrefer'/>
+ <enum name='XML_CATA_PREFER_PUBLIC' file='catalog' value='1' type='xmlCatalogPrefer'/>
+ <enum name='XML_CATA_PREFER_SYSTEM' file='catalog' value='2' type='xmlCatalogPrefer'/>
+ <enum name='XML_CDATA_SECTION_NODE' file='tree' value='4' type='xmlElementType'/>
+ <enum name='XML_CHAR_ENCODING_2022_JP' file='encoding' value='19' type='xmlCharEncoding' info='ISO-2022-JP'/>
+ <enum name='XML_CHAR_ENCODING_8859_1' file='encoding' value='10' type='xmlCharEncoding' info='ISO-8859-1 ISO Latin 1'/>
+ <enum name='XML_CHAR_ENCODING_8859_2' file='encoding' value='11' type='xmlCharEncoding' info='ISO-8859-2 ISO Latin 2'/>
+ <enum name='XML_CHAR_ENCODING_8859_3' file='encoding' value='12' type='xmlCharEncoding' info='ISO-8859-3'/>
+ <enum name='XML_CHAR_ENCODING_8859_4' file='encoding' value='13' type='xmlCharEncoding' info='ISO-8859-4'/>
+ <enum name='XML_CHAR_ENCODING_8859_5' file='encoding' value='14' type='xmlCharEncoding' info='ISO-8859-5'/>
+ <enum name='XML_CHAR_ENCODING_8859_6' file='encoding' value='15' type='xmlCharEncoding' info='ISO-8859-6'/>
+ <enum name='XML_CHAR_ENCODING_8859_7' file='encoding' value='16' type='xmlCharEncoding' info='ISO-8859-7'/>
+ <enum name='XML_CHAR_ENCODING_8859_8' file='encoding' value='17' type='xmlCharEncoding' info='ISO-8859-8'/>
+ <enum name='XML_CHAR_ENCODING_8859_9' file='encoding' value='18' type='xmlCharEncoding' info='ISO-8859-9'/>
+ <enum name='XML_CHAR_ENCODING_ASCII' file='encoding' value='22' type='xmlCharEncoding' info=' pure ASCII'/>
+ <enum name='XML_CHAR_ENCODING_EBCDIC' file='encoding' value='6' type='xmlCharEncoding' info='EBCDIC uh!'/>
+ <enum name='XML_CHAR_ENCODING_ERROR' file='encoding' value='-1' type='xmlCharEncoding' info='No char encoding detected'/>
+ <enum name='XML_CHAR_ENCODING_EUC_JP' file='encoding' value='21' type='xmlCharEncoding' info='EUC-JP'/>
+ <enum name='XML_CHAR_ENCODING_NONE' file='encoding' value='0' type='xmlCharEncoding' info='No char encoding detected'/>
+ <enum name='XML_CHAR_ENCODING_SHIFT_JIS' file='encoding' value='20' type='xmlCharEncoding' info='Shift_JIS'/>
+ <enum name='XML_CHAR_ENCODING_UCS2' file='encoding' value='9' type='xmlCharEncoding' info='UCS-2'/>
+ <enum name='XML_CHAR_ENCODING_UCS4BE' file='encoding' value='5' type='xmlCharEncoding' info='UCS-4 big endian'/>
+ <enum name='XML_CHAR_ENCODING_UCS4LE' file='encoding' value='4' type='xmlCharEncoding' info='UCS-4 little endian'/>
+ <enum name='XML_CHAR_ENCODING_UCS4_2143' file='encoding' value='7' type='xmlCharEncoding' info='UCS-4 unusual ordering'/>
+ <enum name='XML_CHAR_ENCODING_UCS4_3412' file='encoding' value='8' type='xmlCharEncoding' info='UCS-4 unusual ordering'/>
+ <enum name='XML_CHAR_ENCODING_UTF16BE' file='encoding' value='3' type='xmlCharEncoding' info='UTF-16 big endian'/>
+ <enum name='XML_CHAR_ENCODING_UTF16LE' file='encoding' value='2' type='xmlCharEncoding' info='UTF-16 little endian'/>
+ <enum name='XML_CHAR_ENCODING_UTF8' file='encoding' value='1' type='xmlCharEncoding' info='UTF-8'/>
+ <enum name='XML_CHECK_ENTITY_TYPE' file='xmlerror' value='5012' type='xmlParserErrors' info='5012'/>
+ <enum name='XML_CHECK_FOUND_ATTRIBUTE' file='xmlerror' value='5001' type='xmlParserErrors' info='5001'/>
+ <enum name='XML_CHECK_FOUND_CDATA' file='xmlerror' value='5003' type='xmlParserErrors' info='5003'/>
+ <enum name='XML_CHECK_FOUND_COMMENT' file='xmlerror' value='5007' type='xmlParserErrors' info='5007'/>
+ <enum name='XML_CHECK_FOUND_DOCTYPE' file='xmlerror' value='5008' type='xmlParserErrors' info='5008'/>
+ <enum name='XML_CHECK_FOUND_ELEMENT' file='xmlerror' value='5000' type='xmlParserErrors'/>
+ <enum name='XML_CHECK_FOUND_ENTITY' file='xmlerror' value='5005' type='xmlParserErrors' info='5005'/>
+ <enum name='XML_CHECK_FOUND_ENTITYREF' file='xmlerror' value='5004' type='xmlParserErrors' info='5004'/>
+ <enum name='XML_CHECK_FOUND_FRAGMENT' file='xmlerror' value='5009' type='xmlParserErrors' info='5009'/>
+ <enum name='XML_CHECK_FOUND_NOTATION' file='xmlerror' value='5010' type='xmlParserErrors' info='5010'/>
+ <enum name='XML_CHECK_FOUND_PI' file='xmlerror' value='5006' type='xmlParserErrors' info='5006'/>
+ <enum name='XML_CHECK_FOUND_TEXT' file='xmlerror' value='5002' type='xmlParserErrors' info='5002'/>
+ <enum name='XML_CHECK_NAME_NOT_NULL' file='xmlerror' value='5037' type='xmlParserErrors' info='5037'/>
+ <enum name='XML_CHECK_NOT_ATTR' file='xmlerror' value='5023' type='xmlParserErrors' info='5023'/>
+ <enum name='XML_CHECK_NOT_ATTR_DECL' file='xmlerror' value='5024' type='xmlParserErrors' info='5024'/>
+ <enum name='XML_CHECK_NOT_DTD' file='xmlerror' value='5022' type='xmlParserErrors' info='5022'/>
+ <enum name='XML_CHECK_NOT_ELEM_DECL' file='xmlerror' value='5025' type='xmlParserErrors' info='5025'/>
+ <enum name='XML_CHECK_NOT_ENTITY_DECL' file='xmlerror' value='5026' type='xmlParserErrors' info='5026'/>
+ <enum name='XML_CHECK_NOT_NCNAME' file='xmlerror' value='5034' type='xmlParserErrors' info='5034'/>
+ <enum name='XML_CHECK_NOT_NS_DECL' file='xmlerror' value='5027' type='xmlParserErrors' info='5027'/>
+ <enum name='XML_CHECK_NOT_UTF8' file='xmlerror' value='5032' type='xmlParserErrors' info='5032'/>
+ <enum name='XML_CHECK_NO_DICT' file='xmlerror' value='5033' type='xmlParserErrors' info='5033'/>
+ <enum name='XML_CHECK_NO_DOC' file='xmlerror' value='5014' type='xmlParserErrors' info='5014'/>
+ <enum name='XML_CHECK_NO_ELEM' file='xmlerror' value='5016' type='xmlParserErrors' info='5016'/>
+ <enum name='XML_CHECK_NO_HREF' file='xmlerror' value='5028' type='xmlParserErrors' info='5028'/>
+ <enum name='XML_CHECK_NO_NAME' file='xmlerror' value='5015' type='xmlParserErrors' info='5015'/>
+ <enum name='XML_CHECK_NO_NEXT' file='xmlerror' value='5020' type='xmlParserErrors' info='5020'/>
+ <enum name='XML_CHECK_NO_PARENT' file='xmlerror' value='5013' type='xmlParserErrors' info='5013'/>
+ <enum name='XML_CHECK_NO_PREV' file='xmlerror' value='5018' type='xmlParserErrors' info='5018'/>
+ <enum name='XML_CHECK_NS_ANCESTOR' file='xmlerror' value='5031' type='xmlParserErrors' info='5031'/>
+ <enum name='XML_CHECK_NS_SCOPE' file='xmlerror' value='5030' type='xmlParserErrors' info='5030'/>
+ <enum name='XML_CHECK_OUTSIDE_DICT' file='xmlerror' value='5035' type='xmlParserErrors' info='5035'/>
+ <enum name='XML_CHECK_UNKNOWN_NODE' file='xmlerror' value='5011' type='xmlParserErrors' info='5011'/>
+ <enum name='XML_CHECK_WRONG_DOC' file='xmlerror' value='5017' type='xmlParserErrors' info='5017'/>
+ <enum name='XML_CHECK_WRONG_NAME' file='xmlerror' value='5036' type='xmlParserErrors' info='5036'/>
+ <enum name='XML_CHECK_WRONG_NEXT' file='xmlerror' value='5021' type='xmlParserErrors' info='5021'/>
+ <enum name='XML_CHECK_WRONG_PARENT' file='xmlerror' value='5029' type='xmlParserErrors' info='5029'/>
+ <enum name='XML_CHECK_WRONG_PREV' file='xmlerror' value='5019' type='xmlParserErrors' info='5019'/>
+ <enum name='XML_COMMENT_NODE' file='tree' value='8' type='xmlElementType'/>
+ <enum name='XML_DOCB_DOCUMENT_NODE' file='tree' value='21' type='xmlElementType'/>
+ <enum name='XML_DOCUMENT_FRAG_NODE' file='tree' value='11' type='xmlElementType'/>
+ <enum name='XML_DOCUMENT_NODE' file='tree' value='9' type='xmlElementType'/>
+ <enum name='XML_DOCUMENT_TYPE_NODE' file='tree' value='10' type='xmlElementType'/>
+ <enum name='XML_DOC_DTDVALID' file='tree' value='8' type='xmlDocProperties' info='DTD validation was successful'/>
+ <enum name='XML_DOC_HTML' file='tree' value='128' type='xmlDocProperties' info=' parsed or built HTML document'/>
+ <enum name='XML_DOC_INTERNAL' file='tree' value='64' type='xmlDocProperties' info='built for internal processing'/>
+ <enum name='XML_DOC_NSVALID' file='tree' value='2' type='xmlDocProperties' info='document is Namespace valid'/>
+ <enum name='XML_DOC_OLD10' file='tree' value='4' type='xmlDocProperties' info='parsed with old XML-1.0 parser'/>
+ <enum name='XML_DOC_USERBUILT' file='tree' value='32' type='xmlDocProperties' info='Document was built using the API
+and not by parsing an instance'/>
+ <enum name='XML_DOC_WELLFORMED' file='tree' value='1' type='xmlDocProperties' info='document is XML well formed'/>
+ <enum name='XML_DOC_XINCLUDE' file='tree' value='16' type='xmlDocProperties' info='XInclude substitution was done'/>
+ <enum name='XML_DTD_ATTRIBUTE_DEFAULT' file='xmlerror' value='500' type='xmlParserErrors'/>
+ <enum name='XML_DTD_ATTRIBUTE_REDEFINED' file='xmlerror' value='501' type='xmlParserErrors' info='501'/>
+ <enum name='XML_DTD_ATTRIBUTE_VALUE' file='xmlerror' value='502' type='xmlParserErrors' info='502'/>
+ <enum name='XML_DTD_CONTENT_ERROR' file='xmlerror' value='503' type='xmlParserErrors' info='503'/>
+ <enum name='XML_DTD_CONTENT_MODEL' file='xmlerror' value='504' type='xmlParserErrors' info='504'/>
+ <enum name='XML_DTD_CONTENT_NOT_DETERMINIST' file='xmlerror' value='505' type='xmlParserErrors' info='505'/>
+ <enum name='XML_DTD_DIFFERENT_PREFIX' file='xmlerror' value='506' type='xmlParserErrors' info='506'/>
+ <enum name='XML_DTD_DUP_TOKEN' file='xmlerror' value='541' type='xmlParserErrors' info='541'/>
+ <enum name='XML_DTD_ELEM_DEFAULT_NAMESPACE' file='xmlerror' value='507' type='xmlParserErrors' info='507'/>
+ <enum name='XML_DTD_ELEM_NAMESPACE' file='xmlerror' value='508' type='xmlParserErrors' info='508'/>
+ <enum name='XML_DTD_ELEM_REDEFINED' file='xmlerror' value='509' type='xmlParserErrors' info='509'/>
+ <enum name='XML_DTD_EMPTY_NOTATION' file='xmlerror' value='510' type='xmlParserErrors' info='510'/>
+ <enum name='XML_DTD_ENTITY_TYPE' file='xmlerror' value='511' type='xmlParserErrors' info='511'/>
+ <enum name='XML_DTD_ID_FIXED' file='xmlerror' value='512' type='xmlParserErrors' info='512'/>
+ <enum name='XML_DTD_ID_REDEFINED' file='xmlerror' value='513' type='xmlParserErrors' info='513'/>
+ <enum name='XML_DTD_ID_SUBSET' file='xmlerror' value='514' type='xmlParserErrors' info='514'/>
+ <enum name='XML_DTD_INVALID_CHILD' file='xmlerror' value='515' type='xmlParserErrors' info='515'/>
+ <enum name='XML_DTD_INVALID_DEFAULT' file='xmlerror' value='516' type='xmlParserErrors' info='516'/>
+ <enum name='XML_DTD_LOAD_ERROR' file='xmlerror' value='517' type='xmlParserErrors' info='517'/>
+ <enum name='XML_DTD_MISSING_ATTRIBUTE' file='xmlerror' value='518' type='xmlParserErrors' info='518'/>
+ <enum name='XML_DTD_MIXED_CORRUPT' file='xmlerror' value='519' type='xmlParserErrors' info='519'/>
+ <enum name='XML_DTD_MULTIPLE_ID' file='xmlerror' value='520' type='xmlParserErrors' info='520'/>
+ <enum name='XML_DTD_NODE' file='tree' value='14' type='xmlElementType'/>
+ <enum name='XML_DTD_NOTATION_REDEFINED' file='xmlerror' value='526' type='xmlParserErrors' info='526'/>
+ <enum name='XML_DTD_NOTATION_VALUE' file='xmlerror' value='527' type='xmlParserErrors' info='527'/>
+ <enum name='XML_DTD_NOT_EMPTY' file='xmlerror' value='528' type='xmlParserErrors' info='528'/>
+ <enum name='XML_DTD_NOT_PCDATA' file='xmlerror' value='529' type='xmlParserErrors' info='529'/>
+ <enum name='XML_DTD_NOT_STANDALONE' file='xmlerror' value='530' type='xmlParserErrors' info='530'/>
+ <enum name='XML_DTD_NO_DOC' file='xmlerror' value='521' type='xmlParserErrors' info='521'/>
+ <enum name='XML_DTD_NO_DTD' file='xmlerror' value='522' type='xmlParserErrors' info='522'/>
+ <enum name='XML_DTD_NO_ELEM_NAME' file='xmlerror' value='523' type='xmlParserErrors' info='523'/>
+ <enum name='XML_DTD_NO_PREFIX' file='xmlerror' value='524' type='xmlParserErrors' info='524'/>
+ <enum name='XML_DTD_NO_ROOT' file='xmlerror' value='525' type='xmlParserErrors' info='525'/>
+ <enum name='XML_DTD_ROOT_NAME' file='xmlerror' value='531' type='xmlParserErrors' info='531'/>
+ <enum name='XML_DTD_STANDALONE_DEFAULTED' file='xmlerror' value='538' type='xmlParserErrors' info='538'/>
+ <enum name='XML_DTD_STANDALONE_WHITE_SPACE' file='xmlerror' value='532' type='xmlParserErrors' info='532'/>
+ <enum name='XML_DTD_UNKNOWN_ATTRIBUTE' file='xmlerror' value='533' type='xmlParserErrors' info='533'/>
+ <enum name='XML_DTD_UNKNOWN_ELEM' file='xmlerror' value='534' type='xmlParserErrors' info='534'/>
+ <enum name='XML_DTD_UNKNOWN_ENTITY' file='xmlerror' value='535' type='xmlParserErrors' info='535'/>
+ <enum name='XML_DTD_UNKNOWN_ID' file='xmlerror' value='536' type='xmlParserErrors' info='536'/>
+ <enum name='XML_DTD_UNKNOWN_NOTATION' file='xmlerror' value='537' type='xmlParserErrors' info='537'/>
+ <enum name='XML_DTD_XMLID_TYPE' file='xmlerror' value='540' type='xmlParserErrors' info='540'/>
+ <enum name='XML_DTD_XMLID_VALUE' file='xmlerror' value='539' type='xmlParserErrors' info='539'/>
+ <enum name='XML_ELEMENT_CONTENT_ELEMENT' file='tree' value='2' type='xmlElementContentType'/>
+ <enum name='XML_ELEMENT_CONTENT_MULT' file='tree' value='3' type='xmlElementContentOccur'/>
+ <enum name='XML_ELEMENT_CONTENT_ONCE' file='tree' value='1' type='xmlElementContentOccur'/>
+ <enum name='XML_ELEMENT_CONTENT_OPT' file='tree' value='2' type='xmlElementContentOccur'/>
+ <enum name='XML_ELEMENT_CONTENT_OR' file='tree' value='4' type='xmlElementContentType'/>
+ <enum name='XML_ELEMENT_CONTENT_PCDATA' file='tree' value='1' type='xmlElementContentType'/>
+ <enum name='XML_ELEMENT_CONTENT_PLUS' file='tree' value='4' type='xmlElementContentOccur'/>
+ <enum name='XML_ELEMENT_CONTENT_SEQ' file='tree' value='3' type='xmlElementContentType'/>
+ <enum name='XML_ELEMENT_DECL' file='tree' value='15' type='xmlElementType'/>
+ <enum name='XML_ELEMENT_NODE' file='tree' value='1' type='xmlElementType'/>
+ <enum name='XML_ELEMENT_TYPE_ANY' file='tree' value='2' type='xmlElementTypeVal'/>
+ <enum name='XML_ELEMENT_TYPE_ELEMENT' file='tree' value='4' type='xmlElementTypeVal'/>
+ <enum name='XML_ELEMENT_TYPE_EMPTY' file='tree' value='1' type='xmlElementTypeVal'/>
+ <enum name='XML_ELEMENT_TYPE_MIXED' file='tree' value='3' type='xmlElementTypeVal'/>
+ <enum name='XML_ELEMENT_TYPE_UNDEFINED' file='tree' value='0' type='xmlElementTypeVal'/>
+ <enum name='XML_ENTITY_DECL' file='tree' value='17' type='xmlElementType'/>
+ <enum name='XML_ENTITY_NODE' file='tree' value='6' type='xmlElementType'/>
+ <enum name='XML_ENTITY_REF_NODE' file='tree' value='5' type='xmlElementType'/>
+ <enum name='XML_ERR_ATTLIST_NOT_FINISHED' file='xmlerror' value='51' type='xmlParserErrors' info='51'/>
+ <enum name='XML_ERR_ATTLIST_NOT_STARTED' file='xmlerror' value='50' type='xmlParserErrors' info='50'/>
+ <enum name='XML_ERR_ATTRIBUTE_NOT_FINISHED' file='xmlerror' value='40' type='xmlParserErrors' info='40'/>
+ <enum name='XML_ERR_ATTRIBUTE_NOT_STARTED' file='xmlerror' value='39' type='xmlParserErrors' info='39'/>
+ <enum name='XML_ERR_ATTRIBUTE_REDEFINED' file='xmlerror' value='42' type='xmlParserErrors' info='42'/>
+ <enum name='XML_ERR_ATTRIBUTE_WITHOUT_VALUE' file='xmlerror' value='41' type='xmlParserErrors' info='41'/>
+ <enum name='XML_ERR_CDATA_NOT_FINISHED' file='xmlerror' value='63' type='xmlParserErrors' info='63'/>
+ <enum name='XML_ERR_CHARREF_AT_EOF' file='xmlerror' value='10' type='xmlParserErrors' info='10'/>
+ <enum name='XML_ERR_CHARREF_IN_DTD' file='xmlerror' value='13' type='xmlParserErrors' info='13'/>
+ <enum name='XML_ERR_CHARREF_IN_EPILOG' file='xmlerror' value='12' type='xmlParserErrors' info='12'/>
+ <enum name='XML_ERR_CHARREF_IN_PROLOG' file='xmlerror' value='11' type='xmlParserErrors' info='11'/>
+ <enum name='XML_ERR_COMMENT_NOT_FINISHED' file='xmlerror' value='45' type='xmlParserErrors' info='45'/>
+ <enum name='XML_ERR_CONDSEC_INVALID' file='xmlerror' value='83' type='xmlParserErrors' info='83'/>
+ <enum name='XML_ERR_CONDSEC_INVALID_KEYWORD' file='xmlerror' value='95' type='xmlParserErrors' info='95'/>
+ <enum name='XML_ERR_CONDSEC_NOT_FINISHED' file='xmlerror' value='59' type='xmlParserErrors' info='59'/>
+ <enum name='XML_ERR_CONDSEC_NOT_STARTED' file='xmlerror' value='58' type='xmlParserErrors' info='58'/>
+ <enum name='XML_ERR_DOCTYPE_NOT_FINISHED' file='xmlerror' value='61' type='xmlParserErrors' info='61'/>
+ <enum name='XML_ERR_DOCUMENT_EMPTY' file='xmlerror' value='4' type='xmlParserErrors' info='4'/>
+ <enum name='XML_ERR_DOCUMENT_END' file='xmlerror' value='5' type='xmlParserErrors' info='5'/>
+ <enum name='XML_ERR_DOCUMENT_START' file='xmlerror' value='3' type='xmlParserErrors' info='3'/>
+ <enum name='XML_ERR_ELEMCONTENT_NOT_FINISHED' file='xmlerror' value='55' type='xmlParserErrors' info='55'/>
+ <enum name='XML_ERR_ELEMCONTENT_NOT_STARTED' file='xmlerror' value='54' type='xmlParserErrors' info='54'/>
+ <enum name='XML_ERR_ENCODING_NAME' file='xmlerror' value='79' type='xmlParserErrors' info='79'/>
+ <enum name='XML_ERR_ENTITYREF_AT_EOF' file='xmlerror' value='14' type='xmlParserErrors' info='14'/>
+ <enum name='XML_ERR_ENTITYREF_IN_DTD' file='xmlerror' value='17' type='xmlParserErrors' info='17'/>
+ <enum name='XML_ERR_ENTITYREF_IN_EPILOG' file='xmlerror' value='16' type='xmlParserErrors' info='16'/>
+ <enum name='XML_ERR_ENTITYREF_IN_PROLOG' file='xmlerror' value='15' type='xmlParserErrors' info='15'/>
+ <enum name='XML_ERR_ENTITYREF_NO_NAME' file='xmlerror' value='22' type='xmlParserErrors' info='22'/>
+ <enum name='XML_ERR_ENTITYREF_SEMICOL_MISSING' file='xmlerror' value='23' type='xmlParserErrors' info='23'/>
+ <enum name='XML_ERR_ENTITY_BOUNDARY' file='xmlerror' value='90' type='xmlParserErrors' info='90'/>
+ <enum name='XML_ERR_ENTITY_CHAR_ERROR' file='xmlerror' value='87' type='xmlParserErrors' info='87'/>
+ <enum name='XML_ERR_ENTITY_IS_EXTERNAL' file='xmlerror' value='29' type='xmlParserErrors' info='29'/>
+ <enum name='XML_ERR_ENTITY_IS_PARAMETER' file='xmlerror' value='30' type='xmlParserErrors' info='30'/>
+ <enum name='XML_ERR_ENTITY_LOOP' file='xmlerror' value='89' type='xmlParserErrors' info='89'/>
+ <enum name='XML_ERR_ENTITY_NOT_FINISHED' file='xmlerror' value='37' type='xmlParserErrors' info='37'/>
+ <enum name='XML_ERR_ENTITY_NOT_STARTED' file='xmlerror' value='36' type='xmlParserErrors' info='36'/>
+ <enum name='XML_ERR_ENTITY_PE_INTERNAL' file='xmlerror' value='88' type='xmlParserErrors' info='88'/>
+ <enum name='XML_ERR_ENTITY_PROCESSING' file='xmlerror' value='104' type='xmlParserErrors' info='104'/>
+ <enum name='XML_ERR_EQUAL_REQUIRED' file='xmlerror' value='75' type='xmlParserErrors' info='75'/>
+ <enum name='XML_ERR_ERROR' file='xmlerror' value='2' type='xmlErrorLevel' info='A recoverable error'/>
+ <enum name='XML_ERR_EXTRA_CONTENT' file='xmlerror' value='86' type='xmlParserErrors' info='86'/>
+ <enum name='XML_ERR_EXT_ENTITY_STANDALONE' file='xmlerror' value='82' type='xmlParserErrors' info='82'/>
+ <enum name='XML_ERR_EXT_SUBSET_NOT_FINISHED' file='xmlerror' value='60' type='xmlParserErrors' info='60'/>
+ <enum name='XML_ERR_FATAL' file='xmlerror' value='3' type='xmlErrorLevel' info=' A fatal error'/>
+ <enum name='XML_ERR_GT_REQUIRED' file='xmlerror' value='73' type='xmlParserErrors' info='73'/>
+ <enum name='XML_ERR_HYPHEN_IN_COMMENT' file='xmlerror' value='80' type='xmlParserErrors' info='80'/>
+ <enum name='XML_ERR_INTERNAL_ERROR' file='xmlerror' value='1' type='xmlParserErrors' info='1'/>
+ <enum name='XML_ERR_INVALID_CHAR' file='xmlerror' value='9' type='xmlParserErrors' info='9'/>
+ <enum name='XML_ERR_INVALID_CHARREF' file='xmlerror' value='8' type='xmlParserErrors' info='8'/>
+ <enum name='XML_ERR_INVALID_DEC_CHARREF' file='xmlerror' value='7' type='xmlParserErrors' info='7'/>
+ <enum name='XML_ERR_INVALID_ENCODING' file='xmlerror' value='81' type='xmlParserErrors' info='81'/>
+ <enum name='XML_ERR_INVALID_HEX_CHARREF' file='xmlerror' value='6' type='xmlParserErrors' info='6'/>
+ <enum name='XML_ERR_INVALID_URI' file='xmlerror' value='91' type='xmlParserErrors' info='91'/>
+ <enum name='XML_ERR_LITERAL_NOT_FINISHED' file='xmlerror' value='44' type='xmlParserErrors' info='44'/>
+ <enum name='XML_ERR_LITERAL_NOT_STARTED' file='xmlerror' value='43' type='xmlParserErrors' info='43'/>
+ <enum name='XML_ERR_LTSLASH_REQUIRED' file='xmlerror' value='74' type='xmlParserErrors' info='74'/>
+ <enum name='XML_ERR_LT_IN_ATTRIBUTE' file='xmlerror' value='38' type='xmlParserErrors' info='38'/>
+ <enum name='XML_ERR_LT_REQUIRED' file='xmlerror' value='72' type='xmlParserErrors' info='72'/>
+ <enum name='XML_ERR_MISPLACED_CDATA_END' file='xmlerror' value='62' type='xmlParserErrors' info='62'/>
+ <enum name='XML_ERR_MISSING_ENCODING' file='xmlerror' value='101' type='xmlParserErrors' info='101'/>
+ <enum name='XML_ERR_MIXED_NOT_FINISHED' file='xmlerror' value='53' type='xmlParserErrors' info='53'/>
+ <enum name='XML_ERR_MIXED_NOT_STARTED' file='xmlerror' value='52' type='xmlParserErrors' info='52'/>
+ <enum name='XML_ERR_NAME_REQUIRED' file='xmlerror' value='68' type='xmlParserErrors' info='68'/>
+ <enum name='XML_ERR_NAME_TOO_LONG' file='xmlerror' value='110' type='xmlParserErrors' info='110'/>
+ <enum name='XML_ERR_NMTOKEN_REQUIRED' file='xmlerror' value='67' type='xmlParserErrors' info='67'/>
+ <enum name='XML_ERR_NONE' file='xmlerror' value='0' type='xmlErrorLevel'/>
+ <enum name='XML_ERR_NOTATION_NOT_FINISHED' file='xmlerror' value='49' type='xmlParserErrors' info='49'/>
+ <enum name='XML_ERR_NOTATION_NOT_STARTED' file='xmlerror' value='48' type='xmlParserErrors' info='48'/>
+ <enum name='XML_ERR_NOTATION_PROCESSING' file='xmlerror' value='105' type='xmlParserErrors' info='105'/>
+ <enum name='XML_ERR_NOT_STANDALONE' file='xmlerror' value='103' type='xmlParserErrors' info='103'/>
+ <enum name='XML_ERR_NOT_WELL_BALANCED' file='xmlerror' value='85' type='xmlParserErrors' info='85'/>
+ <enum name='XML_ERR_NO_DTD' file='xmlerror' value='94' type='xmlParserErrors' info='94'/>
+ <enum name='XML_ERR_NO_MEMORY' file='xmlerror' value='2' type='xmlParserErrors' info='2'/>
+ <enum name='XML_ERR_NS_DECL_ERROR' file='xmlerror' value='35' type='xmlParserErrors' info='35'/>
+ <enum name='XML_ERR_OK' file='xmlerror' value='0' type='xmlParserErrors'/>
+ <enum name='XML_ERR_PCDATA_REQUIRED' file='xmlerror' value='69' type='xmlParserErrors' info='69'/>
+ <enum name='XML_ERR_PEREF_AT_EOF' file='xmlerror' value='18' type='xmlParserErrors' info='18'/>
+ <enum name='XML_ERR_PEREF_IN_EPILOG' file='xmlerror' value='20' type='xmlParserErrors' info='20'/>
+ <enum name='XML_ERR_PEREF_IN_INT_SUBSET' file='xmlerror' value='21' type='xmlParserErrors' info='21'/>
+ <enum name='XML_ERR_PEREF_IN_PROLOG' file='xmlerror' value='19' type='xmlParserErrors' info='19'/>
+ <enum name='XML_ERR_PEREF_NO_NAME' file='xmlerror' value='24' type='xmlParserErrors' info='24'/>
+ <enum name='XML_ERR_PEREF_SEMICOL_MISSING' file='xmlerror' value='25' type='xmlParserErrors' info='25'/>
+ <enum name='XML_ERR_PI_NOT_FINISHED' file='xmlerror' value='47' type='xmlParserErrors' info='47'/>
+ <enum name='XML_ERR_PI_NOT_STARTED' file='xmlerror' value='46' type='xmlParserErrors' info='46'/>
+ <enum name='XML_ERR_PUBID_REQUIRED' file='xmlerror' value='71' type='xmlParserErrors' info='71'/>
+ <enum name='XML_ERR_RESERVED_XML_NAME' file='xmlerror' value='64' type='xmlParserErrors' info='64'/>
+ <enum name='XML_ERR_SEPARATOR_REQUIRED' file='xmlerror' value='66' type='xmlParserErrors' info='66'/>
+ <enum name='XML_ERR_SPACE_REQUIRED' file='xmlerror' value='65' type='xmlParserErrors' info='65'/>
+ <enum name='XML_ERR_STANDALONE_VALUE' file='xmlerror' value='78' type='xmlParserErrors' info='78'/>
+ <enum name='XML_ERR_STRING_NOT_CLOSED' file='xmlerror' value='34' type='xmlParserErrors' info='34'/>
+ <enum name='XML_ERR_STRING_NOT_STARTED' file='xmlerror' value='33' type='xmlParserErrors' info='33'/>
+ <enum name='XML_ERR_TAG_NAME_MISMATCH' file='xmlerror' value='76' type='xmlParserErrors' info='76'/>
+ <enum name='XML_ERR_TAG_NOT_FINISHED' file='xmlerror' value='77' type='xmlParserErrors' info='77'/>
+ <enum name='XML_ERR_UNDECLARED_ENTITY' file='xmlerror' value='26' type='xmlParserErrors' info='26'/>
+ <enum name='XML_ERR_UNKNOWN_ENCODING' file='xmlerror' value='31' type='xmlParserErrors' info='31'/>
+ <enum name='XML_ERR_UNKNOWN_VERSION' file='xmlerror' value='108' type='xmlParserErrors' info='108'/>
+ <enum name='XML_ERR_UNPARSED_ENTITY' file='xmlerror' value='28' type='xmlParserErrors' info='28'/>
+ <enum name='XML_ERR_UNSUPPORTED_ENCODING' file='xmlerror' value='32' type='xmlParserErrors' info='32'/>
+ <enum name='XML_ERR_URI_FRAGMENT' file='xmlerror' value='92' type='xmlParserErrors' info='92'/>
+ <enum name='XML_ERR_URI_REQUIRED' file='xmlerror' value='70' type='xmlParserErrors' info='70'/>
+ <enum name='XML_ERR_USER_STOP' file='xmlerror' value='111' type='xmlParserErrors' info='111'/>
+ <enum name='XML_ERR_VALUE_REQUIRED' file='xmlerror' value='84' type='xmlParserErrors' info='84'/>
+ <enum name='XML_ERR_VERSION_MISMATCH' file='xmlerror' value='109' type='xmlParserErrors' info='109'/>
+ <enum name='XML_ERR_VERSION_MISSING' file='xmlerror' value='96' type='xmlParserErrors' info='96'/>
+ <enum name='XML_ERR_WARNING' file='xmlerror' value='1' type='xmlErrorLevel' info='A simple warning'/>
+ <enum name='XML_ERR_XMLDECL_NOT_FINISHED' file='xmlerror' value='57' type='xmlParserErrors' info='57'/>
+ <enum name='XML_ERR_XMLDECL_NOT_STARTED' file='xmlerror' value='56' type='xmlParserErrors' info='56'/>
+ <enum name='XML_EXP_ATOM' file='xmlregexp' value='2' type='xmlExpNodeType'/>
+ <enum name='XML_EXP_COUNT' file='xmlregexp' value='5' type='xmlExpNodeType'/>
+ <enum name='XML_EXP_EMPTY' file='xmlregexp' value='0' type='xmlExpNodeType'/>
+ <enum name='XML_EXP_FORBID' file='xmlregexp' value='1' type='xmlExpNodeType'/>
+ <enum name='XML_EXP_OR' file='xmlregexp' value='4' type='xmlExpNodeType'/>
+ <enum name='XML_EXP_SEQ' file='xmlregexp' value='3' type='xmlExpNodeType'/>
+ <enum name='XML_EXTERNAL_GENERAL_PARSED_ENTITY' file='entities' value='2' type='xmlEntityType'/>
+ <enum name='XML_EXTERNAL_GENERAL_UNPARSED_ENTITY' file='entities' value='3' type='xmlEntityType'/>
+ <enum name='XML_EXTERNAL_PARAMETER_ENTITY' file='entities' value='5' type='xmlEntityType'/>
+ <enum name='XML_FROM_BUFFER' file='xmlerror' value='29' type='xmlErrorDomain' info='The buffers module'/>
+ <enum name='XML_FROM_C14N' file='xmlerror' value='21' type='xmlErrorDomain' info='The Canonicalization module'/>
+ <enum name='XML_FROM_CATALOG' file='xmlerror' value='20' type='xmlErrorDomain' info='The Catalog module'/>
+ <enum name='XML_FROM_CHECK' file='xmlerror' value='24' type='xmlErrorDomain' info='The error checking module'/>
+ <enum name='XML_FROM_DATATYPE' file='xmlerror' value='15' type='xmlErrorDomain' info='The W3C XML Schemas Datatype module'/>
+ <enum name='XML_FROM_DTD' file='xmlerror' value='4' type='xmlErrorDomain' info='The XML DTD validation with parser contex'/>
+ <enum name='XML_FROM_FTP' file='xmlerror' value='9' type='xmlErrorDomain' info='The FTP module'/>
+ <enum name='XML_FROM_HTML' file='xmlerror' value='5' type='xmlErrorDomain' info='The HTML parser'/>
+ <enum name='XML_FROM_HTTP' file='xmlerror' value='10' type='xmlErrorDomain' info='The HTTP module'/>
+ <enum name='XML_FROM_I18N' file='xmlerror' value='27' type='xmlErrorDomain' info='The module handling character conversion'/>
+ <enum name='XML_FROM_IO' file='xmlerror' value='8' type='xmlErrorDomain' info='The Input/Output stack'/>
+ <enum name='XML_FROM_MEMORY' file='xmlerror' value='6' type='xmlErrorDomain' info='The memory allocator'/>
+ <enum name='XML_FROM_MODULE' file='xmlerror' value='26' type='xmlErrorDomain' info='The dynamically loaded module modul'/>
+ <enum name='XML_FROM_NAMESPACE' file='xmlerror' value='3' type='xmlErrorDomain' info='The XML Namespace module'/>
+ <enum name='XML_FROM_NONE' file='xmlerror' value='0' type='xmlErrorDomain'/>
+ <enum name='XML_FROM_OUTPUT' file='xmlerror' value='7' type='xmlErrorDomain' info='The serialization code'/>
+ <enum name='XML_FROM_PARSER' file='xmlerror' value='1' type='xmlErrorDomain' info='The XML parser'/>
+ <enum name='XML_FROM_REGEXP' file='xmlerror' value='14' type='xmlErrorDomain' info='The regular expressions module'/>
+ <enum name='XML_FROM_RELAXNGP' file='xmlerror' value='18' type='xmlErrorDomain' info='The Relax-NG parser module'/>
+ <enum name='XML_FROM_RELAXNGV' file='xmlerror' value='19' type='xmlErrorDomain' info='The Relax-NG validator module'/>
+ <enum name='XML_FROM_SCHEMASP' file='xmlerror' value='16' type='xmlErrorDomain' info='The W3C XML Schemas parser module'/>
+ <enum name='XML_FROM_SCHEMASV' file='xmlerror' value='17' type='xmlErrorDomain' info='The W3C XML Schemas validation module'/>
+ <enum name='XML_FROM_SCHEMATRONV' file='xmlerror' value='28' type='xmlErrorDomain' info='The Schematron validator module'/>
+ <enum name='XML_FROM_TREE' file='xmlerror' value='2' type='xmlErrorDomain' info='The tree module'/>
+ <enum name='XML_FROM_URI' file='xmlerror' value='30' type='xmlErrorDomain' info=' The URI module'/>
+ <enum name='XML_FROM_VALID' file='xmlerror' value='23' type='xmlErrorDomain' info='The XML DTD validation with valid context'/>
+ <enum name='XML_FROM_WRITER' file='xmlerror' value='25' type='xmlErrorDomain' info='The xmlwriter module'/>
+ <enum name='XML_FROM_XINCLUDE' file='xmlerror' value='11' type='xmlErrorDomain' info='The XInclude processing'/>
+ <enum name='XML_FROM_XPATH' file='xmlerror' value='12' type='xmlErrorDomain' info='The XPath module'/>
+ <enum name='XML_FROM_XPOINTER' file='xmlerror' value='13' type='xmlErrorDomain' info='The XPointer module'/>
+ <enum name='XML_FROM_XSLT' file='xmlerror' value='22' type='xmlErrorDomain' info='The XSLT engine from libxslt'/>
+ <enum name='XML_FTP_ACCNT' file='xmlerror' value='2002' type='xmlParserErrors' info='2002'/>
+ <enum name='XML_FTP_EPSV_ANSWER' file='xmlerror' value='2001' type='xmlParserErrors' info='2001'/>
+ <enum name='XML_FTP_PASV_ANSWER' file='xmlerror' value='2000' type='xmlParserErrors'/>
+ <enum name='XML_FTP_URL_SYNTAX' file='xmlerror' value='2003' type='xmlParserErrors' info='2003'/>
+ <enum name='XML_HTML_DOCUMENT_NODE' file='tree' value='13' type='xmlElementType'/>
+ <enum name='XML_HTML_STRUCURE_ERROR' file='xmlerror' value='800' type='xmlParserErrors'/>
+ <enum name='XML_HTML_UNKNOWN_TAG' file='xmlerror' value='801' type='xmlParserErrors' info='801'/>
+ <enum name='XML_HTTP_UNKNOWN_HOST' file='xmlerror' value='2022' type='xmlParserErrors' info='2022'/>
+ <enum name='XML_HTTP_URL_SYNTAX' file='xmlerror' value='2020' type='xmlParserErrors'/>
+ <enum name='XML_HTTP_USE_IP' file='xmlerror' value='2021' type='xmlParserErrors' info='2021'/>
+ <enum name='XML_I18N_CONV_FAILED' file='xmlerror' value='6003' type='xmlParserErrors' info='6003'/>
+ <enum name='XML_I18N_EXCESS_HANDLER' file='xmlerror' value='6002' type='xmlParserErrors' info='6002'/>
+ <enum name='XML_I18N_NO_HANDLER' file='xmlerror' value='6001' type='xmlParserErrors' info='6001'/>
+ <enum name='XML_I18N_NO_NAME' file='xmlerror' value='6000' type='xmlParserErrors'/>
+ <enum name='XML_I18N_NO_OUTPUT' file='xmlerror' value='6004' type='xmlParserErrors' info='6004'/>
+ <enum name='XML_INTERNAL_GENERAL_ENTITY' file='entities' value='1' type='xmlEntityType'/>
+ <enum name='XML_INTERNAL_PARAMETER_ENTITY' file='entities' value='4' type='xmlEntityType'/>
+ <enum name='XML_INTERNAL_PREDEFINED_ENTITY' file='entities' value='6' type='xmlEntityType'/>
+ <enum name='XML_IO_BUFFER_FULL' file='xmlerror' value='1548' type='xmlParserErrors' info='1548'/>
+ <enum name='XML_IO_EACCES' file='xmlerror' value='1501' type='xmlParserErrors' info='1501'/>
+ <enum name='XML_IO_EADDRINUSE' file='xmlerror' value='1554' type='xmlParserErrors' info='1554'/>
+ <enum name='XML_IO_EAFNOSUPPORT' file='xmlerror' value='1556' type='xmlParserErrors' info='1556'/>
+ <enum name='XML_IO_EAGAIN' file='xmlerror' value='1502' type='xmlParserErrors' info='1502'/>
+ <enum name='XML_IO_EALREADY' file='xmlerror' value='1555' type='xmlParserErrors' info='1555'/>
+ <enum name='XML_IO_EBADF' file='xmlerror' value='1503' type='xmlParserErrors' info='1503'/>
+ <enum name='XML_IO_EBADMSG' file='xmlerror' value='1504' type='xmlParserErrors' info='1504'/>
+ <enum name='XML_IO_EBUSY' file='xmlerror' value='1505' type='xmlParserErrors' info='1505'/>
+ <enum name='XML_IO_ECANCELED' file='xmlerror' value='1506' type='xmlParserErrors' info='1506'/>
+ <enum name='XML_IO_ECHILD' file='xmlerror' value='1507' type='xmlParserErrors' info='1507'/>
+ <enum name='XML_IO_ECONNREFUSED' file='xmlerror' value='1552' type='xmlParserErrors' info='1552'/>
+ <enum name='XML_IO_EDEADLK' file='xmlerror' value='1508' type='xmlParserErrors' info='1508'/>
+ <enum name='XML_IO_EDOM' file='xmlerror' value='1509' type='xmlParserErrors' info='1509'/>
+ <enum name='XML_IO_EEXIST' file='xmlerror' value='1510' type='xmlParserErrors' info='1510'/>
+ <enum name='XML_IO_EFAULT' file='xmlerror' value='1511' type='xmlParserErrors' info='1511'/>
+ <enum name='XML_IO_EFBIG' file='xmlerror' value='1512' type='xmlParserErrors' info='1512'/>
+ <enum name='XML_IO_EINPROGRESS' file='xmlerror' value='1513' type='xmlParserErrors' info='1513'/>
+ <enum name='XML_IO_EINTR' file='xmlerror' value='1514' type='xmlParserErrors' info='1514'/>
+ <enum name='XML_IO_EINVAL' file='xmlerror' value='1515' type='xmlParserErrors' info='1515'/>
+ <enum name='XML_IO_EIO' file='xmlerror' value='1516' type='xmlParserErrors' info='1516'/>
+ <enum name='XML_IO_EISCONN' file='xmlerror' value='1551' type='xmlParserErrors' info='1551'/>
+ <enum name='XML_IO_EISDIR' file='xmlerror' value='1517' type='xmlParserErrors' info='1517'/>
+ <enum name='XML_IO_EMFILE' file='xmlerror' value='1518' type='xmlParserErrors' info='1518'/>
+ <enum name='XML_IO_EMLINK' file='xmlerror' value='1519' type='xmlParserErrors' info='1519'/>
+ <enum name='XML_IO_EMSGSIZE' file='xmlerror' value='1520' type='xmlParserErrors' info='1520'/>
+ <enum name='XML_IO_ENAMETOOLONG' file='xmlerror' value='1521' type='xmlParserErrors' info='1521'/>
+ <enum name='XML_IO_ENCODER' file='xmlerror' value='1544' type='xmlParserErrors' info='1544'/>
+ <enum name='XML_IO_ENETUNREACH' file='xmlerror' value='1553' type='xmlParserErrors' info='1553'/>
+ <enum name='XML_IO_ENFILE' file='xmlerror' value='1522' type='xmlParserErrors' info='1522'/>
+ <enum name='XML_IO_ENODEV' file='xmlerror' value='1523' type='xmlParserErrors' info='1523'/>
+ <enum name='XML_IO_ENOENT' file='xmlerror' value='1524' type='xmlParserErrors' info='1524'/>
+ <enum name='XML_IO_ENOEXEC' file='xmlerror' value='1525' type='xmlParserErrors' info='1525'/>
+ <enum name='XML_IO_ENOLCK' file='xmlerror' value='1526' type='xmlParserErrors' info='1526'/>
+ <enum name='XML_IO_ENOMEM' file='xmlerror' value='1527' type='xmlParserErrors' info='1527'/>
+ <enum name='XML_IO_ENOSPC' file='xmlerror' value='1528' type='xmlParserErrors' info='1528'/>
+ <enum name='XML_IO_ENOSYS' file='xmlerror' value='1529' type='xmlParserErrors' info='1529'/>
+ <enum name='XML_IO_ENOTDIR' file='xmlerror' value='1530' type='xmlParserErrors' info='1530'/>
+ <enum name='XML_IO_ENOTEMPTY' file='xmlerror' value='1531' type='xmlParserErrors' info='1531'/>
+ <enum name='XML_IO_ENOTSOCK' file='xmlerror' value='1550' type='xmlParserErrors' info='1550'/>
+ <enum name='XML_IO_ENOTSUP' file='xmlerror' value='1532' type='xmlParserErrors' info='1532'/>
+ <enum name='XML_IO_ENOTTY' file='xmlerror' value='1533' type='xmlParserErrors' info='1533'/>
+ <enum name='XML_IO_ENXIO' file='xmlerror' value='1534' type='xmlParserErrors' info='1534'/>
+ <enum name='XML_IO_EPERM' file='xmlerror' value='1535' type='xmlParserErrors' info='1535'/>
+ <enum name='XML_IO_EPIPE' file='xmlerror' value='1536' type='xmlParserErrors' info='1536'/>
+ <enum name='XML_IO_ERANGE' file='xmlerror' value='1537' type='xmlParserErrors' info='1537'/>
+ <enum name='XML_IO_EROFS' file='xmlerror' value='1538' type='xmlParserErrors' info='1538'/>
+ <enum name='XML_IO_ESPIPE' file='xmlerror' value='1539' type='xmlParserErrors' info='1539'/>
+ <enum name='XML_IO_ESRCH' file='xmlerror' value='1540' type='xmlParserErrors' info='1540'/>
+ <enum name='XML_IO_ETIMEDOUT' file='xmlerror' value='1541' type='xmlParserErrors' info='1541'/>
+ <enum name='XML_IO_EXDEV' file='xmlerror' value='1542' type='xmlParserErrors' info='1542'/>
+ <enum name='XML_IO_FLUSH' file='xmlerror' value='1545' type='xmlParserErrors' info='1545'/>
+ <enum name='XML_IO_LOAD_ERROR' file='xmlerror' value='1549' type='xmlParserErrors' info='1549'/>
+ <enum name='XML_IO_NETWORK_ATTEMPT' file='xmlerror' value='1543' type='xmlParserErrors' info='1543'/>
+ <enum name='XML_IO_NO_INPUT' file='xmlerror' value='1547' type='xmlParserErrors' info='1547'/>
+ <enum name='XML_IO_UNKNOWN' file='xmlerror' value='1500' type='xmlParserErrors'/>
+ <enum name='XML_IO_WRITE' file='xmlerror' value='1546' type='xmlParserErrors' info='1546'/>
+ <enum name='XML_MODULE_CLOSE' file='xmlerror' value='4901' type='xmlParserErrors' info='4901'/>
+ <enum name='XML_MODULE_LAZY' file='xmlmodule' value='1' type='xmlModuleOption' info='lazy binding'/>
+ <enum name='XML_MODULE_LOCAL' file='xmlmodule' value='2' type='xmlModuleOption' info=' local binding'/>
+ <enum name='XML_MODULE_OPEN' file='xmlerror' value='4900' type='xmlParserErrors' info='4900'/>
+ <enum name='XML_NAMESPACE_DECL' file='tree' value='18' type='xmlElementType'/>
+ <enum name='XML_NOTATION_NODE' file='tree' value='12' type='xmlElementType'/>
+ <enum name='XML_NS_ERR_ATTRIBUTE_REDEFINED' file='xmlerror' value='203' type='xmlParserErrors' info='203'/>
+ <enum name='XML_NS_ERR_COLON' file='xmlerror' value='205' type='xmlParserErrors' info='205'/>
+ <enum name='XML_NS_ERR_EMPTY' file='xmlerror' value='204' type='xmlParserErrors' info='204'/>
+ <enum name='XML_NS_ERR_QNAME' file='xmlerror' value='202' type='xmlParserErrors' info='202'/>
+ <enum name='XML_NS_ERR_UNDEFINED_NAMESPACE' file='xmlerror' value='201' type='xmlParserErrors' info='201'/>
+ <enum name='XML_NS_ERR_XML_NAMESPACE' file='xmlerror' value='200' type='xmlParserErrors'/>
+ <enum name='XML_PARSER_ATTRIBUTE_VALUE' file='parser' value='12' type='xmlParserInputState' info='within an attribute value'/>
+ <enum name='XML_PARSER_CDATA_SECTION' file='parser' value='8' type='xmlParserInputState' info='within a CDATA section'/>
+ <enum name='XML_PARSER_COMMENT' file='parser' value='5' type='xmlParserInputState' info='within a comment'/>
+ <enum name='XML_PARSER_CONTENT' file='parser' value='7' type='xmlParserInputState' info='within the content'/>
+ <enum name='XML_PARSER_DEFAULTATTRS' file='xmlreader' value='2' type='xmlParserProperties'/>
+ <enum name='XML_PARSER_DTD' file='parser' value='3' type='xmlParserInputState' info='within some DTD content'/>
+ <enum name='XML_PARSER_END_TAG' file='parser' value='9' type='xmlParserInputState' info='within a closing tag'/>
+ <enum name='XML_PARSER_ENTITY_DECL' file='parser' value='10' type='xmlParserInputState' info='within an entity declaration'/>
+ <enum name='XML_PARSER_ENTITY_VALUE' file='parser' value='11' type='xmlParserInputState' info='within an entity value in a decl'/>
+ <enum name='XML_PARSER_EOF' file='parser' value='-1' type='xmlParserInputState' info='nothing is to be parsed'/>
+ <enum name='XML_PARSER_EPILOG' file='parser' value='14' type='xmlParserInputState' info='the Misc* after the last end tag'/>
+ <enum name='XML_PARSER_IGNORE' file='parser' value='15' type='xmlParserInputState' info='within an IGNORED section'/>
+ <enum name='XML_PARSER_LOADDTD' file='xmlreader' value='1' type='xmlParserProperties'/>
+ <enum name='XML_PARSER_MISC' file='parser' value='1' type='xmlParserInputState' info='Misc* before int subset'/>
+ <enum name='XML_PARSER_PI' file='parser' value='2' type='xmlParserInputState' info='Within a processing instruction'/>
+ <enum name='XML_PARSER_PROLOG' file='parser' value='4' type='xmlParserInputState' info='Misc* after internal subset'/>
+ <enum name='XML_PARSER_PUBLIC_LITERAL' file='parser' value='16' type='xmlParserInputState' info=' within a PUBLIC value'/>
+ <enum name='XML_PARSER_SEVERITY_ERROR' file='xmlreader' value='4' type='xmlParserSeverities'/>
+ <enum name='XML_PARSER_SEVERITY_VALIDITY_ERROR' file='xmlreader' value='2' type='xmlParserSeverities'/>
+ <enum name='XML_PARSER_SEVERITY_VALIDITY_WARNING' file='xmlreader' value='1' type='xmlParserSeverities'/>
+ <enum name='XML_PARSER_SEVERITY_WARNING' file='xmlreader' value='3' type='xmlParserSeverities'/>
+ <enum name='XML_PARSER_START' file='parser' value='0' type='xmlParserInputState' info='nothing has been parsed'/>
+ <enum name='XML_PARSER_START_TAG' file='parser' value='6' type='xmlParserInputState' info='within a start tag'/>
+ <enum name='XML_PARSER_SUBST_ENTITIES' file='xmlreader' value='4' type='xmlParserProperties'/>
+ <enum name='XML_PARSER_SYSTEM_LITERAL' file='parser' value='13' type='xmlParserInputState' info='within a SYSTEM value'/>
+ <enum name='XML_PARSER_VALIDATE' file='xmlreader' value='3' type='xmlParserProperties'/>
+ <enum name='XML_PARSE_BIG_LINES' file='parser' value='4194304' type='xmlParserOption' info=' Store big lines numbers in text PSVI field'/>
+ <enum name='XML_PARSE_COMPACT' file='parser' value='65536' type='xmlParserOption' info='compact small text nodes; no modification of
+the tree allowed afterwards (will possibly
+crash if you try to modify the tree)'/>
+ <enum name='XML_PARSE_DOM' file='parser' value='1' type='xmlParserMode'/>
+ <enum name='XML_PARSE_DTDATTR' file='parser' value='8' type='xmlParserOption' info='default DTD attributes'/>
+ <enum name='XML_PARSE_DTDLOAD' file='parser' value='4' type='xmlParserOption' info='load the external subset'/>
+ <enum name='XML_PARSE_DTDVALID' file='parser' value='16' type='xmlParserOption' info='validate with the DTD'/>
+ <enum name='XML_PARSE_HUGE' file='parser' value='524288' type='xmlParserOption' info='relax any hardcoded limit from the parser'/>
+ <enum name='XML_PARSE_IGNORE_ENC' file='parser' value='2097152' type='xmlParserOption' info='ignore internal document encoding hint'/>
+ <enum name='XML_PARSE_NOBASEFIX' file='parser' value='262144' type='xmlParserOption' info='do not fixup XINCLUDE xml:base uris'/>
+ <enum name='XML_PARSE_NOBLANKS' file='parser' value='256' type='xmlParserOption' info='remove blank nodes'/>
+ <enum name='XML_PARSE_NOCDATA' file='parser' value='16384' type='xmlParserOption' info='merge CDATA as text nodes'/>
+ <enum name='XML_PARSE_NODICT' file='parser' value='4096' type='xmlParserOption' info='Do not reuse the context dictionary'/>
+ <enum name='XML_PARSE_NOENT' file='parser' value='2' type='xmlParserOption' info='substitute entities'/>
+ <enum name='XML_PARSE_NOERROR' file='parser' value='32' type='xmlParserOption' info='suppress error reports'/>
+ <enum name='XML_PARSE_NONET' file='parser' value='2048' type='xmlParserOption' info='Forbid network access'/>
+ <enum name='XML_PARSE_NOWARNING' file='parser' value='64' type='xmlParserOption' info='suppress warning reports'/>
+ <enum name='XML_PARSE_NOXINCNODE' file='parser' value='32768' type='xmlParserOption' info='do not generate XINCLUDE START/END nodes'/>
+ <enum name='XML_PARSE_NSCLEAN' file='parser' value='8192' type='xmlParserOption' info='remove redundant namespaces declarations'/>
+ <enum name='XML_PARSE_OLD10' file='parser' value='131072' type='xmlParserOption' info='parse using XML-1.0 before update 5'/>
+ <enum name='XML_PARSE_OLDSAX' file='parser' value='1048576' type='xmlParserOption' info='parse using SAX2 interface before 2.7.0'/>
+ <enum name='XML_PARSE_PEDANTIC' file='parser' value='128' type='xmlParserOption' info='pedantic error reporting'/>
+ <enum name='XML_PARSE_PUSH_DOM' file='parser' value='3' type='xmlParserMode'/>
+ <enum name='XML_PARSE_PUSH_SAX' file='parser' value='4' type='xmlParserMode'/>
+ <enum name='XML_PARSE_READER' file='parser' value='5' type='xmlParserMode'/>
+ <enum name='XML_PARSE_RECOVER' file='parser' value='1' type='xmlParserOption' info='recover on errors'/>
+ <enum name='XML_PARSE_SAX' file='parser' value='2' type='xmlParserMode'/>
+ <enum name='XML_PARSE_SAX1' file='parser' value='512' type='xmlParserOption' info='use the SAX1 interface internally'/>
+ <enum name='XML_PARSE_UNKNOWN' file='parser' value='0' type='xmlParserMode'/>
+ <enum name='XML_PARSE_XINCLUDE' file='parser' value='1024' type='xmlParserOption' info='Implement XInclude substitution'/>
+ <enum name='XML_PATTERN_DEFAULT' file='pattern' value='0' type='xmlPatternFlags' info='simple pattern match'/>
+ <enum name='XML_PATTERN_XPATH' file='pattern' value='1' type='xmlPatternFlags' info='standard XPath pattern'/>
+ <enum name='XML_PATTERN_XSFIELD' file='pattern' value='4' type='xmlPatternFlags' info=' XPath subset for schema field'/>
+ <enum name='XML_PATTERN_XSSEL' file='pattern' value='2' type='xmlPatternFlags' info='XPath subset for schema selector'/>
+ <enum name='XML_PI_NODE' file='tree' value='7' type='xmlElementType'/>
+ <enum name='XML_READER_TYPE_ATTRIBUTE' file='xmlreader' value='2' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_CDATA' file='xmlreader' value='4' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_COMMENT' file='xmlreader' value='8' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_DOCUMENT' file='xmlreader' value='9' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_DOCUMENT_FRAGMENT' file='xmlreader' value='11' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_DOCUMENT_TYPE' file='xmlreader' value='10' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_ELEMENT' file='xmlreader' value='1' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_END_ELEMENT' file='xmlreader' value='15' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_END_ENTITY' file='xmlreader' value='16' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_ENTITY' file='xmlreader' value='6' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_ENTITY_REFERENCE' file='xmlreader' value='5' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_NONE' file='xmlreader' value='0' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_NOTATION' file='xmlreader' value='12' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_PROCESSING_INSTRUCTION' file='xmlreader' value='7' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_SIGNIFICANT_WHITESPACE' file='xmlreader' value='14' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_TEXT' file='xmlreader' value='3' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_WHITESPACE' file='xmlreader' value='13' type='xmlReaderTypes'/>
+ <enum name='XML_READER_TYPE_XML_DECLARATION' file='xmlreader' value='17' type='xmlReaderTypes'/>
+ <enum name='XML_REGEXP_COMPILE_ERROR' file='xmlerror' value='1450' type='xmlParserErrors'/>
+ <enum name='XML_RELAXNGP_CRNG' file='relaxng' value='2' type='xmlRelaxNGParserFlag'/>
+ <enum name='XML_RELAXNGP_FREE_DOC' file='relaxng' value='1' type='xmlRelaxNGParserFlag'/>
+ <enum name='XML_RELAXNGP_NONE' file='relaxng' value='0' type='xmlRelaxNGParserFlag'/>
+ <enum name='XML_RELAXNG_ERR_ATTREXTRANS' file='relaxng' value='20' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_ATTRNAME' file='relaxng' value='14' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_ATTRNONS' file='relaxng' value='16' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_ATTRVALID' file='relaxng' value='24' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_ATTRWRONGNS' file='relaxng' value='18' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_CONTENTVALID' file='relaxng' value='25' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_DATAELEM' file='relaxng' value='28' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_DATATYPE' file='relaxng' value='31' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_DUPID' file='relaxng' value='4' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_ELEMEXTRANS' file='relaxng' value='19' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_ELEMNAME' file='relaxng' value='13' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_ELEMNONS' file='relaxng' value='15' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_ELEMNOTEMPTY' file='relaxng' value='21' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_ELEMWRONG' file='relaxng' value='38' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_ELEMWRONGNS' file='relaxng' value='17' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_EXTRACONTENT' file='relaxng' value='26' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_EXTRADATA' file='relaxng' value='35' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_INTEREXTRA' file='relaxng' value='12' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_INTERNAL' file='relaxng' value='37' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_INTERNODATA' file='relaxng' value='10' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_INTERSEQ' file='relaxng' value='11' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_INVALIDATTR' file='relaxng' value='27' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_LACKDATA' file='relaxng' value='36' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_LIST' file='relaxng' value='33' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_LISTELEM' file='relaxng' value='30' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_LISTEMPTY' file='relaxng' value='9' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_LISTEXTRA' file='relaxng' value='8' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_MEMORY' file='relaxng' value='1' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_NODEFINE' file='relaxng' value='7' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_NOELEM' file='relaxng' value='22' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_NOGRAMMAR' file='relaxng' value='34' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_NOSTATE' file='relaxng' value='6' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_NOTELEM' file='relaxng' value='23' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_TEXTWRONG' file='relaxng' value='39' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_TYPE' file='relaxng' value='2' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_TYPECMP' file='relaxng' value='5' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_TYPEVAL' file='relaxng' value='3' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_VALELEM' file='relaxng' value='29' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_ERR_VALUE' file='relaxng' value='32' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RELAXNG_OK' file='relaxng' value='0' type='xmlRelaxNGValidErr'/>
+ <enum name='XML_RNGP_ANYNAME_ATTR_ANCESTOR' file='xmlerror' value='1000' type='xmlParserErrors'/>
+ <enum name='XML_RNGP_ATTRIBUTE_CHILDREN' file='xmlerror' value='1002' type='xmlParserErrors' info='1002'/>
+ <enum name='XML_RNGP_ATTRIBUTE_CONTENT' file='xmlerror' value='1003' type='xmlParserErrors' info='1003'/>
+ <enum name='XML_RNGP_ATTRIBUTE_EMPTY' file='xmlerror' value='1004' type='xmlParserErrors' info='1004'/>
+ <enum name='XML_RNGP_ATTRIBUTE_NOOP' file='xmlerror' value='1005' type='xmlParserErrors' info='1005'/>
+ <enum name='XML_RNGP_ATTR_CONFLICT' file='xmlerror' value='1001' type='xmlParserErrors' info='1001'/>
+ <enum name='XML_RNGP_CHOICE_CONTENT' file='xmlerror' value='1006' type='xmlParserErrors' info='1006'/>
+ <enum name='XML_RNGP_CHOICE_EMPTY' file='xmlerror' value='1007' type='xmlParserErrors' info='1007'/>
+ <enum name='XML_RNGP_CREATE_FAILURE' file='xmlerror' value='1008' type='xmlParserErrors' info='1008'/>
+ <enum name='XML_RNGP_DATA_CONTENT' file='xmlerror' value='1009' type='xmlParserErrors' info='1009'/>
+ <enum name='XML_RNGP_DEFINE_CREATE_FAILED' file='xmlerror' value='1011' type='xmlParserErrors' info='1011'/>
+ <enum name='XML_RNGP_DEFINE_EMPTY' file='xmlerror' value='1012' type='xmlParserErrors' info='1012'/>
+ <enum name='XML_RNGP_DEFINE_MISSING' file='xmlerror' value='1013' type='xmlParserErrors' info='1013'/>
+ <enum name='XML_RNGP_DEFINE_NAME_MISSING' file='xmlerror' value='1014' type='xmlParserErrors' info='1014'/>
+ <enum name='XML_RNGP_DEF_CHOICE_AND_INTERLEAVE' file='xmlerror' value='1010' type='xmlParserErrors' info='1010'/>
+ <enum name='XML_RNGP_ELEMENT_CONTENT' file='xmlerror' value='1018' type='xmlParserErrors' info='1018'/>
+ <enum name='XML_RNGP_ELEMENT_EMPTY' file='xmlerror' value='1017' type='xmlParserErrors' info='1017'/>
+ <enum name='XML_RNGP_ELEMENT_NAME' file='xmlerror' value='1019' type='xmlParserErrors' info='1019'/>
+ <enum name='XML_RNGP_ELEMENT_NO_CONTENT' file='xmlerror' value='1020' type='xmlParserErrors' info='1020'/>
+ <enum name='XML_RNGP_ELEM_CONTENT_EMPTY' file='xmlerror' value='1015' type='xmlParserErrors' info='1015'/>
+ <enum name='XML_RNGP_ELEM_CONTENT_ERROR' file='xmlerror' value='1016' type='xmlParserErrors' info='1016'/>
+ <enum name='XML_RNGP_ELEM_TEXT_CONFLICT' file='xmlerror' value='1021' type='xmlParserErrors' info='1021'/>
+ <enum name='XML_RNGP_EMPTY' file='xmlerror' value='1022' type='xmlParserErrors' info='1022'/>
+ <enum name='XML_RNGP_EMPTY_CONSTRUCT' file='xmlerror' value='1023' type='xmlParserErrors' info='1023'/>
+ <enum name='XML_RNGP_EMPTY_CONTENT' file='xmlerror' value='1024' type='xmlParserErrors' info='1024'/>
+ <enum name='XML_RNGP_EMPTY_NOT_EMPTY' file='xmlerror' value='1025' type='xmlParserErrors' info='1025'/>
+ <enum name='XML_RNGP_ERROR_TYPE_LIB' file='xmlerror' value='1026' type='xmlParserErrors' info='1026'/>
+ <enum name='XML_RNGP_EXCEPT_EMPTY' file='xmlerror' value='1027' type='xmlParserErrors' info='1027'/>
+ <enum name='XML_RNGP_EXCEPT_MISSING' file='xmlerror' value='1028' type='xmlParserErrors' info='1028'/>
+ <enum name='XML_RNGP_EXCEPT_MULTIPLE' file='xmlerror' value='1029' type='xmlParserErrors' info='1029'/>
+ <enum name='XML_RNGP_EXCEPT_NO_CONTENT' file='xmlerror' value='1030' type='xmlParserErrors' info='1030'/>
+ <enum name='XML_RNGP_EXTERNALREF_EMTPY' file='xmlerror' value='1031' type='xmlParserErrors' info='1031'/>
+ <enum name='XML_RNGP_EXTERNALREF_RECURSE' file='xmlerror' value='1033' type='xmlParserErrors' info='1033'/>
+ <enum name='XML_RNGP_EXTERNAL_REF_FAILURE' file='xmlerror' value='1032' type='xmlParserErrors' info='1032'/>
+ <enum name='XML_RNGP_FORBIDDEN_ATTRIBUTE' file='xmlerror' value='1034' type='xmlParserErrors' info='1034'/>
+ <enum name='XML_RNGP_FOREIGN_ELEMENT' file='xmlerror' value='1035' type='xmlParserErrors' info='1035'/>
+ <enum name='XML_RNGP_GRAMMAR_CONTENT' file='xmlerror' value='1036' type='xmlParserErrors' info='1036'/>
+ <enum name='XML_RNGP_GRAMMAR_EMPTY' file='xmlerror' value='1037' type='xmlParserErrors' info='1037'/>
+ <enum name='XML_RNGP_GRAMMAR_MISSING' file='xmlerror' value='1038' type='xmlParserErrors' info='1038'/>
+ <enum name='XML_RNGP_GRAMMAR_NO_START' file='xmlerror' value='1039' type='xmlParserErrors' info='1039'/>
+ <enum name='XML_RNGP_GROUP_ATTR_CONFLICT' file='xmlerror' value='1040' type='xmlParserErrors' info='1040'/>
+ <enum name='XML_RNGP_HREF_ERROR' file='xmlerror' value='1041' type='xmlParserErrors' info='1041'/>
+ <enum name='XML_RNGP_INCLUDE_EMPTY' file='xmlerror' value='1042' type='xmlParserErrors' info='1042'/>
+ <enum name='XML_RNGP_INCLUDE_FAILURE' file='xmlerror' value='1043' type='xmlParserErrors' info='1043'/>
+ <enum name='XML_RNGP_INCLUDE_RECURSE' file='xmlerror' value='1044' type='xmlParserErrors' info='1044'/>
+ <enum name='XML_RNGP_INTERLEAVE_ADD' file='xmlerror' value='1045' type='xmlParserErrors' info='1045'/>
+ <enum name='XML_RNGP_INTERLEAVE_CREATE_FAILED' file='xmlerror' value='1046' type='xmlParserErrors' info='1046'/>
+ <enum name='XML_RNGP_INTERLEAVE_EMPTY' file='xmlerror' value='1047' type='xmlParserErrors' info='1047'/>
+ <enum name='XML_RNGP_INTERLEAVE_NO_CONTENT' file='xmlerror' value='1048' type='xmlParserErrors' info='1048'/>
+ <enum name='XML_RNGP_INVALID_DEFINE_NAME' file='xmlerror' value='1049' type='xmlParserErrors' info='1049'/>
+ <enum name='XML_RNGP_INVALID_URI' file='xmlerror' value='1050' type='xmlParserErrors' info='1050'/>
+ <enum name='XML_RNGP_INVALID_VALUE' file='xmlerror' value='1051' type='xmlParserErrors' info='1051'/>
+ <enum name='XML_RNGP_MISSING_HREF' file='xmlerror' value='1052' type='xmlParserErrors' info='1052'/>
+ <enum name='XML_RNGP_NAME_MISSING' file='xmlerror' value='1053' type='xmlParserErrors' info='1053'/>
+ <enum name='XML_RNGP_NEED_COMBINE' file='xmlerror' value='1054' type='xmlParserErrors' info='1054'/>
+ <enum name='XML_RNGP_NOTALLOWED_NOT_EMPTY' file='xmlerror' value='1055' type='xmlParserErrors' info='1055'/>
+ <enum name='XML_RNGP_NSNAME_ATTR_ANCESTOR' file='xmlerror' value='1056' type='xmlParserErrors' info='1056'/>
+ <enum name='XML_RNGP_NSNAME_NO_NS' file='xmlerror' value='1057' type='xmlParserErrors' info='1057'/>
+ <enum name='XML_RNGP_PARAM_FORBIDDEN' file='xmlerror' value='1058' type='xmlParserErrors' info='1058'/>
+ <enum name='XML_RNGP_PARAM_NAME_MISSING' file='xmlerror' value='1059' type='xmlParserErrors' info='1059'/>
+ <enum name='XML_RNGP_PARENTREF_CREATE_FAILED' file='xmlerror' value='1060' type='xmlParserErrors' info='1060'/>
+ <enum name='XML_RNGP_PARENTREF_NAME_INVALID' file='xmlerror' value='1061' type='xmlParserErrors' info='1061'/>
+ <enum name='XML_RNGP_PARENTREF_NOT_EMPTY' file='xmlerror' value='1064' type='xmlParserErrors' info='1064'/>
+ <enum name='XML_RNGP_PARENTREF_NO_NAME' file='xmlerror' value='1062' type='xmlParserErrors' info='1062'/>
+ <enum name='XML_RNGP_PARENTREF_NO_PARENT' file='xmlerror' value='1063' type='xmlParserErrors' info='1063'/>
+ <enum name='XML_RNGP_PARSE_ERROR' file='xmlerror' value='1065' type='xmlParserErrors' info='1065'/>
+ <enum name='XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME' file='xmlerror' value='1066' type='xmlParserErrors' info='1066'/>
+ <enum name='XML_RNGP_PAT_ATTR_ATTR' file='xmlerror' value='1067' type='xmlParserErrors' info='1067'/>
+ <enum name='XML_RNGP_PAT_ATTR_ELEM' file='xmlerror' value='1068' type='xmlParserErrors' info='1068'/>
+ <enum name='XML_RNGP_PAT_DATA_EXCEPT_ATTR' file='xmlerror' value='1069' type='xmlParserErrors' info='1069'/>
+ <enum name='XML_RNGP_PAT_DATA_EXCEPT_ELEM' file='xmlerror' value='1070' type='xmlParserErrors' info='1070'/>
+ <enum name='XML_RNGP_PAT_DATA_EXCEPT_EMPTY' file='xmlerror' value='1071' type='xmlParserErrors' info='1071'/>
+ <enum name='XML_RNGP_PAT_DATA_EXCEPT_GROUP' file='xmlerror' value='1072' type='xmlParserErrors' info='1072'/>
+ <enum name='XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE' file='xmlerror' value='1073' type='xmlParserErrors' info='1073'/>
+ <enum name='XML_RNGP_PAT_DATA_EXCEPT_LIST' file='xmlerror' value='1074' type='xmlParserErrors' info='1074'/>
+ <enum name='XML_RNGP_PAT_DATA_EXCEPT_ONEMORE' file='xmlerror' value='1075' type='xmlParserErrors' info='1075'/>
+ <enum name='XML_RNGP_PAT_DATA_EXCEPT_REF' file='xmlerror' value='1076' type='xmlParserErrors' info='1076'/>
+ <enum name='XML_RNGP_PAT_DATA_EXCEPT_TEXT' file='xmlerror' value='1077' type='xmlParserErrors' info='1077'/>
+ <enum name='XML_RNGP_PAT_LIST_ATTR' file='xmlerror' value='1078' type='xmlParserErrors' info='1078'/>
+ <enum name='XML_RNGP_PAT_LIST_ELEM' file='xmlerror' value='1079' type='xmlParserErrors' info='1079'/>
+ <enum name='XML_RNGP_PAT_LIST_INTERLEAVE' file='xmlerror' value='1080' type='xmlParserErrors' info='1080'/>
+ <enum name='XML_RNGP_PAT_LIST_LIST' file='xmlerror' value='1081' type='xmlParserErrors' info='1081'/>
+ <enum name='XML_RNGP_PAT_LIST_REF' file='xmlerror' value='1082' type='xmlParserErrors' info='1082'/>
+ <enum name='XML_RNGP_PAT_LIST_TEXT' file='xmlerror' value='1083' type='xmlParserErrors' info='1083'/>
+ <enum name='XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME' file='xmlerror' value='1084' type='xmlParserErrors' info='1084'/>
+ <enum name='XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME' file='xmlerror' value='1085' type='xmlParserErrors' info='1085'/>
+ <enum name='XML_RNGP_PAT_ONEMORE_GROUP_ATTR' file='xmlerror' value='1086' type='xmlParserErrors' info='1086'/>
+ <enum name='XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR' file='xmlerror' value='1087' type='xmlParserErrors' info='1087'/>
+ <enum name='XML_RNGP_PAT_START_ATTR' file='xmlerror' value='1088' type='xmlParserErrors' info='1088'/>
+ <enum name='XML_RNGP_PAT_START_DATA' file='xmlerror' value='1089' type='xmlParserErrors' info='1089'/>
+ <enum name='XML_RNGP_PAT_START_EMPTY' file='xmlerror' value='1090' type='xmlParserErrors' info='1090'/>
+ <enum name='XML_RNGP_PAT_START_GROUP' file='xmlerror' value='1091' type='xmlParserErrors' info='1091'/>
+ <enum name='XML_RNGP_PAT_START_INTERLEAVE' file='xmlerror' value='1092' type='xmlParserErrors' info='1092'/>
+ <enum name='XML_RNGP_PAT_START_LIST' file='xmlerror' value='1093' type='xmlParserErrors' info='1093'/>
+ <enum name='XML_RNGP_PAT_START_ONEMORE' file='xmlerror' value='1094' type='xmlParserErrors' info='1094'/>
+ <enum name='XML_RNGP_PAT_START_TEXT' file='xmlerror' value='1095' type='xmlParserErrors' info='1095'/>
+ <enum name='XML_RNGP_PAT_START_VALUE' file='xmlerror' value='1096' type='xmlParserErrors' info='1096'/>
+ <enum name='XML_RNGP_PREFIX_UNDEFINED' file='xmlerror' value='1097' type='xmlParserErrors' info='1097'/>
+ <enum name='XML_RNGP_REF_CREATE_FAILED' file='xmlerror' value='1098' type='xmlParserErrors' info='1098'/>
+ <enum name='XML_RNGP_REF_CYCLE' file='xmlerror' value='1099' type='xmlParserErrors' info='1099'/>
+ <enum name='XML_RNGP_REF_NAME_INVALID' file='xmlerror' value='1100' type='xmlParserErrors' info='1100'/>
+ <enum name='XML_RNGP_REF_NOT_EMPTY' file='xmlerror' value='1103' type='xmlParserErrors' info='1103'/>
+ <enum name='XML_RNGP_REF_NO_DEF' file='xmlerror' value='1101' type='xmlParserErrors' info='1101'/>
+ <enum name='XML_RNGP_REF_NO_NAME' file='xmlerror' value='1102' type='xmlParserErrors' info='1102'/>
+ <enum name='XML_RNGP_START_CHOICE_AND_INTERLEAVE' file='xmlerror' value='1104' type='xmlParserErrors' info='1104'/>
+ <enum name='XML_RNGP_START_CONTENT' file='xmlerror' value='1105' type='xmlParserErrors' info='1105'/>
+ <enum name='XML_RNGP_START_EMPTY' file='xmlerror' value='1106' type='xmlParserErrors' info='1106'/>
+ <enum name='XML_RNGP_START_MISSING' file='xmlerror' value='1107' type='xmlParserErrors' info='1107'/>
+ <enum name='XML_RNGP_TEXT_EXPECTED' file='xmlerror' value='1108' type='xmlParserErrors' info='1108'/>
+ <enum name='XML_RNGP_TEXT_HAS_CHILD' file='xmlerror' value='1109' type='xmlParserErrors' info='1109'/>
+ <enum name='XML_RNGP_TYPE_MISSING' file='xmlerror' value='1110' type='xmlParserErrors' info='1110'/>
+ <enum name='XML_RNGP_TYPE_NOT_FOUND' file='xmlerror' value='1111' type='xmlParserErrors' info='1111'/>
+ <enum name='XML_RNGP_TYPE_VALUE' file='xmlerror' value='1112' type='xmlParserErrors' info='1112'/>
+ <enum name='XML_RNGP_UNKNOWN_ATTRIBUTE' file='xmlerror' value='1113' type='xmlParserErrors' info='1113'/>
+ <enum name='XML_RNGP_UNKNOWN_COMBINE' file='xmlerror' value='1114' type='xmlParserErrors' info='1114'/>
+ <enum name='XML_RNGP_UNKNOWN_CONSTRUCT' file='xmlerror' value='1115' type='xmlParserErrors' info='1115'/>
+ <enum name='XML_RNGP_UNKNOWN_TYPE_LIB' file='xmlerror' value='1116' type='xmlParserErrors' info='1116'/>
+ <enum name='XML_RNGP_URI_FRAGMENT' file='xmlerror' value='1117' type='xmlParserErrors' info='1117'/>
+ <enum name='XML_RNGP_URI_NOT_ABSOLUTE' file='xmlerror' value='1118' type='xmlParserErrors' info='1118'/>
+ <enum name='XML_RNGP_VALUE_EMPTY' file='xmlerror' value='1119' type='xmlParserErrors' info='1119'/>
+ <enum name='XML_RNGP_VALUE_NO_CONTENT' file='xmlerror' value='1120' type='xmlParserErrors' info='1120'/>
+ <enum name='XML_RNGP_XMLNS_NAME' file='xmlerror' value='1121' type='xmlParserErrors' info='1121'/>
+ <enum name='XML_RNGP_XML_NS' file='xmlerror' value='1122' type='xmlParserErrors' info='1122'/>
+ <enum name='XML_SAVE_AS_HTML' file='xmlsave' value='64' type='xmlSaveOption' info='force HTML serialization on XML doc'/>
+ <enum name='XML_SAVE_AS_XML' file='xmlsave' value='32' type='xmlSaveOption' info='force XML serialization on HTML doc'/>
+ <enum name='XML_SAVE_CHAR_INVALID' file='xmlerror' value='1401' type='xmlParserErrors' info='1401'/>
+ <enum name='XML_SAVE_FORMAT' file='xmlsave' value='1' type='xmlSaveOption' info='format save output'/>
+ <enum name='XML_SAVE_NOT_UTF8' file='xmlerror' value='1400' type='xmlParserErrors'/>
+ <enum name='XML_SAVE_NO_DECL' file='xmlsave' value='2' type='xmlSaveOption' info='drop the xml declaration'/>
+ <enum name='XML_SAVE_NO_DOCTYPE' file='xmlerror' value='1402' type='xmlParserErrors' info='1402'/>
+ <enum name='XML_SAVE_NO_EMPTY' file='xmlsave' value='4' type='xmlSaveOption' info='no empty tags'/>
+ <enum name='XML_SAVE_NO_XHTML' file='xmlsave' value='8' type='xmlSaveOption' info='disable XHTML1 specific rules'/>
+ <enum name='XML_SAVE_UNKNOWN_ENCODING' file='xmlerror' value='1403' type='xmlParserErrors' info='1403'/>
+ <enum name='XML_SAVE_WSNONSIG' file='xmlsave' value='128' type='xmlSaveOption' info=' format with non-significant whitespace'/>
+ <enum name='XML_SAVE_XHTML' file='xmlsave' value='16' type='xmlSaveOption' info='force XHTML1 specific rules'/>
+ <enum name='XML_SCHEMAP_AG_PROPS_CORRECT' file='xmlerror' value='3087' type='xmlParserErrors' info='3086'/>
+ <enum name='XML_SCHEMAP_ATTRFORMDEFAULT_VALUE' file='xmlerror' value='1701' type='xmlParserErrors' info='1701'/>
+ <enum name='XML_SCHEMAP_ATTRGRP_NONAME_NOREF' file='xmlerror' value='1702' type='xmlParserErrors' info='1702'/>
+ <enum name='XML_SCHEMAP_ATTR_NONAME_NOREF' file='xmlerror' value='1703' type='xmlParserErrors' info='1703'/>
+ <enum name='XML_SCHEMAP_AU_PROPS_CORRECT' file='xmlerror' value='3089' type='xmlParserErrors' info='3088'/>
+ <enum name='XML_SCHEMAP_AU_PROPS_CORRECT_2' file='xmlerror' value='3078' type='xmlParserErrors' info='3078'/>
+ <enum name='XML_SCHEMAP_A_PROPS_CORRECT_2' file='xmlerror' value='3079' type='xmlParserErrors' info='3079'/>
+ <enum name='XML_SCHEMAP_A_PROPS_CORRECT_3' file='xmlerror' value='3090' type='xmlParserErrors' info='3089'/>
+ <enum name='XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF' file='xmlerror' value='1704' type='xmlParserErrors' info='1704'/>
+ <enum name='XML_SCHEMAP_COS_ALL_LIMITED' file='xmlerror' value='3091' type='xmlParserErrors' info='3090'/>
+ <enum name='XML_SCHEMAP_COS_CT_EXTENDS_1_1' file='xmlerror' value='3063' type='xmlParserErrors' info='3063'/>
+ <enum name='XML_SCHEMAP_COS_CT_EXTENDS_1_2' file='xmlerror' value='3088' type='xmlParserErrors' info='3087'/>
+ <enum name='XML_SCHEMAP_COS_CT_EXTENDS_1_3' file='xmlerror' value='1800' type='xmlParserErrors' info='1800'/>
+ <enum name='XML_SCHEMAP_COS_ST_DERIVED_OK_2_1' file='xmlerror' value='3031' type='xmlParserErrors' info='3031'/>
+ <enum name='XML_SCHEMAP_COS_ST_DERIVED_OK_2_2' file='xmlerror' value='3032' type='xmlParserErrors' info='3032'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_1' file='xmlerror' value='3011' type='xmlParserErrors' info='3011'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_2' file='xmlerror' value='3012' type='xmlParserErrors' info='3012'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1' file='xmlerror' value='3013' type='xmlParserErrors' info='3013'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2' file='xmlerror' value='3014' type='xmlParserErrors' info='3014'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_1' file='xmlerror' value='3015' type='xmlParserErrors' info='3015'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1' file='xmlerror' value='3016' type='xmlParserErrors' info='3016'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2' file='xmlerror' value='3017' type='xmlParserErrors' info='3017'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1' file='xmlerror' value='3018' type='xmlParserErrors' info='3018'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2' file='xmlerror' value='3019' type='xmlParserErrors' info='3019'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3' file='xmlerror' value='3020' type='xmlParserErrors' info='3020'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4' file='xmlerror' value='3021' type='xmlParserErrors' info='3021'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5' file='xmlerror' value='3022' type='xmlParserErrors' info='3022'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_1' file='xmlerror' value='3023' type='xmlParserErrors' info='3023'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1' file='xmlerror' value='3024' type='xmlParserErrors' info='3024'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2' file='xmlerror' value='3025' type='xmlParserErrors' info='3025'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1' file='xmlerror' value='3027' type='xmlParserErrors' info='3027'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2' file='xmlerror' value='3026' type='xmlParserErrors' info='3026'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3' file='xmlerror' value='3028' type='xmlParserErrors' info='3028'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4' file='xmlerror' value='3029' type='xmlParserErrors' info='3029'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5' file='xmlerror' value='3030' type='xmlParserErrors' info='3030'/>
+ <enum name='XML_SCHEMAP_COS_VALID_DEFAULT_1' file='xmlerror' value='3058' type='xmlParserErrors' info='3058'/>
+ <enum name='XML_SCHEMAP_COS_VALID_DEFAULT_2_1' file='xmlerror' value='3059' type='xmlParserErrors' info='3059'/>
+ <enum name='XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1' file='xmlerror' value='3060' type='xmlParserErrors' info='3060'/>
+ <enum name='XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2' file='xmlerror' value='3061' type='xmlParserErrors' info='3061'/>
+ <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_1' file='xmlerror' value='1782' type='xmlParserErrors' info='1782'/>
+ <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_2' file='xmlerror' value='1783' type='xmlParserErrors' info='1783'/>
+ <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_3' file='xmlerror' value='1784' type='xmlParserErrors' info='1784'/>
+ <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_4' file='xmlerror' value='1785' type='xmlParserErrors' info='1785'/>
+ <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_5' file='xmlerror' value='1786' type='xmlParserErrors' info='1786'/>
+ <enum name='XML_SCHEMAP_CVC_SIMPLE_TYPE' file='xmlerror' value='3062' type='xmlParserErrors' info='3062'/>
+ <enum name='XML_SCHEMAP_C_PROPS_CORRECT' file='xmlerror' value='3080' type='xmlParserErrors' info='3080'/>
+ <enum name='XML_SCHEMAP_DEF_AND_PREFIX' file='xmlerror' value='1768' type='xmlParserErrors' info='1768'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1' file='xmlerror' value='1787' type='xmlParserErrors' info='1787'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1' file='xmlerror' value='1788' type='xmlParserErrors' info='1788'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2' file='xmlerror' value='1789' type='xmlParserErrors' info='1789'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3' file='xmlerror' value='3077' type='xmlParserErrors' info='3077'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2' file='xmlerror' value='1790' type='xmlParserErrors' info='1790'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3' file='xmlerror' value='1791' type='xmlParserErrors' info='1791'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1' file='xmlerror' value='1797' type='xmlParserErrors' info='1797'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2' file='xmlerror' value='1798' type='xmlParserErrors' info='1798'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3' file='xmlerror' value='1799' type='xmlParserErrors' info='1799'/>
+ <enum name='XML_SCHEMAP_ELEMFORMDEFAULT_VALUE' file='xmlerror' value='1705' type='xmlParserErrors' info='1705'/>
+ <enum name='XML_SCHEMAP_ELEM_DEFAULT_FIXED' file='xmlerror' value='1755' type='xmlParserErrors' info='1755'/>
+ <enum name='XML_SCHEMAP_ELEM_NONAME_NOREF' file='xmlerror' value='1706' type='xmlParserErrors' info='1706'/>
+ <enum name='XML_SCHEMAP_EXTENSION_NO_BASE' file='xmlerror' value='1707' type='xmlParserErrors' info='1707'/>
+ <enum name='XML_SCHEMAP_E_PROPS_CORRECT_2' file='xmlerror' value='3045' type='xmlParserErrors' info='3045'/>
+ <enum name='XML_SCHEMAP_E_PROPS_CORRECT_3' file='xmlerror' value='3046' type='xmlParserErrors' info='3046'/>
+ <enum name='XML_SCHEMAP_E_PROPS_CORRECT_4' file='xmlerror' value='3047' type='xmlParserErrors' info='3047'/>
+ <enum name='XML_SCHEMAP_E_PROPS_CORRECT_5' file='xmlerror' value='3048' type='xmlParserErrors' info='3048'/>
+ <enum name='XML_SCHEMAP_E_PROPS_CORRECT_6' file='xmlerror' value='3049' type='xmlParserErrors' info='3049'/>
+ <enum name='XML_SCHEMAP_FACET_NO_VALUE' file='xmlerror' value='1708' type='xmlParserErrors' info='1708'/>
+ <enum name='XML_SCHEMAP_FAILED_BUILD_IMPORT' file='xmlerror' value='1709' type='xmlParserErrors' info='1709'/>
+ <enum name='XML_SCHEMAP_FAILED_LOAD' file='xmlerror' value='1757' type='xmlParserErrors' info='1757'/>
+ <enum name='XML_SCHEMAP_FAILED_PARSE' file='xmlerror' value='1766' type='xmlParserErrors' info='1766'/>
+ <enum name='XML_SCHEMAP_GROUP_NONAME_NOREF' file='xmlerror' value='1710' type='xmlParserErrors' info='1710'/>
+ <enum name='XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI' file='xmlerror' value='1711' type='xmlParserErrors' info='1711'/>
+ <enum name='XML_SCHEMAP_IMPORT_REDEFINE_NSNAME' file='xmlerror' value='1712' type='xmlParserErrors' info='1712'/>
+ <enum name='XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI' file='xmlerror' value='1713' type='xmlParserErrors' info='1713'/>
+ <enum name='XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI' file='xmlerror' value='1770' type='xmlParserErrors' info='1770'/>
+ <enum name='XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI' file='xmlerror' value='1771' type='xmlParserErrors' info='1771'/>
+ <enum name='XML_SCHEMAP_INTERNAL' file='xmlerror' value='3069' type='xmlParserErrors' info='3069 non-W3C'/>
+ <enum name='XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE' file='xmlerror' value='1793' type='xmlParserErrors' info='1793'/>
+ <enum name='XML_SCHEMAP_INVALID_ATTR_COMBINATION' file='xmlerror' value='1777' type='xmlParserErrors' info='1777'/>
+ <enum name='XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION' file='xmlerror' value='1778' type='xmlParserErrors' info='1778'/>
+ <enum name='XML_SCHEMAP_INVALID_ATTR_NAME' file='xmlerror' value='1780' type='xmlParserErrors' info='1780'/>
+ <enum name='XML_SCHEMAP_INVALID_ATTR_USE' file='xmlerror' value='1774' type='xmlParserErrors' info='1774'/>
+ <enum name='XML_SCHEMAP_INVALID_BOOLEAN' file='xmlerror' value='1714' type='xmlParserErrors' info='1714'/>
+ <enum name='XML_SCHEMAP_INVALID_ENUM' file='xmlerror' value='1715' type='xmlParserErrors' info='1715'/>
+ <enum name='XML_SCHEMAP_INVALID_FACET' file='xmlerror' value='1716' type='xmlParserErrors' info='1716'/>
+ <enum name='XML_SCHEMAP_INVALID_FACET_VALUE' file='xmlerror' value='1717' type='xmlParserErrors' info='1717'/>
+ <enum name='XML_SCHEMAP_INVALID_MAXOCCURS' file='xmlerror' value='1718' type='xmlParserErrors' info='1718'/>
+ <enum name='XML_SCHEMAP_INVALID_MINOCCURS' file='xmlerror' value='1719' type='xmlParserErrors' info='1719'/>
+ <enum name='XML_SCHEMAP_INVALID_REF_AND_SUBTYPE' file='xmlerror' value='1720' type='xmlParserErrors' info='1720'/>
+ <enum name='XML_SCHEMAP_INVALID_WHITE_SPACE' file='xmlerror' value='1721' type='xmlParserErrors' info='1721'/>
+ <enum name='XML_SCHEMAP_MG_PROPS_CORRECT_1' file='xmlerror' value='3074' type='xmlParserErrors' info='3074'/>
+ <enum name='XML_SCHEMAP_MG_PROPS_CORRECT_2' file='xmlerror' value='3075' type='xmlParserErrors' info='3075'/>
+ <enum name='XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD' file='xmlerror' value='1779' type='xmlParserErrors' info='1779'/>
+ <enum name='XML_SCHEMAP_NOATTR_NOREF' file='xmlerror' value='1722' type='xmlParserErrors' info='1722'/>
+ <enum name='XML_SCHEMAP_NOROOT' file='xmlerror' value='1759' type='xmlParserErrors' info='1759'/>
+ <enum name='XML_SCHEMAP_NOTATION_NO_NAME' file='xmlerror' value='1723' type='xmlParserErrors' info='1723'/>
+ <enum name='XML_SCHEMAP_NOTHING_TO_PARSE' file='xmlerror' value='1758' type='xmlParserErrors' info='1758'/>
+ <enum name='XML_SCHEMAP_NOTYPE_NOREF' file='xmlerror' value='1724' type='xmlParserErrors' info='1724'/>
+ <enum name='XML_SCHEMAP_NOT_DETERMINISTIC' file='xmlerror' value='3070' type='xmlParserErrors' info='3070 non-W3C'/>
+ <enum name='XML_SCHEMAP_NOT_SCHEMA' file='xmlerror' value='1772' type='xmlParserErrors' info='1772'/>
+ <enum name='XML_SCHEMAP_NO_XMLNS' file='xmlerror' value='3056' type='xmlParserErrors' info='3056'/>
+ <enum name='XML_SCHEMAP_NO_XSI' file='xmlerror' value='3057' type='xmlParserErrors' info='3057'/>
+ <enum name='XML_SCHEMAP_PREFIX_UNDEFINED' file='xmlerror' value='1700' type='xmlParserErrors'/>
+ <enum name='XML_SCHEMAP_P_PROPS_CORRECT_1' file='xmlerror' value='3042' type='xmlParserErrors' info='3042'/>
+ <enum name='XML_SCHEMAP_P_PROPS_CORRECT_2_1' file='xmlerror' value='3043' type='xmlParserErrors' info='3043'/>
+ <enum name='XML_SCHEMAP_P_PROPS_CORRECT_2_2' file='xmlerror' value='3044' type='xmlParserErrors' info='3044'/>
+ <enum name='XML_SCHEMAP_RECURSIVE' file='xmlerror' value='1775' type='xmlParserErrors' info='1775'/>
+ <enum name='XML_SCHEMAP_REDEFINED_ATTR' file='xmlerror' value='1764' type='xmlParserErrors' info='1764'/>
+ <enum name='XML_SCHEMAP_REDEFINED_ATTRGROUP' file='xmlerror' value='1763' type='xmlParserErrors' info='1763'/>
+ <enum name='XML_SCHEMAP_REDEFINED_ELEMENT' file='xmlerror' value='1762' type='xmlParserErrors' info='1762'/>
+ <enum name='XML_SCHEMAP_REDEFINED_GROUP' file='xmlerror' value='1760' type='xmlParserErrors' info='1760'/>
+ <enum name='XML_SCHEMAP_REDEFINED_NOTATION' file='xmlerror' value='1765' type='xmlParserErrors' info='1765'/>
+ <enum name='XML_SCHEMAP_REDEFINED_TYPE' file='xmlerror' value='1761' type='xmlParserErrors' info='1761'/>
+ <enum name='XML_SCHEMAP_REF_AND_CONTENT' file='xmlerror' value='1781' type='xmlParserErrors' info='1781'/>
+ <enum name='XML_SCHEMAP_REF_AND_SUBTYPE' file='xmlerror' value='1725' type='xmlParserErrors' info='1725'/>
+ <enum name='XML_SCHEMAP_REGEXP_INVALID' file='xmlerror' value='1756' type='xmlParserErrors' info='1756'/>
+ <enum name='XML_SCHEMAP_RESTRICTION_NONAME_NOREF' file='xmlerror' value='1726' type='xmlParserErrors' info='1726'/>
+ <enum name='XML_SCHEMAP_S4S_ATTR_INVALID_VALUE' file='xmlerror' value='3037' type='xmlParserErrors' info='3037'/>
+ <enum name='XML_SCHEMAP_S4S_ATTR_MISSING' file='xmlerror' value='3036' type='xmlParserErrors' info='3036'/>
+ <enum name='XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED' file='xmlerror' value='3035' type='xmlParserErrors' info='3035'/>
+ <enum name='XML_SCHEMAP_S4S_ELEM_MISSING' file='xmlerror' value='3034' type='xmlParserErrors' info='3034'/>
+ <enum name='XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED' file='xmlerror' value='3033' type='xmlParserErrors' info='3033'/>
+ <enum name='XML_SCHEMAP_SIMPLETYPE_NONAME' file='xmlerror' value='1727' type='xmlParserErrors' info='1727'/>
+ <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_1' file='xmlerror' value='3051' type='xmlParserErrors' info='3051'/>
+ <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_2' file='xmlerror' value='3052' type='xmlParserErrors' info='3052'/>
+ <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_3_1' file='xmlerror' value='3053' type='xmlParserErrors' info='3053'/>
+ <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_3_2' file='xmlerror' value='3054' type='xmlParserErrors' info='3054'/>
+ <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_4' file='xmlerror' value='3055' type='xmlParserErrors' info='3055'/>
+ <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1' file='xmlerror' value='3071' type='xmlParserErrors' info='3071'/>
+ <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2' file='xmlerror' value='3072' type='xmlParserErrors' info='3072'/>
+ <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3' file='xmlerror' value='3073' type='xmlParserErrors' info='3073'/>
+ <enum name='XML_SCHEMAP_SRC_CT_1' file='xmlerror' value='3076' type='xmlParserErrors' info='3076'/>
+ <enum name='XML_SCHEMAP_SRC_ELEMENT_1' file='xmlerror' value='3038' type='xmlParserErrors' info='3038'/>
+ <enum name='XML_SCHEMAP_SRC_ELEMENT_2_1' file='xmlerror' value='3039' type='xmlParserErrors' info='3039'/>
+ <enum name='XML_SCHEMAP_SRC_ELEMENT_2_2' file='xmlerror' value='3040' type='xmlParserErrors' info='3040'/>
+ <enum name='XML_SCHEMAP_SRC_ELEMENT_3' file='xmlerror' value='3041' type='xmlParserErrors' info='3041'/>
+ <enum name='XML_SCHEMAP_SRC_IMPORT' file='xmlerror' value='3082' type='xmlParserErrors' info='3082'/>
+ <enum name='XML_SCHEMAP_SRC_IMPORT_1_1' file='xmlerror' value='3064' type='xmlParserErrors' info='3064'/>
+ <enum name='XML_SCHEMAP_SRC_IMPORT_1_2' file='xmlerror' value='3065' type='xmlParserErrors' info='3065'/>
+ <enum name='XML_SCHEMAP_SRC_IMPORT_2' file='xmlerror' value='3066' type='xmlParserErrors' info='3066'/>
+ <enum name='XML_SCHEMAP_SRC_IMPORT_2_1' file='xmlerror' value='3067' type='xmlParserErrors' info='3067'/>
+ <enum name='XML_SCHEMAP_SRC_IMPORT_2_2' file='xmlerror' value='3068' type='xmlParserErrors' info='3068'/>
+ <enum name='XML_SCHEMAP_SRC_IMPORT_3_1' file='xmlerror' value='1795' type='xmlParserErrors' info='1795'/>
+ <enum name='XML_SCHEMAP_SRC_IMPORT_3_2' file='xmlerror' value='1796' type='xmlParserErrors' info='1796'/>
+ <enum name='XML_SCHEMAP_SRC_INCLUDE' file='xmlerror' value='3050' type='xmlParserErrors' info='3050'/>
+ <enum name='XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE' file='xmlerror' value='3006' type='xmlParserErrors' info='3006'/>
+ <enum name='XML_SCHEMAP_SRC_REDEFINE' file='xmlerror' value='3081' type='xmlParserErrors' info='3081'/>
+ <enum name='XML_SCHEMAP_SRC_RESOLVE' file='xmlerror' value='3004' type='xmlParserErrors' info='3004'/>
+ <enum name='XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE' file='xmlerror' value='3005' type='xmlParserErrors' info='3005'/>
+ <enum name='XML_SCHEMAP_SRC_SIMPLE_TYPE_1' file='xmlerror' value='3000' type='xmlParserErrors'/>
+ <enum name='XML_SCHEMAP_SRC_SIMPLE_TYPE_2' file='xmlerror' value='3001' type='xmlParserErrors' info='3001'/>
+ <enum name='XML_SCHEMAP_SRC_SIMPLE_TYPE_3' file='xmlerror' value='3002' type='xmlParserErrors' info='3002'/>
+ <enum name='XML_SCHEMAP_SRC_SIMPLE_TYPE_4' file='xmlerror' value='3003' type='xmlParserErrors' info='3003'/>
+ <enum name='XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES' file='xmlerror' value='3007' type='xmlParserErrors' info='3007'/>
+ <enum name='XML_SCHEMAP_ST_PROPS_CORRECT_1' file='xmlerror' value='3008' type='xmlParserErrors' info='3008'/>
+ <enum name='XML_SCHEMAP_ST_PROPS_CORRECT_2' file='xmlerror' value='3009' type='xmlParserErrors' info='3009'/>
+ <enum name='XML_SCHEMAP_ST_PROPS_CORRECT_3' file='xmlerror' value='3010' type='xmlParserErrors' info='3010'/>
+ <enum name='XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE' file='xmlerror' value='1776' type='xmlParserErrors' info='1776'/>
+ <enum name='XML_SCHEMAP_TYPE_AND_SUBTYPE' file='xmlerror' value='1728' type='xmlParserErrors' info='1728'/>
+ <enum name='XML_SCHEMAP_UNION_NOT_EXPRESSIBLE' file='xmlerror' value='1794' type='xmlParserErrors' info='1794'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_ALL_CHILD' file='xmlerror' value='1729' type='xmlParserErrors' info='1729'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD' file='xmlerror' value='1730' type='xmlParserErrors' info='1730'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD' file='xmlerror' value='1732' type='xmlParserErrors' info='1732'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP' file='xmlerror' value='1733' type='xmlParserErrors' info='1733'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_ATTR_CHILD' file='xmlerror' value='1731' type='xmlParserErrors' info='1731'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_BASE_TYPE' file='xmlerror' value='1734' type='xmlParserErrors' info='1734'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_CHOICE_CHILD' file='xmlerror' value='1735' type='xmlParserErrors' info='1735'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD' file='xmlerror' value='1736' type='xmlParserErrors' info='1736'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD' file='xmlerror' value='1737' type='xmlParserErrors' info='1737'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_ELEM_CHILD' file='xmlerror' value='1738' type='xmlParserErrors' info='1738'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD' file='xmlerror' value='1739' type='xmlParserErrors' info='1739'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_FACET_CHILD' file='xmlerror' value='1740' type='xmlParserErrors' info='1740'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_FACET_TYPE' file='xmlerror' value='1741' type='xmlParserErrors' info='1741'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_GROUP_CHILD' file='xmlerror' value='1742' type='xmlParserErrors' info='1742'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_IMPORT_CHILD' file='xmlerror' value='1743' type='xmlParserErrors' info='1743'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD' file='xmlerror' value='1769' type='xmlParserErrors' info='1769'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_LIST_CHILD' file='xmlerror' value='1744' type='xmlParserErrors' info='1744'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_MEMBER_TYPE' file='xmlerror' value='1773' type='xmlParserErrors' info='1773'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_NOTATION_CHILD' file='xmlerror' value='1745' type='xmlParserErrors' info='1745'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_PREFIX' file='xmlerror' value='1767' type='xmlParserErrors' info='1767'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD' file='xmlerror' value='1746' type='xmlParserErrors' info='1746'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_REF' file='xmlerror' value='1747' type='xmlParserErrors' info='1747'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD' file='xmlerror' value='1748' type='xmlParserErrors' info='1748'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD' file='xmlerror' value='1749' type='xmlParserErrors' info='1749'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD' file='xmlerror' value='1750' type='xmlParserErrors' info='1750'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD' file='xmlerror' value='1751' type='xmlParserErrors' info='1751'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD' file='xmlerror' value='1752' type='xmlParserErrors' info='1752'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_TYPE' file='xmlerror' value='1753' type='xmlParserErrors' info='1753'/>
+ <enum name='XML_SCHEMAP_UNKNOWN_UNION_CHILD' file='xmlerror' value='1754' type='xmlParserErrors' info='1754'/>
+ <enum name='XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH' file='xmlerror' value='3086' type='xmlParserErrors' info='3085'/>
+ <enum name='XML_SCHEMAP_WARN_ATTR_REDECL_PROH' file='xmlerror' value='3085' type='xmlParserErrors' info='3085'/>
+ <enum name='XML_SCHEMAP_WARN_SKIP_SCHEMA' file='xmlerror' value='3083' type='xmlParserErrors' info='3083'/>
+ <enum name='XML_SCHEMAP_WARN_UNLOCATED_SCHEMA' file='xmlerror' value='3084' type='xmlParserErrors' info='3084'/>
+ <enum name='XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER' file='xmlerror' value='1792' type='xmlParserErrors' info='1792'/>
+ <enum name='XML_SCHEMAS_ANYSIMPLETYPE' file='schemasInternals' value='46' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_ANYTYPE' file='schemasInternals' value='45' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_ANYURI' file='schemasInternals' value='29' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_BASE64BINARY' file='schemasInternals' value='44' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_BOOLEAN' file='schemasInternals' value='15' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_BYTE' file='schemasInternals' value='41' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_DATE' file='schemasInternals' value='10' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_DATETIME' file='schemasInternals' value='11' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_DECIMAL' file='schemasInternals' value='3' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_DOUBLE' file='schemasInternals' value='14' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_DURATION' file='schemasInternals' value='12' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_ENTITIES' file='schemasInternals' value='27' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_ENTITY' file='schemasInternals' value='26' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_ERR_' file='xmlschemas' value='24' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_ATTRINVALID' file='xmlschemas' value='21' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_ATTRUNKNOWN' file='xmlschemas' value='20' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_CONSTRUCT' file='xmlschemas' value='17' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_ELEMCONT' file='xmlschemas' value='10' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_EXTRACONTENT' file='xmlschemas' value='13' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_FACET' file='xmlschemas' value='23' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_HAVEDEFAULT' file='xmlschemas' value='11' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_INTERNAL' file='xmlschemas' value='18' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_INVALIDATTR' file='xmlschemas' value='14' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_INVALIDELEM' file='xmlschemas' value='15' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_ISABSTRACT' file='xmlschemas' value='8' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_MISSING' file='xmlschemas' value='4' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_NOROLLBACK' file='xmlschemas' value='7' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_NOROOT' file='xmlschemas' value='1' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_NOTDETERMINIST' file='xmlschemas' value='16' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_NOTEMPTY' file='xmlschemas' value='9' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_NOTNILLABLE' file='xmlschemas' value='12' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_NOTSIMPLE' file='xmlschemas' value='19' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_NOTTOPLEVEL' file='xmlschemas' value='3' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_NOTYPE' file='xmlschemas' value='6' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_OK' file='xmlschemas' value='0' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_UNDECLAREDELEM' file='xmlschemas' value='2' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_VALUE' file='xmlschemas' value='22' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_WRONGELEM' file='xmlschemas' value='5' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_ERR_XXX' file='xmlschemas' value='25' type='xmlSchemaValidError'/>
+ <enum name='XML_SCHEMAS_FLOAT' file='schemasInternals' value='13' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_GDAY' file='schemasInternals' value='5' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_GMONTH' file='schemasInternals' value='6' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_GMONTHDAY' file='schemasInternals' value='7' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_GYEAR' file='schemasInternals' value='8' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_GYEARMONTH' file='schemasInternals' value='9' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_HEXBINARY' file='schemasInternals' value='43' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_ID' file='schemasInternals' value='23' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_IDREF' file='schemasInternals' value='24' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_IDREFS' file='schemasInternals' value='25' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_INT' file='schemasInternals' value='35' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_INTEGER' file='schemasInternals' value='30' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_LANGUAGE' file='schemasInternals' value='17' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_LONG' file='schemasInternals' value='37' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_NAME' file='schemasInternals' value='20' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_NCNAME' file='schemasInternals' value='22' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_NINTEGER' file='schemasInternals' value='32' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_NMTOKEN' file='schemasInternals' value='18' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_NMTOKENS' file='schemasInternals' value='19' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_NNINTEGER' file='schemasInternals' value='33' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_NORMSTRING' file='schemasInternals' value='2' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_NOTATION' file='schemasInternals' value='28' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_NPINTEGER' file='schemasInternals' value='31' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_PINTEGER' file='schemasInternals' value='34' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_QNAME' file='schemasInternals' value='21' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_SHORT' file='schemasInternals' value='39' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_STRING' file='schemasInternals' value='1' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_TIME' file='schemasInternals' value='4' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_TOKEN' file='schemasInternals' value='16' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_UBYTE' file='schemasInternals' value='42' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_UINT' file='schemasInternals' value='36' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_ULONG' file='schemasInternals' value='38' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_UNKNOWN' file='schemasInternals' value='0' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMAS_USHORT' file='schemasInternals' value='40' type='xmlSchemaValType'/>
+ <enum name='XML_SCHEMATRONV_ASSERT' file='xmlerror' value='4000' type='xmlParserErrors' info='4000'/>
+ <enum name='XML_SCHEMATRONV_REPORT' file='xmlerror' value='4001' type='xmlParserErrors'/>
+ <enum name='XML_SCHEMATRON_OUT_BUFFER' file='schematron' value='512' type='xmlSchematronValidOptions' info='output to a buffer'/>
+ <enum name='XML_SCHEMATRON_OUT_ERROR' file='schematron' value='8' type='xmlSchematronValidOptions' info='output via xmlStructuredErrorFunc'/>
+ <enum name='XML_SCHEMATRON_OUT_FILE' file='schematron' value='256' type='xmlSchematronValidOptions' info='output to a file descriptor'/>
+ <enum name='XML_SCHEMATRON_OUT_IO' file='schematron' value='1024' type='xmlSchematronValidOptions' info=' output to I/O mechanism'/>
+ <enum name='XML_SCHEMATRON_OUT_QUIET' file='schematron' value='1' type='xmlSchematronValidOptions' info='quiet no report'/>
+ <enum name='XML_SCHEMATRON_OUT_TEXT' file='schematron' value='2' type='xmlSchematronValidOptions' info='build a textual report'/>
+ <enum name='XML_SCHEMATRON_OUT_XML' file='schematron' value='4' type='xmlSchematronValidOptions' info='output SVRL'/>
+ <enum name='XML_SCHEMAV_ATTRINVALID' file='xmlerror' value='1821' type='xmlParserErrors' info='1821'/>
+ <enum name='XML_SCHEMAV_ATTRUNKNOWN' file='xmlerror' value='1820' type='xmlParserErrors' info='1820'/>
+ <enum name='XML_SCHEMAV_CONSTRUCT' file='xmlerror' value='1817' type='xmlParserErrors' info='1817'/>
+ <enum name='XML_SCHEMAV_CVC_ATTRIBUTE_1' file='xmlerror' value='1861' type='xmlParserErrors' info='1861'/>
+ <enum name='XML_SCHEMAV_CVC_ATTRIBUTE_2' file='xmlerror' value='1862' type='xmlParserErrors' info='1862'/>
+ <enum name='XML_SCHEMAV_CVC_ATTRIBUTE_3' file='xmlerror' value='1863' type='xmlParserErrors' info='1863'/>
+ <enum name='XML_SCHEMAV_CVC_ATTRIBUTE_4' file='xmlerror' value='1864' type='xmlParserErrors' info='1864'/>
+ <enum name='XML_SCHEMAV_CVC_AU' file='xmlerror' value='1874' type='xmlParserErrors' info='1874'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_1' file='xmlerror' value='1873' type='xmlParserErrors' info='1873'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1' file='xmlerror' value='1841' type='xmlParserErrors' info='1841'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2' file='xmlerror' value='1842' type='xmlParserErrors' info='1842'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3' file='xmlerror' value='1843' type='xmlParserErrors' info='1843'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4' file='xmlerror' value='1844' type='xmlParserErrors' info='1844'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1' file='xmlerror' value='1865' type='xmlParserErrors' info='1865'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1' file='xmlerror' value='1866' type='xmlParserErrors' info='1866'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2' file='xmlerror' value='1867' type='xmlParserErrors' info='1867'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_4' file='xmlerror' value='1868' type='xmlParserErrors' info='1868'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1' file='xmlerror' value='1869' type='xmlParserErrors' info='1869'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2' file='xmlerror' value='1870' type='xmlParserErrors' info='1870'/>
+ <enum name='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1' file='xmlerror' value='1824' type='xmlParserErrors' info='1824'/>
+ <enum name='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2' file='xmlerror' value='1825' type='xmlParserErrors' info='1825'/>
+ <enum name='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3' file='xmlerror' value='1826' type='xmlParserErrors' info='1826'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_1' file='xmlerror' value='1845' type='xmlParserErrors' info='1845'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_2' file='xmlerror' value='1846' type='xmlParserErrors' info='1846'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_3_1' file='xmlerror' value='1847' type='xmlParserErrors' info='1847'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_3_2_1' file='xmlerror' value='1848' type='xmlParserErrors' info='1848'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_3_2_2' file='xmlerror' value='1849' type='xmlParserErrors' info='1849'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_4_1' file='xmlerror' value='1850' type='xmlParserErrors' info='1850'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_4_2' file='xmlerror' value='1851' type='xmlParserErrors' info='1851'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_4_3' file='xmlerror' value='1852' type='xmlParserErrors' info='1852'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_5_1_1' file='xmlerror' value='1853' type='xmlParserErrors' info='1853'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_5_1_2' file='xmlerror' value='1854' type='xmlParserErrors' info='1854'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_5_2_1' file='xmlerror' value='1855' type='xmlParserErrors' info='1855'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_5_2_2_1' file='xmlerror' value='1856' type='xmlParserErrors' info='1856'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_5_2_2_2_1' file='xmlerror' value='1857' type='xmlParserErrors' info='1857'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_5_2_2_2_2' file='xmlerror' value='1858' type='xmlParserErrors' info='1858'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_6' file='xmlerror' value='1859' type='xmlParserErrors' info='1859'/>
+ <enum name='XML_SCHEMAV_CVC_ELT_7' file='xmlerror' value='1860' type='xmlParserErrors' info='1860'/>
+ <enum name='XML_SCHEMAV_CVC_ENUMERATION_VALID' file='xmlerror' value='1840' type='xmlParserErrors' info='1840'/>
+ <enum name='XML_SCHEMAV_CVC_FACET_VALID' file='xmlerror' value='1829' type='xmlParserErrors' info='1829'/>
+ <enum name='XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID' file='xmlerror' value='1838' type='xmlParserErrors' info='1838'/>
+ <enum name='XML_SCHEMAV_CVC_IDC' file='xmlerror' value='1877' type='xmlParserErrors' info='1877'/>
+ <enum name='XML_SCHEMAV_CVC_LENGTH_VALID' file='xmlerror' value='1830' type='xmlParserErrors' info='1830'/>
+ <enum name='XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID' file='xmlerror' value='1836' type='xmlParserErrors' info='1836'/>
+ <enum name='XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID' file='xmlerror' value='1834' type='xmlParserErrors' info='1834'/>
+ <enum name='XML_SCHEMAV_CVC_MAXLENGTH_VALID' file='xmlerror' value='1832' type='xmlParserErrors' info='1832'/>
+ <enum name='XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID' file='xmlerror' value='1835' type='xmlParserErrors' info='1835'/>
+ <enum name='XML_SCHEMAV_CVC_MININCLUSIVE_VALID' file='xmlerror' value='1833' type='xmlParserErrors' info='1833'/>
+ <enum name='XML_SCHEMAV_CVC_MINLENGTH_VALID' file='xmlerror' value='1831' type='xmlParserErrors' info='1831'/>
+ <enum name='XML_SCHEMAV_CVC_PATTERN_VALID' file='xmlerror' value='1839' type='xmlParserErrors' info='1839'/>
+ <enum name='XML_SCHEMAV_CVC_TOTALDIGITS_VALID' file='xmlerror' value='1837' type='xmlParserErrors' info='1837'/>
+ <enum name='XML_SCHEMAV_CVC_TYPE_1' file='xmlerror' value='1875' type='xmlParserErrors' info='1875'/>
+ <enum name='XML_SCHEMAV_CVC_TYPE_2' file='xmlerror' value='1876' type='xmlParserErrors' info='1876'/>
+ <enum name='XML_SCHEMAV_CVC_TYPE_3_1_1' file='xmlerror' value='1827' type='xmlParserErrors' info='1827'/>
+ <enum name='XML_SCHEMAV_CVC_TYPE_3_1_2' file='xmlerror' value='1828' type='xmlParserErrors' info='1828'/>
+ <enum name='XML_SCHEMAV_CVC_WILDCARD' file='xmlerror' value='1878' type='xmlParserErrors' info='1878'/>
+ <enum name='XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING' file='xmlerror' value='1872' type='xmlParserErrors' info='1872'/>
+ <enum name='XML_SCHEMAV_ELEMCONT' file='xmlerror' value='1810' type='xmlParserErrors' info='1810'/>
+ <enum name='XML_SCHEMAV_ELEMENT_CONTENT' file='xmlerror' value='1871' type='xmlParserErrors' info='1871'/>
+ <enum name='XML_SCHEMAV_EXTRACONTENT' file='xmlerror' value='1813' type='xmlParserErrors' info='1813'/>
+ <enum name='XML_SCHEMAV_FACET' file='xmlerror' value='1823' type='xmlParserErrors' info='1823'/>
+ <enum name='XML_SCHEMAV_HAVEDEFAULT' file='xmlerror' value='1811' type='xmlParserErrors' info='1811'/>
+ <enum name='XML_SCHEMAV_INTERNAL' file='xmlerror' value='1818' type='xmlParserErrors' info='1818'/>
+ <enum name='XML_SCHEMAV_INVALIDATTR' file='xmlerror' value='1814' type='xmlParserErrors' info='1814'/>
+ <enum name='XML_SCHEMAV_INVALIDELEM' file='xmlerror' value='1815' type='xmlParserErrors' info='1815'/>
+ <enum name='XML_SCHEMAV_ISABSTRACT' file='xmlerror' value='1808' type='xmlParserErrors' info='1808'/>
+ <enum name='XML_SCHEMAV_MISC' file='xmlerror' value='1879' type='xmlParserErrors' info='1879'/>
+ <enum name='XML_SCHEMAV_MISSING' file='xmlerror' value='1804' type='xmlParserErrors' info='1804'/>
+ <enum name='XML_SCHEMAV_NOROLLBACK' file='xmlerror' value='1807' type='xmlParserErrors' info='1807'/>
+ <enum name='XML_SCHEMAV_NOROOT' file='xmlerror' value='1801' type='xmlParserErrors'/>
+ <enum name='XML_SCHEMAV_NOTDETERMINIST' file='xmlerror' value='1816' type='xmlParserErrors' info='1816'/>
+ <enum name='XML_SCHEMAV_NOTEMPTY' file='xmlerror' value='1809' type='xmlParserErrors' info='1809'/>
+ <enum name='XML_SCHEMAV_NOTNILLABLE' file='xmlerror' value='1812' type='xmlParserErrors' info='1812'/>
+ <enum name='XML_SCHEMAV_NOTSIMPLE' file='xmlerror' value='1819' type='xmlParserErrors' info='1819'/>
+ <enum name='XML_SCHEMAV_NOTTOPLEVEL' file='xmlerror' value='1803' type='xmlParserErrors' info='1803'/>
+ <enum name='XML_SCHEMAV_NOTYPE' file='xmlerror' value='1806' type='xmlParserErrors' info='1806'/>
+ <enum name='XML_SCHEMAV_UNDECLAREDELEM' file='xmlerror' value='1802' type='xmlParserErrors' info='1802'/>
+ <enum name='XML_SCHEMAV_VALUE' file='xmlerror' value='1822' type='xmlParserErrors' info='1822'/>
+ <enum name='XML_SCHEMAV_WRONGELEM' file='xmlerror' value='1805' type='xmlParserErrors' info='1805'/>
+ <enum name='XML_SCHEMA_CONTENT_ANY' file='schemasInternals' value='7' type='xmlSchemaContentType'/>
+ <enum name='XML_SCHEMA_CONTENT_BASIC' file='schemasInternals' value='6' type='xmlSchemaContentType'/>
+ <enum name='XML_SCHEMA_CONTENT_ELEMENTS' file='schemasInternals' value='2' type='xmlSchemaContentType'/>
+ <enum name='XML_SCHEMA_CONTENT_EMPTY' file='schemasInternals' value='1' type='xmlSchemaContentType'/>
+ <enum name='XML_SCHEMA_CONTENT_MIXED' file='schemasInternals' value='3' type='xmlSchemaContentType'/>
+ <enum name='XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS' file='schemasInternals' value='5' type='xmlSchemaContentType' info='Obsolete'/>
+ <enum name='XML_SCHEMA_CONTENT_SIMPLE' file='schemasInternals' value='4' type='xmlSchemaContentType'/>
+ <enum name='XML_SCHEMA_CONTENT_UNKNOWN' file='schemasInternals' value='0' type='xmlSchemaContentType'/>
+ <enum name='XML_SCHEMA_EXTRA_ATTR_USE_PROHIB' file='schemasInternals' value='2001' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_EXTRA_QNAMEREF' file='schemasInternals' value='2000' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_ENUMERATION' file='schemasInternals' value='1007' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_FRACTIONDIGITS' file='schemasInternals' value='1005' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_LENGTH' file='schemasInternals' value='1009' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_MAXEXCLUSIVE' file='schemasInternals' value='1003' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_MAXINCLUSIVE' file='schemasInternals' value='1002' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_MAXLENGTH' file='schemasInternals' value='1010' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_MINEXCLUSIVE' file='schemasInternals' value='1001' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_MININCLUSIVE' file='schemasInternals' value='1000' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_MINLENGTH' file='schemasInternals' value='1011' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_PATTERN' file='schemasInternals' value='1006' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_TOTALDIGITS' file='schemasInternals' value='1004' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_FACET_WHITESPACE' file='schemasInternals' value='1008' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_ALL' file='schemasInternals' value='8' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_ANY' file='schemasInternals' value='2' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_ANY_ATTRIBUTE' file='schemasInternals' value='21' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_ATTRIBUTE' file='schemasInternals' value='15' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_ATTRIBUTEGROUP' file='schemasInternals' value='16' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_ATTRIBUTE_USE' file='schemasInternals' value='26' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_BASIC' file='schemasInternals' value='1' type='xmlSchemaTypeType' info='A built-in datatype'/>
+ <enum name='XML_SCHEMA_TYPE_CHOICE' file='schemasInternals' value='7' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_COMPLEX' file='schemasInternals' value='5' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_COMPLEX_CONTENT' file='schemasInternals' value='10' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_ELEMENT' file='schemasInternals' value='14' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_EXTENSION' file='schemasInternals' value='13' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_FACET' file='schemasInternals' value='3' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_GROUP' file='schemasInternals' value='17' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_IDC_KEY' file='schemasInternals' value='23' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_IDC_KEYREF' file='schemasInternals' value='24' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_IDC_UNIQUE' file='schemasInternals' value='22' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_LIST' file='schemasInternals' value='19' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_NOTATION' file='schemasInternals' value='18' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_PARTICLE' file='schemasInternals' value='25' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_RESTRICTION' file='schemasInternals' value='12' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_SEQUENCE' file='schemasInternals' value='6' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_SIMPLE' file='schemasInternals' value='4' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_SIMPLE_CONTENT' file='schemasInternals' value='9' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_UNION' file='schemasInternals' value='20' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_UR' file='schemasInternals' value='11' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_VAL_VC_I_CREATE' file='xmlschemas' value='1' type='xmlSchemaValidOption' info=' Default/fixed: create an attribute node
+* or an element&apos;s text node on the instance.
+*'/>
+ <enum name='XML_SCHEMA_WHITESPACE_COLLAPSE' file='xmlschemastypes' value='3' type='xmlSchemaWhitespaceValueType'/>
+ <enum name='XML_SCHEMA_WHITESPACE_PRESERVE' file='xmlschemastypes' value='1' type='xmlSchemaWhitespaceValueType'/>
+ <enum name='XML_SCHEMA_WHITESPACE_REPLACE' file='xmlschemastypes' value='2' type='xmlSchemaWhitespaceValueType'/>
+ <enum name='XML_SCHEMA_WHITESPACE_UNKNOWN' file='xmlschemastypes' value='0' type='xmlSchemaWhitespaceValueType'/>
+ <enum name='XML_TEXTREADER_MODE_CLOSED' file='xmlreader' value='4' type='xmlTextReaderMode'/>
+ <enum name='XML_TEXTREADER_MODE_EOF' file='xmlreader' value='3' type='xmlTextReaderMode'/>
+ <enum name='XML_TEXTREADER_MODE_ERROR' file='xmlreader' value='2' type='xmlTextReaderMode'/>
+ <enum name='XML_TEXTREADER_MODE_INITIAL' file='xmlreader' value='0' type='xmlTextReaderMode'/>
+ <enum name='XML_TEXTREADER_MODE_INTERACTIVE' file='xmlreader' value='1' type='xmlTextReaderMode'/>
+ <enum name='XML_TEXTREADER_MODE_READING' file='xmlreader' value='5' type='xmlTextReaderMode'/>
+ <enum name='XML_TEXT_NODE' file='tree' value='3' type='xmlElementType'/>
+ <enum name='XML_TREE_INVALID_DEC' file='xmlerror' value='1301' type='xmlParserErrors' info='1301'/>
+ <enum name='XML_TREE_INVALID_HEX' file='xmlerror' value='1300' type='xmlParserErrors'/>
+ <enum name='XML_TREE_NOT_UTF8' file='xmlerror' value='1303' type='xmlParserErrors' info='1303'/>
+ <enum name='XML_TREE_UNTERMINATED_ENTITY' file='xmlerror' value='1302' type='xmlParserErrors' info='1302'/>
+ <enum name='XML_WAR_CATALOG_PI' file='xmlerror' value='93' type='xmlParserErrors' info='93'/>
+ <enum name='XML_WAR_ENTITY_REDEFINED' file='xmlerror' value='107' type='xmlParserErrors' info='107'/>
+ <enum name='XML_WAR_LANG_VALUE' file='xmlerror' value='98' type='xmlParserErrors' info='98'/>
+ <enum name='XML_WAR_NS_COLUMN' file='xmlerror' value='106' type='xmlParserErrors' info='106'/>
+ <enum name='XML_WAR_NS_URI' file='xmlerror' value='99' type='xmlParserErrors' info='99'/>
+ <enum name='XML_WAR_NS_URI_RELATIVE' file='xmlerror' value='100' type='xmlParserErrors' info='100'/>
+ <enum name='XML_WAR_SPACE_VALUE' file='xmlerror' value='102' type='xmlParserErrors' info='102'/>
+ <enum name='XML_WAR_UNDECLARED_ENTITY' file='xmlerror' value='27' type='xmlParserErrors' info='27'/>
+ <enum name='XML_WAR_UNKNOWN_VERSION' file='xmlerror' value='97' type='xmlParserErrors' info='97'/>
+ <enum name='XML_WITH_AUTOMATA' file='parser' value='23' type='xmlFeature'/>
+ <enum name='XML_WITH_C14N' file='parser' value='14' type='xmlFeature'/>
+ <enum name='XML_WITH_CATALOG' file='parser' value='15' type='xmlFeature'/>
+ <enum name='XML_WITH_DEBUG' file='parser' value='28' type='xmlFeature'/>
+ <enum name='XML_WITH_DEBUG_MEM' file='parser' value='29' type='xmlFeature'/>
+ <enum name='XML_WITH_DEBUG_RUN' file='parser' value='30' type='xmlFeature'/>
+ <enum name='XML_WITH_EXPR' file='parser' value='24' type='xmlFeature'/>
+ <enum name='XML_WITH_FTP' file='parser' value='9' type='xmlFeature'/>
+ <enum name='XML_WITH_HTML' file='parser' value='12' type='xmlFeature'/>
+ <enum name='XML_WITH_HTTP' file='parser' value='10' type='xmlFeature'/>
+ <enum name='XML_WITH_ICONV' file='parser' value='19' type='xmlFeature'/>
+ <enum name='XML_WITH_ICU' file='parser' value='32' type='xmlFeature'/>
+ <enum name='XML_WITH_ISO8859X' file='parser' value='20' type='xmlFeature'/>
+ <enum name='XML_WITH_LEGACY' file='parser' value='13' type='xmlFeature'/>
+ <enum name='XML_WITH_LZMA' file='parser' value='33' type='xmlFeature'/>
+ <enum name='XML_WITH_MODULES' file='parser' value='27' type='xmlFeature'/>
+ <enum name='XML_WITH_NONE' file='parser' value='99999' type='xmlFeature' info=' just to be sure of allocation size'/>
+ <enum name='XML_WITH_OUTPUT' file='parser' value='3' type='xmlFeature'/>
+ <enum name='XML_WITH_PATTERN' file='parser' value='6' type='xmlFeature'/>
+ <enum name='XML_WITH_PUSH' file='parser' value='4' type='xmlFeature'/>
+ <enum name='XML_WITH_READER' file='parser' value='5' type='xmlFeature'/>
+ <enum name='XML_WITH_REGEXP' file='parser' value='22' type='xmlFeature'/>
+ <enum name='XML_WITH_SAX1' file='parser' value='8' type='xmlFeature'/>
+ <enum name='XML_WITH_SCHEMAS' file='parser' value='25' type='xmlFeature'/>
+ <enum name='XML_WITH_SCHEMATRON' file='parser' value='26' type='xmlFeature'/>
+ <enum name='XML_WITH_THREAD' file='parser' value='1' type='xmlFeature'/>
+ <enum name='XML_WITH_TREE' file='parser' value='2' type='xmlFeature'/>
+ <enum name='XML_WITH_UNICODE' file='parser' value='21' type='xmlFeature'/>
+ <enum name='XML_WITH_VALID' file='parser' value='11' type='xmlFeature'/>
+ <enum name='XML_WITH_WRITER' file='parser' value='7' type='xmlFeature'/>
+ <enum name='XML_WITH_XINCLUDE' file='parser' value='18' type='xmlFeature'/>
+ <enum name='XML_WITH_XPATH' file='parser' value='16' type='xmlFeature'/>
+ <enum name='XML_WITH_XPTR' file='parser' value='17' type='xmlFeature'/>
+ <enum name='XML_WITH_ZLIB' file='parser' value='31' type='xmlFeature'/>
+ <enum name='XML_XINCLUDE_BUILD_FAILED' file='xmlerror' value='1609' type='xmlParserErrors' info='1609'/>
+ <enum name='XML_XINCLUDE_DEPRECATED_NS' file='xmlerror' value='1617' type='xmlParserErrors' info='1617'/>
+ <enum name='XML_XINCLUDE_END' file='tree' value='20' type='xmlElementType'/>
+ <enum name='XML_XINCLUDE_ENTITY_DEF_MISMATCH' file='xmlerror' value='1602' type='xmlParserErrors' info='1602'/>
+ <enum name='XML_XINCLUDE_FALLBACKS_IN_INCLUDE' file='xmlerror' value='1615' type='xmlParserErrors' info='1615'/>
+ <enum name='XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE' file='xmlerror' value='1616' type='xmlParserErrors' info='1616'/>
+ <enum name='XML_XINCLUDE_FRAGMENT_ID' file='xmlerror' value='1618' type='xmlParserErrors' info='1618'/>
+ <enum name='XML_XINCLUDE_HREF_URI' file='xmlerror' value='1605' type='xmlParserErrors' info='1605'/>
+ <enum name='XML_XINCLUDE_INCLUDE_IN_INCLUDE' file='xmlerror' value='1614' type='xmlParserErrors' info='1614'/>
+ <enum name='XML_XINCLUDE_INVALID_CHAR' file='xmlerror' value='1608' type='xmlParserErrors' info='1608'/>
+ <enum name='XML_XINCLUDE_MULTIPLE_ROOT' file='xmlerror' value='1611' type='xmlParserErrors' info='1611'/>
+ <enum name='XML_XINCLUDE_NO_FALLBACK' file='xmlerror' value='1604' type='xmlParserErrors' info='1604'/>
+ <enum name='XML_XINCLUDE_NO_HREF' file='xmlerror' value='1603' type='xmlParserErrors' info='1603'/>
+ <enum name='XML_XINCLUDE_PARSE_VALUE' file='xmlerror' value='1601' type='xmlParserErrors' info='1601'/>
+ <enum name='XML_XINCLUDE_RECURSION' file='xmlerror' value='1600' type='xmlParserErrors'/>
+ <enum name='XML_XINCLUDE_START' file='tree' value='19' type='xmlElementType'/>
+ <enum name='XML_XINCLUDE_TEXT_DOCUMENT' file='xmlerror' value='1607' type='xmlParserErrors' info='1607'/>
+ <enum name='XML_XINCLUDE_TEXT_FRAGMENT' file='xmlerror' value='1606' type='xmlParserErrors' info='1606'/>
+ <enum name='XML_XINCLUDE_UNKNOWN_ENCODING' file='xmlerror' value='1610' type='xmlParserErrors' info='1610'/>
+ <enum name='XML_XINCLUDE_XPTR_FAILED' file='xmlerror' value='1612' type='xmlParserErrors' info='1612'/>
+ <enum name='XML_XINCLUDE_XPTR_RESULT' file='xmlerror' value='1613' type='xmlParserErrors' info='1613'/>
+ <enum name='XML_XPATH_ENCODING_ERROR' file='xmlerror' value='1220' type='xmlParserErrors' info='1220'/>
+ <enum name='XML_XPATH_EXPRESSION_OK' file='xmlerror' value='1200' type='xmlParserErrors'/>
+ <enum name='XML_XPATH_EXPR_ERROR' file='xmlerror' value='1207' type='xmlParserErrors' info='1207'/>
+ <enum name='XML_XPATH_INVALID_ARITY' file='xmlerror' value='1212' type='xmlParserErrors' info='1212'/>
+ <enum name='XML_XPATH_INVALID_CHAR_ERROR' file='xmlerror' value='1221' type='xmlParserErrors' info='1221'/>
+ <enum name='XML_XPATH_INVALID_CTXT_POSITION' file='xmlerror' value='1214' type='xmlParserErrors' info='1214'/>
+ <enum name='XML_XPATH_INVALID_CTXT_SIZE' file='xmlerror' value='1213' type='xmlParserErrors' info='1213'/>
+ <enum name='XML_XPATH_INVALID_OPERAND' file='xmlerror' value='1210' type='xmlParserErrors' info='1210'/>
+ <enum name='XML_XPATH_INVALID_PREDICATE_ERROR' file='xmlerror' value='1206' type='xmlParserErrors' info='1206'/>
+ <enum name='XML_XPATH_INVALID_TYPE' file='xmlerror' value='1211' type='xmlParserErrors' info='1211'/>
+ <enum name='XML_XPATH_MEMORY_ERROR' file='xmlerror' value='1215' type='xmlParserErrors' info='1215'/>
+ <enum name='XML_XPATH_NUMBER_ERROR' file='xmlerror' value='1201' type='xmlParserErrors' info='1201'/>
+ <enum name='XML_XPATH_START_LITERAL_ERROR' file='xmlerror' value='1203' type='xmlParserErrors' info='1203'/>
+ <enum name='XML_XPATH_UNCLOSED_ERROR' file='xmlerror' value='1208' type='xmlParserErrors' info='1208'/>
+ <enum name='XML_XPATH_UNDEF_PREFIX_ERROR' file='xmlerror' value='1219' type='xmlParserErrors' info='1219'/>
+ <enum name='XML_XPATH_UNDEF_VARIABLE_ERROR' file='xmlerror' value='1205' type='xmlParserErrors' info='1205'/>
+ <enum name='XML_XPATH_UNFINISHED_LITERAL_ERROR' file='xmlerror' value='1202' type='xmlParserErrors' info='1202'/>
+ <enum name='XML_XPATH_UNKNOWN_FUNC_ERROR' file='xmlerror' value='1209' type='xmlParserErrors' info='1209'/>
+ <enum name='XML_XPATH_VARIABLE_REF_ERROR' file='xmlerror' value='1204' type='xmlParserErrors' info='1204'/>
+ <enum name='XML_XPTR_CHILDSEQ_START' file='xmlerror' value='1901' type='xmlParserErrors' info='1901'/>
+ <enum name='XML_XPTR_EVAL_FAILED' file='xmlerror' value='1902' type='xmlParserErrors' info='1902'/>
+ <enum name='XML_XPTR_EXTRA_OBJECTS' file='xmlerror' value='1903' type='xmlParserErrors' info='1903'/>
+ <enum name='XML_XPTR_RESOURCE_ERROR' file='xmlerror' value='1217' type='xmlParserErrors' info='1217'/>
+ <enum name='XML_XPTR_SUB_RESOURCE_ERROR' file='xmlerror' value='1218' type='xmlParserErrors' info='1218'/>
+ <enum name='XML_XPTR_SYNTAX_ERROR' file='xmlerror' value='1216' type='xmlParserErrors' info='1216'/>
+ <enum name='XML_XPTR_UNKNOWN_SCHEME' file='xmlerror' value='1900' type='xmlParserErrors'/>
+ <enum name='XPATH_BOOLEAN' file='xpath' value='2' type='xmlXPathObjectType'/>
+ <enum name='XPATH_ENCODING_ERROR' file='xpath' value='20' type='xmlXPathError'/>
+ <enum name='XPATH_EXPRESSION_OK' file='xpath' value='0' type='xmlXPathError'/>
+ <enum name='XPATH_EXPR_ERROR' file='xpath' value='7' type='xmlXPathError'/>
+ <enum name='XPATH_FORBID_VARIABLE_ERROR' file='xpath' value='24' type='xmlXPathError'/>
+ <enum name='XPATH_INVALID_ARITY' file='xpath' value='12' type='xmlXPathError'/>
+ <enum name='XPATH_INVALID_CHAR_ERROR' file='xpath' value='21' type='xmlXPathError'/>
+ <enum name='XPATH_INVALID_CTXT' file='xpath' value='22' type='xmlXPathError'/>
+ <enum name='XPATH_INVALID_CTXT_POSITION' file='xpath' value='14' type='xmlXPathError'/>
+ <enum name='XPATH_INVALID_CTXT_SIZE' file='xpath' value='13' type='xmlXPathError'/>
+ <enum name='XPATH_INVALID_OPERAND' file='xpath' value='10' type='xmlXPathError'/>
+ <enum name='XPATH_INVALID_PREDICATE_ERROR' file='xpath' value='6' type='xmlXPathError'/>
+ <enum name='XPATH_INVALID_TYPE' file='xpath' value='11' type='xmlXPathError'/>
+ <enum name='XPATH_LOCATIONSET' file='xpath' value='7' type='xmlXPathObjectType'/>
+ <enum name='XPATH_MEMORY_ERROR' file='xpath' value='15' type='xmlXPathError'/>
+ <enum name='XPATH_NODESET' file='xpath' value='1' type='xmlXPathObjectType'/>
+ <enum name='XPATH_NUMBER' file='xpath' value='3' type='xmlXPathObjectType'/>
+ <enum name='XPATH_NUMBER_ERROR' file='xpath' value='1' type='xmlXPathError'/>
+ <enum name='XPATH_OP_LIMIT_EXCEEDED' file='xpath' value='25' type='xmlXPathError'/>
+ <enum name='XPATH_POINT' file='xpath' value='5' type='xmlXPathObjectType'/>
+ <enum name='XPATH_RANGE' file='xpath' value='6' type='xmlXPathObjectType'/>
+ <enum name='XPATH_RECURSION_LIMIT_EXCEEDED' file='xpath' value='26' type='xmlXPathError'/>
+ <enum name='XPATH_STACK_ERROR' file='xpath' value='23' type='xmlXPathError'/>
+ <enum name='XPATH_START_LITERAL_ERROR' file='xpath' value='3' type='xmlXPathError'/>
+ <enum name='XPATH_STRING' file='xpath' value='4' type='xmlXPathObjectType'/>
+ <enum name='XPATH_UNCLOSED_ERROR' file='xpath' value='8' type='xmlXPathError'/>
+ <enum name='XPATH_UNDEFINED' file='xpath' value='0' type='xmlXPathObjectType'/>
+ <enum name='XPATH_UNDEF_PREFIX_ERROR' file='xpath' value='19' type='xmlXPathError'/>
+ <enum name='XPATH_UNDEF_VARIABLE_ERROR' file='xpath' value='5' type='xmlXPathError'/>
+ <enum name='XPATH_UNFINISHED_LITERAL_ERROR' file='xpath' value='2' type='xmlXPathError'/>
+ <enum name='XPATH_UNKNOWN_FUNC_ERROR' file='xpath' value='9' type='xmlXPathError'/>
+ <enum name='XPATH_USERS' file='xpath' value='8' type='xmlXPathObjectType'/>
+ <enum name='XPATH_VARIABLE_REF_ERROR' file='xpath' value='4' type='xmlXPathError'/>
+ <enum name='XPATH_XSLT_TREE' file='xpath' value='9' type='xmlXPathObjectType' info=' An XSLT value tree, non modifiable'/>
+ <enum name='XPTR_RESOURCE_ERROR' file='xpath' value='17' type='xmlXPathError'/>
+ <enum name='XPTR_SUB_RESOURCE_ERROR' file='xpath' value='18' type='xmlXPathError'/>
+ <enum name='XPTR_SYNTAX_ERROR' file='xpath' value='16' type='xmlXPathError'/>
+ <typedef name='docbDocPtr' file='DOCBparser' type='xmlDocPtr'/>
+ <typedef name='docbParserCtxt' file='DOCBparser' type='xmlParserCtxt'/>
+ <typedef name='docbParserCtxtPtr' file='DOCBparser' type='xmlParserCtxtPtr'/>
+ <typedef name='docbParserInput' file='DOCBparser' type='xmlParserInput'/>
+ <typedef name='docbParserInputPtr' file='DOCBparser' type='xmlParserInputPtr'/>
+ <typedef name='docbSAXHandler' file='DOCBparser' type='xmlSAXHandler'/>
+ <typedef name='docbSAXHandlerPtr' file='DOCBparser' type='xmlSAXHandlerPtr'/>
+ <typedef name='htmlDocPtr' file='HTMLparser' type='xmlDocPtr'/>
+ <struct name='htmlElemDesc' file='HTMLparser' type='struct _htmlElemDesc'>
+ <field name='name' type='const char *' info=' The tag name'/>
+ <field name='startTag' type='char' info=' Whether the start tag can be implied'/>
+ <field name='endTag' type='char' info=' Whether the end tag can be implied'/>
+ <field name='saveEndTag' type='char' info=' Whether the end tag should be saved'/>
+ <field name='empty' type='char' info=' Is this an empty element ?'/>
+ <field name='depr' type='char' info=' Is this a deprecated element ?'/>
+ <field name='dtd' type='char' info=' 1: only in Loose DTD, 2: only Frameset one'/>
+ <field name='isinline' type='char' info=' is this a block 0 or inline 1 element'/>
+ <field name='desc' type='const char *' info=' the description NRK Jan.2003
+* New fields encapsulating HTML structure
+*
+* Bugs:
+* This is a very limited representation. It fails to tell us when
+* an element *requires* subelements (we only have whether they&apos;re
+* allowed or not), and it doesn&apos;t tell us where CDATA and PCDATA
+* are allowed. Some element relationships are not fully represented:
+* these are flagged with the word MODIFIER
+*'/>
+ <field name='subelts' type='const char **' info=' allowed sub-elements of this element'/>
+ <field name='defaultsubelt' type='const char *' info=' subelement for suggested auto-repair
+if necessary or NULL'/>
+ <field name='attrs_opt' type='const char **' info=' Optional Attributes'/>
+ <field name='attrs_depr' type='const char **' info=' Additional deprecated attributes'/>
+ <field name='attrs_req' type='const char **' info=' Required attributes'/>
+ </struct>
+ <typedef name='htmlElemDescPtr' file='HTMLparser' type='htmlElemDesc *'/>
+ <struct name='htmlEntityDesc' file='HTMLparser' type='struct _htmlEntityDesc'>
+ <field name='value' type='unsigned int' info=' the UNICODE value for the character'/>
+ <field name='name' type='const char *' info=' The entity name'/>
+ <field name='desc' type='const char *' info=' the description'/>
+ </struct>
+ <typedef name='htmlEntityDescPtr' file='HTMLparser' type='htmlEntityDesc *'/>
+ <typedef name='htmlNodePtr' file='HTMLparser' type='xmlNodePtr'/>
+ <typedef name='htmlParserCtxt' file='HTMLparser' type='xmlParserCtxt'/>
+ <typedef name='htmlParserCtxtPtr' file='HTMLparser' type='xmlParserCtxtPtr'/>
+ <typedef name='htmlParserInput' file='HTMLparser' type='xmlParserInput'/>
+ <typedef name='htmlParserInputPtr' file='HTMLparser' type='xmlParserInputPtr'/>
+ <typedef name='htmlParserNodeInfo' file='HTMLparser' type='xmlParserNodeInfo'/>
+ <typedef name='htmlParserOption' file='HTMLparser' type='enum'/>
+ <typedef name='htmlSAXHandler' file='HTMLparser' type='xmlSAXHandler'/>
+ <typedef name='htmlSAXHandlerPtr' file='HTMLparser' type='xmlSAXHandlerPtr'/>
+ <typedef name='htmlStatus' file='HTMLparser' type='enum'/>
+ <struct name='uconv_t' file='encoding' type='struct _uconv_t'>
+ <field name='uconv' type='UConverter *' info=' for conversion between an encoding and UTF-16'/>
+ <field name='utf8' type='UConverter *' info=' for conversion between UTF-8 and UTF-16'/>
+ <field name='pivot_buf' type='UCharpivot_buf[ICU_PIVOT_BUF_SIZE]' info=''/>
+ <field name='pivot_source' type='UChar *' info=''/>
+ <field name='pivot_target' type='UChar *' info=''/>
+ </struct>
+ <typedef name='xlinkActuate' file='xlink' type='enum'/>
+ <typedef name='xlinkHRef' file='xlink' type='xmlChar *'/>
+ <struct name='xlinkHandler' file='xlink' type='struct _xlinkHandler'>
+ <field name='simple' type='xlinkSimpleLinkFunk' info=''/>
+ <field name='extended' type='xlinkExtendedLinkFunk' info=''/>
+ <field name='set' type='xlinkExtendedLinkSetFunk' info=''/>
+ </struct>
+ <typedef name='xlinkHandlerPtr' file='xlink' type='xlinkHandler *'/>
+ <typedef name='xlinkRole' file='xlink' type='xmlChar *'/>
+ <typedef name='xlinkShow' file='xlink' type='enum'/>
+ <typedef name='xlinkTitle' file='xlink' type='xmlChar *'/>
+ <typedef name='xlinkType' file='xlink' type='enum'/>
+ <struct name='xmlAttr' file='tree' type='struct _xmlAttr'>
+ <field name='_private' type='void *' info=' application data'/>
+ <field name='type' type='xmlElementType' info=' XML_ATTRIBUTE_NODE, must be second !'/>
+ <field name='name' type='const xmlChar *' info=' the name of the property'/>
+ <field name='children' type='struct _xmlNode *' info=' the value of the property'/>
+ <field name='last' type='struct _xmlNode *' info=' NULL'/>
+ <field name='parent' type='struct _xmlNode *' info=' child-&gt;parent link'/>
+ <field name='next' type='struct _xmlAttr *' info=' next sibling link '/>
+ <field name='prev' type='struct _xmlAttr *' info=' previous sibling link '/>
+ <field name='doc' type='struct _xmlDoc *' info=' the containing document'/>
+ <field name='ns' type='xmlNs *' info=' pointer to the associated namespace'/>
+ <field name='atype' type='xmlAttributeType' info=' the attribute type if validating'/>
+ <field name='psvi' type='void *' info=' for type/PSVI informations'/>
+ </struct>
+ <typedef name='xmlAttrPtr' file='tree' type='xmlAttr *'/>
+ <struct name='xmlAttribute' file='tree' type='struct _xmlAttribute'>
+ <field name='_private' type='void *' info=' application data'/>
+ <field name='type' type='xmlElementType' info=' XML_ATTRIBUTE_DECL, must be second !'/>
+ <field name='name' type='const xmlChar *' info=' Attribute name'/>
+ <field name='children' type='struct _xmlNode *' info=' NULL'/>
+ <field name='last' type='struct _xmlNode *' info=' NULL'/>
+ <field name='parent' type='struct _xmlDtd *' info=' -&gt; DTD'/>
+ <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
+ <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
+ <field name='doc' type='struct _xmlDoc *' info=' the containing document'/>
+ <field name='nexth' type='struct _xmlAttribute *' info=' next in hash table'/>
+ <field name='atype' type='xmlAttributeType' info=' The attribute type'/>
+ <field name='def' type='xmlAttributeDefault' info=' the default'/>
+ <field name='defaultValue' type='const xmlChar *' info=' or the default value'/>
+ <field name='tree' type='xmlEnumerationPtr' info=' or the enumeration tree if any'/>
+ <field name='prefix' type='const xmlChar *' info=' the namespace prefix if any'/>
+ <field name='elem' type='const xmlChar *' info=' Element holding the attribute'/>
+ </struct>
+ <typedef name='xmlAttributeDefault' file='tree' type='enum'/>
+ <typedef name='xmlAttributePtr' file='tree' type='xmlAttribute *'/>
+ <struct name='xmlAttributeTable' file='valid' type='struct _xmlHashTable'/>
+ <typedef name='xmlAttributeTablePtr' file='valid' type='xmlAttributeTable *'/>
+ <typedef name='xmlAttributeType' file='tree' type='enum'/>
+ <struct name='xmlAutomata' file='xmlautomata' type='struct _xmlAutomata'/>
+ <typedef name='xmlAutomataPtr' file='xmlautomata' type='xmlAutomata *'>
+ <info>A libxml automata description, It can be compiled into a regexp</info>
+ </typedef>
+ <struct name='xmlAutomataState' file='xmlautomata' type='struct _xmlAutomataState'/>
+ <typedef name='xmlAutomataStatePtr' file='xmlautomata' type='xmlAutomataState *'>
+ <info>A state int the automata description,</info>
+ </typedef>
+ <struct name='xmlBuf' file='tree' type='struct _xmlBuf'/>
+ <typedef name='xmlBufPtr' file='tree' type='xmlBuf *'>
+ <info>A pointer to a buffer structure, the actual structure internals are not public</info>
+ </typedef>
+ <struct name='xmlBuffer' file='tree' type='struct _xmlBuffer'>
+ <field name='content' type='xmlChar *' info=' The buffer content UTF8'/>
+ <field name='use' type='unsigned int' info=' The buffer size used'/>
+ <field name='size' type='unsigned int' info=' The buffer size'/>
+ <field name='alloc' type='xmlBufferAllocationScheme' info=' The realloc method'/>
+ <field name='contentIO' type='xmlChar *' info=' in IO mode we may have a different base'/>
+ </struct>
+ <typedef name='xmlBufferAllocationScheme' file='tree' type='enum'/>
+ <typedef name='xmlBufferPtr' file='tree' type='xmlBuffer *'/>
+ <typedef name='xmlC14NMode' file='c14n' type='enum'/>
+ <struct name='xmlCatalog' file='catalog' type='struct _xmlCatalog'/>
+ <typedef name='xmlCatalogAllow' file='catalog' type='enum'/>
+ <typedef name='xmlCatalogPrefer' file='catalog' type='enum'/>
+ <typedef name='xmlCatalogPtr' file='catalog' type='xmlCatalog *'/>
+ <struct name='xmlChLRange' file='chvalid' type='struct _xmlChLRange'>
+ <field name='low' type='unsigned int' info=''/>
+ <field name='high' type='unsigned int' info=''/>
+ </struct>
+ <typedef name='xmlChLRangePtr' file='chvalid' type='xmlChLRange *'/>
+ <struct name='xmlChRangeGroup' file='chvalid' type='struct _xmlChRangeGroup'>
+ <field name='nbShortRange' type='int' info=''/>
+ <field name='nbLongRange' type='int' info=''/>
+ <field name='shortRange' type='const xmlChSRange *' info=' points to an array of ranges'/>
+ <field name='longRange' type='const xmlChLRange *' info=''/>
+ </struct>
+ <typedef name='xmlChRangeGroupPtr' file='chvalid' type='xmlChRangeGroup *'/>
+ <struct name='xmlChSRange' file='chvalid' type='struct _xmlChSRange'>
+ <field name='low' type='unsigned short' info=''/>
+ <field name='high' type='unsigned short' info=''/>
+ </struct>
+ <typedef name='xmlChSRangePtr' file='chvalid' type='xmlChSRange *'/>
+ <typedef name='xmlChar' file='xmlstring' type='unsigned char'>
+ <info>This is a basic byte in an UTF-8 encoded string. It&apos;s unsigned allowing to pinpoint case where char * are assigned to xmlChar * (possibly making serialization back impossible).</info>
+ </typedef>
+ <typedef name='xmlCharEncoding' file='encoding' type='enum'/>
+ <struct name='xmlCharEncodingHandler' file='encoding' type='struct _xmlCharEncodingHandler'>
+ <field name='name' type='char *' info=''/>
+ <field name='input' type='xmlCharEncodingInputFunc' info=''/>
+ <field name='output' type='xmlCharEncodingOutputFunc' info=''/>
+ <field name='iconv_in' type='iconv_t' info=''/>
+ <field name='iconv_out' type='iconv_t' info=''/>
+ <field name='uconv_in' type='uconv_t *' info=''/>
+ <field name='uconv_out' type='uconv_t *' info=''/>
+ </struct>
+ <typedef name='xmlCharEncodingHandlerPtr' file='encoding' type='xmlCharEncodingHandler *'/>
+ <struct name='xmlDOMWrapCtxt' file='tree' type='struct _xmlDOMWrapCtxt'>
+ <field name='_private' type='void *' info='* The type of this context, just in case we need specialized
+* contexts in the future.
+*'/>
+ <field name='type' type='int' info='* Internal namespace map used for various operations.
+*'/>
+ <field name='namespaceMap' type='void *' info='* Use this one to acquire an xmlNsPtr intended for node-&gt;ns.
+* (Note that this is not intended for elem-&gt;nsDef).
+*'/>
+ <field name='getNsForNodeFunc' type='xmlDOMWrapAcquireNsFunction' info=''/>
+ </struct>
+ <typedef name='xmlDOMWrapCtxtPtr' file='tree' type='xmlDOMWrapCtxt *'/>
+ <struct name='xmlDict' file='dict' type='struct _xmlDict'/>
+ <typedef name='xmlDictPtr' file='dict' type='xmlDict *'/>
+ <struct name='xmlDoc' file='tree' type='struct _xmlDoc'>
+ <field name='_private' type='void *' info=' application data'/>
+ <field name='type' type='xmlElementType' info=' XML_DOCUMENT_NODE, must be second !'/>
+ <field name='name' type='char *' info=' name/filename/URI of the document'/>
+ <field name='children' type='struct _xmlNode *' info=' the document tree'/>
+ <field name='last' type='struct _xmlNode *' info=' last child link'/>
+ <field name='parent' type='struct _xmlNode *' info=' child-&gt;parent link'/>
+ <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
+ <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
+ <field name='doc' type='struct _xmlDoc *' info=' autoreference to itself End of common part'/>
+ <field name='compression' type='int' info=' level of zlib compression'/>
+ <field name='standalone' type='int' info=' standalone document (no external refs)
+1 if standalone=&quot;yes&quot;
+0 if standalone=&quot;no&quot;
+-1 if there is no XML declaration
+-2 if there is an XML declaration, but no
+standalone attribute was specified'/>
+ <field name='intSubset' type='struct _xmlDtd *' info=' the document internal subset'/>
+ <field name='extSubset' type='struct _xmlDtd *' info=' the document external subset'/>
+ <field name='oldNs' type='struct _xmlNs *' info=' Global namespace, the old way'/>
+ <field name='version' type='const xmlChar *' info=' the XML version string'/>
+ <field name='encoding' type='const xmlChar *' info=' external initial encoding, if any'/>
+ <field name='ids' type='void *' info=' Hash table for ID attributes if any'/>
+ <field name='refs' type='void *' info=' Hash table for IDREFs attributes if any'/>
+ <field name='URL' type='const xmlChar *' info=' The URI for that document'/>
+ <field name='charset' type='int' info=' Internal flag for charset handling,
+actually an xmlCharEncoding'/>
+ <field name='dict' type='struct _xmlDict *' info=' dict used to allocate names or NULL'/>
+ <field name='psvi' type='void *' info=' for type/PSVI informations'/>
+ <field name='parseFlags' type='int' info=' set of xmlParserOption used to parse the
+document'/>
+ <field name='properties' type='int' info=' set of xmlDocProperties for this document
+set at the end of parsing'/>
+ </struct>
+ <typedef name='xmlDocProperties' file='tree' type='enum'/>
+ <typedef name='xmlDocPtr' file='tree' type='xmlDoc *'/>
+ <struct name='xmlDtd' file='tree' type='struct _xmlDtd'>
+ <field name='_private' type='void *' info=' application data'/>
+ <field name='type' type='xmlElementType' info=' XML_DTD_NODE, must be second !'/>
+ <field name='name' type='const xmlChar *' info=' Name of the DTD'/>
+ <field name='children' type='struct _xmlNode *' info=' the value of the property link'/>
+ <field name='last' type='struct _xmlNode *' info=' last child link'/>
+ <field name='parent' type='struct _xmlDoc *' info=' child-&gt;parent link'/>
+ <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
+ <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
+ <field name='doc' type='struct _xmlDoc *' info=' the containing document End of common part'/>
+ <field name='notations' type='void *' info=' Hash table for notations if any'/>
+ <field name='elements' type='void *' info=' Hash table for elements if any'/>
+ <field name='attributes' type='void *' info=' Hash table for attributes if any'/>
+ <field name='entities' type='void *' info=' Hash table for entities if any'/>
+ <field name='ExternalID' type='const xmlChar *' info=' External identifier for PUBLIC DTD'/>
+ <field name='SystemID' type='const xmlChar *' info=' URI for a SYSTEM or PUBLIC DTD'/>
+ <field name='pentities' type='void *' info=' Hash table for param entities if any'/>
+ </struct>
+ <typedef name='xmlDtdPtr' file='tree' type='xmlDtd *'/>
+ <struct name='xmlElement' file='tree' type='struct _xmlElement'>
+ <field name='_private' type='void *' info=' application data'/>
+ <field name='type' type='xmlElementType' info=' XML_ELEMENT_DECL, must be second !'/>
+ <field name='name' type='const xmlChar *' info=' Element name'/>
+ <field name='children' type='struct _xmlNode *' info=' NULL'/>
+ <field name='last' type='struct _xmlNode *' info=' NULL'/>
+ <field name='parent' type='struct _xmlDtd *' info=' -&gt; DTD'/>
+ <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
+ <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
+ <field name='doc' type='struct _xmlDoc *' info=' the containing document'/>
+ <field name='etype' type='xmlElementTypeVal' info=' The type'/>
+ <field name='content' type='xmlElementContentPtr' info=' the allowed element content'/>
+ <field name='attributes' type='xmlAttributePtr' info=' List of the declared attributes'/>
+ <field name='prefix' type='const xmlChar *' info=' the namespace prefix if any'/>
+ <field name='contModel' type='xmlRegexpPtr' info=' the validating regexp'/>
+ <field name='contModel' type='void *' info=''/>
+ </struct>
+ <struct name='xmlElementContent' file='tree' type='struct _xmlElementContent'>
+ <field name='type' type='xmlElementContentType' info=' PCDATA, ELEMENT, SEQ or OR'/>
+ <field name='ocur' type='xmlElementContentOccur' info=' ONCE, OPT, MULT or PLUS'/>
+ <field name='name' type='const xmlChar *' info=' Element name'/>
+ <field name='c1' type='struct _xmlElementContent *' info=' first child'/>
+ <field name='c2' type='struct _xmlElementContent *' info=' second child'/>
+ <field name='parent' type='struct _xmlElementContent *' info=' parent'/>
+ <field name='prefix' type='const xmlChar *' info=' Namespace prefix'/>
+ </struct>
+ <typedef name='xmlElementContentOccur' file='tree' type='enum'/>
+ <typedef name='xmlElementContentPtr' file='tree' type='xmlElementContent *'/>
+ <typedef name='xmlElementContentType' file='tree' type='enum'/>
+ <typedef name='xmlElementPtr' file='tree' type='xmlElement *'/>
+ <struct name='xmlElementTable' file='valid' type='struct _xmlHashTable'/>
+ <typedef name='xmlElementTablePtr' file='valid' type='xmlElementTable *'/>
+ <typedef name='xmlElementType' file='tree' type='enum'/>
+ <typedef name='xmlElementTypeVal' file='tree' type='enum'/>
+ <struct name='xmlEntitiesTable' file='entities' type='struct _xmlHashTable'/>
+ <typedef name='xmlEntitiesTablePtr' file='entities' type='xmlEntitiesTable *'/>
+ <struct name='xmlEntity' file='tree' type='struct _xmlEntity'>
+ <field name='_private' type='void *' info=' application data'/>
+ <field name='type' type='xmlElementType' info=' XML_ENTITY_DECL, must be second !'/>
+ <field name='name' type='const xmlChar *' info=' Entity name'/>
+ <field name='children' type='struct _xmlNode *' info=' First child link'/>
+ <field name='last' type='struct _xmlNode *' info=' Last child link'/>
+ <field name='parent' type='struct _xmlDtd *' info=' -&gt; DTD'/>
+ <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
+ <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
+ <field name='doc' type='struct _xmlDoc *' info=' the containing document'/>
+ <field name='orig' type='xmlChar *' info=' content without ref substitution'/>
+ <field name='content' type='xmlChar *' info=' content or ndata if unparsed'/>
+ <field name='length' type='int' info=' the content length'/>
+ <field name='etype' type='xmlEntityType' info=' The entity type'/>
+ <field name='ExternalID' type='const xmlChar *' info=' External identifier for PUBLIC'/>
+ <field name='SystemID' type='const xmlChar *' info=' URI for a SYSTEM or PUBLIC Entity'/>
+ <field name='nexte' type='struct _xmlEntity *' info=' unused'/>
+ <field name='URI' type='const xmlChar *' info=' the full URI as computed'/>
+ <field name='owner' type='int' info=' does the entity own the childrens'/>
+ <field name='checked' type='int' info=' was the entity content checked this is also used to count entities
+* references done from that entity
+* and if it contains &apos;&lt;&apos;'/>
+ </struct>
+ <typedef name='xmlEntityPtr' file='tree' type='xmlEntity *'/>
+ <typedef name='xmlEntityType' file='entities' type='enum'/>
+ <struct name='xmlEnumeration' file='tree' type='struct _xmlEnumeration'>
+ <field name='next' type='struct _xmlEnumeration *' info=' next one'/>
+ <field name='name' type='const xmlChar *' info=' Enumeration name'/>
+ </struct>
+ <typedef name='xmlEnumerationPtr' file='tree' type='xmlEnumeration *'/>
+ <struct name='xmlError' file='xmlerror' type='struct _xmlError'>
+ <field name='domain' type='int' info=' What part of the library raised this error'/>
+ <field name='code' type='int' info=' The error code, e.g. an xmlParserError'/>
+ <field name='message' type='char *' info=' human-readable informative error message'/>
+ <field name='level' type='xmlErrorLevel' info=' how consequent is the error'/>
+ <field name='file' type='char *' info=' the filename'/>
+ <field name='line' type='int' info=' the line number if available'/>
+ <field name='str1' type='char *' info=' extra string information'/>
+ <field name='str2' type='char *' info=' extra string information'/>
+ <field name='str3' type='char *' info=' extra string information'/>
+ <field name='int1' type='int' info=' extra number information'/>
+ <field name='int2' type='int' info=' error column # or 0 if N/A (todo: rename field when we would brk ABI)'/>
+ <field name='ctxt' type='void *' info=' the parser context if available'/>
+ <field name='node' type='void *' info=' the node in the tree'/>
+ </struct>
+ <typedef name='xmlErrorDomain' file='xmlerror' type='enum'/>
+ <typedef name='xmlErrorLevel' file='xmlerror' type='enum'/>
+ <typedef name='xmlErrorPtr' file='xmlerror' type='xmlError *'/>
+ <struct name='xmlExpCtxt' file='xmlregexp' type='struct _xmlExpCtxt'/>
+ <typedef name='xmlExpCtxtPtr' file='xmlregexp' type='xmlExpCtxt *'/>
+ <struct name='xmlExpNode' file='xmlregexp' type='struct _xmlExpNode'/>
+ <typedef name='xmlExpNodePtr' file='xmlregexp' type='xmlExpNode *'/>
+ <typedef name='xmlExpNodeType' file='xmlregexp' type='enum'/>
+ <typedef name='xmlFeature' file='parser' type='enum'/>
+ <struct name='xmlGlobalState' file='globals' type='struct _xmlGlobalState'>
+ <field name='xmlParserVersion' type='const char *' info=''/>
+ <field name='xmlDefaultSAXLocator' type='xmlSAXLocator' info=''/>
+ <field name='xmlDefaultSAXHandler' type='xmlSAXHandlerV1' info=''/>
+ <field name='docbDefaultSAXHandler' type='xmlSAXHandlerV1' info=''/>
+ <field name='htmlDefaultSAXHandler' type='xmlSAXHandlerV1' info=''/>
+ <field name='xmlFree' type='xmlFreeFunc' info=''/>
+ <field name='xmlMalloc' type='xmlMallocFunc' info=''/>
+ <field name='xmlMemStrdup' type='xmlStrdupFunc' info=''/>
+ <field name='xmlRealloc' type='xmlReallocFunc' info=''/>
+ <field name='xmlGenericError' type='xmlGenericErrorFunc' info=''/>
+ <field name='xmlStructuredError' type='xmlStructuredErrorFunc' info=''/>
+ <field name='xmlGenericErrorContext' type='void *' info=''/>
+ <field name='oldXMLWDcompatibility' type='int' info=''/>
+ <field name='xmlBufferAllocScheme' type='xmlBufferAllocationScheme' info=''/>
+ <field name='xmlDefaultBufferSize' type='int' info=''/>
+ <field name='xmlSubstituteEntitiesDefaultValue' type='int' info=''/>
+ <field name='xmlDoValidityCheckingDefaultValue' type='int' info=''/>
+ <field name='xmlGetWarningsDefaultValue' type='int' info=''/>
+ <field name='xmlKeepBlanksDefaultValue' type='int' info=''/>
+ <field name='xmlLineNumbersDefaultValue' type='int' info=''/>
+ <field name='xmlLoadExtDtdDefaultValue' type='int' info=''/>
+ <field name='xmlParserDebugEntities' type='int' info=''/>
+ <field name='xmlPedanticParserDefaultValue' type='int' info=''/>
+ <field name='xmlSaveNoEmptyTags' type='int' info=''/>
+ <field name='xmlIndentTreeOutput' type='int' info=''/>
+ <field name='xmlTreeIndentString' type='const char *' info=''/>
+ <field name='xmlRegisterNodeDefaultValue' type='xmlRegisterNodeFunc' info=''/>
+ <field name='xmlDeregisterNodeDefaultValue' type='xmlDeregisterNodeFunc' info=''/>
+ <field name='xmlMallocAtomic' type='xmlMallocFunc' info=''/>
+ <field name='xmlLastError' type='xmlError' info=''/>
+ <field name='xmlParserInputBufferCreateFilenameValue' type='xmlParserInputBufferCreateFilenameFunc' info=''/>
+ <field name='xmlOutputBufferCreateFilenameValue' type='xmlOutputBufferCreateFilenameFunc' info=''/>
+ <field name='xmlStructuredErrorContext' type='void *' info=''/>
+ </struct>
+ <typedef name='xmlGlobalStatePtr' file='globals' type='xmlGlobalState *'/>
+ <struct name='xmlHashTable' file='hash' type='struct _xmlHashTable'/>
+ <typedef name='xmlHashTablePtr' file='hash' type='xmlHashTable *'/>
+ <struct name='xmlID' file='tree' type='struct _xmlID'>
+ <field name='next' type='struct _xmlID *' info=' next ID'/>
+ <field name='value' type='const xmlChar *' info=' The ID name'/>
+ <field name='attr' type='xmlAttrPtr' info=' The attribute holding it'/>
+ <field name='name' type='const xmlChar *' info=' The attribute if attr is not available'/>
+ <field name='lineno' type='int' info=' The line number if attr is not available'/>
+ <field name='doc' type='struct _xmlDoc *' info=' The document holding the ID'/>
+ </struct>
+ <typedef name='xmlIDPtr' file='tree' type='xmlID *'/>
+ <struct name='xmlIDTable' file='valid' type='struct _xmlHashTable'/>
+ <typedef name='xmlIDTablePtr' file='valid' type='xmlIDTable *'/>
+ <struct name='xmlLink' file='list' type='struct _xmlLink'/>
+ <typedef name='xmlLinkPtr' file='list' type='xmlLink *'/>
+ <struct name='xmlList' file='list' type='struct _xmlList'/>
+ <typedef name='xmlListPtr' file='list' type='xmlList *'/>
+ <struct name='xmlLocationSet' file='xpointer' type='struct _xmlLocationSet'>
+ <field name='locNr' type='int' info=' number of locations in the set'/>
+ <field name='locMax' type='int' info=' size of the array as allocated'/>
+ <field name='locTab' type='xmlXPathObjectPtr *' info=' array of locations'/>
+ </struct>
+ <typedef name='xmlLocationSetPtr' file='xpointer' type='xmlLocationSet *'/>
+ <struct name='xmlModule' file='xmlmodule' type='struct _xmlModule'/>
+ <typedef name='xmlModuleOption' file='xmlmodule' type='enum'/>
+ <typedef name='xmlModulePtr' file='xmlmodule' type='xmlModule *'>
+ <info>A handle to a dynamically loaded module</info>
+ </typedef>
+ <struct name='xmlMutex' file='threads' type='struct _xmlMutex'/>
+ <typedef name='xmlMutexPtr' file='threads' type='xmlMutex *'/>
+ <struct name='xmlNode' file='tree' type='struct _xmlNode'>
+ <field name='_private' type='void *' info=' application data'/>
+ <field name='type' type='xmlElementType' info=' type number, must be second !'/>
+ <field name='name' type='const xmlChar *' info=' the name of the node, or the entity'/>
+ <field name='children' type='struct _xmlNode *' info=' parent-&gt;childs link'/>
+ <field name='last' type='struct _xmlNode *' info=' last child link'/>
+ <field name='parent' type='struct _xmlNode *' info=' child-&gt;parent link'/>
+ <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
+ <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
+ <field name='doc' type='struct _xmlDoc *' info=' the containing document End of common part'/>
+ <field name='ns' type='xmlNs *' info=' pointer to the associated namespace'/>
+ <field name='content' type='xmlChar *' info=' the content'/>
+ <field name='properties' type='struct _xmlAttr *' info=' properties list'/>
+ <field name='nsDef' type='xmlNs *' info=' namespace definitions on this node'/>
+ <field name='psvi' type='void *' info=' for type/PSVI informations'/>
+ <field name='line' type='unsigned short' info=' line number'/>
+ <field name='extra' type='unsigned short' info=' extra data for XPath/XSLT'/>
+ </struct>
+ <typedef name='xmlNodePtr' file='tree' type='xmlNode *'/>
+ <struct name='xmlNodeSet' file='xpath' type='struct _xmlNodeSet'>
+ <field name='nodeNr' type='int' info=' number of nodes in the set'/>
+ <field name='nodeMax' type='int' info=' size of the array as allocated'/>
+ <field name='nodeTab' type='xmlNodePtr *' info=' array of nodes in no particular order @@ with_ns to check whether namespace nodes should be looked at @@'/>
+ </struct>
+ <typedef name='xmlNodeSetPtr' file='xpath' type='xmlNodeSet *'/>
+ <struct name='xmlNotation' file='tree' type='struct _xmlNotation'>
+ <field name='name' type='const xmlChar *' info=' Notation name'/>
+ <field name='PublicID' type='const xmlChar *' info=' Public identifier, if any'/>
+ <field name='SystemID' type='const xmlChar *' info=' System identifier, if any'/>
+ </struct>
+ <typedef name='xmlNotationPtr' file='tree' type='xmlNotation *'/>
+ <struct name='xmlNotationTable' file='valid' type='struct _xmlHashTable'/>
+ <typedef name='xmlNotationTablePtr' file='valid' type='xmlNotationTable *'/>
+ <struct name='xmlNs' file='tree' type='struct _xmlNs'>
+ <field name='next' type='struct _xmlNs *' info=' next Ns link for this node '/>
+ <field name='type' type='xmlNsType' info=' global or local'/>
+ <field name='href' type='const xmlChar *' info=' URL for the namespace'/>
+ <field name='prefix' type='const xmlChar *' info=' prefix for the namespace'/>
+ <field name='_private' type='void *' info=' application data'/>
+ <field name='context' type='struct _xmlDoc *' info=' normally an xmlDoc'/>
+ </struct>
+ <typedef name='xmlNsPtr' file='tree' type='xmlNs *'/>
+ <typedef name='xmlNsType' file='tree' type='xmlElementType'/>
+ <struct name='xmlOutputBuffer' file='tree' type='struct _xmlOutputBuffer'>
+ <field name='context' type='void *' info=''/>
+ <field name='writecallback' type='xmlOutputWriteCallback' info=''/>
+ <field name='closecallback' type='xmlOutputCloseCallback' info=''/>
+ <field name='encoder' type='xmlCharEncodingHandlerPtr' info=' I18N conversions to UTF-8'/>
+ <field name='buffer' type='xmlBufPtr' info=' Local buffer encoded in UTF-8 or ISOLatin'/>
+ <field name='conv' type='xmlBufPtr' info=' if encoder != NULL buffer for output'/>
+ <field name='written' type='int' info=' total number of byte written'/>
+ <field name='error' type='int' info=''/>
+ </struct>
+ <typedef name='xmlOutputBufferPtr' file='tree' type='xmlOutputBuffer *'/>
+ <struct name='xmlParserCtxt' file='tree' type='struct _xmlParserCtxt'>
+ <field name='sax' type='struct _xmlSAXHandler *' info=' The SAX handler'/>
+ <field name='userData' type='void *' info=' For SAX interface only, used by DOM build'/>
+ <field name='myDoc' type='xmlDocPtr' info=' the document being built'/>
+ <field name='wellFormed' type='int' info=' is the document well formed'/>
+ <field name='replaceEntities' type='int' info=' shall we replace entities ?'/>
+ <field name='version' type='const xmlChar *' info=' the XML version string'/>
+ <field name='encoding' type='const xmlChar *' info=' the declared encoding, if any'/>
+ <field name='standalone' type='int' info=' standalone document'/>
+ <field name='html' type='int' info=' an HTML(1)/Docbook(2) document
+* 3 is HTML after &lt;head&gt;
+* 10 is HTML after &lt;body&gt;
+* Input stream stack'/>
+ <field name='input' type='xmlParserInputPtr' info=' Current input stream'/>
+ <field name='inputNr' type='int' info=' Number of current input streams'/>
+ <field name='inputMax' type='int' info=' Max number of input streams'/>
+ <field name='inputTab' type='xmlParserInputPtr *' info=' stack of inputs Node analysis stack only used for DOM building'/>
+ <field name='node' type='xmlNodePtr' info=' Current parsed Node'/>
+ <field name='nodeNr' type='int' info=' Depth of the parsing stack'/>
+ <field name='nodeMax' type='int' info=' Max depth of the parsing stack'/>
+ <field name='nodeTab' type='xmlNodePtr *' info=' array of nodes'/>
+ <field name='record_info' type='int' info=' Whether node info should be kept'/>
+ <field name='node_seq' type='xmlParserNodeInfoSeq' info=' info about each node parsed'/>
+ <field name='errNo' type='int' info=' error code'/>
+ <field name='hasExternalSubset' type='int' info=' reference and external subset'/>
+ <field name='hasPErefs' type='int' info=' the internal subset has PE refs'/>
+ <field name='external' type='int' info=' are we parsing an external entity'/>
+ <field name='valid' type='int' info=' is the document valid'/>
+ <field name='validate' type='int' info=' shall we try to validate ?'/>
+ <field name='vctxt' type='xmlValidCtxt' info=' The validity context'/>
+ <field name='instate' type='xmlParserInputState' info=' current type of input'/>
+ <field name='token' type='int' info=' next char look-ahead'/>
+ <field name='directory' type='char *' info=' the data directory Node name stack'/>
+ <field name='name' type='const xmlChar *' info=' Current parsed Node'/>
+ <field name='nameNr' type='int' info=' Depth of the parsing stack'/>
+ <field name='nameMax' type='int' info=' Max depth of the parsing stack'/>
+ <field name='nameTab' type='const xmlChar * *' info=' array of nodes'/>
+ <field name='nbChars' type='long' info=' number of xmlChar processed'/>
+ <field name='checkIndex' type='long' info=' used by progressive parsing lookup'/>
+ <field name='keepBlanks' type='int' info=' ugly but ...'/>
+ <field name='disableSAX' type='int' info=' SAX callbacks are disabled'/>
+ <field name='inSubset' type='int' info=' Parsing is in int 1/ext 2 subset'/>
+ <field name='intSubName' type='const xmlChar *' info=' name of subset'/>
+ <field name='extSubURI' type='xmlChar *' info=' URI of external subset'/>
+ <field name='extSubSystem' type='xmlChar *' info=' SYSTEM ID of external subset xml:space values'/>
+ <field name='space' type='int *' info=' Should the parser preserve spaces'/>
+ <field name='spaceNr' type='int' info=' Depth of the parsing stack'/>
+ <field name='spaceMax' type='int' info=' Max depth of the parsing stack'/>
+ <field name='spaceTab' type='int *' info=' array of space infos'/>
+ <field name='depth' type='int' info=' to prevent entity substitution loops'/>
+ <field name='entity' type='xmlParserInputPtr' info=' used to check entities boundaries'/>
+ <field name='charset' type='int' info=' encoding of the in-memory content
+actually an xmlCharEncoding'/>
+ <field name='nodelen' type='int' info=' Those two fields are there to'/>
+ <field name='nodemem' type='int' info=' Speed up large node parsing'/>
+ <field name='pedantic' type='int' info=' signal pedantic warnings'/>
+ <field name='_private' type='void *' info=' For user data, libxml won&apos;t touch it'/>
+ <field name='loadsubset' type='int' info=' should the external subset be loaded'/>
+ <field name='linenumbers' type='int' info=' set line number in element content'/>
+ <field name='catalogs' type='void *' info=' document&apos;s own catalog'/>
+ <field name='recovery' type='int' info=' run in recovery mode'/>
+ <field name='progressive' type='int' info=' is this a progressive parsing'/>
+ <field name='dict' type='xmlDictPtr' info=' dictionary for the parser'/>
+ <field name='atts' type='const xmlChar * *' info=' array for the attributes callbacks'/>
+ <field name='maxatts' type='int' info=' the size of the array'/>
+ <field name='docdict' type='int' info='* pre-interned strings
+*'/>
+ <field name='str_xml' type='const xmlChar *' info=''/>
+ <field name='str_xmlns' type='const xmlChar *' info=''/>
+ <field name='str_xml_ns' type='const xmlChar *' info='* Everything below is used only by the new SAX mode
+*'/>
+ <field name='sax2' type='int' info=' operating in the new SAX mode'/>
+ <field name='nsNr' type='int' info=' the number of inherited namespaces'/>
+ <field name='nsMax' type='int' info=' the size of the arrays'/>
+ <field name='nsTab' type='const xmlChar * *' info=' the array of prefix/namespace name'/>
+ <field name='attallocs' type='int *' info=' which attribute were allocated'/>
+ <field name='pushTab' type='void * *' info=' array of data for push'/>
+ <field name='attsDefault' type='xmlHashTablePtr' info=' defaulted attributes if any'/>
+ <field name='attsSpecial' type='xmlHashTablePtr' info=' non-CDATA attributes if any'/>
+ <field name='nsWellFormed' type='int' info=' is the document XML Namespace okay'/>
+ <field name='options' type='int' info='* Those fields are needed only for streaming parsing so far
+*'/>
+ <field name='dictNames' type='int' info=' Use dictionary names for the tree'/>
+ <field name='freeElemsNr' type='int' info=' number of freed element nodes'/>
+ <field name='freeElems' type='xmlNodePtr' info=' List of freed element nodes'/>
+ <field name='freeAttrsNr' type='int' info=' number of freed attributes nodes'/>
+ <field name='freeAttrs' type='xmlAttrPtr' info='* the complete error informations for the last error.
+*'/>
+ <field name='lastError' type='xmlError' info=''/>
+ <field name='parseMode' type='xmlParserMode' info=' the parser mode'/>
+ <field name='nbentities' type='unsigned long' info=' number of entities references'/>
+ <field name='sizeentities' type='unsigned long' info=' size of parsed entities for use by HTML non-recursive parser'/>
+ <field name='nodeInfo' type='xmlParserNodeInfo *' info=' Current NodeInfo'/>
+ <field name='nodeInfoNr' type='int' info=' Depth of the parsing stack'/>
+ <field name='nodeInfoMax' type='int' info=' Max depth of the parsing stack'/>
+ <field name='nodeInfoTab' type='xmlParserNodeInfo *' info=' array of nodeInfos'/>
+ <field name='input_id' type='int' info=' we need to label inputs'/>
+ <field name='sizeentcopy' type='unsigned long' info=' volume of entity copy'/>
+ </struct>
+ <typedef name='xmlParserCtxtPtr' file='tree' type='xmlParserCtxt *'/>
+ <typedef name='xmlParserErrors' file='xmlerror' type='enum'/>
+ <struct name='xmlParserInput' file='tree' type='struct _xmlParserInput'>
+ <field name='buf' type='xmlParserInputBufferPtr' info=' UTF-8 encoded buffer'/>
+ <field name='filename' type='const char *' info=' The file analyzed, if any'/>
+ <field name='directory' type='const char *' info=' the directory/base of the file'/>
+ <field name='base' type='const xmlChar *' info=' Base of the array to parse'/>
+ <field name='cur' type='const xmlChar *' info=' Current char being parsed'/>
+ <field name='end' type='const xmlChar *' info=' end of the array to parse'/>
+ <field name='length' type='int' info=' length if known'/>
+ <field name='line' type='int' info=' Current line'/>
+ <field name='col' type='int' info='* NOTE: consumed is only tested for equality in the parser code,
+* so even if there is an overflow this should not give troubles
+* for parsing very large instances.
+*'/>
+ <field name='consumed' type='unsigned long' info=' How many xmlChars already consumed'/>
+ <field name='free' type='xmlParserInputDeallocate' info=' function to deallocate the base'/>
+ <field name='encoding' type='const xmlChar *' info=' the encoding string for entity'/>
+ <field name='version' type='const xmlChar *' info=' the version string for entity'/>
+ <field name='standalone' type='int' info=' Was that entity marked standalone'/>
+ <field name='id' type='int' info=' an unique identifier for the entity'/>
+ </struct>
+ <struct name='xmlParserInputBuffer' file='tree' type='struct _xmlParserInputBuffer'>
+ <field name='context' type='void *' info=''/>
+ <field name='readcallback' type='xmlInputReadCallback' info=''/>
+ <field name='closecallback' type='xmlInputCloseCallback' info=''/>
+ <field name='encoder' type='xmlCharEncodingHandlerPtr' info=' I18N conversions to UTF-8'/>
+ <field name='buffer' type='xmlBufPtr' info=' Local buffer encoded in UTF-8'/>
+ <field name='raw' type='xmlBufPtr' info=' if encoder != NULL buffer for raw input'/>
+ <field name='compressed' type='int' info=' -1=unknown, 0=not compressed, 1=compressed'/>
+ <field name='error' type='int' info=''/>
+ <field name='rawconsumed' type='unsigned long' info=' amount consumed from raw'/>
+ </struct>
+ <typedef name='xmlParserInputBufferPtr' file='tree' type='xmlParserInputBuffer *'/>
+ <typedef name='xmlParserInputPtr' file='tree' type='xmlParserInput *'/>
+ <typedef name='xmlParserInputState' file='parser' type='enum'/>
+ <typedef name='xmlParserMode' file='parser' type='enum'/>
+ <struct name='xmlParserNodeInfo' file='parser' type='struct _xmlParserNodeInfo'>
+ <field name='node' type='const struct _xmlNode *' info=' Position &amp; line # that text that created the node begins &amp; ends on'/>
+ <field name='begin_pos' type='unsigned long' info=''/>
+ <field name='begin_line' type='unsigned long' info=''/>
+ <field name='end_pos' type='unsigned long' info=''/>
+ <field name='end_line' type='unsigned long' info=''/>
+ </struct>
+ <typedef name='xmlParserNodeInfoPtr' file='parser' type='xmlParserNodeInfo *'/>
+ <struct name='xmlParserNodeInfoSeq' file='parser' type='struct _xmlParserNodeInfoSeq'>
+ <field name='maximum' type='unsigned long' info=''/>
+ <field name='length' type='unsigned long' info=''/>
+ <field name='buffer' type='xmlParserNodeInfo *' info=''/>
+ </struct>
+ <typedef name='xmlParserNodeInfoSeqPtr' file='parser' type='xmlParserNodeInfoSeq *'/>
+ <typedef name='xmlParserOption' file='parser' type='enum'/>
+ <typedef name='xmlParserProperties' file='xmlreader' type='enum'/>
+ <typedef name='xmlParserSeverities' file='xmlreader' type='enum'/>
+ <struct name='xmlPattern' file='pattern' type='struct _xmlPattern'/>
+ <typedef name='xmlPatternFlags' file='pattern' type='enum'/>
+ <typedef name='xmlPatternPtr' file='pattern' type='xmlPattern *'/>
+ <struct name='xmlRMutex' file='threads' type='struct _xmlRMutex'/>
+ <typedef name='xmlRMutexPtr' file='threads' type='xmlRMutex *'/>
+ <typedef name='xmlReaderTypes' file='xmlreader' type='enum'/>
+ <struct name='xmlRef' file='tree' type='struct _xmlRef'>
+ <field name='next' type='struct _xmlRef *' info=' next Ref'/>
+ <field name='value' type='const xmlChar *' info=' The Ref name'/>
+ <field name='attr' type='xmlAttrPtr' info=' The attribute holding it'/>
+ <field name='name' type='const xmlChar *' info=' The attribute if attr is not available'/>
+ <field name='lineno' type='int' info=' The line number if attr is not available'/>
+ </struct>
+ <typedef name='xmlRefPtr' file='tree' type='xmlRef *'/>
+ <struct name='xmlRefTable' file='valid' type='struct _xmlHashTable'/>
+ <typedef name='xmlRefTablePtr' file='valid' type='xmlRefTable *'/>
+ <struct name='xmlRegExecCtxt' file='xmlregexp' type='struct _xmlRegExecCtxt'/>
+ <typedef name='xmlRegExecCtxtPtr' file='xmlregexp' type='xmlRegExecCtxt *'>
+ <info>A libxml progressive regular expression evaluation context</info>
+ </typedef>
+ <struct name='xmlRegexp' file='xmlregexp' type='struct _xmlRegexp'/>
+ <typedef name='xmlRegexpPtr' file='xmlregexp' type='xmlRegexp *'>
+ <info>A libxml regular expression, they can actually be far more complex thank the POSIX regex expressions.</info>
+ </typedef>
+ <struct name='xmlRelaxNG' file='relaxng' type='struct _xmlRelaxNG'/>
+ <struct name='xmlRelaxNGParserCtxt' file='relaxng' type='struct _xmlRelaxNGParserCtxt'/>
+ <typedef name='xmlRelaxNGParserCtxtPtr' file='relaxng' type='xmlRelaxNGParserCtxt *'/>
+ <typedef name='xmlRelaxNGParserFlag' file='relaxng' type='enum'/>
+ <typedef name='xmlRelaxNGPtr' file='relaxng' type='xmlRelaxNG *'/>
+ <struct name='xmlRelaxNGValidCtxt' file='relaxng' type='struct _xmlRelaxNGValidCtxt'/>
+ <typedef name='xmlRelaxNGValidCtxtPtr' file='relaxng' type='xmlRelaxNGValidCtxt *'/>
+ <typedef name='xmlRelaxNGValidErr' file='relaxng' type='enum'/>
+ <struct name='xmlSAXHandler' file='tree' type='struct _xmlSAXHandler'>
+ <field name='internalSubset' type='internalSubsetSAXFunc' info=''/>
+ <field name='isStandalone' type='isStandaloneSAXFunc' info=''/>
+ <field name='hasInternalSubset' type='hasInternalSubsetSAXFunc' info=''/>
+ <field name='hasExternalSubset' type='hasExternalSubsetSAXFunc' info=''/>
+ <field name='resolveEntity' type='resolveEntitySAXFunc' info=''/>
+ <field name='getEntity' type='getEntitySAXFunc' info=''/>
+ <field name='entityDecl' type='entityDeclSAXFunc' info=''/>
+ <field name='notationDecl' type='notationDeclSAXFunc' info=''/>
+ <field name='attributeDecl' type='attributeDeclSAXFunc' info=''/>
+ <field name='elementDecl' type='elementDeclSAXFunc' info=''/>
+ <field name='unparsedEntityDecl' type='unparsedEntityDeclSAXFunc' info=''/>
+ <field name='setDocumentLocator' type='setDocumentLocatorSAXFunc' info=''/>
+ <field name='startDocument' type='startDocumentSAXFunc' info=''/>
+ <field name='endDocument' type='endDocumentSAXFunc' info=''/>
+ <field name='startElement' type='startElementSAXFunc' info=''/>
+ <field name='endElement' type='endElementSAXFunc' info=''/>
+ <field name='reference' type='referenceSAXFunc' info=''/>
+ <field name='characters' type='charactersSAXFunc' info=''/>
+ <field name='ignorableWhitespace' type='ignorableWhitespaceSAXFunc' info=''/>
+ <field name='processingInstruction' type='processingInstructionSAXFunc' info=''/>
+ <field name='comment' type='commentSAXFunc' info=''/>
+ <field name='warning' type='warningSAXFunc' info=''/>
+ <field name='error' type='errorSAXFunc' info=''/>
+ <field name='fatalError' type='fatalErrorSAXFunc' info=' unused error() get all the errors'/>
+ <field name='getParameterEntity' type='getParameterEntitySAXFunc' info=''/>
+ <field name='cdataBlock' type='cdataBlockSAXFunc' info=''/>
+ <field name='externalSubset' type='externalSubsetSAXFunc' info=''/>
+ <field name='initialized' type='unsigned int' info=' The following fields are extensions available only on version 2'/>
+ <field name='_private' type='void *' info=''/>
+ <field name='startElementNs' type='startElementNsSAX2Func' info=''/>
+ <field name='endElementNs' type='endElementNsSAX2Func' info=''/>
+ <field name='serror' type='xmlStructuredErrorFunc' info=''/>
+ </struct>
+ <typedef name='xmlSAXHandlerPtr' file='tree' type='xmlSAXHandler *'/>
+ <struct name='xmlSAXHandlerV1' file='parser' type='struct _xmlSAXHandlerV1'>
+ <field name='internalSubset' type='internalSubsetSAXFunc' info=''/>
+ <field name='isStandalone' type='isStandaloneSAXFunc' info=''/>
+ <field name='hasInternalSubset' type='hasInternalSubsetSAXFunc' info=''/>
+ <field name='hasExternalSubset' type='hasExternalSubsetSAXFunc' info=''/>
+ <field name='resolveEntity' type='resolveEntitySAXFunc' info=''/>
+ <field name='getEntity' type='getEntitySAXFunc' info=''/>
+ <field name='entityDecl' type='entityDeclSAXFunc' info=''/>
+ <field name='notationDecl' type='notationDeclSAXFunc' info=''/>
+ <field name='attributeDecl' type='attributeDeclSAXFunc' info=''/>
+ <field name='elementDecl' type='elementDeclSAXFunc' info=''/>
+ <field name='unparsedEntityDecl' type='unparsedEntityDeclSAXFunc' info=''/>
+ <field name='setDocumentLocator' type='setDocumentLocatorSAXFunc' info=''/>
+ <field name='startDocument' type='startDocumentSAXFunc' info=''/>
+ <field name='endDocument' type='endDocumentSAXFunc' info=''/>
+ <field name='startElement' type='startElementSAXFunc' info=''/>
+ <field name='endElement' type='endElementSAXFunc' info=''/>
+ <field name='reference' type='referenceSAXFunc' info=''/>
+ <field name='characters' type='charactersSAXFunc' info=''/>
+ <field name='ignorableWhitespace' type='ignorableWhitespaceSAXFunc' info=''/>
+ <field name='processingInstruction' type='processingInstructionSAXFunc' info=''/>
+ <field name='comment' type='commentSAXFunc' info=''/>
+ <field name='warning' type='warningSAXFunc' info=''/>
+ <field name='error' type='errorSAXFunc' info=''/>
+ <field name='fatalError' type='fatalErrorSAXFunc' info=' unused error() get all the errors'/>
+ <field name='getParameterEntity' type='getParameterEntitySAXFunc' info=''/>
+ <field name='cdataBlock' type='cdataBlockSAXFunc' info=''/>
+ <field name='externalSubset' type='externalSubsetSAXFunc' info=''/>
+ <field name='initialized' type='unsigned int' info=''/>
+ </struct>
+ <typedef name='xmlSAXHandlerV1Ptr' file='parser' type='xmlSAXHandlerV1 *'/>
+ <struct name='xmlSAXLocator' file='tree' type='struct _xmlSAXLocator'>
+ <field name='getPublicId' type='const xmlChar *(*getPublicId)' info=''/>
+ <field name='getSystemId' type='const xmlChar *(*getSystemId)' info=''/>
+ <field name='getLineNumber' type='int(*getLineNumber)' info=''/>
+ <field name='getColumnNumber' type='int(*getColumnNumber)' info=''/>
+ </struct>
+ <typedef name='xmlSAXLocatorPtr' file='tree' type='xmlSAXLocator *'/>
+ <struct name='xmlSaveCtxt' file='xmlsave' type='struct _xmlSaveCtxt'/>
+ <typedef name='xmlSaveCtxtPtr' file='xmlsave' type='xmlSaveCtxt *'/>
+ <typedef name='xmlSaveOption' file='xmlsave' type='enum'/>
+ <struct name='xmlSchema' file='xmlschemas' type='struct _xmlSchema'>
+ <field name='name' type='const xmlChar *' info=' schema name'/>
+ <field name='targetNamespace' type='const xmlChar *' info=' the target namespace'/>
+ <field name='version' type='const xmlChar *' info=''/>
+ <field name='id' type='const xmlChar *' info=' Obsolete'/>
+ <field name='doc' type='xmlDocPtr' info=''/>
+ <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
+ <field name='flags' type='int' info=''/>
+ <field name='typeDecl' type='xmlHashTablePtr' info=''/>
+ <field name='attrDecl' type='xmlHashTablePtr' info=''/>
+ <field name='attrgrpDecl' type='xmlHashTablePtr' info=''/>
+ <field name='elemDecl' type='xmlHashTablePtr' info=''/>
+ <field name='notaDecl' type='xmlHashTablePtr' info=''/>
+ <field name='schemasImports' type='xmlHashTablePtr' info=''/>
+ <field name='_private' type='void *' info=' unused by the library for users or bindings'/>
+ <field name='groupDecl' type='xmlHashTablePtr' info=''/>
+ <field name='dict' type='xmlDictPtr' info=''/>
+ <field name='includes' type='void *' info=' the includes, this is opaque for now'/>
+ <field name='preserve' type='int' info=' whether to free the document'/>
+ <field name='counter' type='int' info=' used to give anonymous components unique names'/>
+ <field name='idcDef' type='xmlHashTablePtr' info=' All identity-constraint defs.'/>
+ <field name='volatiles' type='void *' info=' Obsolete'/>
+ </struct>
+ <struct name='xmlSchemaAnnot' file='schemasInternals' type='struct _xmlSchemaAnnot'>
+ <field name='next' type='struct _xmlSchemaAnnot *' info=''/>
+ <field name='content' type='xmlNodePtr' info=' the annotation'/>
+ </struct>
+ <typedef name='xmlSchemaAnnotPtr' file='schemasInternals' type='xmlSchemaAnnot *'/>
+ <struct name='xmlSchemaAttribute' file='schemasInternals' type='struct _xmlSchemaAttribute'>
+ <field name='type' type='xmlSchemaTypeType' info=''/>
+ <field name='next' type='struct _xmlSchemaAttribute *' info=' the next attribute (not used?)'/>
+ <field name='name' type='const xmlChar *' info=' the name of the declaration'/>
+ <field name='id' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='ref' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='refNs' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='typeName' type='const xmlChar *' info=' the local name of the type definition'/>
+ <field name='typeNs' type='const xmlChar *' info=' the ns URI of the type definition'/>
+ <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
+ <field name='base' type='xmlSchemaTypePtr' info=' Deprecated; not used'/>
+ <field name='occurs' type='int' info=' Deprecated; not used'/>
+ <field name='defValue' type='const xmlChar *' info=' The initial value of the value constraint'/>
+ <field name='subtypes' type='xmlSchemaTypePtr' info=' the type definition'/>
+ <field name='node' type='xmlNodePtr' info=''/>
+ <field name='targetNamespace' type='const xmlChar *' info=''/>
+ <field name='flags' type='int' info=''/>
+ <field name='refPrefix' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='defVal' type='xmlSchemaValPtr' info=' The compiled value constraint'/>
+ <field name='refDecl' type='xmlSchemaAttributePtr' info=' Deprecated; not used'/>
+ </struct>
+ <struct name='xmlSchemaAttributeGroup' file='schemasInternals' type='struct _xmlSchemaAttributeGroup'>
+ <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
+ <field name='next' type='struct _xmlSchemaAttribute *' info=' the next attribute if in a group ...'/>
+ <field name='name' type='const xmlChar *' info=''/>
+ <field name='id' type='const xmlChar *' info=''/>
+ <field name='ref' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='refNs' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
+ <field name='attributes' type='xmlSchemaAttributePtr' info=' Deprecated; not used'/>
+ <field name='node' type='xmlNodePtr' info=''/>
+ <field name='flags' type='int' info=''/>
+ <field name='attributeWildcard' type='xmlSchemaWildcardPtr' info=''/>
+ <field name='refPrefix' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='refItem' type='xmlSchemaAttributeGroupPtr' info=' Deprecated; not used'/>
+ <field name='targetNamespace' type='const xmlChar *' info=''/>
+ <field name='attrUses' type='void *' info=''/>
+ </struct>
+ <typedef name='xmlSchemaAttributeGroupPtr' file='schemasInternals' type='xmlSchemaAttributeGroup *'/>
+ <struct name='xmlSchemaAttributeLink' file='schemasInternals' type='struct _xmlSchemaAttributeLink'>
+ <field name='next' type='struct _xmlSchemaAttributeLink *' info=' the next attribute link ...'/>
+ <field name='attr' type='struct _xmlSchemaAttribute *' info=' the linked attribute'/>
+ </struct>
+ <typedef name='xmlSchemaAttributeLinkPtr' file='schemasInternals' type='xmlSchemaAttributeLink *'/>
+ <typedef name='xmlSchemaAttributePtr' file='schemasInternals' type='xmlSchemaAttribute *'/>
+ <typedef name='xmlSchemaContentType' file='schemasInternals' type='enum'/>
+ <struct name='xmlSchemaElement' file='schemasInternals' type='struct _xmlSchemaElement'>
+ <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
+ <field name='next' type='struct _xmlSchemaType *' info=' Not used?'/>
+ <field name='name' type='const xmlChar *' info=''/>
+ <field name='id' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='ref' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='refNs' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
+ <field name='subtypes' type='xmlSchemaTypePtr' info=' the type definition'/>
+ <field name='attributes' type='xmlSchemaAttributePtr' info=''/>
+ <field name='node' type='xmlNodePtr' info=''/>
+ <field name='minOccurs' type='int' info=' Deprecated; not used'/>
+ <field name='maxOccurs' type='int' info=' Deprecated; not used'/>
+ <field name='flags' type='int' info=''/>
+ <field name='targetNamespace' type='const xmlChar *' info=''/>
+ <field name='namedType' type='const xmlChar *' info=''/>
+ <field name='namedTypeNs' type='const xmlChar *' info=''/>
+ <field name='substGroup' type='const xmlChar *' info=''/>
+ <field name='substGroupNs' type='const xmlChar *' info=''/>
+ <field name='scope' type='const xmlChar *' info=''/>
+ <field name='value' type='const xmlChar *' info=' The original value of the value constraint.'/>
+ <field name='refDecl' type='struct _xmlSchemaElement *' info=' This will now be used for the
+substitution group affiliation'/>
+ <field name='contModel' type='xmlRegexpPtr' info=' Obsolete for WXS, maybe used for RelaxNG'/>
+ <field name='contentType' type='xmlSchemaContentType' info=''/>
+ <field name='refPrefix' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='defVal' type='xmlSchemaValPtr' info=' The compiled value constraint.'/>
+ <field name='idcs' type='void *' info=' The identity-constraint defs'/>
+ </struct>
+ <typedef name='xmlSchemaElementPtr' file='schemasInternals' type='xmlSchemaElement *'/>
+ <struct name='xmlSchemaFacet' file='schemasInternals' type='struct _xmlSchemaFacet'>
+ <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
+ <field name='next' type='struct _xmlSchemaFacet *' info=' the next type if in a sequence ...'/>
+ <field name='value' type='const xmlChar *' info=' The original value'/>
+ <field name='id' type='const xmlChar *' info=' Obsolete'/>
+ <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
+ <field name='node' type='xmlNodePtr' info=''/>
+ <field name='fixed' type='int' info=' XML_SCHEMAS_FACET_PRESERVE, etc.'/>
+ <field name='whitespace' type='int' info=''/>
+ <field name='val' type='xmlSchemaValPtr' info=' The compiled value'/>
+ <field name='regexp' type='xmlRegexpPtr' info=' The regex for patterns'/>
+ </struct>
+ <struct name='xmlSchemaFacetLink' file='schemasInternals' type='struct _xmlSchemaFacetLink'>
+ <field name='next' type='struct _xmlSchemaFacetLink *' info=' the next facet link ...'/>
+ <field name='facet' type='xmlSchemaFacetPtr' info=' the linked facet'/>
+ </struct>
+ <typedef name='xmlSchemaFacetLinkPtr' file='schemasInternals' type='xmlSchemaFacetLink *'/>
+ <typedef name='xmlSchemaFacetPtr' file='schemasInternals' type='xmlSchemaFacet *'/>
+ <struct name='xmlSchemaNotation' file='schemasInternals' type='struct _xmlSchemaNotation'>
+ <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
+ <field name='name' type='const xmlChar *' info=''/>
+ <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
+ <field name='identifier' type='const xmlChar *' info=''/>
+ <field name='targetNamespace' type='const xmlChar *' info=''/>
+ </struct>
+ <typedef name='xmlSchemaNotationPtr' file='schemasInternals' type='xmlSchemaNotation *'/>
+ <struct name='xmlSchemaParserCtxt' file='xmlschemas' type='struct _xmlSchemaParserCtxt'/>
+ <typedef name='xmlSchemaParserCtxtPtr' file='xmlschemas' type='xmlSchemaParserCtxt *'/>
+ <typedef name='xmlSchemaPtr' file='xmlschemas' type='xmlSchema *'/>
+ <typedef name='xmlSchemaSAXPlugPtr' file='xmlschemas' type='xmlSchemaSAXPlugStruct *'/>
+ <struct name='xmlSchemaSAXPlugStruct' file='xmlschemas' type='struct _xmlSchemaSAXPlug'/>
+ <struct name='xmlSchemaType' file='schemasInternals' type='struct _xmlSchemaType'>
+ <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
+ <field name='next' type='struct _xmlSchemaType *' info=' the next type if in a sequence ...'/>
+ <field name='name' type='const xmlChar *' info=''/>
+ <field name='id' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='ref' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='refNs' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
+ <field name='subtypes' type='xmlSchemaTypePtr' info=''/>
+ <field name='attributes' type='xmlSchemaAttributePtr' info=' Deprecated; not used'/>
+ <field name='node' type='xmlNodePtr' info=''/>
+ <field name='minOccurs' type='int' info=' Deprecated; not used'/>
+ <field name='maxOccurs' type='int' info=' Deprecated; not used'/>
+ <field name='flags' type='int' info=''/>
+ <field name='contentType' type='xmlSchemaContentType' info=''/>
+ <field name='base' type='const xmlChar *' info=' Base type&apos;s local name'/>
+ <field name='baseNs' type='const xmlChar *' info=' Base type&apos;s target namespace'/>
+ <field name='baseType' type='xmlSchemaTypePtr' info=' The base type component'/>
+ <field name='facets' type='xmlSchemaFacetPtr' info=' Local facets'/>
+ <field name='redef' type='struct _xmlSchemaType *' info=' Deprecated; not used'/>
+ <field name='recurse' type='int' info=' Obsolete'/>
+ <field name='attributeUses' type='xmlSchemaAttributeLinkPtr *' info=' Deprecated; not used'/>
+ <field name='attributeWildcard' type='xmlSchemaWildcardPtr' info=''/>
+ <field name='builtInType' type='int' info=' Type of built-in types.'/>
+ <field name='memberTypes' type='xmlSchemaTypeLinkPtr' info=' member-types if a union type.'/>
+ <field name='facetSet' type='xmlSchemaFacetLinkPtr' info=' All facets (incl. inherited)'/>
+ <field name='refPrefix' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='contentTypeDef' type='xmlSchemaTypePtr' info=' Used for the simple content of complex types.
+Could we use @subtypes for this?'/>
+ <field name='contModel' type='xmlRegexpPtr' info=' Holds the automaton of the content model'/>
+ <field name='targetNamespace' type='const xmlChar *' info=''/>
+ <field name='attrUses' type='void *' info=''/>
+ </struct>
+ <struct name='xmlSchemaTypeLink' file='schemasInternals' type='struct _xmlSchemaTypeLink'>
+ <field name='next' type='struct _xmlSchemaTypeLink *' info=' the next type link ...'/>
+ <field name='type' type='xmlSchemaTypePtr' info=' the linked type'/>
+ </struct>
+ <typedef name='xmlSchemaTypeLinkPtr' file='schemasInternals' type='xmlSchemaTypeLink *'/>
+ <typedef name='xmlSchemaTypePtr' file='schemasInternals' type='xmlSchemaType *'/>
+ <typedef name='xmlSchemaTypeType' file='schemasInternals' type='enum'/>
+ <struct name='xmlSchemaVal' file='schemasInternals' type='struct _xmlSchemaVal'/>
+ <typedef name='xmlSchemaValPtr' file='schemasInternals' type='xmlSchemaVal *'/>
+ <typedef name='xmlSchemaValType' file='schemasInternals' type='enum'/>
+ <struct name='xmlSchemaValidCtxt' file='xmlschemas' type='struct _xmlSchemaValidCtxt'/>
+ <typedef name='xmlSchemaValidCtxtPtr' file='xmlschemas' type='xmlSchemaValidCtxt *'/>
+ <typedef name='xmlSchemaValidError' file='xmlschemas' type='enum'/>
+ <typedef name='xmlSchemaValidOption' file='xmlschemas' type='enum'/>
+ <typedef name='xmlSchemaWhitespaceValueType' file='xmlschemastypes' type='enum'/>
+ <struct name='xmlSchemaWildcard' file='schemasInternals' type='struct _xmlSchemaWildcard'>
+ <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
+ <field name='id' type='const xmlChar *' info=' Deprecated; not used'/>
+ <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
+ <field name='node' type='xmlNodePtr' info=''/>
+ <field name='minOccurs' type='int' info=' Deprecated; not used'/>
+ <field name='maxOccurs' type='int' info=' Deprecated; not used'/>
+ <field name='processContents' type='int' info=''/>
+ <field name='any' type='int' info=' Indicates if the ns constraint is of ##any'/>
+ <field name='nsSet' type='xmlSchemaWildcardNsPtr' info=' The list of allowed namespaces'/>
+ <field name='negNsSet' type='xmlSchemaWildcardNsPtr' info=' The negated namespace'/>
+ <field name='flags' type='int' info=''/>
+ </struct>
+ <struct name='xmlSchemaWildcardNs' file='schemasInternals' type='struct _xmlSchemaWildcardNs'>
+ <field name='next' type='struct _xmlSchemaWildcardNs *' info=' the next constraint link ...'/>
+ <field name='value' type='const xmlChar *' info=' the value'/>
+ </struct>
+ <typedef name='xmlSchemaWildcardNsPtr' file='schemasInternals' type='xmlSchemaWildcardNs *'/>
+ <typedef name='xmlSchemaWildcardPtr' file='schemasInternals' type='xmlSchemaWildcard *'/>
+ <struct name='xmlSchematron' file='schematron' type='struct _xmlSchematron'/>
+ <struct name='xmlSchematronParserCtxt' file='schematron' type='struct _xmlSchematronParserCtxt'/>
+ <typedef name='xmlSchematronParserCtxtPtr' file='schematron' type='xmlSchematronParserCtxt *'/>
+ <typedef name='xmlSchematronPtr' file='schematron' type='xmlSchematron *'/>
+ <struct name='xmlSchematronValidCtxt' file='schematron' type='struct _xmlSchematronValidCtxt'/>
+ <typedef name='xmlSchematronValidCtxtPtr' file='schematron' type='xmlSchematronValidCtxt *'/>
+ <typedef name='xmlSchematronValidOptions' file='schematron' type='enum'/>
+ <struct name='xmlShellCtxt' file='debugXML' type='struct _xmlShellCtxt'>
+ <field name='filename' type='char *' info=''/>
+ <field name='doc' type='xmlDocPtr' info=''/>
+ <field name='node' type='xmlNodePtr' info=''/>
+ <field name='pctxt' type='xmlXPathContextPtr' info=''/>
+ <field name='loaded' type='int' info=''/>
+ <field name='output' type='FILE *' info=''/>
+ <field name='input' type='xmlShellReadlineFunc' info=''/>
+ </struct>
+ <typedef name='xmlShellCtxtPtr' file='debugXML' type='xmlShellCtxt *'/>
+ <struct name='xmlStreamCtxt' file='pattern' type='struct _xmlStreamCtxt'/>
+ <typedef name='xmlStreamCtxtPtr' file='pattern' type='xmlStreamCtxt *'/>
+ <struct name='xmlTextReader' file='xmlreader' type='struct _xmlTextReader'/>
+ <typedef name='xmlTextReaderLocatorPtr' file='xmlreader' type='void *'/>
+ <typedef name='xmlTextReaderMode' file='xmlreader' type='enum'/>
+ <typedef name='xmlTextReaderPtr' file='xmlreader' type='xmlTextReader *'>
+ <info>Pointer to an xmlReader context.</info>
+ </typedef>
+ <struct name='xmlTextWriter' file='xmlwriter' type='struct _xmlTextWriter'/>
+ <typedef name='xmlTextWriterPtr' file='xmlwriter' type='xmlTextWriter *'/>
+ <struct name='xmlURI' file='uri' type='struct _xmlURI'>
+ <field name='scheme' type='char *' info=' the URI scheme'/>
+ <field name='opaque' type='char *' info=' opaque part'/>
+ <field name='authority' type='char *' info=' the authority part'/>
+ <field name='server' type='char *' info=' the server part'/>
+ <field name='user' type='char *' info=' the user part'/>
+ <field name='port' type='int' info=' the port number'/>
+ <field name='path' type='char *' info=' the path string'/>
+ <field name='query' type='char *' info=' the query string (deprecated - use with caution)'/>
+ <field name='fragment' type='char *' info=' the fragment identifier'/>
+ <field name='cleanup' type='int' info=' parsing potentially unclean URI'/>
+ <field name='query_raw' type='char *' info=' the query string (as it appears in the URI)'/>
+ </struct>
+ <typedef name='xmlURIPtr' file='uri' type='xmlURI *'/>
+ <struct name='xmlValidCtxt' file='valid' type='struct _xmlValidCtxt'>
+ <field name='userData' type='void *' info=' user specific data block'/>
+ <field name='error' type='xmlValidityErrorFunc' info=' the callback in case of errors'/>
+ <field name='warning' type='xmlValidityWarningFunc' info=' the callback in case of warning Node analysis stack used when validating within entities'/>
+ <field name='node' type='xmlNodePtr' info=' Current parsed Node'/>
+ <field name='nodeNr' type='int' info=' Depth of the parsing stack'/>
+ <field name='nodeMax' type='int' info=' Max depth of the parsing stack'/>
+ <field name='nodeTab' type='xmlNodePtr *' info=' array of nodes'/>
+ <field name='finishDtd' type='unsigned int' info=' finished validating the Dtd ?'/>
+ <field name='doc' type='xmlDocPtr' info=' the document'/>
+ <field name='valid' type='int' info=' temporary validity check result state state used for non-determinist content validation'/>
+ <field name='vstate' type='xmlValidState *' info=' current state'/>
+ <field name='vstateNr' type='int' info=' Depth of the validation stack'/>
+ <field name='vstateMax' type='int' info=' Max depth of the validation stack'/>
+ <field name='vstateTab' type='xmlValidState *' info=' array of validation states'/>
+ <field name='am' type='xmlAutomataPtr' info=' the automata'/>
+ <field name='state' type='xmlAutomataStatePtr' info=' used to build the automata'/>
+ <field name='am' type='void *' info=''/>
+ <field name='state' type='void *' info=''/>
+ </struct>
+ <typedef name='xmlValidCtxtPtr' file='valid' type='xmlValidCtxt *'/>
+ <struct name='xmlValidState' file='valid' type='struct _xmlValidState'/>
+ <typedef name='xmlValidStatePtr' file='valid' type='xmlValidState *'/>
+ <struct name='xmlXIncludeCtxt' file='xinclude' type='struct _xmlXIncludeCtxt'/>
+ <typedef name='xmlXIncludeCtxtPtr' file='xinclude' type='xmlXIncludeCtxt *'/>
+ <struct name='xmlXPathAxis' file='xpath' type='struct _xmlXPathAxis'>
+ <field name='name' type='const xmlChar *' info=' the axis name'/>
+ <field name='func' type='xmlXPathAxisFunc' info=' the search function'/>
+ </struct>
+ <typedef name='xmlXPathAxisPtr' file='xpath' type='xmlXPathAxis *'/>
+ <struct name='xmlXPathCompExpr' file='xpath' type='struct _xmlXPathCompExpr'/>
+ <typedef name='xmlXPathCompExprPtr' file='xpath' type='xmlXPathCompExpr *'/>
+ <struct name='xmlXPathContext' file='xpath' type='struct _xmlXPathContext'>
+ <field name='doc' type='xmlDocPtr' info=' The current document'/>
+ <field name='node' type='xmlNodePtr' info=' The current node'/>
+ <field name='nb_variables_unused' type='int' info=' unused (hash table)'/>
+ <field name='max_variables_unused' type='int' info=' unused (hash table)'/>
+ <field name='varHash' type='xmlHashTablePtr' info=' Hash table of defined variables'/>
+ <field name='nb_types' type='int' info=' number of defined types'/>
+ <field name='max_types' type='int' info=' max number of types'/>
+ <field name='types' type='xmlXPathTypePtr' info=' Array of defined types'/>
+ <field name='nb_funcs_unused' type='int' info=' unused (hash table)'/>
+ <field name='max_funcs_unused' type='int' info=' unused (hash table)'/>
+ <field name='funcHash' type='xmlHashTablePtr' info=' Hash table of defined funcs'/>
+ <field name='nb_axis' type='int' info=' number of defined axis'/>
+ <field name='max_axis' type='int' info=' max number of axis'/>
+ <field name='axis' type='xmlXPathAxisPtr' info=' Array of defined axis the namespace nodes of the context node'/>
+ <field name='namespaces' type='xmlNsPtr *' info=' Array of namespaces'/>
+ <field name='nsNr' type='int' info=' number of namespace in scope'/>
+ <field name='user' type='void *' info=' function to free extra variables'/>
+ <field name='contextSize' type='int' info=' the context size'/>
+ <field name='proximityPosition' type='int' info=' the proximity position extra stuff for XPointer'/>
+ <field name='xptr' type='int' info=' is this an XPointer context?'/>
+ <field name='here' type='xmlNodePtr' info=' for here()'/>
+ <field name='origin' type='xmlNodePtr' info=' for origin() the set of namespace declarations in scope for the expression'/>
+ <field name='nsHash' type='xmlHashTablePtr' info=' The namespaces hash table'/>
+ <field name='varLookupFunc' type='xmlXPathVariableLookupFunc' info=' variable lookup func'/>
+ <field name='varLookupData' type='void *' info=' variable lookup data Possibility to link in an extra item'/>
+ <field name='extra' type='void *' info=' needed for XSLT The function name and URI when calling a function'/>
+ <field name='function' type='const xmlChar *' info=''/>
+ <field name='functionURI' type='const xmlChar *' info=' function lookup function and data'/>
+ <field name='funcLookupFunc' type='xmlXPathFuncLookupFunc' info=' function lookup func'/>
+ <field name='funcLookupData' type='void *' info=' function lookup data temporary namespace lists kept for walking the namespace axis'/>
+ <field name='tmpNsList' type='xmlNsPtr *' info=' Array of namespaces'/>
+ <field name='tmpNsNr' type='int' info=' number of namespaces in scope error reporting mechanism'/>
+ <field name='userData' type='void *' info=' user specific data block'/>
+ <field name='error' type='xmlStructuredErrorFunc' info=' the callback in case of errors'/>
+ <field name='lastError' type='xmlError' info=' the last error'/>
+ <field name='debugNode' type='xmlNodePtr' info=' the source node XSLT dictionary'/>
+ <field name='dict' type='xmlDictPtr' info=' dictionary if any'/>
+ <field name='flags' type='int' info=' flags to control compilation Cache for reusal of XPath objects'/>
+ <field name='cache' type='void *' info=' Resource limits'/>
+ <field name='opLimit' type='unsigned long' info=''/>
+ <field name='opCount' type='unsigned long' info=''/>
+ <field name='depth' type='int' info=''/>
+ <field name='maxDepth' type='int' info=''/>
+ <field name='maxParserDepth' type='int' info=''/>
+ </struct>
+ <typedef name='xmlXPathContextPtr' file='xpath' type='xmlXPathContext *'/>
+ <typedef name='xmlXPathError' file='xpath' type='enum'/>
+ <typedef name='xmlXPathFuncPtr' file='xpath' type='xmlXPathFunct *'/>
+ <struct name='xmlXPathFunct' file='xpath' type='struct _xmlXPathFunct'>
+ <field name='name' type='const xmlChar *' info=' the function name'/>
+ <field name='func' type='xmlXPathEvalFunc' info=' the evaluation function'/>
+ </struct>
+ <struct name='xmlXPathObject' file='xpath' type='struct _xmlXPathObject'>
+ <field name='type' type='xmlXPathObjectType' info=''/>
+ <field name='nodesetval' type='xmlNodeSetPtr' info=''/>
+ <field name='boolval' type='int' info=''/>
+ <field name='floatval' type='double' info=''/>
+ <field name='stringval' type='xmlChar *' info=''/>
+ <field name='user' type='void *' info=''/>
+ <field name='index' type='int' info=''/>
+ <field name='user2' type='void *' info=''/>
+ <field name='index2' type='int' info=''/>
+ </struct>
+ <typedef name='xmlXPathObjectPtr' file='xpath' type='xmlXPathObject *'/>
+ <typedef name='xmlXPathObjectType' file='xpath' type='enum'/>
+ <struct name='xmlXPathParserContext' file='xpath' type='struct _xmlXPathParserContext'>
+ <field name='cur' type='const xmlChar *' info=' the current char being parsed'/>
+ <field name='base' type='const xmlChar *' info=' the full expression'/>
+ <field name='error' type='int' info=' error code'/>
+ <field name='context' type='xmlXPathContextPtr' info=' the evaluation context'/>
+ <field name='value' type='xmlXPathObjectPtr' info=' the current value'/>
+ <field name='valueNr' type='int' info=' number of values stacked'/>
+ <field name='valueMax' type='int' info=' max number of values stacked'/>
+ <field name='valueTab' type='xmlXPathObjectPtr *' info=' stack of values'/>
+ <field name='comp' type='xmlXPathCompExprPtr' info=' the precompiled expression'/>
+ <field name='xptr' type='int' info=' it this an XPointer expression'/>
+ <field name='ancestor' type='xmlNodePtr' info=' used for walking preceding axis'/>
+ <field name='valueFrame' type='int' info=' used to limit Pop on the stack'/>
+ </struct>
+ <typedef name='xmlXPathParserContextPtr' file='xpath' type='xmlXPathParserContext *'/>
+ <struct name='xmlXPathType' file='xpath' type='struct _xmlXPathType'>
+ <field name='name' type='const xmlChar *' info=' the type name'/>
+ <field name='func' type='xmlXPathConvertFunc' info=' the conversion function'/>
+ </struct>
+ <typedef name='xmlXPathTypePtr' file='xpath' type='xmlXPathType *'/>
+ <struct name='xmlXPathVariable' file='xpath' type='struct _xmlXPathVariable'>
+ <field name='name' type='const xmlChar *' info=' the variable name'/>
+ <field name='value' type='xmlXPathObjectPtr' info=' the value'/>
+ </struct>
+ <typedef name='xmlXPathVariablePtr' file='xpath' type='xmlXPathVariable *'/>
+ <variable name='docbDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
+ <variable name='emptyExp' file='xmlregexp' type='xmlExpNodePtr'/>
+ <variable name='forbiddenExp' file='xmlregexp' type='xmlExpNodePtr'/>
+ <variable name='htmlDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
+ <variable name='oldXMLWDcompatibility' file='globals' type='int'/>
+ <variable name='xmlBufferAllocScheme' file='globals' type='xmlBufferAllocationScheme'/>
+ <variable name='xmlDefaultBufferSize' file='globals' type='int'/>
+ <variable name='xmlDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
+ <variable name='xmlDefaultSAXLocator' file='globals' type='xmlSAXLocator'/>
+ <variable name='xmlDeregisterNodeDefaultValue' file='globals' type='xmlDeregisterNodeFunc'/>
+ <variable name='xmlDoValidityCheckingDefaultValue' file='globals' type='int'/>
+ <variable name='xmlFree' file='globals' type='xmlFreeFunc'/>
+ <variable name='xmlGenericError' file='globals' type='xmlGenericErrorFunc'/>
+ <variable name='xmlGenericErrorContext' file='globals' type='void *'/>
+ <variable name='xmlGetWarningsDefaultValue' file='globals' type='int'/>
+ <variable name='xmlIndentTreeOutput' file='globals' type='int'/>
+ <variable name='xmlIsBaseCharGroup' file='chvalid' type='const xmlChRangeGroup'/>
+ <variable name='xmlIsCharGroup' file='chvalid' type='const xmlChRangeGroup'/>
+ <variable name='xmlIsCombiningGroup' file='chvalid' type='const xmlChRangeGroup'/>
+ <variable name='xmlIsDigitGroup' file='chvalid' type='const xmlChRangeGroup'/>
+ <variable name='xmlIsExtenderGroup' file='chvalid' type='const xmlChRangeGroup'/>
+ <variable name='xmlIsIdeographicGroup' file='chvalid' type='const xmlChRangeGroup'/>
+ <variable name='xmlIsPubidChar_tab' file='chvalid' type='const unsigned charxmlIsPubidChar_tab[256]'/>
+ <variable name='xmlKeepBlanksDefaultValue' file='globals' type='int'/>
+ <variable name='xmlLastError' file='globals' type='xmlError'/>
+ <variable name='xmlLineNumbersDefaultValue' file='globals' type='int'/>
+ <variable name='xmlLoadExtDtdDefaultValue' file='globals' type='int'/>
+ <variable name='xmlMalloc' file='globals' type='xmlMallocFunc'/>
+ <variable name='xmlMallocAtomic' file='globals' type='xmlMallocFunc'/>
+ <variable name='xmlMemStrdup' file='globals' type='xmlStrdupFunc'/>
+ <variable name='xmlOutputBufferCreateFilenameValue' file='globals' type='xmlOutputBufferCreateFilenameFunc'/>
+ <variable name='xmlParserDebugEntities' file='globals' type='int'/>
+ <variable name='xmlParserInputBufferCreateFilenameValue' file='globals' type='xmlParserInputBufferCreateFilenameFunc'/>
+ <variable name='xmlParserMaxDepth' file='parserInternals' type='unsigned int'/>
+ <variable name='xmlParserVersion' file='globals' type='const char *'/>
+ <variable name='xmlPedanticParserDefaultValue' file='globals' type='int'/>
+ <variable name='xmlRealloc' file='globals' type='xmlReallocFunc'/>
+ <variable name='xmlRegisterNodeDefaultValue' file='globals' type='xmlRegisterNodeFunc'/>
+ <variable name='xmlSaveNoEmptyTags' file='globals' type='int'/>
+ <variable name='xmlStringComment' file='parserInternals' type='const xmlCharxmlStringComment[]'/>
+ <variable name='xmlStringText' file='parserInternals' type='const xmlCharxmlStringText[]'/>
+ <variable name='xmlStringTextNoenc' file='parserInternals' type='const xmlCharxmlStringTextNoenc[]'/>
+ <variable name='xmlStructuredError' file='globals' type='xmlStructuredErrorFunc'/>
+ <variable name='xmlStructuredErrorContext' file='globals' type='void *'/>
+ <variable name='xmlSubstituteEntitiesDefaultValue' file='globals' type='int'/>
+ <variable name='xmlTreeIndentString' file='globals' type='const char *'/>
+ <variable name='xmlXPathNAN' file='xpath' type='double'/>
+ <variable name='xmlXPathNINF' file='xpath' type='double'/>
+ <variable name='xmlXPathPINF' file='xpath' type='double'/>
+ <function name='UTF8ToHtml' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</info>
+ <return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
+ <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
+ <arg name='outlen' type='int *' info='the length of @out'/>
+ <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
+ <arg name='inlen' type='int *' info='the length of @in'/>
+ </function>
+ <function name='UTF8Toisolat1' file='encoding' module='encoding'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Take a block of UTF-8 chars in and try to convert it to an ISO Latin 1 block of chars out.</info>
+ <return type='int' info='the number of bytes written if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
+ <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
+ <arg name='outlen' type='int *' info='the length of @out'/>
+ <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
+ <arg name='inlen' type='int *' info='the length of @in'/>
+ </function>
+ <function name='attribute' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Handle an attribute that has been read by the parser. The default handling is to convert the attribute into an DOM subtree and past it in a new xmlAttr element added to the element. DEPRECATED: use xmlSAX2Attribute()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='fullname' type='const xmlChar *' info='The attribute name, including namespace prefix'/>
+ <arg name='value' type='const xmlChar *' info='The attribute value'/>
+ </function>
+ <function name='attributeDecl' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>An attribute definition has been parsed DEPRECATED: use xmlSAX2AttributeDecl()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='elem' type='const xmlChar *' info='the name of the element'/>
+ <arg name='fullname' type='const xmlChar *' info='the attribute name'/>
+ <arg name='type' type='int' info='the attribute type'/>
+ <arg name='def' type='int' info='the type of default value'/>
+ <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
+ <arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
+ </function>
+ <functype name='attributeDeclSAXFunc' file='parser' module='parser'>
+ <info>An attribute definition has been parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='elem' type='const xmlChar *' info='the name of the element'/>
+ <arg name='fullname' type='const xmlChar *' info='the attribute name'/>
+ <arg name='type' type='int' info='the attribute type'/>
+ <arg name='def' type='int' info='the type of default value'/>
+ <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
+ <arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
+ </functype>
+ <functype name='attributeSAXFunc' file='parser' module='parser'>
+ <info>Handle an attribute that has been read by the parser. The default handling is to convert the attribute into an DOM subtree and past it in a new xmlAttr element added to the element.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The attribute name, including namespace prefix'/>
+ <arg name='value' type='const xmlChar *' info='The attribute value'/>
+ </functype>
+ <function name='cdataBlock' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>called when a pcdata block has been parsed DEPRECATED: use xmlSAX2CDataBlock()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='value' type='const xmlChar *' info='The pcdata content'/>
+ <arg name='len' type='int' info='the block length'/>
+ </function>
+ <functype name='cdataBlockSAXFunc' file='parser' module='parser'>
+ <info>Called when a pcdata block has been parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='value' type='const xmlChar *' info='The pcdata content'/>
+ <arg name='len' type='int' info='the block length'/>
+ </functype>
+ <function name='characters' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>receiving some chars from the parser. DEPRECATED: use xmlSAX2Characters()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
+ <arg name='len' type='int' info='the number of xmlChar'/>
+ </function>
+ <functype name='charactersSAXFunc' file='parser' module='parser'>
+ <info>Receiving some chars from the parser.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
+ <arg name='len' type='int' info='the number of xmlChar'/>
+ </functype>
+ <function name='checkNamespace' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Check that the current element namespace is the same as the one read upon parsing. DEPRECATED</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='namespace' type='xmlChar *' info='the namespace to check against'/>
+ </function>
+ <function name='comment' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>A comment has been parsed. DEPRECATED: use xmlSAX2Comment()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='value' type='const xmlChar *' info='the comment content'/>
+ </function>
+ <functype name='commentSAXFunc' file='parser' module='parser'>
+ <info>A comment has been parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='value' type='const xmlChar *' info='the comment content'/>
+ </functype>
+ <function name='docbCreateFileParserCtxt' file='DOCBparser' module='DOCBparser'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
+ <return type='docbParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ <arg name='encoding' type='const char *' info='the SGML document encoding, or NULL'/>
+ </function>
+ <function name='docbCreatePushParserCtxt' file='DOCBparser' module='DOCBparser'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>Create a parser context for using the DocBook SGML parser in push mode To allow content encoding detection, @size should be &gt;= 4 The value of @filename is used for fetching external entities and error/warning reports.</info>
+ <return type='docbParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='sax' type='docbSAXHandlerPtr' info='a SAX handler'/>
+ <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
+ <arg name='chunk' type='const char *' info='a pointer to an array of chars'/>
+ <arg name='size' type='int' info='number of chars in the array'/>
+ <arg name='filename' type='const char *' info='an optional file name or URI'/>
+ <arg name='enc' type='xmlCharEncoding' info='an optional encoding'/>
+ </function>
+ <function name='docbDefaultSAXHandlerInit' file='SAX2' module='SAX2'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>Initialize the default SAX handler</info>
+ <return type='void'/>
+ </function>
+ <function name='docbEncodeEntities' file='DOCBparser' module='DOCBparser'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus SGML entities block of chars out.</info>
+ <return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
+ <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
+ <arg name='outlen' type='int *' info='the length of @out'/>
+ <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
+ <arg name='inlen' type='int *' info='the length of @in'/>
+ <arg name='quoteChar' type='int' info='the quote character to escape (&apos; or &quot;) or zero.'/>
+ </function>
+ <function name='docbFreeParserCtxt' file='DOCBparser' module='DOCBparser'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='docbParserCtxtPtr' info='an SGML parser context'/>
+ </function>
+ <function name='docbParseChunk' file='DOCBparser' module='DOCBparser'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>Parse a Chunk of memory</info>
+ <return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
+ <arg name='ctxt' type='docbParserCtxtPtr' info='an XML parser context'/>
+ <arg name='chunk' type='const char *' info='an char array'/>
+ <arg name='size' type='int' info='the size in byte of the chunk'/>
+ <arg name='terminate' type='int' info='last chunk indicator'/>
+ </function>
+ <function name='docbParseDoc' file='DOCBparser' module='DOCBparser'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>parse an SGML in-memory document and build a tree.</info>
+ <return type='docbDocPtr' info='the resulting document tree'/>
+ <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
+ <arg name='encoding' type='const char *' info='a free form C string describing the SGML document encoding, or NULL'/>
+ </function>
+ <function name='docbParseDocument' file='DOCBparser' module='DOCBparser'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>parse an SGML document (and build a tree if using the standard SAX interface).</info>
+ <return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
+ <arg name='ctxt' type='docbParserCtxtPtr' info='an SGML parser context'/>
+ </function>
+ <function name='docbParseFile' file='DOCBparser' module='DOCBparser'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>parse a Docbook SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
+ <return type='docbDocPtr' info='the resulting document tree'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ <arg name='encoding' type='const char *' info='a free form C string describing document encoding, or NULL'/>
+ </function>
+ <function name='docbSAXParseDoc' file='DOCBparser' module='DOCBparser'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>parse an SGML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
+ <return type='docbDocPtr' info='the resulting document tree'/>
+ <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
+ <arg name='encoding' type='const char *' info='a free form C string describing the SGML document encoding, or NULL'/>
+ <arg name='sax' type='docbSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
+ </function>
+ <function name='docbSAXParseFile' file='DOCBparser' module='DOCBparser'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>parse an SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
+ <return type='docbDocPtr' info='the resulting document tree'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ <arg name='encoding' type='const char *' info='a free form C string describing the SGML document encoding, or NULL'/>
+ <arg name='sax' type='docbSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
+ </function>
+ <function name='elementDecl' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>An element definition has been parsed DEPRECATED: use xmlSAX2ElementDecl()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the element name'/>
+ <arg name='type' type='int' info='the element type'/>
+ <arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
+ </function>
+ <functype name='elementDeclSAXFunc' file='parser' module='parser'>
+ <info>An element definition has been parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the element name'/>
+ <arg name='type' type='int' info='the element type'/>
+ <arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
+ </functype>
+ <function name='endDocument' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>called when the document end has been detected. DEPRECATED: use xmlSAX2EndDocument()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <functype name='endDocumentSAXFunc' file='parser' module='parser'>
+ <info>Called when the document end has been detected.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </functype>
+ <function name='endElement' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>called when the end of an element has been detected. DEPRECATED: use xmlSAX2EndElement()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The element name'/>
+ </function>
+ <functype name='endElementNsSAX2Func' file='parser' module='parser'>
+ <info>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='localname' type='const xmlChar *' info='the local name of the element'/>
+ <arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
+ <arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
+ </functype>
+ <functype name='endElementSAXFunc' file='parser' module='parser'>
+ <info>Called when the end of an element has been detected.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The element name'/>
+ </functype>
+ <function name='entityDecl' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>An entity definition has been parsed DEPRECATED: use xmlSAX2EntityDecl()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ <arg name='type' type='int' info='the entity type'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ <arg name='content' type='xmlChar *' info='the entity value (without processing).'/>
+ </function>
+ <functype name='entityDeclSAXFunc' file='parser' module='parser'>
+ <info>An entity definition has been parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ <arg name='type' type='int' info='the entity type'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ <arg name='content' type='xmlChar *' info='the entity value (without processing).'/>
+ </functype>
+ <functype name='errorSAXFunc' file='parser' module='parser'>
+ <info>Display and format an error messages, callback.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='an XML parser context'/>
+ <arg name='msg' type='const char *' info='the message to display/transmit'/>
+ <arg name='...' type='...' info='extra parameters for the message display'/>
+ </functype>
+ <function name='externalSubset' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Callback on external subset declaration. DEPRECATED: use xmlSAX2ExternalSubset()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the root element name'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
+ <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
+ </function>
+ <functype name='externalSubsetSAXFunc' file='parser' module='parser'>
+ <info>Callback on external subset declaration.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the root element name'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
+ <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
+ </functype>
+ <functype name='fatalErrorSAXFunc' file='parser' module='parser'>
+ <info>Display and format fatal error messages, callback. Note: so far fatalError() SAX callbacks are not used, error() get all the callbacks for errors.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='an XML parser context'/>
+ <arg name='msg' type='const char *' info='the message to display/transmit'/>
+ <arg name='...' type='...' info='extra parameters for the message display'/>
+ </functype>
+ <functype name='ftpDataCallback' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>A callback for the xmlNanoFTPGet command.</info>
+ <return type='void'/>
+ <arg name='userData' type='void *' info='the user provided context'/>
+ <arg name='data' type='const char *' info='the data received'/>
+ <arg name='len' type='int' info='its size in bytes'/>
+ </functype>
+ <functype name='ftpListCallback' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>A callback for the xmlNanoFTPList command. Note that only one of year and day:minute are specified.</info>
+ <return type='void'/>
+ <arg name='userData' type='void *' info='user provided data for the callback'/>
+ <arg name='filename' type='const char *' info='the file name (including &quot;-&gt;&quot; when links are shown)'/>
+ <arg name='attrib' type='const char *' info='the attribute string'/>
+ <arg name='owner' type='const char *' info='the owner string'/>
+ <arg name='group' type='const char *' info='the group string'/>
+ <arg name='size' type='unsigned long' info='the file size'/>
+ <arg name='links' type='int' info='the link count'/>
+ <arg name='year' type='int' info='the year'/>
+ <arg name='month' type='const char *' info='the month'/>
+ <arg name='day' type='int' info='the day'/>
+ <arg name='hour' type='int' info='the hour'/>
+ <arg name='minute' type='int' info='the minute'/>
+ </functype>
+ <function name='getColumnNumber' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Provide the column number of the current parsing point. DEPRECATED: use xmlSAX2GetColumnNumber()</info>
+ <return type='int' info='an int'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='getEntity' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Get an entity by name DEPRECATED: use xmlSAX2GetEntity()</info>
+ <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The entity name'/>
+ </function>
+ <functype name='getEntitySAXFunc' file='parser' module='parser'>
+ <info>Get an entity by name.</info>
+ <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The entity name'/>
+ </functype>
+ <function name='getLineNumber' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Provide the line number of the current parsing point. DEPRECATED: use xmlSAX2GetLineNumber()</info>
+ <return type='int' info='an int'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='getNamespace' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Get the current element namespace. DEPRECATED</info>
+ <return type='xmlNsPtr' info='the xmlNsPtr or NULL if none'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='getParameterEntity' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Get a parameter entity by name DEPRECATED: use xmlSAX2GetParameterEntity()</info>
+ <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The entity name'/>
+ </function>
+ <functype name='getParameterEntitySAXFunc' file='parser' module='parser'>
+ <info>Get a parameter entity by name.</info>
+ <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The entity name'/>
+ </functype>
+ <function name='getPublicId' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Provides the public ID e.g. &quot;-//SGMLSOURCE//DTD DEMO//EN&quot; DEPRECATED: use xmlSAX2GetPublicId()</info>
+ <return type='const xmlChar *' info='a xmlChar *'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='getSystemId' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd DEPRECATED: use xmlSAX2GetSystemId()</info>
+ <return type='const xmlChar *' info='a xmlChar *'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='globalNamespace' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>An old global namespace has been parsed. DEPRECATED</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='href' type='const xmlChar *' info='the namespace associated URN'/>
+ <arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
+ </function>
+ <function name='hasExternalSubset' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Does this document has an external subset DEPRECATED: use xmlSAX2HasExternalSubset()</info>
+ <return type='int' info='1 if true'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <functype name='hasExternalSubsetSAXFunc' file='parser' module='parser'>
+ <info>Does this document has an external subset?</info>
+ <return type='int' info='1 if true'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </functype>
+ <function name='hasInternalSubset' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Does this document has an internal subset DEPRECATED: use xmlSAX2HasInternalSubset()</info>
+ <return type='int' info='1 if true'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <functype name='hasInternalSubsetSAXFunc' file='parser' module='parser'>
+ <info>Does this document has an internal subset.</info>
+ <return type='int' info='1 if true'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </functype>
+ <function name='htmlAttrAllowed' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Checks whether an attribute is valid for an element Has full knowledge of Required and Deprecated attributes</info>
+ <return type='htmlStatus' info='one of HTML_REQUIRED, HTML_VALID, HTML_DEPRECATED, HTML_INVALID'/>
+ <arg name='elt' type='const htmlElemDesc *' info='HTML element'/>
+ <arg name='attr' type='const xmlChar *' info='HTML attribute'/>
+ <arg name='legacy' type='int' info='whether to allow deprecated attributes'/>
+ </function>
+ <function name='htmlAutoCloseTag' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if the element or one of it&apos;s children would autoclose the given tag.</info>
+ <return type='int' info='1 if autoclose, 0 otherwise'/>
+ <arg name='doc' type='htmlDocPtr' info='the HTML document'/>
+ <arg name='name' type='const xmlChar *' info='The tag name'/>
+ <arg name='elem' type='htmlNodePtr' info='the HTML element'/>
+ </function>
+ <function name='htmlCreateFileParserCtxt' file='parserInternals' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
+ <return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
+ </function>
+ <function name='htmlCreateMemoryParserCtxt' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Create a parser context for an HTML in-memory document.</info>
+ <return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ </function>
+ <function name='htmlCreatePushParserCtxt' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_PUSH_ENABLED)</cond>
+ <info>Create a parser context for using the HTML parser in push mode The value of @filename is used for fetching external entities and error/warning reports.</info>
+ <return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='sax' type='htmlSAXHandlerPtr' info='a SAX handler'/>
+ <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
+ <arg name='chunk' type='const char *' info='a pointer to an array of chars'/>
+ <arg name='size' type='int' info='number of chars in the array'/>
+ <arg name='filename' type='const char *' info='an optional file name or URI'/>
+ <arg name='enc' type='xmlCharEncoding' info='an optional encoding'/>
+ </function>
+ <function name='htmlCtxtReadDoc' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlCtxtReadFd' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ <arg name='fd' type='int' info='an open file descriptor'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlCtxtReadFile' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ <arg name='filename' type='const char *' info='a file or URL'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlCtxtReadIO' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an HTML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
+ <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
+ <arg name='ioctx' type='void *' info='an I/O handler'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlCtxtReadMemory' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlCtxtReset' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Reset a parser context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ </function>
+ <function name='htmlCtxtUseOptions' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Applies the options to the parser context</info>
+ <return type='int' info='0 in case of success, the set of unknown or unimplemented options in case of error.'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlDefaultSAXHandlerInit' file='SAX2' module='SAX2'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Initialize the default SAX handler</info>
+ <return type='void'/>
+ </function>
+ <function name='htmlDocContentDumpFormatOutput' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML document.</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='encoding' type='const char *' info='the encoding string'/>
+ <arg name='format' type='int' info='should formatting spaces been added'/>
+ </function>
+ <function name='htmlDocContentDumpOutput' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML document. Formatting return/spaces are added.</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='encoding' type='const char *' info='the encoding string'/>
+ </function>
+ <function name='htmlDocDump' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML document to an open FILE.</info>
+ <return type='int' info='the number of byte written or -1 in case of failure.'/>
+ <arg name='f' type='FILE *' info='the FILE*'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ </function>
+ <function name='htmlDocDumpMemory' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML document in memory and return the xmlChar * and it&apos;s size. It&apos;s up to the caller to free the memory.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
+ <arg name='size' type='int *' info='OUT: the memory length'/>
+ </function>
+ <function name='htmlDocDumpMemoryFormat' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML document in memory and return the xmlChar * and it&apos;s size. It&apos;s up to the caller to free the memory.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
+ <arg name='size' type='int *' info='OUT: the memory length'/>
+ <arg name='format' type='int' info='should formatting spaces been added'/>
+ </function>
+ <function name='htmlElementAllowedHere' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Checks whether an HTML element may be a direct child of a parent element. Note - doesn&apos;t check for deprecated elements</info>
+ <return type='int' info='1 if allowed; 0 otherwise.'/>
+ <arg name='parent' type='const htmlElemDesc *' info='HTML parent element'/>
+ <arg name='elt' type='const xmlChar *' info='HTML element'/>
+ </function>
+ <function name='htmlElementStatusHere' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Checks whether an HTML element may be a direct child of a parent element. and if so whether it is valid or deprecated.</info>
+ <return type='htmlStatus' info='one of HTML_VALID, HTML_DEPRECATED, HTML_INVALID'/>
+ <arg name='parent' type='const htmlElemDesc *' info='HTML parent element'/>
+ <arg name='elt' type='const htmlElemDesc *' info='HTML element'/>
+ </function>
+ <function name='htmlEncodeEntities' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</info>
+ <return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
+ <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
+ <arg name='outlen' type='int *' info='the length of @out'/>
+ <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
+ <arg name='inlen' type='int *' info='the length of @in'/>
+ <arg name='quoteChar' type='int' info='the quote character to escape (&apos; or &quot;) or zero.'/>
+ </function>
+ <function name='htmlEntityLookup' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Lookup the given entity in EntitiesTable TODO: the linear scan is really ugly, an hash table is really needed.</info>
+ <return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, NULL otherwise.'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ </function>
+ <function name='htmlEntityValueLookup' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Lookup the given entity in EntitiesTable TODO: the linear scan is really ugly, an hash table is really needed.</info>
+ <return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, NULL otherwise.'/>
+ <arg name='value' type='unsigned int' info='the entity&apos;s unicode value'/>
+ </function>
+ <function name='htmlFreeParserCtxt' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ </function>
+ <function name='htmlGetMetaEncoding' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Encoding definition lookup in the Meta tags</info>
+ <return type='const xmlChar *' info='the current encoding as flagged in the HTML source'/>
+ <arg name='doc' type='htmlDocPtr' info='the document'/>
+ </function>
+ <function name='htmlHandleOmittedElem' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Set and return the previous value for handling HTML omitted tags.</info>
+ <return type='int' info='the last value for 0 for no handling, 1 for auto insertion.'/>
+ <arg name='val' type='int' info='int 0 or 1'/>
+ </function>
+ <function name='htmlInitAutoClose' file='parserInternals' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Initialize the htmlStartCloseIndex for fast lookup of closing tags names. This is not reentrant. Call xmlInitParser() once before processing in case of use in multithreaded programs.</info>
+ <return type='void'/>
+ </function>
+ <function name='htmlIsAutoClosed' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if a tag is autoclosed by one of it&apos;s child</info>
+ <return type='int' info='1 if autoclosed, 0 otherwise'/>
+ <arg name='doc' type='htmlDocPtr' info='the HTML document'/>
+ <arg name='elem' type='htmlNodePtr' info='the HTML element'/>
+ </function>
+ <function name='htmlIsBooleanAttr' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Determine if a given attribute is a boolean attribute.</info>
+ <return type='int' info='false if the attribute is not boolean, true otherwise.'/>
+ <arg name='name' type='const xmlChar *' info='the name of the attribute to check'/>
+ </function>
+ <function name='htmlIsScriptAttribute' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Check if an attribute is of content type Script</info>
+ <return type='int' info='1 is the attribute is a script 0 otherwise'/>
+ <arg name='name' type='const xmlChar *' info='an attribute name'/>
+ </function>
+ <function name='htmlNewDoc' file='HTMLtree' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Creates a new HTML document</info>
+ <return type='htmlDocPtr' info='a new document'/>
+ <arg name='URI' type='const xmlChar *' info='URI for the dtd, or NULL'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external ID of the DTD, or NULL'/>
+ </function>
+ <function name='htmlNewDocNoDtD' file='HTMLtree' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Creates a new HTML document without a DTD node if @URI and @ExternalID are NULL</info>
+ <return type='htmlDocPtr' info='a new document, do not initialize the DTD if not provided'/>
+ <arg name='URI' type='const xmlChar *' info='URI for the dtd, or NULL'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external ID of the DTD, or NULL'/>
+ </function>
+ <function name='htmlNewParserCtxt' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Allocate and initialize a new parser context.</info>
+ <return type='htmlParserCtxtPtr' info='the htmlParserCtxtPtr or NULL in case of allocation error'/>
+ </function>
+ <function name='htmlNodeDump' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns are added.</info>
+ <return type='int' info='the number of byte written or -1 in case of error'/>
+ <arg name='buf' type='xmlBufferPtr' info='the HTML buffer output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node'/>
+ </function>
+ <function name='htmlNodeDumpFile' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns are added.</info>
+ <return type='void'/>
+ <arg name='out' type='FILE *' info='the FILE pointer'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node'/>
+ </function>
+ <function name='htmlNodeDumpFileFormat' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML node, recursive behaviour,children are printed too. TODO: if encoding == NULL try to save in the doc encoding</info>
+ <return type='int' info='the number of byte written or -1 in case of failure.'/>
+ <arg name='out' type='FILE *' info='the FILE pointer'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node'/>
+ <arg name='encoding' type='const char *' info='the document encoding'/>
+ <arg name='format' type='int' info='should formatting spaces been added'/>
+ </function>
+ <function name='htmlNodeDumpFormatOutput' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML node, recursive behaviour,children are printed too.</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node'/>
+ <arg name='encoding' type='const char *' info='the encoding string'/>
+ <arg name='format' type='int' info='should formatting spaces been added'/>
+ </function>
+ <function name='htmlNodeDumpOutput' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns/spaces are added.</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node'/>
+ <arg name='encoding' type='const char *' info='the encoding string'/>
+ </function>
+ <function name='htmlNodeStatus' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Checks whether the tree node is valid. Experimental (the author only uses the HTML enhancements in a SAX parser)</info>
+ <return type='htmlStatus' info='for Element nodes, a return from htmlElementAllowedHere (if legacy allowed) or htmlElementStatusHere (otherwise). for Attribute nodes, a return from htmlAttrAllowed for other nodes, HTML_NA (no checks performed)'/>
+ <arg name='node' type='const htmlNodePtr' info='an htmlNodePtr in a tree'/>
+ <arg name='legacy' type='int' info='whether to allow deprecated elements (YES is faster here for Element nodes)'/>
+ </function>
+ <function name='htmlParseCharRef' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse Reference declarations [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos;</info>
+ <return type='int' info='the value parsed (as an int)'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ </function>
+ <function name='htmlParseChunk' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_PUSH_ENABLED)</cond>
+ <info>Parse a Chunk of memory</info>
+ <return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ <arg name='chunk' type='const char *' info='an char array'/>
+ <arg name='size' type='int' info='the size in byte of the chunk'/>
+ <arg name='terminate' type='int' info='last chunk indicator'/>
+ </function>
+ <function name='htmlParseDoc' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an HTML in-memory document and build a tree.</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
+ <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
+ </function>
+ <function name='htmlParseDocument' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an HTML document (and build a tree if using the standard SAX interface).</info>
+ <return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ </function>
+ <function name='htmlParseElement' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an HTML element, this is highly recursive this is kept for compatibility with previous code versions [39] element ::= EmptyElemTag | STag content ETag [41] Attribute ::= Name Eq AttValue</info>
+ <return type='void'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ </function>
+ <function name='htmlParseEntityRef' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an HTML ENTITY references [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos;</info>
+ <return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, or NULL otherwise, if non-NULL *str will have to be freed by the caller.'/>
+ <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
+ <arg name='str' type='const xmlChar **' info='location to store the entity name'/>
+ </function>
+ <function name='htmlParseFile' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
+ </function>
+ <function name='htmlReadDoc' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an XML in-memory document and build a tree.</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlReadFd' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an XML from a file descriptor and build a tree.</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='fd' type='int' info='an open file descriptor'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlReadFile' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an XML file from the filesystem or the network.</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='filename' type='const char *' info='a file or URL'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlReadIO' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an HTML document from I/O functions and source and build a tree.</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
+ <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
+ <arg name='ioctx' type='void *' info='an I/O handler'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlReadMemory' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an XML in-memory document and build a tree.</info>
+ <return type='htmlDocPtr' info='the resulting document tree'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
+ </function>
+ <function name='htmlSAXParseDoc' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</info>
+ <return type='htmlDocPtr' info='the resulting document tree unless SAX is NULL or the document is not well formed.'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
+ <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
+ <arg name='sax' type='htmlSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
+ </function>
+ <function name='htmlSAXParseFile' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
+ <return type='htmlDocPtr' info='the resulting document tree unless SAX is NULL or the document is not well formed.'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
+ <arg name='sax' type='htmlSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
+ </function>
+ <function name='htmlSaveFile' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML document to a file. If @filename is &quot;-&quot; the stdout file is used.</info>
+ <return type='int' info='the number of byte written or -1 in case of failure.'/>
+ <arg name='filename' type='const char *' info='the filename (or URL)'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ </function>
+ <function name='htmlSaveFileEnc' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML document to a file using a given encoding and formatting returns/spaces are added.</info>
+ <return type='int' info='the number of byte written or -1 in case of failure.'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding'/>
+ </function>
+ <function name='htmlSaveFileFormat' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an HTML document to a file using a given encoding.</info>
+ <return type='int' info='the number of byte written or -1 in case of failure.'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding'/>
+ <arg name='format' type='int' info='should formatting spaces been added'/>
+ </function>
+ <function name='htmlSetMetaEncoding' file='HTMLtree' module='HTMLtree'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Sets the current encoding in the Meta tags NOTE: this will not change the document content encoding, just the META flag associated.</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='doc' type='htmlDocPtr' info='the document'/>
+ <arg name='encoding' type='const xmlChar *' info='the encoding string'/>
+ </function>
+ <function name='htmlTagLookup' file='HTMLparser' module='HTMLparser'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Lookup the HTML tag in the ElementTable</info>
+ <return type='const htmlElemDesc *' info='the related htmlElemDescPtr or NULL if not found.'/>
+ <arg name='tag' type='const xmlChar *' info='The tag name in lowercase'/>
+ </function>
+ <function name='ignorableWhitespace' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use characters DEPRECATED: use xmlSAX2IgnorableWhitespace()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
+ <arg name='len' type='int' info='the number of xmlChar'/>
+ </function>
+ <functype name='ignorableWhitespaceSAXFunc' file='parser' module='parser'>
+ <info>Receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use characters.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
+ <arg name='len' type='int' info='the number of xmlChar'/>
+ </functype>
+ <function name='initGenericErrorDefaultFunc' file='xmlerror' module='error'>
+ <info>Set or reset (if NULL) the default handler for generic errors to the builtin error function.</info>
+ <return type='void'/>
+ <arg name='handler' type='xmlGenericErrorFunc *' info='the handler'/>
+ </function>
+ <function name='initdocbDefaultSAXHandler' file='SAX' module='SAX'>
+ <cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED) &amp;&amp; defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>Initialize the default DocBook SAX version 1 handler DEPRECATED: use xmlSAX2InitDocbDefaultSAXHandler() for the new SAX2 blocks</info>
+ <return type='void'/>
+ <arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
+ </function>
+ <function name='inithtmlDefaultSAXHandler' file='SAX' module='SAX'>
+ <cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED) &amp;&amp; defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Initialize the default HTML SAX version 1 handler DEPRECATED: use xmlSAX2InitHtmlDefaultSAXHandler() for the new SAX2 blocks</info>
+ <return type='void'/>
+ <arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
+ </function>
+ <function name='initxmlDefaultSAXHandler' file='SAX' module='SAX'>
+ <cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>Initialize the default XML SAX version 1 handler DEPRECATED: use xmlSAX2InitDefaultSAXHandler() for the new SAX2 blocks</info>
+ <return type='void'/>
+ <arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
+ <arg name='warning' type='int' info='flag if non-zero sets the handler warning procedure'/>
+ </function>
+ <function name='inputPop' file='parserInternals' module='parser'>
+ <info>Pops the top parser input from the input stack</info>
+ <return type='xmlParserInputPtr' info='the input just removed'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='inputPush' file='parserInternals' module='parser'>
+ <info>Pushes a new parser input on top of the input stack</info>
+ <return type='int' info='-1 in case of error, the index in the stack otherwise'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='value' type='xmlParserInputPtr' info='the parser input'/>
+ </function>
+ <function name='internalSubset' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Callback on internal subset declaration. DEPRECATED: use xmlSAX2InternalSubset()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the root element name'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
+ <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
+ </function>
+ <functype name='internalSubsetSAXFunc' file='parser' module='parser'>
+ <info>Callback on internal subset declaration.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the root element name'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
+ <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
+ </functype>
+ <function name='isStandalone' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Is this document tagged standalone ? DEPRECATED: use xmlSAX2IsStandalone()</info>
+ <return type='int' info='1 if true'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <functype name='isStandaloneSAXFunc' file='parser' module='parser'>
+ <info>Is this document tagged standalone?</info>
+ <return type='int' info='1 if true'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </functype>
+ <function name='isolat1ToUTF8' file='encoding' module='encoding'>
+ <info>Take a block of ISO Latin 1 chars in and try to convert it to an UTF-8 block of chars out.</info>
+ <return type='int' info='the number of bytes written if success, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
+ <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
+ <arg name='outlen' type='int *' info='the length of @out'/>
+ <arg name='in' type='const unsigned char *' info='a pointer to an array of ISO Latin 1 chars'/>
+ <arg name='inlen' type='int *' info='the length of @in'/>
+ </function>
+ <function name='namePop' file='parserInternals' module='parser'>
+ <info>Pops the top element name from the name stack</info>
+ <return type='const xmlChar *' info='the name just removed'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='namePush' file='parserInternals' module='parser'>
+ <info>Pushes a new element name on top of the name stack</info>
+ <return type='int' info='-1 in case of error, the index in the stack otherwise'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='value' type='const xmlChar *' info='the element name'/>
+ </function>
+ <function name='namespaceDecl' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>A namespace has been parsed. DEPRECATED</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='href' type='const xmlChar *' info='the namespace associated URN'/>
+ <arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
+ </function>
+ <function name='nodePop' file='parserInternals' module='parser'>
+ <info>Pops the top element node from the node stack</info>
+ <return type='xmlNodePtr' info='the node just removed'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='nodePush' file='parserInternals' module='parser'>
+ <info>Pushes a new element node on top of the node stack</info>
+ <return type='int' info='-1 in case of error, the index in the stack otherwise'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='value' type='xmlNodePtr' info='the element node'/>
+ </function>
+ <function name='notationDecl' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>What to do when a notation declaration has been parsed. DEPRECATED: use xmlSAX2NotationDecl()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The name of the notation'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ </function>
+ <functype name='notationDeclSAXFunc' file='parser' module='parser'>
+ <info>What to do when a notation declaration has been parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The name of the notation'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ </functype>
+ <function name='processingInstruction' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>A processing instruction has been parsed. DEPRECATED: use xmlSAX2ProcessingInstruction()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='target' type='const xmlChar *' info='the target name'/>
+ <arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
+ </function>
+ <functype name='processingInstructionSAXFunc' file='parser' module='parser'>
+ <info>A processing instruction has been parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='target' type='const xmlChar *' info='the target name'/>
+ <arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
+ </functype>
+ <function name='reference' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>called when an entity reference is detected. DEPRECATED: use xmlSAX2Reference()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The entity name'/>
+ </function>
+ <functype name='referenceSAXFunc' file='parser' module='parser'>
+ <info>Called when an entity reference is detected.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The entity name'/>
+ </functype>
+ <function name='resolveEntity' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine DEPRECATED: use xmlSAX2ResolveEntity()</info>
+ <return type='xmlParserInputPtr' info='the xmlParserInputPtr if inlined or NULL for DOM behaviour.'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ </function>
+ <functype name='resolveEntitySAXFunc' file='parser' module='parser'>
+ <info>Callback: The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine</info>
+ <return type='xmlParserInputPtr' info='the xmlParserInputPtr if inlined or NULL for DOM behaviour.'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ </functype>
+ <function name='setDocumentLocator' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Receive the document locator at startup, actually xmlDefaultSAXLocator Everything is available on the context, so this is useless in our case. DEPRECATED</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
+ </function>
+ <functype name='setDocumentLocatorSAXFunc' file='parser' module='parser'>
+ <info>Receive the document locator at startup, actually xmlDefaultSAXLocator. Everything is available on the context, so this is useless in our case.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
+ </functype>
+ <function name='setNamespace' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Set the current element namespace. DEPRECATED</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the namespace prefix'/>
+ </function>
+ <function name='startDocument' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>called when the document start being processed. DEPRECATED: use xmlSAX2StartDocument()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <functype name='startDocumentSAXFunc' file='parser' module='parser'>
+ <info>Called when the document start being processed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </functype>
+ <function name='startElement' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>called when an opening tag has been processed. DEPRECATED: use xmlSAX2StartElement()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='fullname' type='const xmlChar *' info='The element name, including namespace prefix'/>
+ <arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
+ </function>
+ <functype name='startElementNsSAX2Func' file='parser' module='parser'>
+ <info>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='localname' type='const xmlChar *' info='the local name of the element'/>
+ <arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
+ <arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
+ <arg name='nb_namespaces' type='int' info='number of namespace definitions on that node'/>
+ <arg name='namespaces' type='const xmlChar **' info='pointer to the array of prefix/URI pairs namespace definitions'/>
+ <arg name='nb_attributes' type='int' info='the number of attributes on that node'/>
+ <arg name='nb_defaulted' type='int' info='the number of defaulted attributes. The defaulted ones are at the end of the array'/>
+ <arg name='attributes' type='const xmlChar **' info='pointer to the array of (localname/prefix/URI/value/end) attribute values.'/>
+ </functype>
+ <functype name='startElementSAXFunc' file='parser' module='parser'>
+ <info>Called when an opening tag has been processed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The element name, including namespace prefix'/>
+ <arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
+ </functype>
+ <function name='unparsedEntityDecl' file='SAX' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>What to do when an unparsed entity declaration is parsed DEPRECATED: use xmlSAX2UnparsedEntityDecl()</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The name of the entity'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ <arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
+ </function>
+ <functype name='unparsedEntityDeclSAXFunc' file='parser' module='parser'>
+ <info>What to do when an unparsed entity declaration is parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The name of the entity'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ <arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
+ </functype>
+ <function name='valuePop' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Pops the top XPath object from the value stack</info>
+ <return type='xmlXPathObjectPtr' info='the XPath object just removed'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath evaluation context'/>
+ </function>
+ <function name='valuePush' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Pushes a new XPath object on top of the value stack. If value is NULL, a memory error is recorded in the parser context.</info>
+ <return type='int' info='the number of items on the value stack, or -1 in case of error.'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath evaluation context'/>
+ <arg name='value' type='xmlXPathObjectPtr' info='the XPath object'/>
+ </function>
+ <functype name='warningSAXFunc' file='parser' module='parser'>
+ <info>Display and format a warning messages, callback.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='an XML parser context'/>
+ <arg name='msg' type='const char *' info='the message to display/transmit'/>
+ <arg name='...' type='...' info='extra parameters for the message display'/>
+ </functype>
+ <functype name='xlinkExtendedLinkFunk' file='xlink' module='xlink'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>This is the prototype for a extended link detection callback.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='user data pointer'/>
+ <arg name='node' type='xmlNodePtr' info='the node carrying the link'/>
+ <arg name='nbLocators' type='int' info='the number of locators detected on the link'/>
+ <arg name='hrefs' type='const xlinkHRef *' info='pointer to the array of locator hrefs'/>
+ <arg name='roles' type='const xlinkRole *' info='pointer to the array of locator roles'/>
+ <arg name='nbArcs' type='int' info='the number of arcs detected on the link'/>
+ <arg name='from' type='const xlinkRole *' info='pointer to the array of source roles found on the arcs'/>
+ <arg name='to' type='const xlinkRole *' info='pointer to the array of target roles found on the arcs'/>
+ <arg name='show' type='xlinkShow *' info='array of values for the show attributes found on the arcs'/>
+ <arg name='actuate' type='xlinkActuate *' info='array of values for the actuate attributes found on the arcs'/>
+ <arg name='nbTitles' type='int' info='the number of titles detected on the link'/>
+ <arg name='titles' type='const xlinkTitle *' info=''/>
+ <arg name='langs' type='const xmlChar **' info='array of xml:lang values for the titles'/>
+ </functype>
+ <functype name='xlinkExtendedLinkSetFunk' file='xlink' module='xlink'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>This is the prototype for a extended link set detection callback.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='user data pointer'/>
+ <arg name='node' type='xmlNodePtr' info='the node carrying the link'/>
+ <arg name='nbLocators' type='int' info='the number of locators detected on the link'/>
+ <arg name='hrefs' type='const xlinkHRef *' info='pointer to the array of locator hrefs'/>
+ <arg name='roles' type='const xlinkRole *' info='pointer to the array of locator roles'/>
+ <arg name='nbTitles' type='int' info='the number of titles detected on the link'/>
+ <arg name='titles' type='const xlinkTitle *' info=''/>
+ <arg name='langs' type='const xmlChar **' info='array of xml:lang values for the titles'/>
+ </functype>
+ <function name='xlinkGetDefaultDetect' file='xlink' module='xlink'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Get the default xlink detection routine</info>
+ <return type='xlinkNodeDetectFunc' info='the current function or NULL;'/>
+ </function>
+ <function name='xlinkGetDefaultHandler' file='xlink' module='xlink'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Get the default xlink handler.</info>
+ <return type='xlinkHandlerPtr' info='the current xlinkHandlerPtr value.'/>
+ </function>
+ <function name='xlinkIsLink' file='xlink' module='xlink'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Check whether the given node carries the attributes needed to be a link element (or is one of the linking elements issued from the (X)HTML DtDs). This routine don&apos;t try to do full checking of the link validity but tries to detect and return the appropriate link type.</info>
+ <return type='xlinkType' info='the xlinkType of the node (XLINK_TYPE_NONE if there is no link detected.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document containing the node'/>
+ <arg name='node' type='xmlNodePtr' info='the node pointer itself'/>
+ </function>
+ <functype name='xlinkNodeDetectFunc' file='xlink' module='xlink'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>This is the prototype for the link detection routine. It calls the default link detection callbacks upon link detection.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='user data pointer'/>
+ <arg name='node' type='xmlNodePtr' info='the node to check'/>
+ </functype>
+ <function name='xlinkSetDefaultDetect' file='xlink' module='xlink'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Set the default xlink detection routine</info>
+ <return type='void'/>
+ <arg name='func' type='xlinkNodeDetectFunc' info='pointer to the new detection routine.'/>
+ </function>
+ <function name='xlinkSetDefaultHandler' file='xlink' module='xlink'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Set the default xlink handlers</info>
+ <return type='void'/>
+ <arg name='handler' type='xlinkHandlerPtr' info='the new value for the xlink handler block'/>
+ </function>
+ <functype name='xlinkSimpleLinkFunk' file='xlink' module='xlink'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>This is the prototype for a simple link detection callback.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='user data pointer'/>
+ <arg name='node' type='xmlNodePtr' info='the node carrying the link'/>
+ <arg name='href' type='const xlinkHRef' info='the target of the link'/>
+ <arg name='role' type='const xlinkRole' info='the role string'/>
+ <arg name='title' type='const xlinkTitle' info='the link title'/>
+ </functype>
+ <function name='xmlACatalogAdd' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Add an entry in the catalog, it may overwrite existing but different entries.</info>
+ <return type='int' info='0 if successful, -1 otherwise'/>
+ <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
+ <arg name='type' type='const xmlChar *' info='the type of record to add to the catalog'/>
+ <arg name='orig' type='const xmlChar *' info='the system, public or prefix to match'/>
+ <arg name='replace' type='const xmlChar *' info='the replacement value for the match'/>
+ </function>
+ <function name='xmlACatalogDump' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump the given catalog to the given file.</info>
+ <return type='void'/>
+ <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
+ <arg name='out' type='FILE *' info='the file.'/>
+ </function>
+ <function name='xmlACatalogRemove' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Remove an entry from the catalog</info>
+ <return type='int' info='the number of entries removed if successful, -1 otherwise'/>
+ <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
+ <arg name='value' type='const xmlChar *' info='the value to remove'/>
+ </function>
+ <function name='xmlACatalogResolve' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Do a complete resolution lookup of an External Identifier</info>
+ <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
+ <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
+ <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
+ <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
+ </function>
+ <function name='xmlACatalogResolvePublic' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Try to lookup the catalog local reference associated to a public ID in that catalog</info>
+ <return type='xmlChar *' info='the local resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
+ <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
+ <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
+ </function>
+ <function name='xmlACatalogResolveSystem' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Try to lookup the catalog resource for a system ID</info>
+ <return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
+ <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
+ <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
+ </function>
+ <function name='xmlACatalogResolveURI' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Do a complete resolution lookup of an URI</info>
+ <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
+ <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
+ <arg name='URI' type='const xmlChar *' info='the URI'/>
+ </function>
+ <function name='xmlAddAttributeDecl' file='valid' module='valid'>
+ <info>Register a new attribute declaration Note that @tree becomes the ownership of the DTD</info>
+ <return type='xmlAttributePtr' info='NULL if not new, otherwise the attribute decl'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='dtd' type='xmlDtdPtr' info='pointer to the DTD'/>
+ <arg name='elem' type='const xmlChar *' info='the element name'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ <arg name='ns' type='const xmlChar *' info='the attribute namespace prefix'/>
+ <arg name='type' type='xmlAttributeType' info='the attribute type'/>
+ <arg name='def' type='xmlAttributeDefault' info='the attribute default type'/>
+ <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
+ <arg name='tree' type='xmlEnumerationPtr' info='if it&apos;s an enumeration, the associated list'/>
+ </function>
+ <function name='xmlAddChild' file='tree' module='tree'>
+ <info>Add a new node to @parent, at the end of the child (or property) list merging adjacent TEXT nodes (in which case @cur is freed) If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
+ <return type='xmlNodePtr' info='the child or NULL in case of error.'/>
+ <arg name='parent' type='xmlNodePtr' info='the parent node'/>
+ <arg name='cur' type='xmlNodePtr' info='the child node'/>
+ </function>
+ <function name='xmlAddChildList' file='tree' module='tree'>
+ <info>Add a list of node at the end of the child list of the parent merging adjacent TEXT nodes (@cur may be freed)</info>
+ <return type='xmlNodePtr' info='the last child or NULL in case of error.'/>
+ <arg name='parent' type='xmlNodePtr' info='the parent node'/>
+ <arg name='cur' type='xmlNodePtr' info='the first node in the list'/>
+ </function>
+ <function name='xmlAddDocEntity' file='entities' module='entities'>
+ <info>Register a new entity for this document.</info>
+ <return type='xmlEntityPtr' info='a pointer to the entity or NULL in case of error'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ <arg name='type' type='int' info='the entity type XML_xxx_yyy_ENTITY'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the entity external ID if available'/>
+ <arg name='SystemID' type='const xmlChar *' info='the entity system ID if available'/>
+ <arg name='content' type='const xmlChar *' info='the entity content'/>
+ </function>
+ <function name='xmlAddDtdEntity' file='entities' module='entities'>
+ <info>Register a new entity for this document DTD external subset.</info>
+ <return type='xmlEntityPtr' info='a pointer to the entity or NULL in case of error'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ <arg name='type' type='int' info='the entity type XML_xxx_yyy_ENTITY'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the entity external ID if available'/>
+ <arg name='SystemID' type='const xmlChar *' info='the entity system ID if available'/>
+ <arg name='content' type='const xmlChar *' info='the entity content'/>
+ </function>
+ <function name='xmlAddElementDecl' file='valid' module='valid'>
+ <info>Register a new element declaration</info>
+ <return type='xmlElementPtr' info='NULL if not, otherwise the entity'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='dtd' type='xmlDtdPtr' info='pointer to the DTD'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ <arg name='type' type='xmlElementTypeVal' info='the element type'/>
+ <arg name='content' type='xmlElementContentPtr' info='the element content tree or NULL'/>
+ </function>
+ <function name='xmlAddEncodingAlias' file='encoding' module='encoding'>
+ <info>Registers an alias @alias for an encoding named @name. Existing alias will be overwritten.</info>
+ <return type='int' info='0 in case of success, -1 in case of error'/>
+ <arg name='name' type='const char *' info='the encoding name as parsed, in UTF-8 format (ASCII actually)'/>
+ <arg name='alias' type='const char *' info='the alias name as parsed, in UTF-8 format (ASCII actually)'/>
+ </function>
+ <function name='xmlAddID' file='valid' module='valid'>
+ <info>Register a new id declaration</info>
+ <return type='xmlIDPtr' info='NULL if not, otherwise the new xmlIDPtr'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
+ <arg name='value' type='const xmlChar *' info='the value name'/>
+ <arg name='attr' type='xmlAttrPtr' info='the attribute holding the ID'/>
+ </function>
+ <function name='xmlAddNextSibling' file='tree' module='tree'>
+ <info>Add a new node @elem as the next sibling of @cur If the new node was already inserted in a document it is first unlinked from its existing context. As a result of text merging @elem may be freed. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
+ <return type='xmlNodePtr' info='the new node or NULL in case of error.'/>
+ <arg name='cur' type='xmlNodePtr' info='the child node'/>
+ <arg name='elem' type='xmlNodePtr' info='the new node'/>
+ </function>
+ <function name='xmlAddNotationDecl' file='valid' module='valid'>
+ <info>Register a new notation declaration</info>
+ <return type='xmlNotationPtr' info='NULL if not, otherwise the entity'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='dtd' type='xmlDtdPtr' info='pointer to the DTD'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ <arg name='PublicID' type='const xmlChar *' info='the public identifier or NULL'/>
+ <arg name='SystemID' type='const xmlChar *' info='the system identifier or NULL'/>
+ </function>
+ <function name='xmlAddPrevSibling' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Add a new node @elem as the previous sibling of @cur merging adjacent TEXT nodes (@elem may be freed) If the new node was already inserted in a document it is first unlinked from its existing context. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
+ <return type='xmlNodePtr' info='the new node or NULL in case of error.'/>
+ <arg name='cur' type='xmlNodePtr' info='the child node'/>
+ <arg name='elem' type='xmlNodePtr' info='the new node'/>
+ </function>
+ <function name='xmlAddRef' file='valid' module='valid'>
+ <info>Register a new ref declaration</info>
+ <return type='xmlRefPtr' info='NULL if not, otherwise the new xmlRefPtr'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
+ <arg name='value' type='const xmlChar *' info='the value name'/>
+ <arg name='attr' type='xmlAttrPtr' info='the attribute holding the Ref'/>
+ </function>
+ <function name='xmlAddSibling' file='tree' module='tree'>
+ <info>Add a new element @elem to the list of siblings of @cur merging adjacent TEXT nodes (@elem may be freed) If the new element was already inserted in a document it is first unlinked from its existing context.</info>
+ <return type='xmlNodePtr' info='the new element or NULL in case of error.'/>
+ <arg name='cur' type='xmlNodePtr' info='the child node'/>
+ <arg name='elem' type='xmlNodePtr' info='the new node'/>
+ </function>
+ <function name='xmlAllocOutputBuffer' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Create a buffered parser output</info>
+ <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
+ <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
+ </function>
+ <function name='xmlAllocParserInputBuffer' file='xmlIO' module='xmlIO'>
+ <info>Create a buffered parser input for progressive parsing</info>
+ <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
+ <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlAttrSerializeTxtContent' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Serialize text attribute values to an xml simple buffer</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='attr' type='xmlAttrPtr' info='the attribute node'/>
+ <arg name='string' type='const xmlChar *' info='the text content'/>
+ </function>
+ <function name='xmlAutomataCompile' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>Compile the automata into a Reg Exp ready for being executed. The automata should be free after this point.</info>
+ <return type='xmlRegexpPtr' info='the compiled regexp or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ </function>
+ <function name='xmlAutomataGetInitState' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>Initial state lookup</info>
+ <return type='xmlAutomataStatePtr' info='the initial state of the automata'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ </function>
+ <function name='xmlAutomataIsDeterminist' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>Checks if an automata is determinist.</info>
+ <return type='int' info='1 if true, 0 if not, and -1 in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ </function>
+ <function name='xmlAutomataNewAllTrans' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds a an ALL transition from the @from state to the target state. That transition is an epsilon transition allowed only when all transitions from the @from node have been activated.</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ <arg name='lax' type='int' info='allow to transition if not all all transitions have been activated'/>
+ </function>
+ <function name='xmlAutomataNewCountTrans' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
+ <arg name='min' type='int' info='the minimum successive occurrences of token'/>
+ <arg name='max' type='int' info='the maximum successive occurrences of token'/>
+ <arg name='data' type='void *' info='data associated to the transition'/>
+ </function>
+ <function name='xmlAutomataNewCountTrans2' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
+ <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
+ <arg name='min' type='int' info='the minimum successive occurrences of token'/>
+ <arg name='max' type='int' info='the maximum successive occurrences of token'/>
+ <arg name='data' type='void *' info='data associated to the transition'/>
+ </function>
+ <function name='xmlAutomataNewCountedTrans' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will increment the counter provided</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ <arg name='counter' type='int' info='the counter associated to that transition'/>
+ </function>
+ <function name='xmlAutomataNewCounter' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>Create a new counter</info>
+ <return type='int' info='the counter number or -1 in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='min' type='int' info='the minimal value on the counter'/>
+ <arg name='max' type='int' info='the maximal value on the counter'/>
+ </function>
+ <function name='xmlAutomataNewCounterTrans' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will be allowed only if the counter is within the right range.</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ <arg name='counter' type='int' info='the counter associated to that transition'/>
+ </function>
+ <function name='xmlAutomataNewEpsilon' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ </function>
+ <function name='xmlAutomataNewNegTrans' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by any value except (@token,@token2) Note that if @token2 is not NULL, then (X, NULL) won&apos;t match to follow # the semantic of XSD ##other</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ <arg name='token' type='const xmlChar *' info='the first input string associated to that transition'/>
+ <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
+ <arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
+ </function>
+ <function name='xmlAutomataNewOnceTrans' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max, moreover that transition can only be crossed once.</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
+ <arg name='min' type='int' info='the minimum successive occurrences of token'/>
+ <arg name='max' type='int' info='the maximum successive occurrences of token'/>
+ <arg name='data' type='void *' info='data associated to the transition'/>
+ </function>
+ <function name='xmlAutomataNewOnceTrans2' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max, moreover that transition can only be crossed once.</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
+ <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
+ <arg name='min' type='int' info='the minimum successive occurrences of token'/>
+ <arg name='max' type='int' info='the maximum successive occurrences of token'/>
+ <arg name='data' type='void *' info='data associated to the transition'/>
+ </function>
+ <function name='xmlAutomataNewState' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>Create a new disconnected state in the automata</info>
+ <return type='xmlAutomataStatePtr' info='the new state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ </function>
+ <function name='xmlAutomataNewTransition' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
+ <arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
+ </function>
+ <function name='xmlAutomataNewTransition2' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</info>
+ <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+ <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+ <arg name='token' type='const xmlChar *' info='the first input string associated to that transition'/>
+ <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
+ <arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
+ </function>
+ <function name='xmlAutomataSetFinalState' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>Makes that state a final state</info>
+ <return type='int' info='0 or -1 in case of error'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ <arg name='state' type='xmlAutomataStatePtr' info='a state in this automata'/>
+ </function>
+ <function name='xmlBoolToText' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Convenient way to turn bool into text</info>
+ <return type='const char *' info='a pointer to either &quot;True&quot; or &quot;False&quot;'/>
+ <arg name='boolval' type='int' info='a bool to turn into text'/>
+ </function>
+ <function name='xmlBufContent' file='tree' module='buf'>
+ <info>Function to extract the content of a buffer</info>
+ <return type='xmlChar *' info='the internal content'/>
+ <arg name='buf' type='const xmlBuf *' info='the buffer'/>
+ </function>
+ <function name='xmlBufEnd' file='tree' module='buf'>
+ <info>Function to extract the end of the content of a buffer</info>
+ <return type='xmlChar *' info='the end of the internal content or NULL in case of error'/>
+ <arg name='buf' type='xmlBufPtr' info='the buffer'/>
+ </function>
+ <function name='xmlBufGetNodeContent' file='tree' module='tree'>
+ <info>Read the value of a node @cur, this can be either the text carried directly by this node if it&apos;s a TEXT node or the aggregate string of the values carried by this node child&apos;s (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buf with this value</info>
+ <return type='int' info='0 in case of success and -1 in case of error.'/>
+ <arg name='buf' type='xmlBufPtr' info='a buffer xmlBufPtr'/>
+ <arg name='cur' type='const xmlNode *' info='the node being read'/>
+ </function>
+ <function name='xmlBufNodeDump' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
+ <return type='size_t' info='the number of bytes written to the buffer, in case of error 0 is returned or @buf stores the error'/>
+ <arg name='buf' type='xmlBufPtr' info='the XML buffer output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node'/>
+ <arg name='level' type='int' info='the imbrication level for indenting'/>
+ <arg name='format' type='int' info='is formatting allowed'/>
+ </function>
+ <function name='xmlBufShrink' file='tree' module='buf'>
+ <info>Remove the beginning of an XML buffer. NOTE that this routine behaviour differs from xmlBufferShrink() as it will return 0 on error instead of -1 due to size_t being used as the return type.</info>
+ <return type='size_t' info='the number of byte removed or 0 in case of failure'/>
+ <arg name='buf' type='xmlBufPtr' info='the buffer to dump'/>
+ <arg name='len' type='size_t' info='the number of xmlChar to remove'/>
+ </function>
+ <function name='xmlBufUse' file='tree' module='buf'>
+ <info>Function to get the length of a buffer</info>
+ <return type='size_t' info='the length of data in the internal content'/>
+ <arg name='buf' type='const xmlBufPtr' info='the buffer'/>
+ </function>
+ <function name='xmlBufferAdd' file='tree' module='tree'>
+ <info>Add a string range to an XML buffer. if len == -1, the length of str is recomputed.</info>
+ <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
+ <arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
+ <arg name='len' type='int' info='the number of #xmlChar to add'/>
+ </function>
+ <function name='xmlBufferAddHead' file='tree' module='tree'>
+ <info>Add a string range to the beginning of an XML buffer. if len == -1, the length of @str is recomputed.</info>
+ <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
+ <arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
+ <arg name='len' type='int' info='the number of #xmlChar to add'/>
+ </function>
+ <function name='xmlBufferCCat' file='tree' module='tree'>
+ <info>Append a zero terminated C string to an XML buffer.</info>
+ <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
+ <arg name='str' type='const char *' info='the C char string'/>
+ </function>
+ <function name='xmlBufferCat' file='tree' module='tree'>
+ <info>Append a zero terminated string to an XML buffer.</info>
+ <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer to add to'/>
+ <arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
+ </function>
+ <function name='xmlBufferContent' file='tree' module='tree'>
+ <info>Function to extract the content of a buffer</info>
+ <return type='const xmlChar *' info='the internal content'/>
+ <arg name='buf' type='const xmlBuffer *' info='the buffer'/>
+ </function>
+ <function name='xmlBufferCreate' file='tree' module='tree'>
+ <info>routine to create an XML buffer.</info>
+ <return type='xmlBufferPtr' info='the new structure.'/>
+ </function>
+ <function name='xmlBufferCreateSize' file='tree' module='tree'>
+ <info>routine to create an XML buffer.</info>
+ <return type='xmlBufferPtr' info='the new structure.'/>
+ <arg name='size' type='size_t' info='initial size of buffer'/>
+ </function>
+ <function name='xmlBufferCreateStatic' file='tree' module='tree'>
+ <info>routine to create an XML buffer from an immutable memory area. The area won&apos;t be modified nor copied, and is expected to be present until the end of the buffer lifetime.</info>
+ <return type='xmlBufferPtr' info='the new structure.'/>
+ <arg name='mem' type='void *' info='the memory area'/>
+ <arg name='size' type='size_t' info='the size in byte'/>
+ </function>
+ <function name='xmlBufferDetach' file='tree' module='tree'>
+ <info>Remove the string contained in a buffer and gie it back to the caller. The buffer is reset to an empty content. This doesn&apos;t work with immutable buffers as they can&apos;t be reset.</info>
+ <return type='xmlChar *' info='the previous string contained by the buffer.'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
+ </function>
+ <function name='xmlBufferDump' file='tree' module='tree'>
+ <info>Dumps an XML buffer to a FILE *.</info>
+ <return type='int' info='the number of #xmlChar written'/>
+ <arg name='file' type='FILE *' info='the file output'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
+ </function>
+ <function name='xmlBufferEmpty' file='tree' module='tree'>
+ <info>empty a buffer.</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
+ </function>
+ <function name='xmlBufferFree' file='tree' module='tree'>
+ <info>Frees an XML buffer. It frees both the content and the structure which encapsulate it.</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer to free'/>
+ </function>
+ <function name='xmlBufferGrow' file='tree' module='tree'>
+ <info>Grow the available space of an XML buffer.</info>
+ <return type='int' info='the new available space or -1 in case of error'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
+ <arg name='len' type='unsigned int' info='the minimum free size to allocate'/>
+ </function>
+ <function name='xmlBufferLength' file='tree' module='tree'>
+ <info>Function to get the length of a buffer</info>
+ <return type='int' info='the length of data in the internal content'/>
+ <arg name='buf' type='const xmlBuffer *' info='the buffer'/>
+ </function>
+ <function name='xmlBufferResize' file='tree' module='tree'>
+ <info>Resize a buffer to accommodate minimum size of @size.</info>
+ <return type='int' info='0 in case of problems, 1 otherwise'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer to resize'/>
+ <arg name='size' type='unsigned int' info='the desired size'/>
+ </function>
+ <function name='xmlBufferSetAllocationScheme' file='tree' module='tree'>
+ <info>Sets the allocation scheme for this buffer</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer to tune'/>
+ <arg name='scheme' type='xmlBufferAllocationScheme' info='allocation scheme to use'/>
+ </function>
+ <function name='xmlBufferShrink' file='tree' module='tree'>
+ <info>Remove the beginning of an XML buffer.</info>
+ <return type='int' info='the number of #xmlChar removed, or -1 in case of failure.'/>
+ <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
+ <arg name='len' type='unsigned int' info='the number of xmlChar to remove'/>
+ </function>
+ <function name='xmlBufferWriteCHAR' file='tree' module='tree'>
+ <info>routine which manages and grows an output buffer. This one adds xmlChars at the end of the buffer.</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer'/>
+ <arg name='string' type='const xmlChar *' info='the string to add'/>
+ </function>
+ <function name='xmlBufferWriteChar' file='tree' module='tree'>
+ <info>routine which manage and grows an output buffer. This one add C chars at the end of the array.</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
+ <arg name='string' type='const char *' info='the string to add'/>
+ </function>
+ <function name='xmlBufferWriteQuotedString' file='tree' module='tree'>
+ <info>routine which manage and grows an output buffer. This one writes a quoted or double quoted #xmlChar string, checking first if it holds quote or double-quotes internally</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
+ <arg name='string' type='const xmlChar *' info='the string to add'/>
+ </function>
+ <function name='xmlBuildQName' file='tree' module='tree'>
+ <info>Builds the QName @prefix:@ncname in @memory if there is enough space and prefix is not NULL nor empty, otherwise allocate a new string. If prefix is NULL or empty it returns ncname.</info>
+ <return type='xmlChar *' info='the new string which must be freed by the caller if different from @memory and @ncname or NULL in case of error'/>
+ <arg name='ncname' type='const xmlChar *' info='the Name'/>
+ <arg name='prefix' type='const xmlChar *' info='the prefix'/>
+ <arg name='memory' type='xmlChar *' info='preallocated memory'/>
+ <arg name='len' type='int' info='preallocated memory length'/>
+ </function>
+ <function name='xmlBuildRelativeURI' file='uri' module='uri'>
+ <info>Expresses the URI of the reference in terms relative to the base. Some examples of this operation include: base = &quot;http://site1.com/docs/book1.html&quot; URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif pic1.gif http://site2.com/docs/pic1.gif http://site2.com/docs/pic1.gif base = &quot;docs/book1.html&quot; URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif http://site1.com/docs/pic1.gif Note: if the URI reference is really weird or complicated, it may be worthwhile to first convert it into a &quot;nice&quot; one by calling xmlBuildURI (using &apos;base&apos;) before calling this routine, since this routine (for reasonable efficiency) assumes URI has already been through some validation.</info>
+ <return type='xmlChar *' info='a new URI string (to be freed by the caller) or NULL in case error.'/>
+ <arg name='URI' type='const xmlChar *' info='the URI reference under consideration'/>
+ <arg name='base' type='const xmlChar *' info='the base value'/>
+ </function>
+ <function name='xmlBuildURI' file='uri' module='uri'>
+ <info>Computes he final URI of the reference done by checking that the given URI is valid, and building the final URI using the base URI. This is processed according to section 5.2 of the RFC 2396 5.2. Resolving Relative References to Absolute Form</info>
+ <return type='xmlChar *' info='a new URI string (to be freed by the caller) or NULL in case of error.'/>
+ <arg name='URI' type='const xmlChar *' info='the URI instance found in the document'/>
+ <arg name='base' type='const xmlChar *' info='the base value'/>
+ </function>
+ <function name='xmlByteConsumed' file='parser' module='encoding'>
+ <info>This function provides the current index of the parser relative to the start of the current entity. This function is computed in bytes from the beginning starting at zero and finishing at the size in byte of the file if parsing a file. The function is of constant cost if the input is UTF-8 but can be costly if run on non-UTF-8 input.</info>
+ <return type='long' info='the index in bytes from the beginning of the entity or -1 in case the index could not be computed.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlC14NDocDumpMemory' file='c14n' module='c14n'>
+ <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dumps the canonized image of given XML document into memory. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
+ <return type='int' info='the number of bytes written on success or a negative value on fail'/>
+ <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
+ <arg name='nodes' type='xmlNodeSetPtr' info='the nodes set to be included in the canonized image or NULL if all document nodes should be included'/>
+ <arg name='mode' type='int' info='the c14n mode (see @xmlC14NMode)'/>
+ <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
+ <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
+ <arg name='doc_txt_ptr' type='xmlChar **' info='the memory pointer for allocated canonical XML text; the caller of this functions is responsible for calling xmlFree() to free allocated memory'/>
+ </function>
+ <function name='xmlC14NDocSave' file='c14n' module='c14n'>
+ <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dumps the canonized image of given XML document into the file. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
+ <return type='int' info='the number of bytes written success or a negative value on fail'/>
+ <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
+ <arg name='nodes' type='xmlNodeSetPtr' info='the nodes set to be included in the canonized image or NULL if all document nodes should be included'/>
+ <arg name='mode' type='int' info='the c14n mode (see @xmlC14NMode)'/>
+ <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
+ <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
+ <arg name='filename' type='const char *' info='the filename to store canonical XML image'/>
+ <arg name='compression' type='int' info='the compression level (zlib required): -1 - libxml default, 0 - uncompressed, &gt;0 - compression level'/>
+ </function>
+ <function name='xmlC14NDocSaveTo' file='c14n' module='c14n'>
+ <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dumps the canonized image of given XML document into the provided buffer. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
+ <return type='int' info='non-negative value on success or a negative value on fail'/>
+ <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
+ <arg name='nodes' type='xmlNodeSetPtr' info='the nodes set to be included in the canonized image or NULL if all document nodes should be included'/>
+ <arg name='mode' type='int' info='the c14n mode (see @xmlC14NMode)'/>
+ <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
+ <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
+ <arg name='buf' type='xmlOutputBufferPtr' info='the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output'/>
+ </function>
+ <function name='xmlC14NExecute' file='c14n' module='c14n'>
+ <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dumps the canonized image of given XML document into the provided buffer. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
+ <return type='int' info='non-negative value on success or a negative value on fail'/>
+ <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
+ <arg name='is_visible_callback' type='xmlC14NIsVisibleCallback' info='the function to use to determine is node visible or not'/>
+ <arg name='user_data' type='void *' info='the first parameter for @is_visible_callback function (in most cases, it is nodes set)'/>
+ <arg name='mode' type='int' info='the c14n mode (see @xmlC14NMode)'/>
+ <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
+ <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
+ <arg name='buf' type='xmlOutputBufferPtr' info='the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output'/>
+ </function>
+ <functype name='xmlC14NIsVisibleCallback' file='c14n' module='c14n'>
+ <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Signature for a C14N callback on visible nodes</info>
+ <return type='int' info='1 if the node should be included'/>
+ <arg name='user_data' type='void *' info='user data'/>
+ <arg name='node' type='xmlNodePtr' info='the current node'/>
+ <arg name='parent' type='xmlNodePtr' info='the parent node'/>
+ </functype>
+ <function name='xmlCanonicPath' file='uri' module='uri'>
+ <info>Constructs a canonic path from the specified path.</info>
+ <return type='xmlChar *' info='a new canonic path, or a duplicate of the path parameter if the construction fails. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.'/>
+ <arg name='path' type='const xmlChar *' info='the resource locator in a filesystem notation'/>
+ </function>
+ <function name='xmlCatalogAdd' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Add an entry in the catalog, it may overwrite existing but different entries. If called before any other catalog routine, allows to override the default shared catalog put in place by xmlInitializeCatalog();</info>
+ <return type='int' info='0 if successful, -1 otherwise'/>
+ <arg name='type' type='const xmlChar *' info='the type of record to add to the catalog'/>
+ <arg name='orig' type='const xmlChar *' info='the system, public or prefix to match'/>
+ <arg name='replace' type='const xmlChar *' info='the replacement value for the match'/>
+ </function>
+ <function name='xmlCatalogAddLocal' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Add the new entry to the catalog list</info>
+ <return type='void *' info='the updated list'/>
+ <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
+ <arg name='URL' type='const xmlChar *' info='the URL to a new local catalog'/>
+ </function>
+ <function name='xmlCatalogCleanup' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Free up all the memory associated with catalogs</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlCatalogConvert' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Convert all the SGML catalog entries as XML ones</info>
+ <return type='int' info='the number of entries converted if successful, -1 otherwise'/>
+ </function>
+ <function name='xmlCatalogDump' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump all the global catalog content to the given file.</info>
+ <return type='void'/>
+ <arg name='out' type='FILE *' info='the file.'/>
+ </function>
+ <function name='xmlCatalogFreeLocal' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Free up the memory associated to the catalog list</info>
+ <return type='void'/>
+ <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
+ </function>
+ <function name='xmlCatalogGetDefaults' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Used to get the user preference w.r.t. to what catalogs should be accepted</info>
+ <return type='xmlCatalogAllow' info='the current xmlCatalogAllow value'/>
+ </function>
+ <function name='xmlCatalogGetPublic' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Try to lookup the catalog reference associated to a public ID DEPRECATED, use xmlCatalogResolvePublic()</info>
+ <return type='const xmlChar *' info='the resource if found or NULL otherwise.'/>
+ <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
+ </function>
+ <function name='xmlCatalogGetSystem' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Try to lookup the catalog reference associated to a system ID DEPRECATED, use xmlCatalogResolveSystem()</info>
+ <return type='const xmlChar *' info='the resource if found or NULL otherwise.'/>
+ <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
+ </function>
+ <function name='xmlCatalogIsEmpty' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Check is a catalog is empty</info>
+ <return type='int' info='1 if the catalog is empty, 0 if not, amd -1 in case of error.'/>
+ <arg name='catal' type='xmlCatalogPtr' info='should this create an SGML catalog'/>
+ </function>
+ <function name='xmlCatalogLocalResolve' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Do a complete resolution lookup of an External Identifier using a document&apos;s private catalog list</info>
+ <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
+ <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
+ <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
+ <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
+ </function>
+ <function name='xmlCatalogLocalResolveURI' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Do a complete resolution lookup of an URI using a document&apos;s private catalog list</info>
+ <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
+ <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
+ <arg name='URI' type='const xmlChar *' info='the URI'/>
+ </function>
+ <function name='xmlCatalogRemove' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Remove an entry from the catalog</info>
+ <return type='int' info='the number of entries removed if successful, -1 otherwise'/>
+ <arg name='value' type='const xmlChar *' info='the value to remove'/>
+ </function>
+ <function name='xmlCatalogResolve' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Do a complete resolution lookup of an External Identifier</info>
+ <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
+ <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
+ <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
+ </function>
+ <function name='xmlCatalogResolvePublic' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Try to lookup the catalog reference associated to a public ID</info>
+ <return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
+ <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
+ </function>
+ <function name='xmlCatalogResolveSystem' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Try to lookup the catalog resource for a system ID</info>
+ <return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
+ <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
+ </function>
+ <function name='xmlCatalogResolveURI' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Do a complete resolution lookup of an URI</info>
+ <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
+ <arg name='URI' type='const xmlChar *' info='the URI'/>
+ </function>
+ <function name='xmlCatalogSetDebug' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Used to set the debug level for catalog operation, 0 disable debugging, 1 enable it</info>
+ <return type='int' info='the previous value of the catalog debugging level'/>
+ <arg name='level' type='int' info='the debug level of catalogs required'/>
+ </function>
+ <function name='xmlCatalogSetDefaultPrefer' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Allows to set the preference between public and system for deletion in XML Catalog resolution. C.f. section 4.1.1 of the spec Values accepted are XML_CATA_PREFER_PUBLIC or XML_CATA_PREFER_SYSTEM</info>
+ <return type='xmlCatalogPrefer' info='the previous value of the default preference for delegation'/>
+ <arg name='prefer' type='xmlCatalogPrefer' info='the default preference for delegation'/>
+ </function>
+ <function name='xmlCatalogSetDefaults' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Used to set the user preference w.r.t. to what catalogs should be accepted</info>
+ <return type='void'/>
+ <arg name='allow' type='xmlCatalogAllow' info='what catalogs should be accepted'/>
+ </function>
+ <function name='xmlCharEncCloseFunc' file='encoding' module='encoding'>
+ <info>Generic front-end for encoding handler close function</info>
+ <return type='int' info='0 if success, or -1 in case of error'/>
+ <arg name='handler' type='xmlCharEncodingHandler *' info='char encoding transformation data structure'/>
+ </function>
+ <function name='xmlCharEncFirstLine' file='encoding' module='encoding'>
+ <info>Front-end for the encoding handler input function, but handle only the very first line, i.e. limit itself to 45 chars.</info>
+ <return type='int' info='the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can&apos;t fit into the encoding we want), or'/>
+ <arg name='handler' type='xmlCharEncodingHandler *' info='char encoding transformation data structure'/>
+ <arg name='out' type='xmlBufferPtr' info='an xmlBuffer for the output.'/>
+ <arg name='in' type='xmlBufferPtr' info='an xmlBuffer for the input'/>
+ </function>
+ <function name='xmlCharEncInFunc' file='encoding' module='encoding'>
+ <info>Generic front-end for the encoding handler input function</info>
+ <return type='int' info='the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can&apos;t fit into the encoding we want), or'/>
+ <arg name='handler' type='xmlCharEncodingHandler *' info='char encoding transformation data structure'/>
+ <arg name='out' type='xmlBufferPtr' info='an xmlBuffer for the output.'/>
+ <arg name='in' type='xmlBufferPtr' info='an xmlBuffer for the input'/>
+ </function>
+ <function name='xmlCharEncOutFunc' file='encoding' module='encoding'>
+ <info>Generic front-end for the encoding handler output function a first call with @in == NULL has to be made firs to initiate the output in case of non-stateless encoding needing to initiate their state or the output (like the BOM in UTF16). In case of UTF8 sequence conversion errors for the given encoder, the content will be automatically remapped to a CharRef sequence.</info>
+ <return type='int' info='the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can&apos;t fit into the encoding we want), or'/>
+ <arg name='handler' type='xmlCharEncodingHandler *' info='char encoding transformation data structure'/>
+ <arg name='out' type='xmlBufferPtr' info='an xmlBuffer for the output.'/>
+ <arg name='in' type='xmlBufferPtr' info='an xmlBuffer for the input'/>
+ </function>
+ <functype name='xmlCharEncodingInputFunc' file='encoding' module='encoding'>
+ <info>Take a block of chars in the original encoding and try to convert it to an UTF-8 block of chars out.</info>
+ <return type='int' info='the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets consumed.'/>
+ <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the UTF-8 result'/>
+ <arg name='outlen' type='int *' info='the length of @out'/>
+ <arg name='in' type='const unsigned char *' info='a pointer to an array of chars in the original encoding'/>
+ <arg name='inlen' type='int *' info='the length of @in'/>
+ </functype>
+ <functype name='xmlCharEncodingOutputFunc' file='encoding' module='encoding'>
+ <info>Take a block of UTF-8 chars in and try to convert it to another encoding. Note: a first call designed to produce heading info is called with in = NULL. If stateful this should also initialize the encoder state.</info>
+ <return type='int' info='the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets produced.'/>
+ <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
+ <arg name='outlen' type='int *' info='the length of @out'/>
+ <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
+ <arg name='inlen' type='int *' info='the length of @in'/>
+ </functype>
+ <function name='xmlCharInRange' file='chvalid' module='chvalid'>
+ <info>Does a binary search of the range table to determine if char is valid</info>
+ <return type='int' info='true if character valid, false otherwise'/>
+ <arg name='val' type='unsigned int' info='character to be validated'/>
+ <arg name='rptr' type='const xmlChRangeGroup *' info='pointer to range to be used to validate'/>
+ </function>
+ <function name='xmlCharStrdup' file='xmlstring' module='xmlstring'>
+ <info>a strdup for char&apos;s to xmlChar&apos;s</info>
+ <return type='xmlChar *' info='a new xmlChar * or NULL'/>
+ <arg name='cur' type='const char *' info='the input char *'/>
+ </function>
+ <function name='xmlCharStrndup' file='xmlstring' module='xmlstring'>
+ <info>a strndup for char&apos;s to xmlChar&apos;s</info>
+ <return type='xmlChar *' info='a new xmlChar * or NULL'/>
+ <arg name='cur' type='const char *' info='the input char *'/>
+ <arg name='len' type='int' info='the len of @cur'/>
+ </function>
+ <function name='xmlCheckFilename' file='xmlIO' module='xmlIO'>
+ <info>function checks to see if @path is a valid source (file, socket...) for XML. if stat is not available on the target machine,</info>
+ <return type='int' info='1. if stat fails, returns 0 (if calling stat on the filename fails, it can&apos;t be right). if stat succeeds and the file is a directory, returns 2. otherwise returns 1.'/>
+ <arg name='path' type='const char *' info='the path to check'/>
+ </function>
+ <function name='xmlCheckHTTPInput' file='xmlIO' module='xmlIO'>
+ <info>Check an input in case it was created from an HTTP stream, in that case it will handle encoding and update of the base URL in case of redirection. It also checks for HTTP errors in which case the input is cleanly freed up and an appropriate error is raised in context</info>
+ <return type='xmlParserInputPtr' info='the input or NULL in case of HTTP error.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='ret' type='xmlParserInputPtr' info='an XML parser input'/>
+ </function>
+ <function name='xmlCheckLanguageID' file='parserInternals' module='parser'>
+ <info>Checks that the value conforms to the LanguageID production: NOTE: this is somewhat deprecated, those productions were removed from the XML Second edition. [33] LanguageID ::= Langcode (&apos;-&apos; Subcode)* [34] Langcode ::= ISO639Code | IanaCode | UserCode [35] ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= (&apos;i&apos; | &apos;I&apos;) &apos;-&apos; ([a-z] | [A-Z])+ [37] UserCode ::= (&apos;x&apos; | &apos;X&apos;) &apos;-&apos; ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+ The current REC reference the successors of RFC 1766, currently 5646 http://www.rfc-editor.org/rfc/rfc5646.txt langtag = language [&quot;-&quot; script] [&quot;-&quot; region] *(&quot;-&quot; variant) *(&quot;-&quot; extension) [&quot;-&quot; privateuse] language = 2*3ALPHA ; shortest ISO 639 code [&quot;-&quot; extlang] ; sometimes followed by ; extended language subtags / 4ALPHA ; or reserved for future use / 5*8ALPHA ; or registered language subtag extlang = 3ALPHA ; selected ISO 639 codes *2(&quot;-&quot; 3ALPHA) ; permanently reserved script = 4ALPHA ; ISO 15924 code region = 2ALPHA ; ISO 3166-1 code / 3DIGIT ; UN M.49 code variant = 5*8alphanum ; registered variants / (DIGIT 3alphanum) extension = singleton 1*(&quot;-&quot; (2*8alphanum)) ; Single alphanumerics ; &quot;x&quot; reserved for private use singleton = DIGIT ; 0 - 9 / %x41-57 ; A - W / %x59-5A ; Y - Z / %x61-77 ; a - w / %x79-7A ; y - z it sounds right to still allow Irregular i-xxx IANA and user codes too The parser below doesn&apos;t try to cope with extension or privateuse that could be added but that&apos;s not interoperable anyway</info>
+ <return type='int' info='1 if correct 0 otherwise'/>
+ <arg name='lang' type='const xmlChar *' info='pointer to the string value'/>
+ </function>
+ <function name='xmlCheckUTF8' file='xmlstring' module='xmlstring'>
+ <info>Checks @utf for being valid UTF-8. @utf is assumed to be null-terminated. This function is not super-strict, as it will allow longer UTF-8 sequences than necessary. Note that Java is capable of producing these sequences if provoked. Also note, this routine checks for the 4-byte maximum size, but does not check for 0x10ffff maximum value.</info>
+ <return type='int' info='value: true if @utf is valid.'/>
+ <arg name='utf' type='const unsigned char *' info='Pointer to putative UTF-8 encoded string.'/>
+ </function>
+ <function name='xmlCheckVersion' file='xmlversion' module='parserInternals'>
+ <info>check the compiled lib version against the include one. This can warn or immediately kill the application</info>
+ <return type='void'/>
+ <arg name='version' type='int' info='the include version number'/>
+ </function>
+ <function name='xmlChildElementCount' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Finds the current number of child nodes of that element which are element nodes. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don&apos;t have back reference from entities content to entities references.</info>
+ <return type='unsigned long' info='the count of element child or 0 if not available'/>
+ <arg name='parent' type='xmlNodePtr' info='the parent node'/>
+ </function>
+ <function name='xmlCleanupCharEncodingHandlers' file='encoding' module='encoding'>
+ <info>Cleanup the memory allocated for the char encoding support, it unregisters all the encoding handlers and the aliases.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlCleanupEncodingAliases' file='encoding' module='encoding'>
+ <info>Unregisters all aliases</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlCleanupGlobals' file='globals' module='globals'>
+ <info>Additional cleanup for multi-threading</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlCleanupInputCallbacks' file='xmlIO' module='xmlIO'>
+ <info>clears the entire input callback table. this includes the compiled-in I/O.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlCleanupMemory' file='xmlmemory' module='xmlmemory'>
+ <info>Free up all the memory allocated by the library for its own use. This should not be called by user level code.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlCleanupOutputCallbacks' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>clears the entire output callback table. this includes the compiled-in I/O callbacks.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlCleanupParser' file='parser' module='parser'>
+ <info>This function name is somewhat misleading. It does not clean up parser state, it cleans up memory allocated by the library itself. It is a cleanup function for the XML library. It tries to reclaim all related global memory allocated for the library processing. It doesn&apos;t deallocate any document related memory. One should call xmlCleanupParser() only when the process has finished using the library and all XML/HTML documents built with it. See also xmlInitParser() which has the opposite function of preparing the library for operations. WARNING: if your application is multithreaded or has plugin support calling this may crash the application if another thread or a plugin is still using libxml2. It&apos;s sometimes very hard to guess if libxml2 is in use in the application, some libraries or plugins may use it without notice. In case of doubt abstain from calling this function or do it just before calling exit() to avoid leak reports from valgrind !</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlCleanupPredefinedEntities' file='entities' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Cleanup up the predefined entities table. Deprecated call</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlCleanupThreads' file='threads' module='threads'>
+ <info>xmlCleanupThreads() is used to to cleanup all the thread related data of the libxml2 library once processing has ended. WARNING: if your application is multithreaded or has plugin support calling this may crash the application if another thread or a plugin is still using libxml2. It&apos;s sometimes very hard to guess if libxml2 is in use in the application, some libraries or plugins may use it without notice. In case of doubt abstain from calling this function or do it just before calling exit() to avoid leak reports from valgrind !</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlClearNodeInfoSeq' file='parser' module='parserInternals'>
+ <info>-- Clear (release memory and reinitialize) node info sequence</info>
+ <return type='void'/>
+ <arg name='seq' type='xmlParserNodeInfoSeqPtr' info='a node info sequence pointer'/>
+ </function>
+ <function name='xmlClearParserCtxt' file='parser' module='parserInternals'>
+ <info>Clear (release owned resources) and reinitialize a parser context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlConvertSGMLCatalog' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Convert all the SGML catalog entries as XML ones</info>
+ <return type='int' info='the number of entries converted if successful, -1 otherwise'/>
+ <arg name='catal' type='xmlCatalogPtr' info='the catalog'/>
+ </function>
+ <function name='xmlCopyAttributeTable' file='valid' module='valid'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Build a copy of an attribute table.</info>
+ <return type='xmlAttributeTablePtr' info='the new xmlAttributeTablePtr or NULL in case of error.'/>
+ <arg name='table' type='xmlAttributeTablePtr' info='An attribute table'/>
+ </function>
+ <function name='xmlCopyChar' file='parserInternals' module='parserInternals'>
+ <info>append the char value in the array</info>
+ <return type='int' info='the number of xmlChar written'/>
+ <arg name='len' type='int' info='Ignored, compatibility'/>
+ <arg name='out' type='xmlChar *' info='pointer to an array of xmlChar'/>
+ <arg name='val' type='int' info='the char value'/>
+ </function>
+ <function name='xmlCopyCharMultiByte' file='parserInternals' module='parserInternals'>
+ <info>append the char value in the array</info>
+ <return type='int' info='the number of xmlChar written'/>
+ <arg name='out' type='xmlChar *' info='pointer to an array of xmlChar'/>
+ <arg name='val' type='int' info='the char value'/>
+ </function>
+ <function name='xmlCopyDoc' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Do a copy of the document info. If recursive, the content tree will be copied too as well as DTD, namespaces and entities.</info>
+ <return type='xmlDocPtr' info='a new #xmlDocPtr, or NULL in case of error.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='recursive' type='int' info='if not zero do a recursive copy.'/>
+ </function>
+ <function name='xmlCopyDocElementContent' file='valid' module='valid'>
+ <info>Build a copy of an element content description.</info>
+ <return type='xmlElementContentPtr' info='the new xmlElementContentPtr or NULL in case of error.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document owning the element declaration'/>
+ <arg name='cur' type='xmlElementContentPtr' info='An element content pointer.'/>
+ </function>
+ <function name='xmlCopyDtd' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Do a copy of the dtd.</info>
+ <return type='xmlDtdPtr' info='a new #xmlDtdPtr, or NULL in case of error.'/>
+ <arg name='dtd' type='xmlDtdPtr' info='the dtd'/>
+ </function>
+ <function name='xmlCopyElementContent' file='valid' module='valid'>
+ <info>Build a copy of an element content description. Deprecated, use xmlCopyDocElementContent instead</info>
+ <return type='xmlElementContentPtr' info='the new xmlElementContentPtr or NULL in case of error.'/>
+ <arg name='cur' type='xmlElementContentPtr' info='An element content pointer.'/>
+ </function>
+ <function name='xmlCopyElementTable' file='valid' module='valid'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Build a copy of an element table.</info>
+ <return type='xmlElementTablePtr' info='the new xmlElementTablePtr or NULL in case of error.'/>
+ <arg name='table' type='xmlElementTablePtr' info='An element table'/>
+ </function>
+ <function name='xmlCopyEntitiesTable' file='entities' module='entities'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Build a copy of an entity table.</info>
+ <return type='xmlEntitiesTablePtr' info='the new xmlEntitiesTablePtr or NULL in case of error.'/>
+ <arg name='table' type='xmlEntitiesTablePtr' info='An entity table'/>
+ </function>
+ <function name='xmlCopyEnumeration' file='valid' module='valid'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Copy an enumeration attribute node (recursive).</info>
+ <return type='xmlEnumerationPtr' info='the xmlEnumerationPtr just created or NULL in case of error.'/>
+ <arg name='cur' type='xmlEnumerationPtr' info='the tree to copy.'/>
+ </function>
+ <function name='xmlCopyError' file='xmlerror' module='error'>
+ <info>Save the original error to the new place.</info>
+ <return type='int' info='0 in case of success and -1 in case of error.'/>
+ <arg name='from' type='xmlErrorPtr' info='a source error'/>
+ <arg name='to' type='xmlErrorPtr' info='a target error'/>
+ </function>
+ <function name='xmlCopyNamespace' file='tree' module='tree'>
+ <info>Do a copy of the namespace.</info>
+ <return type='xmlNsPtr' info='a new #xmlNsPtr, or NULL in case of error.'/>
+ <arg name='cur' type='xmlNsPtr' info='the namespace'/>
+ </function>
+ <function name='xmlCopyNamespaceList' file='tree' module='tree'>
+ <info>Do a copy of an namespace list.</info>
+ <return type='xmlNsPtr' info='a new #xmlNsPtr, or NULL in case of error.'/>
+ <arg name='cur' type='xmlNsPtr' info='the first namespace'/>
+ </function>
+ <function name='xmlCopyNode' file='tree' module='tree'>
+ <info>Do a copy of the node.</info>
+ <return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
+ <arg name='node' type='xmlNodePtr' info='the node'/>
+ <arg name='extended' type='int' info='if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)'/>
+ </function>
+ <function name='xmlCopyNodeList' file='tree' module='tree'>
+ <info>Do a recursive copy of the node list. Use xmlDocCopyNodeList() if possible to ensure string interning.</info>
+ <return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
+ <arg name='node' type='xmlNodePtr' info='the first node in the list.'/>
+ </function>
+ <function name='xmlCopyNotationTable' file='valid' module='valid'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Build a copy of a notation table.</info>
+ <return type='xmlNotationTablePtr' info='the new xmlNotationTablePtr or NULL in case of error.'/>
+ <arg name='table' type='xmlNotationTablePtr' info='A notation table'/>
+ </function>
+ <function name='xmlCopyProp' file='tree' module='tree'>
+ <info>Do a copy of the attribute.</info>
+ <return type='xmlAttrPtr' info='a new #xmlAttrPtr, or NULL in case of error.'/>
+ <arg name='target' type='xmlNodePtr' info='the element where the attribute will be grafted'/>
+ <arg name='cur' type='xmlAttrPtr' info='the attribute'/>
+ </function>
+ <function name='xmlCopyPropList' file='tree' module='tree'>
+ <info>Do a copy of an attribute list.</info>
+ <return type='xmlAttrPtr' info='a new #xmlAttrPtr, or NULL in case of error.'/>
+ <arg name='target' type='xmlNodePtr' info='the element where the attributes will be grafted'/>
+ <arg name='cur' type='xmlAttrPtr' info='the first attribute'/>
+ </function>
+ <function name='xmlCreateDocParserCtxt' file='parser' module='parser'>
+ <info>Creates a parser context for an XML in-memory document.</info>
+ <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
+ </function>
+ <function name='xmlCreateEntitiesTable' file='entities' module='entities'>
+ <info>create and initialize an empty entities hash table. This really doesn&apos;t make sense and should be deprecated</info>
+ <return type='xmlEntitiesTablePtr' info='the xmlEntitiesTablePtr just created or NULL in case of error.'/>
+ </function>
+ <function name='xmlCreateEntityParserCtxt' file='parserInternals' module='parser'>
+ <info>Create a parser context for an external entity Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
+ <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='URL' type='const xmlChar *' info='the entity URL'/>
+ <arg name='ID' type='const xmlChar *' info='the entity PUBLIC ID'/>
+ <arg name='base' type='const xmlChar *' info='a possible base for the target URI'/>
+ </function>
+ <function name='xmlCreateEnumeration' file='valid' module='valid'>
+ <info>create and initialize an enumeration attribute node.</info>
+ <return type='xmlEnumerationPtr' info='the xmlEnumerationPtr just created or NULL in case of error.'/>
+ <arg name='name' type='const xmlChar *' info='the enumeration name or NULL'/>
+ </function>
+ <function name='xmlCreateFileParserCtxt' file='parserInternals' module='parser'>
+ <info>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
+ <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ </function>
+ <function name='xmlCreateIOParserCtxt' file='parser' module='parser'>
+ <info>Create a parser context for using the XML parser with an existing I/O stream</info>
+ <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler'/>
+ <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
+ <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
+ <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
+ <arg name='ioctx' type='void *' info='an I/O handler'/>
+ <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlCreateIntSubset' file='tree' module='tree'>
+ <info>Create the internal subset of a document</info>
+ <return type='xmlDtdPtr' info='a pointer to the new DTD structure'/>
+ <arg name='doc' type='xmlDocPtr' info='the document pointer'/>
+ <arg name='name' type='const xmlChar *' info='the DTD name'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external (PUBLIC) ID'/>
+ <arg name='SystemID' type='const xmlChar *' info='the system ID'/>
+ </function>
+ <function name='xmlCreateMemoryParserCtxt' file='parserInternals' module='parser'>
+ <info>Create a parser context for an XML in-memory document.</info>
+ <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ </function>
+ <function name='xmlCreatePushParserCtxt' file='parser' module='parser'>
+ <cond>defined(LIBXML_PUSH_ENABLED)</cond>
+ <info>Create a parser context for using the XML parser in push mode. If @buffer and @size are non-NULL, the data is used to detect the encoding. The remaining characters will be parsed so they don&apos;t need to be fed in again through xmlParseChunk. To allow content encoding detection, @size should be &gt;= 4 The value of @filename is used for fetching external entities and error/warning reports.</info>
+ <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler'/>
+ <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
+ <arg name='chunk' type='const char *' info='a pointer to an array of chars'/>
+ <arg name='size' type='int' info='number of chars in the array'/>
+ <arg name='filename' type='const char *' info='an optional file name or URI'/>
+ </function>
+ <function name='xmlCreateURI' file='uri' module='uri'>
+ <info>Simply creates an empty xmlURI</info>
+ <return type='xmlURIPtr' info='the new structure or NULL in case of error'/>
+ </function>
+ <function name='xmlCreateURLParserCtxt' file='parserInternals' module='parser'>
+ <info>Create a parser context for a file or URL content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time and for file accesses</info>
+ <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
+ <arg name='filename' type='const char *' info='the filename or URL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlCtxtGetLastError' file='xmlerror' module='error'>
+ <info>Get the last parsing error registered.</info>
+ <return type='xmlErrorPtr' info='NULL if no error occurred or a pointer to the error'/>
+ <arg name='ctx' type='void *' info='an XML parser context'/>
+ </function>
+ <function name='xmlCtxtReadDoc' file='parser' module='parser'>
+ <info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlCtxtReadFd' file='parser' module='parser'>
+ <info>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context NOTE that the file descriptor will not be closed when the reader is closed or reset.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='fd' type='int' info='an open file descriptor'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlCtxtReadFile' file='parser' module='parser'>
+ <info>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='filename' type='const char *' info='a file or URL'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlCtxtReadIO' file='parser' module='parser'>
+ <info>parse an XML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
+ <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
+ <arg name='ioctx' type='void *' info='an I/O handler'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlCtxtReadMemory' file='parser' module='parser'>
+ <info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlCtxtReset' file='parser' module='parser'>
+ <info>Reset a parser context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlCtxtResetLastError' file='xmlerror' module='error'>
+ <info>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='an XML parser context'/>
+ </function>
+ <function name='xmlCtxtResetPush' file='parser' module='parser'>
+ <info>Reset a push parser context</info>
+ <return type='int' info='0 in case of success and 1 in case of error'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='chunk' type='const char *' info='a pointer to an array of chars'/>
+ <arg name='size' type='int' info='number of chars in the array'/>
+ <arg name='filename' type='const char *' info='an optional file name or URI'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ </function>
+ <function name='xmlCtxtUseOptions' file='parser' module='parser'>
+ <info>Applies the options to the parser context</info>
+ <return type='int' info='0 in case of success, the set of unknown or unimplemented options in case of error.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlCurrentChar' file='parserInternals' module='parserInternals'>
+ <info>The current char value, if using UTF-8 this may actually span multiple bytes in the input buffer. Implement the end of line normalization: 2.11 End-of-Line Handling Wherever an external parsed entity or the literal entity value of an internal parsed entity contains either the literal two-character sequence &quot;#xD#xA&quot; or a standalone literal #xD, an XML processor must pass to the application the single character #xA. This behavior can conveniently be produced by normalizing all line breaks to #xA on input, before parsing.)</info>
+ <return type='int' info='the current char value and its length'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
+ <arg name='len' type='int *' info='pointer to the length of the char read'/>
+ </function>
+ <functype name='xmlDOMWrapAcquireNsFunction' file='tree' module='tree'>
+ <info>A function called to acquire namespaces (xmlNs) from the wrapper.</info>
+ <return type='xmlNsPtr' info='an xmlNsPtr or NULL in case of an error.'/>
+ <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='a DOM wrapper context'/>
+ <arg name='node' type='xmlNodePtr' info='the context node (element or attribute)'/>
+ <arg name='nsName' type='const xmlChar *' info='the requested namespace name'/>
+ <arg name='nsPrefix' type='const xmlChar *' info='the requested namespace prefix'/>
+ </functype>
+ <function name='xmlDOMWrapAdoptNode' file='tree' module='tree'>
+ <info>References of out-of scope ns-decls are remapped to point to @destDoc: 1) If @destParent is given, then nsDef entries on element-nodes are used 2) If *no* @destParent is given, then @destDoc-&gt;oldNs entries are used This is the case when you have an unlinked node and just want to move it to the context of If @destParent is given, it ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in attribute values or element content. NOTE: This function was not intensively tested.</info>
+ <return type='int' info='0 if the operation succeeded, 1 if a node of unsupported type was given, 2 if a node of not yet supported type was given and -1 on API/internal errors.'/>
+ <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='the optional context for custom processing'/>
+ <arg name='sourceDoc' type='xmlDocPtr' info='the optional sourceDoc'/>
+ <arg name='node' type='xmlNodePtr' info='the node to start with'/>
+ <arg name='destDoc' type='xmlDocPtr' info='the destination doc'/>
+ <arg name='destParent' type='xmlNodePtr' info='the optional new parent of @node in @destDoc'/>
+ <arg name='options' type='int' info='option flags'/>
+ </function>
+ <function name='xmlDOMWrapCloneNode' file='tree' module='tree'>
+ <info>References of out-of scope ns-decls are remapped to point to @destDoc: 1) If @destParent is given, then nsDef entries on element-nodes are used 2) If *no* @destParent is given, then @destDoc-&gt;oldNs entries are used. This is the case when you don&apos;t know already where the cloned branch will be added to. If @destParent is given, it ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in attribute values or element content. TODO: 1) What to do with XInclude? Currently this returns an error for XInclude.</info>
+ <return type='int' info='0 if the operation succeeded, 1 if a node of unsupported (or not yet supported) type was given, -1 on API/internal errors.'/>
+ <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='the optional context for custom processing'/>
+ <arg name='sourceDoc' type='xmlDocPtr' info='the optional sourceDoc'/>
+ <arg name='node' type='xmlNodePtr' info='the node to start with'/>
+ <arg name='resNode' type='xmlNodePtr *' info='the clone of the given @node'/>
+ <arg name='destDoc' type='xmlDocPtr' info='the destination doc'/>
+ <arg name='destParent' type='xmlNodePtr' info='the optional new parent of @node in @destDoc'/>
+ <arg name='deep' type='int' info='descend into child if set'/>
+ <arg name='options' type='int' info='option flags'/>
+ </function>
+ <function name='xmlDOMWrapFreeCtxt' file='tree' module='tree'>
+ <info>Frees the DOM-wrapper context.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='the DOM-wrapper context'/>
+ </function>
+ <function name='xmlDOMWrapNewCtxt' file='tree' module='tree'>
+ <info>Allocates and initializes a new DOM-wrapper context.</info>
+ <return type='xmlDOMWrapCtxtPtr' info='the xmlDOMWrapCtxtPtr or NULL in case of an internal error.'/>
+ </function>
+ <function name='xmlDOMWrapReconcileNamespaces' file='tree' module='tree'>
+ <info>Ensures that ns-references point to ns-decls hold on element-nodes. Ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in attribute values or element content. NOTE: This function was not intensively tested.</info>
+ <return type='int' info='0 if succeeded, -1 otherwise and on API/internal errors.'/>
+ <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='DOM wrapper context, unused at the moment'/>
+ <arg name='elem' type='xmlNodePtr' info='the element-node'/>
+ <arg name='options' type='int' info='option flags'/>
+ </function>
+ <function name='xmlDOMWrapRemoveNode' file='tree' module='tree'>
+ <info>Unlinks the given node from its owner. This will substitute ns-references to node-&gt;nsDef for ns-references to doc-&gt;oldNs, thus ensuring the removed branch to be autark wrt ns-references. NOTE: This function was not intensively tested.</info>
+ <return type='int' info='0 on success, 1 if the node is not supported, -1 on API and internal errors.'/>
+ <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='a DOM wrapper context'/>
+ <arg name='doc' type='xmlDocPtr' info='the doc'/>
+ <arg name='node' type='xmlNodePtr' info='the node to be removed.'/>
+ <arg name='options' type='int' info='set of options, unused at the moment'/>
+ </function>
+ <function name='xmlDebugCheckDocument' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Check the document for potential content problems, and output the errors to @output</info>
+ <return type='int' info='the number of errors found'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ </function>
+ <function name='xmlDebugDumpAttr' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps debug information for the attribute</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
+ <arg name='depth' type='int' info='the indentation level.'/>
+ </function>
+ <function name='xmlDebugDumpAttrList' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps debug information for the attribute list</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='attr' type='xmlAttrPtr' info='the attribute list'/>
+ <arg name='depth' type='int' info='the indentation level.'/>
+ </function>
+ <function name='xmlDebugDumpDTD' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps debug information for the DTD</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='dtd' type='xmlDtdPtr' info='the DTD'/>
+ </function>
+ <function name='xmlDebugDumpDocument' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps debug information for the document, it&apos;s recursive</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ </function>
+ <function name='xmlDebugDumpDocumentHead' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps debug information concerning the document, not recursive</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ </function>
+ <function name='xmlDebugDumpEntities' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps debug information for all the entities in use by the document</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ </function>
+ <function name='xmlDebugDumpNode' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps debug information for the element node, it is recursive</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='node' type='xmlNodePtr' info='the node'/>
+ <arg name='depth' type='int' info='the indentation level.'/>
+ </function>
+ <function name='xmlDebugDumpNodeList' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps debug information for the list of element node, it is recursive</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='node' type='xmlNodePtr' info='the node list'/>
+ <arg name='depth' type='int' info='the indentation level.'/>
+ </function>
+ <function name='xmlDebugDumpOneNode' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps debug information for the element node, it is not recursive</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='node' type='xmlNodePtr' info='the node'/>
+ <arg name='depth' type='int' info='the indentation level.'/>
+ </function>
+ <function name='xmlDebugDumpString' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps informations about the string, shorten it if necessary</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='str' type='const xmlChar *' info='the string'/>
+ </function>
+ <function name='xmlDecodeEntities' file='parserInternals' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>This function is deprecated, we now always process entities content through xmlStringDecodeEntities TODO: remove it in next major release. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;</info>
+ <return type='xmlChar *' info='A newly allocated string with the substitution done. The caller must deallocate it !'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
+ <arg name='len' type='int' info='the len to decode (in bytes !), -1 for no size limit'/>
+ <arg name='what' type='int' info='combination of XML_SUBSTITUTE_REF and XML_SUBSTITUTE_PEREF'/>
+ <arg name='end' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
+ <arg name='end2' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
+ <arg name='end3' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
+ </function>
+ <function name='xmlDefaultSAXHandlerInit' file='SAX2' module='SAX2'>
+ <info>Initialize the default SAX2 handler</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlDelEncodingAlias' file='encoding' module='encoding'>
+ <info>Unregisters an encoding alias @alias</info>
+ <return type='int' info='0 in case of success, -1 in case of error'/>
+ <arg name='alias' type='const char *' info='the alias name as parsed, in UTF-8 format (ASCII actually)'/>
+ </function>
+ <function name='xmlDeregisterNodeDefault' file='globals' module='globals'>
+ <info>Registers a callback for node destruction</info>
+ <return type='xmlDeregisterNodeFunc' info='the previous value of the deregistration function'/>
+ <arg name='func' type='xmlDeregisterNodeFunc' info='function pointer to the new DeregisterNodeFunc'/>
+ </function>
+ <functype name='xmlDeregisterNodeFunc' file='globals' module='globals'>
+ <info>Signature for the deregistration callback of a discarded node</info>
+ <return type='void'/>
+ <arg name='node' type='xmlNodePtr' info='the current node'/>
+ </functype>
+ <function name='xmlDetectCharEncoding' file='encoding' module='encoding'>
+ <info>Guess the encoding of the entity using the first bytes of the entity content according to the non-normative appendix F of the XML-1.0 recommendation.</info>
+ <return type='xmlCharEncoding' info='one of the XML_CHAR_ENCODING_... values.'/>
+ <arg name='in' type='const unsigned char *' info='a pointer to the first bytes of the XML entity, must be at least 2 bytes long (at least 4 if encoding is UTF4 variant).'/>
+ <arg name='len' type='int' info='pointer to the length of the buffer'/>
+ </function>
+ <function name='xmlDictCleanup' file='dict' module='dict'>
+ <info>Free the dictionary mutex. Do not call unless sure the library is not in use anymore !</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlDictCreate' file='dict' module='dict'>
+ <info>Create a new dictionary</info>
+ <return type='xmlDictPtr' info='the newly created dictionary, or NULL if an error occurred.'/>
+ </function>
+ <function name='xmlDictCreateSub' file='dict' module='dict'>
+ <info>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</info>
+ <return type='xmlDictPtr' info='the newly created dictionary, or NULL if an error occurred.'/>
+ <arg name='sub' type='xmlDictPtr' info='an existing dictionary'/>
+ </function>
+ <function name='xmlDictExists' file='dict' module='dict'>
+ <info>Check if the @name exists in the dictionary @dict.</info>
+ <return type='const xmlChar *' info='the internal copy of the name or NULL if not found.'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
+ </function>
+ <function name='xmlDictFree' file='dict' module='dict'>
+ <info>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</info>
+ <return type='void'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
+ </function>
+ <function name='xmlDictGetUsage' file='dict' module='dict'>
+ <info>Get how much memory is used by a dictionary for strings Added in 2.9.0</info>
+ <return type='size_t' info='the amount of strings allocated'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
+ </function>
+ <function name='xmlDictLookup' file='dict' module='dict'>
+ <info>Add the @name to the dictionary @dict if not present.</info>
+ <return type='const xmlChar *' info='the internal copy of the name or NULL in case of internal error'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
+ </function>
+ <function name='xmlDictOwns' file='dict' module='dict'>
+ <info>check if a string is owned by the dictionary</info>
+ <return type='int' info='1 if true, 0 if false and -1 in case of error -1 in case of error'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
+ <arg name='str' type='const xmlChar *' info='the string'/>
+ </function>
+ <function name='xmlDictQLookup' file='dict' module='dict'>
+ <info>Add the QName @prefix:@name to the hash @dict if not present.</info>
+ <return type='const xmlChar *' info='the internal copy of the QName or NULL in case of internal error'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
+ <arg name='prefix' type='const xmlChar *' info='the prefix'/>
+ <arg name='name' type='const xmlChar *' info='the name'/>
+ </function>
+ <function name='xmlDictReference' file='dict' module='dict'>
+ <info>Increment the reference counter of a dictionary</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
+ </function>
+ <function name='xmlDictSetLimit' file='dict' module='dict'>
+ <info>Set a size limit for the dictionary Added in 2.9.0</info>
+ <return type='size_t' info='the previous limit of the dictionary or 0'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
+ <arg name='limit' type='size_t' info='the limit in bytes'/>
+ </function>
+ <function name='xmlDictSize' file='dict' module='dict'>
+ <info>Query the number of elements installed in the hash @dict.</info>
+ <return type='int' info='the number of elements in the dictionary or -1 in case of error'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
+ </function>
+ <function name='xmlDllMain' file='threads' module='threads'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='hinstDLL' type='void *' info=''/>
+ <arg name='fdwReason' type='unsigned long' info=''/>
+ <arg name='lpvReserved' type='void *' info=''/>
+ </function>
+ <function name='xmlDocCopyNode' file='tree' module='tree'>
+ <info>Do a copy of the node to a given document.</info>
+ <return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
+ <arg name='node' type='xmlNodePtr' info='the node'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='extended' type='int' info='if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)'/>
+ </function>
+ <function name='xmlDocCopyNodeList' file='tree' module='tree'>
+ <info>Do a recursive copy of the node list.</info>
+ <return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
+ <arg name='doc' type='xmlDocPtr' info='the target document'/>
+ <arg name='node' type='xmlNodePtr' info='the first node in the list.'/>
+ </function>
+ <function name='xmlDocDump' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML document to an open FILE.</info>
+ <return type='int' info='the number of bytes written or -1 in case of failure.'/>
+ <arg name='f' type='FILE *' info='the FILE*'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ </function>
+ <function name='xmlDocDumpFormatMemory' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML document in memory and return the #xmlChar * and it&apos;s size. It&apos;s up to the caller to free the memory with xmlFree(). Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
+ <arg name='size' type='int *' info='OUT: the memory length'/>
+ <arg name='format' type='int' info='should formatting spaces been added'/>
+ </function>
+ <function name='xmlDocDumpFormatMemoryEnc' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump the current DOM tree into memory using the character encoding specified by the caller. Note it is up to the caller of this function to free the allocated memory with xmlFree(). Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
+ <return type='void'/>
+ <arg name='out_doc' type='xmlDocPtr' info='Document to generate XML text from'/>
+ <arg name='doc_txt_ptr' type='xmlChar **' info='Memory pointer for allocated XML text'/>
+ <arg name='doc_txt_len' type='int *' info='Length of the generated XML text'/>
+ <arg name='txt_encoding' type='const char *' info='Character encoding to use when generating XML text'/>
+ <arg name='format' type='int' info='should formatting spaces been added'/>
+ </function>
+ <function name='xmlDocDumpMemory' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML document in memory and return the #xmlChar * and it&apos;s size in bytes. It&apos;s up to the caller to free the memory with xmlFree(). The resulting byte array is zero terminated, though the last 0 is not included in the returned size.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
+ <arg name='size' type='int *' info='OUT: the memory length'/>
+ </function>
+ <function name='xmlDocDumpMemoryEnc' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump the current DOM tree into memory using the character encoding specified by the caller. Note it is up to the caller of this function to free the allocated memory with xmlFree().</info>
+ <return type='void'/>
+ <arg name='out_doc' type='xmlDocPtr' info='Document to generate XML text from'/>
+ <arg name='doc_txt_ptr' type='xmlChar **' info='Memory pointer for allocated XML text'/>
+ <arg name='doc_txt_len' type='int *' info='Length of the generated XML text'/>
+ <arg name='txt_encoding' type='const char *' info='Character encoding to use when generating XML text'/>
+ </function>
+ <function name='xmlDocFormatDump' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML document to an open FILE.</info>
+ <return type='int' info='the number of bytes written or -1 in case of failure. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called'/>
+ <arg name='f' type='FILE *' info='the FILE*'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='format' type='int' info='should formatting spaces been added'/>
+ </function>
+ <function name='xmlDocGetRootElement' file='tree' module='tree'>
+ <info>Get the root element of the document (doc-&gt;children is a list containing possibly comments, PIs, etc ...).</info>
+ <return type='xmlNodePtr' info='the #xmlNodePtr for the root or NULL'/>
+ <arg name='doc' type='const xmlDoc *' info='the document'/>
+ </function>
+ <function name='xmlDocSetRootElement' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Set the root element of the document (doc-&gt;children is a list containing possibly comments, PIs, etc ...).</info>
+ <return type='xmlNodePtr' info='the old root element if any was found, NULL if root was NULL'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='root' type='xmlNodePtr' info='the new document root element, if root is NULL no action is taken, to remove a node from a document use xmlUnlinkNode(root) instead.'/>
+ </function>
+ <function name='xmlDumpAttributeDecl' file='valid' module='valid'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>This will dump the content of the attribute declaration as an XML DTD definition</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
+ <arg name='attr' type='xmlAttributePtr' info='An attribute declaration'/>
+ </function>
+ <function name='xmlDumpAttributeTable' file='valid' module='valid'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>This will dump the content of the attribute table as an XML DTD definition</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
+ <arg name='table' type='xmlAttributeTablePtr' info='An attribute table'/>
+ </function>
+ <function name='xmlDumpElementDecl' file='valid' module='valid'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>This will dump the content of the element declaration as an XML DTD definition</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
+ <arg name='elem' type='xmlElementPtr' info='An element table'/>
+ </function>
+ <function name='xmlDumpElementTable' file='valid' module='valid'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>This will dump the content of the element table as an XML DTD definition</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
+ <arg name='table' type='xmlElementTablePtr' info='An element table'/>
+ </function>
+ <function name='xmlDumpEntitiesTable' file='entities' module='entities'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>This will dump the content of the entity table as an XML DTD definition</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='An XML buffer.'/>
+ <arg name='table' type='xmlEntitiesTablePtr' info='An entity table'/>
+ </function>
+ <function name='xmlDumpEntityDecl' file='entities' module='entities'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>This will dump the content of the entity table as an XML DTD definition</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='An XML buffer.'/>
+ <arg name='ent' type='xmlEntityPtr' info='An entity table'/>
+ </function>
+ <function name='xmlDumpNotationDecl' file='valid' module='valid'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>This will dump the content the notation declaration as an XML DTD definition</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
+ <arg name='nota' type='xmlNotationPtr' info='A notation declaration'/>
+ </function>
+ <function name='xmlDumpNotationTable' file='valid' module='valid'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>This will dump the content of the notation table as an XML DTD definition</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
+ <arg name='table' type='xmlNotationTablePtr' info='A notation table'/>
+ </function>
+ <function name='xmlElemDump' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML/HTML node, recursive behaviour, children are printed too.</info>
+ <return type='void'/>
+ <arg name='f' type='FILE *' info='the FILE * for the output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node'/>
+ </function>
+ <function name='xmlEncodeEntities' file='entities' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>TODO: remove xmlEncodeEntities, once we are not afraid of breaking binary compatibility People must migrate their code to xmlEncodeEntitiesReentrant ! This routine will issue a warning when encountered.</info>
+ <return type='const xmlChar *' info='NULL'/>
+ <arg name='doc' type='xmlDocPtr' info='the document containing the string'/>
+ <arg name='input' type='const xmlChar *' info='A string to convert to XML.'/>
+ </function>
+ <function name='xmlEncodeEntitiesReentrant' file='entities' module='entities'>
+ <info>Do a global encoding of a string, replacing the predefined entities and non ASCII values with their entities and CharRef counterparts. Contrary to xmlEncodeEntities, this routine is reentrant, and result must be deallocated.</info>
+ <return type='xmlChar *' info='A newly allocated string with the substitution done.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document containing the string'/>
+ <arg name='input' type='const xmlChar *' info='A string to convert to XML.'/>
+ </function>
+ <function name='xmlEncodeSpecialChars' file='entities' module='entities'>
+ <info>Do a global encoding of a string, replacing the predefined entities this routine is reentrant, and result must be deallocated.</info>
+ <return type='xmlChar *' info='A newly allocated string with the substitution done.'/>
+ <arg name='doc' type='const xmlDoc *' info='the document containing the string'/>
+ <arg name='input' type='const xmlChar *' info='A string to convert to XML.'/>
+ </function>
+ <functype name='xmlEntityReferenceFunc' file='parserInternals' module='parserInternals'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Callback function used when one needs to be able to track back the provenance of a chunk of nodes inherited from an entity replacement.</info>
+ <return type='void'/>
+ <arg name='ent' type='xmlEntityPtr' info='the entity'/>
+ <arg name='firstNode' type='xmlNodePtr' info='the fist node in the chunk'/>
+ <arg name='lastNode' type='xmlNodePtr' info='the last nod in the chunk'/>
+ </functype>
+ <function name='xmlErrMemory' file='parserInternals' module='parserInternals'>
+ <info>Handle a redefinition of attribute error</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='extra' type='const char *' info='extra informations'/>
+ </function>
+ <function name='xmlExpCtxtNbCons' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Debugging facility provides the number of allocated nodes over lifetime</info>
+ <return type='int' info='the number of nodes ever allocated or -1 in case of error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='an expression context'/>
+ </function>
+ <function name='xmlExpCtxtNbNodes' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Debugging facility provides the number of allocated nodes at a that point</info>
+ <return type='int' info='the number of nodes in use or -1 in case of error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='an expression context'/>
+ </function>
+ <function name='xmlExpDump' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Serialize the expression as compiled to the buffer</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlBufferPtr' info='a buffer to receive the output'/>
+ <arg name='expr' type='xmlExpNodePtr' info='the compiled expression'/>
+ </function>
+ <function name='xmlExpExpDerive' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Evaluates the expression resulting from @exp consuming a sub expression @sub Based on algebraic derivation and sometimes direct Brzozowski derivation it usually takes less than linear time and can handle expressions generating infinite languages.</info>
+ <return type='xmlExpNodePtr' info='the resulting expression or NULL in case of internal error, the result must be freed'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expressions context'/>
+ <arg name='exp' type='xmlExpNodePtr' info='the englobing expression'/>
+ <arg name='sub' type='xmlExpNodePtr' info='the subexpression'/>
+ </function>
+ <function name='xmlExpFree' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Dereference the expression</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+ </function>
+ <function name='xmlExpFreeCtxt' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Free an expression context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='an expression context'/>
+ </function>
+ <function name='xmlExpGetLanguage' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Find all the strings used in @exp and store them in @list</info>
+ <return type='int' info='the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+ <arg name='langList' type='const xmlChar **' info='where to store the tokens'/>
+ <arg name='len' type='int' info='the allocated length of @list'/>
+ </function>
+ <function name='xmlExpGetStart' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Find all the strings that appears at the start of the languages accepted by @exp and store them in @list. E.g. for (a, b) | c it will return the list [a, c]</info>
+ <return type='int' info='the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+ <arg name='tokList' type='const xmlChar **' info='where to store the tokens'/>
+ <arg name='len' type='int' info='the allocated length of @list'/>
+ </function>
+ <function name='xmlExpIsNillable' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Finds if the expression is nillable, i.e. if it accepts the empty sequence</info>
+ <return type='int' info='1 if nillable, 0 if not and -1 in case of error'/>
+ <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+ </function>
+ <function name='xmlExpMaxToken' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Indicate the maximum number of input a expression can accept</info>
+ <return type='int' info='the maximum length or -1 in case of error'/>
+ <arg name='expr' type='xmlExpNodePtr' info='a compiled expression'/>
+ </function>
+ <function name='xmlExpNewAtom' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Get the atom associated to this name from that context</info>
+ <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='name' type='const xmlChar *' info='the atom name'/>
+ <arg name='len' type='int' info='the atom name length in byte (or -1);'/>
+ </function>
+ <function name='xmlExpNewCtxt' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Creates a new context for manipulating expressions</info>
+ <return type='xmlExpCtxtPtr' info='the context or NULL in case of error'/>
+ <arg name='maxNodes' type='int' info='the maximum number of nodes'/>
+ <arg name='dict' type='xmlDictPtr' info='optional dictionary to use internally'/>
+ </function>
+ <function name='xmlExpNewOr' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</info>
+ <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='left' type='xmlExpNodePtr' info='left expression'/>
+ <arg name='right' type='xmlExpNodePtr' info='right expression'/>
+ </function>
+ <function name='xmlExpNewRange' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</info>
+ <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='subset' type='xmlExpNodePtr' info='the expression to be repeated'/>
+ <arg name='min' type='int' info='the lower bound for the repetition'/>
+ <arg name='max' type='int' info='the upper bound for the repetition, -1 means infinite'/>
+ </function>
+ <function name='xmlExpNewSeq' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Get the atom associated to the sequence @left , @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</info>
+ <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='left' type='xmlExpNodePtr' info='left expression'/>
+ <arg name='right' type='xmlExpNodePtr' info='right expression'/>
+ </function>
+ <function name='xmlExpParse' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Minimal parser for regexps, it understand the following constructs - string terminals - choice operator | - sequence operator , - subexpressions (...) - usual cardinality operators + * and ? - finite sequences { min, max } - infinite sequences { min, * } There is minimal checkings made especially no checking on strings values</info>
+ <return type='xmlExpNodePtr' info='a new expression or NULL in case of failure'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expressions context'/>
+ <arg name='expr' type='const char *' info='the 0 terminated string'/>
+ </function>
+ <function name='xmlExpRef' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Increase the reference count of the expression</info>
+ <return type='void'/>
+ <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+ </function>
+ <function name='xmlExpStringDerive' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Do one step of Brzozowski derivation of the expression @exp with respect to the input string</info>
+ <return type='xmlExpNodePtr' info='the resulting expression or NULL in case of internal error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+ <arg name='str' type='const xmlChar *' info='the string'/>
+ <arg name='len' type='int' info='the string len in bytes if available'/>
+ </function>
+ <function name='xmlExpSubsume' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Check whether @exp accepts all the languages accepted by @sub the input being a subexpression.</info>
+ <return type='int' info='1 if true 0 if false and -1 in case of failure.'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expressions context'/>
+ <arg name='exp' type='xmlExpNodePtr' info='the englobing expression'/>
+ <arg name='sub' type='xmlExpNodePtr' info='the subexpression'/>
+ </function>
+ <functype name='xmlExternalEntityLoader' file='parser' module='parser'>
+ <info>External entity loaders types.</info>
+ <return type='xmlParserInputPtr' info='the entity input parser.'/>
+ <arg name='URL' type='const char *' info='The System ID of the resource requested'/>
+ <arg name='ID' type='const char *' info='The Public ID of the resource requested'/>
+ <arg name='context' type='xmlParserCtxtPtr' info='the XML parser context'/>
+ </functype>
+ <function name='xmlFileClose' file='xmlIO' module='xmlIO'>
+ <info>Close an I/O channel</info>
+ <return type='int' info='0 or -1 in case of error'/>
+ <arg name='context' type='void *' info='the I/O context'/>
+ </function>
+ <function name='xmlFileMatch' file='xmlIO' module='xmlIO'>
+ <info>input from FILE *</info>
+ <return type='int' info='1 if matches, 0 otherwise'/>
+ <arg name='filename' type='const char *' info='the URI for matching'/>
+ </function>
+ <function name='xmlFileOpen' file='xmlIO' module='xmlIO'>
+ <info>Wrapper around xmlFileOpen_real that try it with an unescaped version of @filename, if this fails fallback to @filename</info>
+ <return type='void *' info='a handler or NULL in case or failure'/>
+ <arg name='filename' type='const char *' info='the URI for matching'/>
+ </function>
+ <function name='xmlFileRead' file='xmlIO' module='xmlIO'>
+ <info>Read @len bytes to @buffer from the I/O channel.</info>
+ <return type='int' info='the number of bytes written or &lt; 0 in case of failure'/>
+ <arg name='context' type='void *' info='the I/O context'/>
+ <arg name='buffer' type='char *' info='where to drop data'/>
+ <arg name='len' type='int' info='number of bytes to write'/>
+ </function>
+ <function name='xmlFindCharEncodingHandler' file='encoding' module='encoding'>
+ <info>Search in the registered set the handler able to read/write that encoding.</info>
+ <return type='xmlCharEncodingHandlerPtr' info='the handler or NULL if not found'/>
+ <arg name='name' type='const char *' info='a string describing the char encoding.'/>
+ </function>
+ <function name='xmlFirstElementChild' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Finds the first child node of that element which is a Element node Note the handling of entities references is different than in the W3C DOM element traversal spec since we don&apos;t have back reference from entities content to entities references.</info>
+ <return type='xmlNodePtr' info='the first element child or NULL if not available'/>
+ <arg name='parent' type='xmlNodePtr' info='the parent node'/>
+ </function>
+ <function name='xmlFreeAttributeTable' file='valid' module='valid'>
+ <info>Deallocate the memory used by an entities hash table.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlAttributeTablePtr' info='An attribute table'/>
+ </function>
+ <function name='xmlFreeAutomata' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>Free an automata</info>
+ <return type='void'/>
+ <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+ </function>
+ <function name='xmlFreeCatalog' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Free the memory allocated to a Catalog</info>
+ <return type='void'/>
+ <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
+ </function>
+ <function name='xmlFreeDoc' file='tree' module='tree'>
+ <info>Free up all the structures used by a document, tree included.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlDocPtr' info='pointer to the document'/>
+ </function>
+ <function name='xmlFreeDocElementContent' file='valid' module='valid'>
+ <info>Free an element content structure. The whole subtree is removed.</info>
+ <return type='void'/>
+ <arg name='doc' type='xmlDocPtr' info='the document owning the element declaration'/>
+ <arg name='cur' type='xmlElementContentPtr' info='the element content tree to free'/>
+ </function>
+ <function name='xmlFreeDtd' file='tree' module='tree'>
+ <info>Free a DTD structure.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlDtdPtr' info='the DTD structure to free up'/>
+ </function>
+ <function name='xmlFreeElementContent' file='valid' module='valid'>
+ <info>Free an element content structure. The whole subtree is removed. Deprecated, use xmlFreeDocElementContent instead</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlElementContentPtr' info='the element content tree to free'/>
+ </function>
+ <function name='xmlFreeElementTable' file='valid' module='valid'>
+ <info>Deallocate the memory used by an element hash table.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlElementTablePtr' info='An element table'/>
+ </function>
+ <function name='xmlFreeEntitiesTable' file='entities' module='entities'>
+ <info>Deallocate the memory used by an entities hash table.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlEntitiesTablePtr' info='An entity table'/>
+ </function>
+ <function name='xmlFreeEnumeration' file='valid' module='valid'>
+ <info>free an enumeration attribute node (recursive).</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlEnumerationPtr' info='the tree to free.'/>
+ </function>
+ <functype name='xmlFreeFunc' file='xmlmemory' module='xmlmemory'>
+ <info>Signature for a free() implementation.</info>
+ <return type='void'/>
+ <arg name='mem' type='void *' info='an already allocated block of memory'/>
+ </functype>
+ <function name='xmlFreeIDTable' file='valid' module='valid'>
+ <info>Deallocate the memory used by an ID hash table.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlIDTablePtr' info='An id table'/>
+ </function>
+ <function name='xmlFreeInputStream' file='parserInternals' module='parserInternals'>
+ <info>Free up an input stream.</info>
+ <return type='void'/>
+ <arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr'/>
+ </function>
+ <function name='xmlFreeMutex' file='threads' module='threads'>
+ <info>xmlFreeMutex() is used to reclaim resources associated with a libxml2 token struct.</info>
+ <return type='void'/>
+ <arg name='tok' type='xmlMutexPtr' info='the simple mutex'/>
+ </function>
+ <function name='xmlFreeNode' file='tree' module='tree'>
+ <info>Free a node, this is a recursive behaviour, all the children are freed too. This doesn&apos;t unlink the child from the list, use xmlUnlinkNode() first.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the node'/>
+ </function>
+ <function name='xmlFreeNodeList' file='tree' module='tree'>
+ <info>Free a node and all its siblings, this is a recursive behaviour, all the children are freed too.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the first node in the list'/>
+ </function>
+ <function name='xmlFreeNotationTable' file='valid' module='valid'>
+ <info>Deallocate the memory used by an entities hash table.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlNotationTablePtr' info='An notation table'/>
+ </function>
+ <function name='xmlFreeNs' file='tree' module='tree'>
+ <info>Free up the structures associated to a namespace</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNsPtr' info='the namespace pointer'/>
+ </function>
+ <function name='xmlFreeNsList' file='tree' module='tree'>
+ <info>Free up all the structures associated to the chained namespaces.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNsPtr' info='the first namespace pointer'/>
+ </function>
+ <function name='xmlFreeParserCtxt' file='parser' module='parserInternals'>
+ <info>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlFreeParserInputBuffer' file='xmlIO' module='xmlIO'>
+ <info>Free up the memory used by a buffered parser input</info>
+ <return type='void'/>
+ <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
+ </function>
+ <function name='xmlFreePattern' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Free up the memory allocated by @comp</info>
+ <return type='void'/>
+ <arg name='comp' type='xmlPatternPtr' info='an XSLT comp'/>
+ </function>
+ <function name='xmlFreePatternList' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Free up the memory allocated by all the elements of @comp</info>
+ <return type='void'/>
+ <arg name='comp' type='xmlPatternPtr' info='an XSLT comp list'/>
+ </function>
+ <function name='xmlFreeProp' file='tree' module='tree'>
+ <info>Free one attribute, all the content is freed too</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlAttrPtr' info='an attribute'/>
+ </function>
+ <function name='xmlFreePropList' file='tree' module='tree'>
+ <info>Free a property and all its siblings, all the children are freed too.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlAttrPtr' info='the first property in the list'/>
+ </function>
+ <function name='xmlFreeRMutex' file='threads' module='threads'>
+ <info>xmlRFreeMutex() is used to reclaim resources associated with a reentrant mutex.</info>
+ <return type='void'/>
+ <arg name='tok' type='xmlRMutexPtr' info='the reentrant mutex'/>
+ </function>
+ <function name='xmlFreeRefTable' file='valid' module='valid'>
+ <info>Deallocate the memory used by an Ref hash table.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlRefTablePtr' info='An ref table'/>
+ </function>
+ <function name='xmlFreeStreamCtxt' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Free the stream context</info>
+ <return type='void'/>
+ <arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
+ </function>
+ <function name='xmlFreeTextReader' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Deallocate all the resources associated to the reader</info>
+ <return type='void'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr'/>
+ </function>
+ <function name='xmlFreeTextWriter' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Deallocate all the resources associated to the writer</info>
+ <return type='void'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlFreeURI' file='uri' module='uri'>
+ <info>Free up the xmlURI struct</info>
+ <return type='void'/>
+ <arg name='uri' type='xmlURIPtr' info='pointer to an xmlURI'/>
+ </function>
+ <function name='xmlFreeValidCtxt' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Free a validation context structure.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlValidCtxtPtr' info='the validation context to free'/>
+ </function>
+ <function name='xmlGcMemGet' file='xmlmemory' module='xmlmemory'>
+ <info>Provides the memory access functions set currently in use The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas useful for garbage collected memory allocators</info>
+ <return type='int' info='0 on success'/>
+ <arg name='freeFunc' type='xmlFreeFunc *' info='place to save the free() function in use'/>
+ <arg name='mallocFunc' type='xmlMallocFunc *' info='place to save the malloc() function in use'/>
+ <arg name='mallocAtomicFunc' type='xmlMallocFunc *' info='place to save the atomic malloc() function in use'/>
+ <arg name='reallocFunc' type='xmlReallocFunc *' info='place to save the realloc() function in use'/>
+ <arg name='strdupFunc' type='xmlStrdupFunc *' info='place to save the strdup() function in use'/>
+ </function>
+ <function name='xmlGcMemSetup' file='xmlmemory' module='xmlmemory'>
+ <info>Override the default memory access functions with a new set This has to be called before any other libxml routines ! The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas useful for garbage collected memory allocators Should this be blocked if there was already some allocations done ?</info>
+ <return type='int' info='0 on success'/>
+ <arg name='freeFunc' type='xmlFreeFunc' info='the free() function to use'/>
+ <arg name='mallocFunc' type='xmlMallocFunc' info='the malloc() function to use'/>
+ <arg name='mallocAtomicFunc' type='xmlMallocFunc' info='the malloc() function to use for atomic allocations'/>
+ <arg name='reallocFunc' type='xmlReallocFunc' info='the realloc() function to use'/>
+ <arg name='strdupFunc' type='xmlStrdupFunc' info='the strdup() function to use'/>
+ </function>
+ <functype name='xmlGenericErrorFunc' file='xmlerror' module='xmlerror'>
+ <info>Signature of the function to use when there is an error and no parsing or validity context available .</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='a parsing context'/>
+ <arg name='msg' type='const char *' info='the message'/>
+ <arg name='...' type='...' info='the extra arguments of the varargs to format the message'/>
+ </functype>
+ <function name='xmlGetBufferAllocationScheme' file='tree' module='tree'>
+ <info>Types are XML_BUFFER_ALLOC_EXACT - use exact sizes, keeps memory usage down XML_BUFFER_ALLOC_DOUBLEIT - double buffer when extra needed, improves performance XML_BUFFER_ALLOC_HYBRID - use exact sizes on small strings to keep memory usage tight in normal usage, and doubleit on large strings to avoid pathological performance.</info>
+ <return type='xmlBufferAllocationScheme' info='the current allocation scheme'/>
+ </function>
+ <function name='xmlGetCharEncodingHandler' file='encoding' module='encoding'>
+ <info>Search in the registered set the handler able to read/write that encoding.</info>
+ <return type='xmlCharEncodingHandlerPtr' info='the handler or NULL if not found'/>
+ <arg name='enc' type='xmlCharEncoding' info='an xmlCharEncoding value.'/>
+ </function>
+ <function name='xmlGetCharEncodingName' file='encoding' module='encoding'>
+ <info>The &quot;canonical&quot; name for XML encoding. C.f. http://www.w3.org/TR/REC-xml#charencoding Section 4.3.3 Character Encoding in Entities</info>
+ <return type='const char *' info='the canonical name for the given encoding'/>
+ <arg name='enc' type='xmlCharEncoding' info='the encoding'/>
+ </function>
+ <function name='xmlGetCompressMode' file='tree' module='tree'>
+ <info>get the default compression mode used, ZLIB based.</info>
+ <return type='int' info='0 (uncompressed) to 9 (max compression)'/>
+ </function>
+ <function name='xmlGetDocCompressMode' file='tree' module='tree'>
+ <info>get the compression ratio for a document, ZLIB based</info>
+ <return type='int' info='0 (uncompressed) to 9 (max compression)'/>
+ <arg name='doc' type='const xmlDoc *' info='the document'/>
+ </function>
+ <function name='xmlGetDocEntity' file='entities' module='entities'>
+ <info>Do an entity lookup in the document entity hash table and</info>
+ <return type='xmlEntityPtr' info='the corresponding entity, otherwise a lookup is done in the predefined entities too. Returns A pointer to the entity structure or NULL if not found.'/>
+ <arg name='doc' type='const xmlDoc *' info='the document referencing the entity'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ </function>
+ <function name='xmlGetDtdAttrDesc' file='valid' module='valid'>
+ <info>Search the DTD for the description of this attribute on this element.</info>
+ <return type='xmlAttributePtr' info='the xmlAttributePtr if found or NULL'/>
+ <arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
+ <arg name='elem' type='const xmlChar *' info='the element name'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ </function>
+ <function name='xmlGetDtdElementDesc' file='valid' module='valid'>
+ <info>Search the DTD for the description of this element</info>
+ <return type='xmlElementPtr' info='the xmlElementPtr if found or NULL'/>
+ <arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
+ <arg name='name' type='const xmlChar *' info='the element name'/>
+ </function>
+ <function name='xmlGetDtdEntity' file='entities' module='entities'>
+ <info>Do an entity lookup in the DTD entity hash table and</info>
+ <return type='xmlEntityPtr' info='the corresponding entity, if found. Note: the first argument is the document node, not the DTD node. Returns A pointer to the entity structure or NULL if not found.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document referencing the entity'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ </function>
+ <function name='xmlGetDtdNotationDesc' file='valid' module='valid'>
+ <info>Search the DTD for the description of this notation</info>
+ <return type='xmlNotationPtr' info='the xmlNotationPtr if found or NULL'/>
+ <arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
+ <arg name='name' type='const xmlChar *' info='the notation name'/>
+ </function>
+ <function name='xmlGetDtdQAttrDesc' file='valid' module='valid'>
+ <info>Search the DTD for the description of this qualified attribute on this element.</info>
+ <return type='xmlAttributePtr' info='the xmlAttributePtr if found or NULL'/>
+ <arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
+ <arg name='elem' type='const xmlChar *' info='the element name'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ <arg name='prefix' type='const xmlChar *' info='the attribute namespace prefix'/>
+ </function>
+ <function name='xmlGetDtdQElementDesc' file='valid' module='valid'>
+ <info>Search the DTD for the description of this element</info>
+ <return type='xmlElementPtr' info='the xmlElementPtr if found or NULL'/>
+ <arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
+ <arg name='name' type='const xmlChar *' info='the element name'/>
+ <arg name='prefix' type='const xmlChar *' info='the element namespace prefix'/>
+ </function>
+ <function name='xmlGetEncodingAlias' file='encoding' module='encoding'>
+ <info>Lookup an encoding name for the given alias.</info>
+ <return type='const char *' info='NULL if not found, otherwise the original name'/>
+ <arg name='alias' type='const char *' info='the alias name as parsed, in UTF-8 format (ASCII actually)'/>
+ </function>
+ <function name='xmlGetExternalEntityLoader' file='parser' module='xmlIO'>
+ <info>Get the default external entity resolver function for the application</info>
+ <return type='xmlExternalEntityLoader' info='the xmlExternalEntityLoader function pointer'/>
+ </function>
+ <function name='xmlGetFeature' file='parser' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Read the current value of one feature of this parser instance</info>
+ <return type='int' info='-1 in case or error, 0 otherwise'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML/HTML parser context'/>
+ <arg name='name' type='const char *' info='the feature name'/>
+ <arg name='result' type='void *' info='location to store the result'/>
+ </function>
+ <function name='xmlGetFeaturesList' file='parser' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Copy at most *@len feature names into the @result array</info>
+ <return type='int' info='-1 in case or error, or the total number of features, len is updated with the number of strings copied, strings must not be deallocated'/>
+ <arg name='len' type='int *' info='the length of the features name array (input/output)'/>
+ <arg name='result' type='const char **' info='an array of string to be filled with the features name.'/>
+ </function>
+ <function name='xmlGetGlobalState' file='threads' module='threads'>
+ <info>xmlGetGlobalState() is called to retrieve the global state for a thread.</info>
+ <return type='xmlGlobalStatePtr' info='the thread global state or NULL in case of error'/>
+ </function>
+ <function name='xmlGetID' file='valid' module='valid'>
+ <info>Search the attribute declaring the given ID</info>
+ <return type='xmlAttrPtr' info='NULL if not found, otherwise the xmlAttrPtr defining the ID'/>
+ <arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
+ <arg name='ID' type='const xmlChar *' info='the ID value'/>
+ </function>
+ <function name='xmlGetIntSubset' file='tree' module='tree'>
+ <info>Get the internal subset of a document</info>
+ <return type='xmlDtdPtr' info='a pointer to the DTD structure or NULL if not found'/>
+ <arg name='doc' type='const xmlDoc *' info='the document pointer'/>
+ </function>
+ <function name='xmlGetLastChild' file='tree' module='tree'>
+ <info>Search the last child of a node.</info>
+ <return type='xmlNodePtr' info='the last child or NULL if none.'/>
+ <arg name='parent' type='const xmlNode *' info='the parent node'/>
+ </function>
+ <function name='xmlGetLastError' file='xmlerror' module='error'>
+ <info>Get the last global error registered. This is per thread if compiled with thread support.</info>
+ <return type='xmlErrorPtr' info='NULL if no error occurred or a pointer to the error'/>
+ </function>
+ <function name='xmlGetLineNo' file='tree' module='tree'>
+ <info>Get line number of @node. Try to override the limitation of lines being store in 16 bits ints if XML_PARSE_BIG_LINES parser option was used</info>
+ <return type='long' info='the line number if successful, -1 otherwise'/>
+ <arg name='node' type='const xmlNode *' info='valid node'/>
+ </function>
+ <function name='xmlGetNoNsProp' file='tree' module='tree'>
+ <info>Search and get the value of an attribute associated to a node This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. This function is similar to xmlGetProp except it will accept only an attribute in no namespace.</info>
+ <return type='xmlChar *' info='the attribute value or NULL if not found. It&apos;s up to the caller to free the memory with xmlFree().'/>
+ <arg name='node' type='const xmlNode *' info='the node'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ </function>
+ <function name='xmlGetNodePath' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Build a structure based Path for the given node</info>
+ <return type='xmlChar *' info='the new path or NULL in case of error. The caller must free the returned string'/>
+ <arg name='node' type='const xmlNode *' info='a node'/>
+ </function>
+ <function name='xmlGetNsList' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Search all the namespace applying to a given element.</info>
+ <return type='xmlNsPtr *' info='an NULL terminated array of all the #xmlNsPtr found that need to be freed by the caller or NULL if no namespace if defined'/>
+ <arg name='doc' type='const xmlDoc *' info='the document'/>
+ <arg name='node' type='const xmlNode *' info='the current node'/>
+ </function>
+ <function name='xmlGetNsProp' file='tree' module='tree'>
+ <info>Search and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</info>
+ <return type='xmlChar *' info='the attribute value or NULL if not found. It&apos;s up to the caller to free the memory with xmlFree().'/>
+ <arg name='node' type='const xmlNode *' info='the node'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ <arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
+ </function>
+ <function name='xmlGetParameterEntity' file='entities' module='entities'>
+ <info>Do an entity lookup in the internal and external subsets and</info>
+ <return type='xmlEntityPtr' info='the corresponding parameter entity, if found. Returns A pointer to the entity structure or NULL if not found.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document referencing the entity'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ </function>
+ <function name='xmlGetPredefinedEntity' file='entities' module='entities'>
+ <info>Check whether this name is an predefined entity.</info>
+ <return type='xmlEntityPtr' info='NULL if not, otherwise the entity'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ </function>
+ <function name='xmlGetProp' file='tree' module='tree'>
+ <info>Search and get the value of an attribute associated to a node This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. NOTE: this function acts independently of namespaces associated to the attribute. Use xmlGetNsProp() or xmlGetNoNsProp() for namespace aware processing.</info>
+ <return type='xmlChar *' info='the attribute value or NULL if not found. It&apos;s up to the caller to free the memory with xmlFree().'/>
+ <arg name='node' type='const xmlNode *' info='the node'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ </function>
+ <function name='xmlGetRefs' file='valid' module='valid'>
+ <info>Find the set of references for the supplied ID.</info>
+ <return type='xmlListPtr' info='NULL if not found, otherwise node set for the ID.'/>
+ <arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
+ <arg name='ID' type='const xmlChar *' info='the ID value'/>
+ </function>
+ <function name='xmlGetThreadId' file='threads' module='threads'>
+ <info>xmlGetThreadId() find the current thread ID number Note that this is likely to be broken on some platforms using pthreads as the specification doesn&apos;t mandate pthread_t to be an integer type</info>
+ <return type='int' info='the current thread ID number'/>
+ </function>
+ <function name='xmlGetUTF8Char' file='xmlstring' module='xmlstring'>
+ <info>Read the first UTF8 character from @utf</info>
+ <return type='int' info='the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error)'/>
+ <arg name='utf' type='const unsigned char *' info='a sequence of UTF-8 encoded bytes'/>
+ <arg name='len' type='int *' info='a pointer to the minimum number of bytes present in the sequence. This is used to assure the next character is completely contained within the sequence.'/>
+ </function>
+ <function name='xmlHandleEntity' file='parserInternals' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Default handling of defined entities, when should we define a new input stream ? When do we just handle that as a set of chars ? OBSOLETE: to be removed at some point.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='entity' type='xmlEntityPtr' info='an XML entity pointer.'/>
+ </function>
+ <function name='xmlHasFeature' file='parser' module='parser'>
+ <info>Examines if the library has been compiled with a given feature.</info>
+ <return type='int' info='a non-zero value if the feature exist, otherwise zero. Returns zero (0) if the feature does not exist or an unknown unknown feature is requested, non-zero otherwise.'/>
+ <arg name='feature' type='xmlFeature' info='the feature to be examined'/>
+ </function>
+ <function name='xmlHasNsProp' file='tree' module='tree'>
+ <info>Search for an attribute associated to a node This attribute has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. Note that a namespace of NULL indicates to use the default namespace.</info>
+ <return type='xmlAttrPtr' info='the attribute or the attribute declaration or NULL if neither was found.'/>
+ <arg name='node' type='const xmlNode *' info='the node'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ <arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
+ </function>
+ <function name='xmlHasProp' file='tree' module='tree'>
+ <info>Search an attribute associated to a node This function also looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</info>
+ <return type='xmlAttrPtr' info='the attribute or the attribute declaration or NULL if neither was found.'/>
+ <arg name='node' type='const xmlNode *' info='the node'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ </function>
+ <function name='xmlHashAddEntry' file='hash' module='hash'>
+ <info>Add the @userdata to the hash @table. This can later be retrieved by using the @name. Duplicate names generate errors.</info>
+ <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='userdata' type='void *' info='a pointer to the userdata'/>
+ </function>
+ <function name='xmlHashAddEntry2' file='hash' module='hash'>
+ <info>Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Duplicate tuples generate errors.</info>
+ <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
+ <arg name='userdata' type='void *' info='a pointer to the userdata'/>
+ </function>
+ <function name='xmlHashAddEntry3' file='hash' module='hash'>
+ <info>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Duplicate entries generate errors.</info>
+ <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
+ <arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
+ <arg name='userdata' type='void *' info='a pointer to the userdata'/>
+ </function>
+ <functype name='xmlHashCopier' file='hash' module='hash'>
+ <info>Callback to copy data from a hash.</info>
+ <return type='void *' info='a copy of the data or NULL in case of error.'/>
+ <arg name='payload' type='void *' info='the data in the hash'/>
+ <arg name='name' type='const xmlChar *' info='the name associated'/>
+ </functype>
+ <function name='xmlHashCopy' file='hash' module='hash'>
+ <info>Scan the hash @table and applied @f to each value.</info>
+ <return type='xmlHashTablePtr' info='the new table or NULL in case of error.'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='f' type='xmlHashCopier' info='the copier function for items in the hash'/>
+ </function>
+ <function name='xmlHashCreate' file='hash' module='hash'>
+ <info>Create a new xmlHashTablePtr.</info>
+ <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occurred.'/>
+ <arg name='size' type='int' info='the size of the hash table'/>
+ </function>
+ <function name='xmlHashCreateDict' file='hash' module='hash'>
+ <info>Create a new xmlHashTablePtr which will use @dict as the internal dictionary</info>
+ <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occurred.'/>
+ <arg name='size' type='int' info='the size of the hash table'/>
+ <arg name='dict' type='xmlDictPtr' info='a dictionary to use for the hash'/>
+ </function>
+ <functype name='xmlHashDeallocator' file='hash' module='hash'>
+ <info>Callback to free data from a hash.</info>
+ <return type='void'/>
+ <arg name='payload' type='void *' info='the data in the hash'/>
+ <arg name='name' type='const xmlChar *' info='the name associated'/>
+ </functype>
+ <function name='xmlHashDefaultDeallocator' file='hash' module='hash'>
+ <info>Free a hash table entry with xmlFree.</info>
+ <return type='void'/>
+ <arg name='entry' type='void *' info='the hash table entry'/>
+ <arg name='name' type='const xmlChar *' info='the entry&apos;s name'/>
+ </function>
+ <function name='xmlHashFree' file='hash' module='hash'>
+ <info>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='f' type='xmlHashDeallocator' info='the deallocator function for items in the hash'/>
+ </function>
+ <function name='xmlHashLookup' file='hash' module='hash'>
+ <info>Find the userdata specified by the @name.</info>
+ <return type='void *' info='the pointer to the userdata'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ </function>
+ <function name='xmlHashLookup2' file='hash' module='hash'>
+ <info>Find the userdata specified by the (@name, @name2) tuple.</info>
+ <return type='void *' info='the pointer to the userdata'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
+ </function>
+ <function name='xmlHashLookup3' file='hash' module='hash'>
+ <info>Find the userdata specified by the (@name, @name2, @name3) tuple.</info>
+ <return type='void *' info='the a pointer to the userdata'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
+ <arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
+ </function>
+ <function name='xmlHashQLookup' file='hash' module='hash'>
+ <info>Find the userdata specified by the QName @prefix:@name/@name.</info>
+ <return type='void *' info='the pointer to the userdata'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='prefix' type='const xmlChar *' info='the prefix of the userdata'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ </function>
+ <function name='xmlHashQLookup2' file='hash' module='hash'>
+ <info>Find the userdata specified by the QNames tuple</info>
+ <return type='void *' info='the pointer to the userdata'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='prefix' type='const xmlChar *' info='the prefix of the userdata'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='prefix2' type='const xmlChar *' info='the second prefix of the userdata'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
+ </function>
+ <function name='xmlHashQLookup3' file='hash' module='hash'>
+ <info>Find the userdata specified by the (@name, @name2, @name3) tuple.</info>
+ <return type='void *' info='the a pointer to the userdata'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='prefix' type='const xmlChar *' info='the prefix of the userdata'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='prefix2' type='const xmlChar *' info='the second prefix of the userdata'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
+ <arg name='prefix3' type='const xmlChar *' info='the third prefix of the userdata'/>
+ <arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
+ </function>
+ <function name='xmlHashRemoveEntry' file='hash' module='hash'>
+ <info>Find the userdata specified by the @name and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</info>
+ <return type='int' info='0 if the removal succeeded and -1 in case of error or not found.'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='f' type='xmlHashDeallocator' info='the deallocator function for removed item (if any)'/>
+ </function>
+ <function name='xmlHashRemoveEntry2' file='hash' module='hash'>
+ <info>Find the userdata specified by the (@name, @name2) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</info>
+ <return type='int' info='0 if the removal succeeded and -1 in case of error or not found.'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
+ <arg name='f' type='xmlHashDeallocator' info='the deallocator function for removed item (if any)'/>
+ </function>
+ <function name='xmlHashRemoveEntry3' file='hash' module='hash'>
+ <info>Find the userdata specified by the (@name, @name2, @name3) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</info>
+ <return type='int' info='0 if the removal succeeded and -1 in case of error or not found.'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
+ <arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
+ <arg name='f' type='xmlHashDeallocator' info='the deallocator function for removed item (if any)'/>
+ </function>
+ <function name='xmlHashScan' file='hash' module='hash'>
+ <info>Scan the hash @table and applied @f to each value.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='f' type='xmlHashScanner' info='the scanner function for items in the hash'/>
+ <arg name='data' type='void *' info='extra data passed to f'/>
+ </function>
+ <function name='xmlHashScan3' file='hash' module='hash'>
+ <info>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata or NULL'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata or NULL'/>
+ <arg name='name3' type='const xmlChar *' info='a third name of the userdata or NULL'/>
+ <arg name='f' type='xmlHashScanner' info='the scanner function for items in the hash'/>
+ <arg name='data' type='void *' info='extra data passed to f'/>
+ </function>
+ <function name='xmlHashScanFull' file='hash' module='hash'>
+ <info>Scan the hash @table and applied @f to each value.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='f' type='xmlHashScannerFull' info='the scanner function for items in the hash'/>
+ <arg name='data' type='void *' info='extra data passed to f'/>
+ </function>
+ <function name='xmlHashScanFull3' file='hash' module='hash'>
+ <info>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</info>
+ <return type='void'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata or NULL'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata or NULL'/>
+ <arg name='name3' type='const xmlChar *' info='a third name of the userdata or NULL'/>
+ <arg name='f' type='xmlHashScannerFull' info='the scanner function for items in the hash'/>
+ <arg name='data' type='void *' info='extra data passed to f'/>
+ </function>
+ <functype name='xmlHashScanner' file='hash' module='hash'>
+ <info>Callback when scanning data in a hash with the simple scanner.</info>
+ <return type='void'/>
+ <arg name='payload' type='void *' info='the data in the hash'/>
+ <arg name='data' type='void *' info='extra scanner data'/>
+ <arg name='name' type='const xmlChar *' info='the name associated'/>
+ </functype>
+ <functype name='xmlHashScannerFull' file='hash' module='hash'>
+ <info>Callback when scanning data in a hash with the full scanner.</info>
+ <return type='void'/>
+ <arg name='payload' type='void *' info='the data in the hash'/>
+ <arg name='data' type='void *' info='extra scanner data'/>
+ <arg name='name' type='const xmlChar *' info='the name associated'/>
+ <arg name='name2' type='const xmlChar *' info='the second name associated'/>
+ <arg name='name3' type='const xmlChar *' info='the third name associated'/>
+ </functype>
+ <function name='xmlHashSize' file='hash' module='hash'>
+ <info>Query the number of elements installed in the hash @table.</info>
+ <return type='int' info='the number of elements in the hash table or -1 in case of error'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ </function>
+ <function name='xmlHashUpdateEntry' file='hash' module='hash'>
+ <info>Add the @userdata to the hash @table. This can later be retrieved by using the @name. Existing entry for this @name will be removed and freed with @f if found.</info>
+ <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='userdata' type='void *' info='a pointer to the userdata'/>
+ <arg name='f' type='xmlHashDeallocator' info='the deallocator function for replaced item (if any)'/>
+ </function>
+ <function name='xmlHashUpdateEntry2' file='hash' module='hash'>
+ <info>Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Existing entry for this tuple will be removed and freed with @f if found.</info>
+ <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
+ <arg name='userdata' type='void *' info='a pointer to the userdata'/>
+ <arg name='f' type='xmlHashDeallocator' info='the deallocator function for replaced item (if any)'/>
+ </function>
+ <function name='xmlHashUpdateEntry3' file='hash' module='hash'>
+ <info>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Existing entry for this tuple will be removed and freed with @f if found.</info>
+ <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
+ <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
+ <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
+ <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
+ <arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
+ <arg name='userdata' type='void *' info='a pointer to the userdata'/>
+ <arg name='f' type='xmlHashDeallocator' info='the deallocator function for replaced item (if any)'/>
+ </function>
+ <function name='xmlIOFTPClose' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Close an FTP I/O channel</info>
+ <return type='int' info='0'/>
+ <arg name='context' type='void *' info='the I/O context'/>
+ </function>
+ <function name='xmlIOFTPMatch' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>check if the URI matches an FTP one</info>
+ <return type='int' info='1 if matches, 0 otherwise'/>
+ <arg name='filename' type='const char *' info='the URI for matching'/>
+ </function>
+ <function name='xmlIOFTPOpen' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>open an FTP I/O channel</info>
+ <return type='void *' info='an I/O context or NULL in case of error'/>
+ <arg name='filename' type='const char *' info='the URI for matching'/>
+ </function>
+ <function name='xmlIOFTPRead' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Read @len bytes to @buffer from the I/O channel.</info>
+ <return type='int' info='the number of bytes written'/>
+ <arg name='context' type='void *' info='the I/O context'/>
+ <arg name='buffer' type='char *' info='where to drop data'/>
+ <arg name='len' type='int' info='number of bytes to write'/>
+ </function>
+ <function name='xmlIOHTTPClose' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>Close an HTTP I/O channel</info>
+ <return type='int' info='0'/>
+ <arg name='context' type='void *' info='the I/O context'/>
+ </function>
+ <function name='xmlIOHTTPMatch' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>check if the URI matches an HTTP one</info>
+ <return type='int' info='1 if matches, 0 otherwise'/>
+ <arg name='filename' type='const char *' info='the URI for matching'/>
+ </function>
+ <function name='xmlIOHTTPOpen' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>open an HTTP I/O channel</info>
+ <return type='void *' info='an I/O context or NULL in case of error'/>
+ <arg name='filename' type='const char *' info='the URI for matching'/>
+ </function>
+ <function name='xmlIOHTTPOpenW' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_HTTP_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Open a temporary buffer to collect the document for a subsequent HTTP POST request. Non-static as is called from the output buffer creation routine.</info>
+ <return type='void *' info='an I/O context or NULL in case of error.'/>
+ <arg name='post_uri' type='const char *' info='The destination URI for the document'/>
+ <arg name='compression' type='int' info='The compression desired for the document.'/>
+ </function>
+ <function name='xmlIOHTTPRead' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>Read @len bytes to @buffer from the I/O channel.</info>
+ <return type='int' info='the number of bytes written'/>
+ <arg name='context' type='void *' info='the I/O context'/>
+ <arg name='buffer' type='char *' info='where to drop data'/>
+ <arg name='len' type='int' info='number of bytes to write'/>
+ </function>
+ <function name='xmlIOParseDTD' file='parser' module='parser'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Load and parse a DTD</info>
+ <return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error. @input will be freed by the function in any case.'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block or NULL'/>
+ <arg name='input' type='xmlParserInputBufferPtr' info='an Input Buffer'/>
+ <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlInitCharEncodingHandlers' file='encoding' module='encoding'>
+ <info>Initialize the char encoding support, it registers the default encoding supported. NOTE: while public, this function usually doesn&apos;t need to be called in normal processing.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlInitGlobals' file='globals' module='globals'>
+ <info>Additional initialisation for multi-threading</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlInitMemory' file='xmlmemory' module='xmlmemory'>
+ <info>Initialize the memory layer.</info>
+ <return type='int' info='0 on success'/>
+ </function>
+ <function name='xmlInitNodeInfoSeq' file='parser' module='parserInternals'>
+ <info>-- Initialize (set to initial state) node info sequence</info>
+ <return type='void'/>
+ <arg name='seq' type='xmlParserNodeInfoSeqPtr' info='a node info sequence pointer'/>
+ </function>
+ <function name='xmlInitParser' file='parser' module='parser'>
+ <info>Initialization function for the XML parser. This is not reentrant. Call once before processing in case of use in multithreaded programs.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlInitParserCtxt' file='parser' module='parserInternals'>
+ <info>Initialize a parser context</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlInitThreads' file='threads' module='threads'>
+ <info>xmlInitThreads() is used to to initialize all the thread related data of the libxml2 library.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlInitializeCatalog' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Do the catalog initialization. this function is not thread safe, catalog initialization should preferably be done once at startup</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlInitializeDict' file='dict' module='dict'>
+ <info>Do the dictionary mutex initialization. this function is deprecated</info>
+ <return type='int' info='0 if initialization was already done, and 1 if that call led to the initialization'/>
+ </function>
+ <function name='xmlInitializeGlobalState' file='globals' module='globals'>
+ <info>xmlInitializeGlobalState() initialize a global state with all the default values of the library.</info>
+ <return type='void'/>
+ <arg name='gs' type='xmlGlobalStatePtr' info='a pointer to a newly allocated global state'/>
+ </function>
+ <function name='xmlInitializePredefinedEntities' file='entities' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Set up the predefined entities. Deprecated call</info>
+ <return type='void'/>
+ </function>
+ <functype name='xmlInputCloseCallback' file='xmlIO' module='xmlIO'>
+ <info>Callback used in the I/O Input API to close the resource</info>
+ <return type='int' info='0 or -1 in case of error'/>
+ <arg name='context' type='void *' info='an Input context'/>
+ </functype>
+ <functype name='xmlInputMatchCallback' file='xmlIO' module='xmlIO'>
+ <info>Callback used in the I/O Input API to detect if the current handler can provide input functionality for this resource.</info>
+ <return type='int' info='1 if yes and 0 if another Input module should be used'/>
+ <arg name='filename' type='char const *' info='the filename or URI'/>
+ </functype>
+ <functype name='xmlInputOpenCallback' file='xmlIO' module='xmlIO'>
+ <info>Callback used in the I/O Input API to open the resource</info>
+ <return type='void *' info='an Input context or NULL in case or error'/>
+ <arg name='filename' type='char const *' info='the filename or URI'/>
+ </functype>
+ <functype name='xmlInputReadCallback' file='xmlIO' module='xmlIO'>
+ <info>Callback used in the I/O Input API to read the resource</info>
+ <return type='int' info='the number of bytes read or -1 in case of error'/>
+ <arg name='context' type='void *' info='an Input context'/>
+ <arg name='buffer' type='char *' info='the buffer to store data read'/>
+ <arg name='len' type='int' info='the length of the buffer in bytes'/>
+ </functype>
+ <function name='xmlIsBaseChar' file='chvalid' module='chvalid'>
+ <info>This function is DEPRECATED. Use xmlIsBaseChar_ch or xmlIsBaseCharQ instead</info>
+ <return type='int' info='true if argument valid, false otherwise'/>
+ <arg name='ch' type='unsigned int' info='character to validate'/>
+ </function>
+ <function name='xmlIsBlank' file='chvalid' module='chvalid'>
+ <info>This function is DEPRECATED. Use xmlIsBlank_ch or xmlIsBlankQ instead</info>
+ <return type='int' info='true if argument valid, false otherwise'/>
+ <arg name='ch' type='unsigned int' info='character to validate'/>
+ </function>
+ <function name='xmlIsBlankNode' file='tree' module='tree'>
+ <info>Checks whether this node is an empty or whitespace only (and possibly ignorable) text-node.</info>
+ <return type='int' info='1 yes, 0 no'/>
+ <arg name='node' type='const xmlNode *' info='the node'/>
+ </function>
+ <function name='xmlIsChar' file='chvalid' module='chvalid'>
+ <info>This function is DEPRECATED. Use xmlIsChar_ch or xmlIsCharQ instead</info>
+ <return type='int' info='true if argument valid, false otherwise'/>
+ <arg name='ch' type='unsigned int' info='character to validate'/>
+ </function>
+ <function name='xmlIsCombining' file='chvalid' module='chvalid'>
+ <info>This function is DEPRECATED. Use xmlIsCombiningQ instead</info>
+ <return type='int' info='true if argument valid, false otherwise'/>
+ <arg name='ch' type='unsigned int' info='character to validate'/>
+ </function>
+ <function name='xmlIsDigit' file='chvalid' module='chvalid'>
+ <info>This function is DEPRECATED. Use xmlIsDigit_ch or xmlIsDigitQ instead</info>
+ <return type='int' info='true if argument valid, false otherwise'/>
+ <arg name='ch' type='unsigned int' info='character to validate'/>
+ </function>
+ <function name='xmlIsExtender' file='chvalid' module='chvalid'>
+ <info>This function is DEPRECATED. Use xmlIsExtender_ch or xmlIsExtenderQ instead</info>
+ <return type='int' info='true if argument valid, false otherwise'/>
+ <arg name='ch' type='unsigned int' info='character to validate'/>
+ </function>
+ <function name='xmlIsID' file='valid' module='valid'>
+ <info>Determine whether an attribute is of type ID. In case we have DTD(s) then this is done if DTD loading has been requested. In the case of HTML documents parsed with the HTML parser, then ID detection is done systematically.</info>
+ <return type='int' info='0 or 1 depending on the lookup result'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='elem' type='xmlNodePtr' info='the element carrying the attribute'/>
+ <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
+ </function>
+ <function name='xmlIsIdeographic' file='chvalid' module='chvalid'>
+ <info>This function is DEPRECATED. Use xmlIsIdeographicQ instead</info>
+ <return type='int' info='true if argument valid, false otherwise'/>
+ <arg name='ch' type='unsigned int' info='character to validate'/>
+ </function>
+ <function name='xmlIsLetter' file='parserInternals' module='parserInternals'>
+ <info>Check whether the character is allowed by the production [84] Letter ::= BaseChar | Ideographic</info>
+ <return type='int' info='0 if not, non-zero otherwise'/>
+ <arg name='c' type='int' info='an unicode character (int)'/>
+ </function>
+ <function name='xmlIsMainThread' file='threads' module='threads'>
+ <info>xmlIsMainThread() check whether the current thread is the main thread.</info>
+ <return type='int' info='1 if the current thread is the main thread, 0 otherwise'/>
+ </function>
+ <function name='xmlIsMixedElement' file='valid' module='valid'>
+ <info>Search in the DtDs whether an element accept Mixed content (or ANY) basically if it is supposed to accept text childs</info>
+ <return type='int' info='0 if no, 1 if yes, and -1 if no element description is available'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='name' type='const xmlChar *' info='the element name'/>
+ </function>
+ <function name='xmlIsPubidChar' file='chvalid' module='chvalid'>
+ <info>This function is DEPRECATED. Use xmlIsPubidChar_ch or xmlIsPubidCharQ instead</info>
+ <return type='int' info='true if argument valid, false otherwise'/>
+ <arg name='ch' type='unsigned int' info='character to validate'/>
+ </function>
+ <function name='xmlIsRef' file='valid' module='valid'>
+ <info>Determine whether an attribute is of type Ref. In case we have DTD(s) then this is simple, otherwise we use an heuristic: name Ref (upper or lowercase).</info>
+ <return type='int' info='0 or 1 depending on the lookup result'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='elem' type='xmlNodePtr' info='the element carrying the attribute'/>
+ <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
+ </function>
+ <function name='xmlIsXHTML' file='tree' module='xmlsave'>
+ <info>Try to find if the document correspond to an XHTML DTD</info>
+ <return type='int' info='1 if true, 0 if not and -1 in case of error'/>
+ <arg name='systemID' type='const xmlChar *' info='the system identifier'/>
+ <arg name='publicID' type='const xmlChar *' info='the public identifier'/>
+ </function>
+ <function name='xmlKeepBlanksDefault' file='parser' module='parserInternals'>
+ <info>Set and return the previous value for default blanks text nodes support. The 1.x version of the parser used an heuristic to try to detect ignorable white spaces. As a result the SAX callback was generating xmlSAX2IgnorableWhitespace() callbacks instead of characters() one, and when using the DOM output text nodes containing those blanks were not generated. The 2.x and later version will switch to the XML standard way and ignorableWhitespace() are only generated when running the parser in validating mode and when the current element doesn&apos;t allow CDATA or mixed content. This function is provided as a way to force the standard behavior on 1.X libs and to switch back to the old mode for compatibility when running 1.X client code on 2.X . Upgrade of 1.X code should be done by using xmlIsBlankNode() commodity function to detect the &quot;empty&quot; nodes generated. This value also affect autogeneration of indentation when saving code if blanks sections are kept, indentation is not generated.</info>
+ <return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
+ <arg name='val' type='int' info='int 0 or 1'/>
+ </function>
+ <function name='xmlLastElementChild' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Finds the last child node of that element which is a Element node Note the handling of entities references is different than in the W3C DOM element traversal spec since we don&apos;t have back reference from entities content to entities references.</info>
+ <return type='xmlNodePtr' info='the last element child or NULL if not available'/>
+ <arg name='parent' type='xmlNodePtr' info='the parent node'/>
+ </function>
+ <function name='xmlLineNumbersDefault' file='parser' module='parserInternals'>
+ <info>Set and return the previous value for enabling line numbers in elements contents. This may break on old application and is turned off by default.</info>
+ <return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
+ <arg name='val' type='int' info='int 0 or 1'/>
+ </function>
+ <function name='xmlLinkGetData' file='list' module='list'>
+ <info>See Returns.</info>
+ <return type='void *' info='a pointer to the data referenced from this link'/>
+ <arg name='lk' type='xmlLinkPtr' info='a link'/>
+ </function>
+ <function name='xmlListAppend' file='list' module='list'>
+ <info>Insert data in the ordered list at the end for this value</info>
+ <return type='int' info='0 in case of success, 1 in case of failure'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='data' type='void *' info='the data'/>
+ </function>
+ <function name='xmlListClear' file='list' module='list'>
+ <info>Remove the all data in the list</info>
+ <return type='void'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ </function>
+ <function name='xmlListCopy' file='list' module='list'>
+ <info>Move all the element from the old list in the new list</info>
+ <return type='int' info='0 in case of success 1 in case of error'/>
+ <arg name='cur' type='xmlListPtr' info='the new list'/>
+ <arg name='old' type='const xmlListPtr' info='the old list'/>
+ </function>
+ <function name='xmlListCreate' file='list' module='list'>
+ <info>Create a new list</info>
+ <return type='xmlListPtr' info='the new list or NULL in case of error'/>
+ <arg name='deallocator' type='xmlListDeallocator' info='an optional deallocator function'/>
+ <arg name='compare' type='xmlListDataCompare' info='an optional comparison function'/>
+ </function>
+ <functype name='xmlListDataCompare' file='list' module='list'>
+ <info>Callback function used to compare 2 data.</info>
+ <return type='int' info='0 is equality, -1 or 1 otherwise depending on the ordering.'/>
+ <arg name='data0' type='const void *' info='the first data'/>
+ <arg name='data1' type='const void *' info='the second data'/>
+ </functype>
+ <functype name='xmlListDeallocator' file='list' module='list'>
+ <info>Callback function used to free data from a list.</info>
+ <return type='void'/>
+ <arg name='lk' type='xmlLinkPtr' info='the data to deallocate'/>
+ </functype>
+ <function name='xmlListDelete' file='list' module='list'>
+ <info>Deletes the list and its associated data</info>
+ <return type='void'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ </function>
+ <function name='xmlListDup' file='list' module='list'>
+ <info>Duplicate the list</info>
+ <return type='xmlListPtr' info='a new copy of the list or NULL in case of error'/>
+ <arg name='old' type='const xmlListPtr' info='the list'/>
+ </function>
+ <function name='xmlListEmpty' file='list' module='list'>
+ <info>Is the list empty ?</info>
+ <return type='int' info='1 if the list is empty, 0 if not empty and -1 in case of error'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ </function>
+ <function name='xmlListEnd' file='list' module='list'>
+ <info>Get the last element in the list</info>
+ <return type='xmlLinkPtr' info='the last element in the list, or NULL'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ </function>
+ <function name='xmlListFront' file='list' module='list'>
+ <info>Get the first element in the list</info>
+ <return type='xmlLinkPtr' info='the first element in the list, or NULL'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ </function>
+ <function name='xmlListInsert' file='list' module='list'>
+ <info>Insert data in the ordered list at the beginning for this value</info>
+ <return type='int' info='0 in case of success, 1 in case of failure'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='data' type='void *' info='the data'/>
+ </function>
+ <function name='xmlListMerge' file='list' module='list'>
+ <info>include all the elements of the second list in the first one and clear the second list</info>
+ <return type='void'/>
+ <arg name='l1' type='xmlListPtr' info='the original list'/>
+ <arg name='l2' type='xmlListPtr' info='the new list'/>
+ </function>
+ <function name='xmlListPopBack' file='list' module='list'>
+ <info>Removes the last element in the list</info>
+ <return type='void'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ </function>
+ <function name='xmlListPopFront' file='list' module='list'>
+ <info>Removes the first element in the list</info>
+ <return type='void'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ </function>
+ <function name='xmlListPushBack' file='list' module='list'>
+ <info>add the new data at the end of the list</info>
+ <return type='int' info='1 if successful, 0 otherwise'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='data' type='void *' info='new data'/>
+ </function>
+ <function name='xmlListPushFront' file='list' module='list'>
+ <info>add the new data at the beginning of the list</info>
+ <return type='int' info='1 if successful, 0 otherwise'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='data' type='void *' info='new data'/>
+ </function>
+ <function name='xmlListRemoveAll' file='list' module='list'>
+ <info>Remove the all instance associated to data in the list</info>
+ <return type='int' info='the number of deallocation, or 0 if not found'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='data' type='void *' info='list data'/>
+ </function>
+ <function name='xmlListRemoveFirst' file='list' module='list'>
+ <info>Remove the first instance associated to data in the list</info>
+ <return type='int' info='1 if a deallocation occurred, or 0 if not found'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='data' type='void *' info='list data'/>
+ </function>
+ <function name='xmlListRemoveLast' file='list' module='list'>
+ <info>Remove the last instance associated to data in the list</info>
+ <return type='int' info='1 if a deallocation occurred, or 0 if not found'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='data' type='void *' info='list data'/>
+ </function>
+ <function name='xmlListReverse' file='list' module='list'>
+ <info>Reverse the order of the elements in the list</info>
+ <return type='void'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ </function>
+ <function name='xmlListReverseSearch' file='list' module='list'>
+ <info>Search the list in reverse order for an existing value of @data</info>
+ <return type='void *' info='the value associated to @data or NULL in case of error'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='data' type='void *' info='a search value'/>
+ </function>
+ <function name='xmlListReverseWalk' file='list' module='list'>
+ <info>Walk all the element of the list in reverse order and apply the walker function to it</info>
+ <return type='void'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='walker' type='xmlListWalker' info='a processing function'/>
+ <arg name='user' type='void *' info='a user parameter passed to the walker function'/>
+ </function>
+ <function name='xmlListSearch' file='list' module='list'>
+ <info>Search the list for an existing value of @data</info>
+ <return type='void *' info='the value associated to @data or NULL in case of error'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='data' type='void *' info='a search value'/>
+ </function>
+ <function name='xmlListSize' file='list' module='list'>
+ <info>Get the number of elements in the list</info>
+ <return type='int' info='the number of elements in the list or -1 in case of error'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ </function>
+ <function name='xmlListSort' file='list' module='list'>
+ <info>Sort all the elements in the list</info>
+ <return type='void'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ </function>
+ <function name='xmlListWalk' file='list' module='list'>
+ <info>Walk all the element of the first from first to last and apply the walker function to it</info>
+ <return type='void'/>
+ <arg name='l' type='xmlListPtr' info='a list'/>
+ <arg name='walker' type='xmlListWalker' info='a processing function'/>
+ <arg name='user' type='void *' info='a user parameter passed to the walker function'/>
+ </function>
+ <functype name='xmlListWalker' file='list' module='list'>
+ <info>Callback function used when walking a list with xmlListWalk().</info>
+ <return type='int' info='0 to stop walking the list, 1 otherwise.'/>
+ <arg name='data' type='const void *' info='the data found in the list'/>
+ <arg name='user' type='void *' info='extra user provided data to the walker'/>
+ </functype>
+ <function name='xmlLoadACatalog' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Load the catalog and build the associated data structures. This can be either an XML Catalog or an SGML Catalog It will recurse in SGML CATALOG entries. On the other hand XML Catalogs are not handled recursively.</info>
+ <return type='xmlCatalogPtr' info='the catalog parsed or NULL in case of error'/>
+ <arg name='filename' type='const char *' info='a file path'/>
+ </function>
+ <function name='xmlLoadCatalog' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Load the catalog and makes its definitions effective for the default external entity loader. It will recurse in SGML CATALOG entries. this function is not thread safe, catalog initialization should preferably be done once at startup</info>
+ <return type='int' info='0 in case of success -1 in case of error'/>
+ <arg name='filename' type='const char *' info='a file path'/>
+ </function>
+ <function name='xmlLoadCatalogs' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Load the catalogs and makes their definitions effective for the default external entity loader. this function is not thread safe, catalog initialization should preferably be done once at startup</info>
+ <return type='void'/>
+ <arg name='pathss' type='const char *' info='a list of directories separated by a colon or a space.'/>
+ </function>
+ <function name='xmlLoadExternalEntity' file='parser' module='xmlIO'>
+ <info>Load an external entity, note that the use of this function for unparsed entities may generate problems</info>
+ <return type='xmlParserInputPtr' info='the xmlParserInputPtr or NULL'/>
+ <arg name='URL' type='const char *' info='the URL for the entity to load'/>
+ <arg name='ID' type='const char *' info='the Public ID for the entity to load'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the context in which the entity is called or NULL'/>
+ </function>
+ <function name='xmlLoadSGMLSuperCatalog' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>Load an SGML super catalog. It won&apos;t expand CATALOG or DELEGATE references. This is only needed for manipulating SGML Super Catalogs like adding and removing CATALOG or DELEGATE entries.</info>
+ <return type='xmlCatalogPtr' info='the catalog parsed or NULL in case of error'/>
+ <arg name='filename' type='const char *' info='a file path'/>
+ </function>
+ <function name='xmlLockLibrary' file='threads' module='threads'>
+ <info>xmlLockLibrary() is used to take out a re-entrant lock on the libxml2 library.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlLsCountNode' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Count the children of @node.</info>
+ <return type='int' info='the number of children of @node.'/>
+ <arg name='node' type='xmlNodePtr' info='the node to count'/>
+ </function>
+ <function name='xmlLsOneNode' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dump to @output the type and name of @node.</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='node' type='xmlNodePtr' info='the node to dump'/>
+ </function>
+ <function name='xmlMallocAtomicLoc' file='xmlmemory' module='xmlmemory'>
+ <info>a malloc() equivalent, with logging of the allocation info.</info>
+ <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
+ <arg name='size' type='size_t' info='an unsigned int specifying the size in byte to allocate.'/>
+ <arg name='file' type='const char *' info='the file name or NULL'/>
+ <arg name='line' type='int' info='the line number'/>
+ </function>
+ <functype name='xmlMallocFunc' file='xmlmemory' module='xmlmemory'>
+ <info>Signature for a malloc() implementation.</info>
+ <return type='void *' info='a pointer to the newly allocated block or NULL in case of error.'/>
+ <arg name='size' type='size_t' info='the size requested in bytes'/>
+ </functype>
+ <function name='xmlMallocLoc' file='xmlmemory' module='xmlmemory'>
+ <info>a malloc() equivalent, with logging of the allocation info.</info>
+ <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
+ <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
+ <arg name='file' type='const char *' info='the file name or NULL'/>
+ <arg name='line' type='int' info='the line number'/>
+ </function>
+ <function name='xmlMemBlocks' file='xmlmemory' module='xmlmemory'>
+ <info>Provides the number of memory areas currently allocated</info>
+ <return type='int' info='an int representing the number of blocks'/>
+ </function>
+ <function name='xmlMemDisplay' file='xmlmemory' module='xmlmemory'>
+ <info>show in-extenso the memory blocks allocated</info>
+ <return type='void'/>
+ <arg name='fp' type='FILE *' info='a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist'/>
+ </function>
+ <function name='xmlMemDisplayLast' file='xmlmemory' module='xmlmemory'>
+ <info>the last nbBytes of memory allocated and not freed, useful for dumping the memory left allocated between two places at runtime.</info>
+ <return type='void'/>
+ <arg name='fp' type='FILE *' info='a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist'/>
+ <arg name='nbBytes' type='long' info='the amount of memory to dump'/>
+ </function>
+ <function name='xmlMemFree' file='xmlmemory' module='xmlmemory'>
+ <info>a free() equivalent, with error checking.</info>
+ <return type='void'/>
+ <arg name='ptr' type='void *' info='the memory block pointer'/>
+ </function>
+ <function name='xmlMemGet' file='xmlmemory' module='xmlmemory'>
+ <info>Provides the memory access functions set currently in use</info>
+ <return type='int' info='0 on success'/>
+ <arg name='freeFunc' type='xmlFreeFunc *' info='place to save the free() function in use'/>
+ <arg name='mallocFunc' type='xmlMallocFunc *' info='place to save the malloc() function in use'/>
+ <arg name='reallocFunc' type='xmlReallocFunc *' info='place to save the realloc() function in use'/>
+ <arg name='strdupFunc' type='xmlStrdupFunc *' info='place to save the strdup() function in use'/>
+ </function>
+ <function name='xmlMemMalloc' file='xmlmemory' module='xmlmemory'>
+ <info>a malloc() equivalent, with logging of the allocation info.</info>
+ <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
+ <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
+ </function>
+ <function name='xmlMemRealloc' file='xmlmemory' module='xmlmemory'>
+ <info>a realloc() equivalent, with logging of the allocation info.</info>
+ <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
+ <arg name='ptr' type='void *' info='the initial memory block pointer'/>
+ <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
+ </function>
+ <function name='xmlMemSetup' file='xmlmemory' module='xmlmemory'>
+ <info>Override the default memory access functions with a new set This has to be called before any other libxml routines ! Should this be blocked if there was already some allocations done ?</info>
+ <return type='int' info='0 on success'/>
+ <arg name='freeFunc' type='xmlFreeFunc' info='the free() function to use'/>
+ <arg name='mallocFunc' type='xmlMallocFunc' info='the malloc() function to use'/>
+ <arg name='reallocFunc' type='xmlReallocFunc' info='the realloc() function to use'/>
+ <arg name='strdupFunc' type='xmlStrdupFunc' info='the strdup() function to use'/>
+ </function>
+ <function name='xmlMemShow' file='xmlmemory' module='xmlmemory'>
+ <info>show a show display of the memory allocated, and dump the @nr last allocated areas which were not freed</info>
+ <return type='void'/>
+ <arg name='fp' type='FILE *' info='a FILE descriptor used as the output file'/>
+ <arg name='nr' type='int' info='number of entries to dump'/>
+ </function>
+ <function name='xmlMemStrdupLoc' file='xmlmemory' module='xmlmemory'>
+ <info>a strdup() equivalent, with logging of the allocation info.</info>
+ <return type='char *' info='a pointer to the new string or NULL if allocation error occurred.'/>
+ <arg name='str' type='const char *' info='the initial string pointer'/>
+ <arg name='file' type='const char *' info='the file name or NULL'/>
+ <arg name='line' type='int' info='the line number'/>
+ </function>
+ <function name='xmlMemUsed' file='xmlmemory' module='xmlmemory'>
+ <info>Provides the amount of memory currently allocated</info>
+ <return type='int' info='an int representing the amount of memory allocated.'/>
+ </function>
+ <function name='xmlMemoryDump' file='xmlmemory' module='xmlmemory'>
+ <info>Dump in-extenso the memory blocks allocated to the file .memorylist</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlMemoryStrdup' file='xmlmemory' module='xmlmemory'>
+ <info>a strdup() equivalent, with logging of the allocation info.</info>
+ <return type='char *' info='a pointer to the new string or NULL if allocation error occurred.'/>
+ <arg name='str' type='const char *' info='the initial string pointer'/>
+ </function>
+ <function name='xmlModuleClose' file='xmlmodule' module='xmlmodule'>
+ <cond>defined(LIBXML_MODULES_ENABLED)</cond>
+ <info>The close operations unload the associated module and free the data associated to the module.</info>
+ <return type='int' info='0 in case of success, -1 in case of argument error and -2 if the module could not be closed/unloaded.'/>
+ <arg name='module' type='xmlModulePtr' info='the module handle'/>
+ </function>
+ <function name='xmlModuleFree' file='xmlmodule' module='xmlmodule'>
+ <cond>defined(LIBXML_MODULES_ENABLED)</cond>
+ <info>The free operations free the data associated to the module but does not unload the associated shared library which may still be in use.</info>
+ <return type='int' info='0 in case of success, -1 in case of argument error'/>
+ <arg name='module' type='xmlModulePtr' info='the module handle'/>
+ </function>
+ <function name='xmlModuleOpen' file='xmlmodule' module='xmlmodule'>
+ <cond>defined(LIBXML_MODULES_ENABLED)</cond>
+ <info>Opens a module/shared library given its name or path NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We cannot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * . TODO: options are not yet implemented.</info>
+ <return type='xmlModulePtr' info='a handle for the module or NULL in case of error'/>
+ <arg name='name' type='const char *' info='the module name'/>
+ <arg name='options' type='int' info='a set of xmlModuleOption'/>
+ </function>
+ <function name='xmlModuleSymbol' file='xmlmodule' module='xmlmodule'>
+ <cond>defined(LIBXML_MODULES_ENABLED)</cond>
+ <info>Lookup for a symbol address in the given module NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We cannot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * .</info>
+ <return type='int' info='0 if the symbol was found, or -1 in case of error'/>
+ <arg name='module' type='xmlModulePtr' info='the module'/>
+ <arg name='name' type='const char *' info='the name of the symbol'/>
+ <arg name='symbol' type='void **' info='the resulting symbol address'/>
+ </function>
+ <function name='xmlMutexLock' file='threads' module='threads'>
+ <info>xmlMutexLock() is used to lock a libxml2 token.</info>
+ <return type='void'/>
+ <arg name='tok' type='xmlMutexPtr' info='the simple mutex'/>
+ </function>
+ <function name='xmlMutexUnlock' file='threads' module='threads'>
+ <info>xmlMutexUnlock() is used to unlock a libxml2 token.</info>
+ <return type='void'/>
+ <arg name='tok' type='xmlMutexPtr' info='the simple mutex'/>
+ </function>
+ <function name='xmlNamespaceParseNCName' file='parserInternals' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>parse an XML namespace name. TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. [NS 3] NCName ::= (Letter | &apos;_&apos;) (NCNameChar)* [NS 4] NCNameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | CombiningChar | Extender</info>
+ <return type='xmlChar *' info='the namespace name or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlNamespaceParseNSDef' file='parserInternals' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>parse a namespace prefix declaration TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. [NS 1] NSDef ::= PrefixDef Eq SystemLiteral [NS 2] PrefixDef ::= &apos;xmlns&apos; (&apos;:&apos; NCName)?</info>
+ <return type='xmlChar *' info='the namespace name'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlNamespaceParseQName' file='parserInternals' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. parse an XML qualified name [NS 5] QName ::= (Prefix &apos;:&apos;)? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</info>
+ <return type='xmlChar *' info='the local part, and prefix is updated to get the Prefix if any.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
+ </function>
+ <function name='xmlNanoFTPCheckResponse' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Check if there is a response from the FTP server after a command.</info>
+ <return type='int' info='the code number, or 0'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ </function>
+ <function name='xmlNanoFTPCleanup' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Cleanup the FTP protocol layer. This cleanup proxy informations.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlNanoFTPClose' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Close the connection and both control and transport</info>
+ <return type='int' info='-1 incase of error, 0 otherwise'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ </function>
+ <function name='xmlNanoFTPCloseConnection' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Close the data connection from the server</info>
+ <return type='int' info='-1 incase of error, 0 otherwise'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ </function>
+ <function name='xmlNanoFTPConnect' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Tries to open a control connection</info>
+ <return type='int' info='-1 in case of error, 0 otherwise'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ </function>
+ <function name='xmlNanoFTPConnectTo' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Tries to open a control connection to the given server/port</info>
+ <return type='void *' info='an fTP context or NULL if it failed'/>
+ <arg name='server' type='const char *' info='an FTP server name'/>
+ <arg name='port' type='int' info='the port (use 21 if 0)'/>
+ </function>
+ <function name='xmlNanoFTPCwd' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Tries to change the remote directory</info>
+ <return type='int' info='-1 incase of error, 1 if CWD worked, 0 if it failed'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ <arg name='directory' type='const char *' info='a directory on the server'/>
+ </function>
+ <function name='xmlNanoFTPDele' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Tries to delete an item (file or directory) from server</info>
+ <return type='int' info='-1 incase of error, 1 if DELE worked, 0 if it failed'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ <arg name='file' type='const char *' info='a file or directory on the server'/>
+ </function>
+ <function name='xmlNanoFTPFreeCtxt' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Frees the context after closing the connection.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ </function>
+ <function name='xmlNanoFTPGet' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Fetch the given file from the server. All data are passed back in the callbacks. The last callback has a size of 0 block.</info>
+ <return type='int' info='-1 incase of error, 0 otherwise'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ <arg name='callback' type='ftpDataCallback' info='the user callback'/>
+ <arg name='userData' type='void *' info='the user callback data'/>
+ <arg name='filename' type='const char *' info='the file to retrieve'/>
+ </function>
+ <function name='xmlNanoFTPGetConnection' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Try to open a data connection to the server. Currently only passive mode is supported.</info>
+ <return type='SOCKET' info='-1 incase of error, 0 otherwise'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ </function>
+ <function name='xmlNanoFTPGetResponse' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Get the response from the FTP server after a command.</info>
+ <return type='int' info='the code number'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ </function>
+ <function name='xmlNanoFTPGetSocket' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Initiate fetch of the given file from the server.</info>
+ <return type='SOCKET' info='the socket for the data connection, or &lt;0 in case of error'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ <arg name='filename' type='const char *' info='the file to retrieve (or NULL if path is in context).'/>
+ </function>
+ <function name='xmlNanoFTPInit' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Initialize the FTP protocol layer. Currently it just checks for proxy informations, and get the hostname</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlNanoFTPList' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Do a listing on the server. All files info are passed back in the callbacks.</info>
+ <return type='int' info='-1 incase of error, 0 otherwise'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ <arg name='callback' type='ftpListCallback' info='the user callback'/>
+ <arg name='userData' type='void *' info='the user callback data'/>
+ <arg name='filename' type='const char *' info='optional files to list'/>
+ </function>
+ <function name='xmlNanoFTPNewCtxt' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Allocate and initialize a new FTP context.</info>
+ <return type='void *' info='an FTP context or NULL in case of error.'/>
+ <arg name='URL' type='const char *' info='The URL used to initialize the context'/>
+ </function>
+ <function name='xmlNanoFTPOpen' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Start to fetch the given ftp:// resource</info>
+ <return type='void *' info='an FTP context, or NULL'/>
+ <arg name='URL' type='const char *' info='the URL to the resource'/>
+ </function>
+ <function name='xmlNanoFTPProxy' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Setup the FTP proxy informations. This can also be done by using ftp_proxy ftp_proxy_user and ftp_proxy_password environment variables.</info>
+ <return type='void'/>
+ <arg name='host' type='const char *' info='the proxy host name'/>
+ <arg name='port' type='int' info='the proxy port'/>
+ <arg name='user' type='const char *' info='the proxy user name'/>
+ <arg name='passwd' type='const char *' info='the proxy password'/>
+ <arg name='type' type='int' info='the type of proxy 1 for using SITE, 2 for USER a@b'/>
+ </function>
+ <function name='xmlNanoFTPQuit' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Send a QUIT command to the server</info>
+ <return type='int' info='-1 in case of error, 0 otherwise'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ </function>
+ <function name='xmlNanoFTPRead' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>This function tries to read @len bytes from the existing FTP connection and saves them in @dest. This is a blocking call.</info>
+ <return type='int' info='the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.'/>
+ <arg name='ctx' type='void *' info='the FTP context'/>
+ <arg name='dest' type='void *' info='a buffer'/>
+ <arg name='len' type='int' info='the buffer length'/>
+ </function>
+ <function name='xmlNanoFTPScanProxy' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>(Re)Initialize the FTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like ftp://myproxy/ or ftp://myproxy:3128/ A NULL URL cleans up proxy informations.</info>
+ <return type='void'/>
+ <arg name='URL' type='const char *' info='The proxy URL used to initialize the proxy context'/>
+ </function>
+ <function name='xmlNanoFTPUpdateURL' file='nanoftp' module='nanoftp'>
+ <cond>defined(LIBXML_FTP_ENABLED)</cond>
+ <info>Update an FTP context by parsing the URL and finding new path it indicates. If there is an error in the protocol, hostname, port or other information, the error is raised. It indicates a new connection has to be established.</info>
+ <return type='int' info='0 if Ok, -1 in case of error (other host).'/>
+ <arg name='ctx' type='void *' info='an FTP context'/>
+ <arg name='URL' type='const char *' info='The URL used to update the context'/>
+ </function>
+ <function name='xmlNanoHTTPAuthHeader' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>Get the authentication header of an HTTP context</info>
+ <return type='const char *' info='the stashed value of the WWW-Authenticate or Proxy-Authenticate header.'/>
+ <arg name='ctx' type='void *' info='the HTTP context'/>
+ </function>
+ <function name='xmlNanoHTTPCleanup' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>Cleanup the HTTP protocol layer.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlNanoHTTPClose' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>This function closes an HTTP context, it ends up the connection and free all data related to it.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the HTTP context'/>
+ </function>
+ <function name='xmlNanoHTTPContentLength' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>Provides the specified content length from the HTTP header.</info>
+ <return type='int' info='the specified content length from the HTTP header. Note that a value of -1 indicates that the content length element was not included in the response header.'/>
+ <arg name='ctx' type='void *' info='the HTTP context'/>
+ </function>
+ <function name='xmlNanoHTTPEncoding' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>Provides the specified encoding if specified in the HTTP headers.</info>
+ <return type='const char *' info='the specified encoding or NULL if not available'/>
+ <arg name='ctx' type='void *' info='the HTTP context'/>
+ </function>
+ <function name='xmlNanoHTTPFetch' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>This function try to fetch the indicated resource via HTTP GET and save it&apos;s content in the file.</info>
+ <return type='int' info='-1 in case of failure, 0 incase of success. The contentType, if provided must be freed by the caller'/>
+ <arg name='URL' type='const char *' info='The URL to load'/>
+ <arg name='filename' type='const char *' info='the filename where the content should be saved'/>
+ <arg name='contentType' type='char **' info='if available the Content-Type information will be returned at that location'/>
+ </function>
+ <function name='xmlNanoHTTPInit' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>Initialize the HTTP protocol layer. Currently it just checks for proxy informations</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlNanoHTTPMethod' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.</info>
+ <return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller'/>
+ <arg name='URL' type='const char *' info='The URL to load'/>
+ <arg name='method' type='const char *' info='the HTTP method to use'/>
+ <arg name='input' type='const char *' info='the input string if any'/>
+ <arg name='contentType' type='char **' info='the Content-Type information IN and OUT'/>
+ <arg name='headers' type='const char *' info='the extra headers'/>
+ <arg name='ilen' type='int' info='input length'/>
+ </function>
+ <function name='xmlNanoHTTPMethodRedir' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.</info>
+ <return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, or redir, if provided must be freed by the caller'/>
+ <arg name='URL' type='const char *' info='The URL to load'/>
+ <arg name='method' type='const char *' info='the HTTP method to use'/>
+ <arg name='input' type='const char *' info='the input string if any'/>
+ <arg name='contentType' type='char **' info='the Content-Type information IN and OUT'/>
+ <arg name='redir' type='char **' info='the redirected URL OUT'/>
+ <arg name='headers' type='const char *' info='the extra headers'/>
+ <arg name='ilen' type='int' info='input length'/>
+ </function>
+ <function name='xmlNanoHTTPMimeType' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>Provides the specified Mime-Type if specified in the HTTP headers.</info>
+ <return type='const char *' info='the specified Mime-Type or NULL if not available'/>
+ <arg name='ctx' type='void *' info='the HTTP context'/>
+ </function>
+ <function name='xmlNanoHTTPOpen' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>This function try to open a connection to the indicated resource via HTTP GET.</info>
+ <return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller'/>
+ <arg name='URL' type='const char *' info='The URL to load'/>
+ <arg name='contentType' type='char **' info='if available the Content-Type information will be returned at that location'/>
+ </function>
+ <function name='xmlNanoHTTPOpenRedir' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>This function try to open a connection to the indicated resource via HTTP GET.</info>
+ <return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller'/>
+ <arg name='URL' type='const char *' info='The URL to load'/>
+ <arg name='contentType' type='char **' info='if available the Content-Type information will be returned at that location'/>
+ <arg name='redir' type='char **' info='if available the redirected URL will be returned'/>
+ </function>
+ <function name='xmlNanoHTTPRead' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>This function tries to read @len bytes from the existing HTTP connection and saves them in @dest. This is a blocking call.</info>
+ <return type='int' info='the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.'/>
+ <arg name='ctx' type='void *' info='the HTTP context'/>
+ <arg name='dest' type='void *' info='a buffer'/>
+ <arg name='len' type='int' info='the buffer length'/>
+ </function>
+ <function name='xmlNanoHTTPRedir' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>Provides the specified redirection URL if available from the HTTP header.</info>
+ <return type='const char *' info='the specified redirection URL or NULL if not redirected.'/>
+ <arg name='ctx' type='void *' info='the HTTP context'/>
+ </function>
+ <function name='xmlNanoHTTPReturnCode' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>Get the latest HTTP return code received</info>
+ <return type='int' info='the HTTP return code for the request.'/>
+ <arg name='ctx' type='void *' info='the HTTP context'/>
+ </function>
+ <function name='xmlNanoHTTPSave' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>This function saves the output of the HTTP transaction to a file It closes and free the context at the end</info>
+ <return type='int' info='-1 in case of failure, 0 incase of success.'/>
+ <arg name='ctxt' type='void *' info='the HTTP context'/>
+ <arg name='filename' type='const char *' info='the filename where the content should be saved'/>
+ </function>
+ <function name='xmlNanoHTTPScanProxy' file='nanohttp' module='nanohttp'>
+ <cond>defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>(Re)Initialize the HTTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like http://myproxy/ or http://myproxy:3128/ A NULL URL cleans up proxy informations.</info>
+ <return type='void'/>
+ <arg name='URL' type='const char *' info='The proxy URL used to initialize the proxy context'/>
+ </function>
+ <function name='xmlNewAutomata' file='xmlautomata' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+ <info>Create a new automata</info>
+ <return type='xmlAutomataPtr' info='the new object or NULL in case of failure'/>
+ </function>
+ <function name='xmlNewCDataBlock' file='tree' module='tree'>
+ <info>Creation of a new node containing a CDATA block.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='content' type='const xmlChar *' info='the CDATA block content content'/>
+ <arg name='len' type='int' info='the length of the block'/>
+ </function>
+ <function name='xmlNewCatalog' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>create a new Catalog.</info>
+ <return type='xmlCatalogPtr' info='the xmlCatalogPtr or NULL in case of error'/>
+ <arg name='sgml' type='int' info='should this create an SGML catalog'/>
+ </function>
+ <function name='xmlNewCharEncodingHandler' file='encoding' module='encoding'>
+ <info>Create and registers an xmlCharEncodingHandler.</info>
+ <return type='xmlCharEncodingHandlerPtr' info='the xmlCharEncodingHandlerPtr created (or NULL in case of error).'/>
+ <arg name='name' type='const char *' info='the encoding name, in UTF-8 format (ASCII actually)'/>
+ <arg name='input' type='xmlCharEncodingInputFunc' info='the xmlCharEncodingInputFunc to read that encoding'/>
+ <arg name='output' type='xmlCharEncodingOutputFunc' info='the xmlCharEncodingOutputFunc to write that encoding'/>
+ </function>
+ <function name='xmlNewCharRef' file='tree' module='tree'>
+ <info>Creation of a new character reference node.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='name' type='const xmlChar *' info='the char ref string, starting with # or &quot;&amp;# ... ;&quot;'/>
+ </function>
+ <function name='xmlNewChild' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Creation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (NULL). If @ns is NULL, the newly created element inherits the namespace of @parent. If @content is non NULL, a child list containing the TEXTs and ENTITY_REFs node will be created. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references. XML special chars must be escaped first by using xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should be used.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='parent' type='xmlNodePtr' info='the parent node'/>
+ <arg name='ns' type='xmlNsPtr' info='a namespace if any'/>
+ <arg name='name' type='const xmlChar *' info='the name of the child'/>
+ <arg name='content' type='const xmlChar *' info='the XML content of the child if any.'/>
+ </function>
+ <function name='xmlNewComment' file='tree' module='tree'>
+ <info>Creation of a new node containing a comment.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='content' type='const xmlChar *' info='the comment content'/>
+ </function>
+ <function name='xmlNewDoc' file='tree' module='tree'>
+ <info>Creates a new XML document</info>
+ <return type='xmlDocPtr' info='a new document'/>
+ <arg name='version' type='const xmlChar *' info='xmlChar string giving the version of XML &quot;1.0&quot;'/>
+ </function>
+ <function name='xmlNewDocComment' file='tree' module='tree'>
+ <info>Creation of a new node containing a comment within a document.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='content' type='const xmlChar *' info='the comment content'/>
+ </function>
+ <function name='xmlNewDocElementContent' file='valid' module='valid'>
+ <info>Allocate an element content structure for the document.</info>
+ <return type='xmlElementContentPtr' info='NULL if not, otherwise the new element content structure'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='name' type='const xmlChar *' info='the subelement name or NULL'/>
+ <arg name='type' type='xmlElementContentType' info='the type of element content decl'/>
+ </function>
+ <function name='xmlNewDocFragment' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Creation of a new Fragment node.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document owning the fragment'/>
+ </function>
+ <function name='xmlNewDocNode' file='tree' module='tree'>
+ <info>Creation of a new node element within a document. @ns and @content are optional (NULL). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don&apos;t need entities support.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='ns' type='xmlNsPtr' info='namespace if any'/>
+ <arg name='name' type='const xmlChar *' info='the node name'/>
+ <arg name='content' type='const xmlChar *' info='the XML text content if any'/>
+ </function>
+ <function name='xmlNewDocNodeEatName' file='tree' module='tree'>
+ <info>Creation of a new node element within a document. @ns and @content are optional (NULL). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don&apos;t need entities support.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='ns' type='xmlNsPtr' info='namespace if any'/>
+ <arg name='name' type='xmlChar *' info='the node name'/>
+ <arg name='content' type='const xmlChar *' info='the XML text content if any'/>
+ </function>
+ <function name='xmlNewDocPI' file='tree' module='tree'>
+ <info>Creation of a processing instruction element.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='xmlDocPtr' info='the target document'/>
+ <arg name='name' type='const xmlChar *' info='the processing instruction name'/>
+ <arg name='content' type='const xmlChar *' info='the PI content'/>
+ </function>
+ <function name='xmlNewDocProp' file='tree' module='tree'>
+ <info>Create a new property carried by a document.</info>
+ <return type='xmlAttrPtr' info='a pointer to the attribute'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='name' type='const xmlChar *' info='the name of the attribute'/>
+ <arg name='value' type='const xmlChar *' info='the value of the attribute'/>
+ </function>
+ <function name='xmlNewDocRawNode' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Creation of a new node element within a document. @ns and @content are optional (NULL).</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='ns' type='xmlNsPtr' info='namespace if any'/>
+ <arg name='name' type='const xmlChar *' info='the node name'/>
+ <arg name='content' type='const xmlChar *' info='the text content if any'/>
+ </function>
+ <function name='xmlNewDocText' file='tree' module='tree'>
+ <info>Creation of a new text node within a document.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='const xmlDoc *' info='the document'/>
+ <arg name='content' type='const xmlChar *' info='the text content'/>
+ </function>
+ <function name='xmlNewDocTextLen' file='tree' module='tree'>
+ <info>Creation of a new text node with an extra content length parameter. The text node pertain to a given document.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='content' type='const xmlChar *' info='the text content'/>
+ <arg name='len' type='int' info='the text len.'/>
+ </function>
+ <function name='xmlNewDtd' file='tree' module='tree'>
+ <info>Creation of a new DTD for the external subset. To create an internal subset, use xmlCreateIntSubset().</info>
+ <return type='xmlDtdPtr' info='a pointer to the new DTD structure'/>
+ <arg name='doc' type='xmlDocPtr' info='the document pointer'/>
+ <arg name='name' type='const xmlChar *' info='the DTD name'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
+ <arg name='SystemID' type='const xmlChar *' info='the system ID'/>
+ </function>
+ <function name='xmlNewElementContent' file='valid' module='valid'>
+ <info>Allocate an element content structure. Deprecated in favor of xmlNewDocElementContent</info>
+ <return type='xmlElementContentPtr' info='NULL if not, otherwise the new element content structure'/>
+ <arg name='name' type='const xmlChar *' info='the subelement name or NULL'/>
+ <arg name='type' type='xmlElementContentType' info='the type of element content decl'/>
+ </function>
+ <function name='xmlNewEntity' file='entities' module='entities'>
+ <info>Create a new entity, this differs from xmlAddDocEntity() that if the document is NULL or has no internal subset defined, then an unlinked entity structure will be returned, it is then the responsibility of the caller to link it to the document later or free it when not needed anymore.</info>
+ <return type='xmlEntityPtr' info='a pointer to the entity or NULL in case of error'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ <arg name='type' type='int' info='the entity type XML_xxx_yyy_ENTITY'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the entity external ID if available'/>
+ <arg name='SystemID' type='const xmlChar *' info='the entity system ID if available'/>
+ <arg name='content' type='const xmlChar *' info='the entity content'/>
+ </function>
+ <function name='xmlNewEntityInputStream' file='parserInternals' module='parserInternals'>
+ <info>Create a new input stream based on an xmlEntityPtr</info>
+ <return type='xmlParserInputPtr' info='the new input stream or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='entity' type='xmlEntityPtr' info='an Entity pointer'/>
+ </function>
+ <function name='xmlNewGlobalNs' file='tree' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Creation of a Namespace, the old way using PI and without scoping DEPRECATED !!!</info>
+ <return type='xmlNsPtr' info='NULL this functionality had been removed'/>
+ <arg name='doc' type='xmlDocPtr' info='the document carrying the namespace'/>
+ <arg name='href' type='const xmlChar *' info='the URI associated'/>
+ <arg name='prefix' type='const xmlChar *' info='the prefix for the namespace'/>
+ </function>
+ <function name='xmlNewIOInputStream' file='parser' module='parserInternals'>
+ <info>Create a new input stream structure encapsulating the @input into a stream suitable for the parser.</info>
+ <return type='xmlParserInputPtr' info='the new input stream or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='input' type='xmlParserInputBufferPtr' info='an I/O Input'/>
+ <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlNewInputFromFile' file='parserInternals' module='parserInternals'>
+ <info>Create a new input stream based on a file or an URL.</info>
+ <return type='xmlParserInputPtr' info='the new input stream or NULL in case of error'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='filename' type='const char *' info='the filename to use as entity'/>
+ </function>
+ <function name='xmlNewInputStream' file='parserInternals' module='parserInternals'>
+ <info>Create a new input stream structure.</info>
+ <return type='xmlParserInputPtr' info='the new input stream or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlNewMutex' file='threads' module='threads'>
+ <info>xmlNewMutex() is used to allocate a libxml2 token struct for use in synchronizing access to data.</info>
+ <return type='xmlMutexPtr' info='a new simple mutex pointer or NULL in case of error'/>
+ </function>
+ <function name='xmlNewNode' file='tree' module='tree'>
+ <info>Creation of a new node element. @ns is optional (NULL).</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object. Uses xmlStrdup() to make copy of @name.'/>
+ <arg name='ns' type='xmlNsPtr' info='namespace if any'/>
+ <arg name='name' type='const xmlChar *' info='the node name'/>
+ </function>
+ <function name='xmlNewNodeEatName' file='tree' module='tree'>
+ <info>Creation of a new node element. @ns is optional (NULL).</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object, with pointer @name as new node&apos;s name. Use xmlNewNode() if a copy of @name string is is needed as new node&apos;s name.'/>
+ <arg name='ns' type='xmlNsPtr' info='namespace if any'/>
+ <arg name='name' type='xmlChar *' info='the node name'/>
+ </function>
+ <function name='xmlNewNs' file='tree' module='tree'>
+ <info>Creation of a new Namespace. This function will refuse to create a namespace with a similar prefix than an existing one present on this node. Note that for a default namespace, @prefix should be NULL. We use href==NULL in the case of an element creation where the namespace was not defined.</info>
+ <return type='xmlNsPtr' info='a new namespace pointer or NULL'/>
+ <arg name='node' type='xmlNodePtr' info='the element carrying the namespace'/>
+ <arg name='href' type='const xmlChar *' info='the URI associated'/>
+ <arg name='prefix' type='const xmlChar *' info='the prefix for the namespace'/>
+ </function>
+ <function name='xmlNewNsProp' file='tree' module='tree'>
+ <info>Create a new property tagged with a namespace and carried by a node.</info>
+ <return type='xmlAttrPtr' info='a pointer to the attribute'/>
+ <arg name='node' type='xmlNodePtr' info='the holding node'/>
+ <arg name='ns' type='xmlNsPtr' info='the namespace'/>
+ <arg name='name' type='const xmlChar *' info='the name of the attribute'/>
+ <arg name='value' type='const xmlChar *' info='the value of the attribute'/>
+ </function>
+ <function name='xmlNewNsPropEatName' file='tree' module='tree'>
+ <info>Create a new property tagged with a namespace and carried by a node.</info>
+ <return type='xmlAttrPtr' info='a pointer to the attribute'/>
+ <arg name='node' type='xmlNodePtr' info='the holding node'/>
+ <arg name='ns' type='xmlNsPtr' info='the namespace'/>
+ <arg name='name' type='xmlChar *' info='the name of the attribute'/>
+ <arg name='value' type='const xmlChar *' info='the value of the attribute'/>
+ </function>
+ <function name='xmlNewPI' file='tree' module='tree'>
+ <info>Creation of a processing instruction element. Use xmlDocNewPI preferably to get string interning</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='name' type='const xmlChar *' info='the processing instruction name'/>
+ <arg name='content' type='const xmlChar *' info='the PI content'/>
+ </function>
+ <function name='xmlNewParserCtxt' file='parser' module='parserInternals'>
+ <info>Allocate and initialize a new parser context.</info>
+ <return type='xmlParserCtxtPtr' info='the xmlParserCtxtPtr or NULL'/>
+ </function>
+ <function name='xmlNewProp' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Create a new property carried by a node.</info>
+ <return type='xmlAttrPtr' info='a pointer to the attribute'/>
+ <arg name='node' type='xmlNodePtr' info='the holding node'/>
+ <arg name='name' type='const xmlChar *' info='the name of the attribute'/>
+ <arg name='value' type='const xmlChar *' info='the value of the attribute'/>
+ </function>
+ <function name='xmlNewRMutex' file='threads' module='threads'>
+ <info>xmlRNewMutex() is used to allocate a reentrant mutex for use in synchronizing access to data. token_r is a re-entrant lock and thus useful for synchronizing access to data structures that may be manipulated in a recursive fashion.</info>
+ <return type='xmlRMutexPtr' info='the new reentrant mutex pointer or NULL in case of error'/>
+ </function>
+ <function name='xmlNewReference' file='tree' module='tree'>
+ <info>Creation of a new reference node.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='doc' type='const xmlDoc *' info='the document'/>
+ <arg name='name' type='const xmlChar *' info='the reference name, or the reference string with &amp; and ;'/>
+ </function>
+ <function name='xmlNewStringInputStream' file='parserInternals' module='parserInternals'>
+ <info>Create a new input stream based on a memory buffer.</info>
+ <return type='xmlParserInputPtr' info='the new input stream'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='buffer' type='const xmlChar *' info='an memory buffer'/>
+ </function>
+ <function name='xmlNewText' file='tree' module='tree'>
+ <info>Creation of a new text node.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='content' type='const xmlChar *' info='the text content'/>
+ </function>
+ <function name='xmlNewTextChild' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Creation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (NULL). If @ns is NULL, the newly created element inherits the namespace of @parent. If @content is non NULL, a child TEXT node will be created containing the string @content. NOTE: Use xmlNewChild() if @content will contain entities that need to be preserved. Use this function, xmlNewTextChild(), if you need to ensure that reserved XML chars that might appear in @content, such as the ampersand, greater-than or less-than signs, are automatically replaced by their XML escaped entity representations.</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='parent' type='xmlNodePtr' info='the parent node'/>
+ <arg name='ns' type='xmlNsPtr' info='a namespace if any'/>
+ <arg name='name' type='const xmlChar *' info='the name of the child'/>
+ <arg name='content' type='const xmlChar *' info='the text content of the child if any.'/>
+ </function>
+ <function name='xmlNewTextLen' file='tree' module='tree'>
+ <info>Creation of a new text node with an extra parameter for the content&apos;s length</info>
+ <return type='xmlNodePtr' info='a pointer to the new node object.'/>
+ <arg name='content' type='const xmlChar *' info='the text content'/>
+ <arg name='len' type='int' info='the text len.'/>
+ </function>
+ <function name='xmlNewTextReader' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Create an xmlTextReader structure fed with @input</info>
+ <return type='xmlTextReaderPtr' info='the new xmlTextReaderPtr or NULL in case of error'/>
+ <arg name='input' type='xmlParserInputBufferPtr' info='the xmlParserInputBufferPtr used to read data'/>
+ <arg name='URI' type='const char *' info='the URI information for the source if available'/>
+ </function>
+ <function name='xmlNewTextReaderFilename' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Create an xmlTextReader structure fed with the resource at @URI</info>
+ <return type='xmlTextReaderPtr' info='the new xmlTextReaderPtr or NULL in case of error'/>
+ <arg name='URI' type='const char *' info='the URI of the resource to process'/>
+ </function>
+ <function name='xmlNewTextWriter' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Create a new xmlNewTextWriter structure using an xmlOutputBufferPtr NOTE: the @out parameter will be deallocated when the writer is closed (if the call succeed.)</info>
+ <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
+ <arg name='out' type='xmlOutputBufferPtr' info='an xmlOutputBufferPtr'/>
+ </function>
+ <function name='xmlNewTextWriterDoc' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Create a new xmlNewTextWriter structure with @*doc as output</info>
+ <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
+ <arg name='doc' type='xmlDocPtr *' info='address of a xmlDocPtr to hold the new XML document tree'/>
+ <arg name='compression' type='int' info='compress the output?'/>
+ </function>
+ <function name='xmlNewTextWriterFilename' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Create a new xmlNewTextWriter structure with @uri as output</info>
+ <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
+ <arg name='uri' type='const char *' info='the URI of the resource for the output'/>
+ <arg name='compression' type='int' info='compress the output?'/>
+ </function>
+ <function name='xmlNewTextWriterMemory' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Create a new xmlNewTextWriter structure with @buf as output TODO: handle compression</info>
+ <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
+ <arg name='buf' type='xmlBufferPtr' info='xmlBufferPtr'/>
+ <arg name='compression' type='int' info='compress the output?'/>
+ </function>
+ <function name='xmlNewTextWriterPushParser' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Create a new xmlNewTextWriter structure with @ctxt as output NOTE: the @ctxt context will be freed with the resulting writer (if the call succeeds). TODO: handle compression</info>
+ <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='xmlParserCtxtPtr to hold the new XML document tree'/>
+ <arg name='compression' type='int' info='compress the output?'/>
+ </function>
+ <function name='xmlNewTextWriterTree' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Create a new xmlNewTextWriter structure with @doc as output starting at @node</info>
+ <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
+ <arg name='doc' type='xmlDocPtr' info='xmlDocPtr'/>
+ <arg name='node' type='xmlNodePtr' info='xmlNodePtr or NULL for doc-&gt;children'/>
+ <arg name='compression' type='int' info='compress the output?'/>
+ </function>
+ <function name='xmlNewValidCtxt' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Allocate a validation context structure.</info>
+ <return type='xmlValidCtxtPtr' info='NULL if not, otherwise the new validation context structure'/>
+ </function>
+ <function name='xmlNextChar' file='parserInternals' module='parserInternals'>
+ <info>Skip to the next char input char.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
+ </function>
+ <function name='xmlNextElementSibling' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Finds the first closest next sibling of the node which is an element node. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don&apos;t have back reference from entities content to entities references.</info>
+ <return type='xmlNodePtr' info='the next element sibling or NULL if not available'/>
+ <arg name='node' type='xmlNodePtr' info='the current node'/>
+ </function>
+ <function name='xmlNoNetExternalEntityLoader' file='xmlIO' module='xmlIO'>
+ <info>A specific entity loader disabling network accesses, though still allowing local catalog accesses for resolution.</info>
+ <return type='xmlParserInputPtr' info='a new allocated xmlParserInputPtr, or NULL.'/>
+ <arg name='URL' type='const char *' info='the URL for the entity to load'/>
+ <arg name='ID' type='const char *' info='the System ID for the entity to load'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the context in which the entity is called or NULL'/>
+ </function>
+ <function name='xmlNodeAddContent' file='tree' module='tree'>
+ <info>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the node being modified'/>
+ <arg name='content' type='const xmlChar *' info='extra content'/>
+ </function>
+ <function name='xmlNodeAddContentLen' file='tree' module='tree'>
+ <info>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the node being modified'/>
+ <arg name='content' type='const xmlChar *' info='extra content'/>
+ <arg name='len' type='int' info='the size of @content'/>
+ </function>
+ <function name='xmlNodeBufGetContent' file='tree' module='tree'>
+ <info>Read the value of a node @cur, this can be either the text carried directly by this node if it&apos;s a TEXT node or the aggregate string of the values carried by this node child&apos;s (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buffer with this value</info>
+ <return type='int' info='0 in case of success and -1 in case of error.'/>
+ <arg name='buffer' type='xmlBufferPtr' info='a buffer'/>
+ <arg name='cur' type='const xmlNode *' info='the node being read'/>
+ </function>
+ <function name='xmlNodeDump' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called. Since this is using xmlBuffer structures it is limited to 2GB and somehow deprecated, use xmlNodeDumpOutput() instead.</info>
+ <return type='int' info='the number of bytes written to the buffer or -1 in case of error'/>
+ <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node'/>
+ <arg name='level' type='int' info='the imbrication level for indenting'/>
+ <arg name='format' type='int' info='is formatting allowed'/>
+ </function>
+ <function name='xmlNodeDumpOutput' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML node, recursive behaviour, children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
+ <return type='void'/>
+ <arg name='buf' type='xmlOutputBufferPtr' info='the XML buffer output'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node'/>
+ <arg name='level' type='int' info='the imbrication level for indenting'/>
+ <arg name='format' type='int' info='is formatting allowed'/>
+ <arg name='encoding' type='const char *' info='an optional encoding string'/>
+ </function>
+ <function name='xmlNodeGetBase' file='tree' module='tree'>
+ <info>Searches for the BASE URL. The code should work on both XML and HTML document even if base mechanisms are completely different. It returns the base as defined in RFC 2396 sections 5.1.1. Base URI within Document Content and 5.1.2. Base URI from the Encapsulating Entity However it does not return the document base (5.1.3), use doc-&gt;URL in this case</info>
+ <return type='xmlChar *' info='a pointer to the base URL, or NULL if not found It&apos;s up to the caller to free the memory with xmlFree().'/>
+ <arg name='doc' type='const xmlDoc *' info='the document the node pertains to'/>
+ <arg name='cur' type='const xmlNode *' info='the node being checked'/>
+ </function>
+ <function name='xmlNodeGetContent' file='tree' module='tree'>
+ <info>Read the value of a node, this can be either the text carried directly by this node if it&apos;s a TEXT node or the aggregate string of the values carried by this node child&apos;s (TEXT and ENTITY_REF). Entity references are substituted.</info>
+ <return type='xmlChar *' info='a new #xmlChar * or NULL if no content is available. It&apos;s up to the caller to free the memory with xmlFree().'/>
+ <arg name='cur' type='const xmlNode *' info='the node being read'/>
+ </function>
+ <function name='xmlNodeGetLang' file='tree' module='tree'>
+ <info>Searches the language of a node, i.e. the values of the xml:lang attribute or the one carried by the nearest ancestor.</info>
+ <return type='xmlChar *' info='a pointer to the lang value, or NULL if not found It&apos;s up to the caller to free the memory with xmlFree().'/>
+ <arg name='cur' type='const xmlNode *' info='the node being checked'/>
+ </function>
+ <function name='xmlNodeGetSpacePreserve' file='tree' module='tree'>
+ <info>Searches the space preserving behaviour of a node, i.e. the values of the xml:space attribute or the one carried by the nearest ancestor.</info>
+ <return type='int' info='-1 if xml:space is not inherited, 0 if &quot;default&quot;, 1 if &quot;preserve&quot;'/>
+ <arg name='cur' type='const xmlNode *' info='the node being checked'/>
+ </function>
+ <function name='xmlNodeIsText' file='tree' module='tree'>
+ <info>Is this node a Text node ?</info>
+ <return type='int' info='1 yes, 0 no'/>
+ <arg name='node' type='const xmlNode *' info='the node'/>
+ </function>
+ <function name='xmlNodeListGetRawString' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Builds the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs, contrary to xmlNodeListGetString() this function doesn&apos;t do any character encoding handling.</info>
+ <return type='xmlChar *' info='a pointer to the string copy, the caller must free it with xmlFree().'/>
+ <arg name='doc' type='const xmlDoc *' info='the document'/>
+ <arg name='list' type='const xmlNode *' info='a Node list'/>
+ <arg name='inLine' type='int' info='should we replace entity contents or show their external form'/>
+ </function>
+ <function name='xmlNodeListGetString' file='tree' module='tree'>
+ <info>Build the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs</info>
+ <return type='xmlChar *' info='a pointer to the string copy, the caller must free it with xmlFree().'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='list' type='const xmlNode *' info='a Node list'/>
+ <arg name='inLine' type='int' info='should we replace entity contents or show their external form'/>
+ </function>
+ <function name='xmlNodeSetBase' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Set (or reset) the base URI of a node, i.e. the value of the xml:base attribute.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the node being changed'/>
+ <arg name='uri' type='const xmlChar *' info='the new base URI'/>
+ </function>
+ <function name='xmlNodeSetContent' file='tree' module='tree'>
+ <info>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the node being modified'/>
+ <arg name='content' type='const xmlChar *' info='the new value of the content'/>
+ </function>
+ <function name='xmlNodeSetContentLen' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the node being modified'/>
+ <arg name='content' type='const xmlChar *' info='the new value of the content'/>
+ <arg name='len' type='int' info='the size of @content'/>
+ </function>
+ <function name='xmlNodeSetLang' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Set the language of a node, i.e. the values of the xml:lang attribute.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the node being changed'/>
+ <arg name='lang' type='const xmlChar *' info='the language description'/>
+ </function>
+ <function name='xmlNodeSetName' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Set (or reset) the name of a node.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the node being changed'/>
+ <arg name='name' type='const xmlChar *' info='the new tag name'/>
+ </function>
+ <function name='xmlNodeSetSpacePreserve' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Set (or reset) the space preserving behaviour of a node, i.e. the value of the xml:space attribute.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the node being changed'/>
+ <arg name='val' type='int' info='the xml:space value (&quot;0&quot;: default, 1: &quot;preserve&quot;)'/>
+ </function>
+ <function name='xmlNormalizeURIPath' file='uri' module='uri'>
+ <info>Applies the 5 normalization steps to a path string--that is, RFC 2396 Section 5.2, steps 6.c through 6.g. Normalization occurs directly on the string, no new allocation is done</info>
+ <return type='int' info='0 or an error code'/>
+ <arg name='path' type='char *' info='pointer to the path string'/>
+ </function>
+ <function name='xmlNormalizeWindowsPath' file='xmlIO' module='xmlIO'>
+ <info>This function is obsolete. Please see xmlURIFromPath in uri.c for a better solution.</info>
+ <return type='xmlChar *' info='a canonicalized version of the path'/>
+ <arg name='path' type='const xmlChar *' info='the input file path'/>
+ </function>
+ <function name='xmlOutputBufferClose' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>flushes and close the output I/O channel and free up all the associated resources</info>
+ <return type='int' info='the number of byte written or -1 in case of error.'/>
+ <arg name='out' type='xmlOutputBufferPtr' info='a buffered output'/>
+ </function>
+ <function name='xmlOutputBufferCreateBuffer' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Create a buffered output for the progressive saving to a xmlBuffer</info>
+ <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
+ <arg name='buffer' type='xmlBufferPtr' info='a xmlBufferPtr'/>
+ <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
+ </function>
+ <function name='xmlOutputBufferCreateFd' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Create a buffered output for the progressive saving to a file descriptor</info>
+ <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
+ <arg name='fd' type='int' info='a file descriptor number'/>
+ <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
+ </function>
+ <function name='xmlOutputBufferCreateFile' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Create a buffered output for the progressive saving to a FILE * buffered C I/O</info>
+ <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
+ <arg name='file' type='FILE *' info='a FILE*'/>
+ <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
+ </function>
+ <function name='xmlOutputBufferCreateFilename' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Create a buffered output for the progressive saving of a file If filename is &quot;-&apos; then we use stdout as the output. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. TODO: currently if compression is set, the library only support writing to a local file.</info>
+ <return type='xmlOutputBufferPtr' info='the new output or NULL'/>
+ <arg name='URI' type='const char *' info='a C string containing the URI or filename'/>
+ <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
+ <arg name='compression' type='int' info='the compression ration (0 none, 9 max).'/>
+ </function>
+ <function name='xmlOutputBufferCreateFilenameDefault' file='globals' module='xmlIO'>
+ <info>Registers a callback for URI output file handling</info>
+ <return type='xmlOutputBufferCreateFilenameFunc' info='the old value of the registration function'/>
+ <arg name='func' type='xmlOutputBufferCreateFilenameFunc' info='function pointer to the new OutputBufferCreateFilenameFunc'/>
+ </function>
+ <functype name='xmlOutputBufferCreateFilenameFunc' file='globals' module='globals'>
+ <info>Signature for the function doing the lookup for a suitable output method corresponding to an URI.</info>
+ <return type='xmlOutputBufferPtr' info='the new xmlOutputBufferPtr in case of success or NULL if no method was found.'/>
+ <arg name='URI' type='const char *' info='the URI to write to'/>
+ <arg name='encoder' type='xmlCharEncodingHandlerPtr' info=''/>
+ <arg name='compression' type='int' info=''/>
+ </functype>
+ <function name='xmlOutputBufferCreateIO' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Create a buffered output for the progressive saving to an I/O handler</info>
+ <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
+ <arg name='iowrite' type='xmlOutputWriteCallback' info='an I/O write function'/>
+ <arg name='ioclose' type='xmlOutputCloseCallback' info='an I/O close function'/>
+ <arg name='ioctx' type='void *' info='an I/O handler'/>
+ <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlOutputBufferFlush' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>flushes the output I/O channel</info>
+ <return type='int' info='the number of byte written or -1 in case of error.'/>
+ <arg name='out' type='xmlOutputBufferPtr' info='a buffered output'/>
+ </function>
+ <function name='xmlOutputBufferGetContent' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Gives a pointer to the data currently held in the output buffer</info>
+ <return type='const xmlChar *' info='a pointer to the data or NULL in case of error'/>
+ <arg name='out' type='xmlOutputBufferPtr' info='an xmlOutputBufferPtr'/>
+ </function>
+ <function name='xmlOutputBufferGetSize' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Gives the length of the data currently held in the output buffer</info>
+ <return type='size_t' info='0 in case or error or no data is held, the size otherwise'/>
+ <arg name='out' type='xmlOutputBufferPtr' info='an xmlOutputBufferPtr'/>
+ </function>
+ <function name='xmlOutputBufferWrite' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Write the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</info>
+ <return type='int' info='the number of chars immediately written, or -1 in case of error.'/>
+ <arg name='out' type='xmlOutputBufferPtr' info='a buffered parser output'/>
+ <arg name='len' type='int' info='the size in bytes of the array.'/>
+ <arg name='buf' type='const char *' info='an char array'/>
+ </function>
+ <function name='xmlOutputBufferWriteEscape' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Write the content of the string in the output I/O buffer This routine escapes the characters and then handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</info>
+ <return type='int' info='the number of chars immediately written, or -1 in case of error.'/>
+ <arg name='out' type='xmlOutputBufferPtr' info='a buffered parser output'/>
+ <arg name='str' type='const xmlChar *' info='a zero terminated UTF-8 string'/>
+ <arg name='escaping' type='xmlCharEncodingOutputFunc' info='an optional escaping function (or NULL)'/>
+ </function>
+ <function name='xmlOutputBufferWriteString' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Write the content of the string in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</info>
+ <return type='int' info='the number of chars immediately written, or -1 in case of error.'/>
+ <arg name='out' type='xmlOutputBufferPtr' info='a buffered parser output'/>
+ <arg name='str' type='const char *' info='a zero terminated C string'/>
+ </function>
+ <functype name='xmlOutputCloseCallback' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Callback used in the I/O Output API to close the resource</info>
+ <return type='int' info='0 or -1 in case of error'/>
+ <arg name='context' type='void *' info='an Output context'/>
+ </functype>
+ <functype name='xmlOutputMatchCallback' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Callback used in the I/O Output API to detect if the current handler can provide output functionality for this resource.</info>
+ <return type='int' info='1 if yes and 0 if another Output module should be used'/>
+ <arg name='filename' type='char const *' info='the filename or URI'/>
+ </functype>
+ <functype name='xmlOutputOpenCallback' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Callback used in the I/O Output API to open the resource</info>
+ <return type='void *' info='an Output context or NULL in case or error'/>
+ <arg name='filename' type='char const *' info='the filename or URI'/>
+ </functype>
+ <functype name='xmlOutputWriteCallback' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Callback used in the I/O Output API to write to the resource</info>
+ <return type='int' info='the number of bytes written or -1 in case of error'/>
+ <arg name='context' type='void *' info='an Output context'/>
+ <arg name='buffer' type='const char *' info='the buffer of data to write'/>
+ <arg name='len' type='int' info='the length of the buffer in bytes'/>
+ </functype>
+ <function name='xmlParseAttValue' file='parserInternals' module='parser'>
+ <info>parse a value for an attribute Note: the parser won&apos;t do substitution of entities here, this will be handled later in xmlStringGetNodeList [10] AttValue ::= &apos;&quot;&apos; ([^&lt;&amp;&quot;] | Reference)* &apos;&quot;&apos; | &quot;&apos;&quot; ([^&lt;&amp;&apos;] | Reference)* &quot;&apos;&quot; 3.3.3 Attribute-Value Normalization: Before the value of an attribute is passed to the application or checked for validity, the XML processor must normalize it as follows: - a character reference is processed by appending the referenced character to the attribute value - an entity reference is processed by recursively processing the replacement text of the entity - a whitespace character (#x20, #xD, #xA, #x9) is processed by appending #x20 to the normalized value, except that only a single #x20 is appended for a &quot;#xD#xA&quot; sequence that is part of an external parsed entity or the literal entity value of an internal parsed entity - other characters are processed by appending them to the normalized value If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by a single space (#x20) character. All attributes for which no declaration has been read should be treated by a non-validating parser as if declared CDATA.</info>
+ <return type='xmlChar *' info='the AttValue parsed or NULL. The value has to be freed by the caller.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseAttribute' file='parserInternals' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an attribute [41] Attribute ::= Name Eq AttValue [ WFC: No External Entity References ] Attribute values cannot contain direct or indirect entity references to external entities. [ WFC: No &lt; in Attribute Values ] The replacement text of any entity referred to directly or indirectly in an attribute value (other than &quot;&amp;lt;&quot;) must not contain a &lt;. [ VC: Attribute Value Type ] The attribute must have been declared; the value must be of the type declared for it. [25] Eq ::= S? &apos;=&apos; S? With namespace: [NS 11] Attribute ::= QName Eq AttValue Also the case QName == xmlns:??? is handled independently as a namespace definition.</info>
+ <return type='const xmlChar *' info='the attribute name, and the value in *value.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='value' type='xmlChar **' info='a xmlChar ** used to store the value of the attribute'/>
+ </function>
+ <function name='xmlParseAttributeListDecl' file='parserInternals' module='parser'>
+ <info>: parse the Attribute list def for an element [52] AttlistDecl ::= &apos;&lt;!ATTLIST&apos; S Name AttDef* S? &apos;&gt;&apos; [53] AttDef ::= S Name S AttType S DefaultDecl</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseAttributeType' file='parserInternals' module='parser'>
+ <info>parse the Attribute list def for an element [54] AttType ::= StringType | TokenizedType | EnumeratedType [55] StringType ::= &apos;CDATA&apos; [56] TokenizedType ::= &apos;ID&apos; | &apos;IDREF&apos; | &apos;IDREFS&apos; | &apos;ENTITY&apos; | &apos;ENTITIES&apos; | &apos;NMTOKEN&apos; | &apos;NMTOKENS&apos; Validity constraints for attribute values syntax are checked in xmlValidateAttributeValue() [ VC: ID ] Values of type ID must match the Name production. A name must not appear more than once in an XML document as a value of this type; i.e., ID values must uniquely identify the elements which bear them. [ VC: One ID per Element Type ] No element type may have more than one ID attribute specified. [ VC: ID Attribute Default ] An ID attribute must have a declared default of #IMPLIED or #REQUIRED. [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names; each IDREF Name must match the value of an ID attribute on some element in the XML document; i.e. IDREF values must match the value of some ID attribute. [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names; each Entity Name must match the name of an unparsed entity declared in the DTD. [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</info>
+ <return type='int' info='the attribute type'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='tree' type='xmlEnumerationPtr *' info='the enumeration tree built while parsing'/>
+ </function>
+ <function name='xmlParseBalancedChunkMemory' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
+ <return type='int' info='0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise'/>
+ <arg name='doc' type='xmlDocPtr' info='the document the chunk pertains to'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler bloc (possibly NULL)'/>
+ <arg name='user_data' type='void *' info='The user data returned on SAX callbacks (possibly NULL)'/>
+ <arg name='depth' type='int' info='Used for loop detection, use 0'/>
+ <arg name='string' type='const xmlChar *' info='the input string in UTF8 or ISO-Latin (zero terminated)'/>
+ <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
+ </function>
+ <function name='xmlParseBalancedChunkMemoryRecover' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
+ <return type='int' info='0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise In case recover is set to 1, the nodelist will not be empty even if the parsed chunk is not well balanced, assuming the parsing succeeded to some extent.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document the chunk pertains to'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler bloc (possibly NULL)'/>
+ <arg name='user_data' type='void *' info='The user data returned on SAX callbacks (possibly NULL)'/>
+ <arg name='depth' type='int' info='Used for loop detection, use 0'/>
+ <arg name='string' type='const xmlChar *' info='the input string in UTF8 or ISO-Latin (zero terminated)'/>
+ <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
+ <arg name='recover' type='int' info='return nodes even if the data is broken (use 0)'/>
+ </function>
+ <function name='xmlParseCDSect' file='parserInternals' module='parser'>
+ <info>Parse escaped pure raw content. [18] CDSect ::= CDStart CData CDEnd [19] CDStart ::= &apos;&lt;![CDATA[&apos; [20] Data ::= (Char* - (Char* &apos;]]&gt;&apos; Char*)) [21] CDEnd ::= &apos;]]&gt;&apos;</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseCatalogFile' file='catalog' module='catalog'>
+ <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
+ <info>parse an XML file and build a tree. It&apos;s like xmlParseFile() except it bypass all catalog lookups.</info>
+ <return type='xmlDocPtr' info='the resulting document tree or NULL in case of error'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ </function>
+ <function name='xmlParseCharData' file='parserInternals' module='parser'>
+ <info>parse a CharData section. if we are within a CDATA section &apos;]]&gt;&apos; marks an end of section. The right angle bracket (&gt;) may be represented using the string &quot;&amp;gt;&quot;, and must, for compatibility, be escaped using &quot;&amp;gt;&quot; or a character reference when it appears in the string &quot;]]&gt;&quot; in content, when that string is not marking the end of a CDATA section. [14] CharData ::= [^&lt;&amp;]* - ([^&lt;&amp;]* &apos;]]&gt;&apos; [^&lt;&amp;]*)</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='cdata' type='int' info='int indicating whether we are within a CDATA section'/>
+ </function>
+ <function name='xmlParseCharEncoding' file='encoding' module='encoding'>
+ <info>Compare the string to the encoding schemes already known. Note that the comparison is case insensitive accordingly to the section [XML] 4.3.3 Character Encoding in Entities.</info>
+ <return type='xmlCharEncoding' info='one of the XML_CHAR_ENCODING_... values or XML_CHAR_ENCODING_NONE if not recognized.'/>
+ <arg name='name' type='const char *' info='the encoding name as parsed, in UTF-8 format (ASCII actually)'/>
+ </function>
+ <function name='xmlParseCharRef' file='parserInternals' module='parser'>
+ <info>parse Reference declarations [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos; [ WFC: Legal Character ] Characters referred to using character references must match the production for Char.</info>
+ <return type='int' info='the value parsed (as an int), 0 in case of error'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseChunk' file='parser' module='parser'>
+ <cond>defined(LIBXML_PUSH_ENABLED)</cond>
+ <info>Parse a Chunk of memory</info>
+ <return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='chunk' type='const char *' info='an char array'/>
+ <arg name='size' type='int' info='the size in byte of the chunk'/>
+ <arg name='terminate' type='int' info='last chunk indicator'/>
+ </function>
+ <function name='xmlParseComment' file='parserInternals' module='parser'>
+ <info>Skip an XML (SGML) comment &lt;!-- .... --&gt; The spec says that &quot;For compatibility, the string &quot;--&quot; (double-hyphen) must not occur within comments. &quot; [15] Comment ::= &apos;&lt;!--&apos; ((Char - &apos;-&apos;) | (&apos;-&apos; (Char - &apos;-&apos;)))* &apos;--&gt;&apos;</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseContent' file='parserInternals' module='parser'>
+ <info>Parse a content: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseCtxtExternalEntity' file='parser' module='parser'>
+ <info>Parse an external general entity within an existing parsing context An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</info>
+ <return type='int' info='0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise'/>
+ <arg name='ctx' type='xmlParserCtxtPtr' info='the existing parsing context'/>
+ <arg name='URL' type='const xmlChar *' info='the URL for the entity to load'/>
+ <arg name='ID' type='const xmlChar *' info='the System ID for the entity to load'/>
+ <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
+ </function>
+ <function name='xmlParseDTD' file='parser' module='parser'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Load and parse an external subset.</info>
+ <return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error.'/>
+ <arg name='ExternalID' type='const xmlChar *' info='a NAME* containing the External ID of the DTD'/>
+ <arg name='SystemID' type='const xmlChar *' info='a NAME* containing the URL to the DTD'/>
+ </function>
+ <function name='xmlParseDefaultDecl' file='parserInternals' module='parser'>
+ <info>Parse an attribute default declaration [60] DefaultDecl ::= &apos;#REQUIRED&apos; | &apos;#IMPLIED&apos; | ((&apos;#FIXED&apos; S)? AttValue) [ VC: Required Attribute ] if the default declaration is the keyword #REQUIRED, then the attribute must be specified for all elements of the type in the attribute-list declaration. [ VC: Attribute Default Legal ] The declared default value must meet the lexical constraints of the declared attribute type c.f. xmlValidateAttributeDecl() [ VC: Fixed Attribute Default ] if an attribute has a default value declared with the #FIXED keyword, instances of that attribute must match the default value. [ WFC: No &lt; in Attribute Values ] handled in xmlParseAttValue()</info>
+ <return type='int' info='XML_ATTRIBUTE_NONE, XML_ATTRIBUTE_REQUIRED, XML_ATTRIBUTE_IMPLIED or XML_ATTRIBUTE_FIXED.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='value' type='xmlChar **' info='Receive a possible fixed default value for the attribute'/>
+ </function>
+ <function name='xmlParseDoc' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML in-memory document and build a tree.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
+ </function>
+ <function name='xmlParseDocTypeDecl' file='parserInternals' module='parser'>
+ <info>parse a DOCTYPE declaration [28] doctypedecl ::= &apos;&lt;!DOCTYPE&apos; S Name (S ExternalID)? S? (&apos;[&apos; (markupdecl | PEReference | S)* &apos;]&apos; S?)? &apos;&gt;&apos; [ VC: Root Element Type ] The Name in the document type declaration must match the element type of the root element.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseDocument' file='parser' module='parser'>
+ <info>parse an XML document (and build a tree if using the standard SAX interface). [1] document ::= prolog element Misc* [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</info>
+ <return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseElement' file='parserInternals' module='parser'>
+ <info>parse an XML element [39] element ::= EmptyElemTag | STag content ETag [ WFC: Element Type Match ] The Name in an element&apos;s end-tag must match the element type in the start-tag.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseElementChildrenContentDecl' file='parserInternals' module='parser'>
+ <info>parse the declaration for a Mixed Element content The leading &apos;(&apos; and spaces have been skipped in xmlParseElementContentDecl [47] children ::= (choice | seq) (&apos;?&apos; | &apos;*&apos; | &apos;+&apos;)? [48] cp ::= (Name | choice | seq) (&apos;?&apos; | &apos;*&apos; | &apos;+&apos;)? [49] choice ::= &apos;(&apos; S? cp ( S? &apos;|&apos; S? cp )* S? &apos;)&apos; [50] seq ::= &apos;(&apos; S? cp ( S? &apos;,&apos; S? cp )* S? &apos;)&apos; [ VC: Proper Group/PE Nesting ] applies to [49] and [50] TODO Parameter-entity replacement text must be properly nested with parenthesized groups. That is to say, if either of the opening or closing parentheses in a choice, seq, or Mixed construct is contained in the replacement text for a parameter entity, both must be contained in the same replacement text. For interoperability, if a parameter-entity reference appears in a choice, seq, or Mixed construct, its replacement text should not be empty, and neither the first nor last non-blank character of the replacement text should be a connector (| or ,).</info>
+ <return type='xmlElementContentPtr' info='the tree of xmlElementContentPtr describing the element hierarchy.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='inputchk' type='int' info='the input used for the current entity, needed for boundary checks'/>
+ </function>
+ <function name='xmlParseElementContentDecl' file='parserInternals' module='parser'>
+ <info>parse the declaration for an Element content either Mixed or Children, the cases EMPTY and ANY are handled directly in xmlParseElementDecl [46] contentspec ::= &apos;EMPTY&apos; | &apos;ANY&apos; | Mixed | children</info>
+ <return type='int' info='the type of element content XML_ELEMENT_TYPE_xxx'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='name' type='const xmlChar *' info='the name of the element being defined.'/>
+ <arg name='result' type='xmlElementContentPtr *' info='the Element Content pointer will be stored here if any'/>
+ </function>
+ <function name='xmlParseElementDecl' file='parserInternals' module='parser'>
+ <info>parse an Element declaration. [45] elementdecl ::= &apos;&lt;!ELEMENT&apos; S Name S contentspec S? &apos;&gt;&apos; [ VC: Unique Element Type Declaration ] No element type may be declared more than once</info>
+ <return type='int' info='the type of the element, or -1 in case of error'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseElementMixedContentDecl' file='parserInternals' module='parser'>
+ <info>parse the declaration for a Mixed Element content The leading &apos;(&apos; and spaces have been skipped in xmlParseElementContentDecl [51] Mixed ::= &apos;(&apos; S? &apos;#PCDATA&apos; (S? &apos;|&apos; S? Name)* S? &apos;)*&apos; | &apos;(&apos; S? &apos;#PCDATA&apos; S? &apos;)&apos; [ VC: Proper Group/PE Nesting ] applies to [51] too (see [49]) [ VC: No Duplicate Types ] The same name must not appear more than once in a single mixed-content declaration.</info>
+ <return type='xmlElementContentPtr' info='the list of the xmlElementContentPtr describing the element choices'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='inputchk' type='int' info='the input used for the current entity, needed for boundary checks'/>
+ </function>
+ <function name='xmlParseEncName' file='parserInternals' module='parser'>
+ <info>parse the XML encoding name [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | &apos;-&apos;)*</info>
+ <return type='xmlChar *' info='the encoding name value or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseEncodingDecl' file='parserInternals' module='parser'>
+ <info>parse the XML encoding declaration [80] EncodingDecl ::= S &apos;encoding&apos; Eq (&apos;&quot;&apos; EncName &apos;&quot;&apos; | &quot;&apos;&quot; EncName &quot;&apos;&quot;) this setups the conversion filters.</info>
+ <return type='const xmlChar *' info='the encoding value or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseEndTag' file='parserInternals' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an end of tag [42] ETag ::= &apos;&lt;/&apos; Name S? &apos;&gt;&apos; With namespace [NS 9] ETag ::= &apos;&lt;/&apos; QName S? &apos;&gt;&apos;</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseEntity' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML external entity out of context and build a tree. [78] extParsedEnt ::= TextDecl? content This correspond to a &quot;Well Balanced&quot; chunk</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ </function>
+ <function name='xmlParseEntityDecl' file='parserInternals' module='parser'>
+ <info>parse &lt;!ENTITY declarations [70] EntityDecl ::= GEDecl | PEDecl [71] GEDecl ::= &apos;&lt;!ENTITY&apos; S Name S EntityDef S? &apos;&gt;&apos; [72] PEDecl ::= &apos;&lt;!ENTITY&apos; S &apos;%&apos; S Name S PEDef S? &apos;&gt;&apos; [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?) [74] PEDef ::= EntityValue | ExternalID [76] NDataDecl ::= S &apos;NDATA&apos; S Name [ VC: Notation Declared ] The Name must match the declared name of a notation.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseEntityRef' file='parserInternals' module='parser'>
+ <info>parse ENTITY references declarations [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos; [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, the Name given in the entity reference must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot. The declaration of a parameter entity must precede any reference to it. Similarly, the declaration of a general entity must precede any reference to it which appears in a default value in an attribute-list declaration. Note that if entities are declared in the external subset or in external parameter entities, a non-validating processor is not obligated to read and process their declarations; for such documents, the rule that an entity must be declared is a well-formedness constraint only if standalone=&apos;yes&apos;. [ WFC: Parsed Entity ] An entity reference must not contain the name of an unparsed entity</info>
+ <return type='xmlEntityPtr' info='the xmlEntityPtr if found, or NULL otherwise.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseEntityValue' file='parserInternals' module='parser'>
+ <info>parse a value for ENTITY declarations [9] EntityValue ::= &apos;&quot;&apos; ([^%&amp;&quot;] | PEReference | Reference)* &apos;&quot;&apos; | &quot;&apos;&quot; ([^%&amp;&apos;] | PEReference | Reference)* &quot;&apos;&quot;</info>
+ <return type='xmlChar *' info='the EntityValue parsed with reference substituted or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='orig' type='xmlChar **' info='if non-NULL store a copy of the original entity value'/>
+ </function>
+ <function name='xmlParseEnumeratedType' file='parserInternals' module='parser'>
+ <info>parse an Enumerated attribute type. [57] EnumeratedType ::= NotationType | Enumeration [58] NotationType ::= &apos;NOTATION&apos; S &apos;(&apos; S? Name (S? &apos;|&apos; S? Name)* S? &apos;)&apos;</info>
+ <return type='int' info='XML_ATTRIBUTE_ENUMERATION or XML_ATTRIBUTE_NOTATION'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='tree' type='xmlEnumerationPtr *' info='the enumeration tree built while parsing'/>
+ </function>
+ <function name='xmlParseEnumerationType' file='parserInternals' module='parser'>
+ <info>parse an Enumeration attribute type. [59] Enumeration ::= &apos;(&apos; S? Nmtoken (S? &apos;|&apos; S? Nmtoken)* S? &apos;)&apos; [ VC: Enumeration ] Values of this type must match one of the Nmtoken tokens in the declaration</info>
+ <return type='xmlEnumerationPtr' info='the enumeration attribute tree built while parsing'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseExtParsedEnt' file='parser' module='parser'>
+ <info>parse a general parsed entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</info>
+ <return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseExternalEntity' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>Parse an external general entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</info>
+ <return type='int' info='0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise'/>
+ <arg name='doc' type='xmlDocPtr' info='the document the chunk pertains to'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler bloc (possibly NULL)'/>
+ <arg name='user_data' type='void *' info='The user data returned on SAX callbacks (possibly NULL)'/>
+ <arg name='depth' type='int' info='Used for loop detection, use 0'/>
+ <arg name='URL' type='const xmlChar *' info='the URL for the entity to load'/>
+ <arg name='ID' type='const xmlChar *' info='the System ID for the entity to load'/>
+ <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
+ </function>
+ <function name='xmlParseExternalID' file='parserInternals' module='parser'>
+ <info>Parse an External ID or a Public ID NOTE: Productions [75] and [83] interact badly since [75] can generate &apos;PUBLIC&apos; S PubidLiteral S SystemLiteral [75] ExternalID ::= &apos;SYSTEM&apos; S SystemLiteral | &apos;PUBLIC&apos; S PubidLiteral S SystemLiteral [83] PublicID ::= &apos;PUBLIC&apos; S PubidLiteral</info>
+ <return type='xmlChar *' info='the function returns SystemLiteral and in the second case publicID receives PubidLiteral, is strict is off it is possible to return NULL and have publicID set.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='publicID' type='xmlChar **' info='a xmlChar** receiving PubidLiteral'/>
+ <arg name='strict' type='int' info='indicate whether we should restrict parsing to only production [75], see NOTE below'/>
+ </function>
+ <function name='xmlParseExternalSubset' file='parserInternals' module='parser'>
+ <info>parse Markup declarations from an external subset [30] extSubset ::= textDecl? extSubsetDecl [31] extSubsetDecl ::= (markupdecl | conditionalSect | PEReference | S) *</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external identifier'/>
+ <arg name='SystemID' type='const xmlChar *' info='the system identifier (or URL)'/>
+ </function>
+ <function name='xmlParseFile' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
+ <return type='xmlDocPtr' info='the resulting document tree if the file was wellformed, NULL otherwise.'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ </function>
+ <function name='xmlParseInNodeContext' file='parser' module='parser'>
+ <info>Parse a well-balanced chunk of an XML document within the context (DTD, namespaces, etc ...) of the given node. The allowed sequence for the data is a Well Balanced Chunk defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
+ <return type='xmlParserErrors' info='XML_ERR_OK if the chunk is well balanced, and the parser error code otherwise'/>
+ <arg name='node' type='xmlNodePtr' info='the context node'/>
+ <arg name='data' type='const char *' info='the input string'/>
+ <arg name='datalen' type='int' info='the input string length in bytes'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
+ </function>
+ <function name='xmlParseMarkupDecl' file='parserInternals' module='parser'>
+ <info>parse Markup declarations [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment [ VC: Proper Declaration/PE Nesting ] Parameter-entity replacement text must be properly nested with markup declarations. That is to say, if either the first character or the last character of a markup declaration (markupdecl above) is contained in the replacement text for a parameter-entity reference, both must be contained in the same replacement text. [ WFC: PEs in Internal Subset ] In the internal DTD subset, parameter-entity references can occur only where markup declarations can occur, not within markup declarations. (This does not apply to references that occur in external parameter entities or to the external subset.)</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseMemory' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML in-memory block and build a tree.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='buffer' type='const char *' info='an pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ </function>
+ <function name='xmlParseMisc' file='parserInternals' module='parser'>
+ <info>parse an XML Misc* optional field. [27] Misc ::= Comment | PI | S</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseName' file='parserInternals' module='parser'>
+ <info>parse an XML name. [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)* [6] Names ::= Name (#x20 Name)*</info>
+ <return type='const xmlChar *' info='the Name parsed or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseNamespace' file='parserInternals' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>xmlParseNamespace: parse specific PI &apos;&lt;?namespace ...&apos; constructs. This is what the older xml-name Working Draft specified, a bunch of other stuff may still rely on it, so support is still here as if it was declared on the root of the Tree:-( TODO: remove from library To be removed at next drop of binary compatibility</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseNmtoken' file='parserInternals' module='parser'>
+ <info>parse an XML Nmtoken. [7] Nmtoken ::= (NameChar)+ [8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*</info>
+ <return type='xmlChar *' info='the Nmtoken parsed or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseNotationDecl' file='parserInternals' module='parser'>
+ <info>parse a notation declaration [82] NotationDecl ::= &apos;&lt;!NOTATION&apos; S Name S (ExternalID | PublicID) S? &apos;&gt;&apos; Hence there is actually 3 choices: &apos;PUBLIC&apos; S PubidLiteral &apos;PUBLIC&apos; S PubidLiteral S SystemLiteral and &apos;SYSTEM&apos; S SystemLiteral See the NOTE on xmlParseExternalID().</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseNotationType' file='parserInternals' module='parser'>
+ <info>parse an Notation attribute type. Note: the leading &apos;NOTATION&apos; S part has already being parsed... [58] NotationType ::= &apos;NOTATION&apos; S &apos;(&apos; S? Name (S? &apos;|&apos; S? Name)* S? &apos;)&apos; [ VC: Notation Attributes ] Values of this type must match one of the notation names included in the declaration; all notation names in the declaration must be declared.</info>
+ <return type='xmlEnumerationPtr' info='the notation attribute tree built while parsing'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParsePEReference' file='parserInternals' module='parser'>
+ <info>parse PEReference declarations The entity content is handled directly by pushing it&apos;s content as a new input stream. [69] PEReference ::= &apos;%&apos; Name &apos;;&apos; [ WFC: No Recursion ] A parsed entity must not contain a recursive reference to itself, either directly or indirectly. [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, ... ... The declaration of a parameter entity must precede any reference to it... [ VC: Entity Declared ] In a document with an external subset or external parameter entities with &quot;standalone=&apos;no&apos;&quot;, ... ... The declaration of a parameter entity must precede any reference to it... [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParsePI' file='parserInternals' module='parser'>
+ <info>parse an XML Processing Instruction. [16] PI ::= &apos;&lt;?&apos; PITarget (S (Char* - (Char* &apos;?&gt;&apos; Char*)))? &apos;?&gt;&apos; The processing is transferred to SAX once parsed.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParsePITarget' file='parserInternals' module='parser'>
+ <info>parse the name of a PI [17] PITarget ::= Name - ((&apos;X&apos; | &apos;x&apos;) (&apos;M&apos; | &apos;m&apos;) (&apos;L&apos; | &apos;l&apos;))</info>
+ <return type='const xmlChar *' info='the PITarget name or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParsePubidLiteral' file='parserInternals' module='parser'>
+ <info>parse an XML public literal [12] PubidLiteral ::= &apos;&quot;&apos; PubidChar* &apos;&quot;&apos; | &quot;&apos;&quot; (PubidChar - &quot;&apos;&quot;)* &quot;&apos;&quot;</info>
+ <return type='xmlChar *' info='the PubidLiteral parsed or NULL.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseQuotedString' file='parserInternals' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Parse and return a string between quotes or doublequotes TODO: Deprecated, to be removed at next drop of binary compatibility</info>
+ <return type='xmlChar *' info='the string parser or NULL.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseReference' file='parserInternals' module='parser'>
+ <info>parse and handle entity references in content, depending on the SAX interface, this may end-up in a call to character() if this is a CharRef, a predefined entity, if there is no reference() callback. or if the parser was asked to switch to that mode. [67] Reference ::= EntityRef | CharRef</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseSDDecl' file='parserInternals' module='parser'>
+ <info>parse the XML standalone declaration [32] SDDecl ::= S &apos;standalone&apos; Eq ((&quot;&apos;&quot; (&apos;yes&apos; | &apos;no&apos;) &quot;&apos;&quot;) | (&apos;&quot;&apos; (&apos;yes&apos; | &apos;no&apos;)&apos;&quot;&apos;)) [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value &quot;no&quot; if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the attribute appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types.</info>
+ <return type='int' info='1 if standalone=&quot;yes&quot; 0 if standalone=&quot;no&quot; -2 if standalone attribute is missing or invalid (A standalone value of -2 means that the XML declaration was found, but no value was specified for the standalone attribute).'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseStartTag' file='parserInternals' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse a start of tag either for rule element or EmptyElement. In both case we don&apos;t parse the tag closing chars. [40] STag ::= &apos;&lt;&apos; Name (S Attribute)* S? &apos;&gt;&apos; [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag. [44] EmptyElemTag ::= &apos;&lt;&apos; Name (S Attribute)* S? &apos;/&gt;&apos; [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag. With namespace: [NS 8] STag ::= &apos;&lt;&apos; QName (S Attribute)* S? &apos;&gt;&apos; [NS 10] EmptyElement ::= &apos;&lt;&apos; QName (S Attribute)* S? &apos;/&gt;&apos;</info>
+ <return type='const xmlChar *' info='the element name parsed'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseSystemLiteral' file='parserInternals' module='parser'>
+ <info>parse an XML Literal [11] SystemLiteral ::= (&apos;&quot;&apos; [^&quot;]* &apos;&quot;&apos;) | (&quot;&apos;&quot; [^&apos;]* &quot;&apos;&quot;)</info>
+ <return type='xmlChar *' info='the SystemLiteral parsed or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseTextDecl' file='parserInternals' module='parser'>
+ <info>parse an XML declaration header for external entities [77] TextDecl ::= &apos;&lt;?xml&apos; VersionInfo? EncodingDecl S? &apos;?&gt;&apos;</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseURI' file='uri' module='uri'>
+ <info>Parse an URI based on RFC 3986 URI-reference = [ absoluteURI | relativeURI ] [ &quot;#&quot; fragment ]</info>
+ <return type='xmlURIPtr' info='a newly built xmlURIPtr or NULL in case of error'/>
+ <arg name='str' type='const char *' info='the URI string to analyze'/>
+ </function>
+ <function name='xmlParseURIRaw' file='uri' module='uri'>
+ <info>Parse an URI but allows to keep intact the original fragments. URI-reference = URI / relative-ref</info>
+ <return type='xmlURIPtr' info='a newly built xmlURIPtr or NULL in case of error'/>
+ <arg name='str' type='const char *' info='the URI string to analyze'/>
+ <arg name='raw' type='int' info='if 1 unescaping of URI pieces are disabled'/>
+ </function>
+ <function name='xmlParseURIReference' file='uri' module='uri'>
+ <info>Parse an URI reference string based on RFC 3986 and fills in the appropriate fields of the @uri structure URI-reference = URI / relative-ref</info>
+ <return type='int' info='0 or the error code'/>
+ <arg name='uri' type='xmlURIPtr' info='pointer to an URI structure'/>
+ <arg name='str' type='const char *' info='the string to analyze'/>
+ </function>
+ <function name='xmlParseVersionInfo' file='parserInternals' module='parser'>
+ <info>parse the XML version. [24] VersionInfo ::= S &apos;version&apos; Eq (&apos; VersionNum &apos; | &quot; VersionNum &quot;) [25] Eq ::= S? &apos;=&apos; S?</info>
+ <return type='xmlChar *' info='the version string, e.g. &quot;1.0&quot;'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseVersionNum' file='parserInternals' module='parser'>
+ <info>parse the XML version value. [26] VersionNum ::= &apos;1.&apos; [0-9]+ In practice allow [0-9].[0-9]+ at that level</info>
+ <return type='xmlChar *' info='the string giving the XML version number, or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParseXMLDecl' file='parserInternals' module='parser'>
+ <info>parse an XML declaration header [23] XMLDecl ::= &apos;&lt;?xml&apos; VersionInfo EncodingDecl? SDDecl? S? &apos;?&gt;&apos;</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlParserAddNodeInfo' file='parser' module='parserInternals'>
+ <info>Insert node info record into the sorted sequence</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='info' type='const xmlParserNodeInfoPtr' info='a node info sequence pointer'/>
+ </function>
+ <function name='xmlParserError' file='xmlerror' module='error'>
+ <info>Display and format an error messages, gives file, line, position and extra parameters.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='an XML parser context'/>
+ <arg name='msg' type='const char *' info='the message to display/transmit'/>
+ <arg name='...' type='...' info='extra parameters for the message display'/>
+ </function>
+ <function name='xmlParserFindNodeInfo' file='parser' module='parserInternals'>
+ <info>Find the parser node info struct for a given node</info>
+ <return type='const xmlParserNodeInfo *' info='an xmlParserNodeInfo block pointer or NULL'/>
+ <arg name='ctx' type='const xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='node' type='const xmlNodePtr' info='an XML node within the tree'/>
+ </function>
+ <function name='xmlParserFindNodeInfoIndex' file='parser' module='parserInternals'>
+ <info>xmlParserFindNodeInfoIndex : Find the index that the info record for the given node is or should be at in a sorted sequence</info>
+ <return type='unsigned long' info='a long indicating the position of the record'/>
+ <arg name='seq' type='const xmlParserNodeInfoSeqPtr' info='a node info sequence pointer'/>
+ <arg name='node' type='const xmlNodePtr' info='an XML node pointer'/>
+ </function>
+ <function name='xmlParserGetDirectory' file='xmlIO' module='xmlIO'>
+ <info>lookup the directory for that file</info>
+ <return type='char *' info='a new allocated string containing the directory, or NULL.'/>
+ <arg name='filename' type='const char *' info='the path to a file'/>
+ </function>
+ <function name='xmlParserHandlePEReference' file='parserInternals' module='parser'>
+ <info>[69] PEReference ::= &apos;%&apos; Name &apos;;&apos; [ WFC: No Recursion ] A parsed entity must not contain a recursive reference to itself, either directly or indirectly. [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, ... ... The declaration of a parameter entity must precede any reference to it... [ VC: Entity Declared ] In a document with an external subset or external parameter entities with &quot;standalone=&apos;no&apos;&quot;, ... ... The declaration of a parameter entity must precede any reference to it... [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled. A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc i.e. - Included in literal in entity values - Included as Parameter Entity reference within DTDs</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
+ </function>
+ <function name='xmlParserHandleReference' file='parserInternals' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>TODO: Remove, now deprecated ... the test is done directly in the content parsing routines. [67] Reference ::= EntityRef | CharRef [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos; [ WFC: Entity Declared ] the Name given in the entity reference must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot. [ WFC: Parsed Entity ] An entity reference must not contain the name of an unparsed entity [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos; A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
+ </function>
+ <function name='xmlParserInputBufferCreateFd' file='xmlIO' module='xmlIO'>
+ <info>Create a buffered parser input for the progressive parsing for the input from a file descriptor</info>
+ <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
+ <arg name='fd' type='int' info='a file descriptor number'/>
+ <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlParserInputBufferCreateFile' file='xmlIO' module='xmlIO'>
+ <info>Create a buffered parser input for the progressive parsing of a FILE * buffered C I/O</info>
+ <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
+ <arg name='file' type='FILE *' info='a FILE*'/>
+ <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlParserInputBufferCreateFilename' file='xmlIO' module='xmlIO'>
+ <info>Create a buffered parser input for the progressive parsing of a file If filename is &quot;-&apos; then we use stdin as the input. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. Do an encoding check if enc == XML_CHAR_ENCODING_NONE</info>
+ <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
+ <arg name='URI' type='const char *' info='a C string containing the URI or filename'/>
+ <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlParserInputBufferCreateFilenameDefault' file='globals' module='xmlIO'>
+ <info>Registers a callback for URI input file handling</info>
+ <return type='xmlParserInputBufferCreateFilenameFunc' info='the old value of the registration function'/>
+ <arg name='func' type='xmlParserInputBufferCreateFilenameFunc' info='function pointer to the new ParserInputBufferCreateFilenameFunc'/>
+ </function>
+ <functype name='xmlParserInputBufferCreateFilenameFunc' file='globals' module='globals'>
+ <info>Signature for the function doing the lookup for a suitable input method corresponding to an URI.</info>
+ <return type='xmlParserInputBufferPtr' info='the new xmlParserInputBufferPtr in case of success or NULL if no method was found.'/>
+ <arg name='URI' type='const char *' info='the URI to read from'/>
+ <arg name='enc' type='xmlCharEncoding' info='the requested source encoding'/>
+ </functype>
+ <function name='xmlParserInputBufferCreateIO' file='xmlIO' module='xmlIO'>
+ <info>Create a buffered parser input for the progressive parsing for the input from an I/O handler</info>
+ <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
+ <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
+ <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
+ <arg name='ioctx' type='void *' info='an I/O handler'/>
+ <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlParserInputBufferCreateMem' file='xmlIO' module='xmlIO'>
+ <info>Create a buffered parser input for the progressive parsing for the input from a memory area.</info>
+ <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
+ <arg name='mem' type='const char *' info='the memory input'/>
+ <arg name='size' type='int' info='the length of the memory block'/>
+ <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlParserInputBufferCreateStatic' file='xmlIO' module='xmlIO'>
+ <info>Create a buffered parser input for the progressive parsing for the input from an immutable memory area. This will not copy the memory area to the buffer, but the memory is expected to be available until the end of the parsing, this is useful for example when using mmap&apos;ed file.</info>
+ <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
+ <arg name='mem' type='const char *' info='the memory input'/>
+ <arg name='size' type='int' info='the length of the memory block'/>
+ <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
+ </function>
+ <function name='xmlParserInputBufferGrow' file='xmlIO' module='xmlIO'>
+ <info>Grow up the content of the input buffer, the old data are preserved This routine handle the I18N transcoding to internal UTF-8 This routine is used when operating the parser in normal (pull) mode TODO: one should be able to remove one extra copy by copying directly onto in-&gt;buffer or in-&gt;raw</info>
+ <return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
+ <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
+ <arg name='len' type='int' info='indicative value of the amount of chars to read'/>
+ </function>
+ <function name='xmlParserInputBufferPush' file='xmlIO' module='xmlIO'>
+ <info>Push the content of the arry in the input buffer This routine handle the I18N transcoding to internal UTF-8 This is used when operating the parser in progressive (push) mode.</info>
+ <return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
+ <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
+ <arg name='len' type='int' info='the size in bytes of the array.'/>
+ <arg name='buf' type='const char *' info='an char array'/>
+ </function>
+ <function name='xmlParserInputBufferRead' file='xmlIO' module='xmlIO'>
+ <info>Refresh the content of the input buffer, the old data are considered consumed This routine handle the I18N transcoding to internal UTF-8</info>
+ <return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
+ <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
+ <arg name='len' type='int' info='indicative value of the amount of chars to read'/>
+ </function>
+ <functype name='xmlParserInputDeallocate' file='parser' module='parser'>
+ <info>Callback for freeing some parser input allocations.</info>
+ <return type='void'/>
+ <arg name='str' type='xmlChar *' info='the string to deallocate'/>
+ </functype>
+ <function name='xmlParserInputGrow' file='parser' module='parserInternals'>
+ <info>This function increase the input for the parser. It tries to preserve pointers to the input buffer, and keep already read data</info>
+ <return type='int' info='the amount of char read, or -1 in case of error, 0 indicate the end of this entity'/>
+ <arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
+ <arg name='len' type='int' info='an indicative size for the lookahead'/>
+ </function>
+ <function name='xmlParserInputRead' file='parser' module='parserInternals'>
+ <info>This function was internal and is deprecated.</info>
+ <return type='int' info='-1 as this is an error to use it.'/>
+ <arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
+ <arg name='len' type='int' info='an indicative size for the lookahead'/>
+ </function>
+ <function name='xmlParserInputShrink' file='parserInternals' module='parserInternals'>
+ <info>This function removes used input for the parser.</info>
+ <return type='void'/>
+ <arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
+ </function>
+ <function name='xmlParserPrintFileContext' file='xmlerror' module='error'>
+ <info>Displays current context within the input content for error tracking</info>
+ <return type='void'/>
+ <arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr input'/>
+ </function>
+ <function name='xmlParserPrintFileInfo' file='xmlerror' module='error'>
+ <info>Displays the associated file and line informations for the current input</info>
+ <return type='void'/>
+ <arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr input'/>
+ </function>
+ <function name='xmlParserValidityError' file='xmlerror' module='error'>
+ <info>Display and format an validity error messages, gives file, line, position and extra parameters.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='an XML parser context'/>
+ <arg name='msg' type='const char *' info='the message to display/transmit'/>
+ <arg name='...' type='...' info='extra parameters for the message display'/>
+ </function>
+ <function name='xmlParserValidityWarning' file='xmlerror' module='error'>
+ <info>Display and format a validity warning messages, gives file, line, position and extra parameters.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='an XML parser context'/>
+ <arg name='msg' type='const char *' info='the message to display/transmit'/>
+ <arg name='...' type='...' info='extra parameters for the message display'/>
+ </function>
+ <function name='xmlParserWarning' file='xmlerror' module='error'>
+ <info>Display and format a warning messages, gives file, line, position and extra parameters.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='an XML parser context'/>
+ <arg name='msg' type='const char *' info='the message to display/transmit'/>
+ <arg name='...' type='...' info='extra parameters for the message display'/>
+ </function>
+ <function name='xmlPathToURI' file='uri' module='uri'>
+ <info>Constructs an URI expressing the existing path</info>
+ <return type='xmlChar *' info='a new URI, or a duplicate of the path parameter if the construction fails. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.'/>
+ <arg name='path' type='const xmlChar *' info='the resource locator in a filesystem notation'/>
+ </function>
+ <function name='xmlPatternFromRoot' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Check if the pattern must be looked at from the root.</info>
+ <return type='int' info='1 if true, 0 if false and -1 in case of error'/>
+ <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
+ </function>
+ <function name='xmlPatternGetStreamCtxt' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Get a streaming context for that pattern Use xmlFreeStreamCtxt to free the context.</info>
+ <return type='xmlStreamCtxtPtr' info='a pointer to the context or NULL in case of failure'/>
+ <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
+ </function>
+ <function name='xmlPatternMatch' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Test whether the node matches the pattern</info>
+ <return type='int' info='1 if it matches, 0 if it doesn&apos;t and -1 in case of failure'/>
+ <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ </function>
+ <function name='xmlPatternMaxDepth' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Check the maximum depth reachable by a pattern</info>
+ <return type='int' info='-2 if no limit (using //), otherwise the depth, and -1 in case of error'/>
+ <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
+ </function>
+ <function name='xmlPatternMinDepth' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Check the minimum depth reachable by a pattern, 0 mean the / or . are part of the set.</info>
+ <return type='int' info='-1 in case of error otherwise the depth,'/>
+ <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
+ </function>
+ <function name='xmlPatternStreamable' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Check if the pattern is streamable i.e. xmlPatternGetStreamCtxt() should work.</info>
+ <return type='int' info='1 if streamable, 0 if not and -1 in case of error.'/>
+ <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
+ </function>
+ <function name='xmlPatterncompile' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Compile a pattern.</info>
+ <return type='xmlPatternPtr' info='the compiled form of the pattern or NULL in case of error'/>
+ <arg name='pattern' type='const xmlChar *' info='the pattern to compile'/>
+ <arg name='dict' type='xmlDict *' info='an optional dictionary for interned strings'/>
+ <arg name='flags' type='int' info='compilation flags, see xmlPatternFlags'/>
+ <arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
+ </function>
+ <function name='xmlPedanticParserDefault' file='parser' module='parserInternals'>
+ <info>Set and return the previous value for enabling pedantic warnings.</info>
+ <return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
+ <arg name='val' type='int' info='int 0 or 1'/>
+ </function>
+ <function name='xmlPopInput' file='parserInternals' module='parser'>
+ <info>xmlPopInput: the current input pointed by ctxt-&gt;input came to an end pop it and return the next char.</info>
+ <return type='xmlChar' info='the current xmlChar in the parser context'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlPopInputCallbacks' file='xmlIO' module='xmlIO'>
+ <info>Clear the top input callback from the input stack. this includes the compiled-in I/O.</info>
+ <return type='int' info='the number of input callback registered or -1 in case of error.'/>
+ </function>
+ <function name='xmlPreviousElementSibling' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>Finds the first closest previous sibling of the node which is an element node. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don&apos;t have back reference from entities content to entities references.</info>
+ <return type='xmlNodePtr' info='the previous element sibling or NULL if not available'/>
+ <arg name='node' type='xmlNodePtr' info='the current node'/>
+ </function>
+ <function name='xmlPrintURI' file='uri' module='uri'>
+ <info>Prints the URI in the stream @stream.</info>
+ <return type='void'/>
+ <arg name='stream' type='FILE *' info='a FILE* for the output'/>
+ <arg name='uri' type='xmlURIPtr' info='pointer to an xmlURI'/>
+ </function>
+ <function name='xmlPushInput' file='parserInternals' module='parser'>
+ <info>xmlPushInput: switch to a new input stream which is stacked on top of the previous one(s).</info>
+ <return type='int' info='-1 in case of error or the index in the input stack'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='input' type='xmlParserInputPtr' info='an XML parser input fragment (entity, XML fragment ...).'/>
+ </function>
+ <function name='xmlRMutexLock' file='threads' module='threads'>
+ <info>xmlRMutexLock() is used to lock a libxml2 token_r.</info>
+ <return type='void'/>
+ <arg name='tok' type='xmlRMutexPtr' info='the reentrant mutex'/>
+ </function>
+ <function name='xmlRMutexUnlock' file='threads' module='threads'>
+ <info>xmlRMutexUnlock() is used to unlock a libxml2 token_r.</info>
+ <return type='void'/>
+ <arg name='tok' type='xmlRMutexPtr' info='the reentrant mutex'/>
+ </function>
+ <function name='xmlReadDoc' file='parser' module='parser'>
+ <info>parse an XML in-memory document and build a tree.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReadFd' file='parser' module='parser'>
+ <info>parse an XML from a file descriptor and build a tree. NOTE that the file descriptor will not be closed when the reader is closed or reset.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='fd' type='int' info='an open file descriptor'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReadFile' file='parser' module='parser'>
+ <info>parse an XML file from the filesystem or the network.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='filename' type='const char *' info='a file or URL'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReadIO' file='parser' module='parser'>
+ <info>parse an XML document from I/O functions and source and build a tree.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
+ <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
+ <arg name='ioctx' type='void *' info='an I/O handler'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReadMemory' file='parser' module='parser'>
+ <info>parse an XML in-memory document and build a tree.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderForDoc' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.</info>
+ <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderForFd' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Create an xmltextReader for an XML from a file descriptor. The parsing flags @options are a combination of xmlParserOption. NOTE that the file descriptor will not be closed when the reader is closed or reset.</info>
+ <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
+ <arg name='fd' type='int' info='an open file descriptor'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderForFile' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption.</info>
+ <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
+ <arg name='filename' type='const char *' info='a file or URL'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderForIO' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Create an xmltextReader for an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption.</info>
+ <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
+ <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
+ <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
+ <arg name='ioctx' type='void *' info='an I/O handler'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderForMemory' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.</info>
+ <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderNewDoc' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderNewFd' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Setup an xmltextReader to parse an XML from a file descriptor. NOTE that the file descriptor will not be closed when the reader is closed or reset. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
+ <arg name='fd' type='int' info='an open file descriptor'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderNewFile' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
+ <arg name='filename' type='const char *' info='a file or URL'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderNewIO' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Setup an xmltextReader to parse an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
+ <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
+ <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
+ <arg name='ioctx' type='void *' info='an I/O handler'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderNewMemory' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlReaderNewWalker' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Setup an xmltextReader to parse a preparsed XML document. This reuses the existing @reader xmlTextReader.</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
+ <arg name='doc' type='xmlDocPtr' info='a preparsed document'/>
+ </function>
+ <function name='xmlReaderWalker' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Create an xmltextReader for a preparsed document.</info>
+ <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
+ <arg name='doc' type='xmlDocPtr' info='a preparsed document'/>
+ </function>
+ <functype name='xmlReallocFunc' file='xmlmemory' module='xmlmemory'>
+ <info>Signature for a realloc() implementation.</info>
+ <return type='void *' info='a pointer to the newly reallocated block or NULL in case of error.'/>
+ <arg name='mem' type='void *' info='an already allocated block of memory'/>
+ <arg name='size' type='size_t' info='the new size requested in bytes'/>
+ </functype>
+ <function name='xmlReallocLoc' file='xmlmemory' module='xmlmemory'>
+ <info>a realloc() equivalent, with logging of the allocation info.</info>
+ <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
+ <arg name='ptr' type='void *' info='the initial memory block pointer'/>
+ <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
+ <arg name='file' type='const char *' info='the file name or NULL'/>
+ <arg name='line' type='int' info='the line number'/>
+ </function>
+ <function name='xmlReconciliateNs' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED)</cond>
+ <info>This function checks that all the namespaces declared within the given tree are properly declared. This is needed for example after Copy or Cut and then paste operations. The subtree may still hold pointers to namespace declarations outside the subtree or invalid/masked. As much as possible the function try to reuse the existing namespaces found in the new environment. If not possible the new namespaces are redeclared on @tree at the top of the given subtree.</info>
+ <return type='int' info='the number of namespace declarations created or -1 in case of error.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='tree' type='xmlNodePtr' info='a node defining the subtree to reconciliate'/>
+ </function>
+ <function name='xmlRecoverDoc' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a attempt to build a tree is tried anyway</info>
+ <return type='xmlDocPtr' info='the resulting document tree or NULL in case of failure'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
+ </function>
+ <function name='xmlRecoverFile' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, it attempts to build a tree anyway</info>
+ <return type='xmlDocPtr' info='the resulting document tree or NULL in case of failure'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ </function>
+ <function name='xmlRecoverMemory' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML in-memory block and build a tree. In the case the document is not Well Formed, an attempt to build a tree is tried anyway</info>
+ <return type='xmlDocPtr' info='the resulting document tree or NULL in case of error'/>
+ <arg name='buffer' type='const char *' info='an pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ </function>
+ <functype name='xmlRegExecCallbacks' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Callback function when doing a transition in the automata</info>
+ <return type='void'/>
+ <arg name='exec' type='xmlRegExecCtxtPtr' info='the regular expression context'/>
+ <arg name='token' type='const xmlChar *' info='the current token string'/>
+ <arg name='transdata' type='void *' info='transition data'/>
+ <arg name='inputdata' type='void *' info='input data'/>
+ </functype>
+ <function name='xmlRegExecErrInfo' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Extract error informations from the regexp execution, the parameter @string will be updated with the value pushed and not accepted, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values</info>
+ <return type='int' info='will be freed with the @exec context and don&apos;t need to be deallocated. Returns: 0 in case of success or -1 in case of error.'/>
+ <arg name='exec' type='xmlRegExecCtxtPtr' info='a regexp execution context generating an error'/>
+ <arg name='string' type='const xmlChar **' info='return value for the error string'/>
+ <arg name='nbval' type='int *' info='pointer to the number of accepted values IN/OUT'/>
+ <arg name='nbneg' type='int *' info='return number of negative transitions'/>
+ <arg name='values' type='xmlChar **' info='pointer to the array of acceptable values'/>
+ <arg name='terminal' type='int *' info='return value if this was a terminal state'/>
+ </function>
+ <function name='xmlRegExecNextValues' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Extract informations from the regexp execution, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values</info>
+ <return type='int' info='will be freed with the @exec context and don&apos;t need to be deallocated. Returns: 0 in case of success or -1 in case of error.'/>
+ <arg name='exec' type='xmlRegExecCtxtPtr' info='a regexp execution context'/>
+ <arg name='nbval' type='int *' info='pointer to the number of accepted values IN/OUT'/>
+ <arg name='nbneg' type='int *' info='return number of negative transitions'/>
+ <arg name='values' type='xmlChar **' info='pointer to the array of acceptable values'/>
+ <arg name='terminal' type='int *' info='return value if this was a terminal state'/>
+ </function>
+ <function name='xmlRegExecPushString' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Push one input token in the execution context</info>
+ <return type='int' info='1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.'/>
+ <arg name='exec' type='xmlRegExecCtxtPtr' info='a regexp execution context or NULL to indicate the end'/>
+ <arg name='value' type='const xmlChar *' info='a string token input'/>
+ <arg name='data' type='void *' info='data associated to the token to reuse in callbacks'/>
+ </function>
+ <function name='xmlRegExecPushString2' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Push one input token in the execution context</info>
+ <return type='int' info='1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.'/>
+ <arg name='exec' type='xmlRegExecCtxtPtr' info='a regexp execution context or NULL to indicate the end'/>
+ <arg name='value' type='const xmlChar *' info='the first string token input'/>
+ <arg name='value2' type='const xmlChar *' info='the second string token input'/>
+ <arg name='data' type='void *' info='data associated to the token to reuse in callbacks'/>
+ </function>
+ <function name='xmlRegFreeExecCtxt' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Free the structures associated to a regular expression evaluation context.</info>
+ <return type='void'/>
+ <arg name='exec' type='xmlRegExecCtxtPtr' info='a regular expression evaluation context'/>
+ </function>
+ <function name='xmlRegFreeRegexp' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Free a regexp</info>
+ <return type='void'/>
+ <arg name='regexp' type='xmlRegexpPtr' info='the regexp'/>
+ </function>
+ <function name='xmlRegNewExecCtxt' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Build a context used for progressive evaluation of a regexp.</info>
+ <return type='xmlRegExecCtxtPtr' info='the new context'/>
+ <arg name='comp' type='xmlRegexpPtr' info='a precompiled regular expression'/>
+ <arg name='callback' type='xmlRegExecCallbacks' info='a callback function used for handling progresses in the automata matching phase'/>
+ <arg name='data' type='void *' info='the context data associated to the callback in this context'/>
+ </function>
+ <function name='xmlRegexpCompile' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Parses a regular expression conforming to XML Schemas Part 2 Datatype Appendix F and builds an automata suitable for testing strings against that regular expression</info>
+ <return type='xmlRegexpPtr' info='the compiled expression or NULL in case of error'/>
+ <arg name='regexp' type='const xmlChar *' info='a regular expression string'/>
+ </function>
+ <function name='xmlRegexpExec' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Check if the regular expression generates the value</info>
+ <return type='int' info='1 if it matches, 0 if not and a negative value in case of error'/>
+ <arg name='comp' type='xmlRegexpPtr' info='the compiled regular expression'/>
+ <arg name='content' type='const xmlChar *' info='the value to check against the regular expression'/>
+ </function>
+ <function name='xmlRegexpIsDeterminist' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Check if the regular expression is determinist</info>
+ <return type='int' info='1 if it yes, 0 if not and a negative value in case of error'/>
+ <arg name='comp' type='xmlRegexpPtr' info='the compiled regular expression'/>
+ </function>
+ <function name='xmlRegexpPrint' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Print the content of the compiled regular expression</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the file for the output debug'/>
+ <arg name='regexp' type='xmlRegexpPtr' info='the compiled regexp'/>
+ </function>
+ <function name='xmlRegisterCharEncodingHandler' file='encoding' module='encoding'>
+ <info>Register the char encoding handler, surprising, isn&apos;t it ?</info>
+ <return type='void'/>
+ <arg name='handler' type='xmlCharEncodingHandlerPtr' info='the xmlCharEncodingHandlerPtr handler block'/>
+ </function>
+ <function name='xmlRegisterDefaultInputCallbacks' file='xmlIO' module='xmlIO'>
+ <info>Registers the default compiled-in I/O handlers.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlRegisterDefaultOutputCallbacks' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Registers the default compiled-in I/O handlers.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlRegisterHTTPPostCallbacks' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED) &amp;&amp; defined(LIBXML_HTTP_ENABLED)</cond>
+ <info>By default, libxml submits HTTP output requests using the &quot;PUT&quot; method. Calling this method changes the HTTP output method to use the &quot;POST&quot; method instead.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlRegisterInputCallbacks' file='xmlIO' module='xmlIO'>
+ <info>Register a new set of I/O callback for handling parser input.</info>
+ <return type='int' info='the registered handler number or -1 in case of error'/>
+ <arg name='matchFunc' type='xmlInputMatchCallback' info='the xmlInputMatchCallback'/>
+ <arg name='openFunc' type='xmlInputOpenCallback' info='the xmlInputOpenCallback'/>
+ <arg name='readFunc' type='xmlInputReadCallback' info='the xmlInputReadCallback'/>
+ <arg name='closeFunc' type='xmlInputCloseCallback' info='the xmlInputCloseCallback'/>
+ </function>
+ <function name='xmlRegisterNodeDefault' file='globals' module='globals'>
+ <info>Registers a callback for node creation</info>
+ <return type='xmlRegisterNodeFunc' info='the old value of the registration function'/>
+ <arg name='func' type='xmlRegisterNodeFunc' info='function pointer to the new RegisterNodeFunc'/>
+ </function>
+ <functype name='xmlRegisterNodeFunc' file='globals' module='globals'>
+ <info>Signature for the registration callback of a created node</info>
+ <return type='void'/>
+ <arg name='node' type='xmlNodePtr' info='the current node'/>
+ </functype>
+ <function name='xmlRegisterOutputCallbacks' file='xmlIO' module='xmlIO'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Register a new set of I/O callback for handling output.</info>
+ <return type='int' info='the registered handler number or -1 in case of error'/>
+ <arg name='matchFunc' type='xmlOutputMatchCallback' info='the xmlOutputMatchCallback'/>
+ <arg name='openFunc' type='xmlOutputOpenCallback' info='the xmlOutputOpenCallback'/>
+ <arg name='writeFunc' type='xmlOutputWriteCallback' info='the xmlOutputWriteCallback'/>
+ <arg name='closeFunc' type='xmlOutputCloseCallback' info='the xmlOutputCloseCallback'/>
+ </function>
+ <function name='xmlRelaxNGCleanupTypes' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Cleanup the default Schemas type library associated to RelaxNG</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlRelaxNGDump' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump a RelaxNG structure back</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the file output'/>
+ <arg name='schema' type='xmlRelaxNGPtr' info='a schema structure'/>
+ </function>
+ <function name='xmlRelaxNGDumpTree' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump the transformed RelaxNG tree.</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the file output'/>
+ <arg name='schema' type='xmlRelaxNGPtr' info='a schema structure'/>
+ </function>
+ <function name='xmlRelaxNGFree' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Deallocate a RelaxNG structure.</info>
+ <return type='void'/>
+ <arg name='schema' type='xmlRelaxNGPtr' info='a schema structure'/>
+ </function>
+ <function name='xmlRelaxNGFreeParserCtxt' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Free the resources associated to the schema parser context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='the schema parser context'/>
+ </function>
+ <function name='xmlRelaxNGFreeValidCtxt' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Free the resources associated to the schema validation context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the schema validation context'/>
+ </function>
+ <function name='xmlRelaxNGGetParserErrors' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Get the callback information used to handle errors for a validation context</info>
+ <return type='int' info='-1 in case of failure, 0 otherwise.'/>
+ <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG validation context'/>
+ <arg name='err' type='xmlRelaxNGValidityErrorFunc *' info='the error callback result'/>
+ <arg name='warn' type='xmlRelaxNGValidityWarningFunc *' info='the warning callback result'/>
+ <arg name='ctx' type='void **' info='contextual data for the callbacks result'/>
+ </function>
+ <function name='xmlRelaxNGGetValidErrors' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Get the error and warning callback informations</info>
+ <return type='int' info='-1 in case of error and 0 otherwise'/>
+ <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
+ <arg name='err' type='xmlRelaxNGValidityErrorFunc *' info='the error function result'/>
+ <arg name='warn' type='xmlRelaxNGValidityWarningFunc *' info='the warning function result'/>
+ <arg name='ctx' type='void **' info='the functions context result'/>
+ </function>
+ <function name='xmlRelaxNGInitTypes' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Initialize the default type libraries.</info>
+ <return type='int' info='0 in case of success and -1 in case of error.'/>
+ </function>
+ <function name='xmlRelaxNGNewDocParserCtxt' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Create an XML RelaxNGs parser context for that document. Note: since the process of compiling a RelaxNG schemas modifies the document, the @doc parameter is duplicated internally.</info>
+ <return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
+ <arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
+ </function>
+ <function name='xmlRelaxNGNewMemParserCtxt' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Create an XML RelaxNGs parse context for that memory buffer expected to contain an XML RelaxNGs file.</info>
+ <return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array containing the schemas'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ </function>
+ <function name='xmlRelaxNGNewParserCtxt' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Create an XML RelaxNGs parse context for that file/resource expected to contain an XML RelaxNGs file.</info>
+ <return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
+ <arg name='URL' type='const char *' info='the location of the schema'/>
+ </function>
+ <function name='xmlRelaxNGNewValidCtxt' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Create an XML RelaxNGs validation context based on the given schema</info>
+ <return type='xmlRelaxNGValidCtxtPtr' info='the validation context or NULL in case of error'/>
+ <arg name='schema' type='xmlRelaxNGPtr' info='a precompiled XML RelaxNGs'/>
+ </function>
+ <function name='xmlRelaxNGParse' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>parse a schema definition resource and build an internal XML Schema structure which can be used to validate instances.</info>
+ <return type='xmlRelaxNGPtr' info='the internal XML RelaxNG structure built from the resource or NULL in case of error'/>
+ <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG parser context'/>
+ </function>
+ <function name='xmlRelaxNGSetParserErrors' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Set the callback functions used to handle errors for a validation context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG validation context'/>
+ <arg name='err' type='xmlRelaxNGValidityErrorFunc' info='the error callback'/>
+ <arg name='warn' type='xmlRelaxNGValidityWarningFunc' info='the warning callback'/>
+ <arg name='ctx' type='void *' info='contextual data for the callbacks'/>
+ </function>
+ <function name='xmlRelaxNGSetParserStructuredErrors' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Set the callback functions used to handle errors for a parsing context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG parser context'/>
+ <arg name='serror' type='xmlStructuredErrorFunc' info='the error callback'/>
+ <arg name='ctx' type='void *' info='contextual data for the callbacks'/>
+ </function>
+ <function name='xmlRelaxNGSetValidErrors' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Set the error and warning callback informations</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
+ <arg name='err' type='xmlRelaxNGValidityErrorFunc' info='the error function'/>
+ <arg name='warn' type='xmlRelaxNGValidityWarningFunc' info='the warning function'/>
+ <arg name='ctx' type='void *' info='the functions context'/>
+ </function>
+ <function name='xmlRelaxNGSetValidStructuredErrors' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Set the structured error callback</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
+ <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
+ <arg name='ctx' type='void *' info='the functions context'/>
+ </function>
+ <function name='xmlRelaxNGValidateDoc' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Validate a document tree in memory.</info>
+ <return type='int' info='0 if the document is valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a parsed document tree'/>
+ </function>
+ <function name='xmlRelaxNGValidateFullElement' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Validate a full subtree when xmlRelaxNGValidatePushElement() returned 0 and the content of the node has been expanded.</info>
+ <return type='int' info='1 if no validation problem was found or -1 in case of error.'/>
+ <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='elem' type='xmlNodePtr' info='an element instance'/>
+ </function>
+ <function name='xmlRelaxNGValidatePopElement' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Pop the element end from the RelaxNG validation stack.</info>
+ <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
+ <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the RelaxNG validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='elem' type='xmlNodePtr' info='an element instance'/>
+ </function>
+ <function name='xmlRelaxNGValidatePushCData' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>check the CData parsed for validation in the current stack</info>
+ <return type='int' info='1 if no validation problem was found or -1 otherwise'/>
+ <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the RelaxNG validation context'/>
+ <arg name='data' type='const xmlChar *' info='some character data read'/>
+ <arg name='len' type='int' info='the length of the data'/>
+ </function>
+ <function name='xmlRelaxNGValidatePushElement' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Push a new element start on the RelaxNG validation stack.</info>
+ <return type='int' info='1 if no validation problem was found or 0 if validating the element requires a full node, and -1 in case of error.'/>
+ <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='elem' type='xmlNodePtr' info='an element instance'/>
+ </function>
+ <functype name='xmlRelaxNGValidityErrorFunc' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Signature of an error callback from a Relax-NG validation</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the validation context'/>
+ <arg name='msg' type='const char *' info='the message'/>
+ <arg name='...' type='...' info='extra arguments'/>
+ </functype>
+ <functype name='xmlRelaxNGValidityWarningFunc' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Signature of a warning callback from a Relax-NG validation</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the validation context'/>
+ <arg name='msg' type='const char *' info='the message'/>
+ <arg name='...' type='...' info='extra arguments'/>
+ </functype>
+ <function name='xmlRelaxParserSetFlag' file='relaxng' module='relaxng'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Semi private function used to pass informations to a parser context which are a combination of xmlRelaxNGParserFlag .</info>
+ <return type='int' info='0 if success and -1 in case of error'/>
+ <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a RelaxNG parser context'/>
+ <arg name='flags' type='int' info='a set of flags values'/>
+ </function>
+ <function name='xmlRemoveID' file='valid' module='valid'>
+ <info>Remove the given attribute from the ID table maintained internally.</info>
+ <return type='int' info='-1 if the lookup failed and 0 otherwise'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
+ </function>
+ <function name='xmlRemoveProp' file='tree' module='tree'>
+ <info>Unlink and free one attribute, all the content is freed too Note this doesn&apos;t work for namespace definition attributes</info>
+ <return type='int' info='0 if success and -1 in case of error.'/>
+ <arg name='cur' type='xmlAttrPtr' info='an attribute'/>
+ </function>
+ <function name='xmlRemoveRef' file='valid' module='valid'>
+ <info>Remove the given attribute from the Ref table maintained internally.</info>
+ <return type='int' info='-1 if the lookup failed and 0 otherwise'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
+ </function>
+ <function name='xmlReplaceNode' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Unlink the old node from its current context, prune the new one at the same place. If @cur was already inserted in a document it is first unlinked from its existing context.</info>
+ <return type='xmlNodePtr' info='the @old node'/>
+ <arg name='old' type='xmlNodePtr' info='the old node'/>
+ <arg name='cur' type='xmlNodePtr' info='the node'/>
+ </function>
+ <function name='xmlResetError' file='xmlerror' module='error'>
+ <info>Cleanup the error.</info>
+ <return type='void'/>
+ <arg name='err' type='xmlErrorPtr' info='pointer to the error.'/>
+ </function>
+ <function name='xmlResetLastError' file='xmlerror' module='error'>
+ <info>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlSAX2AttributeDecl' file='SAX2' module='SAX2'>
+ <info>An attribute definition has been parsed</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='elem' type='const xmlChar *' info='the name of the element'/>
+ <arg name='fullname' type='const xmlChar *' info='the attribute name'/>
+ <arg name='type' type='int' info='the attribute type'/>
+ <arg name='def' type='int' info='the type of default value'/>
+ <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
+ <arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
+ </function>
+ <function name='xmlSAX2CDataBlock' file='SAX2' module='SAX2'>
+ <info>called when a pcdata block has been parsed</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='value' type='const xmlChar *' info='The pcdata content'/>
+ <arg name='len' type='int' info='the block length'/>
+ </function>
+ <function name='xmlSAX2Characters' file='SAX2' module='SAX2'>
+ <info>receiving some chars from the parser.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
+ <arg name='len' type='int' info='the number of xmlChar'/>
+ </function>
+ <function name='xmlSAX2Comment' file='SAX2' module='SAX2'>
+ <info>A xmlSAX2Comment has been parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='value' type='const xmlChar *' info='the xmlSAX2Comment content'/>
+ </function>
+ <function name='xmlSAX2ElementDecl' file='SAX2' module='SAX2'>
+ <info>An element definition has been parsed</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the element name'/>
+ <arg name='type' type='int' info='the element type'/>
+ <arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
+ </function>
+ <function name='xmlSAX2EndDocument' file='SAX2' module='SAX2'>
+ <info>called when the document end has been detected.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='xmlSAX2EndElement' file='SAX2' module='SAX2'>
+ <cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>called when the end of an element has been detected.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The element name'/>
+ </function>
+ <function name='xmlSAX2EndElementNs' file='SAX2' module='SAX2'>
+ <info>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='localname' type='const xmlChar *' info='the local name of the element'/>
+ <arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
+ <arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
+ </function>
+ <function name='xmlSAX2EntityDecl' file='SAX2' module='SAX2'>
+ <info>An entity definition has been parsed</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the entity name'/>
+ <arg name='type' type='int' info='the entity type'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ <arg name='content' type='xmlChar *' info='the entity value (without processing).'/>
+ </function>
+ <function name='xmlSAX2ExternalSubset' file='SAX2' module='SAX2'>
+ <info>Callback on external subset declaration.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the root element name'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
+ <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
+ </function>
+ <function name='xmlSAX2GetColumnNumber' file='SAX2' module='SAX2'>
+ <info>Provide the column number of the current parsing point.</info>
+ <return type='int' info='an int'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='xmlSAX2GetEntity' file='SAX2' module='SAX2'>
+ <info>Get an entity by name</info>
+ <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The entity name'/>
+ </function>
+ <function name='xmlSAX2GetLineNumber' file='SAX2' module='SAX2'>
+ <info>Provide the line number of the current parsing point.</info>
+ <return type='int' info='an int'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='xmlSAX2GetParameterEntity' file='SAX2' module='SAX2'>
+ <info>Get a parameter entity by name</info>
+ <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The entity name'/>
+ </function>
+ <function name='xmlSAX2GetPublicId' file='SAX2' module='SAX2'>
+ <info>Provides the public ID e.g. &quot;-//SGMLSOURCE//DTD DEMO//EN&quot;</info>
+ <return type='const xmlChar *' info='a xmlChar *'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='xmlSAX2GetSystemId' file='SAX2' module='SAX2'>
+ <info>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd</info>
+ <return type='const xmlChar *' info='a xmlChar *'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='xmlSAX2HasExternalSubset' file='SAX2' module='SAX2'>
+ <info>Does this document has an external subset</info>
+ <return type='int' info='1 if true'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='xmlSAX2HasInternalSubset' file='SAX2' module='SAX2'>
+ <info>Does this document has an internal subset</info>
+ <return type='int' info='1 if true'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='xmlSAX2IgnorableWhitespace' file='SAX2' module='SAX2'>
+ <info>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use xmlSAX2Characters</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
+ <arg name='len' type='int' info='the number of xmlChar'/>
+ </function>
+ <function name='xmlSAX2InitDefaultSAXHandler' file='SAX2' module='SAX2'>
+ <info>Initialize the default XML SAX2 handler</info>
+ <return type='void'/>
+ <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
+ <arg name='warning' type='int' info='flag if non-zero sets the handler warning procedure'/>
+ </function>
+ <function name='xmlSAX2InitDocbDefaultSAXHandler' file='SAX2' module='SAX2'>
+ <cond>defined(LIBXML_DOCB_ENABLED)</cond>
+ <info>Initialize the default DocBook SAX2 handler</info>
+ <return type='void'/>
+ <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
+ </function>
+ <function name='xmlSAX2InitHtmlDefaultSAXHandler' file='SAX2' module='SAX2'>
+ <cond>defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Initialize the default HTML SAX2 handler</info>
+ <return type='void'/>
+ <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
+ </function>
+ <function name='xmlSAX2InternalSubset' file='SAX2' module='SAX2'>
+ <info>Callback on internal subset declaration.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='the root element name'/>
+ <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
+ <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
+ </function>
+ <function name='xmlSAX2IsStandalone' file='SAX2' module='SAX2'>
+ <info>Is this document tagged standalone ?</info>
+ <return type='int' info='1 if true'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='xmlSAX2NotationDecl' file='SAX2' module='SAX2'>
+ <info>What to do when a notation declaration has been parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The name of the notation'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ </function>
+ <function name='xmlSAX2ProcessingInstruction' file='SAX2' module='SAX2'>
+ <info>A processing instruction has been parsed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='target' type='const xmlChar *' info='the target name'/>
+ <arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
+ </function>
+ <function name='xmlSAX2Reference' file='SAX2' module='SAX2'>
+ <info>called when an entity xmlSAX2Reference is detected.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The entity name'/>
+ </function>
+ <function name='xmlSAX2ResolveEntity' file='SAX2' module='SAX2'>
+ <info>The entity loader, to control the loading of external entities, the application can either: - override this xmlSAX2ResolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine</info>
+ <return type='xmlParserInputPtr' info='the xmlParserInputPtr if inlined or NULL for DOM behaviour.'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ </function>
+ <function name='xmlSAX2SetDocumentLocator' file='SAX2' module='SAX2'>
+ <info>Receive the document locator at startup, actually xmlDefaultSAXLocator Everything is available on the context, so this is useless in our case.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
+ </function>
+ <function name='xmlSAX2StartDocument' file='SAX2' module='SAX2'>
+ <info>called when the document start being processed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ </function>
+ <function name='xmlSAX2StartElement' file='SAX2' module='SAX2'>
+ <cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>called when an opening tag has been processed.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='fullname' type='const xmlChar *' info='The element name, including namespace prefix'/>
+ <arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
+ </function>
+ <function name='xmlSAX2StartElementNs' file='SAX2' module='SAX2'>
+ <info>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='localname' type='const xmlChar *' info='the local name of the element'/>
+ <arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
+ <arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
+ <arg name='nb_namespaces' type='int' info='number of namespace definitions on that node'/>
+ <arg name='namespaces' type='const xmlChar **' info='pointer to the array of prefix/URI pairs namespace definitions'/>
+ <arg name='nb_attributes' type='int' info='the number of attributes on that node'/>
+ <arg name='nb_defaulted' type='int' info='the number of defaulted attributes.'/>
+ <arg name='attributes' type='const xmlChar **' info='pointer to the array of (localname/prefix/URI/value/end) attribute values.'/>
+ </function>
+ <function name='xmlSAX2UnparsedEntityDecl' file='SAX2' module='SAX2'>
+ <info>What to do when an unparsed entity declaration is parsed</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
+ <arg name='name' type='const xmlChar *' info='The name of the entity'/>
+ <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
+ <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
+ <arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
+ </function>
+ <function name='xmlSAXDefaultVersion' file='SAX2' module='SAX2'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>Set the default version of SAX used globally by the library. By default, during initialization the default is set to 2. Note that it is generally a better coding style to use xmlSAXVersion() to set up the version explicitly for a given parsing context.</info>
+ <return type='int' info='the previous value in case of success and -1 in case of error.'/>
+ <arg name='version' type='int' info='the version, 1 or 2'/>
+ </function>
+ <function name='xmlSAXParseDTD' file='parser' module='parser'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Load and parse an external subset.</info>
+ <return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error.'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='ExternalID' type='const xmlChar *' info='a NAME* containing the External ID of the DTD'/>
+ <arg name='SystemID' type='const xmlChar *' info='a NAME* containing the URL to the DTD'/>
+ </function>
+ <function name='xmlSAXParseDoc' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
+ <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
+ </function>
+ <function name='xmlSAXParseEntity' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML external entity out of context and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. [78] extParsedEnt ::= TextDecl? content This correspond to a &quot;Well Balanced&quot; chunk</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ </function>
+ <function name='xmlSAXParseFile' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
+ </function>
+ <function name='xmlSAXParseFileWithData' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. User data (void *) is stored within the parser context in the context&apos;s _private member, so it is available nearly everywhere in libxml</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='filename' type='const char *' info='the filename'/>
+ <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
+ <arg name='data' type='void *' info='the userdata'/>
+ </function>
+ <function name='xmlSAXParseMemory' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='buffer' type='const char *' info='an pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read not Well Formed documents'/>
+ </function>
+ <function name='xmlSAXParseMemoryWithData' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. User data (void *) is stored within the parser context in the context&apos;s _private member, so it is available nearly everywhere in libxml</info>
+ <return type='xmlDocPtr' info='the resulting document tree'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
+ <arg name='buffer' type='const char *' info='an pointer to a char array'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
+ <arg name='data' type='void *' info='the userdata'/>
+ </function>
+ <function name='xmlSAXUserParseFile' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>parse an XML file and call the given SAX handler routines. Automatic support for ZLIB/Compress compressed document is provided</info>
+ <return type='int' info='0 in case of success or a error number otherwise'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler'/>
+ <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
+ <arg name='filename' type='const char *' info='a file name'/>
+ </function>
+ <function name='xmlSAXUserParseMemory' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>A better SAX parsing routine. parse an XML in-memory buffer and call the given SAX handler routines.</info>
+ <return type='int' info='0 in case of success or a error number otherwise'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler'/>
+ <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
+ <arg name='buffer' type='const char *' info='an in-memory XML document input'/>
+ <arg name='size' type='int' info='the length of the XML document in bytes'/>
+ </function>
+ <function name='xmlSAXVersion' file='SAX2' module='SAX2'>
+ <info>Initialize the default XML SAX handler according to the version</info>
+ <return type='int' info='0 in case of success and -1 in case of error.'/>
+ <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
+ <arg name='version' type='int' info='the version, 1 or 2'/>
+ </function>
+ <function name='xmlSaveClose' file='xmlsave' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Close a document saving context, i.e. make sure that all bytes have been output and free the associated data.</info>
+ <return type='int' info='the number of byte written or -1 in case of error.'/>
+ <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
+ </function>
+ <function name='xmlSaveDoc' file='xmlsave' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Save a full document to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</info>
+ <return type='long' info='the number of byte written or -1 in case of error'/>
+ <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document'/>
+ </function>
+ <function name='xmlSaveFile' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is &quot;-&quot; the stdout file is used.</info>
+ <return type='int' info='the number of bytes written or -1 in case of failure.'/>
+ <arg name='filename' type='const char *' info='the filename (or URL)'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ </function>
+ <function name='xmlSaveFileEnc' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML document, converting it to the given encoding</info>
+ <return type='int' info='the number of bytes written or -1 in case of failure.'/>
+ <arg name='filename' type='const char *' info='the filename (or URL)'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='encoding' type='const char *' info='the name of an encoding (or NULL)'/>
+ </function>
+ <function name='xmlSaveFileTo' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call.</info>
+ <return type='int' info='the number of bytes written or -1 in case of failure.'/>
+ <arg name='buf' type='xmlOutputBufferPtr' info='an output I/O buffer'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='encoding' type='const char *' info='the encoding if any assuming the I/O layer handles the transcoding'/>
+ </function>
+ <function name='xmlSaveFlush' file='xmlsave' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Flush a document saving context, i.e. make sure that all bytes have been output.</info>
+ <return type='int' info='the number of byte written or -1 in case of error.'/>
+ <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
+ </function>
+ <function name='xmlSaveFormatFile' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is &quot;-&quot; the stdout file is used. If @format is set then the document will be indented on output. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
+ <return type='int' info='the number of bytes written or -1 in case of failure.'/>
+ <arg name='filename' type='const char *' info='the filename (or URL)'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='format' type='int' info='should formatting spaces been added'/>
+ </function>
+ <function name='xmlSaveFormatFileEnc' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML document to a file or an URL.</info>
+ <return type='int' info='the number of bytes written or -1 in case of error. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called'/>
+ <arg name='filename' type='const char *' info='the filename or URL to output'/>
+ <arg name='cur' type='xmlDocPtr' info='the document being saved'/>
+ <arg name='encoding' type='const char *' info='the name of the encoding to use or NULL.'/>
+ <arg name='format' type='int' info='should formatting spaces be added.'/>
+ </function>
+ <function name='xmlSaveFormatFileTo' file='tree' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call.</info>
+ <return type='int' info='the number of bytes written or -1 in case of failure.'/>
+ <arg name='buf' type='xmlOutputBufferPtr' info='an output I/O buffer'/>
+ <arg name='cur' type='xmlDocPtr' info='the document'/>
+ <arg name='encoding' type='const char *' info='the encoding if any assuming the I/O layer handles the transcoding'/>
+ <arg name='format' type='int' info='should formatting spaces been added'/>
+ </function>
+ <function name='xmlSaveSetAttrEscape' file='xmlsave' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Set a custom escaping function to be used for text in attribute content</info>
+ <return type='int' info='0 if successful or -1 in case of error.'/>
+ <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
+ <arg name='escape' type='xmlCharEncodingOutputFunc' info='the escaping function'/>
+ </function>
+ <function name='xmlSaveSetEscape' file='xmlsave' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Set a custom escaping function to be used for text in element content</info>
+ <return type='int' info='0 if successful or -1 in case of error.'/>
+ <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
+ <arg name='escape' type='xmlCharEncodingOutputFunc' info='the escaping function'/>
+ </function>
+ <function name='xmlSaveToBuffer' file='xmlsave' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Create a document saving context serializing to a buffer with the encoding and the options given</info>
+ <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
+ <arg name='buffer' type='xmlBufferPtr' info='a buffer'/>
+ <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
+ <arg name='options' type='int' info='a set of xmlSaveOptions'/>
+ </function>
+ <function name='xmlSaveToFd' file='xmlsave' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Create a document saving context serializing to a file descriptor with the encoding and the options given.</info>
+ <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
+ <arg name='fd' type='int' info='a file descriptor number'/>
+ <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
+ <arg name='options' type='int' info='a set of xmlSaveOptions'/>
+ </function>
+ <function name='xmlSaveToFilename' file='xmlsave' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Create a document saving context serializing to a filename or possibly to an URL (but this is less reliable) with the encoding and the options given.</info>
+ <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
+ <arg name='filename' type='const char *' info='a file name or an URL'/>
+ <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
+ <arg name='options' type='int' info='a set of xmlSaveOptions'/>
+ </function>
+ <function name='xmlSaveToIO' file='xmlsave' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Create a document saving context serializing to a file descriptor with the encoding and the options given</info>
+ <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
+ <arg name='iowrite' type='xmlOutputWriteCallback' info='an I/O write function'/>
+ <arg name='ioclose' type='xmlOutputCloseCallback' info='an I/O close function'/>
+ <arg name='ioctx' type='void *' info='an I/O handler'/>
+ <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
+ <arg name='options' type='int' info='a set of xmlSaveOptions'/>
+ </function>
+ <function name='xmlSaveTree' file='xmlsave' module='xmlsave'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Save a subtree starting at the node parameter to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</info>
+ <return type='long' info='the number of byte written or -1 in case of error'/>
+ <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
+ <arg name='node' type='xmlNodePtr' info='the top node of the subtree to save'/>
+ </function>
+ <function name='xmlSaveUri' file='uri' module='uri'>
+ <info>Save the URI as an escaped string</info>
+ <return type='xmlChar *' info='a new string (to be deallocated by caller)'/>
+ <arg name='uri' type='xmlURIPtr' info='pointer to an xmlURI'/>
+ </function>
+ <function name='xmlScanName' file='parserInternals' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Trickery: parse an XML name but without consuming the input flow Needed for rollback cases. Used only when parsing entities references. TODO: seems deprecated now, only used in the default part of xmlParserHandleReference [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)* [6] Names ::= Name (S Name)*</info>
+ <return type='xmlChar *' info='the Name parsed or NULL'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlSchemaCheckFacet' file='xmlschemastypes' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Checks and computes the values of facets.</info>
+ <return type='int' info='0 if valid, a positive error code if not valid and -1 in case of an internal or API error.'/>
+ <arg name='facet' type='xmlSchemaFacetPtr' info='the facet'/>
+ <arg name='typeDecl' type='xmlSchemaTypePtr' info='the schema type definition'/>
+ <arg name='pctxt' type='xmlSchemaParserCtxtPtr' info='the schema parser context or NULL'/>
+ <arg name='name' type='const xmlChar *' info='the optional name of the type'/>
+ </function>
+ <function name='xmlSchemaCleanupTypes' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Cleanup the default XML Schemas type library</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlSchemaCollapseString' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Removes and normalize white spaces in the string</info>
+ <return type='xmlChar *' info='the new string or NULL if no change was required.'/>
+ <arg name='value' type='const xmlChar *' info='a value'/>
+ </function>
+ <function name='xmlSchemaCompareValues' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Compare 2 values</info>
+ <return type='int' info='-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error'/>
+ <arg name='x' type='xmlSchemaValPtr' info='a first value'/>
+ <arg name='y' type='xmlSchemaValPtr' info='a second value'/>
+ </function>
+ <function name='xmlSchemaCompareValuesWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Compare 2 values</info>
+ <return type='int' info='-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error'/>
+ <arg name='x' type='xmlSchemaValPtr' info='a first value'/>
+ <arg name='xws' type='xmlSchemaWhitespaceValueType' info='the whitespace value of x'/>
+ <arg name='y' type='xmlSchemaValPtr' info='a second value'/>
+ <arg name='yws' type='xmlSchemaWhitespaceValueType' info='the whitespace value of y'/>
+ </function>
+ <function name='xmlSchemaCopyValue' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Copies the precomputed value. This duplicates any string within.</info>
+ <return type='xmlSchemaValPtr' info='the copy or NULL if a copy for a data-type is not implemented.'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the precomputed value to be copied'/>
+ </function>
+ <function name='xmlSchemaDump' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Dump a Schema structure.</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the file output'/>
+ <arg name='schema' type='xmlSchemaPtr' info='a schema structure'/>
+ </function>
+ <function name='xmlSchemaFree' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Deallocate a Schema structure.</info>
+ <return type='void'/>
+ <arg name='schema' type='xmlSchemaPtr' info='a schema structure'/>
+ </function>
+ <function name='xmlSchemaFreeFacet' file='xmlschemastypes' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Deallocate a Schema Facet structure.</info>
+ <return type='void'/>
+ <arg name='facet' type='xmlSchemaFacetPtr' info='a schema facet structure'/>
+ </function>
+ <function name='xmlSchemaFreeParserCtxt' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Free the resources associated to the schema parser context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='the schema parser context'/>
+ </function>
+ <function name='xmlSchemaFreeType' file='schemasInternals' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Deallocate a Schema Type structure.</info>
+ <return type='void'/>
+ <arg name='type' type='xmlSchemaTypePtr' info='a schema type structure'/>
+ </function>
+ <function name='xmlSchemaFreeValidCtxt' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Free the resources associated to the schema validation context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='the schema validation context'/>
+ </function>
+ <function name='xmlSchemaFreeValue' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Cleanup the default XML Schemas type library</info>
+ <return type='void'/>
+ <arg name='value' type='xmlSchemaValPtr' info='the value to free'/>
+ </function>
+ <function name='xmlSchemaFreeWildcard' file='schemasInternals' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Deallocates a wildcard structure.</info>
+ <return type='void'/>
+ <arg name='wildcard' type='xmlSchemaWildcardPtr' info='a wildcard structure'/>
+ </function>
+ <function name='xmlSchemaGetBuiltInListSimpleTypeItemType' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Lookup function</info>
+ <return type='xmlSchemaTypePtr' info='the item type of @type as defined by the built-in datatype hierarchy of XML Schema Part 2: Datatypes, or NULL in case of an error.'/>
+ <arg name='type' type='xmlSchemaTypePtr' info='the built-in simple type.'/>
+ </function>
+ <function name='xmlSchemaGetBuiltInType' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Gives you the type struct for a built-in type by its type id.</info>
+ <return type='xmlSchemaTypePtr' info='the type if found, NULL otherwise.'/>
+ <arg name='type' type='xmlSchemaValType' info='the type of the built in type'/>
+ </function>
+ <function name='xmlSchemaGetCanonValue' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Get the canonical lexical representation of the value. The caller has to FREE the returned retValue. WARNING: Some value types are not supported yet, resulting in a @retValue of &quot;???&quot;. TODO: XML Schema 1.0 does not define canonical representations for: duration, gYearMonth, gYear, gMonthDay, gMonth, gDay, anyURI, QName, NOTATION. This will be fixed in XML Schema 1.1.</info>
+ <return type='int' info='0 if the value could be built, 1 if the value type is not supported yet and -1 in case of API errors.'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
+ <arg name='retValue' type='const xmlChar **' info='the returned value'/>
+ </function>
+ <function name='xmlSchemaGetCanonValueWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Get the canonical representation of the value. The caller has to free the returned @retValue.</info>
+ <return type='int' info='0 if the value could be built, 1 if the value type is not supported yet and -1 in case of API errors.'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
+ <arg name='retValue' type='const xmlChar **' info='the returned value'/>
+ <arg name='ws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the value'/>
+ </function>
+ <function name='xmlSchemaGetFacetValueAsULong' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Extract the value of a facet</info>
+ <return type='unsigned long' info='the value as a long'/>
+ <arg name='facet' type='xmlSchemaFacetPtr' info='an schemas type facet'/>
+ </function>
+ <function name='xmlSchemaGetParserErrors' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Get the callback information used to handle errors for a parser context</info>
+ <return type='int' info='-1 in case of failure, 0 otherwise'/>
+ <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='a XMl-Schema parser context'/>
+ <arg name='err' type='xmlSchemaValidityErrorFunc *' info='the error callback result'/>
+ <arg name='warn' type='xmlSchemaValidityWarningFunc *' info='the warning callback result'/>
+ <arg name='ctx' type='void **' info='contextual data for the callbacks result'/>
+ </function>
+ <function name='xmlSchemaGetPredefinedType' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Lookup a type in the default XML Schemas type library</info>
+ <return type='xmlSchemaTypePtr' info='the type if found, NULL otherwise'/>
+ <arg name='name' type='const xmlChar *' info='the type name'/>
+ <arg name='ns' type='const xmlChar *' info='the URI of the namespace usually &quot;http://www.w3.org/2001/XMLSchema&quot;'/>
+ </function>
+ <function name='xmlSchemaGetValType' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Accessor for the type of a value</info>
+ <return type='xmlSchemaValType' info='the xmlSchemaValType of the value'/>
+ <arg name='val' type='xmlSchemaValPtr' info='a schemas value'/>
+ </function>
+ <function name='xmlSchemaGetValidErrors' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Get the error and warning callback informations</info>
+ <return type='int' info='-1 in case of error and 0 otherwise'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a XML-Schema validation context'/>
+ <arg name='err' type='xmlSchemaValidityErrorFunc *' info='the error function result'/>
+ <arg name='warn' type='xmlSchemaValidityWarningFunc *' info='the warning function result'/>
+ <arg name='ctx' type='void **' info='the functions context result'/>
+ </function>
+ <function name='xmlSchemaInitTypes' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Initialize the default XML Schemas type library</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlSchemaIsBuiltInTypeFacet' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Evaluates if a specific facet can be used in conjunction with a type.</info>
+ <return type='int' info='1 if the facet can be used with the given built-in type, 0 otherwise and -1 in case the type is not a built-in type.'/>
+ <arg name='type' type='xmlSchemaTypePtr' info='the built-in type'/>
+ <arg name='facetType' type='int' info='the facet type'/>
+ </function>
+ <function name='xmlSchemaIsValid' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Check if any error was detected during validation.</info>
+ <return type='int' info='1 if valid so far, 0 if errors were detected, and -1 in case of internal error.'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='the schema validation context'/>
+ </function>
+ <function name='xmlSchemaNewDocParserCtxt' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Create an XML Schemas parse context for that document. NB. The document may be modified during the parsing process.</info>
+ <return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
+ <arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
+ </function>
+ <function name='xmlSchemaNewFacet' file='xmlschemastypes' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Allocate a new Facet structure.</info>
+ <return type='xmlSchemaFacetPtr' info='the newly allocated structure or NULL in case or error'/>
+ </function>
+ <function name='xmlSchemaNewMemParserCtxt' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Create an XML Schemas parse context for that memory buffer expected to contain an XML Schemas file.</info>
+ <return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array containing the schemas'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ </function>
+ <function name='xmlSchemaNewNOTATIONValue' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Allocate a new NOTATION value. The given values are consumed and freed with the struct.</info>
+ <return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of error'/>
+ <arg name='name' type='const xmlChar *' info='the notation name'/>
+ <arg name='ns' type='const xmlChar *' info='the notation namespace name or NULL'/>
+ </function>
+ <function name='xmlSchemaNewParserCtxt' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Create an XML Schemas parse context for that file/resource expected to contain an XML Schemas file.</info>
+ <return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
+ <arg name='URL' type='const char *' info='the location of the schema'/>
+ </function>
+ <function name='xmlSchemaNewQNameValue' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Allocate a new QName value. The given values are consumed and freed with the struct.</info>
+ <return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of an error.'/>
+ <arg name='namespaceName' type='const xmlChar *' info='the namespace name'/>
+ <arg name='localName' type='const xmlChar *' info='the local name'/>
+ </function>
+ <function name='xmlSchemaNewStringValue' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Allocate a new simple type value. The type can be of XML_SCHEMAS_STRING. WARNING: This one is intended to be expanded for other string based types. We need this for anySimpleType as well. The given value is consumed and freed with the struct.</info>
+ <return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of error'/>
+ <arg name='type' type='xmlSchemaValType' info='the value type'/>
+ <arg name='value' type='const xmlChar *' info='the value'/>
+ </function>
+ <function name='xmlSchemaNewValidCtxt' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Create an XML Schemas validation context based on the given schema.</info>
+ <return type='xmlSchemaValidCtxtPtr' info='the validation context or NULL in case of error'/>
+ <arg name='schema' type='xmlSchemaPtr' info='a precompiled XML Schemas'/>
+ </function>
+ <function name='xmlSchemaParse' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>parse a schema definition resource and build an internal XML Schema structure which can be used to validate instances.</info>
+ <return type='xmlSchemaPtr' info='the internal XML Schema structure built from the resource or NULL in case of error'/>
+ <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='a schema validation context'/>
+ </function>
+ <function name='xmlSchemaSAXPlug' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Plug a SAX based validation layer in a SAX parsing event flow. The original @saxptr and @dataptr data are replaced by new pointers but the calls to the original will be maintained.</info>
+ <return type='xmlSchemaSAXPlugPtr' info='a pointer to a data structure needed to unplug the validation layer or NULL in case of errors.'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ <arg name='sax' type='xmlSAXHandlerPtr *' info='a pointer to the original xmlSAXHandlerPtr'/>
+ <arg name='user_data' type='void **' info='a pointer to the original SAX user data pointer'/>
+ </function>
+ <function name='xmlSchemaSAXUnplug' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Unplug a SAX based validation layer in a SAX parsing event flow. The original pointers used in the call are restored.</info>
+ <return type='int' info='0 in case of success and -1 in case of failure.'/>
+ <arg name='plug' type='xmlSchemaSAXPlugPtr' info='a data structure returned by xmlSchemaSAXPlug'/>
+ </function>
+ <function name='xmlSchemaSetParserErrors' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Set the callback functions used to handle errors for a validation context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='a schema validation context'/>
+ <arg name='err' type='xmlSchemaValidityErrorFunc' info='the error callback'/>
+ <arg name='warn' type='xmlSchemaValidityWarningFunc' info='the warning callback'/>
+ <arg name='ctx' type='void *' info='contextual data for the callbacks'/>
+ </function>
+ <function name='xmlSchemaSetParserStructuredErrors' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Set the structured error callback</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='a schema parser context'/>
+ <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
+ <arg name='ctx' type='void *' info='the functions context'/>
+ </function>
+ <function name='xmlSchemaSetValidErrors' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Set the error and warning callback informations</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ <arg name='err' type='xmlSchemaValidityErrorFunc' info='the error function'/>
+ <arg name='warn' type='xmlSchemaValidityWarningFunc' info='the warning function'/>
+ <arg name='ctx' type='void *' info='the functions context'/>
+ </function>
+ <function name='xmlSchemaSetValidOptions' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Sets the options to be used during the validation.</info>
+ <return type='int' info='0 in case of success, -1 in case of an API error.'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ <arg name='options' type='int' info='a combination of xmlSchemaValidOption'/>
+ </function>
+ <function name='xmlSchemaSetValidStructuredErrors' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Set the structured error callback</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
+ <arg name='ctx' type='void *' info='the functions context'/>
+ </function>
+ <function name='xmlSchemaValPredefTypeNode' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</info>
+ <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='type' type='xmlSchemaTypePtr' info='the predefined type'/>
+ <arg name='value' type='const xmlChar *' info='the value to check'/>
+ <arg name='val' type='xmlSchemaValPtr *' info='the return computed value'/>
+ <arg name='node' type='xmlNodePtr' info='the node containing the value'/>
+ </function>
+ <function name='xmlSchemaValPredefTypeNodeNoNorm' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val. This one does apply any normalization to the value.</info>
+ <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='type' type='xmlSchemaTypePtr' info='the predefined type'/>
+ <arg name='value' type='const xmlChar *' info='the value to check'/>
+ <arg name='val' type='xmlSchemaValPtr *' info='the return computed value'/>
+ <arg name='node' type='xmlNodePtr' info='the node containing the value'/>
+ </function>
+ <function name='xmlSchemaValidCtxtGetOptions' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Get the validation context options.</info>
+ <return type='int' info='the option combination or -1 on error.'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ </function>
+ <function name='xmlSchemaValidCtxtGetParserCtxt' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>allow access to the parser context of the schema validation context</info>
+ <return type='xmlParserCtxtPtr' info='the parser context of the schema validation context or NULL in case of error.'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ </function>
+ <function name='xmlSchemaValidateDoc' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Validate a document tree in memory.</info>
+ <return type='int' info='0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a parsed document tree'/>
+ </function>
+ <function name='xmlSchemaValidateFacet' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Check a value against a facet condition</info>
+ <return type='int' info='0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='base' type='xmlSchemaTypePtr' info='the base type'/>
+ <arg name='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
+ <arg name='value' type='const xmlChar *' info='the lexical repr of the value to validate'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
+ </function>
+ <function name='xmlSchemaValidateFacetWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Check a value against a facet condition. This takes value normalization according to the specified whitespace types into account. Note that @value needs to be the *normalized* value if the facet is of type &quot;pattern&quot;.</info>
+ <return type='int' info='0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
+ <arg name='fws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the facet&apos;s value'/>
+ <arg name='valType' type='xmlSchemaValType' info='the built-in type of the value'/>
+ <arg name='value' type='const xmlChar *' info='the lexical (or normalized for pattern) repr of the value to validate'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
+ <arg name='ws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the value'/>
+ </function>
+ <function name='xmlSchemaValidateFile' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Do a schemas validation of the given resource, it will use the SAX streamable validation internally.</info>
+ <return type='int' info='0 if the document is valid, a positive error code number otherwise and -1 in case of an internal or API error.'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ <arg name='filename' type='const char *' info='the URI of the instance'/>
+ <arg name='options' type='int' info='a future set of options, currently unused'/>
+ </function>
+ <function name='xmlSchemaValidateLengthFacet' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Checka a value against a &quot;length&quot;, &quot;minLength&quot; and &quot;maxLength&quot; facet; sets @length to the computed length of @value.</info>
+ <return type='int' info='0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.'/>
+ <arg name='type' type='xmlSchemaTypePtr' info='the built-in type'/>
+ <arg name='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
+ <arg name='value' type='const xmlChar *' info='the lexical repr. of the value to be validated'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
+ <arg name='length' type='unsigned long *' info='the actual length of the value'/>
+ </function>
+ <function name='xmlSchemaValidateLengthFacetWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Checka a value against a &quot;length&quot;, &quot;minLength&quot; and &quot;maxLength&quot; facet; sets @length to the computed length of @value.</info>
+ <return type='int' info='0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.'/>
+ <arg name='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
+ <arg name='valType' type='xmlSchemaValType' info='the built-in type'/>
+ <arg name='value' type='const xmlChar *' info='the lexical repr. of the value to be validated'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
+ <arg name='length' type='unsigned long *' info='the actual length of the value'/>
+ <arg name='ws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the value'/>
+ </function>
+ <function name='xmlSchemaValidateListSimpleTypeFacet' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Checks the value of a list simple type against a facet.</info>
+ <return type='int' info='0 if the value is valid, a positive error code number otherwise and -1 in case of an internal error.'/>
+ <arg name='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
+ <arg name='value' type='const xmlChar *' info='the lexical repr of the value to validate'/>
+ <arg name='actualLen' type='unsigned long' info='the number of list items'/>
+ <arg name='expectedLen' type='unsigned long *' info='the resulting expected number of list items'/>
+ </function>
+ <function name='xmlSchemaValidateOneElement' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Validate a branch of a tree, starting with the given @elem.</info>
+ <return type='int' info='0 if the element and its subtree is valid, a positive error code number otherwise and -1 in case of an internal or API error.'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ <arg name='elem' type='xmlNodePtr' info='an element node'/>
+ </function>
+ <function name='xmlSchemaValidatePredefinedType' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</info>
+ <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='type' type='xmlSchemaTypePtr' info='the predefined type'/>
+ <arg name='value' type='const xmlChar *' info='the value to check'/>
+ <arg name='val' type='xmlSchemaValPtr *' info='the return computed value'/>
+ </function>
+ <function name='xmlSchemaValidateSetFilename' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Workaround to provide file error reporting information when this is not provided by current APIs</info>
+ <return type='void'/>
+ <arg name='vctxt' type='xmlSchemaValidCtxtPtr' info='the schema validation context'/>
+ <arg name='filename' type='const char *' info='the file name'/>
+ </function>
+ <function name='xmlSchemaValidateSetLocator' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Allows to set a locator function to the validation context, which will be used to provide file and line information since those are not provided as part of the SAX validation flow Setting @f to NULL disable the locator.</info>
+ <return type='void'/>
+ <arg name='vctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ <arg name='f' type='xmlSchemaValidityLocatorFunc' info='the locator function pointer'/>
+ <arg name='ctxt' type='void *' info='the locator context'/>
+ </function>
+ <function name='xmlSchemaValidateStream' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Validate an input based on a flow of SAX event from the parser and forward the events to the @sax handler with the provided @user_data the user provided @sax handler must be a SAX2 one.</info>
+ <return type='int' info='0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+ <arg name='input' type='xmlParserInputBufferPtr' info='the input to use for reading the data'/>
+ <arg name='enc' type='xmlCharEncoding' info='an optional encoding information'/>
+ <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler for the resulting events'/>
+ <arg name='user_data' type='void *' info='the context to provide to the SAX handler.'/>
+ </function>
+ <functype name='xmlSchemaValidityErrorFunc' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Signature of an error callback from an XSD validation</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the validation context'/>
+ <arg name='msg' type='const char *' info='the message'/>
+ <arg name='...' type='...' info='extra arguments'/>
+ </functype>
+ <functype name='xmlSchemaValidityLocatorFunc' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>A schemas validation locator, a callback called by the validator. This is used when file or node informations are not available to find out what file and line number are affected</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='ctx' type='void *' info='user provided context'/>
+ <arg name='file' type='const char **' info='returned file information'/>
+ <arg name='line' type='unsigned long *' info='returned line information'/>
+ </functype>
+ <functype name='xmlSchemaValidityWarningFunc' file='xmlschemas' module='xmlschemas'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Signature of a warning callback from an XSD validation</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the validation context'/>
+ <arg name='msg' type='const char *' info='the message'/>
+ <arg name='...' type='...' info='extra arguments'/>
+ </functype>
+ <function name='xmlSchemaValueAppend' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Appends a next sibling to a list of computed values.</info>
+ <return type='int' info='0 if succeeded and -1 on API errors.'/>
+ <arg name='prev' type='xmlSchemaValPtr' info='the value'/>
+ <arg name='cur' type='xmlSchemaValPtr' info='the value to be appended'/>
+ </function>
+ <function name='xmlSchemaValueGetAsBoolean' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Accessor for the boolean value of a computed value.</info>
+ <return type='int' info='1 if true and 0 if false, or in case of an error. Hmm.'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the value'/>
+ </function>
+ <function name='xmlSchemaValueGetAsString' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Accessor for the string value of a computed value.</info>
+ <return type='const xmlChar *' info='the string value or NULL if there was none, or on API errors.'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the value'/>
+ </function>
+ <function name='xmlSchemaValueGetNext' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Accessor for the next sibling of a list of computed values.</info>
+ <return type='xmlSchemaValPtr' info='the next value or NULL if there was none, or on API errors.'/>
+ <arg name='cur' type='xmlSchemaValPtr' info='the value'/>
+ </function>
+ <function name='xmlSchemaWhiteSpaceReplace' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Replaces 0xd, 0x9 and 0xa with a space.</info>
+ <return type='xmlChar *' info='the new string or NULL if no change was required.'/>
+ <arg name='value' type='const xmlChar *' info='a value'/>
+ </function>
+ <function name='xmlSchematronFree' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Deallocate a Schematron structure.</info>
+ <return type='void'/>
+ <arg name='schema' type='xmlSchematronPtr' info='a schema structure'/>
+ </function>
+ <function name='xmlSchematronFreeParserCtxt' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Free the resources associated to the schema parser context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlSchematronParserCtxtPtr' info='the schema parser context'/>
+ </function>
+ <function name='xmlSchematronFreeValidCtxt' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Free the resources associated to the schema validation context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlSchematronValidCtxtPtr' info='the schema validation context'/>
+ </function>
+ <function name='xmlSchematronNewDocParserCtxt' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Create an XML Schematrons parse context for that document. NB. The document may be modified during the parsing process.</info>
+ <return type='xmlSchematronParserCtxtPtr' info='the parser context or NULL in case of error'/>
+ <arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
+ </function>
+ <function name='xmlSchematronNewMemParserCtxt' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Create an XML Schematrons parse context for that memory buffer expected to contain an XML Schematrons file.</info>
+ <return type='xmlSchematronParserCtxtPtr' info='the parser context or NULL in case of error'/>
+ <arg name='buffer' type='const char *' info='a pointer to a char array containing the schemas'/>
+ <arg name='size' type='int' info='the size of the array'/>
+ </function>
+ <function name='xmlSchematronNewParserCtxt' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Create an XML Schematrons parse context for that file/resource expected to contain an XML Schematrons file.</info>
+ <return type='xmlSchematronParserCtxtPtr' info='the parser context or NULL in case of error'/>
+ <arg name='URL' type='const char *' info='the location of the schema'/>
+ </function>
+ <function name='xmlSchematronNewValidCtxt' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Create an XML Schematrons validation context based on the given schema.</info>
+ <return type='xmlSchematronValidCtxtPtr' info='the validation context or NULL in case of error'/>
+ <arg name='schema' type='xmlSchematronPtr' info='a precompiled XML Schematrons'/>
+ <arg name='options' type='int' info='a set of xmlSchematronValidOptions'/>
+ </function>
+ <function name='xmlSchematronParse' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>parse a schema definition resource and build an internal XML Schema structure which can be used to validate instances.</info>
+ <return type='xmlSchematronPtr' info='the internal XML Schematron structure built from the resource or NULL in case of error'/>
+ <arg name='ctxt' type='xmlSchematronParserCtxtPtr' info='a schema validation context'/>
+ </function>
+ <function name='xmlSchematronSetValidStructuredErrors' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Set the structured error callback</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlSchematronValidCtxtPtr' info='a Schematron validation context'/>
+ <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
+ <arg name='ctx' type='void *' info='the functions context'/>
+ </function>
+ <function name='xmlSchematronValidateDoc' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Validate a tree instance against the schematron</info>
+ <return type='int' info='0 in case of success, -1 in case of internal error and an error count otherwise.'/>
+ <arg name='ctxt' type='xmlSchematronValidCtxtPtr' info='the schema validation context'/>
+ <arg name='instance' type='xmlDocPtr' info='the document instance tree'/>
+ </function>
+ <functype name='xmlSchematronValidityErrorFunc' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Signature of an error callback from a Schematron validation</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the validation context'/>
+ <arg name='msg' type='const char *' info='the message'/>
+ <arg name='...' type='...' info='extra arguments'/>
+ </functype>
+ <functype name='xmlSchematronValidityWarningFunc' file='schematron' module='schematron'>
+ <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+ <info>Signature of a warning callback from a Schematron validation</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the validation context'/>
+ <arg name='msg' type='const char *' info='the message'/>
+ <arg name='...' type='...' info='extra arguments'/>
+ </functype>
+ <function name='xmlSearchNs' file='tree' module='tree'>
+ <info>Search a Ns registered under a given name space for a document. recurse on the parents until it finds the defined namespace or return NULL otherwise. @nameSpace can be NULL, this is a search for the default namespace. We don&apos;t allow to cross entities boundaries. If you don&apos;t declare the namespace within those you will be in troubles !!! A warning is generated to cover this case.</info>
+ <return type='xmlNsPtr' info='the namespace pointer or NULL.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='node' type='xmlNodePtr' info='the current node'/>
+ <arg name='nameSpace' type='const xmlChar *' info='the namespace prefix'/>
+ </function>
+ <function name='xmlSearchNsByHref' file='tree' module='tree'>
+ <info>Search a Ns aliasing a given URI. Recurse on the parents until it finds the defined namespace or return NULL otherwise.</info>
+ <return type='xmlNsPtr' info='the namespace pointer or NULL.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='node' type='xmlNodePtr' info='the current node'/>
+ <arg name='href' type='const xmlChar *' info='the namespace value'/>
+ </function>
+ <function name='xmlSetBufferAllocationScheme' file='tree' module='tree'>
+ <info>Set the buffer allocation method. Types are XML_BUFFER_ALLOC_EXACT - use exact sizes, keeps memory usage down XML_BUFFER_ALLOC_DOUBLEIT - double buffer when extra needed, improves performance</info>
+ <return type='void'/>
+ <arg name='scheme' type='xmlBufferAllocationScheme' info='allocation method to use'/>
+ </function>
+ <function name='xmlSetCompressMode' file='tree' module='tree'>
+ <info>set the default compression mode used, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression)</info>
+ <return type='void'/>
+ <arg name='mode' type='int' info='the compression ratio'/>
+ </function>
+ <function name='xmlSetDocCompressMode' file='tree' module='tree'>
+ <info>set the compression ratio for a document, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression)</info>
+ <return type='void'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='mode' type='int' info='the compression ratio'/>
+ </function>
+ <function name='xmlSetEntityReferenceFunc' file='parserInternals' module='parser'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Set the function to call call back when a xml reference has been made</info>
+ <return type='void'/>
+ <arg name='func' type='xmlEntityReferenceFunc' info='A valid function'/>
+ </function>
+ <function name='xmlSetExternalEntityLoader' file='parser' module='xmlIO'>
+ <info>Changes the defaultexternal entity resolver function for the application</info>
+ <return type='void'/>
+ <arg name='f' type='xmlExternalEntityLoader' info='the new entity resolver function'/>
+ </function>
+ <function name='xmlSetFeature' file='parser' module='legacy'>
+ <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Change the current value of one feature of this parser instance</info>
+ <return type='int' info='-1 in case or error, 0 otherwise'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML/HTML parser context'/>
+ <arg name='name' type='const char *' info='the feature name'/>
+ <arg name='value' type='void *' info='pointer to the location of the new value'/>
+ </function>
+ <function name='xmlSetGenericErrorFunc' file='xmlerror' module='error'>
+ <info>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL. For multi-threaded applications, this must be set separately for each thread.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the new error handling context'/>
+ <arg name='handler' type='xmlGenericErrorFunc' info='the new handler function'/>
+ </function>
+ <function name='xmlSetListDoc' file='tree' module='tree'>
+ <info>update all nodes in the list to point to the right document</info>
+ <return type='void'/>
+ <arg name='list' type='xmlNodePtr' info='the first element'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ </function>
+ <function name='xmlSetNs' file='tree' module='tree'>
+ <info>Associate a namespace to a node, a posteriori.</info>
+ <return type='void'/>
+ <arg name='node' type='xmlNodePtr' info='a node in the document'/>
+ <arg name='ns' type='xmlNsPtr' info='a namespace pointer'/>
+ </function>
+ <function name='xmlSetNsProp' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Set (or reset) an attribute carried by a node. The ns structure must be in scope, this is not checked</info>
+ <return type='xmlAttrPtr' info='the attribute pointer.'/>
+ <arg name='node' type='xmlNodePtr' info='the node'/>
+ <arg name='ns' type='xmlNsPtr' info='the namespace definition'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ <arg name='value' type='const xmlChar *' info='the attribute value'/>
+ </function>
+ <function name='xmlSetProp' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)</cond>
+ <info>Set (or reset) an attribute carried by a node. If @name has a prefix, then the corresponding namespace-binding will be used, if in scope; it is an error it there&apos;s no such ns-binding for the prefix in scope.</info>
+ <return type='xmlAttrPtr' info='the attribute pointer.'/>
+ <arg name='node' type='xmlNodePtr' info='the node'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name (a QName)'/>
+ <arg name='value' type='const xmlChar *' info='the attribute value'/>
+ </function>
+ <function name='xmlSetStructuredErrorFunc' file='xmlerror' module='error'>
+ <info>Function to reset the handler and the error context for out of context structured error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler For multi-threaded applications, this must be set separately for each thread.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='the new error handling context'/>
+ <arg name='handler' type='xmlStructuredErrorFunc' info='the new handler function'/>
+ </function>
+ <function name='xmlSetTreeDoc' file='tree' module='tree'>
+ <info>update all nodes under the tree to point to the right document</info>
+ <return type='void'/>
+ <arg name='tree' type='xmlNodePtr' info='the top element'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ </function>
+ <function name='xmlSetupParserForBuffer' file='parser' module='parser'>
+ <cond>defined(LIBXML_SAX1_ENABLED)</cond>
+ <info>Setup the parser context to parse a new buffer; Clears any prior contents from the parser context. The buffer parameter must not be NULL, but the filename parameter can be</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='buffer' type='const xmlChar *' info='a xmlChar * buffer'/>
+ <arg name='filename' type='const char *' info='a file name'/>
+ </function>
+ <function name='xmlShell' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the XML shell This allow to load, validate, view, modify and save a document using a environment similar to a UNIX commandline.</info>
+ <return type='void'/>
+ <arg name='doc' type='xmlDocPtr' info='the initial document'/>
+ <arg name='filename' type='char *' info='the output buffer'/>
+ <arg name='input' type='xmlShellReadlineFunc' info='the line reading function'/>
+ <arg name='output' type='FILE *' info='the output FILE*, defaults to stdout if NULL'/>
+ </function>
+ <function name='xmlShellBase' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the XML shell function &quot;base&quot; dumps the current XML base of the node</info>
+ <return type='int' info='0'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
+ <arg name='arg' type='char *' info='unused'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ <arg name='node2' type='xmlNodePtr' info='unused'/>
+ </function>
+ <function name='xmlShellCat' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Implements the XML shell function &quot;cat&quot; dumps the serialization node content (XML or HTML).</info>
+ <return type='int' info='0'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
+ <arg name='arg' type='char *' info='unused'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ <arg name='node2' type='xmlNodePtr' info='unused'/>
+ </function>
+ <functype name='xmlShellCmd' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>This is a generic signature for the XML shell functions.</info>
+ <return type='int' info='an int, negative returns indicating errors.'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='a shell context'/>
+ <arg name='arg' type='char *' info='a string argument'/>
+ <arg name='node' type='xmlNodePtr' info='a first node'/>
+ <arg name='node2' type='xmlNodePtr' info='a second node'/>
+ </functype>
+ <function name='xmlShellDir' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the XML shell function &quot;dir&quot; dumps informations about the node (namespace, attributes, content).</info>
+ <return type='int' info='0'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
+ <arg name='arg' type='char *' info='unused'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ <arg name='node2' type='xmlNodePtr' info='unused'/>
+ </function>
+ <function name='xmlShellDu' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the XML shell function &quot;du&quot; show the structure of the subtree under node @tree If @tree is null, the command works on the current node.</info>
+ <return type='int' info='0 or -1 in case of error'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
+ <arg name='arg' type='char *' info='unused'/>
+ <arg name='tree' type='xmlNodePtr' info='a node defining a subtree'/>
+ <arg name='node2' type='xmlNodePtr' info='unused'/>
+ </function>
+ <function name='xmlShellList' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the XML shell function &quot;ls&quot; Does an Unix like listing of the given node (like a directory)</info>
+ <return type='int' info='0'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
+ <arg name='arg' type='char *' info='unused'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ <arg name='node2' type='xmlNodePtr' info='unused'/>
+ </function>
+ <function name='xmlShellLoad' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the XML shell function &quot;load&quot; loads a new document specified by the filename</info>
+ <return type='int' info='0 or -1 if loading failed'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
+ <arg name='filename' type='char *' info='the file name'/>
+ <arg name='node' type='xmlNodePtr' info='unused'/>
+ <arg name='node2' type='xmlNodePtr' info='unused'/>
+ </function>
+ <function name='xmlShellPrintNode' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Print node to the output FILE</info>
+ <return type='void'/>
+ <arg name='node' type='xmlNodePtr' info='a non-null node to print to the output FILE'/>
+ </function>
+ <function name='xmlShellPrintXPathError' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Print the xpath error to libxml default error channel</info>
+ <return type='void'/>
+ <arg name='errorType' type='int' info='valid xpath error id'/>
+ <arg name='arg' type='const char *' info='the argument that cause xpath to fail'/>
+ </function>
+ <function name='xmlShellPrintXPathResult' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Prints result to the output FILE</info>
+ <return type='void'/>
+ <arg name='list' type='xmlXPathObjectPtr' info='a valid result generated by an xpath evaluation'/>
+ </function>
+ <function name='xmlShellPwd' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the XML shell function &quot;pwd&quot; Show the full path from the root to the node, if needed building thumblers when similar elements exists at a given ancestor level. The output is compatible with XPath commands.</info>
+ <return type='int' info='0 or -1 in case of error'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
+ <arg name='buffer' type='char *' info='the output buffer'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ <arg name='node2' type='xmlNodePtr' info='unused'/>
+ </function>
+ <functype name='xmlShellReadlineFunc' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>This is a generic signature for the XML shell input function.</info>
+ <return type='char *' info='a string which will be freed by the Shell.'/>
+ <arg name='prompt' type='char *' info='a string prompt'/>
+ </functype>
+ <function name='xmlShellSave' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Implements the XML shell function &quot;save&quot; Write the current document to the filename, or it&apos;s original name</info>
+ <return type='int' info='0 or -1 in case of error'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
+ <arg name='filename' type='char *' info='the file name (optional)'/>
+ <arg name='node' type='xmlNodePtr' info='unused'/>
+ <arg name='node2' type='xmlNodePtr' info='unused'/>
+ </function>
+ <function name='xmlShellValidate' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Implements the XML shell function &quot;validate&quot; Validate the document, if a DTD path is provided, then the validation is done against the given DTD.</info>
+ <return type='int' info='0 or -1 in case of error'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
+ <arg name='dtd' type='char *' info='the DTD URI (optional)'/>
+ <arg name='node' type='xmlNodePtr' info='unused'/>
+ <arg name='node2' type='xmlNodePtr' info='unused'/>
+ </function>
+ <function name='xmlShellWrite' file='debugXML' module='debugXML'>
+ <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Implements the XML shell function &quot;write&quot; Write the current node to the filename, it saves the serialization of the subtree under the @node specified</info>
+ <return type='int' info='0 or -1 in case of error'/>
+ <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
+ <arg name='filename' type='char *' info='the file name'/>
+ <arg name='node' type='xmlNodePtr' info='a node in the tree'/>
+ <arg name='node2' type='xmlNodePtr' info='unused'/>
+ </function>
+ <function name='xmlSkipBlankChars' file='parserInternals' module='parser'>
+ <info>skip all blanks character found at that point in the input streams. It pops up finished entities in the process if allowable at that point.</info>
+ <return type='int' info='the number of space chars skipped'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
+ </function>
+ <function name='xmlSnprintfElementContent' file='valid' module='valid'>
+ <info>This will dump the content of the element content definition Intended just for the debug routine</info>
+ <return type='void'/>
+ <arg name='buf' type='char *' info='an output buffer'/>
+ <arg name='size' type='int' info='the buffer size'/>
+ <arg name='content' type='xmlElementContentPtr' info='An element table'/>
+ <arg name='englob' type='int' info='1 if one must print the englobing parenthesis, 0 otherwise'/>
+ </function>
+ <function name='xmlSplitQName' file='parserInternals' module='parser'>
+ <info>parse an UTF8 encoded XML qualified name string [NS 5] QName ::= (Prefix &apos;:&apos;)? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</info>
+ <return type='xmlChar *' info='the local part, and prefix is updated to get the Prefix if any.'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ <arg name='name' type='const xmlChar *' info='an XML parser context'/>
+ <arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
+ </function>
+ <function name='xmlSplitQName2' file='tree' module='tree'>
+ <info>parse an XML qualified name string [NS 5] QName ::= (Prefix &apos;:&apos;)? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</info>
+ <return type='xmlChar *' info='NULL if the name doesn&apos;t have a prefix. Otherwise, returns the local part, and prefix is updated to get the Prefix. Both the return value and the prefix must be freed by the caller.'/>
+ <arg name='name' type='const xmlChar *' info='the full QName'/>
+ <arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
+ </function>
+ <function name='xmlSplitQName3' file='tree' module='tree'>
+ <info>parse an XML qualified name string,i</info>
+ <return type='const xmlChar *' info='NULL if it is not a Qualified Name, otherwise, update len with the length in byte of the prefix and return a pointer to the start of the name without the prefix'/>
+ <arg name='name' type='const xmlChar *' info='the full QName'/>
+ <arg name='len' type='int *' info='an int *'/>
+ </function>
+ <function name='xmlSprintfElementContent' file='valid' module='valid'>
+ <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
+ <info>Deprecated, unsafe, use xmlSnprintfElementContent</info>
+ <return type='void'/>
+ <arg name='buf' type='char *' info='an output buffer'/>
+ <arg name='content' type='xmlElementContentPtr' info='An element table'/>
+ <arg name='englob' type='int' info='1 if one must print the englobing parenthesis, 0 otherwise'/>
+ </function>
+ <function name='xmlStopParser' file='parser' module='parser'>
+ <info>Blocks further parser processing</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
+ </function>
+ <function name='xmlStrEqual' file='xmlstring' module='xmlstring'>
+ <info>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</info>
+ <return type='int' info='1 if they are equal, 0 if they are different'/>
+ <arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
+ <arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
+ </function>
+ <function name='xmlStrPrintf' file='xmlstring' module='xmlstring'>
+ <info>Formats @msg and places result into @buf.</info>
+ <return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
+ <arg name='buf' type='xmlChar *' info='the result buffer.'/>
+ <arg name='len' type='int' info='the result buffer length.'/>
+ <arg name='msg' type='const char *' info='the message with printf formatting.'/>
+ <arg name='...' type='...' info='extra parameters for the message.'/>
+ </function>
+ <function name='xmlStrQEqual' file='xmlstring' module='xmlstring'>
+ <info>Check if a QName is Equal to a given string</info>
+ <return type='int' info='1 if they are equal, 0 if they are different'/>
+ <arg name='pref' type='const xmlChar *' info='the prefix of the QName'/>
+ <arg name='name' type='const xmlChar *' info='the localname of the QName'/>
+ <arg name='str' type='const xmlChar *' info='the second xmlChar *'/>
+ </function>
+ <function name='xmlStrVPrintf' file='xmlstring' module='xmlstring'>
+ <info>Formats @msg and places result into @buf.</info>
+ <return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
+ <arg name='buf' type='xmlChar *' info='the result buffer.'/>
+ <arg name='len' type='int' info='the result buffer length.'/>
+ <arg name='msg' type='const char *' info='the message with printf formatting.'/>
+ <arg name='ap' type='va_list' info='extra parameters for the message.'/>
+ </function>
+ <function name='xmlStrcasecmp' file='xmlstring' module='xmlstring'>
+ <info>a strcasecmp for xmlChar&apos;s</info>
+ <return type='int' info='the integer result of the comparison'/>
+ <arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
+ <arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
+ </function>
+ <function name='xmlStrcasestr' file='xmlstring' module='xmlstring'>
+ <info>a case-ignoring strstr for xmlChar&apos;s</info>
+ <return type='const xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
+ <arg name='str' type='const xmlChar *' info='the xmlChar * array (haystack)'/>
+ <arg name='val' type='const xmlChar *' info='the xmlChar to search (needle)'/>
+ </function>
+ <function name='xmlStrcat' file='xmlstring' module='xmlstring'>
+ <info>a strcat for array of xmlChar&apos;s. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of &apos;0&apos;.</info>
+ <return type='xmlChar *' info='a new xmlChar * containing the concatenated string. The original @cur is reallocated and should not be freed.'/>
+ <arg name='cur' type='xmlChar *' info='the original xmlChar * array'/>
+ <arg name='add' type='const xmlChar *' info='the xmlChar * array added'/>
+ </function>
+ <function name='xmlStrchr' file='xmlstring' module='xmlstring'>
+ <info>a strchr for xmlChar&apos;s</info>
+ <return type='const xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
+ <arg name='str' type='const xmlChar *' info='the xmlChar * array'/>
+ <arg name='val' type='xmlChar' info='the xmlChar to search'/>
+ </function>
+ <function name='xmlStrcmp' file='xmlstring' module='xmlstring'>
+ <info>a strcmp for xmlChar&apos;s</info>
+ <return type='int' info='the integer result of the comparison'/>
+ <arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
+ <arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
+ </function>
+ <function name='xmlStrdup' file='xmlstring' module='xmlstring'>
+ <info>a strdup for array of xmlChar&apos;s. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of &apos;0&apos;.</info>
+ <return type='xmlChar *' info='a new xmlChar * or NULL'/>
+ <arg name='cur' type='const xmlChar *' info='the input xmlChar *'/>
+ </function>
+ <functype name='xmlStrdupFunc' file='xmlmemory' module='xmlmemory'>
+ <info>Signature for an strdup() implementation.</info>
+ <return type='char *' info='the copy of the string or NULL in case of error.'/>
+ <arg name='str' type='const char *' info='a zero terminated string'/>
+ </functype>
+ <function name='xmlStreamPop' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>push one level from the stream.</info>
+ <return type='int' info='-1 in case of error, 0 otherwise.'/>
+ <arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
+ </function>
+ <function name='xmlStreamPush' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an element-node.</info>
+ <return type='int' info='-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.'/>
+ <arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
+ <arg name='name' type='const xmlChar *' info='the current name'/>
+ <arg name='ns' type='const xmlChar *' info='the namespace name'/>
+ </function>
+ <function name='xmlStreamPushAttr' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Push new attribute data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an attribute-node.</info>
+ <return type='int' info='-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.'/>
+ <arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
+ <arg name='name' type='const xmlChar *' info='the current name'/>
+ <arg name='ns' type='const xmlChar *' info='the namespace name'/>
+ </function>
+ <function name='xmlStreamPushNode' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Different from xmlStreamPush() this function can be fed with nodes of type: element-, attribute-, text-, cdata-section-, comment- and processing-instruction-node.</info>
+ <return type='int' info='-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.'/>
+ <arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
+ <arg name='name' type='const xmlChar *' info='the current name'/>
+ <arg name='ns' type='const xmlChar *' info='the namespace name'/>
+ <arg name='nodeType' type='int' info='the type of the node being pushed'/>
+ </function>
+ <function name='xmlStreamWantsAnyNode' file='pattern' module='pattern'>
+ <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>Query if the streaming pattern additionally needs to be fed with text-, cdata-section-, comment- and processing-instruction-nodes. If the result is 0 then only element-nodes and attribute-nodes need to be pushed.</info>
+ <return type='int' info='1 in case of need of nodes of the above described types, 0 otherwise. -1 on API errors.'/>
+ <arg name='streamCtxt' type='xmlStreamCtxtPtr' info='the stream context'/>
+ </function>
+ <function name='xmlStringCurrentChar' file='parserInternals' module='parserInternals'>
+ <info>The current char value, if using UTF-8 this may actually span multiple bytes in the input buffer.</info>
+ <return type='int' info='the current char value and its length'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
+ <arg name='cur' type='const xmlChar *' info='pointer to the beginning of the char'/>
+ <arg name='len' type='int *' info='pointer to the length of the char read'/>
+ </function>
+ <function name='xmlStringDecodeEntities' file='parserInternals' module='parser'>
+ <info>Takes a entity string content and process to do the adequate substitutions. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;</info>
+ <return type='xmlChar *' info='A newly allocated string with the substitution done. The caller must deallocate it !'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
+ <arg name='str' type='const xmlChar *' info='the input string'/>
+ <arg name='what' type='int' info='combination of XML_SUBSTITUTE_REF and XML_SUBSTITUTE_PEREF'/>
+ <arg name='end' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
+ <arg name='end2' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
+ <arg name='end3' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
+ </function>
+ <function name='xmlStringGetNodeList' file='tree' module='tree'>
+ <info>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</info>
+ <return type='xmlNodePtr' info='a pointer to the first child'/>
+ <arg name='doc' type='const xmlDoc *' info='the document'/>
+ <arg name='value' type='const xmlChar *' info='the value of the attribute'/>
+ </function>
+ <function name='xmlStringLenDecodeEntities' file='parserInternals' module='parser'>
+ <info>Takes a entity string content and process to do the adequate substitutions. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;</info>
+ <return type='xmlChar *' info='A newly allocated string with the substitution done. The caller must deallocate it !'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
+ <arg name='str' type='const xmlChar *' info='the input string'/>
+ <arg name='len' type='int' info='the string length'/>
+ <arg name='what' type='int' info='combination of XML_SUBSTITUTE_REF and XML_SUBSTITUTE_PEREF'/>
+ <arg name='end' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
+ <arg name='end2' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
+ <arg name='end3' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
+ </function>
+ <function name='xmlStringLenGetNodeList' file='tree' module='tree'>
+ <info>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</info>
+ <return type='xmlNodePtr' info='a pointer to the first child'/>
+ <arg name='doc' type='const xmlDoc *' info='the document'/>
+ <arg name='value' type='const xmlChar *' info='the value of the text'/>
+ <arg name='len' type='int' info='the length of the string value'/>
+ </function>
+ <function name='xmlStrlen' file='xmlstring' module='xmlstring'>
+ <info>length of a xmlChar&apos;s string</info>
+ <return type='int' info='the number of xmlChar contained in the ARRAY.'/>
+ <arg name='str' type='const xmlChar *' info='the xmlChar * array'/>
+ </function>
+ <function name='xmlStrncasecmp' file='xmlstring' module='xmlstring'>
+ <info>a strncasecmp for xmlChar&apos;s</info>
+ <return type='int' info='the integer result of the comparison'/>
+ <arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
+ <arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
+ <arg name='len' type='int' info='the max comparison length'/>
+ </function>
+ <function name='xmlStrncat' file='xmlstring' module='xmlstring'>
+ <info>a strncat for array of xmlChar&apos;s, it will extend @cur with the len first bytes of @add. Note that if @len &lt; 0 then this is an API error and NULL will be returned.</info>
+ <return type='xmlChar *' info='a new xmlChar *, the original @cur is reallocated and should not be freed.'/>
+ <arg name='cur' type='xmlChar *' info='the original xmlChar * array'/>
+ <arg name='add' type='const xmlChar *' info='the xmlChar * array added'/>
+ <arg name='len' type='int' info='the length of @add'/>
+ </function>
+ <function name='xmlStrncatNew' file='xmlstring' module='xmlstring'>
+ <info>same as xmlStrncat, but creates a new string. The original two strings are not freed. If @len is &lt; 0 then the length will be calculated automatically.</info>
+ <return type='xmlChar *' info='a new xmlChar * or NULL'/>
+ <arg name='str1' type='const xmlChar *' info='first xmlChar string'/>
+ <arg name='str2' type='const xmlChar *' info='second xmlChar string'/>
+ <arg name='len' type='int' info='the len of @str2 or &lt; 0'/>
+ </function>
+ <function name='xmlStrncmp' file='xmlstring' module='xmlstring'>
+ <info>a strncmp for xmlChar&apos;s</info>
+ <return type='int' info='the integer result of the comparison'/>
+ <arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
+ <arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
+ <arg name='len' type='int' info='the max comparison length'/>
+ </function>
+ <function name='xmlStrndup' file='xmlstring' module='xmlstring'>
+ <info>a strndup for array of xmlChar&apos;s</info>
+ <return type='xmlChar *' info='a new xmlChar * or NULL'/>
+ <arg name='cur' type='const xmlChar *' info='the input xmlChar *'/>
+ <arg name='len' type='int' info='the len of @cur'/>
+ </function>
+ <function name='xmlStrstr' file='xmlstring' module='xmlstring'>
+ <info>a strstr for xmlChar&apos;s</info>
+ <return type='const xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
+ <arg name='str' type='const xmlChar *' info='the xmlChar * array (haystack)'/>
+ <arg name='val' type='const xmlChar *' info='the xmlChar to search (needle)'/>
+ </function>
+ <function name='xmlStrsub' file='xmlstring' module='xmlstring'>
+ <info>Extract a substring of a given string</info>
+ <return type='xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
+ <arg name='str' type='const xmlChar *' info='the xmlChar * array (haystack)'/>
+ <arg name='start' type='int' info='the index of the first char (zero based)'/>
+ <arg name='len' type='int' info='the length of the substring'/>
+ </function>
+ <functype name='xmlStructuredErrorFunc' file='xmlerror' module='xmlerror'>
+ <info>Signature of the function to use when there is an error and the module handles the new error reporting mechanism.</info>
+ <return type='void'/>
+ <arg name='userData' type='void *' info='user provided data for the error callback'/>
+ <arg name='error' type='xmlErrorPtr' info='the error being raised.'/>
+ </functype>
+ <function name='xmlSubstituteEntitiesDefault' file='parser' module='parserInternals'>
+ <info>Set and return the previous value for default entity support. Initially the parser always keep entity references instead of substituting entity values in the output. This function has to be used to change the default parser behavior SAX::substituteEntities() has to be used for changing that on a file by file basis.</info>
+ <return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
+ <arg name='val' type='int' info='int 0 or 1'/>
+ </function>
+ <function name='xmlSwitchEncoding' file='parserInternals' module='parserInternals'>
+ <info>change the input functions when discovering the character encoding of a given entity.</info>
+ <return type='int' info='0 in case of success, -1 otherwise'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
+ <arg name='enc' type='xmlCharEncoding' info='the encoding value (number)'/>
+ </function>
+ <function name='xmlSwitchInputEncoding' file='parserInternals' module='parserInternals'>
+ <info>change the input functions when discovering the character encoding of a given entity.</info>
+ <return type='int' info='0 in case of success, -1 otherwise'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
+ <arg name='input' type='xmlParserInputPtr' info='the input stream'/>
+ <arg name='handler' type='xmlCharEncodingHandlerPtr' info='the encoding handler'/>
+ </function>
+ <function name='xmlSwitchToEncoding' file='parserInternals' module='parserInternals'>
+ <info>change the input functions when discovering the character encoding of a given entity.</info>
+ <return type='int' info='0 in case of success, -1 otherwise'/>
+ <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
+ <arg name='handler' type='xmlCharEncodingHandlerPtr' info='the encoding handler'/>
+ </function>
+ <function name='xmlTextConcat' file='tree' module='tree'>
+ <info>Concat the given string at the end of the existing node content</info>
+ <return type='int' info='-1 in case of error, 0 otherwise'/>
+ <arg name='node' type='xmlNodePtr' info='the node'/>
+ <arg name='content' type='const xmlChar *' info='the content'/>
+ <arg name='len' type='int' info='@content length'/>
+ </function>
+ <function name='xmlTextMerge' file='tree' module='tree'>
+ <info>Merge two text nodes into one</info>
+ <return type='xmlNodePtr' info='the first text node augmented'/>
+ <arg name='first' type='xmlNodePtr' info='the first text node'/>
+ <arg name='second' type='xmlNodePtr' info='the second text node being merged'/>
+ </function>
+ <function name='xmlTextReaderAttributeCount' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Provides the number of attributes of the current node</info>
+ <return type='int' info='0 i no attributes, -1 in case of error or the attribute count'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderBaseUri' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The base URI of the node.</info>
+ <return type='xmlChar *' info='the base URI or NULL if not available, if non NULL it need to be freed by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderByteConsumed' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>This function provides the current index of the parser used by the reader, relative to the start of the current entity. This function actually just wraps a call to xmlBytesConsumed() for the parser context associated with the reader. See xmlBytesConsumed() for more information.</info>
+ <return type='long' info='the index in bytes from the beginning of the entity or -1 in case the index could not be computed.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
+ </function>
+ <function name='xmlTextReaderClose' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>This method releases any resources allocated by the current instance changes the state to Closed and close any underlying input.</info>
+ <return type='int' info='0 or -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderConstBaseUri' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The base URI of the node.</info>
+ <return type='const xmlChar *' info='the base URI or NULL if not available, the string will be deallocated with the reader'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderConstEncoding' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Determine the encoding of the document being read.</info>
+ <return type='const xmlChar *' info='a string containing the encoding of the document or NULL in case of error. The string is deallocated with the reader.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderConstLocalName' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The local name of the node.</info>
+ <return type='const xmlChar *' info='the local name or NULL if not available, the string will be deallocated with the reader.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderConstName' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The qualified name of the node, equal to Prefix :LocalName.</info>
+ <return type='const xmlChar *' info='the local name or NULL if not available, the string is deallocated with the reader.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderConstNamespaceUri' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The URI defining the namespace associated with the node.</info>
+ <return type='const xmlChar *' info='the namespace URI or NULL if not available, the string will be deallocated with the reader'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderConstPrefix' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>A shorthand reference to the namespace associated with the node.</info>
+ <return type='const xmlChar *' info='the prefix or NULL if not available, the string is deallocated with the reader.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderConstString' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Get an interned string from the reader, allows for example to speedup string name comparisons</info>
+ <return type='const xmlChar *' info='an interned copy of the string or NULL in case of error. The string will be deallocated with the reader.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='str' type='const xmlChar *' info='the string to intern.'/>
+ </function>
+ <function name='xmlTextReaderConstValue' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Provides the text value of the node if present</info>
+ <return type='const xmlChar *' info='the string or NULL if not available. The result will be deallocated on the next Read() operation.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderConstXmlLang' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The xml:lang scope within which the node resides.</info>
+ <return type='const xmlChar *' info='the xml:lang value or NULL if none exists.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderConstXmlVersion' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Determine the XML version of the document being read.</info>
+ <return type='const xmlChar *' info='a string containing the XML version of the document or NULL in case of error. The string is deallocated with the reader.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderCurrentDoc' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Hacking interface allowing to get the xmlDocPtr corresponding to the current document being accessed by the xmlTextReader. NOTE: as a result of this call, the reader will not destroy the associated XML document and calling xmlFreeDoc() on the result is needed once the reader parsing has finished.</info>
+ <return type='xmlDocPtr' info='the xmlDocPtr or NULL in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderCurrentNode' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Hacking interface allowing to get the xmlNodePtr corresponding to the current node being accessed by the xmlTextReader. This is dangerous because the underlying node may be destroyed on the next Reads.</info>
+ <return type='xmlNodePtr' info='the xmlNodePtr or NULL in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderDepth' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The depth of the node in the tree.</info>
+ <return type='int' info='the depth or -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <functype name='xmlTextReaderErrorFunc' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Signature of an error callback from a reader parser</info>
+ <return type='void'/>
+ <arg name='arg' type='void *' info='the user argument'/>
+ <arg name='msg' type='const char *' info='the message'/>
+ <arg name='severity' type='xmlParserSeverities' info='the severity of the error'/>
+ <arg name='locator' type='xmlTextReaderLocatorPtr' info='a locator indicating where the error occurred'/>
+ </functype>
+ <function name='xmlTextReaderExpand' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Reads the contents of the current node and the full subtree. It then makes the subtree available until the next xmlTextReaderRead() call</info>
+ <return type='xmlNodePtr' info='a node pointer valid until the next xmlTextReaderRead() call or NULL in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderGetAttribute' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Provides the value of the attribute with the specified qualified name.</info>
+ <return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='name' type='const xmlChar *' info='the qualified name of the attribute.'/>
+ </function>
+ <function name='xmlTextReaderGetAttributeNo' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Provides the value of the attribute with the specified index relative to the containing element.</info>
+ <return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='no' type='int' info='the zero-based index of the attribute relative to the containing element'/>
+ </function>
+ <function name='xmlTextReaderGetAttributeNs' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Provides the value of the specified attribute</info>
+ <return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='localName' type='const xmlChar *' info='the local name of the attribute.'/>
+ <arg name='namespaceURI' type='const xmlChar *' info='the namespace URI of the attribute.'/>
+ </function>
+ <function name='xmlTextReaderGetErrorHandler' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Retrieve the error callback function and user argument.</info>
+ <return type='void'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='f' type='xmlTextReaderErrorFunc *' info='the callback function or NULL is no callback has been registered'/>
+ <arg name='arg' type='void **' info='a user argument'/>
+ </function>
+ <function name='xmlTextReaderGetParserColumnNumber' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Provide the column number of the current parsing point.</info>
+ <return type='int' info='an int or 0 if not available'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the user data (XML reader context)'/>
+ </function>
+ <function name='xmlTextReaderGetParserLineNumber' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Provide the line number of the current parsing point.</info>
+ <return type='int' info='an int or 0 if not available'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the user data (XML reader context)'/>
+ </function>
+ <function name='xmlTextReaderGetParserProp' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Read the parser internal property.</info>
+ <return type='int' info='the value, usually 0 or 1, or -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='prop' type='int' info='the xmlParserProperties to get'/>
+ </function>
+ <function name='xmlTextReaderGetRemainder' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Method to get the remainder of the buffered XML. this method stops the parser, set its state to End Of File and return the input stream with what is left that the parser did not use. The implementation is not good, the parser certainly progressed past what&apos;s left in reader-&gt;input, and there is an allocation problem. Best would be to rewrite it differently.</info>
+ <return type='xmlParserInputBufferPtr' info='the xmlParserInputBufferPtr attached to the XML or NULL in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderHasAttributes' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Whether the node has attributes.</info>
+ <return type='int' info='1 if true, 0 if false, and -1 in case or error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderHasValue' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Whether the node can have a text value.</info>
+ <return type='int' info='1 if true, 0 if false, and -1 in case or error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderIsDefault' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Whether an Attribute node was generated from the default value defined in the DTD or schema.</info>
+ <return type='int' info='0 if not defaulted, 1 if defaulted, and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderIsEmptyElement' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Check if the current node is empty</info>
+ <return type='int' info='1 if empty, 0 if not and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderIsNamespaceDecl' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Determine whether the current node is a namespace declaration rather than a regular attribute.</info>
+ <return type='int' info='1 if the current node is a namespace declaration, 0 if it is a regular attribute or other type of node, or -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderIsValid' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Retrieve the validity status from the parser context</info>
+ <return type='int' info='the flag value 1 if valid, 0 if no, and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderLocalName' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The local name of the node.</info>
+ <return type='xmlChar *' info='the local name or NULL if not available, if non NULL it need to be freed by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderLocatorBaseURI' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Obtain the base URI for the given locator.</info>
+ <return type='xmlChar *' info='the base URI or NULL in case of error, if non NULL it need to be freed by the caller.'/>
+ <arg name='locator' type='xmlTextReaderLocatorPtr' info='the xmlTextReaderLocatorPtr used'/>
+ </function>
+ <function name='xmlTextReaderLocatorLineNumber' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Obtain the line number for the given locator.</info>
+ <return type='int' info='the line number or -1 in case of error.'/>
+ <arg name='locator' type='xmlTextReaderLocatorPtr' info='the xmlTextReaderLocatorPtr used'/>
+ </function>
+ <function name='xmlTextReaderLookupNamespace' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Resolves a namespace prefix in the scope of the current element.</info>
+ <return type='xmlChar *' info='a string containing the namespace URI to which the prefix maps or NULL in case of error. The string must be deallocated by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='prefix' type='const xmlChar *' info='the prefix whose namespace URI is to be resolved. To return the default namespace, specify NULL'/>
+ </function>
+ <function name='xmlTextReaderMoveToAttribute' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Moves the position of the current instance to the attribute with the specified qualified name.</info>
+ <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='name' type='const xmlChar *' info='the qualified name of the attribute.'/>
+ </function>
+ <function name='xmlTextReaderMoveToAttributeNo' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Moves the position of the current instance to the attribute with the specified index relative to the containing element.</info>
+ <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='no' type='int' info='the zero-based index of the attribute relative to the containing element.'/>
+ </function>
+ <function name='xmlTextReaderMoveToAttributeNs' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Moves the position of the current instance to the attribute with the specified local name and namespace URI.</info>
+ <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='localName' type='const xmlChar *' info='the local name of the attribute.'/>
+ <arg name='namespaceURI' type='const xmlChar *' info='the namespace URI of the attribute.'/>
+ </function>
+ <function name='xmlTextReaderMoveToElement' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Moves the position of the current instance to the node that contains the current Attribute node.</info>
+ <return type='int' info='1 in case of success, -1 in case of error, 0 if not moved'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderMoveToFirstAttribute' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Moves the position of the current instance to the first attribute associated with the current node.</info>
+ <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderMoveToNextAttribute' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Moves the position of the current instance to the next attribute associated with the current node.</info>
+ <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderName' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The qualified name of the node, equal to Prefix :LocalName.</info>
+ <return type='xmlChar *' info='the local name or NULL if not available, if non NULL it need to be freed by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderNamespaceUri' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The URI defining the namespace associated with the node.</info>
+ <return type='xmlChar *' info='the namespace URI or NULL if not available, if non NULL it need to be freed by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderNext' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Skip to the node following the current one in document order while avoiding the subtree if any.</info>
+ <return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderNextSibling' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Skip to the node following the current one in document order while avoiding the subtree if any. Currently implemented only for Readers built on a document</info>
+ <return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderNodeType' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Get the node type of the current node Reference: http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/XmlNodeType.html</info>
+ <return type='int' info='the xmlReaderTypes of the current node or -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderNormalization' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The value indicating whether to normalize white space and attribute values. Since attribute value and end of line normalizations are a MUST in the XML specification only the value true is accepted. The broken bahaviour of accepting out of range character entities like &amp;#0; is of course not supported either.</info>
+ <return type='int' info='1 or -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderPrefix' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>A shorthand reference to the namespace associated with the node.</info>
+ <return type='xmlChar *' info='the prefix or NULL if not available, if non NULL it need to be freed by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderPreserve' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>This tells the XML Reader to preserve the current node. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</info>
+ <return type='xmlNodePtr' info='the xmlNodePtr or NULL in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderPreservePattern' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_PATTERN_ENABLED)</cond>
+ <info>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</info>
+ <return type='int' info='a non-negative number in case of success and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='pattern' type='const xmlChar *' info='an XPath subset pattern'/>
+ <arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
+ </function>
+ <function name='xmlTextReaderQuoteChar' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The quotation mark character used to enclose the value of an attribute.</info>
+ <return type='int' info='&quot; or &apos; and -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderRead' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Moves the position of the current instance to the next node in the stream, exposing its properties.</info>
+ <return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderReadAttributeValue' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Parses an attribute value into one or more Text and EntityReference nodes.</info>
+ <return type='int' info='1 in case of success, 0 if the reader was not positioned on an attribute node or all the attribute values have been read, or -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderReadInnerXml' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Reads the contents of the current node, including child nodes and markup.</info>
+ <return type='xmlChar *' info='a string containing the XML content, or NULL if the current node is neither an element nor attribute, or has no child nodes. The string must be deallocated by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderReadOuterXml' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Reads the contents of the current node, including child nodes and markup.</info>
+ <return type='xmlChar *' info='a string containing the node and any XML content, or NULL if the current node cannot be serialized. The string must be deallocated by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderReadState' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Gets the read state of the reader.</info>
+ <return type='int' info='the state value, or -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderReadString' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Reads the contents of an element or a text node as a string.</info>
+ <return type='xmlChar *' info='a string containing the contents of the Element or Text node, or NULL if the reader is positioned on any other type of node. The string must be deallocated by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderRelaxNGSetSchema' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then RelaxNG validation is deactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated.</info>
+ <return type='int' info='0 in case the RelaxNG validation could be (de)activated and -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='schema' type='xmlRelaxNGPtr' info='a precompiled RelaxNG schema'/>
+ </function>
+ <function name='xmlTextReaderRelaxNGValidate' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Use RelaxNG schema to validate the document as it is processed. Activation is only possible before the first Read(). If @rng is NULL, then RelaxNG schema validation is deactivated.</info>
+ <return type='int' info='0 in case the schemas validation could be (de)activated and -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='rng' type='const char *' info='the path to a RelaxNG schema or NULL'/>
+ </function>
+ <function name='xmlTextReaderRelaxNGValidateCtxt' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Use RelaxNG schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then RelaxNG schema validation is deactivated.</info>
+ <return type='int' info='0 in case the schemas validation could be (de)activated and -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the RelaxNG schema validation context or NULL'/>
+ <arg name='options' type='int' info='options (not used yet)'/>
+ </function>
+ <function name='xmlTextReaderSchemaValidate' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). If @xsd is NULL, then XML Schema validation is deactivated.</info>
+ <return type='int' info='0 in case the schemas validation could be (de)activated and -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='xsd' type='const char *' info='the path to a W3C XSD schema or NULL'/>
+ </function>
+ <function name='xmlTextReaderSchemaValidateCtxt' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Use W3C XSD schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then XML Schema validation is deactivated.</info>
+ <return type='int' info='0 in case the schemas validation could be (de)activated and -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='the XML Schema validation context or NULL'/>
+ <arg name='options' type='int' info='options (not used yet)'/>
+ </function>
+ <function name='xmlTextReaderSetErrorHandler' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.</info>
+ <return type='void'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='f' type='xmlTextReaderErrorFunc' info='the callback function to call on error and warnings'/>
+ <arg name='arg' type='void *' info='a user argument to pass to the callback function'/>
+ </function>
+ <function name='xmlTextReaderSetParserProp' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Change the parser processing behaviour by changing some of its internal properties. Note that some properties can only be changed before any read has been done.</info>
+ <return type='int' info='0 if the call was successful, or -1 in case of error'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='prop' type='int' info='the xmlParserProperties to set'/>
+ <arg name='value' type='int' info='usually 0 or 1 to (de)activate it'/>
+ </function>
+ <function name='xmlTextReaderSetSchema' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Use XSD Schema to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then Schema validation is deactivated. The @schema should not be freed until the reader is deallocated or its use has been deactivated.</info>
+ <return type='int' info='0 in case the Schema validation could be (de)activated and -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='schema' type='xmlSchemaPtr' info='a precompiled Schema schema'/>
+ </function>
+ <function name='xmlTextReaderSetStructuredErrorHandler' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.</info>
+ <return type='void'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ <arg name='f' type='xmlStructuredErrorFunc' info='the callback function to call on error and warnings'/>
+ <arg name='arg' type='void *' info='a user argument to pass to the callback function'/>
+ </function>
+ <function name='xmlTextReaderSetup' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Setup an XML reader with new options</info>
+ <return type='int' info='0 in case of success and -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
+ <arg name='input' type='xmlParserInputBufferPtr' info='xmlParserInputBufferPtr used to feed the reader, will be destroyed with it.'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
+ <function name='xmlTextReaderStandalone' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Determine the standalone status of the document being read.</info>
+ <return type='int' info='1 if the document was declared to be standalone, 0 if it was declared to be not standalone, or -1 if the document did not specify its standalone status or in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderValue' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Provides the text value of the node if present</info>
+ <return type='xmlChar *' info='the string or NULL if not available. The result must be deallocated with xmlFree()'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextReaderXmlLang' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>The xml:lang scope within which the node resides.</info>
+ <return type='xmlChar *' info='the xml:lang value or NULL if none exists., if non NULL it need to be freed by the caller.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
+ </function>
+ <function name='xmlTextWriterEndAttribute' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End the current xml element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterEndCDATA' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End an xml CDATA section.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterEndComment' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End the current xml comment.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterEndDTD' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End an xml DTD.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterEndDTDAttlist' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End an xml DTD attribute list.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterEndDTDElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End an xml DTD element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterEndDTDEntity' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End an xml DTD entity.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterEndDocument' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End an xml document. All open elements are closed, and the content is flushed to the output.</info>
+ <return type='int' info='the bytes written or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterEndElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End the current xml element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterEndPI' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End the current xml PI.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterFlush' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Flush the output buffer.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterFullEndElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>End the current xml element. Writes an end tag even if the element is empty</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterSetIndent' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Set indentation output. indent = 0 do not indentation. indent &gt; 0 do indentation.</info>
+ <return type='int' info='-1 on error or 0 otherwise.'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='indent' type='int' info='do indentation?'/>
+ </function>
+ <function name='xmlTextWriterSetIndentString' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Set string indentation.</info>
+ <return type='int' info='-1 on error or 0 otherwise.'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='str' type='const xmlChar *' info='the xmlChar string'/>
+ </function>
+ <function name='xmlTextWriterSetQuoteChar' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Set the character used for quoting attributes.</info>
+ <return type='int' info='-1 on error or 0 otherwise.'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='quotechar' type='xmlChar' info='the quote character'/>
+ </function>
+ <function name='xmlTextWriterStartAttribute' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml attribute.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='element name'/>
+ </function>
+ <function name='xmlTextWriterStartAttributeNS' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml attribute with namespace support.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='prefix' type='const xmlChar *' info='namespace prefix or NULL'/>
+ <arg name='name' type='const xmlChar *' info='element local name'/>
+ <arg name='namespaceURI' type='const xmlChar *' info='namespace URI or NULL'/>
+ </function>
+ <function name='xmlTextWriterStartCDATA' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml CDATA section.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterStartComment' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml comment.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ </function>
+ <function name='xmlTextWriterStartDTD' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml DTD.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD'/>
+ <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
+ <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
+ </function>
+ <function name='xmlTextWriterStartDTDAttlist' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml DTD ATTLIST.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
+ </function>
+ <function name='xmlTextWriterStartDTDElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml DTD element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD element'/>
+ </function>
+ <function name='xmlTextWriterStartDTDEntity' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml DTD ATTLIST.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
+ </function>
+ <function name='xmlTextWriterStartDocument' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start a new xml document</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='version' type='const char *' info='the xml version (&quot;1.0&quot;) or NULL for default (&quot;1.0&quot;)'/>
+ <arg name='encoding' type='const char *' info='the encoding or NULL for default'/>
+ <arg name='standalone' type='const char *' info='&quot;yes&quot; or &quot;no&quot; or NULL for default'/>
+ </function>
+ <function name='xmlTextWriterStartElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='element name'/>
+ </function>
+ <function name='xmlTextWriterStartElementNS' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml element with namespace support.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='prefix' type='const xmlChar *' info='namespace prefix or NULL'/>
+ <arg name='name' type='const xmlChar *' info='element local name'/>
+ <arg name='namespaceURI' type='const xmlChar *' info='namespace URI or NULL'/>
+ </function>
+ <function name='xmlTextWriterStartPI' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Start an xml PI.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='target' type='const xmlChar *' info='PI target'/>
+ </function>
+ <function name='xmlTextWriterWriteAttribute' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml attribute.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='attribute name'/>
+ <arg name='content' type='const xmlChar *' info='attribute content'/>
+ </function>
+ <function name='xmlTextWriterWriteAttributeNS' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml attribute.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
+ <arg name='name' type='const xmlChar *' info='attribute local name'/>
+ <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
+ <arg name='content' type='const xmlChar *' info='attribute content'/>
+ </function>
+ <function name='xmlTextWriterWriteBase64' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an base64 encoded xml text.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='data' type='const char *' info='binary data'/>
+ <arg name='start' type='int' info='the position within the data of the first byte to encode'/>
+ <arg name='len' type='int' info='the number of bytes to encode'/>
+ </function>
+ <function name='xmlTextWriterWriteBinHex' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a BinHex encoded xml text.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='data' type='const char *' info='binary data'/>
+ <arg name='start' type='int' info='the position within the data of the first byte to encode'/>
+ <arg name='len' type='int' info='the number of bytes to encode'/>
+ </function>
+ <function name='xmlTextWriterWriteCDATA' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml CDATA.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='content' type='const xmlChar *' info='CDATA content'/>
+ </function>
+ <function name='xmlTextWriterWriteComment' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml comment.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='content' type='const xmlChar *' info='comment string'/>
+ </function>
+ <function name='xmlTextWriterWriteDTD' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a DTD.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD'/>
+ <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
+ <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
+ <arg name='subset' type='const xmlChar *' info='string content of the DTD'/>
+ </function>
+ <function name='xmlTextWriterWriteDTDAttlist' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a DTD ATTLIST.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
+ <arg name='content' type='const xmlChar *' info='content of the ATTLIST'/>
+ </function>
+ <function name='xmlTextWriterWriteDTDElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a DTD element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD element'/>
+ <arg name='content' type='const xmlChar *' info='content of the element'/>
+ </function>
+ <function name='xmlTextWriterWriteDTDEntity' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a DTD entity.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
+ <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
+ <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
+ <arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
+ <arg name='content' type='const xmlChar *' info='content of the entity'/>
+ </function>
+ <function name='xmlTextWriterWriteDTDExternalEntity' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a DTD external entity. The entity must have been started with xmlTextWriterStartDTDEntity</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
+ <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
+ <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
+ <arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
+ </function>
+ <function name='xmlTextWriterWriteDTDExternalEntityContents' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write the contents of a DTD external entity.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
+ <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
+ <arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
+ </function>
+ <function name='xmlTextWriterWriteDTDInternalEntity' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a DTD internal entity.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
+ <arg name='content' type='const xmlChar *' info='content of the entity'/>
+ </function>
+ <function name='xmlTextWriterWriteDTDNotation' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a DTD entity.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the xml notation'/>
+ <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
+ <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
+ </function>
+ <function name='xmlTextWriterWriteElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='element name'/>
+ <arg name='content' type='const xmlChar *' info='element content'/>
+ </function>
+ <function name='xmlTextWriterWriteElementNS' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml element with namespace support.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
+ <arg name='name' type='const xmlChar *' info='element local name'/>
+ <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
+ <arg name='content' type='const xmlChar *' info='element content'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatAttribute' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml attribute.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='attribute name'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatAttributeNS' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml attribute.with namespace support</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
+ <arg name='name' type='const xmlChar *' info='attribute local name'/>
+ <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatCDATA' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml CDATA.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatComment' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml comment.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatDTD' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a DTD with a formatted markup declarations part.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD'/>
+ <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
+ <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatDTDAttlist' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted DTD ATTLIST.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatDTDElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted DTD element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD element'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatDTDInternalEntity' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted DTD internal entity.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='element name'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatElementNS' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml element with namespace support.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
+ <arg name='name' type='const xmlChar *' info='element local name'/>
+ <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatPI' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted PI.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='target' type='const xmlChar *' info='PI target'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatRaw' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted raw xml text.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWriteFormatString' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml text.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='...' type='...' info='extra parameters for the format'/>
+ </function>
+ <function name='xmlTextWriterWritePI' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml PI.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='target' type='const xmlChar *' info='PI target'/>
+ <arg name='content' type='const xmlChar *' info='PI content'/>
+ </function>
+ <function name='xmlTextWriterWriteRaw' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a raw xml text.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='content' type='const xmlChar *' info='text string'/>
+ </function>
+ <function name='xmlTextWriterWriteRawLen' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml text. TODO: what about entities and special chars??</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='content' type='const xmlChar *' info='text string'/>
+ <arg name='len' type='int' info='length of the text string'/>
+ </function>
+ <function name='xmlTextWriterWriteString' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml text.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='content' type='const xmlChar *' info='text string'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatAttribute' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml attribute.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='attribute name'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatAttributeNS' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml attribute.with namespace support</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
+ <arg name='name' type='const xmlChar *' info='attribute local name'/>
+ <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatCDATA' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml CDATA.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatComment' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write an xml comment.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatDTD' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a DTD with a formatted markup declarations part.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD'/>
+ <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
+ <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatDTDAttlist' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted DTD ATTLIST.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatDTDElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted DTD element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD element'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatDTDInternalEntity' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted DTD internal entity.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
+ <arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatElement' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml element.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='name' type='const xmlChar *' info='element name'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatElementNS' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml element with namespace support.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
+ <arg name='name' type='const xmlChar *' info='element local name'/>
+ <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatPI' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml PI.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='target' type='const xmlChar *' info='PI target'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatRaw' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted raw xml text.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlTextWriterWriteVFormatString' file='xmlwriter' module='xmlwriter'>
+ <cond>defined(LIBXML_WRITER_ENABLED)</cond>
+ <info>Write a formatted xml text.</info>
+ <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+ <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+ <arg name='format' type='const char *' info='format string (see printf)'/>
+ <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
+ </function>
+ <function name='xmlThrDefBufferAllocScheme' file='globals' module='globals'>
+ <info></info>
+ <return type='xmlBufferAllocationScheme' info=''/>
+ <arg name='v' type='xmlBufferAllocationScheme' info=''/>
+ </function>
+ <function name='xmlThrDefDefaultBufferSize' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefDeregisterNodeDefault' file='globals' module='globals'>
+ <info></info>
+ <return type='xmlDeregisterNodeFunc' info=''/>
+ <arg name='func' type='xmlDeregisterNodeFunc' info=''/>
+ </function>
+ <function name='xmlThrDefDoValidityCheckingDefaultValue' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefGetWarningsDefaultValue' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefIndentTreeOutput' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefKeepBlanksDefaultValue' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefLineNumbersDefaultValue' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefLoadExtDtdDefaultValue' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefOutputBufferCreateFilenameDefault' file='globals' module='globals'>
+ <info></info>
+ <return type='xmlOutputBufferCreateFilenameFunc' info=''/>
+ <arg name='func' type='xmlOutputBufferCreateFilenameFunc' info=''/>
+ </function>
+ <function name='xmlThrDefParserDebugEntities' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefParserInputBufferCreateFilenameDefault' file='globals' module='globals'>
+ <info></info>
+ <return type='xmlParserInputBufferCreateFilenameFunc' info=''/>
+ <arg name='func' type='xmlParserInputBufferCreateFilenameFunc' info=''/>
+ </function>
+ <function name='xmlThrDefPedanticParserDefaultValue' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefRegisterNodeDefault' file='globals' module='globals'>
+ <info></info>
+ <return type='xmlRegisterNodeFunc' info=''/>
+ <arg name='func' type='xmlRegisterNodeFunc' info=''/>
+ </function>
+ <function name='xmlThrDefSaveNoEmptyTags' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefSetGenericErrorFunc' file='globals' module='globals'>
+ <info></info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info=''/>
+ <arg name='handler' type='xmlGenericErrorFunc' info=''/>
+ </function>
+ <function name='xmlThrDefSetStructuredErrorFunc' file='globals' module='globals'>
+ <info></info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info=''/>
+ <arg name='handler' type='xmlStructuredErrorFunc' info=''/>
+ </function>
+ <function name='xmlThrDefSubstituteEntitiesDefaultValue' file='globals' module='globals'>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='v' type='int' info=''/>
+ </function>
+ <function name='xmlThrDefTreeIndentString' file='globals' module='globals'>
+ <info></info>
+ <return type='const char *' info=''/>
+ <arg name='v' type='const char *' info=''/>
+ </function>
+ <function name='xmlUCSIsAegeanNumbers' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of AegeanNumbers UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsAlphabeticPresentationForms' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of AlphabeticPresentationForms UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsArabic' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Arabic UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsArabicPresentationFormsA' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of ArabicPresentationForms-A UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsArabicPresentationFormsB' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of ArabicPresentationForms-B UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsArmenian' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Armenian UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsArrows' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Arrows UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsBasicLatin' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of BasicLatin UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsBengali' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Bengali UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsBlock' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of the UCS Block</info>
+ <return type='int' info='1 if true, 0 if false and -1 on unknown block'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ <arg name='block' type='const char *' info='UCS block name'/>
+ </function>
+ <function name='xmlUCSIsBlockElements' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of BlockElements UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsBopomofo' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Bopomofo UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsBopomofoExtended' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of BopomofoExtended UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsBoxDrawing' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of BoxDrawing UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsBraillePatterns' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of BraillePatterns UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsBuhid' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Buhid UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsByzantineMusicalSymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of ByzantineMusicalSymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCJKCompatibility' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CJKCompatibility UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCJKCompatibilityForms' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CJKCompatibilityForms UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCJKCompatibilityIdeographs' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CJKCompatibilityIdeographs UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCJKCompatibilityIdeographsSupplement' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CJKCompatibilityIdeographsSupplement UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCJKRadicalsSupplement' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CJKRadicalsSupplement UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCJKSymbolsandPunctuation' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CJKSymbolsandPunctuation UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCJKUnifiedIdeographs' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CJKUnifiedIdeographs UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCJKUnifiedIdeographsExtensionA' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CJKUnifiedIdeographsExtensionA UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCJKUnifiedIdeographsExtensionB' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CJKUnifiedIdeographsExtensionB UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCat' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of the UCS Category</info>
+ <return type='int' info='1 if true, 0 if false and -1 on unknown category'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ <arg name='cat' type='const char *' info='UCS Category name'/>
+ </function>
+ <function name='xmlUCSIsCatC' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of C UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatCc' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Cc UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatCf' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Cf UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatCo' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Co UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatCs' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Cs UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatL' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of L UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatLl' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Ll UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatLm' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Lm UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatLo' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Lo UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatLt' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Lt UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatLu' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Lu UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatM' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of M UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatMc' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Mc UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatMe' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Me UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatMn' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Mn UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatN' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of N UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatNd' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Nd UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatNl' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Nl UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatNo' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of No UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatP' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of P UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatPc' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Pc UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatPd' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Pd UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatPe' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Pe UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatPf' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Pf UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatPi' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Pi UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatPo' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Po UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatPs' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Ps UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatS' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of S UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatSc' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Sc UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatSk' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Sk UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatSm' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Sm UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatSo' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of So UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatZ' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Z UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatZl' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Zl UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatZp' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Zp UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCatZs' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Zs UCS Category</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCherokee' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Cherokee UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCombiningDiacriticalMarks' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CombiningDiacriticalMarks UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCombiningDiacriticalMarksforSymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CombiningDiacriticalMarksforSymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCombiningHalfMarks' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CombiningHalfMarks UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCombiningMarksforSymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CombiningMarksforSymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsControlPictures' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of ControlPictures UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCurrencySymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CurrencySymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCypriotSyllabary' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CypriotSyllabary UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCyrillic' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Cyrillic UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsCyrillicSupplement' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of CyrillicSupplement UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsDeseret' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Deseret UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsDevanagari' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Devanagari UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsDingbats' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Dingbats UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsEnclosedAlphanumerics' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of EnclosedAlphanumerics UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsEnclosedCJKLettersandMonths' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of EnclosedCJKLettersandMonths UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsEthiopic' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Ethiopic UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsGeneralPunctuation' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of GeneralPunctuation UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsGeometricShapes' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of GeometricShapes UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsGeorgian' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Georgian UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsGothic' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Gothic UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsGreek' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Greek UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsGreekExtended' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of GreekExtended UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsGreekandCoptic' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of GreekandCoptic UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsGujarati' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Gujarati UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsGurmukhi' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Gurmukhi UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsHalfwidthandFullwidthForms' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of HalfwidthandFullwidthForms UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsHangulCompatibilityJamo' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of HangulCompatibilityJamo UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsHangulJamo' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of HangulJamo UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsHangulSyllables' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of HangulSyllables UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsHanunoo' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Hanunoo UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsHebrew' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Hebrew UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsHighPrivateUseSurrogates' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of HighPrivateUseSurrogates UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsHighSurrogates' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of HighSurrogates UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsHiragana' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Hiragana UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsIPAExtensions' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of IPAExtensions UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsIdeographicDescriptionCharacters' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of IdeographicDescriptionCharacters UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsKanbun' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Kanbun UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsKangxiRadicals' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of KangxiRadicals UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsKannada' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Kannada UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsKatakana' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Katakana UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsKatakanaPhoneticExtensions' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of KatakanaPhoneticExtensions UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsKhmer' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Khmer UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsKhmerSymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of KhmerSymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsLao' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Lao UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsLatin1Supplement' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Latin-1Supplement UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsLatinExtendedA' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of LatinExtended-A UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsLatinExtendedAdditional' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of LatinExtendedAdditional UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsLatinExtendedB' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of LatinExtended-B UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsLetterlikeSymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of LetterlikeSymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsLimbu' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Limbu UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsLinearBIdeograms' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of LinearBIdeograms UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsLinearBSyllabary' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of LinearBSyllabary UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsLowSurrogates' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of LowSurrogates UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMalayalam' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Malayalam UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMathematicalAlphanumericSymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of MathematicalAlphanumericSymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMathematicalOperators' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of MathematicalOperators UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMiscellaneousMathematicalSymbolsA' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of MiscellaneousMathematicalSymbols-A UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMiscellaneousMathematicalSymbolsB' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of MiscellaneousMathematicalSymbols-B UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMiscellaneousSymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of MiscellaneousSymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMiscellaneousSymbolsandArrows' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of MiscellaneousSymbolsandArrows UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMiscellaneousTechnical' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of MiscellaneousTechnical UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMongolian' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Mongolian UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMusicalSymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of MusicalSymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsMyanmar' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Myanmar UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsNumberForms' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of NumberForms UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsOgham' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Ogham UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsOldItalic' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of OldItalic UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsOpticalCharacterRecognition' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of OpticalCharacterRecognition UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsOriya' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Oriya UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsOsmanya' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Osmanya UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsPhoneticExtensions' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of PhoneticExtensions UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsPrivateUse' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of PrivateUse UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsPrivateUseArea' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of PrivateUseArea UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsRunic' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Runic UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsShavian' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Shavian UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSinhala' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Sinhala UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSmallFormVariants' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of SmallFormVariants UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSpacingModifierLetters' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of SpacingModifierLetters UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSpecials' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Specials UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSuperscriptsandSubscripts' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of SuperscriptsandSubscripts UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSupplementalArrowsA' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of SupplementalArrows-A UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSupplementalArrowsB' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of SupplementalArrows-B UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSupplementalMathematicalOperators' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of SupplementalMathematicalOperators UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSupplementaryPrivateUseAreaA' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of SupplementaryPrivateUseArea-A UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSupplementaryPrivateUseAreaB' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of SupplementaryPrivateUseArea-B UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsSyriac' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Syriac UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsTagalog' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Tagalog UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsTagbanwa' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Tagbanwa UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsTags' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Tags UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsTaiLe' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of TaiLe UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsTaiXuanJingSymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of TaiXuanJingSymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsTamil' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Tamil UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsTelugu' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Telugu UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsThaana' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Thaana UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsThai' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Thai UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsTibetan' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Tibetan UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsUgaritic' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of Ugaritic UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsUnifiedCanadianAboriginalSyllabics' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of UnifiedCanadianAboriginalSyllabics UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsVariationSelectors' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of VariationSelectors UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsVariationSelectorsSupplement' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of VariationSelectorsSupplement UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsYiRadicals' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of YiRadicals UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsYiSyllables' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of YiSyllables UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlUCSIsYijingHexagramSymbols' file='xmlunicode' module='xmlunicode'>
+ <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
+ <info>Check whether the character is part of YijingHexagramSymbols UCS Block</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='code' type='int' info='UCS code point'/>
+ </function>
+ <function name='xmlURIEscape' file='uri' module='uri'>
+ <info>Escaping routine, does not do validity checks ! It will try to escape the chars needing this, but this is heuristic based it&apos;s impossible to be sure.</info>
+ <return type='xmlChar *' info='an copy of the string, but escaped 25 May 2001 Uses xmlParseURI and xmlURIEscapeStr to try to escape correctly according to RFC2396. - Carl Douglas'/>
+ <arg name='str' type='const xmlChar *' info='the string of the URI to escape'/>
+ </function>
+ <function name='xmlURIEscapeStr' file='uri' module='uri'>
+ <info>This routine escapes a string to hex, ignoring reserved characters (a-z) and the characters in the exception list.</info>
+ <return type='xmlChar *' info='a new escaped string or NULL in case of error.'/>
+ <arg name='str' type='const xmlChar *' info='string to escape'/>
+ <arg name='list' type='const xmlChar *' info='exception list string of chars not to escape'/>
+ </function>
+ <function name='xmlURIUnescapeString' file='uri' module='uri'>
+ <info>Unescaping routine, but does not check that the string is an URI. The output is a direct unsigned char translation of %XX values (no encoding) Note that the length of the result can only be smaller or same size as the input string.</info>
+ <return type='char *' info='a copy of the string, but unescaped, will return NULL only in case of error'/>
+ <arg name='str' type='const char *' info='the string to unescape'/>
+ <arg name='len' type='int' info='the length in bytes to unescape (or &lt;= 0 to indicate full string)'/>
+ <arg name='target' type='char *' info='optional destination buffer'/>
+ </function>
+ <function name='xmlUTF8Charcmp' file='xmlstring' module='xmlstring'>
+ <info>compares the two UCS4 values</info>
+ <return type='int' info='result of the compare as with xmlStrncmp'/>
+ <arg name='utf1' type='const xmlChar *' info='pointer to first UTF8 char'/>
+ <arg name='utf2' type='const xmlChar *' info='pointer to second UTF8 char'/>
+ </function>
+ <function name='xmlUTF8Size' file='xmlstring' module='xmlstring'>
+ <info>calculates the internal size of a UTF8 character</info>
+ <return type='int' info='the numbers of bytes in the character, -1 on format error'/>
+ <arg name='utf' type='const xmlChar *' info='pointer to the UTF8 character'/>
+ </function>
+ <function name='xmlUTF8Strlen' file='xmlstring' module='xmlstring'>
+ <info>compute the length of an UTF8 string, it doesn&apos;t do a full UTF8 checking of the content of the string.</info>
+ <return type='int' info='the number of characters in the string or -1 in case of error'/>
+ <arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
+ </function>
+ <function name='xmlUTF8Strloc' file='xmlstring' module='xmlstring'>
+ <info>a function to provide the relative location of a UTF8 char</info>
+ <return type='int' info='the relative character position of the desired char or -1 if not found'/>
+ <arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
+ <arg name='utfchar' type='const xmlChar *' info='the UTF8 character to be found'/>
+ </function>
+ <function name='xmlUTF8Strndup' file='xmlstring' module='xmlstring'>
+ <info>a strndup for array of UTF8&apos;s</info>
+ <return type='xmlChar *' info='a new UTF8 * or NULL'/>
+ <arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
+ <arg name='len' type='int' info='the len of @utf (in chars)'/>
+ </function>
+ <function name='xmlUTF8Strpos' file='xmlstring' module='xmlstring'>
+ <info>a function to provide the equivalent of fetching a character from a string array</info>
+ <return type='const xmlChar *' info='a pointer to the UTF8 character or NULL'/>
+ <arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
+ <arg name='pos' type='int' info='the position of the desired UTF8 char (in chars)'/>
+ </function>
+ <function name='xmlUTF8Strsize' file='xmlstring' module='xmlstring'>
+ <info>storage size of an UTF8 string the behaviour is not guaranteed if the input string is not UTF-8</info>
+ <return type='int' info='the storage size of the first &apos;len&apos; characters of ARRAY'/>
+ <arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
+ <arg name='len' type='int' info='the number of characters in the array'/>
+ </function>
+ <function name='xmlUTF8Strsub' file='xmlstring' module='xmlstring'>
+ <info>Create a substring from a given UTF-8 string Note: positions are given in units of UTF-8 chars</info>
+ <return type='xmlChar *' info='a pointer to a newly created string or NULL if any problem'/>
+ <arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
+ <arg name='start' type='int' info='relative pos of first char'/>
+ <arg name='len' type='int' info='total number to copy'/>
+ </function>
+ <function name='xmlUnlinkNode' file='tree' module='tree'>
+ <info>Unlink a node from it&apos;s current context, the node is not freed If one need to free the node, use xmlFreeNode() routine after the unlink to discard it. Note that namespace nodes can&apos;t be unlinked as they do not have pointer to their parent.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodePtr' info='the node'/>
+ </function>
+ <function name='xmlUnlockLibrary' file='threads' module='threads'>
+ <info>xmlUnlockLibrary() is used to release a re-entrant lock on the libxml2 library.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlUnsetNsProp' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Remove an attribute carried by a node.</info>
+ <return type='int' info='0 if successful, -1 if not found'/>
+ <arg name='node' type='xmlNodePtr' info='the node'/>
+ <arg name='ns' type='xmlNsPtr' info='the namespace definition'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ </function>
+ <function name='xmlUnsetProp' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Remove an attribute carried by a node. This handles only attributes in no namespace.</info>
+ <return type='int' info='0 if successful, -1 if not found'/>
+ <arg name='node' type='xmlNodePtr' info='the node'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ </function>
+ <function name='xmlValidBuildContentModel' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>(Re)Build the automata associated to the content model of this element</info>
+ <return type='int' info='1 in case of success, 0 in case of error'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='a validation context'/>
+ <arg name='elem' type='xmlElementPtr' info='an element declaration node'/>
+ </function>
+ <function name='xmlValidCtxtNormalizeAttributeValue' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Does the validation related extra step of the normalization of attribute values: If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by single space (#x20) character. Also check VC: Standalone Document Declaration in P32, and update ctxt-&gt;valid accordingly</info>
+ <return type='xmlChar *' info='a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context or NULL'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='elem' type='xmlNodePtr' info='the parent'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ <arg name='value' type='const xmlChar *' info='the attribute value'/>
+ </function>
+ <function name='xmlValidGetPotentialChildren' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Build/extend a list of potential children allowed by the content tree</info>
+ <return type='int' info='the number of element in the list, or -1 in case of error.'/>
+ <arg name='ctree' type='xmlElementContent *' info='an element content tree'/>
+ <arg name='names' type='const xmlChar **' info='an array to store the list of child names'/>
+ <arg name='len' type='int *' info='a pointer to the number of element in the list'/>
+ <arg name='max' type='int' info='the size of the array'/>
+ </function>
+ <function name='xmlValidGetValidElements' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>This function returns the list of authorized children to insert within an existing tree while respecting the validity constraints forced by the Dtd. The insertion point is defined using @prev and @next in the following ways: to insert before &apos;node&apos;: xmlValidGetValidElements(node-&gt;prev, node, ... to insert next &apos;node&apos;: xmlValidGetValidElements(node, node-&gt;next, ... to replace &apos;node&apos;: xmlValidGetValidElements(node-&gt;prev, node-&gt;next, ... to prepend a child to &apos;node&apos;: xmlValidGetValidElements(NULL, node-&gt;childs, to append a child to &apos;node&apos;: xmlValidGetValidElements(node-&gt;last, NULL, ... pointers to the element names are inserted at the beginning of the array and do not need to be freed.</info>
+ <return type='int' info='the number of element in the list, or -1 in case of error. If the function returns the value @max the caller is invited to grow the receiving array and retry.'/>
+ <arg name='prev' type='xmlNode *' info='an element to insert after'/>
+ <arg name='next' type='xmlNode *' info='an element to insert next'/>
+ <arg name='names' type='const xmlChar **' info='an array to store the list of child names'/>
+ <arg name='max' type='int' info='the size of the array'/>
+ </function>
+ <function name='xmlValidNormalizeAttributeValue' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Does the validation related extra step of the normalization of attribute values: If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by single space (#x20) character.</info>
+ <return type='xmlChar *' info='a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='elem' type='xmlNodePtr' info='the parent'/>
+ <arg name='name' type='const xmlChar *' info='the attribute name'/>
+ <arg name='value' type='const xmlChar *' info='the attribute value'/>
+ </function>
+ <function name='xmlValidateAttributeDecl' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Try to validate a single attribute definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Default Legal ] - [ VC: Enumeration ] - [ VC: ID Attribute Default ] The ID/IDREF uniqueness and matching are done separately</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='attr' type='xmlAttributePtr' info='an attribute definition'/>
+ </function>
+ <function name='xmlValidateAttributeValue' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Validate that the given attribute value match the proper production [ VC: ID ] Values of type ID must match the Name production.... [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names ... [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names ... [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='type' type='xmlAttributeType' info='an attribute type'/>
+ <arg name='value' type='const xmlChar *' info='an attribute value'/>
+ </function>
+ <function name='xmlValidateDocument' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Try to validate the document instance basically it does the all the checks described by the XML Rec i.e. validates the internal and external subset (if present) and validate the document tree.</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ </function>
+ <function name='xmlValidateDocumentFinal' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Does the final step for the document validation once all the incremental validation steps have been completed basically it does the following checks described by the XML Rec Check all the IDREF/IDREFS attributes definition for validity</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ </function>
+ <function name='xmlValidateDtd' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Try to validate the document against the dtd instance Basically it does check all the definitions in the DtD. Note the the internal subset (if present) is de-coupled (i.e. not used), which could give problems if ID or IDREF is present.</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='dtd' type='xmlDtdPtr' info='a dtd instance'/>
+ </function>
+ <function name='xmlValidateDtdFinal' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Does the final step for the dtds validation once all the subsets have been parsed basically it does the following checks described by the XML Rec - check that ENTITY and ENTITIES type attributes default or possible values matches one of the defined entities. - check that NOTATION type attributes default or possible values matches one of the defined notations.</info>
+ <return type='int' info='1 if valid or 0 if invalid and -1 if not well-formed'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ </function>
+ <function name='xmlValidateElement' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Try to validate the subtree under an element</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='elem' type='xmlNodePtr' info='an element instance'/>
+ </function>
+ <function name='xmlValidateElementDecl' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Try to validate a single element definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: One ID per Element Type ] - [ VC: No Duplicate Types ] - [ VC: Unique Element Type Declaration ]</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='elem' type='xmlElementPtr' info='an element definition'/>
+ </function>
+ <function name='xmlValidateNCName' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)</cond>
+ <info>Check that a value conforms to the lexical space of NCName</info>
+ <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='value' type='const xmlChar *' info='the value to check'/>
+ <arg name='space' type='int' info='allow spaces in front and end of the string'/>
+ </function>
+ <function name='xmlValidateNMToken' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Check that a value conforms to the lexical space of NMToken</info>
+ <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='value' type='const xmlChar *' info='the value to check'/>
+ <arg name='space' type='int' info='allow spaces in front and end of the string'/>
+ </function>
+ <function name='xmlValidateName' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Check that a value conforms to the lexical space of Name</info>
+ <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='value' type='const xmlChar *' info='the value to check'/>
+ <arg name='space' type='int' info='allow spaces in front and end of the string'/>
+ </function>
+ <function name='xmlValidateNameValue' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Validate that the given value match Name production</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='value' type='const xmlChar *' info='an Name value'/>
+ </function>
+ <function name='xmlValidateNamesValue' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Validate that the given value match Names production</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='value' type='const xmlChar *' info='an Names value'/>
+ </function>
+ <function name='xmlValidateNmtokenValue' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Validate that the given value match Nmtoken production [ VC: Name Token ]</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='value' type='const xmlChar *' info='an Nmtoken value'/>
+ </function>
+ <function name='xmlValidateNmtokensValue' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Validate that the given value match Nmtokens production [ VC: Name Token ]</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='value' type='const xmlChar *' info='an Nmtokens value'/>
+ </function>
+ <function name='xmlValidateNotationDecl' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Try to validate a single notation definition basically it does the following checks as described by the XML-1.0 recommendation: - it seems that no validity constraint exists on notation declarations But this function get called anyway ...</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='nota' type='xmlNotationPtr' info='a notation definition'/>
+ </function>
+ <function name='xmlValidateNotationUse' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Validate that the given name match a notation declaration. - [ VC: Notation Declared ]</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='the document'/>
+ <arg name='notationName' type='const xmlChar *' info='the notation name to check'/>
+ </function>
+ <function name='xmlValidateOneAttribute' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Try to validate a single attribute for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF uniqueness and matching are done separately</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='elem' type='xmlNodePtr' info='an element instance'/>
+ <arg name='attr' type='xmlAttrPtr' info='an attribute instance'/>
+ <arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
+ </function>
+ <function name='xmlValidateOneElement' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Try to validate a single element and it&apos;s attributes, basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: Required Attribute ] Then call xmlValidateOneAttribute() for each attribute present. The ID/IDREF checkings are done separately</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='elem' type='xmlNodePtr' info='an element instance'/>
+ </function>
+ <function name='xmlValidateOneNamespace' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Try to validate a single namespace declaration for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF uniqueness and matching are done separately</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='elem' type='xmlNodePtr' info='an element instance'/>
+ <arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
+ <arg name='ns' type='xmlNsPtr' info='an namespace declaration instance'/>
+ <arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
+ </function>
+ <function name='xmlValidatePopElement' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Pop the element end from the validation stack.</info>
+ <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='elem' type='xmlNodePtr' info='an element instance'/>
+ <arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
+ </function>
+ <function name='xmlValidatePushCData' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>check the CData parsed for validation in the current stack</info>
+ <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='data' type='const xmlChar *' info='some character data read'/>
+ <arg name='len' type='int' info='the length of the data'/>
+ </function>
+ <function name='xmlValidatePushElement' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
+ <info>Push a new element start on the validation stack.</info>
+ <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ <arg name='elem' type='xmlNodePtr' info='an element instance'/>
+ <arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
+ </function>
+ <function name='xmlValidateQName' file='tree' module='tree'>
+ <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Check that a value conforms to the lexical space of QName</info>
+ <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='value' type='const xmlChar *' info='the value to check'/>
+ <arg name='space' type='int' info='allow spaces in front and end of the string'/>
+ </function>
+ <function name='xmlValidateRoot' file='valid' module='valid'>
+ <cond>defined(LIBXML_VALID_ENABLED)</cond>
+ <info>Try to validate a the root element basically it does the following check as described by the XML-1.0 recommendation: - [ VC: Root Element Type ] it doesn&apos;t try to recurse or apply other check to the element</info>
+ <return type='int' info='1 if valid or 0 otherwise'/>
+ <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
+ <arg name='doc' type='xmlDocPtr' info='a document instance'/>
+ </function>
+ <functype name='xmlValidityErrorFunc' file='valid' module='valid'>
+ <info>Callback called when a validity error is found. This is a message oriented function similar to an *printf function.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='usually an xmlValidCtxtPtr to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.'/>
+ <arg name='msg' type='const char *' info='the string to format *printf like vararg'/>
+ <arg name='...' type='...' info='remaining arguments to the format'/>
+ </functype>
+ <functype name='xmlValidityWarningFunc' file='valid' module='valid'>
+ <info>Callback called when a validity warning is found. This is a message oriented function similar to an *printf function.</info>
+ <return type='void'/>
+ <arg name='ctx' type='void *' info='usually an xmlValidCtxtPtr to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.'/>
+ <arg name='msg' type='const char *' info='the string to format *printf like vararg'/>
+ <arg name='...' type='...' info='remaining arguments to the format'/>
+ </functype>
+ <function name='xmlXIncludeFreeContext' file='xinclude' module='xinclude'>
+ <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Free an XInclude context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='the XInclude context'/>
+ </function>
+ <function name='xmlXIncludeNewContext' file='xinclude' module='xinclude'>
+ <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Creates a new XInclude context</info>
+ <return type='xmlXIncludeCtxtPtr' info='the new set'/>
+ <arg name='doc' type='xmlDocPtr' info='an XML Document'/>
+ </function>
+ <function name='xmlXIncludeProcess' file='xinclude' module='xinclude'>
+ <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Implement the XInclude substitution on the XML document @doc</info>
+ <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
+ <arg name='doc' type='xmlDocPtr' info='an XML document'/>
+ </function>
+ <function name='xmlXIncludeProcessFlags' file='xinclude' module='xinclude'>
+ <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Implement the XInclude substitution on the XML document @doc</info>
+ <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
+ <arg name='doc' type='xmlDocPtr' info='an XML document'/>
+ <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
+ </function>
+ <function name='xmlXIncludeProcessFlagsData' file='xinclude' module='xinclude'>
+ <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Implement the XInclude substitution on the XML document @doc</info>
+ <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
+ <arg name='doc' type='xmlDocPtr' info='an XML document'/>
+ <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
+ <arg name='data' type='void *' info='application data that will be passed to the parser context in the _private field of the parser context(s)'/>
+ </function>
+ <function name='xmlXIncludeProcessNode' file='xinclude' module='xinclude'>
+ <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Implement the XInclude substitution for the given subtree reusing the informations and data coming from the given context.</info>
+ <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
+ <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='an existing XInclude context'/>
+ <arg name='node' type='xmlNodePtr' info='a node in an XML document'/>
+ </function>
+ <function name='xmlXIncludeProcessTree' file='xinclude' module='xinclude'>
+ <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Implement the XInclude substitution for the given subtree</info>
+ <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
+ <arg name='tree' type='xmlNodePtr' info='a node in an XML document'/>
+ </function>
+ <function name='xmlXIncludeProcessTreeFlags' file='xinclude' module='xinclude'>
+ <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Implement the XInclude substitution for the given subtree</info>
+ <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
+ <arg name='tree' type='xmlNodePtr' info='a node in an XML document'/>
+ <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
+ </function>
+ <function name='xmlXIncludeProcessTreeFlagsData' file='xinclude' module='xinclude'>
+ <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Implement the XInclude substitution on the XML node @tree</info>
+ <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
+ <arg name='tree' type='xmlNodePtr' info='an XML node'/>
+ <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
+ <arg name='data' type='void *' info='application data that will be passed to the parser context in the _private field of the parser context(s)'/>
+ </function>
+ <function name='xmlXIncludeSetFlags' file='xinclude' module='xinclude'>
+ <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
+ <info>Set the flags used for further processing of XML resources.</info>
+ <return type='int' info='0 in case of success and -1 in case of error.'/>
+ <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='an XInclude processing context'/>
+ <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
+ </function>
+ <function name='xmlXPathAddValues' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the add operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <functype name='xmlXPathAxisFunc' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>An axis traversal function. To traverse an axis, the engine calls the first time with cur == NULL and repeat until the function returns NULL indicating the end of the axis traversal.</info>
+ <return type='xmlXPathObjectPtr' info='the next node in that axis or NULL if at the end of the axis.'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath interpreter context'/>
+ <arg name='cur' type='xmlXPathObjectPtr' info='the previous node being explored on that axis'/>
+ </functype>
+ <function name='xmlXPathBooleanFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the boolean() XPath function boolean boolean(object) The boolean function converts its argument to a boolean as follows: - a number is true if and only if it is neither positive or negative zero nor NaN - a node-set is true if and only if it is non-empty - a string is true if and only if its length is non-zero</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathCastBooleanToNumber' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a boolean to its number value</info>
+ <return type='double' info='the number value'/>
+ <arg name='val' type='int' info='a boolean'/>
+ </function>
+ <function name='xmlXPathCastBooleanToString' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a boolean to its string value.</info>
+ <return type='xmlChar *' info='a newly allocated string.'/>
+ <arg name='val' type='int' info='a boolean'/>
+ </function>
+ <function name='xmlXPathCastNodeSetToBoolean' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a node-set to its boolean value</info>
+ <return type='int' info='the boolean value'/>
+ <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
+ </function>
+ <function name='xmlXPathCastNodeSetToNumber' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a node-set to its number value</info>
+ <return type='double' info='the number value'/>
+ <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
+ </function>
+ <function name='xmlXPathCastNodeSetToString' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a node-set to its string value.</info>
+ <return type='xmlChar *' info='a newly allocated string.'/>
+ <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
+ </function>
+ <function name='xmlXPathCastNodeToNumber' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a node to its number value</info>
+ <return type='double' info='the number value'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ </function>
+ <function name='xmlXPathCastNodeToString' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a node to its string value.</info>
+ <return type='xmlChar *' info='a newly allocated string.'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ </function>
+ <function name='xmlXPathCastNumberToBoolean' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a number to its boolean value</info>
+ <return type='int' info='the boolean value'/>
+ <arg name='val' type='double' info='a number'/>
+ </function>
+ <function name='xmlXPathCastNumberToString' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a number to its string value.</info>
+ <return type='xmlChar *' info='a newly allocated string.'/>
+ <arg name='val' type='double' info='a number'/>
+ </function>
+ <function name='xmlXPathCastStringToBoolean' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a string to its boolean value</info>
+ <return type='int' info='the boolean value'/>
+ <arg name='val' type='const xmlChar *' info='a string'/>
+ </function>
+ <function name='xmlXPathCastStringToNumber' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts a string to its number value</info>
+ <return type='double' info='the number value'/>
+ <arg name='val' type='const xmlChar *' info='a string'/>
+ </function>
+ <function name='xmlXPathCastToBoolean' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts an XPath object to its boolean value</info>
+ <return type='int' info='the boolean value'/>
+ <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
+ </function>
+ <function name='xmlXPathCastToNumber' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts an XPath object to its number value</info>
+ <return type='double' info='the number value'/>
+ <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
+ </function>
+ <function name='xmlXPathCastToString' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts an existing object to its string() equivalent</info>
+ <return type='xmlChar *' info='the allocated string value of the object, NULL in case of error. It&apos;s up to the caller to free the string memory with xmlFree().'/>
+ <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
+ </function>
+ <function name='xmlXPathCeilingFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the ceiling() XPath function number ceiling(number) The ceiling function returns the smallest (closest to negative infinity) number that is not less than the argument and that is an integer.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathCmpNodes' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Compare two nodes w.r.t document order</info>
+ <return type='int' info='-2 in case of error 1 if first point &lt; second point, 0 if it&apos;s the same node, -1 otherwise'/>
+ <arg name='node1' type='xmlNodePtr' info='the first node'/>
+ <arg name='node2' type='xmlNodePtr' info='the second node'/>
+ </function>
+ <function name='xmlXPathCompareValues' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the compare operation on XPath objects: @arg1 &lt; @arg2 (1, 1, ... @arg1 &lt;= @arg2 (1, 0, ... @arg1 &gt; @arg2 (0, 1, ... @arg1 &gt;= @arg2 (0, 0, ... When neither object to be compared is a node-set and the operator is &lt;=, &lt;, &gt;=, &gt;, then the objects are compared by converted both objects to numbers and comparing the numbers according to IEEE 754. The &lt; comparison will be true if and only if the first number is less than the second number. The &lt;= comparison will be true if and only if the first number is less than or equal to the second number. The &gt; comparison will be true if and only if the first number is greater than the second number. The &gt;= comparison will be true if and only if the first number is greater than or equal to the second number.</info>
+ <return type='int' info='1 if the comparison succeeded, 0 if it failed'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='inf' type='int' info='less than (1) or greater than (0)'/>
+ <arg name='strict' type='int' info='is the comparison strict'/>
+ </function>
+ <function name='xmlXPathCompile' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Compile an XPath expression</info>
+ <return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
+ <arg name='str' type='const xmlChar *' info='the XPath expression'/>
+ </function>
+ <function name='xmlXPathCompiledEval' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Evaluate the Precompiled XPath expression in the given context.</info>
+ <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
+ <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
+ <arg name='ctx' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <function name='xmlXPathCompiledEvalToBoolean' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Applies the XPath boolean() function on the result of the given compiled expression.</info>
+ <return type='int' info='1 if the expression evaluated to true, 0 if to false and -1 in API and internal errors.'/>
+ <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <function name='xmlXPathConcatFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the concat() XPath function string concat(string, string, string*) The concat function returns the concatenation of its arguments.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathContainsFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the contains() XPath function boolean contains(string, string) The contains function returns true if the first argument string contains the second argument string, and otherwise returns false.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathContextSetCache' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Creates/frees an object cache on the XPath context. If activates XPath objects (xmlXPathObject) will be cached internally to be reused. @options: 0: This will set the XPath object caching: @value: This will set the maximum number of XPath objects to be cached per slot There are 5 slots for: node-set, string, number, boolean, and misc objects. Use &lt;0 for the default number (100). Other values for @options have currently no effect.</info>
+ <return type='int' info='0 if the setting succeeded, and -1 on API or internal errors.'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='active' type='int' info='enables/disables (creates/frees) the cache'/>
+ <arg name='value' type='int' info='a value with semantics dependent on @options'/>
+ <arg name='options' type='int' info='options (currently only the value 0 is used)'/>
+ </function>
+ <function name='xmlXPathConvertBoolean' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts an existing object to its boolean() equivalent</info>
+ <return type='xmlXPathObjectPtr' info='the new object, the old one is freed (or the operation is done directly on @val)'/>
+ <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
+ </function>
+ <functype name='xmlXPathConvertFunc' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>A conversion function is associated to a type and used to cast the new type to primitive values.</info>
+ <return type='int' info='-1 in case of error, 0 otherwise'/>
+ <arg name='obj' type='xmlXPathObjectPtr' info='an XPath object'/>
+ <arg name='type' type='int' info='the number of the target type'/>
+ </functype>
+ <function name='xmlXPathConvertNumber' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts an existing object to its number() equivalent</info>
+ <return type='xmlXPathObjectPtr' info='the new object, the old one is freed (or the operation is done directly on @val)'/>
+ <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
+ </function>
+ <function name='xmlXPathConvertString' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Converts an existing object to its string() equivalent</info>
+ <return type='xmlXPathObjectPtr' info='the new object, the old one is freed (or the operation is done directly on @val)'/>
+ <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
+ </function>
+ <function name='xmlXPathCountFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the count() XPath function number count(node-set)</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathCtxtCompile' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Compile an XPath expression</info>
+ <return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='an XPath context'/>
+ <arg name='str' type='const xmlChar *' info='the XPath expression'/>
+ </function>
+ <function name='xmlXPathDebugDumpCompExpr' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dumps the tree of the compiled XPath expression.</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * for the output'/>
+ <arg name='comp' type='xmlXPathCompExprPtr' info='the precompiled XPath expression'/>
+ <arg name='depth' type='int' info='the indentation level.'/>
+ </function>
+ <function name='xmlXPathDebugDumpObject' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_DEBUG_ENABLED)</cond>
+ <info>Dump the content of the object for debugging purposes</info>
+ <return type='void'/>
+ <arg name='output' type='FILE *' info='the FILE * to dump the output'/>
+ <arg name='cur' type='xmlXPathObjectPtr' info='the object to inspect'/>
+ <arg name='depth' type='int' info='indentation level'/>
+ </function>
+ <function name='xmlXPathDifference' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets difference() function: node-set set:difference (node-set, node-set)</info>
+ <return type='xmlNodeSetPtr' info='the difference between the two node sets, or nodes1 if nodes2 is empty'/>
+ <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
+ <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
+ </function>
+ <function name='xmlXPathDistinct' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets distinct() function: node-set set:distinct (node-set) @nodes is sorted by document order, then #exslSetsDistinctSorted is called with the sorted node-set</info>
+ <return type='xmlNodeSetPtr' info='a subset of the nodes contained in @nodes, or @nodes if it is empty'/>
+ <arg name='nodes' type='xmlNodeSetPtr' info='a node-set'/>
+ </function>
+ <function name='xmlXPathDistinctSorted' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets distinct() function: node-set set:distinct (node-set)</info>
+ <return type='xmlNodeSetPtr' info='a subset of the nodes contained in @nodes, or @nodes if it is empty'/>
+ <arg name='nodes' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
+ </function>
+ <function name='xmlXPathDivValues' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the div operation on XPath objects @arg1 / @arg2: The numeric operators convert their operands to numbers as if by calling the number function.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathEqualValues' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the equal operation on XPath objects content: @arg1 == @arg2</info>
+ <return type='int' info='0 or 1 depending on the results of the test.'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathErr' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Handle an XPath error</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='a XPath parser context'/>
+ <arg name='error' type='int' info='the error code'/>
+ </function>
+ <function name='xmlXPathEval' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Evaluate the XPath Location Path in the given context.</info>
+ <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
+ <arg name='str' type='const xmlChar *' info='the XPath expression'/>
+ <arg name='ctx' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <function name='xmlXPathEvalExpr' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Parse and evaluate an XPath expression in the given context, then push the result on the context stack</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathEvalExpression' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Alias for xmlXPathEval().</info>
+ <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
+ <arg name='str' type='const xmlChar *' info='the XPath expression'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <functype name='xmlXPathEvalFunc' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>An XPath evaluation function, the parameters are on the XPath context stack.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments passed to the function'/>
+ </functype>
+ <function name='xmlXPathEvalPredicate' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Evaluate a predicate result for the current node. A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the position of the context node in the context node list (as returned by the position function) and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function.</info>
+ <return type='int' info='1 if predicate is true, 0 otherwise'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='res' type='xmlXPathObjectPtr' info='the Predicate Expression evaluation result'/>
+ </function>
+ <function name='xmlXPathEvaluatePredicateResult' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Evaluate a predicate result for the current node. A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the position of the context node in the context node list (as returned by the position function) and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function.</info>
+ <return type='int' info='1 if predicate is true, 0 otherwise'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='res' type='xmlXPathObjectPtr' info='the Predicate Expression evaluation result'/>
+ </function>
+ <function name='xmlXPathFalseFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the false() XPath function boolean false()</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathFloorFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the floor() XPath function number floor(number) The floor function returns the largest (closest to positive infinity) number that is not greater than the argument and that is an integer.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathFreeCompExpr' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Free up the memory allocated by @comp</info>
+ <return type='void'/>
+ <arg name='comp' type='xmlXPathCompExprPtr' info='an XPATH comp'/>
+ </function>
+ <function name='xmlXPathFreeContext' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Free up an xmlXPathContext</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the context to free'/>
+ </function>
+ <function name='xmlXPathFreeNodeSet' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Free the NodeSet compound (not the actual nodes !).</info>
+ <return type='void'/>
+ <arg name='obj' type='xmlNodeSetPtr' info='the xmlNodeSetPtr to free'/>
+ </function>
+ <function name='xmlXPathFreeNodeSetList' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Free up the xmlXPathObjectPtr @obj but don&apos;t deallocate the objects in the list contrary to xmlXPathFreeObject().</info>
+ <return type='void'/>
+ <arg name='obj' type='xmlXPathObjectPtr' info='an existing NodeSetList object'/>
+ </function>
+ <function name='xmlXPathFreeObject' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Free up an xmlXPathObjectPtr object.</info>
+ <return type='void'/>
+ <arg name='obj' type='xmlXPathObjectPtr' info='the object to free'/>
+ </function>
+ <function name='xmlXPathFreeParserContext' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Free up an xmlXPathParserContext</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the context to free'/>
+ </function>
+ <functype name='xmlXPathFuncLookupFunc' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Prototype for callbacks used to plug function lookup in the XPath engine.</info>
+ <return type='xmlXPathFunction' info='the XPath function or NULL if not found.'/>
+ <arg name='ctxt' type='void *' info='an XPath context'/>
+ <arg name='name' type='const xmlChar *' info='name of the function'/>
+ <arg name='ns_uri' type='const xmlChar *' info='the namespace name hosting this function'/>
+ </functype>
+ <functype name='xmlXPathFunction' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>An XPath function. The arguments (if any) are popped out from the context stack and the result is pushed on the stack.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath interprestation context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </functype>
+ <function name='xmlXPathFunctionLookup' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Search in the Function array of the context for the given function.</info>
+ <return type='xmlXPathFunction' info='the xmlXPathFunction or NULL if not found'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='name' type='const xmlChar *' info='the function name'/>
+ </function>
+ <function name='xmlXPathFunctionLookupNS' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Search in the Function array of the context for the given function.</info>
+ <return type='xmlXPathFunction' info='the xmlXPathFunction or NULL if not found'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='name' type='const xmlChar *' info='the function name'/>
+ <arg name='ns_uri' type='const xmlChar *' info='the function namespace URI'/>
+ </function>
+ <function name='xmlXPathHasSameNodes' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets has-same-nodes function: boolean set:has-same-node(node-set, node-set)</info>
+ <return type='int' info='true (1) if @nodes1 shares any node with @nodes2, false (0) otherwise'/>
+ <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
+ <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
+ </function>
+ <function name='xmlXPathIdFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the id() XPath function node-set id(object) The id function selects elements by their unique ID (see [5.2.1 Unique IDs]). When the argument to id is of type node-set, then the result is the union of the result of applying id to the string value of each of the nodes in the argument node-set. When the argument to id is of any other type, the argument is converted to a string as if by a call to the string function; the string is split into a whitespace-separated list of tokens (whitespace is any sequence of characters matching the production S); the result is a node-set containing the elements in the same document as the context node that have a unique ID equal to any of the tokens in the list.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathInit' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Initialize the XPath environment</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlXPathIntersection' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets intersection() function: node-set set:intersection (node-set, node-set)</info>
+ <return type='xmlNodeSetPtr' info='a node set comprising the nodes that are within both the node sets passed as arguments'/>
+ <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
+ <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
+ </function>
+ <function name='xmlXPathIsInf' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info></info>
+ <return type='int' info='1 if the value is +Infinite, -1 if -Infinite, 0 otherwise'/>
+ <arg name='val' type='double' info='a double value'/>
+ </function>
+ <function name='xmlXPathIsNaN' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info></info>
+ <return type='int' info='1 if the value is a NaN, 0 otherwise'/>
+ <arg name='val' type='double' info='a double value'/>
+ </function>
+ <function name='xmlXPathIsNodeType' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Is the name given a NodeType one. [38] NodeType ::= &apos;comment&apos; | &apos;text&apos; | &apos;processing-instruction&apos; | &apos;node&apos;</info>
+ <return type='int' info='1 if true 0 otherwise'/>
+ <arg name='name' type='const xmlChar *' info='a name string'/>
+ </function>
+ <function name='xmlXPathLangFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the lang() XPath function boolean lang(string) The lang function returns true or false depending on whether the language of the context node as specified by xml:lang attributes is the same as or is a sublanguage of the language specified by the argument string. The language of the context node is determined by the value of the xml:lang attribute on the context node, or, if the context node has no xml:lang attribute, by the value of the xml:lang attribute on the nearest ancestor of the context node that has an xml:lang attribute. If there is no such attribute, then lang</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathLastFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the last() XPath function number last() The last function returns the number of nodes in the context node list.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathLeading' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #exslSetsLeadingSorted is called.</info>
+ <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that precede the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
+ <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
+ <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
+ </function>
+ <function name='xmlXPathLeadingSorted' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)</info>
+ <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that precede the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
+ <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
+ <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
+ </function>
+ <function name='xmlXPathLocalNameFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the local-name() XPath function string local-name(node-set?) The local-name function returns a string containing the local part of the name of the node in the argument node-set that is first in document order. If the node-set is empty or the first node has no name, an empty string is returned. If the argument is omitted it defaults to the context node.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathModValues' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the mod operation on XPath objects: @arg1 / @arg2 The numeric operators convert their operands to numbers as if by calling the number function.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathMultValues' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the multiply operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathNamespaceURIFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the namespace-uri() XPath function string namespace-uri(node-set?) The namespace-uri function returns a string containing the namespace URI of the expanded name of the node in the argument node-set that is first in document order. If the node-set is empty, the first node has no name, or the expanded name has no namespace URI, an empty string is returned. If the argument is omitted it defaults to the context node.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathNewBoolean' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type boolean and of value @val</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='int' info='the boolean value'/>
+ </function>
+ <function name='xmlXPathNewCString' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type string and of value @val</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='const char *' info='the char * value'/>
+ </function>
+ <function name='xmlXPathNewContext' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Create a new xmlXPathContext</info>
+ <return type='xmlXPathContextPtr' info='the xmlXPathContext just allocated. The caller will need to free it.'/>
+ <arg name='doc' type='xmlDocPtr' info='the XML document'/>
+ </function>
+ <function name='xmlXPathNewFloat' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type double and of value @val</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='double' info='the double value'/>
+ </function>
+ <function name='xmlXPathNewNodeSet' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type NodeSet and initialize it with the single Node @val</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='xmlNodePtr' info='the NodePtr value'/>
+ </function>
+ <function name='xmlXPathNewNodeSetList' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type NodeSet and initialize it with the Nodeset @val</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='xmlNodeSetPtr' info='an existing NodeSet'/>
+ </function>
+ <function name='xmlXPathNewParserContext' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Create a new xmlXPathParserContext</info>
+ <return type='xmlXPathParserContextPtr' info='the xmlXPathParserContext just allocated.'/>
+ <arg name='str' type='const xmlChar *' info='the XPath expression'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <function name='xmlXPathNewString' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type string and of value @val</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='const xmlChar *' info='the xmlChar * value'/>
+ </function>
+ <function name='xmlXPathNewValueTree' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type Value Tree (XSLT) and initialize it with the tree root @val</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='xmlNodePtr' info='the NodePtr value'/>
+ </function>
+ <function name='xmlXPathNextAncestor' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;ancestor&quot; direction the ancestor axis contains the ancestors of the context node; the ancestors of the context node consist of the parent of context node and the parent&apos;s parent and so on; the nodes are ordered in reverse document order; thus the parent is the first node on the axis, and the parent&apos;s parent is the second node on the axis</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNextAncestorOrSelf' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;ancestor-or-self&quot; direction he ancestor-or-self axis contains the context node and ancestors of the context node in reverse document order; thus the context node is the first node on the axis, and the context node&apos;s parent the second; parent here is defined the same as with the parent axis.</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNextAttribute' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;attribute&quot; direction TODO: support DTD inherited default attributes</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current attribute in the traversal'/>
+ </function>
+ <function name='xmlXPathNextChild' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;child&quot; direction The child axis contains the children of the context node in document order.</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNextDescendant' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;descendant&quot; direction the descendant axis contains the descendants of the context node in document order; a descendant is a child or a child of a child and so on.</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNextDescendantOrSelf' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;descendant-or-self&quot; direction the descendant-or-self axis contains the context node and the descendants of the context node in document order; thus the context node is the first node on the axis, and the first child of the context node is the second node on the axis</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNextFollowing' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;following&quot; direction The following axis contains all nodes in the same document as the context node that are after the context node in document order, excluding any descendants and excluding attribute nodes and namespace nodes; the nodes are ordered in document order</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNextFollowingSibling' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;following-sibling&quot; direction The following-sibling axis contains the following siblings of the context node in document order.</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNextNamespace' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;namespace&quot; direction the namespace axis contains the namespace nodes of the context node; the order of nodes on this axis is implementation-defined; the axis will be empty unless the context node is an element We keep the XML namespace node at the end of the list.</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current attribute in the traversal'/>
+ </function>
+ <function name='xmlXPathNextParent' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;parent&quot; direction The parent axis contains the parent of the context node, if there is one.</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNextPreceding' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;preceding&quot; direction the preceding axis contains all nodes in the same document as the context node that are before the context node in document order, excluding any ancestors and excluding attribute nodes and namespace nodes; the nodes are ordered in reverse document order</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNextPrecedingSibling' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;preceding-sibling&quot; direction The preceding-sibling axis contains the preceding siblings of the context node in reverse document order; the first preceding sibling is first on the axis; the sibling preceding that node is the second on the axis and so on.</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNextSelf' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Traversal function for the &quot;self&quot; direction The self axis contains just the context node itself</info>
+ <return type='xmlNodePtr' info='the next element following that axis'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
+ </function>
+ <function name='xmlXPathNodeEval' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Evaluate the XPath Location Path in the given context. The node &apos;node&apos; is set as the context node. The context node is not restored.</info>
+ <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
+ <arg name='node' type='xmlNodePtr' info='the node to to use as the context node'/>
+ <arg name='str' type='const xmlChar *' info='the XPath expression'/>
+ <arg name='ctx' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <function name='xmlXPathNodeLeading' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes is sorted by document order, then #exslSetsNodeLeadingSorted is called.</info>
+ <return type='xmlNodeSetPtr' info='the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
+ <arg name='nodes' type='xmlNodeSetPtr' info='a node-set'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ </function>
+ <function name='xmlXPathNodeLeadingSorted' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)</info>
+ <return type='xmlNodeSetPtr' info='the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
+ <arg name='nodes' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ </function>
+ <function name='xmlXPathNodeSetAdd' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>add a new xmlNodePtr to an existing NodeSet</info>
+ <return type='int' info='0 in case of success, and -1 in case of error'/>
+ <arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
+ <arg name='val' type='xmlNodePtr' info='a new xmlNodePtr'/>
+ </function>
+ <function name='xmlXPathNodeSetAddNs' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>add a new namespace node to an existing NodeSet</info>
+ <return type='int' info='0 in case of success and -1 in case of error'/>
+ <arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
+ <arg name='node' type='xmlNodePtr' info='the hosting node'/>
+ <arg name='ns' type='xmlNsPtr' info='a the namespace node'/>
+ </function>
+ <function name='xmlXPathNodeSetAddUnique' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>add a new xmlNodePtr to an existing NodeSet, optimized version when we are sure the node is not already in the set.</info>
+ <return type='int' info='0 in case of success and -1 in case of failure'/>
+ <arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
+ <arg name='val' type='xmlNodePtr' info='a new xmlNodePtr'/>
+ </function>
+ <function name='xmlXPathNodeSetContains' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>checks whether @cur contains @val</info>
+ <return type='int' info='true (1) if @cur contains @val, false (0) otherwise'/>
+ <arg name='cur' type='xmlNodeSetPtr' info='the node-set'/>
+ <arg name='val' type='xmlNodePtr' info='the node'/>
+ </function>
+ <function name='xmlXPathNodeSetCreate' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Create a new xmlNodeSetPtr of type double and of value @val</info>
+ <return type='xmlNodeSetPtr' info='the newly created object.'/>
+ <arg name='val' type='xmlNodePtr' info='an initial xmlNodePtr, or NULL'/>
+ </function>
+ <function name='xmlXPathNodeSetDel' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Removes an xmlNodePtr from an existing NodeSet</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
+ <arg name='val' type='xmlNodePtr' info='an xmlNodePtr'/>
+ </function>
+ <function name='xmlXPathNodeSetFreeNs' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Namespace nodes in libxml don&apos;t match the XPath semantic. In a node set the namespace nodes are duplicated and the next pointer is set to the parent node in the XPath semantic. Check if such a node needs to be freed</info>
+ <return type='void'/>
+ <arg name='ns' type='xmlNsPtr' info='the XPath namespace node found in a nodeset.'/>
+ </function>
+ <function name='xmlXPathNodeSetMerge' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Merges two nodesets, all nodes from @val2 are added to @val1 if @val1 is NULL, a new set is created and copied from @val2</info>
+ <return type='xmlNodeSetPtr' info='@val1 once extended or NULL in case of error.'/>
+ <arg name='val1' type='xmlNodeSetPtr' info='the first NodeSet or NULL'/>
+ <arg name='val2' type='xmlNodeSetPtr' info='the second NodeSet'/>
+ </function>
+ <function name='xmlXPathNodeSetRemove' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Removes an entry from an existing NodeSet list.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
+ <arg name='val' type='int' info='the index to remove'/>
+ </function>
+ <function name='xmlXPathNodeSetSort' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Sort the node set in document order</info>
+ <return type='void'/>
+ <arg name='set' type='xmlNodeSetPtr' info='the node set'/>
+ </function>
+ <function name='xmlXPathNodeTrailing' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes is sorted by document order, then #xmlXPathNodeTrailingSorted is called.</info>
+ <return type='xmlNodeSetPtr' info='the nodes in @nodes that follow @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
+ <arg name='nodes' type='xmlNodeSetPtr' info='a node-set'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ </function>
+ <function name='xmlXPathNodeTrailingSorted' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</info>
+ <return type='xmlNodeSetPtr' info='the nodes in @nodes that follow @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
+ <arg name='nodes' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
+ <arg name='node' type='xmlNodePtr' info='a node'/>
+ </function>
+ <function name='xmlXPathNormalizeFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the normalize-space() XPath function string normalize-space(string?) The normalize-space function returns the argument string with white space normalized by stripping leading and trailing whitespace and replacing sequences of whitespace characters by a single space. Whitespace characters are the same allowed by the S production in XML. If the argument is omitted, it defaults to the context node converted to a string, in other words the value of the context node.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathNotEqualValues' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the equal operation on XPath objects content: @arg1 == @arg2</info>
+ <return type='int' info='0 or 1 depending on the results of the test.'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathNotFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the not() XPath function boolean not(boolean) The not function returns true if its argument is false, and false otherwise.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathNsLookup' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Search in the namespace declaration array of the context for the given namespace name associated to the given prefix</info>
+ <return type='const xmlChar *' info='the value or NULL if not found'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='prefix' type='const xmlChar *' info='the namespace prefix value'/>
+ </function>
+ <function name='xmlXPathNumberFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the number() XPath function number number(object?)</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathObjectCopy' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>allocate a new copy of a given object</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='xmlXPathObjectPtr' info='the original object'/>
+ </function>
+ <function name='xmlXPathOrderDocElems' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Call this routine to speed up XPath computation on static documents. This stamps all the element nodes with the document order Like for line information, the order is kept in the element-&gt;content field, the value stored is actually - the node number (starting at -1) to be able to differentiate from line numbers.</info>
+ <return type='long' info='the number of elements found in the document or -1 in case of error.'/>
+ <arg name='doc' type='xmlDocPtr' info='an input document'/>
+ </function>
+ <function name='xmlXPathParseNCName' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>parse an XML namespace non qualified name. [NS 3] NCName ::= (Letter | &apos;_&apos;) (NCNameChar)* [NS 4] NCNameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | CombiningChar | Extender</info>
+ <return type='xmlChar *' info='the namespace name or NULL'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathParseName' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>parse an XML name [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)*</info>
+ <return type='xmlChar *' info='the namespace name or NULL'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathPopBoolean' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Pops a boolean from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
+ <return type='int' info='the boolean'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
+ </function>
+ <function name='xmlXPathPopExternal' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Pops an external object from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
+ <return type='void *' info='the object'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
+ </function>
+ <function name='xmlXPathPopNodeSet' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Pops a node-set from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
+ <return type='xmlNodeSetPtr' info='the node-set'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
+ </function>
+ <function name='xmlXPathPopNumber' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Pops a number from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
+ <return type='double' info='the number'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
+ </function>
+ <function name='xmlXPathPopString' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Pops a string from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
+ <return type='xmlChar *' info='the string'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
+ </function>
+ <function name='xmlXPathPositionFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the position() XPath function number position() The position function returns the position of the context node in the context node list. The first position is 1, and so the last position will be equal to last().</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathRegisterAllFunctions' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Registers all default XPath functions in this context</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <function name='xmlXPathRegisterFunc' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Register a new function. If @f is NULL it unregisters the function</info>
+ <return type='int' info='0 in case of success, -1 in case of error'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='name' type='const xmlChar *' info='the function name'/>
+ <arg name='f' type='xmlXPathFunction' info='the function implementation or NULL'/>
+ </function>
+ <function name='xmlXPathRegisterFuncLookup' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Registers an external mechanism to do function lookup.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='f' type='xmlXPathFuncLookupFunc' info='the lookup function'/>
+ <arg name='funcCtxt' type='void *' info='the lookup data'/>
+ </function>
+ <function name='xmlXPathRegisterFuncNS' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Register a new function. If @f is NULL it unregisters the function</info>
+ <return type='int' info='0 in case of success, -1 in case of error'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='name' type='const xmlChar *' info='the function name'/>
+ <arg name='ns_uri' type='const xmlChar *' info='the function namespace URI'/>
+ <arg name='f' type='xmlXPathFunction' info='the function implementation or NULL'/>
+ </function>
+ <function name='xmlXPathRegisterNs' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Register a new namespace. If @ns_uri is NULL it unregisters the namespace</info>
+ <return type='int' info='0 in case of success, -1 in case of error'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='prefix' type='const xmlChar *' info='the namespace prefix cannot be NULL or empty string'/>
+ <arg name='ns_uri' type='const xmlChar *' info='the namespace name'/>
+ </function>
+ <function name='xmlXPathRegisterVariable' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Register a new variable value. If @value is NULL it unregisters the variable</info>
+ <return type='int' info='0 in case of success, -1 in case of error'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='name' type='const xmlChar *' info='the variable name'/>
+ <arg name='value' type='xmlXPathObjectPtr' info='the variable value or NULL'/>
+ </function>
+ <function name='xmlXPathRegisterVariableLookup' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>register an external mechanism to do variable lookup</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='f' type='xmlXPathVariableLookupFunc' info='the lookup function'/>
+ <arg name='data' type='void *' info='the lookup data'/>
+ </function>
+ <function name='xmlXPathRegisterVariableNS' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Register a new variable value. If @value is NULL it unregisters the variable</info>
+ <return type='int' info='0 in case of success, -1 in case of error'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='name' type='const xmlChar *' info='the variable name'/>
+ <arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
+ <arg name='value' type='xmlXPathObjectPtr' info='the variable value or NULL'/>
+ </function>
+ <function name='xmlXPathRegisteredFuncsCleanup' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Cleanup the XPath context data associated to registered functions</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <function name='xmlXPathRegisteredNsCleanup' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Cleanup the XPath context data associated to registered variables</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <function name='xmlXPathRegisteredVariablesCleanup' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Cleanup the XPath context data associated to registered variables</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <function name='xmlXPathRoot' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Initialize the context to the root of the document</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathRoundFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is closest to positive infinity is returned.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathSetContextNode' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Sets &apos;node&apos; as the context node. The node must be in the same document as that associated with the context.</info>
+ <return type='int' info='-1 in case of error or 0 if successful'/>
+ <arg name='node' type='xmlNodePtr' info='the node to to use as the context node'/>
+ <arg name='ctx' type='xmlXPathContextPtr' info='the XPath context'/>
+ </function>
+ <function name='xmlXPathStartsWithFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the starts-with() XPath function boolean starts-with(string, string) The starts-with function returns true if the first argument string starts with the second argument string, and otherwise returns false.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathStringEvalNumber' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>[30a] Float ::= Number (&apos;e&apos; Digits?)? [30] Number ::= Digits (&apos;.&apos; Digits?)? | &apos;.&apos; Digits [31] Digits ::= [0-9]+ Compile a Number in the string In complement of the Number expression, this function also handles negative values : &apos;-&apos; Number.</info>
+ <return type='double' info='the double value.'/>
+ <arg name='str' type='const xmlChar *' info='A string to scan'/>
+ </function>
+ <function name='xmlXPathStringFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the string() XPath function string string(object?) The string function converts an object to a string as follows: - A node-set is converted to a string by returning the value of the node in the node-set that is first in document order. If the node-set is empty, an empty string is returned. - A number is converted to a string as follows + NaN is converted to the string NaN + positive zero is converted to the string 0 + negative zero is converted to the string 0 + positive infinity is converted to the string Infinity + negative infinity is converted to the string -Infinity + if the number is an integer, the number is represented in decimal form as a Number with no decimal point and no leading zeros, preceded by a minus sign (-) if the number is negative + otherwise, the number is represented in decimal form as a Number including a decimal point with at least one digit before the decimal point and at least one digit after the decimal point, preceded by a minus sign (-) if the number is negative; there must be no leading zeros before the decimal point apart possibly from the one required digit immediately before the decimal point; beyond the one required digit after the decimal point there must be as many, but only as many, more digits as are needed to uniquely distinguish the number from all other IEEE 754 numeric values. - The boolean false value is converted to the string false. The boolean true value is converted to the string true. If the argument is omitted, it defaults to a node-set with the context node as its only member.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathStringLengthFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the string-length() XPath function number string-length(string?) The string-length returns the number of characters in the string (see [3.6 Strings]). If the argument is omitted, it defaults to the context node converted to a string, in other words the value of the context node.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathSubValues' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the subtraction operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathSubstringAfterFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the substring-after() XPath function string substring-after(string, string) The substring-after function returns the substring of the first argument string that follows the first occurrence of the second argument string in the first argument string, or the empty stringi if the first argument string does not contain the second argument string. For example, substring-after(&quot;1999/04/01&quot;,&quot;/&quot;) returns 04/01, and substring-after(&quot;1999/04/01&quot;,&quot;19&quot;) returns 99/04/01.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathSubstringBeforeFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the substring-before() XPath function string substring-before(string, string) The substring-before function returns the substring of the first argument string that precedes the first occurrence of the second argument string in the first argument string, or the empty string if the first argument string does not contain the second argument string. For example, substring-before(&quot;1999/04/01&quot;,&quot;/&quot;) returns 1999.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathSubstringFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the substring() XPath function string substring(string, number, number?) The substring function returns the substring of the first argument starting at the position specified in the second argument with length specified in the third argument. For example, substring(&quot;12345&quot;,2,3) returns &quot;234&quot;. If the third argument is not specified, it returns the substring starting at the position specified in the second argument and continuing to the end of the string. For example, substring(&quot;12345&quot;,2) returns &quot;2345&quot;. More precisely, each character in the string (see [3.6 Strings]) is considered to have a numeric position: the position of the first character is 1, the position of the second character is 2 and so on. The returned substring contains those characters for which the position of the character is greater than or equal to the second argument and, if the third argument is specified, less than the sum of the second and third arguments; the comparisons and addition used for the above follow the standard IEEE 754 rules. Thus: - substring(&quot;12345&quot;, 1.5, 2.6) returns &quot;234&quot; - substring(&quot;12345&quot;, 0, 3) returns &quot;12&quot; - substring(&quot;12345&quot;, 0 div 0, 3) returns &quot;&quot; - substring(&quot;12345&quot;, 1, 0 div 0) returns &quot;&quot; - substring(&quot;12345&quot;, -42, 1 div 0) returns &quot;12345&quot; - substring(&quot;12345&quot;, -1 div 0, 1 div 0) returns &quot;&quot;</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathSumFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the sum() XPath function number sum(node-set) The sum function returns the sum of the values of the nodes in the argument node-set.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathTrailing' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #xmlXPathTrailingSorted is called.</info>
+ <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
+ <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
+ <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
+ </function>
+ <function name='xmlXPathTrailingSorted' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</info>
+ <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
+ <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
+ <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
+ </function>
+ <function name='xmlXPathTranslateFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the translate() XPath function string translate(string, string, string) The translate function returns the first argument string with occurrences of characters in the second argument string replaced by the character at the corresponding position in the third argument string. For example, translate(&quot;bar&quot;,&quot;abc&quot;,&quot;ABC&quot;) returns the string BAr. If there is a character in the second argument string with no character at a corresponding position in the third argument string (because the second argument string is longer than the third argument string), then occurrences of that character in the first argument string are removed. For example, translate(&quot;--aaa--&quot;,&quot;abc-&quot;,&quot;ABC&quot;)</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathTrueFunction' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the true() XPath function boolean true()</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='nargs' type='int' info='the number of arguments'/>
+ </function>
+ <function name='xmlXPathValueFlipSign' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Implement the unary - operation on an XPath object The numeric operators convert their operands to numbers as if by calling the number function.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ </function>
+ <function name='xmlXPathVariableLookup' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Search in the Variable array of the context for the given variable value.</info>
+ <return type='xmlXPathObjectPtr' info='a copy of the value or NULL if not found'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='name' type='const xmlChar *' info='the variable name'/>
+ </function>
+ <functype name='xmlXPathVariableLookupFunc' file='xpath' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Prototype for callbacks used to plug variable lookup in the XPath engine.</info>
+ <return type='xmlXPathObjectPtr' info='the XPath object value or NULL if not found.'/>
+ <arg name='ctxt' type='void *' info='an XPath context'/>
+ <arg name='name' type='const xmlChar *' info='name of the variable'/>
+ <arg name='ns_uri' type='const xmlChar *' info='the namespace name hosting this variable'/>
+ </functype>
+ <function name='xmlXPathVariableLookupNS' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Search in the Variable array of the context for the given variable value.</info>
+ <return type='xmlXPathObjectPtr' info='the a copy of the value or NULL if not found'/>
+ <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+ <arg name='name' type='const xmlChar *' info='the variable name'/>
+ <arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
+ </function>
+ <function name='xmlXPathWrapCString' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Wraps a string into an XPath object.</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='char *' info='the char * value'/>
+ </function>
+ <function name='xmlXPathWrapExternal' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Wraps the @val data into an XPath object.</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='void *' info='the user data'/>
+ </function>
+ <function name='xmlXPathWrapNodeSet' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Wrap the Nodeset @val in a new xmlXPathObjectPtr</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='xmlNodeSetPtr' info='the NodePtr value'/>
+ </function>
+ <function name='xmlXPathWrapString' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Wraps the @val string into an XPath object.</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='xmlChar *' info='the xmlChar * value'/>
+ </function>
+ <function name='xmlXPatherror' file='xpathInternals' module='xpath'>
+ <cond>defined(LIBXML_XPATH_ENABLED)</cond>
+ <info>Formats an error message.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+ <arg name='file' type='const char *' info='the file name'/>
+ <arg name='line' type='int' info='the line number'/>
+ <arg name='no' type='int' info='the error number'/>
+ </function>
+ <function name='xmlXPtrBuildNodeList' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Build a node list tree copy of the XPointer result. This will drop Attributes and Namespace declarations.</info>
+ <return type='xmlNodePtr' info='an xmlNodePtr list or NULL. the caller has to free the node tree.'/>
+ <arg name='obj' type='xmlXPathObjectPtr' info='the XPointer result from the evaluation.'/>
+ </function>
+ <function name='xmlXPtrEval' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Evaluate the XPath Location Path in the given context.</info>
+ <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
+ <arg name='str' type='const xmlChar *' info='the XPointer expression'/>
+ <arg name='ctx' type='xmlXPathContextPtr' info='the XPointer context'/>
+ </function>
+ <function name='xmlXPtrEvalRangePredicate' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>[8] Predicate ::= &apos;[&apos; PredicateExpr &apos;]&apos; [9] PredicateExpr ::= Expr Evaluate a predicate as in xmlXPathEvalPredicate() but for a Location Set instead of a node set</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
+ </function>
+ <function name='xmlXPtrFreeLocationSet' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Free the LocationSet compound (not the actual ranges !).</info>
+ <return type='void'/>
+ <arg name='obj' type='xmlLocationSetPtr' info='the xmlLocationSetPtr to free'/>
+ </function>
+ <function name='xmlXPtrLocationSetAdd' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>add a new xmlXPathObjectPtr to an existing LocationSet If the location already exist in the set @val is freed.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
+ <arg name='val' type='xmlXPathObjectPtr' info='a new xmlXPathObjectPtr'/>
+ </function>
+ <function name='xmlXPtrLocationSetCreate' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new xmlLocationSetPtr of type double and of value @val</info>
+ <return type='xmlLocationSetPtr' info='the newly created object.'/>
+ <arg name='val' type='xmlXPathObjectPtr' info='an initial xmlXPathObjectPtr, or NULL'/>
+ </function>
+ <function name='xmlXPtrLocationSetDel' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Removes an xmlXPathObjectPtr from an existing LocationSet</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
+ <arg name='val' type='xmlXPathObjectPtr' info='an xmlXPathObjectPtr'/>
+ </function>
+ <function name='xmlXPtrLocationSetMerge' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Merges two rangesets, all ranges from @val2 are added to @val1</info>
+ <return type='xmlLocationSetPtr' info='val1 once extended or NULL in case of error.'/>
+ <arg name='val1' type='xmlLocationSetPtr' info='the first LocationSet'/>
+ <arg name='val2' type='xmlLocationSetPtr' info='the second LocationSet'/>
+ </function>
+ <function name='xmlXPtrLocationSetRemove' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Removes an entry from an existing LocationSet list.</info>
+ <return type='void'/>
+ <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
+ <arg name='val' type='int' info='the index to remove'/>
+ </function>
+ <function name='xmlXPtrNewCollapsedRange' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type range using a single nodes</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='start' type='xmlNodePtr' info='the starting and ending node'/>
+ </function>
+ <function name='xmlXPtrNewContext' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new XPointer context</info>
+ <return type='xmlXPathContextPtr' info='the xmlXPathContext just allocated.'/>
+ <arg name='doc' type='xmlDocPtr' info='the XML document'/>
+ <arg name='here' type='xmlNodePtr' info='the node that directly contains the XPointer being evaluated or NULL'/>
+ <arg name='origin' type='xmlNodePtr' info='the element from which a user or program initiated traversal of the link, or NULL.'/>
+ </function>
+ <function name='xmlXPtrNewLocationSetNodeSet' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type LocationSet and initialize it with all the nodes from @set</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='set' type='xmlNodeSetPtr' info='a node set'/>
+ </function>
+ <function name='xmlXPtrNewLocationSetNodes' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type LocationSet and initialize it with the single range made of the two nodes @start and @end</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='start' type='xmlNodePtr' info='the start NodePtr value'/>
+ <arg name='end' type='xmlNodePtr' info='the end NodePtr value or NULL'/>
+ </function>
+ <function name='xmlXPtrNewRange' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type range</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='start' type='xmlNodePtr' info='the starting node'/>
+ <arg name='startindex' type='int' info='the start index'/>
+ <arg name='end' type='xmlNodePtr' info='the ending point'/>
+ <arg name='endindex' type='int' info='the ending index'/>
+ </function>
+ <function name='xmlXPtrNewRangeNodeObject' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type range from a not to an object</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='start' type='xmlNodePtr' info='the starting node'/>
+ <arg name='end' type='xmlXPathObjectPtr' info='the ending object'/>
+ </function>
+ <function name='xmlXPtrNewRangeNodePoint' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type range from a node to a point</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='start' type='xmlNodePtr' info='the starting node'/>
+ <arg name='end' type='xmlXPathObjectPtr' info='the ending point'/>
+ </function>
+ <function name='xmlXPtrNewRangeNodes' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type range using 2 nodes</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='start' type='xmlNodePtr' info='the starting node'/>
+ <arg name='end' type='xmlNodePtr' info='the ending node'/>
+ </function>
+ <function name='xmlXPtrNewRangePointNode' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type range from a point to a node</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='start' type='xmlXPathObjectPtr' info='the starting point'/>
+ <arg name='end' type='xmlNodePtr' info='the ending node'/>
+ </function>
+ <function name='xmlXPtrNewRangePoints' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Create a new xmlXPathObjectPtr of type range using 2 Points</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='start' type='xmlXPathObjectPtr' info='the starting point'/>
+ <arg name='end' type='xmlXPathObjectPtr' info='the ending point'/>
+ </function>
+ <function name='xmlXPtrRangeToFunction' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Implement the range-to() XPointer function Obsolete. range-to is not a real function but a special type of location step which is handled in xpath.c.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
+ <arg name='nargs' type='int' info='the number of args'/>
+ </function>
+ <function name='xmlXPtrWrapLocationSet' file='xpointer' module='xpointer'>
+ <cond>defined(LIBXML_XPTR_ENABLED)</cond>
+ <info>Wrap the LocationSet @val in a new xmlXPathObjectPtr</info>
+ <return type='xmlXPathObjectPtr' info='the newly created object.'/>
+ <arg name='val' type='xmlLocationSetPtr' info='the LocationSet value'/>
+ </function>
+ </symbols>
+</api>
diff --git a/libxml2-2.9.10/doc/libxml2.xsa b/libxml2-2.9.10/doc/libxml2.xsa
new file mode 100644
index 0000000..07f9708
--- /dev/null
+++ b/libxml2-2.9.10/doc/libxml2.xsa
@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsa PUBLIC "-//LM Garshol//DTD XML Software Autoupdate 1.0//EN//XML" "http://www.garshol.priv.no/download/xsa/xsa.dtd">
+<xsa>
+ <vendor>
+ <name>Daniel Veillard</name>
+ <email>daniel@veillard.com</email>
+ <url>http://veillard.com/</url>
+ </vendor>
+ <product id="libxml2">
+ <name>libxml2</name>
+ <version>v2.9.9</version>
+ <last-release> Jan 03 2019</last-release>
+ <info-url>http://xmlsoft.org/</info-url>
+ <changes> - Security:
+ CVE-2018-9251 CVE-2018-14567 Fix infinite loop in LZMA decompression (Nick Wellnhofer),
+ CVE-2018-14404 Fix nullptr deref with XPath logic ops (Nick Wellnhofer),
+
+ - Documentation:
+ reader: Fix documentation comment (Mohammed Sadiq)
+
+ - Portability:
+ Fix MSVC build with lzma (Nick Wellnhofer),
+ Variables need 'extern' in static lib on Cygwin (Michael Haubenwallner),
+ Really declare dllexport/dllimport for Cygwin (Michael Haubenwallner),
+ Merge branch 'patch-2' into 'master' (Nick Wellnhofer),
+ Change dir to $THEDIR after ACLOCAL_PATH check autoreconf creates aclocal.m4 in $srcdir (Vitaly Buka),
+ Improve error message if pkg.m4 couldn't be found (Nick Wellnhofer),
+ NaN and Inf fixes for pre-C99 compilers (Nick Wellnhofer)
+
+ - Bug Fixes:
+ Revert "Support xmlTextReaderNextSibling w/o preparsed doc" (Nick Wellnhofer),
+ Fix building relative URIs (Thomas Holder),
+ Problem with data in interleave in RelaxNG validation (Nikolai Weibull),
+ Fix memory leak in xmlSwitchInputEncodingInt error path (Nick Wellnhofer),
+ Set doc on element obtained from freeElems (Nick Wellnhofer),
+ Fix HTML serialization with UTF-8 encoding (Nick Wellnhofer),
+ Use actual doc in xmlTextReaderRead*Xml (Nick Wellnhofer),
+ Unlink node before freeing it in xmlSAX2StartElement (Nick Wellnhofer),
+ Check return value of nodePush in xmlSAX2StartElement (Nick Wellnhofer),
+ Free input buffer in xmlHaltParser (Nick Wellnhofer),
+ Reset HTML parser input pointers on encoding failure (Nick Wellnhofer),
+ Don't run icu_parse_test if EUC-JP is unsupported (Nick Wellnhofer),
+ Fix xmlSchemaValidCtxtPtr reuse memory leak (Greg Hildstrom),
+ Fix xmlTextReaderNext with preparsed document (Felix Bünemann),
+ Remove stray character from comment (Nick Wellnhofer),
+ Remove a misleading line from xmlCharEncOutput (Andrey Bienkowski),
+ HTML noscript should not close p (Daniel Veillard),
+ Don't change context node in xmlXPathRoot (Nick Wellnhofer),
+ Stop using XPATH_OP_RESET (Nick Wellnhofer),
+ Revert "Change calls to xmlCharEncInput to set flush false" (Nick Wellnhofer)
+
+ - Improvements:
+ Fix "Problem with data in interleave in RelaxNG validation" (Nikolai Weibull),
+ cleanup: remove some unreachable code (Thomas Holder),
+ add --relative to testURI (Thomas Holder),
+ Remove redefined starts and defines inside include elements (Nikolai Weibull),
+ Allow choice within choice in nameClass in RELAX NG (Nikolai Weibull),
+ Look inside divs for starts and defines inside include (Nikolai Weibull),
+ Add compile and libxml2-config.cmake to .gitignore (Nikolai Weibull),
+ Stop using doc-&gt;charset outside parser code (Nick Wellnhofer),
+ Add newlines to 'xmllint --xpath' output (Nick Wellnhofer),
+ Don't include SAX.h from globals.h (Nick Wellnhofer),
+ Support xmlTextReaderNextSibling w/o preparsed doc (Felix Bünemann),
+ Don't instruct user to run make when autogen.sh failed (æž—åšä»(Buo-ren Lin)),
+ Run Travis ASan tests with "sudo: required" (Nick Wellnhofer),
+ Improve restoring of context size and position (Nick Wellnhofer),
+ Simplify and harden nodeset filtering (Nick Wellnhofer),
+ Avoid unnecessary backups of the context node (Nick Wellnhofer),
+ Fix inconsistency in xmlXPathIsInf (Nick Wellnhofer)
+
+ - Cleanups:
+
+
+</changes>
+ </product>
+</xsa>
diff --git a/libxml2-2.9.10/doc/namespaces.html b/libxml2-2.9.10/doc/namespaces.html
new file mode 100644
index 0000000..995587b
--- /dev/null
+++ b/libxml2-2.9.10/doc/namespaces.html
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+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 &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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 by
+recognizing namespace constructs in the input, and does namespace lookup
+automatically when building the DOM tree. A namespace declaration is
+associated with an in-memory structure and all elements or attributes within
+that namespace point to it. Hence testing the namespace is a simple and fast
+equality operation at the user level.</p><p>I suggest that people using libxml2 use a namespace, and declare it in the
+root element of their document as the default namespace. Then they don't need
+to use the prefix in the content but we will have a basis for future semantic
+refinement and merging of data from different sources. This doesn't increase
+the size of the XML output significantly, but significantly increases its
+value in the long-term. Example:</p><pre>&lt;mydoc xmlns="http://mydoc.example.org/schemas/"&gt;
+ &lt;elem1&gt;...&lt;/elem1&gt;
+ &lt;elem2&gt;...&lt;/elem2&gt;
+&lt;/mydoc&gt;</pre><p>The namespace value has to be an absolute URL, but the URL doesn't have to
+point to any existing resource on the Web. It will bind all the element and
+attributes with that URL. I suggest to use an URL within a domain you
+control, and that the URL should contain some kind of version information if
+possible. For example, <code>"http://www.gnome.org/gnumeric/1.0/"</code> is a
+good namespace scheme.</p><p>Then when you load a file, make sure that a namespace carrying the
+version-independent prefix is installed on the root element of your document,
+and if the version information don't match something you know, warn the user
+and be liberal in what you accept as the input. Also do *not* try to base
+namespace checking on the prefix value. &lt;foo:text&gt; may be exactly the
+same as &lt;bar:text&gt; in another document. What really matters is the URI
+associated with the element or the attribute, not the prefix string (which is
+just a shortcut for the full URI). In libxml, element and attributes have an
+<code>ns</code> field pointing to an xmlNs structure detailing the namespace
+prefix and its URI.</p><p>@@Interfaces@@</p><pre>xmlNodePtr node;
+if(!strncmp(node-&gt;name,"mytag",5)
+ &amp;&amp; node-&gt;ns
+ &amp;&amp; !strcmp(node-&gt;ns-&gt;href,"http://www.mysite.com/myns/1.0")) {
+ ...
+}</pre><p>Usually people object to using namespaces together with validity checking.
+I will try to make sure that using namespaces won't break validity checking,
+so even if you plan to use or currently are using validation I strongly
+suggest adding namespaces to your document. A default namespace scheme
+<code>xmlns="http://...."</code> should not break validity even on less
+flexible parsers. Using namespaces to mix and differentiate content coming
+from multiple DTDs will certainly break current validation schemes. To check
+such documents one needs to use schema-validation, which is supported in
+libxml2 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>
diff --git a/libxml2-2.9.10/doc/newapi.xsl b/libxml2-2.9.10/doc/newapi.xsl
new file mode 100644
index 0000000..b809382
--- /dev/null
+++ b/libxml2-2.9.10/doc/newapi.xsl
@@ -0,0 +1,766 @@
+<?xml version="1.0"?>
+<!--
+ Stylesheet to generate the HTML documentation from an XML API descriptions:
+ xsltproc newapi.xsl libxml2-api.xml
+
+ Daniel Veillard
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:str="http://exslt.org/strings"
+ extension-element-prefixes="exsl str"
+ exclude-result-prefixes="exsl str">
+
+ <!-- Import the main part of the site stylesheets -->
+ <xsl:import href="site.xsl"/>
+
+ <!-- Generate XHTML-1.0 transitional -->
+ <xsl:output method="xml" encoding="UTF-8" indent="yes"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+ <!-- Build keys for all symbols -->
+ <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
+
+ <!-- the target directory for the HTML output -->
+ <xsl:variable name="htmldir">html</xsl:variable>
+ <xsl:variable name="href_base">../</xsl:variable>
+
+ <!-- The table of content for the HTML API pages -->
+ <xsl:variable name="menu_name">API Menu</xsl:variable>
+ <xsl:variable name="apitoc">
+ <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><!-- style="margin-left: -1em" -->
+ <li><a style="font-weight:bold"
+ href="{$href_base}index.html">Main Menu</a></li>
+ <li><a style="font-weight:bold"
+ href="{$href_base}docs.html">Developer Menu</a></li>
+ <li><a style="font-weight:bold"
+ href="{$href_base}examples/index.html">Code Examples</a></li>
+ <li><a style="font-weight:bold"
+ href="index.html">API Menu</a></li>
+ <li><a href="libxml-parser.html">Parser API</a></li>
+ <li><a href="libxml-tree.html">Tree API</a></li>
+ <li><a href="libxml-xmlreader.html">Reader API</a></li>
+ <li><a href="{$href_base}guidelines.html">XML Guidelines</a></li>
+ <li><a href="{$href_base}ChangeLog.html">ChangeLog</a></li>
+ </ul>
+ </xsl:variable>
+ <xsl:template name="apitoc">
+ <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><xsl:value-of select="$menu_name"/></b>
+ </center>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#fffacd">
+ <xsl:copy-of select="$apitoc"/>
+ </td>
+ </tr>
+ </table>
+ <table width="100%" border="0" cellspacing="1" cellpadding="3">
+ <tr>
+ <td colspan="1" bgcolor="#eecfa1" align="center">
+ <center>
+ <b>API Indexes</b>
+ </center>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#fffacd">
+ <xsl:copy-of select="$api"/>
+ </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">
+ <xsl:copy-of select="$related"/>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <xsl:template name="docstyle">
+ <style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style>
+ </xsl:template>
+ <xsl:template name="navbar">
+ <xsl:variable name="previous" select="preceding-sibling::file[1]"/>
+ <xsl:variable name="next" select="following-sibling::file[1]"/>
+ <table class="navigation" width="100%" summary="Navigation header"
+ cellpadding="2" cellspacing="2">
+ <tr valign="middle">
+ <xsl:if test="$previous">
+ <td><a accesskey="p" href="libxml-{$previous/@name}.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></img></a></td>
+ <th align="left"><a href="libxml-{$previous/@name}.html"><xsl:value-of select="$previous/@name"/></a></th>
+ </xsl:if>
+ <td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></img></a></td>
+ <th align="left"><a href="index.html">API documentation</a></th>
+ <td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></img></a></td>
+ <th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th>
+ <xsl:if test="$next">
+ <th align="right"><a href="libxml-{$next/@name}.html"><xsl:value-of select="$next/@name"/></a></th>
+ <td><a accesskey="n" href="libxml-{$next/@name}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></img></a></td>
+ </xsl:if>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <!-- This is convoluted but needed to force the current document to
+ be the API one and not the result tree from the tokenize() result,
+ because the keys are only defined on the main document -->
+ <xsl:template mode="dumptoken" match='*'>
+ <xsl:param name="token"/>
+ <xsl:variable name="ref" select="key('symbols', $token)"/>
+ <xsl:choose>
+ <xsl:when test="$ref">
+ <a href="libxml-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$token"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- dumps a string, making cross-reference links -->
+ <xsl:template name="dumptext">
+ <xsl:param name="text"/>
+ <xsl:variable name="ctxt" select='.'/>
+ <!-- <xsl:value-of select="$text"/> -->
+ <xsl:for-each select="str:tokenize($text, ' &#9;')">
+ <xsl:apply-templates select="$ctxt" mode='dumptoken'>
+ <xsl:with-param name="token" select="string(.)"/>
+ </xsl:apply-templates>
+ <xsl:if test="position() != last()">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="macro" mode="toc">
+ <pre class="programlisting">
+ <xsl:text>#define </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="variable" mode="toc">
+ <pre class="programlisting">
+ <xsl:text>Variable </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="string(@type)"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <a name="{@name}"></a>
+ <xsl:value-of select="@name"/>
+ <xsl:text>
+
+</xsl:text>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="typedef" mode="toc">
+ <xsl:variable name="name" select="string(@name)"/>
+ <pre class="programlisting">
+ <xsl:choose>
+ <xsl:when test="@type = 'enum'">
+ <xsl:text>Enum </xsl:text>
+ <a href="#{$name}"><xsl:value-of select="$name"/></a>
+ <xsl:text>
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Typedef </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <a name="{$name}"><xsl:value-of select="$name"/></a>
+ <xsl:text>
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="typedef[@type = 'enum']">
+ <xsl:variable name="name" select="string(@name)"/>
+ <h3>Enum <a name="{$name}"><xsl:value-of select="$name"/></a></h3>
+ <pre class="programlisting">
+ <xsl:text>Enum </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text> {
+</xsl:text>
+ <xsl:for-each select="/api/symbols/enum[@type = $name]">
+ <xsl:sort select="@value" data-type="number" order="ascending"/>
+ <xsl:text> </xsl:text>
+ <a name="{@name}"><xsl:value-of select="@name"/></a>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:if test="@info != ''">
+ <xsl:text> : </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@info"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>}
+</xsl:text>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="struct" mode="toc">
+ <pre class="programlisting">
+ <xsl:text>Structure </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a><br/>
+ <xsl:value-of select="@type"/><xsl:text>
+</xsl:text>
+ <xsl:if test="not(field)">
+ <xsl:text>The content of this structure is not made public by the API.
+</xsl:text>
+ </xsl:if>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="struct">
+ <h3><a name="{@name}">Structure <xsl:value-of select="@name"/></a></h3>
+ <pre class="programlisting">
+ <xsl:text>Structure </xsl:text><xsl:value-of select="@name"/><br/>
+ <xsl:value-of select="@type"/><xsl:text> {
+</xsl:text>
+ <xsl:if test="not(field)">
+ <xsl:text>The content of this structure is not made public by the API.
+</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="field">
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="@info != ''">
+ <xsl:text>&#9;: </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="substring(@info, 1, 40)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>}</xsl:text>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="macro">
+ <xsl:variable name="name" select="string(@name)"/>
+ <h3><a name="{$name}"></a>Macro: <xsl:value-of select="$name"/></h3>
+ <pre><xsl:text>#define </xsl:text><xsl:value-of select="$name"/></pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p><xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="function" mode="toc">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <pre class="programlisting">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)</xsl:text>
+ </pre><xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="functype" mode="toc">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <pre class="programlisting">
+ <xsl:text>Function type: </xsl:text>
+ <a href="#{$name}"><xsl:value-of select="$name"/></a>
+ <xsl:text>
+</xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <a href="#{$name}"><xsl:value-of select="$name"/></a>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)
+</xsl:text>
+ </pre>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="functype">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <h3>
+ <a name="{$name}"></a>
+ <xsl:text>Function type: </xsl:text>
+ <xsl:value-of select="$name"/>
+ </h3>
+ <pre class="programlisting">
+ <xsl:text>Function type: </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p>
+ <xsl:if test="arg | return">
+ <div class="variablelist"><table border="0"><col align="left"/><tbody>
+ <xsl:for-each select="arg">
+ <tr>
+ <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:for-each>
+ <xsl:if test="return/@info">
+ <tr>
+ <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:if>
+ </tbody></table></div>
+ </xsl:if>
+ <br/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="function">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <h3><a name="{$name}"></a>Function: <xsl:value-of select="$name"/></h3>
+ <pre class="programlisting">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)</xsl:text><br/>
+ <xsl:text>
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p><xsl:text>
+</xsl:text>
+ <xsl:if test="arg | return/@info">
+ <div class="variablelist"><table border="0"><col align="left"/><tbody>
+ <xsl:for-each select="arg">
+ <tr>
+ <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:for-each>
+ <xsl:if test="return/@info">
+ <tr>
+ <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:if>
+ </tbody></table></div>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="exports" mode="toc">
+ <xsl:apply-templates select="key('symbols', string(@symbol))[1]" mode="toc"/>
+ </xsl:template>
+
+ <xsl:template match="exports">
+ <xsl:apply-templates select="key('symbols', string(@symbol))[1]"/>
+ </xsl:template>
+
+ <xsl:template name="description">
+ <xsl:if test="deprecated">
+ <h2 style="font-weight:bold;color:red;text-align:center">This module is deprecated</h2>
+ </xsl:if>
+ <xsl:if test="description">
+ <p><xsl:value-of select="description"/></p>
+ </xsl:if>
+ </xsl:template>
+
+<!--
+ <xsl:template name="docomponents">
+ <xsl:param name="mode"/>
+ <xsl:apply-templates select="exports[@type='macro']" mode="$mode">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='enum']" mode="$mode">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='typedef']" mode="$mode">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='struct']" mode="$mode">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='function']" mode="$mode">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ </xsl:template>
+-->
+
+ <xsl:template match="file">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="title">Module <xsl:value-of select="$name"/> from <xsl:value-of select="/api/@name"/></xsl:variable>
+ <xsl:document href="{$htmldir}/libxml-{$name}.html" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:call-template name="docstyle"/>
+ <title><xsl:value-of select="$title"/></title>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="apitoc"/>
+ </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">
+ <xsl:call-template name="navbar"/>
+ <xsl:call-template name="description"/>
+ <xsl:choose>
+ <xsl:when test="deprecated">
+ <div class="deprecated">
+ <h2>Table of Contents</h2>
+ <xsl:apply-templates select="exports" mode="toc"/>
+ <h2>Description</h2>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="exports"/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <h2>Table of Contents</h2>
+ <xsl:apply-templates select="exports[@type='macro']" mode="toc">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='enum']" mode="toc">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='typedef']" mode="toc">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='struct']" mode="toc">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='function']" mode="toc">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <h2>Description</h2>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="exports[@type='macro']">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='enum']">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='typedef']">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='struct']">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='function']">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+
+ <xsl:template match="file" mode="toc">
+ <xsl:variable name="name" select="@name"/>
+ <li>
+ <a href="libxml-{$name}.html"><xsl:value-of select="$name"/></a>
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="summary"/>
+ </li>
+ </xsl:template>
+
+ <xsl:template name="mainpage">
+ <xsl:param name="file" select="concat($htmldir, '/index.html')"/>
+ <xsl:variable name="title">Reference Manual for <xsl:value-of select="/api/@name"/></xsl:variable>
+ <xsl:document href="{$file}" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:call-template name="docstyle"/>
+ <title><xsl:value-of select="$title"/></title>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="apitoc"/>
+ </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">
+ <h2>Table of Contents</h2>
+ <ul>
+ <xsl:apply-templates select="/api/files/file" mode="toc"/>
+ </ul>
+ <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+
+ <xsl:template match="/">
+ <!-- Save the main index.html as well as a couple of copies -->
+ <xsl:call-template name="mainpage"/>
+ <xsl:call-template name="mainpage">
+ <xsl:with-param name="file" select="concat($htmldir, '/book1.html')"/>
+ </xsl:call-template>
+ <xsl:call-template name="mainpage">
+ <xsl:with-param name="file" select="concat($htmldir, '/libxml-lib.html')"/>
+ </xsl:call-template>
+ <!-- now build the file for each of the modules -->
+ <xsl:apply-templates select="/api/files/file"/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libxml2-2.9.10/doc/news.html b/libxml2-2.9.10/doc/news.html
new file mode 100644
index 0000000..434a09e
--- /dev/null
+++ b/libxml2-2.9.10/doc/news.html
@@ -0,0 +1,2961 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Releases</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>Releases</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 &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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 <a href="ChangeLog.html">change log</a> describes the recents commits
+to the <a href="https://gitlab.gnome.org/GNOME/libxml2">GIT</a> code base.</p><p>Here is the list of public releases:</p><h3>v2.9.10: Oct 30 2019</h3><ul>
+ <li>Documentation:<br />
+ Fix a few more typos ("fonction") (Nick Wellnhofer),<br />
+ Large batch of typo fixes (Jared Yanovich),<br />
+ Fix typos: tree: move{ -&gt; s}, reconcil{i -&gt; }ed, h{o -&gt; e}ld by... (Jan Pokorný),<br />
+ Fix typo: xpath: simpli{ -&gt; fi}ed (Jan Pokorný),<br />
+ Doc: do not mislead towards "infeasible" scenario wrt. xmlBufNodeDump (Jan Pokorný),<br />
+ Fix comments in test code (zhouzhongyuan),<br />
+ fix comment in testReader.c (zhouzhongyuan)<br />
+ </li>
+
+ <li>Portability:<br />
+ Fix some release issues on Fedora 30 (Daniel Veillard),<br />
+ Fix exponent digits when running tests under old MSVC (Daniel Richard G),<br />
+ Work around buggy ceil() function on AIX (Daniel Richard G),<br />
+ Don't call printf with NULL string in runtest.c (Daniel Richard G),<br />
+ Switched from unsigned long to ptrdiff_t in parser.c (Stephen Chenney),<br />
+ timsort.h: support older GCCs (Jérôme Duval),<br />
+ Make configure.ac work with older pkg-config (Nick Wellnhofer),<br />
+ Stop defining _REENTRANT on some Win32 platforms (Nick Wellnhofer),<br />
+ Fix nanohttp.c on MinGW (Nick Wellnhofer),<br />
+ Fix Windows compiler warning in testC14N.c (Nick Wellnhofer),<br />
+ Merge testThreadsWin32.c into testThreads.c (Nick Wellnhofer),<br />
+ Fix Python bindings under Windows (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Another fix for conditional sections at end of document (Nick Wellnhofer),<br />
+ Fix for conditional sections at end of document (Nick Wellnhofer),<br />
+ Make sure that Python tests exit with error code (Nick Wellnhofer),<br />
+ Audit memory error handling in xpath.c (Nick Wellnhofer),<br />
+ Fix error code in xmlTextWriterStartDocument (Nick Wellnhofer),<br />
+ Fix integer overflow when counting written bytes (Nick Wellnhofer),<br />
+ Fix uninitialized memory access in HTML parser (Nick Wellnhofer),<br />
+ Fix memory leak in xmlSchemaValAtomicType (Nick Wellnhofer),<br />
+ Disallow conditional sections in internal subset (Nick Wellnhofer),<br />
+ Fix use-after-free in xmlTextReaderFreeNodeList (Nick Wellnhofer),<br />
+ Fix Regextests (Nick Wellnhofer),<br />
+ Fix empty branch in regex (Nick Wellnhofer),<br />
+ Fix integer overflow in entity recursion check (Nick Wellnhofer),<br />
+ Don't read external entities or XIncludes from stdin (Nick Wellnhofer),<br />
+ Fix Schema determinism check of ##other namespaces (Nick Wellnhofer),<br />
+ Fix potential null deref in xmlSchemaIDCFillNodeTables (zhouzhongyuan),<br />
+ Fix potential memory leak in xmlBufBackToBuffer (Nick Wellnhofer),<br />
+ Fix error message when processing XIncludes with fallbacks (Nick Wellnhofer),<br />
+ Fix memory leak in xmlRegEpxFromParse (zhouzhongyuan),<br />
+ 14:00 is a valid timezone for xs:dateTime (Nick Wellnhofer),<br />
+ Fix memory leak in xmlParseBalancedChunkMemoryRecover (Zhipeng Xie),<br />
+ Fix potential null deref in xmlRelaxNGParsePatterns (Nick Wellnhofer),<br />
+ Misleading error message with xs:{min|max}Inclusive (bettermanzzy),<br />
+ Fix memory leak in xmlXIncludeLoadTxt (Wang Kirin),<br />
+ Partial fix for comparison of xs:durations (Nick Wellnhofer),<br />
+ Fix null deref in xmlreader buffer (zhouzhongyuan),<br />
+ Fix unability to RelaxNG-validate grammar with choice-based name class (Jan Pokorný),<br />
+ Fix unability to validate ambiguously constructed interleave for RelaxNG (Jan Pokorný),<br />
+ Fix possible null dereference in xmlXPathIdFunction (zhouzhongyuan),<br />
+ fix memory leak in xmlAllocOutputBuffer (zhouzhongyuan),<br />
+ Fix unsigned int overflow (Jens Eggerstedt),<br />
+ dict.h: gcc 2.95 doesn't allow multiple storage classes (Nick Wellnhofer),<br />
+ Fix another code path in xmlParseQName (Nick Wellnhofer),<br />
+ Make sure that xmlParseQName returns NULL in error case (Nick Wellnhofer),<br />
+ Fix build without reader but with pattern (Nick Wellnhofer),<br />
+ Fix memory leak in xmlAllocOutputBufferInternal error path (Nick Wellnhofer),<br />
+ Fix unsigned integer overflow (Nick Wellnhofer),<br />
+ Fix return value of xmlOutputBufferWrite (Nick Wellnhofer),<br />
+ Fix parser termination from "Double hyphen within comment" error (David Warring),<br />
+ Fix call stack overflow in xmlFreePattern (Nick Wellnhofer),<br />
+ Fix null deref in previous commit (Nick Wellnhofer),<br />
+ Fix memory leaks in xmlXPathParseNameComplex error paths (Nick Wellnhofer),<br />
+ Check for integer overflow in xmlXPtrEvalChildSeq (Nick Wellnhofer),<br />
+ Fix xmllint dump of XPath namespace nodes (Nick Wellnhofer),<br />
+ Fix float casts in xmlXPathSubstringFunction (Nick Wellnhofer),<br />
+ Fix null deref in xmlregexp error path (Nick Wellnhofer),<br />
+ Fix null pointer dereference in xmlTextReaderReadOuterXml (Nick Wellnhofer),<br />
+ Fix memory leaks in xmlParseStartTag2 error paths (Nick Wellnhofer),<br />
+ Fix memory leak in xmlSAX2StartElement (Nick Wellnhofer),<br />
+ Fix commit "Memory leak in xmlFreeID (xmlreader.c)" (Nick Wellnhofer),<br />
+ Fix NULL pointer deref in xmlTextReaderValidateEntity (Nick Wellnhofer),<br />
+ Memory leak in xmlFreeTextReader (Nick Wellnhofer),<br />
+ Memory leak in xmlFreeID (xmlreader.c) (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Run XML conformance tests under CI (Nick Wellnhofer),<br />
+ Update GitLab CI config (Nick Wellnhofer),<br />
+ Propagate memory errors in valuePush (Nick Wellnhofer),<br />
+ Propagate memory errors in xmlXPathCompExprAdd (Nick Wellnhofer),<br />
+ Make xmlFreeDocElementContent non-recursive (Nick Wellnhofer),<br />
+ Enable continuous integration via GitLab CI (Nick Wellnhofer),<br />
+ Avoid ignored attribute warnings under GCC (Nick Wellnhofer),<br />
+ Make xmlDumpElementContent non-recursive (Nick Wellnhofer),<br />
+ Make apibuild.py ignore ATTRIBUTE_NO_SANITIZE (Nick Wellnhofer),<br />
+ Mark xmlExp* symbols as removed (Nick Wellnhofer),<br />
+ Make xmlParseConditionalSections non-recursive (Nick Wellnhofer),<br />
+ Adjust expected error in Python tests (Nick Wellnhofer),<br />
+ Make xmlTextReaderFreeNodeList non-recursive (Nick Wellnhofer),<br />
+ Make xmlFreeNodeList non-recursive (Nick Wellnhofer),<br />
+ Make xmlParseContent and xmlParseElement non-recursive (Nick Wellnhofer),<br />
+ Remove executable bit from non-executable files (Nick Wellnhofer),<br />
+ Fix expected output of test/schemas/any4 (Nick Wellnhofer),<br />
+ Optimize build instructions in README (zhouzhongyuan),<br />
+ xml2-config.in: Output CFLAGS and LIBS on the same line (Hugh McMaster),<br />
+ xml2-config: Add a --dynamic switch to print only shared libraries (Hugh McMaster),<br />
+ Annotate functions with __attribute__((no_sanitize)) (Nick Wellnhofer),<br />
+ Fix warnings when compiling without reader or push parser (Nick Wellnhofer),<br />
+ Remove unused member `doc` in xmlSaveCtxt (Nick Wellnhofer),<br />
+ Limit recursion depth in xmlXPathCompOpEvalPredicate (Nick Wellnhofer),<br />
+ Remove -Wno-array-bounds (Nick Wellnhofer),<br />
+ Remove unreachable code in xmlXPathCountFunction (Nick Wellnhofer),<br />
+ Improve XPath predicate and filter evaluation (Nick Wellnhofer),<br />
+ Limit recursion depth in xmlXPathOptimizeExpression (Nick Wellnhofer),<br />
+ Disable hash randomization when fuzzing (Nick Wellnhofer),<br />
+ Optional recursion limit when parsing XPath expressions (Nick Wellnhofer),<br />
+ Optional recursion limit when evaluating XPath expressions (Nick Wellnhofer),<br />
+ Use break statements in xmlXPathCompOpEval (Nick Wellnhofer),<br />
+ Optional XPath operation limit (Nick Wellnhofer),<br />
+ Fix compilation with --with-minimum (Nick Wellnhofer),<br />
+ Check XPath stack after calling functions (Nick Wellnhofer),<br />
+ Remove debug printf in xmlreader.c (Nick Wellnhofer),<br />
+ Always define LIBXML_THREAD_ENABLED when enabled (Michael Haubenwallner),<br />
+ Regenerate NEWS (Nick Wellnhofer),<br />
+ Change git repo URL (Nick Wellnhofer),<br />
+ Change bug tracker URL (Nick Wellnhofer),<br />
+ Remove outdated HTML file (Nick Wellnhofer),<br />
+ Fix unused function warning in testapi.c (Nick Wellnhofer),<br />
+ Add some generated test files to .gitignore (Nick Wellnhofer),<br />
+ Remove unneeded function pointer casts (Nick Wellnhofer),<br />
+ Fix -Wcast-function-type warnings (GCC 8) (Nick Wellnhofer),<br />
+ Fix -Wformat-truncation warnings (GCC 8) (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Cleanups:<br />
+ Rebuild docs (Nick Wellnhofer),<br />
+ Disable xmlExp regex code (Nick Wellnhofer),<br />
+ Remove redundant code in xmlRelaxNGValidateState (Nick Wellnhofer),<br />
+ Remove redundant code in xmlXPathCompRelationalExpr (Nick Wellnhofer)<br />
+ </li>
+</ul><h3>v2.9.9: Jan 03 2019</h3><ul>
+ <li>Security:<br />
+ CVE-2018-9251 CVE-2018-14567 Fix infinite loop in LZMA decompression (Nick Wellnhofer),<br />
+ CVE-2018-14404 Fix nullptr deref with XPath logic ops (Nick Wellnhofer),<br />
+ </li>
+
+ <li>Documentation:<br />
+ reader: Fix documentation comment (Mohammed Sadiq)<br />
+ </li>
+
+ <li>Portability:<br />
+ Fix MSVC build with lzma (Nick Wellnhofer),<br />
+ Variables need 'extern' in static lib on Cygwin (Michael Haubenwallner),<br />
+ Really declare dllexport/dllimport for Cygwin (Michael Haubenwallner),<br />
+ Merge branch 'patch-2' into 'master' (Nick Wellnhofer),<br />
+ Change dir to $THEDIR after ACLOCAL_PATH check autoreconf creates aclocal.m4 in $srcdir (Vitaly Buka),<br />
+ Improve error message if pkg.m4 couldn't be found (Nick Wellnhofer),<br />
+ NaN and Inf fixes for pre-C99 compilers (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Revert "Support xmlTextReaderNextSibling w/o preparsed doc" (Nick Wellnhofer),<br />
+ Fix building relative URIs (Thomas Holder),<br />
+ Problem with data in interleave in RelaxNG validation (Nikolai Weibull),<br />
+ Fix memory leak in xmlSwitchInputEncodingInt error path (Nick Wellnhofer),<br />
+ Set doc on element obtained from freeElems (Nick Wellnhofer),<br />
+ Fix HTML serialization with UTF-8 encoding (Nick Wellnhofer),<br />
+ Use actual doc in xmlTextReaderRead*Xml (Nick Wellnhofer),<br />
+ Unlink node before freeing it in xmlSAX2StartElement (Nick Wellnhofer),<br />
+ Check return value of nodePush in xmlSAX2StartElement (Nick Wellnhofer),<br />
+ Free input buffer in xmlHaltParser (Nick Wellnhofer),<br />
+ Reset HTML parser input pointers on encoding failure (Nick Wellnhofer),<br />
+ Don't run icu_parse_test if EUC-JP is unsupported (Nick Wellnhofer),<br />
+ Fix xmlSchemaValidCtxtPtr reuse memory leak (Greg Hildstrom),<br />
+ Fix xmlTextReaderNext with preparsed document (Felix Bünemann),<br />
+ Remove stray character from comment (Nick Wellnhofer),<br />
+ Remove a misleading line from xmlCharEncOutput (Andrey Bienkowski),<br />
+ HTML noscript should not close p (Daniel Veillard),<br />
+ Don't change context node in xmlXPathRoot (Nick Wellnhofer),<br />
+ Stop using XPATH_OP_RESET (Nick Wellnhofer),<br />
+ Revert "Change calls to xmlCharEncInput to set flush false" (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Fix "Problem with data in interleave in RelaxNG validation" (Nikolai Weibull),<br />
+ cleanup: remove some unreachable code (Thomas Holder),<br />
+ add --relative to testURI (Thomas Holder),<br />
+ Remove redefined starts and defines inside include elements (Nikolai Weibull),<br />
+ Allow choice within choice in nameClass in RELAX NG (Nikolai Weibull),<br />
+ Look inside divs for starts and defines inside include (Nikolai Weibull),<br />
+ Add compile and libxml2-config.cmake to .gitignore (Nikolai Weibull),<br />
+ Stop using doc-&gt;charset outside parser code (Nick Wellnhofer),<br />
+ Add newlines to 'xmllint --xpath' output (Nick Wellnhofer),<br />
+ Don't include SAX.h from globals.h (Nick Wellnhofer),<br />
+ Support xmlTextReaderNextSibling w/o preparsed doc (Felix Bünemann),<br />
+ Don't instruct user to run make when autogen.sh failed (æž—åšä»(Buo-ren Lin)),<br />
+ Run Travis ASan tests with "sudo: required" (Nick Wellnhofer),<br />
+ Improve restoring of context size and position (Nick Wellnhofer),<br />
+ Simplify and harden nodeset filtering (Nick Wellnhofer),<br />
+ Avoid unnecessary backups of the context node (Nick Wellnhofer),<br />
+ Fix inconsistency in xmlXPathIsInf (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Cleanups:<br />
+ </li>
+</ul><h3>v2.9.8: Mar 05 2018</h3><ul>
+ <li>Portability:<br />
+ python: remove single use of _PyVerify_fd (Patrick Welche),<br />
+ Build more test executables on Windows/MSVC (Nick Wellnhofer),<br />
+ Stop including ansidecl.h (Nick Wellnhofer),<br />
+ Fix libz and liblzma detection (Nick Wellnhofer),<br />
+ Revert "Compile testapi with -Wno-unused-function" (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Fix xmlParserEntityCheck (Nick Wellnhofer),<br />
+ Halt parser in case of encoding error (Nick Wellnhofer),<br />
+ Clear entity content in case of errors (Nick Wellnhofer),<br />
+ Change calls to xmlCharEncInput to set flush false when not final call. Having flush incorrectly set to true causes errors for ICU. (Joel Hockey),<br />
+ Fix buffer over-read in xmlParseNCNameComplex (Nick Wellnhofer),<br />
+ Fix ICU library filenames on Windows/MSVC (Nick Wellnhofer),<br />
+ Fix xmlXPathIsNaN broken by recent commit (Nick Wellnhofer),<br />
+ Fix -Wenum-compare warnings (Nick Wellnhofer),<br />
+ Fix callback signature in testapi.c (Nick Wellnhofer),<br />
+ Fix unused parameter warning without ICU (Nick Wellnhofer),<br />
+ Fix IO callback signatures (Nick Wellnhofer),<br />
+ Fix misc callback signatures (Nick Wellnhofer),<br />
+ Fix list callback signatures (Nick Wellnhofer),<br />
+ Fix hash callback signatures (Nick Wellnhofer),<br />
+ Refactor name and type signature for xmlNop (Vlad Tsyrklevich),<br />
+ Fixed ICU to set flush correctly and provide pivot buffer. (Joel Hockey),<br />
+ Skip EBCDIC tests if EBCDIC isn't supported (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Disable pointer-overflow UBSan checks under Travis (Nick Wellnhofer),<br />
+ Improve handling of context input_id (Daniel Veillard),<br />
+ Add resource file to Windows DLL (ccpaging),<br />
+ Run Travis tests with -Werror (Nick Wellnhofer),<br />
+ Build with "-Wall -Wextra" (Nick Wellnhofer),<br />
+ Fix -Wtautological-pointer-compare warnings (Nick Wellnhofer),<br />
+ Remove unused AC_CHECKs (Nick Wellnhofer),<br />
+ Update information about contributing (Nick Wellnhofer),<br />
+ Fix -Wmisleading-indentation warnings (Nick Wellnhofer),<br />
+ Don't touch CFLAGS in configure.ac (Nick Wellnhofer),<br />
+ Ignore function pointer cast warnings (Nick Wellnhofer),<br />
+ Simplify XPath NaN, inf and -0 handling (Nick Wellnhofer),<br />
+ Introduce xmlPosixStrdup and update xmlMemStrdup (Nick Wellnhofer),<br />
+ Add test for ICU flush and pivot buffer (Nick Wellnhofer),<br />
+ Compile testapi with -Wno-unused-function (Nick Wellnhofer)<br />
+ </li>
+</ul><h3>2.9.7: Nov 02 2017</h3><ul>
+ <li>Documentation:<br />
+ xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný)<br />
+ </li>
+
+ <li>Portability:<br />
+ Fix deprecated Travis compiler flag (Nick Wellnhofer),<br />
+ Add declaration for DllMain (J. Peter Mugaas),<br />
+ Fix preprocessor conditional in threads.h (J. Peter Mugaas),<br />
+ Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas),<br />
+ Fix macro redefinition warning (J. Peter Mugaas),<br />
+ Default to native threads on MinGW-w64 (Nick Wellnhofer),<br />
+ Simplify Windows IO functions (Nick Wellnhofer),<br />
+ Fix runtest on Windows (Nick Wellnhofer),<br />
+ socklen_t is always int on Windows (Nick Wellnhofer),<br />
+ Don't redefine socket error codes on Windows (Nick Wellnhofer),<br />
+ Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer),<br />
+ Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ xmlcatalog: restore ability to query system catalog easily (Jan Pokorný),<br />
+ Fix comparison of nodesets to strings (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer),<br />
+ Fix mixed decls and code in timsort.h (Nick Wellnhofer),<br />
+ Rework handling of return values in thread tests (Nick Wellnhofer),<br />
+ Fix unused variable warnings in testrecurse (Nick Wellnhofer),<br />
+ Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas),<br />
+ Upgrade timsort.h to latest revision (Nick Wellnhofer),<br />
+ Increase warning level to /W3 under MSVC (Nick Wellnhofer),<br />
+ Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer),<br />
+ Update .gitignore for Windows (Nick Wellnhofer),<br />
+ Fix unused variable warnings in nanohttp.c (Nick Wellnhofer),<br />
+ Fix the Windows header mess (Nick Wellnhofer),<br />
+ Don't include winsock2.h in xmllint.c (Nick Wellnhofer),<br />
+ Remove generated file python/setup.py from version control (Nick Wellnhofer),<br />
+ Use __linux__ macro in generated code (Nick Wellnhofer)<br />
+ </li>
+
+</ul><h3>v2.9.6: Oct 06 2017</h3><ul>
+ <li>Portability:<br />
+ Change preprocessor OS tests to __linux__ (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Fix XPath stack frame logic (Nick Wellnhofer),<br />
+ Report undefined XPath variable error message (Nick Wellnhofer),<br />
+ Fix regression with librsvg (Nick Wellnhofer),<br />
+ Handle more invalid entity values in recovery mode (Nick Wellnhofer),<br />
+ Fix structured validation errors (Nick Wellnhofer),<br />
+ Fix memory leak in LZMA decompressor (Nick Wellnhofer),<br />
+ Set memory limit for LZMA decompression (Nick Wellnhofer),<br />
+ Handle illegal entity values in recovery mode (Nick Wellnhofer),<br />
+ Fix debug dump of streaming XPath expressions (Nick Wellnhofer),<br />
+ Fix memory leak in nanoftp (Nick Wellnhofer),<br />
+ Fix memory leaks in SAX1 parser (Nick Wellnhofer)<br />
+ </li>
+</ul><h3>v2.9.5: Sep 04 2017</h3><ul>
+
+ <li>Security:<br />
+ Detect infinite recursion in parameter entities (Nick Wellnhofer),<br />
+ Fix handling of parameter-entity references (Nick Wellnhofer),<br />
+ Disallow namespace nodes in XPointer ranges (Nick Wellnhofer),<br />
+ Fix XPointer paths beginning with range-to (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Documentation:<br />
+ Documentation fixes (Nick Wellnhofer),<br />
+ Spelling and grammar fixes (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Portability:<br />
+ Adding README.zOS to list of extra files for the release (Daniel Veillard),<br />
+ Description of work needed to compile on zOS (Stéphane Michaut),<br />
+ Porting libxml2 on zOS encoding of code (Stéphane Michaut),<br />
+ small changes for OS/400 (Patrick Monnerat),<br />
+ relaxng.c, xmlschemas.c: Fix build on pre-C99 compilers (Chun-wei Fan)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Problem resolving relative URIs (Daniel Veillard),<br />
+ Fix unwanted warnings when switching encodings (Nick Wellnhofer),<br />
+ Fix signature of xmlSchemaAugmentImportedIDC (Daniel Veillard),<br />
+ Heap-buffer-overflow read of size 1 in xmlFAParsePosCharGroup (David Kilzer),<br />
+ Fix NULL pointer deref in xmlFAParseCharClassEsc (Nick Wellnhofer),<br />
+ Fix infinite loops with push parser in recovery mode (Nick Wellnhofer),<br />
+ Send xmllint usage error to stderr (Nick Wellnhofer),<br />
+ Fix NULL deref in xmlParseExternalEntityPrivate (Nick Wellnhofer),<br />
+ Make sure not to call IS_BLANK_CH when parsing the DTD (Nick Wellnhofer),<br />
+ Fix xmlHaltParser (Nick Wellnhofer),<br />
+ Fix pathological performance when outputting charrefs (Nick Wellnhofer),<br />
+ Fix invalid-source-encoding warnings in testWriter.c (Nick Wellnhofer),<br />
+ Fix duplicate SAX callbacks for entity content (David Kilzer),<br />
+ Treat URIs with scheme as absolute in C14N (Nick Wellnhofer),<br />
+ Fix copy-paste errors in error messages (Nick Wellnhofer),<br />
+ Fix sanity check in htmlParseNameComplex (Nick Wellnhofer),<br />
+ Fix potential infinite loop in xmlStringLenDecodeEntities (Nick Wellnhofer),<br />
+ Reset parser input pointers on encoding failure (Nick Wellnhofer),<br />
+ Fix memory leak in xmlParseEntityDecl error path (Nick Wellnhofer),<br />
+ Fix xmlBuildRelativeURI for URIs starting with './' (Nick Wellnhofer),<br />
+ Fix type confusion in xmlValidateOneNamespace (Nick Wellnhofer),<br />
+ Fix memory leak in xmlStringLenGetNodeList (Nick Wellnhofer),<br />
+ Fix NULL pointer deref in xmlDumpElementContent (Daniel Veillard),<br />
+ Fix memory leak in xmlBufAttrSerializeTxtContent (Nick Wellnhofer),<br />
+ Stop parser on unsupported encodings (Nick Wellnhofer),<br />
+ Check for integer overflow in memory debug code (Nick Wellnhofer),<br />
+ Fix buffer size checks in xmlSnprintfElementContent (Nick Wellnhofer),<br />
+ Avoid reparsing in xmlParseStartTag2 (Nick Wellnhofer),<br />
+ Fix undefined behavior in xmlRegExecPushStringInternal (Nick Wellnhofer),<br />
+ Check XPath exponents for overflow (Nick Wellnhofer),<br />
+ Check for overflow in xmlXPathIsPositionalPredicate (Nick Wellnhofer),<br />
+ Fix spurious error message (Nick Wellnhofer),<br />
+ Fix memory leak in xmlCanonicPath (Nick Wellnhofer),<br />
+ Fix memory leak in xmlXPathCompareNodeSetValue (Nick Wellnhofer),<br />
+ Fix memory leak in pattern error path (Nick Wellnhofer),<br />
+ Fix memory leak in parser error path (Nick Wellnhofer),<br />
+ Fix memory leaks in XPointer error paths (Nick Wellnhofer),<br />
+ Fix memory leak in xmlXPathNodeSetMergeAndClear (Nick Wellnhofer),<br />
+ Fix memory leak in XPath filter optimizations (Nick Wellnhofer),<br />
+ Fix memory leaks in XPath error paths (Nick Wellnhofer),<br />
+ Do not leak the new CData node if adding fails (David Tardon),<br />
+ Prevent unwanted external entity reference (Neel Mehta),<br />
+ Increase buffer space for port in HTTP redirect support (Daniel Veillard),<br />
+ Fix more NULL pointer derefs in xpointer.c (Nick Wellnhofer),<br />
+ Avoid function/data pointer conversion in xpath.c (Nick Wellnhofer),<br />
+ Fix format string warnings (Nick Wellnhofer),<br />
+ Disallow namespace nodes in XPointer points (Nick Wellnhofer),<br />
+ Fix comparison with root node in xmlXPathCmpNodes (Nick Wellnhofer),<br />
+ Fix attribute decoding during XML schema validation (Alex Henrie),<br />
+ Fix NULL pointer deref in XPointer range-to (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Updating the spec file to reflect Fedora 24 (Daniel Veillard),<br />
+ Add const in five places to move 1 KiB to .rdata (Bruce Dawson),<br />
+ Fix missing part of comment for function xmlXPathEvalExpression() (Daniel Veillard),<br />
+ Get rid of "blanks wrapper" for parameter entities (Nick Wellnhofer),<br />
+ Simplify handling of parameter entity references (Nick Wellnhofer),<br />
+ Deduplicate code in encoding.c (Nick Wellnhofer),<br />
+ Make HTML parser functions take const pointers (Nick Wellnhofer),<br />
+ Build test programs only when needed (Nick Wellnhofer),<br />
+ Fix doc/examples/index.py (Nick Wellnhofer),<br />
+ Fix compiler warnings in threads.c (Nick Wellnhofer),<br />
+ Fix empty-body warning in nanohttp.c (Nick Wellnhofer),<br />
+ Fix cast-align warnings (Nick Wellnhofer),<br />
+ Fix unused-parameter warnings (Nick Wellnhofer),<br />
+ Rework entity boundary checks (Nick Wellnhofer),<br />
+ Don't switch encoding for internal parameter entities (Nick Wellnhofer),<br />
+ Merge duplicate code paths handling PE references (Nick Wellnhofer),<br />
+ Test SAX2 callbacks with entity substitution (Nick Wellnhofer),<br />
+ Support catalog and threads tests under --without-sax1 (Nick Wellnhofer),<br />
+ Misc fixes for 'make tests' (Nick Wellnhofer),<br />
+ Initialize keepBlanks in HTML parser (Nick Wellnhofer),<br />
+ Add test cases for bug 758518 (David Kilzer),<br />
+ Fix compiler warning in htmlParseElementInternal (Nick Wellnhofer),<br />
+ Remove useless check in xmlParseAttributeListDecl (Nick Wellnhofer),<br />
+ Allow zero sized memory input buffers (Nick Wellnhofer),<br />
+ Add TODO comment in xmlSwitchEncoding (Nick Wellnhofer),<br />
+ Check for integer overflow in xmlXPathFormatNumber (Nick Wellnhofer),<br />
+ Make Travis print UBSan stacktraces (Nick Wellnhofer),<br />
+ Add .travis.yml (Nick Wellnhofer),<br />
+ Fix expected error output in Python tests (Nick Wellnhofer),<br />
+ Simplify control flow in xmlParseStartTag2 (Nick Wellnhofer),<br />
+ Disable LeakSanitizer when running API tests (Nick Wellnhofer),<br />
+ Avoid out-of-bound array access in API tests (Nick Wellnhofer),<br />
+ Avoid spurious UBSan errors in parser.c (Nick Wellnhofer),<br />
+ Parse small XPath numbers more accurately (Nick Wellnhofer),<br />
+ Rework XPath rounding functions (Nick Wellnhofer),<br />
+ Fix white space in test output (Nick Wellnhofer),<br />
+ Fix axis traversal from attribute and namespace nodes (Nick Wellnhofer),<br />
+ Check for trailing characters in XPath expressions earlier (Nick Wellnhofer),<br />
+ Rework final handling of XPath results (Nick Wellnhofer),<br />
+ Make xmlXPathEvalExpression call xmlXPathEval (Nick Wellnhofer),<br />
+ Remove unused variables (Nick Wellnhofer),<br />
+ Don't print generic error messages in XPath tests (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Cleanups:<br />
+ Fix a couple of misleading indentation errors (Daniel Veillard),<br />
+ Remove unnecessary calls to xmlPopInput (Nick Wellnhofer)<br />
+ </li>
+</ul><h3>2.9.4: May 23 2016</h3><ul>
+ <li>Security:<br />
+ More format string warnings with possible format string vulnerability (David Kilzer),<br />
+ Avoid building recursive entities (Daniel Veillard),<br />
+ Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),<br />
+ Heap-based buffer-underreads due to xmlParseName (David Kilzer),<br />
+ Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),<br />
+ Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),<br />
+ Fix some format string warnings with possible format string vulnerability (David Kilzer),<br />
+ Detect change of encoding when parsing HTML names (Hugh Davenport),<br />
+ Fix inappropriate fetch of entities content (Daniel Veillard),<br />
+ Bug 759398: Heap use-after-free in xmlDictComputeFastKey &lt;https://bugzilla.gnome.org/show_bug.cgi?id=759398&gt; (Pranjal Jumde),<br />
+ Bug 758605: Heap-based buffer overread in xmlDictAddString &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758605&gt; (Pranjal Jumde),<br />
+ Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758588&gt; (David Kilzer),<br />
+ Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup &lt;https://bugzilla.gnome.org/show_bug.cgi?id=757711&gt; (Pranjal Jumde),<br />
+ Add missing increments of recursion depth counter to XML parser. (Peter Simons)<br />
+ </li>
+
+ <li>Documentation:<br />
+ Fix typo: s{ ec -&gt; cr }cipt (Jan Pokorný),<br />
+ Fix typos: dictio{ nn -&gt; n }ar{y,ies} (Jan Pokorný),<br />
+ Fix typos: PATH_{ SEAPARATOR -&gt; SEPARATOR } (Jan Pokorný),<br />
+ Correct a typo. (Shlomi Fish)<br />
+ </li>
+
+ <li>Portability:<br />
+ Correct the usage of LDFLAGS (Mattias Hansson),<br />
+ Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),<br />
+ libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),<br />
+ Fix apibuild for a recently added construct (Daniel Veillard),<br />
+ Use pkg-config to locate zlib when possible (Stewart Brodie),<br />
+ Use pkg-config to locate ICU when possible (Stewart Brodie),<br />
+ Portability to non C99 compliant compilers (Patrick Monnerat),<br />
+ dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),<br />
+ os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),<br />
+ os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),<br />
+ os400: implement CL command XMLCATALOG. (Patrick Monnerat),<br />
+ os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),<br />
+ os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),<br />
+ os400: implement CL command XMLLINT. (Patrick Monnerat),<br />
+ os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),<br />
+ os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),<br />
+ os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),<br />
+ os400: use like() for double type. (Patrick Monnerat),<br />
+ os400: use like() for int type. (Patrick Monnerat),<br />
+ os400: use like() for unsigned int type. (Patrick Monnerat),<br />
+ os400: use like() for enum types. (Patrick Monnerat),<br />
+ Add xz to xml2-config --libs output (Baruch Siach),<br />
+ Bug 760190: configure.ac should be able to build --with-icu without icu-config tool &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760190&gt; (David Kilzer),<br />
+ win32\VC10\config.h and VS 2015 (Bruce Dawson),<br />
+ Add configure maintainer mode (orzen)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Avoid an out of bound access when serializing malformed strings (Daniel Veillard),<br />
+ Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),<br />
+ Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),<br />
+ Bug 763071: heap-buffer-overflow in xmlStrncat &lt;https://bugzilla.gnome.org/show_bug.cgi?id=763071&gt; (Pranjal Jumde),<br />
+ Integer overflow parsing port number in URI (Michael Paddon),<br />
+ Fix an error with regexp on nullable counted char transition (Daniel Veillard),<br />
+ Fix memory leak with XPath namespace nodes (Nick Wellnhofer),<br />
+ Fix namespace axis traversal (Nick Wellnhofer),<br />
+ Fix null pointer deref in docs with no root element (Hugh Davenport),<br />
+ Fix XSD validation of URIs with ampersands (Alex Henrie),<br />
+ xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),<br />
+ xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),<br />
+ xmllint: flush stdout before interactive shell input. (Patrick Monnerat),<br />
+ Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),<br />
+ Fix namespace::node() XPath expression (Nick Wellnhofer),<br />
+ Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),<br />
+ Fix parsing of NCNames in XPath (Nick Wellnhofer),<br />
+ Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),<br />
+ Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),<br />
+ Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760921&gt; (David Kilzer),<br />
+ Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760861&gt; (David Kilzer),<br />
+ error.c: *input-&gt;cur == 0 does not mean no error (Pavel Raiskup),<br />
+ Add missing RNG test files (David Kilzer),<br />
+ Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760183&gt; (David Kilzer),<br />
+ Bug 758572: ASAN crash in make check &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758572&gt; (David Kilzer),<br />
+ Bug 721158: Missing ICU string when doing --version on xmllint &lt;https://bugzilla.gnome.org/show_bug.cgi?id=721158&gt; (David Kilzer),<br />
+ python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),<br />
+ Add autogen.sh to distrib (orzen),<br />
+ Heap-based buffer overread in xmlNextChar (Daniel Veillard)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Add more debugging info to runtest (Daniel Veillard),<br />
+ Implement "runtest -u" mode (David Kilzer),<br />
+ Add a make rule to rebuild for ASAN (Daniel Veillard)<br />
+ </li>
+</ul><h3>v2.9.3: Nov 20 2015</h3><ul>
+ <li>Security:<br />
+ CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),<br />
+ CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),<br />
+ CVE-2015-7499-2 Detect incoherency on GROW (Daniel Veillard),<br />
+ CVE-2015-7499-1 Add xmlHaltParser() to stop the parser (Daniel Veillard),<br />
+ CVE-2015-5312 Another entity expansion issue (David Drysdale),<br />
+ CVE-2015-7497 Avoid an heap buffer overflow in xmlDictComputeFastQKey (David Drysdale),<br />
+ CVE-2015-7498 Avoid processing entities after encoding conversion failures (Daniel Veillard),<br />
+ CVE-2015-8035 Fix XZ compression support loop (Daniel Veillard),<br />
+ CVE-2015-7942-2 Fix an error in previous Conditional section patch (Daniel Veillard),<br />
+ CVE-2015-7942 Another variation of overflow in Conditional sections (Daniel Veillard),<br />
+ CVE-2015-1819 Enforce the reader to run in constant memory (Daniel Veillard)<br />
+ CVE-2015-7941_2 Cleanup conditional section error handling (Daniel Veillard),<br />
+ CVE-2015-7941_1 Stop parsing on entities boundaries errors (Daniel Veillard),<br />
+ </li>
+
+ <li>Documentation:<br />
+ Correct spelling of "calling" (Alex Henrie),<br />
+ Fix a small error in xmllint --format description (Fabien Degomme),<br />
+ Avoid XSS on the search of xmlsoft.org (Daniel Veillard)<br />
+ </li>
+
+ <li>Portability:<br />
+ threads: use forward declarations only for glibc (Michael Heimpold),<br />
+ Update Win32 configure.js to search for configure.ac (Daniel Veillard)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Bug on creating new stream from entity (Daniel Veillard),<br />
+ Fix some loop issues embedding NEXT (Daniel Veillard),<br />
+ Do not print error context when there is none (Daniel Veillard),<br />
+ Avoid extra processing of MarkupDecl when EOF (Hugh Davenport),<br />
+ Fix parsing short unclosed comment uninitialized access (Daniel Veillard),<br />
+ Add missing Null check in xmlParseExternalEntityPrivate (Gaurav Gupta),<br />
+ Fix a bug in CData error handling in the push parser (Daniel Veillard),<br />
+ Fix a bug on name parsing at the end of current input buffer (Daniel Veillard),<br />
+ Fix the spurious ID already defined error (Daniel Veillard),<br />
+ Fix previous change to node sort order (Nick Wellnhofer),<br />
+ Fix a self assignment issue raised by clang (Scott Graham),<br />
+ Fail parsing early on if encoding conversion failed (Daniel Veillard),<br />
+ Do not process encoding values if the declaration if broken (Daniel Veillard),<br />
+ Silence clang's -Wunknown-attribute (Michael Catanzaro),<br />
+ xmlMemUsed is not thread-safe (Martin von Gagern),<br />
+ Fix support for except in nameclasses (Daniel Veillard),<br />
+ Fix order of root nodes (Nick Wellnhofer),<br />
+ Allow attributes on descendant-or-self axis (Nick Wellnhofer),<br />
+ Fix the fix to Windows locking (Steve Nairn),<br />
+ Fix timsort invariant loop re: Envisage article (Christopher Swenson),<br />
+ Don't add IDs in xmlSetTreeDoc (Nick Wellnhofer),<br />
+ Account for ID attributes in xmlSetTreeDoc (Nick Wellnhofer),<br />
+ Remove various unused value assignments (Philip Withnall),<br />
+ Fix missing entities after CVE-2014-3660 fix (Daniel Veillard),<br />
+ Revert "Missing initialization for the catalog module" (Daniel Veillard)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Reuse xmlHaltParser() where it makes sense (Daniel Veillard),<br />
+ xmlStopParser reset errNo (Daniel Veillard),<br />
+ Reenable xz support by default (Daniel Veillard),<br />
+ Recover unescaped less-than character in HTML recovery parsing (Daniel Veillard),<br />
+ Allow HTML serializer to output HTML5 DOCTYPE (Shaun McCance),<br />
+ Regression test for bug #695699 (Nick Wellnhofer),<br />
+ Add a couple of XPath tests (Nick Wellnhofer),<br />
+ Add Python 3 rpm subpackage (Tomas Radej),<br />
+ libxml2-config.cmake.in: update include directories (Samuel Martin),<br />
+ Adding example from bugs 738805 to regression tests (Daniel Veillard)<br />
+ </li>
+
+ <li>Cleanups:<br />
+ </li>
+</ul><h3>2.9.2: Oct 16 2014</h3><ul>
+ <li>Security:<br />
+ Fix for CVE-2014-3660 billion laugh variant (Daniel Veillard),<br />
+ CVE-2014-0191 Do not fetch external parameter entities (Daniel Veillard)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ fix memory leak xml header encoding field with XML_PARSE_IGNORE_ENC (Bart De Schuymer),<br />
+ xmlmemory: handle realloc properly (Yegor Yefremov),<br />
+ Python generator bug raised by the const change (Daniel Veillard),<br />
+ Windows Critical sections not released correctly (Daniel Veillard),<br />
+ Parser error on repeated recursive entity expansion containing &amp;lt; (Daniel Veillard),<br />
+ xpointer : fixing Null Pointers (Gaurav Gupta),<br />
+ Remove Unnecessary Null check in xpointer.c (Gaurav Gupta),<br />
+ parser bug on misformed namespace attributes (Dennis Filder),<br />
+ Pointer dereferenced before null check (Daniel Veillard),<br />
+ Leak of struct addrinfo in xmlNanoFTPConnect() (Gaurav Gupta),<br />
+ Possible overflow in HTMLParser.c (Daniel Veillard),<br />
+ python/tests/sync.py assumes Python dictionaries are ordered (John Beck),<br />
+ Fix Enum check and missing break (Gaurav Gupta),<br />
+ xmlIO: Handle error returns from dup() (Philip Withnall),<br />
+ Fix a problem properly saving URIs (Daniel Veillard),<br />
+ wrong error column in structured error when parsing attribute values (Juergen Keil),<br />
+ wrong error column in structured error when skipping whitespace in xml decl (Juergen Keil),<br />
+ no error column in structured error handler for xml schema validation errors (Juergen Keil),<br />
+ Couple of Missing Null checks (Gaurav Gupta),<br />
+ Add couple of missing Null checks (Daniel Veillard),<br />
+ xmlschemastypes: Fix potential array overflow (Philip Withnall),<br />
+ runtest: Fix a memory leak on parse failure (Philip Withnall),<br />
+ xmlIO: Fix an FD leak on gzdopen() failure (Philip Withnall),<br />
+ xmlcatalog: Fix a memory leak on quit (Philip Withnall),<br />
+ HTMLparser: Correctly initialise a stack allocated structure (Philip Withnall),<br />
+ Check for tmon in _xmlSchemaDateAdd() is incorrect (David Kilzer),<br />
+ Avoid Possible Null Pointer in trio.c (Gaurav Gupta),<br />
+ Fix processing in SAX2 in case of an allocation failure (Daniel Veillard),<br />
+ XML Shell command "cd" does not handle "/" at end of path (Daniel Veillard),<br />
+ Fix various Missing Null checks (Gaurav Gupta),<br />
+ Fix a potential NULL dereference (Daniel Veillard),<br />
+ Add a couple of misisng check in xmlRelaxNGCleanupTree (Gaurav Gupta),<br />
+ Add a missing argument check (Gaurav Gupta),<br />
+ Adding a check in case of allocation error (Gaurav Gupta),<br />
+ xmlSaveUri() incorrectly recomposes URIs with rootless paths (Dennis Filder),<br />
+ Adding some missing NULL checks (Gaurav),<br />
+ Fixes for xmlInitParserCtxt (Daniel Veillard),<br />
+ Fix regressions introduced by CVE-2014-0191 patch (Daniel Veillard),<br />
+ erroneously ignores a validation error if no error callback set (Daniel Veillard),<br />
+ xmllint was not parsing the --c14n11 flag (Sérgio Batista),<br />
+ Avoid Possible null pointer dereference in memory debug mode (Gaurav),<br />
+ Avoid Double Null Check (Gaurav),<br />
+ Restore context size and position after XPATH_OP_ARG (Nick Wellnhofer),<br />
+ Fix xmlParseInNodeContext() if node is not element (Daniel Veillard),<br />
+ Avoid a possible NULL pointer dereference (Gaurav),<br />
+ Fix xmlTextWriterWriteElement when a null content is given (Daniel Veillard),<br />
+ Fix an typo 'onrest' in htmlScriptAttributes (Daniel Veillard),<br />
+ fixing a ptotential uninitialized access (Daniel Veillard),<br />
+ Fix an fd leak in an error case (Daniel Veillard),<br />
+ Missing initialization for the catalog module (Daniel Veillard),<br />
+ Handling of XPath function arguments in error case (Nick Wellnhofer),<br />
+ Fix a couple of missing NULL checks (Gaurav),<br />
+ Avoid a possibility of dangling encoding handler (Gaurav),<br />
+ Fix HTML push parser to accept HTML_PARSE_NODEFDTD (Arnold Hendriks),<br />
+ Fix a bug loading some compressed files (Mike Alexander),<br />
+ Fix XPath node comparison bug (Gaurav),<br />
+ Type mismatch in xmlschemas.c (Gaurav),<br />
+ Type mismatch in xmlschemastypes.c (Gaurav),<br />
+ Avoid a deadcode in catalog.c (Daniel Veillard),<br />
+ run close socket on Solaris, same as we do on other platforms (Denis Pauk),<br />
+ Fix pointer dereferenced before null check (Gaurav),<br />
+ Fix a potential NULL dereference in tree code (Daniel Veillard),<br />
+ Fix potential NULL pointer dereferences in regexp code (Gaurav),<br />
+ xmllint --pretty crashed without following numeric argument (Tim Galeckas),<br />
+ Fix XPath expressions of the form '@ns:*' (Nick Wellnhofer),<br />
+ Fix XPath '//' optimization with predicates (Nick Wellnhofer),<br />
+ Clear up a potential NULL dereference (Daniel Veillard),<br />
+ Fix a possible NULL dereference (Gaurav),<br />
+ Avoid crash if allocation fails (Daniel Veillard),<br />
+ Remove occasional leading space in XPath number formatting (Daniel Veillard),<br />
+ Fix handling of mmap errors (Daniel Veillard),<br />
+ Catch malloc error and exit accordingly (Daniel Veillard),<br />
+ missing else in xlink.c (Ami Fischman),<br />
+ Fix a parsing bug on non-ascii element and CR/LF usage (Daniel Veillard),<br />
+ Fix a regression in xmlGetDocCompressMode() (Daniel Veillard),<br />
+ properly quote the namespace uris written out during c14n (Aleksey Sanin),<br />
+ Remove premature XInclude check on URI being relative (Alexey Neyman),<br />
+ Fix missing break on last() function for attributes (dcb),<br />
+ Do not URI escape in server side includes (Romain Bondue),<br />
+ Fix an error in xmlCleanupParser (Alexander Pastukhov)<br />
+ </li>
+
+ <li>Documentation:<br />
+ typo in error messages "colon are forbidden from..." (Daniel Veillard),<br />
+ Fix a link to James SAX documentation old page (Daniel Veillard),<br />
+ Fix typos in relaxng.c (Jan Pokorný),<br />
+ Fix a doc typo (Daniel Veillard),<br />
+ Fix typos in {tree,xpath}.c (errror) (Jan Pokorný),<br />
+ Add limitations about encoding conversion (Daniel Veillard),<br />
+ Fix typos in xmlschemas{,types}.c (Jan Pokorný),<br />
+ Fix incorrect spelling entites-&gt;entities (Jan Pokorný),<br />
+ Forgot to document 2.9.1 release, regenerate docs (Daniel Veillard)<br />
+ </li>
+
+ <li>Portability:<br />
+ AC_CONFIG_FILES and executable bit (Roumen Petrov),<br />
+ remove HAVE_CONFIG_H dependency in testlimits.c (Roumen Petrov),<br />
+ fix some tabs mixing incompatible with python3 (Roumen Petrov),<br />
+ Visual Studio 14 CTP defines snprintf() (Francis Dupont),<br />
+ OS400: do not try to copy unexisting doc files (Patrick Monnerat),<br />
+ OS400: use either configure.ac or configure.in. (Patrick Monnerat),<br />
+ os400: make-src.sh: create physical file with target CCSID (Patrick Monnerat),<br />
+ OS400: Add some more C macros equivalent procedures. (Patrick Monnerat),<br />
+ OS400: use C macros to implement equivalent RPG support procedures. (Patrick Monnerat),<br />
+ OS400: implement XPath macros as procedures for ILE/RPG support. (Patrick Monnerat),<br />
+ OS400: include in distribution tarball. (Patrick Monnerat),<br />
+ OS400: Add README: compilation directives and OS/400 specific stuff. (Patrick Monnerat),<br />
+ OS400: Add compilation scripts. (Patrick Monnerat),<br />
+ OS400: ILE RPG language header files. (Patrick Monnerat),<br />
+ OS400: implement some macros as functions for ILE/RPG language support (that as no macros). (Patrick Monnerat),<br />
+ OS400: UTF8&lt;--&gt;EBCDIC wrappers for system and external library calls (Patrick Monnerat),<br />
+ OS400: Easy character transcoding support (Patrick Monnerat),<br />
+ OS400: iconv functions compatibility wrappers and table builder. (Patrick Monnerat),<br />
+ OS400: create architecture directory. Implement dlfcn emulation. (Patrick Monnerat),<br />
+ Fix building when configuring without xpath and xptr (Daniel Veillard),<br />
+ configure: Add --with-python-install-dir (Jonas Eriksson),<br />
+ Fix compilation with minimum and xinclude. (Nicolas Le Cam),<br />
+ Compile out use of xmlValidateNCName() when not available. (Nicolas Le Cam),<br />
+ Fix compilation with minimum and schematron. (Nicolas Le Cam),<br />
+ Legacy needs xmlSAX2StartElement() and xmlSAX2EndElement(). (Nicolas Le Cam),<br />
+ Don't use xmlValidateName() when not available. (Nicolas Le Cam),<br />
+ Fix a portability issue on Windows (Longstreth Jon),<br />
+ Various portability patches for OpenVMS (Jacob (Jouk) Jansen),<br />
+ Use specific macros for portability to OS/400 (Patrick Monnerat),<br />
+ Add macros needed for OS/400 portability (Patrick Monnerat),<br />
+ Portability patch for fopen on OS/400 (Patrick Monnerat),<br />
+ Portability fixes for OS/400 (Patrick Monnerat),<br />
+ Improve va_list portability (Patrick Monnerat),<br />
+ Portability fix (Patrick Monnerat),<br />
+ Portability fix (Patrick Monnerat),<br />
+ Generic portability fix (Patrick Monnerat),<br />
+ Shortening lines in headers (Patrick Monnerat),<br />
+ build: Use pkg-config to find liblzma in preference to AC_CHECK_LIB (Philip Withnall),<br />
+ build: Add @LZMA_LIBS@ to libxml’s pkg-config files (Philip Withnall),<br />
+ fix some tabs mixing incompatible with python3 (Daniel Veillard),<br />
+ add additional defines checks for support "./configure --with-minimum" (Denis Pauk),<br />
+ Another round of fixes for older versions of Python (Arfrever Frehtes Taifersar Arahesis),<br />
+ python: fix drv_libxml2.py for python3 compatibility (Alexandre Rostovtsev),<br />
+ python: Fix compiler warnings when building python3 bindings (Armin K),<br />
+ Fix for compilation with python 2.6.8 (Petr Sumbera)<br />
+ </li>
+
+ <li>Improvements:<br />
+ win32/libxml2.def.src after rebuild in doc (Roumen Petrov),<br />
+ elfgcchack.h: more legacy needs xmlSAX2StartElement() and xmlSAX2EndElement() (Roumen Petrov),<br />
+ elfgcchack.h: add xmlXPathNodeEval and xmlXPathSetContextNode (Roumen Petrov),<br />
+ Provide cmake module (Samuel Martin),<br />
+ Fix a couple of issues raised by make dist (Daniel Veillard),<br />
+ Fix and add const qualifiers (Kurt Roeckx),<br />
+ Preparing for upcoming release of 2.9.2 (Daniel Veillard),<br />
+ Fix zlib and lzma libraries check via command line (Dmitriy),<br />
+ wrong error column in structured error when parsing end tag (Juergen Keil),<br />
+ doc/news.html: small update to avoid line join while generating NEWS. (Patrick Monnerat),<br />
+ Add methods for python3 iterator (Ron Angeles),<br />
+ Support element node traversal in document fragments. (Kyle VanderBeek),<br />
+ xmlNodeSetName: Allow setting the name to a substring of the currently set name (Tristan Van Berkom),<br />
+ Added macros for argument casts (Eric Zurcher),<br />
+ adding init calls to xml and html Read parsing entry points (Daniel Veillard),<br />
+ Get rid of 'REPLACEMENT CHARACTER' Unicode chars in xmlschemas.c (Jan Pokorný),<br />
+ Implement choice for name classes on attributes (Shaun McCance),<br />
+ Two small namespace tweaks (Daniel Veillard),<br />
+ xmllint --memory should fail on empty files (Daniel Veillard),<br />
+ Cast encoding name to char pointer to match arg type (Nikolay Sivov)<br />
+ </li>
+
+ <li>Cleanups:<br />
+ Removal of old configure.in (Daniel Veillard),<br />
+ Unreachable code in tree.c (Gaurav Gupta),<br />
+ Remove a couple of dead conditions (Gaurav Gupta),<br />
+ Avoid some dead code and cleanup in relaxng.c (Gaurav),<br />
+ Drop not needed checks (Denis Pauk),<br />
+ Fix a wrong test (Daniel Veillard)<br />
+ </li>
+</ul><h3>2.9.1: Apr 19 2013</h3><ul>
+ <li> Features:<br />
+ Support for Python3 (Daniel Veillard),<br />
+ Add xmlXPathSetContextNode and xmlXPathNodeEval (Alex Bligh)<br />
+ </li>
+
+ <li> Documentation:<br />
+ Add documentation for xmllint --xpath (Daniel Veillard),<br />
+ Fix the URL of the SAX documentation from James (Daniel Veillard),<br />
+ Fix spelling of "length". (Michael Wood)<br />
+ </li>
+
+ <li> Portability:<br />
+ Fix python bindings with versions older than 2.7 (Daniel Veillard),<br />
+ rebuild docs:Makefile.am (Roumen Petrov),<br />
+ elfgcchack.h after rebuild in doc (Roumen Petrov),<br />
+ elfgcchack for buf module (Roumen Petrov),<br />
+ Fix a uneeded and wrong extra link parameter (Daniel Veillard),<br />
+ Few cleanup patches for Windows (Denis Pauk),<br />
+ Fix rpmbuild --nocheck (Mark Salter),<br />
+ Fix for win32/configure.js and WITH_THREAD_ALLOC (Daniel Richard),<br />
+ Fix Broken multi-arch support in xml2-config (Daniel Veillard),<br />
+ Fix a portability issue for GCC &lt; 3.4.0 (Daniel Veillard),<br />
+ Windows build fixes (Daniel Richard),<br />
+ Fix a thread portability problem (Friedrich Haubensak),<br />
+ Downgrade autoconf requirement to 2.63 (Daniel Veillard)<br />
+ </li>
+
+ <li> Bug Fixes:<br />
+ Fix a linking error for python bindings (Daniel Veillard),<br />
+ Fix a couple of return without value (Jüri Aedla),<br />
+ Improve the hashing functions (Daniel Franke),<br />
+ Improve handling of xmlStopParser() (Daniel Veillard),<br />
+ Remove risk of lockup in dictionary initialization (Daniel Veillard),<br />
+ Activate detection of encoding in external subset (Daniel Veillard),<br />
+ Fix an output buffer flushing conversion bug (Mikhail Titov),<br />
+ Fix an old bug in xmlSchemaValidateOneElement (Csaba László),<br />
+ Fix configure cannot remove messages (Gilles Espinasse),<br />
+ fix schema validation in combination with xsi:nil (Daniel Veillard),<br />
+ xmlCtxtReadFile doesn't work with literal IPv6 URLs (Steve Wolf),<br />
+ Fix a few problems with setEntityLoader (Alexey Neyman),<br />
+ Detect excessive entities expansion upon replacement (Daniel Veillard),<br />
+ Fix the flushing out of raw buffers on encoding conversions (Daniel,<br />
+Veillard),<br />
+ Fix some buffer conversion issues (Daniel Veillard),<br />
+ When calling xmlNodeDump make sure we grow the buffer quickly (Daniel,<br />
+Veillard),<br />
+ Fix an error in the progressive DTD parsing code (Dan Winship),<br />
+ xmllint should not load DTD by default when using the reader (Daniel,<br />
+Veillard),<br />
+ Try IBM-037 when looking for EBCDIC handlers (Petr Sumbera),<br />
+ Fix potential out of bound access (Daniel Veillard),<br />
+ Fix large parse of file from memory (Daniel Veillard),<br />
+ Fix a bug in the nsclean option of the parser (Daniel Veillard),<br />
+ Fix a regression in 2.9.0 breaking validation while streaming (Daniel,<br />
+Veillard),<br />
+ Remove potential calls to exit() (Daniel Veillard)<br />
+ </li>
+
+ <li> Improvements:<br />
+ Regenerated API, and testapi, rebuild documentation (Daniel Veillard),<br />
+ Fix tree iterators broken by 2to3 script (Daniel Veillard),<br />
+ update all tests for Python3 and Python2 (Daniel Veillard),<br />
+ A few more fixes for python 3 affecting libxml2.py (Daniel Veillard),<br />
+ Fix compilation on Python3 (Daniel Veillard),<br />
+ Converting apibuild.py to python3 (Daniel Veillard),<br />
+ First pass at starting porting to python3 (Daniel Veillard),<br />
+ updated configure.in for python3 (Daniel Veillard),<br />
+ Add support for xpathRegisterVariable in Python (Shaun McCance),<br />
+ Added a regression tests from bug 694228 data (Daniel Veillard),<br />
+ Cache presence of '&lt;' in entities content (Daniel Veillard),<br />
+ Avoid extra processing on entities (Daniel Veillard),<br />
+ Python binding for xmlRegisterInputCallback (Alexey Neyman),<br />
+ Python bindings: DOM casts everything to xmlNode (Alexey Neyman),<br />
+ Define LIBXML_THREAD_ALLOC_ENABLED via xmlversion.h (Tim Starling),<br />
+ Adding streaming validation to runtest checks (Daniel Veillard),<br />
+ Add a --pushsmall option to xmllint (Daniel Veillard)<br />
+ </li>
+
+ <li> Cleanups:<br />
+ Switched comment in file to UTF-8 encoding (Daniel Veillard),<br />
+ Extend gitignore (Daniel Veillard),<br />
+ Silent the new python test on input (Alexey Neyman),<br />
+ Cleanup of a duplicate test (Daniel Veillard),<br />
+ Cleanup on duplicate test expressions (Daniel Veillard),<br />
+ Fix compiler warning after 153cf15905cf4ec080612ada6703757d10caba1e (Patrick,<br />
+Gansterer),<br />
+ Spec cleanups and a fix for multiarch support (Daniel Veillard),<br />
+ Silence a clang warning (Daniel Veillard),<br />
+ Cleanup the Copyright to be pure MIT Licence wording (Daniel Veillard),<br />
+ rand_seed should be static in dict.c (Wouter Van Rooy),<br />
+ Fix typos in parser comments (Jan Pokorný)<br />
+ </li>
+</ul><h3>2.9.0: Sep 11 2012</h3><ul>
+ <li> Features:<br />
+ A few new API entry points,<br />
+ More resilient push parser mode,<br />
+ A lot of portability improvement,<br />
+ Faster XPath evaluation<br />
+ </li>
+
+ <li> Documentation:<br />
+ xml2-config.1 markup error (Christian Weisgerber),<br />
+ libxml(3) manpage typo fix (John Bradshaw),<br />
+ More cleanups to the documentation part of libxml2 (Daniel Richard G)<br />
+ </li>
+
+ <li> Portability:<br />
+ Bug 676544 - fails to build with --without-sax1 (Akira TAGOH),<br />
+ fix builds not having stdint.h (Rob Richards),<br />
+ GetProcAddressA is available only on WinCE (Daniel Veillard),<br />
+ More updates and cleanups on autotools and Makefiles (Daniel Richard G),<br />
+ More changes for Win32 compilation (Eric Zurcher),<br />
+ Basic changes for Win32 builds of release 2.9.0: compile buf.c (Eric Zurcher),<br />
+ Bundles all generated files for python into the distribution (Daniel Richard G),<br />
+ Fix compiler warnings of wincecompat.c (Patrick Gansterer),<br />
+ Fix non __GNUC__ build (Patrick Gansterer),<br />
+ Fix windows unicode build (Patrick Gansterer),<br />
+ clean redefinition of {v}snprintf in C-source (Roumen Petrov),<br />
+ use xmlBuf... if DEBUG_INPUT is defined (Roumen Petrov),<br />
+ fix runtests to use pthreads support for various Unix platforms (Daniel Richard G),<br />
+ Various "make distcheck" and portability fixups 2nd part (Daniel Richard G),<br />
+ Various "make distcheck" and portability fixups (Daniel Richard G),<br />
+ Fix compilation on older Visual Studio (Daniel Veillard)<br />
+ </li>
+
+ <li> Bug Fixes:<br />
+ Change the XPath code to percolate allocation errors (Daniel Veillard),<br />
+ Fix reuse of xmlInitParser (Daniel Veillard),<br />
+ Fix potential crash on entities errors (Daniel Veillard),<br />
+ initialize var (Rob Richards),<br />
+ Fix the XPath arity check to also check the XPath stack limits (Daniel Veillard),<br />
+ Fix problem with specific and generic error handlers (Pietro Cerutti),<br />
+ Avoid a potential infinite recursion (Daniel Veillard),<br />
+ Fix an XSD error when generating internal automata (Daniel Veillard),<br />
+ Patch for xinclude of text using multibyte characters (Vitaly Ostanin),<br />
+ Fix a segfault on XSD validation on pattern error (Daniel Veillard),<br />
+ Fix missing xmlsave.h module which was ignored in recent builds (Daniel Veillard),<br />
+ Add a missing element check (Daniel Veillard),<br />
+ Adding various checks on node type though the API (Daniel Veillard),<br />
+ Namespace nodes can't be unlinked with xmlUnlinkNode (Daniel Veillard),<br />
+ Fix make dist to include new private header files (Daniel Veillard),<br />
+ More fixups on the push parser behaviour (Daniel Veillard),<br />
+ Strengthen behaviour of the push parser in problematic situations (Daniel Veillard),<br />
+ Enforce XML_PARSER_EOF state handling through the parser (Daniel Veillard),<br />
+ Fixup limits parser (Daniel Veillard),<br />
+ Do not fetch external parsed entities (Daniel Veillard),<br />
+ Fix an error in previous commit (Aron Xu),<br />
+ Fix entities local buffers size problems (Daniel Veillard),<br />
+ Fix parser local buffers size problems (Daniel Veillard),<br />
+ Fix a failure to report xmlreader parsing failures (Daniel Veillard)<br />
+ </li>
+
+ <li> Improvements:<br />
+ Keep libxml2.syms when running "make distclean" (Daniel Veillard),<br />
+ Allow to set the quoting character of an xmlWriter (Csaba Raduly),<br />
+ Keep non-significant blanks node in HTML parser (Daniel Veillard),<br />
+ Add a forbidden variable error number and message to XPath (Daniel Veillard),<br />
+ Support long path names on WNT (Michael Stahl),<br />
+ Improve HTML escaping of attribute on output (Daniel Veillard),<br />
+ Handle ICU_LIBS as LIBADD, not LDFLAGS to prevent linking errors (Arfrever Frehtes Taifersar Arahesis),<br />
+ Switching XPath node sorting to Timsort (Vojtech Fried),<br />
+ Optimizing '//' in XPath expressions (Nick Wellnhofer),<br />
+ Expose xmlBufShrink in the public tree API (Daniel Veillard),<br />
+ Visible HTML elements close the head tag (Conrad Irwin),<br />
+ Fix file and line report for XSD SAX and reader streaming validation (Daniel Veillard),<br />
+ Fix const qualifyer to definition of xmlBufferDetach (Daniel Veillard),<br />
+ minimize use of HAVE_CONFIG_H (Roumen Petrov),<br />
+ fixup regression in Various "make distcheck" and portability fixups (Roumen Petrov),<br />
+ Add support for big line numbers in error reporting (Daniel Veillard),<br />
+ Avoid using xmlBuffer for serialization (Daniel Veillard),<br />
+ Improve compatibility between xmlBuf and xmlBuffer (Daniel Veillard),<br />
+ Provide new accessors for xmlOutputBuffer (Daniel Veillard),<br />
+ Improvements for old buffer compatibility (Daniel Veillard),<br />
+ Expand the limit test program (Daniel Veillard),<br />
+ Improve error reporting on parser errors (Daniel Veillard),<br />
+ Implement some default limits in the XPath module (Daniel Veillard),<br />
+ Introduce some default parser limits (Daniel Veillard),<br />
+ Cleanups and new limit APIs for dictionaries (Daniel Veillard),<br />
+ Fixup for buf.c (Daniel Veillard),<br />
+ Cleanup URI module memory allocation code (Daniel Veillard),<br />
+ Extend testlimits (Daniel Veillard),<br />
+ More avoid quadratic behaviour (Daniel Veillard),<br />
+ Impose a reasonable limit on PI size (Daniel Veillard),<br />
+ first version of testlimits new test (Daniel Veillard),<br />
+ Avoid quadratic behaviour in some push parsing cases (Daniel Veillard),<br />
+ Impose a reasonable limit on comment size (Daniel Veillard),<br />
+ Impose a reasonable limit on attribute size (Daniel Veillard),<br />
+ Harden the buffer code and make it more compatible (Daniel Veillard),<br />
+ More cleanups for input/buffers code (Daniel Veillard),<br />
+ Cleanup function xmlBufResetInput(),<br /> to set input from Buffer (Daniel Veillard)
+ Swicth the test program for characters to new input buffers (Daniel Veillard),<br />
+ Convert the HTML tree module to the new buffers (Daniel Veillard),<br />
+ Convert of the HTML parser to new input buffers (Daniel Veillard),<br />
+ Convert the writer to new output buffer and save APIs (Daniel Veillard),<br />
+ Convert XMLReader to the new input buffers (Daniel Veillard),<br />
+ New saving functions using xmlBuf and conversion (Daniel Veillard),<br />
+ Provide new xmlBuf based saving functions (Daniel Veillard),<br />
+ Convert XInclude to the new input buffers (Daniel Veillard),<br />
+ Convert catalog code to the new input buffers (Daniel Veillard),<br />
+ Convert C14N to the new Input buffer (Daniel Veillard),<br />
+ Convert xmlIO.c to the new input and output buffers (Daniel Veillard),<br />
+ Convert XML parser to the new input buffers (Daniel Veillard),<br />
+ Incompatible change to the Input and Output buffers (Daniel Veillard),<br />
+ Adding new encoding function to deal with the new structures (Daniel Veillard),<br />
+ Convert XPath to xmlBuf (Daniel Veillard),<br />
+ Adding a new buf module for buffers (Daniel Veillard),<br />
+ Memory error within SAX2 reuse common framework (Daniel Veillard),<br />
+ Fix xmllint --xpath node initialization (Daniel Veillard)<br />
+ </li>
+
+ <li> Cleanups:<br />
+ Various cleanups to avoid compiler warnings (Daniel Veillard),<br />
+ Big space and tab cleanup (Daniel Veillard),<br />
+ Followup to LibXML2 docs/examples cleanup patch (Daniel Veillard),<br />
+ Second round of cleanups for LibXML2 docs/examples (Daniel Richard),<br />
+ Remove all .cvsignore as they are not used anymore (Daniel Veillard),<br />
+ Fix a Timsort function helper comment (Daniel Veillard),<br />
+ Small cleanup for valgrind target (Daniel Veillard),<br />
+ Patch for portability of latin characters in C files (Daniel Veillard),<br />
+ Cleanup some of the parser code (Daniel Veillard),<br />
+ Fix a variable name in comment (Daniel Veillard),<br />
+ Regenerated testapi.c (Daniel Veillard),<br />
+ Regenerating docs and API files (Daniel Veillard),<br />
+ Small cleanup of unused variables in test (Daniel Veillard),<br />
+ Expand .gitignore with more files (Daniel Veillard)<br />
+ </li>
+</ul><h3>2.8.0: May 23 2012</h3><ul>
+ <li>Features:
+ add lzma compression support (Anders F Bjorklund)
+ </li>
+
+ <li>Documentation:
+ xmlcatalog: Add uri and delegateURI to possible add types in man page. (Ville Skyttä),
+ Update README.tests (Daniel Veillard),
+ URI handling code is not OOM resilient (Daniel Veillard),
+ Fix an error in comment (Daniel Veillard),
+ Fixed bug #617016 (Daniel Mustieles),
+ Fixed two typos in the README document (Daniel Neel),
+ add generated html files (Anders F Bjorklund),
+ Clarify the need to use xmlFreeNode after xmlUnlinkNode (Daniel Veillard),
+ Improve documentation a bit (Daniel Veillard),
+ Updated URL for lxml python bindings (Daniel Veillard)
+ </li>
+
+ <li>Portability:
+ Restore code for Windows compilation (Daniel Veillard),
+ Remove git error message during configure (Christian Dywan),
+ xmllint: Build fix for endTimer if !defined(HAVE_GETTIMEOFDAY) (Patrick R. Gansterer),
+ remove a bashism in confgure.in (John Hein),
+ undef ERROR if already defined (Patrick R. Gansterer),
+ Fix library problems with mingw-w64 (Michael Cronenworth),
+ fix windows build. ifdef addition from bug 666491 makes no sense (Rob Richards),
+ prefer native threads on win32 (Sam Thursfield),
+ Allow to compile with Visual Studio 2010 (Thomas Lemm),
+ Fix mingw's snprintf configure check (Andoni Morales),
+ fixed a 64bit big endian issue (Marcus Meissner),
+ Fix portability failure if netdb.h lacks NO_ADDRESS (Daniel Veillard),
+ Fix windows build from lzma addition (Rob Richards),
+ autogen: Only check for libtoolize (Colin Walters),
+ Fix the Windows build files (Patrick von Reth),
+ 634846 Remove a linking option breaking Windows VC10 (Daniel Veillard),
+ 599241 fix an initialization problem on Win64 (Andrew W. Nosenko),
+ fix win build (Rob Richards)
+ </li>
+
+ <li>Bug fixes:
+ Part for rand_r checking missing (Daniel Veillard),
+ Cleanup on randomization (Daniel Veillard),
+ Fix undefined reference in python module (Pacho Ramos),
+ Fix a race in xmlNewInputStream (Daniel Veillard),
+ Fix weird streaming RelaxNG errors (Noam),
+ Fix various bugs in new code raised by the API checking (Daniel Veillard),
+ Fix various problems with "make dist" (Daniel Veillard),
+ Fix a memory leak in the xzlib code (Daniel Veillard),
+ HTML parser error with &lt;noscript&gt; in the &lt;head&gt; (Denis Pauk),
+ XSD: optional element in complex type extension (Remi Gacogne),
+ Fix html serialization error and htmlSetMetaEncoding() (Daniel Veillard),
+ Fix a wrong return value in previous patch (Daniel Veillard),
+ Fix an uninitialized variable use (Daniel Veillard),
+ Fix a compilation problem with --minimum (Brandon Slack),
+ Remove redundant and ungarded include of resolv.h (Daniel Veillard),
+ xinclude with parse="text" does not use the entity loader (Shaun McCance),
+ Allow to parse 1 byte HTML files (Denis Pauk),
+ Patch that fixes the skipping of the HTML_PARSE_NOIMPLIED flag (Martin Schröder),
+ Avoid memory leak if xmlParserInputBufferCreateIO fails (Lin Yi-Li),
+ Prevent an infinite loop when dumping a node with encoding problems (Timothy Elliott),
+ xmlParseNodeInContext problems with an empty document (Tim Elliott),
+ HTML element position is not detected propperly (Pavel Andrejs),
+ Fix an off by one pointer access (Jüri Aedla),
+ Try to fix a problem with entities in SAX mode (Daniel Veillard),
+ Fix a crash with xmllint --path on empty results (Daniel Veillard),
+ Fixed bug #667946 (Daniel Mustieles),
+ Fix a logic error in Schemas Component Constraints (Ryan Sleevi),
+ Fix a wrong enum type use in Schemas Types (Nico Weber),
+ Fix SAX2 builder in case of undefined attributes namespace (Daniel Veillard),
+ Fix SAX2 builder in case of undefined element namespaces (Daniel Veillard),
+ fix reference to STDOUT_FILENO on MSVC (Tay Ray Chuan),
+ fix a pair of possible out of array char references (Daniel Veillard),
+ Fix an allocation error when copying entities (Daniel Veillard),
+ Make sure the parser returns when getting a Stop order (Chris Evans),
+ Fix some potential problems on reallocation failures(parser.c) (Xia Xinfeng),
+ Fix a schema type duration comparison overflow (Daniel Veillard),
+ Fix an unimplemented part in RNG value validation (Daniel Veillard),
+ Fix missing error status in XPath evaluation (Daniel Veillard),
+ Hardening of XPath evaluation (Daniel Veillard),
+ Fix an off by one error in encoding (Daniel Veillard),
+ Fix RELAX NG include bug #655288 (Shaun McCance),
+ Fix XSD validation bug #630130 (Toyoda Eizi),
+ Fix some potential problems on reallocation failures (Chris Evans),
+ __xmlRaiseError: fix use of the structured callback channel (Dmitry V. Levin),
+ __xmlRaiseError: fix the structured callback channel's data initialization (Dmitry V. Levin),
+ Fix memory corruption when xmlParseBalancedChunkMemoryInternal is called from xmlParseBalancedChunk (Rob Richards),
+ Small fix for previous commit (Daniel Veillard),
+ Fix a potential freeing error in XPath (Daniel Veillard),
+ Fix a potential memory access error (Daniel Veillard),
+ Reactivate the shared library versionning script (Daniel Veillard)
+ </li>
+
+ <li>Improvements:
+ use mingw C99 compatible functions {v}snprintf instead those from MSVC runtime (Roumen Petrov),
+ New symbols added for the next release (Daniel Veillard),
+ xmlTextReader bails too quickly on error (Andy Lutomirski),
+ Use a hybrid allocation scheme in xmlNodeSetContent (Conrad Irwin),
+ Use buffers when constructing string node lists. (Conrad Irwin),
+ Add HTML parser support for HTML5 meta charset encoding declaration (Denis Pauk),
+ wrong message for double hyphen in comment XML error (Bryan Henderson),
+ Fix "make tst" to grab lzma lib too (Daniel Veillard),
+ Add "whereis" command to xmllint shell (Ryan),
+ Improve xmllint shell (Ryan),
+ add function xmlTextReaderRelaxNGValidateCtxt() (Noam Postavsky),
+ Add --system support to autogen.sh (Daniel Veillard),
+ Add hash randomization to hash and dict structures (Daniel Veillard),
+ included xzlib in dist (Anders F Bjorklund),
+ move xz/lzma helpers to separate included files (Anders F Bjorklund),
+ add generated devhelp files (Anders F Bjorklund),
+ add XML_WITH_LZMA to api (Anders F Bjorklund),
+ autogen.sh: Honor NOCONFIGURE environment variable (Colin Walters),
+ Improve the error report on undefined REFs (Daniel Veillard),
+ Add exception for new W3C PI xml-model (Daniel Veillard),
+ Add options to ignore the internal encoding (Daniel Veillard),
+ testapi: use the right type for the check (Stefan Kost),
+ various: handle return values of write calls (Stefan Kost),
+ testWriter: xmlTextWriterWriteFormatElement wants an int instead of a long int (Stefan Kost),
+ runxmlconf: update to latest testsuite version (Stefan Kost),
+ configure: add -Wno-long-long to CFLAGS (Stefan Kost),
+ configure: support silent automake rules if possible (Stefan Kost),
+ xmlmemory: add a cast as size_t has no portable printf modifier (Stefan Kost),
+ __xmlRaiseError: remove redundant schannel initialization (Dmitry V. Levin),
+ __xmlRaiseError: do cheap code check early (Dmitry V. Levin)
+ </li>
+
+ <li>Cleanups:
+ Cleanups before 2.8.0-rc2 (Daniel Veillard),
+ Avoid an extra operation (Daniel Veillard),
+ Remove vestigial de-ANSI-fication support. (Javier Jardón),
+ autogen.sh: Fix typo (Javier Jardón),
+ Do not use unsigned but unsigned int (Daniel Veillard),
+ Remove two references to u_short (Daniel Veillard),
+ Fix -Wempty-body warning from clang (Nico Weber),
+ Cleanups of lzma support (Daniel Veillard),
+ Augment the list of ignored files (Daniel Veillard),
+ python: remove unused variable (Stefan Kost),
+ python: flag two unused args (Stefan Kost),
+ configure: acconfig.h is deprecated since autoconf-2.50 (Stefan Kost),
+ xpath: remove unused variable (Stefan Kost)
+ </li>
+</ul><h3>2.7.8: Nov 4 2010</h3><ul>
+ <li> Features:
+ 480323 add code to plug in ICU converters by default (Giuseppe Iuculano),
+ Add xmlSaveOption XML_SAVE_WSNONSIG (Adam Spragg)
+ </li>
+ <li> Documentation:
+ Fix devhelp documentation installation (Mike Hommey),
+ Fix web site encoding problems (Daniel Veillard),
+ Fix a couple of typo in HTML parser error messages (Michael Day),
+ Forgot to update the news page for 0.7.7 (Daniel Veillard)
+ </li>
+ <li> Portability:
+ 607273 Fix python detection on MSys/Windows (LRN),
+ 614087 Fix Socket API usage to allow Windows64 compilation (Ozkan Sezer),
+ Fix compilation with Clang (Koop Mast),
+ Fix Win32 build (Rob Richards)
+ </li>
+ <li> Bug Fixes:
+ 595789 fix a remaining potential Solaris problem (Daniel Veillard),
+ 617468 fix progressive HTML parsing with style using "'" (Denis Pauk),
+ 616478 Fix xmllint shell write command (Gwenn Kahz),
+ 614005 Possible erroneous HTML parsing on unterminated script (Pierre Belzile),
+ 627987 Fix XSD IDC errors in imported schemas (Jim Panetta),
+ 629325 XPath rounding errors first cleanup (Phil Shafer),
+ 630140 fix iso995x encoding error (Daniel Veillard),
+ make sure htmlCtxtReset do reset the disableSAX field (Daniel Veillard),
+ Fix a change of semantic on XPath preceding and following axis (Daniel Veillard),
+ Fix a potential segfault due to weak symbols on pthreads (Mike Hommey),
+ Fix a leak in XPath compilation (Daniel Veillard),
+ Fix the semantic of XPath axis for namespace/attribute context nodes (Daniel Veillard),
+ Avoid a descriptor leak in catalog loading code (Carlo Bramini),
+ Fix a small bug in XPath evaluation code (Marius Wachtler),
+ Fix handling of XML-1.0 XML namespace declaration (Daniel Veillard),
+ Fix errors in XSD double validation check (Csaba Raduly),
+ Fix handling of apos in URIs (Daniel Veillard),
+ xmlTextReaderReadOuterXml should handle DTD (Rob Richards),
+ Autogen.sh needs to create m4 directory (Rob Richards)
+ </li>
+ <li> Improvements:
+ 606592 update language ID parser to RFC 5646 (Daniel Veillard),
+ Sort python generated stubs (Mike Hommey),
+ Add an HTML parser option to avoid a default doctype (Daniel Veillard)
+ </li>
+ <li> Cleanups:
+ 618831 don't ship generated files in git (Adrian Bunk),
+ Switch from the obsolete mkinstalldirs to AC_PROG_MKDIR_P (Adrian Bunk),
+ Various cleanups on encoding handling (Daniel Veillard),
+ Fix xmllint to use format=1 for default formatting (Adam Spragg),
+ Force _xmlSaveCtxt.format to be 0 or 1 (Adam Spragg),
+ Cleanup encoding pointer comparison (Nikolay Sivov),
+ Small code cleanup on previous patch (Daniel Veillard)
+ </li>
+</ul><h3>2.7.7: Mar 15 2010</h3><ul>
+ <li> Improvements:
+ Adding a --xpath option to xmllint (Daniel Veillard),
+ Make HTML parser non-recursive (Eugene Pimenov)
+ </li>
+ <li> Portability:
+ relaxng.c: cast to allow compilation with sun studio 11 (Ben Walton),
+ Fix build failure on Sparc solaris (Roumen Petrov),
+ use autoreconf in autogen.sh (Daniel Veillard),
+ Fix build with mingw (Roumen Petrov),
+ Upgrade some of the configure and autogen (Daniel Veillard),
+ Fix relaxNG tests in runtest for Windows runtest.c: initialize ret (Rob Richards),
+ Fix a const warning in xmlNodeSetBase (Martin Trappel),
+ Fix python generator to not use deprecated xmllib (Daniel Veillard),
+ Update some automake files (Daniel Veillard),
+ 598785 Fix nanohttp on Windows (spadix)
+ </li>
+ <li> Bug Fixes:
+ libxml violates the zlib interface and crashes (Mark Adler),
+ Fix broken escape behaviour in regexp ranges (Daniel Veillard),
+ Fix missing win32 libraries in libxml-2.0.pc (Volker Grabsch),
+ Fix detection of python linker flags (Daniel Macks),
+ fix build error in libxml2/python (Paul Smith),
+ ChunkParser: Incorrect decoding of small xml files (Raul Hudea),
+ htmlCheckEncoding doesn't update input-end after shrink (Eugene Pimenov),
+ Fix a missing #ifdef (Daniel Veillard),
+ Fix encoding selection for xmlParseInNodeContext (Daniel Veillard),
+ xmlPreviousElementSibling mistake (François Delyon),
+ 608773 add a missing check in xmlGROW (Daniel Veillard),
+ Fix xmlParseInNodeContext for HTML content (Daniel Veillard),
+ Fix lost namespace when copying node * tree.c: reconcile namespace if not found (Rob Richards),
+ Fix some missing commas in HTML element lists (Eugene Pimenov),
+ Correct variable type to unsigned (Nikolay Sivov),
+ Recognize ID attribute in HTML without DOCTYPE (Daniel Veillard),
+ Fix memory leak in xmlXPathEvalExpression() (Martin),
+ Fix an init bug in global.c (Kai Henning),
+ Fix xmlNodeSetBase() comment (Daniel Veillard),
+ Fix broken escape behaviour in regexp ranges (Daniel Veillard),
+ Don't give default HTML boolean attribute values in parser (Daniel Veillard),
+ xmlCtxtResetLastError should reset ctxt-errNo (Daniel Veillard)
+ </li>
+ <li> Cleanups:
+ Cleanup a couple of weirdness in HTML parser (Eugene Pimenov)
+ </li>
+</ul><h3>2.7.6: Oct 6 2009</h3><ul>
+ <li> Bug Fixes:
+ Restore thread support in default configuration (Andrew W. Nosenko),
+ URI with no path parsing problem (Daniel Veillard),
+ Minor patch for conditional defines in threads.c (Eric Zurcher)
+ </li>
+</ul><h3>2.7.5: Sep 24 2009</h3><ul>
+ <li> Bug Fixes:
+ Restore behavior of --with-threads without argument (Andrew W. Nosenko),
+ Fix memory leak when doc is NULL (Rob Richards),
+ 595792 fixing a RelaxNG bug introduced in 2.7.4 (Daniel Veillard),
+ Fix a Relaxng bug raised by libvirt test suite (Daniel Veillard),
+ Fix a parsing problem with little data at startup (Daniel Veillard),
+ link python module with python library (Frederic Crozat),
+ 594874 Forgot an fclose in xmllint (Daniel Veillard)
+ </li>
+ <li> Cleanup:
+ Adding symbols.xml to EXTRA_DIST (Daniel Veillard)
+ </li>
+</ul><h3>2.7.4: Sep 10 2009</h3><ul>
+ <li>Improvements:
+ Switch to GIT (GNOME),
+ Add symbol versioning to libxml2 shared libs (Daniel Veillard)
+ </li>
+ <li>Portability:
+ 593857 try to work around thread pbm MinGW 4.4 (Daniel Veillard),
+ 594250 rename ATTRIBUTE_ALLOC_SIZE to avoid clashes (Daniel Veillard),
+ Fix Windows build * relaxng.c: fix windows build (Rob Richards),
+ Fix the globals.h to use XMLPUBFUN (Paul Smith),
+ Problem with extern extern in header (Daniel Veillard),
+ Add -lnetwork for compiling on Haiku (Scott McCreary),
+ Runtest portability patch for Solaris (Tim Rice),
+ Small patch to accomodate the Haiku OS (Scott McCreary),
+ 584605 package VxWorks folder in the distribution (Daniel Veillard),
+ 574017 Realloc too expensive on most platform (Daniel Veillard),
+ Fix windows build (Rob Richards),
+ 545579 doesn't compile without schema support (Daniel Veillard),
+ xmllint use xmlGetNodePath when not compiled in (Daniel Veillard),
+ Try to avoid __imp__xmlFree link trouble on msys (Daniel Veillard),
+ Allow to select the threading system on Windows (LRN),
+ Fix Solaris binary links, cleanups (Daniel Veillard),
+ Bug 571059 – MSVC doesn't work with the bakefile (Intron),
+ fix ATTRIBUTE_PRINTF header clash (Belgabor and Mike Hommey),
+ fixes for Borland/CodeGear/Embarcadero compilers (Eric Zurcher)
+ </li>
+ <li>Documentation:
+ 544910 typo: "renciliateNs" (Leonid Evdokimov),
+ Add VxWorks to list of OSes (Daniel Veillard),
+ Regenerate the documentation and update for git (Daniel Veillard),
+ 560524 ¿ xmlTextReaderLocalName description (Daniel Veillard),
+ Added sponsoring by AOE media for the server (Daniel Veillard),
+ updated URLs for GNOME (Vincent Lefevre),
+ more warnings about xmlCleanupThreads and xmlCleanupParser (Daniel Veillard)
+ </li>
+ <li>Bug fixes:
+ 594514 memory leaks - duplicate initialization (MOD),
+ Wrong block opening in htmlNodeDumpOutputInternal (Daniel Veillard),
+ 492317 Fix Relax-NG validation problems (Daniel Veillard),
+ 558452 fight with reg test and error report (Daniel Veillard),
+ 558452 RNG compilation of optional multiple child (Daniel Veillard),
+ 579746 XSD validation not correct / nilable groups (Daniel Veillard),
+ 502960 provide namespace stack when parsing entity (Daniel Veillard),
+ 566012 part 2 fix regresion tests and push mode (Daniel Veillard),
+ 566012 autodetected encoding and encoding conflict (Daniel Veillard),
+ 584220 xpointer(/) and xinclude problems (Daniel Veillard),
+ 587663 Incorrect Attribute-Value Normalization (Daniel Veillard),
+ 444994 HTML chunked failure for attribute with &lt;&gt; (Daniel Veillard),
+ Fix end of buffer char being split in XML parser (Daniel Veillard),
+ Non ASCII character may be split at buffer end (Adiel Mittmann),
+ 440226 Add xmlXIncludeProcessTreeFlagsData API (Stefan Behnel),
+ 572129 speed up parsing of large HTML text nodes (Markus Kull),
+ Fix HTML parsing with 0 character in CDATA (Daniel Veillard),
+ Fix SetGenericErrorFunc and SetStructured clash (Wang Lam),
+ 566012 Incomplete EBCDIC parsing support (Martin Kogler),
+ 541335 HTML avoid creating 2 head or 2 body element (Daniel Veillard),
+ 541237 error correcting missing end tags in HTML (Daniel Veillard),
+ 583439 missing line numbers in push mode (Daniel Veillard),
+ 587867 xmllint --html --xmlout serializing as HTML (Daniel Veillard),
+ 559501 avoid select and use poll for nanohttp (Raphael Prevost),
+ 559410 - Regexp bug on (...)? constructs (Daniel Veillard),
+ Fix a small problem on previous HTML parser patch (Daniel Veillard),
+ 592430 - HTML parser runs into endless loop (Daniel Veillard),
+ 447899 potential double free in xmlFreeTextReader (Daniel Veillard),
+ 446613 small validation bug mixed content with NS (Daniel Veillard),
+ Fix the problem of revalidating a doc with RNG (Daniel Veillard),
+ Fix xmlKeepBlanksDefault to not break indent (Nick Wellnhofer),
+ 512131 refs from externalRef part need to be added (Daniel Veillard),
+ 512131 crash in xmlRelaxNGValidateFullElement (Daniel Veillard),
+ 588441 allow '.' in HTML Names even if invalid (Daniel Veillard),
+ 582913 Fix htmlSetMetaEncoding() to be nicer (Daniel Veillard),
+ 579317 Try to find the HTML encoding information (Daniel Veillard),
+ 575875 don't output charset=html (Daniel Veillard),
+ 571271 fix semantic of xsd:all with minOccurs=0 (Daniel Veillard),
+ 570702 fix a bug in regexp determinism checking (Daniel Veillard),
+ 567619 xmlValidateNotationUse missing param test (Daniel Veillard),
+ 574393 ¿ utf-8 filename magic for compressed files (Hans Breuer),
+ Fix a couple of problems in the parser (Daniel Veillard),
+ 585505 ¿ Document ids and refs populated by XSD (Wayne Jensen),
+ 582906 XSD validating multiple imports of the same schema (Jason Childs),
+ Bug 582887 ¿ problems validating complex schemas (Jason Childs),
+ Bug 579729 ¿ fix XSD schemas parsing crash (Miroslav Bajtos),
+ 576368 ¿ htmlChunkParser with special attributes (Jiri Netolicky),
+ Bug 565747 ¿ relax anyURI data character checking (Vincent Lefevre),
+ Preserve attributes of include start on tree copy (Petr Pajas),
+ Skip silently unrecognized XPointer schemes (Jakub Wilk),
+ Fix leak on SAX1, xmllint --sax1 option and debug (Daniel Veillard),
+ potential NULL dereference on non-glibc (Jim Meyering),
+ Fix an XSD validation crash (Daniel Veillard),
+ Fix a regression in streaming entities support (Daniel Veillard),
+ Fix a couple of ABI issues with C14N 1.1 (Aleksey Sanin),
+ Aleksey Sanin support for c14n 1.1 (Aleksey Sanin),
+ reader bug fix with entities (Daniel Veillard),
+ use options from current parser ctxt for external entities (Rob Richards),
+ 581612 use %s to printf strings (Christian Persch),
+ 584605 change the threading initialization sequence (Igor Novoseltsev),
+ 580705 keep line numbers in HTML parser (Aaron Patterson),
+ 581803 broken HTML table attributes init (Roland Steiner),
+ do not set error code in xmlNsWarn (Rob Richards),
+ 564217 fix structured error handling problems,
+ reuse options from current parser for entities (Rob Richards),
+ xmlXPathRegisterNs should not allow enpty prefixes (Daniel Veillard),
+ add a missing check in xmlAddSibling (Kris Breuker),
+ avoid leaks on errors (Jinmei Tatuya)
+ </li>
+ <li>Cleanup:
+ Chasing dead assignments reported by clang-scan (Daniel Veillard),
+ A few more safety cleanup raised by scan (Daniel Veillard),
+ Fixing assorted potential problems raised by scan (Daniel Veillard),
+ Potential uninitialized arguments raised by scan (Daniel Veillard),
+ Fix a bunch of scan 'dead increments' and cleanup (Daniel Veillard),
+ Remove a pedantic warning (Daniel Veillard),
+ 555833 always use rm -f in uninstall-local (Daniel Veillard),
+ 542394 xmlRegisterOutputCallbacks MAX_INPUT_CALLBACK (Daniel Veillard),
+ Autoregenerate libxml2.syms automated checkings (Daniel Veillard),
+ Make xmlRecoverDoc const (Martin Trappel) (Daniel Veillard),
+ Both args of xmlStrcasestr are const (Daniel Veillard),
+ hide the nbParse* variables used for debugging (Mike Hommey),
+ 570806 changed include of config.h (William M. Brack),
+ cleanups and error reports when xmlTextWriterVSprintf fails (Jinmei Tatuya)
+ </li>
+</ul><h3>2.7.3: Jan 18 2009</h3><ul>
+ <li>Build fix: fix build when HTML support is not included.</li>
+ <li>Bug fixes: avoid memory overflow in gigantic text nodes,
+ indentation problem on the writed (Rob Richards),
+ xmlAddChildList pointer problem (Rob Richards and Kevin Milburn),
+ xmlAddChild problem with attribute (Rob Richards and Kris Breuker),
+ avoid a memory leak in an edge case (Daniel Zimmermann),
+ deallocate some pthread data (Alex Ott).</li>
+ <li>Improvements: configure option to avoid rebuilding docs (Adrian Bunk),
+ limit text nodes to 10MB max by default, add element traversal
+ APIs, add a parser option to enable pre 2.7 SAX behavior (Rob Richards),
+ add gcc malloc checking (Marcus Meissner), add gcc printf like functions
+ parameters checking (Marcus Meissner).</li>
+</ul><h3>2.7.2: Oct 3 2008</h3><ul>
+ <li>Portability fix: fix solaris compilation problem, fix compilation
+ if XPath is not configured in</li>
+ <li>Bug fixes: nasty entity bug introduced in 2.7.0, restore old behaviour
+ when saving an HTML doc with an xml dump function, HTML UTF-8 parsing
+ bug, fix reader custom error handlers (Riccardo Scussat)
+ </li><li>Improvement: xmlSave options for more flexibility to save as
+ XML/HTML/XHTML, handle leading BOM in HTML documents</li>
+</ul><h3>2.7.1: Sep 1 2008</h3><ul>
+ <li>Portability fix: Borland C fix (Moritz Both)</li>
+ <li>Bug fixes: python serialization wrappers, XPath QName corner
+ case handking and leaks (Martin)</li>
+ <li>Improvement: extend the xmlSave to handle HTML documents and trees</li>
+ <li>Cleanup: python serialization wrappers</li>
+</ul><h3>2.7.0: Aug 30 2008</h3><ul>
+ <li>Documentation: switch ChangeLog to UTF-8, improve mutithreads and
+ xmlParserCleanup docs</li>
+ <li>Portability fixes: Older Win32 platforms (Rob Richards), MSVC
+ porting fix (Rob Richards), Mac OS X regression tests (Sven Herzberg),
+ non GNUCC builds (Rob Richards), compilation on Haiku (Andreas Färber)
+ </li>
+ <li>Bug fixes: various realloc problems (Ashwin), potential double-free
+ (Ashwin), regexp crash, icrash with invalid whitespace facets (Rob
+ Richards), pattern fix when streaming (William Brack), various XML
+ parsing and validation fixes based on the W3C regression tests, reader
+ tree skipping function fix (Ashwin), Schemas regexps escaping fix
+ (Volker Grabsch), handling of entity push errors (Ashwin), fix a slowdown
+ when encoder cant serialize characters on output</li>
+ <li>Code cleanup: compilation fix without the reader, without the output
+ (Robert Schwebel), python whitespace (Martin), many space/tabs cleanups,
+ serious cleanup of the entity handling code</li>
+ <li>Improvement: switch parser to XML-1.0 5th edition, add parsing flags
+ for old versions, switch URI parsing to RFC 3986,
+ add xmlSchemaValidCtxtGetParserCtxt (Holger Kaelberer),
+ new hashing functions for dictionnaries (based on Stefan Behnel work),
+ improve handling of misplaced html/head/body in HTML parser, better
+ regression test tools and code coverage display, better algorithms
+ to detect various versions of the billion laughts attacks, make
+ arbitrary parser limits avoidable as a parser option</li>
+</ul><h3>2.6.32: Apr 8 2008</h3><ul>
+ <li>Documentation: returning heap memory to kernel (Wolfram Sang),
+ trying to clarify xmlCleanupParser() use, xmlXPathContext improvement
+ (Jack Jansen), improve the *Recover* functions documentation,
+ XmlNodeType doc link fix (Martijn Arts)</li>
+ <li>Bug fixes: internal subset memory leak (Ashwin), avoid problem with
+ paths starting with // (Petr Sumbera), streaming XSD validation callback
+ patches (Ashwin), fix redirection on port other than 80 (William Brack),
+ SAX2 leak (Ashwin), XInclude fragment of own document (Chris Ryan),
+ regexp bug with '.' (Andrew Tosh), flush the writer at the end of the
+ document (Alfred Mickautsch), output I/O bug fix (William Brack),
+ writer CDATA output after a text node (Alex Khesin), UTF-16 encoding
+ detection (William Brack), fix handling of empty CDATA nodes for Safari
+ team, python binding problem with namespace nodes, improve HTML parsing
+ (Arnold Hendriks), regexp automata build bug, memory leak fix (Vasily
+ Chekalkin), XSD test crash, weird system parameter entity parsing problem,
+ allow save to file:///X:/ windows paths, various attribute normalisation
+ problems, externalSubsetSplit fix (Ashwin), attribute redefinition in
+ the DTD (Ashwin), fix in char ref parsing check (Alex Khesin), many
+ out of memory handling fixes (Ashwin), XPath out of memory handling fixes
+ (Alvaro Herrera), various realloc problems (Ashwin), UCS4 encoding
+ conversion buffer size (Christian Fruth), problems with EatName
+ functions on memory errors, BOM handling in external parsed entities
+ (Mark Rowe)</li>
+ <li>Code cleanup: fix build under VS 2008 (David Wimsey), remove useless
+ mutex in xmlDict (Florent Guilian), Mingw32 compilation fix (Carlo
+ Bramini), Win and MacOS EOL cleanups (Florent Guiliani), iconv need
+ a const detection (Roumen Petrov), simplify xmlSetProp (Julien Charbon),
+ cross compilation fixes for Mingw (Roumen Petrov), SCO Openserver build
+ fix (Florent Guiliani), iconv uses const on Win32 (Rob Richards),
+ duplicate code removal (Ashwin), missing malloc test and error reports
+ (Ashwin), VMS makefile fix (Tycho Hilhorst)</li>
+ <li>improvements: better plug of schematron in the normal error handling
+ (Tobias Minich)</li>
+</ul><h3>2.6.31: Jan 11 2008</h3><ul>
+ <li>Security fix: missing of checks in UTF-8 parsing</li>
+ <li>Bug fixes: regexp bug, dump attribute from XHTML document, fix
+ xmlFree(NULL) to not crash in debug mode, Schematron parsing crash
+ (Rob Richards), global lock free on Windows (Marc-Antoine Ruel),
+ XSD crash due to double free (Rob Richards), indentation fix in
+ xmlTextWriterFullEndElement (Felipe Pena), error in attribute type
+ parsing if attribute redeclared, avoid crash in hash list scanner if
+ deleting elements, column counter bug fix (Christian Schmidt),
+ HTML embed element saving fix (Stefan Behnel), avoid -L/usr/lib
+ output from xml2-config (Fred Crozat), avoid an xmllint crash
+ (Stefan Kost), don't stop HTML parsing on out of range chars.
+ </li>
+ <li>Code cleanup: fix open() call third argument, regexp cut'n paste
+ copy error, unused variable in __xmlGlobalInitMutexLock (Hannes Eder),
+ some make distcheck realted fixes (John Carr)</li>
+ <li>Improvements: HTTP Header: includes port number (William Brack),
+ testURI --debug option, </li>
+</ul><h3>2.6.30: Aug 23 2007</h3><ul>
+ <li>Portability: Solaris crash on error handling, windows path fixes
+ (Roland Schwarz and Rob Richards), mingw build (Roland Schwarz)</li>
+ <li>Bugfixes: xmlXPathNodeSetSort problem (William Brack), leak when
+ reusing a writer for a new document (Dodji Seketeli), Schemas
+ xsi:nil handling patch (Frank Gross), relative URI build problem
+ (Patrik Fimml), crash in xmlDocFormatDump, invalid char in comment
+ detection bug, fix disparity with xmlSAXUserParseMemory, automata
+ generation for complex regexp counts problems, Schemas IDC import
+ problems (Frank Gross), xpath predicate evailation error handling
+ (William Brack)</li>
+</ul><h3>2.6.29: Jun 12 2007</h3><ul>
+ <li>Portability: patches from Andreas Stricke for WinCEi,
+ fix compilation warnings (William Brack), avoid warnings on Apple OS/X
+ (Wendy Doyle and Mark Rowe), Windows compilation and threading
+ improvements (Rob Richards), compilation against old Python versions,
+ new GNU tar changes (Ryan Hill)</li>
+ <li>Documentation: xmlURIUnescapeString comment, </li>
+ <li>Bugfixes: xmlBufferAdd problem (Richard Jones), 'make valgrind'
+ flag fix (Richard Jones), regexp interpretation of \,
+ htmlCreateDocParserCtxt (Jean-Daniel Dupas), configure.in
+ typo (Bjorn Reese), entity content failure, xmlListAppend() fix
+ (Georges-André Silber), XPath number serialization (William Brack),
+ nanohttp gzipped stream fix (William Brack and Alex Cornejo),
+ xmlCharEncFirstLine typo (Mark Rowe), uri bug (François Delyon),
+ XPath string value of PI nodes (William Brack), XPath node set
+ sorting bugs (William Brack), avoid outputting namespace decl
+ dups in the writer (Rob Richards), xmlCtxtReset bug, UTF-8 encoding
+ error handling, recustion on next in catalogs, fix a Relax-NG crash,
+ workaround wrong file: URIs, htmlNodeDumpFormatOutput on attributes,
+ invalid character in attribute detection bug, big comments before
+ internal subset streaming bug, HTML parsing of attributes with : in
+ the name, IDness of name in HTML (Dagfinn I. Mannsåker) </li>
+ <li>Improvement: keep URI query parts in raw form (Richard Jones),
+ embed tag support in HTML (Michael Day) </li>
+</ul><h3>2.6.28: Apr 17 2007</h3><ul>
+ <li>Documentation: comment fixes (Markus Keim), xpath comments fixes too
+ (James Dennett)</li>
+ <li>Bug fixes: XPath bug (William Brack), HTML parser autoclose stack usage
+ (Usamah Malik), various regexp bug fixes (DV and William), path conversion
+ on Windows (Igor Zlatkovic), htmlCtxtReset fix (Michael Day), XPath
+ principal node of axis bug, HTML serialization of some codepoint
+ (Steven Rainwater), user data propagation in XInclude (Michael Day),
+ standalone and XML decl detection (Michael Day), Python id output
+ for some id, fix the big python string memory leak, URI parsing fixes
+ (Stéphane Bidoul and William), long comments parsing bug (William),
+ concurrent threads initialization (Ted Phelps), invalid char
+ in text XInclude (William), XPath memory leak (William), tab in
+ python problems (Andreas Hanke), XPath node comparison error
+ (Oleg Paraschenko), cleanup patch for reader (Julien Reichel),
+ XML Schemas attribute group (William), HTML parsing problem (William),
+ fix char 0x2d in regexps (William), regexp quantifier range with
+ min occurs of 0 (William), HTML script/style parsing (Mike Day)</li>
+ <li>Improvement: make xmlTextReaderSetup() public</li>
+ <li>Compilation and postability: fix a missing include problem (William),
+ __ss_family on AIX again (Björn Wiberg), compilation without zlib
+ (Michael Day), catalog patch for Win32 (Christian Ehrlicher),
+ Windows CE fixes (Andreas Stricke)</li>
+ <li>Various CVS to SVN infrastructure changes</li>
+</ul><h3>2.6.27: Oct 25 2006</h3><ul>
+ <li>Portability fixes: file names on windows (Roland Schwingel,
+ Emelyanov Alexey), windows compile fixup (Rob Richards),
+ AIX iconv() is apparently case sensitive</li>
+ <li>improvements: Python XPath types mapping (Nic Ferrier), XPath optimization
+ (Kasimier), add xmlXPathCompiledEvalToBoolean (Kasimier), Python node
+ equality and comparison (Andreas Pakulat), xmlXPathCollectAndTest
+ improvememt (Kasimier), expose if library was compiled with zlib
+ support (Andrew Nosenko), cache for xmlSchemaIDCMatcher structs
+ (Kasimier), xmlTextConcat should work with comments and PIs (Rob
+ Richards), export htmlNewParserCtxt needed by Michael Day, refactoring
+ of catalog entity loaders (Michael Day), add XPointer support to
+ python bindings (Ross Reedstrom, Brian West and Stefan Anca),
+ try to sort out most file path to URI conversions and xmlPathToUri,
+ add --html --memory case to xmllint</li>
+ <li>building fix: fix --with-minimum (Felipe Contreras), VMS fix,
+ const'ification of HTML parser structures (Matthias Clasen),
+ portability fix (Emelyanov Alexey), wget autodetection (Peter
+ Breitenlohner), remove the build path recorded in the python
+ shared module, separate library flags for shared and static builds
+ (Mikhail Zabaluev), fix --with-minimum --with-sax1 builds, fix
+ --with-minimum --with-schemas builds</li>
+ <li>bug fix: xmlGetNodePath fix (Kasimier), xmlDOMWrapAdoptNode and
+ attribute (Kasimier), crash when using the recover mode,
+ xmlXPathEvalExpr problem (Kasimier), xmlXPathCompExprAdd bug (Kasimier),
+ missing destry in xmlFreeRMutex (Andrew Nosenko), XML Schemas fixes
+ (Kasimier), warning on entities processing, XHTML script and style
+ serialization (Kasimier), python generator for long types, bug in
+ xmlSchemaClearValidCtxt (Bertrand Fritsch), xmlSchemaXPathEvaluate
+ allocation bug (Marton Illes), error message end of line (Rob Richards),
+ fix attribute serialization in writer (Rob Richards), PHP4 DTD validation
+ crasher, parser safety patch (Ben Darnell), _private context propagation
+ when parsing entities (with Michael Day), fix entities behaviour when
+ using SAX, URI to file path fix (Mikhail Zabaluev), disappearing validity
+ context, arg error in SAX callback (Mike Hommey), fix mixed-content
+ autodetect when using --noblanks, fix xmlIOParseDTD error handling,
+ fix bug in xmlSplitQName on special Names, fix Relax-NG element content
+ validation bug, fix xmlReconciliateNs bug, fix potential attribute
+ XML parsing bug, fix line/column accounting in XML parser, chunking bug
+ in the HTML parser on script, try to detect obviously buggy HTML
+ meta encoding indications, bugs with encoding BOM and xmlSaveDoc,
+ HTML entities in attributes parsing, HTML minimized attribute values,
+ htmlReadDoc and htmlReadIO were broken, error handling bug in
+ xmlXPathEvalExpression (Olaf Walkowiak), fix a problem in
+ htmlCtxtUseOptions, xmlNewInputFromFile could leak (Marius Konitzer),
+ bug on misformed SSD regexps (Christopher Boumenot)
+ </li>
+ <li>documentation: warning about XML_PARSE_COMPACT (Kasimier Buchcik),
+ fix xmlXPathCastToString documentation, improve man pages for
+ xmllitn and xmlcatalog (Daniel Leidert), fixed comments of a few
+ functions</li>
+</ul><h3>2.6.26: Jun 6 2006</h3><ul>
+ <li>portability fixes: Python detection (Joseph Sacco), compilation
+ error(William Brack and Graham Bennett), LynxOS patch (Olli Savia)</li>
+ <li>bug fixes: encoding buffer problem, mix of code and data in
+ xmlIO.c(Kjartan Maraas), entities in XSD validation (Kasimier Buchcik),
+ variousXSD validation fixes (Kasimier), memory leak in pattern (Rob
+ Richards andKasimier), attribute with colon in name (Rob Richards), XPath
+ leak inerror reporting (Aleksey Sanin), XInclude text include of
+ selfdocument.</li>
+ <li>improvements: Xpath optimizations (Kasimier), XPath object
+ cache(Kasimier)</li>
+</ul><h3>2.6.25: Jun 6 2006:</h3><p>Do not use or package 2.6.25</p><h3>2.6.24: Apr 28 2006</h3><ul>
+ <li>Portability fixes: configure on Windows, testapi compile on windows
+ (Kasimier Buchcik, venkat naidu), Borland C++ 6 compile (Eric Zurcher),
+ HP-UX compiler workaround (Rick Jones), xml2-config bugfix, gcc-4.1
+ cleanups, Python detection scheme (Joseph Sacco), UTF-8 file paths on
+ Windows (Roland Schwingel).
+ </li>
+ <li>Improvements: xmlDOMWrapReconcileNamespaces xmlDOMWrapCloneNode (Kasimier
+ Buchcik), XML catalog debugging (Rick Jones), update to Unicode 4.01.</li>
+ <li>Bug fixes: xmlParseChunk() problem in 2.6.23, xmlParseInNodeContext()
+ on HTML docs, URI behaviour on Windows (Rob Richards), comment streaming
+ bug, xmlParseComment (with William Brack), regexp bug fixes (DV &amp;
+ Youri Golovanov), xmlGetNodePath on text/CDATA (Kasimier),
+ one Relax-NG interleave bug, xmllint --path and --valid,
+ XSD bugfixes (Kasimier), remove debug
+ left in Python bindings (Nic Ferrier), xmlCatalogAdd bug (Martin Cole),
+ xmlSetProp fixes (Rob Richards), HTML IDness (Rob Richards), a large
+ number of cleanups and small fixes based on Coverity reports, bug
+ in character ranges, Unicode tables const (Aivars Kalvans), schemas
+ fix (Stefan Kost), xmlRelaxNGParse error deallocation,
+ xmlSchemaAddSchemaDoc error deallocation, error handling on unallowed
+ code point, ixmllint --nonet to never reach the net (Gary Coady),
+ line break in writer after end PI (Jason Viers). </li>
+ <li>Documentation: man pages updates and cleanups (Daniel Leidert).</li>
+ <li>New features: Relax NG structure error handlers.</li>
+</ul><h3>2.6.23: Jan 5 2006</h3><ul>
+ <li>portability fixes: Windows (Rob Richards), getaddrinfo on Windows
+ (Kolja Nowak, Rob Richards), icc warnings (Kjartan Maraas),
+ --with-minimum compilation fixes (William Brack), error case handling fix
+ on Solaris (Albert Chin), don't use 'list' as parameter name reported by
+ Samuel Diaz Garcia, more old Unices portability fixes (Albert Chin),
+ MinGW compilation (Mark Junker), HP-UX compiler warnings (Rick
+ Jones),</li>
+ <li>code cleanup: xmlReportError (Adrian Mouat), remove xmlBufferClose
+ (Geert Jansen), unreachable code (Oleksandr Kononenko), refactoring
+ parsing code (Bjorn Reese)</li>
+ <li>bug fixes: xmlBuildRelativeURI and empty path (William Brack),
+ combinatory explosion and performances in regexp code, leak in
+ xmlTextReaderReadString(), xmlStringLenDecodeEntities problem (Massimo
+ Morara), Identity Constraints bugs and a segfault (Kasimier Buchcik),
+ XPath pattern based evaluation bugs (DV &amp; Kasimier),
+ xmlSchemaContentModelDump() memory leak (Kasimier), potential leak in
+ xmlSchemaCheckCSelectorXPath(), xmlTextWriterVSprintf() misuse of
+ vsnprintf (William Brack), XHTML serialization fix (Rob Richards), CRLF
+ split problem (William), issues with non-namespaced attributes in
+ xmlAddChild() xmlAddNextSibling() and xmlAddPrevSibling() (Rob Richards),
+ HTML parsing of script, Python must not output to stdout (Nic Ferrier),
+ exclusive C14N namespace visibility (Aleksey Sanin), XSD datatype
+ totalDigits bug (Kasimier Buchcik), error handling when writing to an
+ xmlBuffer (Rob Richards), runtest schemas error not reported (Hisashi
+ Fujinaka), signed/unsigned problem in date/time code (Albert Chin), fix
+ XSI driven XSD validation (Kasimier), parsing of xs:decimal (Kasimier),
+ fix DTD writer output (Rob Richards), leak in xmlTextReaderReadInnerXml
+ (Gary Coady), regexp bug affecting schemas (Kasimier), configuration of
+ runtime debugging (Kasimier), xmlNodeBufGetContent bug on entity refs
+ (Oleksandr Kononenko), xmlRegExecPushString2 bug (Sreeni Nair),
+ compilation and build fixes (Michael Day), removed dependencies on
+ xmlSchemaValidError (Kasimier), bug with &lt;xml:foo/&gt;, more XPath
+ pattern based evaluation fixes (Kasimier)</li>
+ <li>improvements: XSD Schemas redefinitions/restrictions (Kasimier
+ Buchcik), node copy checks and fix for attribute (Rob Richards), counted
+ transition bug in regexps, ctxt-&gt;standalone = -2 to indicate no
+ standalone attribute was found, add xmlSchemaSetParserStructuredErrors()
+ (Kasimier Buchcik), add xmlTextReaderSchemaValidateCtxt() to API
+ (Kasimier), handle gzipped HTTP resources (Gary Coady), add
+ htmlDocDumpMemoryFormat. (Rob Richards),</li>
+ <li>documentation: typo (Michael Day), libxml man page (Albert Chin), save
+ function to XML buffer (Geert Jansen), small doc fix (Aron Stansvik),</li>
+</ul><h3>2.6.22: Sep 12 2005</h3><ul>
+ <li>build fixes: compile without schematron (Stéphane Bidoul)</li>
+ <li>bug fixes: xmlDebugDumpNode on namespace node (Oleg Paraschenko)i,
+ CDATA push parser bug, xmlElemDump problem with XHTML1 doc,
+ XML_FEATURE_xxx clash with expat headers renamed XML_WITH_xxx, fix some
+ output formatting for meta element (Rob Richards), script and style
+ XHTML1 serialization (David Madore), Attribute derivation fixups in XSD
+ (Kasimier Buchcik), better IDC error reports (Kasimier Buchcik)</li>
+ <li>improvements: add XML_SAVE_NO_EMPTY xmlSaveOption (Rob Richards), add
+ XML_SAVE_NO_XHTML xmlSaveOption, XML Schemas improvements preparing for
+ derive (Kasimier Buchcik).</li>
+ <li>documentation: generation of gtk-doc like docs, integration with
+ devhelp.</li>
+</ul><h3>2.6.21: Sep 4 2005</h3><ul>
+ <li>build fixes: Cygwin portability fixes (Gerrit P. Haase), calling
+ convention problems on Windows (Marcus Boerger), cleanups based on Linus'
+ sparse tool, update of win32/configure.js (Rob Richards), remove warnings
+ on Windows(Marcus Boerger), compilation without SAX1, detection of the
+ Python binary, use $GCC inestad of $CC = 'gcc' (Andrew W. Nosenko),
+ compilation/link with threads and old gcc, compile problem by C370 on
+ Z/OS,</li>
+ <li>bug fixes: http_proxy environments (Peter Breitenlohner), HTML UTF-8
+ bug (Jiri Netolicky), XPath NaN compare bug (William Brack),
+ htmlParseScript potential bug, Schemas regexp handling of spaces, Base64
+ Schemas comparisons NIST passes, automata build error xsd:all,
+ xmlGetNodePath for namespaced attributes (Alexander Pohoyda), xmlSchemas
+ foreign namespaces handling, XML Schemas facet comparison (Kupriyanov
+ Anatolij), xmlSchemaPSimpleTypeErr error report (Kasimier Buchcik), xml:
+ namespace ahndling in Schemas (Kasimier), empty model group in Schemas
+ (Kasimier), wildcard in Schemas (Kasimier), URI composition (William),
+ xs:anyType in Schemas (Kasimier), Python resolver emmitting error
+ messages directly, Python xmlAttr.parent (Jakub Piotr Clapa), trying to
+ fix the file path/URI conversion, xmlTextReaderGetAttribute fix (Rob
+ Richards), xmlSchemaFreeAnnot memleak (Kasimier), HTML UTF-8
+ serialization, streaming XPath, Schemas determinism detection problem,
+ XInclude bug, Schemas context type (Dean Hill), validation fix (Derek
+ Poon), xmlTextReaderGetAttribute[Ns] namespaces (Rob Richards), Schemas
+ type fix (Kuba Nowakowski), UTF-8 parser bug, error in encoding handling,
+ xmlGetLineNo fixes, bug on entities handling, entity name extraction in
+ error handling with XInclude, text nodes in HTML body tags (Gary Coady),
+ xml:id and IDness at the treee level fixes, XPath streaming patterns
+ bugs.</li>
+ <li>improvements: structured interfaces for schemas and RNG error reports
+ (Marcus Boerger), optimization of the char data inner loop parsing
+ (thanks to Behdad Esfahbod for the idea), schematron validation though
+ not finished yet, xmlSaveOption to omit XML declaration, keyref match
+ error reports (Kasimier), formal expression handling code not plugged
+ yet, more lax mode for the HTML parser, parser XML_PARSE_COMPACT option
+ for text nodes allocation.</li>
+ <li>documentation: xmllint man page had --nonet duplicated</li>
+</ul><h3>2.6.20: Jul 10 2005</h3><ul>
+ <li>build fixes: Windows build (Rob Richards), Mingw compilation (Igor
+ Zlatkovic), Windows Makefile (Igor), gcc warnings (Kasimier and
+ andriy@google.com), use gcc weak references to pthread to avoid the
+ pthread dependancy on Linux, compilation problem (Steve Nairn), compiling
+ of subset (Morten Welinder), IPv6/ss_family compilation (William Brack),
+ compilation when disabling parts of the library, standalone test
+ distribution.</li>
+ <li>bug fixes: bug in lang(), memory cleanup on errors (William Brack),
+ HTTP query strings (Aron Stansvik), memory leak in DTD (William), integer
+ overflow in XPath (William), nanoftp buffer size, pattern "." apth fixup
+ (Kasimier), leak in tree reported by Malcolm Rowe, replaceNode patch
+ (Brent Hendricks), CDATA with NULL content (Mark Vakoc), xml:base fixup
+ on XInclude (William), pattern fixes (William), attribute bug in
+ exclusive c14n (Aleksey Sanin), xml:space and xml:lang with SAX2 (Rob
+ Richards), namespace trouble in complex parsing (Malcolm Rowe), XSD type
+ QNames fixes (Kasimier), XPath streaming fixups (William), RelaxNG bug
+ (Rob Richards), Schemas for Schemas fixes (Kasimier), removal of ID (Rob
+ Richards), a small RelaxNG leak, HTML parsing in push mode bug (James
+ Bursa), failure to detect UTF-8 parsing bugs in CDATA sections,
+ areBlanks() heuristic failure, duplicate attributes in DTD bug
+ (William).</li>
+ <li>improvements: lot of work on Schemas by Kasimier Buchcik both on
+ conformance and streaming, Schemas validation messages (Kasimier Buchcik,
+ Matthew Burgess), namespace removal at the python level (Brent
+ Hendricks), Update to new Schemas regression tests from W3C/Nist
+ (Kasimier), xmlSchemaValidateFile() (Kasimier), implementation of
+ xmlTextReaderReadInnerXml and xmlTextReaderReadOuterXml (James Wert),
+ standalone test framework and programs, new DOM import APIs
+ xmlDOMWrapReconcileNamespaces() xmlDOMWrapAdoptNode() and
+ xmlDOMWrapRemoveNode(), extension of xmllint capabilities for SAX and
+ Schemas regression tests, xmlStopParser() available in pull mode too,
+ ienhancement to xmllint --shell namespaces support, Windows port of the
+ standalone testing tools (Kasimier and William),
+ xmlSchemaValidateStream() xmlSchemaSAXPlug() and xmlSchemaSAXUnplug() SAX
+ Schemas APIs, Schemas xmlReader support.</li>
+</ul><h3>2.6.19: Apr 02 2005</h3><ul>
+ <li>build fixes: drop .la from RPMs, --with-minimum build fix (William
+ Brack), use XML_SOCKLEN_T instead of SOCKLEN_T because it breaks with AIX
+ 5.3 compiler, fixed elfgcchack.h generation and PLT reduction code on
+ Linux/ELF/gcc4</li>
+ <li>bug fixes: schemas type decimal fixups (William Brack), xmmlint return
+ code (Gerry Murphy), small schemas fixes (Matthew Burgess and GUY
+ Fabrice), workaround "DAV:" namespace brokeness in c14n (Aleksey Sanin),
+ segfault in Schemas (Kasimier Buchcik), Schemas attribute validation
+ (Kasimier), Prop related functions and xmlNewNodeEatName (Rob Richards),
+ HTML serialization of name attribute on a elements, Python error handlers
+ leaks and improvement (Brent Hendricks), uninitialized variable in
+ encoding code, Relax-NG validation bug, potential crash if
+ gnorableWhitespace is NULL, xmlSAXParseDoc and xmlParseDoc signatures,
+ switched back to assuming UTF-8 in case no encoding is given at
+ serialization time</li>
+ <li>improvements: lot of work on Schemas by Kasimier Buchcik on facets
+ checking and also mixed handling.</li>
+ <li></li>
+</ul><h3>2.6.18: Mar 13 2005</h3><ul>
+ <li>build fixes: warnings (Peter Breitenlohner), testapi.c generation,
+ Bakefile support (Francesco Montorsi), Windows compilation (Joel Reed),
+ some gcc4 fixes, HP-UX portability fixes (Rick Jones).</li>
+ <li>bug fixes: xmlSchemaElementDump namespace (Kasimier Buchcik), push and
+ xmlreader stopping on non-fatal errors, thread support for dictionnaries
+ reference counting (Gary Coady), internal subset and push problem, URL
+ saved in xmlCopyDoc, various schemas bug fixes (Kasimier), Python paths
+ fixup (Stephane Bidoul), xmlGetNodePath and namespaces, xmlSetNsProp fix
+ (Mike Hommey), warning should not count as error (William Brack),
+ xmlCreatePushParser empty chunk, XInclude parser flags (William), cleanup
+ FTP and HTTP code to reuse the uri parsing and IPv6 (William),
+ xmlTextWriterStartAttributeNS fix (Rob Richards), XMLLINT_INDENT being
+ empty (William), xmlWriter bugs (Rob Richards), multithreading on Windows
+ (Rich Salz), xmlSearchNsByHref fix (Kasimier), Python binding leak (Brent
+ Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
+ (Rob Richards), Schemas decimal type fixes (William Brack),
+ xmlByteConsumed static buffer (Ben Maurer).</li>
+ <li>improvement: speedup parsing comments and DTDs, dictionary support for
+ hash tables, Schemas Identity constraints (Kasimier), streaming XPath
+ subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
+ values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
+ Stansvik),</li>
+ <li>Documentation: Wiki support (Joel Reed)</li>
+</ul><h3>2.6.17: Jan 16 2005</h3><ul>
+ <li>build fixes: Windows, warnings removal (William Brack),
+ maintainer-clean dependency(William), build in a different directory
+ (William), fixing --with-minimum configure build (William), BeOS build
+ (Marcin Konicki), Python-2.4 detection (William), compilation on AIX (Dan
+ McNichol)</li>
+ <li>bug fixes: xmlTextReaderHasAttributes (Rob Richards), xmlCtxtReadFile()
+ to use the catalog(s), loop on output (William Brack), XPath memory leak,
+ ID deallocation problem (Steve Shepard), debugDumpNode crash (William),
+ warning not using error callback (William), xmlStopParser bug (William),
+ UTF-16 with BOM on DTDs (William), namespace bug on empty elements in
+ push mode (Rob Richards), line and col computations fixups (Aleksey
+ Sanin), xmlURIEscape fix (William), xmlXPathErr on bad range (William),
+ patterns with too many steps, bug in RNG choice optimization, line number
+ sometimes missing.</li>
+ <li>improvements: XSD Schemas (Kasimier Buchcik), python generator
+ (William), xmlUTF8Strpos speedup (William), unicode Python strings
+ (William), XSD error reports (Kasimier Buchcik), Python __str__ call
+ serialize().</li>
+ <li>new APIs: added xmlDictExists(), GetLineNumber and GetColumnNumber for
+ the xmlReader (Aleksey Sanin), Dynamic Shared Libraries APIs (mostly Joel
+ Reed), error extraction API from regexps, new XMLSave option for format
+ (Phil Shafer)</li>
+ <li>documentation: site improvement (John Fleck), FAQ entries
+ (William).</li>
+</ul><h3>2.6.16: Nov 10 2004</h3><ul>
+ <li>general hardening and bug fixing crossing all the API based on new
+ automated regression testing</li>
+ <li>build fix: IPv6 build and test on AIX (Dodji Seketeli)</li>
+ <li>bug fixes: problem with XML::Libxml reported by Petr Pajas, encoding
+ conversion functions return values, UTF-8 bug affecting XPath reported by
+ Markus Bertheau, catalog problem with NULL entries (William Brack)</li>
+ <li>documentation: fix to xmllint man page, some API function descritpion
+ were updated.</li>
+ <li>improvements: DTD validation APIs provided at the Python level (Brent
+ Hendricks)</li>
+</ul><h3>2.6.15: Oct 27 2004</h3><ul>
+ <li>security fixes on the nanoftp and nanohttp modules</li>
+ <li>build fixes: xmllint detection bug in configure, building outside the
+ source tree (Thomas Fitzsimmons)</li>
+ <li>bug fixes: HTML parser on broken ASCII chars in names (William), Python
+ paths (Malcolm Tredinnick), xmlHasNsProp and default namespace (William),
+ saving to python file objects (Malcolm Tredinnick), DTD lookup fix
+ (Malcolm), save back &lt;group&gt; in catalogs (William), tree build
+ fixes (DV and Rob Richards), Schemas memory bug, structured error handler
+ on Python 64bits, thread local memory deallocation, memory leak reported
+ by Volker Roth, xmlValidateDtd in the presence of an internal subset,
+ entities and _private problem (William), xmlBuildRelativeURI error
+ (William).</li>
+ <li>improvements: better XInclude error reports (William), tree debugging
+ module and tests, convenience functions at the Reader API (Graham
+ Bennett), add support for PI in the HTML parser.</li>
+</ul><h3>2.6.14: Sep 29 2004</h3><ul>
+ <li>build fixes: configure paths for xmllint and xsltproc, compilation
+ without HTML parser, compilation warning cleanups (William Brack &amp;
+ Malcolm Tredinnick), VMS makefile update (Craig Berry),</li>
+ <li>bug fixes: xmlGetUTF8Char (William Brack), QName properties (Kasimier
+ Buchcik), XInclude testing, Notation serialization, UTF8ToISO8859x
+ transcoding (Mark Itzcovitz), lots of XML Schemas cleanup and fixes
+ (Kasimier), ChangeLog cleanup (Stepan Kasal), memory fixes (Mark Vakoc),
+ handling of failed realloc(), out of bound array addressing in Schemas
+ date handling, Python space/tabs cleanups (Malcolm Tredinnick), NMTOKENS
+ E20 validation fix (Malcolm),</li>
+ <li>improvements: added W3C XML Schemas testsuite (Kasimier Buchcik), add
+ xmlSchemaValidateOneElement (Kasimier), Python exception hierearchy
+ (Malcolm Tredinnick), Python libxml2 driver improvement (Malcolm
+ Tredinnick), Schemas support for xsi:schemaLocation,
+ xsi:noNamespaceSchemaLocation, xsi:type (Kasimier Buchcik)</li>
+</ul><h3>2.6.13: Aug 31 2004</h3><ul>
+ <li>build fixes: Windows and zlib (Igor Zlatkovic), -O flag with gcc,
+ Solaris compiler warning, fixing RPM BuildRequires,</li>
+ <li>fixes: DTD loading on Windows (Igor), Schemas error reports APIs
+ (Kasimier Buchcik), Schemas validation crash, xmlCheckUTF8 (William Brack
+ and Julius Mittenzwei), Schemas facet check (Kasimier), default namespace
+ problem (William), Schemas hexbinary empty values, encoding error could
+ generate a serialization loop.</li>
+ <li>Improvements: Schemas validity improvements (Kasimier), added --path
+ and --load-trace options to xmllint</li>
+ <li>documentation: tutorial update (John Fleck)</li>
+</ul><h3>2.6.12: Aug 22 2004</h3><ul>
+ <li>build fixes: fix --with-minimum, elfgcchack.h fixes (Peter
+ Breitenlohner), perl path lookup (William), diff on Solaris (Albert
+ Chin), some 64bits cleanups.</li>
+ <li>Python: avoid a warning with 2.3 (William Brack), tab and space mixes
+ (William), wrapper generator fixes (William), Cygwin support (Gerrit P.
+ Haase), node wrapper fix (Marc-Antoine Parent), XML Schemas support
+ (Torkel Lyng)</li>
+ <li>Schemas: a lot of bug fixes and improvements from Kasimier Buchcik</li>
+ <li>fixes: RVT fixes (William), XPath context resets bug (William), memory
+ debug (Steve Hay), catalog white space handling (Peter Breitenlohner),
+ xmlReader state after attribute reading (William), structured error
+ handler (William), XInclude generated xml:base fixup (William), Windows
+ memory reallocation problem (Steve Hay), Out of Memory conditions
+ handling (William and Olivier Andrieu), htmlNewDoc() charset bug,
+ htmlReadMemory init (William), a posteriori validation DTD base
+ (William), notations serialization missing, xmlGetNodePath (Dodji),
+ xmlCheckUTF8 (Diego Tartara), missing line numbers on entity
+ (William)</li>
+ <li>improvements: DocBook catalog build scrip (William), xmlcatalog tool
+ (Albert Chin), xmllint --c14n option, no_proxy environment (Mike Hommey),
+ xmlParseInNodeContext() addition, extend xmllint --shell, allow XInclude
+ to not generate start/end nodes, extend xmllint --version to include CVS
+ tag (William)</li>
+ <li>documentation: web pages fixes, validity API docs fixes (William)
+ schemas API fix (Eric Haszlakiewicz), xmllint man page (John Fleck)</li>
+</ul><h3>2.6.11: July 5 2004</h3><ul>
+ <li>Schemas: a lot of changes and improvements by Kasimier Buchcik for
+ attributes, namespaces and simple types.</li>
+ <li>build fixes: --with-minimum (William Brack), some gcc cleanup
+ (William), --with-thread-alloc (William)</li>
+ <li>portability: Windows binary package change (Igor Zlatkovic), Catalog
+ path on Windows</li>
+ <li>documentation: update to the tutorial (John Fleck), xmllint return code
+ (John Fleck), man pages (Ville Skytta),</li>
+ <li>bug fixes: C14N bug serializing namespaces (Aleksey Sanin), testSAX
+ properly initialize the library (William), empty node set in XPath
+ (William), xmlSchemas errors (William), invalid charref problem pointed
+ by Morus Walter, XInclude xml:base generation (William), Relax-NG bug
+ with div processing (William), XPointer and xml:base problem(William),
+ Reader and entities, xmllint return code for schemas (William), reader
+ streaming problem (Steve Ball), DTD serialization problem (William),
+ libxml.m4 fixes (Mike Hommey), do not provide destructors as methods on
+ Python classes, xmlReader buffer bug, Python bindings memory interfaces
+ improvement (with Stéphane Bidoul), Fixed the push parser to be back to
+ synchronous behaviour.</li>
+ <li>improvement: custom per-thread I/O enhancement (Rob Richards), register
+ namespace in debug shell (Stefano Debenedetti), Python based regression
+ test for non-Unix users (William), dynamically increase the number of
+ XPath extension functions in Python and fix a memory leak (Marc-Antoine
+ Parent and William)</li>
+ <li>performance: hack done with Arjan van de Ven to reduce ELF footprint
+ and generated code on Linux, plus use gcc runtime profiling to optimize
+ the code generated in the RPM packages.</li>
+</ul><h3>2.6.10: May 17 2004</h3><ul>
+ <li>Web page generated for ChangeLog</li>
+ <li>build fixes: --without-html problems, make check without make all</li>
+ <li>portability: problem with xpath.c on Windows (MSC and Borland), memcmp
+ vs. strncmp on Solaris, XPath tests on Windows (Mark Vakoc), C++ do not
+ use "list" as parameter name, make tests work with Python 1.5 (Ed
+ Davis),</li>
+ <li>improvements: made xmlTextReaderMode public, small buffers resizing
+ (Morten Welinder), add --maxmem option to xmllint, add
+ xmlPopInputCallback() for Matt Sergeant, refactoring of serialization
+ escaping, added escaping customization</li>
+ <li>bugfixes: xsd:extension (Taihei Goi), assorted regexp bugs (William
+ Brack), xmlReader end of stream problem, node deregistration with reader,
+ URI escaping and filemanes, XHTML1 formatting (Nick Wellnhofer), regexp
+ transition reduction (William), various XSD Schemas fixes (Kasimier
+ Buchcik), XInclude fallback problem (William), weird problems with DTD
+ (William), structured error handler callback context (William), reverse
+ xmlEncodeSpecialChars() behaviour back to escaping '"'</li>
+</ul><h3>2.6.9: Apr 18 2004</h3><ul>
+ <li>implement xml:id Working Draft, relaxed XPath id() checking</li>
+ <li>bugfixes: xmlCtxtReset (Brent Hendricks), line number and CDATA (Dave
+ Beckett), Relax-NG compilation (William Brack), Regexp patches (with
+ William), xmlUriEscape (Mark Vakoc), a Relax-NG notAllowed problem (with
+ William), Relax-NG name classes compares (William), XInclude duplicate
+ fallback (William), external DTD encoding detection (William), a DTD
+ validation bug (William), xmlReader Close() fix, recusive extention
+ schemas</li>
+ <li>improvements: use xmlRead* APIs in test tools (Mark Vakoc), indenting
+ save optimization, better handle IIS broken HTTP redirect behaviour (Ian
+ Hummel), HTML parser frameset (James Bursa), libxml2-python RPM
+ dependancy, XML Schemas union support (Kasimier Buchcik), warning removal
+ clanup (William), keep ChangeLog compressed when installing from RPMs</li>
+ <li>documentation: examples and xmlDocDumpMemory docs (John Fleck), new
+ example (load, xpath, modify, save), xmlCatalogDump() comments,</li>
+ <li>Windows: Borland C++ builder (Eric Zurcher), work around Microsoft
+ compiler NaN handling bug (Mark Vakoc)</li>
+</ul><h3>2.6.8: Mar 23 2004</h3><ul>
+ <li>First step of the cleanup of the serialization code and APIs</li>
+ <li>XML Schemas: mixed content (Adam Dickmeiss), QName handling fixes (Adam
+ Dickmeiss), anyURI for "" (John Belmonte)</li>
+ <li>Python: Canonicalization C14N support added (Anthony Carrico)</li>
+ <li>xmlDocCopyNode() extension (William)</li>
+ <li>Relax-NG: fix when processing XInclude results (William), external
+ reference in interleave (William), missing error on &lt;choice&gt;
+ failure (William), memory leak in schemas datatype facets.</li>
+ <li>xmlWriter: patch for better DTD support (Alfred Mickautsch)</li>
+ <li>bug fixes: xmlXPathLangFunction memory leak (Mike Hommey and William
+ Brack), no ID errors if using HTML_PARSE_NOERROR, xmlcatalog fallbacks to
+ URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
+ XInclude and XPointer fixes for entities (William), XML parser bug
+ reported by Holger Rauch, nanohttp fd leak (William), regexps char
+ groups '-' handling (William), dictionary reference counting problems,
+ do not close stderr.</li>
+ <li>performance patches from Petr Pajas</li>
+ <li>Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)</li>
+ <li>compilation and portability fixes: --without-valid, catalog cleanups
+ (Peter Breitenlohner), MingW patch (Roland Schwingel), cross-compilation
+ to Windows (Christophe de Vienne), --with-html-dir fixup (Julio Merino
+ Vidal), Windows build (Eric Zurcher)</li>
+</ul><h3>2.6.7: Feb 23 2004</h3><ul>
+ <li>documentation: tutorial updates (John Fleck), benchmark results</li>
+ <li>xmlWriter: updates and fixes (Alfred Mickautsch, Lucas Brasilino)</li>
+ <li>XPath optimization (Petr Pajas)</li>
+ <li>DTD ID handling optimization</li>
+ <li>bugfixes: xpath number with &gt; 19 fractional (William Brack), push
+ mode with unescaped '&gt;' characters, fix xmllint --stream --timing, fix
+ xmllint --memory --stream memory usage, xmlAttrSerializeTxtContent
+ handling NULL, trying to fix Relax-NG/Perl interface.</li>
+ <li>python: 2.3 compatibility, whitespace fixes (Malcolm Tredinnick)</li>
+ <li>Added relaxng option to xmllint --shell</li>
+</ul><h3>2.6.6: Feb 12 2004</h3><ul>
+ <li>nanohttp and nanoftp: buffer overflow error on URI parsing (Igor and
+ William) reported by Yuuichi Teranishi</li>
+ <li>bugfixes: make test and path issues, xmlWriter attribute serialization
+ (William Brack), xmlWriter indentation (William), schemas validation
+ (Eric Haszlakiewicz), XInclude dictionnaries issues (William and Oleg
+ Paraschenko), XInclude empty fallback (William), HTML warnings (William),
+ XPointer in XInclude (William), Python namespace serialization,
+ isolat1ToUTF8 bound error (Alfred Mickautsch), output of parameter
+ entities in internal subset (William), internal subset bug in push mode,
+ &lt;xs:all&gt; fix (Alexey Sarytchev)</li>
+ <li>Build: fix for automake-1.8 (Alexander Winston), warnings removal
+ (Philip Ludlam), SOCKLEN_T detection fixes (Daniel Richard), fix
+ --with-minimum configuration.</li>
+ <li>XInclude: allow the 2001 namespace without warning.</li>
+ <li>Documentation: missing example/index.html (John Fleck), version
+ dependencies (John Fleck)</li>
+ <li>reader API: structured error reporting (Steve Ball)</li>
+ <li>Windows compilation: mingw, msys (Mikhail Grushinskiy), function
+ prototype (Cameron Johnson), MSVC6 compiler warnings, _WINSOCKAPI_
+ patch</li>
+ <li>Parsers: added xmlByteConsumed(ctxt) API to get the byte offest in
+ input.</li>
+</ul><h3>2.6.5: Jan 25 2004</h3><ul>
+ <li>Bugfixes: dictionnaries for schemas (William Brack), regexp segfault
+ (William), xs:all problem (William), a number of XPointer bugfixes
+ (William), xmllint error go to stderr, DTD validation problem with
+ namespace, memory leak (William), SAX1 cleanup and minimal options fixes
+ (Mark Vadoc), parser context reset on error (Shaun McCance), XPath union
+ evaluation problem (William) , xmlReallocLoc with NULL (Aleksey Sanin),
+ XML Schemas double free (Steve Ball), XInclude with no href, argument
+ callbacks order for XPath callbacks (Frederic Peters)</li>
+ <li>Documentation: python scripts (William Brack), xslt stylesheets (John
+ Fleck), doc (Sven Zimmerman), I/O example.</li>
+ <li>Python bindings: fixes (William), enum support (Stéphane Bidoul),
+ structured error reporting (Stéphane Bidoul)</li>
+ <li>XInclude: various fixes for conformance, problem related to dictionary
+ references (William &amp; me), recursion (William)</li>
+ <li>xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
+ Mickautsch),</li>
+ <li>xmlSchemas: normalizedString datatype (John Belmonte)</li>
+ <li>code cleanup for strings functions (William)</li>
+ <li>Windows: compiler patches (Mark Vakoc)</li>
+ <li>Parser optimizations, a few new XPath and dictionary APIs for future
+ XSLT optimizations.</li>
+</ul><h3>2.6.4: Dec 24 2003</h3><ul>
+ <li>Windows build fixes (Igor Zlatkovic)</li>
+ <li>Some serious XInclude problems reported by Oleg Paraschenko and</li>
+ <li>Unix and Makefile packaging fixes (me, William Brack,</li>
+ <li>Documentation improvements (John Fleck, William Brack), example fix
+ (Lucas Brasilino)</li>
+ <li>bugfixes: xmlTextReaderExpand() with xmlReaderWalker, XPath handling of
+ NULL strings (William Brack) , API building reader or parser from
+ filedescriptor should not close it, changed XPath sorting to be stable
+ again (William Brack), xmlGetNodePath() generating '(null)' (William
+ Brack), DTD validation and namespace bug (William Brack), XML Schemas
+ double inclusion behaviour</li>
+</ul><h3>2.6.3: Dec 10 2003</h3><ul>
+ <li>documentation updates and cleanup (DV, William Brack, John Fleck)</li>
+ <li>added a repository of examples, examples from Aleksey Sanin, Dodji
+ Seketeli, Alfred Mickautsch</li>
+ <li>Windows updates: Mark Vakoc, Igor Zlatkovic, Eric Zurcher, Mingw
+ (Kenneth Haley)</li>
+ <li>Unicode range checking (William Brack)</li>
+ <li>code cleanup (William Brack)</li>
+ <li>Python bindings: doc (John Fleck), bug fixes</li>
+ <li>UTF-16 cleanup and BOM issues (William Brack)</li>
+ <li>bug fixes: ID and xmlReader validation, XPath (William Brack),
+ xmlWriter (Alfred Mickautsch), hash.h inclusion problem, HTML parser
+ (James Bursa), attribute defaulting and validation, some serialization
+ cleanups, XML_GET_LINE macro, memory debug when using threads (William
+ Brack), serialization of attributes and entities content, xmlWriter
+ (Daniel Schulman)</li>
+ <li>XInclude bugfix, new APIs and update to the last version including the
+ namespace change.</li>
+ <li>XML Schemas improvements: include (Robert Stepanek), import and
+ namespace handling, fixed the regression tests troubles, added examples
+ based on Eric van der Vlist book, regexp fixes</li>
+ <li>preliminary pattern support for streaming (needed for schemas
+ constraints), added xmlTextReaderPreservePattern() to collect subdocument
+ when streaming.</li>
+ <li>various fixes in the structured error handling</li>
+</ul><h3>2.6.2: Nov 4 2003</h3><ul>
+ <li>XPath context unregistration fixes</li>
+ <li>text node coalescing fixes (Mark Lilback)</li>
+ <li>API to screate a W3C Schemas from an existing document (Steve Ball)</li>
+ <li>BeOS patches (Marcin 'Shard' Konicki)</li>
+ <li>xmlStrVPrintf function added (Aleksey Sanin)</li>
+ <li>compilation fixes (Mark Vakoc)</li>
+ <li>stdin parsing fix (William Brack)</li>
+ <li>a posteriori DTD validation fixes</li>
+ <li>xmlReader bug fixes: Walker fixes, python bindings</li>
+ <li>fixed xmlStopParser() to really stop the parser and errors</li>
+ <li>always generate line numbers when using the new xmlReadxxx
+ functions</li>
+ <li>added XInclude support to the xmlReader interface</li>
+ <li>implemented XML_PARSE_NONET parser option</li>
+ <li>DocBook XSLT processing bug fixed</li>
+ <li>HTML serialization for &lt;p&gt; elements (William Brack and me)</li>
+ <li>XPointer failure in XInclude are now handled as resource errors</li>
+ <li>fixed xmllint --html to use the HTML serializer on output (added
+ --xmlout to implement the previous behaviour of saving it using the XML
+ serializer)</li>
+</ul><h3>2.6.1: Oct 28 2003</h3><ul>
+ <li>Mostly bugfixes after the big 2.6.0 changes</li>
+ <li>Unix compilation patches: libxml.m4 (Patrick Welche), warnings cleanup
+ (William Brack)</li>
+ <li>Windows compilation patches (Joachim Bauch, Stephane Bidoul, Igor
+ Zlatkovic)</li>
+ <li>xmlWriter bugfix (Alfred Mickautsch)</li>
+ <li>chvalid.[ch]: couple of fixes from Stephane Bidoul</li>
+ <li>context reset: error state reset, push parser reset (Graham
+ Bennett)</li>
+ <li>context reuse: generate errors if file is not readable</li>
+ <li>defaulted attributes for element coming from internal entities
+ (Stephane Bidoul)</li>
+ <li>Python: tab and spaces mix (William Brack)</li>
+ <li>Error handler could crash in DTD validation in 2.6.0</li>
+ <li>xmlReader: do not use the document or element _private field</li>
+ <li>testSAX.c: avoid a problem with some PIs (Massimo Morara)</li>
+ <li>general bug fixes: mandatory encoding in text decl, serializing
+ Document Fragment nodes, xmlSearchNs 2.6.0 problem (Kasimier Buchcik),
+ XPath errors not reported, slow HTML parsing of large documents.</li>
+</ul><h3>2.6.0: Oct 20 2003</h3><ul>
+ <li>Major revision release: should be API and ABI compatible but got a lot
+ of change</li>
+ <li>Increased the library modularity, far more options can be stripped out,
+ a --with-minimum configuration will weight around 160KBytes</li>
+ <li>Use per parser and per document dictionary, allocate names and small
+ text nodes from the dictionary</li>
+ <li>Switch to a SAX2 like parser rewrote most of the XML parser core,
+ provides namespace resolution and defaulted attributes, minimize memory
+ allocations and copies, namespace checking and specific error handling,
+ immutable buffers, make predefined entities static structures, etc...</li>
+ <li>rewrote all the error handling in the library, all errors can be
+ intercepted at a structured level, with precise information
+ available.</li>
+ <li>New simpler and more generic XML and HTML parser APIs, allowing to
+ easily modify the parsing options and reuse parser context for multiple
+ consecutive documents.</li>
+ <li>Similar new APIs for the xmlReader, for options and reuse, provided new
+ functions to access content as const strings, use them for Python
+ bindings</li>
+ <li>a lot of other smaller API improvements: xmlStrPrintf (Aleksey Sanin),
+ Walker i.e. reader on a document tree based on Alfred Mickautsch code,
+ make room in nodes for line numbers, reference counting and future PSVI
+ extensions, generation of character ranges to be checked with faster
+ algorithm (William), xmlParserMaxDepth (Crutcher Dunnavant), buffer
+ access</li>
+ <li>New xmlWriter API provided by Alfred Mickautsch</li>
+ <li>Schemas: base64 support by Anthony Carrico</li>
+ <li>Parser&lt;-&gt;HTTP integration fix, proper processing of the Mime-Type
+ and charset information if available.</li>
+ <li>Relax-NG: bug fixes including the one reported by Martijn Faassen and
+ zeroOrMore, better error reporting.</li>
+ <li>Python bindings (Stéphane Bidoul), never use stdout for errors
+ output</li>
+ <li>Portability: all the headers have macros for export and calling
+ convention definitions (Igor Zlatkovic), VMS update (Craig A. Berry),
+ Windows: threads (Jesse Pelton), Borland compiler (Eric Zurcher, Igor),
+ Mingw (Igor), typos (Mark Vakoc), beta version (Stephane Bidoul),
+ warning cleanups on AIX and MIPS compilers (William Brack), BeOS (Marcin
+ 'Shard' Konicki)</li>
+ <li>Documentation fixes and README (William Brack), search fix (William),
+ tutorial updates (John Fleck), namespace docs (Stefan Kost)</li>
+ <li>Bug fixes: xmlCleanupParser (Dave Beckett), threading uninitialized
+ mutexes, HTML doctype lowercase, SAX/IO (William), compression detection
+ and restore (William), attribute declaration in DTDs (William), namespace
+ on attribute in HTML output (William), input filename (Rob Richards),
+ namespace DTD validation, xmlReplaceNode (Chris Ryland), I/O callbacks
+ (Markus Keim), CDATA serialization (Shaun McCance), xmlReader (Peter
+ Derr), high codepoint charref like &amp;#x10FFFF;, buffer access in push
+ mode (Justin Fletcher), TLS threads on Windows (Jesse Pelton), XPath bug
+ (William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
+ error handling.</li>
+ <li>xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
+ testing, --nodict for building without tree dictionary, --nocdata to
+ replace CDATA by text, --nsclean to remove surperfluous namespace
+ declarations</li>
+ <li>added xml2-config --libtool-libs option from Kevin P. Fleming</li>
+ <li>a lot of profiling and tuning of the code, speedup patch for
+ xmlSearchNs() by Luca Padovani. The xmlReader should do far less
+ allocation and it speed should get closer to SAX. Chris Anderson worked
+ on speeding and cleaning up repetitive checking code.</li>
+ <li>cleanup of "make tests"</li>
+ <li>libxml-2.0-uninstalled.pc from Malcolm Tredinnick</li>
+ <li>deactivated the broken docBook SGML parser code and plugged the XML
+ parser instead.</li>
+</ul><h3>2.5.11: Sep 9 2003</h3><p>A bugfix only release:</p><ul>
+ <li>risk of crash in Relax-NG</li>
+ <li>risk of crash when using multithreaded programs</li>
+</ul><h3>2.5.10: Aug 15 2003</h3><p>A bugfixes only release</p><ul>
+ <li>Windows Makefiles (William Brack)</li>
+ <li>UTF-16 support fixes (Mark Itzcovitz)</li>
+ <li>Makefile and portability (William Brack) automake, Linux alpha, Mingw
+ on Windows (Mikhail Grushinskiy)</li>
+ <li>HTML parser (Oliver Stoeneberg)</li>
+ <li>XInclude performance problem reported by Kevin Ruscoe</li>
+ <li>XML parser performance problem reported by Grant Goodale</li>
+ <li>xmlSAXParseDTD() bug fix from Malcolm Tredinnick</li>
+ <li>and a couple other cleanup</li>
+</ul><h3>2.5.9: Aug 9 2003</h3><ul>
+ <li>bugfixes: IPv6 portability, xmlHasNsProp (Markus Keim), Windows build
+ (Wiliam Brake, Jesse Pelton, Igor), Schemas (Peter Sobisch), threading
+ (Rob Richards), hexBinary type (), UTF-16 BOM (Dodji Seketeli),
+ xmlReader, Relax-NG schemas compilation, namespace handling, EXSLT (Sean
+ Griffin), HTML parsing problem (William Brack), DTD validation for mixed
+ content + namespaces, HTML serialization, library initialization,
+ progressive HTML parser</li>
+ <li>better interfaces for Relax-NG error handling (Joachim Bauch, )</li>
+ <li>adding xmlXIncludeProcessTree() for XInclud'ing in a subtree</li>
+ <li>doc fixes and improvements (John Fleck)</li>
+ <li>configure flag for -with-fexceptions when embedding in C++</li>
+ <li>couple of new UTF-8 helper functions (William Brack)</li>
+ <li>general encoding cleanup + ISO-8859-x without iconv (Peter Jacobi)</li>
+ <li>xmlTextReader cleanup + enum for node types (Bjorn Reese)</li>
+ <li>general compilation/warning cleanup Solaris/HP-UX/... (William
+ Brack)</li>
+</ul><h3>2.5.8: Jul 6 2003</h3><ul>
+ <li>bugfixes: XPath, XInclude, file/URI mapping, UTF-16 save (Mark
+ Itzcovitz), UTF-8 checking, URI saving, error printing (William Brack),
+ PI related memleak, compilation without schemas or without xpath (Joerg
+ Schmitz-Linneweber/Garry Pennington), xmlUnlinkNode problem with DTDs,
+ rpm problem on , i86_64, removed a few compilation problems from 2.5.7,
+ xmlIOParseDTD, and xmlSAXParseDTD (Malcolm Tredinnick)</li>
+ <li>portability: DJGPP (MsDos) , OpenVMS (Craig A. Berry)</li>
+ <li>William Brack fixed multithreading lock problems</li>
+ <li>IPv6 patch for FTP and HTTP accesses (Archana Shah/Wipro)</li>
+ <li>Windows fixes (Igor Zlatkovic, Eric Zurcher), threading (Stéphane
+ Bidoul)</li>
+ <li>A few W3C Schemas Structure improvements</li>
+ <li>W3C Schemas Datatype improvements (Charlie Bozeman)</li>
+ <li>Python bindings for thread globals (Stéphane Bidoul), and method/class
+ generator</li>
+ <li>added --nonet option to xmllint</li>
+ <li>documentation improvements (John Fleck)</li>
+</ul><h3>2.5.7: Apr 25 2003</h3><ul>
+ <li>Relax-NG: Compiling to regexp and streaming validation on top of the
+ xmlReader interface, added to xmllint --stream</li>
+ <li>xmlReader: Expand(), Next() and DOM access glue, bug fixes</li>
+ <li>Support for large files: RGN validated a 4.5GB instance</li>
+ <li>Thread support is now configured in by default</li>
+ <li>Fixes: update of the Trio code (Bjorn), WXS Date and Duration fixes
+ (Charles Bozeman), DTD and namespaces (Brent Hendricks), HTML push parser
+ and zero bytes handling, some missing Windows file path conversions,
+ behaviour of the parser and validator in the presence of "out of memory"
+ error conditions</li>
+ <li>extended the API to be able to plug a garbage collecting memory
+ allocator, added xmlMallocAtomic() and modified the allocations
+ accordingly.</li>
+ <li>Performances: removed excessive malloc() calls, speedup of the push and
+ xmlReader interfaces, removed excessive thread locking</li>
+ <li>Documentation: man page (John Fleck), xmlReader documentation</li>
+ <li>Python: adding binding for xmlCatalogAddLocal (Brent M Hendricks)</li>
+</ul><h3>2.5.6: Apr 1 2003</h3><ul>
+ <li>Fixed W3C XML Schemas datatype, should be compliant now except for
+ binHex and base64 which are not supported yet.</li>
+ <li>bug fixes: non-ASCII IDs, HTML output, XInclude on large docs and
+ XInclude entities handling, encoding detection on external subsets, XML
+ Schemas bugs and memory leaks, HTML parser (James Bursa)</li>
+ <li>portability: python/trio (Albert Chin), Sun compiler warnings</li>
+ <li>documentation: added --relaxng option to xmllint man page (John)</li>
+ <li>improved error reporting: xml:space, start/end tag mismatches, Relax NG
+ errors</li>
+</ul><h3>2.5.5: Mar 24 2003</h3><ul>
+ <li>Lot of fixes on the Relax NG implementation. More testing including
+ DocBook and TEI examples.</li>
+ <li>Increased the support for W3C XML Schemas datatype</li>
+ <li>Several bug fixes in the URI handling layer</li>
+ <li>Bug fixes: HTML parser, xmlReader, DTD validation, XPath, encoding
+ conversion, line counting in the parser.</li>
+ <li>Added support for $XMLLINT_INDENT environment variable, FTP delete</li>
+ <li>Fixed the RPM spec file name</li>
+</ul><h3>2.5.4: Feb 20 2003</h3><ul>
+ <li>Conformance testing and lot of fixes on Relax NG and XInclude
+ implementation</li>
+ <li>Implementation of XPointer element() scheme</li>
+ <li>Bug fixes: XML parser, XInclude entities merge, validity checking on
+ namespaces,
+ <p>2 serialization bugs, node info generation problems, a DTD regexp
+ generation problem.</p>
+ </li>
+ <li>Portability: windows updates and path canonicalization (Igor)</li>
+ <li>A few typo fixes (Kjartan Maraas)</li>
+ <li>Python bindings generator fixes (Stephane Bidoul)</li>
+</ul><h3>2.5.3: Feb 10 2003</h3><ul>
+ <li>RelaxNG and XML Schemas datatypes improvements, and added a first
+ version of RelaxNG Python bindings</li>
+ <li>Fixes: XLink (Sean Chittenden), XInclude (Sean Chittenden), API fix for
+ serializing namespace nodes, encoding conversion bug, XHTML1
+ serialization</li>
+ <li>Portability fixes: Windows (Igor), AMD 64bits RPM spec file</li>
+</ul><h3>2.5.2: Feb 5 2003</h3><ul>
+ <li>First implementation of RelaxNG, added --relaxng flag to xmllint</li>
+ <li>Schemas support now compiled in by default.</li>
+ <li>Bug fixes: DTD validation, namespace checking, XInclude and entities,
+ delegateURI in XML Catalogs, HTML parser, XML reader (Stéphane Bidoul),
+ XPath parser and evaluation, UTF8ToUTF8 serialization, XML reader memory
+ consumption, HTML parser, HTML serialization in the presence of
+ namespaces</li>
+ <li>added an HTML API to check elements and attributes.</li>
+ <li>Documentation improvement, PDF for the tutorial (John Fleck), doc
+ patches (Stefan Kost)</li>
+ <li>Portability fixes: NetBSD (Julio Merino), Windows (Igor Zlatkovic)</li>
+ <li>Added python bindings for XPointer, contextual error reporting
+ (Stéphane Bidoul)</li>
+ <li>URI/file escaping problems (Stefano Zacchiroli)</li>
+</ul><h3>2.5.1: Jan 8 2003</h3><ul>
+ <li>Fixes a memory leak and configuration/compilation problems in 2.5.0</li>
+ <li>documentation updates (John)</li>
+ <li>a couple of XmlTextReader fixes</li>
+</ul><h3>2.5.0: Jan 6 2003</h3><ul>
+ <li>New <a href="xmlreader.html">XmltextReader interface</a> based on C#
+ API (with help of Stéphane Bidoul)</li>
+ <li>Windows: more exports, including the new API (Igor)</li>
+ <li>XInclude fallback fix</li>
+ <li>Python: bindings for the new API, packaging (Stéphane Bidoul),
+ drv_libxml2.py Python xml.sax driver (Stéphane Bidoul), fixes, speedup
+ and iterators for Python-2.2 (Hannu Krosing)</li>
+ <li>Tutorial fixes (john Fleck and Niraj Tolia) xmllint man update
+ (John)</li>
+ <li>Fix an XML parser bug raised by Vyacheslav Pindyura</li>
+ <li>Fix for VMS serialization (Nigel Hall) and config (Craig A. Berry)</li>
+ <li>Entities handling fixes</li>
+ <li>new API to optionally track node creation and deletion (Lukas
+ Schroeder)</li>
+ <li>Added documentation for the XmltextReader interface and some <a href="guidelines.html">XML guidelines</a></li>
+</ul><h3>2.4.30: Dec 12 2002</h3><ul>
+ <li>2.4.29 broke the python bindings, rereleasing</li>
+ <li>Improvement/fixes of the XML API generator, and couple of minor code
+ fixes.</li>
+</ul><h3>2.4.29: Dec 11 2002</h3><ul>
+ <li>Windows fixes (Igor): Windows CE port, pthread linking, python bindings
+ (Stéphane Bidoul), Mingw (Magnus Henoch), and export list updates</li>
+ <li>Fix for prev in python bindings (ERDI Gergo)</li>
+ <li>Fix for entities handling (Marcus Clarke)</li>
+ <li>Refactored the XML and HTML dumps to a single code path, fixed XHTML1
+ dump</li>
+ <li>Fix for URI parsing when handling URNs with fragment identifiers</li>
+ <li>Fix for HTTP URL escaping problem</li>
+ <li>added an TextXmlReader (C#) like API (work in progress)</li>
+ <li>Rewrote the API in XML generation script, includes a C parser and saves
+ more information needed for C# bindings</li>
+</ul><h3>2.4.28: Nov 22 2002</h3><ul>
+ <li>a couple of python binding fixes</li>
+ <li>2 bug fixes in the XML push parser</li>
+ <li>potential memory leak removed (Martin Stoilov)</li>
+ <li>fix to the configure script for Unix (Dimitri Papadopoulos)</li>
+ <li>added encoding support for XInclude parse="text"</li>
+ <li>autodetection of XHTML1 and specific serialization rules added</li>
+ <li>nasty threading bug fixed (William Brack)</li>
+</ul><h3>2.4.27: Nov 17 2002</h3><ul>
+ <li>fixes for the Python bindings</li>
+ <li>a number of bug fixes: SGML catalogs, xmlParseBalancedChunkMemory(),
+ HTML parser, Schemas (Charles Bozeman), document fragment support
+ (Christian Glahn), xmlReconciliateNs (Brian Stafford), XPointer,
+ xmlFreeNode(), xmlSAXParseMemory (Peter Jones), xmlGetNodePath (Petr
+ Pajas), entities processing</li>
+ <li>added grep to xmllint --shell</li>
+ <li>VMS update patch from Craig A. Berry</li>
+ <li>cleanup of the Windows build with support for more compilers (Igor),
+ better thread support on Windows</li>
+ <li>cleanup of Unix Makefiles and spec file</li>
+ <li>Improvements to the documentation (John Fleck)</li>
+</ul><h3>2.4.26: Oct 18 2002</h3><ul>
+ <li>Patches for Windows CE port, improvements on Windows paths handling</li>
+ <li>Fixes to the validation code (DTD and Schemas), xmlNodeGetPath() ,
+ HTML serialization, Namespace compliance, and a number of small
+ problems</li>
+</ul><h3>2.4.25: Sep 26 2002</h3><ul>
+ <li>A number of bug fixes: XPath, validation, Python bindings, DOM and
+ tree, xmlI/O, Html</li>
+ <li>Serious rewrite of XInclude</li>
+ <li>Made XML Schemas regexp part of the default build and APIs, small fix
+ and improvement of the regexp core</li>
+ <li>Changed the validation code to reuse XML Schemas regexp APIs</li>
+ <li>Better handling of Windows file paths, improvement of Makefiles (Igor,
+ Daniel Gehriger, Mark Vakoc)</li>
+ <li>Improved the python I/O bindings, the tests, added resolver and regexp
+ APIs</li>
+ <li>New logos from Marc Liyanage</li>
+ <li>Tutorial improvements: John Fleck, Christopher Harris</li>
+ <li>Makefile: Fixes for AMD x86_64 (Mandrake), DESTDIR (Christophe
+ Merlet)</li>
+ <li>removal of all stderr/perror use for error reporting</li>
+ <li>Better error reporting: XPath and DTD validation</li>
+ <li>update of the trio portability layer (Bjorn Reese)</li>
+</ul><p><strong>2.4.24: Aug 22 2002</strong></p><ul>
+ <li>XPath fixes (William), xf:escape-uri() (Wesley Terpstra)</li>
+ <li>Python binding fixes: makefiles (William), generator, rpm build, x86-64
+ (fcrozat)</li>
+ <li>HTML &lt;style&gt; and boolean attributes serializer fixes</li>
+ <li>C14N improvements by Aleksey</li>
+ <li>doc cleanups: Rick Jones</li>
+ <li>Windows compiler makefile updates: Igor and Elizabeth Barham</li>
+ <li>XInclude: implementation of fallback and xml:base fixup added</li>
+</ul><h3>2.4.23: July 6 2002</h3><ul>
+ <li>performances patches: Peter Jacobi</li>
+ <li>c14n fixes, testsuite and performances: Aleksey Sanin</li>
+ <li>added xmlDocFormatDump: Chema Celorio</li>
+ <li>new tutorial: John Fleck</li>
+ <li>new hash functions and performances: Sander Vesik, portability fix from
+ Peter Jacobi</li>
+ <li>a number of bug fixes: XPath (William Brack, Richard Jinks), XML and
+ HTML parsers, ID lookup function</li>
+ <li>removal of all remaining sprintf: Aleksey Sanin</li>
+</ul><h3>2.4.22: May 27 2002</h3><ul>
+ <li>a number of bug fixes: configure scripts, base handling, parser, memory
+ usage, HTML parser, XPath, documentation (Christian Cornelssen),
+ indentation, URI parsing</li>
+ <li>Optimizations for XMLSec, fixing and making public some of the network
+ protocol handlers (Aleksey)</li>
+ <li>performance patch from Gary Pennington</li>
+ <li>Charles Bozeman provided date and time support for XML Schemas
+ datatypes</li>
+</ul><h3>2.4.21: Apr 29 2002</h3><p>This release is both a bug fix release and also contains the early XML
+Schemas <a href="http://www.w3.org/TR/xmlschema-1/">structures</a> and <a href="http://www.w3.org/TR/xmlschema-2/">datatypes</a> code, beware, all
+interfaces are likely to change, there is huge holes, it is clearly a work in
+progress and don't even think of putting this code in a production system,
+it's actually not compiled in by default. The real fixes are:
+</p><ul>
+ <li>a couple of bugs or limitations introduced in 2.4.20</li>
+ <li>patches for Borland C++ and MSC by Igor</li>
+ <li>some fixes on XPath strings and conformance patches by Richard
+ Jinks</li>
+ <li>patch from Aleksey for the ExcC14N specification</li>
+ <li>OSF/1 bug fix by Bjorn</li>
+</ul><h3>2.4.20: Apr 15 2002</h3><ul>
+ <li>bug fixes: file descriptor leak, XPath, HTML output, DTD validation</li>
+ <li>XPath conformance testing by Richard Jinks</li>
+ <li>Portability fixes: Solaris, MPE/iX, Windows, OSF/1, python bindings,
+ libxml.m4</li>
+</ul><h3>2.4.19: Mar 25 2002</h3><ul>
+ <li>bug fixes: half a dozen XPath bugs, Validation, ISO-Latin to UTF8
+ encoder</li>
+ <li>portability fixes in the HTTP code</li>
+ <li>memory allocation checks using valgrind, and profiling tests</li>
+ <li>revamp of the Windows build and Makefiles</li>
+</ul><h3>2.4.18: Mar 18 2002</h3><ul>
+ <li>bug fixes: tree, SAX, canonicalization, validation, portability,
+ XPath</li>
+ <li>removed the --with-buffer option it was becoming unmaintainable</li>
+ <li>serious cleanup of the Python makefiles</li>
+ <li>speedup patch to XPath very effective for DocBook stylesheets</li>
+ <li>Fixes for Windows build, cleanup of the documentation</li>
+</ul><h3>2.4.17: Mar 8 2002</h3><ul>
+ <li>a lot of bug fixes, including "namespace nodes have no parents in
+ XPath"</li>
+ <li>fixed/improved the Python wrappers, added more examples and more
+ regression tests, XPath extension functions can now return node-sets</li>
+ <li>added the XML Canonicalization support from Aleksey Sanin</li>
+</ul><h3>2.4.16: Feb 20 2002</h3><ul>
+ <li>a lot of bug fixes, most of them were triggered by the XML Testsuite
+ from OASIS and W3C. Compliance has been significantly improved.</li>
+ <li>a couple of portability fixes too.</li>
+</ul><h3>2.4.15: Feb 11 2002</h3><ul>
+ <li>Fixed the Makefiles, especially the python module ones</li>
+ <li>A few bug fixes and cleanup</li>
+ <li>Includes cleanup</li>
+</ul><h3>2.4.14: Feb 8 2002</h3><ul>
+ <li>Change of License to the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
+ License</a> basically for integration in XFree86 codebase, and removing
+ confusion around the previous dual-licensing</li>
+ <li>added Python bindings, beta software but should already be quite
+ complete</li>
+ <li>a large number of fixes and cleanups, especially for all tree
+ manipulations</li>
+ <li>cleanup of the headers, generation of a reference API definition in
+ XML</li>
+</ul><h3>2.4.13: Jan 14 2002</h3><ul>
+ <li>update of the documentation: John Fleck and Charlie Bozeman</li>
+ <li>cleanup of timing code from Justin Fletcher</li>
+ <li>fixes for Windows and initial thread support on Win32: Igor and Serguei
+ Narojnyi</li>
+ <li>Cygwin patch from Robert Collins</li>
+ <li>added xmlSetEntityReferenceFunc() for Keith Isdale work on xsldbg</li>
+</ul><h3>2.4.12: Dec 7 2001</h3><ul>
+ <li>a few bug fixes: thread (Gary Pennington), xmllint (Geert Kloosterman),
+ XML parser (Robin Berjon), XPointer (Danny Jamshy), I/O cleanups
+ (robert)</li>
+ <li>Eric Lavigne contributed project files for MacOS</li>
+ <li>some makefiles cleanups</li>
+</ul><h3>2.4.11: Nov 26 2001</h3><ul>
+ <li>fixed a couple of errors in the includes, fixed a few bugs, some code
+ cleanups</li>
+ <li>xmllint man pages improvement by Heiko Rupp</li>
+ <li>updated VMS build instructions from John A Fotheringham</li>
+ <li>Windows Makefiles updates from Igor</li>
+</ul><h3>2.4.10: Nov 10 2001</h3><ul>
+ <li>URI escaping fix (Joel Young)</li>
+ <li>added xmlGetNodePath() (for paths or XPointers generation)</li>
+ <li>Fixes namespace handling problems when using DTD and validation</li>
+ <li>improvements on xmllint: Morus Walter patches for --format and
+ --encode, Stefan Kost and Heiko Rupp improvements on the --shell</li>
+ <li>fixes for xmlcatalog linking pointed by Weiqi Gao</li>
+ <li>fixes to the HTML parser</li>
+</ul><h3>2.4.9: Nov 6 2001</h3><ul>
+ <li>fixes more catalog bugs</li>
+ <li>avoid a compilation problem, improve xmlGetLineNo()</li>
+</ul><h3>2.4.8: Nov 4 2001</h3><ul>
+ <li>fixed SGML catalogs broken in previous release, updated xmlcatalog
+ tool</li>
+ <li>fixed a compile errors and some includes troubles.</li>
+</ul><h3>2.4.7: Oct 30 2001</h3><ul>
+ <li>exported some debugging interfaces</li>
+ <li>serious rewrite of the catalog code</li>
+ <li>integrated Gary Pennington thread safety patch, added configure option
+ and regression tests</li>
+ <li>removed an HTML parser bug</li>
+ <li>fixed a couple of potentially serious validation bugs</li>
+ <li>integrated the SGML DocBook support in xmllint</li>
+ <li>changed the nanoftp anonymous login passwd</li>
+ <li>some I/O cleanup and a couple of interfaces for Perl wrapper</li>
+ <li>general bug fixes</li>
+ <li>updated xmllint man page by John Fleck</li>
+ <li>some VMS and Windows updates</li>
+</ul><h3>2.4.6: Oct 10 2001</h3><ul>
+ <li>added an updated man pages by John Fleck</li>
+ <li>portability and configure fixes</li>
+ <li>an infinite loop on the HTML parser was removed (William)</li>
+ <li>Windows makefile patches from Igor</li>
+ <li>fixed half a dozen bugs reported for libxml or libxslt</li>
+ <li>updated xmlcatalog to be able to modify SGML super catalogs</li>
+</ul><h3>2.4.5: Sep 14 2001</h3><ul>
+ <li>Remove a few annoying bugs in 2.4.4</li>
+ <li>forces the HTML serializer to output decimal charrefs since some
+ version of Netscape can't handle hexadecimal ones</li>
+</ul><h3>1.8.16: Sep 14 2001</h3><ul>
+ <li>maintenance release of the old libxml1 branch, couple of bug and
+ portability fixes</li>
+</ul><h3>2.4.4: Sep 12 2001</h3><ul>
+ <li>added --convert to xmlcatalog, bug fixes and cleanups of XML
+ Catalog</li>
+ <li>a few bug fixes and some portability changes</li>
+ <li>some documentation cleanups</li>
+</ul><h3>2.4.3: Aug 23 2001</h3><ul>
+ <li>XML Catalog support see the doc</li>
+ <li>New NaN/Infinity floating point code</li>
+ <li>A few bug fixes</li>
+</ul><h3>2.4.2: Aug 15 2001</h3><ul>
+ <li>adds xmlLineNumbersDefault() to control line number generation</li>
+ <li>lot of bug fixes</li>
+ <li>the Microsoft MSC projects files should now be up to date</li>
+ <li>inheritance of namespaces from DTD defaulted attributes</li>
+ <li>fixes a serious potential security bug</li>
+ <li>added a --format option to xmllint</li>
+</ul><h3>2.4.1: July 24 2001</h3><ul>
+ <li>possibility to keep line numbers in the tree</li>
+ <li>some computation NaN fixes</li>
+ <li>extension of the XPath API</li>
+ <li>cleanup for alpha and ia64 targets</li>
+ <li>patch to allow saving through HTTP PUT or POST</li>
+</ul><h3>2.4.0: July 10 2001</h3><ul>
+ <li>Fixed a few bugs in XPath, validation, and tree handling.</li>
+ <li>Fixed XML Base implementation, added a couple of examples to the
+ regression tests</li>
+ <li>A bit of cleanup</li>
+</ul><h3>2.3.14: July 5 2001</h3><ul>
+ <li>fixed some entities problems and reduce memory requirement when
+ substituting them</li>
+ <li>lots of improvements in the XPath queries interpreter can be
+ substantially faster</li>
+ <li>Makefiles and configure cleanups</li>
+ <li>Fixes to XPath variable eval, and compare on empty node set</li>
+ <li>HTML tag closing bug fixed</li>
+ <li>Fixed an URI reference computation problem when validating</li>
+</ul><h3>2.3.13: June 28 2001</h3><ul>
+ <li>2.3.12 configure.in was broken as well as the push mode XML parser</li>
+ <li>a few more fixes for compilation on Windows MSC by Yon Derek</li>
+</ul><h3>1.8.14: June 28 2001</h3><ul>
+ <li>Zbigniew Chyla gave a patch to use the old XML parser in push mode</li>
+ <li>Small Makefile fix</li>
+</ul><h3>2.3.12: June 26 2001</h3><ul>
+ <li>lots of cleanup</li>
+ <li>a couple of validation fix</li>
+ <li>fixed line number counting</li>
+ <li>fixed serious problems in the XInclude processing</li>
+ <li>added support for UTF8 BOM at beginning of entities</li>
+ <li>fixed a strange gcc optimizer bugs in xpath handling of float, gcc-3.0
+ miscompile uri.c (William), Thomas Leitner provided a fix for the
+ optimizer on Tru64</li>
+ <li>incorporated Yon Derek and Igor Zlatkovic fixes and improvements for
+ compilation on Windows MSC</li>
+ <li>update of libxml-doc.el (Felix Natter)</li>
+ <li>fixed 2 bugs in URI normalization code</li>
+</ul><h3>2.3.11: June 17 2001</h3><ul>
+ <li>updates to trio, Makefiles and configure should fix some portability
+ problems (alpha)</li>
+ <li>fixed some HTML serialization problems (pre, script, and block/inline
+ handling), added encoding aware APIs, cleanup of this code</li>
+ <li>added xmlHasNsProp()</li>
+ <li>implemented a specific PI for encoding support in the DocBook SGML
+ parser</li>
+ <li>some XPath fixes (-Infinity, / as a function parameter and namespaces
+ node selection)</li>
+ <li>fixed a performance problem and an error in the validation code</li>
+ <li>fixed XInclude routine to implement the recursive behaviour</li>
+ <li>fixed xmlFreeNode problem when libxml is included statically twice</li>
+ <li>added --version to xmllint for bug reports</li>
+</ul><h3>2.3.10: June 1 2001</h3><ul>
+ <li>fixed the SGML catalog support</li>
+ <li>a number of reported bugs got fixed, in XPath, iconv detection,
+ XInclude processing</li>
+ <li>XPath string function should now handle unicode correctly</li>
+</ul><h3>2.3.9: May 19 2001</h3><p>Lots of bugfixes, and added a basic SGML catalog support:
+</p><ul>
+ <li>HTML push bugfix #54891 and another patch from Jonas Borgstrom</li>
+ <li>some serious speed optimization again</li>
+ <li>some documentation cleanups</li>
+ <li>trying to get better linking on Solaris (-R)</li>
+ <li>XPath API cleanup from Thomas Broyer</li>
+ <li>Validation bug fixed #54631, added a patch from Gary Pennington, fixed
+ xmlValidGetValidElements()</li>
+ <li>Added an INSTALL file</li>
+ <li>Attribute removal added to API: #54433</li>
+ <li>added a basic support for SGML catalogs</li>
+ <li>fixed xmlKeepBlanksDefault(0) API</li>
+ <li>bugfix in xmlNodeGetLang()</li>
+ <li>fixed a small configure portability problem</li>
+ <li>fixed an inversion of SYSTEM and PUBLIC identifier in HTML document</li>
+</ul><h3>1.8.13: May 14 2001</h3><ul>
+ <li>bugfixes release of the old libxml1 branch used by Gnome</li>
+</ul><h3>2.3.8: May 3 2001</h3><ul>
+ <li>Integrated an SGML DocBook parser for the Gnome project</li>
+ <li>Fixed a few things in the HTML parser</li>
+ <li>Fixed some XPath bugs raised by XSLT use, tried to fix the floating
+ point portability issue</li>
+ <li>Speed improvement (8M/s for SAX, 3M/s for DOM, 1.5M/s for
+ DOM+validation using the XML REC as input and a 700MHz celeron).</li>
+ <li>incorporated more Windows cleanup</li>
+ <li>added xmlSaveFormatFile()</li>
+ <li>fixed problems in copying nodes with entities references (gdome)</li>
+ <li>removed some troubles surrounding the new validation module</li>
+</ul><h3>2.3.7: April 22 2001</h3><ul>
+ <li>lots of small bug fixes, corrected XPointer</li>
+ <li>Non deterministic content model validation support</li>
+ <li>added xmlDocCopyNode for gdome2</li>
+ <li>revamped the way the HTML parser handles end of tags</li>
+ <li>XPath: corrections of namespaces support and number formatting</li>
+ <li>Windows: Igor Zlatkovic patches for MSC compilation</li>
+ <li>HTML output fixes from P C Chow and William M. Brack</li>
+ <li>Improved validation speed sensible for DocBook</li>
+ <li>fixed a big bug with ID declared in external parsed entities</li>
+ <li>portability fixes, update of Trio from Bjorn Reese</li>
+</ul><h3>2.3.6: April 8 2001</h3><ul>
+ <li>Code cleanup using extreme gcc compiler warning options, found and
+ cleared half a dozen potential problem</li>
+ <li>the Eazel team found an XML parser bug</li>
+ <li>cleaned up the user of some of the string formatting function. used the
+ trio library code to provide the one needed when the platform is missing
+ them</li>
+ <li>xpath: removed a memory leak and fixed the predicate evaluation
+ problem, extended the testsuite and cleaned up the result. XPointer seems
+ broken ...</li>
+</ul><h3>2.3.5: Mar 23 2001</h3><ul>
+ <li>Biggest change is separate parsing and evaluation of XPath expressions,
+ there is some new APIs for this too</li>
+ <li>included a number of bug fixes(XML push parser, 51876, notations,
+ 52299)</li>
+ <li>Fixed some portability issues</li>
+</ul><h3>2.3.4: Mar 10 2001</h3><ul>
+ <li>Fixed bugs #51860 and #51861</li>
+ <li>Added a global variable xmlDefaultBufferSize to allow default buffer
+ size to be application tunable.</li>
+ <li>Some cleanup in the validation code, still a bug left and this part
+ should probably be rewritten to support ambiguous content model :-\</li>
+ <li>Fix a couple of serious bugs introduced or raised by changes in 2.3.3
+ parser</li>
+ <li>Fixed another bug in xmlNodeGetContent()</li>
+ <li>Bjorn fixed XPath node collection and Number formatting</li>
+ <li>Fixed a loop reported in the HTML parsing</li>
+ <li>blank space are reported even if the Dtd content model proves that they
+ are formatting spaces, this is for XML conformance</li>
+</ul><h3>2.3.3: Mar 1 2001</h3><ul>
+ <li>small change in XPath for XSLT</li>
+ <li>documentation cleanups</li>
+ <li>fix in validation by Gary Pennington</li>
+ <li>serious parsing performances improvements</li>
+</ul><h3>2.3.2: Feb 24 2001</h3><ul>
+ <li>chasing XPath bugs, found a bunch, completed some TODO</li>
+ <li>fixed a Dtd parsing bug</li>
+ <li>fixed a bug in xmlNodeGetContent</li>
+ <li>ID/IDREF support partly rewritten by Gary Pennington</li>
+</ul><h3>2.3.1: Feb 15 2001</h3><ul>
+ <li>some XPath and HTML bug fixes for XSLT</li>
+ <li>small extension of the hash table interfaces for DOM gdome2
+ implementation</li>
+ <li>A few bug fixes</li>
+</ul><h3>2.3.0: Feb 8 2001 (2.2.12 was on 25 Jan but I didn't kept track)</h3><ul>
+ <li>Lots of XPath bug fixes</li>
+ <li>Add a mode with Dtd lookup but without validation error reporting for
+ XSLT</li>
+ <li>Add support for text node without escaping (XSLT)</li>
+ <li>bug fixes for xmlCheckFilename</li>
+ <li>validation code bug fixes from Gary Pennington</li>
+ <li>Patch from Paul D. Smith correcting URI path normalization</li>
+ <li>Patch to allow simultaneous install of libxml-devel and
+ libxml2-devel</li>
+ <li>the example Makefile is now fixed</li>
+ <li>added HTML to the RPM packages</li>
+ <li>tree copying bugfixes</li>
+ <li>updates to Windows makefiles</li>
+ <li>optimization patch from Bjorn Reese</li>
+</ul><h3>2.2.11: Jan 4 2001</h3><ul>
+ <li>bunch of bug fixes (memory I/O, xpath, ftp/http, ...)</li>
+ <li>added htmlHandleOmittedElem()</li>
+ <li>Applied Bjorn Reese's IPV6 first patch</li>
+ <li>Applied Paul D. Smith patches for validation of XInclude results</li>
+ <li>added XPointer xmlns() new scheme support</li>
+</ul><h3>2.2.10: Nov 25 2000</h3><ul>
+ <li>Fix the Windows problems of 2.2.8</li>
+ <li>integrate OpenVMS patches</li>
+ <li>better handling of some nasty HTML input</li>
+ <li>Improved the XPointer implementation</li>
+ <li>integrate a number of provided patches</li>
+</ul><h3>2.2.9: Nov 25 2000</h3><ul>
+ <li>erroneous release :-(</li>
+</ul><h3>2.2.8: Nov 13 2000</h3><ul>
+ <li>First version of <a href="http://www.w3.org/TR/xinclude">XInclude</a>
+ support</li>
+ <li>Patch in conditional section handling</li>
+ <li>updated MS compiler project</li>
+ <li>fixed some XPath problems</li>
+ <li>added an URI escaping function</li>
+ <li>some other bug fixes</li>
+</ul><h3>2.2.7: Oct 31 2000</h3><ul>
+ <li>added message redirection</li>
+ <li>XPath improvements (thanks TOM !)</li>
+ <li>xmlIOParseDTD() added</li>
+ <li>various small fixes in the HTML, URI, HTTP and XPointer support</li>
+ <li>some cleanup of the Makefile, autoconf and the distribution content</li>
+</ul><h3>2.2.6: Oct 25 2000:</h3><ul>
+ <li>Added an hash table module, migrated a number of internal structure to
+ those</li>
+ <li>Fixed a posteriori validation problems</li>
+ <li>HTTP module cleanups</li>
+ <li>HTML parser improvements (tag errors, script/style handling, attribute
+ normalization)</li>
+ <li>coalescing of adjacent text nodes</li>
+ <li>couple of XPath bug fixes, exported the internal API</li>
+</ul><h3>2.2.5: Oct 15 2000:</h3><ul>
+ <li>XPointer implementation and testsuite</li>
+ <li>Lot of XPath fixes, added variable and functions registration, more
+ tests</li>
+ <li>Portability fixes, lots of enhancements toward an easy Windows build
+ and release</li>
+ <li>Late validation fixes</li>
+ <li>Integrated a lot of contributed patches</li>
+ <li>added memory management docs</li>
+ <li>a performance problem when using large buffer seems fixed</li>
+</ul><h3>2.2.4: Oct 1 2000:</h3><ul>
+ <li>main XPath problem fixed</li>
+ <li>Integrated portability patches for Windows</li>
+ <li>Serious bug fixes on the URI and HTML code</li>
+</ul><h3>2.2.3: Sep 17 2000</h3><ul>
+ <li>bug fixes</li>
+ <li>cleanup of entity handling code</li>
+ <li>overall review of all loops in the parsers, all sprintf usage has been
+ checked too</li>
+ <li>Far better handling of larges Dtd. Validating against DocBook XML Dtd
+ works smoothly now.</li>
+</ul><h3>1.8.10: Sep 6 2000</h3><ul>
+ <li>bug fix release for some Gnome projects</li>
+</ul><h3>2.2.2: August 12 2000</h3><ul>
+ <li>mostly bug fixes</li>
+ <li>started adding routines to access xml parser context options</li>
+</ul><h3>2.2.1: July 21 2000</h3><ul>
+ <li>a purely bug fixes release</li>
+ <li>fixed an encoding support problem when parsing from a memory block</li>
+ <li>fixed a DOCTYPE parsing problem</li>
+ <li>removed a bug in the function allowing to override the memory
+ allocation routines</li>
+</ul><h3>2.2.0: July 14 2000</h3><ul>
+ <li>applied a lot of portability fixes</li>
+ <li>better encoding support/cleanup and saving (content is now always
+ encoded in UTF-8)</li>
+ <li>the HTML parser now correctly handles encodings</li>
+ <li>added xmlHasProp()</li>
+ <li>fixed a serious problem with &amp;#38;</li>
+ <li>propagated the fix to FTP client</li>
+ <li>cleanup, bugfixes, etc ...</li>
+ <li>Added a page about <a href="encoding.html">libxml Internationalization
+ support</a></li>
+</ul><h3>1.8.9: July 9 2000</h3><ul>
+ <li>fixed the spec the RPMs should be better</li>
+ <li>fixed a serious bug in the FTP implementation, released 1.8.9 to solve
+ rpmfind users problem</li>
+</ul><h3>2.1.1: July 1 2000</h3><ul>
+ <li>fixes a couple of bugs in the 2.1.0 packaging</li>
+ <li>improvements on the HTML parser</li>
+</ul><h3>2.1.0 and 1.8.8: June 29 2000</h3><ul>
+ <li>1.8.8 is mostly a commodity package for upgrading to libxml2 according
+ to <a href="upgrade.html">new instructions</a>. It fixes a nasty problem
+ about &amp;#38; charref parsing</li>
+ <li>2.1.0 also ease the upgrade from libxml v1 to the recent version. it
+ also contains numerous fixes and enhancements:
+ <ul>
+ <li>added xmlStopParser() to stop parsing</li>
+ <li>improved a lot parsing speed when there is large CDATA blocs</li>
+ <li>includes XPath patches provided by Picdar Technology</li>
+ <li>tried to fix as much as possible DTD validation and namespace
+ related problems</li>
+ <li>output to a given encoding has been added/tested</li>
+ <li>lot of various fixes</li>
+ </ul>
+ </li>
+</ul><h3>2.0.0: Apr 12 2000</h3><ul>
+ <li>First public release of libxml2. If you are using libxml, it's a good
+ idea to check the 1.x to 2.x upgrade instructions. NOTE: while initially
+ scheduled for Apr 3 the release occurred only on Apr 12 due to massive
+ workload.</li>
+ <li>The include are now located under $prefix/include/libxml (instead of
+ $prefix/include/gnome-xml), they also are referenced by
+ <pre>#include &lt;libxml/xxx.h&gt;</pre>
+ <p>instead of</p>
+ <pre>#include "xxx.h"</pre>
+ </li>
+ <li>a new URI module for parsing URIs and following strictly RFC 2396</li>
+ <li>the memory allocation routines used by libxml can now be overloaded
+ dynamically by using xmlMemSetup()</li>
+ <li>The previously CVS only tool tester has been renamed
+ <strong>xmllint</strong> and is now installed as part of the libxml2
+ package</li>
+ <li>The I/O interface has been revamped. There is now ways to plug in
+ specific I/O modules, either at the URI scheme detection level using
+ xmlRegisterInputCallbacks() or by passing I/O functions when creating a
+ parser context using xmlCreateIOParserCtxt()</li>
+ <li>there is a C preprocessor macro LIBXML_VERSION providing the version
+ number of the libxml module in use</li>
+ <li>a number of optional features of libxml can now be excluded at
+ configure time (FTP/HTTP/HTML/XPath/Debug)</li>
+</ul><h3>2.0.0beta: Mar 14 2000</h3><ul>
+ <li>This is a first Beta release of libxml version 2</li>
+ <li>It's available only from<a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org
+ FTP</a>, it's packaged as libxml2-2.0.0beta and available as tar and
+ RPMs</li>
+ <li>This version is now the head in the Gnome CVS base, the old one is
+ available under the tag LIB_XML_1_X</li>
+ <li>This includes a very large set of changes. From a programmatic point
+ of view applications should not have to be modified too much, check the
+ <a href="upgrade.html">upgrade page</a></li>
+ <li>Some interfaces may changes (especially a bit about encoding).</li>
+ <li>the updates includes:
+ <ul>
+ <li>fix I18N support. ISO-Latin-x/UTF-8/UTF-16 (nearly) seems correctly
+ handled now</li>
+ <li>Better handling of entities, especially well-formedness checking
+ and proper PEref extensions in external subsets</li>
+ <li>DTD conditional sections</li>
+ <li>Validation now correctly handle entities content</li>
+ <li><a href="http://rpmfind.net/tools/gdome/messages/0039.html">change
+ structures to accommodate DOM</a></li>
+ </ul>
+ </li>
+ <li>Serious progress were made toward compliance, <a href="conf/result.html">here are the result of the test</a> against the
+ OASIS testsuite (except the Japanese tests since I don't support that
+ encoding yet). This URL is rebuilt every couple of hours using the CVS
+ head version.</li>
+</ul><h3>1.8.7: Mar 6 2000</h3><ul>
+ <li>This is a bug fix release:</li>
+ <li>It is possible to disable the ignorable blanks heuristic used by
+ libxml-1.x, a new function xmlKeepBlanksDefault(0) will allow this. Note
+ that for adherence to XML spec, this behaviour will be disabled by
+ default in 2.x . The same function will allow to keep compatibility for
+ old code.</li>
+ <li>Blanks in &lt;a&gt; &lt;/a&gt; constructs are not ignored anymore,
+ avoiding heuristic is really the Right Way :-\</li>
+ <li>The unchecked use of snprintf which was breaking libxml-1.8.6
+ compilation on some platforms has been fixed</li>
+ <li>nanoftp.c nanohttp.c: Fixed '#' and '?' stripping when processing
+ URIs</li>
+</ul><h3>1.8.6: Jan 31 2000</h3><ul>
+ <li>added a nanoFTP transport module, debugged until the new version of <a href="http://rpmfind.net/linux/rpm2html/rpmfind.html">rpmfind</a> can use
+ it without troubles</li>
+</ul><h3>1.8.5: Jan 21 2000</h3><ul>
+ <li>adding APIs to parse a well balanced chunk of XML (production <a href="http://www.w3.org/TR/REC-xml#NT-content">[43] content</a> of the
+ XML spec)</li>
+ <li>fixed a hideous bug in xmlGetProp pointed by Rune.Djurhuus@fast.no</li>
+ <li>Jody Goldberg &lt;jgoldberg@home.com&gt; provided another patch trying
+ to solve the zlib checks problems</li>
+ <li>The current state in gnome CVS base is expected to ship as 1.8.5 with
+ gnumeric soon</li>
+</ul><h3>1.8.4: Jan 13 2000</h3><ul>
+ <li>bug fixes, reintroduced xmlNewGlobalNs(), fixed xmlNewNs()</li>
+ <li>all exit() call should have been removed from libxml</li>
+ <li>fixed a problem with INCLUDE_WINSOCK on WIN32 platform</li>
+ <li>added newDocFragment()</li>
+</ul><h3>1.8.3: Jan 5 2000</h3><ul>
+ <li>a Push interface for the XML and HTML parsers</li>
+ <li>a shell-like interface to the document tree (try tester --shell :-)</li>
+ <li>lots of bug fixes and improvement added over XMas holidays</li>
+ <li>fixed the DTD parsing code to work with the xhtml DTD</li>
+ <li>added xmlRemoveProp(), xmlRemoveID() and xmlRemoveRef()</li>
+ <li>Fixed bugs in xmlNewNs()</li>
+ <li>External entity loading code has been revamped, now it uses
+ xmlLoadExternalEntity(), some fix on entities processing were added</li>
+ <li>cleaned up WIN32 includes of socket stuff</li>
+</ul><h3>1.8.2: Dec 21 1999</h3><ul>
+ <li>I got another problem with includes and C++, I hope this issue is fixed
+ for good this time</li>
+ <li>Added a few tree modification functions: xmlReplaceNode,
+ xmlAddPrevSibling, xmlAddNextSibling, xmlNodeSetName and
+ xmlDocSetRootElement</li>
+ <li>Tried to improve the HTML output with help from <a href="mailto:clahey@umich.edu">Chris Lahey</a></li>
+</ul><h3>1.8.1: Dec 18 1999</h3><ul>
+ <li>various patches to avoid troubles when using libxml with C++ compilers
+ the "namespace" keyword and C escaping in include files</li>
+ <li>a problem in one of the core macros IS_CHAR was corrected</li>
+ <li>fixed a bug introduced in 1.8.0 breaking default namespace processing,
+ and more specifically the Dia application</li>
+ <li>fixed a posteriori validation (validation after parsing, or by using a
+ Dtd not specified in the original document)</li>
+ <li>fixed a bug in</li>
+</ul><h3>1.8.0: Dec 12 1999</h3><ul>
+ <li>cleanup, especially memory wise</li>
+ <li>the parser should be more reliable, especially the HTML one, it should
+ not crash, whatever the input !</li>
+ <li>Integrated various patches, especially a speedup improvement for large
+ dataset from <a href="mailto:cnygard@bellatlantic.net">Carl Nygard</a>,
+ configure with --with-buffers to enable them.</li>
+ <li>attribute normalization, oops should have been added long ago !</li>
+ <li>attributes defaulted from DTDs should be available, xmlSetProp() now
+ does entities escaping by default.</li>
+</ul><h3>1.7.4: Oct 25 1999</h3><ul>
+ <li>Lots of HTML improvement</li>
+ <li>Fixed some errors when saving both XML and HTML</li>
+ <li>More examples, the regression tests should now look clean</li>
+ <li>Fixed a bug with contiguous charref</li>
+</ul><h3>1.7.3: Sep 29 1999</h3><ul>
+ <li>portability problems fixed</li>
+ <li>snprintf was used unconditionally, leading to link problems on system
+ were it's not available, fixed</li>
+</ul><h3>1.7.1: Sep 24 1999</h3><ul>
+ <li>The basic type for strings manipulated by libxml has been renamed in
+ 1.7.1 from <strong>CHAR</strong> to <strong>xmlChar</strong>. The reason
+ is that CHAR was conflicting with a predefined type on Windows. However
+ on non WIN32 environment, compatibility is provided by the way of a
+ <strong>#define </strong>.</li>
+ <li>Changed another error : the use of a structure field called errno, and
+ leading to troubles on platforms where it's a macro</li>
+</ul><h3>1.7.0: Sep 23 1999</h3><ul>
+ <li>Added the ability to fetch remote DTD or parsed entities, see the <a href="html/libxml-nanohttp.html">nanohttp</a> module.</li>
+ <li>Added an errno to report errors by another mean than a simple printf
+ like callback</li>
+ <li>Finished ID/IDREF support and checking when validation</li>
+ <li>Serious memory leaks fixed (there is now a <a href="html/libxml-xmlmemory.html">memory wrapper</a> module)</li>
+ <li>Improvement of <a href="http://www.w3.org/TR/xpath">XPath</a>
+ implementation</li>
+ <li>Added an HTML parser front-end</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>
diff --git a/libxml2-2.9.10/doc/news.xsl b/libxml2-2.9.10/doc/news.xsl
new file mode 100644
index 0000000..50089eb
--- /dev/null
+++ b/libxml2-2.9.10/doc/news.xsl
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml"
+ version="1.0">
+ <xsl:output method="text" encoding="UTF-8"/>
+
+ <xsl:template match="/">
+ <xsl:text>
+ NEWS file for libxml2
+
+ Note that this is automatically generated from the news webpage at:
+ http://xmlsoft.org/news.html
+
+</xsl:text>
+ <xsl:apply-templates select="//xhtml:h3[1]/.."/>
+ </xsl:template>
+ <xsl:template match="xhtml:h3">
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>:
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="xhtml:ul">
+ <xsl:apply-templates select=".//xhtml:li"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="xhtml:li">
+ <xsl:text> - </xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="xhtml:a">
+ <xsl:value-of select="."/>
+ <xsl:text> at
+</xsl:text>
+ <xsl:value-of select="@href"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+</xsl:stylesheet>
+
diff --git a/libxml2-2.9.10/doc/python.html b/libxml2-2.9.10/doc/python.html
new file mode 100644
index 0000000..fd52966
--- /dev/null
+++ b/libxml2-2.9.10/doc/python.html
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Python and bindings</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>Python and bindings</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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>There are a number of language bindings and wrappers available for
+libxml2, the list below is not exhaustive. Please contact the <a href="http://mail.gnome.org/mailman/listinfo/xml-bindings">xml-bindings@gnome.org</a>
+(<a href="http://mail.gnome.org/archives/xml-bindings/">archives</a>) in
+order to get updates to this list or to discuss the specific topic of libxml2
+or libxslt wrappers or bindings:</p><ul>
+ <li><a href="http://libxmlplusplus.sourceforge.net/">Libxml++</a> seems the
+ most up-to-date C++ bindings for libxml2, check the <a href="http://libxmlplusplus.sourceforge.net/reference/html/hierarchy.html">documentation</a>
+ and the <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/libxmlplusplus/libxml%2b%2b/examples/">examples</a>.</li>
+ <li>There is another <a href="http://libgdome-cpp.berlios.de/">C++ wrapper
+ based on the gdome2 bindings</a> maintained by Tobias Peters.</li>
+ <li>and a third C++ wrapper by Peter Jones &lt;pjones@pmade.org&gt;
+ <p>Website: <a href="http://pmade.org/pjones/software/xmlwrapp/">http://pmade.org/pjones/software/xmlwrapp/</a></p>
+ </li>
+ <li>XML::LibXML <a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl
+ bindings</a> are available on CPAN, as well as XML::LibXSLT
+ <a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl libxslt
+ bindings</a>.</li>
+ <li>If you're interested into scripting XML processing, have a look at <a href="http://xsh.sourceforge.net/">XSH</a> an XML editing shell based on
+ Libxml2 Perl bindings.</li>
+ <li><a href="mailto:dkuhlman@cutter.rexx.com">Dave Kuhlman</a> provides an
+ earlier version of the libxml/libxslt <a href="http://www.rexx.com/~dkuhlman">wrappers for Python</a>.</li>
+ <li>Gopal.V and Peter Minten develop <a href="http://savannah.gnu.org/projects/libxmlsharp">libxml#</a>, a set of
+ C# libxml2 bindings.</li>
+ <li>Petr Kozelka provides <a href="http://sourceforge.net/projects/libxml2-pas">Pascal units to glue
+ libxml2</a> with Kylix, Delphi and other Pascal compilers.</li>
+ <li>Uwe Fechner also provides <a href="http://sourceforge.net/projects/idom2-pas/">idom2</a>, a DOM2
+ implementation for Kylix2/D5/D6 from Borland.</li>
+ <li>There is <a href="http://libxml.rubyforge.org/">bindings for Ruby</a>
+ and libxml2 bindings are also available in Ruby through the <a href="http://libgdome-ruby.berlios.de/">libgdome-ruby</a> module
+ maintained by Tobias Peters.</li>
+ <li>Steve Ball and contributors maintains <a href="http://tclxml.sourceforge.net/">libxml2 and libxslt bindings for
+ Tcl</a>.</li>
+ <li>libxml2 and libxslt are the default XML libraries for PHP5.</li>
+ <li><a href="http://savannah.gnu.org/projects/classpathx/">LibxmlJ</a> is
+ an effort to create a 100% JAXP-compatible Java wrapper for libxml2 and
+ libxslt as part of GNU ClasspathX project.</li>
+ <li>Patrick McPhee provides Rexx bindings fof libxml2 and libxslt, look for
+ <a href="http://www.interlog.com/~ptjm/software.html">RexxXML</a>.</li>
+ <li><a href="http://www.satimage.fr/software/en/xml_suite.html">Satimage</a>
+ provides <a href="http://www.satimage.fr/software/en/downloads_osaxen.html">XMLLib
+ osax</a>. This is an osax for Mac OS X with a set of commands to
+ implement in AppleScript the XML DOM, XPATH and XSLT. Also includes
+ commands for Property-lists (Apple's fast lookup table XML format.)</li>
+ <li>Francesco Montorsi developped <a href="https://sourceforge.net/project/showfiles.php?group_id=51305&amp;package_id=45182">wxXml2</a>
+ wrappers that interface libxml2, allowing wxWidgets applications to
+ load/save/edit XML instances.</li>
+</ul><p>The distribution includes a set of Python bindings, which are guaranteed
+to be maintained as part of the library in the future, though the Python
+interface have not yet reached the completeness of the C API.</p><p>Note that some of the Python purist dislike the default set of Python
+bindings, rather than complaining I suggest they have a look at <a href="http://lxml.de/">lxml the more pythonic bindings for libxml2
+and libxslt</a> and <a href="http://lxml.de/mailinglist/">check the mailing-list</a>.</p><p><a href="mailto:stephane.bidoul@softwareag.com">Stéphane Bidoul</a>
+maintains <a href="http://users.skynet.be/sbi/libxml-python/">a Windows port
+of the Python bindings</a>.</p><p>Note to people interested in building bindings, the API is formalized as
+<a href="libxml2-api.xml">an XML API description file</a> which allows to
+automate a large part of the Python bindings, this includes function
+descriptions, enums, structures, typedefs, etc... The Python script used to
+build the bindings is python/generator.py in the source distribution.</p><p>To install the Python bindings there are 2 options:</p><ul>
+ <li>If you use an RPM based distribution, simply install the <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2-python">libxml2-python
+ RPM</a> (and if needed the <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxslt-python">libxslt-python
+ RPM</a>).</li>
+ <li>Otherwise use the <a href="ftp://xmlsoft.org/libxml2/python/">libxml2-python
+ module distribution</a> corresponding to your installed version of
+ libxml2 and libxslt. Note that to install it you will need both libxml2
+ and libxslt installed and run "python setup.py build install" in the
+ module tree.</li>
+</ul><p>The distribution includes a set of examples and regression tests for the
+python bindings in the <code>python/tests</code> directory. Here are some
+excerpts from those tests:</p><h3>tst.py:</h3><p>This is a basic test of the file interface and DOM navigation:</p><pre>import libxml2, sys
+
+doc = libxml2.parseFile("tst.xml")
+if doc.name != "tst.xml":
+ print "doc.name failed"
+ sys.exit(1)
+root = doc.children
+if root.name != "doc":
+ print "root.name failed"
+ sys.exit(1)
+child = root.children
+if child.name != "foo":
+ print "child.name failed"
+ sys.exit(1)
+doc.freeDoc()</pre><p>The Python module is called libxml2; parseFile is the equivalent of
+xmlParseFile (most of the bindings are automatically generated, and the xml
+prefix is removed and the casing convention are kept). All node seen at the
+binding level share the same subset of accessors:</p><ul>
+ <li><code>name</code> : returns the node name</li>
+ <li><code>type</code> : returns a string indicating the node type</li>
+ <li><code>content</code> : returns the content of the node, it is based on
+ xmlNodeGetContent() and hence is recursive.</li>
+ <li><code>parent</code> , <code>children</code>, <code>last</code>,
+ <code>next</code>, <code>prev</code>, <code>doc</code>,
+ <code>properties</code>: pointing to the associated element in the tree,
+ those may return None in case no such link exists.</li>
+</ul><p>Also note the need to explicitly deallocate documents with freeDoc() .
+Reference counting for libxml2 trees would need quite a lot of work to
+function properly, and rather than risk memory leaks if not implemented
+correctly it sounds safer to have an explicit function to free a tree. The
+wrapper python objects like doc, root or child are them automatically garbage
+collected.</p><h3>validate.py:</h3><p>This test check the validation interfaces and redirection of error
+messages:</p><pre>import libxml2
+
+#deactivate error messages from the validation
+def noerr(ctx, str):
+ pass
+
+libxml2.registerErrorHandler(noerr, None)
+
+ctxt = libxml2.createFileParserCtxt("invalid.xml")
+ctxt.validate(1)
+ctxt.parseDocument()
+doc = ctxt.doc()
+valid = ctxt.isValid()
+doc.freeDoc()
+if valid != 0:
+ print "validity check failed"</pre><p>The first thing to notice is the call to registerErrorHandler(), it
+defines a new error handler global to the library. It is used to avoid seeing
+the error messages when trying to validate the invalid document.</p><p>The main interest of that test is the creation of a parser context with
+createFileParserCtxt() and how the behaviour can be changed before calling
+parseDocument() . Similarly the information resulting from the parsing phase
+is also available using context methods.</p><p>Contexts like nodes are defined as class and the libxml2 wrappers maps the
+C function interfaces in terms of objects method as much as possible. The
+best to get a complete view of what methods are supported is to look at the
+libxml2.py module containing all the wrappers.</p><h3>push.py:</h3><p>This test show how to activate the push parser interface:</p><pre>import libxml2
+
+ctxt = libxml2.createPushParser(None, "&lt;foo", 4, "test.xml")
+ctxt.parseChunk("/&gt;", 2, 1)
+doc = ctxt.doc()
+
+doc.freeDoc()</pre><p>The context is created with a special call based on the
+xmlCreatePushParser() from the C library. The first argument is an optional
+SAX callback object, then the initial set of data, the length and the name of
+the resource in case URI-References need to be computed by the parser.</p><p>Then the data are pushed using the parseChunk() method, the last call
+setting the third argument terminate to 1.</p><h3>pushSAX.py:</h3><p>this test show the use of the event based parsing interfaces. In this case
+the parser does not build a document, but provides callback information as
+the parser makes progresses analyzing the data being provided:</p><pre>import libxml2
+log = ""
+
+class callback:
+ def startDocument(self):
+ global log
+ log = log + "startDocument:"
+
+ def endDocument(self):
+ global log
+ log = log + "endDocument:"
+
+ def startElement(self, tag, attrs):
+ global log
+ log = log + "startElement %s %s:" % (tag, attrs)
+
+ def endElement(self, tag):
+ global log
+ log = log + "endElement %s:" % (tag)
+
+ def characters(self, data):
+ global log
+ log = log + "characters: %s:" % (data)
+
+ def warning(self, msg):
+ global log
+ log = log + "warning: %s:" % (msg)
+
+ def error(self, msg):
+ global log
+ log = log + "error: %s:" % (msg)
+
+ def fatalError(self, msg):
+ global log
+ log = log + "fatalError: %s:" % (msg)
+
+handler = callback()
+
+ctxt = libxml2.createPushParser(handler, "&lt;foo", 4, "test.xml")
+chunk = " url='tst'&gt;b"
+ctxt.parseChunk(chunk, len(chunk), 0)
+chunk = "ar&lt;/foo&gt;"
+ctxt.parseChunk(chunk, len(chunk), 1)
+
+reference = "startDocument:startElement foo {'url': 'tst'}:" + \
+ "characters: bar:endElement foo:endDocument:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Expected: %s" % reference</pre><p>The key object in that test is the handler, it provides a number of entry
+points which can be called by the parser as it makes progresses to indicate
+the information set obtained. The full set of callback is larger than what
+the callback class in that specific example implements (see the SAX
+definition for a complete list). The wrapper will only call those supplied by
+the object when activated. The startElement receives the names of the element
+and a dictionary containing the attributes carried by this element.</p><p>Also note that the reference string generated from the callback shows a
+single character call even though the string "bar" is passed to the parser
+from 2 different call to parseChunk()</p><h3>xpath.py:</h3><p>This is a basic test of XPath wrappers support</p><pre>import libxml2
+
+doc = libxml2.parseFile("tst.xml")
+ctxt = doc.xpathNewContext()
+res = ctxt.xpathEval("//*")
+if len(res) != 2:
+ print "xpath query: wrong node set size"
+ sys.exit(1)
+if res[0].name != "doc" or res[1].name != "foo":
+ print "xpath query: wrong node set value"
+ sys.exit(1)
+doc.freeDoc()
+ctxt.xpathFreeContext()</pre><p>This test parses a file, then create an XPath context to evaluate XPath
+expression on it. The xpathEval() method execute an XPath query and returns
+the result mapped in a Python way. String and numbers are natively converted,
+and node sets are returned as a tuple of libxml2 Python nodes wrappers. Like
+the document, the XPath context need to be freed explicitly, also not that
+the result of the XPath query may point back to the document tree and hence
+the document must be freed after the result of the query is used.</p><h3>xpathext.py:</h3><p>This test shows how to extend the XPath engine with functions written in
+python:</p><pre>import libxml2
+
+def foo(ctx, x):
+ return x + 1
+
+doc = libxml2.parseFile("tst.xml")
+ctxt = doc.xpathNewContext()
+libxml2.registerXPathFunction(ctxt._o, "foo", None, foo)
+res = ctxt.xpathEval("foo(1)")
+if res != 2:
+ print "xpath extension failure"
+doc.freeDoc()
+ctxt.xpathFreeContext()</pre><p>Note how the extension function is registered with the context (but that
+part is not yet finalized, this may change slightly in the future).</p><h3>tstxpath.py:</h3><p>This test is similar to the previous one but shows how the extension
+function can access the XPath evaluation context:</p><pre>def foo(ctx, x):
+ global called
+
+ #
+ # test that access to the XPath evaluation contexts
+ #
+ pctxt = libxml2.xpathParserContext(_obj=ctx)
+ ctxt = pctxt.context()
+ called = ctxt.function()
+ return x + 1</pre><p>All the interfaces around the XPath parser(or rather evaluation) context
+are not finalized, but it should be sufficient to do contextual work at the
+evaluation point.</p><h3>Memory debugging:</h3><p>last but not least, all tests starts with the following prologue:</p><pre>#memory debug specific
+libxml2.debugMemory(1)</pre><p>and ends with the following epilogue:</p><pre>#memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()</pre><p>Those activate the memory debugging interface of libxml2 where all
+allocated block in the library are tracked. The prologue then cleans up the
+library state and checks that all allocated memory has been freed. If not it
+calls dumpMemory() which saves that list in a <code>.memdump</code> file.</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>
diff --git a/libxml2-2.9.10/doc/redhat.gif b/libxml2-2.9.10/doc/redhat.gif
new file mode 100644
index 0000000..eff3d73
--- /dev/null
+++ b/libxml2-2.9.10/doc/redhat.gif
Binary files differ
diff --git a/libxml2-2.9.10/doc/search.php b/libxml2-2.9.10/doc/search.php
new file mode 100644
index 0000000..c94e87e
--- /dev/null
+++ b/libxml2-2.9.10/doc/search.php
@@ -0,0 +1,477 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel="SHORTCUT ICON" href="/favicon.ico">
+<style type="text/css"><!--
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+--></style>
+<title>Search the documentation on XMLSoft.org</title>
+</head>
+<body bgcolor="#8b7765" text="#000000" link="#000000" vlink="#000000">
+<table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr>
+<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 library for Gnome</h1>
+<h2>Search engine</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"><ul>
+<li><a href="index.html">Home</a></li>
+<li><a href="intro.html">Introduction</a></li>
+<li><a href="FAQ.html">FAQ</a></li>
+<li><a href="docs.html">Documentation</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">News</a></li>
+<li><a href="XMLinfo.html">XML</a></li>
+<li><a href="XSLT.html">XSLT</a></li>
+<li><a href="python.html">Python and bindings</a></li>
+<li><a href="architecture.html">libxml architecture</a></li>
+<li><a href="tree.html">The tree output</a></li>
+<li><a href="interface.html">The SAX interface</a></li>
+<li><a href="xmldtd.html">Validation &amp; DTDs</a></li>
+<li><a href="xmlmem.html">Memory Management</a></li>
+<li><a href="encoding.html">Encodings support</a></li>
+<li><a href="xmlio.html">I/O Interfaces</a></li>
+<li><a href="catalog.html">Catalog support</a></li>
+<li><a href="library.html">The parser interfaces</a></li>
+<li><a href="entities.html">Entities or no entities</a></li>
+<li><a href="namespaces.html">Namespaces</a></li>
+<li><a href="upgrade.html">Upgrading 1.x code</a></li>
+<li><a href="threads.html">Thread safety</a></li>
+<li><a href="DOM.html">DOM Principles</a></li>
+<li><a href="example.html">A real example</a></li>
+<li><a href="contribs.html">Contributions</a></li>
+<li><a href="tutorial/index.html">Tutorial</a></li>
+<li>
+<a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr>
+<tr><td bgcolor="#fffacd"><ul>
+<li><a href="APIchunk0.html">Alphabetic</a></li>
+<li><a href="APIconstructors.html">Constructors</a></li>
+<li><a href="APIfunctions.html">Functions/Types</a></li>
+<li><a href="APIfiles.html">Modules</a></li>
+<li><a href="APIsymbols.html">Symbols</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://ww.zlatkovic.com/projects/libxml/">Windows binaries</a></li>
+<li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li>
+<li><a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a></li>
+<li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li>
+<li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml&amp;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">
+<?php
+ $query = $HTTP_GET_VARS[ "query" ];
+ $scope = $HTTP_GET_VARS[ "scope" ];
+ // We handle only the first argument so far
+ $query = $_GET['query'];
+ $query = ltrim ($query);
+ if (! $query) {
+ echo "<h1 align='center'>Search the documentation on XMLSoft.org</h1>";
+ }
+ if ($scope == NULL)
+ $scope = "any";
+ $scope = ltrim ($scope);
+ if ($scope == "")
+ $scope = "any";
+ $querystr = htmlspecialchars($query, ENT_QUOTES, 'UTF-8');
+
+?>
+<p> The search service indexes the libxml2 and libxslt APIs and documentation as well as the xml@gnome.org and xslt@gnome.org mailing-list archives. To use it simply provide a set of keywords:
+<p>
+<form action="<?php echo "$PHP_SELF", "?query=", rawurlencode($query) ?>"
+ enctype="application/x-www-form-urlencoded" method="GET">
+ <input name="query" type="TEXT" size="50" value="<?php echo $querystr?>">
+ <select name="scope">
+ <option value="any">Search All</option>
+ <option value="XML" <?php if ($scope == 'XML') print "selected"?>>XML resources</option>
+ <option value="XSLT" <?php if ($scope == 'XSLT') print "selected"?>>XSLT resources</option>
+ <option value="API" <?php if ($scope == 'API') print "selected"?>>Only the APIs</option>
+ <option value="XMLAPI" <?php if ($scope == 'XMLAPI') print "selected"?>>Only the XML API</option>
+ <option value="XSLTAPI" <?php if ($scope == 'XSLTAPI') print "selected"?>>Only the XSLT API</option>
+ <option value="DOCS" <?php if ($scope == 'DOCS') print "selected"?>>Only the Documentation</option>
+ <option value="XMLDOC" <?php if ($scope == 'XMLDOC') print "selected"?>>Only the XML Documentation</option>
+ <option value="XSLTDOC" <?php if ($scope == 'XSLTDOC') print "selected"?>>Only the XSLT Documentation</option>
+ <option value="LISTS" <?php if ($scope == 'LISTS') print "selected"?>>Only the lists archives</option>
+ <option value="XMLLIST" <?php if ($scope == 'XMLLIST') print "selected"?>>Only the XML list archive</option>
+ <option value="XSLTLIST" <?php if ($scope == 'XSLTLIST') print "selected"?>>Only the XSLT list archive</option>
+ </select>
+ <input name=submit type=submit value="Search ...">
+</form>
+<?php
+ function logQueryWord($word) {
+ $result = mysql_query ("SELECT ID,Count FROM Queries WHERE Value='$word'");
+ if ($result) {
+ $i = mysql_num_rows($result);
+ if ($i == 0) {
+ mysql_free_result($result);
+ mysql_query ("INSERT INTO Queries (Value,Count) VALUES ('$word',1)");
+ } else {
+ $id = mysql_result($result, 0, 0);
+ $count = mysql_result($result, 0, 1);
+ $count ++;
+ mysql_query ("UPDATE Queries SET Count=$count WHERE ID=$id");
+ }
+ } else {
+ mysql_query ("INSERT INTO Queries (Value,Count) VALUES ('$word',1)");
+ }
+ }
+ function queryWord($word) {
+ $result = NULL;
+ $j = 0;
+ if ($word) {
+ $result = mysql_query ("SELECT words.relevance, symbols.name, symbols.type, symbols.module, symbols.descr FROM words, symbols WHERE LCASE(words.name) LIKE LCASE('$word') and words.symbol = symbols.name ORDER BY words.relevance DESC LIMIT 75");
+ if ($result) {
+ $j = mysql_num_rows($result);
+ if ($j == 0)
+ mysql_free_result($result);
+ }
+ logQueryWord($word);
+ }
+ return array($result, $j);
+ }
+ function queryHTMLWord($word) {
+ $result = NULL;
+ $j = 0;
+ if ($word) {
+ $result = mysql_query ("SELECT relevance, name, id, resource, section FROM wordsHTML WHERE LCASE(name) LIKE LCASE('$word') ORDER BY relevance DESC LIMIT 75");
+ if ($result) {
+ $j = mysql_num_rows($result);
+ if ($j == 0)
+ mysql_free_result($result);
+ }
+ logQueryWord($word);
+ }
+ return array($result, $j);
+ }
+ function queryArchiveWord($word) {
+ $result = NULL;
+ $j = 0;
+ if ($word) {
+ $result = mysql_query ("SELECT wordsArchive.relevance, wordsArchive.name, 'xml-list', archives.resource, archives.title FROM wordsArchive, archives WHERE LCASE(wordsArchive.name) LIKE LCASE('$word') and wordsArchive.ID = archives.ID ORDER BY relevance DESC LIMIT 75");
+ if ($result) {
+ $j = mysql_num_rows($result);
+ if ($j == 0)
+ mysql_free_result($result);
+ }
+ logQueryWord($word);
+ }
+ return array($result, $j);
+ }
+ function XSLTqueryWord($word) {
+ $result = NULL;
+ $j = 0;
+ if ($word) {
+ $result = mysql_query ("SELECT XSLTwords.relevance, XSLTsymbols.name, XSLTsymbols.type, XSLTsymbols.module, XSLTsymbols.descr FROM XSLTwords, XSLTsymbols WHERE LCASE(XSLTwords.name) LIKE LCASE('$word') and XSLTwords.symbol = XSLTsymbols.name ORDER BY XSLTwords.relevance DESC LIMIT 75");
+ if ($result) {
+ $j = mysql_num_rows($result);
+ if ($j == 0)
+ mysql_free_result($result);
+ }
+ logQueryWord($word);
+ }
+ return array($result, $j);
+ }
+ function XSLTqueryHTMLWord($word) {
+ $result = NULL;
+ $j = 0;
+ if ($word) {
+ $result = mysql_query ("SELECT relevance, name, id, resource, section FROM XSLTwordsHTML WHERE LCASE(name) LIKE LCASE('$word') ORDER BY relevance DESC LIMIT 75");
+ if ($result) {
+ $j = mysql_num_rows($result);
+ if ($j == 0)
+ mysql_free_result($result);
+ }
+ logQueryWord($word);
+ }
+ return array($result, $j);
+ }
+ function XSLTqueryArchiveWord($word) {
+ $result = NULL;
+ $j = 0;
+ if ($word) {
+ $result = mysql_query ("SELECT XSLTwordsArchive.relevance, XSLTwordsArchive.name, 'xslt-list', archives.resource, archives.title FROM XSLTwordsArchive, archives WHERE LCASE(XSLTwordsArchive.name) LIKE LCASE('$word') and XSLTwordsArchive.ID = archives.ID ORDER BY relevance DESC LIMIT 75");
+ if ($result) {
+ $j = mysql_num_rows($result);
+ if ($j == 0)
+ mysql_free_result($result);
+ }
+ logQueryWord($word);
+ }
+ return array($result, $j);
+ }
+ function resSort ($a, $b) {
+ list($ra,$ta,$ma,$na,$da) = $a;
+ list($rb,$tb,$mb,$nb,$db) = $b;
+ if ($ra == $rb) return 0;
+ return ($ra > $rb) ? -1 : 1;
+ }
+ if (($query) && (strlen($query) <= 50)) {
+ $link = mysql_connect ("localhost", "nobody");
+ if (!$link) {
+ echo "<p> Could not connect to the database: ", mysql_error();
+ } else {
+ mysql_select_db("xmlsoft", $link);
+ $list = explode (" ", $query);
+ $results = array();
+ $number = 0;
+ for ($number = 0;$number < count($list);$number++) {
+
+ $word = $list[$number];
+ if (($scope == 'any') || ($scope == 'XML') ||
+ ($scope == 'API') || ($scope == 'XMLAPI')) {
+ list($result, $j) = queryWord($word);
+ if ($j > 0) {
+ for ($i = 0; $i < $j; $i++) {
+ $relevance = mysql_result($result, $i, 0);
+ $name = mysql_result($result, $i, 1);
+ $type = mysql_result($result, $i, 2);
+ $module = mysql_result($result, $i, 3);
+ $desc = mysql_result($result, $i, 4);
+ if (array_key_exists($name, $results)) {
+ list($r,$t,$m,$d,$w,$u) = $results[$name];
+ $results[$name] = array(($r + $relevance) * 2,
+ $t,$m,$d,$w,$u);
+ } else {
+ $id = $name;
+ $m = strtolower($module);
+ $url = "html/libxml-$module.html#$id";
+ $results[$name] = array($relevance,$type,
+ $module, $desc, $name, $url);
+ }
+ }
+ mysql_free_result($result);
+ }
+ }
+ if (($scope == 'any') || ($scope == 'XSLT') ||
+ ($scope == 'API') || ($scope == 'XSLTAPI')) {
+ list($result, $j) = XSLTqueryWord($word);
+ if ($j > 0) {
+ for ($i = 0; $i < $j; $i++) {
+ $relevance = mysql_result($result, $i, 0);
+ $name = mysql_result($result, $i, 1);
+ $type = mysql_result($result, $i, 2);
+ $module = mysql_result($result, $i, 3);
+ $desc = mysql_result($result, $i, 4);
+ if (array_key_exists($name, $results)) {
+ list($r,$t,$m,$d,$w,$u) = $results[$name];
+ $results[$name] = array(($r + $relevance) * 2,
+ $t,$m,$d,$w,$u);
+ } else {
+ $id = $name;
+ $m = strtolower($module);
+ $url = "XSLT/html/libxslt-$module.html#$id";
+ $results[$name] = array($relevance,$type,
+ $module, $desc, $name, $url);
+ }
+ }
+ mysql_free_result($result);
+ }
+ }
+ if (($scope == 'any') || ($scope == 'XML') ||
+ ($scope == 'DOCS') || ($scope == 'XMLDOC')) {
+ list($result, $k) = queryHTMLWord($word);
+ if ($k > 0) {
+ for ($i = 0; $i < $k; $i++) {
+ $relevance = mysql_result($result, $i, 0);
+ $name = mysql_result($result, $i, 1);
+ $id = mysql_result($result, $i, 2);
+ $module = mysql_result($result, $i, 3);
+ $desc = mysql_result($result, $i, 4);
+ if (strncmp($module, "libxml-", 7) == 0)
+ $url = "html/$module";
+ if ($id != "") {
+ $url = $url + "#$id";
+ }
+ $results["$name _html_ $number _ $i"] =
+ array($relevance, "XML docs",
+ $module, $desc, $name, $url);
+ }
+ mysql_free_result($result);
+ }
+ }
+ if (($scope == 'any') || ($scope == 'XSLT') ||
+ ($scope == 'DOCS') || ($scope == 'XSLTDOC')) {
+ list($result, $k) = XSLTqueryHTMLWord($word);
+ if ($k > 0) {
+ for ($i = 0; $i < $k; $i++) {
+ $relevance = mysql_result($result, $i, 0);
+ $name = mysql_result($result, $i, 1);
+ $id = mysql_result($result, $i, 2);
+ $module = mysql_result($result, $i, 3);
+ $desc = mysql_result($result, $i, 4);
+ $url = "XSLT/$module";
+ if ($id != "") {
+ $url = $url + "#$id";
+ }
+ $results["$name xslthtml $number _ $i "] =
+ array($relevance, "XSLT docs",
+ $module, $desc, $name, $url);
+ }
+ mysql_free_result($result);
+ }
+ }
+ if (($scope == 'any') || ($scope == 'XML') ||
+ ($scope == 'LISTS') || ($scope == 'XMLLIST')) {
+ list($result, $j) = queryArchiveWord($word);
+ if ($j > 0) {
+ for ($i = 0; $i < $j; $i++) {
+ $relevance = mysql_result($result, $i, 0);
+ $name = mysql_result($result, $i, 1);
+ $type = mysql_result($result, $i, 2);
+ $url = mysql_result($result, $i, 3);
+ $desc = mysql_result($result, $i, 4);
+ if (array_key_exists($url, $results)) {
+ list($r,$t,$m,$d,$w,$u) = $results[$url];
+ $results[$name] = array(($r + $relevance) * 2,
+ $t,$m,$d,$w,$u);
+ } else {
+ $id = $name;
+ $m = strtolower($module);
+ $u = str_replace(
+ "http://mail.gnome.org/archives/xml/", "", $url);
+ $results[$url] = array($relevance,$type,
+ $u, $desc, $name, $url);
+ }
+ }
+ mysql_free_result($result);
+ }
+ }
+ if (($scope == 'any') || ($scope == 'XSLT') ||
+ ($scope == 'LISTS') || ($scope == 'XSLTLIST')) {
+ list($result, $j) = XSLTqueryArchiveWord($word);
+ if ($j > 0) {
+ for ($i = 0; $i < $j; $i++) {
+ $relevance = mysql_result($result, $i, 0);
+ $name = mysql_result($result, $i, 1);
+ $type = mysql_result($result, $i, 2);
+ $url = mysql_result($result, $i, 3);
+ $desc = mysql_result($result, $i, 4);
+ if (array_key_exists($url, $results)) {
+ list($r,$t,$m,$d,$w,$u) = $results[$url];
+ $results[$name] = array(($r + $relevance) * 2,
+ $t,$m,$d,$w,$u);
+ } else {
+ $id = $name;
+ $m = strtolower($module);
+ $u = str_replace(
+ "http://mail.gnome.org/archives/xslt/", "", $url);
+ $results[$url] = array($relevance,$type,
+ $u, $desc, $name, $url);
+ }
+ }
+ mysql_free_result($result);
+ }
+ }
+ }
+ if ((count($results) == 0) && (count($list) == 1)) {
+ $word = $list[0];
+ if (($scope == 'any') || ($scope == 'XML') ||
+ ($scope == 'API') || ($scope == 'XMLAPI')) {
+ list($result, $j) = queryWord("xml$word");
+ if ($j > 0) {
+ for ($i = 0; $i < $j; $i++) {
+ $relevance = mysql_result($result, $i, 0);
+ $name = mysql_result($result, $i, 1);
+ $type = mysql_result($result, $i, 2);
+ $module = mysql_result($result, $i, 3);
+ $desc = mysql_result($result, $i, 4);
+ if (array_key_exists($name, $results)) {
+ list($r,$t,$m,$d,$w,$u) = $results[$name];
+ $results[$name] = array(($r + $relevance) * 2,
+ $t,$m,$d,$w,$u);
+ } else {
+ $id = $name;
+ $m = strtolower($module);
+ $url = "html/libxml-$module.html#$id";
+ $results[$name] = array($relevance,$type,
+ $module, $desc, $name, $url);
+ }
+ }
+ mysql_free_result($result);
+ }
+ }
+ if (($scope == 'any') || ($scope == 'XSLT') ||
+ ($scope == 'API') || ($scope == 'XSLTAPI')) {
+ list($result, $j) = XSLTqueryWord("xslt$word");
+ if ($j > 0) {
+ for ($i = 0; $i < $j; $i++) {
+ $relevance = mysql_result($result, $i, 0);
+ $name = mysql_result($result, $i, 1);
+ $type = mysql_result($result, $i, 2);
+ $module = mysql_result($result, $i, 3);
+ $desc = mysql_result($result, $i, 4);
+ if (array_key_exists($name, $results)) {
+ list($r,$t,$m,$d,$w,$u) = $results[$name];
+ $results[$name] = array(($r + $relevance) * 2,
+ $t,$m,$d,$w,$u);
+ } else {
+ $id = $name;
+ $m = strtolower($module);
+ $url = "XSLT/html/libxslt-$module.html#$id";
+ $results[$name] = array($relevance,$type,
+ $module, $desc, $name, $url);
+ }
+ }
+ mysql_free_result($result);
+ }
+ }
+ }
+ mysql_close($link);
+ $nb = count($results);
+ echo "<h3 align='center'>Found $nb results for query $querystr</h3>\n";
+ usort($results, "resSort");
+
+ if ($nb > 0) {
+ printf("<table><tbody>\n");
+ printf("<tr><td>Quality</td><td>Symbol</td><td>Type</td><td>module</td><td>Description</td></tr>\n");
+ $i = 0;
+ while (list ($name, $val) = each ($results)) {
+ list($r,$t,$m,$d,$s,$u) = $val;
+ $m = str_replace("<", "&lt;", $m);
+ $s = str_replace("<", "&lt;", $s);
+ $d = str_replace("<", "&lt;", $d);
+ echo "<tr><td>$r</td><td><a href='$u'>$s</a></td><td>$t</td><td>$m</td><td>$d</td></tr>";
+ $i = $i + 1;
+ if ($i > 75)
+ break;
+ }
+ printf("</tbody></table>\n");
+ }
+ }
+ }
+?>
+
+</td></tr></table></td></tr></table></td></tr></table></td>
+</tr></table></td></tr></table>
+</body>
+</html>
+
diff --git a/libxml2-2.9.10/doc/searches.html b/libxml2-2.9.10/doc/searches.html
new file mode 100644
index 0000000..c22b8d6
--- /dev/null
+++ b/libxml2-2.9.10/doc/searches.html
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Search statistics for 20040408</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></h1><h2>Search statistics for 20040408</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="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></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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal 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"><h2> weekly statistics: </h2><p>416435 total words,
+ 9875 uniq words.</p><p> Top 50 queries:</p><p><br /><a href="search.php?query=libxml2">libxml2</a> 11812 times.
+ <br /><a href="search.php?query=libxml">libxml</a> 10170 times.
+ <br /><a href="search.php?query=xpath">xpath</a> 6172 times.
+ <br /><a href="search.php?query=schema">schema</a> 5798 times.
+ <br /><a href="search.php?query=xmllint">xmllint</a> 5472 times.
+ <br /><a href="search.php?query=XML">XML</a> 5435 times.
+ <br /><a href="search.php?query=xmlParseFile">xmlParseFile</a> 4219 times.
+ <br /><a href="search.php?query=php">php</a> 3935 times.
+ <br /><a href="search.php?query=DTD">DTD</a> 3270 times.
+ <br /><a href="search.php?query=encoding">encoding</a> 3101 times.
+ <br /><a href="search.php?query=xmlGetProp">xmlGetProp</a> 3084 times.
+ <br /><a href="search.php?query=xsltproc">xsltproc</a> 3074 times.
+ <br /><a href="search.php?query=download">download</a> 2971 times.
+ <br /><a href="search.php?query=xmlNodeListGetString">xmlNodeListGetString</a> 2917 times.
+ <br /><a href="search.php?query=python">python</a> 2789 times.
+ <br /><a href="search.php?query=SAX">SAX</a> 2621 times.
+ <br /><a href="search.php?query=xmlParseMemory">xmlParseMemory</a> 2472 times.
+ <br /><a href="search.php?query=perl">perl</a> 2385 times.
+ <br /><a href="search.php?query=iconv">iconv</a> 2318 times.
+ <br /><a href="search.php?query=error">error</a> 2298 times.
+ <br /><a href="search.php?query=html">html</a> 2255 times.
+ <br /><a href="search.php?query=xmlChar">xmlChar</a> 2136 times.
+ <br /><a href="search.php?query=libxslt">libxslt</a> 2055 times.
+ <br /><a href="search.php?query=c++">c++</a> 2020 times.
+ <br /><a href="search.php?query=xmlNodePtr">xmlNodePtr</a> 1928 times.
+ <br /><a href="search.php?query=windows">windows</a> 1918 times.
+ <br /><a href="search.php?query=to">to</a> 1891 times.
+ <br /><a href="search.php?query=node">node</a> 1860 times.
+ <br /><a href="search.php?query=xmlFree">xmlFree</a> 1854 times.
+ <br /><a href="search.php?query=example">example</a> 1784 times.
+ <br /><a href="search.php?query=install">install</a> 1763 times.
+ <br /><a href="search.php?query=parser">parser</a> 1715 times.
+ <br /><a href="search.php?query=xmlNewDoc">xmlNewDoc</a> 1695 times.
+ <br /><a href="search.php?query=namespace">namespace</a> 1693 times.
+ <br /><a href="search.php?query=xmlStrcmp">xmlStrcmp</a> 1564 times.
+ <br /><a href="search.php?query=xmlnode">xmlnode</a> 1558 times.
+ <br /><a href="search.php?query=parse">parse</a> 1517 times.
+ <br /><a href="search.php?query=memory">memory</a> 1484 times.
+ <br /><a href="search.php?query=dom">dom</a> 1457 times.
+ <br /><a href="search.php?query=XInclude">XInclude</a> 1444 times.
+ <br /><a href="search.php?query=entity">entity</a> 1423 times.
+ <br /><a href="search.php?query=xmlSaveFormatFile">xmlSaveFormatFile</a> 1390 times.
+ <br /><a href="search.php?query=xslt">xslt</a> 1361 times.
+ <br /><a href="search.php?query=attribute">attribute</a> 1360 times.
+ <br /><a href="search.php?query=xmlDocPtr">xmlDocPtr</a> 1350 times.
+ <br /><a href="search.php?query=xsd">xsd</a> 1319 times.
+ <br /><a href="search.php?query=xmlDocGetRootElement">xmlDocGetRootElement</a> 1285 times.
+ <br /><a href="search.php?query=validate">validate</a> 1270 times.
+ <br /><a href="search.php?query=validation">validation</a> 1234 times.
+ <br /><a href="search.php?query=tutorial">tutorial</a> 1140 times.
+ </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>
diff --git a/libxml2-2.9.10/doc/searches.xsl b/libxml2-2.9.10/doc/searches.xsl
new file mode 100644
index 0000000..57ff5c8
--- /dev/null
+++ b/libxml2-2.9.10/doc/searches.xsl
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<!-- this stylesheet builds the API*.html , it works based on libxml2-refs.xml
+ -->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ extension-element-prefixes="exsl"
+ exclude-result-prefixes="exsl">
+
+ <!-- Import the rest of the site stylesheets -->
+ <xsl:import href="site.xsl"/>
+
+ <!-- Generate XHTML-1.0 transitional -->
+ <xsl:output method="xml" encoding="UTF-8" indent="yes"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+ <xsl:variable name="href_base" select="''"/>
+
+ <xsl:template name="statistics">
+ <h2> weekly statistics: </h2>
+ <p><xsl:value-of select="@total"/> total words,
+ <xsl:value-of select="@uniq"/> uniq words.</p>
+ <p> Top <xsl:value-of select="@nr"/> queries:</p>
+ </xsl:template>
+
+ <xsl:template match="query">
+ <br/><a href="search.php?query={string(.)}"><xsl:value-of
+ select="string(.)"/></a>
+ <xsl:text> </xsl:text><xsl:value-of select="@count"/> times.
+ </xsl:template>
+
+ <xsl:template match="queries">
+ <xsl:variable name="date" select="@date"/>
+ <xsl:variable name="title">Search statistics for <xsl:value-of select="$date"/></xsl:variable>
+ <xsl:document href="searches.html" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:element name="title">
+ <xsl:value-of select="$title"/>
+ </xsl:element>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="toc"/>
+ </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">
+ <xsl:call-template name="statistics"/>
+ <p>
+ <xsl:apply-templates select="query"/>
+ </p>
+ <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:document>
+ </xsl:template>
+
+ <xsl:template match="/">
+ <xsl:apply-templates select="queries"/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libxml2-2.9.10/doc/site.xsl b/libxml2-2.9.10/doc/site.xsl
new file mode 100644
index 0000000..353655e
--- /dev/null
+++ b/libxml2-2.9.10/doc/site.xsl
@@ -0,0 +1,741 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+ <xsl:output method="xml" encoding="UTF-8" indent="yes"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+ <xsl:variable name="href_base" select="''"/>
+ <xsl:variable name="menu_name">Main Menu</xsl:variable>
+<!--
+ - returns the filename associated to an ID in the original file
+ -->
+ <xsl:template name="tocfilename">
+ <xsl:param name="name" select="string(@href)"/>
+ <xsl:choose>
+ <xsl:when test="$name = '#Introducti'">
+ <xsl:text>intro.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Documentat'">
+ <xsl:text>docs.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Reporting'">
+ <xsl:text>bugs.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#help'">
+ <xsl:text>help.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Help'">
+ <xsl:text>help.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Downloads'">
+ <xsl:text>downloads.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#News'">
+ <xsl:text>news.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Contributi'">
+ <xsl:text>contribs.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#xsltproc'">
+ <xsl:text>xsltproc2.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#API'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#XSLT'">
+ <xsl:text>XSLT.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#XML'">
+ <xsl:text>XMLinfo.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Validation'">
+ <xsl:text>xmldtd.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#tree'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#library'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#interface'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Example'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Entities'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#architecture'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Namespaces'">
+ <xsl:text>namespaces.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#DOM'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Catalog'">
+ <xsl:text>catalog.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Upgrading'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Encodings'">
+ <xsl:text>encoding.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#IO'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Memory'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Thread'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#FAQ'">
+ <xsl:text>FAQ.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Python'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = ''">
+ <xsl:text>unknown.html</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="docfilename">
+ <xsl:param name="name" select="string(@href)"/>
+ <xsl:choose>
+ <xsl:when test="$name = '#Introducti'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Documentat'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Reporting'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#help'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Help'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Downloads'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#News'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Contributi'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#xsltproc'">
+ <xsl:text>xsltproc2.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#API'">
+ <xsl:text>API.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#XSLT'">
+ <xsl:text>XSLT.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#XML'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Validation'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#tree'">
+ <xsl:text>tree.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#library'">
+ <xsl:text>library.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#interface'">
+ <xsl:text>interface.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Example'">
+ <xsl:text>example.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Entities'">
+ <xsl:text>entities.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#architecture'">
+ <xsl:text>architecture.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Namespaces'">
+ <xsl:text>namespaces.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#DOM'">
+ <xsl:text>DOM.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Catalog'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Upgrading'">
+ <xsl:text>upgrade.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Encodings'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#IO'">
+ <xsl:text>xmlio.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Memory'">
+ <xsl:text>xmlmem.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Thread'">
+ <xsl:text>threads.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#FAQ'">
+ <xsl:text></xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Python'">
+ <xsl:text>python.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = ''">
+ <xsl:text>unknown.html</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="filename">
+ <xsl:param name="name" select="string(@href)"/>
+ <xsl:choose>
+ <xsl:when test="$name = '#Introducti'">
+ <xsl:text>intro.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Documentat'">
+ <xsl:text>docs.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Reporting'">
+ <xsl:text>bugs.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#help'">
+ <xsl:text>help.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Help'">
+ <xsl:text>help.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Downloads'">
+ <xsl:text>downloads.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#News'">
+ <xsl:text>news.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Contributi'">
+ <xsl:text>contribs.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#xsltproc'">
+ <xsl:text>xsltproc2.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#API'">
+ <xsl:text>API.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#XSLT'">
+ <xsl:text>XSLT.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#XML'">
+ <xsl:text>XMLinfo.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Validation'">
+ <xsl:text>xmldtd.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#tree'">
+ <xsl:text>tree.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#library'">
+ <xsl:text>library.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#interface'">
+ <xsl:text>interface.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Example'">
+ <xsl:text>example.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Entities'">
+ <xsl:text>entities.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#architecture'">
+ <xsl:text>architecture.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Namespaces'">
+ <xsl:text>namespaces.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#DOM'">
+ <xsl:text>DOM.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Catalog'">
+ <xsl:text>catalog.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Upgrading'">
+ <xsl:text>upgrade.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Encodings'">
+ <xsl:text>encoding.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#IO'">
+ <xsl:text>xmlio.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Memory'">
+ <xsl:text>xmlmem.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Thread'">
+ <xsl:text>threads.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#FAQ'">
+ <xsl:text>FAQ.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = '#Python'">
+ <xsl:text>python.html</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = ''">
+ <xsl:text>unknown.html</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+<!--
+ - The global title
+ -->
+ <xsl:variable name="globaltitle" select="string(/html/body/h1[1])"/>
+<!--
+ - The table of content
+ -->
+ <xsl:variable name="toc">
+ <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><!-- style="margin-left: -1em" -->
+ <li><a href="index.html">Home</a></li>
+ <!--<li><a href="http://xmlsoft.org/wiki">Wiki</a></li> -->
+ <li><a href="html/index.html">Reference Manual</a></li>
+ <xsl:for-each select="/html/body/h2">
+ <xsl:variable name="filename">
+ <xsl:call-template name="tocfilename">
+ <xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$filename != ''">
+ <li>
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:value-of select="$filename"/>
+ </xsl:attribute>
+ <xsl:if test="$filename = 'docs.html'">
+ <xsl:attribute name="style">font-weight:bold</xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </li>
+ </xsl:if>
+ </xsl:for-each>
+ <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>
+ </xsl:variable>
+ <xsl:variable name="develtoc">
+ <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><!-- style="margin-left: -1em" -->
+ <li><a href="index.html" style="font-weight:bold">Main Menu</a></li>
+ <li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li>
+ <li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li>
+ <li><a href="guidelines.html">XML Guidelines</a></li>
+ <li><a href="tutorial/index.html">Tutorial</a></li>
+ <li><a href="xmlreader.html">The Reader Interface</a></li>
+ <li><a href="ChangeLog.html">ChangeLog</a></li>
+ <xsl:for-each select="/html/body/h2">
+ <xsl:variable name="filename">
+ <xsl:call-template name="docfilename">
+ <xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$filename != ''">
+ <li>
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:value-of select="$filename"/>
+ </xsl:attribute>
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </li>
+ </xsl:if>
+ </xsl:for-each>
+ <li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</a></li>
+ </ul>
+ </xsl:variable>
+ <xsl:variable name="api">
+ <ul><!-- style="margin-left: -1em" -->
+ <li><a href="{$href_base}APIchunk0.html">Alphabetic</a></li>
+ <li><a href="{$href_base}APIconstructors.html">Constructors</a></li>
+ <li><a href="{$href_base}APIfunctions.html">Functions/Types</a></li>
+ <li><a href="{$href_base}APIfiles.html">Modules</a></li>
+ <li><a href="{$href_base}APIsymbols.html">Symbols</a></li>
+ </ul>
+ </xsl:variable>
+ <xsl:variable name="related">
+ <ul><!-- style="margin-left: -1em" -->
+ <li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li>
+ <li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li>
+ <li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li>
+ <li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li>
+ <li><a href="ftp://xmlsoft.org/">FTP</a></li>
+ <li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li>
+ <li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li>
+ <li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li>
+ <li><a href="http://lxml.de/">lxml Python bindings</a></li>
+ <li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li>
+ <li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li>
+ <li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li>
+ <li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li>
+ <li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li>
+ <li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li>
+ <li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Bug Tracker</a></li>
+ </ul>
+ </xsl:variable>
+ <xsl:template name="toc">
+ <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><xsl:value-of select="$menu_name"/></b>
+ </center>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#fffacd">
+ <xsl:copy-of select="$toc"/>
+ </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">
+ <xsl:copy-of select="$related"/>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+ <xsl:template name="develtoc">
+ <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>Developer Menu</b>
+ </center>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#fffacd">
+ <xsl:copy-of select="$develtoc"/>
+ </td>
+ </tr>
+ </table>
+ <table width="100%" border="0" cellspacing="1" cellpadding="3">
+ <tr>
+ <td colspan="1" bgcolor="#eecfa1" align="center">
+ <center>
+ <b>API Indexes</b>
+ </center>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#fffacd">
+ <xsl:copy-of select="$api"/>
+ </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">
+ <xsl:copy-of select="$related"/>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+ <xsl:template mode="head" match="title">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+ </xsl:template>
+ <xsl:template mode="head" match="meta">
+</xsl:template>
+<!--
+ - Write the styles in the head
+ -->
+ <xsl:template name="style">
+ <link rel="SHORTCUT ICON" href="/favicon.ico"/>
+ <style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style>
+ </xsl:template>
+<!--
+ - Write the title box on top
+ -->
+ <xsl:template name="titlebox">
+ <xsl:param name="title" select="'Main Page'"/>
+ <table border="0" width="100%" cellpadding="5" cellspacing="0" align="center">
+ <tr>
+ <td width="120">
+ <a href="http://swpat.ffii.org/"><img src="{$href_base}epatents.png" alt="Action against software patents"/></a>
+ </td>
+ <td width="180">
+ <a href="http://www.gnome.org/"><img src="{$href_base}gnome2.png" alt="Gnome2 Logo"/></a>
+ <a href="http://www.w3.org/Status"><img src="{$href_base}w3c.png" alt="W3C Logo"/></a>
+ <a href="http://www.redhat.com/"><img src="{$href_base}redhat.gif" alt="Red Hat Logo"/></a>
+ <div align="left">
+ <a href="http://xmlsoft.org/"><img src="{$href_base}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">
+ <xsl:element name="h1">
+ <xsl:value-of select="$globaltitle"/>
+ </xsl:element>
+ <xsl:element name="h2">
+ <xsl:value-of select="$title"/>
+ </xsl:element>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+<!--
+ - Handling of nodes in the body before the first H2, table of content
+ - Everything is just copied over, except href which may get rewritten
+ - and h1/h2/a at the top level
+ -->
+ <xsl:template priority="2" mode="subcontent" match="a">
+ <xsl:variable name="filename">
+ <xsl:call-template name="filename">
+ <xsl:with-param name="name" select="string(@href)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:copy>
+ <xsl:attribute name="href">
+ <xsl:value-of select="$filename"/>
+ </xsl:attribute>
+ <xsl:apply-templates mode="subcontent" select="node()"/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template mode="subcontent" match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates mode="subcontent" select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template mode="content" match="@*|node()">
+ <xsl:if test="name() != 'h1' and name() != 'h2'">
+ <xsl:copy>
+ <xsl:apply-templates mode="subcontent" select="@*|node()"/>
+ </xsl:copy>
+ </xsl:if>
+ </xsl:template>
+<!--
+ - Handling of nodes in the body after an H2
+ - Open a new file and dump all the siblings up to the next H2
+ -->
+ <xsl:template name="subfile">
+ <xsl:param name="header" select="following-sibling::h2[1]"/>
+ <xsl:variable name="filename">
+ <xsl:call-template name="filename">
+ <xsl:with-param name="name" select="concat('#', string($header/a[1]/@name))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="tocfilename">
+ <xsl:call-template name="tocfilename">
+ <xsl:with-param name="name" select="concat('#', string($header/a[1]/@name))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="title">
+ <xsl:value-of select="$header"/>
+ </xsl:variable>
+ <xsl:document href="{$filename}" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html>
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:element name="title">
+ <xsl:value-of select="$title"/>
+ </xsl:element>
+ </head>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <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">
+ <xsl:choose>
+ <xsl:when test="$filename = 'docs.html'">
+ <xsl:call-template name="develtoc"/>
+ </xsl:when>
+ <xsl:when test="$tocfilename = ''">
+ <xsl:call-template name="develtoc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="toc"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </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">
+ <xsl:apply-templates mode="subfile" select="$header/following-sibling::*[preceding-sibling::h2[1] = $header and name() != 'h2' ]"/>
+ <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>
+ </xsl:document>
+ </xsl:template>
+ <xsl:template mode="subfile" match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates mode="content" select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+<!--
+ - Handling of the initial body and head HTML document
+ -->
+ <xsl:template match="body">
+ <xsl:variable name="firsth2" select="./h2[1]"/>
+ <xsl:variable name="rest2" select="./h2[position()&gt;1]"/>
+ <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+ <xsl:call-template name="titlebox">
+ <xsl:with-param name="title" select="'libxml'"/>
+ </xsl:call-template>
+ <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">
+ <xsl:call-template name="toc"/>
+ </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">
+ <xsl:apply-templates mode="content" select="($firsth2/preceding-sibling::*)"/>
+ <xsl:for-each select="./h2">
+ <xsl:call-template name="subfile">
+ <xsl:with-param name="header" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ <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>
+ </xsl:template>
+ <xsl:template match="head">
+ <head>
+ <xsl:call-template name="style"/>
+ <xsl:apply-templates mode="head"/>
+ </head>
+ </xsl:template>
+ <xsl:template match="html">
+ <xsl:message>Generating the Web pages</xsl:message>
+ <html>
+ <xsl:apply-templates/>
+ </html>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/libxml2-2.9.10/doc/smallfootonly.gif b/libxml2-2.9.10/doc/smallfootonly.gif
new file mode 100644
index 0000000..ddbb9ee
--- /dev/null
+++ b/libxml2-2.9.10/doc/smallfootonly.gif
Binary files differ
diff --git a/libxml2-2.9.10/doc/structure.gif b/libxml2-2.9.10/doc/structure.gif
new file mode 100644
index 0000000..4b9a3e6
--- /dev/null
+++ b/libxml2-2.9.10/doc/structure.gif
Binary files differ
diff --git a/libxml2-2.9.10/doc/symbols.xml b/libxml2-2.9.10/doc/symbols.xml
new file mode 100644
index 0000000..eeb049d
--- /dev/null
+++ b/libxml2-2.9.10/doc/symbols.xml
@@ -0,0 +1,1771 @@
+<!-- This file describes all the exported entry points from the
+ library, groupped by release with the first release being 2.4.30
+ Add new exported entry points at the end, this will be used to
+ generate libxml2.syms the definition of exported symbols from
+ shared libraries
+ -->
+<symbols>
+ <release version="2.4.30">
+ <symbol file="debugXML">xmlBoolToText</symbol>
+ <symbol file="debugXML">xmlDebugDumpAttr</symbol>
+ <symbol file="debugXML">xmlDebugDumpAttrList</symbol>
+ <symbol file="debugXML">xmlDebugDumpDTD</symbol>
+ <symbol file="debugXML">xmlDebugDumpDocument</symbol>
+ <symbol file="debugXML">xmlDebugDumpDocumentHead</symbol>
+ <symbol file="debugXML">xmlDebugDumpEntities</symbol>
+ <symbol file="debugXML">xmlDebugDumpNode</symbol>
+ <symbol file="debugXML">xmlDebugDumpNodeList</symbol>
+ <symbol file="debugXML">xmlDebugDumpOneNode</symbol>
+ <symbol file="debugXML">xmlDebugDumpString</symbol>
+ <symbol file="debugXML">xmlLsCountNode</symbol>
+ <symbol file="debugXML">xmlLsOneNode</symbol>
+ <symbol file="debugXML">xmlShell</symbol>
+ <symbol file="debugXML">xmlShellBase</symbol>
+ <symbol file="debugXML">xmlShellCat</symbol>
+ <symbol file="debugXML">xmlShellDir</symbol>
+ <symbol file="debugXML">xmlShellDu</symbol>
+ <symbol file="debugXML">xmlShellList</symbol>
+ <symbol file="debugXML">xmlShellLoad</symbol>
+ <symbol file="debugXML">xmlShellPrintNode</symbol>
+ <symbol file="debugXML">xmlShellPrintXPathError</symbol>
+ <symbol file="debugXML">xmlShellPrintXPathResult</symbol>
+ <symbol file="debugXML">xmlShellPwd</symbol>
+ <symbol file="debugXML">xmlShellSave</symbol>
+ <symbol file="debugXML">xmlShellValidate</symbol>
+ <symbol file="debugXML">xmlShellWrite</symbol>
+ <symbol file="xpointer">xmlXPtrBuildNodeList</symbol>
+ <symbol file="xpointer">xmlXPtrEval</symbol>
+ <symbol file="xpointer">xmlXPtrEvalRangePredicate</symbol>
+ <symbol file="xpointer">xmlXPtrFreeLocationSet</symbol>
+ <symbol file="xpointer">xmlXPtrLocationSetAdd</symbol>
+ <symbol file="xpointer">xmlXPtrLocationSetCreate</symbol>
+ <symbol file="xpointer">xmlXPtrLocationSetDel</symbol>
+ <symbol file="xpointer">xmlXPtrLocationSetMerge</symbol>
+ <symbol file="xpointer">xmlXPtrLocationSetRemove</symbol>
+ <symbol file="xpointer">xmlXPtrNewCollapsedRange</symbol>
+ <symbol file="xpointer">xmlXPtrNewContext</symbol>
+ <symbol file="xpointer">xmlXPtrNewLocationSetNodeSet</symbol>
+ <symbol file="xpointer">xmlXPtrNewLocationSetNodes</symbol>
+ <symbol file="xpointer">xmlXPtrNewRange</symbol>
+ <symbol file="xpointer">xmlXPtrNewRangeNodeObject</symbol>
+ <symbol file="xpointer">xmlXPtrNewRangeNodePoint</symbol>
+ <symbol file="xpointer">xmlXPtrNewRangeNodes</symbol>
+ <symbol file="xpointer">xmlXPtrNewRangePointNode</symbol>
+ <symbol file="xpointer">xmlXPtrNewRangePoints</symbol>
+ <symbol file="xpointer">xmlXPtrRangeToFunction</symbol>
+ <symbol file="xpointer">xmlXPtrWrapLocationSet</symbol>
+ <symbol file="SAX">attribute</symbol>
+ <symbol file="SAX">attributeDecl</symbol>
+ <symbol file="SAX">cdataBlock</symbol>
+ <symbol file="SAX">characters</symbol>
+ <symbol file="SAX">checkNamespace</symbol>
+ <symbol file="SAX">comment</symbol>
+ <symbol file="SAX2">docbDefaultSAXHandlerInit</symbol>
+ <symbol file="SAX">elementDecl</symbol>
+ <symbol file="SAX">endDocument</symbol>
+ <symbol file="SAX">endElement</symbol>
+ <symbol file="SAX">entityDecl</symbol>
+ <symbol file="SAX">externalSubset</symbol>
+ <symbol file="SAX">getColumnNumber</symbol>
+ <symbol file="SAX">getEntity</symbol>
+ <symbol file="SAX">getLineNumber</symbol>
+ <symbol file="SAX">getNamespace</symbol>
+ <symbol file="SAX">getParameterEntity</symbol>
+ <symbol file="SAX">getPublicId</symbol>
+ <symbol file="SAX">getSystemId</symbol>
+ <symbol file="SAX">globalNamespace</symbol>
+ <symbol file="SAX">hasExternalSubset</symbol>
+ <symbol file="SAX">hasInternalSubset</symbol>
+ <symbol file="SAX2">htmlDefaultSAXHandlerInit</symbol>
+ <symbol file="SAX">ignorableWhitespace</symbol>
+ <symbol file="SAX">initdocbDefaultSAXHandler</symbol>
+ <symbol file="SAX">inithtmlDefaultSAXHandler</symbol>
+ <symbol file="SAX">initxmlDefaultSAXHandler</symbol>
+ <symbol file="SAX">internalSubset</symbol>
+ <symbol file="SAX">isStandalone</symbol>
+ <symbol file="SAX">namespaceDecl</symbol>
+ <symbol file="SAX">notationDecl</symbol>
+ <symbol file="SAX">processingInstruction</symbol>
+ <symbol file="SAX">reference</symbol>
+ <symbol file="SAX">resolveEntity</symbol>
+ <symbol file="SAX">setDocumentLocator</symbol>
+ <symbol file="SAX">setNamespace</symbol>
+ <symbol file="SAX">startDocument</symbol>
+ <symbol file="SAX">startElement</symbol>
+ <symbol file="SAX">unparsedEntityDecl</symbol>
+ <symbol file="SAX2">xmlDefaultSAXHandlerInit</symbol>
+ <symbol file="parserInternals">htmlCreateFileParserCtxt</symbol>
+ <symbol file="parserInternals">htmlInitAutoClose</symbol>
+ <symbol file="parserInternals">inputPop</symbol>
+ <symbol file="parserInternals">inputPush</symbol>
+ <symbol file="parserInternals">namePop</symbol>
+ <symbol file="parserInternals">namePush</symbol>
+ <symbol file="parserInternals">nodePop</symbol>
+ <symbol file="parserInternals">nodePush</symbol>
+ <symbol file="parserInternals">xmlCheckLanguageID</symbol>
+ <symbol file="parserInternals">xmlCopyChar</symbol>
+ <symbol file="parserInternals">xmlCopyCharMultiByte</symbol>
+ <symbol file="parserInternals">xmlCreateEntityParserCtxt</symbol>
+ <symbol file="parserInternals">xmlCreateFileParserCtxt</symbol>
+ <symbol file="parserInternals">xmlCreateMemoryParserCtxt</symbol>
+ <symbol file="parserInternals">xmlCurrentChar</symbol>
+ <symbol file="parserInternals">xmlDecodeEntities</symbol>
+ <symbol file="parserInternals">xmlFreeInputStream</symbol>
+ <symbol file="parserInternals">xmlHandleEntity</symbol>
+ <symbol file="chvalid">xmlIsBaseChar</symbol>
+ <symbol file="chvalid">xmlIsBlank</symbol>
+ <symbol file="chvalid">xmlIsChar</symbol>
+ <symbol file="chvalid">xmlIsCombining</symbol>
+ <symbol file="chvalid">xmlIsDigit</symbol>
+ <symbol file="chvalid">xmlIsExtender</symbol>
+ <symbol file="chvalid">xmlIsIdeographic</symbol>
+ <symbol file="parserInternals">xmlIsLetter</symbol>
+ <symbol file="chvalid">xmlIsPubidChar</symbol>
+ <symbol file="parserInternals">xmlNamespaceParseNCName</symbol>
+ <symbol file="parserInternals">xmlNamespaceParseNSDef</symbol>
+ <symbol file="parserInternals">xmlNamespaceParseQName</symbol>
+ <symbol file="parserInternals">xmlNewEntityInputStream</symbol>
+ <symbol file="parserInternals">xmlNewInputFromFile</symbol>
+ <symbol file="parserInternals">xmlNewInputStream</symbol>
+ <symbol file="parser">xmlNewParserCtxt</symbol>
+ <symbol file="parserInternals">xmlNewStringInputStream</symbol>
+ <symbol file="parserInternals">xmlNextChar</symbol>
+ <symbol file="parserInternals">xmlParseAttValue</symbol>
+ <symbol file="parserInternals">xmlParseAttribute</symbol>
+ <symbol file="parserInternals">xmlParseAttributeListDecl</symbol>
+ <symbol file="parserInternals">xmlParseAttributeType</symbol>
+ <symbol file="parserInternals">xmlParseCDSect</symbol>
+ <symbol file="parserInternals">xmlParseCharData</symbol>
+ <symbol file="parserInternals">xmlParseCharRef</symbol>
+ <symbol file="parserInternals">xmlParseComment</symbol>
+ <symbol file="parserInternals">xmlParseContent</symbol>
+ <symbol file="parserInternals">xmlParseDefaultDecl</symbol>
+ <symbol file="parserInternals">xmlParseDocTypeDecl</symbol>
+ <symbol file="parserInternals">xmlParseElement</symbol>
+ <symbol file="parserInternals">xmlParseElementChildrenContentDecl</symbol>
+ <symbol file="parserInternals">xmlParseElementContentDecl</symbol>
+ <symbol file="parserInternals">xmlParseElementDecl</symbol>
+ <symbol file="parserInternals">xmlParseElementMixedContentDecl</symbol>
+ <symbol file="parserInternals">xmlParseEncName</symbol>
+ <symbol file="parserInternals">xmlParseEncodingDecl</symbol>
+ <symbol file="parserInternals">xmlParseEndTag</symbol>
+ <symbol file="parserInternals">xmlParseEntityDecl</symbol>
+ <symbol file="parserInternals">xmlParseEntityRef</symbol>
+ <symbol file="parserInternals">xmlParseEntityValue</symbol>
+ <symbol file="parserInternals">xmlParseEnumeratedType</symbol>
+ <symbol file="parserInternals">xmlParseEnumerationType</symbol>
+ <symbol file="parserInternals">xmlParseExternalID</symbol>
+ <symbol file="parserInternals">xmlParseExternalSubset</symbol>
+ <symbol file="parserInternals">xmlParseMarkupDecl</symbol>
+ <symbol file="parserInternals">xmlParseMisc</symbol>
+ <symbol file="parserInternals">xmlParseName</symbol>
+ <symbol file="parserInternals">xmlParseNamespace</symbol>
+ <symbol file="parserInternals">xmlParseNmtoken</symbol>
+ <symbol file="parserInternals">xmlParseNotationDecl</symbol>
+ <symbol file="parserInternals">xmlParseNotationType</symbol>
+ <symbol file="parserInternals">xmlParsePEReference</symbol>
+ <symbol file="parserInternals">xmlParsePI</symbol>
+ <symbol file="parserInternals">xmlParsePITarget</symbol>
+ <symbol file="parserInternals">xmlParsePubidLiteral</symbol>
+ <symbol file="parserInternals">xmlParseQuotedString</symbol>
+ <symbol file="parserInternals">xmlParseReference</symbol>
+ <symbol file="parserInternals">xmlParseSDDecl</symbol>
+ <symbol file="parserInternals">xmlParseStartTag</symbol>
+ <symbol file="parserInternals">xmlParseSystemLiteral</symbol>
+ <symbol file="parserInternals">xmlParseTextDecl</symbol>
+ <symbol file="parserInternals">xmlParseVersionInfo</symbol>
+ <symbol file="parserInternals">xmlParseVersionNum</symbol>
+ <symbol file="parserInternals">xmlParseXMLDecl</symbol>
+ <symbol file="parserInternals">xmlParserHandlePEReference</symbol>
+ <symbol file="parserInternals">xmlParserHandleReference</symbol>
+ <symbol file="parserInternals">xmlParserInputShrink</symbol>
+ <symbol file="parserInternals">xmlPopInput</symbol>
+ <symbol file="parserInternals">xmlPushInput</symbol>
+ <symbol file="parserInternals">xmlScanName</symbol>
+ <symbol file="parserInternals">xmlSetEntityReferenceFunc</symbol>
+ <symbol file="parserInternals">xmlSkipBlankChars</symbol>
+ <symbol file="parserInternals">xmlSplitQName</symbol>
+ <symbol file="parserInternals">xmlStringComment</symbol>
+ <symbol file="parserInternals">xmlStringCurrentChar</symbol>
+ <symbol file="parserInternals">xmlStringDecodeEntities</symbol>
+ <symbol file="parserInternals">xmlStringText</symbol>
+ <symbol file="parserInternals">xmlStringTextNoenc</symbol>
+ <symbol file="parserInternals">xmlSwitchEncoding</symbol>
+ <symbol file="parserInternals">xmlSwitchToEncoding</symbol>
+ <symbol file="c14n">xmlC14NDocDumpMemory</symbol>
+ <symbol file="c14n">xmlC14NDocSave</symbol>
+ <symbol file="c14n">xmlC14NDocSaveTo</symbol>
+ <symbol file="c14n">xmlC14NExecute</symbol>
+ <symbol file="catalog">xmlACatalogAdd</symbol>
+ <symbol file="catalog">xmlACatalogDump</symbol>
+ <symbol file="catalog">xmlACatalogRemove</symbol>
+ <symbol file="catalog">xmlACatalogResolve</symbol>
+ <symbol file="catalog">xmlACatalogResolvePublic</symbol>
+ <symbol file="catalog">xmlACatalogResolveSystem</symbol>
+ <symbol file="catalog">xmlACatalogResolveURI</symbol>
+ <symbol file="catalog">xmlCatalogAdd</symbol>
+ <symbol file="catalog">xmlCatalogAddLocal</symbol>
+ <symbol file="catalog">xmlCatalogCleanup</symbol>
+ <symbol file="catalog">xmlCatalogConvert</symbol>
+ <symbol file="catalog">xmlCatalogDump</symbol>
+ <symbol file="catalog">xmlCatalogFreeLocal</symbol>
+ <symbol file="catalog">xmlCatalogGetDefaults</symbol>
+ <symbol file="catalog">xmlCatalogGetPublic</symbol>
+ <symbol file="catalog">xmlCatalogGetSystem</symbol>
+ <symbol file="catalog">xmlCatalogIsEmpty</symbol>
+ <symbol file="catalog">xmlCatalogLocalResolve</symbol>
+ <symbol file="catalog">xmlCatalogLocalResolveURI</symbol>
+ <symbol file="catalog">xmlCatalogRemove</symbol>
+ <symbol file="catalog">xmlCatalogResolve</symbol>
+ <symbol file="catalog">xmlCatalogResolvePublic</symbol>
+ <symbol file="catalog">xmlCatalogResolveSystem</symbol>
+ <symbol file="catalog">xmlCatalogResolveURI</symbol>
+ <symbol file="catalog">xmlCatalogSetDebug</symbol>
+ <symbol file="catalog">xmlCatalogSetDefaultPrefer</symbol>
+ <symbol file="catalog">xmlCatalogSetDefaults</symbol>
+ <symbol file="catalog">xmlConvertSGMLCatalog</symbol>
+ <symbol file="catalog">xmlFreeCatalog</symbol>
+ <symbol file="catalog">xmlInitializeCatalog</symbol>
+ <symbol file="catalog">xmlLoadACatalog</symbol>
+ <symbol file="catalog">xmlLoadCatalog</symbol>
+ <symbol file="catalog">xmlLoadCatalogs</symbol>
+ <symbol file="catalog">xmlLoadSGMLSuperCatalog</symbol>
+ <symbol file="catalog">xmlNewCatalog</symbol>
+ <symbol file="catalog">xmlParseCatalogFile</symbol>
+ <symbol file="xpathInternals">valuePop</symbol>
+ <symbol file="xpathInternals">valuePush</symbol>
+ <symbol file="xpathInternals">xmlXPathAddValues</symbol>
+ <symbol file="xpathInternals">xmlXPathBooleanFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathCeilingFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathCompareValues</symbol>
+ <symbol file="xpathInternals">xmlXPathConcatFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathContainsFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathCountFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathDebugDumpCompExpr</symbol>
+ <symbol file="xpathInternals">xmlXPathDebugDumpObject</symbol>
+ <symbol file="xpathInternals">xmlXPathDifference</symbol>
+ <symbol file="xpathInternals">xmlXPathDistinct</symbol>
+ <symbol file="xpathInternals">xmlXPathDistinctSorted</symbol>
+ <symbol file="xpathInternals">xmlXPathDivValues</symbol>
+ <symbol file="xpathInternals">xmlXPathEqualValues</symbol>
+ <symbol file="xpathInternals">xmlXPathEvalExpr</symbol>
+ <symbol file="xpathInternals">xmlXPathEvaluatePredicateResult</symbol>
+ <symbol file="xpathInternals">xmlXPathFalseFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathFloorFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathFreeParserContext</symbol>
+ <symbol file="xpathInternals">xmlXPathFunctionLookup</symbol>
+ <symbol file="xpathInternals">xmlXPathFunctionLookupNS</symbol>
+ <symbol file="xpathInternals">xmlXPathHasSameNodes</symbol>
+ <symbol file="xpathInternals">xmlXPathIdFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathIntersection</symbol>
+ <symbol file="xpathInternals">xmlXPathIsNodeType</symbol>
+ <symbol file="xpathInternals">xmlXPathLangFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathLastFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathLeading</symbol>
+ <symbol file="xpathInternals">xmlXPathLeadingSorted</symbol>
+ <symbol file="xpathInternals">xmlXPathLocalNameFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathModValues</symbol>
+ <symbol file="xpathInternals">xmlXPathMultValues</symbol>
+ <symbol file="xpathInternals">xmlXPathNamespaceURIFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathNewBoolean</symbol>
+ <symbol file="xpathInternals">xmlXPathNewCString</symbol>
+ <symbol file="xpathInternals">xmlXPathNewFloat</symbol>
+ <symbol file="xpathInternals">xmlXPathNewNodeSet</symbol>
+ <symbol file="xpathInternals">xmlXPathNewNodeSetList</symbol>
+ <symbol file="xpathInternals">xmlXPathNewParserContext</symbol>
+ <symbol file="xpathInternals">xmlXPathNewString</symbol>
+ <symbol file="xpathInternals">xmlXPathNewValueTree</symbol>
+ <symbol file="xpathInternals">xmlXPathNextAncestor</symbol>
+ <symbol file="xpathInternals">xmlXPathNextAncestorOrSelf</symbol>
+ <symbol file="xpathInternals">xmlXPathNextAttribute</symbol>
+ <symbol file="xpathInternals">xmlXPathNextChild</symbol>
+ <symbol file="xpathInternals">xmlXPathNextDescendant</symbol>
+ <symbol file="xpathInternals">xmlXPathNextDescendantOrSelf</symbol>
+ <symbol file="xpathInternals">xmlXPathNextFollowing</symbol>
+ <symbol file="xpathInternals">xmlXPathNextFollowingSibling</symbol>
+ <symbol file="xpathInternals">xmlXPathNextNamespace</symbol>
+ <symbol file="xpathInternals">xmlXPathNextParent</symbol>
+ <symbol file="xpathInternals">xmlXPathNextPreceding</symbol>
+ <symbol file="xpathInternals">xmlXPathNextPrecedingSibling</symbol>
+ <symbol file="xpathInternals">xmlXPathNextSelf</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeLeading</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeLeadingSorted</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeSetAdd</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeSetAddNs</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeSetAddUnique</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeSetContains</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeSetDel</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeSetFreeNs</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeSetMerge</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeSetRemove</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeSetSort</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeTrailing</symbol>
+ <symbol file="xpathInternals">xmlXPathNodeTrailingSorted</symbol>
+ <symbol file="xpathInternals">xmlXPathNormalizeFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathNotEqualValues</symbol>
+ <symbol file="xpathInternals">xmlXPathNotFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathNsLookup</symbol>
+ <symbol file="xpathInternals">xmlXPathNumberFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathParseNCName</symbol>
+ <symbol file="xpathInternals">xmlXPathParseName</symbol>
+ <symbol file="xpathInternals">xmlXPathPopBoolean</symbol>
+ <symbol file="xpathInternals">xmlXPathPopExternal</symbol>
+ <symbol file="xpathInternals">xmlXPathPopNodeSet</symbol>
+ <symbol file="xpathInternals">xmlXPathPopNumber</symbol>
+ <symbol file="xpathInternals">xmlXPathPopString</symbol>
+ <symbol file="xpathInternals">xmlXPathPositionFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisterAllFunctions</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisterFunc</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisterFuncLookup</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisterFuncNS</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisterNs</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisterVariable</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisterVariableLookup</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisterVariableNS</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisteredFuncsCleanup</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisteredNsCleanup</symbol>
+ <symbol file="xpathInternals">xmlXPathRegisteredVariablesCleanup</symbol>
+ <symbol file="xpathInternals">xmlXPathRoot</symbol>
+ <symbol file="xpathInternals">xmlXPathRoundFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathStartsWithFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathStringEvalNumber</symbol>
+ <symbol file="xpathInternals">xmlXPathStringFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathStringLengthFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathSubValues</symbol>
+ <symbol file="xpathInternals">xmlXPathSubstringAfterFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathSubstringBeforeFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathSubstringFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathSumFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathTrailing</symbol>
+ <symbol file="xpathInternals">xmlXPathTrailingSorted</symbol>
+ <symbol file="xpathInternals">xmlXPathTranslateFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathTrueFunction</symbol>
+ <symbol file="xpathInternals">xmlXPathValueFlipSign</symbol>
+ <symbol file="xpathInternals">xmlXPathVariableLookup</symbol>
+ <symbol file="xpathInternals">xmlXPathVariableLookupNS</symbol>
+ <symbol file="xpathInternals">xmlXPathWrapCString</symbol>
+ <symbol file="xpathInternals">xmlXPathWrapExternal</symbol>
+ <symbol file="xpathInternals">xmlXPathWrapNodeSet</symbol>
+ <symbol file="xpathInternals">xmlXPathWrapString</symbol>
+ <symbol file="xpathInternals">xmlXPatherror</symbol>
+ <symbol file="xmlautomata">xmlAutomataCompile</symbol>
+ <symbol file="xmlautomata">xmlAutomataGetInitState</symbol>
+ <symbol file="xmlautomata">xmlAutomataIsDeterminist</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewAllTrans</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewCountTrans</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewCountedTrans</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewCounter</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewCounterTrans</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewEpsilon</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewOnceTrans</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewState</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewTransition</symbol>
+ <symbol file="xmlautomata">xmlAutomataSetFinalState</symbol>
+ <symbol file="xmlautomata">xmlFreeAutomata</symbol>
+ <symbol file="xmlautomata">xmlNewAutomata</symbol>
+ <symbol file="HTMLtree">htmlDocContentDumpFormatOutput</symbol>
+ <symbol file="HTMLtree">htmlDocContentDumpOutput</symbol>
+ <symbol file="HTMLtree">htmlDocDump</symbol>
+ <symbol file="HTMLtree">htmlDocDumpMemory</symbol>
+ <symbol file="HTMLtree">htmlGetMetaEncoding</symbol>
+ <symbol file="HTMLtree">htmlIsBooleanAttr</symbol>
+ <symbol file="HTMLtree">htmlNewDoc</symbol>
+ <symbol file="HTMLtree">htmlNewDocNoDtD</symbol>
+ <symbol file="HTMLtree">htmlNodeDump</symbol>
+ <symbol file="HTMLtree">htmlNodeDumpFile</symbol>
+ <symbol file="HTMLtree">htmlNodeDumpFileFormat</symbol>
+ <symbol file="HTMLtree">htmlNodeDumpFormatOutput</symbol>
+ <symbol file="HTMLtree">htmlNodeDumpOutput</symbol>
+ <symbol file="HTMLtree">htmlSaveFile</symbol>
+ <symbol file="HTMLtree">htmlSaveFileEnc</symbol>
+ <symbol file="HTMLtree">htmlSaveFileFormat</symbol>
+ <symbol file="HTMLtree">htmlSetMetaEncoding</symbol>
+ <symbol file="nanoftp">xmlNanoFTPCheckResponse</symbol>
+ <symbol file="nanoftp">xmlNanoFTPCleanup</symbol>
+ <symbol file="nanoftp">xmlNanoFTPClose</symbol>
+ <symbol file="nanoftp">xmlNanoFTPCloseConnection</symbol>
+ <symbol file="nanoftp">xmlNanoFTPConnect</symbol>
+ <symbol file="nanoftp">xmlNanoFTPConnectTo</symbol>
+ <symbol file="nanoftp">xmlNanoFTPCwd</symbol>
+ <symbol file="nanoftp">xmlNanoFTPFreeCtxt</symbol>
+ <symbol file="nanoftp">xmlNanoFTPGet</symbol>
+ <symbol file="nanoftp">xmlNanoFTPGetConnection</symbol>
+ <symbol file="nanoftp">xmlNanoFTPGetResponse</symbol>
+ <symbol file="nanoftp">xmlNanoFTPGetSocket</symbol>
+ <symbol file="nanoftp">xmlNanoFTPInit</symbol>
+ <symbol file="nanoftp">xmlNanoFTPList</symbol>
+ <symbol file="nanoftp">xmlNanoFTPNewCtxt</symbol>
+ <symbol file="nanoftp">xmlNanoFTPOpen</symbol>
+ <symbol file="nanoftp">xmlNanoFTPProxy</symbol>
+ <symbol file="nanoftp">xmlNanoFTPQuit</symbol>
+ <symbol file="nanoftp">xmlNanoFTPRead</symbol>
+ <symbol file="nanoftp">xmlNanoFTPScanProxy</symbol>
+ <symbol file="nanoftp">xmlNanoFTPUpdateURL</symbol>
+ <symbol file="DOCBparser">docbCreateFileParserCtxt</symbol>
+ <symbol file="DOCBparser">docbCreatePushParserCtxt</symbol>
+ <symbol file="DOCBparser">docbEncodeEntities</symbol>
+ <symbol file="DOCBparser">docbFreeParserCtxt</symbol>
+ <symbol file="DOCBparser">docbParseChunk</symbol>
+ <symbol file="DOCBparser">docbParseDoc</symbol>
+ <symbol file="DOCBparser">docbParseDocument</symbol>
+ <symbol file="DOCBparser">docbParseFile</symbol>
+ <symbol file="DOCBparser">docbSAXParseDoc</symbol>
+ <symbol file="DOCBparser">docbSAXParseFile</symbol>
+ <symbol file="xpath">xmlXPathCastBooleanToNumber</symbol>
+ <symbol file="xpath">xmlXPathCastBooleanToString</symbol>
+ <symbol file="xpath">xmlXPathCastNodeSetToBoolean</symbol>
+ <symbol file="xpath">xmlXPathCastNodeSetToNumber</symbol>
+ <symbol file="xpath">xmlXPathCastNodeSetToString</symbol>
+ <symbol file="xpath">xmlXPathCastNodeToNumber</symbol>
+ <symbol file="xpath">xmlXPathCastNodeToString</symbol>
+ <symbol file="xpath">xmlXPathCastNumberToBoolean</symbol>
+ <symbol file="xpath">xmlXPathCastNumberToString</symbol>
+ <symbol file="xpath">xmlXPathCastStringToBoolean</symbol>
+ <symbol file="xpath">xmlXPathCastStringToNumber</symbol>
+ <symbol file="xpath">xmlXPathCastToBoolean</symbol>
+ <symbol file="xpath">xmlXPathCastToNumber</symbol>
+ <symbol file="xpath">xmlXPathCastToString</symbol>
+ <symbol file="xpath">xmlXPathCmpNodes</symbol>
+ <symbol file="xpath">xmlXPathCompile</symbol>
+ <symbol file="xpath">xmlXPathCompiledEval</symbol>
+ <symbol file="xpath">xmlXPathConvertBoolean</symbol>
+ <symbol file="xpath">xmlXPathConvertNumber</symbol>
+ <symbol file="xpath">xmlXPathConvertString</symbol>
+ <symbol file="xpath">xmlXPathEval</symbol>
+ <symbol file="xpath">xmlXPathEvalExpression</symbol>
+ <symbol file="xpath">xmlXPathEvalPredicate</symbol>
+ <symbol file="xpath">xmlXPathFreeCompExpr</symbol>
+ <symbol file="xpath">xmlXPathFreeContext</symbol>
+ <symbol file="xpath">xmlXPathFreeNodeSet</symbol>
+ <symbol file="xpath">xmlXPathFreeNodeSetList</symbol>
+ <symbol file="xpath">xmlXPathFreeObject</symbol>
+ <symbol file="xpath">xmlXPathInit</symbol>
+ <symbol file="xpath">xmlXPathIsInf</symbol>
+ <symbol file="xpath">xmlXPathIsNaN</symbol>
+ <symbol file="xpath">xmlXPathNAN</symbol>
+ <symbol file="xpath">xmlXPathNINF</symbol>
+ <symbol file="xpath">xmlXPathNewContext</symbol>
+ <symbol file="xpath">xmlXPathNodeSetCreate</symbol>
+ <symbol file="xpath">xmlXPathObjectCopy</symbol>
+ <symbol file="xpath">xmlXPathPINF</symbol>
+ <symbol file="xlink">xlinkGetDefaultDetect</symbol>
+ <symbol file="xlink">xlinkGetDefaultHandler</symbol>
+ <symbol file="xlink">xlinkIsLink</symbol>
+ <symbol file="xlink">xlinkSetDefaultDetect</symbol>
+ <symbol file="xlink">xlinkSetDefaultHandler</symbol>
+ <symbol file="entities">xmlAddDocEntity</symbol>
+ <symbol file="entities">xmlAddDtdEntity</symbol>
+ <symbol file="entities">xmlCleanupPredefinedEntities</symbol>
+ <symbol file="entities">xmlCopyEntitiesTable</symbol>
+ <symbol file="entities">xmlCreateEntitiesTable</symbol>
+ <symbol file="entities">xmlDumpEntitiesTable</symbol>
+ <symbol file="entities">xmlDumpEntityDecl</symbol>
+ <symbol file="entities">xmlEncodeEntities</symbol>
+ <symbol file="entities">xmlEncodeEntitiesReentrant</symbol>
+ <symbol file="entities">xmlEncodeSpecialChars</symbol>
+ <symbol file="entities">xmlFreeEntitiesTable</symbol>
+ <symbol file="entities">xmlGetDocEntity</symbol>
+ <symbol file="entities">xmlGetDtdEntity</symbol>
+ <symbol file="entities">xmlGetParameterEntity</symbol>
+ <symbol file="entities">xmlGetPredefinedEntity</symbol>
+ <symbol file="entities">xmlInitializePredefinedEntities</symbol>
+ <symbol file="xinclude">xmlXIncludeProcess</symbol>
+ <symbol file="list">xmlLinkGetData</symbol>
+ <symbol file="list">xmlListAppend</symbol>
+ <symbol file="list">xmlListClear</symbol>
+ <symbol file="list">xmlListCopy</symbol>
+ <symbol file="list">xmlListCreate</symbol>
+ <symbol file="list">xmlListDelete</symbol>
+ <symbol file="list">xmlListDup</symbol>
+ <symbol file="list">xmlListEmpty</symbol>
+ <symbol file="list">xmlListEnd</symbol>
+ <symbol file="list">xmlListFront</symbol>
+ <symbol file="list">xmlListInsert</symbol>
+ <symbol file="list">xmlListMerge</symbol>
+ <symbol file="list">xmlListPopBack</symbol>
+ <symbol file="list">xmlListPopFront</symbol>
+ <symbol file="list">xmlListPushBack</symbol>
+ <symbol file="list">xmlListPushFront</symbol>
+ <symbol file="list">xmlListRemoveAll</symbol>
+ <symbol file="list">xmlListRemoveFirst</symbol>
+ <symbol file="list">xmlListRemoveLast</symbol>
+ <symbol file="list">xmlListReverse</symbol>
+ <symbol file="list">xmlListReverseSearch</symbol>
+ <symbol file="list">xmlListReverseWalk</symbol>
+ <symbol file="list">xmlListSearch</symbol>
+ <symbol file="list">xmlListSize</symbol>
+ <symbol file="list">xmlListSort</symbol>
+ <symbol file="list">xmlListWalk</symbol>
+ <symbol file="xmlmemory">xmlInitMemory</symbol>
+ <symbol file="xmlmemory">xmlMallocLoc</symbol>
+ <symbol file="xmlmemory">xmlMemDisplay</symbol>
+ <symbol file="xmlmemory">xmlMemFree</symbol>
+ <symbol file="xmlmemory">xmlMemGet</symbol>
+ <symbol file="xmlmemory">xmlMemMalloc</symbol>
+ <symbol file="xmlmemory">xmlMemRealloc</symbol>
+ <symbol file="xmlmemory">xmlMemSetup</symbol>
+ <symbol file="xmlmemory">xmlMemShow</symbol>
+ <symbol file="xmlmemory">xmlMemStrdupLoc</symbol>
+ <symbol file="xmlmemory">xmlMemUsed</symbol>
+ <symbol file="xmlmemory">xmlMemoryDump</symbol>
+ <symbol file="xmlmemory">xmlMemoryStrdup</symbol>
+ <symbol file="xmlmemory">xmlReallocLoc</symbol>
+ <symbol file="xmlIO">xmlAllocOutputBuffer</symbol>
+ <symbol file="xmlIO">xmlAllocParserInputBuffer</symbol>
+ <symbol file="xmlIO">xmlCheckFilename</symbol>
+ <symbol file="xmlIO">xmlCleanupInputCallbacks</symbol>
+ <symbol file="xmlIO">xmlCleanupOutputCallbacks</symbol>
+ <symbol file="xmlIO">xmlFileClose</symbol>
+ <symbol file="xmlIO">xmlFileMatch</symbol>
+ <symbol file="xmlIO">xmlFileOpen</symbol>
+ <symbol file="xmlIO">xmlFileRead</symbol>
+ <symbol file="xmlIO">xmlFreeParserInputBuffer</symbol>
+ <symbol file="xmlIO">xmlIOFTPClose</symbol>
+ <symbol file="xmlIO">xmlIOFTPMatch</symbol>
+ <symbol file="xmlIO">xmlIOFTPOpen</symbol>
+ <symbol file="xmlIO">xmlIOFTPRead</symbol>
+ <symbol file="xmlIO">xmlIOHTTPClose</symbol>
+ <symbol file="xmlIO">xmlIOHTTPMatch</symbol>
+ <symbol file="xmlIO">xmlIOHTTPOpen</symbol>
+ <symbol file="xmlIO">xmlIOHTTPOpenW</symbol>
+ <symbol file="xmlIO">xmlIOHTTPRead</symbol>
+ <symbol file="xmlIO">xmlNoNetExternalEntityLoader</symbol>
+ <symbol file="xmlIO">xmlNormalizeWindowsPath</symbol>
+ <symbol file="xmlIO">xmlOutputBufferClose</symbol>
+ <symbol file="xmlIO">xmlOutputBufferCreateFd</symbol>
+ <symbol file="xmlIO">xmlOutputBufferCreateFile</symbol>
+ <symbol file="xmlIO">xmlOutputBufferCreateFilename</symbol>
+ <symbol file="xmlIO">xmlOutputBufferCreateIO</symbol>
+ <symbol file="xmlIO">xmlOutputBufferFlush</symbol>
+ <symbol file="xmlIO">xmlOutputBufferWrite</symbol>
+ <symbol file="xmlIO">xmlOutputBufferWriteString</symbol>
+ <symbol file="xmlIO">xmlParserGetDirectory</symbol>
+ <symbol file="xmlIO">xmlParserInputBufferCreateFd</symbol>
+ <symbol file="xmlIO">xmlParserInputBufferCreateFile</symbol>
+ <symbol file="xmlIO">xmlParserInputBufferCreateFilename</symbol>
+ <symbol file="xmlIO">xmlParserInputBufferCreateIO</symbol>
+ <symbol file="xmlIO">xmlParserInputBufferCreateMem</symbol>
+ <symbol file="xmlIO">xmlParserInputBufferGrow</symbol>
+ <symbol file="xmlIO">xmlParserInputBufferPush</symbol>
+ <symbol file="xmlIO">xmlParserInputBufferRead</symbol>
+ <symbol file="xmlIO">xmlRegisterDefaultInputCallbacks</symbol>
+ <symbol file="xmlIO">xmlRegisterDefaultOutputCallbacks</symbol>
+ <symbol file="xmlIO">xmlRegisterHTTPPostCallbacks</symbol>
+ <symbol file="xmlIO">xmlRegisterInputCallbacks</symbol>
+ <symbol file="xmlIO">xmlRegisterOutputCallbacks</symbol>
+ <symbol file="xmlversion">xmlCheckVersion</symbol>
+ <symbol file="valid">xmlAddAttributeDecl</symbol>
+ <symbol file="valid">xmlAddElementDecl</symbol>
+ <symbol file="valid">xmlAddID</symbol>
+ <symbol file="valid">xmlAddNotationDecl</symbol>
+ <symbol file="valid">xmlAddRef</symbol>
+ <symbol file="valid">xmlCopyAttributeTable</symbol>
+ <symbol file="valid">xmlCopyElementContent</symbol>
+ <symbol file="valid">xmlCopyElementTable</symbol>
+ <symbol file="valid">xmlCopyEnumeration</symbol>
+ <symbol file="valid">xmlCopyNotationTable</symbol>
+ <symbol file="valid">xmlCreateEnumeration</symbol>
+ <symbol file="valid">xmlDumpAttributeDecl</symbol>
+ <symbol file="valid">xmlDumpAttributeTable</symbol>
+ <symbol file="valid">xmlDumpElementDecl</symbol>
+ <symbol file="valid">xmlDumpElementTable</symbol>
+ <symbol file="valid">xmlDumpNotationDecl</symbol>
+ <symbol file="valid">xmlDumpNotationTable</symbol>
+ <symbol file="valid">xmlFreeAttributeTable</symbol>
+ <symbol file="valid">xmlFreeElementContent</symbol>
+ <symbol file="valid">xmlFreeElementTable</symbol>
+ <symbol file="valid">xmlFreeEnumeration</symbol>
+ <symbol file="valid">xmlFreeIDTable</symbol>
+ <symbol file="valid">xmlFreeNotationTable</symbol>
+ <symbol file="valid">xmlFreeRefTable</symbol>
+ <symbol file="valid">xmlGetDtdAttrDesc</symbol>
+ <symbol file="valid">xmlGetDtdElementDesc</symbol>
+ <symbol file="valid">xmlGetDtdNotationDesc</symbol>
+ <symbol file="valid">xmlGetDtdQAttrDesc</symbol>
+ <symbol file="valid">xmlGetDtdQElementDesc</symbol>
+ <symbol file="valid">xmlGetID</symbol>
+ <symbol file="valid">xmlGetRefs</symbol>
+ <symbol file="valid">xmlIsID</symbol>
+ <symbol file="valid">xmlIsMixedElement</symbol>
+ <symbol file="valid">xmlIsRef</symbol>
+ <symbol file="valid">xmlNewElementContent</symbol>
+ <symbol file="valid">xmlRemoveID</symbol>
+ <symbol file="valid">xmlRemoveRef</symbol>
+ <symbol file="valid">xmlSnprintfElementContent</symbol>
+ <symbol file="tree">xmlSplitQName2</symbol>
+ <symbol file="valid">xmlSprintfElementContent</symbol>
+ <symbol file="valid">xmlValidBuildContentModel</symbol>
+ <symbol file="valid">xmlValidCtxtNormalizeAttributeValue</symbol>
+ <symbol file="valid">xmlValidGetPotentialChildren</symbol>
+ <symbol file="valid">xmlValidGetValidElements</symbol>
+ <symbol file="valid">xmlValidNormalizeAttributeValue</symbol>
+ <symbol file="valid">xmlValidateAttributeDecl</symbol>
+ <symbol file="valid">xmlValidateAttributeValue</symbol>
+ <symbol file="valid">xmlValidateDocument</symbol>
+ <symbol file="valid">xmlValidateDocumentFinal</symbol>
+ <symbol file="valid">xmlValidateDtd</symbol>
+ <symbol file="valid">xmlValidateDtdFinal</symbol>
+ <symbol file="valid">xmlValidateElement</symbol>
+ <symbol file="valid">xmlValidateElementDecl</symbol>
+ <symbol file="valid">xmlValidateNameValue</symbol>
+ <symbol file="valid">xmlValidateNamesValue</symbol>
+ <symbol file="valid">xmlValidateNmtokenValue</symbol>
+ <symbol file="valid">xmlValidateNmtokensValue</symbol>
+ <symbol file="valid">xmlValidateNotationDecl</symbol>
+ <symbol file="valid">xmlValidateNotationUse</symbol>
+ <symbol file="valid">xmlValidateOneAttribute</symbol>
+ <symbol file="valid">xmlValidateOneElement</symbol>
+ <symbol file="valid">xmlValidateOneNamespace</symbol>
+ <symbol file="valid">xmlValidateRoot</symbol>
+ <symbol file="HTMLparser">UTF8ToHtml</symbol>
+ <symbol file="HTMLparser">htmlAutoCloseTag</symbol>
+ <symbol file="HTMLparser">htmlCreatePushParserCtxt</symbol>
+ <symbol file="HTMLparser">htmlEncodeEntities</symbol>
+ <symbol file="HTMLparser">htmlEntityLookup</symbol>
+ <symbol file="HTMLparser">htmlEntityValueLookup</symbol>
+ <symbol file="HTMLparser">htmlFreeParserCtxt</symbol>
+ <symbol file="HTMLparser">htmlHandleOmittedElem</symbol>
+ <symbol file="HTMLparser">htmlIsAutoClosed</symbol>
+ <symbol file="HTMLparser">htmlIsScriptAttribute</symbol>
+ <symbol file="HTMLparser">htmlParseCharRef</symbol>
+ <symbol file="HTMLparser">htmlParseChunk</symbol>
+ <symbol file="HTMLparser">htmlParseDoc</symbol>
+ <symbol file="HTMLparser">htmlParseDocument</symbol>
+ <symbol file="HTMLparser">htmlParseElement</symbol>
+ <symbol file="HTMLparser">htmlParseEntityRef</symbol>
+ <symbol file="HTMLparser">htmlParseFile</symbol>
+ <symbol file="HTMLparser">htmlSAXParseDoc</symbol>
+ <symbol file="HTMLparser">htmlSAXParseFile</symbol>
+ <symbol file="HTMLparser">htmlTagLookup</symbol>
+ <symbol file="xmlstring">xmlCharStrdup</symbol>
+ <symbol file="xmlstring">xmlCharStrndup</symbol>
+ <symbol file="parser">xmlCleanupParser</symbol>
+ <symbol file="parser">xmlClearNodeInfoSeq</symbol>
+ <symbol file="parser">xmlClearParserCtxt</symbol>
+ <symbol file="parser">xmlCreateDocParserCtxt</symbol>
+ <symbol file="parser">xmlCreateIOParserCtxt</symbol>
+ <symbol file="parser">xmlCreatePushParserCtxt</symbol>
+ <symbol file="parser">xmlFreeParserCtxt</symbol>
+ <symbol file="parser">xmlGetExternalEntityLoader</symbol>
+ <symbol file="parser">xmlGetFeature</symbol>
+ <symbol file="parser">xmlGetFeaturesList</symbol>
+ <symbol file="globals">xmlGetWarningsDefaultValue</symbol>
+ <symbol file="parser">xmlIOParseDTD</symbol>
+ <symbol file="parser">xmlInitNodeInfoSeq</symbol>
+ <symbol file="parser">xmlInitParser</symbol>
+ <symbol file="parser">xmlInitParserCtxt</symbol>
+ <symbol file="parser">xmlKeepBlanksDefault</symbol>
+ <symbol file="parser">xmlLineNumbersDefault</symbol>
+ <symbol file="parser">xmlLoadExternalEntity</symbol>
+ <symbol file="parser">xmlNewIOInputStream</symbol>
+ <symbol file="parser">xmlParseBalancedChunkMemory</symbol>
+ <symbol file="parser">xmlParseBalancedChunkMemoryRecover</symbol>
+ <symbol file="parser">xmlParseChunk</symbol>
+ <symbol file="parser">xmlParseCtxtExternalEntity</symbol>
+ <symbol file="parser">xmlParseDTD</symbol>
+ <symbol file="parser">xmlParseDoc</symbol>
+ <symbol file="parser">xmlParseDocument</symbol>
+ <symbol file="parser">xmlParseEntity</symbol>
+ <symbol file="parser">xmlParseExtParsedEnt</symbol>
+ <symbol file="parser">xmlParseExternalEntity</symbol>
+ <symbol file="parser">xmlParseFile</symbol>
+ <symbol file="parser">xmlParseMemory</symbol>
+ <symbol file="parser">xmlParserAddNodeInfo</symbol>
+ <symbol file="parser">xmlParserFindNodeInfo</symbol>
+ <symbol file="parser">xmlParserFindNodeInfoIndex</symbol>
+ <symbol file="parser">xmlParserInputGrow</symbol>
+ <symbol file="parser">xmlParserInputRead</symbol>
+ <symbol file="parser">xmlPedanticParserDefault</symbol>
+ <symbol file="parser">xmlRecoverDoc</symbol>
+ <symbol file="parser">xmlRecoverFile</symbol>
+ <symbol file="parser">xmlRecoverMemory</symbol>
+ <symbol file="parser">xmlSAXParseDTD</symbol>
+ <symbol file="parser">xmlSAXParseDoc</symbol>
+ <symbol file="parser">xmlSAXParseEntity</symbol>
+ <symbol file="parser">xmlSAXParseFile</symbol>
+ <symbol file="parser">xmlSAXParseFileWithData</symbol>
+ <symbol file="parser">xmlSAXParseMemory</symbol>
+ <symbol file="parser">xmlSAXParseMemoryWithData</symbol>
+ <symbol file="parser">xmlSAXUserParseFile</symbol>
+ <symbol file="parser">xmlSAXUserParseMemory</symbol>
+ <symbol file="parser">xmlSetExternalEntityLoader</symbol>
+ <symbol file="parser">xmlSetFeature</symbol>
+ <symbol file="parser">xmlSetupParserForBuffer</symbol>
+ <symbol file="parser">xmlStopParser</symbol>
+ <symbol file="xmlstring">xmlStrEqual</symbol>
+ <symbol file="xmlstring">xmlStrcasecmp</symbol>
+ <symbol file="xmlstring">xmlStrcasestr</symbol>
+ <symbol file="xmlstring">xmlStrcat</symbol>
+ <symbol file="xmlstring">xmlStrchr</symbol>
+ <symbol file="xmlstring">xmlStrcmp</symbol>
+ <symbol file="xmlstring">xmlStrdup</symbol>
+ <symbol file="xmlstring">xmlStrlen</symbol>
+ <symbol file="xmlstring">xmlStrncasecmp</symbol>
+ <symbol file="xmlstring">xmlStrncat</symbol>
+ <symbol file="xmlstring">xmlStrncmp</symbol>
+ <symbol file="xmlstring">xmlStrndup</symbol>
+ <symbol file="xmlstring">xmlStrstr</symbol>
+ <symbol file="xmlstring">xmlStrsub</symbol>
+ <symbol file="parser">xmlSubstituteEntitiesDefault</symbol>
+ <symbol file="xmlreader">xmlFreeTextReader</symbol>
+ <symbol file="xmlreader">xmlNewTextReader</symbol>
+ <symbol file="xmlreader">xmlNewTextReaderFilename</symbol>
+ <symbol file="xmlreader">xmlTextReaderAttributeCount</symbol>
+ <symbol file="xmlreader">xmlTextReaderBaseUri</symbol>
+ <symbol file="xmlreader">xmlTextReaderDepth</symbol>
+ <symbol file="xmlreader">xmlTextReaderHasAttributes</symbol>
+ <symbol file="xmlreader">xmlTextReaderHasValue</symbol>
+ <symbol file="xmlreader">xmlTextReaderIsDefault</symbol>
+ <symbol file="xmlreader">xmlTextReaderIsEmptyElement</symbol>
+ <symbol file="xmlreader">xmlTextReaderLocalName</symbol>
+ <symbol file="xmlreader">xmlTextReaderName</symbol>
+ <symbol file="xmlreader">xmlTextReaderNamespaceUri</symbol>
+ <symbol file="xmlreader">xmlTextReaderNodeType</symbol>
+ <symbol file="xmlreader">xmlTextReaderPrefix</symbol>
+ <symbol file="xmlreader">xmlTextReaderQuoteChar</symbol>
+ <symbol file="xmlreader">xmlTextReaderRead</symbol>
+ <symbol file="xmlreader">xmlTextReaderValue</symbol>
+ <symbol file="xmlreader">xmlTextReaderXmlLang</symbol>
+ <symbol file="globals">docbDefaultSAXHandler</symbol>
+ <symbol file="globals">htmlDefaultSAXHandler</symbol>
+ <symbol file="globals">xmlDefaultSAXHandler</symbol>
+ <symbol file="globals">xmlDefaultSAXLocator</symbol>
+ <symbol file="globals">xmlDoValidityCheckingDefaultValue</symbol>
+ <symbol file="globals">xmlFree</symbol>
+ <symbol file="globals">xmlGenericError</symbol>
+ <symbol file="globals">xmlGenericErrorContext</symbol>
+ <symbol file="globals">xmlInitializeGlobalState</symbol>
+ <symbol file="globals">xmlKeepBlanksDefaultValue</symbol>
+ <symbol file="globals">xmlLineNumbersDefaultValue</symbol>
+ <symbol file="globals">xmlLoadExtDtdDefaultValue</symbol>
+ <symbol file="globals">xmlMalloc</symbol>
+ <symbol file="globals">xmlMemStrdup</symbol>
+ <symbol file="globals">xmlParserDebugEntities</symbol>
+ <symbol file="globals">xmlParserVersion</symbol>
+ <symbol file="globals">xmlPedanticParserDefaultValue</symbol>
+ <symbol file="globals">xmlRealloc</symbol>
+ <symbol file="globals">xmlSaveNoEmptyTags</symbol>
+ <symbol file="globals">xmlSubstituteEntitiesDefaultValue</symbol>
+ <symbol file="globals">xmlTreeIndentString</symbol>
+ <symbol file="threads">xmlCleanupThreads</symbol>
+ <symbol file="threads">xmlFreeMutex</symbol>
+ <symbol file="threads">xmlFreeRMutex</symbol>
+ <symbol file="threads">xmlGetGlobalState</symbol>
+ <symbol file="threads">xmlGetThreadId</symbol>
+ <symbol file="threads">xmlInitThreads</symbol>
+ <symbol file="threads">xmlIsMainThread</symbol>
+ <symbol file="threads">xmlLockLibrary</symbol>
+ <symbol file="threads">xmlMutexLock</symbol>
+ <symbol file="threads">xmlMutexUnlock</symbol>
+ <symbol file="threads">xmlNewMutex</symbol>
+ <symbol file="threads">xmlNewRMutex</symbol>
+ <symbol file="threads">xmlRMutexLock</symbol>
+ <symbol file="threads">xmlRMutexUnlock</symbol>
+ <symbol file="threads">xmlUnlockLibrary</symbol>
+ <symbol file="hash">xmlHashAddEntry</symbol>
+ <symbol file="hash">xmlHashAddEntry2</symbol>
+ <symbol file="hash">xmlHashAddEntry3</symbol>
+ <symbol file="hash">xmlHashCopy</symbol>
+ <symbol file="hash">xmlHashCreate</symbol>
+ <symbol file="hash">xmlHashFree</symbol>
+ <symbol file="hash">xmlHashLookup</symbol>
+ <symbol file="hash">xmlHashLookup2</symbol>
+ <symbol file="hash">xmlHashLookup3</symbol>
+ <symbol file="hash">xmlHashRemoveEntry</symbol>
+ <symbol file="hash">xmlHashRemoveEntry2</symbol>
+ <symbol file="hash">xmlHashRemoveEntry3</symbol>
+ <symbol file="hash">xmlHashScan</symbol>
+ <symbol file="hash">xmlHashScan3</symbol>
+ <symbol file="hash">xmlHashScanFull</symbol>
+ <symbol file="hash">xmlHashScanFull3</symbol>
+ <symbol file="hash">xmlHashSize</symbol>
+ <symbol file="hash">xmlHashUpdateEntry</symbol>
+ <symbol file="hash">xmlHashUpdateEntry2</symbol>
+ <symbol file="hash">xmlHashUpdateEntry3</symbol>
+ <symbol file="xmlerror">initGenericErrorDefaultFunc</symbol>
+ <symbol file="xmlerror">xmlParserError</symbol>
+ <symbol file="xmlerror">xmlParserPrintFileContext</symbol>
+ <symbol file="xmlerror">xmlParserPrintFileInfo</symbol>
+ <symbol file="xmlerror">xmlParserValidityError</symbol>
+ <symbol file="xmlerror">xmlParserValidityWarning</symbol>
+ <symbol file="xmlerror">xmlParserWarning</symbol>
+ <symbol file="xmlerror">xmlSetGenericErrorFunc</symbol>
+ <symbol file="globals">oldXMLWDcompatibility</symbol>
+ <symbol file="tree">xmlAddChild</symbol>
+ <symbol file="tree">xmlAddChildList</symbol>
+ <symbol file="tree">xmlAddNextSibling</symbol>
+ <symbol file="tree">xmlAddPrevSibling</symbol>
+ <symbol file="tree">xmlAddSibling</symbol>
+ <symbol file="tree">xmlBufferAdd</symbol>
+ <symbol file="tree">xmlBufferAddHead</symbol>
+ <symbol file="globals">xmlBufferAllocScheme</symbol>
+ <symbol file="tree">xmlBufferCCat</symbol>
+ <symbol file="tree">xmlBufferCat</symbol>
+ <symbol file="tree">xmlBufferContent</symbol>
+ <symbol file="tree">xmlBufferCreate</symbol>
+ <symbol file="tree">xmlBufferCreateSize</symbol>
+ <symbol file="tree">xmlBufferDump</symbol>
+ <symbol file="tree">xmlBufferEmpty</symbol>
+ <symbol file="tree">xmlBufferFree</symbol>
+ <symbol file="tree">xmlBufferGrow</symbol>
+ <symbol file="tree">xmlBufferLength</symbol>
+ <symbol file="tree">xmlBufferResize</symbol>
+ <symbol file="tree">xmlBufferSetAllocationScheme</symbol>
+ <symbol file="tree">xmlBufferShrink</symbol>
+ <symbol file="tree">xmlBufferWriteCHAR</symbol>
+ <symbol file="tree">xmlBufferWriteChar</symbol>
+ <symbol file="tree">xmlBufferWriteQuotedString</symbol>
+ <symbol file="tree">xmlCopyDoc</symbol>
+ <symbol file="tree">xmlCopyDtd</symbol>
+ <symbol file="tree">xmlCopyNamespace</symbol>
+ <symbol file="tree">xmlCopyNamespaceList</symbol>
+ <symbol file="tree">xmlCopyNode</symbol>
+ <symbol file="tree">xmlCopyNodeList</symbol>
+ <symbol file="tree">xmlCopyProp</symbol>
+ <symbol file="tree">xmlCopyPropList</symbol>
+ <symbol file="tree">xmlCreateIntSubset</symbol>
+ <symbol file="globals">xmlDefaultBufferSize</symbol>
+ <symbol file="tree">xmlDocCopyNode</symbol>
+ <symbol file="tree">xmlDocDump</symbol>
+ <symbol file="tree">xmlDocDumpFormatMemory</symbol>
+ <symbol file="tree">xmlDocDumpFormatMemoryEnc</symbol>
+ <symbol file="tree">xmlDocDumpMemory</symbol>
+ <symbol file="tree">xmlDocDumpMemoryEnc</symbol>
+ <symbol file="tree">xmlDocFormatDump</symbol>
+ <symbol file="tree">xmlDocGetRootElement</symbol>
+ <symbol file="tree">xmlDocSetRootElement</symbol>
+ <symbol file="tree">xmlElemDump</symbol>
+ <symbol file="tree">xmlFreeDoc</symbol>
+ <symbol file="tree">xmlFreeDtd</symbol>
+ <symbol file="tree">xmlFreeNode</symbol>
+ <symbol file="tree">xmlFreeNodeList</symbol>
+ <symbol file="tree">xmlFreeNs</symbol>
+ <symbol file="tree">xmlFreeNsList</symbol>
+ <symbol file="tree">xmlFreeProp</symbol>
+ <symbol file="tree">xmlFreePropList</symbol>
+ <symbol file="tree">xmlGetBufferAllocationScheme</symbol>
+ <symbol file="tree">xmlGetCompressMode</symbol>
+ <symbol file="tree">xmlGetDocCompressMode</symbol>
+ <symbol file="tree">xmlGetIntSubset</symbol>
+ <symbol file="tree">xmlGetLastChild</symbol>
+ <symbol file="tree">xmlGetLineNo</symbol>
+ <symbol file="tree">xmlGetNodePath</symbol>
+ <symbol file="tree">xmlGetNsList</symbol>
+ <symbol file="tree">xmlGetNsProp</symbol>
+ <symbol file="tree">xmlGetProp</symbol>
+ <symbol file="tree">xmlHasNsProp</symbol>
+ <symbol file="tree">xmlHasProp</symbol>
+ <symbol file="globals">xmlIndentTreeOutput</symbol>
+ <symbol file="tree">xmlIsBlankNode</symbol>
+ <symbol file="tree">xmlIsXHTML</symbol>
+ <symbol file="tree">xmlNewCDataBlock</symbol>
+ <symbol file="tree">xmlNewCharRef</symbol>
+ <symbol file="tree">xmlNewChild</symbol>
+ <symbol file="tree">xmlNewComment</symbol>
+ <symbol file="tree">xmlNewDoc</symbol>
+ <symbol file="tree">xmlNewDocComment</symbol>
+ <symbol file="tree">xmlNewDocFragment</symbol>
+ <symbol file="tree">xmlNewDocNode</symbol>
+ <symbol file="tree">xmlNewDocNodeEatName</symbol>
+ <symbol file="tree">xmlNewDocProp</symbol>
+ <symbol file="tree">xmlNewDocRawNode</symbol>
+ <symbol file="tree">xmlNewDocText</symbol>
+ <symbol file="tree">xmlNewDocTextLen</symbol>
+ <symbol file="tree">xmlNewDtd</symbol>
+ <symbol file="tree">xmlNewGlobalNs</symbol>
+ <symbol file="tree">xmlNewNode</symbol>
+ <symbol file="tree">xmlNewNodeEatName</symbol>
+ <symbol file="tree">xmlNewNs</symbol>
+ <symbol file="tree">xmlNewNsProp</symbol>
+ <symbol file="tree">xmlNewNsPropEatName</symbol>
+ <symbol file="tree">xmlNewPI</symbol>
+ <symbol file="tree">xmlNewProp</symbol>
+ <symbol file="tree">xmlNewReference</symbol>
+ <symbol file="tree">xmlNewText</symbol>
+ <symbol file="tree">xmlNewTextChild</symbol>
+ <symbol file="tree">xmlNewTextLen</symbol>
+ <symbol file="tree">xmlNodeAddContent</symbol>
+ <symbol file="tree">xmlNodeAddContentLen</symbol>
+ <symbol file="tree">xmlNodeDump</symbol>
+ <symbol file="tree">xmlNodeDumpOutput</symbol>
+ <symbol file="tree">xmlNodeGetBase</symbol>
+ <symbol file="tree">xmlNodeGetContent</symbol>
+ <symbol file="tree">xmlNodeGetLang</symbol>
+ <symbol file="tree">xmlNodeGetSpacePreserve</symbol>
+ <symbol file="tree">xmlNodeIsText</symbol>
+ <symbol file="tree">xmlNodeListGetRawString</symbol>
+ <symbol file="tree">xmlNodeListGetString</symbol>
+ <symbol file="tree">xmlNodeSetBase</symbol>
+ <symbol file="tree">xmlNodeSetContent</symbol>
+ <symbol file="tree">xmlNodeSetContentLen</symbol>
+ <symbol file="tree">xmlNodeSetLang</symbol>
+ <symbol file="tree">xmlNodeSetName</symbol>
+ <symbol file="tree">xmlNodeSetSpacePreserve</symbol>
+ <symbol file="tree">xmlReconciliateNs</symbol>
+ <symbol file="tree">xmlRemoveProp</symbol>
+ <symbol file="tree">xmlReplaceNode</symbol>
+ <symbol file="tree">xmlSaveFile</symbol>
+ <symbol file="tree">xmlSaveFileEnc</symbol>
+ <symbol file="tree">xmlSaveFileTo</symbol>
+ <symbol file="tree">xmlSaveFormatFile</symbol>
+ <symbol file="tree">xmlSaveFormatFileEnc</symbol>
+ <symbol file="tree">xmlSaveFormatFileTo</symbol>
+ <symbol file="tree">xmlSearchNs</symbol>
+ <symbol file="tree">xmlSearchNsByHref</symbol>
+ <symbol file="tree">xmlSetBufferAllocationScheme</symbol>
+ <symbol file="tree">xmlSetCompressMode</symbol>
+ <symbol file="tree">xmlSetDocCompressMode</symbol>
+ <symbol file="tree">xmlSetListDoc</symbol>
+ <symbol file="tree">xmlSetNs</symbol>
+ <symbol file="tree">xmlSetNsProp</symbol>
+ <symbol file="tree">xmlSetProp</symbol>
+ <symbol file="tree">xmlSetTreeDoc</symbol>
+ <symbol file="tree">xmlStringGetNodeList</symbol>
+ <symbol file="tree">xmlStringLenGetNodeList</symbol>
+ <symbol file="tree">xmlTextConcat</symbol>
+ <symbol file="tree">xmlTextMerge</symbol>
+ <symbol file="tree">xmlUnlinkNode</symbol>
+ <symbol file="tree">xmlUnsetNsProp</symbol>
+ <symbol file="tree">xmlUnsetProp</symbol>
+ <symbol file="xmlregexp">xmlRegExecPushString</symbol>
+ <symbol file="xmlregexp">xmlRegFreeExecCtxt</symbol>
+ <symbol file="xmlregexp">xmlRegFreeRegexp</symbol>
+ <symbol file="xmlregexp">xmlRegNewExecCtxt</symbol>
+ <symbol file="xmlregexp">xmlRegexpCompile</symbol>
+ <symbol file="xmlregexp">xmlRegexpExec</symbol>
+ <symbol file="xmlregexp">xmlRegexpIsDeterminist</symbol>
+ <symbol file="xmlregexp">xmlRegexpPrint</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPAuthHeader</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPCleanup</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPClose</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPFetch</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPInit</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPMethod</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPMethodRedir</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPOpen</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPOpenRedir</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPRead</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPReturnCode</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPSave</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPScanProxy</symbol>
+ <symbol file="xmlunicode">xmlUCSIsAlphabeticPresentationForms</symbol>
+ <symbol file="xmlunicode">xmlUCSIsArabic</symbol>
+ <symbol file="xmlunicode">xmlUCSIsArabicPresentationFormsA</symbol>
+ <symbol file="xmlunicode">xmlUCSIsArabicPresentationFormsB</symbol>
+ <symbol file="xmlunicode">xmlUCSIsArmenian</symbol>
+ <symbol file="xmlunicode">xmlUCSIsArrows</symbol>
+ <symbol file="xmlunicode">xmlUCSIsBasicLatin</symbol>
+ <symbol file="xmlunicode">xmlUCSIsBengali</symbol>
+ <symbol file="xmlunicode">xmlUCSIsBlock</symbol>
+ <symbol file="xmlunicode">xmlUCSIsBlockElements</symbol>
+ <symbol file="xmlunicode">xmlUCSIsBopomofo</symbol>
+ <symbol file="xmlunicode">xmlUCSIsBopomofoExtended</symbol>
+ <symbol file="xmlunicode">xmlUCSIsBoxDrawing</symbol>
+ <symbol file="xmlunicode">xmlUCSIsBraillePatterns</symbol>
+ <symbol file="xmlunicode">xmlUCSIsByzantineMusicalSymbols</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCJKCompatibility</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCJKCompatibilityForms</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCJKCompatibilityIdeographs</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCJKCompatibilityIdeographsSupplement</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCJKRadicalsSupplement</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCJKSymbolsandPunctuation</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCJKUnifiedIdeographs</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCJKUnifiedIdeographsExtensionA</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCJKUnifiedIdeographsExtensionB</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCat</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatC</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatCc</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatCf</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatCo</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatCs</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatL</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatLl</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatLm</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatLo</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatLt</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatLu</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatM</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatMc</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatMe</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatMn</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatN</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatNd</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatNl</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatNo</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatP</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatPc</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatPd</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatPe</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatPf</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatPi</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatPo</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatPs</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatS</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatSc</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatSk</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatSm</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatSo</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatZ</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatZl</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatZp</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCatZs</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCherokee</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCombiningDiacriticalMarks</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCombiningHalfMarks</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCombiningMarksforSymbols</symbol>
+ <symbol file="xmlunicode">xmlUCSIsControlPictures</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCurrencySymbols</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCyrillic</symbol>
+ <symbol file="xmlunicode">xmlUCSIsDeseret</symbol>
+ <symbol file="xmlunicode">xmlUCSIsDevanagari</symbol>
+ <symbol file="xmlunicode">xmlUCSIsDingbats</symbol>
+ <symbol file="xmlunicode">xmlUCSIsEnclosedAlphanumerics</symbol>
+ <symbol file="xmlunicode">xmlUCSIsEnclosedCJKLettersandMonths</symbol>
+ <symbol file="xmlunicode">xmlUCSIsEthiopic</symbol>
+ <symbol file="xmlunicode">xmlUCSIsGeneralPunctuation</symbol>
+ <symbol file="xmlunicode">xmlUCSIsGeometricShapes</symbol>
+ <symbol file="xmlunicode">xmlUCSIsGeorgian</symbol>
+ <symbol file="xmlunicode">xmlUCSIsGothic</symbol>
+ <symbol file="xmlunicode">xmlUCSIsGreek</symbol>
+ <symbol file="xmlunicode">xmlUCSIsGreekExtended</symbol>
+ <symbol file="xmlunicode">xmlUCSIsGujarati</symbol>
+ <symbol file="xmlunicode">xmlUCSIsGurmukhi</symbol>
+ <symbol file="xmlunicode">xmlUCSIsHalfwidthandFullwidthForms</symbol>
+ <symbol file="xmlunicode">xmlUCSIsHangulCompatibilityJamo</symbol>
+ <symbol file="xmlunicode">xmlUCSIsHangulJamo</symbol>
+ <symbol file="xmlunicode">xmlUCSIsHangulSyllables</symbol>
+ <symbol file="xmlunicode">xmlUCSIsHebrew</symbol>
+ <symbol file="xmlunicode">xmlUCSIsHighPrivateUseSurrogates</symbol>
+ <symbol file="xmlunicode">xmlUCSIsHighSurrogates</symbol>
+ <symbol file="xmlunicode">xmlUCSIsHiragana</symbol>
+ <symbol file="xmlunicode">xmlUCSIsIPAExtensions</symbol>
+ <symbol file="xmlunicode">xmlUCSIsIdeographicDescriptionCharacters</symbol>
+ <symbol file="xmlunicode">xmlUCSIsKanbun</symbol>
+ <symbol file="xmlunicode">xmlUCSIsKangxiRadicals</symbol>
+ <symbol file="xmlunicode">xmlUCSIsKannada</symbol>
+ <symbol file="xmlunicode">xmlUCSIsKatakana</symbol>
+ <symbol file="xmlunicode">xmlUCSIsKhmer</symbol>
+ <symbol file="xmlunicode">xmlUCSIsLao</symbol>
+ <symbol file="xmlunicode">xmlUCSIsLatin1Supplement</symbol>
+ <symbol file="xmlunicode">xmlUCSIsLatinExtendedA</symbol>
+ <symbol file="xmlunicode">xmlUCSIsLatinExtendedAdditional</symbol>
+ <symbol file="xmlunicode">xmlUCSIsLatinExtendedB</symbol>
+ <symbol file="xmlunicode">xmlUCSIsLetterlikeSymbols</symbol>
+ <symbol file="xmlunicode">xmlUCSIsLowSurrogates</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMalayalam</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMathematicalAlphanumericSymbols</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMathematicalOperators</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMiscellaneousSymbols</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMiscellaneousTechnical</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMongolian</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMusicalSymbols</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMyanmar</symbol>
+ <symbol file="xmlunicode">xmlUCSIsNumberForms</symbol>
+ <symbol file="xmlunicode">xmlUCSIsOgham</symbol>
+ <symbol file="xmlunicode">xmlUCSIsOldItalic</symbol>
+ <symbol file="xmlunicode">xmlUCSIsOpticalCharacterRecognition</symbol>
+ <symbol file="xmlunicode">xmlUCSIsOriya</symbol>
+ <symbol file="xmlunicode">xmlUCSIsPrivateUse</symbol>
+ <symbol file="xmlunicode">xmlUCSIsRunic</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSinhala</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSmallFormVariants</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSpacingModifierLetters</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSpecials</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSuperscriptsandSubscripts</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSyriac</symbol>
+ <symbol file="xmlunicode">xmlUCSIsTags</symbol>
+ <symbol file="xmlunicode">xmlUCSIsTamil</symbol>
+ <symbol file="xmlunicode">xmlUCSIsTelugu</symbol>
+ <symbol file="xmlunicode">xmlUCSIsThaana</symbol>
+ <symbol file="xmlunicode">xmlUCSIsThai</symbol>
+ <symbol file="xmlunicode">xmlUCSIsTibetan</symbol>
+ <symbol file="xmlunicode">xmlUCSIsUnifiedCanadianAboriginalSyllabics</symbol>
+ <symbol file="xmlunicode">xmlUCSIsYiRadicals</symbol>
+ <symbol file="xmlunicode">xmlUCSIsYiSyllables</symbol>
+ <symbol file="uri">xmlBuildURI</symbol>
+ <symbol file="uri">xmlCreateURI</symbol>
+ <symbol file="uri">xmlFreeURI</symbol>
+ <symbol file="uri">xmlNormalizeURIPath</symbol>
+ <symbol file="uri">xmlParseURI</symbol>
+ <symbol file="uri">xmlParseURIReference</symbol>
+ <symbol file="uri">xmlPrintURI</symbol>
+ <symbol file="uri">xmlSaveUri</symbol>
+ <symbol file="uri">xmlURIEscape</symbol>
+ <symbol file="uri">xmlURIEscapeStr</symbol>
+ <symbol file="uri">xmlURIUnescapeString</symbol>
+ <symbol file="encoding">UTF8Toisolat1</symbol>
+ <symbol file="encoding">isolat1ToUTF8</symbol>
+ <symbol file="encoding">xmlAddEncodingAlias</symbol>
+ <symbol file="encoding">xmlCharEncCloseFunc</symbol>
+ <symbol file="encoding">xmlCharEncFirstLine</symbol>
+ <symbol file="encoding">xmlCharEncInFunc</symbol>
+ <symbol file="encoding">xmlCharEncOutFunc</symbol>
+ <symbol file="xmlstring">xmlCheckUTF8</symbol>
+ <symbol file="encoding">xmlCleanupCharEncodingHandlers</symbol>
+ <symbol file="encoding">xmlCleanupEncodingAliases</symbol>
+ <symbol file="encoding">xmlDelEncodingAlias</symbol>
+ <symbol file="encoding">xmlDetectCharEncoding</symbol>
+ <symbol file="encoding">xmlFindCharEncodingHandler</symbol>
+ <symbol file="encoding">xmlGetCharEncodingHandler</symbol>
+ <symbol file="encoding">xmlGetCharEncodingName</symbol>
+ <symbol file="encoding">xmlGetEncodingAlias</symbol>
+ <symbol file="xmlstring">xmlGetUTF8Char</symbol>
+ <symbol file="encoding">xmlInitCharEncodingHandlers</symbol>
+ <symbol file="encoding">xmlNewCharEncodingHandler</symbol>
+ <symbol file="encoding">xmlParseCharEncoding</symbol>
+ <symbol file="encoding">xmlRegisterCharEncodingHandler</symbol>
+ <symbol file="xmlstring">xmlUTF8Strlen</symbol>
+ <symbol file="xmlstring">xmlUTF8Strloc</symbol>
+ <symbol file="xmlstring">xmlUTF8Strndup</symbol>
+ <symbol file="xmlstring">xmlUTF8Strpos</symbol>
+ <symbol file="xmlstring">xmlUTF8Strsize</symbol>
+ <symbol file="xmlstring">xmlUTF8Strsub</symbol>
+ </release>
+ <release version="2.5.0">
+ <symbol file="globals">xmlDeregisterNodeDefault</symbol>
+ <symbol file="globals">xmlDeregisterNodeDefaultValue</symbol>
+ <symbol file="globals">xmlRegisterNodeDefault</symbol>
+ <symbol file="globals">xmlRegisterNodeDefaultValue</symbol>
+ <symbol file="xmlreader">xmlTextReaderClose</symbol>
+ <symbol file="xmlreader">xmlTextReaderCurrentDoc</symbol>
+ <symbol file="xmlreader">xmlTextReaderCurrentNode</symbol>
+ <symbol file="xmlreader">xmlTextReaderGetAttributeNo</symbol>
+ <symbol file="xmlreader">xmlTextReaderGetAttributeNs</symbol>
+ <symbol file="xmlreader">xmlTextReaderGetAttribute</symbol>
+ <symbol file="xmlreader">xmlTextReaderGetParserProp</symbol>
+ <symbol file="xmlreader">xmlTextReaderGetRemainder</symbol>
+ <symbol file="xmlreader">xmlTextReaderLookupNamespace</symbol>
+ <symbol file="xmlreader">xmlTextReaderMoveToAttributeNo</symbol>
+ <symbol file="xmlreader">xmlTextReaderMoveToAttributeNs</symbol>
+ <symbol file="xmlreader">xmlTextReaderMoveToAttribute</symbol>
+ <symbol file="xmlreader">xmlTextReaderMoveToElement</symbol>
+ <symbol file="xmlreader">xmlTextReaderMoveToFirstAttribute</symbol>
+ <symbol file="xmlreader">xmlTextReaderMoveToNextAttribute</symbol>
+ <symbol file="xmlreader">xmlTextReaderNormalization</symbol>
+ <symbol file="xmlreader">xmlTextReaderReadAttributeValue</symbol>
+ <symbol file="xmlreader">xmlTextReaderReadInnerXml</symbol>
+ <symbol file="xmlreader">xmlTextReaderReadOuterXml</symbol>
+ <symbol file="xmlreader">xmlTextReaderReadState</symbol>
+ <symbol file="xmlreader">xmlTextReaderReadString</symbol>
+ <symbol file="xmlreader">xmlTextReaderSetParserProp</symbol>
+ <symbol file="valid">xmlValidatePopElement</symbol>
+ <symbol file="valid">xmlValidatePushCData</symbol>
+ <symbol file="valid">xmlValidatePushElement</symbol>
+ </release>
+ <release version="2.5.2">
+ <symbol file="tree">xmlGetNoNsProp</symbol>
+ <symbol file="HTMLparser">htmlAttrAllowed</symbol>
+ <symbol file="HTMLparser">htmlElementAllowedHere</symbol>
+ <symbol file="HTMLparser">htmlElementStatusHere</symbol>
+ <symbol file="HTMLparser">htmlNodeStatus</symbol>
+ <symbol file="relaxng">xmlRelaxNGCleanupTypes</symbol>
+ <symbol file="relaxng">xmlRelaxNGDump</symbol>
+ <symbol file="relaxng">xmlRelaxNGFreeParserCtxt</symbol>
+ <symbol file="relaxng">xmlRelaxNGFree</symbol>
+ <symbol file="relaxng">xmlRelaxNGFreeValidCtxt</symbol>
+ <symbol file="relaxng">xmlRelaxNGNewMemParserCtxt</symbol>
+ <symbol file="relaxng">xmlRelaxNGNewParserCtxt</symbol>
+ <symbol file="relaxng">xmlRelaxNGNewValidCtxt</symbol>
+ <symbol file="relaxng">xmlRelaxNGParse</symbol>
+ <symbol file="relaxng">xmlRelaxNGSetParserErrors</symbol>
+ <symbol file="relaxng">xmlRelaxNGSetValidErrors</symbol>
+ <symbol file="relaxng">xmlRelaxNGValidateDoc</symbol>
+ <symbol file="xmlreader">xmlTextReaderGetErrorHandler</symbol>
+ <symbol file="xmlreader">xmlTextReaderLocatorBaseURI</symbol>
+ <symbol file="xmlreader">xmlTextReaderLocatorLineNumber</symbol>
+ <symbol file="xmlreader">xmlTextReaderSetErrorHandler</symbol>
+ <symbol removed="2.5.5" file="relaxng">xmlRelaxNGValidateStream</symbol>
+ </release>
+ <release version="2.5.4">
+ <symbol file="uri">xmlCanonicPath</symbol>
+ <symbol file="relaxng">xmlRelaxNGDumpTree</symbol>
+ <symbol file="tree">xmlValidateName</symbol>
+ <symbol file="tree">xmlValidateNCName</symbol>
+ <symbol file="tree">xmlValidateNMToken</symbol>
+ <symbol file="tree">xmlValidateQName</symbol>
+ </release>
+ <release version="2.5.5">
+ <symbol file="nanoftp">xmlNanoFTPDele</symbol>
+ </release>
+ <release version="2.5.6">
+ <symbol file="xpath">xmlXPathOrderDocElems</symbol>
+ </release>
+ <release version="2.5.7">
+ <symbol file="HTMLparser">htmlCreateMemoryParserCtxt</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewTransition2</symbol>
+ <symbol file="tree">xmlBuildQName</symbol>
+ <symbol file="xmlmemory">xmlGcMemGet</symbol>
+ <symbol file="xmlmemory">xmlGcMemSetup</symbol>
+ <symbol file="globals">xmlMallocAtomic</symbol>
+ <symbol file="xmlregexp">xmlRegExecPushString2</symbol>
+ <symbol file="relaxng">xmlRelaxNGNewDocParserCtxt</symbol>
+ <symbol file="relaxng">xmlRelaxNGValidateFullElement</symbol>
+ <symbol file="relaxng">xmlRelaxNGValidatePopElement</symbol>
+ <symbol file="relaxng">xmlRelaxNGValidatePushCData</symbol>
+ <symbol file="relaxng">xmlRelaxNGValidatePushElement</symbol>
+ <symbol file="xmlreader">xmlTextReaderExpand</symbol>
+ <symbol file="xmlreader">xmlTextReaderIsValid</symbol>
+ <symbol file="xmlreader">xmlTextReaderNext</symbol>
+ <symbol file="xmlreader">xmlTextReaderRelaxNGSetSchema</symbol>
+ <symbol file="xmlreader">xmlTextReaderRelaxNGValidate</symbol>
+ </release>
+ <release version="2.5.8">
+ <symbol file="globals">xmlCleanupGlobals</symbol>
+ <symbol file="globals">xmlInitGlobals</symbol>
+ <symbol file="valid">xmlFreeValidCtxt</symbol>
+ <symbol file="valid">xmlNewValidCtxt</symbol>
+ <symbol file="schemasInternals">xmlSchemaFreeType</symbol>
+ <symbol file="xmlschemas">xmlSchemaDump</symbol>
+ <symbol file="xmlschemas">xmlSchemaFreeParserCtxt</symbol>
+ <symbol file="xmlschemas">xmlSchemaFreeValidCtxt</symbol>
+ <symbol file="xmlschemas">xmlSchemaFree</symbol>
+ <symbol file="xmlschemas">xmlSchemaNewMemParserCtxt</symbol>
+ <symbol file="xmlschemas">xmlSchemaNewParserCtxt</symbol>
+ <symbol file="xmlschemas">xmlSchemaNewValidCtxt</symbol>
+ <symbol file="xmlschemas">xmlSchemaParse</symbol>
+ <symbol file="xmlschemas">xmlSchemaSetParserErrors</symbol>
+ <symbol file="xmlschemas">xmlSchemaSetValidErrors</symbol>
+ <symbol file="xmlschemas">xmlSchemaValidateDoc</symbol>
+ <symbol file="xmlschemas">xmlSchemaValidateStream</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaCheckFacet</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaCleanupTypes</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaCompareValues</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaFreeFacet</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaFreeValue</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaGetPredefinedType</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaInitTypes</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaNewFacet</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValidateFacet</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValidatePredefinedType</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValPredefTypeNode</symbol>
+ <symbol file="globals">xmlThrDefBufferAllocScheme</symbol>
+ <symbol file="globals">xmlThrDefDefaultBufferSize</symbol>
+ <symbol file="globals">xmlThrDefDeregisterNodeDefault</symbol>
+ <symbol file="globals">xmlThrDefDoValidityCheckingDefaultValue</symbol>
+ <symbol file="globals">xmlThrDefGetWarningsDefaultValue</symbol>
+ <symbol file="globals">xmlThrDefIndentTreeOutput</symbol>
+ <symbol file="globals">xmlThrDefKeepBlanksDefaultValue</symbol>
+ <symbol file="globals">xmlThrDefLineNumbersDefaultValue</symbol>
+ <symbol file="globals">xmlThrDefLoadExtDtdDefaultValue</symbol>
+ <symbol file="globals">xmlThrDefParserDebugEntities</symbol>
+ <symbol file="globals">xmlThrDefPedanticParserDefaultValue</symbol>
+ <symbol file="globals">xmlThrDefRegisterNodeDefault</symbol>
+ <symbol file="globals">xmlThrDefSaveNoEmptyTags</symbol>
+ <symbol file="globals">xmlThrDefSetGenericErrorFunc</symbol>
+ <symbol file="globals">xmlThrDefSubstituteEntitiesDefaultValue</symbol>
+ <symbol file="globals">xmlThrDefTreeIndentString</symbol>
+ </release>
+ <release version="2.5.9">
+ <symbol file="xmlmemory">xmlMallocAtomicLoc</symbol>
+ <symbol file="relaxng">xmlRelaxNGGetParserErrors</symbol>
+ <symbol file="relaxng">xmlRelaxNGGetValidErrors</symbol>
+ <symbol file="tree">xmlSplitQName3</symbol>
+ <symbol file="xmlstring">xmlUTF8Charcmp</symbol>
+ <symbol file="xmlstring">xmlUTF8Size</symbol>
+ <symbol file="xinclude">xmlXIncludeProcessTree</symbol>
+ </release>
+ <release version="2.6.0">
+ <symbol file="SAX2">xmlSAX2AttributeDecl</symbol>
+ <symbol file="SAX2">xmlSAX2CDataBlock</symbol>
+ <symbol file="SAX2">xmlSAX2Characters</symbol>
+ <symbol file="SAX2">xmlSAX2Comment</symbol>
+ <symbol file="SAX2">xmlSAX2ElementDecl</symbol>
+ <symbol file="SAX2">xmlSAX2EndDocument</symbol>
+ <symbol file="SAX2">xmlSAX2EndElementNs</symbol>
+ <symbol file="SAX2">xmlSAX2EndElement</symbol>
+ <symbol file="SAX2">xmlSAX2EntityDecl</symbol>
+ <symbol file="SAX2">xmlSAX2ExternalSubset</symbol>
+ <symbol file="SAX2">xmlSAX2GetColumnNumber</symbol>
+ <symbol file="SAX2">xmlSAX2GetEntity</symbol>
+ <symbol file="SAX2">xmlSAX2GetLineNumber</symbol>
+ <symbol file="SAX2">xmlSAX2GetParameterEntity</symbol>
+ <symbol file="SAX2">xmlSAX2GetPublicId</symbol>
+ <symbol file="SAX2">xmlSAX2GetSystemId</symbol>
+ <symbol file="SAX2">xmlSAX2HasExternalSubset</symbol>
+ <symbol file="SAX2">xmlSAX2HasInternalSubset</symbol>
+ <symbol file="SAX2">xmlSAX2IgnorableWhitespace</symbol>
+ <symbol file="SAX2">xmlSAX2InitDefaultSAXHandler</symbol>
+ <symbol file="SAX2">xmlSAX2InitDocbDefaultSAXHandler</symbol>
+ <symbol file="SAX2">xmlSAX2InitHtmlDefaultSAXHandler</symbol>
+ <symbol file="SAX2">xmlSAX2InternalSubset</symbol>
+ <symbol file="SAX2">xmlSAX2IsStandalone</symbol>
+ <symbol file="SAX2">xmlSAX2NotationDecl</symbol>
+ <symbol file="SAX2">xmlSAX2ProcessingInstruction</symbol>
+ <symbol file="SAX2">xmlSAX2Reference</symbol>
+ <symbol file="SAX2">xmlSAX2ResolveEntity</symbol>
+ <symbol file="SAX2">xmlSAX2SetDocumentLocator</symbol>
+ <symbol file="SAX2">xmlSAX2StartDocument</symbol>
+ <symbol file="SAX2">xmlSAX2StartElementNs</symbol>
+ <symbol file="SAX2">xmlSAX2StartElement</symbol>
+ <symbol file="SAX2">xmlSAX2UnparsedEntityDecl</symbol>
+ <symbol file="SAX2">xmlSAXDefaultVersion</symbol>
+ <symbol file="SAX2">xmlSAXVersion</symbol>
+ <symbol file="HTMLparser">htmlCtxtReadDoc</symbol>
+ <symbol file="HTMLparser">htmlCtxtReadFd</symbol>
+ <symbol file="HTMLparser">htmlCtxtReadFile</symbol>
+ <symbol file="HTMLparser">htmlCtxtReadIO</symbol>
+ <symbol file="HTMLparser">htmlCtxtReadMemory</symbol>
+ <symbol file="HTMLparser">htmlCtxtReset</symbol>
+ <symbol file="HTMLparser">htmlCtxtUseOptions</symbol>
+ <symbol file="HTMLparser">htmlReadDoc</symbol>
+ <symbol file="HTMLparser">htmlReadFd</symbol>
+ <symbol file="HTMLparser">htmlReadFile</symbol>
+ <symbol file="HTMLparser">htmlReadIO</symbol>
+ <symbol file="HTMLparser">htmlReadMemory</symbol>
+ <symbol file="tree">xmlBufferCreateStatic</symbol>
+ <symbol file="chvalid">xmlCharInRange</symbol>
+ <symbol file="xmlIO">xmlCheckHTTPInput</symbol>
+ <symbol file="xmlerror">xmlCopyError</symbol>
+ <symbol file="xmlerror">xmlCtxtGetLastError</symbol>
+ <symbol file="xmlerror">xmlGetLastError</symbol>
+ <symbol file="xmlerror">xmlResetError</symbol>
+ <symbol file="xmlerror">xmlResetLastError</symbol>
+ <symbol file="xmlerror">xmlSetStructuredErrorFunc</symbol>
+ <symbol file="parser">xmlCtxtReadDoc</symbol>
+ <symbol file="parser">xmlCtxtReadFd</symbol>
+ <symbol file="parser">xmlCtxtReadFile</symbol>
+ <symbol file="parser">xmlCtxtReadIO</symbol>
+ <symbol file="parser">xmlCtxtReadMemory</symbol>
+ <symbol file="xmlerror">xmlCtxtResetLastError</symbol>
+ <symbol file="parser">xmlCtxtReset</symbol>
+ <symbol file="parser">xmlCtxtUseOptions</symbol>
+ <symbol file="parser">xmlReadDoc</symbol>
+ <symbol file="parser">xmlReadFd</symbol>
+ <symbol file="parser">xmlReadFile</symbol>
+ <symbol file="parser">xmlReadIO</symbol>
+ <symbol file="parser">xmlReadMemory</symbol>
+ <symbol file="xmlstring">xmlStrPrintf</symbol>
+ <symbol file="xmlstring">xmlStrQEqual</symbol>
+ <symbol file="dict">xmlDictCreate</symbol>
+ <symbol file="dict">xmlDictFree</symbol>
+ <symbol file="dict">xmlDictLookup</symbol>
+ <symbol file="dict">xmlDictOwns</symbol>
+ <symbol file="dict">xmlDictQLookup</symbol>
+ <symbol file="dict">xmlDictReference</symbol>
+ <symbol file="dict">xmlDictSize</symbol>
+ <symbol file="parserInternals">xmlErrMemory</symbol>
+ <symbol file="parserInternals">xmlParserMaxDepth</symbol>
+ <symbol file="parserInternals">xmlStringLenDecodeEntities</symbol>
+ <symbol file="parserInternals">xmlSwitchInputEncoding</symbol>
+ <symbol file="xmlwriter">xmlFreeTextWriter</symbol>
+ <symbol file="xmlwriter">xmlNewTextWriterFilename</symbol>
+ <symbol file="xmlwriter">xmlNewTextWriterMemory</symbol>
+ <symbol file="xmlwriter">xmlNewTextWriter</symbol>
+ <symbol file="xmlwriter">xmlTextWriterEndAttribute</symbol>
+ <symbol file="xmlwriter">xmlTextWriterEndCDATA</symbol>
+ <symbol file="xmlwriter">xmlTextWriterEndDocument</symbol>
+ <symbol file="xmlwriter">xmlTextWriterEndDTD</symbol>
+ <symbol file="xmlwriter">xmlTextWriterEndElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterEndPI</symbol>
+ <symbol file="xmlwriter">xmlTextWriterFlush</symbol>
+ <symbol file="xmlwriter">xmlTextWriterFullEndElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartAttributeNS</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartAttribute</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartCDATA</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartDocument</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartDTDAttlist</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartDTDElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartDTDEntity</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartDTD</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartElementNS</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartPI</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteAttributeNS</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteAttribute</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteBase64</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteBinHex</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteCDATA</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteComment</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteDTDAttlist</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteDTDElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteDTDEntity</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteDTDExternalEntity</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteDTDInternalEntity</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteDTDNotation</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteDTD</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteElementNS</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatAttributeNS</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatAttribute</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatCDATA</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatComment</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatDTDAttlist</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatDTDElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatDTDInternalEntity</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatDTD</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatElementNS</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatPI</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatRaw</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteFormatString</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWritePI</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteRawLen</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteRaw</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteString</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatAttributeNS</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatAttribute</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatCDATA</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatComment</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatDTDAttlist</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatDTDElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatDTDInternalEntity</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatDTD</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatElementNS</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatPI</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatRaw</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteVFormatString</symbol>
+ <symbol file="hash">xmlHashQLookup2</symbol>
+ <symbol file="hash">xmlHashQLookup3</symbol>
+ <symbol file="hash">xmlHashQLookup</symbol>
+ <symbol file="chvalid">xmlIsBaseCharGroup</symbol>
+ <symbol file="chvalid">xmlIsCharGroup</symbol>
+ <symbol file="chvalid">xmlIsCombiningGroup</symbol>
+ <symbol file="chvalid">xmlIsDigitGroup</symbol>
+ <symbol file="chvalid">xmlIsExtenderGroup</symbol>
+ <symbol file="chvalid">xmlIsIdeographicGroup</symbol>
+ <symbol file="chvalid">xmlIsPubidChar_tab</symbol>
+ <symbol file="globals">xmlLastError</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPEncoding</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPMimeType</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPRedir</symbol>
+ <symbol file="tree">xmlNodeBufGetContent</symbol>
+ <symbol file="xmlIO">xmlParserInputBufferCreateStatic</symbol>
+ <symbol file="xmlreader">xmlReaderForDoc</symbol>
+ <symbol file="xmlreader">xmlReaderForFd</symbol>
+ <symbol file="xmlreader">xmlReaderForFile</symbol>
+ <symbol file="xmlreader">xmlReaderForIO</symbol>
+ <symbol file="xmlreader">xmlReaderForMemory</symbol>
+ <symbol file="xmlreader">xmlReaderNewDoc</symbol>
+ <symbol file="xmlreader">xmlReaderNewFd</symbol>
+ <symbol file="xmlreader">xmlReaderNewFile</symbol>
+ <symbol file="xmlreader">xmlReaderNewIO</symbol>
+ <symbol file="xmlreader">xmlReaderNewMemory</symbol>
+ <symbol file="xmlreader">xmlReaderNewWalker</symbol>
+ <symbol file="xmlreader">xmlReaderWalker</symbol>
+ <symbol file="xmlreader">xmlTextReaderConstBaseUri</symbol>
+ <symbol file="xmlreader">xmlTextReaderConstLocalName</symbol>
+ <symbol file="xmlreader">xmlTextReaderConstNamespaceUri</symbol>
+ <symbol file="xmlreader">xmlTextReaderConstName</symbol>
+ <symbol file="xmlreader">xmlTextReaderConstPrefix</symbol>
+ <symbol file="xmlreader">xmlTextReaderConstString</symbol>
+ <symbol file="xmlreader">xmlTextReaderConstValue</symbol>
+ <symbol file="xmlreader">xmlTextReaderConstXmlLang</symbol>
+ <symbol file="xmlreader">xmlTextReaderNextSibling</symbol>
+ <symbol file="xmlreader">xmlTextReaderPreserve</symbol>
+ <symbol file="globals">xmlStructuredError</symbol>
+ <symbol file="globals">xmlThrDefSetStructuredErrorFunc</symbol>
+ <symbol file="xpathInternals">xmlXPathErr</symbol>
+ <symbol removed="2.6.10" file="SAX2">xmlSAX2CheckNamespace</symbol>
+ <symbol removed="2.6.10" file="SAX2">xmlSAX2GetNamespace</symbol>
+ <symbol removed="2.6.10" file="SAX2">xmlSAX2GlobalNamespace</symbol>
+ <symbol removed="2.6.10" file="SAX2">xmlSAX2NamespaceDecl</symbol>
+ <symbol removed="2.6.10" file="SAX2">xmlSAX2SetNamespace</symbol>
+ </release>
+ <release version="2.6.1">
+ <symbol file="parser">xmlCtxtResetPush</symbol>
+ </release>
+ <release version="2.6.2">
+ <symbol file="parserInternals">xmlCreateURLParserCtxt</symbol>
+ <symbol file="xmlschemas">xmlSchemaNewDocParserCtxt</symbol>
+ <symbol file="xmlstring">xmlStrVPrintf</symbol>
+ <symbol file="xinclude">xmlXIncludeFreeContext</symbol>
+ <symbol file="xinclude">xmlXIncludeNewContext</symbol>
+ <symbol file="xinclude">xmlXIncludeProcessNode</symbol>
+ </release>
+ <release version="2.6.3">
+ <symbol file="pattern">xmlFreePatternList</symbol>
+ <symbol file="pattern">xmlFreePattern</symbol>
+ <symbol file="pattern">xmlPatterncompile</symbol>
+ <symbol file="pattern">xmlPatternMatch</symbol>
+ <symbol file="xmlwriter">xmlNewTextWriterDoc</symbol>
+ <symbol file="xmlwriter">xmlNewTextWriterPushParser</symbol>
+ <symbol file="xmlwriter">xmlNewTextWriterTree</symbol>
+ <symbol file="xmlreader">xmlTextReaderPreservePattern</symbol>
+ <symbol file="xmlunicode">xmlUCSIsAegeanNumbers</symbol>
+ <symbol file="xmlunicode">xmlUCSIsBuhid</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCombiningDiacriticalMarksforSymbols</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCypriotSyllabary</symbol>
+ <symbol file="xmlunicode">xmlUCSIsCyrillicSupplement</symbol>
+ <symbol file="xmlunicode">xmlUCSIsGreekandCoptic</symbol>
+ <symbol file="xmlunicode">xmlUCSIsHanunoo</symbol>
+ <symbol file="xmlunicode">xmlUCSIsKatakanaPhoneticExtensions</symbol>
+ <symbol file="xmlunicode">xmlUCSIsKhmerSymbols</symbol>
+ <symbol file="xmlunicode">xmlUCSIsLimbu</symbol>
+ <symbol file="xmlunicode">xmlUCSIsLinearBIdeograms</symbol>
+ <symbol file="xmlunicode">xmlUCSIsLinearBSyllabary</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMiscellaneousMathematicalSymbolsA</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMiscellaneousMathematicalSymbolsB</symbol>
+ <symbol file="xmlunicode">xmlUCSIsMiscellaneousSymbolsandArrows</symbol>
+ <symbol file="xmlunicode">xmlUCSIsOsmanya</symbol>
+ <symbol file="xmlunicode">xmlUCSIsPhoneticExtensions</symbol>
+ <symbol file="xmlunicode">xmlUCSIsPrivateUseArea</symbol>
+ <symbol file="xmlunicode">xmlUCSIsShavian</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSupplementalArrowsA</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSupplementalArrowsB</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSupplementalMathematicalOperators</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSupplementaryPrivateUseAreaA</symbol>
+ <symbol file="xmlunicode">xmlUCSIsSupplementaryPrivateUseAreaB</symbol>
+ <symbol file="xmlunicode">xmlUCSIsTagalog</symbol>
+ <symbol file="xmlunicode">xmlUCSIsTagbanwa</symbol>
+ <symbol file="xmlunicode">xmlUCSIsTaiLe</symbol>
+ <symbol file="xmlunicode">xmlUCSIsTaiXuanJingSymbols</symbol>
+ <symbol file="xmlunicode">xmlUCSIsUgaritic</symbol>
+ <symbol file="xmlunicode">xmlUCSIsVariationSelectorsSupplement</symbol>
+ <symbol file="xmlunicode">xmlUCSIsVariationSelectors</symbol>
+ <symbol file="xmlunicode">xmlUCSIsYijingHexagramSymbols</symbol>
+ <symbol file="xinclude">xmlXIncludeProcessFlags</symbol>
+ <symbol file="xinclude">xmlXIncludeProcessTreeFlags</symbol>
+ <symbol file="xinclude">xmlXIncludeSetFlags</symbol>
+ </release>
+ <release version="2.6.5">
+ <symbol file="xmlmemory">xmlCleanupMemory</symbol>
+ <symbol file="dict">xmlDictCreateSub</symbol>
+ <symbol file="relaxng">xmlRelaxParserSetFlag</symbol>
+ <symbol file="xmlstring">xmlStrncatNew</symbol>
+ <symbol file="xmlwriter">xmlTextWriterSetIndentString</symbol>
+ <symbol file="xmlwriter">xmlTextWriterSetIndent</symbol>
+ <symbol file="xpath">xmlXPathCtxtCompile</symbol>
+ </release>
+ <release version="2.6.6">
+ <symbol file="tree">xmlAttrSerializeTxtContent</symbol>
+ <symbol file="parser">xmlByteConsumed</symbol>
+ <symbol file="xmlreader">xmlTextReaderSetStructuredErrorHandler</symbol>
+ </release>
+ <release version="2.6.7">
+ <symbol file="xmlwriter">xmlTextWriterEndComment</symbol>
+ <symbol file="xmlwriter">xmlTextWriterStartComment</symbol>
+ </release>
+ <release version="2.6.8">
+ <symbol file="xmlsave">xmlSaveClose</symbol>
+ <symbol file="xmlsave">xmlSaveDoc</symbol>
+ <symbol file="xmlsave">xmlSaveFlush</symbol>
+ <symbol file="xmlsave">xmlSaveToFd</symbol>
+ <symbol file="xmlsave">xmlSaveToFilename</symbol>
+ <symbol file="xmlsave">xmlSaveToIO</symbol>
+ <symbol file="xmlsave">xmlSaveTree</symbol>
+ <symbol file="xmlwriter">xmlTextWriterEndDTDAttlist</symbol>
+ <symbol file="xmlwriter">xmlTextWriterEndDTDElement</symbol>
+ <symbol file="xmlwriter">xmlTextWriterEndDTDEntity</symbol>
+ <symbol file="xmlwriter">xmlTextWriterWriteDTDExternalEntityContents</symbol>
+ </release>
+ <release version="2.6.10">
+ <symbol file="xmlIO">xmlOutputBufferWriteEscape</symbol>
+ <symbol file="xmlIO">xmlPopInputCallbacks</symbol>
+ <symbol file="xmlsave">xmlSaveSetAttrEscape</symbol>
+ <symbol file="xmlsave">xmlSaveSetEscape</symbol>
+ </release>
+ <release version="2.6.11">
+ <symbol file="uri">xmlBuildRelativeURI</symbol>
+ <symbol file="globals">xmlOutputBufferCreateFilenameDefault</symbol>
+ <symbol file="globals">xmlOutputBufferCreateFilenameValue</symbol>
+ <symbol file="globals">xmlParserInputBufferCreateFilenameDefault</symbol>
+ <symbol file="globals">xmlParserInputBufferCreateFilenameValue</symbol>
+ <symbol file="globals">xmlThrDefOutputBufferCreateFilenameDefault</symbol>
+ <symbol file="globals">xmlThrDefParserInputBufferCreateFilenameDefault</symbol>
+ <symbol file="schemasInternals">xmlSchemaFreeWildcard</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaCollapseString</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaGetBuiltInListSimpleTypeItemType</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaGetBuiltInType</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaIsBuiltInTypeFacet</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValidateListSimpleTypeFacet</symbol>
+ </release>
+ <release version="2.6.12">
+ <symbol file="parser">xmlParseInNodeContext</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaGetFacetValueAsULong</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValidateLengthFacet</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValPredefTypeNodeNoNorm</symbol>
+ <symbol file="xmlschemas">xmlSchemaGetParserErrors</symbol>
+ <symbol file="xmlschemas">xmlSchemaGetValidErrors</symbol>
+ </release>
+ <release version="2.6.14">
+ <symbol file="xmlautomata">xmlAutomataNewCountTrans2</symbol>
+ <symbol file="xmlautomata">xmlAutomataNewOnceTrans2</symbol>
+ <symbol file="nanohttp">xmlNanoHTTPContentLength</symbol>
+ <symbol file="xmlschemas">xmlSchemaSetValidOptions</symbol>
+ <symbol file="xmlschemas">xmlSchemaValidateOneElement</symbol>
+ <symbol file="xmlschemas">xmlSchemaValidCtxtGetOptions</symbol>
+ </release>
+ <release version="2.6.15">
+ <symbol file="debugXML">xmlDebugCheckDocument</symbol>
+ <symbol file="tree">xmlDocCopyNodeList</symbol>
+ <symbol file="tree">xmlNewDocPI</symbol>
+ <symbol file="xmlreader">xmlTextReaderConstEncoding</symbol>
+ <symbol file="xmlreader">xmlTextReaderConstXmlVersion</symbol>
+ <symbol file="xmlreader">xmlTextReaderIsNamespaceDecl</symbol>
+ <symbol file="xmlreader">xmlTextReaderStandalone</symbol>
+ </release>
+ <release version="2.6.16">
+ <symbol file="xmlmemory">xmlMemBlocks</symbol>
+ <symbol file="relaxng">xmlRelaxNGInitTypes</symbol>
+ </release>
+ <release version="2.6.17">
+ <symbol file="dict">xmlDictExists</symbol>
+ <symbol file="xmlmodule">xmlModuleClose</symbol>
+ <symbol file="xmlmodule">xmlModuleFree</symbol>
+ <symbol file="xmlmodule">xmlModuleOpen</symbol>
+ <symbol file="xmlmodule">xmlModuleSymbol</symbol>
+ <symbol file="xmlregexp">xmlRegExecErrInfo</symbol>
+ <symbol file="xmlregexp">xmlRegExecNextValues</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaWhiteSpaceReplace</symbol>
+ <symbol file="xmlreader">xmlTextReaderGetParserColumnNumber</symbol>
+ <symbol file="xmlreader">xmlTextReaderGetParserLineNumber</symbol>
+ </release>
+ <release version="2.6.18">
+ <symbol file="valid">xmlCopyDocElementContent</symbol>
+ <symbol file="valid">xmlFreeDocElementContent</symbol>
+ <symbol file="valid">xmlNewDocElementContent</symbol>
+ <symbol file="dict">xmlDictCleanup</symbol>
+ <symbol file="hash">xmlHashCreateDict</symbol>
+ <symbol file="pattern">xmlFreeStreamCtxt</symbol>
+ <symbol file="pattern">xmlPatternFromRoot</symbol>
+ <symbol file="pattern">xmlPatternGetStreamCtxt</symbol>
+ <symbol file="pattern">xmlPatternMaxDepth</symbol>
+ <symbol file="pattern">xmlPatternStreamable</symbol>
+ <symbol file="pattern">xmlStreamPop</symbol>
+ <symbol file="pattern">xmlStreamPushAttr</symbol>
+ <symbol file="pattern">xmlStreamPush</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaCompareValuesWhtsp</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaCopyValue</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaGetCanonValue</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaNewNOTATIONValue</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaNewStringValue</symbol>
+ <symbol file="xmlreader">xmlTextReaderByteConsumed</symbol>
+ </release>
+ <release version="2.6.19">
+ <symbol file="xmlschemastypes">xmlSchemaGetValType</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValidateFacetWhtsp</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValidateLengthFacetWhtsp</symbol>
+ </release>
+ <release version="2.6.20">
+ <symbol file="tree">xmlDOMWrapAdoptNode</symbol>
+ <symbol file="tree">xmlDOMWrapFreeCtxt</symbol>
+ <symbol file="tree">xmlDOMWrapNewCtxt</symbol>
+ <symbol file="tree">xmlDOMWrapReconcileNamespaces</symbol>
+ <symbol file="tree">xmlDOMWrapRemoveNode</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaGetCanonValueWhtsp</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaNewQNameValue</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValueAppend</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValueGetAsBoolean</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValueGetAsString</symbol>
+ <symbol file="xmlschemastypes">xmlSchemaValueGetNext</symbol>
+ <symbol file="xmlschemas">xmlSchemaIsValid</symbol>
+ <symbol file="xmlschemas">xmlSchemaSAXPlug</symbol>
+ <symbol file="xmlschemas">xmlSchemaSAXUnplug</symbol>
+ <symbol file="xmlschemas">xmlSchemaValidateFile</symbol>
+ <symbol file="xmlreader">xmlTextReaderSchemaValidate</symbol>
+ <symbol file="xmlreader">xmlTextReaderSetSchema</symbol>
+ </release>
+ <release version="2.6.21">
+ <symbol file="xmlautomata">xmlAutomataNewNegTrans</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">emptyExp</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">forbiddenExp</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpCtxtNbCons</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpCtxtNbNodes</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpDump</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpExpDerive</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpFreeCtxt</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpFree</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpGetLanguage</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpGetStart</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpIsNillable</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpMaxToken</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpNewAtom</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpNewCtxt</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpNewOr</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpNewRange</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpNewSeq</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpParse</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpRef</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpStringDerive</symbol>
+ <symbol removed="2.9.10" file="xmlregexp">xmlExpSubsume</symbol>
+ <symbol file="parser">xmlHasFeature</symbol>
+ <symbol file="uri">xmlParseURIRaw</symbol>
+ <symbol file="pattern">xmlPatternMinDepth</symbol>
+ <symbol file="relaxng">xmlRelaxNGSetValidStructuredErrors</symbol>
+ <symbol file="xmlschemas">xmlSchemaSetValidStructuredErrors</symbol>
+ <symbol file="schematron">xmlSchematronFreeParserCtxt</symbol>
+ <symbol file="schematron">xmlSchematronFree</symbol>
+ <symbol file="schematron">xmlSchematronFreeValidCtxt</symbol>
+ <symbol file="schematron">xmlSchematronNewDocParserCtxt</symbol>
+ <symbol file="schematron">xmlSchematronNewMemParserCtxt</symbol>
+ <symbol file="schematron">xmlSchematronNewParserCtxt</symbol>
+ <symbol file="schematron">xmlSchematronNewValidCtxt</symbol>
+ <symbol file="schematron">xmlSchematronParse</symbol>
+ <symbol file="schematron">xmlSchematronValidateDoc</symbol>
+ </release>
+ <release version="2.6.23">
+ <symbol file="HTMLtree">htmlDocDumpMemoryFormat</symbol>
+ <symbol file="xmlIO">xmlOutputBufferCreateBuffer</symbol>
+ <symbol file="xmlsave" comment="suppressed in 2.6.11, readded in 2.6.23">xmlSaveToBuffer</symbol>
+ <symbol file="xmlschemas">xmlSchemaSetParserStructuredErrors</symbol>
+ <symbol file="pattern">xmlStreamPushNode</symbol>
+ <symbol file="pattern">xmlStreamWantsAnyNode</symbol>
+ <symbol file="xmlreader">xmlTextReaderSchemaValidateCtxt</symbol>
+ </release>
+ <release version="2.6.24">
+ <symbol file="tree">xmlDOMWrapCloneNode</symbol>
+ <symbol file="relaxng">xmlRelaxNGSetParserStructuredErrors</symbol>
+ </release>
+ <release version="2.6.25">
+ <symbol file="xpath">xmlXPathContextSetCache</symbol>
+ </release>
+ <release version="2.6.27">
+ <symbol file="HTMLparser">htmlNewParserCtxt</symbol>
+ <symbol file="uri">xmlPathToURI</symbol>
+ <symbol file="xinclude">xmlXIncludeProcessFlagsData</symbol>
+ <symbol file="xpath">xmlXPathCompiledEvalToBoolean</symbol>
+ </release>
+ <release version="2.6.28">
+ <symbol file="xmlreader">xmlTextReaderSetup</symbol>
+ </release>
+ <release version="2.6.29">
+ <symbol file="threads">xmlDllMain</symbol>
+ </release>
+ <release version="2.6.32">
+ <symbol file="schematron">xmlSchematronSetValidStructuredErrors</symbol>
+ </release>
+ <release version="2.7.0">
+ <symbol file="xmlmemory">xmlMemDisplayLast</symbol>
+ <symbol file="entities">xmlNewEntity</symbol>
+ <symbol file="xmlschemas">xmlSchemaValidCtxtGetParserCtxt</symbol>
+ </release>
+ <release version="2.7.3">
+ <symbol file="tree">xmlChildElementCount</symbol>
+ <symbol file="tree">xmlFirstElementChild</symbol>
+ <symbol file="tree">xmlLastElementChild</symbol>
+ <symbol file="tree">xmlNextElementSibling</symbol>
+ <symbol file="tree">xmlPreviousElementSibling</symbol>
+ </release>
+ <release version="2.7.4">
+ <symbol file="globals">xmlStructuredErrorContext</symbol>
+ <symbol file="xinclude">xmlXIncludeProcessTreeFlagsData</symbol>
+ </release>
+ <release version="2.8.0">
+ <symbol file="xmlreader">xmlTextReaderRelaxNGValidateCtxt</symbol>
+ <symbol file="tree">xmlBufferDetach</symbol>
+ <symbol file="dict">xmlInitializeDict</symbol>
+ </release>
+ <release version="2.9.0">
+ <symbol file="tree">xmlBufContent</symbol>
+ <symbol file="tree">xmlBufEnd</symbol>
+ <symbol file="tree">xmlBufGetNodeContent</symbol>
+ <symbol file="tree">xmlBufNodeDump</symbol>
+ <symbol file="tree">xmlBufShrink</symbol>
+ <symbol file="tree">xmlBufUse</symbol>
+ <symbol file="dict">xmlDictGetUsage</symbol>
+ <symbol file="dict">xmlDictSetLimit</symbol>
+ <symbol file="xmlschemas">xmlSchemaValidateSetFilename</symbol>
+ <symbol file="xmlschemas">xmlSchemaValidateSetLocator</symbol>
+ <symbol file="xmlIO">xmlOutputBufferGetContent</symbol>
+ <symbol file="xmlIO">xmlOutputBufferGetSize</symbol>
+ <symbol file="xmlwriter">xmlTextWriterSetQuoteChar</symbol>
+ </release>
+ <release version="2.9.1">
+ <symbol file="xpath">xmlXPathNodeEval</symbol>
+ <symbol file="xpath">xmlXPathSetContextNode</symbol>
+ </release>
+ <release version="2.9.8">
+ <symbol file="hash">xmlHashDefaultDeallocator</symbol>
+ </release>
+</symbols>
diff --git a/libxml2-2.9.10/doc/syms.xsl b/libxml2-2.9.10/doc/syms.xsl
new file mode 100644
index 0000000..ebca88f
--- /dev/null
+++ b/libxml2-2.9.10/doc/syms.xsl
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+ <xsl:output method="text" encoding="UTF-8"/>
+
+ <xsl:variable name="api" select="document('libxml2-api.xml')"/>
+
+ <xsl:template match="/">
+ <xsl:text>#
+# Officially exported symbols, for which header
+# file definitions are installed in /usr/include/libxml2
+#
+# Automatically generated from symbols.xml and syms.xsl
+#
+# Versions here are *fixed* to match the libxml2 version
+# at which the symbol was introduced. This ensures that
+# a new client app requiring symbol foo() can't accidentally
+# run with old libxml2.so not providing foo() - the global
+# soname version info can't enforce this since we never
+# change the soname
+#
+
+</xsl:text>
+ <xsl:apply-templates select="/symbols/release"/>
+ </xsl:template>
+
+ <xsl:template match="release">
+ <xsl:variable name="prev"
+ select="preceding-sibling::release[position()=1]"/>
+ <xsl:text>LIBXML2_</xsl:text>
+ <xsl:value-of select="string(@version)"/>
+ <xsl:text> {
+ global:
+</xsl:text>
+ <xsl:for-each select="symbol">
+ <xsl:if test="string(preceding-sibling::symbol[position()=1]/@file) != string(@file)">
+ <xsl:text>
+# </xsl:text>
+ <xsl:value-of select="@file"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+
+ <xsl:text>} </xsl:text>
+ <xsl:if test="$prev">
+ <xsl:text>LIBXML2_</xsl:text>
+ <xsl:value-of select="$prev/@version"/>
+ </xsl:if>
+ <xsl:text>;
+
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="symbol">
+ <xsl:variable name="name" select="string(.)"/>
+ <xsl:variable name="file" select="string(@file)"/>
+ <xsl:choose>
+ <xsl:when test="@removed">
+ <xsl:text># </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>; removed in </xsl:text>
+ <xsl:value-of select="@removed"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- make sure we can find that symbol exported from the API list -->
+ <xsl:variable name="def"
+ select="$api/api/files/file[@name = $file]/exports[@symbol = $name]"/>
+ <xsl:if test="string($def/@symbol) != $name">
+ <xsl:message terminate="yes">
+ <xsl:text>Failed to find definition in libxml2-api.xml:</xsl:text>
+ <xsl:value-of select="$name"/>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>;</xsl:text>
+ <xsl:if test="$def/@type = 'variable'">
+ <xsl:text> # variable</xsl:text>
+ </xsl:if>
+ <xsl:if test="@comment">
+ <xsl:text># </xsl:text>
+ <xsl:value-of select="@comment"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/libxml2-2.9.10/doc/threads.html b/libxml2-2.9.10/doc/threads.html
new file mode 100644
index 0000000..d16e7d7
--- /dev/null
+++ b/libxml2-2.9.10/doc/threads.html
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Thread safety</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>Thread safety</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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>Starting with 2.4.7, libxml2 makes provisions to ensure that concurrent
+threads can safely work in parallel parsing different documents. There is
+however a couple of things to do to ensure it:</p><ul>
+ <li>configure the library accordingly using the --with-threads options</li>
+ <li>call xmlInitParser() in the "main" thread before using any of the
+ libxml2 API (except possibly selecting a different memory allocator)</li>
+</ul><p>Note that the thread safety cannot be ensured for multiple threads sharing
+the same document, the locking must be done at the application level, libxml
+exports a basic mutex and reentrant mutexes API in &lt;libxml/threads.h&gt;.
+The parts of the library checked for thread safety are:</p><ul>
+ <li>concurrent loading</li>
+ <li>file access resolution</li>
+ <li>catalog access</li>
+ <li>catalog building</li>
+ <li>entities lookup/accesses</li>
+ <li>validation</li>
+ <li>global variables per-thread override</li>
+ <li>memory handling</li>
+</ul><p>XPath has been tested for threaded usage on non-modified document
+ for example when using libxslt, but make 100% sure the documents
+ are accessed read-only !</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>
diff --git a/libxml2-2.9.10/doc/tree.html b/libxml2-2.9.10/doc/tree.html
new file mode 100644
index 0000000..9f776ba
--- /dev/null
+++ b/libxml2-2.9.10/doc/tree.html
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>The tree output</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>The tree output</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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 parser returns a tree built during the document analysis. The value
+returned is an <strong>xmlDocPtr</strong> (i.e., a pointer to an
+<strong>xmlDoc</strong> structure). This structure contains information such
+as the file name, the document type, and a <strong>children</strong> pointer
+which is the root of the document (or more exactly the first child under the
+root which is the document). The tree is made of <strong>xmlNode</strong>s,
+chained in double-linked lists of siblings and with a children&lt;-&gt;parent
+relationship. An xmlNode can also carry properties (a chain of xmlAttr
+structures). An attribute may have a value which is a list of TEXT or
+ENTITY_REF nodes.</p><p>Here is an example (erroneous with respect to the XML spec since there
+should be only one ELEMENT under the root):</p><p><img src="structure.gif" alt=" structure.gif " /></p><p>In the source package there is a small program (not installed by default)
+called <strong>xmllint</strong> which parses XML files given as argument and
+prints them back as parsed. This is useful for detecting errors both in XML
+code and in the XML parser itself. It has an option <strong>--debug</strong>
+which prints the actual in-memory structure of the document; here is the
+result with the <a href="#example">example</a> given before:</p><pre>DOCUMENT
+version=1.0
+standalone=true
+ ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ ENTITY_REF
+ TEXT
+ content= linux too
+ ELEMENT head
+ ELEMENT title
+ TEXT
+ content=Welcome to Gnome
+ ELEMENT chapter
+ ELEMENT title
+ TEXT
+ content=The Linux adventure
+ ELEMENT p
+ TEXT
+ content=bla bla bla ...
+ ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+ ELEMENT p
+ TEXT
+ content=...</pre><p>This should be useful for learning the internal representation model.</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>
diff --git a/libxml2-2.9.10/doc/tutorial/apa.html b/libxml2-2.9.10/doc/tutorial/apa.html
new file mode 100644
index 0000000..964e15f
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/apa.html
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>A. Compilation</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s09.html" title="Encoding Conversion"><link rel="next" href="apb.html" title="B. Sample Document"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">A. Compilation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s09.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apb.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="compilation"></a>A. Compilation</h2></div></div><div></div></div><p><a class="indexterm" name="id2587670"></a>
+ <span class="application">Libxml</span> includes a script,
+ <span class="application">xml2-config</span>, that can be used to generate
+ flags for compilation and linking of programs written with the
+ library. For pre-processor and compiler flags, use <b class="command">xml2-config
+ --cflags</b>. For library linking flags, use <b class="command">xml2-config
+ --libs</b>. Other options are available using <b class="command">xml2-config
+ --help</b>.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s09.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="apb.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Encoding Conversion </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> B. Sample Document</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/apb.html b/libxml2-2.9.10/doc/tutorial/apb.html
new file mode 100644
index 0000000..ef14066
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/apb.html
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>B. Sample Document</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="apa.html" title="A. Compilation"><link rel="next" href="apc.html" title="C. Code for Keyword Example"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">B. Sample Document</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apa.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apc.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="sampledoc"></a>B. Sample Document</h2></div></div><div></div></div><pre class="programlisting">
+&lt;?xml version="1.0"?&gt;
+&lt;story&gt;
+ &lt;storyinfo&gt;
+ &lt;author&gt;John Fleck&lt;/author&gt;
+ &lt;datewritten&gt;June 2, 2002&lt;/datewritten&gt;
+ &lt;keyword&gt;example keyword&lt;/keyword&gt;
+ &lt;/storyinfo&gt;
+ &lt;body&gt;
+ &lt;headline&gt;This is the headline&lt;/headline&gt;
+ &lt;para&gt;This is the body text.&lt;/para&gt;
+ &lt;/body&gt;
+&lt;/story&gt;
+</pre></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apa.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="apc.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">A. Compilation </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> C. Code for Keyword Example</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/apc.html b/libxml2-2.9.10/doc/tutorial/apc.html
new file mode 100644
index 0000000..f8d9911
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/apc.html
@@ -0,0 +1,82 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>C. Code for Keyword Example</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="apb.html" title="B. Sample Document"><link rel="next" href="apd.html" title="D. Code for XPath Example"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">C. Code for Keyword Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apb.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apd.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="keywordappendix"></a>C. Code for Keyword Example</h2></div></div><div></div></div><p>
+ </p><pre class="programlisting">
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;libxml/xmlmemory.h&gt;
+#include &lt;libxml/parser.h&gt;
+
+void
+parseStory (xmlDocPtr doc, xmlNodePtr cur) {
+
+ xmlChar *key;
+ cur = cur-&gt;xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!xmlStrcmp(cur-&gt;name, (const xmlChar *)"keyword"))) {
+ key = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
+ printf("keyword: %s\n", key);
+ xmlFree(key);
+ }
+ cur = cur-&gt;next;
+ }
+ return;
+}
+
+static void
+parseDoc(char *docname) {
+
+ xmlDocPtr doc;
+ xmlNodePtr cur;
+
+ doc = xmlParseFile(docname);
+
+ if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return;
+ }
+
+ cur = xmlDocGetRootElement(doc);
+
+ if (cur == NULL) {
+ fprintf(stderr,"empty document\n");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ if (xmlStrcmp(cur-&gt;name, (const xmlChar *) "story")) {
+ fprintf(stderr,"document of the wrong type, root node != story");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ cur = cur-&gt;xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!xmlStrcmp(cur-&gt;name, (const xmlChar *)"storyinfo"))){
+ parseStory (doc, cur);
+ }
+
+ cur = cur-&gt;next;
+ }
+
+ xmlFreeDoc(doc);
+ return;
+}
+
+int
+main(int argc, char **argv) {
+
+ char *docname;
+
+ if (argc &lt;= 1) {
+ printf("Usage: %s docname\n", argv[0]);
+ return(0);
+ }
+
+ docname = argv[1];
+ parseDoc (docname);
+
+ return (1);
+}
+
+</pre><p>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apb.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="apd.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">B. Sample Document </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> D. Code for XPath Example</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/apd.html b/libxml2-2.9.10/doc/tutorial/apd.html
new file mode 100644
index 0000000..8f9618d
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/apd.html
@@ -0,0 +1,76 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>D. Code for XPath Example</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="apc.html" title="C. Code for Keyword Example"><link rel="next" href="ape.html" title="E. Code for Add Keyword Example"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">D. Code for XPath Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apc.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ape.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="xpathappendix"></a>D. Code for XPath Example</h2></div></div><div></div></div><p>
+ </p><pre class="programlisting">
+#include &lt;libxml/parser.h&gt;
+#include &lt;libxml/xpath.h&gt;
+
+xmlDocPtr
+getdoc (char *docname) {
+ xmlDocPtr doc;
+ doc = xmlParseFile(docname);
+
+ if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return NULL;
+ }
+
+ return doc;
+}
+
+xmlXPathObjectPtr
+getnodeset (xmlDocPtr doc, xmlChar *xpath){
+
+ xmlXPathContextPtr context;
+ xmlXPathObjectPtr result;
+
+ context = xmlXPathNewContext(doc);
+ if (context == NULL) {
+ printf("Error in xmlXPathNewContext\n");
+ return NULL;
+ }
+ result = xmlXPathEvalExpression(xpath, context);
+ xmlXPathFreeContext(context);
+ if (result == NULL) {
+ printf("Error in xmlXPathEvalExpression\n");
+ return NULL;
+ }
+ if(xmlXPathNodeSetIsEmpty(result-&gt;nodesetval)){
+ xmlXPathFreeObject(result);
+ printf("No result\n");
+ return NULL;
+ }
+ return result;
+}
+int
+main(int argc, char **argv) {
+
+ char *docname;
+ xmlDocPtr doc;
+ xmlChar *xpath = (xmlChar*) "//keyword";
+ xmlNodeSetPtr nodeset;
+ xmlXPathObjectPtr result;
+ int i;
+ xmlChar *keyword;
+
+ if (argc &lt;= 1) {
+ printf("Usage: %s docname\n", argv[0]);
+ return(0);
+ }
+
+ docname = argv[1];
+ doc = getdoc(docname);
+ result = getnodeset (doc, xpath);
+ if (result) {
+ nodeset = result-&gt;nodesetval;
+ for (i=0; i &lt; nodeset-&gt;nodeNr; i++) {
+ keyword = xmlNodeListGetString(doc, nodeset-&gt;nodeTab[i]-&gt;xmlChildrenNode, 1);
+ printf("keyword: %s\n", keyword);
+ xmlFree(keyword);
+ }
+ xmlXPathFreeObject (result);
+ }
+ xmlFreeDoc(doc);
+ xmlCleanupParser();
+ return (1);
+}
+</pre><p>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apc.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ape.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">C. Code for Keyword Example </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> E. Code for Add Keyword Example</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/ape.html b/libxml2-2.9.10/doc/tutorial/ape.html
new file mode 100644
index 0000000..200319a
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/ape.html
@@ -0,0 +1,78 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>E. Code for Add Keyword Example</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="apd.html" title="D. Code for XPath Example"><link rel="next" href="apf.html" title="F. Code for Add Attribute Example"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">E. Code for Add Keyword Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apd.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apf.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="addkeywordappendix"></a>E. Code for Add Keyword Example</h2></div></div><div></div></div><p>
+ </p><pre class="programlisting">
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;libxml/xmlmemory.h&gt;
+#include &lt;libxml/parser.h&gt;
+
+void
+parseStory (xmlDocPtr doc, xmlNodePtr cur, char *keyword) {
+
+ xmlNewTextChild (cur, NULL, "keyword", keyword);
+ return;
+}
+
+xmlDocPtr
+parseDoc(char *docname, char *keyword) {
+
+ xmlDocPtr doc;
+ xmlNodePtr cur;
+
+ doc = xmlParseFile(docname);
+
+ if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return (NULL);
+ }
+
+ cur = xmlDocGetRootElement(doc);
+
+ if (cur == NULL) {
+ fprintf(stderr,"empty document\n");
+ xmlFreeDoc(doc);
+ return (NULL);
+ }
+
+ if (xmlStrcmp(cur-&gt;name, (const xmlChar *) "story")) {
+ fprintf(stderr,"document of the wrong type, root node != story");
+ xmlFreeDoc(doc);
+ return (NULL);
+ }
+
+ cur = cur-&gt;xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!xmlStrcmp(cur-&gt;name, (const xmlChar *)"storyinfo"))){
+ parseStory (doc, cur, keyword);
+ }
+
+ cur = cur-&gt;next;
+ }
+ return(doc);
+}
+
+int
+main(int argc, char **argv) {
+
+ char *docname;
+ char *keyword;
+ xmlDocPtr doc;
+
+ if (argc &lt;= 2) {
+ printf("Usage: %s docname, keyword\n", argv[0]);
+ return(0);
+ }
+
+ docname = argv[1];
+ keyword = argv[2];
+ doc = parseDoc (docname, keyword);
+ if (doc != NULL) {
+ xmlSaveFormatFile (docname, doc, 0);
+ xmlFreeDoc(doc);
+ }
+
+ return (1);
+}
+
+</pre><p>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apd.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="apf.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">D. Code for XPath Example </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> F. Code for Add Attribute Example</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/apf.html b/libxml2-2.9.10/doc/tutorial/apf.html
new file mode 100644
index 0000000..4848cdb
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/apf.html
@@ -0,0 +1,67 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>F. Code for Add Attribute Example</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ape.html" title="E. Code for Add Keyword Example"><link rel="next" href="apg.html" title="G. Code for Retrieving Attribute Value Example"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">F. Code for Add Attribute Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ape.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apg.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="addattributeappendix"></a>F. Code for Add Attribute Example</h2></div></div><div></div></div><p>
+ </p><pre class="programlisting">
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;libxml/xmlmemory.h&gt;
+#include &lt;libxml/parser.h&gt;
+
+
+xmlDocPtr
+parseDoc(char *docname, char *uri) {
+
+ xmlDocPtr doc;
+ xmlNodePtr cur;
+ xmlNodePtr newnode;
+ xmlAttrPtr newattr;
+
+ doc = xmlParseFile(docname);
+
+ if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return (NULL);
+ }
+
+ cur = xmlDocGetRootElement(doc);
+
+ if (cur == NULL) {
+ fprintf(stderr,"empty document\n");
+ xmlFreeDoc(doc);
+ return (NULL);
+ }
+
+ if (xmlStrcmp(cur-&gt;name, (const xmlChar *) "story")) {
+ fprintf(stderr,"document of the wrong type, root node != story");
+ xmlFreeDoc(doc);
+ return (NULL);
+ }
+
+ newnode = xmlNewTextChild (cur, NULL, "reference", NULL);
+ newattr = xmlNewProp (newnode, "uri", uri);
+ return(doc);
+}
+
+int
+main(int argc, char **argv) {
+
+ char *docname;
+ char *uri;
+ xmlDocPtr doc;
+
+ if (argc &lt;= 2) {
+ printf("Usage: %s docname, uri\n", argv[0]);
+ return(0);
+ }
+
+ docname = argv[1];
+ uri = argv[2];
+ doc = parseDoc (docname, uri);
+ if (doc != NULL) {
+ xmlSaveFormatFile (docname, doc, 1);
+ xmlFreeDoc(doc);
+ }
+ return (1);
+}
+
+</pre><p>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ape.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="apg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E. Code for Add Keyword Example </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> G. Code for Retrieving Attribute Value Example</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/apg.html b/libxml2-2.9.10/doc/tutorial/apg.html
new file mode 100644
index 0000000..fffa0ee
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/apg.html
@@ -0,0 +1,75 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>G. Code for Retrieving Attribute Value Example</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="apf.html" title="F. Code for Add Attribute Example"><link rel="next" href="aph.html" title="H. Code for Encoding Conversion Example"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">G. Code for Retrieving Attribute Value Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apf.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="aph.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="getattributeappendix"></a>G. Code for Retrieving Attribute Value Example</h2></div></div><div></div></div><p>
+ </p><pre class="programlisting">
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;libxml/xmlmemory.h&gt;
+#include &lt;libxml/parser.h&gt;
+
+void
+getReference (xmlDocPtr doc, xmlNodePtr cur) {
+
+ xmlChar *uri;
+ cur = cur-&gt;xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!xmlStrcmp(cur-&gt;name, (const xmlChar *)"reference"))) {
+ uri = xmlGetProp(cur, "uri");
+ printf("uri: %s\n", uri);
+ xmlFree(uri);
+ }
+ cur = cur-&gt;next;
+ }
+ return;
+}
+
+
+void
+parseDoc(char *docname) {
+
+ xmlDocPtr doc;
+ xmlNodePtr cur;
+
+ doc = xmlParseFile(docname);
+
+ if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return;
+ }
+
+ cur = xmlDocGetRootElement(doc);
+
+ if (cur == NULL) {
+ fprintf(stderr,"empty document\n");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ if (xmlStrcmp(cur-&gt;name, (const xmlChar *) "story")) {
+ fprintf(stderr,"document of the wrong type, root node != story");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ getReference (doc, cur);
+ xmlFreeDoc(doc);
+ return;
+}
+
+int
+main(int argc, char **argv) {
+
+ char *docname;
+
+ if (argc &lt;= 1) {
+ printf("Usage: %s docname\n", argv[0]);
+ return(0);
+ }
+
+ docname = argv[1];
+ parseDoc (docname);
+
+ return (1);
+}
+
+</pre><p>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apf.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="aph.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">F. Code for Add Attribute Example </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> H. Code for Encoding Conversion Example</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/aph.html b/libxml2-2.9.10/doc/tutorial/aph.html
new file mode 100644
index 0000000..ef46605
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/aph.html
@@ -0,0 +1,76 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>H. Code for Encoding Conversion Example</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="apg.html" title="G. Code for Retrieving Attribute Value Example"><link rel="next" href="api.html" title="I. Acknowledgements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">H. Code for Encoding Conversion Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apg.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="convertappendix"></a>H. Code for Encoding Conversion Example</h2></div></div><div></div></div><p>
+ </p><pre class="programlisting">
+#include &lt;string.h&gt;
+#include &lt;libxml/parser.h&gt;
+
+
+unsigned char*
+convert (unsigned char *in, char *encoding)
+{
+ unsigned char *out;
+ int ret,size,out_size,temp;
+ xmlCharEncodingHandlerPtr handler;
+
+ size = (int)strlen(in)+1;
+ out_size = size*2-1;
+ out = malloc((size_t)out_size);
+
+ if (out) {
+ handler = xmlFindCharEncodingHandler(encoding);
+
+ if (!handler) {
+ free(out);
+ out = NULL;
+ }
+ }
+ if (out) {
+ temp=size-1;
+ ret = handler-&gt;input(out, &amp;out_size, in, &amp;temp);
+ if (ret || temp-size+1) {
+ if (ret) {
+ printf("conversion wasn't successful.\n");
+ } else {
+ printf("conversion wasn't successful. converted: %i octets.\n",temp);
+ }
+ free(out);
+ out = NULL;
+ } else {
+ out = realloc(out,out_size+1);
+ out[out_size]=0; /*null terminating out*/
+
+ }
+ } else {
+ printf("no mem\n");
+ }
+ return (out);
+}
+
+
+int
+main(int argc, char **argv) {
+
+ unsigned char *content, *out;
+ xmlDocPtr doc;
+ xmlNodePtr rootnode;
+ char *encoding = "ISO-8859-1";
+
+
+ if (argc &lt;= 1) {
+ printf("Usage: %s content\n", argv[0]);
+ return(0);
+ }
+
+ content = argv[1];
+
+ out = convert(content, encoding);
+
+ doc = xmlNewDoc ("1.0");
+ rootnode = xmlNewDocNode(doc, NULL, (const xmlChar*)"root", out);
+ xmlDocSetRootElement(doc, rootnode);
+
+ xmlSaveFormatFileEnc("-", doc, encoding, 1);
+ return (1);
+}
+
+</pre><p>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">G. Code for Retrieving Attribute Value Example </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> I. Acknowledgements</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/api.html b/libxml2-2.9.10/doc/tutorial/api.html
new file mode 100644
index 0000000..16e7981
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/api.html
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>I. Acknowledgements</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="aph.html" title="H. Code for Encoding Conversion Example"><link rel="next" href="ix01.html" title="Index"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">I. Acknowledgements</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="aph.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ix01.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2588597"></a>I. Acknowledgements</h2></div></div><div></div></div><p>A number of people have generously offered feedback, code and
+ suggested improvements to this tutorial. In no particular order:
+ <span class="simplelist">Daniel Veillard, Marcus Labib Iskander, Christopher R. Harris, Igor Zlatkovic, Niraj Tolia, David Turover</span>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="aph.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ix01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">H. Code for Encoding Conversion Example </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Index</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/ar01s02.html b/libxml2-2.9.10/doc/tutorial/ar01s02.html
new file mode 100644
index 0000000..1e30a98
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/ar01s02.html
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Data Types</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="index.html" title="Libxml Tutorial"><link rel="next" href="ar01s03.html" title="Parsing the file"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Data Types</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s03.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialdatatypes"></a>Data Types</h2></div></div><div></div></div><p><span class="application">Libxml</span> declares a number of data types we
+ will encounter repeatedly, hiding the messy stuff so you do not have to deal
+ with it unless you have some specific need.</p><p>
+ </p><div class="variablelist"><dl><dt><span class="term"><a class="indexterm" name="id2526186"></a>
+<a href="http://xmlsoft.org/html/libxml-tree.html#XMLCHAR" target="_top">xmlChar</a></span></dt><dd><p>A basic replacement for char, a byte in a UTF-8 encoded
+ string. If your data uses another encoding, it must be converted to
+ UTF-8 for use with <span class="application">libxml's</span>
+ functions. More information on encoding is available on the <a href="http://www.xmlsoft.org/encoding.html" target="_top"><span class="application">libxml</span> encoding support web page</a>.</p></dd><dt><span class="term"><a class="indexterm" name="id2526232"></a>
+ <a href="http://xmlsoft.org/html/libxml-tree.html#XMLDOC" target="_top">xmlDoc</a></span></dt><dd><p>A structure containing the tree created by a parsed doc. <a href="http://xmlsoft.org/html/libxml-tree.html#XMLDOCPTR" target="_top">xmlDocPtr</a>
+ is a pointer to the structure.</p></dd><dt><span class="term"><a class="indexterm" name="id2526266"></a>
+<a href="http://xmlsoft.org/html/libxml-tree.html#XMLNODEPTR" target="_top">xmlNodePtr</a>
+ and <a href="http://xmlsoft.org/html/libxml-tree.html#XMLNODE" target="_top">xmlNode</a></span></dt><dd><p>A structure containing a single node. <a href="http://xmlsoft.org/html/libxml-tree.html#XMLNODEPTR" target="_top">xmlNodePtr</a>
+ is a pointer to the structure, and is used in traversing the document tree.</p></dd></dl></div><p>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Libxml Tutorial </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Parsing the file</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/ar01s03.html b/libxml2-2.9.10/doc/tutorial/ar01s03.html
new file mode 100644
index 0000000..cd28fff
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/ar01s03.html
@@ -0,0 +1,47 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Parsing the file</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s02.html" title="Data Types"><link rel="next" href="ar01s04.html" title="Retrieving Element Content"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Parsing the file</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s02.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s04.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialparsing"></a>Parsing the file</h2></div></div><div></div></div><p><a class="indexterm" name="fileparsing"></a>
+Parsing the file requires only the name of the file and a single
+ function call, plus error checking. Full code: <a href="apc.html" title="C. Code for Keyword Example">Appendix C, <i>Code for Keyword Example</i></a></p><p>
+ </p><pre class="programlisting">
+ <a name="declaredoc"></a><img src="images/callouts/1.png" alt="1" border="0"> xmlDocPtr doc;
+ <a name="declarenode"></a><img src="images/callouts/2.png" alt="2" border="0"> xmlNodePtr cur;
+
+ <a name="parsefile"></a><img src="images/callouts/3.png" alt="3" border="0"> doc = xmlParseFile(docname);
+
+ <a name="checkparseerror"></a><img src="images/callouts/4.png" alt="4" border="0"> if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return;
+ }
+
+ <a name="getrootelement"></a><img src="images/callouts/5.png" alt="5" border="0"> cur = xmlDocGetRootElement(doc);
+
+ <a name="checkemptyerror"></a><img src="images/callouts/6.png" alt="6" border="0"> if (cur == NULL) {
+ fprintf(stderr,"empty document\n");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ <a name="checkroottype"></a><img src="images/callouts/7.png" alt="7" border="0"> if (xmlStrcmp(cur-&gt;name, (const xmlChar *) "story")) {
+ fprintf(stderr,"document of the wrong type, root node != story");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ </pre><p>
+ </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#declaredoc"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>Declare the pointer that will point to your parsed document.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#declarenode"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Declare a node pointer (you'll need this in order to
+ interact with individual nodes).</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#checkparseerror"><img src="images/callouts/4.png" alt="4" border="0"></a> </td><td valign="top" align="left"><p>Check to see that the document was successfully parsed. If it
+ was not, <span class="application">libxml</span> will at this point
+ register an error and stop.
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p><a class="indexterm" name="id2525337"></a>
+One common example of an error at this point is improper
+ handling of encoding. The <span class="acronym">XML</span> standard requires
+ documents stored with an encoding other than UTF-8 or UTF-16 to
+ contain an explicit declaration of their encoding. If the
+ declaration is there, <span class="application">libxml</span> will
+ automatically perform the necessary conversion to UTF-8 for
+ you. More information on <span class="acronym">XML's</span> encoding
+ requirements is contained in the <a href="http://www.w3.org/TR/REC-xml#charencoding" target="_top">standard</a>.</p></td></tr></table></div><p>
+ </p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#getrootelement"><img src="images/callouts/5.png" alt="5" border="0"></a> </td><td valign="top" align="left"><p>Retrieve the document's root element.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#checkemptyerror"><img src="images/callouts/6.png" alt="6" border="0"></a> </td><td valign="top" align="left"><p>Check to make sure the document actually contains something.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#checkroottype"><img src="images/callouts/7.png" alt="7" border="0"></a> </td><td valign="top" align="left"><p>In our case, we need to make sure the document is the right
+ type. "story" is the root type of the documents used in this
+ tutorial.</p></td></tr></table></div><p>
+ <a class="indexterm" name="id2525415"></a>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Data Types </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Retrieving Element Content</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/ar01s04.html b/libxml2-2.9.10/doc/tutorial/ar01s04.html
new file mode 100644
index 0000000..11492eb
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/ar01s04.html
@@ -0,0 +1,54 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Retrieving Element Content</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s03.html" title="Parsing the file"><link rel="next" href="ar01s05.html" title="Using XPath to Retrieve Element Content"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Retrieving Element Content</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s03.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s05.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialgettext"></a>Retrieving Element Content</h2></div></div><div></div></div><p><a class="indexterm" name="id2525439"></a>
+Retrieving the content of an element involves traversing the document
+ tree until you find what you are looking for. In this case, we are looking
+ for an element called "keyword" contained within element called "story". The
+ process to find the node we are interested in involves tediously walking the
+ tree. We assume you already have an xmlDocPtr called <tt class="varname">doc</tt>
+ and an xmlNodPtr called <tt class="varname">cur</tt>.</p><p>
+ </p><pre class="programlisting">
+ <a name="getchildnode"></a><img src="images/callouts/1.png" alt="1" border="0">cur = cur-&gt;xmlChildrenNode;
+ <a name="huntstoryinfo"></a><img src="images/callouts/2.png" alt="2" border="0">while (cur != NULL) {
+ if ((!xmlStrcmp(cur-&gt;name, (const xmlChar *)"storyinfo"))){
+ parseStory (doc, cur);
+ }
+
+ cur = cur-&gt;next;
+ }
+ </pre><p>
+
+ </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#getchildnode"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>Get the first child node of <tt class="varname">cur</tt>. At this
+ point, <tt class="varname">cur</tt> points at the document root, which is
+ the element "story".</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#huntstoryinfo"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>This loop iterates through the elements that are children of
+ "story", looking for one called "storyinfo". That
+ is the element that will contain the "keywords" we are
+ looking for. It uses the <span class="application">libxml</span> string
+ comparison
+ function, <tt class="function"><a href="http://xmlsoft.org/html/libxml-parser.html#XMLSTRCMP" target="_top">xmlStrcmp</a></tt>. If there is a match, it calls the function <tt class="function">parseStory</tt>.</p></td></tr></table></div><p>
+ </p><p>
+ </p><pre class="programlisting">
+void
+parseStory (xmlDocPtr doc, xmlNodePtr cur) {
+
+ xmlChar *key;
+ <a name="anothergetchild"></a><img src="images/callouts/1.png" alt="1" border="0"> cur = cur-&gt;xmlChildrenNode;
+ <a name="findkeyword"></a><img src="images/callouts/2.png" alt="2" border="0"> while (cur != NULL) {
+ if ((!xmlStrcmp(cur-&gt;name, (const xmlChar *)"keyword"))) {
+ <a name="foundkeyword"></a><img src="images/callouts/3.png" alt="3" border="0"> key = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
+ printf("keyword: %s\n", key);
+ xmlFree(key);
+ }
+ cur = cur-&gt;next;
+ }
+ return;
+}
+ </pre><p>
+ </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#anothergetchild"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>Again we get the first child node.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#findkeyword"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Like the loop above, we then iterate through the nodes, looking
+ for one that matches the element we're interested in, in this case
+ "keyword".</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#foundkeyword"><img src="images/callouts/3.png" alt="3" border="0"></a> </td><td valign="top" align="left"><p>When we find the "keyword" element, we need to print
+ its contents. Remember that in <span class="acronym">XML</span>, the text
+ contained within an element is a child node of that element, so we
+ turn to <tt class="varname">cur-&gt;xmlChildrenNode</tt>. To retrieve it, we
+ use the function <tt class="function"><a href="http://xmlsoft.org/html/libxml-tree.html#XMLNODELISTGETSTRING" target="_top">xmlNodeListGetString</a></tt>, which also takes the <tt class="varname">doc</tt> pointer as an argument. In this case, we just print it out.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p>Because <tt class="function">xmlNodeListGetString</tt> allocates
+ memory for the string it returns, you must use
+ <tt class="function">xmlFree</tt> to free it.</p></td></tr></table></div></td></tr></table></div><p>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Parsing the file </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Using XPath to Retrieve Element Content</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/ar01s05.html b/libxml2-2.9.10/doc/tutorial/ar01s05.html
new file mode 100644
index 0000000..1c40925
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/ar01s05.html
@@ -0,0 +1,55 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Using XPath to Retrieve Element Content</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s04.html" title="Retrieving Element Content"><link rel="next" href="ar01s06.html" title="Writing element content"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using XPath to Retrieve Element Content</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s04.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s06.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialxpath"></a>Using XPath to Retrieve Element Content</h2></div></div><div></div></div><p>In addition to walking the document tree to find an element,
+ <span class="application">Libxml2</span> includes support for
+ use of <span class="application">XPath</span> expressions to retrieve sets of
+ nodes that match a specified criteria. Full documentation of the
+ <span class="application">XPath</span> <span class="acronym">API</span> is <a href="http://xmlsoft.org/html/libxml-xpath.html" target="_top">here</a>.
+ </p><p><span class="application">XPath</span> allows searching through a document
+ for nodes that match specified criteria. In the example below we search
+ through a document for the contents of all <tt class="varname">keyword</tt>
+ elements.
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p>A full discussion of <span class="application">XPath</span> is beyond
+ the scope of this document. For details on its use, see the <a href="http://www.w3.org/TR/xpath" target="_top">XPath specification</a>.</p></td></tr></table></div><p>
+ Full code for this example is at <a href="apd.html" title="D. Code for XPath Example">Appendix D, <i>Code for XPath Example</i></a>.
+ </p><p>Using <span class="application">XPath</span> requires setting up an
+ xmlXPathContext and then supplying the <span class="application">XPath</span>
+ expression and the context to the
+ <tt class="function">xmlXPathEvalExpression</tt> function. The function returns
+ an xmlXPathObjectPtr, which includes the set of nodes satisfying the
+ <span class="application">XPath</span> expression.</p><p>
+ </p><pre class="programlisting">
+ xmlXPathObjectPtr
+ getnodeset (xmlDocPtr doc, xmlChar *xpath){
+
+ <a name="cocontext"></a><img src="images/callouts/1.png" alt="1" border="0">xmlXPathContextPtr context;
+ xmlXPathObjectPtr result;
+
+ <a name="cocreatecontext"></a><img src="images/callouts/2.png" alt="2" border="0">context = xmlXPathNewContext(doc);
+ <a name="corunxpath"></a><img src="images/callouts/3.png" alt="3" border="0">result = xmlXPathEvalExpression(xpath, context);
+ <a name="cocheckxpathresult"></a><img src="images/callouts/4.png" alt="4" border="0">if(xmlXPathNodeSetIsEmpty(result-&gt;nodesetval)){
+ xmlXPathFreeObject(result);
+ printf("No result\n");
+ return NULL;
+ </pre><p>
+ </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#cocontext"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>First we declare our variables.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#cocreatecontext"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Initialize the <tt class="varname">context</tt> variable.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#corunxpath"><img src="images/callouts/3.png" alt="3" border="0"></a> </td><td valign="top" align="left"><p>Apply the <span class="application">XPath</span> expression.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#cocheckxpathresult"><img src="images/callouts/4.png" alt="4" border="0"></a> </td><td valign="top" align="left"><p>Check the result and free the memory allocated to
+ <tt class="varname">result</tt> if no result is found.</p></td></tr></table></div><p>
+ </p><p>The xmlPathObjectPtr returned by the function contains a set of nodes
+ and other information needed to iterate through the set and act on the
+ results. For this example, our functions returns the
+ <tt class="varname">xmlXPathObjectPtr</tt>. We use it to print the contents of
+ <tt class="varname">keyword</tt> nodes in our document. The node set object
+ includes the number of elements in the set (<tt class="varname">nodeNr</tt>) and
+ an array of nodes (<tt class="varname">nodeTab</tt>):
+ </p><pre class="programlisting">
+ <a name="conodesetcounter"></a><img src="images/callouts/1.png" alt="1" border="0">for (i=0; i &lt; nodeset-&gt;nodeNr; i++) {
+ <a name="coprintkeywords"></a><img src="images/callouts/2.png" alt="2" border="0">keyword = xmlNodeListGetString(doc, nodeset-&gt;nodeTab[i]-&gt;xmlChildrenNode, 1);
+ printf("keyword: %s\n", keyword);
+ xmlFree(keyword);
+ }
+ </pre><p>
+ </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#conodesetcounter"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>The value of <tt class="varname">nodeset-&gt;Nr</tt> holds the number of
+ elements in the node set. Here we use it to iterate through the array.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#coprintkeywords"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Here we print the contents of each of the nodes returned.
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p>Note that we are printing the child node of the node that is
+ returned, because the contents of the <tt class="varname">keyword</tt>
+ element are a child text node.</p></td></tr></table></div><p>
+ </p></td></tr></table></div><p>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s06.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Retrieving Element Content </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Writing element content</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/ar01s06.html b/libxml2-2.9.10/doc/tutorial/ar01s06.html
new file mode 100644
index 0000000..c09e6ef
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/ar01s06.html
@@ -0,0 +1,35 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Writing element content</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s05.html" title="Using XPath to Retrieve Element Content"><link rel="next" href="ar01s07.html" title="Writing Attribute"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing element content</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s05.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s07.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialwritingcontent"></a>Writing element content</h2></div></div><div></div></div><p><a class="indexterm" name="id2586968"></a>
+ Writing element content uses many of the same steps we used above
+ &#8212; parsing the document and walking the tree. We parse the document,
+ then traverse the tree to find the place we want to insert our element. For
+ this example, we want to again find the "storyinfo" element and
+ this time insert a keyword. Then we'll write the file to disk. Full code:
+ <a href="ape.html" title="E. Code for Add Keyword Example">Appendix E, <i>Code for Add Keyword Example</i></a></p><p>
+ The main difference in this example is in
+ <tt class="function">parseStory</tt>:
+
+ </p><pre class="programlisting">
+void
+parseStory (xmlDocPtr doc, xmlNodePtr cur, char *keyword) {
+
+ <a name="addkeyword"></a><img src="images/callouts/1.png" alt="1" border="0"> xmlNewTextChild (cur, NULL, "keyword", keyword);
+ return;
+}
+ </pre><p>
+ </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#addkeyword"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>The <tt class="function"><a href="http://xmlsoft.org/html/libxml-tree.html#XMLNEWTEXTCHILD" target="_top">xmlNewTextChild</a></tt>
+ function adds a new child element at the
+ current node pointer's location in the
+ tree, specified by <tt class="varname">cur</tt>.</p></td></tr></table></div><p>
+ </p><p>
+ <a class="indexterm" name="id2587052"></a>
+ Once the node has been added, we would like to write the document to
+ file. Is you want the element to have a namespace, you can add it here as
+ well. In our case, the namespace is NULL.
+ </p><pre class="programlisting">
+ xmlSaveFormatFile (docname, doc, 1);
+ </pre><p>
+ The first parameter is the name of the file to be written. You'll notice
+ it is the same as the file we just read. In this case, we just write over
+ the old file. The second parameter is a pointer to the xmlDoc
+ structure. Setting the third parameter equal to one ensures indenting on output.
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s07.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Using XPath to Retrieve Element Content </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Writing Attribute</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/ar01s07.html b/libxml2-2.9.10/doc/tutorial/ar01s07.html
new file mode 100644
index 0000000..fd5c4dd
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/ar01s07.html
@@ -0,0 +1,30 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Writing Attribute</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s06.html" title="Writing element content"><link rel="next" href="ar01s08.html" title="Retrieving Attributes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing Attribute</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s06.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s08.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialwritingattribute"></a>Writing Attribute</h2></div></div><div></div></div><p><a class="indexterm" name="id2587093"></a>
+Writing an attribute is similar to writing text to a new element. In
+ this case, we'll add a reference <span class="acronym">URI</span> to our
+ document. Full code:<a href="apf.html" title="F. Code for Add Attribute Example">Appendix F, <i>Code for Add Attribute Example</i></a>.</p><p>
+ A <tt class="sgmltag-element">reference</tt> is a child of the <tt class="sgmltag-element">story</tt>
+ element, so finding the place to put our new element and attribute is
+ simple. As soon as we do the error-checking test in our
+ <tt class="function">parseDoc</tt>, we are in the right spot to add our
+ element. But before we do that, we need to make a declaration using a
+ data type we have not seen yet:
+ </p><pre class="programlisting">
+ xmlAttrPtr newattr;
+ </pre><p>
+ We also need an extra xmlNodePtr:
+ </p><pre class="programlisting">
+ xmlNodePtr newnode;
+ </pre><p>
+ </p><p>
+ The rest of <tt class="function">parseDoc</tt> is the same as before until we
+ check to see if our root element is <tt class="sgmltag-element">story</tt>. If it is,
+ then we know we are at the right spot to add our element:
+
+ </p><pre class="programlisting">
+ <a name="addreferencenode"></a><img src="images/callouts/1.png" alt="1" border="0"> newnode = xmlNewTextChild (cur, NULL, "reference", NULL);
+ <a name="addattributenode"></a><img src="images/callouts/2.png" alt="2" border="0"> newattr = xmlNewProp (newnode, "uri", uri);
+ </pre><p>
+ </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#addreferencenode"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>First we add a new node at the location of the current node
+ pointer, <tt class="varname">cur.</tt> using the <a href="http://xmlsoft.org/html/libxml-tree.html#XMLNEWTEXTCHILD" target="_top">xmlNewTextChild</a> function.</p></td></tr></table></div><p>
+ </p><p>Once the node is added, the file is written to disk just as in the
+ previous example in which we added an element with text content.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s06.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s08.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Writing element content </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Retrieving Attributes</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/ar01s08.html b/libxml2-2.9.10/doc/tutorial/ar01s08.html
new file mode 100644
index 0000000..758f811
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/ar01s08.html
@@ -0,0 +1,38 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Retrieving Attributes</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s07.html" title="Writing Attribute"><link rel="next" href="ar01s09.html" title="Encoding Conversion"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Retrieving Attributes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s07.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s09.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialattribute"></a>Retrieving Attributes</h2></div></div><div></div></div><p><a class="indexterm" name="id2587236"></a>
+Retrieving the value of an attribute is similar to the previous
+ example in which we retrieved a node's text contents. In this case we'll
+ extract the value of the <span class="acronym">URI</span> we added in the previous
+ section. Full code: <a href="apg.html" title="G. Code for Retrieving Attribute Value Example">Appendix G, <i>Code for Retrieving Attribute Value Example</i></a>.</p><p>
+ The initial steps for this example are similar to the previous ones: parse
+ the doc, find the element you are interested in, then enter a function to
+ carry out the specific task required. In this case, we call
+ <tt class="function">getReference</tt>:
+ </p><pre class="programlisting">
+void
+getReference (xmlDocPtr doc, xmlNodePtr cur) {
+
+ xmlChar *uri;
+ cur = cur-&gt;xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!xmlStrcmp(cur-&gt;name, (const xmlChar *)"reference"))) {
+ <a name="getattributevalue"></a><img src="images/callouts/1.png" alt="1" border="0"> uri = xmlGetProp(cur, "uri");
+ printf("uri: %s\n", uri);
+ xmlFree(uri);
+ }
+ cur = cur-&gt;next;
+ }
+ return;
+}
+ </pre><p>
+
+ </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#getattributevalue"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>
+ The key function is <tt class="function"><a href="http://xmlsoft.org/html/libxml-tree.html#XMLGETPROP" target="_top">xmlGetProp</a></tt>, which returns an
+ <tt class="varname">xmlChar</tt> containing the attribute's value. In this case,
+ we just print it out.
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p>
+ If you are using a <span class="acronym">DTD</span> that declares a fixed or
+ default value for the attribute, this function will retrieve it.
+ </p></td></tr></table></div><p>
+ </p></td></tr></table></div><p>
+
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s07.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s09.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Writing Attribute </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Encoding Conversion</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/ar01s09.html b/libxml2-2.9.10/doc/tutorial/ar01s09.html
new file mode 100644
index 0000000..2987add
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/ar01s09.html
@@ -0,0 +1,63 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Encoding Conversion</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s08.html" title="Retrieving Attributes"><link rel="next" href="apa.html" title="A. Compilation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Encoding Conversion</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s08.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apa.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialconvert"></a>Encoding Conversion</h2></div></div><div></div></div><p><a class="indexterm" name="id2587348"></a>
+Data encoding compatibility problems are one of the most common
+ difficulties encountered by programmers new to <span class="acronym">XML</span> in
+ general and <span class="application">libxml</span> in particular. Thinking
+ through the design of your application in light of this issue will help
+ avoid difficulties later. Internally, <span class="application">libxml</span>
+ stores and manipulates data in the UTF-8 format. Data used by your program
+ in other formats, such as the commonly used ISO-8859-1 encoding, must be
+ converted to UTF-8 before passing it to <span class="application">libxml</span>
+ functions. If you want your program's output in an encoding other than
+ UTF-8, you also must convert it.</p><p><span class="application">Libxml</span> uses
+ <span class="application">iconv</span> if it is available to convert
+ data. Without <span class="application">iconv</span>, only UTF-8, UTF-16 and
+ ISO-8859-1 can be used as external formats. With
+ <span class="application">iconv</span>, any format can be used provided
+ <span class="application">iconv</span> is able to convert it to and from
+ UTF-8. Currently <span class="application">iconv</span> supports about 150
+ different character formats with ability to convert from any to any. While
+ the actual number of supported formats varies between implementations, every
+ <span class="application">iconv</span> implementation is almost guaranteed to
+ support every format anyone has ever heard of.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/warning.png"></td><th align="left">Warning</th></tr><tr><td colspan="2" align="left" valign="top"><p>A common mistake is to use different formats for the internal data
+ in different parts of one's code. The most common case is an application
+ that assumes ISO-8859-1 to be the internal data format, combined with
+ <span class="application">libxml</span>, which assumes UTF-8 to be the
+ internal data format. The result is an application that treats internal
+ data differently, depending on which code section is executing. The one or
+ the other part of code will then, naturally, misinterpret the data.
+ </p></td></tr></table></div><p>This example constructs a simple document, then adds content provided
+ at the command line to the document's root element and outputs the results
+ to <tt class="filename">stdout</tt> in the proper encoding. For this example, we
+ use ISO-8859-1 encoding. The encoding of the string input at the command
+ line is converted from ISO-8859-1 to UTF-8. Full code: <a href="aph.html" title="H. Code for Encoding Conversion Example">Appendix H, <i>Code for Encoding Conversion Example</i></a></p><p>The conversion, encapsulated in the example code in the
+ <tt class="function">convert</tt> function, uses
+ <span class="application">libxml's</span>
+ <tt class="function">xmlFindCharEncodingHandler</tt> function:
+ </p><pre class="programlisting">
+ <a name="handlerdatatype"></a><img src="images/callouts/1.png" alt="1" border="0">xmlCharEncodingHandlerPtr handler;
+ <a name="calcsize"></a><img src="images/callouts/2.png" alt="2" border="0">size = (int)strlen(in)+1;
+ out_size = size*2-1;
+ out = malloc((size_t)out_size);
+
+&#8230;
+ <a name="findhandlerfunction"></a><img src="images/callouts/3.png" alt="3" border="0">handler = xmlFindCharEncodingHandler(encoding);
+&#8230;
+ <a name="callconversionfunction"></a><img src="images/callouts/4.png" alt="4" border="0">handler-&gt;input(out, &amp;out_size, in, &amp;temp);
+&#8230;
+ <a name="outputencoding"></a><img src="images/callouts/5.png" alt="5" border="0">xmlSaveFormatFileEnc("-", doc, encoding, 1);
+ </pre><p>
+ </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#handlerdatatype"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p><tt class="varname">handler</tt> is declared as a pointer to an
+ <tt class="function">xmlCharEncodingHandler</tt> function.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#calcsize"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>The <tt class="function">xmlCharEncodingHandler</tt> function needs
+ to be given the size of the input and output strings, which are
+ calculated here for strings <tt class="varname">in</tt> and
+ <tt class="varname">out</tt>.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#findhandlerfunction"><img src="images/callouts/3.png" alt="3" border="0"></a> </td><td valign="top" align="left"><p><tt class="function">xmlFindCharEncodingHandler</tt> takes as its
+ argument the data's initial encoding and searches
+ <span class="application">libxml's</span> built-in set of conversion
+ handlers, returning a pointer to the function or NULL if none is
+ found.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#callconversionfunction"><img src="images/callouts/4.png" alt="4" border="0"></a> </td><td valign="top" align="left"><p>The conversion function identified by <tt class="varname">handler</tt>
+ requires as its arguments pointers to the input and output strings,
+ along with the length of each. The lengths must be determined
+ separately by the application.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#outputencoding"><img src="images/callouts/5.png" alt="5" border="0"></a> </td><td valign="top" align="left"><p>To output in a specified encoding rather than UTF-8, we use
+ <tt class="function">xmlSaveFormatFileEnc</tt>, specifying the
+ encoding.</p></td></tr></table></div><p>
+ </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s08.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="apa.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Retrieving Attributes </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> A. Compilation</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/images/blank.png b/libxml2-2.9.10/doc/tutorial/images/blank.png
new file mode 100644
index 0000000..764bf4f
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/blank.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/callouts/1.png b/libxml2-2.9.10/doc/tutorial/images/callouts/1.png
new file mode 100644
index 0000000..7d47343
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/callouts/1.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/callouts/10.png b/libxml2-2.9.10/doc/tutorial/images/callouts/10.png
new file mode 100644
index 0000000..997bbc8
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/callouts/10.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/callouts/2.png b/libxml2-2.9.10/doc/tutorial/images/callouts/2.png
new file mode 100644
index 0000000..5d09341
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/callouts/2.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/callouts/3.png b/libxml2-2.9.10/doc/tutorial/images/callouts/3.png
new file mode 100644
index 0000000..ef7b700
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/callouts/3.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/callouts/4.png b/libxml2-2.9.10/doc/tutorial/images/callouts/4.png
new file mode 100644
index 0000000..adb8364
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/callouts/4.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/callouts/5.png b/libxml2-2.9.10/doc/tutorial/images/callouts/5.png
new file mode 100644
index 0000000..4d7eb46
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/callouts/5.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/callouts/6.png b/libxml2-2.9.10/doc/tutorial/images/callouts/6.png
new file mode 100644
index 0000000..0ba694a
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/callouts/6.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/callouts/7.png b/libxml2-2.9.10/doc/tutorial/images/callouts/7.png
new file mode 100644
index 0000000..472e96f
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/callouts/7.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/callouts/8.png b/libxml2-2.9.10/doc/tutorial/images/callouts/8.png
new file mode 100644
index 0000000..5e60973
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/callouts/8.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/callouts/9.png b/libxml2-2.9.10/doc/tutorial/images/callouts/9.png
new file mode 100644
index 0000000..a0676d2
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/callouts/9.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/caution.png b/libxml2-2.9.10/doc/tutorial/images/caution.png
new file mode 100644
index 0000000..5b7809c
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/caution.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/draft.png b/libxml2-2.9.10/doc/tutorial/images/draft.png
new file mode 100644
index 0000000..0084708
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/draft.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/home.png b/libxml2-2.9.10/doc/tutorial/images/home.png
new file mode 100644
index 0000000..cbb711d
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/home.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/important.png b/libxml2-2.9.10/doc/tutorial/images/important.png
new file mode 100644
index 0000000..12c90f6
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/important.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/next.png b/libxml2-2.9.10/doc/tutorial/images/next.png
new file mode 100644
index 0000000..45835bf
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/next.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/note.png b/libxml2-2.9.10/doc/tutorial/images/note.png
new file mode 100644
index 0000000..d0c3c64
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/note.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/prev.png b/libxml2-2.9.10/doc/tutorial/images/prev.png
new file mode 100644
index 0000000..cf24654
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/prev.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/tip.png b/libxml2-2.9.10/doc/tutorial/images/tip.png
new file mode 100644
index 0000000..5c4aab3
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/tip.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/toc-blank.png b/libxml2-2.9.10/doc/tutorial/images/toc-blank.png
new file mode 100644
index 0000000..6ffad17
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/toc-blank.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/toc-minus.png b/libxml2-2.9.10/doc/tutorial/images/toc-minus.png
new file mode 100644
index 0000000..abbb020
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/toc-minus.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/toc-plus.png b/libxml2-2.9.10/doc/tutorial/images/toc-plus.png
new file mode 100644
index 0000000..941312c
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/toc-plus.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/up.png b/libxml2-2.9.10/doc/tutorial/images/up.png
new file mode 100644
index 0000000..07634de
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/up.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/images/warning.png b/libxml2-2.9.10/doc/tutorial/images/warning.png
new file mode 100644
index 0000000..1c33db8
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/images/warning.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/tutorial/includeaddattribute.c b/libxml2-2.9.10/doc/tutorial/includeaddattribute.c
new file mode 100644
index 0000000..bb6a18b
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/includeaddattribute.c
@@ -0,0 +1,64 @@
+<![CDATA[
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/parser.h>
+
+
+xmlDocPtr
+parseDoc(char *docname, char *uri) {
+
+ xmlDocPtr doc;
+ xmlNodePtr cur;
+ xmlNodePtr newnode;
+ xmlAttrPtr newattr;
+
+ doc = xmlParseFile(docname);
+
+ if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return (NULL);
+ }
+
+ cur = xmlDocGetRootElement(doc);
+
+ if (cur == NULL) {
+ fprintf(stderr,"empty document\n");
+ xmlFreeDoc(doc);
+ return (NULL);
+ }
+
+ if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
+ fprintf(stderr,"document of the wrong type, root node != story");
+ xmlFreeDoc(doc);
+ return (NULL);
+ }
+
+ newnode = xmlNewTextChild (cur, NULL, "reference", NULL);
+ newattr = xmlNewProp (newnode, "uri", uri);
+ return(doc);
+}
+
+int
+main(int argc, char **argv) {
+
+ char *docname;
+ char *uri;
+ xmlDocPtr doc;
+
+ if (argc <= 2) {
+ printf("Usage: %s docname, uri\n", argv[0]);
+ return(0);
+ }
+
+ docname = argv[1];
+ uri = argv[2];
+ doc = parseDoc (docname, uri);
+ if (doc != NULL) {
+ xmlSaveFormatFile (docname, doc, 1);
+ xmlFreeDoc(doc);
+ }
+ return (1);
+}
+]]>
diff --git a/libxml2-2.9.10/doc/tutorial/includeaddkeyword.c b/libxml2-2.9.10/doc/tutorial/includeaddkeyword.c
new file mode 100644
index 0000000..975168d
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/includeaddkeyword.c
@@ -0,0 +1,75 @@
+<![CDATA[
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/parser.h>
+
+void
+parseStory (xmlDocPtr doc, xmlNodePtr cur, char *keyword) {
+
+ xmlNewTextChild (cur, NULL, "keyword", keyword);
+ return;
+}
+
+xmlDocPtr
+parseDoc(char *docname, char *keyword) {
+
+ xmlDocPtr doc;
+ xmlNodePtr cur;
+
+ doc = xmlParseFile(docname);
+
+ if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return (NULL);
+ }
+
+ cur = xmlDocGetRootElement(doc);
+
+ if (cur == NULL) {
+ fprintf(stderr,"empty document\n");
+ xmlFreeDoc(doc);
+ return (NULL);
+ }
+
+ if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
+ fprintf(stderr,"document of the wrong type, root node != story");
+ xmlFreeDoc(doc);
+ return (NULL);
+ }
+
+ cur = cur->xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!xmlStrcmp(cur->name, (const xmlChar *)"storyinfo"))){
+ parseStory (doc, cur, keyword);
+ }
+
+ cur = cur->next;
+ }
+ return(doc);
+}
+
+int
+main(int argc, char **argv) {
+
+ char *docname;
+ char *keyword;
+ xmlDocPtr doc;
+
+ if (argc <= 2) {
+ printf("Usage: %s docname, keyword\n", argv[0]);
+ return(0);
+ }
+
+ docname = argv[1];
+ keyword = argv[2];
+ doc = parseDoc (docname, keyword);
+ if (doc != NULL) {
+ xmlSaveFormatFile (docname, doc, 0);
+ xmlFreeDoc(doc);
+ }
+
+ return (1);
+}
+]]>
diff --git a/libxml2-2.9.10/doc/tutorial/includeconvert.c b/libxml2-2.9.10/doc/tutorial/includeconvert.c
new file mode 100644
index 0000000..482e56f
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/includeconvert.c
@@ -0,0 +1,73 @@
+<![CDATA[
+#include <string.h>
+#include <libxml/parser.h>
+
+
+unsigned char*
+convert (unsigned char *in, char *encoding)
+{
+ unsigned char *out;
+ int ret,size,out_size,temp;
+ xmlCharEncodingHandlerPtr handler;
+
+ size = (int)strlen(in)+1;
+ out_size = size*2-1;
+ out = malloc((size_t)out_size);
+
+ if (out) {
+ handler = xmlFindCharEncodingHandler(encoding);
+
+ if (!handler) {
+ free(out);
+ out = NULL;
+ }
+ }
+ if (out) {
+ temp=size-1;
+ ret = handler->input(out, &out_size, in, &temp);
+ if (ret || temp-size+1) {
+ if (ret) {
+ printf("conversion wasn't successful.\n");
+ } else {
+ printf("conversion wasn't successful. converted: %i octets.\n",temp);
+ }
+ free(out);
+ out = NULL;
+ } else {
+ out = realloc(out,out_size+1);
+ out[out_size]=0; /*null terminating out*/
+
+ }
+ } else {
+ printf("no mem\n");
+ }
+ return (out);
+}
+
+
+int
+main(int argc, char **argv) {
+
+ unsigned char *content, *out;
+ xmlDocPtr doc;
+ xmlNodePtr rootnode;
+ char *encoding = "ISO-8859-1";
+
+
+ if (argc <= 1) {
+ printf("Usage: %s content\n", argv[0]);
+ return(0);
+ }
+
+ content = argv[1];
+
+ out = convert(content, encoding);
+
+ doc = xmlNewDoc ("1.0");
+ rootnode = xmlNewDocNode(doc, NULL, (const xmlChar*)"root", out);
+ xmlDocSetRootElement(doc, rootnode);
+
+ xmlSaveFormatFileEnc("-", doc, encoding, 1);
+ return (1);
+}
+]]>
diff --git a/libxml2-2.9.10/doc/tutorial/includegetattribute.c b/libxml2-2.9.10/doc/tutorial/includegetattribute.c
new file mode 100644
index 0000000..b2b7471
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/includegetattribute.c
@@ -0,0 +1,72 @@
+<![CDATA[
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/parser.h>
+
+void
+getReference (xmlDocPtr doc, xmlNodePtr cur) {
+
+ xmlChar *uri;
+ cur = cur->xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!xmlStrcmp(cur->name, (const xmlChar *)"reference"))) {
+ uri = xmlGetProp(cur, "uri");
+ printf("uri: %s\n", uri);
+ xmlFree(uri);
+ }
+ cur = cur->next;
+ }
+ return;
+}
+
+
+void
+parseDoc(char *docname) {
+
+ xmlDocPtr doc;
+ xmlNodePtr cur;
+
+ doc = xmlParseFile(docname);
+
+ if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return;
+ }
+
+ cur = xmlDocGetRootElement(doc);
+
+ if (cur == NULL) {
+ fprintf(stderr,"empty document\n");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
+ fprintf(stderr,"document of the wrong type, root node != story");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ getReference (doc, cur);
+ xmlFreeDoc(doc);
+ return;
+}
+
+int
+main(int argc, char **argv) {
+
+ char *docname;
+
+ if (argc <= 1) {
+ printf("Usage: %s docname\n", argv[0]);
+ return(0);
+ }
+
+ docname = argv[1];
+ parseDoc (docname);
+
+ return (1);
+}
+]]>
diff --git a/libxml2-2.9.10/doc/tutorial/includekeyword.c b/libxml2-2.9.10/doc/tutorial/includekeyword.c
new file mode 100644
index 0000000..e9bb467
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/includekeyword.c
@@ -0,0 +1,79 @@
+<![CDATA[
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/parser.h>
+
+void
+parseStory (xmlDocPtr doc, xmlNodePtr cur) {
+
+ xmlChar *key;
+ cur = cur->xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!xmlStrcmp(cur->name, (const xmlChar *)"keyword"))) {
+ key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
+ printf("keyword: %s\n", key);
+ xmlFree(key);
+ }
+ cur = cur->next;
+ }
+ return;
+}
+
+static void
+parseDoc(char *docname) {
+
+ xmlDocPtr doc;
+ xmlNodePtr cur;
+
+ doc = xmlParseFile(docname);
+
+ if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return;
+ }
+
+ cur = xmlDocGetRootElement(doc);
+
+ if (cur == NULL) {
+ fprintf(stderr,"empty document\n");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
+ fprintf(stderr,"document of the wrong type, root node != story");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ cur = cur->xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!xmlStrcmp(cur->name, (const xmlChar *)"storyinfo"))){
+ parseStory (doc, cur);
+ }
+
+ cur = cur->next;
+ }
+
+ xmlFreeDoc(doc);
+ return;
+}
+
+int
+main(int argc, char **argv) {
+
+ char *docname;
+
+ if (argc <= 1) {
+ printf("Usage: %s docname\n", argv[0]);
+ return(0);
+ }
+
+ docname = argv[1];
+ parseDoc (docname);
+
+ return (1);
+}
+]]>
diff --git a/libxml2-2.9.10/doc/tutorial/includexpath.c b/libxml2-2.9.10/doc/tutorial/includexpath.c
new file mode 100644
index 0000000..6b66e60
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/includexpath.c
@@ -0,0 +1,74 @@
+<![CDATA[
+#include <libxml/parser.h>
+#include <libxml/xpath.h>
+
+xmlDocPtr
+getdoc (char *docname) {
+ xmlDocPtr doc;
+ doc = xmlParseFile(docname);
+
+ if (doc == NULL ) {
+ fprintf(stderr,"Document not parsed successfully. \n");
+ return NULL;
+ }
+
+ return doc;
+}
+
+xmlXPathObjectPtr
+getnodeset (xmlDocPtr doc, xmlChar *xpath){
+
+ xmlXPathContextPtr context;
+ xmlXPathObjectPtr result;
+
+ context = xmlXPathNewContext(doc);
+ if (context == NULL) {
+ printf("Error in xmlXPathNewContext\n");
+ return NULL;
+ }
+ result = xmlXPathEvalExpression(xpath, context);
+ xmlXPathFreeContext(context);
+ if (result == NULL) {
+ printf("Error in xmlXPathEvalExpression\n");
+ return NULL;
+ }
+ if(xmlXPathNodeSetIsEmpty(result->nodesetval)){
+ xmlXPathFreeObject(result);
+ printf("No result\n");
+ return NULL;
+ }
+ return result;
+}
+int
+main(int argc, char **argv) {
+
+ char *docname;
+ xmlDocPtr doc;
+ xmlChar *xpath = (xmlChar*) "//keyword";
+ xmlNodeSetPtr nodeset;
+ xmlXPathObjectPtr result;
+ int i;
+ xmlChar *keyword;
+
+ if (argc <= 1) {
+ printf("Usage: %s docname\n", argv[0]);
+ return(0);
+ }
+
+ docname = argv[1];
+ doc = getdoc(docname);
+ result = getnodeset (doc, xpath);
+ if (result) {
+ nodeset = result->nodesetval;
+ for (i=0; i < nodeset->nodeNr; i++) {
+ keyword = xmlNodeListGetString(doc, nodeset->nodeTab[i]->xmlChildrenNode, 1);
+ printf("keyword: %s\n", keyword);
+ xmlFree(keyword);
+ }
+ xmlXPathFreeObject (result);
+ }
+ xmlFreeDoc(doc);
+ xmlCleanupParser();
+ return (1);
+}
+]]> \ No newline at end of file
diff --git a/libxml2-2.9.10/doc/tutorial/index.html b/libxml2-2.9.10/doc/tutorial/index.html
new file mode 100644
index 0000000..51fd481
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/index.html
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Libxml Tutorial</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="next" href="ar01s02.html" title="Data Types"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Libxml Tutorial</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s02.html">Next</a></td></tr></table><hr></div><div class="article" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id2473660"></a>Libxml Tutorial</h1></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="surname">Fleck</span></h3></div></div><div><p class="copyright">Copyright © 2002, 2003 John Fleck</p></div><div><div class="revhistory"><table border="1" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 1</td><td align="left">June 4, 2002</td></tr><tr><td align="left" colspan="2">Initial draft</td></tr><tr><td align="left">Revision 2</td><td align="left">June 12, 2002</td></tr><tr><td align="left" colspan="2">retrieving attribute value added</td></tr><tr><td align="left">Revision 3</td><td align="left">Aug. 31, 2002</td></tr><tr><td align="left" colspan="2">freeing memory fix</td></tr><tr><td align="left">Revision 4</td><td align="left">Nov. 10, 2002</td></tr><tr><td align="left" colspan="2">encoding discussion added</td></tr><tr><td align="left">Revision 5</td><td align="left">Dec. 15, 2002</td></tr><tr><td align="left" colspan="2">more memory freeing changes</td></tr><tr><td align="left">Revision 6</td><td align="left">Jan. 26. 2003</td></tr><tr><td align="left" colspan="2">add index</td></tr><tr><td align="left">Revision 7</td><td align="left">April 25, 2003</td></tr><tr><td align="left" colspan="2">add compilation appendix</td></tr><tr><td align="left">Revision 8</td><td align="left">July 24, 2003</td></tr><tr><td align="left" colspan="2">add XPath example</td></tr><tr><td align="left">Revision 9</td><td align="left">Feb. 14, 2004</td></tr><tr><td align="left" colspan="2">Fix bug in XPath example</td></tr><tr><td align="left">Revision 7</td><td align="left">Aug. 24, 2004</td></tr><tr><td align="left" colspan="2">Fix another bug in XPath example</td></tr></table></div></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="index.html#introduction">Introduction</a></dt><dt><a href="ar01s02.html">Data Types</a></dt><dt><a href="ar01s03.html">Parsing the file</a></dt><dt><a href="ar01s04.html">Retrieving Element Content</a></dt><dt><a href="ar01s05.html">Using XPath to Retrieve Element Content</a></dt><dt><a href="ar01s06.html">Writing element content</a></dt><dt><a href="ar01s07.html">Writing Attribute</a></dt><dt><a href="ar01s08.html">Retrieving Attributes</a></dt><dt><a href="ar01s09.html">Encoding Conversion</a></dt><dt>A. <a href="apa.html">Compilation</a></dt><dt>B. <a href="apb.html">Sample Document</a></dt><dt>C. <a href="apc.html">Code for Keyword Example</a></dt><dt>D. <a href="apd.html">Code for XPath Example</a></dt><dt>E. <a href="ape.html">Code for Add Keyword Example</a></dt><dt>F. <a href="apf.html">Code for Add Attribute Example</a></dt><dt>G. <a href="apg.html">Code for Retrieving Attribute Value Example</a></dt><dt>H. <a href="aph.html">Code for Encoding Conversion Example</a></dt><dt>I. <a href="api.html">Acknowledgements</a></dt></dl></div><div class="abstract"><p class="title"><b>Abstract</b></p><p>Libxml is a freely licensed C language library for handling
+ <span class="acronym">XML</span>, portable across a large number of platforms. This
+ tutorial provides examples of its basic functions.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="introduction"></a>Introduction</h2></div></div><div></div></div><p>Libxml is a C language library implementing functions for reading,
+ creating and manipulating <span class="acronym">XML</span> data. This tutorial
+ provides example code and explanations of its basic functionality.</p><p>Libxml and more details about its use are available on <a href="http://www.xmlsoft.org/" target="_top">the project home page</a>. Included there is complete <a href="http://xmlsoft.org/html/libxml-lib.html" target="_top">
+ <span class="acronym">API</span> documentation</a>. This tutorial is not meant
+ to substitute for that complete documentation, but to illustrate the
+ functions needed to use the library to perform basic operations.
+
+</p><p>The tutorial is based on a simple <span class="acronym">XML</span> application I
+ use for articles I write. The format includes metadata and the body
+ of the article.</p><p>The example code in this tutorial demonstrates how to:
+ </p><div class="itemizedlist"><ul type="disc"><li><p>Parse the document.</p></li><li><p>Extract the text within a specified element.</p></li><li><p>Add an element and its content.</p></li><li><p>Add an attribute.</p></li><li><p>Extract the value of an attribute.</p></li></ul></div><p>
+ </p><p>Full code for the examples is included in the appendices.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ar01s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Data Types</td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/ix01.html b/libxml2-2.9.10/doc/tutorial/ix01.html
new file mode 100644
index 0000000..fca9d42
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/ix01.html
@@ -0,0 +1 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Index</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="api.html" title="I. Acknowledgements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Index</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="index"><div class="titlepage"><div><div><h2 class="title"><a name="id2588704"></a>Index</h2></div></div><div></div></div><div class="index"><div class="indexdiv"><h3>A</h3><dl><dt>attribute</dt><dd><dl><dt>retrieving value, <a href="ar01s08.html">Retrieving Attributes</a></dt><dt>writing, <a href="ar01s07.html">Writing Attribute</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>C</h3><dl><dt>compiler flags, <a href="apa.html">Compilation</a></dt></dl></div><div class="indexdiv"><h3>E</h3><dl><dt>element</dt><dd><dl><dt>retrieving content, <a href="ar01s04.html">Retrieving Element Content</a></dt><dt>writing content, <a href="ar01s06.html">Writing element content</a></dt></dl></dd><dt>encoding, <a href="ar01s03.html">Parsing the file</a>, <a href="ar01s09.html">Encoding Conversion</a></dt></dl></div><div class="indexdiv"><h3>F</h3><dl><dt>file</dt><dd><dl><dt>parsing, <a href="ar01s03.html">Parsing the file</a>-<a href="ar01s03.html">Parsing the file</a></dt><dt>saving, <a href="ar01s06.html">Writing element content</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>X</h3><dl><dt>xmlChar, <a href="ar01s02.html">Data Types</a></dt><dt>xmlDoc, <a href="ar01s02.html">Data Types</a></dt><dt>xmlNodePtr, <a href="ar01s02.html">Data Types</a></dt></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">I. Acknowledgements </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
diff --git a/libxml2-2.9.10/doc/tutorial/xmltutorial.pdf b/libxml2-2.9.10/doc/tutorial/xmltutorial.pdf
new file mode 100644
index 0000000..967d445
--- /dev/null
+++ b/libxml2-2.9.10/doc/tutorial/xmltutorial.pdf
@@ -0,0 +1,1336 @@
+%PDF-1.3
+%ª«¬­
+4 0 obj
+<< /Type /Info
+/Producer (FOP 0.20.5) >>
+endobj
+5 0 obj
+<< /Length 1748 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gb"/*>Edeu'RnB3cso,c'tRV<@2QG"Te1sI,sZ*n#KKlNVMQ<5BA<CZaL=]`*:HduRjm'>q5!'k+!#c"8(NNgbpHe&;a;1aP(M@rJfk-$BS+$?JcRY,(_A6k,SUN`TO7efXhh3i=3:BXHM%E2OW]0H+sk$H[O\XG#u0mW@.r"s`W.g99!tcR*(\/("@>q@BW^Q2G*D>/#n3]_.il=X.o?OD#U^04dS]Ss+,a%^lQgnf/]&ceW@ko*%B0QokTBn:$jairCK+PLS%Cdch@t;kIOGu!8)fQ]DhR/U#>#9%l:;J>aO=nBdX8N?;VToPUM@?BfP;2DbSCG8.#;H:nr:@X[RoUP5#8V!2XYms3+,Pg+L(An4XOouF2iL@.s#m5[\'e,fq`PS,Y"o@$je=#b?gu9;/r=qMt:mb%%G5$FjcsdUbn".i6X#Km]hZSOE(i@A:'C!]#YQVN-&c&_nu&jGD2gg2I,X>Af/QL5%8n)7XSCb0W0Z8*)+\&9B^bTmkJ.5_$RWeH_2p2XZM9@ot$UX[_53q*&3VO&J)5%86Y$AZWkI@N:&FKcs%p6WMQCcUFbh8)(40P\*ZA"bb8R+Uti6J;Fdmlr'!#08-$\rUW.S*`0l$l7lOkfeCu3KUG37:dV;6?`SiLnX<n!4kq*4TfOBpT^m(\"nXUCddT@TZF=,%q),uW\\A[R"4E3]Qn:P;P2sUfK_uU5s2`jJtfm8j`_P0-RRuL2'@glpXN1mQJT-EqHY]=?4Y^:1$"B&ZEASTkKDdS:=NG[qkiHhiY7uX6Re5WhG;&S]OHL=\;B-\F8W6&_3=DhH3NbV#F];7UL+)*hY@q]h'U$@""^j(`qe],MJ;RBq^QtF<scN!-Japj9N?UVJ><g=gs\RDaGkGq,!_YHg5q[/?$QtD7Oo--g8SJKtBFH7:ieXAm!,]<3VO_=2:C,jI_(!EGC3:b-8O%N@VcEs3iRs;fu`m\L$KOn9:ZEq/;R97cpQB+03O$#I/1`g$QYQ=GYbdYjj[2(\]fJXL:PpABMO$+\J4Sm"Ddsjld]8>36m\Ar>kEqpnE4+,0ZZ3>mbtc]/Ye]ERO8`($8oE>X;g2g1^GaWe,."f<Z*X"^Ya?i2%8I6fN9J#r2iKGoom91+Os`\R'=pEQOgA/h`u^U<s$,"p=U^Ksck/%*3sYDJpf-S,B8":bJs5_!krpr44uPMaD:C7&(hPhHQK_IG&[@W\]@:&U2`1u#r9:g`-]8n7b@-u@A9iV6?&#s[;]5e"4UdB6qSXPPL-l/,L"L$5aSa]?LYMN6(@@R"?A<n+G]^6)SF=NJP[6=s^W9lnL6L`-nZBNPTB3?F\8$LUEQ74;&(dRT7AE8hase`F5)b<2_e;\1Wr/aMUVD@N9hgS$\LF(ih:9EQGof$TjN*3M0mi9'Hh;7*B_XM"3,n.tf,m:'pMB[[p%hS0kCZq^%2W]_E6<1X4H)h+#J.A0kOpYtT3`f4"ks8Wg2IK9F/SBsr*be4ce7Bq,]SL214R->\E*6Km3M;^8S1^,jb5M4kL$muHb\#!ZDs2A'bm;94ZWTnMuE=%!9!G)bJEiSMujhEeJoj\[m_?-@s8c*.C1268G+TV1+An"dq!66BOQ/uWk*6"Zr]hpdqsAYX6mH:4q,p%/mN/clgm6_*Vk"=D&P?A)R&GV[-;l5h5dH^[E8!6^<odeltSHSZbE8>O+q)a!Ngs^]Q]QTYaG>BGrFu<d3N?cpcWuA;ji)u%bdDTfKSgY^PE!j~>
+endstream
+endobj
+6 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 5 0 R
+/Annots 7 0 R
+>>
+endobj
+7 0 obj
+[
+8 0 R
+10 0 R
+12 0 R
+14 0 R
+16 0 R
+18 0 R
+20 0 R
+22 0 R
+24 0 R
+26 0 R
+28 0 R
+30 0 R
+32 0 R
+34 0 R
+36 0 R
+38 0 R
+40 0 R
+42 0 R
+]
+endobj
+8 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 336.111 193.44 326.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 9 0 R
+/H /I
+>>
+endobj
+10 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 325.111 189.82 315.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 11 0 R
+/H /I
+>>
+endobj
+12 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 314.111 204.55 304.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 13 0 R
+/H /I
+>>
+endobj
+14 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 303.111 256.22 293.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 15 0 R
+/H /I
+>>
+endobj
+16 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 292.111 312.05 282.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 17 0 R
+/H /I
+>>
+endobj
+18 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 281.111 241.21 271.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 19 0 R
+/H /I
+>>
+endobj
+20 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 270.111 213.72 260.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 21 0 R
+/H /I
+>>
+endobj
+22 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 259.111 228.72 249.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 23 0 R
+/H /I
+>>
+endobj
+24 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 248.111 230.94 238.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 25 0 R
+/H /I
+>>
+endobj
+26 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 237.111 206.23 227.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 27 0 R
+/H /I
+>>
+endobj
+28 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 226.111 229.83 216.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 29 0 R
+/H /I
+>>
+endobj
+30 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 215.111 268.7 205.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 31 0 R
+/H /I
+>>
+endobj
+32 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 204.111 257.04 194.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 33 0 R
+/H /I
+>>
+endobj
+34 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 193.111 287.86 183.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 35 0 R
+/H /I
+>>
+endobj
+36 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 182.111 286.21 172.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 37 0 R
+/H /I
+>>
+endobj
+38 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 171.111 339.25 161.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 39 0 R
+/H /I
+>>
+endobj
+40 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 160.111 318.98 150.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 41 0 R
+/H /I
+>>
+endobj
+42 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 149.111 231.76 139.111 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 43 0 R
+/H /I
+>>
+endobj
+44 0 obj
+<< /Length 1970 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=,=c_>r%"@)@iO:/L`pnKL/_:&.,f(7`!X7:ABPbqR$=B([4oTk@OWIA+4)'QU(?B+bQUm"&pP5fY2lRStIc)5A=+PRF'mbH1$b\5c1meN1+6MFRp&93T.bTmCC[Xt;`dSL&60,^g0&&(*cX!K=g*;q:et62rBUCjRZ5n?05Ff\bT:/_4"`%09AcElf^08^P=?A?TFKJcGeUf"b7J5C3b<,X-$:\'NQXH>\Y#;"_As:Kf[l:Q."b%M*F!R*3AN'##69g9!fQc."g"2G@I+`7q@&5U'r$"^?k@\d^C1kkf4S(@Gq.OJSaUa\R=EctaF!:u9NfqLs,%M0\b<%#]H])4C,>^$F,<;gtL22]H)KKDnY251JPZj\_eqmgMQE@Du&XI!2GcuSro%=1]VO6g=97Burk(cB>ITR<U_Zd*T?6R<!GG!14Na[=D4:DnhTujblSW=S.%2mBrKj@$j)PNc$9t=sUDe)5*(@uu3':?4pgi>8R9JdtsHgE+k=Y'S]VNL4U<"+-#;V85td%%r\Xj6![NqhME,!+"t90\oA1k+o'>"$rlgTG:gRa:t%=mj>_$I7F/7j+`9b?+Xi^hU:Bh;,1@e9s4!-,?0#(UN<<bVZ?VB%f0pk^)=l/SElH;SC87e+(\+;"Ds;AQ2!c?t(%-IKlbX77mQ&B$*P59F0p:i7e-QS5phm_1WV!1Q>#4[8>'Q@NK56"R\7)dp;4j$:,H[&4!7)rI?Y68=RN#]qkrdkK@JH&pq<B3PBiP6X3e6%\U6Yr6W[p5Th/!enQ=_JMjif1pc6kYUL_+I;i=J%#q2>:D`NOOr+d=Y[c]gWC-oViQH)!;CLs;hDhq)GuRnlk89ZK>+-C0.HtfRmQ5LA[Kn^hXV3ei2*!;C1nA4A`m2C'q29lVD77t>J8P9p3`RP`$hQgfWHkO#_dki3GO?PeZMhFM?]pW-r6Hc`op.:b4a0TfB(JojgKl7A\h!I&P;]dG4)u'c,+fp1G+Abf*8<IB8t6#3LW<h<fJ+gMG"m9af/+RU8DHcPkN]/F:@0PBiu_@JP`e?l\t.'&bNOGqpjk:9@;03NM#N?TrgTm$p+dM$I_u^P%5/m$1q@))C4_c00^u4\(&oq^D]FO]*l_U_8*gD)m[&3\jgri%%t+<C'HHGM:;^O("m[*`S*R?-Y7<a"KN[m:pcon;NuQIbi"T;!Y`G=$U*9AX=7qbP59a+u5nC`CDP"$`GSW/s_l-t@Va`^B(["scNcQ.uo@29\RSG6Ip6L0q-d1$#"&']USCn"RS0H-k%RW!jF7!1,&.):5F(X4Tl\Zd(`'Y#\`qE%T.T5U)I/Ru]IAHmMQK_?JE+X1DM_os!T!]:[]#thKX?Mc$<D,PB&;MK<.P9r>ZAaTcL,fGt;[+lkrH>\r;ljeq11PAF>FXedJZ;>Z&l)EkXRIf\Ha:#=XgB)1-Z]&q+"bP*.A&V'C_X"L7PlNNX?lVp91%H1n=Yn]oa#3@,Ib&J[LZUmFMg?jPE<d\/1a1,)43pUJL'!U:k-5^fU2O7aeW0H30-qo@UJVU".\R_(kJpt5t[X9Qu^t[YHu=Ta@'0d/9)ao#T9=,6WZ[Q=kXMZ<o\djdkLDl=l>Da2sgp0db=<KQVs1c:5sYfk;k$^]N@cO.^D)43q]@B:%2`rBYI!)kcdh`L:nWGam!h[g7/>,c^&1/*9LC9rV/n?;UW_\>iXRc"`1qPj8u)8'H'Dq?7ZQ\j`KtH<>V9O@M`ZPm(VaoFUW4Y&A;KK>o#o*Rsd0gnWrK?R;#r`((7;dH8YnLcA1=o[9G:t<a.Y&L@7IY_(GP_(D-Bt^-#/@,`r<3,*+QK*ghjUf0g0<',[`X_M8_Pl%i$4Y8B9;GIB2!SBeR,"O$R653oR^1?-dAl6#f['7TFEF>*4EBVooVn0Ia'=2/(T5?Q`5l'GhY<u.-0"78nd$4`D8_j1dLI/Igr\aBIoS`qLM5I,n?"VGl9*r~>
+endstream
+endobj
+45 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 44 0 R
+/Annots 46 0 R
+>>
+endobj
+46 0 obj
+[
+47 0 R
+48 0 R
+49 0 R
+50 0 R
+51 0 R
+52 0 R
+53 0 R
+54 0 R
+55 0 R
+56 0 R
+57 0 R
+]
+endobj
+47 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 384.46 600.674 473.05 590.674 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www.xmlsoft.org/)
+/S /URI >>
+/H /I
+>>
+endobj
+48 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 253.694 589.674 331.744 579.674 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-lib.html)
+/S /URI >>
+/H /I
+>>
+endobj
+49 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 251.348 179.0 241.348 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLCHAR)
+/S /URI >>
+/H /I
+>>
+endobj
+50 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 352.782 207.348 469.722 197.348 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www.xmlsoft.org/encoding.html)
+/S /URI >>
+/H /I
+>>
+endobj
+51 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 264.0 196.348 282.88 186.348 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www.xmlsoft.org/encoding.html)
+/S /URI >>
+/H /I
+>>
+endobj
+52 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 175.348 176.22 165.348 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLDOC)
+/S /URI >>
+/H /I
+>>
+endobj
+53 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 283.44 164.348 327.33 154.348 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLDOCPTR)
+/S /URI >>
+/H /I
+>>
+endobj
+54 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 143.348 192.89 133.348 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLNODEPTR)
+/S /URI >>
+/H /I
+>>
+endobj
+55 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 212.33 143.348 231.22 133.348 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLNODE)
+/S /URI >>
+/H /I
+>>
+endobj
+56 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 132.348 165.66 122.348 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLNODE)
+/S /URI >>
+/H /I
+>>
+endobj
+57 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 424.512 143.348 473.402 133.348 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLNODEPTR)
+/S /URI >>
+/H /I
+>>
+endobj
+58 0 obj
+<< /Length 2255 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat$:CN%rcn9]V<QS2'gK[]h'@0>)f)7lYMf=BOaGonl2NeL#u91a,^@K1brQZuE0=@IajGN?FZ4NajnBA_M>$dU!$+"`eJ1M:]Ojt7YKEu/OYS42f>`:;<qZ<I0KnKHpe;;]&l>^:<_db'E9`C7D86c>iM!V?%pq(j]8(TmjVJ@/hO"p#j@3$Cj)4QYlBcgm<Nib'B/5Bd:/NQ&-54A:jf=bS!,R3a#Wf*JTRTcu\0l0>o5=D]d<<gK'fgm)0?*AK<5MQQE5F2eA\-ldAlDeXY2P))Q_FCg:=YVlC1Jj8[HZsFQ0(3=oWHTui9I37GdGXDqCJYOOK?u:@dLHX[5Mg4i\<BCn%2g?8!e.X`d0aTup@HBpT:Qdo8n=5RcacPSg.UTO[6S"CX*%?6Zo'^/rG%2.R<cC/g0I?h:n%g.Laa(p>8.JRsJY8>L4/XA88AID>np@tONC8KI)bAGC3$m"!ol?'^:h?4-6L<"E#a5rAX2ShL+&_V,VqYEtn>0Fj43E%+&Ekf?Li<4)g$teS2lhk6>sg2KSjV/BMUnok;DSIBKIbUhDRqs.9s]Bp3=r"*W]mmU)T`L'&is2[VesK?nNlQW+<cjRc[RbKm3O#Hrq9t!)j<OY9k=<LjX8c2A?:2X;W/Z7O*OmdUr7>U<rNN00Zc!VL,t@#i,n=<1aRT)'mj-Og;BTCAL]eYbTKJKOP&R+iKSr#7d_/A`$pPU)$pjB.>ahq#nVnFM-</`g=6:gTrZ"uhcl[R46cF=+%4pl%V!9>VB)JSoeo1rq&7<6]P/6JJ0/D,$3%QY<05[,$Bu^Ae]k+F4_O=l2g^<#2LmSAW:Dg?r!I#$;1'RT^-d;:$PNM0SfjJc!"cQZR?[dCCA/snB&hh'4#.+2d?roNc-)'@gK;cN$J7'="QakeCFunHn=1U3USH&9&$/,lqM)"Y'4*H3g)qD<)kXPS;]okLL`JWqWMRlE%3`n0@O6tXU$U;4<#MC&G$?d=.VcSME<\3sIPJl.7[CM!ZS1#ahHq'0`Oa78ENU_Er5@;9oP[b`k;X'n*oo_28P_AZ;d>63&TeE_^UH_:)bSM4b*=#7>H"2PAtLr:%D#t"<i$81Lpn>8/uEm0<IT5KH#@/0.Z8eLOJaiQkIcZCd@BClY%S"CPLXh>)SGaq+.A4rZ_<:#;WB`mk28O`#XYBYHe(CXl;7[=Zmnf>CFp_Qk&EE2=-\/)BUG5CgE:$^ea!Vce4,h-eulDr1h9jd6+g2s43i!`Z.X^b9(aAqnjcQ@#)-c0&?Xo*d_B%7i[ujL\pI$,cZci6BNbt0l'I+Bi.ml?R'^Z`)<2DCRJKmENilV[D6AmL%9&fp=rSnhn:Er+E!o"Oe/%nf]X^Y]=[(V],=KW>)Qr9^.hEfHP<SEW,+$9C0l,GT1]=I5Z6l+1a1WLdH(gB]+`<aGa^PsF*\GPL_<-L:&OR;[L9<@,alRZ*E2[f(>[P0--L4i9JHYLN4q+nC%k"+67D6+u7]g3=L*SSkBV;5s=(V;;;%S<aarB_G9uH>/O/rCA\tC;K[g]Og43!D]U)&(IYu4,t5,Q"4p=_kW]Kf37`!Q/i=UI(]S\AY3NrUr9n?lPpei&m6CoL!F`f1+bJ$84s'f0tU@=jQIjTU("RUJle@h7c`d.fuADeA4tVEWS[5H-"W0_a^lq5DI(Z2_DWJIGhSjqc(nY"rdP.V*G7.LOF'<ouse'+^QLS2Lrk]TjoHkQp`WNI2)SZUP\4!r(3Ibo!9"jV>0]?;ZgSME\L<!;;;eW73tNPS\OJFABIZL^!I0A]X&Um,5l9DM1rF-+I/MI1:QNW$l+\1L4_)/6h=R]Z<\a=T!/]n6siV>iN<YTOsdC>LcOJ+n?Na8g7&Y@WgLo39FL'PQ9aFr<B9Pgi,+VjWCnUC:g?D-\Wu6#?F%8"u58.Cq,\GE/#2BMY=Zn/Y:2=as\XC7R;)2NAh,3DJTY?^hIJcVHjW?%]U>##"lo'oaIMH0MX/E.nHkg4Ja0!6:N$p!WhL5inlikLtQKUXVR8#9Lh=1YEJL(oo\t'U@@iK;.<GO@n;Kg/>=#g<Q.HZ7SRqBJ<<]6Zkf?j*k>=V3+>Aj=?H/_SNohk*67B;HjI&#_:l42+^]%"B)M<=5DK%T79CZ_=P(W3NMU6`#oPccelH<4)5@*IX4oI:AR5OYQ=li?mjlg"1":[Y00-:\@)_A>F8"AAX!RU?Ocn3'i?Sh%Z1?T8k[CjJ%Hk6[#]Abe7DpY5@:0R%J)<$X+,\`)9`~>
+endstream
+endobj
+59 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 58 0 R
+/Annots 60 0 R
+>>
+endobj
+60 0 obj
+[
+61 0 R
+62 0 R
+]
+endobj
+61 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 249.81 674.674 414.8 664.674 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 31 0 R
+/H /I
+>>
+endobj
+62 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 361.83 222.18 395.71 212.18 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www.w3.org/TR/REC-xml#charencoding)
+/S /URI >>
+/H /I
+>>
+endobj
+63 0 obj
+<< /Length 2246 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gau0ED/\/e&H88.i<C-b$k=YJU0^l:5hi\6LTK]C(E5'sK.>?T<a3]l3GC26^[LqAnL2SLMfnM*hMM!D]ArE)rH*&Qoa<LL!=<@roiWu\3MWn\IWS&s&=>1`KZ:@;DYDi(6aa\!>qr$"?Y%npAuc0WfOT1=I4j@Nj)4aBQ+q3Pa3(aU<j"&f^X!Z[Jd6#Y6"cab.1sc[^T-j25TC&K"q4i].p#4]H<%(2c(U4R_RQL.hq&MOKjcYL+T6C#*mCN2"%Eu'OpEjlaeEIc,75Sd&l1i@F;4t*8`.*&n?9QY<Bo4PgJogu=M9*0JhmubC"bW^TAU-@\-HNlq69M)H\C1$p$V[&H0OP-XJ*?F6H+rf7$8MF`>U75?9EhY]l!(_GIo\i/[M"<HcE+lBcTPG,=DHX[CeV?g8]TMb&qj@]MuWJ5E\G1&OIerN8A/h,Mst*C^V_8mKJ)cq079YS<8mO<IYNkfG$UH7-P$2/`k#rBZ-nV(eM5UA3B+&a,>`c&W]oL@>WG])@66`<K&s5Q-:l7NHE+MW#P@\=-`!j&dm&aeU"5O`$#^hC=qnF:1OojT`fAdSp2k(NMCBlU29!+^2O[ILjt",4;K't]:uDMX4a`h6<W]"Z>>;!2H^Tuf2u+>EkCXSYS$Jd,P;E2f]]etge+?UA!d^F52EY@d6K^eU5Ao`BTU$H"J%tJ);S?DXeUbSelaNNpNBJ:qjS%,84V;iGk6&C/X=k"Ec0X*j/C,d`ch#rca=9PGr$LkQM(\i=)+LfKG,7,5mV3ukqfp2#4k[g+o[g^=T[UHJ0EXb!&7_2]id]cpVh;;n>n+oX=-TgO"HeIrM%V&aG9Ym?8^oG@Nk%=e4V_YOgd_#ac6BF,E@*'](*M^fsd4%&6;Ho*r<CAS$r$Tk1'q[FO=&61:/_+X7=.3EPImLW62*!:QpTja:mf6TW(\^WnnO:DS*SeHQ0:\>8-JYbRJc!Rr?YK0@8i]-$F+&X!">e:>m3Q243PU53n6(SnKNAVS]:$7i93u=TieI'rtbdbTmc6Skbif(hQsKIh3RO-bUDoE'B:EbR#3YQp`RO"5j0%IfboC=\KHS'!Pks:fn&tHtHb&d[6ii,[f4aK-WW*YbPsnK`Suho`#&;[P_2iGNd@@W-FaZ(iMbV#?.=*)?XIU0Kbd_>Dh$$dfO'+X8CHRDEPulqFjCEAYaJV#F*BC4U[/%os/M]h`1EbRcUh;7g`\I;3`m.H.m1e(U]LN,P.<5>*P+>9]9/-&eb4'>g($<V#6%280N-$;\F2>8@JE,4OBmN$\u[*!=YS#46d`GNnr*CJK6<2jMm^m*B$8jq*qg5qR$LQ?#-q-foc\)T7G<kHt:\JFW1Wl(EY\f@dI@d!1T[fpXPh)48ReM.ii2p*WFh=]+Hi6Q-J)?CE\@B(t<+'K=H4jff3Z"jRk%QB;n!2)rJgl]`Yj!e]=VQ/'Pn$F,;d7o/t>;Uo<`^Vdra4PYor"Nb/t3r*ki*!SV^2ZK$)$+&4@u&XOYemi9M?Aj3AuPS3;^gfV$47i(4oA-`?*'oFB!ogXt:2?o<-;^ckYV(R@!(pI\H^S+=*bkTe^Y31&$6j,=d7p.ffdV;nY"lp3Yb0UujM)F"[M+DKmK+2Ot^LO>)]O.5?Rm8?]gr^%Z;IDLZji1m;=uketLoR=IZQpk@B:]K@8(&(g$k?8KB7>E%K_AXend`36oJc5)8Do0cObfGJL;Md\*+:U;M%e5gK8VjQ4PaL;o]49r5f;Bfcs=I>R;I(u3bPc0]'j%aO$dLm"A4"se*j%-VW,kPmgToCI:i7pJ_F((hrse=HpsIi@ee1K[Br0lq!dSBrQ(8#g:+6N`R*\#939.tKt9rlACg=OC8VEc8jEVQ3f0aicZH-[4CpkX"l'pke7rA*TO?jHJ.#MFgW'`J!2Rk=a"k+@9:I`]'"7BMU;8/]l\"3aNSo%"bgW5lGYe)r0/(d?@=ZrXohAR73#)Y-6q.8-I0Of'7Z4lVE7sDnnK9Q&.&8FpPttORU@,_l?"4F2!]:RGLkj@1?YAcGB5*9[IcG_`i]cg7[hiI_1SBC/McQI<ZY?H)bWdI0Ti#K6oX<^%-"&*)XU<O:3fZ38c1jKWFq5hkUF?73\/2s[Z\dUrVX>/-<foOm@N3V#IRmn-;3^m"^J^>s=8@5`p8@_-a=IcI$)hi$<f\`<S?:+d5'sk+%im*8;?8S;rnie&m^:'3Ha/>FI$&9dD8<i;:Rd/=i!W:HX$:]`rW*tq3d1~>
+endstream
+endobj
+64 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 63 0 R
+/Annots 65 0 R
+>>
+endobj
+65 0 obj
+[
+66 0 R
+67 0 R
+]
+endobj
+66 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 186.56 514.4 240.56 504.4 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-parser.html#XMLSTRCMP)
+/S /URI >>
+/H /I
+>>
+endobj
+67 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 262.18 229.78 382.18 219.78 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLNODELISTGETSTRING)
+/S /URI >>
+/H /I
+>>
+endobj
+68 0 obj
+<< /Length 2448 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat<BCN&8jn9]Z($43\cSr*'anW8d+KgVbYLcp=-nfc8(]7Fe(QT3S4`.)D>^W'uNY0_Xf9KZ+sN+]f\Y0XhlN`OXShJ0_co2^'JFQL?"Y%SXR1@]`YPL]N6qYe(mO2n-Z(TS>Q&1"=J?.2uMn!F9ISR)9h0'@QhZA2r5\uol7c6@ODf.H$"aZ^nd*TPs4n%.1-b\!IloaWu8OPh*54L,b>X$9YN+%PJ5))^OljfW,u+S$c9T(A[.3GZg.=O_J#<>O:H7=S]&cT)hTd=]/Jc1fE`g+`q^p$ReCb0I0aX9GV48Z&mj4JT=WFuC1C<R#r)iK!#:YqPE)MrOWBl0g<c?##QS7\=tg\j(8kT=OC9Pg>=Z'ad&aEstoX%'i'X,=8^f93::pC)9og[0ZJf+-+kWH-<u>0'[nm7Cm-U>l+aLEu.5n6<NKQ,s@0`k!7M.=;`haR#&&a9j_.<-<Whk$WH)k^Y%Rpdr#UhoTU[s8`\7&M?sAG@]0pt4JI^]+it6$%:VnPdr;`@7oDSanMJ38EW-ORn`N!%4pp#0?-s1:_;]".bI*1C#n@iIf!k"NWOEY/ITA^81e0IKP4(+AI>Gh9Y/L^Y!BO<s6(K\FD&L[C$7.7KrfX#e:a7VFe1jo2Q7@MZSO+'WKh;oQT%2#d:'K^YKiD`#fsoh1gj*(]L'6*3lZct5[X><Hmk.<c`(shcJ@LG&=2ie_8r\4;V6ubO[1N,2eE&pT,q(EYbPP%8_iX^?Y[S@"Z4DB:%Rj-$i%j:%7=V]1]XI-]6T$QE/TUc?j%W_c^pt[.EQ(t>%f7D'VMp&d2+Etg#SN<[44`De<!B3'O[*=he6e]mcIpnb:e26<]?4g)Y<M+!("-XljMI:[=m0nZolW!;4%,a0fd9T`,]&in_HZ?B0Eh^tl7Q*SkUlXSBKQtQ7j#.q5Mc=\$N?'pQhK24^)ZPE"dX:.p%%NL(lebeN*&=ZS1,udfNOt%;P!<=l.o+R_$L:^Si9f`-o+Z2_DEGC*?CD"H*""k8Ks<eMWBff6/05ofGimi"JbFS@UPjk:eiYq"<1\9F7f:7LEd)]>l8(gVW"&f;/C0@N??3!7V3o??'8&33a/QAs)Qh4#Y[INpQ]=lcL3:$A'#?CoI.#2,UZ]G8SkCVa^7+N*q['QpWCjB3.oJp.=0C/`0o"'nP7F=P=Pp0Wo[7`L_t.0QVS+N1j(r0(cEKLH@i_qUtfgg]-*Jj@JiiDFZAs4NABV72_)m7lck-C;U*`&KpX!@8N)Til]s7C,FY%.BgeO>K^)N![Um]LY>9&)EF<WAod@(.P(`Um3<i@;/G[Qf[r7Vh3L$6\!&Lp[r0lp7i\ADpflj;G\4:[VbDIcf&YeO;(&p"Df)E*eW9Ki(d>o7fPNR),'Q<9"Q[)U14`7fBj2RuG8J7AJ8\\EUIN1VlE2g44VcX6WG;bkEZW:Om=/(':s&[4Q>$g-c7A!Wh;nUtni\/\Wpdct?R*)+1eYYlFf.o6OG@63'I7/02kX'pG&@H1]ju\nT,eg=V<b9!@T`GI*RW<'&e]ka0U5'f7&].7+PV^3mfC\`Z\mko1gO3ip77(;O4O5*Am.b$V?Y*)r0,YOPqrknEbS2p1#V.YQ0C-p&jt8'/",'JQXas3YK36VJ"WPhP8NS,e&UW^AC7#nLqT1&Q;A'(]`jRW8,V0m<\JC5c3G7QNIK.Y"oMsV>!#;"2.*rb]h4^0dck22HQ7jY4YFIj(`#bd;?9cZ8`PWZPN0-\j8u`$dWHAtfHX;DNVX?aVkGPK(\MeFW8VRUe6r0oR?^Y3C-US'%*,4'Xol)QZ.6hiMOH/UJXW@or4nUJ8#`r>KbMr=V'Hb=+l:3IpI1[F:Q8MR6D_9n[2+Ws*CB`4.0NO8B6H*Rs">%I7+pp-l,<nJ_p4lk,/n=fQW?6c>)ZY34E39q@l]IV<Q3&RkJMJ)l!G:1>7M?Kj1"#+b]gpRV%%qatk)\!BNJ=Q(V*g<,Qp+MrS_l%0[)!EUc,Ilh)dAaW,Yk3tZ.[.J+d"E+Ah#=Gp:dnQBpW2[V<W,5_gBklrL\R'\6=G2$u-Ipg6>>iC%LV"&sIFdF+e5Whj,;_T(-/IP_H`oBZP:3JKt$)r8YaT_rOs$gQpBA!SU<3RVE0e/;qN-\^KoBAajC]>'%VZD40K)Vo1qk<K%9SGp;A"-mcU!>lK/c=edgY6chpU]L/C8:mr"H3qTFBi*mGorIE6OE4MAM=j1nN$]#US0'U*L[[i].Z!O;P+iX'l'eb9'<HsDG:h;$N1?tRL%eN9kq>A%t4G/D0Fe.c@?W8]uN7[HPWM\hHKo,@]Pd(l_oIP%.r;#R_'?lqV0&Hucn:)5f=%HZaVnY2b7^Z@mWnQI5p"9TGYGD(T1)-q_iZT15JQ9lo]<e-U^0RKrK=6D%Yg`TZn[?)a>dHcJ4`=^PX/9IH+UOH',T5Mb(^1WRa>3T&E\d:i~>
+endstream
+endobj
+69 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 68 0 R
+/Annots 70 0 R
+>>
+endobj
+70 0 obj
+[
+71 0 R
+72 0 R
+73 0 R
+]
+endobj
+71 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 363.98 698.0 381.19 688.0 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-xpath.html)
+/S /URI >>
+/H /I
+>>
+endobj
+72 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 263.38 597.866 341.98 587.866 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www.w3.org/TR/xpath)
+/S /URI >>
+/H /I
+>>
+endobj
+73 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 270.38 586.866 424.81 576.866 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 33 0 R
+/H /I
+>>
+endobj
+74 0 obj
+<< /Length 2451 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gasar99\,?&\cSp;#.ERe/0A(k2nMWXK.k63=fn@.i%6_Tcf72M9pjMjf)5YHU)b,h%2$\Q7i+ndHGI1q>n:chYltM[ZRg#2V\19Yk`;e2hCqLND)^_9T)6Y.,A]8Rt&-NW&s\Nk22Zq?`[54OTA!Y8S"4pI#0djP)3Z>\iZ,sTaU`q)@"KaDS!FT_?JWUl;/RH"<5$a+8,VfPX!C$Ui)#IWp<BSG5&q$<,^.L.o4WY4KZc?"U2fD9Y*_jl)%BRf+J>5UnP;s`GAC=X"'IMXs`mid:Tkn'iC'LkXnGfe]Cu\MVY!/@-12l%/-Z=9P@Nu0klY+@3DjA"6hGd@;V`,'L;ehIl4Xg:O>'Y/4d)V2i!d1;JV%=*mSLMV9%_6p-OYlRi*'lXH$_uW[2a:RqG'l2*g1S!bfaj8"D]I3A/IDI7L5`e6gnLcXE1Q3gZ]aD>0)-p_X-tO'kMC9-H6tGIm(e60+9TNkhJR5/DOf_\;Hs)YVLn?eM?n(j/3il+Hc)2gjKQX.%3bpm'nDq.6ZG,\/[e8knrl#+tD.JIO[_bDO+DVb:-Xq0[>6.`9!bh@RI9,Dbqd)m4UJ&8q!HnoR'qq_\bIgs0q\HSit'dGa)5.I2_]o,A8;%H(7@C%GRgHi8hhFP,Ds^-#MXW'7KNBLPaZ8.72(3*Y0S5Ss+Ln[RpsRS@*pm)?UP')2']J'paRlLmd\I+Jmt.$F#J%g4!"B@ZA6DoDJ9IYo014=Z)BLiUh]+'i%MX2\FhPODTbr7QeZ8J.JE(F)omVj"D<?\&l,qrIF!YDd3G2M-G!NC9S4nnDe'Mqq&SO_(>nB@V7o57L+u/YQ]2\K=l%T^OWN;$!H,l?]pe@Y.Q)dG0sF6i=:YI")%]FSrJJrmhrrg2M.0a:@uYpX'pWonJI)%OM#G#<^n9^F.lf-Z<NXGGc;KI@R3&.NU2?*2_t(ed`=TkFTV"Uq1AZ1AqgVlf=^Wlc3?rHslFY)Z,E^-N!g".noNMcn#n8k$G!!B&gn-O6o@AE.@krl9>[fXZ+XZs%B1rH6oe$X`@sD#[%k5`,*8-C("llc/[TChY0apeTqX-Bfst6]3WSkOc?p`E5`>S(1'jud28EOYW)//EEi[:(n=UG/&3&Vpme`DH^4De?0.ia8p"Ms-L_R]1[.'=p8k9??Rlns*hV'D65GD+oPCXa%!aoWfE12-5V*t^W/.>`ItdY57BqZHjTC$KJ`oq="<J<=*^FlfTfP\k@:C&/_r^t^ek]PAAcjbF/Qos6X1@;Q\-0YBmBY2d1cbN9qdFl>M1c3M5c>J!4)4Oj'7D:DZCrS,NNGh-ZRq"$M<ATSb(^4_3=S:!F<-V)o=)qQFZ^"_n(DN'3[%S]B-Eh?ZK:8t40t.<bDC$@KOQNHN);Tm6]k3(rF?_e(2p+VHNtk:'P6[G%LQ>Uos9IME-aU:7ktce_UEdpKYq![CX[G0D'lU#luaWj<+8+:>dT(%!n#YM/.KL[aaMT*5;N4WZ>HomM"=EuO4Ds[:3Uj",jK9d`hhK#jKo&l1HhFA"10jInOua:6kTBi*`m2H7[6el!edoBk,[2%mSpkZj)iZLg/cGQYYddK+G6(*gD`ct('-"@Z>J_@DU[tK"<\'^G<0#<2\H0V0q]L]=bo<CPn;o_1OWj+qe.MN5,li8_[A9QAMeHQB8I#/bDOD'`<p,J>@4\)S/:Y*@<Yj3XYnA(9QuA#G#3_:I<Y+khsn2f`eBM[=F".rkW2X,p?U%)i+-N-G8SZg8gA#H(eo'4(2i>,\+Q^aQA-6dM^*Y\T%H3+b_MKP6=GIror,rWc\urD!MCn*U@t)D=stWd*g;6#`\^>a;:M$Wl^*+6-\-(-8@u;kj-`jX$em[0fZmdsEc15Y03;]$*Y$ErD!"QAYF-gMgp`&C#<iE-1:GlN\)RjK>fbEeB"9=Q\YLAZCH4#P_e&6DYRS-[Me1u#(f(^gLqVA"ShhLe#=!b.!XA9)O-@$"Lsmk#m7XQl@)Ilh,s<D6h=m_UeO0q/,4:I-lsUBSHOk/SR%TEdbc_uIMR:(aA-h&&4RfD$AAI5_"$@\+$PjRm)\C;V7?I&T5AH"%3"u10@FOU#dHE>(ArJWdWe7>@WQu#O/[KVH$+TOb.EGl@Wr.S2QeJl4%"48C9-<cPl:mYf6%s&4h^**39>^`lK`US@it7[TbFp05Si&l;.Dp70if4#V&HMgQ#Fr7dS)dH"LnU,O*&_8?-0(L!N'l:'9)$11?,[a;ShNt%e++a]:/s3A>]kOElQo=j]^-L#T$M0)''pj?#*a8*/[SZ:SlN8r^baQu;VGstii2\od]W<O@rKh894"d%o3=\gbJJWqNig%'N[6L5VGkAJJ6mo!'0g@&IY7[07X\DjD>b-%"!(LdW6P>0mrr]ZFG+Ln;96\9Zp?hWb<FF:G%OXYm;8r*bN#mg1`"KM$6,=p9bN:"k>,fdrr_0@G\I~>
+endstream
+endobj
+75 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 74 0 R
+/Annots 76 0 R
+>>
+endobj
+76 0 obj
+[
+77 0 R
+78 0 R
+79 0 R
+80 0 R
+]
+endobj
+77 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 272.33 574.54 455.37 564.54 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 35 0 R
+/H /I
+>>
+endobj
+78 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 186.348 433.66 276.348 423.66 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLNEWTEXTCHILD)
+/S /URI >>
+/H /I
+>>
+endobj
+79 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 324.744 220.754 470.014 210.754 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 37 0 R
+/H /I
+>>
+endobj
+80 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 209.754 208.16 199.754 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 37 0 R
+/H /I
+>>
+endobj
+81 0 obj
+<< /Length 2156 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+GatU4=`<(R&:XAW:]hF%()p9JiLg?p3H,S?BtEP%[h"@^o!4S#NC:_qMZ3>[77oAa9'ZJ2!J<2fI,pfffpA27+"pR9F_o+P'PEGKF66X9r4/,_HGGKtIhGqS46t5aLV*+\m+?YfYH2B!UL_Y#G$b:=q9&QWgAD"[i;bb9"b?^^4Zc=pct:T(_%1oTYg.%88>JX.+Jm+LE1+f=7TbGIDV/`eT=BEL/eCJs1#CiVP$Y'.mKf)?D4aoRC@\L/,VP:m-_KrmbAYK'K&AGjNu(4U[O+HU65kh1AdmH\#?J,l<[m'S8RNoHVpr$BP/MOVBS=`';1C`?3VQXq`q->?Eq\]<CF$^,'iLTfbkea\p[_atRM'WDL.':)p>fG!&9Ofm#eM)ig<PEQ'0_npZgS;@.jJC0<cWiG\-*Db#VXaQ>;(k/pqh)=4%VmS-BU!gI_qpR4EeJJ&+\8BQTP,L4jVl/NV)naGOGh5Uh0e2=d?<@P>0f^o>_RQ;o]C'6)"'nKr>,&PY#%.NYHeHMZ_MKR"-[5esp%eaN&2TGqTRHgC7e#0iOX;BHhE;CL*&B#l6`goi_Su:Z)k':'g7,IM[PjKgl`Pa>:q,KcEr@C]u3<3mhT$3!`h^VW)"2567"61``P%T_@Dhn^BdsD0U2u;CCgY@8\gbLf!]:BWGBPC!UBo#kb$LrtWCMa[JBZf7[#Q:gN<DCN'R6XV\n_?7q&if3CpRQAh?Loo:u?8H%@f_9efE5^9\Um\+6"\7iubp5n)Ne7IcYi5C6W1o.S8rLW2!65"'X=qd&iOZ1+tECitPGR19R5ho<O_n_$q[UVOrJWQlk#iaK[>Z2.t0NiHn;+C_98Rj-*Xn*?jmeg!6=n?;c&AV57Gejf[n#<339o!1R(gjSSSZm4]+Pk_&df#`VD#O8Vh=*L4B(b54n]6-7UBu-`p?9<6]o7/JiZWi]FtepGHIP*%g.]NX*@o%(b)rS2dY"GZb':M&O`aZdc$N2Ro;j+UhQs+kM'Tmf=Y?[)g"^qqOI^UXp3ljX26T,)]49t$+R'e!'Cpn-k1&_2IHq1('$Y,m?\!IJAQtHkj^>S+,[VN$XP31LjLiIK)BFO<T1#\T(u>(SWQnZeRRSQ9W6_I3V?ldFKW[o!56g_&jI9"LR;[L:oe);Ek=`(P-FdVsg+6(CE?%d-RnK?<@qHt=Tc(2DZ@pUq(32)l#d\IE&:6r=$7;Y.'.I+1OXhp4>YI&UWSnGnS]KFSVFk;S<Pb`M\I<2%)Hr@(*#N$OMZia`Ts?=6i%PGA*TaCn^_K.9gBeQHqtHCI$=)asXnr!f'WkWMH?33PMu>V%h/colS3/ElIQ02bZd15,g!3(<'mZa4P+uA.-opVha"G\;[Ou_]^>mmQ3kj2TP99YHpI'&sEH!1LEGC*R('l&C*OG^&i4F7rq2l[$ZhM:j(V1r\>Y"Cm%Q`;k:FC&DgU8UXs-Xqc[I1aJfkIW'TY/uk"QB[MUS#lU5r7Lg_9a@.k.5cp5PqtnKiS_K\gBWAN8_E+[_:NunDoiZogef7OTY6/ZE0haWh..]2"Z,.GE_ZL]KQ9)me=>po=Mn@hm\3JIQ]_t<*a-lVOeW=]-?jqG,>1uY;A=oG[[?7#G"_R"Q)*K`ic>j,8"nCXSLhPDjaSBdrbNR`[)Ud#4P/P,ReX8e;(u9L5JoG4,F=JpqGF!X2TX*JeuFM*+=Y/er4G^"LPoFkS3o%pih1F%u(J+-2]7V6Pa.VK:*od36#ccZ,?$)!Gth@=%?@u(4-P(g<g&h`8'TH$-)j$%A"dNoB\r<*EhR7lmi^UXD?,'hg.D`;*c+Zd4oN6eO4%>EfJ*L;i)j/nJYr:rd21V-a)h@ajIM<i[s"9n3T3s-[/H/D$Fk!E@7UM)Nr6!)HDQLi$ir$]"[k;^/Y'0W2VDgOQ9p]mk2mj0uV?o1/s@H^2LXGa.[8l:H`5X^iaM7#aeu]I+i`<[-Qq3@A5^<E;=hO)@<r55J_KlNoeWTZ"@%>i")]=kt'84)S%&-9*-ro$:^7tm[FfJ09:DkXg"f17Ub?+ooe'C!qh2N)/DpTU5(8aYhhlg2J8ZT:ZG`Da6L]A$gItu*E^k9.aEK)Hat<aQeEn4oJ&3$]aN`f:Cuar^M0OC]9[d2%&gE0kp,1%pn;U2#!YSMrrD8WN7%~>
+endstream
+endobj
+82 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 81 0 R
+/Annots 83 0 R
+>>
+endobj
+83 0 obj
+[
+84 0 R
+85 0 R
+86 0 R
+87 0 R
+]
+endobj
+84 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 204.89 545.98 279.89 535.98 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLNEWTEXTCHILD)
+/S /URI >>
+/H /I
+>>
+endobj
+85 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 338.334 437.654 471.934 427.654 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 39 0 R
+/H /I
+>>
+endobj
+86 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 144.0 426.654 242.88 416.654 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 39 0 R
+/H /I
+>>
+endobj
+87 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 246.998 175.034 306.998 165.034 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://xmlsoft.org/html/libxml-tree.html#XMLGETPROP)
+/S /URI >>
+/H /I
+>>
+endobj
+88 0 obj
+<< /Length 3062 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=.D/\LD&cV3*Z,h^W?#-KeIn@ugaYcPj8C84+iX41(5k!--,$J\2;>.Q8^*I?i)9Q.;.IIS9a5h2O3#p4Wn%7u+n#s&l)Fme.DROa*n`Kfpfu3#[Z>%H0hGeJ1`EBP#*]O+Fs*_BBpStk*YdmB,.VbunX>]N3p>(?@7b)])2ZMWMs(k(=Rj9nMNBf-Ja`Bh6<?9V8%at>%ZnRZK[#*5UHV(N*g%ECLd-=Z>8j<o9)Z&2h*_0\X+:7Z\#Br#U#PNp_5O)XSUXe5]]t1gS];a=QNbHnYNj9ijXQEHZjWO:u7$0sXk5FZ\NK(sPK/ap3PDJSd,6?WLpn*'3Oau_1HnRQALmA=oYmjo[qrQJ5Y<7Y->C4:"Xd`7RABsnA\mOqLo#gm\G])`CqZA2kJ\<&RI7G-%%caI9)@22KWDu$$Uck3MfXOrU#JD`]+4S@INT7rVGZ8NQkTJX/\s[h0Ar;@M=nh%.b)q%Z($8UC_Op0LGG8rH0%hN=H,QKG#;-.>$,KJ\l82YSCrRN6![?e>*'6s"R?HZBb!3>d=1,HNbjB-%otsYjL^8LX!)4]V.3OFF)#Mb`KMbAFS.pp/UY)g+EkEZ0S9>-(@\b^_%fg\BY1=%U1G[<^cIV9KQ:[=]ELb<T0]ph[J%_lJU:El_hC"W4O?QDl"#/k<L3VnPRU5FBmOH-2qgg$QOG1'*(e78j6n5lfI$0Z_\=[2;boCV[]:6C&]iJVWnt5>:Cecr8*_!!!9c68%"6&&Qdf#t;dpfQi&Ve7+ZR!jC@5'E.+%3U+RQ+FQ^,spj`cOR5ZsunQ+#b<)=sB2;c\t:5drmt$So8AUaMd"-86MVphQa=tA%"cf#h9:RRLo_$%:c7]&2m<P"@"DbkU4&?iKCF[2LrHLf$#\7d&T`PeeQ3Vo.u"A\7NbKgbC$m[g:$!8\LXV`psK_;IV>67)W4!#gKg&>!9!W;Qpc9KOVJ)HVG*fI>>('-\+n/5H$_Xk/0VIdb(06+?2U@NQr'$l1Knk@0CdAIjF(b/L(+4)V,R6OgC3]OI^PbT@nDimj=L=W,XkhqE^/c.rHN/(mPeT8D**'g0I$kG7]DZBm:PP`j6,r7l]@5j13Ya&kXCW7GjYU5fSZuoQsmj;2.,^>8cHFL_F[,E'b6oT+B'b2ICQ.&B=]@Zm"$qa'7^@`jtAh@6=t/?g'ZMNfai]3*2Oa.4]FVV1+XAhX*)@9Fr1>VKOl\k,L+_Yh`Z^ES2"pkbD^+*TKX.Mq1t[JF=j!%&RFLEl2nJ`G8'nXIMRH:ic90+f%bjM8"=gU*&pA,oX4XrCMlT:U%Tlk*Di!W[q<ho,P`=]J2')!h+NQ6g%dZo5+u=.I3qL2;_Tt9hm1,VQ"jA6/5=s>5TR3&j/f(>D*l`N"luAPpDgS]ms?Y5:j;4jois'^e0d9>952;TVuH5KXi:L$!-i&P>\*8j%d<uIkp\KN!O;e:B3T6r(QQ^`+!7u'pC*!XIpqD1F+Vd6VLA:_QGepCS.qQ3^NiI6s+s@#?`+fnD5:;@"A%k)>#^/35S<4N2a:dKD,Zh8>^2!B>pr:</r*A`W+sa\LJUC[j[gi++e0"9TLRl#6k6>@UHMSU@&/@/RN?5-e!^M>E\-T-13UJ'RG[tNIq]S8N\nl"prl^1"-pVeCPoe^!Q@r<h<iWPq5hr![u0&[:atJ9p@nZ',osBogT!575pN>jDNCX^PFjk*!"35#R245@$\"'!SV>1rciW^2<_6qN/LVX4(QBHnP8:^n=?j<_U[l*I2XBShl's<#KqEBT%1rqf+u+*'WHGj^'OTu&RjP!;%M,NZUob'UC*pfqqYf?[S*?r0l66+56fQD:U?'hje?+T"&\CX<:Odcc!=ES(.FHTC2F^"C,5r.OQ")dK!tl/2<'D*f-)Bt3=j5E.R9%R^9T7og?#DbIO:OscXcI,0DE8\pTEe/jTAsm1mA-u?)\M6W.;[R`sKU&YjXUtU9=BE08?N^ZQYbiM0WX;iRpZ(aS=pVgN)E:RIW5YCDIDo8T#1@d,OFd_AA[R-K:XL;B<406j`gL*#=H#qH.:&a5o)M[=i5Nbn(OLN@D/>)J0je'%@=UZFHL]GJC\fhoi20IX?)aq?o#B>gDk>5)ZVOb+b[?[ekkPE%X3Yn1Wb9n?:dA/>&;9Ms@*KWQf!$e$<WCWE/4/OX@r`Blr5DpVar#3>cNaK4RP+F>%!'GP9HsFVuKJ'kf\<\7[D#=$6j+q6*fah]f@n.Mi&<"l'FWbId9J*>A=L,7A%L-.f0OIl+:,5IDS,I()"$SCKYNb,>U-Gce`PQR2IMr\h$X<>#&a9Q&:aHr8iLWp=&H;0YO_^M+X9AW/4$j1]ek.V3#tnZ#Q,:kc"geUJn4q?IqqfXg>0K?6-Uln#[Bn@RbNj`uF^k"R6SOCqJhcY$hC5Q!FQ3[_pr]ME,oWtLGihWT/B7QW-dB;;-WnE.VEW@liO[#F#?UuLAC%Q/g-c46u92`R&(3;CR!dJeNdhTW1G=Z^*A?<=n]NheBAT$2@'YM6lpTH.*`F>(jt4crCCj>Yr_N)LahT]P]ccBcE0RBlTf[T"TabbnR>Dm4qt0Rj$n4NM<iQs?[m)XlRrs6Al"VQ_MN(udb/+I/$Gl\^:.=ikUBMi",Y(CL_VB!!m]U,#Ms<Qb@6P$j+pGHD_ET7E"<Mch6WVr#tk+UML$fUD6)a2@PC9iD7rXXC[r^TKPgUm.O";NBVlq]oOpKP1$f$aq_&N(IkEW:OE9Y;S"+lDRDA5_qAF]n'=NgRjJeIO'^iJK$sL%c_p/+PA5OZ9*RC(m1pN(S.*Q50dalr6N&r<)Q;E&:]<:0`NDO(eR^$ap<spJGnba8`#;I7o^";VHmahn?Z+;r5C:`Nfq$`Cf0"][>Jrq;5D#0BAb;Le0H2%rKS_L"q%"%L:FX._].JPV[T'ps-5e1HGsI<jk-c#/jYk+-M>I^`_,he%/1EYQ,m@s!3j0842/.%^)-WpHgr3QcR7$#._!)hQJ-=p7YBLO?2XZ\].Kkj]SW)Q0JdKK?7p]!K6hN!l$cI'?/NOFY3b7%WlFQ%QD"/E"T8ic:i;a~>
+endstream
+endobj
+89 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 88 0 R
+/Annots 90 0 R
+>>
+endobj
+90 0 obj
+[
+91 0 R
+]
+endobj
+91 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 219.0 344.54 435.37 334.54 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 41 0 R
+/H /I
+>>
+endobj
+92 0 obj
+<< /Length 2048 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=,D/\/e&H88.Tk5.-$o'>kHJR!`l\c!i6+8$*Vg0?uM7/,\P"SYDK44e.-^#*6>B5=hBZiL-T&[NTkdSaAq''d^Md0o*5'*:>)0T9[K,kqd^l5LQE9&Qoc<hC#8BXY=7QcVBf6'7>JlZ$F(Y-OfVH%Li)OdsJ9,j@)(AH^0jUVUOqmIpKXJcU@\BUu(2P&CK"(b2(*sccC0I;+VZIt2^/tKbJji9`0?*):f=X@qVK$HRsWF##YU>hDO#-X$ZQ>0mb<Z.7E;OlGPqt0^X<`?t@YH,5i:l<7XXP53plM0rSp4r,H[eN$?_SdI2=a:T#,_BM,@D"%n'K-NS6h-jk--regEJg8e]N>t,f=_!Y6#1M:Q$=A@Lo".+lblXl(a1Pg/La0([KVlj-2".T]&;]U[V9r)c=Sp2@?_1n.`B3o#skAJZ!,<f9;8BY/_?fBImqj=[lu^?5uNPem'i=hbVDaR(483;Vkhk_r$[FfX_F5@OX<Np`[hPY_*SH@ACdo#\>J\Rr6$P!@TQMQ[Yi\`IEGG_b9oZs=Bf?ume::TV-V*R,^"a\9O7,_e27Ap?'klu7Zo%%&HRM3qhq=MRr%dT)_tR&c$$"qi.J.F"U:#T,28X6bJc$HZ?_M\VV?is-l3sQ-qQPE<bS.Ml,,nF$iP%s\>\(5jbok/+0+[\4$DhX6h8BU\8]WTeJ,,6pC>Up-4YcVNCQ<o@ha]LeFAI<gaGK\!',&hY28Q(16q6<3q<>"8-0J;/9,RHPlb&O[$Ip(F&o`[BFKc^l=H0a@aD57"%9g?oX]1M0t7ceY,P+5<=trle/De_)a^r=DeMSO3mjI?R;Rs>X_W(s5A=<fCXY&f-Sp>Vj:=2O,g)kXU68G1j;f]$HWG&e\na.cOVOBb"&(Qn7EN%Ld.])&:IoOBiYEKKkmS8:ZtZC2M24&YSiUihY#.d&7/\NonBR;rc)QRh&iN$>nSAY(,W3k`Q79jM?S2KPh@"-RU`lPaMGR&&)1;MaQR0dQTf6P<.^I_91nV(jK@5W>)[U6Shc7;Ra,te:;oUDN1:(m`Ul]`nV86mc@H=4),`%TO]uZ9e/b^V$nKAm$FC`I6XX,*OQ!Pm5^U7:h?+Sc`@g:N]3YNaSM:S_H@>%1eYla[rNU/Kq.r8)SdHbk4h"*H`UIF+YeVnK$hsd't*Gl4r`pLeLAfPSr;6B/Zc#B#eB#mu8oUF<qDejOfZ//OXE/Tlk?`rSWgGher:dB>k*86\C%lYS70o.;-n&ebM."+6;pPqTG"GMK_^<iduRcQL#>9=0*VES82q]4_"nHk'X+3pd4,Bje&61/sSfD2\hjUjY3ceu\m9lm7EHF)Ca\Q^*$>g)Q6LjoBsI#o?"Jpj#1HS+(CoMQ.Sac0*g)b8M$!AJD7f5:eRcU[@<)+bG_"UEnsH+q'"9H^U@k(@l5GB[qkf35n4#5U7r?AnQO:PNL3Ye+gE5c!E.eEsCZ"/V.s2;1eBlU"fH:'l-.q385kF%/\qWeRrE.36<j&ku$B\*tC:mcY.40SpGH.)F6h5\`-?9nGWni8,%VFchaRJf0[B"q/5Y/j6SI<S,cpH2bXJB'+5JF9pOg$1bpdOgT"JWQBW"Pp]n9g^@!3gBf:s[]';t,IE9!a5q8rU-:k.PEpK2SR?Uc5`7C1[-EZ2!U#1cmQL4KgSno$L&]:ld(S^?g";i.r_Fa!p'qj6rrICfnZ&)F3QlUCPrruMmc]q4*A22H\ba*5X35S79$^S*h4G>c$G2,S\9h>V"+f[7o2J8!Mh_7(q44IPeNqj.*,L#BX33kSWrkUS+FVc6JBZWGMr'8^1r/k1C/pfDLp1G'1Q7D;kY,/68llZ-?5IYkbq8-hrpON(?pB6oj<[r06)u&&/I]t>31<_imL/Bt^V)]Gm=(*W_@i]&@Go&>'UIC7^eE=O\Dcq9aGee`WWg<q$6leY5d`u=fkCYamrEJ#]fn!n^<5=I"^L+u'KDo#CE43lN&p:25L81=-XNP:gr0:bl!GurpRR`qQS#QinZ1`<^9AQfa4(PJU'16FT(iXWd6R^4_`S;o~>
+endstream
+endobj
+93 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 92 0 R
+>>
+endobj
+94 0 obj
+<< /Length 1148 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gatm:>AMtc&:XAW:f7XD8LJjlD/Tr%P/8B,SCWB\Pm>iG-N[Fk=)sd,c@8'jP&*^ueo%/aJp'</Dn_X1\'rb#PmT2H'MK;f'\n[eJF"?fYTid=+p&A^dq/#kr3/jJo%?`O-GabSSB?)JcX'@ugL0m(Nh3KT6b_+JOO&&FEOIbH77dO/>1$Ml2.!baf&08=$@S283c\,$][Y?I@usVs9a8_62%o;Dn(@[0q>.ZI3,--WmC4:_>mj,Q2p![Q-HXD!1bQq]2WjAU6FL4cXDEl,H0;DPM9O^qZ(B3^;(U:4q?WW7U?ltd_o=j9+B7abk]1Mq%haO^fKf>kYQSEc)m!k0I,NbDhWs`BSsPeCG.CUTq?k#*##l$HT^Q?f!68O2Oo_I%f_'8b55'e9<T+LL>VH_0bLnD@[E[3b>GK%QK_RP!S2!k<&G2K3+ERl8)p5),ba,::YifpEg!=suk#kRT$M<aMmNDD.$fu)"k2t'#n/M.3%TIcDSaXremmLI<lh9hsjOmi%\&VK-IZrs.hO&LD:HG#u`9euVikY(+eW)'gJfh0:$TUb#W-1i?5k8mK<2HWfPGE8p1H,n/rjVsVV"2u,CN%Cdr,Kn6-@kY1Q:9ht^Ho5q?:hTH.uHcZ]f<mU`Ba[3#1I;gIWB0b_tgBhT!sYHJ2fO=(_WL%9XQoirD4!UKIR;l@/j+RJ^WF$@&"nk0R8b1G&18@/jWm+o3-`<#WF!Zp#M2CZ+r:!0&n48C<6nbZ+90$hCn4Oqt#k9oP--J+j^\HI1+:M4cG%="Wr+9>ZgCh<Ms=$3898u5rL01k1Ak\,/2MZ>1KN>n!0hP$2[8`oq;-N(#A]l843_lYDgjGq.`[7!p$Cn/O:*_[9\;f4G/TpU;FA\2ad\ASc64amQ*j^-A'`jl`3tL.cUQ;MIK\emF&I8mehqH=98fbI^p\@2`%b%^Mq@+Yt_#RB#47Jr=61NMqmsM?Z+lo^3=Yo&2.+&=uLia[<BTm]actPI?J-IFPV@d?DYb&gVDteC^0=b%&[ioPrrgB@:c5+fa';D^;!lRP*aYFpNdj`6m]adD%!soAA='5(8H@LDr(98p[TS'fn%2G<X?3Dk&hE#",p:n:=j[K-?2*5cYc'kd,!9,L#'JSF?@8lC+]Ap_h.%C~>
+endstream
+endobj
+95 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 94 0 R
+>>
+endobj
+96 0 obj
+<< /Length 1343 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+GatU3>ArLj'Ro4H=@e]"929(]2c$p9LYX:WX!g]MXAgXoK*)5A(2R`TCnds0^#KL70k6*@8-GD<kPBViSG>,d?/8*X,='P%2+#T7KH6lgY_+CT0*QA^?t[2r*[b`g/`Xh"\`>0*TD4Vhf-"e!0D)GFYZ:\0H2%'_H#i&^1g6`V?ZZ21Yu9oRG4T4VGfX'G[%@$SF.Nb;QKL<3>W6#t^5!h&eSVfnrhO_ZU6$%-7B%tG[6s8[Ds>%:Ed-+J*/N.Aq.n7]cmj[K>nTW[b+GK_;C0G$X<ZV@<Ko@5U:Bm#b6(m*cfon`:hdMpD`2O\El*mW`t;A7.03JG3`4QoM7TB_nj3WO.ae9`,qo?Kb^*"V/'u3H"cP$J$OPrm+L4JVmgh_Xp"/@ke06CS@QGY\0N',PMO,em=hBo1KZuQ>q:%k(lV?4-Ve5QV7_uuJ+$[_AVI$ThO[])kS7/:cQcpB35t@ZtrPk_OA`-UO=12q(.+I.TDj?dq]PX0HQiSp^in-e_(T5s%&-GtpmQcNs9p3GsR)<UapAqKsaafumG3UdnK4(U/JKtK6GsqoNIIe(fDI.Nj1(E87"#*6olj+H:!`7/CM(UW&';b!RSN>(V\Cacr,N$hM+/Kq_4266XPRQ*(E1ldg)S-nJ)6>"D+DP$U%C1)npoLcne!o_WHTU<PnjCqu[,:lT\._iU+q>5-=/mP:6'j0$+pFWg0(7gaq1k,%49>6DA.]u8$mpmO!S#QR/M3r8`e4ZVK+4DK!MTo^bQjb3L'[:KW4#!j)&0MLA<<nIh7L.L>j.ee:9PcCH[r.&c"i7aGK9m7Pl*bL0!=hs2Z;JhDi?iu5=f.g@iA][rMeYf`Q<.:1$<htRQ4Q&]]3`1E6EOcJKXu.4Ls5L:UDTWpBQU=PCTkh6WLX^UI9\a9cYn-9(VsJ/$\kkZZBCYPk57X,n8Gjqr[*dBrCgH[](-+leqHt&O"f,ls^:&__lpqCq\XnZJNXHeA\"qn&W%(7UQs;i?trLllj/TGgS.I""./d/5X#h&'Rf?lIO_=b,rlsLSK1A2GLm6ji._ZX7DB+f6u#T-\T%7=FVBXkZ)spl@*o9hR<d<6Kf"G90;l>>Q3Hj_.Y\"om_S/X%HKVa0rA9h;Kt[Z_(4j3R]rppClG(AKEruL/4-X$BBk1AYPo(_5p!U91E/c?Q*ZG<R,_8eRME%@TA>+IBCk&jV-92Gm7\rR@-UBKZ$A>O_2%kn7BV9L[49J_9U;QoN-=i0(7FlM`AZ"^M<s5M/lXlhaS^Z]/cq\k)FGNhjEY,blG?`T='U2-^PQ3c1bA2KYbZEO6\<^d9LNTmg"/=-hRgsEMMc*4=]f\~>
+endstream
+endobj
+97 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 96 0 R
+>>
+endobj
+98 0 obj
+<< /Length 1240 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gatm;gMYb8&:N/3d)q7\,\-8%gdNh\j4XZ?_ak^=WTo*[X_a`EW%0@+:upLi98_k0imLC0#SOMfR@VM]1HTtC)kC?8J:nI<Zh5^TDFYrXnO!AP-uR$JKpW"L/GOS_OJQ#JlX,S3I'UV]l)SOf:GD\E80u,[.3;JA;SC.qS+d;seRh#8C.Sb)eQPG/4-NHmQVhE:S'37U7u_Sj(,I)7<r6p!358o'M1J8<dZHMIJCB-lQ[gDr*.nlW#Et'TV)oX^_K=ADXB(nb+*rEDR-rhm_]mj2qU(Kb[p;LW@\B1.5"kHX\uVnS,(@3W=%NF:DgR*POoljpasP5K^"P1G.L&VFaX=98`.9AP2Q@tbkP3;D<g^Sp*5OqF-dUIF[.,3S363EYT8R7101EE?Vj==mr)f\+0#,aIde\B+g.c,QMfsdU2oq&?`,]K1M<3R1H1q0nRN1p5]D$e.nO4jVZF7\ho_hHJPS\O8\oM*C>.aUrqV#)4&*CmWhP1<'PnQ`:cBSC\0X.^irY"6hJ7t,DV-bJ\&?@^D-C9.T6@`Mt(f`d\arVlo?Y'!\UmGT1;f_/l"*8rZi\U]`**dgJpLo9n6qrJ^I]N%:6`@"2?6uSRg8U(`f,U3;5W(hQCR5gmoA=X-iWp#>MK6>RY_Rp,]^$#MOE*LV?o-0L]GP/4G+$Y!p6<4/();o@?+7H-;K'&1?(12tnRA)N:LcN>O('5hphg'NN]0*F#0)$!X[Q>#;3O:6cA)_Gq3s#:/;j!ReMc@%X,c-r,?6BL>oQ;DHik91egU-`TsIJ(mr5c<B.1Gm8Kco<P94nB"@dhG&fOF$@Ls/%,fHcCH0F/+dO__!Q,f50O*Uip(AYE*!-ciX%rR-B>MJR#1Jap>EX=MpV1!Ja"GPlZH0<sipSQ#MSS.hZ)h9Ap:*mG0hjMBI`c2MO9L24`'2ki\L`_86.%k;d;PFk]pk^K$&?QM])p[[&2V*>86n00?&'*M$\FrtUflpL7M%u&M^%@dic@,s"CYgB5\u<+tT:S"dm6s\mKp1u`Gg`-O\s%[=RQlHCKfC1cUP=BuWSU`i!='8K<%J/,>jm?#&9Sr)YIR\t!l;u]H9JH"'PZag`7AL\N$RetRk58[RCF!E0Xj^TR.2.<J*u@Fj_XQrrOPrGM)bSK0P^Vt+p+Nlp#s<WSUJ0a-a*N7,N;+aQL2f%CY.+LCYpF+ASAM>&gWCBhjtk*Hd+^BYdZX<a1r5K'AB&M($PHk('~>
+endstream
+endobj
+99 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 98 0 R
+>>
+endobj
+100 0 obj
+<< /Length 1188 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=+?#S1_'Re<2n.r-jY2In&jmfR*Zp97s.`Cb0-ense32s<jSK6IL#k?f_:@*5lG[*L6Wd$;^I[kcJh!rSLltW46ie$JIf/)%3b_Y<=+*!+2\EMn$?T?6Yq)FH'6@J)\n_AHbr/Xi!ARQMWH0O*FbI9j/:I1sWgjekn51_:m:,3sYM#3?Q?g#i6dK$%<$ViD6jG6I[*?^`)H4tGIc^o@<BlM`gHl\TN]O(:k"4<pZdn*TCKDEKA,2C+446Z-%0>O$@a5'@OD@g=p`[XINq4i9U>Ro4sr%\I_6_BC^8nYuq4l>&U:)Wg9BA^^Q\/\&W:(q%Pb4@nujEB=<:`O/d7?`tl#dkQ?3A>T5ACSCIe4';hr%XSseO#.T*!@3rLn<AY%);6pgtY$I'#N\ea]!uo)h*e`\PC%_O_j(BOE&6a)Q@B06#c>8ahpHc2&cdQend>O-)Oj2:]ZfK*G*5_7LZ%`KFn5Yp'k@\QpW,q^QsiXG4,1a]1jCU5SmBlN/V^gr[M9o]nLU3Hd@2D<rM3eeB+Vgm%^_uK^#XO\r!7^Y<aSd"""p)+!k'sX]@o>Se^?:al2[,B\Ju$^ss,9`F*1E],l35de,NoA4&07JWt=76Er&Dn<:k+Y4ksY^'BNXB]j?g[+0to^_f'FjKYgl!cR+:cZ!9[)TFcSCoDG2FU4&abbtXncGOsI:,$Kh?Zj/.fT\O0<+u`gotb2Qa=P'OE,?RhPn-9+kdn6YkRc>sB^#U8A6Ln=lMI%C>),l<@hT8#I#r/d@.rsuo[2=dTMe[J@aO8MDT=+_J#r>'$S5GG``["PO;e^c"u6BV;+4>e'^KMGh1H:CN`DR/;Pq6H&&>a<*Tc-E%okku_T)hF\dE]*+EiaH-CEtc\GR`#bNj"M-Tij=`)e)'BO1HuIX5lDWUM6IX%&WIb'iaV*/ZO@0C]`_nU>RT[29^`GJ@)i,$^d]Z6Y+6GZu+5YFa7?Nmca7a!WME)MG/:<g:;7^$=pHam__rU@9?_5<q;QnKqnDI<B]=E[0rAcHtm(SS&o%\,FTG5j*F],ah8ChJq8b/`jfGlEd*6.2l7XQV+7`hF\"f]jB"`5JDmmL5P$p"Nl/k*K07IfNHQ"T"V5_>K#4UV]8p(#Xm3XHSg+k(j#?b66&<q<_,LhDTD_7jc5>341W.b#[WGYD54@3=D-k[/lj85~>
+endstream
+endobj
+101 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 100 0 R
+>>
+endobj
+102 0 obj
+<< /Length 1250 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat%#>E@5m'RoMS#_Q/m&Y-*H4-!H/=pBkk)Bfk'04Z+jlZOI08_6[LB!p@m^*gDPK&$p:>/edtIQmbVl.a2<EiqMsJ9["FKQrsmoa$#F7hrp98Jk"`/Q2'71t22%^="h+76jJ!l0Id-+l.UspC$pr>hpa]<VI]+/e@)i\,Q0qqRX/K0RBj\cBe<9,S\LPT6WBPim1Ii!WIi5(f=NPk!VV09YTfte)\l:i*__^Dd5>/LCBEI>oR&h9GU?(q9gJ4Gpt@oTRJKlT3XeY^`.BZXK]le+%2<2)COaSP&/$qc">XeIX)n,i-=r(?f+;YDWbAR@a'V3M0*8/o?6,m3rks<-u%4!(`bYj")W(u1O>B@5P7e`rRpj3aMDf1:Y,J#/Ks?/YBi(A:8Q6\\Lf'3dA4K4#jj[A?@:SL)u['@rG=b)YQSK90i?N*Tb@%ejQ>XBBRC"(!]d>,i[Qu43/#dY7C@e%J2G>(d91BU'c"E%\7#G@K**I]2S`Q%VuU0GUTbZh`Fc=2oj:/u4C)>+!J9$_@,UUtlS4`r.g)pW"QEOK?fF.1cV5;oo44mtLPn7-'m1NX%g>LHoIr587)DA8<OQ->:bDgK-%Z-<TT]/V>%4HkKo5r`W2;31^.0KRY\XFeEM=T6%6>R2?#V,VnA+dq=*7$s2V,DVX?Z$f,l0.82M:B]OLLDqLLR4[/`%PU2.U&+?mM[\GlJ>Q]<+7dhK?&b&sj^EX-K8'flDH'pTIZq@[6"nqo8'OQOp/qb"*<fV`"p6pa9?cP93P:)?Q1AD,eIm]#8Nee(jl]ZpR1Lkug*u]eh>d/.=hO5htJCat=u-ODViR?$pN/HbUclK\sC*A_4qZ)G&cdEP@,]Tn'M<U6VcL[Nid,d'c?hPEiUrs2CJM.*a`<<#MFJS?IIN=P_kpaCAWXQUlu<V/`A_[h')70:G'RBr`r2F;NKtNbAcDo5%bBTH8Xuc$JDP1b1d<640_kV[>grW33jcSj)A4*6#qH?o<=7(pgZ1Zm4<M4n`L;(j+n;la8X3g)a6$-V$(fi5hTgiCu[no,b4OE%=7o`d:DTA2kO_CPGHW2X,20L]dhc7Fii440qjOE*@A:W^Rc@U$^WXVNg)-eq2fOmDq"&T"gkSipbMbs6-F8Uc=ofH8]YS(#LYkJ(O^.WWXS;<M\UE)):Z?p=>GB-?%(W4Q<8f;:9uh!jtY[Xo2O,jG:O;W-g0,7;e95C\NT1k$-X^>tA*-CVUndP]rGm#FmCoV#~>
+endstream
+endobj
+103 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 102 0 R
+>>
+endobj
+104 0 obj
+<< /Length 1203 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat%"gMYb8&:N/3YV$8RXutPk05[/5,^+dT.+2.A$B7BK<\a]5<0sC"-cj&8QDDHq]Tc\=0M#r]B?jag/LHh9O[f]hDm>lFD_n(._*@54LuCiGs+f$,CqWWn<KYM<$_J9pl#6O\kABp$WCqB)Ah#]:q/WOqfrm4#em#dO2AgD+]JZ(ZHR&'CH-?3U+)c$J_--g9ouI:Mk-OMt?pX*f^!g\%XlF+uXd%E.ZSt<NDcL-:7e4EBfpP6/rHhZpM(6\kSRi=>"VKp1O#-.X9+HQ^m^9'0SW=m:362T`Df,m$+mcF*C-;bbVY!nhIhkIqPpqo$KB6bIL]C%Q"W4g1._sN;b=DVs,I"69Y'T:`XL]mO_GQ$hGgtHb/?cHZR-@.ZSOt"inu&1J^&UAW"hbTO,3_E#6i!e2a`c89G4F"BI6N1daNJ<pT\"B\$e]S?b-SB'oE/Rl%",Sg&rkh]H:7)9MRpAtrQB]%a>_[g%m)k%>nhqJ=BV(W=Ie$a4]2P4JarbA4">ddc_qkH+R,lZM,6Oc!O]b`:hun-SuADm@jR+g*,??&8;Nk,8Z1SF5YbsDlp<_s!uoFZQ/Fi^/sFd!f-S=^n@J\0b;>8aaaIns]bt?AUuFE6I".$">t2bfW/L;h69">g8FS;5)S*H#K[miPY_Y`?mK=R6^q5j*NH"Tr>]/%E^$8DT@,*S#$)c$q!6tHiE]Z`]mKXj=AW3NtXQEali1FO+k5g7`@?[.)S--H]MVaB'@3L_\k%7W,Z'XU:bEnD(pg>u4b1*-9:lIgdLnd[eH-JJj!"7'-E$R%bK_qP'S_9IK-eLh<oVShHJ^T$M(OGS"PpaO#D$H6,Q/=)tVF<\5rI!RaQST2iDZa*ZGF:Jph;:7\'cKOQ7BBMb1!Po`[O9sjZ9k."i9mGj+Un`!2<3Cnq@Cl3bGJ`pe;,Ap%s1;+]M(8pI>O?*4*N2!?2]3<8HVt(f@=`]lJXQAT+J$'LZqEtDbfdil$U*u#A%#@i+-/[^S7mdgng7ph867%GZ\+KR[<7T2+QK;Rth?sN=d[oifV(foA$G04ltNPo2V[[LWYM;Y5RK@(/he'3a9V-Z_*_4*7'^3R;.It4StQ7m9M:js0c!QK4Z7Q+uZuW7P]3lH0`QoP?6m=Q]INW"EKf#e-^bMKBf=B)L?&%n\1rA:T)C[m17McmW<YlJWnYi*f!$PAT-fpAUrnl~>
+endstream
+endobj
+105 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 104 0 R
+>>
+endobj
+106 0 obj
+<< /Length 1326 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+GatU3>Ar7S'Roe[cjX`s^%d6p8PrZX!G`XL*J3VjpF-FV9r;3)16kFO13D?%+)+Rg4/C>7#S>&kcZa9a\`i-qFM<PnMu\.Hoa#i4&b_=__]FhcFi][U*.,l2G<76sp%p69.&Pi`5[%W;d6Hn41OkEl9YEN+q=>1lT`0_JK<ZV:P<:MHGS9JMhUh;)<>\LPW13i7%;N?>O^bF;T(WEh*/XPl*sVfIT/YaO'"Q.RBf58GD8+*PlICZc]Td-8b2h\ZF$6*#F7@[IUOs1eb\#j97cd3'_bahS!^Y=DX@j^qHVY>6Q[JoY3?@AMG?7iUF"r6eK]HKebRk#;:YfCj"lJV9B4ZdN'Su:f(>J]oc%)_)17(!)B"T^Lh-1QUq2^rV<sE=gcMG$-Zm6T\ATE#])rXCB$Rc/5k3IRUT0Dqo)K)\mIYXOk4_#0mm(bh3:.V%s.>>j=ikEWI]oFK#[#bfmXKk1dif?YW^E".rmF"s5eU!QL*6YUFClC&5;+H@A>3(rnehj"M:]?u#rF$pQMq.S#g"0C,>bnd+X1^0!NdN_p@0XZdIrb]H@/)O9O[]b2BA/rh(hq'AIqa"a@a6*BV@/X*1gF;tD&$_^3d_65g3<jJgIg7,TGKcTq+U5II)u#%S&qI,/TQr4>s19Y]1`;Llr82&MEUTiK@5;I!<gH-PJpo2M63?97Pt[+T59N%"VBXq*UQHZ/6OK#YUWN2Oba*[q;'g337,+_aP))uE<qO"D3E#N\_1/JPacdAfMXTQqHpRsHMqf_V)0e;_BCc+hoRA&8?m2EWj8^[*4FUi$A(FP`)eKGfhiFWFclZ,&$T)'lB&n,@,B"2(FsJJ=;F=WeY,>KKg8>QNf7mH]<un'Df:)mLEVT<G\fnDGmN3:SEN*-^OI)nSt647')Os#+[71@].2Ki@I's(>,0BZ^@`LciSbR.\`T@,,!ZB$N[MnJ(I!fYT.F1'O+<[$(ji>]h-5U%*,8;,>XbapAe)bCVp'4#C(398,DZc5("li]i3dfW4aa<)Nr_7f"qFM>U:*`X%BTpVCC:?TlPX\#e>_6(l2tJ.S^-6Z==Y79g>6oigGnKlhkoCN7/a`\^WaYt;s)/Yep\tf6f"oGn8=BoYpdb3;D5=\W6JJ!C-FKA&A??7fg.VX1b"Tr)tDB@CD5Is7ncag)n/3u?P!qXn3d0QF*LtBU4,2;hs+djk?P,fR!OsgdQ_=5R#BL,+0!D5>qSWs2'5\B!)>7&e_'N#$B8*oDa!r6oMU0\Z0nBfY<56=<C`SQ%IGYB6UanRAp`^,]=KDs,e*)<b:'WqlVo8;o[_Sf&fgO7rrGFW:?V~>
+endstream
+endobj
+107 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 106 0 R
+>>
+endobj
+108 0 obj
+<< /Length 817 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat%!?#uMY'RekG_.,6a&.hh->Os^H-ge8]Vpf@X&$1[A%4bZ\B_q1Ud3r*9VrNDM4Qfu;"YQ/+k2J9%(dS;QI"O\h_#W-n"&,Zt@h_0JKCf/XS\.,ik6)$O,(p#:;Ds<40Ku@TIs_t,W.^6!GrnA#;$s(f9)Y?njhchE&*?4F[QJmroANC3B!/e:.BB<o6rhPBjl-+OHjAoj=mAk9a4-/>\)JOQ]!C$4[(gs)X_6\-S26U;)p&ieiOdM[QSYB]2mpjJ`JopoZP2JdO'V?T$KYciKiD*c47hETggnZGLA-'G\'#LoBWT!TojA.W9Q/SNQ]nJ`O]ANEHXS8j':ceoE+9cGii^W<orI*FK5P8_0]#I?In[aZ/'4@>f=[A1kBGCWM]!jkED&P^+_.>&bKm.5;3qTK?ppVcZ$AGm)GD=Q>Cg9$OE':kjQWVe.YT9E=O6,PD</.)`Or'Vk8PaYA/\mEU6T:EV:9P9#UeYWfnBU)b:b)UCZ/s$[H,2d5t#[q^KSl7U`k]M5gT)].$_F*\`/=Tb/nDn!'s)+hX>&>4CZYags^t'3erVnTh.?YQ\q9sZF44TY%64A7?c+qhj7TB`T'>Gd$])l4-[KR2YPVSJ_4/jW9$HYfU'(JV5&]0_?P<=eaf<-5s2DgkGad1Gs8n@;)91d-5CJ!F%[/#D(20lr6&ha,YfIo"9%b_Y4gXf9u5h@OGJ1VCRqSC_V!>M\+e+%H7@E>](t%:T`*,,0an'h\o2,oMu`\9j5r*;!sCH3#nAPNNG\AqDJ]ro_tDX%Ef>f@noBOGmLBeZcb0k0PLCUR)UIp~>
+endstream
+endobj
+109 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 108 0 R
+/Annots 110 0 R
+>>
+endobj
+110 0 obj
+[
+]
+endobj
+113 0 obj
+<<
+ /Title (\376\377\0\114\0\151\0\142\0\170\0\155\0\154\0\40\0\124\0\165\0\164\0\157\0\162\0\151\0\141\0\154)
+ /Parent 111 0 R
+ /Next 115 0 R
+ /A 112 0 R
+>> endobj
+115 0 obj
+<<
+ /Title (\376\377\0\124\0\141\0\142\0\154\0\145\0\40\0\157\0\146\0\40\0\103\0\157\0\156\0\164\0\145\0\156\0\164\0\163)
+ /Parent 111 0 R
+ /Prev 113 0 R
+ /Next 116 0 R
+ /A 114 0 R
+>> endobj
+116 0 obj
+<<
+ /Title (\376\377\0\111\0\156\0\164\0\162\0\157\0\144\0\165\0\143\0\164\0\151\0\157\0\156)
+ /Parent 111 0 R
+ /Prev 115 0 R
+ /Next 117 0 R
+ /A 9 0 R
+>> endobj
+117 0 obj
+<<
+ /Title (\376\377\0\104\0\141\0\164\0\141\0\40\0\124\0\171\0\160\0\145\0\163)
+ /Parent 111 0 R
+ /Prev 116 0 R
+ /Next 118 0 R
+ /A 11 0 R
+>> endobj
+118 0 obj
+<<
+ /Title (\376\377\0\120\0\141\0\162\0\163\0\151\0\156\0\147\0\40\0\164\0\150\0\145\0\40\0\146\0\151\0\154\0\145)
+ /Parent 111 0 R
+ /Prev 117 0 R
+ /Next 119 0 R
+ /A 13 0 R
+>> endobj
+119 0 obj
+<<
+ /Title (\376\377\0\122\0\145\0\164\0\162\0\151\0\145\0\166\0\151\0\156\0\147\0\40\0\105\0\154\0\145\0\155\0\145\0\156\0\164\0\40\0\103\0\157\0\156\0\164\0\145\0\156\0\164)
+ /Parent 111 0 R
+ /Prev 118 0 R
+ /Next 120 0 R
+ /A 15 0 R
+>> endobj
+120 0 obj
+<<
+ /Title (\376\377\0\125\0\163\0\151\0\156\0\147\0\40\0\130\0\120\0\141\0\164\0\150\0\40\0\164\0\157\0\40\0\122\0\145\0\164\0\162\0\151\0\145\0\166\0\145\0\40\0\105\0\154\0\145\0\155\0\145\0\156\0\164\0\40\0\103\0\157\0\156\0\164\0\145\0\156\0\164)
+ /Parent 111 0 R
+ /Prev 119 0 R
+ /Next 121 0 R
+ /A 17 0 R
+>> endobj
+121 0 obj
+<<
+ /Title (\376\377\0\127\0\162\0\151\0\164\0\151\0\156\0\147\0\40\0\145\0\154\0\145\0\155\0\145\0\156\0\164\0\40\0\143\0\157\0\156\0\164\0\145\0\156\0\164)
+ /Parent 111 0 R
+ /Prev 120 0 R
+ /Next 122 0 R
+ /A 19 0 R
+>> endobj
+122 0 obj
+<<
+ /Title (\376\377\0\127\0\162\0\151\0\164\0\151\0\156\0\147\0\40\0\101\0\164\0\164\0\162\0\151\0\142\0\165\0\164\0\145)
+ /Parent 111 0 R
+ /Prev 121 0 R
+ /Next 123 0 R
+ /A 21 0 R
+>> endobj
+123 0 obj
+<<
+ /Title (\376\377\0\122\0\145\0\164\0\162\0\151\0\145\0\166\0\151\0\156\0\147\0\40\0\101\0\164\0\164\0\162\0\151\0\142\0\165\0\164\0\145\0\163)
+ /Parent 111 0 R
+ /Prev 122 0 R
+ /Next 124 0 R
+ /A 23 0 R
+>> endobj
+124 0 obj
+<<
+ /Title (\376\377\0\105\0\156\0\143\0\157\0\144\0\151\0\156\0\147\0\40\0\103\0\157\0\156\0\166\0\145\0\162\0\163\0\151\0\157\0\156)
+ /Parent 111 0 R
+ /Prev 123 0 R
+ /Next 125 0 R
+ /A 25 0 R
+>> endobj
+125 0 obj
+<<
+ /Title (\376\377\0\101\0\56\0\240\0\103\0\157\0\155\0\160\0\151\0\154\0\141\0\164\0\151\0\157\0\156)
+ /Parent 111 0 R
+ /Prev 124 0 R
+ /Next 126 0 R
+ /A 27 0 R
+>> endobj
+126 0 obj
+<<
+ /Title (\376\377\0\102\0\56\0\240\0\123\0\141\0\155\0\160\0\154\0\145\0\40\0\104\0\157\0\143\0\165\0\155\0\145\0\156\0\164)
+ /Parent 111 0 R
+ /Prev 125 0 R
+ /Next 127 0 R
+ /A 29 0 R
+>> endobj
+127 0 obj
+<<
+ /Title (\376\377\0\103\0\56\0\240\0\103\0\157\0\144\0\145\0\40\0\146\0\157\0\162\0\40\0\113\0\145\0\171\0\167\0\157\0\162\0\144\0\40\0\105\0\170\0\141\0\155\0\160\0\154\0\145)
+ /Parent 111 0 R
+ /Prev 126 0 R
+ /Next 128 0 R
+ /A 31 0 R
+>> endobj
+128 0 obj
+<<
+ /Title (\376\377\0\104\0\56\0\240\0\103\0\157\0\144\0\145\0\40\0\146\0\157\0\162\0\40\0\130\0\120\0\141\0\164\0\150\0\40\0\105\0\170\0\141\0\155\0\160\0\154\0\145)
+ /Parent 111 0 R
+ /Prev 127 0 R
+ /Next 129 0 R
+ /A 33 0 R
+>> endobj
+129 0 obj
+<<
+ /Title (\376\377\0\105\0\56\0\240\0\103\0\157\0\144\0\145\0\40\0\146\0\157\0\162\0\40\0\101\0\144\0\144\0\40\0\113\0\145\0\171\0\167\0\157\0\162\0\144\0\40\0\105\0\170\0\141\0\155\0\160\0\154\0\145)
+ /Parent 111 0 R
+ /Prev 128 0 R
+ /Next 130 0 R
+ /A 35 0 R
+>> endobj
+130 0 obj
+<<
+ /Title (\376\377\0\106\0\56\0\240\0\103\0\157\0\144\0\145\0\40\0\146\0\157\0\162\0\40\0\101\0\144\0\144\0\40\0\101\0\164\0\164\0\162\0\151\0\142\0\165\0\164\0\145\0\40\0\105\0\170\0\141\0\155\0\160\0\154\0\145)
+ /Parent 111 0 R
+ /Prev 129 0 R
+ /Next 131 0 R
+ /A 37 0 R
+>> endobj
+131 0 obj
+<<
+ /Title (\376\377\0\107\0\56\0\240\0\103\0\157\0\144\0\145\0\40\0\146\0\157\0\162\0\40\0\122\0\145\0\164\0\162\0\151\0\145\0\166\0\151\0\156\0\147\0\40\0\101\0\164\0\164\0\162\0\151\0\142\0\165\0\164\0\145\0\40\0\126\0\141\0\154\0\165\0\145\0\40\0\105\0\170\0\141\0\155\0\160\0\154\0\145)
+ /Parent 111 0 R
+ /Prev 130 0 R
+ /Next 132 0 R
+ /A 39 0 R
+>> endobj
+132 0 obj
+<<
+ /Title (\376\377\0\110\0\56\0\240\0\103\0\157\0\144\0\145\0\40\0\146\0\157\0\162\0\40\0\105\0\156\0\143\0\157\0\144\0\151\0\156\0\147\0\40\0\103\0\157\0\156\0\166\0\145\0\162\0\163\0\151\0\157\0\156\0\40\0\105\0\170\0\141\0\155\0\160\0\154\0\145)
+ /Parent 111 0 R
+ /Prev 131 0 R
+ /Next 133 0 R
+ /A 41 0 R
+>> endobj
+133 0 obj
+<<
+ /Title (\376\377\0\111\0\56\0\240\0\101\0\143\0\153\0\156\0\157\0\167\0\154\0\145\0\144\0\147\0\145\0\155\0\145\0\156\0\164\0\163)
+ /Parent 111 0 R
+ /Prev 132 0 R
+ /Next 135 0 R
+ /A 43 0 R
+>> endobj
+135 0 obj
+<<
+ /Title (\376\377\0\111\0\156\0\144\0\145\0\170)
+ /Parent 111 0 R
+ /Prev 133 0 R
+ /A 134 0 R
+>> endobj
+136 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F3
+/BaseFont /Helvetica-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+137 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F14
+/BaseFont /ZapfDingbats >>
+endobj
+138 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F5
+/BaseFont /Times-Roman
+/Encoding /WinAnsiEncoding >>
+endobj
+139 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F6
+/BaseFont /Times-Italic
+/Encoding /WinAnsiEncoding >>
+endobj
+140 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F1
+/BaseFont /Helvetica
+/Encoding /WinAnsiEncoding >>
+endobj
+141 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F9
+/BaseFont /Courier
+/Encoding /WinAnsiEncoding >>
+endobj
+142 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F7
+/BaseFont /Times-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+1 0 obj
+<< /Type /Pages
+/Count 17
+/Kids [6 0 R 45 0 R 59 0 R 64 0 R 69 0 R 75 0 R 82 0 R 89 0 R 93 0 R 95 0 R 97 0 R 99 0 R 101 0 R 103 0 R 105 0 R 107 0 R 109 0 R ] >>
+endobj
+2 0 obj
+<< /Type /Catalog
+/Pages 1 0 R
+ /Outlines 111 0 R
+ /PageMode /UseOutlines
+ >>
+endobj
+3 0 obj
+<<
+/Font << /F3 136 0 R /F5 138 0 R /F14 137 0 R /F1 140 0 R /F6 139 0 R /F9 141 0 R /F7 142 0 R >>
+/ProcSet [ /PDF /ImageC /Text ] >>
+endobj
+9 0 obj
+<<
+/S /GoTo
+/D [45 0 R /XYZ 139.0 693.0 null]
+>>
+endobj
+11 0 obj
+<<
+/S /GoTo
+/D [45 0 R /XYZ 139.0 363.674 null]
+>>
+endobj
+13 0 obj
+<<
+/S /GoTo
+/D [59 0 R /XYZ 139.0 725.0 null]
+>>
+endobj
+15 0 obj
+<<
+/S /GoTo
+/D [59 0 R /XYZ 139.0 173.18 null]
+>>
+endobj
+17 0 obj
+<<
+/S /GoTo
+/D [64 0 R /XYZ 139.0 156.646 null]
+>>
+endobj
+19 0 obj
+<<
+/S /GoTo
+/D [75 0 R /XYZ 139.0 667.866 null]
+>>
+endobj
+21 0 obj
+<<
+/S /GoTo
+/D [75 0 R /XYZ 139.0 281.08 null]
+>>
+endobj
+23 0 obj
+<<
+/S /GoTo
+/D [82 0 R /XYZ 139.0 508.98 null]
+>>
+endobj
+25 0 obj
+<<
+/S /GoTo
+/D [89 0 R /XYZ 139.0 725.0 null]
+>>
+endobj
+27 0 obj
+<<
+/S /GoTo
+/D [93 0 R /XYZ 139.0 648.0 null]
+>>
+endobj
+29 0 obj
+<<
+/S /GoTo
+/D [93 0 R /XYZ 139.0 564.561 null]
+>>
+endobj
+31 0 obj
+<<
+/S /GoTo
+/D [93 0 R /XYZ 139.0 386.942 null]
+>>
+endobj
+33 0 obj
+<<
+/S /GoTo
+/D [95 0 R /XYZ 139.0 182.42 null]
+>>
+endobj
+35 0 obj
+<<
+/S /GoTo
+/D [99 0 R /XYZ 139.0 665.56 null]
+>>
+endobj
+37 0 obj
+<<
+/S /GoTo
+/D [101 0 R /XYZ 139.0 497.94 null]
+>>
+endobj
+39 0 obj
+<<
+/S /GoTo
+/D [103 0 R /XYZ 139.0 438.78 null]
+>>
+endobj
+41 0 obj
+<<
+/S /GoTo
+/D [105 0 R /XYZ 139.0 281.02 null]
+>>
+endobj
+43 0 obj
+<<
+/S /GoTo
+/D [107 0 R /XYZ 139.0 113.4 null]
+>>
+endobj
+111 0 obj
+<<
+ /First 113 0 R
+ /Last 135 0 R
+>> endobj
+112 0 obj
+<<
+/S /GoTo
+/D [6 0 R /XYZ 139.0 725.0 null]
+>>
+endobj
+114 0 obj
+<<
+/S /GoTo
+/D [6 0 R /XYZ 139.0 396.11 null]
+>>
+endobj
+134 0 obj
+<<
+/S /GoTo
+/D [109 0 R /XYZ 139.0 682.0 null]
+>>
+endobj
+xref
+0 143
+0000000000 65535 f
+0000046903 00000 n
+0000047079 00000 n
+0000047172 00000 n
+0000000015 00000 n
+0000000071 00000 n
+0000001911 00000 n
+0000002031 00000 n
+0000002175 00000 n
+0000047325 00000 n
+0000002309 00000 n
+0000047389 00000 n
+0000002445 00000 n
+0000047456 00000 n
+0000002581 00000 n
+0000047521 00000 n
+0000002717 00000 n
+0000047587 00000 n
+0000002853 00000 n
+0000047654 00000 n
+0000002989 00000 n
+0000047721 00000 n
+0000003125 00000 n
+0000047787 00000 n
+0000003261 00000 n
+0000047853 00000 n
+0000003397 00000 n
+0000047918 00000 n
+0000003533 00000 n
+0000047983 00000 n
+0000003669 00000 n
+0000048050 00000 n
+0000003804 00000 n
+0000048117 00000 n
+0000003940 00000 n
+0000048183 00000 n
+0000004076 00000 n
+0000048249 00000 n
+0000004212 00000 n
+0000048316 00000 n
+0000004348 00000 n
+0000048383 00000 n
+0000004484 00000 n
+0000048450 00000 n
+0000004620 00000 n
+0000006683 00000 n
+0000006806 00000 n
+0000006903 00000 n
+0000007078 00000 n
+0000007271 00000 n
+0000007469 00000 n
+0000007659 00000 n
+0000007846 00000 n
+0000008044 00000 n
+0000008246 00000 n
+0000008448 00000 n
+0000008648 00000 n
+0000008847 00000 n
+0000009052 00000 n
+0000011400 00000 n
+0000011523 00000 n
+0000011557 00000 n
+0000011693 00000 n
+0000011884 00000 n
+0000014223 00000 n
+0000014346 00000 n
+0000014380 00000 n
+0000014580 00000 n
+0000014791 00000 n
+0000017332 00000 n
+0000017455 00000 n
+0000017496 00000 n
+0000017685 00000 n
+0000017863 00000 n
+0000018000 00000 n
+0000020544 00000 n
+0000020667 00000 n
+0000020715 00000 n
+0000020850 00000 n
+0000021058 00000 n
+0000021197 00000 n
+0000021333 00000 n
+0000023582 00000 n
+0000023705 00000 n
+0000023753 00000 n
+0000023959 00000 n
+0000024098 00000 n
+0000024234 00000 n
+0000024439 00000 n
+0000027594 00000 n
+0000027717 00000 n
+0000027744 00000 n
+0000027878 00000 n
+0000030019 00000 n
+0000030127 00000 n
+0000031368 00000 n
+0000031476 00000 n
+0000032912 00000 n
+0000033020 00000 n
+0000034353 00000 n
+0000034461 00000 n
+0000035743 00000 n
+0000035853 00000 n
+0000037197 00000 n
+0000037307 00000 n
+0000038604 00000 n
+0000038714 00000 n
+0000040134 00000 n
+0000040244 00000 n
+0000041154 00000 n
+0000041280 00000 n
+0000048516 00000 n
+0000048570 00000 n
+0000041301 00000 n
+0000048635 00000 n
+0000041476 00000 n
+0000041677 00000 n
+0000041848 00000 n
+0000042007 00000 n
+0000042201 00000 n
+0000042455 00000 n
+0000042784 00000 n
+0000043020 00000 n
+0000043221 00000 n
+0000043446 00000 n
+0000043659 00000 n
+0000043842 00000 n
+0000044048 00000 n
+0000044306 00000 n
+0000044552 00000 n
+0000044833 00000 n
+0000045126 00000 n
+0000045496 00000 n
+0000045825 00000 n
+0000048701 00000 n
+0000046038 00000 n
+0000046154 00000 n
+0000046268 00000 n
+0000046354 00000 n
+0000046465 00000 n
+0000046577 00000 n
+0000046686 00000 n
+0000046793 00000 n
+trailer
+<<
+/Size 143
+/Root 2 0 R
+/Info 4 0 R
+>>
+startxref
+48768
+%%EOF
diff --git a/libxml2-2.9.10/doc/upgrade.html b/libxml2-2.9.10/doc/upgrade.html
new file mode 100644
index 0000000..f2f22af
--- /dev/null
+++ b/libxml2-2.9.10/doc/upgrade.html
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><title>Upgrading 1.x code</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>Upgrading 1.x code</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>Developer 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" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">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>Incompatible changes:</p><p>Version 2 of libxml2 is the first version introducing serious backward
+incompatible changes. The main goals were:</p><ul>
+ <li>a general cleanup. A number of mistakes inherited from the very early
+ versions couldn't be changed due to compatibility constraints. Example
+ the "childs" element in the nodes.</li>
+ <li>Uniformization of the various nodes, at least for their header and link
+ parts (doc, parent, children, prev, next), the goal is a simpler
+ programming model and simplifying the task of the DOM implementors.</li>
+ <li>better conformances to the XML specification, for example version 1.x
+ had an heuristic to try to detect ignorable white spaces. As a result the
+ SAX event generated were ignorableWhitespace() while the spec requires
+ character() in that case. This also mean that a number of DOM node
+ containing blank text may populate the DOM tree which were not present
+ before.</li>
+</ul><h3>How to fix libxml-1.x code:</h3><p>So client code of libxml designed to run with version 1.x may have to be
+changed to compile against version 2.x of libxml. Here is a list of changes
+that I have collected, they may not be sufficient, so in case you find other
+change which are required, <a href="mailto:Daniel.Veillard@w3.org">drop me a
+mail</a>:</p><ol>
+ <li>The package name have changed from libxml to libxml2, the library name
+ is now -lxml2 . There is a new xml2-config script which should be used to
+ select the right parameters libxml2</li>
+ <li>Node <strong>childs</strong> field has been renamed
+ <strong>children</strong> so s/childs/children/g should be applied
+ (probability of having "childs" anywhere else is close to 0+</li>
+ <li>The document don't have anymore a <strong>root</strong> element it has
+ been replaced by <strong>children</strong> and usually you will get a
+ list of element here. For example a Dtd element for the internal subset
+ and it's declaration may be found in that list, as well as processing
+ instructions or comments found before or after the document root element.
+ Use <strong>xmlDocGetRootElement(doc)</strong> to get the root element of
+ a document. Alternatively if you are sure to not reference DTDs nor have
+ PIs or comments before or after the root element
+ s/-&gt;root/-&gt;children/g will probably do it.</li>
+ <li>The white space issue, this one is more complex, unless special case of
+ validating parsing, the line breaks and spaces usually used for indenting
+ and formatting the document content becomes significant. So they are
+ reported by SAX and if your using the DOM tree, corresponding nodes are
+ generated. Too approach can be taken:
+ <ol>
+ <li>lazy one, use the compatibility call
+ <strong>xmlKeepBlanksDefault(0)</strong> but be aware that you are
+ relying on a special (and possibly broken) set of heuristics of
+ libxml to detect ignorable blanks. Don't complain if it breaks or
+ make your application not 100% clean w.r.t. to it's input.</li>
+ <li>the Right Way: change you code to accept possibly insignificant
+ blanks characters, or have your tree populated with weird blank text
+ nodes. You can spot them using the commodity function
+ <strong>xmlIsBlankNode(node)</strong> returning 1 for such blank
+ nodes.</li>
+ </ol>
+ <p>Note also that with the new default the output functions don't add any
+ extra indentation when saving a tree in order to be able to round trip
+ (read and save) without inflating the document with extra formatting
+ chars.</p>
+ </li>
+ <li>The include path has changed to $prefix/libxml/ and the includes
+ themselves uses this new prefix in includes instructions... If you are
+ using (as expected) the
+ <pre>xml2-config --cflags</pre>
+ <p>output to generate you compile commands this will probably work out of
+ the box</p>
+ </li>
+ <li>xmlDetectCharEncoding takes an extra argument indicating the length in
+ byte of the head of the document available for character detection.</li>
+</ol><h3>Ensuring both libxml-1.x and libxml-2.x compatibility</h3><p>Two new version of libxml (1.8.11) and libxml2 (2.3.4) have been released
+to allow smooth upgrade of existing libxml v1code while retaining
+compatibility. They offers the following:</p><ol>
+ <li>similar include naming, one should use
+ <strong>#include&lt;libxml/...&gt;</strong> in both cases.</li>
+ <li>similar identifiers defined via macros for the child and root fields:
+ respectively <strong>xmlChildrenNode</strong> and
+ <strong>xmlRootNode</strong></li>
+ <li>a new macro <strong>LIBXML_TEST_VERSION</strong> which should be
+ inserted once in the client code</li>
+</ol><p>So the roadmap to upgrade your existing libxml applications is the
+following:</p><ol>
+ <li>install the libxml-1.8.8 (and libxml-devel-1.8.8) packages</li>
+ <li>find all occurrences where the xmlDoc <strong>root</strong> field is
+ used and change it to <strong>xmlRootNode</strong></li>
+ <li>similarly find all occurrences where the xmlNode
+ <strong>childs</strong> field is used and change it to
+ <strong>xmlChildrenNode</strong></li>
+ <li>add a <strong>LIBXML_TEST_VERSION</strong> macro somewhere in your
+ <strong>main()</strong> or in the library init entry point</li>
+ <li>Recompile, check compatibility, it should still work</li>
+ <li>Change your configure script to look first for xml2-config and fall
+ back using xml-config . Use the --cflags and --libs output of the command
+ as the Include and Linking parameters needed to use libxml.</li>
+ <li>install libxml2-2.3.x and libxml2-devel-2.3.x (libxml-1.8.y and
+ libxml-devel-1.8.y can be kept simultaneously)</li>
+ <li>remove your config.cache, relaunch your configuration mechanism, and
+ recompile, if steps 2 and 3 were done right it should compile as-is</li>
+ <li>Test that your application is still running correctly, if not this may
+ be due to extra empty nodes due to formatting spaces being kept in libxml2
+ contrary to libxml1, in that case insert xmlKeepBlanksDefault(1) in your
+ code before calling the parser (next to
+ <strong>LIBXML_TEST_VERSION</strong> is a fine place).</li>
+</ol><p>Following those steps should work. It worked for some of my own code.</p><p>Let me put some emphasis on the fact that there is far more changes from
+libxml 1.x to 2.x than the ones you may have to patch for. The overall code
+has been considerably cleaned up and the conformance to the XML specification
+has been drastically improved too. Don't take those changes as an excuse to
+not upgrade, it may cost a lot on the long term ...</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>
diff --git a/libxml2-2.9.10/doc/w3c.png b/libxml2-2.9.10/doc/w3c.png
new file mode 100644
index 0000000..c541c20
--- /dev/null
+++ b/libxml2-2.9.10/doc/w3c.png
Binary files differ
diff --git a/libxml2-2.9.10/doc/wiki.xsl b/libxml2-2.9.10/doc/wiki.xsl
new file mode 100644
index 0000000..c072d20
--- /dev/null
+++ b/libxml2-2.9.10/doc/wiki.xsl
@@ -0,0 +1,589 @@
+<?xml version="1.0"?>
+<!--
+ Stylesheet to generate the HTML documentation from an XML API descriptions:
+ xsltproc wiki.xsl libxml2-api.xml
+
+ Daniel Veillard
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:str="http://exslt.org/strings"
+ extension-element-prefixes="exsl str"
+ exclude-result-prefixes="exsl str">
+
+ <!-- Generate XHTML-1.0 transitional -->
+ <xsl:output method="xml" encoding="UTF-8" indent="yes"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+ <!-- Build keys for all symbols -->
+ <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
+
+ <!-- the target directory for the HTML output -->
+ <xsl:variable name="htmldir">wiki</xsl:variable>
+ <xsl:variable name="href_base">../</xsl:variable>
+
+ <xsl:template name="style">
+ <link rel="SHORTCUT ICON" href="/favicon.ico"/>
+ <style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style>
+ </xsl:template>
+
+ <xsl:template name="docstyle">
+ <style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;}
+ </style>
+ </xsl:template>
+
+ <!-- This is convoluted but needed to force the current document to
+ be the API one and not the result tree from the tokenize() result,
+ because the keys are only defined on the main document -->
+ <xsl:template mode="dumptoken" match='*'>
+ <xsl:param name="token"/>
+ <xsl:variable name="ref" select="key('symbols', $token)"/>
+ <xsl:choose>
+ <xsl:when test="$ref">
+ <a href="libxml-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$token"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- dumps a string, making cross-reference links -->
+ <xsl:template name="dumptext">
+ <xsl:param name="text"/>
+ <xsl:variable name="ctxt" select='.'/>
+ <!-- <xsl:value-of select="$text"/> -->
+ <xsl:for-each select="str:tokenize($text, ' &#9;')">
+ <xsl:apply-templates select="$ctxt" mode='dumptoken'>
+ <xsl:with-param name="token" select="string(.)"/>
+ </xsl:apply-templates>
+ <xsl:if test="position() != last()">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="macro" mode="toc">
+ <pre class="programlisting">
+ <xsl:text>#define </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="variable" mode="toc">
+ <pre class="programlisting">
+ <xsl:text>Variable </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="string(@type)"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <a name="{@name}"></a>
+ <xsl:value-of select="@name"/>
+ <xsl:text>
+
+</xsl:text>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="typedef" mode="toc">
+ <xsl:variable name="name" select="string(@name)"/>
+ <pre class="programlisting">
+ <xsl:choose>
+ <xsl:when test="@type = 'enum'">
+ <xsl:text>Enum </xsl:text>
+ <a href="#{$name}"><xsl:value-of select="$name"/></a>
+ <xsl:text>
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Typedef </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <a name="{$name}"><xsl:value-of select="$name"/></a>
+ <xsl:text>
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="typedef[@type = 'enum']">
+ <xsl:variable name="name" select="string(@name)"/>
+ <h3>Enum <a name="{$name}"><xsl:value-of select="$name"/></a></h3>
+ <pre class="programlisting">
+ <xsl:text>Enum </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text> {
+</xsl:text>
+ <xsl:for-each select="/api/symbols/enum[@type = $name]">
+ <xsl:sort select="@value" data-type="number" order="ascending"/>
+ <xsl:text> </xsl:text>
+ <a name="{@name}"><xsl:value-of select="@name"/></a>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:if test="@info != ''">
+ <xsl:text> : </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@info"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>}
+</xsl:text>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="struct" mode="toc">
+ <pre class="programlisting">
+ <xsl:text>Structure </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a><br/>
+ <xsl:value-of select="@type"/><xsl:text>
+</xsl:text>
+ <xsl:if test="not(field)">
+ <xsl:text>The content of this structure is not made public by the API.
+</xsl:text>
+ </xsl:if>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="struct">
+ <h3><a name="{@name}">Structure <xsl:value-of select="@name"/></a></h3>
+ <pre class="programlisting">
+ <xsl:text>Structure </xsl:text><xsl:value-of select="@name"/><br/>
+ <xsl:value-of select="@type"/><xsl:text> {
+</xsl:text>
+ <xsl:if test="not(field)">
+ <xsl:text>The content of this structure is not made public by the API.
+</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="field">
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="@info != ''">
+ <xsl:text>&#9;: </xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="substring(@info, 1, 40)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>}</xsl:text>
+ </pre>
+ </xsl:template>
+
+ <xsl:template match="macro">
+ <xsl:variable name="name" select="string(@name)"/>
+ <h3><a name="{$name}"></a>Macro: <xsl:value-of select="$name"/></h3>
+ <pre><xsl:text>#define </xsl:text><xsl:value-of select="$name"/></pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p><xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="function" mode="toc">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <pre class="programlisting">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)</xsl:text>
+ </pre><xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="functype" mode="toc">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <pre class="programlisting">
+ <xsl:text>Function type: </xsl:text>
+ <a href="#{$name}"><xsl:value-of select="$name"/></a>
+ <xsl:text>
+</xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <a href="#{$name}"><xsl:value-of select="$name"/></a>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)
+</xsl:text>
+ </pre>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="functype">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <h3>
+ <a name="{$name}"></a>
+ <xsl:text>Function type: </xsl:text>
+ <xsl:value-of select="$name"/>
+ </h3>
+ <pre class="programlisting">
+ <xsl:text>Function type: </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p>
+ <xsl:if test="arg | return">
+ <div class="variablelist"><table border="0"><col align="left"/><tbody>
+ <xsl:for-each select="arg">
+ <tr>
+ <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:for-each>
+ <xsl:if test="return/@info">
+ <tr>
+ <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:if>
+ </tbody></table></div>
+ </xsl:if>
+ <br/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="function">
+ <xsl:variable name="name" select="string(@name)"/>
+ <xsl:variable name="nlen" select="string-length($name)"/>
+ <xsl:variable name="tlen" select="string-length(return/@type)"/>
+ <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+ <h3><a name="{$name}"></a>Function: <xsl:value-of select="$name"/></h3>
+ <pre class="programlisting">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@type"/>
+ </xsl:call-template>
+ <xsl:text>&#9;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="$blen - 40 &lt; -8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &lt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;(</xsl:text>
+ <xsl:if test="not(arg)">
+ <xsl:text>void</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="arg">
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text><br/>
+ <xsl:if test="$blen - 40 &gt; 8">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$blen - 40 &gt; 0">
+ <xsl:text>&#9;</xsl:text>
+ </xsl:if>
+ <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)</xsl:text><br/>
+ <xsl:text>
+</xsl:text>
+ </pre>
+ <p>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="info"/>
+ </xsl:call-template>
+ </p><xsl:text>
+</xsl:text>
+ <xsl:if test="arg | return/@info">
+ <div class="variablelist"><table border="0"><col align="left"/><tbody>
+ <xsl:for-each select="arg">
+ <tr>
+ <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:for-each>
+ <xsl:if test="return/@info">
+ <tr>
+ <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+ <td>
+ <xsl:call-template name="dumptext">
+ <xsl:with-param name="text" select="return/@info"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </xsl:if>
+ </tbody></table></div>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="exports" mode="toc">
+ <xsl:apply-templates select="key('symbols', string(@symbol))[1]" mode="toc"/>
+ </xsl:template>
+
+ <xsl:template match="exports">
+ <xsl:apply-templates select="key('symbols', string(@symbol))[1]"/>
+ </xsl:template>
+
+ <xsl:template name="description">
+ <xsl:if test="deprecated">
+ <h2 style="font-weight:bold;color:red;text-align:center">This module is deprecated</h2>
+ </xsl:if>
+ <xsl:if test="description">
+ <p><xsl:value-of select="description"/></p>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="docomponents">
+ <xsl:param name="mode"/>
+ <xsl:apply-templates select="exports[@type='macro']" mode="$mode">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='enum']" mode="$mode">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='typedef']" mode="$mode">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='struct']" mode="$mode">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='function']" mode="$mode">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="file">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="title">Module <xsl:value-of select="$name"/> from <xsl:value-of select="/api/@name"/></xsl:variable>
+ <xsl:document href="{$htmldir}/libxml-{$name}.html" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <xsl:call-template name="style"/>
+ <xsl:call-template name="docstyle"/>
+ <table border="0" cellpadding="3" cellspacing="1" width="100%">
+ <tr>
+ <td>
+ <xsl:call-template name="description"/>
+ <xsl:choose>
+ <xsl:when test="deprecated">
+ <div class="deprecated">
+ <h2>Table of Contents</h2>
+ <xsl:apply-templates select="exports" mode="toc"/>
+ <h2>Description</h2>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="exports"/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <h2>Table of Contents</h2>
+ <xsl:apply-templates select="exports[@type='macro']" mode="toc">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='enum']" mode="toc">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='typedef']" mode="toc">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='struct']" mode="toc">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='function']" mode="toc">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <h2>Description</h2>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="exports[@type='macro']">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='enum']">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='typedef']">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='struct']">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="exports[@type='function']">
+ <xsl:sort select='@symbol'/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+</table>
+ </xsl:document>
+ </xsl:template>
+
+ <xsl:template match="file" mode="toc">
+ <xsl:variable name="name" select="@name"/>
+ <b><a href="http://xmlsoft.org/wiki/index.php?title=Libxml2:Api:{$name}"><xsl:value-of select="$name"/></a></b><br/>
+ <xsl:value-of select="summary"/>
+ <br/><br/>
+ </xsl:template>
+
+ <xsl:template name="mainpage">
+ <xsl:param name="file" select="concat($htmldir, '/libxml-index.html')"/>
+ <xsl:variable name="title">Reference Manual for <xsl:value-of select="/api/@name"/></xsl:variable>
+ <xsl:document href="{$file}" method="xml" encoding="UTF-8"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <xsl:call-template name="style"/>
+ <xsl:call-template name="docstyle"/>
+ <table border="0" cellpadding="3" cellspacing="1" width="100%">
+ <tr>
+ <td>
+ <xsl:apply-templates select="/api/files/file" mode="toc"/>
+ </td>
+ </tr>
+ </table>
+ </xsl:document>
+ </xsl:template>
+
+ <xsl:template match="/">
+ <!-- Save the main libxml-index.html as well as a couple of copies -->
+ <xsl:call-template name="mainpage"/>
+ <!-- now build the file for each of the modules -->
+ <xsl:apply-templates select="/api/files/file"/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libxml2-2.9.10/doc/xml.html b/libxml2-2.9.10/doc/xml.html
new file mode 100644
index 0000000..1b59f90
--- /dev/null
+++ b/libxml2-2.9.10/doc/xml.html
@@ -0,0 +1,6605 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title>The XML C parser and toolkit of Gnome</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+</head>
+<body bgcolor="#ffffff">
+<h1 align="center">The XML C parser and toolkit of Gnome</h1>
+
+<h1>Note: this is the flat content of the <a href="index.html">web
+site</a></h1>
+
+<h1 style="text-align: center">libxml, a.k.a. gnome-xml</h1>
+
+<p></p>
+
+<p
+style="text-align: right; font-style: italic; font-size: 10pt">"Programming
+with libxml2 is like the thrilling embrace of an exotic stranger." <a
+href="http://diveintomark.org/archives/2004/02/18/libxml2">Mark
+Pilgrim</a></p>
+
+<p>Libxml2 is the XML C parser and toolkit developed for the Gnome project
+(but usable outside of the Gnome platform), it is free software available
+under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
+License</a>. XML itself is a metalanguage to design markup languages, i.e.
+text language where semantic and structure are added to the content using
+extra "markup" information enclosed between angle brackets. HTML is the most
+well-known markup language. Though the library is written in C <a
+href="python.html">a variety of language bindings</a> make it available in
+other environments.</p>
+
+<p>Libxml2 is known to be very portable, the library should build and work
+without serious troubles on a variety of systems (Linux, Unix, Windows,
+CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, VxWorks, ...)</p>
+
+<p>Libxml2 implements a number of existing standards related to markup
+languages:</p>
+<ul>
+ <li>the XML standard: <a
+ href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></li>
+ <li>Namespaces in XML: <a
+ href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a></li>
+ <li>XML Base: <a
+ href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a></li>
+ <li><a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC 2396</a> :
+ Uniform 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>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 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 <a href="http://www.cis.ohio-state.edu/rfc/rfc2781.txt">rfc2781</a>
+ [UTF-16] Unicode encodings, and more if using iconv support</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>Canonical XML Version 1.0: <a
+ href="http://www.w3.org/TR/xml-c14n">http://www.w3.org/TR/xml-c14n</a>
+ and 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>
+ <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 May
+ 2001</a></li>
+ <li>W3C <a href="http://www.w3.org/TR/xml-id/">xml:id</a> Working Draft 7
+ April 2004</li>
+</ul>
+
+<p>In most cases libxml2 tries to implement the specifications in a
+relatively strictly compliant way. As of release 2.4.16, libxml2 passed all
+1800+ tests from the <a
+href="http://www.oasis-open.org/committees/xml-conformance/">OASIS XML Tests
+Suite</a>.</p>
+
+<p>To some extent libxml2 provides support for the following additional
+specifications but doesn't claim to implement them completely:</p>
+<ul>
+ <li>Document Object Model (DOM) <a
+ href="http://www.w3.org/TR/DOM-Level-2-Core/">http://www.w3.org/TR/DOM-Level-2-Core/</a>
+ the document model, but it doesn't implement the API itself, gdome2 does
+ this on top of libxml2</li>
+ <li><a href="http://www.cis.ohio-state.edu/rfc/rfc959.txt">RFC 959</a> :
+ libxml2 implements a basic FTP client code</li>
+ <li><a href="http://www.cis.ohio-state.edu/rfc/rfc1945.txt">RFC 1945</a> :
+ HTTP/1.0, again a basic HTTP client code</li>
+ <li>SAX: a SAX2 like interface and a minimal SAX1 implementation compatible
+ with early expat versions</li>
+</ul>
+
+<p>A partial implementation of <a
+href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schemas Part
+1: Structure</a> is being worked on but it would be far too early to make any
+conformance statement about it at the moment.</p>
+
+<p>Separate documents:</p>
+<ul>
+ <li><a href="http://xmlsoft.org/XSLT/">the libxslt page</a> providing an
+ implementation of XSLT 1.0 and common extensions like EXSLT for
+ libxml2</li>
+ <li><a href="http://gdome2.cs.unibo.it/">the gdome2 page</a>
+ : a standard DOM2 implementation for libxml2</li>
+ <li><a href="http://www.aleksey.com/xmlsec/">the XMLSec page</a>: an
+ implementation of <a href="http://www.w3.org/TR/xmldsig-core/">W3C XML
+ Digital Signature</a> for libxml2</li>
+ <li>also check the related links section for more related and active
+ projects.</li>
+</ul>
+<p> Hosting sponsored by <a href="http://www.aoemedia.de/opensource-cms.html"
+>Open Source CMS services</a> from AOE media.</p>
+
+<p>Logo designed by <a href="mailto:liyanage@access.ch">Marc Liyanage</a>.</p>
+
+<h2><a name="Introducti">Introduction</a></h2>
+
+<p>This document describes libxml, the <a
+href="http://www.w3.org/XML/">XML</a> C parser and toolkit developed for the
+<a href="http://www.gnome.org/">Gnome</a> project. <a
+href="http://www.w3.org/XML/">XML is a standard</a> for building tag-based
+structured documents/data.</p>
+
+<p>Here are some key points about libxml:</p>
+<ul>
+ <li>Libxml2 exports Push (progressive) and Pull (blocking) type parser
+ interfaces for both XML and HTML.</li>
+ <li>Libxml2 can do DTD validation at parse time, using a parsed document
+ instance, or with an arbitrary DTD.</li>
+ <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, and
+ sticking closely to ANSI C/POSIX for easy embedding. Works on
+ Linux/Unix/Windows, ported to a number of other platforms.</li>
+ <li>Basic support for HTTP and FTP client allowing applications to fetch
+ remote resources.</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>Libxml2 also has a <a
+ href="http://www.megginson.com/SAX/index.html">SAX like interface</a>;
+ the interface 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">MIT
+ License</a>. See the Copyright file in the distribution for the precise
+ wording.</li>
+</ul>
+
+<p>Warning: unless you are forced to because your application links with a
+Gnome-1.X library requiring it, <strong><span
+style="background-color: #FF0000">Do Not Use libxml1</span></strong>, use
+libxml2</p>
+
+<h2><a name="FAQ">FAQ</a></h2>
+
+<p>Table of Contents:</p>
+<ul>
+ <li><a href="FAQ.html#License">License(s)</a></li>
+ <li><a href="FAQ.html#Installati">Installation</a></li>
+ <li><a href="FAQ.html#Compilatio">Compilation</a></li>
+ <li><a href="FAQ.html#Developer">Developer corner</a></li>
+</ul>
+
+<h3><a name="License">License</a>(s)</h3>
+<ol>
+ <li><em>Licensing Terms for libxml</em>
+ <p>libxml2 is released under the <a
+ href="http://www.opensource.org/licenses/mit-license.html">MIT
+ License</a>; see the file Copyright in the distribution for the precise
+ wording</p>
+ </li>
+ <li><em>Can I embed libxml2 in a proprietary application ?</em>
+ <p>Yes. The MIT License allows you to keep proprietary the changes you
+ made to libxml, but it would be graceful to send-back bug fixes and
+ improvements as patches for possible incorporation in the main
+ development tree.</p>
+ </li>
+</ol>
+
+<h3><a name="Installati">Installation</a></h3>
+<ol>
+ <li><strong><span style="background-color: #FF0000">Do Not Use
+ libxml1</span></strong>, use libxml2</li>
+ <p></p>
+ <li><em>Where can I get libxml</em> ?
+ <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 the
+ safer 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>
+ </li>
+ <p></p>
+ <li><em>I see libxml and libxml2 releases, which one should I install ?</em>
+ <ul>
+ <li>If you are not constrained by backward compatibility issues with
+ existing applications, install libxml2 only</li>
+ <li>If you are not doing development, you can safely install both.
+ Usually the packages <a
+ href="http://rpmfind.net/linux/RPM/libxml.html">libxml</a> and <a
+ href="http://rpmfind.net/linux/RPM/libxml2.html">libxml2</a> are
+ compatible (this is not the case for development packages).</li>
+ <li>If you are a developer and your system provides separate packaging
+ for shared libraries and the development components, it is possible
+ to 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>
+ too for libxml2 &gt;= 2.3.0</li>
+ <li>If you are developing a new application, please develop against
+ libxml2(-devel)</li>
+ </ul>
+ </li>
+ <li><em>I can't install the libxml package, it conflicts with libxml0</em>
+ <p>You probably have an old libxml0 package used to provide the shared
+ library for libxml.so.0, you can probably safely remove it. The libxml
+ packages provided on <a
+ href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a> provide
+ libxml.so.0</p>
+ </li>
+ <li><em>I can't install the libxml(2) RPM package due to failed
+ dependencies</em>
+ <p>The most generic solution is to re-fetch the latest src.rpm , and
+ rebuild it locally with</p>
+ <p><code>rpm --rebuild libxml(2)-xxx.src.rpm</code>.</p>
+ <p>If everything goes well it will generate two binary rpm packages (one
+ providing the shared libs and xmllint, and the other one, the -devel
+ package, providing includes, static libraries and scripts needed to build
+ applications with libxml(2)) that you can install locally.</p>
+ </li>
+</ol>
+
+<h3><a name="Compilatio">Compilation</a></h3>
+<ol>
+ <li><em>What is the process to compile libxml2 ?</em>
+ <p>As most UNIX libraries libxml2 follows the "standard":</p>
+ <p><code>gunzip -c xxx.tar.gz | tar xvf -</code></p>
+ <p><code>cd libxml-xxxx</code></p>
+ <p><code>./configure --help</code></p>
+ <p>to see the options, then the compilation/installation proper</p>
+ <p><code>./configure [possible options]</code></p>
+ <p><code>make</code></p>
+ <p><code>make install</code></p>
+ <p>At that point you may have to rerun ldconfig or a similar utility to
+ update your list of installed shared libs.</p>
+ </li>
+ <li><em>What other libraries are needed to compile/install libxml2 ?</em>
+ <p>Libxml2 does not require any other library, the normal C ANSI API
+ should be sufficient (please report any violation to this rule you may
+ find).</p>
+ <p>However if found at configuration time libxml2 will detect and use the
+ following libs:</p>
+ <ul>
+ <li><a href="http://www.info-zip.org/pub/infozip/zlib/">libz</a> : a
+ highly portable and available widely compression library.</li>
+ <li>iconv: a powerful character encoding conversion library. It is
+ included by default in recent glibc libraries, so it doesn't need to
+ be installed specifically on Linux. It now seems a <a
+ href="http://www.opennc.org/onlinepubs/7908799/xsh/iconv.html">part
+ of the official UNIX</a> specification. Here is one <a
+ href="http://www.gnu.org/software/libiconv/">implementation of the
+ library</a> which source can be found <a
+ href="ftp://ftp.ilog.fr/pub/Users/haible/gnu/">here</a>.</li>
+ </ul>
+ </li>
+ <p></p>
+ <li><em>Make check fails on some platforms</em>
+ <p>Sometimes the regression tests' results don't completely match the
+ value produced by the parser, and the makefile uses diff to print the
+ delta. On some platforms the diff return breaks the compilation process;
+ if the diff is small this is probably not a serious problem.</p>
+ <p>Sometimes (especially on Solaris) make checks fail due to limitations
+ in make. Try using GNU-make instead.</p>
+ </li>
+ <li><em>I use the SVN version and there is no configure script</em>
+ <p>The configure script (and other Makefiles) are generated. Use the
+ autogen.sh script to regenerate the configure script and Makefiles,
+ like:</p>
+ <p><code>./autogen.sh --prefix=/usr --disable-shared</code></p>
+ </li>
+ <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 the
+ optimizer which miscompiles the URI module. Please use another
+ compiler.</p>
+ </li>
+</ol>
+
+<h3><a name="Developer">Developer</a> corner</h3>
+<ol>
+ <li><em>Troubles compiling or linking programs using libxml2</em>
+ <p>Usually the problem comes from the fact that the compiler doesn't get
+ the right compilation or linking flags. There is a small shell script
+ <code>xml2-config</code> which is installed as part of libxml2 usual
+ install process which provides those flags. Use</p>
+ <p><code>xml2-config --cflags</code></p>
+ <p>to get the compilation flags and</p>
+ <p><code>xml2-config --libs</code></p>
+ <p>to get the linker flags. Usually this is done directly from the
+ Makefile as:</p>
+ <p><code>CFLAGS=`xml2-config --cflags`</code></p>
+ <p><code>LIBS=`xml2-config --libs`</code></p>
+ </li>
+ <li><em>I want to install my own copy of libxml2 in my home directory and
+ link my programs against it, but it doesn't work</em>
+ <p>There are many different ways to accomplish this. Here is one way to
+ do this under Linux. Suppose your home directory is <code>/home/user.
+ </code>Then:</p>
+ <ul>
+ <li>Create a subdirectory, let's call it <code>myxml</code></li>
+ <li>unpack the libxml2 distribution into that subdirectory</li>
+ <li>chdir into the unpacked distribution
+ (<code>/home/user/myxml/libxml2 </code>)</li>
+ <li>configure the library using the "<code>--prefix</code>" switch,
+ specifying an installation subdirectory in
+ <code>/home/user/myxml</code>, e.g.
+ <p><code>./configure --prefix /home/user/myxml/xmlinst</code> {other
+ configuration options}</p>
+ </li>
+ <li>now run <code>make</code> followed by <code>make install</code></li>
+ <li>At this point, the installation subdirectory contains the complete
+ "private" include files, library files and binary program files (e.g.
+ xmllint), located in
+ <p><code>/home/user/myxml/xmlinst/lib,
+ /home/user/myxml/xmlinst/include </code> and <code>
+ /home/user/myxml/xmlinst/bin</code></p>
+ respectively.</li>
+ <li>In order to use this "private" library, you should first add it to
+ the beginning of your default PATH (so that your own private program
+ files such as xmllint will be used instead of the normal system
+ ones). To do this, the Bash command would be
+ <p><code>export PATH=/home/user/myxml/xmlinst/bin:$PATH</code></p>
+ </li>
+ <li>Now suppose you have a program <code>test1.c</code> that you would
+ like to compile with your "private" library. Simply compile it using
+ the command
+ <p><code>gcc `xml2-config --cflags --libs` -o test test.c</code></p>
+ Note that, because your PATH has been set with <code>
+ /home/user/myxml/xmlinst/bin</code> at the beginning, the xml2-config
+ program which you just installed will be used instead of the system
+ default one, and this will <em>automatically</em> get the correct
+ libraries linked with your program.</li>
+ </ul>
+ </li>
+
+ <p></p>
+ <li><em>xmlDocDump() generates output on one line.</em>
+ <p>Libxml2 will not <strong>invent</strong> spaces in the content of a
+ document since <strong>all spaces in the content of a document are
+ significant</strong>. If you build a tree from the API and want
+ indentation:</p>
+ <ol>
+ <li>the correct way is to generate those yourself too.</li>
+ <li>the dangerous way is to ask libxml2 to add those blanks to your
+ content <strong>modifying the content of your document in the
+ process</strong>. The result may not be what you expect. There is
+ <strong>NO</strong> way to guarantee that such a modification won't
+ affect other parts of the content of your document. See <a
+ href="http://xmlsoft.org/html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault
+ ()</a> and <a
+ href="http://xmlsoft.org/html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile
+ ()</a></li>
+ </ol>
+ </li>
+ <p></p>
+ <li><em>Extra nodes in the document:</em>
+ <p><em>For an XML file as below:</em></p>
+ <pre>&lt;?xml version="1.0"?&gt;
+&lt;PLAN xmlns="http://www.argus.ca/autotest/1.0/"&gt;
+&lt;NODE CommFlag="0"/&gt;
+&lt;NODE CommFlag="1"/&gt;
+&lt;/PLAN&gt;</pre>
+ <p><em>after parsing it with the function
+ pxmlDoc=xmlParseFile(...);</em></p>
+ <p><em>I want to the get the content of the first node (node with the
+ CommFlag="0")</em></p>
+ <p><em>so I did it as following;</em></p>
+ <pre>xmlNodePtr pnode;
+pnode=pxmlDoc-&gt;children-&gt;children;</pre>
+ <p><em>but it does not work. If I change it to</em></p>
+ <pre>pnode=pxmlDoc-&gt;children-&gt;children-&gt;next;</pre>
+ <p><em>then it works. Can someone explain it to me.</em></p>
+ <p></p>
+ <p>In XML all characters in the content of the document are significant
+ <strong>including blanks and formatting line breaks</strong>.</p>
+ <p>The extra nodes you are wondering about are just that, text nodes with
+ the formatting spaces which are part of the document but that people tend
+ to forget. There is a function <a
+ href="http://xmlsoft.org/html/libxml-parser.html">xmlKeepBlanksDefault
+ ()</a> to remove those at parse time, but that's an heuristic, and its
+ use should be limited to cases where you are certain there is no
+ mixed-content in the document.</p>
+ </li>
+ <li><em>I get compilation errors of existing code like when accessing
+ <strong>root</strong> or <strong>child fields</strong> of nodes.</em>
+ <p>You are compiling code developed for libxml version 1 and using a
+ libxml2 development environment. Either switch back to libxml v1 devel or
+ even better fix the code to compile with libxml2 (or both) by <a
+ href="upgrade.html">following the instructions</a>.</p>
+ </li>
+ <li><em>I get compilation errors about non existing
+ <strong>xmlRootNode</strong> or <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 libxml
+ and libxml2, but you need to install a more recent version:
+ libxml(-devel) &gt;= 1.8.8 or libxml2(-devel) &gt;= 2.1.0</p>
+ </li>
+ <li><em>Random crashes in threaded applications</em>
+ <p>Read and follow all advices on the <a href="threads.html">thread
+ safety</a> page, and make 100% sure you never call xmlCleanupParser()
+ while the library or an XML document might still be in use by another
+ thread.</p>
+ </li>
+ <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 code
+ &lt;grin/&gt; ...</p>
+ <p>Check the previous points 1/ and 2/ raised before, and please send
+ patches.</p>
+ </li>
+ <li><em>Where can I get more examples and information than provided on the
+ web page?</em>
+ <p>Ideally a libxml2 book would be nice. I have no such plan ... But you
+ can:</p>
+ <ul>
+ <li>check more deeply the <a href="html/libxml-lib.html">existing
+ generated doc</a></li>
+ <li>have a look at <a href="examples/index.html">the set of
+ examples</a>.</li>
+ <li>look for examples of use for libxml2 function using the Gnome code
+ or by asking on Google.</li>
+ <li><a
+ href="http://svn.gnome.org/viewvc/libxml2/trunk/">Browse
+ the libxml2 source</a> , I try to write code as clean and documented
+ as possible, so looking at it may be helpful. In particular the code
+ of <a href="http://svn.gnome.org/viewvc/libxml2/trunk/xmllint.c?view=markup">xmllint.c</a> and of the various testXXX.c test programs should
+ provide good examples of how to do things with the library.</li>
+ </ul>
+ </li>
+ <p></p>
+ <li><em>What about C++ ?</em>
+ <p>libxml2 is written in pure C in order to allow easy reuse on a number
+ of platforms, including embedded systems. I don't intend to convert to
+ C++.</p>
+ <p>There is however a C++ wrapper which may fulfill your needs:</p>
+ <ul>
+ <li>by Ari Johnson &lt;ari@btigate.com&gt;:
+ <p>Website: <a
+ href="http://libxmlplusplus.sourceforge.net/">http://libxmlplusplus.sourceforge.net/</a></p>
+ <p>Download: <a
+ href="http://sourceforge.net/project/showfiles.php?group_id=12999">http://sourceforge.net/project/showfiles.php?group_id=12999</a></p>
+ </li>
+ </ul>
+ </li>
+ <li><em>How to validate a document a posteriori ?</em>
+ <p>It is possible to validate documents which had not been validated at
+ initial parsing time or documents which have been built from scratch
+ using the API. Use the <a
+ href="http://xmlsoft.org/html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd()</a>
+ function. It is also possible to simply add a DTD to an existing
+ document:</p>
+ <pre>xmlDocPtr doc; /* your existing document */
+xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */
+
+ dtd-&gt;name = xmlStrDup((xmlChar*)"root_name"); /* use the given root */
+
+ doc-&gt;intSubset = dtd;
+ if (doc-&gt;children == NULL) xmlAddChild((xmlNodePtr)doc, (xmlNodePtr)dtd);
+ else xmlAddPrevSibling(doc-&gt;children, (xmlNodePtr)dtd);
+ </pre>
+ </li>
+ <li><em>So what is this funky "xmlChar" used all the time?</em>
+ <p>It is a null terminated sequence of utf-8 characters. And only utf-8!
+ You need to convert strings encoded in different ways to utf-8 before
+ passing them to the API. This can be accomplished with the iconv library
+ for instance.</p>
+ </li>
+ <li>etc ...</li>
+</ol>
+
+<p></p>
+
+<h2><a name="Documentat">Developer Menu</a></h2>
+
+<p>There are several on-line resources related to using libxml:</p>
+<ol>
+ <li>Use the <a href="search.php">search engine</a> to look up
+ information.</li>
+ <li>Check the <a href="FAQ.html">FAQ.</a></li>
+ <li>Check the <a href="http://xmlsoft.org/html/libxml-lib.html">extensive
+ documentation</a> automatically extracted from code comments.</li>
+ <li>Look at the documentation about <a href="encoding.html">libxml
+ internationalization support</a>.</li>
+ <li>This page provides a global overview and <a href="example.html">some
+ examples</a> on how to use libxml.</li>
+ <li><a href="examples/index.html">Code examples</a></li>
+ <li>John Fleck's libxml2 tutorial: <a href="tutorial/index.html">html</a>
+ or <a href="tutorial/xmltutorial.pdf">pdf</a>.</li>
+ <li>If you need to parse large files, check the <a
+ href="xmlreader.html">xmlReader</a> API tutorial</li>
+ <li><a href="mailto:james@daa.com.au">James Henstridge</a> wrote <a
+ href="http://www.jamesh.id.au/articles/libxml-sax/libxml-sax.html">some nice
+ documentation</a> explaining how to use the libxml SAX interface.</li>
+ <li>George Lebl wrote <a
+ href="http://www-106.ibm.com/developerworks/library/l-gnome3/">an article
+ for IBM developerWorks</a> about using libxml.</li>
+ <li>Check <a href="http://svn.gnome.org/viewvc/libxml2/trunk/TODO?view=markup">the TODO
+ file</a>.</li>
+ <li>Read the <a href="upgrade.html">1.x to 2.x upgrade path</a>
+ description. If you are starting a new project using libxml you should
+ really use the 2.x version.</li>
+ <li>And don't forget to look at the <a
+ href="http://mail.gnome.org/archives/xml/">mailing-list archive</a>.</li>
+</ol>
+
+<h2><a name="Reporting">Reporting bugs and getting help</a></h2>
+
+<p>Well, bugs or missing features are always possible, and I will make a
+point of fixing them in a timely fashion. The best way to report a bug is to
+use the <a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Gnome
+bug tracking database</a> (make sure to use the "libxml2" module name). I
+look at reports there regularly and it's good to have a reminder when a bug
+is still 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 on
+irc.gnome.org (port 6667) usually has a few people subscribed which may help
+(but there is no guarantee and if a real issue is raised it should go on the
+mailing-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 visit the <a
+href="http://mail.gnome.org/mailman/listinfo/xml">associated Web</a> page and
+follow the instructions. <strong>Do not send code, I won't debug it</strong>
+(but patches are really appreciated!).</p>
+
+<p>Please note that with the current amount of virus and SPAM, sending mail
+to the list without being subscribed won't work. There is *far too many
+bounces* (in the order of a thousand a day !) I cannot approve them manually
+anymore. If your mail to the list bounced waiting for administrator approval,
+it is LOST ! Repost it and fix the problem triggering the error. Also please
+note that <span style="color: #FF0000; background-color: #FFFFFF">emails with
+a legal warning asking to not copy or redistribute freely the information
+they contain</span> are <strong>NOT</strong> acceptable for the mailing-list,
+such mail will as much as possible be discarded automatically, and are less
+likely to be answered if they made it to the list, <strong>DO NOT</strong>
+post to the list from an email address where such legal requirements are
+automatically added, get private paying support if you can't share
+information.</p>
+
+<p>Check the following <strong><span style="color: #FF0000">before
+posting</span></strong>:</p>
+<ul>
+ <li>Read the <a href="FAQ.html">FAQ</a> and <a href="search.php">use the
+ search engine</a> to get information related to your problem.</li>
+ <li>Make sure you are <a href="ftp://xmlsoft.org/libxml2/">using a recent
+ version</a>, and that the problem still shows up in a recent version.</li>
+ <li>Check the <a href="http://mail.gnome.org/archives/xml/">list
+ archives</a> to see if the problem was reported already. In this case
+ there is probably a fix available, similarly check the <a
+ href="https://gitlab.gnome.org/GNOME/libxml2/issues">registered
+ open bugs</a>.</li>
+ <li>Make sure you can reproduce the bug with xmllint or one of the test
+ programs found in source in the distribution.</li>
+ <li>Please send the command showing the error as well as the input (as an
+ attachment)</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 libxml
+related I will approve it. Please do not send mail to me directly, it makes
+things really hard to track and in some cases I am not the best person to
+answer a given question, ask on the list.</p>
+
+<p>To <span style="color: #E50000">be really clear about support</span>:</p>
+<ul>
+ <li>Support or help <span style="color: #E50000">requests MUST be sent to
+ the list or the bug tracker</span> in case of problems, so that the Question
+ and Answers can be shared publicly. Failing to do so carries the implicit
+ message "I want free support but I don't want to share the benefits with
+ others" and is not welcome. I will automatically Carbon-Copy the
+ xml@gnome.org mailing list for any technical reply made about libxml2 or
+ libxslt.</li>
+ <li>There is <span style="color: #E50000">no guarantee of support</span>. If
+ your question remains unanswered after a week, repost it, making sure you
+ gave all the detail needed and the information requested.</li>
+ <li>Failing to provide information as requested or double checking first
+ for prior feedback also carries the implicit message "the time of the
+ library maintainers is less valuable than my time" and might not be
+ welcome.</li>
+</ul>
+
+<p>Of course, bugs reported with a suggested patch for fixing them will
+probably 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 actually
+provide the answer. I usually send source samples when answering libxml2
+usage questions. The <a
+href="http://xmlsoft.org/html/book1.html">auto-generated documentation</a> is
+not as polished as I would like (i need to learn more about DocBook), but
+it's a good starting point.</p>
+
+<h2><a name="help">How to help</a></h2>
+
+<p>You can help the project in various ways, the best thing to do first is to
+subscribe to the mailing-list as explained before, check the <a
+href="http://mail.gnome.org/archives/xml/">archives </a>and the <a
+href="https://gitlab.gnome.org/GNOME/libxml2/issues">Gnome bug
+database</a>:</p>
+<ol>
+ <li>Provide patches when you find problems.</li>
+ <li>Provide the diffs when you port libxml2 to a new platform. They may not
+ be integrated in all cases but help pinpointing portability problems
+ and</li>
+ <li>Provide documentation fixes (either as patches to the code comments or
+ as HTML diffs).</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>Take one of the points raised in the archive or the bug database and
+ provide a fix. <a href="mailto:daniel@veillard.com">Get in touch with me
+ </a>before to avoid synchronization problems and check that the suggested
+ fix will fit in nicely :-)</li>
+</ol>
+
+<h2><a name="Downloads">Downloads</a></h2>
+
+<p>The latest versions of libxml2 can be found on the <a
+href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a> server ( <a
+href="ftp://xmlsoft.org/libxml2/">FTP</a> and rsync are available), there are also
+mirrors (<a href="ftp://fr.rpmfind.net/pub/libxml/">France</a> and
+Antonin Sprinzl also provide <a href="ftp://gd.tuwien.ac.at/pub/libxml/">a
+mirror in Austria</a>). (NOTE that you need both the <a
+href="http://rpmfind.net/linux/RPM/libxml2.html">libxml(2)</a> and <a
+href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml(2)-devel</a>
+packages installed to compile applications using libxml if using RPMs.)</p>
+
+<p>You can find all the history of libxml(2) and libxslt releases in the <a
+href="http://xmlsoft.org/sources/old/">old</a> directory. The precompiled
+Windows binaries made by Igor Zlatovic are available in the <a
+href="http://xmlsoft.org/sources/win32/">win32</a> directory.</p>
+
+<p>Binary ports:</p>
+<ul>
+ <li>RPMs for x86_64 are available directly on <a
+ href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>, the source RPM will compile on
+ any architecture supported.</li>
+ <li><a href="mailto:igor@zlatkovic.com">Igor Zlatkovic</a> is now the
+ maintainer of the Windows port, <a
+ href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
+ binaries</a>.</li>
+ <li>OpenCSW provides <a
+ href="http://opencsw.org/packages/libxml2">Solaris
+ binaries</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 X
+ 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 AIX</a> as
+ patr of their GNOME packages</li>
+</ul>
+
+<p>If you know other supported binary ports, please <a
+href="http://veillard.com/">contact me</a>.</p>
+
+<p><a name="Snapshot">Snapshot:</a></p>
+<ul>
+ <li>Code from the GNOME GIT base libxml2 module, updated hourly <a
+ href="ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz">libxml2-git-snapshot.tar.gz</a>.</li>
+ <li>Docs, content of the web site, the list archive included <a
+ href="ftp://xmlsoft.org/libxml2/libxml-docs.tar.gz">libxml-docs.tar.gz</a>.</li>
+</ul>
+
+<p><a name="Contribs">Contributions:</a></p>
+
+<p>I do accept external contributions, especially if compiling on another
+platform, get in touch with the list to upload the package, wrappers for
+various languages have been provided, and can be found in the <a
+href="python.html">bindings section</a></p>
+
+<p>Libxml2 is also available from GIT:</p>
+<ul>
+ <li><p>See <a href="https://gitlab.gnome.org/GNOME/libxml2">libxml2 Git web</a>.
+ To checkout a local tree use:</p>
+ <pre>git clone https://gitlab.gnome.org/GNOME/libxml2.git</pre>
+ </li>
+ <li>The <strong>libxslt</strong> module is also present
+ <a href="https://gitlab.gnome.org/GNOME/libxslt">there</a>.</li>
+</ul>
+
+<h2><a name="News">Releases</a></h2>
+
+<p>The <a href="ChangeLog.html">change log</a> describes the recents commits
+to the <a href="https://gitlab.gnome.org/GNOME/libxml2">GIT</a> code base.</p>
+
+<p>Here is the list of public releases:</p>
+
+<h3>v2.9.10: Oct 30 2019</h3>
+<ul>
+ <li>Documentation:<br/>
+ Fix a few more typos ("fonction") (Nick Wellnhofer),<br/>
+ Large batch of typo fixes (Jared Yanovich),<br/>
+ Fix typos: tree: move{ -&gt; s}, reconcil{i -&gt; }ed, h{o -&gt; e}ld by... (Jan Pokorný),<br/>
+ Fix typo: xpath: simpli{ -&gt; fi}ed (Jan Pokorný),<br/>
+ Doc: do not mislead towards "infeasible" scenario wrt. xmlBufNodeDump (Jan Pokorný),<br/>
+ Fix comments in test code (zhouzhongyuan),<br/>
+ fix comment in testReader.c (zhouzhongyuan)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ Fix some release issues on Fedora 30 (Daniel Veillard),<br/>
+ Fix exponent digits when running tests under old MSVC (Daniel Richard G),<br/>
+ Work around buggy ceil() function on AIX (Daniel Richard G),<br/>
+ Don't call printf with NULL string in runtest.c (Daniel Richard G),<br/>
+ Switched from unsigned long to ptrdiff_t in parser.c (Stephen Chenney),<br/>
+ timsort.h: support older GCCs (Jérôme Duval),<br/>
+ Make configure.ac work with older pkg-config (Nick Wellnhofer),<br/>
+ Stop defining _REENTRANT on some Win32 platforms (Nick Wellnhofer),<br/>
+ Fix nanohttp.c on MinGW (Nick Wellnhofer),<br/>
+ Fix Windows compiler warning in testC14N.c (Nick Wellnhofer),<br/>
+ Merge testThreadsWin32.c into testThreads.c (Nick Wellnhofer),<br/>
+ Fix Python bindings under Windows (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Another fix for conditional sections at end of document (Nick Wellnhofer),<br/>
+ Fix for conditional sections at end of document (Nick Wellnhofer),<br/>
+ Make sure that Python tests exit with error code (Nick Wellnhofer),<br/>
+ Audit memory error handling in xpath.c (Nick Wellnhofer),<br/>
+ Fix error code in xmlTextWriterStartDocument (Nick Wellnhofer),<br/>
+ Fix integer overflow when counting written bytes (Nick Wellnhofer),<br/>
+ Fix uninitialized memory access in HTML parser (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlSchemaValAtomicType (Nick Wellnhofer),<br/>
+ Disallow conditional sections in internal subset (Nick Wellnhofer),<br/>
+ Fix use-after-free in xmlTextReaderFreeNodeList (Nick Wellnhofer),<br/>
+ Fix Regextests (Nick Wellnhofer),<br/>
+ Fix empty branch in regex (Nick Wellnhofer),<br/>
+ Fix integer overflow in entity recursion check (Nick Wellnhofer),<br/>
+ Don't read external entities or XIncludes from stdin (Nick Wellnhofer),<br/>
+ Fix Schema determinism check of ##other namespaces (Nick Wellnhofer),<br/>
+ Fix potential null deref in xmlSchemaIDCFillNodeTables (zhouzhongyuan),<br/>
+ Fix potential memory leak in xmlBufBackToBuffer (Nick Wellnhofer),<br/>
+ Fix error message when processing XIncludes with fallbacks (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlRegEpxFromParse (zhouzhongyuan),<br/>
+ 14:00 is a valid timezone for xs:dateTime (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlParseBalancedChunkMemoryRecover (Zhipeng Xie),<br/>
+ Fix potential null deref in xmlRelaxNGParsePatterns (Nick Wellnhofer),<br/>
+ Misleading error message with xs:{min|max}Inclusive (bettermanzzy),<br/>
+ Fix memory leak in xmlXIncludeLoadTxt (Wang Kirin),<br/>
+ Partial fix for comparison of xs:durations (Nick Wellnhofer),<br/>
+ Fix null deref in xmlreader buffer (zhouzhongyuan),<br/>
+ Fix unability to RelaxNG-validate grammar with choice-based name class (Jan Pokorný),<br/>
+ Fix unability to validate ambiguously constructed interleave for RelaxNG (Jan Pokorný),<br/>
+ Fix possible null dereference in xmlXPathIdFunction (zhouzhongyuan),<br/>
+ fix memory leak in xmlAllocOutputBuffer (zhouzhongyuan),<br/>
+ Fix unsigned int overflow (Jens Eggerstedt),<br/>
+ dict.h: gcc 2.95 doesn't allow multiple storage classes (Nick Wellnhofer),<br/>
+ Fix another code path in xmlParseQName (Nick Wellnhofer),<br/>
+ Make sure that xmlParseQName returns NULL in error case (Nick Wellnhofer),<br/>
+ Fix build without reader but with pattern (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlAllocOutputBufferInternal error path (Nick Wellnhofer),<br/>
+ Fix unsigned integer overflow (Nick Wellnhofer),<br/>
+ Fix return value of xmlOutputBufferWrite (Nick Wellnhofer),<br/>
+ Fix parser termination from "Double hyphen within comment" error (David Warring),<br/>
+ Fix call stack overflow in xmlFreePattern (Nick Wellnhofer),<br/>
+ Fix null deref in previous commit (Nick Wellnhofer),<br/>
+ Fix memory leaks in xmlXPathParseNameComplex error paths (Nick Wellnhofer),<br/>
+ Check for integer overflow in xmlXPtrEvalChildSeq (Nick Wellnhofer),<br/>
+ Fix xmllint dump of XPath namespace nodes (Nick Wellnhofer),<br/>
+ Fix float casts in xmlXPathSubstringFunction (Nick Wellnhofer),<br/>
+ Fix null deref in xmlregexp error path (Nick Wellnhofer),<br/>
+ Fix null pointer dereference in xmlTextReaderReadOuterXml (Nick Wellnhofer),<br/>
+ Fix memory leaks in xmlParseStartTag2 error paths (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlSAX2StartElement (Nick Wellnhofer),<br/>
+ Fix commit "Memory leak in xmlFreeID (xmlreader.c)" (Nick Wellnhofer),<br/>
+ Fix NULL pointer deref in xmlTextReaderValidateEntity (Nick Wellnhofer),<br/>
+ Memory leak in xmlFreeTextReader (Nick Wellnhofer),<br/>
+ Memory leak in xmlFreeID (xmlreader.c) (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Run XML conformance tests under CI (Nick Wellnhofer),<br/>
+ Update GitLab CI config (Nick Wellnhofer),<br/>
+ Propagate memory errors in valuePush (Nick Wellnhofer),<br/>
+ Propagate memory errors in xmlXPathCompExprAdd (Nick Wellnhofer),<br/>
+ Make xmlFreeDocElementContent non-recursive (Nick Wellnhofer),<br/>
+ Enable continuous integration via GitLab CI (Nick Wellnhofer),<br/>
+ Avoid ignored attribute warnings under GCC (Nick Wellnhofer),<br/>
+ Make xmlDumpElementContent non-recursive (Nick Wellnhofer),<br/>
+ Make apibuild.py ignore ATTRIBUTE_NO_SANITIZE (Nick Wellnhofer),<br/>
+ Mark xmlExp* symbols as removed (Nick Wellnhofer),<br/>
+ Make xmlParseConditionalSections non-recursive (Nick Wellnhofer),<br/>
+ Adjust expected error in Python tests (Nick Wellnhofer),<br/>
+ Make xmlTextReaderFreeNodeList non-recursive (Nick Wellnhofer),<br/>
+ Make xmlFreeNodeList non-recursive (Nick Wellnhofer),<br/>
+ Make xmlParseContent and xmlParseElement non-recursive (Nick Wellnhofer),<br/>
+ Remove executable bit from non-executable files (Nick Wellnhofer),<br/>
+ Fix expected output of test/schemas/any4 (Nick Wellnhofer),<br/>
+ Optimize build instructions in README (zhouzhongyuan),<br/>
+ xml2-config.in: Output CFLAGS and LIBS on the same line (Hugh McMaster),<br/>
+ xml2-config: Add a --dynamic switch to print only shared libraries (Hugh McMaster),<br/>
+ Annotate functions with __attribute__((no_sanitize)) (Nick Wellnhofer),<br/>
+ Fix warnings when compiling without reader or push parser (Nick Wellnhofer),<br/>
+ Remove unused member `doc` in xmlSaveCtxt (Nick Wellnhofer),<br/>
+ Limit recursion depth in xmlXPathCompOpEvalPredicate (Nick Wellnhofer),<br/>
+ Remove -Wno-array-bounds (Nick Wellnhofer),<br/>
+ Remove unreachable code in xmlXPathCountFunction (Nick Wellnhofer),<br/>
+ Improve XPath predicate and filter evaluation (Nick Wellnhofer),<br/>
+ Limit recursion depth in xmlXPathOptimizeExpression (Nick Wellnhofer),<br/>
+ Disable hash randomization when fuzzing (Nick Wellnhofer),<br/>
+ Optional recursion limit when parsing XPath expressions (Nick Wellnhofer),<br/>
+ Optional recursion limit when evaluating XPath expressions (Nick Wellnhofer),<br/>
+ Use break statements in xmlXPathCompOpEval (Nick Wellnhofer),<br/>
+ Optional XPath operation limit (Nick Wellnhofer),<br/>
+ Fix compilation with --with-minimum (Nick Wellnhofer),<br/>
+ Check XPath stack after calling functions (Nick Wellnhofer),<br/>
+ Remove debug printf in xmlreader.c (Nick Wellnhofer),<br/>
+ Always define LIBXML_THREAD_ENABLED when enabled (Michael Haubenwallner),<br/>
+ Regenerate NEWS (Nick Wellnhofer),<br/>
+ Change git repo URL (Nick Wellnhofer),<br/>
+ Change bug tracker URL (Nick Wellnhofer),<br/>
+ Remove outdated HTML file (Nick Wellnhofer),<br/>
+ Fix unused function warning in testapi.c (Nick Wellnhofer),<br/>
+ Add some generated test files to .gitignore (Nick Wellnhofer),<br/>
+ Remove unneeded function pointer casts (Nick Wellnhofer),<br/>
+ Fix -Wcast-function-type warnings (GCC 8) (Nick Wellnhofer),<br/>
+ Fix -Wformat-truncation warnings (GCC 8) (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Cleanups:<br/>
+ Rebuild docs (Nick Wellnhofer),<br/>
+ Disable xmlExp regex code (Nick Wellnhofer),<br/>
+ Remove redundant code in xmlRelaxNGValidateState (Nick Wellnhofer),<br/>
+ Remove redundant code in xmlXPathCompRelationalExpr (Nick Wellnhofer)<br/>
+ </li>
+</ul>
+
+<h3>v2.9.9: Jan 03 2019</h3>
+<ul>
+ <li>Security:<br/>
+ CVE-2018-9251 CVE-2018-14567 Fix infinite loop in LZMA decompression (Nick Wellnhofer),<br/>
+ CVE-2018-14404 Fix nullptr deref with XPath logic ops (Nick Wellnhofer),<br/>
+ </li>
+
+ <li>Documentation:<br/>
+ reader: Fix documentation comment (Mohammed Sadiq)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ Fix MSVC build with lzma (Nick Wellnhofer),<br/>
+ Variables need 'extern' in static lib on Cygwin (Michael Haubenwallner),<br/>
+ Really declare dllexport/dllimport for Cygwin (Michael Haubenwallner),<br/>
+ Merge branch 'patch-2' into 'master' (Nick Wellnhofer),<br/>
+ Change dir to $THEDIR after ACLOCAL_PATH check autoreconf creates aclocal.m4 in $srcdir (Vitaly Buka),<br/>
+ Improve error message if pkg.m4 couldn't be found (Nick Wellnhofer),<br/>
+ NaN and Inf fixes for pre-C99 compilers (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Revert "Support xmlTextReaderNextSibling w/o preparsed doc" (Nick Wellnhofer),<br/>
+ Fix building relative URIs (Thomas Holder),<br/>
+ Problem with data in interleave in RelaxNG validation (Nikolai Weibull),<br/>
+ Fix memory leak in xmlSwitchInputEncodingInt error path (Nick Wellnhofer),<br/>
+ Set doc on element obtained from freeElems (Nick Wellnhofer),<br/>
+ Fix HTML serialization with UTF-8 encoding (Nick Wellnhofer),<br/>
+ Use actual doc in xmlTextReaderRead*Xml (Nick Wellnhofer),<br/>
+ Unlink node before freeing it in xmlSAX2StartElement (Nick Wellnhofer),<br/>
+ Check return value of nodePush in xmlSAX2StartElement (Nick Wellnhofer),<br/>
+ Free input buffer in xmlHaltParser (Nick Wellnhofer),<br/>
+ Reset HTML parser input pointers on encoding failure (Nick Wellnhofer),<br/>
+ Don't run icu_parse_test if EUC-JP is unsupported (Nick Wellnhofer),<br/>
+ Fix xmlSchemaValidCtxtPtr reuse memory leak (Greg Hildstrom),<br/>
+ Fix xmlTextReaderNext with preparsed document (Felix Bünemann),<br/>
+ Remove stray character from comment (Nick Wellnhofer),<br/>
+ Remove a misleading line from xmlCharEncOutput (Andrey Bienkowski),<br/>
+ HTML noscript should not close p (Daniel Veillard),<br/>
+ Don't change context node in xmlXPathRoot (Nick Wellnhofer),<br/>
+ Stop using XPATH_OP_RESET (Nick Wellnhofer),<br/>
+ Revert "Change calls to xmlCharEncInput to set flush false" (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Fix "Problem with data in interleave in RelaxNG validation" (Nikolai Weibull),<br/>
+ cleanup: remove some unreachable code (Thomas Holder),<br/>
+ add --relative to testURI (Thomas Holder),<br/>
+ Remove redefined starts and defines inside include elements (Nikolai Weibull),<br/>
+ Allow choice within choice in nameClass in RELAX NG (Nikolai Weibull),<br/>
+ Look inside divs for starts and defines inside include (Nikolai Weibull),<br/>
+ Add compile and libxml2-config.cmake to .gitignore (Nikolai Weibull),<br/>
+ Stop using doc-&gt;charset outside parser code (Nick Wellnhofer),<br/>
+ Add newlines to 'xmllint --xpath' output (Nick Wellnhofer),<br/>
+ Don't include SAX.h from globals.h (Nick Wellnhofer),<br/>
+ Support xmlTextReaderNextSibling w/o preparsed doc (Felix Bünemann),<br/>
+ Don't instruct user to run make when autogen.sh failed (æž—åšä»(Buo-ren Lin)),<br/>
+ Run Travis ASan tests with "sudo: required" (Nick Wellnhofer),<br/>
+ Improve restoring of context size and position (Nick Wellnhofer),<br/>
+ Simplify and harden nodeset filtering (Nick Wellnhofer),<br/>
+ Avoid unnecessary backups of the context node (Nick Wellnhofer),<br/>
+ Fix inconsistency in xmlXPathIsInf (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Cleanups:<br/>
+ </li>
+</ul>
+<h3>v2.9.8: Mar 05 2018</h3>
+<ul>
+ <li>Portability:<br/>
+ python: remove single use of _PyVerify_fd (Patrick Welche),<br/>
+ Build more test executables on Windows/MSVC (Nick Wellnhofer),<br/>
+ Stop including ansidecl.h (Nick Wellnhofer),<br/>
+ Fix libz and liblzma detection (Nick Wellnhofer),<br/>
+ Revert "Compile testapi with -Wno-unused-function" (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Fix xmlParserEntityCheck (Nick Wellnhofer),<br/>
+ Halt parser in case of encoding error (Nick Wellnhofer),<br/>
+ Clear entity content in case of errors (Nick Wellnhofer),<br/>
+ Change calls to xmlCharEncInput to set flush false when not final call. Having flush incorrectly set to true causes errors for ICU. (Joel Hockey),<br/>
+ Fix buffer over-read in xmlParseNCNameComplex (Nick Wellnhofer),<br/>
+ Fix ICU library filenames on Windows/MSVC (Nick Wellnhofer),<br/>
+ Fix xmlXPathIsNaN broken by recent commit (Nick Wellnhofer),<br/>
+ Fix -Wenum-compare warnings (Nick Wellnhofer),<br/>
+ Fix callback signature in testapi.c (Nick Wellnhofer),<br/>
+ Fix unused parameter warning without ICU (Nick Wellnhofer),<br/>
+ Fix IO callback signatures (Nick Wellnhofer),<br/>
+ Fix misc callback signatures (Nick Wellnhofer),<br/>
+ Fix list callback signatures (Nick Wellnhofer),<br/>
+ Fix hash callback signatures (Nick Wellnhofer),<br/>
+ Refactor name and type signature for xmlNop (Vlad Tsyrklevich),<br/>
+ Fixed ICU to set flush correctly and provide pivot buffer. (Joel Hockey),<br/>
+ Skip EBCDIC tests if EBCDIC isn't supported (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Disable pointer-overflow UBSan checks under Travis (Nick Wellnhofer),<br/>
+ Improve handling of context input_id (Daniel Veillard),<br/>
+ Add resource file to Windows DLL (ccpaging),<br/>
+ Run Travis tests with -Werror (Nick Wellnhofer),<br/>
+ Build with "-Wall -Wextra" (Nick Wellnhofer),<br/>
+ Fix -Wtautological-pointer-compare warnings (Nick Wellnhofer),<br/>
+ Remove unused AC_CHECKs (Nick Wellnhofer),<br/>
+ Update information about contributing (Nick Wellnhofer),<br/>
+ Fix -Wmisleading-indentation warnings (Nick Wellnhofer),<br/>
+ Don't touch CFLAGS in configure.ac (Nick Wellnhofer),<br/>
+ Ignore function pointer cast warnings (Nick Wellnhofer),<br/>
+ Simplify XPath NaN, inf and -0 handling (Nick Wellnhofer),<br/>
+ Introduce xmlPosixStrdup and update xmlMemStrdup (Nick Wellnhofer),<br/>
+ Add test for ICU flush and pivot buffer (Nick Wellnhofer),<br/>
+ Compile testapi with -Wno-unused-function (Nick Wellnhofer)<br/>
+ </li>
+</ul>
+<h3>2.9.7: Nov 02 2017</h3>
+<ul>
+ <li>Documentation:<br/>
+ xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ Fix deprecated Travis compiler flag (Nick Wellnhofer),<br/>
+ Add declaration for DllMain (J. Peter Mugaas),<br/>
+ Fix preprocessor conditional in threads.h (J. Peter Mugaas),<br/>
+ Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas),<br/>
+ Fix macro redefinition warning (J. Peter Mugaas),<br/>
+ Default to native threads on MinGW-w64 (Nick Wellnhofer),<br/>
+ Simplify Windows IO functions (Nick Wellnhofer),<br/>
+ Fix runtest on Windows (Nick Wellnhofer),<br/>
+ socklen_t is always int on Windows (Nick Wellnhofer),<br/>
+ Don't redefine socket error codes on Windows (Nick Wellnhofer),<br/>
+ Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer),<br/>
+ Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ xmlcatalog: restore ability to query system catalog easily (Jan Pokorný),<br/>
+ Fix comparison of nodesets to strings (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer),<br/>
+ Fix mixed decls and code in timsort.h (Nick Wellnhofer),<br/>
+ Rework handling of return values in thread tests (Nick Wellnhofer),<br/>
+ Fix unused variable warnings in testrecurse (Nick Wellnhofer),<br/>
+ Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas),<br/>
+ Upgrade timsort.h to latest revision (Nick Wellnhofer),<br/>
+ Increase warning level to /W3 under MSVC (Nick Wellnhofer),<br/>
+ Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer),<br/>
+ Update .gitignore for Windows (Nick Wellnhofer),<br/>
+ Fix unused variable warnings in nanohttp.c (Nick Wellnhofer),<br/>
+ Fix the Windows header mess (Nick Wellnhofer),<br/>
+ Don't include winsock2.h in xmllint.c (Nick Wellnhofer),<br/>
+ Remove generated file python/setup.py from version control (Nick Wellnhofer),<br/>
+ Use __linux__ macro in generated code (Nick Wellnhofer)<br/>
+ </li>
+
+</ul>
+<h3>v2.9.6: Oct 06 2017</h3>
+<ul>
+ <li>Portability:<br/>
+ Change preprocessor OS tests to __linux__ (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Fix XPath stack frame logic (Nick Wellnhofer),<br/>
+ Report undefined XPath variable error message (Nick Wellnhofer),<br/>
+ Fix regression with librsvg (Nick Wellnhofer),<br/>
+ Handle more invalid entity values in recovery mode (Nick Wellnhofer),<br/>
+ Fix structured validation errors (Nick Wellnhofer),<br/>
+ Fix memory leak in LZMA decompressor (Nick Wellnhofer),<br/>
+ Set memory limit for LZMA decompression (Nick Wellnhofer),<br/>
+ Handle illegal entity values in recovery mode (Nick Wellnhofer),<br/>
+ Fix debug dump of streaming XPath expressions (Nick Wellnhofer),<br/>
+ Fix memory leak in nanoftp (Nick Wellnhofer),<br/>
+ Fix memory leaks in SAX1 parser (Nick Wellnhofer)<br/>
+ </li>
+</ul>
+<h3>v2.9.5: Sep 04 2017</h3>
+<ul>
+
+ <li>Security:<br/>
+ Detect infinite recursion in parameter entities (Nick Wellnhofer),<br/>
+ Fix handling of parameter-entity references (Nick Wellnhofer),<br/>
+ Disallow namespace nodes in XPointer ranges (Nick Wellnhofer),<br/>
+ Fix XPointer paths beginning with range-to (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Documentation:<br/>
+ Documentation fixes (Nick Wellnhofer),<br/>
+ Spelling and grammar fixes (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ Adding README.zOS to list of extra files for the release (Daniel Veillard),<br/>
+ Description of work needed to compile on zOS (Stéphane Michaut),<br/>
+ Porting libxml2 on zOS encoding of code (Stéphane Michaut),<br/>
+ small changes for OS/400 (Patrick Monnerat),<br/>
+ relaxng.c, xmlschemas.c: Fix build on pre-C99 compilers (Chun-wei Fan)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Problem resolving relative URIs (Daniel Veillard),<br/>
+ Fix unwanted warnings when switching encodings (Nick Wellnhofer),<br/>
+ Fix signature of xmlSchemaAugmentImportedIDC (Daniel Veillard),<br/>
+ Heap-buffer-overflow read of size 1 in xmlFAParsePosCharGroup (David Kilzer),<br/>
+ Fix NULL pointer deref in xmlFAParseCharClassEsc (Nick Wellnhofer),<br/>
+ Fix infinite loops with push parser in recovery mode (Nick Wellnhofer),<br/>
+ Send xmllint usage error to stderr (Nick Wellnhofer),<br/>
+ Fix NULL deref in xmlParseExternalEntityPrivate (Nick Wellnhofer),<br/>
+ Make sure not to call IS_BLANK_CH when parsing the DTD (Nick Wellnhofer),<br/>
+ Fix xmlHaltParser (Nick Wellnhofer),<br/>
+ Fix pathological performance when outputting charrefs (Nick Wellnhofer),<br/>
+ Fix invalid-source-encoding warnings in testWriter.c (Nick Wellnhofer),<br/>
+ Fix duplicate SAX callbacks for entity content (David Kilzer),<br/>
+ Treat URIs with scheme as absolute in C14N (Nick Wellnhofer),<br/>
+ Fix copy-paste errors in error messages (Nick Wellnhofer),<br/>
+ Fix sanity check in htmlParseNameComplex (Nick Wellnhofer),<br/>
+ Fix potential infinite loop in xmlStringLenDecodeEntities (Nick Wellnhofer),<br/>
+ Reset parser input pointers on encoding failure (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlParseEntityDecl error path (Nick Wellnhofer),<br/>
+ Fix xmlBuildRelativeURI for URIs starting with './' (Nick Wellnhofer),<br/>
+ Fix type confusion in xmlValidateOneNamespace (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlStringLenGetNodeList (Nick Wellnhofer),<br/>
+ Fix NULL pointer deref in xmlDumpElementContent (Daniel Veillard),<br/>
+ Fix memory leak in xmlBufAttrSerializeTxtContent (Nick Wellnhofer),<br/>
+ Stop parser on unsupported encodings (Nick Wellnhofer),<br/>
+ Check for integer overflow in memory debug code (Nick Wellnhofer),<br/>
+ Fix buffer size checks in xmlSnprintfElementContent (Nick Wellnhofer),<br/>
+ Avoid reparsing in xmlParseStartTag2 (Nick Wellnhofer),<br/>
+ Fix undefined behavior in xmlRegExecPushStringInternal (Nick Wellnhofer),<br/>
+ Check XPath exponents for overflow (Nick Wellnhofer),<br/>
+ Check for overflow in xmlXPathIsPositionalPredicate (Nick Wellnhofer),<br/>
+ Fix spurious error message (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlCanonicPath (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlXPathCompareNodeSetValue (Nick Wellnhofer),<br/>
+ Fix memory leak in pattern error path (Nick Wellnhofer),<br/>
+ Fix memory leak in parser error path (Nick Wellnhofer),<br/>
+ Fix memory leaks in XPointer error paths (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlXPathNodeSetMergeAndClear (Nick Wellnhofer),<br/>
+ Fix memory leak in XPath filter optimizations (Nick Wellnhofer),<br/>
+ Fix memory leaks in XPath error paths (Nick Wellnhofer),<br/>
+ Do not leak the new CData node if adding fails (David Tardon),<br/>
+ Prevent unwanted external entity reference (Neel Mehta),<br/>
+ Increase buffer space for port in HTTP redirect support (Daniel Veillard),<br/>
+ Fix more NULL pointer derefs in xpointer.c (Nick Wellnhofer),<br/>
+ Avoid function/data pointer conversion in xpath.c (Nick Wellnhofer),<br/>
+ Fix format string warnings (Nick Wellnhofer),<br/>
+ Disallow namespace nodes in XPointer points (Nick Wellnhofer),<br/>
+ Fix comparison with root node in xmlXPathCmpNodes (Nick Wellnhofer),<br/>
+ Fix attribute decoding during XML schema validation (Alex Henrie),<br/>
+ Fix NULL pointer deref in XPointer range-to (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Updating the spec file to reflect Fedora 24 (Daniel Veillard),<br/>
+ Add const in five places to move 1 KiB to .rdata (Bruce Dawson),<br/>
+ Fix missing part of comment for function xmlXPathEvalExpression() (Daniel Veillard),<br/>
+ Get rid of "blanks wrapper" for parameter entities (Nick Wellnhofer),<br/>
+ Simplify handling of parameter entity references (Nick Wellnhofer),<br/>
+ Deduplicate code in encoding.c (Nick Wellnhofer),<br/>
+ Make HTML parser functions take const pointers (Nick Wellnhofer),<br/>
+ Build test programs only when needed (Nick Wellnhofer),<br/>
+ Fix doc/examples/index.py (Nick Wellnhofer),<br/>
+ Fix compiler warnings in threads.c (Nick Wellnhofer),<br/>
+ Fix empty-body warning in nanohttp.c (Nick Wellnhofer),<br/>
+ Fix cast-align warnings (Nick Wellnhofer),<br/>
+ Fix unused-parameter warnings (Nick Wellnhofer),<br/>
+ Rework entity boundary checks (Nick Wellnhofer),<br/>
+ Don't switch encoding for internal parameter entities (Nick Wellnhofer),<br/>
+ Merge duplicate code paths handling PE references (Nick Wellnhofer),<br/>
+ Test SAX2 callbacks with entity substitution (Nick Wellnhofer),<br/>
+ Support catalog and threads tests under --without-sax1 (Nick Wellnhofer),<br/>
+ Misc fixes for 'make tests' (Nick Wellnhofer),<br/>
+ Initialize keepBlanks in HTML parser (Nick Wellnhofer),<br/>
+ Add test cases for bug 758518 (David Kilzer),<br/>
+ Fix compiler warning in htmlParseElementInternal (Nick Wellnhofer),<br/>
+ Remove useless check in xmlParseAttributeListDecl (Nick Wellnhofer),<br/>
+ Allow zero sized memory input buffers (Nick Wellnhofer),<br/>
+ Add TODO comment in xmlSwitchEncoding (Nick Wellnhofer),<br/>
+ Check for integer overflow in xmlXPathFormatNumber (Nick Wellnhofer),<br/>
+ Make Travis print UBSan stacktraces (Nick Wellnhofer),<br/>
+ Add .travis.yml (Nick Wellnhofer),<br/>
+ Fix expected error output in Python tests (Nick Wellnhofer),<br/>
+ Simplify control flow in xmlParseStartTag2 (Nick Wellnhofer),<br/>
+ Disable LeakSanitizer when running API tests (Nick Wellnhofer),<br/>
+ Avoid out-of-bound array access in API tests (Nick Wellnhofer),<br/>
+ Avoid spurious UBSan errors in parser.c (Nick Wellnhofer),<br/>
+ Parse small XPath numbers more accurately (Nick Wellnhofer),<br/>
+ Rework XPath rounding functions (Nick Wellnhofer),<br/>
+ Fix white space in test output (Nick Wellnhofer),<br/>
+ Fix axis traversal from attribute and namespace nodes (Nick Wellnhofer),<br/>
+ Check for trailing characters in XPath expressions earlier (Nick Wellnhofer),<br/>
+ Rework final handling of XPath results (Nick Wellnhofer),<br/>
+ Make xmlXPathEvalExpression call xmlXPathEval (Nick Wellnhofer),<br/>
+ Remove unused variables (Nick Wellnhofer),<br/>
+ Don't print generic error messages in XPath tests (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Cleanups:<br/>
+ Fix a couple of misleading indentation errors (Daniel Veillard),<br/>
+ Remove unnecessary calls to xmlPopInput (Nick Wellnhofer)<br/>
+ </li>
+</ul>
+<h3>2.9.4: May 23 2016</h3>
+<ul>
+ <li>Security:<br/>
+ More format string warnings with possible format string vulnerability (David Kilzer),<br/>
+ Avoid building recursive entities (Daniel Veillard),<br/>
+ Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),<br/>
+ Heap-based buffer-underreads due to xmlParseName (David Kilzer),<br/>
+ Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),<br/>
+ Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),<br/>
+ Fix some format string warnings with possible format string vulnerability (David Kilzer),<br/>
+ Detect change of encoding when parsing HTML names (Hugh Davenport),<br/>
+ Fix inappropriate fetch of entities content (Daniel Veillard),<br/>
+ Bug 759398: Heap use-after-free in xmlDictComputeFastKey &lt;https://bugzilla.gnome.org/show_bug.cgi?id=759398&gt; (Pranjal Jumde),<br/>
+ Bug 758605: Heap-based buffer overread in xmlDictAddString &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758605&gt; (Pranjal Jumde),<br/>
+ Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758588&gt; (David Kilzer),<br/>
+ Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup &lt;https://bugzilla.gnome.org/show_bug.cgi?id=757711&gt; (Pranjal Jumde),<br/>
+ Add missing increments of recursion depth counter to XML parser. (Peter Simons)<br/>
+ </li>
+
+ <li>Documentation:<br/>
+ Fix typo: s{ ec -&gt; cr }cipt (Jan Pokorný),<br/>
+ Fix typos: dictio{ nn -&gt; n }ar{y,ies} (Jan Pokorný),<br/>
+ Fix typos: PATH_{ SEAPARATOR -&gt; SEPARATOR } (Jan Pokorný),<br/>
+ Correct a typo. (Shlomi Fish)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ Correct the usage of LDFLAGS (Mattias Hansson),<br/>
+ Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),<br/>
+ libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),<br/>
+ Fix apibuild for a recently added construct (Daniel Veillard),<br/>
+ Use pkg-config to locate zlib when possible (Stewart Brodie),<br/>
+ Use pkg-config to locate ICU when possible (Stewart Brodie),<br/>
+ Portability to non C99 compliant compilers (Patrick Monnerat),<br/>
+ dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),<br/>
+ os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),<br/>
+ os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),<br/>
+ os400: implement CL command XMLCATALOG. (Patrick Monnerat),<br/>
+ os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),<br/>
+ os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),<br/>
+ os400: implement CL command XMLLINT. (Patrick Monnerat),<br/>
+ os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),<br/>
+ os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),<br/>
+ os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),<br/>
+ os400: use like() for double type. (Patrick Monnerat),<br/>
+ os400: use like() for int type. (Patrick Monnerat),<br/>
+ os400: use like() for unsigned int type. (Patrick Monnerat),<br/>
+ os400: use like() for enum types. (Patrick Monnerat),<br/>
+ Add xz to xml2-config --libs output (Baruch Siach),<br/>
+ Bug 760190: configure.ac should be able to build --with-icu without icu-config tool &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760190&gt; (David Kilzer),<br/>
+ win32\VC10\config.h and VS 2015 (Bruce Dawson),<br/>
+ Add configure maintainer mode (orzen)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Avoid an out of bound access when serializing malformed strings (Daniel Veillard),<br/>
+ Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),<br/>
+ Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),<br/>
+ Bug 763071: heap-buffer-overflow in xmlStrncat &lt;https://bugzilla.gnome.org/show_bug.cgi?id=763071&gt; (Pranjal Jumde),<br/>
+ Integer overflow parsing port number in URI (Michael Paddon),<br/>
+ Fix an error with regexp on nullable counted char transition (Daniel Veillard),<br/>
+ Fix memory leak with XPath namespace nodes (Nick Wellnhofer),<br/>
+ Fix namespace axis traversal (Nick Wellnhofer),<br/>
+ Fix null pointer deref in docs with no root element (Hugh Davenport),<br/>
+ Fix XSD validation of URIs with ampersands (Alex Henrie),<br/>
+ xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),<br/>
+ xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),<br/>
+ xmllint: flush stdout before interactive shell input. (Patrick Monnerat),<br/>
+ Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),<br/>
+ Fix namespace::node() XPath expression (Nick Wellnhofer),<br/>
+ Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),<br/>
+ Fix parsing of NCNames in XPath (Nick Wellnhofer),<br/>
+ Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),<br/>
+ Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),<br/>
+ Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760921&gt; (David Kilzer),<br/>
+ Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760861&gt; (David Kilzer),<br/>
+ error.c: *input-&gt;cur == 0 does not mean no error (Pavel Raiskup),<br/>
+ Add missing RNG test files (David Kilzer),<br/>
+ Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760183&gt; (David Kilzer),<br/>
+ Bug 758572: ASAN crash in make check &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758572&gt; (David Kilzer),<br/>
+ Bug 721158: Missing ICU string when doing --version on xmllint &lt;https://bugzilla.gnome.org/show_bug.cgi?id=721158&gt; (David Kilzer),<br/>
+ python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),<br/>
+ Add autogen.sh to distrib (orzen),<br/>
+ Heap-based buffer overread in xmlNextChar (Daniel Veillard)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Add more debugging info to runtest (Daniel Veillard),<br/>
+ Implement "runtest -u" mode (David Kilzer),<br/>
+ Add a make rule to rebuild for ASAN (Daniel Veillard)<br/>
+ </li>
+</ul>
+<h3>v2.9.3: Nov 20 2015</h3>
+<ul>
+ <li>Security:<br/>
+ CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),<br/>
+ CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),<br/>
+ CVE-2015-7499-2 Detect incoherency on GROW (Daniel Veillard),<br/>
+ CVE-2015-7499-1 Add xmlHaltParser() to stop the parser (Daniel Veillard),<br/>
+ CVE-2015-5312 Another entity expansion issue (David Drysdale),<br/>
+ CVE-2015-7497 Avoid an heap buffer overflow in xmlDictComputeFastQKey (David Drysdale),<br/>
+ CVE-2015-7498 Avoid processing entities after encoding conversion failures (Daniel Veillard),<br/>
+ CVE-2015-8035 Fix XZ compression support loop (Daniel Veillard),<br/>
+ CVE-2015-7942-2 Fix an error in previous Conditional section patch (Daniel Veillard),<br/>
+ CVE-2015-7942 Another variation of overflow in Conditional sections (Daniel Veillard),<br/>
+ CVE-2015-1819 Enforce the reader to run in constant memory (Daniel Veillard)<br/>
+ CVE-2015-7941_2 Cleanup conditional section error handling (Daniel Veillard),<br/>
+ CVE-2015-7941_1 Stop parsing on entities boundaries errors (Daniel Veillard),<br/>
+ </li>
+
+ <li>Documentation:<br/>
+ Correct spelling of "calling" (Alex Henrie),<br/>
+ Fix a small error in xmllint --format description (Fabien Degomme),<br/>
+ Avoid XSS on the search of xmlsoft.org (Daniel Veillard)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ threads: use forward declarations only for glibc (Michael Heimpold),<br/>
+ Update Win32 configure.js to search for configure.ac (Daniel Veillard)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Bug on creating new stream from entity (Daniel Veillard),<br/>
+ Fix some loop issues embedding NEXT (Daniel Veillard),<br/>
+ Do not print error context when there is none (Daniel Veillard),<br/>
+ Avoid extra processing of MarkupDecl when EOF (Hugh Davenport),<br/>
+ Fix parsing short unclosed comment uninitialized access (Daniel Veillard),<br/>
+ Add missing Null check in xmlParseExternalEntityPrivate (Gaurav Gupta),<br/>
+ Fix a bug in CData error handling in the push parser (Daniel Veillard),<br/>
+ Fix a bug on name parsing at the end of current input buffer (Daniel Veillard),<br/>
+ Fix the spurious ID already defined error (Daniel Veillard),<br/>
+ Fix previous change to node sort order (Nick Wellnhofer),<br/>
+ Fix a self assignment issue raised by clang (Scott Graham),<br/>
+ Fail parsing early on if encoding conversion failed (Daniel Veillard),<br/>
+ Do not process encoding values if the declaration if broken (Daniel Veillard),<br/>
+ Silence clang's -Wunknown-attribute (Michael Catanzaro),<br/>
+ xmlMemUsed is not thread-safe (Martin von Gagern),<br/>
+ Fix support for except in nameclasses (Daniel Veillard),<br/>
+ Fix order of root nodes (Nick Wellnhofer),<br/>
+ Allow attributes on descendant-or-self axis (Nick Wellnhofer),<br/>
+ Fix the fix to Windows locking (Steve Nairn),<br/>
+ Fix timsort invariant loop re: Envisage article (Christopher Swenson),<br/>
+ Don't add IDs in xmlSetTreeDoc (Nick Wellnhofer),<br/>
+ Account for ID attributes in xmlSetTreeDoc (Nick Wellnhofer),<br/>
+ Remove various unused value assignments (Philip Withnall),<br/>
+ Fix missing entities after CVE-2014-3660 fix (Daniel Veillard),<br/>
+ Revert "Missing initialization for the catalog module" (Daniel Veillard)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Reuse xmlHaltParser() where it makes sense (Daniel Veillard),<br/>
+ xmlStopParser reset errNo (Daniel Veillard),<br/>
+ Reenable xz support by default (Daniel Veillard),<br/>
+ Recover unescaped less-than character in HTML recovery parsing (Daniel Veillard),<br/>
+ Allow HTML serializer to output HTML5 DOCTYPE (Shaun McCance),<br/>
+ Regression test for bug #695699 (Nick Wellnhofer),<br/>
+ Add a couple of XPath tests (Nick Wellnhofer),<br/>
+ Add Python 3 rpm subpackage (Tomas Radej),<br/>
+ libxml2-config.cmake.in: update include directories (Samuel Martin),<br/>
+ Adding example from bugs 738805 to regression tests (Daniel Veillard)<br/>
+ </li>
+
+ <li>Cleanups:<br/>
+ </li>
+</ul>
+<h3>2.9.2: Oct 16 2014</h3>
+<ul>
+ <li>Security:<br/>
+ Fix for CVE-2014-3660 billion laugh variant (Daniel Veillard),<br/>
+ CVE-2014-0191 Do not fetch external parameter entities (Daniel Veillard)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ fix memory leak xml header encoding field with XML_PARSE_IGNORE_ENC (Bart De Schuymer),<br/>
+ xmlmemory: handle realloc properly (Yegor Yefremov),<br/>
+ Python generator bug raised by the const change (Daniel Veillard),<br/>
+ Windows Critical sections not released correctly (Daniel Veillard),<br/>
+ Parser error on repeated recursive entity expansion containing &amp;lt; (Daniel Veillard),<br/>
+ xpointer : fixing Null Pointers (Gaurav Gupta),<br/>
+ Remove Unnecessary Null check in xpointer.c (Gaurav Gupta),<br/>
+ parser bug on misformed namespace attributes (Dennis Filder),<br/>
+ Pointer dereferenced before null check (Daniel Veillard),<br/>
+ Leak of struct addrinfo in xmlNanoFTPConnect() (Gaurav Gupta),<br/>
+ Possible overflow in HTMLParser.c (Daniel Veillard),<br/>
+ python/tests/sync.py assumes Python dictionaries are ordered (John Beck),<br/>
+ Fix Enum check and missing break (Gaurav Gupta),<br/>
+ xmlIO: Handle error returns from dup() (Philip Withnall),<br/>
+ Fix a problem properly saving URIs (Daniel Veillard),<br/>
+ wrong error column in structured error when parsing attribute values (Juergen Keil),<br/>
+ wrong error column in structured error when skipping whitespace in xml decl (Juergen Keil),<br/>
+ no error column in structured error handler for xml schema validation errors (Juergen Keil),<br/>
+ Couple of Missing Null checks (Gaurav Gupta),<br/>
+ Add couple of missing Null checks (Daniel Veillard),<br/>
+ xmlschemastypes: Fix potential array overflow (Philip Withnall),<br/>
+ runtest: Fix a memory leak on parse failure (Philip Withnall),<br/>
+ xmlIO: Fix an FD leak on gzdopen() failure (Philip Withnall),<br/>
+ xmlcatalog: Fix a memory leak on quit (Philip Withnall),<br/>
+ HTMLparser: Correctly initialise a stack allocated structure (Philip Withnall),<br/>
+ Check for tmon in _xmlSchemaDateAdd() is incorrect (David Kilzer),<br/>
+ Avoid Possible Null Pointer in trio.c (Gaurav Gupta),<br/>
+ Fix processing in SAX2 in case of an allocation failure (Daniel Veillard),<br/>
+ XML Shell command "cd" does not handle "/" at end of path (Daniel Veillard),<br/>
+ Fix various Missing Null checks (Gaurav Gupta),<br/>
+ Fix a potential NULL dereference (Daniel Veillard),<br/>
+ Add a couple of misisng check in xmlRelaxNGCleanupTree (Gaurav Gupta),<br/>
+ Add a missing argument check (Gaurav Gupta),<br/>
+ Adding a check in case of allocation error (Gaurav Gupta),<br/>
+ xmlSaveUri() incorrectly recomposes URIs with rootless paths (Dennis Filder),<br/>
+ Adding some missing NULL checks (Gaurav),<br/>
+ Fixes for xmlInitParserCtxt (Daniel Veillard),<br/>
+ Fix regressions introduced by CVE-2014-0191 patch (Daniel Veillard),<br/>
+ erroneously ignores a validation error if no error callback set (Daniel Veillard),<br/>
+ xmllint was not parsing the --c14n11 flag (Sérgio Batista),<br/>
+ Avoid Possible null pointer dereference in memory debug mode (Gaurav),<br/>
+ Avoid Double Null Check (Gaurav),<br/>
+ Restore context size and position after XPATH_OP_ARG (Nick Wellnhofer),<br/>
+ Fix xmlParseInNodeContext() if node is not element (Daniel Veillard),<br/>
+ Avoid a possible NULL pointer dereference (Gaurav),<br/>
+ Fix xmlTextWriterWriteElement when a null content is given (Daniel Veillard),<br/>
+ Fix an typo 'onrest' in htmlScriptAttributes (Daniel Veillard),<br/>
+ fixing a ptotential uninitialized access (Daniel Veillard),<br/>
+ Fix an fd leak in an error case (Daniel Veillard),<br/>
+ Missing initialization for the catalog module (Daniel Veillard),<br/>
+ Handling of XPath function arguments in error case (Nick Wellnhofer),<br/>
+ Fix a couple of missing NULL checks (Gaurav),<br/>
+ Avoid a possibility of dangling encoding handler (Gaurav),<br/>
+ Fix HTML push parser to accept HTML_PARSE_NODEFDTD (Arnold Hendriks),<br/>
+ Fix a bug loading some compressed files (Mike Alexander),<br/>
+ Fix XPath node comparison bug (Gaurav),<br/>
+ Type mismatch in xmlschemas.c (Gaurav),<br/>
+ Type mismatch in xmlschemastypes.c (Gaurav),<br/>
+ Avoid a deadcode in catalog.c (Daniel Veillard),<br/>
+ run close socket on Solaris, same as we do on other platforms (Denis Pauk),<br/>
+ Fix pointer dereferenced before null check (Gaurav),<br/>
+ Fix a potential NULL dereference in tree code (Daniel Veillard),<br/>
+ Fix potential NULL pointer dereferences in regexp code (Gaurav),<br/>
+ xmllint --pretty crashed without following numeric argument (Tim Galeckas),<br/>
+ Fix XPath expressions of the form '@ns:*' (Nick Wellnhofer),<br/>
+ Fix XPath '//' optimization with predicates (Nick Wellnhofer),<br/>
+ Clear up a potential NULL dereference (Daniel Veillard),<br/>
+ Fix a possible NULL dereference (Gaurav),<br/>
+ Avoid crash if allocation fails (Daniel Veillard),<br/>
+ Remove occasional leading space in XPath number formatting (Daniel Veillard),<br/>
+ Fix handling of mmap errors (Daniel Veillard),<br/>
+ Catch malloc error and exit accordingly (Daniel Veillard),<br/>
+ missing else in xlink.c (Ami Fischman),<br/>
+ Fix a parsing bug on non-ascii element and CR/LF usage (Daniel Veillard),<br/>
+ Fix a regression in xmlGetDocCompressMode() (Daniel Veillard),<br/>
+ properly quote the namespace uris written out during c14n (Aleksey Sanin),<br/>
+ Remove premature XInclude check on URI being relative (Alexey Neyman),<br/>
+ Fix missing break on last() function for attributes (dcb),<br/>
+ Do not URI escape in server side includes (Romain Bondue),<br/>
+ Fix an error in xmlCleanupParser (Alexander Pastukhov)<br/>
+ </li>
+
+ <li>Documentation:<br/>
+ typo in error messages "colon are forbidden from..." (Daniel Veillard),<br/>
+ Fix a link to James SAX documentation old page (Daniel Veillard),<br/>
+ Fix typos in relaxng.c (Jan Pokorný),<br/>
+ Fix a doc typo (Daniel Veillard),<br/>
+ Fix typos in {tree,xpath}.c (errror) (Jan Pokorný),<br/>
+ Add limitations about encoding conversion (Daniel Veillard),<br/>
+ Fix typos in xmlschemas{,types}.c (Jan Pokorný),<br/>
+ Fix incorrect spelling entites-&gt;entities (Jan Pokorný),<br/>
+ Forgot to document 2.9.1 release, regenerate docs (Daniel Veillard)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ AC_CONFIG_FILES and executable bit (Roumen Petrov),<br/>
+ remove HAVE_CONFIG_H dependency in testlimits.c (Roumen Petrov),<br/>
+ fix some tabs mixing incompatible with python3 (Roumen Petrov),<br/>
+ Visual Studio 14 CTP defines snprintf() (Francis Dupont),<br/>
+ OS400: do not try to copy unexisting doc files (Patrick Monnerat),<br/>
+ OS400: use either configure.ac or configure.in. (Patrick Monnerat),<br/>
+ os400: make-src.sh: create physical file with target CCSID (Patrick Monnerat),<br/>
+ OS400: Add some more C macros equivalent procedures. (Patrick Monnerat),<br/>
+ OS400: use C macros to implement equivalent RPG support procedures. (Patrick Monnerat),<br/>
+ OS400: implement XPath macros as procedures for ILE/RPG support. (Patrick Monnerat),<br/>
+ OS400: include in distribution tarball. (Patrick Monnerat),<br/>
+ OS400: Add README: compilation directives and OS/400 specific stuff. (Patrick Monnerat),<br/>
+ OS400: Add compilation scripts. (Patrick Monnerat),<br/>
+ OS400: ILE RPG language header files. (Patrick Monnerat),<br/>
+ OS400: implement some macros as functions for ILE/RPG language support (that as no macros). (Patrick Monnerat),<br/>
+ OS400: UTF8&lt;--&gt;EBCDIC wrappers for system and external library calls (Patrick Monnerat),<br/>
+ OS400: Easy character transcoding support (Patrick Monnerat),<br/>
+ OS400: iconv functions compatibility wrappers and table builder. (Patrick Monnerat),<br/>
+ OS400: create architecture directory. Implement dlfcn emulation. (Patrick Monnerat),<br/>
+ Fix building when configuring without xpath and xptr (Daniel Veillard),<br/>
+ configure: Add --with-python-install-dir (Jonas Eriksson),<br/>
+ Fix compilation with minimum and xinclude. (Nicolas Le Cam),<br/>
+ Compile out use of xmlValidateNCName() when not available. (Nicolas Le Cam),<br/>
+ Fix compilation with minimum and schematron. (Nicolas Le Cam),<br/>
+ Legacy needs xmlSAX2StartElement() and xmlSAX2EndElement(). (Nicolas Le Cam),<br/>
+ Don't use xmlValidateName() when not available. (Nicolas Le Cam),<br/>
+ Fix a portability issue on Windows (Longstreth Jon),<br/>
+ Various portability patches for OpenVMS (Jacob (Jouk) Jansen),<br/>
+ Use specific macros for portability to OS/400 (Patrick Monnerat),<br/>
+ Add macros needed for OS/400 portability (Patrick Monnerat),<br/>
+ Portability patch for fopen on OS/400 (Patrick Monnerat),<br/>
+ Portability fixes for OS/400 (Patrick Monnerat),<br/>
+ Improve va_list portability (Patrick Monnerat),<br/>
+ Portability fix (Patrick Monnerat),<br/>
+ Portability fix (Patrick Monnerat),<br/>
+ Generic portability fix (Patrick Monnerat),<br/>
+ Shortening lines in headers (Patrick Monnerat),<br/>
+ build: Use pkg-config to find liblzma in preference to AC_CHECK_LIB (Philip Withnall),<br/>
+ build: Add @LZMA_LIBS@ to libxml’s pkg-config files (Philip Withnall),<br/>
+ fix some tabs mixing incompatible with python3 (Daniel Veillard),<br/>
+ add additional defines checks for support "./configure --with-minimum" (Denis Pauk),<br/>
+ Another round of fixes for older versions of Python (Arfrever Frehtes Taifersar Arahesis),<br/>
+ python: fix drv_libxml2.py for python3 compatibility (Alexandre Rostovtsev),<br/>
+ python: Fix compiler warnings when building python3 bindings (Armin K),<br/>
+ Fix for compilation with python 2.6.8 (Petr Sumbera)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ win32/libxml2.def.src after rebuild in doc (Roumen Petrov),<br/>
+ elfgcchack.h: more legacy needs xmlSAX2StartElement() and xmlSAX2EndElement() (Roumen Petrov),<br/>
+ elfgcchack.h: add xmlXPathNodeEval and xmlXPathSetContextNode (Roumen Petrov),<br/>
+ Provide cmake module (Samuel Martin),<br/>
+ Fix a couple of issues raised by make dist (Daniel Veillard),<br/>
+ Fix and add const qualifiers (Kurt Roeckx),<br/>
+ Preparing for upcoming release of 2.9.2 (Daniel Veillard),<br/>
+ Fix zlib and lzma libraries check via command line (Dmitriy),<br/>
+ wrong error column in structured error when parsing end tag (Juergen Keil),<br/>
+ doc/news.html: small update to avoid line join while generating NEWS. (Patrick Monnerat),<br/>
+ Add methods for python3 iterator (Ron Angeles),<br/>
+ Support element node traversal in document fragments. (Kyle VanderBeek),<br/>
+ xmlNodeSetName: Allow setting the name to a substring of the currently set name (Tristan Van Berkom),<br/>
+ Added macros for argument casts (Eric Zurcher),<br/>
+ adding init calls to xml and html Read parsing entry points (Daniel Veillard),<br/>
+ Get rid of 'REPLACEMENT CHARACTER' Unicode chars in xmlschemas.c (Jan Pokorný),<br/>
+ Implement choice for name classes on attributes (Shaun McCance),<br/>
+ Two small namespace tweaks (Daniel Veillard),<br/>
+ xmllint --memory should fail on empty files (Daniel Veillard),<br/>
+ Cast encoding name to char pointer to match arg type (Nikolay Sivov)<br/>
+ </li>
+
+ <li>Cleanups:<br/>
+ Removal of old configure.in (Daniel Veillard),<br/>
+ Unreachable code in tree.c (Gaurav Gupta),<br/>
+ Remove a couple of dead conditions (Gaurav Gupta),<br/>
+ Avoid some dead code and cleanup in relaxng.c (Gaurav),<br/>
+ Drop not needed checks (Denis Pauk),<br/>
+ Fix a wrong test (Daniel Veillard)<br/>
+ </li>
+</ul>
+<h3>2.9.1: Apr 19 2013</h3>
+<ul>
+ <li> Features:<br/>
+ Support for Python3 (Daniel Veillard),<br/>
+ Add xmlXPathSetContextNode and xmlXPathNodeEval (Alex Bligh)<br/>
+ </li>
+
+ <li> Documentation:<br/>
+ Add documentation for xmllint --xpath (Daniel Veillard),<br/>
+ Fix the URL of the SAX documentation from James (Daniel Veillard),<br/>
+ Fix spelling of "length". (Michael Wood)<br/>
+ </li>
+
+ <li> Portability:<br/>
+ Fix python bindings with versions older than 2.7 (Daniel Veillard),<br/>
+ rebuild docs:Makefile.am (Roumen Petrov),<br/>
+ elfgcchack.h after rebuild in doc (Roumen Petrov),<br/>
+ elfgcchack for buf module (Roumen Petrov),<br/>
+ Fix a uneeded and wrong extra link parameter (Daniel Veillard),<br/>
+ Few cleanup patches for Windows (Denis Pauk),<br/>
+ Fix rpmbuild --nocheck (Mark Salter),<br/>
+ Fix for win32/configure.js and WITH_THREAD_ALLOC (Daniel Richard),<br/>
+ Fix Broken multi-arch support in xml2-config (Daniel Veillard),<br/>
+ Fix a portability issue for GCC &lt; 3.4.0 (Daniel Veillard),<br/>
+ Windows build fixes (Daniel Richard),<br/>
+ Fix a thread portability problem (Friedrich Haubensak),<br/>
+ Downgrade autoconf requirement to 2.63 (Daniel Veillard)<br/>
+ </li>
+
+ <li> Bug Fixes:<br/>
+ Fix a linking error for python bindings (Daniel Veillard),<br/>
+ Fix a couple of return without value (Jüri Aedla),<br/>
+ Improve the hashing functions (Daniel Franke),<br/>
+ Improve handling of xmlStopParser() (Daniel Veillard),<br/>
+ Remove risk of lockup in dictionary initialization (Daniel Veillard),<br/>
+ Activate detection of encoding in external subset (Daniel Veillard),<br/>
+ Fix an output buffer flushing conversion bug (Mikhail Titov),<br/>
+ Fix an old bug in xmlSchemaValidateOneElement (Csaba László),<br/>
+ Fix configure cannot remove messages (Gilles Espinasse),<br/>
+ fix schema validation in combination with xsi:nil (Daniel Veillard),<br/>
+ xmlCtxtReadFile doesn't work with literal IPv6 URLs (Steve Wolf),<br/>
+ Fix a few problems with setEntityLoader (Alexey Neyman),<br/>
+ Detect excessive entities expansion upon replacement (Daniel Veillard),<br/>
+ Fix the flushing out of raw buffers on encoding conversions (Daniel,<br/>
+Veillard),<br/>
+ Fix some buffer conversion issues (Daniel Veillard),<br/>
+ When calling xmlNodeDump make sure we grow the buffer quickly (Daniel,<br/>
+Veillard),<br/>
+ Fix an error in the progressive DTD parsing code (Dan Winship),<br/>
+ xmllint should not load DTD by default when using the reader (Daniel,<br/>
+Veillard),<br/>
+ Try IBM-037 when looking for EBCDIC handlers (Petr Sumbera),<br/>
+ Fix potential out of bound access (Daniel Veillard),<br/>
+ Fix large parse of file from memory (Daniel Veillard),<br/>
+ Fix a bug in the nsclean option of the parser (Daniel Veillard),<br/>
+ Fix a regression in 2.9.0 breaking validation while streaming (Daniel,<br/>
+Veillard),<br/>
+ Remove potential calls to exit() (Daniel Veillard)<br/>
+ </li>
+
+ <li> Improvements:<br/>
+ Regenerated API, and testapi, rebuild documentation (Daniel Veillard),<br/>
+ Fix tree iterators broken by 2to3 script (Daniel Veillard),<br/>
+ update all tests for Python3 and Python2 (Daniel Veillard),<br/>
+ A few more fixes for python 3 affecting libxml2.py (Daniel Veillard),<br/>
+ Fix compilation on Python3 (Daniel Veillard),<br/>
+ Converting apibuild.py to python3 (Daniel Veillard),<br/>
+ First pass at starting porting to python3 (Daniel Veillard),<br/>
+ updated configure.in for python3 (Daniel Veillard),<br/>
+ Add support for xpathRegisterVariable in Python (Shaun McCance),<br/>
+ Added a regression tests from bug 694228 data (Daniel Veillard),<br/>
+ Cache presence of '&lt;' in entities content (Daniel Veillard),<br/>
+ Avoid extra processing on entities (Daniel Veillard),<br/>
+ Python binding for xmlRegisterInputCallback (Alexey Neyman),<br/>
+ Python bindings: DOM casts everything to xmlNode (Alexey Neyman),<br/>
+ Define LIBXML_THREAD_ALLOC_ENABLED via xmlversion.h (Tim Starling),<br/>
+ Adding streaming validation to runtest checks (Daniel Veillard),<br/>
+ Add a --pushsmall option to xmllint (Daniel Veillard)<br/>
+ </li>
+
+ <li> Cleanups:<br/>
+ Switched comment in file to UTF-8 encoding (Daniel Veillard),<br/>
+ Extend gitignore (Daniel Veillard),<br/>
+ Silent the new python test on input (Alexey Neyman),<br/>
+ Cleanup of a duplicate test (Daniel Veillard),<br/>
+ Cleanup on duplicate test expressions (Daniel Veillard),<br/>
+ Fix compiler warning after 153cf15905cf4ec080612ada6703757d10caba1e (Patrick,<br/>
+Gansterer),<br/>
+ Spec cleanups and a fix for multiarch support (Daniel Veillard),<br/>
+ Silence a clang warning (Daniel Veillard),<br/>
+ Cleanup the Copyright to be pure MIT Licence wording (Daniel Veillard),<br/>
+ rand_seed should be static in dict.c (Wouter Van Rooy),<br/>
+ Fix typos in parser comments (Jan Pokorný)<br/>
+ </li>
+</ul>
+<h3>2.9.0: Sep 11 2012</h3>
+<ul>
+ <li> Features:<br/>
+ A few new API entry points,<br/>
+ More resilient push parser mode,<br/>
+ A lot of portability improvement,<br/>
+ Faster XPath evaluation<br/>
+ </li>
+
+ <li> Documentation:<br/>
+ xml2-config.1 markup error (Christian Weisgerber),<br/>
+ libxml(3) manpage typo fix (John Bradshaw),<br/>
+ More cleanups to the documentation part of libxml2 (Daniel Richard G)<br/>
+ </li>
+
+ <li> Portability:<br/>
+ Bug 676544 - fails to build with --without-sax1 (Akira TAGOH),<br/>
+ fix builds not having stdint.h (Rob Richards),<br/>
+ GetProcAddressA is available only on WinCE (Daniel Veillard),<br/>
+ More updates and cleanups on autotools and Makefiles (Daniel Richard G),<br/>
+ More changes for Win32 compilation (Eric Zurcher),<br/>
+ Basic changes for Win32 builds of release 2.9.0: compile buf.c (Eric Zurcher),<br/>
+ Bundles all generated files for python into the distribution (Daniel Richard G),<br/>
+ Fix compiler warnings of wincecompat.c (Patrick Gansterer),<br/>
+ Fix non __GNUC__ build (Patrick Gansterer),<br/>
+ Fix windows unicode build (Patrick Gansterer),<br/>
+ clean redefinition of {v}snprintf in C-source (Roumen Petrov),<br/>
+ use xmlBuf... if DEBUG_INPUT is defined (Roumen Petrov),<br/>
+ fix runtests to use pthreads support for various Unix platforms (Daniel Richard G),<br/>
+ Various "make distcheck" and portability fixups 2nd part (Daniel Richard G),<br/>
+ Various "make distcheck" and portability fixups (Daniel Richard G),<br/>
+ Fix compilation on older Visual Studio (Daniel Veillard)<br/>
+ </li>
+
+ <li> Bug Fixes:<br/>
+ Change the XPath code to percolate allocation errors (Daniel Veillard),<br/>
+ Fix reuse of xmlInitParser (Daniel Veillard),<br/>
+ Fix potential crash on entities errors (Daniel Veillard),<br/>
+ initialize var (Rob Richards),<br/>
+ Fix the XPath arity check to also check the XPath stack limits (Daniel Veillard),<br/>
+ Fix problem with specific and generic error handlers (Pietro Cerutti),<br/>
+ Avoid a potential infinite recursion (Daniel Veillard),<br/>
+ Fix an XSD error when generating internal automata (Daniel Veillard),<br/>
+ Patch for xinclude of text using multibyte characters (Vitaly Ostanin),<br/>
+ Fix a segfault on XSD validation on pattern error (Daniel Veillard),<br/>
+ Fix missing xmlsave.h module which was ignored in recent builds (Daniel Veillard),<br/>
+ Add a missing element check (Daniel Veillard),<br/>
+ Adding various checks on node type though the API (Daniel Veillard),<br/>
+ Namespace nodes can't be unlinked with xmlUnlinkNode (Daniel Veillard),<br/>
+ Fix make dist to include new private header files (Daniel Veillard),<br/>
+ More fixups on the push parser behaviour (Daniel Veillard),<br/>
+ Strengthen behaviour of the push parser in problematic situations (Daniel Veillard),<br/>
+ Enforce XML_PARSER_EOF state handling through the parser (Daniel Veillard),<br/>
+ Fixup limits parser (Daniel Veillard),<br/>
+ Do not fetch external parsed entities (Daniel Veillard),<br/>
+ Fix an error in previous commit (Aron Xu),<br/>
+ Fix entities local buffers size problems (Daniel Veillard),<br/>
+ Fix parser local buffers size problems (Daniel Veillard),<br/>
+ Fix a failure to report xmlreader parsing failures (Daniel Veillard)<br/>
+ </li>
+
+ <li> Improvements:<br/>
+ Keep libxml2.syms when running "make distclean" (Daniel Veillard),<br/>
+ Allow to set the quoting character of an xmlWriter (Csaba Raduly),<br/>
+ Keep non-significant blanks node in HTML parser (Daniel Veillard),<br/>
+ Add a forbidden variable error number and message to XPath (Daniel Veillard),<br/>
+ Support long path names on WNT (Michael Stahl),<br/>
+ Improve HTML escaping of attribute on output (Daniel Veillard),<br/>
+ Handle ICU_LIBS as LIBADD, not LDFLAGS to prevent linking errors (Arfrever Frehtes Taifersar Arahesis),<br/>
+ Switching XPath node sorting to Timsort (Vojtech Fried),<br/>
+ Optimizing '//' in XPath expressions (Nick Wellnhofer),<br/>
+ Expose xmlBufShrink in the public tree API (Daniel Veillard),<br/>
+ Visible HTML elements close the head tag (Conrad Irwin),<br/>
+ Fix file and line report for XSD SAX and reader streaming validation (Daniel Veillard),<br/>
+ Fix const qualifyer to definition of xmlBufferDetach (Daniel Veillard),<br/>
+ minimize use of HAVE_CONFIG_H (Roumen Petrov),<br/>
+ fixup regression in Various "make distcheck" and portability fixups (Roumen Petrov),<br/>
+ Add support for big line numbers in error reporting (Daniel Veillard),<br/>
+ Avoid using xmlBuffer for serialization (Daniel Veillard),<br/>
+ Improve compatibility between xmlBuf and xmlBuffer (Daniel Veillard),<br/>
+ Provide new accessors for xmlOutputBuffer (Daniel Veillard),<br/>
+ Improvements for old buffer compatibility (Daniel Veillard),<br/>
+ Expand the limit test program (Daniel Veillard),<br/>
+ Improve error reporting on parser errors (Daniel Veillard),<br/>
+ Implement some default limits in the XPath module (Daniel Veillard),<br/>
+ Introduce some default parser limits (Daniel Veillard),<br/>
+ Cleanups and new limit APIs for dictionaries (Daniel Veillard),<br/>
+ Fixup for buf.c (Daniel Veillard),<br/>
+ Cleanup URI module memory allocation code (Daniel Veillard),<br/>
+ Extend testlimits (Daniel Veillard),<br/>
+ More avoid quadratic behaviour (Daniel Veillard),<br/>
+ Impose a reasonable limit on PI size (Daniel Veillard),<br/>
+ first version of testlimits new test (Daniel Veillard),<br/>
+ Avoid quadratic behaviour in some push parsing cases (Daniel Veillard),<br/>
+ Impose a reasonable limit on comment size (Daniel Veillard),<br/>
+ Impose a reasonable limit on attribute size (Daniel Veillard),<br/>
+ Harden the buffer code and make it more compatible (Daniel Veillard),<br/>
+ More cleanups for input/buffers code (Daniel Veillard),<br/>
+ Cleanup function xmlBufResetInput(),<br/> to set input from Buffer (Daniel Veillard)
+ Swicth the test program for characters to new input buffers (Daniel Veillard),<br/>
+ Convert the HTML tree module to the new buffers (Daniel Veillard),<br/>
+ Convert of the HTML parser to new input buffers (Daniel Veillard),<br/>
+ Convert the writer to new output buffer and save APIs (Daniel Veillard),<br/>
+ Convert XMLReader to the new input buffers (Daniel Veillard),<br/>
+ New saving functions using xmlBuf and conversion (Daniel Veillard),<br/>
+ Provide new xmlBuf based saving functions (Daniel Veillard),<br/>
+ Convert XInclude to the new input buffers (Daniel Veillard),<br/>
+ Convert catalog code to the new input buffers (Daniel Veillard),<br/>
+ Convert C14N to the new Input buffer (Daniel Veillard),<br/>
+ Convert xmlIO.c to the new input and output buffers (Daniel Veillard),<br/>
+ Convert XML parser to the new input buffers (Daniel Veillard),<br/>
+ Incompatible change to the Input and Output buffers (Daniel Veillard),<br/>
+ Adding new encoding function to deal with the new structures (Daniel Veillard),<br/>
+ Convert XPath to xmlBuf (Daniel Veillard),<br/>
+ Adding a new buf module for buffers (Daniel Veillard),<br/>
+ Memory error within SAX2 reuse common framework (Daniel Veillard),<br/>
+ Fix xmllint --xpath node initialization (Daniel Veillard)<br/>
+ </li>
+
+ <li> Cleanups:<br/>
+ Various cleanups to avoid compiler warnings (Daniel Veillard),<br/>
+ Big space and tab cleanup (Daniel Veillard),<br/>
+ Followup to LibXML2 docs/examples cleanup patch (Daniel Veillard),<br/>
+ Second round of cleanups for LibXML2 docs/examples (Daniel Richard),<br/>
+ Remove all .cvsignore as they are not used anymore (Daniel Veillard),<br/>
+ Fix a Timsort function helper comment (Daniel Veillard),<br/>
+ Small cleanup for valgrind target (Daniel Veillard),<br/>
+ Patch for portability of latin characters in C files (Daniel Veillard),<br/>
+ Cleanup some of the parser code (Daniel Veillard),<br/>
+ Fix a variable name in comment (Daniel Veillard),<br/>
+ Regenerated testapi.c (Daniel Veillard),<br/>
+ Regenerating docs and API files (Daniel Veillard),<br/>
+ Small cleanup of unused variables in test (Daniel Veillard),<br/>
+ Expand .gitignore with more files (Daniel Veillard)<br/>
+ </li>
+</ul>
+<h3>2.8.0: May 23 2012</h3>
+<ul>
+ <li>Features:
+ add lzma compression support (Anders F Bjorklund)
+ </li>
+
+ <li>Documentation:
+ xmlcatalog: Add uri and delegateURI to possible add types in man page. (Ville Skyttä),
+ Update README.tests (Daniel Veillard),
+ URI handling code is not OOM resilient (Daniel Veillard),
+ Fix an error in comment (Daniel Veillard),
+ Fixed bug #617016 (Daniel Mustieles),
+ Fixed two typos in the README document (Daniel Neel),
+ add generated html files (Anders F Bjorklund),
+ Clarify the need to use xmlFreeNode after xmlUnlinkNode (Daniel Veillard),
+ Improve documentation a bit (Daniel Veillard),
+ Updated URL for lxml python bindings (Daniel Veillard)
+ </li>
+
+ <li>Portability:
+ Restore code for Windows compilation (Daniel Veillard),
+ Remove git error message during configure (Christian Dywan),
+ xmllint: Build fix for endTimer if !defined(HAVE_GETTIMEOFDAY) (Patrick R. Gansterer),
+ remove a bashism in confgure.in (John Hein),
+ undef ERROR if already defined (Patrick R. Gansterer),
+ Fix library problems with mingw-w64 (Michael Cronenworth),
+ fix windows build. ifdef addition from bug 666491 makes no sense (Rob Richards),
+ prefer native threads on win32 (Sam Thursfield),
+ Allow to compile with Visual Studio 2010 (Thomas Lemm),
+ Fix mingw's snprintf configure check (Andoni Morales),
+ fixed a 64bit big endian issue (Marcus Meissner),
+ Fix portability failure if netdb.h lacks NO_ADDRESS (Daniel Veillard),
+ Fix windows build from lzma addition (Rob Richards),
+ autogen: Only check for libtoolize (Colin Walters),
+ Fix the Windows build files (Patrick von Reth),
+ 634846 Remove a linking option breaking Windows VC10 (Daniel Veillard),
+ 599241 fix an initialization problem on Win64 (Andrew W. Nosenko),
+ fix win build (Rob Richards)
+ </li>
+
+ <li>Bug fixes:
+ Part for rand_r checking missing (Daniel Veillard),
+ Cleanup on randomization (Daniel Veillard),
+ Fix undefined reference in python module (Pacho Ramos),
+ Fix a race in xmlNewInputStream (Daniel Veillard),
+ Fix weird streaming RelaxNG errors (Noam),
+ Fix various bugs in new code raised by the API checking (Daniel Veillard),
+ Fix various problems with "make dist" (Daniel Veillard),
+ Fix a memory leak in the xzlib code (Daniel Veillard),
+ HTML parser error with &lt;noscript&gt; in the &lt;head&gt; (Denis Pauk),
+ XSD: optional element in complex type extension (Remi Gacogne),
+ Fix html serialization error and htmlSetMetaEncoding() (Daniel Veillard),
+ Fix a wrong return value in previous patch (Daniel Veillard),
+ Fix an uninitialized variable use (Daniel Veillard),
+ Fix a compilation problem with --minimum (Brandon Slack),
+ Remove redundant and ungarded include of resolv.h (Daniel Veillard),
+ xinclude with parse="text" does not use the entity loader (Shaun McCance),
+ Allow to parse 1 byte HTML files (Denis Pauk),
+ Patch that fixes the skipping of the HTML_PARSE_NOIMPLIED flag (Martin Schröder),
+ Avoid memory leak if xmlParserInputBufferCreateIO fails (Lin Yi-Li),
+ Prevent an infinite loop when dumping a node with encoding problems (Timothy Elliott),
+ xmlParseNodeInContext problems with an empty document (Tim Elliott),
+ HTML element position is not detected propperly (Pavel Andrejs),
+ Fix an off by one pointer access (Jüri Aedla),
+ Try to fix a problem with entities in SAX mode (Daniel Veillard),
+ Fix a crash with xmllint --path on empty results (Daniel Veillard),
+ Fixed bug #667946 (Daniel Mustieles),
+ Fix a logic error in Schemas Component Constraints (Ryan Sleevi),
+ Fix a wrong enum type use in Schemas Types (Nico Weber),
+ Fix SAX2 builder in case of undefined attributes namespace (Daniel Veillard),
+ Fix SAX2 builder in case of undefined element namespaces (Daniel Veillard),
+ fix reference to STDOUT_FILENO on MSVC (Tay Ray Chuan),
+ fix a pair of possible out of array char references (Daniel Veillard),
+ Fix an allocation error when copying entities (Daniel Veillard),
+ Make sure the parser returns when getting a Stop order (Chris Evans),
+ Fix some potential problems on reallocation failures(parser.c) (Xia Xinfeng),
+ Fix a schema type duration comparison overflow (Daniel Veillard),
+ Fix an unimplemented part in RNG value validation (Daniel Veillard),
+ Fix missing error status in XPath evaluation (Daniel Veillard),
+ Hardening of XPath evaluation (Daniel Veillard),
+ Fix an off by one error in encoding (Daniel Veillard),
+ Fix RELAX NG include bug #655288 (Shaun McCance),
+ Fix XSD validation bug #630130 (Toyoda Eizi),
+ Fix some potential problems on reallocation failures (Chris Evans),
+ __xmlRaiseError: fix use of the structured callback channel (Dmitry V. Levin),
+ __xmlRaiseError: fix the structured callback channel's data initialization (Dmitry V. Levin),
+ Fix memory corruption when xmlParseBalancedChunkMemoryInternal is called from xmlParseBalancedChunk (Rob Richards),
+ Small fix for previous commit (Daniel Veillard),
+ Fix a potential freeing error in XPath (Daniel Veillard),
+ Fix a potential memory access error (Daniel Veillard),
+ Reactivate the shared library versionning script (Daniel Veillard)
+ </li>
+
+ <li>Improvements:
+ use mingw C99 compatible functions {v}snprintf instead those from MSVC runtime (Roumen Petrov),
+ New symbols added for the next release (Daniel Veillard),
+ xmlTextReader bails too quickly on error (Andy Lutomirski),
+ Use a hybrid allocation scheme in xmlNodeSetContent (Conrad Irwin),
+ Use buffers when constructing string node lists. (Conrad Irwin),
+ Add HTML parser support for HTML5 meta charset encoding declaration (Denis Pauk),
+ wrong message for double hyphen in comment XML error (Bryan Henderson),
+ Fix "make tst" to grab lzma lib too (Daniel Veillard),
+ Add "whereis" command to xmllint shell (Ryan),
+ Improve xmllint shell (Ryan),
+ add function xmlTextReaderRelaxNGValidateCtxt() (Noam Postavsky),
+ Add --system support to autogen.sh (Daniel Veillard),
+ Add hash randomization to hash and dict structures (Daniel Veillard),
+ included xzlib in dist (Anders F Bjorklund),
+ move xz/lzma helpers to separate included files (Anders F Bjorklund),
+ add generated devhelp files (Anders F Bjorklund),
+ add XML_WITH_LZMA to api (Anders F Bjorklund),
+ autogen.sh: Honor NOCONFIGURE environment variable (Colin Walters),
+ Improve the error report on undefined REFs (Daniel Veillard),
+ Add exception for new W3C PI xml-model (Daniel Veillard),
+ Add options to ignore the internal encoding (Daniel Veillard),
+ testapi: use the right type for the check (Stefan Kost),
+ various: handle return values of write calls (Stefan Kost),
+ testWriter: xmlTextWriterWriteFormatElement wants an int instead of a long int (Stefan Kost),
+ runxmlconf: update to latest testsuite version (Stefan Kost),
+ configure: add -Wno-long-long to CFLAGS (Stefan Kost),
+ configure: support silent automake rules if possible (Stefan Kost),
+ xmlmemory: add a cast as size_t has no portable printf modifier (Stefan Kost),
+ __xmlRaiseError: remove redundant schannel initialization (Dmitry V. Levin),
+ __xmlRaiseError: do cheap code check early (Dmitry V. Levin)
+ </li>
+
+ <li>Cleanups:
+ Cleanups before 2.8.0-rc2 (Daniel Veillard),
+ Avoid an extra operation (Daniel Veillard),
+ Remove vestigial de-ANSI-fication support. (Javier Jardón),
+ autogen.sh: Fix typo (Javier Jardón),
+ Do not use unsigned but unsigned int (Daniel Veillard),
+ Remove two references to u_short (Daniel Veillard),
+ Fix -Wempty-body warning from clang (Nico Weber),
+ Cleanups of lzma support (Daniel Veillard),
+ Augment the list of ignored files (Daniel Veillard),
+ python: remove unused variable (Stefan Kost),
+ python: flag two unused args (Stefan Kost),
+ configure: acconfig.h is deprecated since autoconf-2.50 (Stefan Kost),
+ xpath: remove unused variable (Stefan Kost)
+ </li>
+</ul>
+<h3>2.7.8: Nov 4 2010</h3>
+<ul>
+ <li> Features:
+ 480323 add code to plug in ICU converters by default (Giuseppe Iuculano),
+ Add xmlSaveOption XML_SAVE_WSNONSIG (Adam Spragg)
+ </li>
+ <li> Documentation:
+ Fix devhelp documentation installation (Mike Hommey),
+ Fix web site encoding problems (Daniel Veillard),
+ Fix a couple of typo in HTML parser error messages (Michael Day),
+ Forgot to update the news page for 0.7.7 (Daniel Veillard)
+ </li>
+ <li> Portability:
+ 607273 Fix python detection on MSys/Windows (LRN),
+ 614087 Fix Socket API usage to allow Windows64 compilation (Ozkan Sezer),
+ Fix compilation with Clang (Koop Mast),
+ Fix Win32 build (Rob Richards)
+ </li>
+ <li> Bug Fixes:
+ 595789 fix a remaining potential Solaris problem (Daniel Veillard),
+ 617468 fix progressive HTML parsing with style using "'" (Denis Pauk),
+ 616478 Fix xmllint shell write command (Gwenn Kahz),
+ 614005 Possible erroneous HTML parsing on unterminated script (Pierre Belzile),
+ 627987 Fix XSD IDC errors in imported schemas (Jim Panetta),
+ 629325 XPath rounding errors first cleanup (Phil Shafer),
+ 630140 fix iso995x encoding error (Daniel Veillard),
+ make sure htmlCtxtReset do reset the disableSAX field (Daniel Veillard),
+ Fix a change of semantic on XPath preceding and following axis (Daniel Veillard),
+ Fix a potential segfault due to weak symbols on pthreads (Mike Hommey),
+ Fix a leak in XPath compilation (Daniel Veillard),
+ Fix the semantic of XPath axis for namespace/attribute context nodes (Daniel Veillard),
+ Avoid a descriptor leak in catalog loading code (Carlo Bramini),
+ Fix a small bug in XPath evaluation code (Marius Wachtler),
+ Fix handling of XML-1.0 XML namespace declaration (Daniel Veillard),
+ Fix errors in XSD double validation check (Csaba Raduly),
+ Fix handling of apos in URIs (Daniel Veillard),
+ xmlTextReaderReadOuterXml should handle DTD (Rob Richards),
+ Autogen.sh needs to create m4 directory (Rob Richards)
+ </li>
+ <li> Improvements:
+ 606592 update language ID parser to RFC 5646 (Daniel Veillard),
+ Sort python generated stubs (Mike Hommey),
+ Add an HTML parser option to avoid a default doctype (Daniel Veillard)
+ </li>
+ <li> Cleanups:
+ 618831 don't ship generated files in git (Adrian Bunk),
+ Switch from the obsolete mkinstalldirs to AC_PROG_MKDIR_P (Adrian Bunk),
+ Various cleanups on encoding handling (Daniel Veillard),
+ Fix xmllint to use format=1 for default formatting (Adam Spragg),
+ Force _xmlSaveCtxt.format to be 0 or 1 (Adam Spragg),
+ Cleanup encoding pointer comparison (Nikolay Sivov),
+ Small code cleanup on previous patch (Daniel Veillard)
+ </li>
+</ul>
+<h3>2.7.7: Mar 15 2010</h3>
+<ul>
+ <li> Improvements:
+ Adding a --xpath option to xmllint (Daniel Veillard),
+ Make HTML parser non-recursive (Eugene Pimenov)
+ </li>
+ <li> Portability:
+ relaxng.c: cast to allow compilation with sun studio 11 (Ben Walton),
+ Fix build failure on Sparc solaris (Roumen Petrov),
+ use autoreconf in autogen.sh (Daniel Veillard),
+ Fix build with mingw (Roumen Petrov),
+ Upgrade some of the configure and autogen (Daniel Veillard),
+ Fix relaxNG tests in runtest for Windows runtest.c: initialize ret (Rob Richards),
+ Fix a const warning in xmlNodeSetBase (Martin Trappel),
+ Fix python generator to not use deprecated xmllib (Daniel Veillard),
+ Update some automake files (Daniel Veillard),
+ 598785 Fix nanohttp on Windows (spadix)
+ </li>
+ <li> Bug Fixes:
+ libxml violates the zlib interface and crashes (Mark Adler),
+ Fix broken escape behaviour in regexp ranges (Daniel Veillard),
+ Fix missing win32 libraries in libxml-2.0.pc (Volker Grabsch),
+ Fix detection of python linker flags (Daniel Macks),
+ fix build error in libxml2/python (Paul Smith),
+ ChunkParser: Incorrect decoding of small xml files (Raul Hudea),
+ htmlCheckEncoding doesn't update input-end after shrink (Eugene Pimenov),
+ Fix a missing #ifdef (Daniel Veillard),
+ Fix encoding selection for xmlParseInNodeContext (Daniel Veillard),
+ xmlPreviousElementSibling mistake (François Delyon),
+ 608773 add a missing check in xmlGROW (Daniel Veillard),
+ Fix xmlParseInNodeContext for HTML content (Daniel Veillard),
+ Fix lost namespace when copying node * tree.c: reconcile namespace if not found (Rob Richards),
+ Fix some missing commas in HTML element lists (Eugene Pimenov),
+ Correct variable type to unsigned (Nikolay Sivov),
+ Recognize ID attribute in HTML without DOCTYPE (Daniel Veillard),
+ Fix memory leak in xmlXPathEvalExpression() (Martin),
+ Fix an init bug in global.c (Kai Henning),
+ Fix xmlNodeSetBase() comment (Daniel Veillard),
+ Fix broken escape behaviour in regexp ranges (Daniel Veillard),
+ Don't give default HTML boolean attribute values in parser (Daniel Veillard),
+ xmlCtxtResetLastError should reset ctxt-errNo (Daniel Veillard)
+ </li>
+ <li> Cleanups:
+ Cleanup a couple of weirdness in HTML parser (Eugene Pimenov)
+ </li>
+</ul>
+<h3>2.7.6: Oct 6 2009</h3>
+<ul>
+ <li> Bug Fixes:
+ Restore thread support in default configuration (Andrew W. Nosenko),
+ URI with no path parsing problem (Daniel Veillard),
+ Minor patch for conditional defines in threads.c (Eric Zurcher)
+ </li>
+</ul>
+<h3>2.7.5: Sep 24 2009</h3>
+<ul>
+ <li> Bug Fixes:
+ Restore behavior of --with-threads without argument (Andrew W. Nosenko),
+ Fix memory leak when doc is NULL (Rob Richards),
+ 595792 fixing a RelaxNG bug introduced in 2.7.4 (Daniel Veillard),
+ Fix a Relaxng bug raised by libvirt test suite (Daniel Veillard),
+ Fix a parsing problem with little data at startup (Daniel Veillard),
+ link python module with python library (Frederic Crozat),
+ 594874 Forgot an fclose in xmllint (Daniel Veillard)
+ </li>
+ <li> Cleanup:
+ Adding symbols.xml to EXTRA_DIST (Daniel Veillard)
+ </li>
+</ul>
+<h3>2.7.4: Sep 10 2009</h3>
+<ul>
+ <li>Improvements:
+ Switch to GIT (GNOME),
+ Add symbol versioning to libxml2 shared libs (Daniel Veillard)
+ </li>
+ <li>Portability:
+ 593857 try to work around thread pbm MinGW 4.4 (Daniel Veillard),
+ 594250 rename ATTRIBUTE_ALLOC_SIZE to avoid clashes (Daniel Veillard),
+ Fix Windows build * relaxng.c: fix windows build (Rob Richards),
+ Fix the globals.h to use XMLPUBFUN (Paul Smith),
+ Problem with extern extern in header (Daniel Veillard),
+ Add -lnetwork for compiling on Haiku (Scott McCreary),
+ Runtest portability patch for Solaris (Tim Rice),
+ Small patch to accomodate the Haiku OS (Scott McCreary),
+ 584605 package VxWorks folder in the distribution (Daniel Veillard),
+ 574017 Realloc too expensive on most platform (Daniel Veillard),
+ Fix windows build (Rob Richards),
+ 545579 doesn't compile without schema support (Daniel Veillard),
+ xmllint use xmlGetNodePath when not compiled in (Daniel Veillard),
+ Try to avoid __imp__xmlFree link trouble on msys (Daniel Veillard),
+ Allow to select the threading system on Windows (LRN),
+ Fix Solaris binary links, cleanups (Daniel Veillard),
+ Bug 571059 – MSVC doesn't work with the bakefile (Intron),
+ fix ATTRIBUTE_PRINTF header clash (Belgabor and Mike Hommey),
+ fixes for Borland/CodeGear/Embarcadero compilers (Eric Zurcher)
+ </li>
+ <li>Documentation:
+ 544910 typo: "renciliateNs" (Leonid Evdokimov),
+ Add VxWorks to list of OSes (Daniel Veillard),
+ Regenerate the documentation and update for git (Daniel Veillard),
+ 560524 ¿ xmlTextReaderLocalName description (Daniel Veillard),
+ Added sponsoring by AOE media for the server (Daniel Veillard),
+ updated URLs for GNOME (Vincent Lefevre),
+ more warnings about xmlCleanupThreads and xmlCleanupParser (Daniel Veillard)
+ </li>
+ <li>Bug fixes:
+ 594514 memory leaks - duplicate initialization (MOD),
+ Wrong block opening in htmlNodeDumpOutputInternal (Daniel Veillard),
+ 492317 Fix Relax-NG validation problems (Daniel Veillard),
+ 558452 fight with reg test and error report (Daniel Veillard),
+ 558452 RNG compilation of optional multiple child (Daniel Veillard),
+ 579746 XSD validation not correct / nilable groups (Daniel Veillard),
+ 502960 provide namespace stack when parsing entity (Daniel Veillard),
+ 566012 part 2 fix regresion tests and push mode (Daniel Veillard),
+ 566012 autodetected encoding and encoding conflict (Daniel Veillard),
+ 584220 xpointer(/) and xinclude problems (Daniel Veillard),
+ 587663 Incorrect Attribute-Value Normalization (Daniel Veillard),
+ 444994 HTML chunked failure for attribute with &lt;&gt; (Daniel Veillard),
+ Fix end of buffer char being split in XML parser (Daniel Veillard),
+ Non ASCII character may be split at buffer end (Adiel Mittmann),
+ 440226 Add xmlXIncludeProcessTreeFlagsData API (Stefan Behnel),
+ 572129 speed up parsing of large HTML text nodes (Markus Kull),
+ Fix HTML parsing with 0 character in CDATA (Daniel Veillard),
+ Fix SetGenericErrorFunc and SetStructured clash (Wang Lam),
+ 566012 Incomplete EBCDIC parsing support (Martin Kogler),
+ 541335 HTML avoid creating 2 head or 2 body element (Daniel Veillard),
+ 541237 error correcting missing end tags in HTML (Daniel Veillard),
+ 583439 missing line numbers in push mode (Daniel Veillard),
+ 587867 xmllint --html --xmlout serializing as HTML (Daniel Veillard),
+ 559501 avoid select and use poll for nanohttp (Raphael Prevost),
+ 559410 - Regexp bug on (...)? constructs (Daniel Veillard),
+ Fix a small problem on previous HTML parser patch (Daniel Veillard),
+ 592430 - HTML parser runs into endless loop (Daniel Veillard),
+ 447899 potential double free in xmlFreeTextReader (Daniel Veillard),
+ 446613 small validation bug mixed content with NS (Daniel Veillard),
+ Fix the problem of revalidating a doc with RNG (Daniel Veillard),
+ Fix xmlKeepBlanksDefault to not break indent (Nick Wellnhofer),
+ 512131 refs from externalRef part need to be added (Daniel Veillard),
+ 512131 crash in xmlRelaxNGValidateFullElement (Daniel Veillard),
+ 588441 allow '.' in HTML Names even if invalid (Daniel Veillard),
+ 582913 Fix htmlSetMetaEncoding() to be nicer (Daniel Veillard),
+ 579317 Try to find the HTML encoding information (Daniel Veillard),
+ 575875 don't output charset=html (Daniel Veillard),
+ 571271 fix semantic of xsd:all with minOccurs=0 (Daniel Veillard),
+ 570702 fix a bug in regexp determinism checking (Daniel Veillard),
+ 567619 xmlValidateNotationUse missing param test (Daniel Veillard),
+ 574393 ¿ utf-8 filename magic for compressed files (Hans Breuer),
+ Fix a couple of problems in the parser (Daniel Veillard),
+ 585505 ¿ Document ids and refs populated by XSD (Wayne Jensen),
+ 582906 XSD validating multiple imports of the same schema (Jason Childs),
+ Bug 582887 ¿ problems validating complex schemas (Jason Childs),
+ Bug 579729 ¿ fix XSD schemas parsing crash (Miroslav Bajtos),
+ 576368 ¿ htmlChunkParser with special attributes (Jiri Netolicky),
+ Bug 565747 ¿ relax anyURI data character checking (Vincent Lefevre),
+ Preserve attributes of include start on tree copy (Petr Pajas),
+ Skip silently unrecognized XPointer schemes (Jakub Wilk),
+ Fix leak on SAX1, xmllint --sax1 option and debug (Daniel Veillard),
+ potential NULL dereference on non-glibc (Jim Meyering),
+ Fix an XSD validation crash (Daniel Veillard),
+ Fix a regression in streaming entities support (Daniel Veillard),
+ Fix a couple of ABI issues with C14N 1.1 (Aleksey Sanin),
+ Aleksey Sanin support for c14n 1.1 (Aleksey Sanin),
+ reader bug fix with entities (Daniel Veillard),
+ use options from current parser ctxt for external entities (Rob Richards),
+ 581612 use %s to printf strings (Christian Persch),
+ 584605 change the threading initialization sequence (Igor Novoseltsev),
+ 580705 keep line numbers in HTML parser (Aaron Patterson),
+ 581803 broken HTML table attributes init (Roland Steiner),
+ do not set error code in xmlNsWarn (Rob Richards),
+ 564217 fix structured error handling problems,
+ reuse options from current parser for entities (Rob Richards),
+ xmlXPathRegisterNs should not allow enpty prefixes (Daniel Veillard),
+ add a missing check in xmlAddSibling (Kris Breuker),
+ avoid leaks on errors (Jinmei Tatuya)
+ </li>
+ <li>Cleanup:
+ Chasing dead assignments reported by clang-scan (Daniel Veillard),
+ A few more safety cleanup raised by scan (Daniel Veillard),
+ Fixing assorted potential problems raised by scan (Daniel Veillard),
+ Potential uninitialized arguments raised by scan (Daniel Veillard),
+ Fix a bunch of scan 'dead increments' and cleanup (Daniel Veillard),
+ Remove a pedantic warning (Daniel Veillard),
+ 555833 always use rm -f in uninstall-local (Daniel Veillard),
+ 542394 xmlRegisterOutputCallbacks MAX_INPUT_CALLBACK (Daniel Veillard),
+ Autoregenerate libxml2.syms automated checkings (Daniel Veillard),
+ Make xmlRecoverDoc const (Martin Trappel) (Daniel Veillard),
+ Both args of xmlStrcasestr are const (Daniel Veillard),
+ hide the nbParse* variables used for debugging (Mike Hommey),
+ 570806 changed include of config.h (William M. Brack),
+ cleanups and error reports when xmlTextWriterVSprintf fails (Jinmei Tatuya)
+ </li>
+</ul>
+<h3>2.7.3: Jan 18 2009</h3>
+<ul>
+ <li>Build fix: fix build when HTML support is not included.</li>
+ <li>Bug fixes: avoid memory overflow in gigantic text nodes,
+ indentation problem on the writed (Rob Richards),
+ xmlAddChildList pointer problem (Rob Richards and Kevin Milburn),
+ xmlAddChild problem with attribute (Rob Richards and Kris Breuker),
+ avoid a memory leak in an edge case (Daniel Zimmermann),
+ deallocate some pthread data (Alex Ott).</li>
+ <li>Improvements: configure option to avoid rebuilding docs (Adrian Bunk),
+ limit text nodes to 10MB max by default, add element traversal
+ APIs, add a parser option to enable pre 2.7 SAX behavior (Rob Richards),
+ add gcc malloc checking (Marcus Meissner), add gcc printf like functions
+ parameters checking (Marcus Meissner).</li>
+</ul>
+<h3>2.7.2: Oct 3 2008</h3>
+<ul>
+ <li>Portability fix: fix solaris compilation problem, fix compilation
+ if XPath is not configured in</li>
+ <li>Bug fixes: nasty entity bug introduced in 2.7.0, restore old behaviour
+ when saving an HTML doc with an xml dump function, HTML UTF-8 parsing
+ bug, fix reader custom error handlers (Riccardo Scussat)
+ <li>Improvement: xmlSave options for more flexibility to save as
+ XML/HTML/XHTML, handle leading BOM in HTML documents</li>
+</ul>
+
+<h3>2.7.1: Sep 1 2008</h3>
+<ul>
+ <li>Portability fix: Borland C fix (Moritz Both)</li>
+ <li>Bug fixes: python serialization wrappers, XPath QName corner
+ case handking and leaks (Martin)</li>
+ <li>Improvement: extend the xmlSave to handle HTML documents and trees</li>
+ <li>Cleanup: python serialization wrappers</li>
+</ul>
+
+<h3>2.7.0: Aug 30 2008</h3>
+<ul>
+ <li>Documentation: switch ChangeLog to UTF-8, improve mutithreads and
+ xmlParserCleanup docs</li>
+ <li>Portability fixes: Older Win32 platforms (Rob Richards), MSVC
+ porting fix (Rob Richards), Mac OS X regression tests (Sven Herzberg),
+ non GNUCC builds (Rob Richards), compilation on Haiku (Andreas Färber)
+ </li>
+ <li>Bug fixes: various realloc problems (Ashwin), potential double-free
+ (Ashwin), regexp crash, icrash with invalid whitespace facets (Rob
+ Richards), pattern fix when streaming (William Brack), various XML
+ parsing and validation fixes based on the W3C regression tests, reader
+ tree skipping function fix (Ashwin), Schemas regexps escaping fix
+ (Volker Grabsch), handling of entity push errors (Ashwin), fix a slowdown
+ when encoder cant serialize characters on output</li>
+ <li>Code cleanup: compilation fix without the reader, without the output
+ (Robert Schwebel), python whitespace (Martin), many space/tabs cleanups,
+ serious cleanup of the entity handling code</li>
+ <li>Improvement: switch parser to XML-1.0 5th edition, add parsing flags
+ for old versions, switch URI parsing to RFC 3986,
+ add xmlSchemaValidCtxtGetParserCtxt (Holger Kaelberer),
+ new hashing functions for dictionnaries (based on Stefan Behnel work),
+ improve handling of misplaced html/head/body in HTML parser, better
+ regression test tools and code coverage display, better algorithms
+ to detect various versions of the billion laughts attacks, make
+ arbitrary parser limits avoidable as a parser option</li>
+</ul>
+<h3>2.6.32: Apr 8 2008</h3>
+<ul>
+ <li>Documentation: returning heap memory to kernel (Wolfram Sang),
+ trying to clarify xmlCleanupParser() use, xmlXPathContext improvement
+ (Jack Jansen), improve the *Recover* functions documentation,
+ XmlNodeType doc link fix (Martijn Arts)</li>
+ <li>Bug fixes: internal subset memory leak (Ashwin), avoid problem with
+ paths starting with // (Petr Sumbera), streaming XSD validation callback
+ patches (Ashwin), fix redirection on port other than 80 (William Brack),
+ SAX2 leak (Ashwin), XInclude fragment of own document (Chris Ryan),
+ regexp bug with '.' (Andrew Tosh), flush the writer at the end of the
+ document (Alfred Mickautsch), output I/O bug fix (William Brack),
+ writer CDATA output after a text node (Alex Khesin), UTF-16 encoding
+ detection (William Brack), fix handling of empty CDATA nodes for Safari
+ team, python binding problem with namespace nodes, improve HTML parsing
+ (Arnold Hendriks), regexp automata build bug, memory leak fix (Vasily
+ Chekalkin), XSD test crash, weird system parameter entity parsing problem,
+ allow save to file:///X:/ windows paths, various attribute normalisation
+ problems, externalSubsetSplit fix (Ashwin), attribute redefinition in
+ the DTD (Ashwin), fix in char ref parsing check (Alex Khesin), many
+ out of memory handling fixes (Ashwin), XPath out of memory handling fixes
+ (Alvaro Herrera), various realloc problems (Ashwin), UCS4 encoding
+ conversion buffer size (Christian Fruth), problems with EatName
+ functions on memory errors, BOM handling in external parsed entities
+ (Mark Rowe)</li>
+ <li>Code cleanup: fix build under VS 2008 (David Wimsey), remove useless
+ mutex in xmlDict (Florent Guilian), Mingw32 compilation fix (Carlo
+ Bramini), Win and MacOS EOL cleanups (Florent Guiliani), iconv need
+ a const detection (Roumen Petrov), simplify xmlSetProp (Julien Charbon),
+ cross compilation fixes for Mingw (Roumen Petrov), SCO Openserver build
+ fix (Florent Guiliani), iconv uses const on Win32 (Rob Richards),
+ duplicate code removal (Ashwin), missing malloc test and error reports
+ (Ashwin), VMS makefile fix (Tycho Hilhorst)</li>
+ <li>improvements: better plug of schematron in the normal error handling
+ (Tobias Minich)</li>
+</ul>
+
+<h3>2.6.31: Jan 11 2008</h3>
+<ul>
+ <li>Security fix: missing of checks in UTF-8 parsing</li>
+ <li>Bug fixes: regexp bug, dump attribute from XHTML document, fix
+ xmlFree(NULL) to not crash in debug mode, Schematron parsing crash
+ (Rob Richards), global lock free on Windows (Marc-Antoine Ruel),
+ XSD crash due to double free (Rob Richards), indentation fix in
+ xmlTextWriterFullEndElement (Felipe Pena), error in attribute type
+ parsing if attribute redeclared, avoid crash in hash list scanner if
+ deleting elements, column counter bug fix (Christian Schmidt),
+ HTML embed element saving fix (Stefan Behnel), avoid -L/usr/lib
+ output from xml2-config (Fred Crozat), avoid an xmllint crash
+ (Stefan Kost), don't stop HTML parsing on out of range chars.
+ </li>
+ <li>Code cleanup: fix open() call third argument, regexp cut'n paste
+ copy error, unused variable in __xmlGlobalInitMutexLock (Hannes Eder),
+ some make distcheck realted fixes (John Carr)</li>
+ <li>Improvements: HTTP Header: includes port number (William Brack),
+ testURI --debug option, </li>
+</ul>
+<h3>2.6.30: Aug 23 2007</h3>
+<ul>
+ <li>Portability: Solaris crash on error handling, windows path fixes
+ (Roland Schwarz and Rob Richards), mingw build (Roland Schwarz)</li>
+ <li>Bugfixes: xmlXPathNodeSetSort problem (William Brack), leak when
+ reusing a writer for a new document (Dodji Seketeli), Schemas
+ xsi:nil handling patch (Frank Gross), relative URI build problem
+ (Patrik Fimml), crash in xmlDocFormatDump, invalid char in comment
+ detection bug, fix disparity with xmlSAXUserParseMemory, automata
+ generation for complex regexp counts problems, Schemas IDC import
+ problems (Frank Gross), xpath predicate evailation error handling
+ (William Brack)</li>
+</ul>
+<h3>2.6.29: Jun 12 2007</h3>
+<ul>
+ <li>Portability: patches from Andreas Stricke for WinCEi,
+ fix compilation warnings (William Brack), avoid warnings on Apple OS/X
+ (Wendy Doyle and Mark Rowe), Windows compilation and threading
+ improvements (Rob Richards), compilation against old Python versions,
+ new GNU tar changes (Ryan Hill)</li>
+ <li>Documentation: xmlURIUnescapeString comment, </li>
+ <li>Bugfixes: xmlBufferAdd problem (Richard Jones), 'make valgrind'
+ flag fix (Richard Jones), regexp interpretation of \,
+ htmlCreateDocParserCtxt (Jean-Daniel Dupas), configure.in
+ typo (Bjorn Reese), entity content failure, xmlListAppend() fix
+ (Georges-André Silber), XPath number serialization (William Brack),
+ nanohttp gzipped stream fix (William Brack and Alex Cornejo),
+ xmlCharEncFirstLine typo (Mark Rowe), uri bug (François Delyon),
+ XPath string value of PI nodes (William Brack), XPath node set
+ sorting bugs (William Brack), avoid outputting namespace decl
+ dups in the writer (Rob Richards), xmlCtxtReset bug, UTF-8 encoding
+ error handling, recustion on next in catalogs, fix a Relax-NG crash,
+ workaround wrong file: URIs, htmlNodeDumpFormatOutput on attributes,
+ invalid character in attribute detection bug, big comments before
+ internal subset streaming bug, HTML parsing of attributes with : in
+ the name, IDness of name in HTML (Dagfinn I. Mannsåker) </li>
+ <li>Improvement: keep URI query parts in raw form (Richard Jones),
+ embed tag support in HTML (Michael Day) </li>
+</ul>
+
+<h3>2.6.28: Apr 17 2007</h3>
+<ul>
+ <li>Documentation: comment fixes (Markus Keim), xpath comments fixes too
+ (James Dennett)</li>
+ <li>Bug fixes: XPath bug (William Brack), HTML parser autoclose stack usage
+ (Usamah Malik), various regexp bug fixes (DV and William), path conversion
+ on Windows (Igor Zlatkovic), htmlCtxtReset fix (Michael Day), XPath
+ principal node of axis bug, HTML serialization of some codepoint
+ (Steven Rainwater), user data propagation in XInclude (Michael Day),
+ standalone and XML decl detection (Michael Day), Python id output
+ for some id, fix the big python string memory leak, URI parsing fixes
+ (Stéphane Bidoul and William), long comments parsing bug (William),
+ concurrent threads initialization (Ted Phelps), invalid char
+ in text XInclude (William), XPath memory leak (William), tab in
+ python problems (Andreas Hanke), XPath node comparison error
+ (Oleg Paraschenko), cleanup patch for reader (Julien Reichel),
+ XML Schemas attribute group (William), HTML parsing problem (William),
+ fix char 0x2d in regexps (William), regexp quantifier range with
+ min occurs of 0 (William), HTML script/style parsing (Mike Day)</li>
+ <li>Improvement: make xmlTextReaderSetup() public</li>
+ <li>Compilation and postability: fix a missing include problem (William),
+ __ss_family on AIX again (Björn Wiberg), compilation without zlib
+ (Michael Day), catalog patch for Win32 (Christian Ehrlicher),
+ Windows CE fixes (Andreas Stricke)</li>
+ <li>Various CVS to SVN infrastructure changes</li>
+</ul>
+<h3>2.6.27: Oct 25 2006</h3>
+<ul>
+ <li>Portability fixes: file names on windows (Roland Schwingel,
+ Emelyanov Alexey), windows compile fixup (Rob Richards),
+ AIX iconv() is apparently case sensitive</li>
+ <li>improvements: Python XPath types mapping (Nic Ferrier), XPath optimization
+ (Kasimier), add xmlXPathCompiledEvalToBoolean (Kasimier), Python node
+ equality and comparison (Andreas Pakulat), xmlXPathCollectAndTest
+ improvememt (Kasimier), expose if library was compiled with zlib
+ support (Andrew Nosenko), cache for xmlSchemaIDCMatcher structs
+ (Kasimier), xmlTextConcat should work with comments and PIs (Rob
+ Richards), export htmlNewParserCtxt needed by Michael Day, refactoring
+ of catalog entity loaders (Michael Day), add XPointer support to
+ python bindings (Ross Reedstrom, Brian West and Stefan Anca),
+ try to sort out most file path to URI conversions and xmlPathToUri,
+ add --html --memory case to xmllint</li>
+ <li>building fix: fix --with-minimum (Felipe Contreras), VMS fix,
+ const'ification of HTML parser structures (Matthias Clasen),
+ portability fix (Emelyanov Alexey), wget autodetection (Peter
+ Breitenlohner), remove the build path recorded in the python
+ shared module, separate library flags for shared and static builds
+ (Mikhail Zabaluev), fix --with-minimum --with-sax1 builds, fix
+ --with-minimum --with-schemas builds</li>
+ <li>bug fix: xmlGetNodePath fix (Kasimier), xmlDOMWrapAdoptNode and
+ attribute (Kasimier), crash when using the recover mode,
+ xmlXPathEvalExpr problem (Kasimier), xmlXPathCompExprAdd bug (Kasimier),
+ missing destry in xmlFreeRMutex (Andrew Nosenko), XML Schemas fixes
+ (Kasimier), warning on entities processing, XHTML script and style
+ serialization (Kasimier), python generator for long types, bug in
+ xmlSchemaClearValidCtxt (Bertrand Fritsch), xmlSchemaXPathEvaluate
+ allocation bug (Marton Illes), error message end of line (Rob Richards),
+ fix attribute serialization in writer (Rob Richards), PHP4 DTD validation
+ crasher, parser safety patch (Ben Darnell), _private context propagation
+ when parsing entities (with Michael Day), fix entities behaviour when
+ using SAX, URI to file path fix (Mikhail Zabaluev), disappearing validity
+ context, arg error in SAX callback (Mike Hommey), fix mixed-content
+ autodetect when using --noblanks, fix xmlIOParseDTD error handling,
+ fix bug in xmlSplitQName on special Names, fix Relax-NG element content
+ validation bug, fix xmlReconciliateNs bug, fix potential attribute
+ XML parsing bug, fix line/column accounting in XML parser, chunking bug
+ in the HTML parser on script, try to detect obviously buggy HTML
+ meta encoding indications, bugs with encoding BOM and xmlSaveDoc,
+ HTML entities in attributes parsing, HTML minimized attribute values,
+ htmlReadDoc and htmlReadIO were broken, error handling bug in
+ xmlXPathEvalExpression (Olaf Walkowiak), fix a problem in
+ htmlCtxtUseOptions, xmlNewInputFromFile could leak (Marius Konitzer),
+ bug on misformed SSD regexps (Christopher Boumenot)
+ </li>
+ <li>documentation: warning about XML_PARSE_COMPACT (Kasimier Buchcik),
+ fix xmlXPathCastToString documentation, improve man pages for
+ xmllitn and xmlcatalog (Daniel Leidert), fixed comments of a few
+ functions</li>
+</ul>
+<h3>2.6.26: Jun 6 2006</h3>
+<ul>
+ <li>portability fixes: Python detection (Joseph Sacco), compilation
+ error(William Brack and Graham Bennett), LynxOS patch (Olli Savia)</li>
+ <li>bug fixes: encoding buffer problem, mix of code and data in
+ xmlIO.c(Kjartan Maraas), entities in XSD validation (Kasimier Buchcik),
+ variousXSD validation fixes (Kasimier), memory leak in pattern (Rob
+ Richards andKasimier), attribute with colon in name (Rob Richards), XPath
+ leak inerror reporting (Aleksey Sanin), XInclude text include of
+ selfdocument.</li>
+ <li>improvements: Xpath optimizations (Kasimier), XPath object
+ cache(Kasimier)</li>
+</ul>
+
+<h3>2.6.25: Jun 6 2006:</h3>
+
+<p>Do not use or package 2.6.25</p>
+
+<h3>2.6.24: Apr 28 2006</h3>
+<ul>
+ <li>Portability fixes: configure on Windows, testapi compile on windows
+ (Kasimier Buchcik, venkat naidu), Borland C++ 6 compile (Eric Zurcher),
+ HP-UX compiler workaround (Rick Jones), xml2-config bugfix, gcc-4.1
+ cleanups, Python detection scheme (Joseph Sacco), UTF-8 file paths on
+ Windows (Roland Schwingel).
+ </li>
+ <li>Improvements: xmlDOMWrapReconcileNamespaces xmlDOMWrapCloneNode (Kasimier
+ Buchcik), XML catalog debugging (Rick Jones), update to Unicode 4.01.</li>
+ <li>Bug fixes: xmlParseChunk() problem in 2.6.23, xmlParseInNodeContext()
+ on HTML docs, URI behaviour on Windows (Rob Richards), comment streaming
+ bug, xmlParseComment (with William Brack), regexp bug fixes (DV &amp;
+ Youri Golovanov), xmlGetNodePath on text/CDATA (Kasimier),
+ one Relax-NG interleave bug, xmllint --path and --valid,
+ XSD bugfixes (Kasimier), remove debug
+ left in Python bindings (Nic Ferrier), xmlCatalogAdd bug (Martin Cole),
+ xmlSetProp fixes (Rob Richards), HTML IDness (Rob Richards), a large
+ number of cleanups and small fixes based on Coverity reports, bug
+ in character ranges, Unicode tables const (Aivars Kalvans), schemas
+ fix (Stefan Kost), xmlRelaxNGParse error deallocation,
+ xmlSchemaAddSchemaDoc error deallocation, error handling on unallowed
+ code point, ixmllint --nonet to never reach the net (Gary Coady),
+ line break in writer after end PI (Jason Viers). </li>
+ <li>Documentation: man pages updates and cleanups (Daniel Leidert).</li>
+ <li>New features: Relax NG structure error handlers.</li>
+</ul>
+
+<h3>2.6.23: Jan 5 2006</h3>
+<ul>
+ <li>portability fixes: Windows (Rob Richards), getaddrinfo on Windows
+ (Kolja Nowak, Rob Richards), icc warnings (Kjartan Maraas),
+ --with-minimum compilation fixes (William Brack), error case handling fix
+ on Solaris (Albert Chin), don't use 'list' as parameter name reported by
+ Samuel Diaz Garcia, more old Unices portability fixes (Albert Chin),
+ MinGW compilation (Mark Junker), HP-UX compiler warnings (Rick
+ Jones),</li>
+ <li>code cleanup: xmlReportError (Adrian Mouat), remove xmlBufferClose
+ (Geert Jansen), unreachable code (Oleksandr Kononenko), refactoring
+ parsing code (Bjorn Reese)</li>
+ <li>bug fixes: xmlBuildRelativeURI and empty path (William Brack),
+ combinatory explosion and performances in regexp code, leak in
+ xmlTextReaderReadString(), xmlStringLenDecodeEntities problem (Massimo
+ Morara), Identity Constraints bugs and a segfault (Kasimier Buchcik),
+ XPath pattern based evaluation bugs (DV &amp; Kasimier),
+ xmlSchemaContentModelDump() memory leak (Kasimier), potential leak in
+ xmlSchemaCheckCSelectorXPath(), xmlTextWriterVSprintf() misuse of
+ vsnprintf (William Brack), XHTML serialization fix (Rob Richards), CRLF
+ split problem (William), issues with non-namespaced attributes in
+ xmlAddChild() xmlAddNextSibling() and xmlAddPrevSibling() (Rob Richards),
+ HTML parsing of script, Python must not output to stdout (Nic Ferrier),
+ exclusive C14N namespace visibility (Aleksey Sanin), XSD datatype
+ totalDigits bug (Kasimier Buchcik), error handling when writing to an
+ xmlBuffer (Rob Richards), runtest schemas error not reported (Hisashi
+ Fujinaka), signed/unsigned problem in date/time code (Albert Chin), fix
+ XSI driven XSD validation (Kasimier), parsing of xs:decimal (Kasimier),
+ fix DTD writer output (Rob Richards), leak in xmlTextReaderReadInnerXml
+ (Gary Coady), regexp bug affecting schemas (Kasimier), configuration of
+ runtime debugging (Kasimier), xmlNodeBufGetContent bug on entity refs
+ (Oleksandr Kononenko), xmlRegExecPushString2 bug (Sreeni Nair),
+ compilation and build fixes (Michael Day), removed dependencies on
+ xmlSchemaValidError (Kasimier), bug with &lt;xml:foo/&gt;, more XPath
+ pattern based evaluation fixes (Kasimier)</li>
+ <li>improvements: XSD Schemas redefinitions/restrictions (Kasimier
+ Buchcik), node copy checks and fix for attribute (Rob Richards), counted
+ transition bug in regexps, ctxt-&gt;standalone = -2 to indicate no
+ standalone attribute was found, add xmlSchemaSetParserStructuredErrors()
+ (Kasimier Buchcik), add xmlTextReaderSchemaValidateCtxt() to API
+ (Kasimier), handle gzipped HTTP resources (Gary Coady), add
+ htmlDocDumpMemoryFormat. (Rob Richards),</li>
+ <li>documentation: typo (Michael Day), libxml man page (Albert Chin), save
+ function to XML buffer (Geert Jansen), small doc fix (Aron Stansvik),</li>
+</ul>
+
+<h3>2.6.22: Sep 12 2005</h3>
+<ul>
+ <li>build fixes: compile without schematron (Stéphane Bidoul)</li>
+ <li>bug fixes: xmlDebugDumpNode on namespace node (Oleg Paraschenko)i,
+ CDATA push parser bug, xmlElemDump problem with XHTML1 doc,
+ XML_FEATURE_xxx clash with expat headers renamed XML_WITH_xxx, fix some
+ output formatting for meta element (Rob Richards), script and style
+ XHTML1 serialization (David Madore), Attribute derivation fixups in XSD
+ (Kasimier Buchcik), better IDC error reports (Kasimier Buchcik)</li>
+ <li>improvements: add XML_SAVE_NO_EMPTY xmlSaveOption (Rob Richards), add
+ XML_SAVE_NO_XHTML xmlSaveOption, XML Schemas improvements preparing for
+ derive (Kasimier Buchcik).</li>
+ <li>documentation: generation of gtk-doc like docs, integration with
+ devhelp.</li>
+</ul>
+
+<h3>2.6.21: Sep 4 2005</h3>
+<ul>
+ <li>build fixes: Cygwin portability fixes (Gerrit P. Haase), calling
+ convention problems on Windows (Marcus Boerger), cleanups based on Linus'
+ sparse tool, update of win32/configure.js (Rob Richards), remove warnings
+ on Windows(Marcus Boerger), compilation without SAX1, detection of the
+ Python binary, use $GCC inestad of $CC = 'gcc' (Andrew W. Nosenko),
+ compilation/link with threads and old gcc, compile problem by C370 on
+ Z/OS,</li>
+ <li>bug fixes: http_proxy environments (Peter Breitenlohner), HTML UTF-8
+ bug (Jiri Netolicky), XPath NaN compare bug (William Brack),
+ htmlParseScript potential bug, Schemas regexp handling of spaces, Base64
+ Schemas comparisons NIST passes, automata build error xsd:all,
+ xmlGetNodePath for namespaced attributes (Alexander Pohoyda), xmlSchemas
+ foreign namespaces handling, XML Schemas facet comparison (Kupriyanov
+ Anatolij), xmlSchemaPSimpleTypeErr error report (Kasimier Buchcik), xml:
+ namespace ahndling in Schemas (Kasimier), empty model group in Schemas
+ (Kasimier), wildcard in Schemas (Kasimier), URI composition (William),
+ xs:anyType in Schemas (Kasimier), Python resolver emmitting error
+ messages directly, Python xmlAttr.parent (Jakub Piotr Clapa), trying to
+ fix the file path/URI conversion, xmlTextReaderGetAttribute fix (Rob
+ Richards), xmlSchemaFreeAnnot memleak (Kasimier), HTML UTF-8
+ serialization, streaming XPath, Schemas determinism detection problem,
+ XInclude bug, Schemas context type (Dean Hill), validation fix (Derek
+ Poon), xmlTextReaderGetAttribute[Ns] namespaces (Rob Richards), Schemas
+ type fix (Kuba Nowakowski), UTF-8 parser bug, error in encoding handling,
+ xmlGetLineNo fixes, bug on entities handling, entity name extraction in
+ error handling with XInclude, text nodes in HTML body tags (Gary Coady),
+ xml:id and IDness at the treee level fixes, XPath streaming patterns
+ bugs.</li>
+ <li>improvements: structured interfaces for schemas and RNG error reports
+ (Marcus Boerger), optimization of the char data inner loop parsing
+ (thanks to Behdad Esfahbod for the idea), schematron validation though
+ not finished yet, xmlSaveOption to omit XML declaration, keyref match
+ error reports (Kasimier), formal expression handling code not plugged
+ yet, more lax mode for the HTML parser, parser XML_PARSE_COMPACT option
+ for text nodes allocation.</li>
+ <li>documentation: xmllint man page had --nonet duplicated</li>
+</ul>
+
+<h3>2.6.20: Jul 10 2005</h3>
+<ul>
+ <li>build fixes: Windows build (Rob Richards), Mingw compilation (Igor
+ Zlatkovic), Windows Makefile (Igor), gcc warnings (Kasimier and
+ andriy@google.com), use gcc weak references to pthread to avoid the
+ pthread dependancy on Linux, compilation problem (Steve Nairn), compiling
+ of subset (Morten Welinder), IPv6/ss_family compilation (William Brack),
+ compilation when disabling parts of the library, standalone test
+ distribution.</li>
+ <li>bug fixes: bug in lang(), memory cleanup on errors (William Brack),
+ HTTP query strings (Aron Stansvik), memory leak in DTD (William), integer
+ overflow in XPath (William), nanoftp buffer size, pattern "." apth fixup
+ (Kasimier), leak in tree reported by Malcolm Rowe, replaceNode patch
+ (Brent Hendricks), CDATA with NULL content (Mark Vakoc), xml:base fixup
+ on XInclude (William), pattern fixes (William), attribute bug in
+ exclusive c14n (Aleksey Sanin), xml:space and xml:lang with SAX2 (Rob
+ Richards), namespace trouble in complex parsing (Malcolm Rowe), XSD type
+ QNames fixes (Kasimier), XPath streaming fixups (William), RelaxNG bug
+ (Rob Richards), Schemas for Schemas fixes (Kasimier), removal of ID (Rob
+ Richards), a small RelaxNG leak, HTML parsing in push mode bug (James
+ Bursa), failure to detect UTF-8 parsing bugs in CDATA sections,
+ areBlanks() heuristic failure, duplicate attributes in DTD bug
+ (William).</li>
+ <li>improvements: lot of work on Schemas by Kasimier Buchcik both on
+ conformance and streaming, Schemas validation messages (Kasimier Buchcik,
+ Matthew Burgess), namespace removal at the python level (Brent
+ Hendricks), Update to new Schemas regression tests from W3C/Nist
+ (Kasimier), xmlSchemaValidateFile() (Kasimier), implementation of
+ xmlTextReaderReadInnerXml and xmlTextReaderReadOuterXml (James Wert),
+ standalone test framework and programs, new DOM import APIs
+ xmlDOMWrapReconcileNamespaces() xmlDOMWrapAdoptNode() and
+ xmlDOMWrapRemoveNode(), extension of xmllint capabilities for SAX and
+ Schemas regression tests, xmlStopParser() available in pull mode too,
+ ienhancement to xmllint --shell namespaces support, Windows port of the
+ standalone testing tools (Kasimier and William),
+ xmlSchemaValidateStream() xmlSchemaSAXPlug() and xmlSchemaSAXUnplug() SAX
+ Schemas APIs, Schemas xmlReader support.</li>
+</ul>
+
+<h3>2.6.19: Apr 02 2005</h3>
+<ul>
+ <li>build fixes: drop .la from RPMs, --with-minimum build fix (William
+ Brack), use XML_SOCKLEN_T instead of SOCKLEN_T because it breaks with AIX
+ 5.3 compiler, fixed elfgcchack.h generation and PLT reduction code on
+ Linux/ELF/gcc4</li>
+ <li>bug fixes: schemas type decimal fixups (William Brack), xmmlint return
+ code (Gerry Murphy), small schemas fixes (Matthew Burgess and GUY
+ Fabrice), workaround "DAV:" namespace brokeness in c14n (Aleksey Sanin),
+ segfault in Schemas (Kasimier Buchcik), Schemas attribute validation
+ (Kasimier), Prop related functions and xmlNewNodeEatName (Rob Richards),
+ HTML serialization of name attribute on a elements, Python error handlers
+ leaks and improvement (Brent Hendricks), uninitialized variable in
+ encoding code, Relax-NG validation bug, potential crash if
+ gnorableWhitespace is NULL, xmlSAXParseDoc and xmlParseDoc signatures,
+ switched back to assuming UTF-8 in case no encoding is given at
+ serialization time</li>
+ <li>improvements: lot of work on Schemas by Kasimier Buchcik on facets
+ checking and also mixed handling.</li>
+ <li></li>
+</ul>
+
+<h3>2.6.18: Mar 13 2005</h3>
+<ul>
+ <li>build fixes: warnings (Peter Breitenlohner), testapi.c generation,
+ Bakefile support (Francesco Montorsi), Windows compilation (Joel Reed),
+ some gcc4 fixes, HP-UX portability fixes (Rick Jones).</li>
+ <li>bug fixes: xmlSchemaElementDump namespace (Kasimier Buchcik), push and
+ xmlreader stopping on non-fatal errors, thread support for dictionnaries
+ reference counting (Gary Coady), internal subset and push problem, URL
+ saved in xmlCopyDoc, various schemas bug fixes (Kasimier), Python paths
+ fixup (Stephane Bidoul), xmlGetNodePath and namespaces, xmlSetNsProp fix
+ (Mike Hommey), warning should not count as error (William Brack),
+ xmlCreatePushParser empty chunk, XInclude parser flags (William), cleanup
+ FTP and HTTP code to reuse the uri parsing and IPv6 (William),
+ xmlTextWriterStartAttributeNS fix (Rob Richards), XMLLINT_INDENT being
+ empty (William), xmlWriter bugs (Rob Richards), multithreading on Windows
+ (Rich Salz), xmlSearchNsByHref fix (Kasimier), Python binding leak (Brent
+ Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
+ (Rob Richards), Schemas decimal type fixes (William Brack),
+ xmlByteConsumed static buffer (Ben Maurer).</li>
+ <li>improvement: speedup parsing comments and DTDs, dictionary support for
+ hash tables, Schemas Identity constraints (Kasimier), streaming XPath
+ subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
+ values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
+ Stansvik),</li>
+ <li>Documentation: Wiki support (Joel Reed)</li>
+</ul>
+
+<h3>2.6.17: Jan 16 2005</h3>
+<ul>
+ <li>build fixes: Windows, warnings removal (William Brack),
+ maintainer-clean dependency(William), build in a different directory
+ (William), fixing --with-minimum configure build (William), BeOS build
+ (Marcin Konicki), Python-2.4 detection (William), compilation on AIX (Dan
+ McNichol)</li>
+ <li>bug fixes: xmlTextReaderHasAttributes (Rob Richards), xmlCtxtReadFile()
+ to use the catalog(s), loop on output (William Brack), XPath memory leak,
+ ID deallocation problem (Steve Shepard), debugDumpNode crash (William),
+ warning not using error callback (William), xmlStopParser bug (William),
+ UTF-16 with BOM on DTDs (William), namespace bug on empty elements in
+ push mode (Rob Richards), line and col computations fixups (Aleksey
+ Sanin), xmlURIEscape fix (William), xmlXPathErr on bad range (William),
+ patterns with too many steps, bug in RNG choice optimization, line number
+ sometimes missing.</li>
+ <li>improvements: XSD Schemas (Kasimier Buchcik), python generator
+ (William), xmlUTF8Strpos speedup (William), unicode Python strings
+ (William), XSD error reports (Kasimier Buchcik), Python __str__ call
+ serialize().</li>
+ <li>new APIs: added xmlDictExists(), GetLineNumber and GetColumnNumber for
+ the xmlReader (Aleksey Sanin), Dynamic Shared Libraries APIs (mostly Joel
+ Reed), error extraction API from regexps, new XMLSave option for format
+ (Phil Shafer)</li>
+ <li>documentation: site improvement (John Fleck), FAQ entries
+ (William).</li>
+</ul>
+
+<h3>2.6.16: Nov 10 2004</h3>
+<ul>
+ <li>general hardening and bug fixing crossing all the API based on new
+ automated regression testing</li>
+ <li>build fix: IPv6 build and test on AIX (Dodji Seketeli)</li>
+ <li>bug fixes: problem with XML::Libxml reported by Petr Pajas, encoding
+ conversion functions return values, UTF-8 bug affecting XPath reported by
+ Markus Bertheau, catalog problem with NULL entries (William Brack)</li>
+ <li>documentation: fix to xmllint man page, some API function descritpion
+ were updated.</li>
+ <li>improvements: DTD validation APIs provided at the Python level (Brent
+ Hendricks)</li>
+</ul>
+
+<h3>2.6.15: Oct 27 2004</h3>
+<ul>
+ <li>security fixes on the nanoftp and nanohttp modules</li>
+ <li>build fixes: xmllint detection bug in configure, building outside the
+ source tree (Thomas Fitzsimmons)</li>
+ <li>bug fixes: HTML parser on broken ASCII chars in names (William), Python
+ paths (Malcolm Tredinnick), xmlHasNsProp and default namespace (William),
+ saving to python file objects (Malcolm Tredinnick), DTD lookup fix
+ (Malcolm), save back &lt;group&gt; in catalogs (William), tree build
+ fixes (DV and Rob Richards), Schemas memory bug, structured error handler
+ on Python 64bits, thread local memory deallocation, memory leak reported
+ by Volker Roth, xmlValidateDtd in the presence of an internal subset,
+ entities and _private problem (William), xmlBuildRelativeURI error
+ (William).</li>
+ <li>improvements: better XInclude error reports (William), tree debugging
+ module and tests, convenience functions at the Reader API (Graham
+ Bennett), add support for PI in the HTML parser.</li>
+</ul>
+
+<h3>2.6.14: Sep 29 2004</h3>
+<ul>
+ <li>build fixes: configure paths for xmllint and xsltproc, compilation
+ without HTML parser, compilation warning cleanups (William Brack &amp;
+ Malcolm Tredinnick), VMS makefile update (Craig Berry),</li>
+ <li>bug fixes: xmlGetUTF8Char (William Brack), QName properties (Kasimier
+ Buchcik), XInclude testing, Notation serialization, UTF8ToISO8859x
+ transcoding (Mark Itzcovitz), lots of XML Schemas cleanup and fixes
+ (Kasimier), ChangeLog cleanup (Stepan Kasal), memory fixes (Mark Vakoc),
+ handling of failed realloc(), out of bound array addressing in Schemas
+ date handling, Python space/tabs cleanups (Malcolm Tredinnick), NMTOKENS
+ E20 validation fix (Malcolm),</li>
+ <li>improvements: added W3C XML Schemas testsuite (Kasimier Buchcik), add
+ xmlSchemaValidateOneElement (Kasimier), Python exception hierearchy
+ (Malcolm Tredinnick), Python libxml2 driver improvement (Malcolm
+ Tredinnick), Schemas support for xsi:schemaLocation,
+ xsi:noNamespaceSchemaLocation, xsi:type (Kasimier Buchcik)</li>
+</ul>
+
+<h3>2.6.13: Aug 31 2004</h3>
+<ul>
+ <li>build fixes: Windows and zlib (Igor Zlatkovic), -O flag with gcc,
+ Solaris compiler warning, fixing RPM BuildRequires,</li>
+ <li>fixes: DTD loading on Windows (Igor), Schemas error reports APIs
+ (Kasimier Buchcik), Schemas validation crash, xmlCheckUTF8 (William Brack
+ and Julius Mittenzwei), Schemas facet check (Kasimier), default namespace
+ problem (William), Schemas hexbinary empty values, encoding error could
+ generate a serialization loop.</li>
+ <li>Improvements: Schemas validity improvements (Kasimier), added --path
+ and --load-trace options to xmllint</li>
+ <li>documentation: tutorial update (John Fleck)</li>
+</ul>
+
+<h3>2.6.12: Aug 22 2004</h3>
+<ul>
+ <li>build fixes: fix --with-minimum, elfgcchack.h fixes (Peter
+ Breitenlohner), perl path lookup (William), diff on Solaris (Albert
+ Chin), some 64bits cleanups.</li>
+ <li>Python: avoid a warning with 2.3 (William Brack), tab and space mixes
+ (William), wrapper generator fixes (William), Cygwin support (Gerrit P.
+ Haase), node wrapper fix (Marc-Antoine Parent), XML Schemas support
+ (Torkel Lyng)</li>
+ <li>Schemas: a lot of bug fixes and improvements from Kasimier Buchcik</li>
+ <li>fixes: RVT fixes (William), XPath context resets bug (William), memory
+ debug (Steve Hay), catalog white space handling (Peter Breitenlohner),
+ xmlReader state after attribute reading (William), structured error
+ handler (William), XInclude generated xml:base fixup (William), Windows
+ memory reallocation problem (Steve Hay), Out of Memory conditions
+ handling (William and Olivier Andrieu), htmlNewDoc() charset bug,
+ htmlReadMemory init (William), a posteriori validation DTD base
+ (William), notations serialization missing, xmlGetNodePath (Dodji),
+ xmlCheckUTF8 (Diego Tartara), missing line numbers on entity
+ (William)</li>
+ <li>improvements: DocBook catalog build scrip (William), xmlcatalog tool
+ (Albert Chin), xmllint --c14n option, no_proxy environment (Mike Hommey),
+ xmlParseInNodeContext() addition, extend xmllint --shell, allow XInclude
+ to not generate start/end nodes, extend xmllint --version to include CVS
+ tag (William)</li>
+ <li>documentation: web pages fixes, validity API docs fixes (William)
+ schemas API fix (Eric Haszlakiewicz), xmllint man page (John Fleck)</li>
+</ul>
+
+<h3>2.6.11: July 5 2004</h3>
+<ul>
+ <li>Schemas: a lot of changes and improvements by Kasimier Buchcik for
+ attributes, namespaces and simple types.</li>
+ <li>build fixes: --with-minimum (William Brack), some gcc cleanup
+ (William), --with-thread-alloc (William)</li>
+ <li>portability: Windows binary package change (Igor Zlatkovic), Catalog
+ path on Windows</li>
+ <li>documentation: update to the tutorial (John Fleck), xmllint return code
+ (John Fleck), man pages (Ville Skytta),</li>
+ <li>bug fixes: C14N bug serializing namespaces (Aleksey Sanin), testSAX
+ properly initialize the library (William), empty node set in XPath
+ (William), xmlSchemas errors (William), invalid charref problem pointed
+ by Morus Walter, XInclude xml:base generation (William), Relax-NG bug
+ with div processing (William), XPointer and xml:base problem(William),
+ Reader and entities, xmllint return code for schemas (William), reader
+ streaming problem (Steve Ball), DTD serialization problem (William),
+ libxml.m4 fixes (Mike Hommey), do not provide destructors as methods on
+ Python classes, xmlReader buffer bug, Python bindings memory interfaces
+ improvement (with Stéphane Bidoul), Fixed the push parser to be back to
+ synchronous behaviour.</li>
+ <li>improvement: custom per-thread I/O enhancement (Rob Richards), register
+ namespace in debug shell (Stefano Debenedetti), Python based regression
+ test for non-Unix users (William), dynamically increase the number of
+ XPath extension functions in Python and fix a memory leak (Marc-Antoine
+ Parent and William)</li>
+ <li>performance: hack done with Arjan van de Ven to reduce ELF footprint
+ and generated code on Linux, plus use gcc runtime profiling to optimize
+ the code generated in the RPM packages.</li>
+</ul>
+
+<h3>2.6.10: May 17 2004</h3>
+<ul>
+ <li>Web page generated for ChangeLog</li>
+ <li>build fixes: --without-html problems, make check without make all</li>
+ <li>portability: problem with xpath.c on Windows (MSC and Borland), memcmp
+ vs. strncmp on Solaris, XPath tests on Windows (Mark Vakoc), C++ do not
+ use "list" as parameter name, make tests work with Python 1.5 (Ed
+ Davis),</li>
+ <li>improvements: made xmlTextReaderMode public, small buffers resizing
+ (Morten Welinder), add --maxmem option to xmllint, add
+ xmlPopInputCallback() for Matt Sergeant, refactoring of serialization
+ escaping, added escaping customization</li>
+ <li>bugfixes: xsd:extension (Taihei Goi), assorted regexp bugs (William
+ Brack), xmlReader end of stream problem, node deregistration with reader,
+ URI escaping and filemanes, XHTML1 formatting (Nick Wellnhofer), regexp
+ transition reduction (William), various XSD Schemas fixes (Kasimier
+ Buchcik), XInclude fallback problem (William), weird problems with DTD
+ (William), structured error handler callback context (William), reverse
+ xmlEncodeSpecialChars() behaviour back to escaping '"'</li>
+</ul>
+
+<h3>2.6.9: Apr 18 2004</h3>
+<ul>
+ <li>implement xml:id Working Draft, relaxed XPath id() checking</li>
+ <li>bugfixes: xmlCtxtReset (Brent Hendricks), line number and CDATA (Dave
+ Beckett), Relax-NG compilation (William Brack), Regexp patches (with
+ William), xmlUriEscape (Mark Vakoc), a Relax-NG notAllowed problem (with
+ William), Relax-NG name classes compares (William), XInclude duplicate
+ fallback (William), external DTD encoding detection (William), a DTD
+ validation bug (William), xmlReader Close() fix, recusive extention
+ schemas</li>
+ <li>improvements: use xmlRead* APIs in test tools (Mark Vakoc), indenting
+ save optimization, better handle IIS broken HTTP redirect behaviour (Ian
+ Hummel), HTML parser frameset (James Bursa), libxml2-python RPM
+ dependancy, XML Schemas union support (Kasimier Buchcik), warning removal
+ clanup (William), keep ChangeLog compressed when installing from RPMs</li>
+ <li>documentation: examples and xmlDocDumpMemory docs (John Fleck), new
+ example (load, xpath, modify, save), xmlCatalogDump() comments,</li>
+ <li>Windows: Borland C++ builder (Eric Zurcher), work around Microsoft
+ compiler NaN handling bug (Mark Vakoc)</li>
+</ul>
+
+<h3>2.6.8: Mar 23 2004</h3>
+<ul>
+ <li>First step of the cleanup of the serialization code and APIs</li>
+ <li>XML Schemas: mixed content (Adam Dickmeiss), QName handling fixes (Adam
+ Dickmeiss), anyURI for "" (John Belmonte)</li>
+ <li>Python: Canonicalization C14N support added (Anthony Carrico)</li>
+ <li>xmlDocCopyNode() extension (William)</li>
+ <li>Relax-NG: fix when processing XInclude results (William), external
+ reference in interleave (William), missing error on &lt;choice&gt;
+ failure (William), memory leak in schemas datatype facets.</li>
+ <li>xmlWriter: patch for better DTD support (Alfred Mickautsch)</li>
+ <li>bug fixes: xmlXPathLangFunction memory leak (Mike Hommey and William
+ Brack), no ID errors if using HTML_PARSE_NOERROR, xmlcatalog fallbacks to
+ URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
+ XInclude and XPointer fixes for entities (William), XML parser bug
+ reported by Holger Rauch, nanohttp fd leak (William), regexps char
+ groups '-' handling (William), dictionary reference counting problems,
+ do not close stderr.</li>
+ <li>performance patches from Petr Pajas</li>
+ <li>Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)</li>
+ <li>compilation and portability fixes: --without-valid, catalog cleanups
+ (Peter Breitenlohner), MingW patch (Roland Schwingel), cross-compilation
+ to Windows (Christophe de Vienne), --with-html-dir fixup (Julio Merino
+ Vidal), Windows build (Eric Zurcher)</li>
+</ul>
+
+<h3>2.6.7: Feb 23 2004</h3>
+<ul>
+ <li>documentation: tutorial updates (John Fleck), benchmark results</li>
+ <li>xmlWriter: updates and fixes (Alfred Mickautsch, Lucas Brasilino)</li>
+ <li>XPath optimization (Petr Pajas)</li>
+ <li>DTD ID handling optimization</li>
+ <li>bugfixes: xpath number with &gt; 19 fractional (William Brack), push
+ mode with unescaped '&gt;' characters, fix xmllint --stream --timing, fix
+ xmllint --memory --stream memory usage, xmlAttrSerializeTxtContent
+ handling NULL, trying to fix Relax-NG/Perl interface.</li>
+ <li>python: 2.3 compatibility, whitespace fixes (Malcolm Tredinnick)</li>
+ <li>Added relaxng option to xmllint --shell</li>
+</ul>
+
+<h3>2.6.6: Feb 12 2004</h3>
+<ul>
+ <li>nanohttp and nanoftp: buffer overflow error on URI parsing (Igor and
+ William) reported by Yuuichi Teranishi</li>
+ <li>bugfixes: make test and path issues, xmlWriter attribute serialization
+ (William Brack), xmlWriter indentation (William), schemas validation
+ (Eric Haszlakiewicz), XInclude dictionnaries issues (William and Oleg
+ Paraschenko), XInclude empty fallback (William), HTML warnings (William),
+ XPointer in XInclude (William), Python namespace serialization,
+ isolat1ToUTF8 bound error (Alfred Mickautsch), output of parameter
+ entities in internal subset (William), internal subset bug in push mode,
+ &lt;xs:all&gt; fix (Alexey Sarytchev)</li>
+ <li>Build: fix for automake-1.8 (Alexander Winston), warnings removal
+ (Philip Ludlam), SOCKLEN_T detection fixes (Daniel Richard), fix
+ --with-minimum configuration.</li>
+ <li>XInclude: allow the 2001 namespace without warning.</li>
+ <li>Documentation: missing example/index.html (John Fleck), version
+ dependencies (John Fleck)</li>
+ <li>reader API: structured error reporting (Steve Ball)</li>
+ <li>Windows compilation: mingw, msys (Mikhail Grushinskiy), function
+ prototype (Cameron Johnson), MSVC6 compiler warnings, _WINSOCKAPI_
+ patch</li>
+ <li>Parsers: added xmlByteConsumed(ctxt) API to get the byte offest in
+ input.</li>
+</ul>
+
+<h3>2.6.5: Jan 25 2004</h3>
+<ul>
+ <li>Bugfixes: dictionnaries for schemas (William Brack), regexp segfault
+ (William), xs:all problem (William), a number of XPointer bugfixes
+ (William), xmllint error go to stderr, DTD validation problem with
+ namespace, memory leak (William), SAX1 cleanup and minimal options fixes
+ (Mark Vadoc), parser context reset on error (Shaun McCance), XPath union
+ evaluation problem (William) , xmlReallocLoc with NULL (Aleksey Sanin),
+ XML Schemas double free (Steve Ball), XInclude with no href, argument
+ callbacks order for XPath callbacks (Frederic Peters)</li>
+ <li>Documentation: python scripts (William Brack), xslt stylesheets (John
+ Fleck), doc (Sven Zimmerman), I/O example.</li>
+ <li>Python bindings: fixes (William), enum support (Stéphane Bidoul),
+ structured error reporting (Stéphane Bidoul)</li>
+ <li>XInclude: various fixes for conformance, problem related to dictionary
+ references (William &amp; me), recursion (William)</li>
+ <li>xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
+ Mickautsch),</li>
+ <li>xmlSchemas: normalizedString datatype (John Belmonte)</li>
+ <li>code cleanup for strings functions (William)</li>
+ <li>Windows: compiler patches (Mark Vakoc)</li>
+ <li>Parser optimizations, a few new XPath and dictionary APIs for future
+ XSLT optimizations.</li>
+</ul>
+
+<h3>2.6.4: Dec 24 2003</h3>
+<ul>
+ <li>Windows build fixes (Igor Zlatkovic)</li>
+ <li>Some serious XInclude problems reported by Oleg Paraschenko and</li>
+ <li>Unix and Makefile packaging fixes (me, William Brack,</li>
+ <li>Documentation improvements (John Fleck, William Brack), example fix
+ (Lucas Brasilino)</li>
+ <li>bugfixes: xmlTextReaderExpand() with xmlReaderWalker, XPath handling of
+ NULL strings (William Brack) , API building reader or parser from
+ filedescriptor should not close it, changed XPath sorting to be stable
+ again (William Brack), xmlGetNodePath() generating '(null)' (William
+ Brack), DTD validation and namespace bug (William Brack), XML Schemas
+ double inclusion behaviour</li>
+</ul>
+
+<h3>2.6.3: Dec 10 2003</h3>
+<ul>
+ <li>documentation updates and cleanup (DV, William Brack, John Fleck)</li>
+ <li>added a repository of examples, examples from Aleksey Sanin, Dodji
+ Seketeli, Alfred Mickautsch</li>
+ <li>Windows updates: Mark Vakoc, Igor Zlatkovic, Eric Zurcher, Mingw
+ (Kenneth Haley)</li>
+ <li>Unicode range checking (William Brack)</li>
+ <li>code cleanup (William Brack)</li>
+ <li>Python bindings: doc (John Fleck), bug fixes</li>
+ <li>UTF-16 cleanup and BOM issues (William Brack)</li>
+ <li>bug fixes: ID and xmlReader validation, XPath (William Brack),
+ xmlWriter (Alfred Mickautsch), hash.h inclusion problem, HTML parser
+ (James Bursa), attribute defaulting and validation, some serialization
+ cleanups, XML_GET_LINE macro, memory debug when using threads (William
+ Brack), serialization of attributes and entities content, xmlWriter
+ (Daniel Schulman)</li>
+ <li>XInclude bugfix, new APIs and update to the last version including the
+ namespace change.</li>
+ <li>XML Schemas improvements: include (Robert Stepanek), import and
+ namespace handling, fixed the regression tests troubles, added examples
+ based on Eric van der Vlist book, regexp fixes</li>
+ <li>preliminary pattern support for streaming (needed for schemas
+ constraints), added xmlTextReaderPreservePattern() to collect subdocument
+ when streaming.</li>
+ <li>various fixes in the structured error handling</li>
+</ul>
+
+<h3>2.6.2: Nov 4 2003</h3>
+<ul>
+ <li>XPath context unregistration fixes</li>
+ <li>text node coalescing fixes (Mark Lilback)</li>
+ <li>API to screate a W3C Schemas from an existing document (Steve Ball)</li>
+ <li>BeOS patches (Marcin 'Shard' Konicki)</li>
+ <li>xmlStrVPrintf function added (Aleksey Sanin)</li>
+ <li>compilation fixes (Mark Vakoc)</li>
+ <li>stdin parsing fix (William Brack)</li>
+ <li>a posteriori DTD validation fixes</li>
+ <li>xmlReader bug fixes: Walker fixes, python bindings</li>
+ <li>fixed xmlStopParser() to really stop the parser and errors</li>
+ <li>always generate line numbers when using the new xmlReadxxx
+ functions</li>
+ <li>added XInclude support to the xmlReader interface</li>
+ <li>implemented XML_PARSE_NONET parser option</li>
+ <li>DocBook XSLT processing bug fixed</li>
+ <li>HTML serialization for &lt;p&gt; elements (William Brack and me)</li>
+ <li>XPointer failure in XInclude are now handled as resource errors</li>
+ <li>fixed xmllint --html to use the HTML serializer on output (added
+ --xmlout to implement the previous behaviour of saving it using the XML
+ serializer)</li>
+</ul>
+
+<h3>2.6.1: Oct 28 2003</h3>
+<ul>
+ <li>Mostly bugfixes after the big 2.6.0 changes</li>
+ <li>Unix compilation patches: libxml.m4 (Patrick Welche), warnings cleanup
+ (William Brack)</li>
+ <li>Windows compilation patches (Joachim Bauch, Stephane Bidoul, Igor
+ Zlatkovic)</li>
+ <li>xmlWriter bugfix (Alfred Mickautsch)</li>
+ <li>chvalid.[ch]: couple of fixes from Stephane Bidoul</li>
+ <li>context reset: error state reset, push parser reset (Graham
+ Bennett)</li>
+ <li>context reuse: generate errors if file is not readable</li>
+ <li>defaulted attributes for element coming from internal entities
+ (Stephane Bidoul)</li>
+ <li>Python: tab and spaces mix (William Brack)</li>
+ <li>Error handler could crash in DTD validation in 2.6.0</li>
+ <li>xmlReader: do not use the document or element _private field</li>
+ <li>testSAX.c: avoid a problem with some PIs (Massimo Morara)</li>
+ <li>general bug fixes: mandatory encoding in text decl, serializing
+ Document Fragment nodes, xmlSearchNs 2.6.0 problem (Kasimier Buchcik),
+ XPath errors not reported, slow HTML parsing of large documents.</li>
+</ul>
+
+<h3>2.6.0: Oct 20 2003</h3>
+<ul>
+ <li>Major revision release: should be API and ABI compatible but got a lot
+ of change</li>
+ <li>Increased the library modularity, far more options can be stripped out,
+ a --with-minimum configuration will weight around 160KBytes</li>
+ <li>Use per parser and per document dictionary, allocate names and small
+ text nodes from the dictionary</li>
+ <li>Switch to a SAX2 like parser rewrote most of the XML parser core,
+ provides namespace resolution and defaulted attributes, minimize memory
+ allocations and copies, namespace checking and specific error handling,
+ immutable buffers, make predefined entities static structures, etc...</li>
+ <li>rewrote all the error handling in the library, all errors can be
+ intercepted at a structured level, with precise information
+ available.</li>
+ <li>New simpler and more generic XML and HTML parser APIs, allowing to
+ easily modify the parsing options and reuse parser context for multiple
+ consecutive documents.</li>
+ <li>Similar new APIs for the xmlReader, for options and reuse, provided new
+ functions to access content as const strings, use them for Python
+ bindings</li>
+ <li>a lot of other smaller API improvements: xmlStrPrintf (Aleksey Sanin),
+ Walker i.e. reader on a document tree based on Alfred Mickautsch code,
+ make room in nodes for line numbers, reference counting and future PSVI
+ extensions, generation of character ranges to be checked with faster
+ algorithm (William), xmlParserMaxDepth (Crutcher Dunnavant), buffer
+ access</li>
+ <li>New xmlWriter API provided by Alfred Mickautsch</li>
+ <li>Schemas: base64 support by Anthony Carrico</li>
+ <li>Parser&lt;-&gt;HTTP integration fix, proper processing of the Mime-Type
+ and charset information if available.</li>
+ <li>Relax-NG: bug fixes including the one reported by Martijn Faassen and
+ zeroOrMore, better error reporting.</li>
+ <li>Python bindings (Stéphane Bidoul), never use stdout for errors
+ output</li>
+ <li>Portability: all the headers have macros for export and calling
+ convention definitions (Igor Zlatkovic), VMS update (Craig A. Berry),
+ Windows: threads (Jesse Pelton), Borland compiler (Eric Zurcher, Igor),
+ Mingw (Igor), typos (Mark Vakoc), beta version (Stephane Bidoul),
+ warning cleanups on AIX and MIPS compilers (William Brack), BeOS (Marcin
+ 'Shard' Konicki)</li>
+ <li>Documentation fixes and README (William Brack), search fix (William),
+ tutorial updates (John Fleck), namespace docs (Stefan Kost)</li>
+ <li>Bug fixes: xmlCleanupParser (Dave Beckett), threading uninitialized
+ mutexes, HTML doctype lowercase, SAX/IO (William), compression detection
+ and restore (William), attribute declaration in DTDs (William), namespace
+ on attribute in HTML output (William), input filename (Rob Richards),
+ namespace DTD validation, xmlReplaceNode (Chris Ryland), I/O callbacks
+ (Markus Keim), CDATA serialization (Shaun McCance), xmlReader (Peter
+ Derr), high codepoint charref like &amp;#x10FFFF;, buffer access in push
+ mode (Justin Fletcher), TLS threads on Windows (Jesse Pelton), XPath bug
+ (William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
+ error handling.</li>
+ <li>xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
+ testing, --nodict for building without tree dictionary, --nocdata to
+ replace CDATA by text, --nsclean to remove surperfluous namespace
+ declarations</li>
+ <li>added xml2-config --libtool-libs option from Kevin P. Fleming</li>
+ <li>a lot of profiling and tuning of the code, speedup patch for
+ xmlSearchNs() by Luca Padovani. The xmlReader should do far less
+ allocation and it speed should get closer to SAX. Chris Anderson worked
+ on speeding and cleaning up repetitive checking code.</li>
+ <li>cleanup of "make tests"</li>
+ <li>libxml-2.0-uninstalled.pc from Malcolm Tredinnick</li>
+ <li>deactivated the broken docBook SGML parser code and plugged the XML
+ parser instead.</li>
+</ul>
+
+<h3>2.5.11: Sep 9 2003</h3>
+
+<p>A bugfix only release:</p>
+<ul>
+ <li>risk of crash in Relax-NG</li>
+ <li>risk of crash when using multithreaded programs</li>
+</ul>
+
+<h3>2.5.10: Aug 15 2003</h3>
+
+<p>A bugfixes only release</p>
+<ul>
+ <li>Windows Makefiles (William Brack)</li>
+ <li>UTF-16 support fixes (Mark Itzcovitz)</li>
+ <li>Makefile and portability (William Brack) automake, Linux alpha, Mingw
+ on Windows (Mikhail Grushinskiy)</li>
+ <li>HTML parser (Oliver Stoeneberg)</li>
+ <li>XInclude performance problem reported by Kevin Ruscoe</li>
+ <li>XML parser performance problem reported by Grant Goodale</li>
+ <li>xmlSAXParseDTD() bug fix from Malcolm Tredinnick</li>
+ <li>and a couple other cleanup</li>
+</ul>
+
+<h3>2.5.9: Aug 9 2003</h3>
+<ul>
+ <li>bugfixes: IPv6 portability, xmlHasNsProp (Markus Keim), Windows build
+ (Wiliam Brake, Jesse Pelton, Igor), Schemas (Peter Sobisch), threading
+ (Rob Richards), hexBinary type (), UTF-16 BOM (Dodji Seketeli),
+ xmlReader, Relax-NG schemas compilation, namespace handling, EXSLT (Sean
+ Griffin), HTML parsing problem (William Brack), DTD validation for mixed
+ content + namespaces, HTML serialization, library initialization,
+ progressive HTML parser</li>
+ <li>better interfaces for Relax-NG error handling (Joachim Bauch, )</li>
+ <li>adding xmlXIncludeProcessTree() for XInclud'ing in a subtree</li>
+ <li>doc fixes and improvements (John Fleck)</li>
+ <li>configure flag for -with-fexceptions when embedding in C++</li>
+ <li>couple of new UTF-8 helper functions (William Brack)</li>
+ <li>general encoding cleanup + ISO-8859-x without iconv (Peter Jacobi)</li>
+ <li>xmlTextReader cleanup + enum for node types (Bjorn Reese)</li>
+ <li>general compilation/warning cleanup Solaris/HP-UX/... (William
+ Brack)</li>
+</ul>
+
+<h3>2.5.8: Jul 6 2003</h3>
+<ul>
+ <li>bugfixes: XPath, XInclude, file/URI mapping, UTF-16 save (Mark
+ Itzcovitz), UTF-8 checking, URI saving, error printing (William Brack),
+ PI related memleak, compilation without schemas or without xpath (Joerg
+ Schmitz-Linneweber/Garry Pennington), xmlUnlinkNode problem with DTDs,
+ rpm problem on , i86_64, removed a few compilation problems from 2.5.7,
+ xmlIOParseDTD, and xmlSAXParseDTD (Malcolm Tredinnick)</li>
+ <li>portability: DJGPP (MsDos) , OpenVMS (Craig A. Berry)</li>
+ <li>William Brack fixed multithreading lock problems</li>
+ <li>IPv6 patch for FTP and HTTP accesses (Archana Shah/Wipro)</li>
+ <li>Windows fixes (Igor Zlatkovic, Eric Zurcher), threading (Stéphane
+ Bidoul)</li>
+ <li>A few W3C Schemas Structure improvements</li>
+ <li>W3C Schemas Datatype improvements (Charlie Bozeman)</li>
+ <li>Python bindings for thread globals (Stéphane Bidoul), and method/class
+ generator</li>
+ <li>added --nonet option to xmllint</li>
+ <li>documentation improvements (John Fleck)</li>
+</ul>
+
+<h3>2.5.7: Apr 25 2003</h3>
+<ul>
+ <li>Relax-NG: Compiling to regexp and streaming validation on top of the
+ xmlReader interface, added to xmllint --stream</li>
+ <li>xmlReader: Expand(), Next() and DOM access glue, bug fixes</li>
+ <li>Support for large files: RGN validated a 4.5GB instance</li>
+ <li>Thread support is now configured in by default</li>
+ <li>Fixes: update of the Trio code (Bjorn), WXS Date and Duration fixes
+ (Charles Bozeman), DTD and namespaces (Brent Hendricks), HTML push parser
+ and zero bytes handling, some missing Windows file path conversions,
+ behaviour of the parser and validator in the presence of "out of memory"
+ error conditions</li>
+ <li>extended the API to be able to plug a garbage collecting memory
+ allocator, added xmlMallocAtomic() and modified the allocations
+ accordingly.</li>
+ <li>Performances: removed excessive malloc() calls, speedup of the push and
+ xmlReader interfaces, removed excessive thread locking</li>
+ <li>Documentation: man page (John Fleck), xmlReader documentation</li>
+ <li>Python: adding binding for xmlCatalogAddLocal (Brent M Hendricks)</li>
+</ul>
+
+<h3>2.5.6: Apr 1 2003</h3>
+<ul>
+ <li>Fixed W3C XML Schemas datatype, should be compliant now except for
+ binHex and base64 which are not supported yet.</li>
+ <li>bug fixes: non-ASCII IDs, HTML output, XInclude on large docs and
+ XInclude entities handling, encoding detection on external subsets, XML
+ Schemas bugs and memory leaks, HTML parser (James Bursa)</li>
+ <li>portability: python/trio (Albert Chin), Sun compiler warnings</li>
+ <li>documentation: added --relaxng option to xmllint man page (John)</li>
+ <li>improved error reporting: xml:space, start/end tag mismatches, Relax NG
+ errors</li>
+</ul>
+
+<h3>2.5.5: Mar 24 2003</h3>
+<ul>
+ <li>Lot of fixes on the Relax NG implementation. More testing including
+ DocBook and TEI examples.</li>
+ <li>Increased the support for W3C XML Schemas datatype</li>
+ <li>Several bug fixes in the URI handling layer</li>
+ <li>Bug fixes: HTML parser, xmlReader, DTD validation, XPath, encoding
+ conversion, line counting in the parser.</li>
+ <li>Added support for $XMLLINT_INDENT environment variable, FTP delete</li>
+ <li>Fixed the RPM spec file name</li>
+</ul>
+
+<h3>2.5.4: Feb 20 2003</h3>
+<ul>
+ <li>Conformance testing and lot of fixes on Relax NG and XInclude
+ implementation</li>
+ <li>Implementation of XPointer element() scheme</li>
+ <li>Bug fixes: XML parser, XInclude entities merge, validity checking on
+ namespaces,
+ <p>2 serialization bugs, node info generation problems, a DTD regexp
+ generation problem.</p>
+ </li>
+ <li>Portability: windows updates and path canonicalization (Igor)</li>
+ <li>A few typo fixes (Kjartan Maraas)</li>
+ <li>Python bindings generator fixes (Stephane Bidoul)</li>
+</ul>
+
+<h3>2.5.3: Feb 10 2003</h3>
+<ul>
+ <li>RelaxNG and XML Schemas datatypes improvements, and added a first
+ version of RelaxNG Python bindings</li>
+ <li>Fixes: XLink (Sean Chittenden), XInclude (Sean Chittenden), API fix for
+ serializing namespace nodes, encoding conversion bug, XHTML1
+ serialization</li>
+ <li>Portability fixes: Windows (Igor), AMD 64bits RPM spec file</li>
+</ul>
+
+<h3>2.5.2: Feb 5 2003</h3>
+<ul>
+ <li>First implementation of RelaxNG, added --relaxng flag to xmllint</li>
+ <li>Schemas support now compiled in by default.</li>
+ <li>Bug fixes: DTD validation, namespace checking, XInclude and entities,
+ delegateURI in XML Catalogs, HTML parser, XML reader (Stéphane Bidoul),
+ XPath parser and evaluation, UTF8ToUTF8 serialization, XML reader memory
+ consumption, HTML parser, HTML serialization in the presence of
+ namespaces</li>
+ <li>added an HTML API to check elements and attributes.</li>
+ <li>Documentation improvement, PDF for the tutorial (John Fleck), doc
+ patches (Stefan Kost)</li>
+ <li>Portability fixes: NetBSD (Julio Merino), Windows (Igor Zlatkovic)</li>
+ <li>Added python bindings for XPointer, contextual error reporting
+ (Stéphane Bidoul)</li>
+ <li>URI/file escaping problems (Stefano Zacchiroli)</li>
+</ul>
+
+<h3>2.5.1: Jan 8 2003</h3>
+<ul>
+ <li>Fixes a memory leak and configuration/compilation problems in 2.5.0</li>
+ <li>documentation updates (John)</li>
+ <li>a couple of XmlTextReader fixes</li>
+</ul>
+
+<h3>2.5.0: Jan 6 2003</h3>
+<ul>
+ <li>New <a href="xmlreader.html">XmltextReader interface</a> based on C#
+ API (with help of Stéphane Bidoul)</li>
+ <li>Windows: more exports, including the new API (Igor)</li>
+ <li>XInclude fallback fix</li>
+ <li>Python: bindings for the new API, packaging (Stéphane Bidoul),
+ drv_libxml2.py Python xml.sax driver (Stéphane Bidoul), fixes, speedup
+ and iterators for Python-2.2 (Hannu Krosing)</li>
+ <li>Tutorial fixes (john Fleck and Niraj Tolia) xmllint man update
+ (John)</li>
+ <li>Fix an XML parser bug raised by Vyacheslav Pindyura</li>
+ <li>Fix for VMS serialization (Nigel Hall) and config (Craig A. Berry)</li>
+ <li>Entities handling fixes</li>
+ <li>new API to optionally track node creation and deletion (Lukas
+ Schroeder)</li>
+ <li>Added documentation for the XmltextReader interface and some <a
+ href="guidelines.html">XML guidelines</a></li>
+</ul>
+
+<h3>2.4.30: Dec 12 2002</h3>
+<ul>
+ <li>2.4.29 broke the python bindings, rereleasing</li>
+ <li>Improvement/fixes of the XML API generator, and couple of minor code
+ fixes.</li>
+</ul>
+
+<h3>2.4.29: Dec 11 2002</h3>
+<ul>
+ <li>Windows fixes (Igor): Windows CE port, pthread linking, python bindings
+ (Stéphane Bidoul), Mingw (Magnus Henoch), and export list updates</li>
+ <li>Fix for prev in python bindings (ERDI Gergo)</li>
+ <li>Fix for entities handling (Marcus Clarke)</li>
+ <li>Refactored the XML and HTML dumps to a single code path, fixed XHTML1
+ dump</li>
+ <li>Fix for URI parsing when handling URNs with fragment identifiers</li>
+ <li>Fix for HTTP URL escaping problem</li>
+ <li>added an TextXmlReader (C#) like API (work in progress)</li>
+ <li>Rewrote the API in XML generation script, includes a C parser and saves
+ more information needed for C# bindings</li>
+</ul>
+
+<h3>2.4.28: Nov 22 2002</h3>
+<ul>
+ <li>a couple of python binding fixes</li>
+ <li>2 bug fixes in the XML push parser</li>
+ <li>potential memory leak removed (Martin Stoilov)</li>
+ <li>fix to the configure script for Unix (Dimitri Papadopoulos)</li>
+ <li>added encoding support for XInclude parse="text"</li>
+ <li>autodetection of XHTML1 and specific serialization rules added</li>
+ <li>nasty threading bug fixed (William Brack)</li>
+</ul>
+
+<h3>2.4.27: Nov 17 2002</h3>
+<ul>
+ <li>fixes for the Python bindings</li>
+ <li>a number of bug fixes: SGML catalogs, xmlParseBalancedChunkMemory(),
+ HTML parser, Schemas (Charles Bozeman), document fragment support
+ (Christian Glahn), xmlReconciliateNs (Brian Stafford), XPointer,
+ xmlFreeNode(), xmlSAXParseMemory (Peter Jones), xmlGetNodePath (Petr
+ Pajas), entities processing</li>
+ <li>added grep to xmllint --shell</li>
+ <li>VMS update patch from Craig A. Berry</li>
+ <li>cleanup of the Windows build with support for more compilers (Igor),
+ better thread support on Windows</li>
+ <li>cleanup of Unix Makefiles and spec file</li>
+ <li>Improvements to the documentation (John Fleck)</li>
+</ul>
+
+<h3>2.4.26: Oct 18 2002</h3>
+<ul>
+ <li>Patches for Windows CE port, improvements on Windows paths handling</li>
+ <li>Fixes to the validation code (DTD and Schemas), xmlNodeGetPath() ,
+ HTML serialization, Namespace compliance, and a number of small
+ problems</li>
+</ul>
+
+<h3>2.4.25: Sep 26 2002</h3>
+<ul>
+ <li>A number of bug fixes: XPath, validation, Python bindings, DOM and
+ tree, xmlI/O, Html</li>
+ <li>Serious rewrite of XInclude</li>
+ <li>Made XML Schemas regexp part of the default build and APIs, small fix
+ and improvement of the regexp core</li>
+ <li>Changed the validation code to reuse XML Schemas regexp APIs</li>
+ <li>Better handling of Windows file paths, improvement of Makefiles (Igor,
+ Daniel Gehriger, Mark Vakoc)</li>
+ <li>Improved the python I/O bindings, the tests, added resolver and regexp
+ APIs</li>
+ <li>New logos from Marc Liyanage</li>
+ <li>Tutorial improvements: John Fleck, Christopher Harris</li>
+ <li>Makefile: Fixes for AMD x86_64 (Mandrake), DESTDIR (Christophe
+ Merlet)</li>
+ <li>removal of all stderr/perror use for error reporting</li>
+ <li>Better error reporting: XPath and DTD validation</li>
+ <li>update of the trio portability layer (Bjorn Reese)</li>
+</ul>
+
+<p><strong>2.4.24: Aug 22 2002</strong></p>
+<ul>
+ <li>XPath fixes (William), xf:escape-uri() (Wesley Terpstra)</li>
+ <li>Python binding fixes: makefiles (William), generator, rpm build, x86-64
+ (fcrozat)</li>
+ <li>HTML &lt;style&gt; and boolean attributes serializer fixes</li>
+ <li>C14N improvements by Aleksey</li>
+ <li>doc cleanups: Rick Jones</li>
+ <li>Windows compiler makefile updates: Igor and Elizabeth Barham</li>
+ <li>XInclude: implementation of fallback and xml:base fixup added</li>
+</ul>
+
+<h3>2.4.23: July 6 2002</h3>
+<ul>
+ <li>performances patches: Peter Jacobi</li>
+ <li>c14n fixes, testsuite and performances: Aleksey Sanin</li>
+ <li>added xmlDocFormatDump: Chema Celorio</li>
+ <li>new tutorial: John Fleck</li>
+ <li>new hash functions and performances: Sander Vesik, portability fix from
+ Peter Jacobi</li>
+ <li>a number of bug fixes: XPath (William Brack, Richard Jinks), XML and
+ HTML parsers, ID lookup function</li>
+ <li>removal of all remaining sprintf: Aleksey Sanin</li>
+</ul>
+
+<h3>2.4.22: May 27 2002</h3>
+<ul>
+ <li>a number of bug fixes: configure scripts, base handling, parser, memory
+ usage, HTML parser, XPath, documentation (Christian Cornelssen),
+ indentation, URI parsing</li>
+ <li>Optimizations for XMLSec, fixing and making public some of the network
+ protocol handlers (Aleksey)</li>
+ <li>performance patch from Gary Pennington</li>
+ <li>Charles Bozeman provided date and time support for XML Schemas
+ datatypes</li>
+</ul>
+
+<h3>2.4.21: Apr 29 2002</h3>
+
+<p>This release is both a bug fix release and also contains the early XML
+Schemas <a href="http://www.w3.org/TR/xmlschema-1/">structures</a> and <a
+href="http://www.w3.org/TR/xmlschema-2/">datatypes</a> code, beware, all
+interfaces are likely to change, there is huge holes, it is clearly a work in
+progress and don't even think of putting this code in a production system,
+it's actually not compiled in by default. The real fixes are:
+</p>
+
+<ul>
+ <li>a couple of bugs or limitations introduced in 2.4.20</li>
+ <li>patches for Borland C++ and MSC by Igor</li>
+ <li>some fixes on XPath strings and conformance patches by Richard
+ Jinks</li>
+ <li>patch from Aleksey for the ExcC14N specification</li>
+ <li>OSF/1 bug fix by Bjorn</li>
+</ul>
+
+<h3>2.4.20: Apr 15 2002</h3>
+<ul>
+ <li>bug fixes: file descriptor leak, XPath, HTML output, DTD validation</li>
+ <li>XPath conformance testing by Richard Jinks</li>
+ <li>Portability fixes: Solaris, MPE/iX, Windows, OSF/1, python bindings,
+ libxml.m4</li>
+</ul>
+
+<h3>2.4.19: Mar 25 2002</h3>
+<ul>
+ <li>bug fixes: half a dozen XPath bugs, Validation, ISO-Latin to UTF8
+ encoder</li>
+ <li>portability fixes in the HTTP code</li>
+ <li>memory allocation checks using valgrind, and profiling tests</li>
+ <li>revamp of the Windows build and Makefiles</li>
+</ul>
+
+<h3>2.4.18: Mar 18 2002</h3>
+<ul>
+ <li>bug fixes: tree, SAX, canonicalization, validation, portability,
+ XPath</li>
+ <li>removed the --with-buffer option it was becoming unmaintainable</li>
+ <li>serious cleanup of the Python makefiles</li>
+ <li>speedup patch to XPath very effective for DocBook stylesheets</li>
+ <li>Fixes for Windows build, cleanup of the documentation</li>
+</ul>
+
+<h3>2.4.17: Mar 8 2002</h3>
+<ul>
+ <li>a lot of bug fixes, including "namespace nodes have no parents in
+ XPath"</li>
+ <li>fixed/improved the Python wrappers, added more examples and more
+ regression tests, XPath extension functions can now return node-sets</li>
+ <li>added the XML Canonicalization support from Aleksey Sanin</li>
+</ul>
+
+<h3>2.4.16: Feb 20 2002</h3>
+<ul>
+ <li>a lot of bug fixes, most of them were triggered by the XML Testsuite
+ from OASIS and W3C. Compliance has been significantly improved.</li>
+ <li>a couple of portability fixes too.</li>
+</ul>
+
+<h3>2.4.15: Feb 11 2002</h3>
+<ul>
+ <li>Fixed the Makefiles, especially the python module ones</li>
+ <li>A few bug fixes and cleanup</li>
+ <li>Includes cleanup</li>
+</ul>
+
+<h3>2.4.14: Feb 8 2002</h3>
+<ul>
+ <li>Change of License to the <a
+ href="http://www.opensource.org/licenses/mit-license.html">MIT
+ License</a> basically for integration in XFree86 codebase, and removing
+ confusion around the previous dual-licensing</li>
+ <li>added Python bindings, beta software but should already be quite
+ complete</li>
+ <li>a large number of fixes and cleanups, especially for all tree
+ manipulations</li>
+ <li>cleanup of the headers, generation of a reference API definition in
+ XML</li>
+</ul>
+
+<h3>2.4.13: Jan 14 2002</h3>
+<ul>
+ <li>update of the documentation: John Fleck and Charlie Bozeman</li>
+ <li>cleanup of timing code from Justin Fletcher</li>
+ <li>fixes for Windows and initial thread support on Win32: Igor and Serguei
+ Narojnyi</li>
+ <li>Cygwin patch from Robert Collins</li>
+ <li>added xmlSetEntityReferenceFunc() for Keith Isdale work on xsldbg</li>
+</ul>
+
+<h3>2.4.12: Dec 7 2001</h3>
+<ul>
+ <li>a few bug fixes: thread (Gary Pennington), xmllint (Geert Kloosterman),
+ XML parser (Robin Berjon), XPointer (Danny Jamshy), I/O cleanups
+ (robert)</li>
+ <li>Eric Lavigne contributed project files for MacOS</li>
+ <li>some makefiles cleanups</li>
+</ul>
+
+<h3>2.4.11: Nov 26 2001</h3>
+<ul>
+ <li>fixed a couple of errors in the includes, fixed a few bugs, some code
+ cleanups</li>
+ <li>xmllint man pages improvement by Heiko Rupp</li>
+ <li>updated VMS build instructions from John A Fotheringham</li>
+ <li>Windows Makefiles updates from Igor</li>
+</ul>
+
+<h3>2.4.10: Nov 10 2001</h3>
+<ul>
+ <li>URI escaping fix (Joel Young)</li>
+ <li>added xmlGetNodePath() (for paths or XPointers generation)</li>
+ <li>Fixes namespace handling problems when using DTD and validation</li>
+ <li>improvements on xmllint: Morus Walter patches for --format and
+ --encode, Stefan Kost and Heiko Rupp improvements on the --shell</li>
+ <li>fixes for xmlcatalog linking pointed by Weiqi Gao</li>
+ <li>fixes to the HTML parser</li>
+</ul>
+
+<h3>2.4.9: Nov 6 2001</h3>
+<ul>
+ <li>fixes more catalog bugs</li>
+ <li>avoid a compilation problem, improve xmlGetLineNo()</li>
+</ul>
+
+<h3>2.4.8: Nov 4 2001</h3>
+<ul>
+ <li>fixed SGML catalogs broken in previous release, updated xmlcatalog
+ tool</li>
+ <li>fixed a compile errors and some includes troubles.</li>
+</ul>
+
+<h3>2.4.7: Oct 30 2001</h3>
+<ul>
+ <li>exported some debugging interfaces</li>
+ <li>serious rewrite of the catalog code</li>
+ <li>integrated Gary Pennington thread safety patch, added configure option
+ and regression tests</li>
+ <li>removed an HTML parser bug</li>
+ <li>fixed a couple of potentially serious validation bugs</li>
+ <li>integrated the SGML DocBook support in xmllint</li>
+ <li>changed the nanoftp anonymous login passwd</li>
+ <li>some I/O cleanup and a couple of interfaces for Perl wrapper</li>
+ <li>general bug fixes</li>
+ <li>updated xmllint man page by John Fleck</li>
+ <li>some VMS and Windows updates</li>
+</ul>
+
+<h3>2.4.6: Oct 10 2001</h3>
+<ul>
+ <li>added an updated man pages by John Fleck</li>
+ <li>portability and configure fixes</li>
+ <li>an infinite loop on the HTML parser was removed (William)</li>
+ <li>Windows makefile patches from Igor</li>
+ <li>fixed half a dozen bugs reported for libxml or libxslt</li>
+ <li>updated xmlcatalog to be able to modify SGML super catalogs</li>
+</ul>
+
+<h3>2.4.5: Sep 14 2001</h3>
+<ul>
+ <li>Remove a few annoying bugs in 2.4.4</li>
+ <li>forces the HTML serializer to output decimal charrefs since some
+ version of Netscape can't handle hexadecimal ones</li>
+</ul>
+
+<h3>1.8.16: Sep 14 2001</h3>
+<ul>
+ <li>maintenance release of the old libxml1 branch, couple of bug and
+ portability fixes</li>
+</ul>
+
+<h3>2.4.4: Sep 12 2001</h3>
+<ul>
+ <li>added --convert to xmlcatalog, bug fixes and cleanups of XML
+ Catalog</li>
+ <li>a few bug fixes and some portability changes</li>
+ <li>some documentation cleanups</li>
+</ul>
+
+<h3>2.4.3: Aug 23 2001</h3>
+<ul>
+ <li>XML Catalog support see the doc</li>
+ <li>New NaN/Infinity floating point code</li>
+ <li>A few bug fixes</li>
+</ul>
+
+<h3>2.4.2: Aug 15 2001</h3>
+<ul>
+ <li>adds xmlLineNumbersDefault() to control line number generation</li>
+ <li>lot of bug fixes</li>
+ <li>the Microsoft MSC projects files should now be up to date</li>
+ <li>inheritance of namespaces from DTD defaulted attributes</li>
+ <li>fixes a serious potential security bug</li>
+ <li>added a --format option to xmllint</li>
+</ul>
+
+<h3>2.4.1: July 24 2001</h3>
+<ul>
+ <li>possibility to keep line numbers in the tree</li>
+ <li>some computation NaN fixes</li>
+ <li>extension of the XPath API</li>
+ <li>cleanup for alpha and ia64 targets</li>
+ <li>patch to allow saving through HTTP PUT or POST</li>
+</ul>
+
+<h3>2.4.0: July 10 2001</h3>
+<ul>
+ <li>Fixed a few bugs in XPath, validation, and tree handling.</li>
+ <li>Fixed XML Base implementation, added a couple of examples to the
+ regression tests</li>
+ <li>A bit of cleanup</li>
+</ul>
+
+<h3>2.3.14: July 5 2001</h3>
+<ul>
+ <li>fixed some entities problems and reduce memory requirement when
+ substituting them</li>
+ <li>lots of improvements in the XPath queries interpreter can be
+ substantially faster</li>
+ <li>Makefiles and configure cleanups</li>
+ <li>Fixes to XPath variable eval, and compare on empty node set</li>
+ <li>HTML tag closing bug fixed</li>
+ <li>Fixed an URI reference computation problem when validating</li>
+</ul>
+
+<h3>2.3.13: June 28 2001</h3>
+<ul>
+ <li>2.3.12 configure.in was broken as well as the push mode XML parser</li>
+ <li>a few more fixes for compilation on Windows MSC by Yon Derek</li>
+</ul>
+
+<h3>1.8.14: June 28 2001</h3>
+<ul>
+ <li>Zbigniew Chyla gave a patch to use the old XML parser in push mode</li>
+ <li>Small Makefile fix</li>
+</ul>
+
+<h3>2.3.12: June 26 2001</h3>
+<ul>
+ <li>lots of cleanup</li>
+ <li>a couple of validation fix</li>
+ <li>fixed line number counting</li>
+ <li>fixed serious problems in the XInclude processing</li>
+ <li>added support for UTF8 BOM at beginning of entities</li>
+ <li>fixed a strange gcc optimizer bugs in xpath handling of float, gcc-3.0
+ miscompile uri.c (William), Thomas Leitner provided a fix for the
+ optimizer on Tru64</li>
+ <li>incorporated Yon Derek and Igor Zlatkovic fixes and improvements for
+ compilation on Windows MSC</li>
+ <li>update of libxml-doc.el (Felix Natter)</li>
+ <li>fixed 2 bugs in URI normalization code</li>
+</ul>
+
+<h3>2.3.11: June 17 2001</h3>
+<ul>
+ <li>updates to trio, Makefiles and configure should fix some portability
+ problems (alpha)</li>
+ <li>fixed some HTML serialization problems (pre, script, and block/inline
+ handling), added encoding aware APIs, cleanup of this code</li>
+ <li>added xmlHasNsProp()</li>
+ <li>implemented a specific PI for encoding support in the DocBook SGML
+ parser</li>
+ <li>some XPath fixes (-Infinity, / as a function parameter and namespaces
+ node selection)</li>
+ <li>fixed a performance problem and an error in the validation code</li>
+ <li>fixed XInclude routine to implement the recursive behaviour</li>
+ <li>fixed xmlFreeNode problem when libxml is included statically twice</li>
+ <li>added --version to xmllint for bug reports</li>
+</ul>
+
+<h3>2.3.10: June 1 2001</h3>
+<ul>
+ <li>fixed the SGML catalog support</li>
+ <li>a number of reported bugs got fixed, in XPath, iconv detection,
+ XInclude processing</li>
+ <li>XPath string function should now handle unicode correctly</li>
+</ul>
+
+<h3>2.3.9: May 19 2001</h3>
+
+<p>Lots of bugfixes, and added a basic SGML catalog support:
+</p>
+<ul>
+ <li>HTML push bugfix #54891 and another patch from Jonas Borgstrom</li>
+ <li>some serious speed optimization again</li>
+ <li>some documentation cleanups</li>
+ <li>trying to get better linking on Solaris (-R)</li>
+ <li>XPath API cleanup from Thomas Broyer</li>
+ <li>Validation bug fixed #54631, added a patch from Gary Pennington, fixed
+ xmlValidGetValidElements()</li>
+ <li>Added an INSTALL file</li>
+ <li>Attribute removal added to API: #54433</li>
+ <li>added a basic support for SGML catalogs</li>
+ <li>fixed xmlKeepBlanksDefault(0) API</li>
+ <li>bugfix in xmlNodeGetLang()</li>
+ <li>fixed a small configure portability problem</li>
+ <li>fixed an inversion of SYSTEM and PUBLIC identifier in HTML document</li>
+</ul>
+
+<h3>1.8.13: May 14 2001</h3>
+<ul>
+ <li>bugfixes release of the old libxml1 branch used by Gnome</li>
+</ul>
+
+<h3>2.3.8: May 3 2001</h3>
+<ul>
+ <li>Integrated an SGML DocBook parser for the Gnome project</li>
+ <li>Fixed a few things in the HTML parser</li>
+ <li>Fixed some XPath bugs raised by XSLT use, tried to fix the floating
+ point portability issue</li>
+ <li>Speed improvement (8M/s for SAX, 3M/s for DOM, 1.5M/s for
+ DOM+validation using the XML REC as input and a 700MHz celeron).</li>
+ <li>incorporated more Windows cleanup</li>
+ <li>added xmlSaveFormatFile()</li>
+ <li>fixed problems in copying nodes with entities references (gdome)</li>
+ <li>removed some troubles surrounding the new validation module</li>
+</ul>
+
+<h3>2.3.7: April 22 2001</h3>
+<ul>
+ <li>lots of small bug fixes, corrected XPointer</li>
+ <li>Non deterministic content model validation support</li>
+ <li>added xmlDocCopyNode for gdome2</li>
+ <li>revamped the way the HTML parser handles end of tags</li>
+ <li>XPath: corrections of namespaces support and number formatting</li>
+ <li>Windows: Igor Zlatkovic patches for MSC compilation</li>
+ <li>HTML output fixes from P C Chow and William M. Brack</li>
+ <li>Improved validation speed sensible for DocBook</li>
+ <li>fixed a big bug with ID declared in external parsed entities</li>
+ <li>portability fixes, update of Trio from Bjorn Reese</li>
+</ul>
+
+<h3>2.3.6: April 8 2001</h3>
+<ul>
+ <li>Code cleanup using extreme gcc compiler warning options, found and
+ cleared half a dozen potential problem</li>
+ <li>the Eazel team found an XML parser bug</li>
+ <li>cleaned up the user of some of the string formatting function. used the
+ trio library code to provide the one needed when the platform is missing
+ them</li>
+ <li>xpath: removed a memory leak and fixed the predicate evaluation
+ problem, extended the testsuite and cleaned up the result. XPointer seems
+ broken ...</li>
+</ul>
+
+<h3>2.3.5: Mar 23 2001</h3>
+<ul>
+ <li>Biggest change is separate parsing and evaluation of XPath expressions,
+ there is some new APIs for this too</li>
+ <li>included a number of bug fixes(XML push parser, 51876, notations,
+ 52299)</li>
+ <li>Fixed some portability issues</li>
+</ul>
+
+<h3>2.3.4: Mar 10 2001</h3>
+<ul>
+ <li>Fixed bugs #51860 and #51861</li>
+ <li>Added a global variable xmlDefaultBufferSize to allow default buffer
+ size to be application tunable.</li>
+ <li>Some cleanup in the validation code, still a bug left and this part
+ should probably be rewritten to support ambiguous content model :-\</li>
+ <li>Fix a couple of serious bugs introduced or raised by changes in 2.3.3
+ parser</li>
+ <li>Fixed another bug in xmlNodeGetContent()</li>
+ <li>Bjorn fixed XPath node collection and Number formatting</li>
+ <li>Fixed a loop reported in the HTML parsing</li>
+ <li>blank space are reported even if the Dtd content model proves that they
+ are formatting spaces, this is for XML conformance</li>
+</ul>
+
+<h3>2.3.3: Mar 1 2001</h3>
+<ul>
+ <li>small change in XPath for XSLT</li>
+ <li>documentation cleanups</li>
+ <li>fix in validation by Gary Pennington</li>
+ <li>serious parsing performances improvements</li>
+</ul>
+
+<h3>2.3.2: Feb 24 2001</h3>
+<ul>
+ <li>chasing XPath bugs, found a bunch, completed some TODO</li>
+ <li>fixed a Dtd parsing bug</li>
+ <li>fixed a bug in xmlNodeGetContent</li>
+ <li>ID/IDREF support partly rewritten by Gary Pennington</li>
+</ul>
+
+<h3>2.3.1: Feb 15 2001</h3>
+<ul>
+ <li>some XPath and HTML bug fixes for XSLT</li>
+ <li>small extension of the hash table interfaces for DOM gdome2
+ implementation</li>
+ <li>A few bug fixes</li>
+</ul>
+
+<h3>2.3.0: Feb 8 2001 (2.2.12 was on 25 Jan but I didn't kept track)</h3>
+<ul>
+ <li>Lots of XPath bug fixes</li>
+ <li>Add a mode with Dtd lookup but without validation error reporting for
+ XSLT</li>
+ <li>Add support for text node without escaping (XSLT)</li>
+ <li>bug fixes for xmlCheckFilename</li>
+ <li>validation code bug fixes from Gary Pennington</li>
+ <li>Patch from Paul D. Smith correcting URI path normalization</li>
+ <li>Patch to allow simultaneous install of libxml-devel and
+ libxml2-devel</li>
+ <li>the example Makefile is now fixed</li>
+ <li>added HTML to the RPM packages</li>
+ <li>tree copying bugfixes</li>
+ <li>updates to Windows makefiles</li>
+ <li>optimization patch from Bjorn Reese</li>
+</ul>
+
+<h3>2.2.11: Jan 4 2001</h3>
+<ul>
+ <li>bunch of bug fixes (memory I/O, xpath, ftp/http, ...)</li>
+ <li>added htmlHandleOmittedElem()</li>
+ <li>Applied Bjorn Reese's IPV6 first patch</li>
+ <li>Applied Paul D. Smith patches for validation of XInclude results</li>
+ <li>added XPointer xmlns() new scheme support</li>
+</ul>
+
+<h3>2.2.10: Nov 25 2000</h3>
+<ul>
+ <li>Fix the Windows problems of 2.2.8</li>
+ <li>integrate OpenVMS patches</li>
+ <li>better handling of some nasty HTML input</li>
+ <li>Improved the XPointer implementation</li>
+ <li>integrate a number of provided patches</li>
+</ul>
+
+<h3>2.2.9: Nov 25 2000</h3>
+<ul>
+ <li>erroneous release :-(</li>
+</ul>
+
+<h3>2.2.8: Nov 13 2000</h3>
+<ul>
+ <li>First version of <a href="http://www.w3.org/TR/xinclude">XInclude</a>
+ support</li>
+ <li>Patch in conditional section handling</li>
+ <li>updated MS compiler project</li>
+ <li>fixed some XPath problems</li>
+ <li>added an URI escaping function</li>
+ <li>some other bug fixes</li>
+</ul>
+
+<h3>2.2.7: Oct 31 2000</h3>
+<ul>
+ <li>added message redirection</li>
+ <li>XPath improvements (thanks TOM !)</li>
+ <li>xmlIOParseDTD() added</li>
+ <li>various small fixes in the HTML, URI, HTTP and XPointer support</li>
+ <li>some cleanup of the Makefile, autoconf and the distribution content</li>
+</ul>
+
+<h3>2.2.6: Oct 25 2000:</h3>
+<ul>
+ <li>Added an hash table module, migrated a number of internal structure to
+ those</li>
+ <li>Fixed a posteriori validation problems</li>
+ <li>HTTP module cleanups</li>
+ <li>HTML parser improvements (tag errors, script/style handling, attribute
+ normalization)</li>
+ <li>coalescing of adjacent text nodes</li>
+ <li>couple of XPath bug fixes, exported the internal API</li>
+</ul>
+
+<h3>2.2.5: Oct 15 2000:</h3>
+<ul>
+ <li>XPointer implementation and testsuite</li>
+ <li>Lot of XPath fixes, added variable and functions registration, more
+ tests</li>
+ <li>Portability fixes, lots of enhancements toward an easy Windows build
+ and release</li>
+ <li>Late validation fixes</li>
+ <li>Integrated a lot of contributed patches</li>
+ <li>added memory management docs</li>
+ <li>a performance problem when using large buffer seems fixed</li>
+</ul>
+
+<h3>2.2.4: Oct 1 2000:</h3>
+<ul>
+ <li>main XPath problem fixed</li>
+ <li>Integrated portability patches for Windows</li>
+ <li>Serious bug fixes on the URI and HTML code</li>
+</ul>
+
+<h3>2.2.3: Sep 17 2000</h3>
+<ul>
+ <li>bug fixes</li>
+ <li>cleanup of entity handling code</li>
+ <li>overall review of all loops in the parsers, all sprintf usage has been
+ checked too</li>
+ <li>Far better handling of larges Dtd. Validating against DocBook XML Dtd
+ works smoothly now.</li>
+</ul>
+
+<h3>1.8.10: Sep 6 2000</h3>
+<ul>
+ <li>bug fix release for some Gnome projects</li>
+</ul>
+
+<h3>2.2.2: August 12 2000</h3>
+<ul>
+ <li>mostly bug fixes</li>
+ <li>started adding routines to access xml parser context options</li>
+</ul>
+
+<h3>2.2.1: July 21 2000</h3>
+<ul>
+ <li>a purely bug fixes release</li>
+ <li>fixed an encoding support problem when parsing from a memory block</li>
+ <li>fixed a DOCTYPE parsing problem</li>
+ <li>removed a bug in the function allowing to override the memory
+ allocation routines</li>
+</ul>
+
+<h3>2.2.0: July 14 2000</h3>
+<ul>
+ <li>applied a lot of portability fixes</li>
+ <li>better encoding support/cleanup and saving (content is now always
+ encoded in UTF-8)</li>
+ <li>the HTML parser now correctly handles encodings</li>
+ <li>added xmlHasProp()</li>
+ <li>fixed a serious problem with &amp;#38;</li>
+ <li>propagated the fix to FTP client</li>
+ <li>cleanup, bugfixes, etc ...</li>
+ <li>Added a page about <a href="encoding.html">libxml Internationalization
+ support</a></li>
+</ul>
+
+<h3>1.8.9: July 9 2000</h3>
+<ul>
+ <li>fixed the spec the RPMs should be better</li>
+ <li>fixed a serious bug in the FTP implementation, released 1.8.9 to solve
+ rpmfind users problem</li>
+</ul>
+
+<h3>2.1.1: July 1 2000</h3>
+<ul>
+ <li>fixes a couple of bugs in the 2.1.0 packaging</li>
+ <li>improvements on the HTML parser</li>
+</ul>
+
+<h3>2.1.0 and 1.8.8: June 29 2000</h3>
+<ul>
+ <li>1.8.8 is mostly a commodity package for upgrading to libxml2 according
+ to <a href="upgrade.html">new instructions</a>. It fixes a nasty problem
+ about &amp;#38; charref parsing</li>
+ <li>2.1.0 also ease the upgrade from libxml v1 to the recent version. it
+ also contains numerous fixes and enhancements:
+ <ul>
+ <li>added xmlStopParser() to stop parsing</li>
+ <li>improved a lot parsing speed when there is large CDATA blocs</li>
+ <li>includes XPath patches provided by Picdar Technology</li>
+ <li>tried to fix as much as possible DTD validation and namespace
+ related problems</li>
+ <li>output to a given encoding has been added/tested</li>
+ <li>lot of various fixes</li>
+ </ul>
+ </li>
+</ul>
+
+<h3>2.0.0: Apr 12 2000</h3>
+<ul>
+ <li>First public release of libxml2. If you are using libxml, it's a good
+ idea to check the 1.x to 2.x upgrade instructions. NOTE: while initially
+ scheduled for Apr 3 the release occurred only on Apr 12 due to massive
+ workload.</li>
+ <li>The include are now located under $prefix/include/libxml (instead of
+ $prefix/include/gnome-xml), they also are referenced by
+ <pre>#include &lt;libxml/xxx.h&gt;</pre>
+ <p>instead of</p>
+ <pre>#include "xxx.h"</pre>
+ </li>
+ <li>a new URI module for parsing URIs and following strictly RFC 2396</li>
+ <li>the memory allocation routines used by libxml can now be overloaded
+ dynamically by using xmlMemSetup()</li>
+ <li>The previously CVS only tool tester has been renamed
+ <strong>xmllint</strong> and is now installed as part of the libxml2
+ package</li>
+ <li>The I/O interface has been revamped. There is now ways to plug in
+ specific I/O modules, either at the URI scheme detection level using
+ xmlRegisterInputCallbacks() or by passing I/O functions when creating a
+ parser context using xmlCreateIOParserCtxt()</li>
+ <li>there is a C preprocessor macro LIBXML_VERSION providing the version
+ number of the libxml module in use</li>
+ <li>a number of optional features of libxml can now be excluded at
+ configure time (FTP/HTTP/HTML/XPath/Debug)</li>
+</ul>
+
+<h3>2.0.0beta: Mar 14 2000</h3>
+<ul>
+ <li>This is a first Beta release of libxml version 2</li>
+ <li>It's available only from<a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org
+ FTP</a>, it's packaged as libxml2-2.0.0beta and available as tar and
+ RPMs</li>
+ <li>This version is now the head in the Gnome CVS base, the old one is
+ available under the tag LIB_XML_1_X</li>
+ <li>This includes a very large set of changes. From a programmatic point
+ of view applications should not have to be modified too much, check the
+ <a href="upgrade.html">upgrade page</a></li>
+ <li>Some interfaces may changes (especially a bit about encoding).</li>
+ <li>the updates includes:
+ <ul>
+ <li>fix I18N support. ISO-Latin-x/UTF-8/UTF-16 (nearly) seems correctly
+ handled now</li>
+ <li>Better handling of entities, especially well-formedness checking
+ and proper PEref extensions in external subsets</li>
+ <li>DTD conditional sections</li>
+ <li>Validation now correctly handle entities content</li>
+ <li><a href="http://rpmfind.net/tools/gdome/messages/0039.html">change
+ structures to accommodate DOM</a></li>
+ </ul>
+ </li>
+ <li>Serious progress were made toward compliance, <a
+ href="conf/result.html">here are the result of the test</a> against the
+ OASIS testsuite (except the Japanese tests since I don't support that
+ encoding yet). This URL is rebuilt every couple of hours using the CVS
+ head version.</li>
+</ul>
+
+<h3>1.8.7: Mar 6 2000</h3>
+<ul>
+ <li>This is a bug fix release:</li>
+ <li>It is possible to disable the ignorable blanks heuristic used by
+ libxml-1.x, a new function xmlKeepBlanksDefault(0) will allow this. Note
+ that for adherence to XML spec, this behaviour will be disabled by
+ default in 2.x . The same function will allow to keep compatibility for
+ old code.</li>
+ <li>Blanks in &lt;a&gt; &lt;/a&gt; constructs are not ignored anymore,
+ avoiding heuristic is really the Right Way :-\</li>
+ <li>The unchecked use of snprintf which was breaking libxml-1.8.6
+ compilation on some platforms has been fixed</li>
+ <li>nanoftp.c nanohttp.c: Fixed '#' and '?' stripping when processing
+ URIs</li>
+</ul>
+
+<h3>1.8.6: Jan 31 2000</h3>
+<ul>
+ <li>added a nanoFTP transport module, debugged until the new version of <a
+ href="http://rpmfind.net/linux/rpm2html/rpmfind.html">rpmfind</a> can use
+ it without troubles</li>
+</ul>
+
+<h3>1.8.5: Jan 21 2000</h3>
+<ul>
+ <li>adding APIs to parse a well balanced chunk of XML (production <a
+ href="http://www.w3.org/TR/REC-xml#NT-content">[43] content</a> of the
+ XML spec)</li>
+ <li>fixed a hideous bug in xmlGetProp pointed by Rune.Djurhuus@fast.no</li>
+ <li>Jody Goldberg &lt;jgoldberg@home.com&gt; provided another patch trying
+ to solve the zlib checks problems</li>
+ <li>The current state in gnome CVS base is expected to ship as 1.8.5 with
+ gnumeric soon</li>
+</ul>
+
+<h3>1.8.4: Jan 13 2000</h3>
+<ul>
+ <li>bug fixes, reintroduced xmlNewGlobalNs(), fixed xmlNewNs()</li>
+ <li>all exit() call should have been removed from libxml</li>
+ <li>fixed a problem with INCLUDE_WINSOCK on WIN32 platform</li>
+ <li>added newDocFragment()</li>
+</ul>
+
+<h3>1.8.3: Jan 5 2000</h3>
+<ul>
+ <li>a Push interface for the XML and HTML parsers</li>
+ <li>a shell-like interface to the document tree (try tester --shell :-)</li>
+ <li>lots of bug fixes and improvement added over XMas holidays</li>
+ <li>fixed the DTD parsing code to work with the xhtml DTD</li>
+ <li>added xmlRemoveProp(), xmlRemoveID() and xmlRemoveRef()</li>
+ <li>Fixed bugs in xmlNewNs()</li>
+ <li>External entity loading code has been revamped, now it uses
+ xmlLoadExternalEntity(), some fix on entities processing were added</li>
+ <li>cleaned up WIN32 includes of socket stuff</li>
+</ul>
+
+<h3>1.8.2: Dec 21 1999</h3>
+<ul>
+ <li>I got another problem with includes and C++, I hope this issue is fixed
+ for good this time</li>
+ <li>Added a few tree modification functions: xmlReplaceNode,
+ xmlAddPrevSibling, xmlAddNextSibling, xmlNodeSetName and
+ xmlDocSetRootElement</li>
+ <li>Tried to improve the HTML output with help from <a
+ href="mailto:clahey@umich.edu">Chris Lahey</a></li>
+</ul>
+
+<h3>1.8.1: Dec 18 1999</h3>
+<ul>
+ <li>various patches to avoid troubles when using libxml with C++ compilers
+ the "namespace" keyword and C escaping in include files</li>
+ <li>a problem in one of the core macros IS_CHAR was corrected</li>
+ <li>fixed a bug introduced in 1.8.0 breaking default namespace processing,
+ and more specifically the Dia application</li>
+ <li>fixed a posteriori validation (validation after parsing, or by using a
+ Dtd not specified in the original document)</li>
+ <li>fixed a bug in</li>
+</ul>
+
+<h3>1.8.0: Dec 12 1999</h3>
+<ul>
+ <li>cleanup, especially memory wise</li>
+ <li>the parser should be more reliable, especially the HTML one, it should
+ not crash, whatever the input !</li>
+ <li>Integrated various patches, especially a speedup improvement for large
+ dataset from <a href="mailto:cnygard@bellatlantic.net">Carl Nygard</a>,
+ configure with --with-buffers to enable them.</li>
+ <li>attribute normalization, oops should have been added long ago !</li>
+ <li>attributes defaulted from DTDs should be available, xmlSetProp() now
+ does entities escaping by default.</li>
+</ul>
+
+<h3>1.7.4: Oct 25 1999</h3>
+<ul>
+ <li>Lots of HTML improvement</li>
+ <li>Fixed some errors when saving both XML and HTML</li>
+ <li>More examples, the regression tests should now look clean</li>
+ <li>Fixed a bug with contiguous charref</li>
+</ul>
+
+<h3>1.7.3: Sep 29 1999</h3>
+<ul>
+ <li>portability problems fixed</li>
+ <li>snprintf was used unconditionally, leading to link problems on system
+ were it's not available, fixed</li>
+</ul>
+
+<h3>1.7.1: Sep 24 1999</h3>
+<ul>
+ <li>The basic type for strings manipulated by libxml has been renamed in
+ 1.7.1 from <strong>CHAR</strong> to <strong>xmlChar</strong>. The reason
+ is that CHAR was conflicting with a predefined type on Windows. However
+ on non WIN32 environment, compatibility is provided by the way of a
+ <strong>#define </strong>.</li>
+ <li>Changed another error : the use of a structure field called errno, and
+ leading to troubles on platforms where it's a macro</li>
+</ul>
+
+<h3>1.7.0: Sep 23 1999</h3>
+<ul>
+ <li>Added the ability to fetch remote DTD or parsed entities, see the <a
+ href="html/libxml-nanohttp.html">nanohttp</a> module.</li>
+ <li>Added an errno to report errors by another mean than a simple printf
+ like callback</li>
+ <li>Finished ID/IDREF support and checking when validation</li>
+ <li>Serious memory leaks fixed (there is now a <a
+ href="html/libxml-xmlmemory.html">memory wrapper</a> module)</li>
+ <li>Improvement of <a href="http://www.w3.org/TR/xpath">XPath</a>
+ implementation</li>
+ <li>Added an HTML parser front-end</li>
+</ul>
+
+<h2><a name="XML">XML</a></h2>
+
+<p><a href="http://www.w3.org/TR/REC-xml">XML is a standard</a> for
+markup-based structured documents. Here is <a name="example">an example XML
+document</a>:</p>
+<pre>&lt;?xml version="1.0"?&gt;
+&lt;EXAMPLE prop1="gnome is great" prop2="&amp;amp; linux too"&gt;
+ &lt;head&gt;
+ &lt;title&gt;Welcome to Gnome&lt;/title&gt;
+ &lt;/head&gt;
+ &lt;chapter&gt;
+ &lt;title&gt;The Linux adventure&lt;/title&gt;
+ &lt;p&gt;bla bla bla ...&lt;/p&gt;
+ &lt;image href="linus.gif"/&gt;
+ &lt;p&gt;...&lt;/p&gt;
+ &lt;/chapter&gt;
+&lt;/EXAMPLE&gt;</pre>
+
+<p>The first line specifies that it is an XML document and gives useful
+information about its encoding. Then the rest of the document is a text
+format whose structure is specified by tags between brackets. <strong>Each
+tag opened has to be closed</strong>. XML is pedantic about this. However, if
+a tag is empty (no content), a single tag can serve as both the opening and
+closing tag if it ends with <code>/&gt;</code> rather than with
+<code>&gt;</code>. Note that, for example, the image tag has no content (just
+an attribute) and is closed by ending the tag with <code>/&gt;</code>.</p>
+
+<p>XML can be applied successfully to a wide range of tasks, ranging from
+long term structured document maintenance (where it follows the steps of
+SGML) to simple data encoding mechanisms like configuration file formatting
+(glade), spreadsheets (gnumeric), or even shorter lived documents such as
+WebDAV where it is used to encode remote calls between a client and a
+server.</p>
+
+<h2><a name="XSLT">XSLT</a></h2>
+
+<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 a
+language for transforming XML documents into other XML documents (or
+HTML/textual output).</p>
+
+<p>A separate library called libxslt is available implementing XSLT-1.0 for
+libxml2. This module "libxslt" too can be found in the Gnome SVN base.</p>
+
+<p>You can check the progresses on the libxslt <a
+href="http://xmlsoft.org/XSLT/ChangeLog.html">Changelog</a>.</p>
+
+<h2><a name="Python">Python and bindings</a></h2>
+
+<p>There are a number of language bindings and wrappers available for
+libxml2, the list below is not exhaustive. Please contact the <a
+href="http://mail.gnome.org/mailman/listinfo/xml-bindings">xml-bindings@gnome.org</a>
+(<a href="http://mail.gnome.org/archives/xml-bindings/">archives</a>) in
+order to get updates to this list or to discuss the specific topic of libxml2
+or libxslt wrappers or bindings:</p>
+<ul>
+ <li><a href="http://libxmlplusplus.sourceforge.net/">Libxml++</a> seems the
+ most up-to-date C++ bindings for libxml2, check the <a
+ href="http://libxmlplusplus.sourceforge.net/reference/html/hierarchy.html">documentation</a>
+ and the <a
+ href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/libxmlplusplus/libxml%2b%2b/examples/">examples</a>.</li>
+ <li>There is another <a href="http://libgdome-cpp.berlios.de/">C++ wrapper
+ based on the gdome2 bindings</a> maintained by Tobias Peters.</li>
+ <li>and a third C++ wrapper by Peter Jones &lt;pjones@pmade.org&gt;
+ <p>Website: <a
+ href="http://pmade.org/pjones/software/xmlwrapp/">http://pmade.org/pjones/software/xmlwrapp/</a></p>
+ </li>
+ <li>XML::LibXML <a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl
+ bindings</a> are available on CPAN, as well as XML::LibXSLT
+ <a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl libxslt
+ bindings</a>.</li>
+ <li>If you're interested into scripting XML processing, have a look at <a
+ href="http://xsh.sourceforge.net/">XSH</a> an XML editing shell based on
+ Libxml2 Perl bindings.</li>
+ <li><a href="mailto:dkuhlman@cutter.rexx.com">Dave Kuhlman</a> provides an
+ earlier version of the libxml/libxslt <a
+ href="http://www.rexx.com/~dkuhlman">wrappers for Python</a>.</li>
+ <li>Gopal.V and Peter Minten develop <a
+ href="http://savannah.gnu.org/projects/libxmlsharp">libxml#</a>, a set of
+ C# libxml2 bindings.</li>
+ <li>Petr Kozelka provides <a
+ href="http://sourceforge.net/projects/libxml2-pas">Pascal units to glue
+ libxml2</a> with Kylix, Delphi and other Pascal compilers.</li>
+ <li>Uwe Fechner also provides <a
+ href="http://sourceforge.net/projects/idom2-pas/">idom2</a>, a DOM2
+ implementation for Kylix2/D5/D6 from Borland.</li>
+ <li>There is <a href="http://libxml.rubyforge.org/">bindings for Ruby</a>
+ and libxml2 bindings are also available in Ruby through the <a
+ href="http://libgdome-ruby.berlios.de/">libgdome-ruby</a> module
+ maintained by Tobias Peters.</li>
+ <li>Steve Ball and contributors maintains <a
+ href="http://tclxml.sourceforge.net/">libxml2 and libxslt bindings for
+ Tcl</a>.</li>
+ <li>libxml2 and libxslt are the default XML libraries for PHP5.</li>
+ <li><a href="http://savannah.gnu.org/projects/classpathx/">LibxmlJ</a> is
+ an effort to create a 100% JAXP-compatible Java wrapper for libxml2 and
+ libxslt as part of GNU ClasspathX project.</li>
+ <li>Patrick McPhee provides Rexx bindings fof libxml2 and libxslt, look for
+ <a href="http://www.interlog.com/~ptjm/software.html">RexxXML</a>.</li>
+ <li><a
+ href="http://www.satimage.fr/software/en/xml_suite.html">Satimage</a>
+ provides <a
+ href="http://www.satimage.fr/software/en/downloads_osaxen.html">XMLLib
+ osax</a>. This is an osax for Mac OS X with a set of commands to
+ implement in AppleScript the XML DOM, XPATH and XSLT. Also includes
+ commands for Property-lists (Apple's fast lookup table XML format.)</li>
+ <li>Francesco Montorsi developped <a
+ href="https://sourceforge.net/project/showfiles.php?group_id=51305&amp;package_id=45182">wxXml2</a>
+ wrappers that interface libxml2, allowing wxWidgets applications to
+ load/save/edit XML instances.</li>
+</ul>
+
+<p>The distribution includes a set of Python bindings, which are guaranteed
+to be maintained as part of the library in the future, though the Python
+interface have not yet reached the completeness of the C API.</p>
+
+<p>Note that some of the Python purist dislike the default set of Python
+bindings, rather than complaining I suggest they have a look at <a
+href="http://lxml.de/">lxml the more pythonic bindings for libxml2
+and libxslt</a> and <a
+href="http://lxml.de/mailinglist/">check the mailing-list</a>.</p>
+
+<p><a href="mailto:stephane.bidoul@softwareag.com">Stéphane Bidoul</a>
+maintains <a href="http://users.skynet.be/sbi/libxml-python/">a Windows port
+of the Python bindings</a>.</p>
+
+<p>Note to people interested in building bindings, the API is formalized as
+<a href="libxml2-api.xml">an XML API description file</a> which allows to
+automate a large part of the Python bindings, this includes function
+descriptions, enums, structures, typedefs, etc... The Python script used to
+build the bindings is python/generator.py in the source distribution.</p>
+
+<p>To install the Python bindings there are 2 options:</p>
+<ul>
+ <li>If you use an RPM based distribution, simply install the <a
+ href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2-python">libxml2-python
+ RPM</a> (and if needed the <a
+ href="http://rpmfind.net/linux/rpm2html/search.php?query=libxslt-python">libxslt-python
+ RPM</a>).</li>
+ <li>Otherwise use the <a href="ftp://xmlsoft.org/libxml2/python/">libxml2-python
+ module distribution</a> corresponding to your installed version of
+ libxml2 and libxslt. Note that to install it you will need both libxml2
+ and libxslt installed and run "python setup.py build install" in the
+ module tree.</li>
+</ul>
+
+<p>The distribution includes a set of examples and regression tests for the
+python bindings in the <code>python/tests</code> directory. Here are some
+excerpts from those tests:</p>
+
+<h3>tst.py:</h3>
+
+<p>This is a basic test of the file interface and DOM navigation:</p>
+<pre>import libxml2, sys
+
+doc = libxml2.parseFile("tst.xml")
+if doc.name != "tst.xml":
+ print "doc.name failed"
+ sys.exit(1)
+root = doc.children
+if root.name != "doc":
+ print "root.name failed"
+ sys.exit(1)
+child = root.children
+if child.name != "foo":
+ print "child.name failed"
+ sys.exit(1)
+doc.freeDoc()</pre>
+
+<p>The Python module is called libxml2; parseFile is the equivalent of
+xmlParseFile (most of the bindings are automatically generated, and the xml
+prefix is removed and the casing convention are kept). All node seen at the
+binding level share the same subset of accessors:</p>
+<ul>
+ <li><code>name</code> : returns the node name</li>
+ <li><code>type</code> : returns a string indicating the node type</li>
+ <li><code>content</code> : returns the content of the node, it is based on
+ xmlNodeGetContent() and hence is recursive.</li>
+ <li><code>parent</code> , <code>children</code>, <code>last</code>,
+ <code>next</code>, <code>prev</code>, <code>doc</code>,
+ <code>properties</code>: pointing to the associated element in the tree,
+ those may return None in case no such link exists.</li>
+</ul>
+
+<p>Also note the need to explicitly deallocate documents with freeDoc() .
+Reference counting for libxml2 trees would need quite a lot of work to
+function properly, and rather than risk memory leaks if not implemented
+correctly it sounds safer to have an explicit function to free a tree. The
+wrapper python objects like doc, root or child are them automatically garbage
+collected.</p>
+
+<h3>validate.py:</h3>
+
+<p>This test check the validation interfaces and redirection of error
+messages:</p>
+<pre>import libxml2
+
+#deactivate error messages from the validation
+def noerr(ctx, str):
+ pass
+
+libxml2.registerErrorHandler(noerr, None)
+
+ctxt = libxml2.createFileParserCtxt("invalid.xml")
+ctxt.validate(1)
+ctxt.parseDocument()
+doc = ctxt.doc()
+valid = ctxt.isValid()
+doc.freeDoc()
+if valid != 0:
+ print "validity check failed"</pre>
+
+<p>The first thing to notice is the call to registerErrorHandler(), it
+defines a new error handler global to the library. It is used to avoid seeing
+the error messages when trying to validate the invalid document.</p>
+
+<p>The main interest of that test is the creation of a parser context with
+createFileParserCtxt() and how the behaviour can be changed before calling
+parseDocument() . Similarly the information resulting from the parsing phase
+is also available using context methods.</p>
+
+<p>Contexts like nodes are defined as class and the libxml2 wrappers maps the
+C function interfaces in terms of objects method as much as possible. The
+best to get a complete view of what methods are supported is to look at the
+libxml2.py module containing all the wrappers.</p>
+
+<h3>push.py:</h3>
+
+<p>This test show how to activate the push parser interface:</p>
+<pre>import libxml2
+
+ctxt = libxml2.createPushParser(None, "&lt;foo", 4, "test.xml")
+ctxt.parseChunk("/&gt;", 2, 1)
+doc = ctxt.doc()
+
+doc.freeDoc()</pre>
+
+<p>The context is created with a special call based on the
+xmlCreatePushParser() from the C library. The first argument is an optional
+SAX callback object, then the initial set of data, the length and the name of
+the resource in case URI-References need to be computed by the parser.</p>
+
+<p>Then the data are pushed using the parseChunk() method, the last call
+setting the third argument terminate to 1.</p>
+
+<h3>pushSAX.py:</h3>
+
+<p>this test show the use of the event based parsing interfaces. In this case
+the parser does not build a document, but provides callback information as
+the parser makes progresses analyzing the data being provided:</p>
+<pre>import libxml2
+log = ""
+
+class callback:
+ def startDocument(self):
+ global log
+ log = log + "startDocument:"
+
+ def endDocument(self):
+ global log
+ log = log + "endDocument:"
+
+ def startElement(self, tag, attrs):
+ global log
+ log = log + "startElement %s %s:" % (tag, attrs)
+
+ def endElement(self, tag):
+ global log
+ log = log + "endElement %s:" % (tag)
+
+ def characters(self, data):
+ global log
+ log = log + "characters: %s:" % (data)
+
+ def warning(self, msg):
+ global log
+ log = log + "warning: %s:" % (msg)
+
+ def error(self, msg):
+ global log
+ log = log + "error: %s:" % (msg)
+
+ def fatalError(self, msg):
+ global log
+ log = log + "fatalError: %s:" % (msg)
+
+handler = callback()
+
+ctxt = libxml2.createPushParser(handler, "&lt;foo", 4, "test.xml")
+chunk = " url='tst'&gt;b"
+ctxt.parseChunk(chunk, len(chunk), 0)
+chunk = "ar&lt;/foo&gt;"
+ctxt.parseChunk(chunk, len(chunk), 1)
+
+reference = "startDocument:startElement foo {'url': 'tst'}:" + \
+ "characters: bar:endElement foo:endDocument:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Expected: %s" % reference</pre>
+
+<p>The key object in that test is the handler, it provides a number of entry
+points which can be called by the parser as it makes progresses to indicate
+the information set obtained. The full set of callback is larger than what
+the callback class in that specific example implements (see the SAX
+definition for a complete list). The wrapper will only call those supplied by
+the object when activated. The startElement receives the names of the element
+and a dictionary containing the attributes carried by this element.</p>
+
+<p>Also note that the reference string generated from the callback shows a
+single character call even though the string "bar" is passed to the parser
+from 2 different call to parseChunk()</p>
+
+<h3>xpath.py:</h3>
+
+<p>This is a basic test of XPath wrappers support</p>
+<pre>import libxml2
+
+doc = libxml2.parseFile("tst.xml")
+ctxt = doc.xpathNewContext()
+res = ctxt.xpathEval("//*")
+if len(res) != 2:
+ print "xpath query: wrong node set size"
+ sys.exit(1)
+if res[0].name != "doc" or res[1].name != "foo":
+ print "xpath query: wrong node set value"
+ sys.exit(1)
+doc.freeDoc()
+ctxt.xpathFreeContext()</pre>
+
+<p>This test parses a file, then create an XPath context to evaluate XPath
+expression on it. The xpathEval() method execute an XPath query and returns
+the result mapped in a Python way. String and numbers are natively converted,
+and node sets are returned as a tuple of libxml2 Python nodes wrappers. Like
+the document, the XPath context need to be freed explicitly, also not that
+the result of the XPath query may point back to the document tree and hence
+the document must be freed after the result of the query is used.</p>
+
+<h3>xpathext.py:</h3>
+
+<p>This test shows how to extend the XPath engine with functions written in
+python:</p>
+<pre>import libxml2
+
+def foo(ctx, x):
+ return x + 1
+
+doc = libxml2.parseFile("tst.xml")
+ctxt = doc.xpathNewContext()
+libxml2.registerXPathFunction(ctxt._o, "foo", None, foo)
+res = ctxt.xpathEval("foo(1)")
+if res != 2:
+ print "xpath extension failure"
+doc.freeDoc()
+ctxt.xpathFreeContext()</pre>
+
+<p>Note how the extension function is registered with the context (but that
+part is not yet finalized, this may change slightly in the future).</p>
+
+<h3>tstxpath.py:</h3>
+
+<p>This test is similar to the previous one but shows how the extension
+function can access the XPath evaluation context:</p>
+<pre>def foo(ctx, x):
+ global called
+
+ #
+ # test that access to the XPath evaluation contexts
+ #
+ pctxt = libxml2.xpathParserContext(_obj=ctx)
+ ctxt = pctxt.context()
+ called = ctxt.function()
+ return x + 1</pre>
+
+<p>All the interfaces around the XPath parser(or rather evaluation) context
+are not finalized, but it should be sufficient to do contextual work at the
+evaluation point.</p>
+
+<h3>Memory debugging:</h3>
+
+<p>last but not least, all tests starts with the following prologue:</p>
+<pre>#memory debug specific
+libxml2.debugMemory(1)</pre>
+
+<p>and ends with the following epilogue:</p>
+<pre>#memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()</pre>
+
+<p>Those activate the memory debugging interface of libxml2 where all
+allocated block in the library are tracked. The prologue then cleans up the
+library state and checks that all allocated memory has been freed. If not it
+calls dumpMemory() which saves that list in a <code>.memdump</code> file.</p>
+
+<h2><a name="architecture">libxml2 architecture</a></h2>
+
+<p>Libxml2 is made of multiple components; some of them are optional, and
+most of the block interfaces are public. The main components are:</p>
+<ul>
+ <li>an Input/Output layer</li>
+ <li>FTP and HTTP client layers (optional)</li>
+ <li>an Internationalization layer managing the encodings support</li>
+ <li>a URI module</li>
+ <li>the XML parser and its basic SAX interface</li>
+ <li>an HTML parser using the same SAX interface (optional)</li>
+ <li>a SAX tree module to build an in-memory DOM representation</li>
+ <li>a tree module to manipulate the DOM representation</li>
+ <li>a validation module using the DOM representation (optional)</li>
+ <li>an XPath module for global lookup in a DOM representation
+ (optional)</li>
+ <li>a debug module (optional)</li>
+</ul>
+
+<p>Graphically this gives the following:</p>
+
+<p><img src="libxml.gif" alt="a graphical view of the various"></p>
+
+<p></p>
+
+<h2><a name="tree">The tree output</a></h2>
+
+<p>The parser returns a tree built during the document analysis. The value
+returned is an <strong>xmlDocPtr</strong> (i.e., a pointer to an
+<strong>xmlDoc</strong> structure). This structure contains information such
+as the file name, the document type, and a <strong>children</strong> pointer
+which is the root of the document (or more exactly the first child under the
+root which is the document). The tree is made of <strong>xmlNode</strong>s,
+chained in double-linked lists of siblings and with a children&lt;-&gt;parent
+relationship. An xmlNode can also carry properties (a chain of xmlAttr
+structures). An attribute may have a value which is a list of TEXT or
+ENTITY_REF nodes.</p>
+
+<p>Here is an example (erroneous with respect to the XML spec since there
+should be only one ELEMENT under the root):</p>
+
+<p><img src="structure.gif" alt=" structure.gif "></p>
+
+<p>In the source package there is a small program (not installed by default)
+called <strong>xmllint</strong> which parses XML files given as argument and
+prints them back as parsed. This is useful for detecting errors both in XML
+code and in the XML parser itself. It has an option <strong>--debug</strong>
+which prints the actual in-memory structure of the document; here is the
+result with the <a href="#example">example</a> given before:</p>
+<pre>DOCUMENT
+version=1.0
+standalone=true
+ ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ ENTITY_REF
+ TEXT
+ content= linux too
+ ELEMENT head
+ ELEMENT title
+ TEXT
+ content=Welcome to Gnome
+ ELEMENT chapter
+ ELEMENT title
+ TEXT
+ content=The Linux adventure
+ ELEMENT p
+ TEXT
+ content=bla bla bla ...
+ ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+ ELEMENT p
+ TEXT
+ content=...</pre>
+
+<p>This should be useful for learning the internal representation model.</p>
+
+<h2><a name="interface">The SAX interface</a></h2>
+
+<p>Sometimes the DOM tree output is just too large to fit reasonably into
+memory. In that case (and if you don't expect to save back the XML document
+loaded using libxml), it's better to use the SAX interface of libxml. SAX is
+a <strong>callback-based interface</strong> to the parser. Before parsing,
+the application layer registers a customized set of callbacks which are
+called by the library as it progresses through the XML input.</p>
+
+<p>To get more detailed step-by-step guidance on using the SAX interface of
+libxml, see the <a
+href="http://www.jamesh.id.au/articles/libxml-sax/libxml-sax.html">nice
+documentation</a>.written by <a href="mailto:james@daa.com.au">James
+Henstridge</a>.</p>
+
+<p>You can debug the SAX behaviour by using the <strong>testSAX</strong>
+program located in the gnome-xml module (it's usually not shipped in the
+binary packages of libxml, but you can find it in the tar source
+distribution). Here is the sequence of callbacks that would be reported by
+testSAX when parsing the example XML document shown earlier:</p>
+<pre>SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.getEntity(amp)
+SAX.startElement(EXAMPLE, prop1='gnome is great', prop2='&amp;amp; linux too')
+SAX.characters( , 3)
+SAX.startElement(head)
+SAX.characters( , 4)
+SAX.startElement(title)
+SAX.characters(Welcome to Gnome, 16)
+SAX.endElement(title)
+SAX.characters( , 3)
+SAX.endElement(head)
+SAX.characters( , 3)
+SAX.startElement(chapter)
+SAX.characters( , 4)
+SAX.startElement(title)
+SAX.characters(The Linux adventure, 19)
+SAX.endElement(title)
+SAX.characters( , 4)
+SAX.startElement(p)
+SAX.characters(bla bla bla ..., 15)
+SAX.endElement(p)
+SAX.characters( , 4)
+SAX.startElement(image, href='linus.gif')
+SAX.endElement(image)
+SAX.characters( , 4)
+SAX.startElement(p)
+SAX.characters(..., 3)
+SAX.endElement(p)
+SAX.characters( , 3)
+SAX.endElement(chapter)
+SAX.characters( , 1)
+SAX.endElement(EXAMPLE)
+SAX.endDocument()</pre>
+
+<p>Most of the other interfaces of libxml2 are based on the DOM tree-building
+facility, so nearly everything up to the end of this document presupposes the
+use of the standard DOM tree build. Note that the DOM tree itself is built by
+a set of registered default callbacks, without internal specific
+interface.</p>
+
+<h2><a name="Validation">Validation &amp; DTDs</a></h2>
+
+<p>Table of Content:</p>
+<ol>
+ <li><a href="#General5">General overview</a></li>
+ <li><a href="#definition">The definition</a></li>
+ <li><a href="#Simple">Simple rules</a>
+ <ol>
+ <li><a href="#reference">How to reference a DTD from a document</a></li>
+ <li><a href="#Declaring">Declaring elements</a></li>
+ <li><a href="#Declaring1">Declaring attributes</a></li>
+ </ol>
+ </li>
+ <li><a href="#Some">Some examples</a></li>
+ <li><a href="#validate">How to validate</a></li>
+ <li><a href="#Other">Other resources</a></li>
+</ol>
+
+<h3><a name="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 of
+the content for a family of XML files. This is part of the XML 1.0
+specification, and allows one to describe and verify that a given document
+instance conforms to the set of rules detailing its structure and content.</p>
+
+<p>Validation is the process of checking a document against a DTD (more
+generally against a set of construction rules).</p>
+
+<p>The validation process and building DTDs are the two most difficult parts
+of the XML life cycle. Briefly a DTD defines all the possible elements to be
+found within your document, what is the formal shape of your document tree
+(by defining the allowed content of an element; either text, a regular
+expression for the allowed list of children, or mixed content i.e. both text
+and children). The DTD also defines the valid attributes for all elements and
+the types of those attributes.</p>
+
+<h3><a name="definition1">The definition</a></h3>
+
+<p>The <a href="http://www.w3.org/TR/REC-xml">W3C XML Recommendation</a> (<a
+href="http://www.xml.com/axml/axml.html">Tim Bray's annotated version of
+Rev1</a>):</p>
+<ul>
+ <li><a href="http://www.w3.org/TR/REC-xml#elemdecls">Declaring
+ elements</a></li>
+ <li><a href="http://www.w3.org/TR/REC-xml#attdecls">Declaring
+ attributes</a></li>
+</ul>
+
+<p>(unfortunately) all this is inherited from the SGML world, the syntax is
+ancient...</p>
+
+<h3><a name="Simple1">Simple rules</a></h3>
+
+<p>Writing DTDs can be done in many ways. The rules to build them if you need
+something permanent or something which can evolve over time can be radically
+different. Really complex DTDs like DocBook ones are flexible but quite
+harder to design. I will just focus on DTDs for a formats with a fixed simple
+structure. It is just a set of basic rules, and definitely not exhaustive nor
+usable for complex DTD design.</p>
+
+<h4><a name="reference1">How to reference a DTD from a document</a>:</h4>
+
+<p>Assuming the top element of the document is <code>spec</code> and the dtd
+is placed in the file <code>mydtd</code> in the subdirectory
+<code>dtds</code> of the directory from where the document were loaded:</p>
+
+<p><code>&lt;!DOCTYPE spec SYSTEM "dtds/mydtd"&gt;</code></p>
+
+<p>Notes:</p>
+<ul>
+ <li>The system string is actually an URI-Reference (as defined in <a
+ href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>) so you can use a
+ full URL string indicating the location of your DTD on the Web. This is a
+ really good thing to do if you want others to validate your document.</li>
+ <li>It is also possible to associate a <code>PUBLIC</code> identifier (a
+ magic string) so that the DTD is looked up in catalogs on the client side
+ without having to locate it on the web.</li>
+ <li>A DTD contains a set of element and attribute declarations, but they
+ don't define what the root of the document should be. This is explicitly
+ told to the parser/validator as the first element of the
+ <code>DOCTYPE</code> declaration.</li>
+</ul>
+
+<h4><a name="Declaring2">Declaring elements</a>:</h4>
+
+<p>The following declares an element <code>spec</code>:</p>
+
+<p><code>&lt;!ELEMENT spec (front, body, back?)&gt;</code></p>
+
+<p>It also expresses that the spec element contains one <code>front</code>,
+one <code>body</code> and one optional <code>back</code> children elements in
+this order. The declaration of one element of the structure and its content
+are done in a single declaration. Similarly the following declares
+<code>div1</code> elements:</p>
+
+<p><code>&lt;!ELEMENT div1 (head, (p | list | note)*, div2?)&gt;</code></p>
+
+<p>which means div1 contains one <code>head</code> then a series of optional
+<code>p</code>, <code>list</code>s and <code>note</code>s and then an
+optional <code>div2</code>. And last but not least an element can contain
+text:</p>
+
+<p><code>&lt;!ELEMENT b (#PCDATA)&gt;</code></p>
+
+<p><code>b</code> contains text or being of mixed content (text and elements
+in no particular order):</p>
+
+<p><code>&lt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;</code></p>
+
+<p><code>p </code>can contain text or <code>a</code>, <code>ul</code>,
+<code>b</code>, <code>i </code>or <code>em</code> elements in no particular
+order.</p>
+
+<h4><a name="Declaring1">Declaring attributes</a>:</h4>
+
+<p>Again the attributes declaration includes their content definition:</p>
+
+<p><code>&lt;!ATTLIST termdef name CDATA #IMPLIED&gt;</code></p>
+
+<p>means that the element <code>termdef</code> can have a <code>name</code>
+attribute containing text (<code>CDATA</code>) and which is optional
+(<code>#IMPLIED</code>). The attribute value can also be defined within a
+set:</p>
+
+<p><code>&lt;!ATTLIST list type (bullets|ordered|glossary)
+"ordered"&gt;</code></p>
+
+<p>means <code>list</code> element have a <code>type</code> attribute with 3
+allowed values "bullets", "ordered" or "glossary" and which default to
+"ordered" if the attribute is not explicitly specified.</p>
+
+<p>The content type of an attribute can be text (<code>CDATA</code>),
+anchor/reference/references
+(<code>ID</code>/<code>IDREF</code>/<code>IDREFS</code>), entity(ies)
+(<code>ENTITY</code>/<code>ENTITIES</code>) or name(s)
+(<code>NMTOKEN</code>/<code>NMTOKENS</code>). The following defines that a
+<code>chapter</code> element can have an optional <code>id</code> attribute
+of type <code>ID</code>, usable for reference from attribute of type
+IDREF:</p>
+
+<p><code>&lt;!ATTLIST chapter id ID #IMPLIED&gt;</code></p>
+
+<p>The last value of an attribute definition can be <code>#REQUIRED
+</code>meaning that the attribute has to be given, <code>#IMPLIED</code>
+meaning that it is optional, or the default value (possibly prefixed by
+<code>#FIXED</code> if it is the only allowed).</p>
+
+<p>Notes:</p>
+<ul>
+ <li>Usually the attributes pertaining to a given element are declared in a
+ single expression, but it is just a convention adopted by a lot of DTD
+ writers:
+ <pre>&lt;!ATTLIST termdef
+ id ID #REQUIRED
+ name CDATA #IMPLIED&gt;</pre>
+ <p>The previous construct defines both <code>id</code> and
+ <code>name</code> attributes for the element <code>termdef</code>.</p>
+ </li>
+</ul>
+
+<h3><a name="Some1">Some examples</a></h3>
+
+<p>The directory <code>test/valid/dtds/</code> in the libxml2 distribution
+contains some complex DTD examples. The example in the file
+<code>test/valid/dia.xml</code> shows an XML file where the simple DTD is
+directly included within the document.</p>
+
+<h3><a name="validate1">How to validate</a></h3>
+
+<p>The simplest way is to use the xmllint program included with libxml. The
+<code>--valid</code> option turns-on validation of the files given as input.
+For example the following validates a copy of the first revision of the XML
+1.0 specification:</p>
+
+<p><code>xmllint --valid --noout test/valid/REC-xml-19980210.xml</code></p>
+
+<p>the -- noout is used to disable output of the resulting tree.</p>
+
+<p>The <code>--dtdvalid dtd</code> allows validation of the document(s)
+against a given DTD.</p>
+
+<p>Libxml2 exports an API to handle DTDs and validation, check the <a
+href="http://xmlsoft.org/html/libxml-valid.html">associated
+description</a>.</p>
+
+<h3><a name="Other1">Other resources</a></h3>
+
+<p>DTDs are as old as SGML. So there may be a number of examples on-line, I
+will just list one for now, others pointers welcome:</p>
+<ul>
+ <li><a href="http://www.xml101.com:8081/dtd/">XML-101 DTD</a></li>
+</ul>
+
+<p>I suggest looking at the examples found under test/valid/dtd and any of
+the large number of books available on XML. The dia example in test/valid
+should be both simple and complete enough to allow you to build your own.</p>
+
+<p></p>
+
+<h2><a name="Memory">Memory Management</a></h2>
+
+<p>Table of Content:</p>
+<ol>
+ <li><a href="#General3">General overview</a></li>
+ <li><a href="#setting">Setting libxml2 set of memory routines</a></li>
+ <li><a href="#cleanup">Cleaning up after using the library</a></li>
+ <li><a href="#Debugging">Debugging routines</a></li>
+ <li><a href="#General4">General memory requirements</a></li>
+ <li><a href="#Compacting">Returning memory to the kernel</a></li>
+</ol>
+
+<h3><a name="General3">General overview</a></h3>
+
+<p>The module <code><a
+href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlmemory.h</a></code>
+provides the interfaces to the libxml2 memory system:</p>
+<ul>
+ <li>libxml2 does not use the libc memory allocator directly but xmlFree(),
+ xmlMalloc() and xmlRealloc()</li>
+ <li>those routines can be reallocated to a specific set of routine, by
+ default the libc ones i.e. free(), malloc() and realloc()</li>
+ <li>the xmlmemory.c module includes a set of debugging routine</li>
+</ul>
+
+<h3><a name="setting">Setting libxml2 set of memory routines</a></h3>
+
+<p>It is sometimes useful to not use the default memory allocator, either for
+debugging, analysis or to implement a specific behaviour on memory management
+(like on embedded systems). Two function calls are available to do so:</p>
+<ul>
+ <li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemGet
+ ()</a> which return the current set of functions in use by the parser</li>
+ <li><a
+ href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemSetup()</a>
+ which allow to set up a new set of memory allocation functions</li>
+</ul>
+
+<p>Of course a call to xmlMemSetup() should probably be done before calling
+any other libxml2 routines (unless you are sure your allocations routines are
+compatibles).</p>
+
+<h3><a name="cleanup">Cleaning up after using the library</a></h3>
+
+<p>Libxml2 is not stateless, there is a few set of memory structures needing
+allocation before the parser is fully functional (some encoding structures
+for example). This also mean that once parsing is finished there is a tiny
+amount of memory (a few hundred bytes) which can be recollected if you don't
+reuse the library or any document built with it:</p>
+<ul>
+ <li><a href="http://xmlsoft.org/html/libxml-parser.html">xmlCleanupParser
+ ()</a> is a centralized routine to free the library state and data. Note
+ that it won't deallocate any produced tree if any (use the xmlFreeDoc()
+ and related routines for this). This should be called only when the library
+ is not used anymore.</li>
+ <li><a href="http://xmlsoft.org/html/libxml-parser.html">xmlInitParser
+ ()</a> is the dual routine allowing to preallocate the parsing state
+ which can be useful for example to avoid initialization reentrancy
+ problems when using libxml2 in multithreaded applications</li>
+</ul>
+
+<p>Generally xmlCleanupParser() is safe assuming no parsing is ongoing and
+no document is still being used, if needed the state will be rebuild at the
+next invocation of parser routines (or by xmlInitParser()), but be careful
+of the consequences in multithreaded applications.</p>
+
+<h3><a name="Debugging">Debugging routines</a></h3>
+
+<p>When configured using --with-mem-debug flag (off by default), libxml2 uses
+a set of memory allocation debugging routines keeping track of all allocated
+blocks and the location in the code where the routine was called. A couple of
+other debugging routines allow to dump the memory allocated infos to a file
+or 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>
+ are the memory debugging replacement allocation routines</li>
+ <li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemoryDump
+ ()</a> dumps all the information about the allocated memory block lefts
+ in the <code>.memdump</code> file</li>
+</ul>
+
+<p>When developing libxml2 memory debug is enabled, the tests programs call
+xmlMemoryDump () and the "make test" regression tests will check for any
+memory leak during the full regression test sequence, this helps a lot
+ensuring that libxml2 does not leak memory and bullet proof memory
+allocations use (some libc implementations are known to be far too permissive
+resulting in major portability problems!).</p>
+
+<p>If the .memdump reports a leak, it displays the allocation function and
+also tries to give some information about the content and structure of the
+allocated blocks left. This is sufficient in most cases to find the culprit,
+but not always. Assuming the allocation problem is reproducible, it is
+possible 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 , the easiest
+ when using GDB is to simply give the command
+ <p><code>set environment XML_MEM_BREAKPOINT xxxx</code></p>
+ <p>before running the program.</p>
+ </li>
+ <li>run the program under a debugger and set a breakpoint on
+ xmlMallocBreakpoint() a specific function called when this precise block
+ is allocated</li>
+ <li>when the breakpoint is reached you can then do a fine analysis of the
+ allocation an step to see the condition resulting in the missing
+ deallocation.</li>
+</ol>
+
+<p>I used to use a commercial tool to debug libxml2 memory problems but after
+noticing that it was not detecting memory leaks that simple mechanism was
+used and proved extremely efficient until now. Lately I have also used <a
+href="http://developer.kde.org/~sewardj/">valgrind</a> with quite some
+success, it is tied to the i386 architecture since it works by emulating the
+processor and instruction set, it is slow but extremely efficient, i.e. it
+spot memory usage errors in a very precise way.</p>
+
+<h3><a name="General4">General memory requirements</a></h3>
+
+<p>How much libxml2 memory require ? It's hard to tell in average it depends
+of a number of things:</p>
+<ul>
+ <li>the parser itself should work in a fixed amount of memory, except for
+ information maintained about the stacks of names and entities locations.
+ The I/O and encoding handlers will probably account for a few KBytes.
+ This is true for both the XML and HTML parser (though the HTML parser
+ need more state).</li>
+ <li>If you are generating the DOM tree then memory requirements will grow
+ nearly linear with the size of the data. In general for a balanced
+ textual document the internal memory requirement is about 4 times the
+ size of the UTF8 serialization of this document (example the XML-1.0
+ recommendation is a bit more of 150KBytes and takes 650KBytes of main
+ memory when parsed). Validation will add a amount of memory required for
+ maintaining the external Dtd state which should be linear with the
+ complexity of the content model defined by the Dtd</li>
+ <li>If you need to work with fixed memory requirements or don't need the
+ full DOM tree then using the <a href="xmlreader.html">xmlReader
+ interface</a> is probably the best way to proceed, it still allows to
+ validate or operate on subset of the tree if needed.</li>
+ <li>If you don't care about the advanced features of libxml2 like
+ validation, DOM, XPath or XPointer, don't use entities, need to work with
+ fixed memory requirements, and try to get the fastest parsing possible
+ then the SAX interface should be used, but it has known restrictions.</li>
+</ul>
+
+<p></p>
+<h3><a name="Compacting">Returning memory to the kernel</a></h3>
+
+<p>You may encounter that your process using libxml2 does not have a
+reduced memory usage although you freed the trees. This is because
+libxml2 allocates memory in a number of small chunks. When freeing one
+of those chunks, the OS may decide that giving this little memory back
+to the kernel will cause too much overhead and delay the operation. As
+all chunks are this small, they get actually freed but not returned to
+the kernel. On systems using glibc, there is a function call
+"malloc_trim" from malloc.h which does this missing operation (note that
+it is allowed to fail). Thus, after freeing your tree you may simply try
+"malloc_trim(0);" to really get the memory back. If your OS does not
+provide malloc_trim, try searching for a similar function.</p>
+<p></p>
+
+<h2><a name="Encodings">Encodings support</a></h2>
+
+<p>If you are not really familiar with Internationalization (usual shortcut
+is 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 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 string
+without knowing what encoding it uses</b>, then as Joel Spolsky said <a
+href="http://www.joelonsoftware.com/articles/Unicode.html">please do not
+write another line of code until you finish reading that article.</a>. It is
+a prerequisite to understand this page, and avoid a lot of problems with
+libxml2, XML or text processing in general.</p>
+
+<p>Table of Content:</p>
+<ol>
+ <li><a href="encoding.html#What">What does internationalization support
+ mean ?</a></li>
+ <li><a href="encoding.html#internal">The internal encoding, how and
+ why</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#extend">How to extend the existing
+ support</a></li>
+</ol>
+
+<h3><a name="What">What does internationalization support mean ?</a></h3>
+
+<p>XML was designed from the start to allow the support of any character set
+by using Unicode. Any conformant XML parser has to support the UTF-8 and
+UTF-16 default encodings which can both express the full unicode ranges. UTF8
+is a variable length encoding whose greatest points are to reuse the same
+encoding for ASCII and to save space for Western encodings, but it is a bit
+more complex to handle in practice. UTF-16 use 2 bytes per character (and
+sometimes combines two pairs), it makes implementation easier, but looks a
+bit overkill for Western languages encoding. Moreover the XML specification
+allows the document to be encoded in other encodings at the condition that
+they are clearly labeled as such. For example the following is a wellformed
+XML document encoded in ISO-8859-1 and using accentuated letters that we
+French like for both markup and content:</p>
+<pre>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;tr&egrave;s&gt;l&agrave; &lt;/tr&egrave;s&gt;</pre>
+
+<p>Having internationalization support in libxml2 means the following:</p>
+<ul>
+ <li>the document is properly parsed</li>
+ <li>information about it's encoding is saved</li>
+ <li>it can be modified</li>
+ <li>it can be saved in its original encoding</li>
+ <li>it can also be saved in another encoding supported by libxml2 (for
+ example straight UTF8 or even an ASCII form)</li>
+</ul>
+
+<p>Another very important point is that the whole libxml2 API, with the
+exception of a few routines to read with a specific encoding or save to a
+specific encoding, is completely agnostic about the original encoding of the
+document.</p>
+
+<p>It should be noted too that the HTML parser embedded in libxml2 now obey
+the same rules too, the following document will be (as of 2.2.2) handled in
+an internationalized fashion by libxml2 too:</p>
+<pre>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd"&gt;
+&lt;html lang="fr"&gt;
+&lt;head&gt;
+ &lt;META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;W3C cr&eacute;e des standards pour le Web.&lt;/body&gt;
+&lt;/html&gt;</pre>
+
+<h3><a name="internal">The internal encoding, how and why</a></h3>
+
+<p>One of the core decisions was to force all documents to be converted to a
+default internal encoding, and that encoding to be UTF-8, here are the
+rationales for those choices:</p>
+<ul>
+ <li>keeping the native encoding in the internal form would force the libxml
+ users (or the code associated) to be fully aware of the encoding of the
+ original document, for examples when adding a text node to a document,
+ the content would have to be provided in the document encoding, i.e. the
+ client code would have to check it before hand, make sure it's conformant
+ to the encoding, etc ... Very hard in practice, though in some specific
+ cases this may make sense.</li>
+ <li>the second decision was which encoding. From the XML spec only UTF8 and
+ UTF16 really makes sense as being the two only encodings for which there
+ is mandatory support. UCS-4 (32 bits fixed size encoding) could be
+ considered an intelligent choice too since it's a direct Unicode mapping
+ support. I selected UTF-8 on the basis of efficiency and compatibility
+ with surrounding software:
+ <ul>
+ <li>UTF-8 while a bit more complex to convert from/to (i.e. slightly
+ more costly to import and export CPU wise) is also far more compact
+ than UTF-16 (and UCS-4) for a majority of the documents I see it used
+ for right now (RPM RDF catalogs, advogato data, various configuration
+ file formats, etc.) and the key point for today's computer
+ architecture is efficient uses of caches. If one nearly double the
+ memory requirement to store the same amount of data, this will trash
+ caches (main memory/external caches/internal caches) and my take is
+ that this harms the system far more than the CPU requirements needed
+ for the conversion to UTF-8</li>
+ <li>Most of libxml2 version 1 users were using it with straight ASCII
+ most of the time, doing the conversion with an internal encoding
+ requiring all their code to be rewritten was a serious show-stopper
+ for using UTF-16 or UCS-4.</li>
+ <li>UTF-8 is being used as the de-facto internal encoding standard for
+ related code like the <a href="http://www.pango.org/">pango</a>
+ upcoming Gnome text widget, and a lot of Unix code (yet another place
+ where Unix programmer base takes a different approach from Microsoft
+ - they are using UTF-16)</li>
+ </ul>
+ </li>
+</ul>
+
+<p>What does this mean in practice for the libxml2 user:</p>
+<ul>
+ <li>xmlChar, the libxml2 data type is a byte, those bytes must be assembled
+ as UTF-8 valid strings. The proper way to terminate an xmlChar * string
+ is simply to append 0 byte, as usual.</li>
+ <li>One just need to make sure that when using chars outside the ASCII set,
+ the values has been properly converted to UTF-8</li>
+</ul>
+
+<h3><a name="implemente">How is it implemented ?</a></h3>
+
+<p>Let's describe how all this works within libxml, basically the I18N
+(internationalization) support get triggered only during I/O operation, i.e.
+when reading a document or saving one. Let's look first at the reading
+sequence:</p>
+<ol>
+ <li>when a document is processed, we usually don't know the encoding, a
+ simple heuristic allows to detect UTF-16 and UCS-4 from encodings where
+ the ASCII range (0-0x7F) maps with ASCII</li>
+ <li>the xml declaration if available is parsed, including the encoding
+ declaration. At that point, if the autodetected encoding is different
+ from the one declared a call to xmlSwitchEncoding() is issued.</li>
+ <li>If there is no encoding declaration, then the input has to be in either
+ UTF-8 or UTF-16, if it is not then at some point when processing the
+ input, the converter/checker of UTF-8 form will raise an encoding error.
+ You may end-up with a garbled document, or no document at all ! Example:
+ <pre>~/XML -&gt; ./xmllint err.xml
+err.xml:1: error: Input is not proper UTF-8, indicate encoding !
+&lt;tr&egrave;s&gt;l&agrave; &lt;/tr&egrave;s&gt;
+ ^
+err.xml:1: error: Bytes: 0xE8 0x73 0x3E 0x6C
+&lt;tr&egrave;s&gt;l&agrave; &lt;/tr&egrave;s&gt;
+ ^</pre>
+ </li>
+ <li>xmlSwitchEncoding() does an encoding name lookup, canonicalize it, and
+ then search the default registered encoding converters for that encoding.
+ If it's not within the default set and iconv() support has been compiled
+ it, it will ask iconv for such an encoder. If this fails then the parser
+ will report an error and stops processing:
+ <pre>~/XML -&gt; ./xmllint err2.xml
+err2.xml:1: error: Unsupported encoding UnsupportedEnc
+&lt;?xml version="1.0" encoding="UnsupportedEnc"?&gt;
+ ^</pre>
+ </li>
+ <li>From that point the encoder processes progressively the input (it is
+ plugged as a front-end to the I/O module) for that entity. It captures
+ and converts on-the-fly the document to be parsed to UTF-8. The parser
+ itself just does UTF-8 checking of this input and process it
+ transparently. The only difference is that the encoding information has
+ been added to the parsing context (more precisely to the input
+ corresponding to this entity).</li>
+ <li>The result (when using DOM) is an internal form completely in UTF-8
+ with just an encoding information on the document node.</li>
+</ol>
+
+<p>Ok then what happens when saving the document (assuming you
+collected/built an xmlDoc DOM like structure) ? It depends on the function
+called, xmlSaveFile() will just try to save in the original encoding, while
+xmlSaveFileTo() and xmlSaveFileEnc() can optionally save to a given
+encoding:</p>
+<ol>
+ <li>if no encoding is given, libxml2 will look for an encoding value
+ associated to the document and if it exists will try to save to that
+ encoding,
+ <p>otherwise everything is written in the internal form, i.e. UTF-8</p>
+ </li>
+ <li>so if an encoding was specified, either at the API level or on the
+ document, libxml2 will again canonicalize the encoding name, lookup for a
+ converter in the registered set or through iconv. If not found the
+ function will return an error code</li>
+ <li>the converter is placed before the I/O buffer layer, as another kind of
+ buffer, then libxml2 will simply push the UTF-8 serialization to through
+ that buffer, which will then progressively be converted and pushed onto
+ the I/O layer.</li>
+ <li>It is possible that the converter code fails on some input, for example
+ trying to push an UTF-8 encoded Chinese character through the UTF-8 to
+ ISO-8859-1 converter won't work. Since the encoders are progressive they
+ will just report the error and the number of bytes converted, at that
+ point libxml2 will decode the offending character, remove it from the
+ buffer and replace it with the associated charRef encoding &amp;#123; and
+ resume the conversion. This guarantees that any document will be saved
+ without losses (except for markup names where this is not legal, this is
+ a problem in the current version, in practice avoid using non-ascii
+ characters for tag or attribute names). A special "ascii" encoding name
+ is used to save documents to a pure ascii form can be used when
+ portability is really crucial</li>
+</ol>
+
+<p>Here are a few examples based on the same test document and assumin a
+terminal using ISO-8859-1 as the text encoding:</p>
+<pre>~/XML -&gt; ./xmllint isolat1
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;tr&egrave;s&gt;là&lt;/tr&egrave;s&gt;
+~/XML -&gt; ./xmllint --encode UTF-8 isolat1
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;très&gt;là &nbsp;&lt;/très&gt;
+~/XML -&gt; </pre>
+
+<p>The same processing is applied (and reuse most of the code) for HTML I18N
+processing. Looking up and modifying the content encoding is a bit more
+difficult since it is located in a &lt;meta&gt; tag under the &lt;head&gt;,
+so a couple of functions htmlGetMetaEncoding() and htmlSetMetaEncoding() have
+been provided. The parser also attempts to switch encoding on the fly when
+detecting such a tag on input. Except for that the processing is the same
+(and again reuses the same code).</p>
+
+<h3><a name="Default">Default supported encodings</a></h3>
+
+<p>libxml2 has a set of default converters for the following encodings
+(located in encoding.c):</p>
+<ol>
+ <li>UTF-8 is supported by default (null handlers)</li>
+ <li>UTF-16, both little and big endian</li>
+ <li>ISO-Latin-1 (ISO-8859-1) covering most western languages</li>
+ <li>ASCII, useful mostly for saving</li>
+ <li>HTML, a specific handler for the conversion of UTF-8 to ASCII with HTML
+ predefined entities like &amp;copy; for the Copyright sign.</li>
+</ol>
+
+<p>More over when compiled on an Unix platform with iconv support the full
+set of encodings supported by iconv can be instantly be used by libxml. On a
+linux machine with glibc-2.1 the list of supported encodings and aliases fill
+3 full pages, and include UCS-4, the full set of ISO-Latin encodings, and the
+various Japanese ones.</p>
+
+<p>To convert from the UTF-8 values returned from the API to another encoding
+then 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 the
+POSIX <a
+href="http://www.opengroup.org/onlinepubs/009695399/functions/iconv.html">iconv()</a>
+API directly.</p>
+
+<h4>Encoding aliases</h4>
+
+<p>From 2.2.3, libxml2 has support to register encoding names aliases. The
+goal is to be able to parse document whose encoding is supported but where
+the name differs (for example from the default set of names accepted by
+iconv). The following functions allow to register and handle new aliases for
+existing encodings. Once registered libxml2 will automatically lookup the
+aliases when handling a document:</p>
+<ul>
+ <li>int xmlAddEncodingAlias(const char *name, const char *alias);</li>
+ <li>int xmlDelEncodingAlias(const char *alias);</li>
+ <li>const char * xmlGetEncodingAlias(const char *alias);</li>
+ <li>void xmlCleanupEncodingAliases(void);</li>
+</ul>
+
+<h3><a name="extend">How to extend the existing support</a></h3>
+
+<p>Well adding support for new encoding, or overriding one of the encoders
+(assuming it is buggy) should not be hard, just write input and output
+conversion routines to/from UTF-8, and register them using
+xmlNewCharEncodingHandler(name, xxxToUTF8, UTF8Toxxx), and they will be
+called automatically if the parser(s) encounter such an encoding name
+(register it uppercase, this will help). The description of the encoders,
+their arguments and expected return values are described in the encoding.h
+header.</p>
+
+<h2><a name="IO">I/O Interfaces</a></h2>
+
+<p>Table of Content:</p>
+<ol>
+ <li><a href="#General1">General overview</a></li>
+ <li><a href="#basic">The basic buffer type</a></li>
+ <li><a href="#Input">Input 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="#Example2">Example of customized I/O</a></li>
+</ol>
+
+<h3><a name="General1">General overview</a></h3>
+
+<p>The module <code><a
+href="http://xmlsoft.org/html/libxml-xmlio.html">xmlIO.h</a></code> provides
+the 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 entities
+ (files) based on their PUBLIC and SYSTEM identifiers. The default loader
+ don't look at the public identifier since libxml2 do not maintain a
+ catalog. You can redefine you own entity loader by using
+ <code>xmlGetExternalEntityLoader()</code> and
+ <code>xmlSetExternalEntityLoader()</code>. <a href="#entities">Check the
+ example</a>.</li>
+ <li>Input I/O buffers which are a commodity structure used by the parser(s)
+ input layer to handle fetching the information to feed the parser. This
+ provides buffering and is also a placeholder where the encoding
+ converters to UTF8 are piggy-backed.</li>
+ <li>Output I/O buffers are similar to the Input ones and fulfill similar
+ task but when generating a serialization from a tree.</li>
+ <li>A mechanism to register sets of I/O callbacks and associate them with
+ specific naming schemes like the protocol part of the URIs.
+ <p>This affect the default I/O operations and allows to use specific I/O
+ handlers for certain names.</p>
+ </li>
+</ul>
+
+<p>The general mechanism used when loading http://rpmfind.net/xml.html for
+example in the HTML parser is the following:</p>
+<ol>
+ <li>The default entity loader calls <code>xmlNewInputFromFile()</code> with
+ the parsing context and the URI string.</li>
+ <li>the URI string is checked against the existing registered handlers
+ using their match() callback function, if the HTTP module was compiled
+ in, it is registered and its match() function will succeeds</li>
+ <li>the open() function of the handler is called and if successful will
+ return an I/O Input buffer</li>
+ <li>the parser will the start reading from this buffer and progressively
+ fetch information from the resource, calling the read() function of the
+ handler until the resource is exhausted</li>
+ <li>if an encoding change is detected it will be installed on the input
+ buffer, providing buffering and efficient use of the conversion
+ routines</li>
+ <li>once the parser has finished, the close() function of the handler is
+ called once and the Input buffer and associated resources are
+ deallocated.</li>
+</ol>
+
+<p>The user defined callbacks are checked first to allow overriding of the
+default libxml2 I/O routines.</p>
+
+<h3><a name="basic">The basic buffer type</a></h3>
+
+<p>All the buffer manipulation handling is done using the
+<code>xmlBuffer</code> type define in <code><a
+href="http://xmlsoft.org/html/libxml-tree.html">tree.h</a> </code>which is a
+resizable memory buffer. The buffer allocation strategy can be selected to be
+either best-fit or use an exponential doubling one (CPU vs. memory use
+trade-off). The values are <code>XML_BUFFER_ALLOC_EXACT</code> and
+<code>XML_BUFFER_ALLOC_DOUBLEIT</code>, and can be set individually or on a
+system wide basis using <code>xmlBufferSetAllocationScheme()</code>. A number
+of functions allows to manipulate buffers with names starting with the
+<code>xmlBuffer...</code> prefix.</p>
+
+<h3><a name="Input">Input I/O handlers</a></h3>
+
+<p>An Input I/O handler is a simple structure
+<code>xmlParserInputBuffer</code> containing a context associated to the
+resource (file descriptor, or pointer to a protocol handler), the read() and
+close() callbacks to use and an xmlBuffer. And extra xmlBuffer and a charset
+encoding handler are also present to support charset conversion when
+needed.</p>
+
+<h3><a name="Output">Output I/O handlers</a></h3>
+
+<p>An Output handler <code>xmlOutputBuffer</code> is completely similar to an
+Input one except the callbacks are write() and close().</p>
+
+<h3><a name="entities">The entities loader</a></h3>
+
+<p>The entity loader resolves requests for new entities and create inputs for
+the parser. Creating an input from a filename or an URI string is done
+through the xmlNewInputFromFile() routine. The default entity loader do not
+handle the PUBLIC identifier associated with an entity (if any). So it just
+calls xmlNewInputFromFile() with the SYSTEM identifier (which is mandatory in
+XML).</p>
+
+<p>If you want to hook up a catalog mechanism then you simply need to
+override the default entity loader, here is an example:</p>
+<pre>#include &lt;libxml/xmlIO.h&gt;
+
+xmlExternalEntityLoader defaultLoader = NULL;
+
+xmlParserInputPtr
+xmlMyExternalEntityLoader(const char *URL, const char *ID,
+ xmlParserCtxtPtr ctxt) {
+ xmlParserInputPtr ret;
+ const char *fileID = NULL;
+ /* lookup for the fileID depending on ID */
+
+ ret = xmlNewInputFromFile(ctxt, fileID);
+ if (ret != NULL)
+ return(ret);
+ if (defaultLoader != NULL)
+ ret = defaultLoader(URL, ID, ctxt);
+ return(ret);
+}
+
+int main(..) {
+ ...
+
+ /*
+ * Install our own entity loader
+ */
+ defaultLoader = xmlGetExternalEntityLoader();
+ xmlSetExternalEntityLoader(xmlMyExternalEntityLoader);
+
+ ...
+}</pre>
+
+<h3><a name="Example2">Example of customized I/O</a></h3>
+
+<p>This example come from <a href="http://xmlsoft.org/messages/0708.html">a
+real use case</a>, xmlDocDump() closes the FILE * passed by the application
+and this was a problem. The <a
+href="http://xmlsoft.org/messages/0711.html">solution</a> was to redefine a
+new output handler with the closing call deactivated:</p>
+<ol>
+ <li>First define a new I/O output allocator where the output don't close
+ the file:
+ <pre>xmlOutputBufferPtr
+xmlOutputBufferCreateOwn(FILE *file, xmlCharEncodingHandlerPtr encoder) {
+&nbsp;&nbsp;&nbsp;&nbsp;xmlOutputBufferPtr ret;
+&nbsp;&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp;&nbsp;if (xmlOutputCallbackInitialized == 0)
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlRegisterDefaultOutputCallbacks();
+
+&nbsp;&nbsp;&nbsp;&nbsp;if (file == NULL) return(NULL);
+&nbsp;&nbsp;&nbsp;&nbsp;ret = xmlAllocOutputBuffer(encoder);
+&nbsp;&nbsp;&nbsp;&nbsp;if (ret != NULL) {
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret-&gt;context = file;
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret-&gt;writecallback = xmlFileWrite;
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret-&gt;closecallback = NULL; /* No close callback */
+&nbsp;&nbsp;&nbsp;&nbsp;}
+&nbsp;&nbsp;&nbsp;&nbsp;return(ret);
+} </pre>
+ </li>
+ <li>And then use it to save the document:
+ <pre>FILE *f;
+xmlOutputBufferPtr output;
+xmlDocPtr doc;
+int res;
+
+f = ...
+doc = ....
+
+output = xmlOutputBufferCreateOwn(f, NULL);
+res = xmlSaveFileTo(output, doc, NULL);
+ </pre>
+ </li>
+</ol>
+
+<h2><a name="Catalog">Catalog support</a></h2>
+
+<p>Table of Content:</p>
+<ol>
+ <li><a href="General2">General overview</a></li>
+ <li><a href="#definition">The definition</a></li>
+ <li><a href="#Simple">Using catalogs</a></li>
+ <li><a href="#Some">Some examples</a></li>
+ <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="#Declaring">How to create and maintain catalogs</a></li>
+ <li><a href="#implemento">The implementor corner quick review of the
+ API</a></li>
+ <li><a href="#Other">Other resources</a></li>
+</ol>
+
+<h3><a name="General2">General overview</a></h3>
+
+<p>What is a catalog? Basically it's a lookup mechanism used when an entity
+(a file or a remote resource) references another entity. The catalog lookup
+is inserted between the moment the reference is recognized by the software
+(XML parser, stylesheet processing, or even images referenced for inclusion
+in a rendering) and the time where loading that resource is actually
+started.</p>
+
+<p>It is basically used for 3 things:</p>
+<ul>
+ <li>mapping from "logical" names, the public identifiers and a more
+ concrete name usable for download (and URI). For example it can associate
+ the logical name
+ <p>"-//OASIS//DTD DocBook XML V4.1.2//EN"</p>
+ <p>of the DocBook 4.1.2 XML DTD with the actual URL where it can be
+ downloaded</p>
+ <p>http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd</p>
+ </li>
+ <li>remapping from a given URL to another one, like an HTTP indirection
+ saying that
+ <p>"http://www.oasis-open.org/committes/tr.xsl"</p>
+ <p>should really be looked at</p>
+ <p>"http://www.oasis-open.org/committes/entity/stylesheets/base/tr.xsl"</p>
+ </li>
+ <li>providing a local cache mechanism allowing to load the entities
+ associated to public identifiers or remote resources, this is a really
+ important feature for any significant deployment of XML or SGML since it
+ allows to avoid the aleas and delays associated to fetching remote
+ resources.</li>
+</ul>
+
+<h3><a name="definition">The definitions</a></h3>
+
+<p>Libxml, as of 2.4.3 implements 2 kind of catalogs:</p>
+<ul>
+ <li>the older SGML catalogs, the official spec is SGML Open Technical
+ Resolution TR9401:1997, but is better understood by reading <a
+ href="http://www.jclark.com/sp/catalog.htm">the SP Catalog page</a> from
+ James Clark. This is relatively old and not the preferred mode of
+ operation of libxml.</li>
+ <li><a href="http://www.oasis-open.org/committees/entity/spec.html">XML
+ Catalogs</a> is far more flexible, more recent, uses an XML syntax and
+ should scale quite better. This is the default option of libxml.</li>
+</ul>
+
+<p></p>
+
+<h3><a name="Simple">Using catalog</a></h3>
+
+<p>In a normal environment libxml2 will by default check the presence of a
+catalog in /etc/xml/catalog, and assuming it has been correctly populated,
+the processing is completely transparent to the document user. To take a
+concrete example, suppose you are authoring a DocBook document, this one
+starts with the following DOCTYPE definition:</p>
+<pre>&lt;?xml version='1.0'?&gt;
+&lt;!DOCTYPE book PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.4//EN"
+ "http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd"&gt;</pre>
+
+<p>When validating the document with libxml, the catalog will be
+automatically consulted to lookup the public identifier "-//Norman Walsh//DTD
+DocBk XML V3.1.4//EN" and the system identifier
+"http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd", and if these entities have
+been installed on your system and the catalogs actually point to them, libxml
+will fetch them from the local disk.</p>
+
+<p style="font-size: 10pt"><strong>Note</strong>: Really don't use this
+DOCTYPE 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 an
+entity, this includes DTD, external parsed entities, stylesheets, etc ... If
+your system is correctly configured all the authoring phase and processing
+should use only local files, even if your document stays portable because it
+uses the canonical public and system ID, referencing the remote document.</p>
+
+<h3><a name="Some">Some examples:</a></h3>
+
+<p>Here is a couple of fragments from XML Catalogs used in libxml2 early
+regression tests in <code>test/catalogs</code> :</p>
+<pre>&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE catalog PUBLIC
+ "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
+ "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;
+&lt;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"&gt;
+ &lt;public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
+ uri="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/&gt;
+...</pre>
+
+<p>This is the beginning of a catalog for DocBook 4.1.2, XML Catalogs are
+written in XML, there is a specific namespace for catalog elements
+"urn:oasis:names:tc:entity:xmlns:xml:catalog". The first entry in this
+catalog is a <code>public</code> mapping it allows to associate a Public
+Identifier with an URI.</p>
+<pre>...
+ &lt;rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/"
+ rewritePrefix="file:///usr/share/xml/docbook/"/&gt;
+...</pre>
+
+<p>A <code>rewriteSystem</code> is a very powerful instruction, it says that
+any URI starting with a given prefix should be looked at another URI
+constructed by replacing the prefix with an new one. In effect this acts like
+a cache system for a full area of the Web. In practice it is extremely useful
+with a file prefix if you have installed a copy of those resources on your
+local system.</p>
+<pre>...
+&lt;delegatePublic publicIdStartString="-//OASIS//DTD XML Catalog //"
+ catalog="file:///usr/share/xml/docbook.xml"/&gt;
+&lt;delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook XML"
+ catalog="file:///usr/share/xml/docbook.xml"/&gt;
+&lt;delegatePublic publicIdStartString="-//OASIS//DTD DocBook XML"
+ catalog="file:///usr/share/xml/docbook.xml"/&gt;
+&lt;delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/"
+ catalog="file:///usr/share/xml/docbook.xml"/&gt;
+&lt;delegateURI uriStartString="http://www.oasis-open.org/docbook/"
+ catalog="file:///usr/share/xml/docbook.xml"/&gt;
+...</pre>
+
+<p>Delegation is the core features which allows to build a tree of catalogs,
+easier to maintain than a single catalog, based on Public Identifier, System
+Identifier or URI prefixes it instructs the catalog software to look up
+entries in another resource. This feature allow to build hierarchies of
+catalogs, the set of entries presented should be sufficient to redirect the
+resolution of all DocBook references to the specific catalog in
+<code>/usr/share/xml/docbook.xml</code> this one in turn could delegate all
+references for DocBook 4.2.1 to a specific catalog installed at the same time
+as the DocBook resources on the local machine.</p>
+
+<h3><a name="reference">How to tune catalog usage:</a></h3>
+
+<p>The user can change the default catalog behaviour by redirecting queries
+to its own set of catalogs, this can be done by setting the
+<code>XML_CATALOG_FILES</code> environment variable to a list of catalogs, an
+empty one should deactivate loading the default <code>/etc/xml/catalog</code>
+default catalog</p>
+
+<h3><a name="validate">How to debug catalog processing:</a></h3>
+
+<p>Setting up the <code>XML_DEBUG_CATALOG</code> environment variable will
+make libxml2 output debugging information for each catalog operations, for
+example:</p>
+<pre>orchis:~/XML -&gt; xmllint --memory --noout test/ent2
+warning: failed to load external entity "title.xml"
+orchis:~/XML -&gt; export XML_DEBUG_CATALOG=
+orchis:~/XML -&gt; xmllint --memory --noout test/ent2
+Failed to parse catalog /etc/xml/catalog
+Failed to parse catalog /etc/xml/catalog
+warning: failed to load external entity "title.xml"
+Catalogs cleanup
+orchis:~/XML -&gt; </pre>
+
+<p>The test/ent2 references an entity, running the parser from memory makes
+the base URI unavailable and the the "title.xml" entity cannot be loaded.
+Setting up the debug environment variable allows to detect that an attempt is
+made to load the <code>/etc/xml/catalog</code> but since it's not present the
+resolution fails.</p>
+
+<p>But the most advanced way to debug XML catalog processing is to use the
+<strong>xmlcatalog</strong> command shipped with libxml2, it allows to load
+catalogs and make resolution queries to see what is going on. This is also
+used for the regression tests:</p>
+<pre>orchis:~/XML -&gt; ./xmlcatalog test/catalogs/docbook.xml \
+ "-//OASIS//DTD DocBook XML V4.1.2//EN"
+http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+orchis:~/XML -&gt; </pre>
+
+<p>For debugging what is going on, adding one -v flags increase the verbosity
+level to indicate the processing done (adding a second flag also indicate
+what elements are recognized at parsing):</p>
+<pre>orchis:~/XML -&gt; ./xmlcatalog -v test/catalogs/docbook.xml \
+ "-//OASIS//DTD DocBook XML V4.1.2//EN"
+Parsing catalog test/catalogs/docbook.xml's content
+Found public match -//OASIS//DTD DocBook XML V4.1.2//EN
+http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+Catalogs cleanup
+orchis:~/XML -&gt; </pre>
+
+<p>A shell interface is also available to debug and process multiple queries
+(and for regression tests):</p>
+<pre>orchis:~/XML -&gt; ./xmlcatalog -shell test/catalogs/docbook.xml \
+ "-//OASIS//DTD DocBook XML V4.1.2//EN"
+&gt; help
+Commands available:
+public PublicID: make a PUBLIC identifier lookup
+system SystemID: make a SYSTEM identifier lookup
+resolve PublicID SystemID: do a full resolver lookup
+add 'type' 'orig' 'replace' : add an entry
+del 'values' : remove values
+dump: print the current catalog state
+debug: increase the verbosity level
+quiet: decrease the verbosity level
+exit: quit the shell
+&gt; public "-//OASIS//DTD DocBook XML V4.1.2//EN"
+http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+&gt; quit
+orchis:~/XML -&gt; </pre>
+
+<p>This should be sufficient for most debugging purpose, this was actually
+used heavily to debug the XML Catalog implementation itself.</p>
+
+<h3><a name="Declaring">How to create and maintain</a> catalogs:</h3>
+
+<p>Basically XML Catalogs are XML files, you can either use XML tools to
+manage them or use <strong>xmlcatalog</strong> for this. The basic step is
+to create a catalog the -create option provide this facility:</p>
+<pre>orchis:~/XML -&gt; ./xmlcatalog --create tst.xml
+&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
+ "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;
+&lt;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"/&gt;
+orchis:~/XML -&gt; </pre>
+
+<p>By default xmlcatalog does not overwrite the original catalog and save the
+result on the standard output, this can be overridden using the -noout
+option. The <code>-add</code> command allows to add entries in the
+catalog:</p>
+<pre>orchis:~/XML -&gt; ./xmlcatalog --noout --create --add "public" \
+ "-//OASIS//DTD DocBook XML V4.1.2//EN" \
+ http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd tst.xml
+orchis:~/XML -&gt; cat tst.xml
+&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" \
+ "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;
+&lt;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"&gt;
+&lt;public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
+ uri="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/&gt;
+&lt;/catalog&gt;
+orchis:~/XML -&gt; </pre>
+
+<p>The <code>-add</code> option will always take 3 parameters even if some of
+the XML Catalog constructs (like nextCatalog) will have only a single
+argument, just pass a third empty string, it will be ignored.</p>
+
+<p>Similarly the <code>-del</code> option remove matching entries from the
+catalog:</p>
+<pre>orchis:~/XML -&gt; ./xmlcatalog --del \
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" tst.xml
+&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
+ "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;
+&lt;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"/&gt;
+orchis:~/XML -&gt; </pre>
+
+<p>The catalog is now empty. Note that the matching of <code>-del</code> is
+exact and would have worked in a similar fashion with the Public ID
+string.</p>
+
+<p>This is rudimentary but should be sufficient to manage a not too complex
+catalog tree of resources.</p>
+
+<h3><a name="implemento">The implementor corner quick review of the
+API:</a></h3>
+
+<p>First, and like for every other module of libxml, there is an
+automatically generated <a href="html/libxml-catalog.html">API page for
+catalog support</a>.</p>
+
+<p>The header for the catalog interfaces should be included as:</p>
+<pre>#include &lt;libxml/catalog.h&gt;</pre>
+
+<p>The API is voluntarily kept very simple. First it is not obvious that
+applications really need access to it since it is the default behaviour of
+libxml2 (Note: it is possible to completely override libxml2 default catalog
+by using <a href="html/libxml-parser.html">xmlSetExternalEntityLoader</a> to
+plug an application specific resolver).</p>
+
+<p>Basically libxml2 support 2 catalog lists:</p>
+<ul>
+ <li>the default one, global shared by all the application</li>
+ <li>a per-document catalog, this one is built if the document uses the
+ <code>oasis-xml-catalog</code> PIs to specify its own catalog list, it is
+ associated to the parser context and destroyed when the parsing context
+ is 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 be
+used at startup to initialize the catalog, if the catalog should be
+initialized with specific values xmlLoadCatalog() or xmlLoadCatalogs()
+should be called before xmlInitializeCatalog() which would otherwise do a
+default initialization first.</p>
+
+<p>The xmlCatalogAddLocal() call is used by the parser to grow the document
+own catalog list if needed.</p>
+
+<h4>Preferences setup:</h4>
+
+<p>The XML Catalog spec requires the possibility to select default
+preferences between public and system delegation,
+xmlCatalogSetDefaultPrefer() allows this, xmlCatalogSetDefaults() and
+xmlCatalogGetDefaults() allow to control if XML Catalogs resolution should
+be forbidden, allowed for global catalog, for document catalog or both, the
+default is to allow both.</p>
+
+<p>And of course xmlCatalogSetDebug() allows to generate debug messages
+(through the xmlGenericError() mechanism).</p>
+
+<h4>Querying routines:</h4>
+
+<p>xmlCatalogResolve(), xmlCatalogResolveSystem(), xmlCatalogResolvePublic()
+and xmlCatalogResolveURI() are relatively explicit if you read the XML
+Catalog specification they correspond to section 7 algorithms, they should
+also work if you have loaded an SGML catalog with a simplified semantic.</p>
+
+<p>xmlCatalogLocalResolve() and xmlCatalogLocalResolveURI() are the same but
+operate on the document catalog list</p>
+
+<h4>Cleanup and Miscellaneous:</h4>
+
+<p>xmlCatalogCleanup() free-up the global catalog, xmlCatalogFreeLocal() is
+the per-document equivalent.</p>
+
+<p>xmlCatalogAdd() and xmlCatalogRemove() are used to dynamically modify the
+first catalog in the global list, and xmlCatalogDump() allows to dump a
+catalog state, those routines are primarily designed for xmlcatalog, I'm not
+sure that exposing more complex interfaces (like navigation ones) would be
+really useful.</p>
+
+<p>The xmlParseCatalogFile() is a function used to load XML Catalog files,
+it's similar as xmlParseFile() except it bypass all catalog lookups, it's
+provided 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 to
+try to avoid troubles in multithreaded environments. The code is now thread
+safe assuming that the libxml2 library has been compiled with threads
+support.</p>
+
+<p></p>
+
+<h3><a name="Other">Other resources</a></h3>
+
+<p>The XML Catalog specification is relatively recent so there isn't much
+literature to point at:</p>
+<ul>
+ <li>You can find a good rant from Norm Walsh about <a
+ href="http://www.arbortext.com/Think_Tank/XML_Resources/Issue_Three/issue_three.html">the
+ need for catalogs</a>, it provides a lot of context information even if
+ I don't agree with everything presented. Norm also wrote a more recent
+ article <a
+ href="http://wwws.sun.com/software/xml/developers/resolver/article/">XML
+ entities and URI resolvers</a> describing them.</li>
+ <li>An <a href="http://home.ccil.org/~cowan/XML/XCatalog.html">old XML
+ catalog proposal</a> from John Cowan</li>
+ <li>The <a href="http://www.rddl.org/">Resource Directory Description
+ Language</a> (RDDL) another catalog system but more oriented toward
+ providing metadata for XML namespaces.</li>
+ <li>the page from the OASIS Technical <a
+ href="http://www.oasis-open.org/committees/entity/">Committee on Entity
+ Resolution</a> who maintains XML Catalog, you will find pointers to the
+ specification update, some background and pointers to others tools
+ providing XML Catalog support</li>
+ <li>There is a <a href="buildDocBookCatalog">shell script</a> to generate
+ XML Catalogs for DocBook 4.1.2 . If it can write to the /etc/xml/
+ directory, it will set-up /etc/xml/catalog and /etc/xml/docbook based on
+ the resources found on the system. Otherwise it will just create
+ ~/xmlcatalog and ~/dbkxmlcatalog and doing:
+ <p><code>export XML_CATALOG_FILES=$HOME/xmlcatalog</code></p>
+ <p>should allow to process DocBook documentations without requiring
+ network accesses for the DTD or stylesheets</p>
+ </li>
+ <li>I have uploaded <a href="ftp://xmlsoft.org/libxml2/test/dbk412catalog.tar.gz">a
+ small tarball</a> containing XML Catalogs for DocBook 4.1.2 which seems
+ to work fine for me too</li>
+ <li>The <a href="http://www.xmlsoft.org/xmlcatalog_man.html">xmlcatalog
+ manual page</a></li>
+</ul>
+
+<p>If you have suggestions for corrections or additions, simply contact
+me:</p>
+
+<h2><a name="library">The parser interfaces</a></h2>
+
+<p>This section is directly intended to help programmers getting bootstrapped
+using the XML tollkit from the C language. It is not intended to be
+extensive. I hope the automatically generated documents will provide the
+completeness required, but as a separate set of documents. The interfaces of
+the XML parser are by principle low level, Those interested in a higher level
+API should <a href="#DOM">look at DOM</a>.</p>
+
+<p>The <a href="html/libxml-parser.html">parser interfaces for XML</a> are
+separated from the <a href="html/libxml-htmlparser.html">HTML parser
+interfaces</a>. Let's have a look at how the XML parser can be called:</p>
+
+<h3><a name="Invoking">Invoking the parser : the pull method</a></h3>
+
+<p>Usually, the first thing to do is to read an XML input. The parser accepts
+documents either from in-memory strings or from files. The functions are
+defined in "parser.h":</p>
+<dl>
+ <dt><code>xmlDocPtr xmlParseMemory(char *buffer, int size);</code></dt>
+ <dd><p>Parse a null-terminated string containing the document.</p>
+ </dd>
+</dl>
+<dl>
+ <dt><code>xmlDocPtr xmlParseFile(const char *filename);</code></dt>
+ <dd><p>Parse an XML document contained in a (possibly compressed)
+ file.</p>
+ </dd>
+</dl>
+
+<p>The parser returns a pointer to the document structure (or NULL in case of
+failure).</p>
+
+<h3 id="Invoking1">Invoking the parser: the push method</h3>
+
+<p>In order for the application to keep the control when the document is
+being fetched (which is common for GUI based programs) libxml2 provides a
+push interface, too, as of version 1.8.3. Here are the interface
+functions:</p>
+<pre>xmlParserCtxtPtr xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
+ void *user_data,
+ const char *chunk,
+ int size,
+ const char *filename);
+int xmlParseChunk (xmlParserCtxtPtr ctxt,
+ const char *chunk,
+ int size,
+ int terminate);</pre>
+
+<p>and here is a simple example showing how to use the interface:</p>
+<pre> FILE *f;
+
+ f = fopen(filename, "r");
+ if (f != NULL) {
+ int res, size = 1024;
+ char chars[1024];
+ xmlParserCtxtPtr ctxt;
+
+ res = fread(chars, 1, 4, f);
+ if (res &gt; 0) {
+ ctxt = xmlCreatePushParserCtxt(NULL, NULL,
+ chars, res, filename);
+ while ((res = fread(chars, 1, size, f)) &gt; 0) {
+ xmlParseChunk(ctxt, chars, res, 0);
+ }
+ xmlParseChunk(ctxt, chars, 0, 1);
+ doc = ctxt-&gt;myDoc;
+ xmlFreeParserCtxt(ctxt);
+ }
+ }</pre>
+
+<p>The HTML parser embedded into libxml2 also has a push interface; the
+functions are just prefixed by "html" rather than "xml".</p>
+
+<h3 id="Invoking2">Invoking the parser: the SAX interface</h3>
+
+<p>The tree-building interface makes the parser memory-hungry, first loading
+the document in memory and then building the tree itself. Reading a document
+without building the tree is possible using the SAX interfaces (see SAX.h and
+<a href="http://www.daa.com.au/~james/gnome/xml-sax/xml-sax.html">James
+Henstridge's documentation</a>). Note also that the push interface can be
+limited to SAX: just use the two first arguments of
+<code>xmlCreatePushParserCtxt()</code>.</p>
+
+<h3><a name="Building">Building a tree from scratch</a></h3>
+
+<p>The other way to get an XML tree in memory is by building it. Basically
+there is a set of functions dedicated to building new elements. (These are
+also described in &lt;libxml/tree.h&gt;.) For example, here is a piece of
+code that produces the XML document used in the previous examples:</p>
+<pre> #include &lt;libxml/tree.h&gt;
+ xmlDocPtr doc;
+ xmlNodePtr tree, subtree;
+
+ doc = xmlNewDoc("1.0");
+ doc-&gt;children = xmlNewDocNode(doc, NULL, "EXAMPLE", NULL);
+ xmlSetProp(doc-&gt;children, "prop1", "gnome is great");
+ xmlSetProp(doc-&gt;children, "prop2", "&amp; linux too");
+ tree = xmlNewChild(doc-&gt;children, NULL, "head", NULL);
+ subtree = xmlNewChild(tree, NULL, "title", "Welcome to Gnome");
+ tree = xmlNewChild(doc-&gt;children, NULL, "chapter", NULL);
+ subtree = xmlNewChild(tree, NULL, "title", "The Linux adventure");
+ subtree = xmlNewChild(tree, NULL, "p", "bla bla bla ...");
+ subtree = xmlNewChild(tree, NULL, "image", NULL);
+ xmlSetProp(subtree, "href", "linus.gif");</pre>
+
+<p>Not really rocket science ...</p>
+
+<h3><a name="Traversing">Traversing the tree</a></h3>
+
+<p>Basically by <a href="html/libxml-tree.html">including "tree.h"</a> your
+code has access to the internal structure of all the elements of the tree.
+The names should be somewhat simple like <strong>parent</strong>,
+<strong>children</strong>, <strong>next</strong>, <strong>prev</strong>,
+<strong>properties</strong>, etc... For example, still with the previous
+example:</p>
+<pre><code>doc-&gt;children-&gt;children-&gt;children</code></pre>
+
+<p>points to the title element,</p>
+<pre>doc-&gt;children-&gt;children-&gt;next-&gt;children-&gt;children</pre>
+
+<p>points to the text node containing the chapter title "The Linux
+adventure".</p>
+
+<p><strong>NOTE</strong>: XML allows <em>PI</em>s and <em>comments</em> to be
+present before the document root, so <code>doc-&gt;children</code> may point
+to an element which is not the document Root Element; a function
+<code>xmlDocGetRootElement()</code> was added for this purpose.</p>
+
+<h3><a name="Modifying">Modifying the tree</a></h3>
+
+<p>Functions are provided for reading and writing the document content. Here
+is an excerpt from the <a href="html/libxml-tree.html">tree API</a>:</p>
+<dl>
+ <dt><code>xmlAttrPtr xmlSetProp(xmlNodePtr node, const xmlChar *name, const
+ xmlChar *value);</code></dt>
+ <dd><p>This sets (or changes) an attribute carried by an ELEMENT node.
+ The value can be NULL.</p>
+ </dd>
+</dl>
+<dl>
+ <dt><code>const xmlChar *xmlGetProp(xmlNodePtr node, const xmlChar
+ *name);</code></dt>
+ <dd><p>This function returns a pointer to new copy of the property
+ content. Note that the user must deallocate the result.</p>
+ </dd>
+</dl>
+
+<p>Two functions are provided for reading and writing the text associated
+with elements:</p>
+<dl>
+ <dt><code>xmlNodePtr xmlStringGetNodeList(xmlDocPtr doc, const xmlChar
+ *value);</code></dt>
+ <dd><p>This function takes an "external" string and converts it to one
+ text node or possibly to a list of entity and text nodes. All
+ non-predefined entity references like &amp;Gnome; will be stored
+ internally as entity nodes, hence the result of the function may not be
+ a single node.</p>
+ </dd>
+</dl>
+<dl>
+ <dt><code>xmlChar *xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int
+ inLine);</code></dt>
+ <dd><p>This function is the inverse of
+ <code>xmlStringGetNodeList()</code>. It generates a new string
+ containing the content of the text and entity nodes. Note the extra
+ argument inLine. If this argument is set to 1, the function will expand
+ entity references. For example, instead of returning the &amp;Gnome;
+ XML encoding in the string, it will substitute it with its value (say,
+ "GNU Network Object Model Environment").</p>
+ </dd>
+</dl>
+
+<h3><a name="Saving">Saving a tree</a></h3>
+
+<p>Basically 3 options are possible:</p>
+<dl>
+ <dt><code>void xmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int
+ *size);</code></dt>
+ <dd><p>Returns a buffer into which the document has been saved.</p>
+ </dd>
+</dl>
+<dl>
+ <dt><code>extern void xmlDocDump(FILE *f, xmlDocPtr doc);</code></dt>
+ <dd><p>Dumps a document to an open file descriptor.</p>
+ </dd>
+</dl>
+<dl>
+ <dt><code>int xmlSaveFile(const char *filename, xmlDocPtr cur);</code></dt>
+ <dd><p>Saves the document to a file. In this case, the compression
+ interface is triggered if it has been turned on.</p>
+ </dd>
+</dl>
+
+<h3><a name="Compressio">Compression</a></h3>
+
+<p>The library transparently handles compression when doing file-based
+accesses. The level of compression on saves can be turned on either globally
+or individually for one file:</p>
+<dl>
+ <dt><code>int xmlGetDocCompressMode (xmlDocPtr doc);</code></dt>
+ <dd><p>Gets the document compression ratio (0-9).</p>
+ </dd>
+</dl>
+<dl>
+ <dt><code>void xmlSetDocCompressMode (xmlDocPtr doc, int mode);</code></dt>
+ <dd><p>Sets the document compression ratio.</p>
+ </dd>
+</dl>
+<dl>
+ <dt><code>int xmlGetCompressMode(void);</code></dt>
+ <dd><p>Gets the default compression ratio.</p>
+ </dd>
+</dl>
+<dl>
+ <dt><code>void xmlSetCompressMode(int mode);</code></dt>
+ <dd><p>Sets the default compression ratio.</p>
+ </dd>
+</dl>
+
+<h2><a name="Entities">Entities or no entities</a></h2>
+
+<p>Entities in principle are similar to simple C macros. An entity defines an
+abbreviation for a given string that you can reuse many times throughout the
+content of your document. Entities are especially useful when a given string
+may occur frequently within a document, or to confine the change needed to a
+document to a restricted area in the internal subset of the document (at the
+beginning). Example:</p>
+<pre>1 &lt;?xml version="1.0"?&gt;
+2 &lt;!DOCTYPE EXAMPLE SYSTEM "example.dtd" [
+3 &lt;!ENTITY xml "Extensible Markup Language"&gt;
+4 ]&gt;
+5 &lt;EXAMPLE&gt;
+6 &amp;xml;
+7 &lt;/EXAMPLE&gt;</pre>
+
+<p>Line 3 declares the xml entity. Line 6 uses the xml entity, by prefixing
+its name with '&amp;' and following it by ';' without any spaces added. There
+are 5 predefined entities in libxml2 allowing you to escape characters with
+predefined meaning in some parts of the xml document content:
+<strong>&amp;lt;</strong> for the character '&lt;', <strong>&amp;gt;</strong>
+for the character '&gt;', <strong>&amp;apos;</strong> for the character ''',
+<strong>&amp;quot;</strong> for the character '"', and
+<strong>&amp;amp;</strong> for the character '&amp;'.</p>
+
+<p>One of the problems related to entities is that you may want the parser to
+substitute an entity's content so that you can see the replacement text in
+your application. Or you may prefer to keep entity references as such in the
+content to be able to save the document back without losing this usually
+precious information (if the user went through the pain of explicitly
+defining entities, he may have a a rather negative attitude if you blindly
+substitute them as saving time). The <a
+href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault()</a>
+function allows you to check and change the behaviour, which is to not
+substitute entities by default.</p>
+
+<p>Here is the DOM tree built by libxml2 for the previous document in the
+default case:</p>
+<pre>/gnome/src/gnome-xml -&gt; ./xmllint --debug test/ent1
+DOCUMENT
+version=1.0
+ ELEMENT EXAMPLE
+ TEXT
+ content=
+ ENTITY_REF
+ INTERNAL_GENERAL_ENTITY xml
+ content=Extensible Markup Language
+ TEXT
+ content=</pre>
+
+<p>And here is the result when substituting entities:</p>
+<pre>/gnome/src/gnome-xml -&gt; ./tester --debug --noent test/ent1
+DOCUMENT
+version=1.0
+ ELEMENT EXAMPLE
+ TEXT
+ content= Extensible Markup Language</pre>
+
+<p>So, entities or no entities? Basically, it depends on your use case. I
+suggest that you keep the non-substituting default behaviour and avoid using
+entities in your XML document or data if you are not willing to handle the
+entity references elements in the DOM tree.</p>
+
+<p>Note that at save time libxml2 enforces the conversion of the predefined
+entities where necessary to prevent well-formedness problems, and will also
+transparently replace those with chars (i.e. it will not generate entity
+reference elements in the DOM tree or call the reference() SAX callback when
+finding them in the input).</p>
+
+<p><span style="background-color: #FF0000">WARNING</span>: handling entities
+on top of the libxml2 SAX interface is difficult!!! If you plan to use
+non-predefined entities in your documents, then the learning curve to handle
+then using the SAX API may be long. If you plan to use complex documents, I
+strongly suggest you consider using the DOM interface instead and let libxml
+deal with the complexity rather than trying to do it yourself.</p>
+
+<h2><a name="Namespaces">Namespaces</a></h2>
+
+<p>The libxml2 library implements <a
+href="http://www.w3.org/TR/REC-xml-names/">XML namespaces</a> support by
+recognizing namespace constructs in the input, and does namespace lookup
+automatically when building the DOM tree. A namespace declaration is
+associated with an in-memory structure and all elements or attributes within
+that namespace point to it. Hence testing the namespace is a simple and fast
+equality operation at the user level.</p>
+
+<p>I suggest that people using libxml2 use a namespace, and declare it in the
+root element of their document as the default namespace. Then they don't need
+to use the prefix in the content but we will have a basis for future semantic
+refinement and merging of data from different sources. This doesn't increase
+the size of the XML output significantly, but significantly increases its
+value in the long-term. Example:</p>
+<pre>&lt;mydoc xmlns="http://mydoc.example.org/schemas/"&gt;
+ &lt;elem1&gt;...&lt;/elem1&gt;
+ &lt;elem2&gt;...&lt;/elem2&gt;
+&lt;/mydoc&gt;</pre>
+
+<p>The namespace value has to be an absolute URL, but the URL doesn't have to
+point to any existing resource on the Web. It will bind all the element and
+attributes with that URL. I suggest to use an URL within a domain you
+control, and that the URL should contain some kind of version information if
+possible. For example, <code>"http://www.gnome.org/gnumeric/1.0/"</code> is a
+good namespace scheme.</p>
+
+<p>Then when you load a file, make sure that a namespace carrying the
+version-independent prefix is installed on the root element of your document,
+and if the version information don't match something you know, warn the user
+and be liberal in what you accept as the input. Also do *not* try to base
+namespace checking on the prefix value. &lt;foo:text&gt; may be exactly the
+same as &lt;bar:text&gt; in another document. What really matters is the URI
+associated with the element or the attribute, not the prefix string (which is
+just a shortcut for the full URI). In libxml, element and attributes have an
+<code>ns</code> field pointing to an xmlNs structure detailing the namespace
+prefix and its URI.</p>
+
+<p>@@Interfaces@@</p>
+<pre>xmlNodePtr node;
+if(!strncmp(node-&gt;name,"mytag",5)
+ &amp;&amp; node-&gt;ns
+ &amp;&amp; !strcmp(node-&gt;ns-&gt;href,"http://www.mysite.com/myns/1.0")) {
+ ...
+}</pre>
+
+<p>Usually people object to using namespaces together with validity checking.
+I will try to make sure that using namespaces won't break validity checking,
+so even if you plan to use or currently are using validation I strongly
+suggest adding namespaces to your document. A default namespace scheme
+<code>xmlns="http://...."</code> should not break validity even on less
+flexible parsers. Using namespaces to mix and differentiate content coming
+from multiple DTDs will certainly break current validation schemes. To check
+such documents one needs to use schema-validation, which is supported in
+libxml2 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>
+
+<h2><a name="Upgrading">Upgrading 1.x code</a></h2>
+
+<p>Incompatible changes:</p>
+
+<p>Version 2 of libxml2 is the first version introducing serious backward
+incompatible changes. The main goals were:</p>
+<ul>
+ <li>a general cleanup. A number of mistakes inherited from the very early
+ versions couldn't be changed due to compatibility constraints. Example
+ the "childs" element in the nodes.</li>
+ <li>Uniformization of the various nodes, at least for their header and link
+ parts (doc, parent, children, prev, next), the goal is a simpler
+ programming model and simplifying the task of the DOM implementors.</li>
+ <li>better conformances to the XML specification, for example version 1.x
+ had an heuristic to try to detect ignorable white spaces. As a result the
+ SAX event generated were ignorableWhitespace() while the spec requires
+ character() in that case. This also mean that a number of DOM node
+ containing blank text may populate the DOM tree which were not present
+ before.</li>
+</ul>
+
+<h3>How to fix libxml-1.x code:</h3>
+
+<p>So client code of libxml designed to run with version 1.x may have to be
+changed to compile against version 2.x of libxml. Here is a list of changes
+that I have collected, they may not be sufficient, so in case you find other
+change which are required, <a href="mailto:Daniel.Veillard@w3.org">drop me a
+mail</a>:</p>
+<ol>
+ <li>The package name have changed from libxml to libxml2, the library name
+ is now -lxml2 . There is a new xml2-config script which should be used to
+ select the right parameters libxml2</li>
+ <li>Node <strong>childs</strong> field has been renamed
+ <strong>children</strong> so s/childs/children/g should be applied
+ (probability of having "childs" anywhere else is close to 0+</li>
+ <li>The document don't have anymore a <strong>root</strong> element it has
+ been replaced by <strong>children</strong> and usually you will get a
+ list of element here. For example a Dtd element for the internal subset
+ and it's declaration may be found in that list, as well as processing
+ instructions or comments found before or after the document root element.
+ Use <strong>xmlDocGetRootElement(doc)</strong> to get the root element of
+ a document. Alternatively if you are sure to not reference DTDs nor have
+ PIs or comments before or after the root element
+ s/-&gt;root/-&gt;children/g will probably do it.</li>
+ <li>The white space issue, this one is more complex, unless special case of
+ validating parsing, the line breaks and spaces usually used for indenting
+ and formatting the document content becomes significant. So they are
+ reported by SAX and if your using the DOM tree, corresponding nodes are
+ generated. Too approach can be taken:
+ <ol>
+ <li>lazy one, use the compatibility call
+ <strong>xmlKeepBlanksDefault(0)</strong> but be aware that you are
+ relying on a special (and possibly broken) set of heuristics of
+ libxml to detect ignorable blanks. Don't complain if it breaks or
+ make your application not 100% clean w.r.t. to it's input.</li>
+ <li>the Right Way: change you code to accept possibly insignificant
+ blanks characters, or have your tree populated with weird blank text
+ nodes. You can spot them using the commodity function
+ <strong>xmlIsBlankNode(node)</strong> returning 1 for such blank
+ nodes.</li>
+ </ol>
+ <p>Note also that with the new default the output functions don't add any
+ extra indentation when saving a tree in order to be able to round trip
+ (read and save) without inflating the document with extra formatting
+ chars.</p>
+ </li>
+ <li>The include path has changed to $prefix/libxml/ and the includes
+ themselves uses this new prefix in includes instructions... If you are
+ using (as expected) the
+ <pre>xml2-config --cflags</pre>
+ <p>output to generate you compile commands this will probably work out of
+ the box</p>
+ </li>
+ <li>xmlDetectCharEncoding takes an extra argument indicating the length in
+ byte of the head of the document available for character detection.</li>
+</ol>
+
+<h3>Ensuring both libxml-1.x and libxml-2.x compatibility</h3>
+
+<p>Two new version of libxml (1.8.11) and libxml2 (2.3.4) have been released
+to allow smooth upgrade of existing libxml v1code while retaining
+compatibility. They offers the following:</p>
+<ol>
+ <li>similar include naming, one should use
+ <strong>#include&lt;libxml/...&gt;</strong> in both cases.</li>
+ <li>similar identifiers defined via macros for the child and root fields:
+ respectively <strong>xmlChildrenNode</strong> and
+ <strong>xmlRootNode</strong></li>
+ <li>a new macro <strong>LIBXML_TEST_VERSION</strong> which should be
+ inserted once in the client code</li>
+</ol>
+
+<p>So the roadmap to upgrade your existing libxml applications is the
+following:</p>
+<ol>
+ <li>install the libxml-1.8.8 (and libxml-devel-1.8.8) packages</li>
+ <li>find all occurrences where the xmlDoc <strong>root</strong> field is
+ used and change it to <strong>xmlRootNode</strong></li>
+ <li>similarly find all occurrences where the xmlNode
+ <strong>childs</strong> field is used and change it to
+ <strong>xmlChildrenNode</strong></li>
+ <li>add a <strong>LIBXML_TEST_VERSION</strong> macro somewhere in your
+ <strong>main()</strong> or in the library init entry point</li>
+ <li>Recompile, check compatibility, it should still work</li>
+ <li>Change your configure script to look first for xml2-config and fall
+ back using xml-config . Use the --cflags and --libs output of the command
+ as the Include and Linking parameters needed to use libxml.</li>
+ <li>install libxml2-2.3.x and libxml2-devel-2.3.x (libxml-1.8.y and
+ libxml-devel-1.8.y can be kept simultaneously)</li>
+ <li>remove your config.cache, relaunch your configuration mechanism, and
+ recompile, if steps 2 and 3 were done right it should compile as-is</li>
+ <li>Test that your application is still running correctly, if not this may
+ be due to extra empty nodes due to formatting spaces being kept in libxml2
+ contrary to libxml1, in that case insert xmlKeepBlanksDefault(1) in your
+ code before calling the parser (next to
+ <strong>LIBXML_TEST_VERSION</strong> is a fine place).</li>
+</ol>
+
+<p>Following those steps should work. It worked for some of my own code.</p>
+
+<p>Let me put some emphasis on the fact that there is far more changes from
+libxml 1.x to 2.x than the ones you may have to patch for. The overall code
+has been considerably cleaned up and the conformance to the XML specification
+has been drastically improved too. Don't take those changes as an excuse to
+not upgrade, it may cost a lot on the long term ...</p>
+
+<h2><a name="Thread">Thread safety</a></h2>
+
+<p>Starting with 2.4.7, libxml2 makes provisions to ensure that concurrent
+threads can safely work in parallel parsing different documents. There is
+however a couple of things to do to ensure it:</p>
+<ul>
+ <li>configure the library accordingly using the --with-threads options</li>
+ <li>call xmlInitParser() in the "main" thread before using any of the
+ libxml2 API (except possibly selecting a different memory allocator)</li>
+</ul>
+
+<p>Note that the thread safety cannot be ensured for multiple threads sharing
+the same document, the locking must be done at the application level, libxml
+exports a basic mutex and reentrant mutexes API in &lt;libxml/threads.h&gt;.
+The parts of the library checked for thread safety are:</p>
+<ul>
+ <li>concurrent loading</li>
+ <li>file access resolution</li>
+ <li>catalog access</li>
+ <li>catalog building</li>
+ <li>entities lookup/accesses</li>
+ <li>validation</li>
+ <li>global variables per-thread override</li>
+ <li>memory handling</li>
+</ul>
+
+<p>XPath has been tested for threaded usage on non-modified document
+ for example when using libxslt, but make 100% sure the documents
+ are accessed read-only !</p>
+
+<h2><a name="DOM"></a><a name="Principles">DOM Principles</a></h2>
+
+<p><a href="http://www.w3.org/DOM/">DOM</a> stands for the <em>Document
+Object Model</em>; this is an API for accessing XML or HTML structured
+documents. Native support for DOM in Gnome is on the way (module gnome-dom),
+and will be based on gnome-xml. This will be a far cleaner interface to
+manipulate XML files within Gnome since it won't expose the internal
+structure.</p>
+
+<p>The current DOM implementation on top of libxml2 is the <a
+href="http://svn.gnome.org/viewvc/gdome2/trunk/">gdome2 Gnome module</a>, this
+is a full DOM interface, thanks to Paolo Casarini, check the <a
+href="http://gdome2.cs.unibo.it/">Gdome2 homepage</a> for more
+information.</p>
+
+<h2><a name="Example"></a><a name="real">A real example</a></h2>
+
+<p>Here is a real size example, where the actual content of the application
+data is not kept in the DOM tree but uses internal structures. It is based on
+a proposal to keep a database of jobs related to Gnome, with an XML based
+storage structure. Here is an <a href="gjobs.xml">XML encoded jobs
+base</a>:</p>
+<pre>&lt;?xml version="1.0"?&gt;
+&lt;gjob:Helping xmlns:gjob="http://www.gnome.org/some-location"&gt;
+ &lt;gjob:Jobs&gt;
+
+ &lt;gjob:Job&gt;
+ &lt;gjob:Project ID="3"/&gt;
+ &lt;gjob:Application&gt;GBackup&lt;/gjob:Application&gt;
+ &lt;gjob:Category&gt;Development&lt;/gjob:Category&gt;
+
+ &lt;gjob:Update&gt;
+ &lt;gjob:Status&gt;Open&lt;/gjob:Status&gt;
+ &lt;gjob:Modified&gt;Mon, 07 Jun 1999 20:27:45 -0400 MET DST&lt;/gjob:Modified&gt;
+ &lt;gjob:Salary&gt;USD 0.00&lt;/gjob:Salary&gt;
+ &lt;/gjob:Update&gt;
+
+ &lt;gjob:Developers&gt;
+ &lt;gjob:Developer&gt;
+ &lt;/gjob:Developer&gt;
+ &lt;/gjob:Developers&gt;
+
+ &lt;gjob:Contact&gt;
+ &lt;gjob:Person&gt;Nathan Clemons&lt;/gjob:Person&gt;
+ &lt;gjob:Email&gt;nathan@windsofstorm.net&lt;/gjob:Email&gt;
+ &lt;gjob:Company&gt;
+ &lt;/gjob:Company&gt;
+ &lt;gjob:Organisation&gt;
+ &lt;/gjob:Organisation&gt;
+ &lt;gjob:Webpage&gt;
+ &lt;/gjob:Webpage&gt;
+ &lt;gjob:Snailmail&gt;
+ &lt;/gjob:Snailmail&gt;
+ &lt;gjob:Phone&gt;
+ &lt;/gjob:Phone&gt;
+ &lt;/gjob:Contact&gt;
+
+ &lt;gjob:Requirements&gt;
+ The program should be released as free software, under the GPL.
+ &lt;/gjob:Requirements&gt;
+
+ &lt;gjob:Skills&gt;
+ &lt;/gjob:Skills&gt;
+
+ &lt;gjob:Details&gt;
+ A GNOME based system that will allow a superuser to configure
+ compressed and uncompressed files and/or file systems to be backed
+ up with a supported media in the system. This should be able to
+ perform via find commands generating a list of files that are passed
+ to tar, dd, cpio, cp, gzip, etc., to be directed to the tape machine
+ or via operations performed on the filesystem itself. Email
+ notification and GUI status display very important.
+ &lt;/gjob:Details&gt;
+
+ &lt;/gjob:Job&gt;
+
+ &lt;/gjob:Jobs&gt;
+&lt;/gjob:Helping&gt;</pre>
+
+<p>While loading the XML file into an internal DOM tree is a matter of
+calling only a couple of functions, browsing the tree to gather the data and
+generate the internal structures is harder, and more error prone.</p>
+
+<p>The suggested principle is to be tolerant with respect to the input
+structure. For example, the ordering of the attributes is not significant,
+the XML specification is clear about it. It's also usually a good idea not to
+depend on the order of the children of a given node, unless it really makes
+things harder. Here is some code to parse the information for a person:</p>
+<pre>/*
+ * A person record
+ */
+typedef struct person {
+ char *name;
+ char *email;
+ char *company;
+ char *organisation;
+ char *smail;
+ char *webPage;
+ char *phone;
+} person, *personPtr;
+
+/*
+ * And the code needed to parse it
+ */
+personPtr parsePerson(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur) {
+ personPtr ret = NULL;
+
+DEBUG("parsePerson\n");
+ /*
+ * allocate the struct
+ */
+ ret = (personPtr) malloc(sizeof(person));
+ if (ret == NULL) {
+ fprintf(stderr,"out of memory\n");
+ return(NULL);
+ }
+ memset(ret, 0, sizeof(person));
+
+ /* We don't care what the top level element name is */
+ cur = cur-&gt;xmlChildrenNode;
+ while (cur != NULL) {
+ if ((!strcmp(cur-&gt;name, "Person")) &amp;&amp; (cur-&gt;ns == ns))
+ ret-&gt;name = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
+ if ((!strcmp(cur-&gt;name, "Email")) &amp;&amp; (cur-&gt;ns == ns))
+ ret-&gt;email = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
+ cur = cur-&gt;next;
+ }
+
+ return(ret);
+}</pre>
+
+<p>Here are a couple of things to notice:</p>
+<ul>
+ <li>Usually a recursive parsing style is the more convenient one: XML data
+ is by nature subject to repetitive constructs and usually exhibits highly
+ structured patterns.</li>
+ <li>The two arguments of type <em>xmlDocPtr</em> and <em>xmlNsPtr</em>,
+ i.e. the pointer to the global XML document and the namespace reserved to
+ the application. Document wide information are needed for example to
+ decode entities and it's a good coding practice to define a namespace for
+ your application set of data and test that the element and attributes
+ you're analyzing actually pertains to your application space. This is
+ done by a simple equality test (cur-&gt;ns == ns).</li>
+ <li>To retrieve text and attributes value, you can use the function
+ <em>xmlNodeListGetString</em> to gather all the text and entity reference
+ nodes generated by the DOM output and produce an single text string.</li>
+</ul>
+
+<p>Here is another piece of code used to parse another level of the
+structure:</p>
+<pre>#include &lt;libxml/tree.h&gt;
+/*
+ * a Description for a Job
+ */
+typedef struct job {
+ char *projectID;
+ char *application;
+ char *category;
+ personPtr contact;
+ int nbDevelopers;
+ personPtr developers[100]; /* using dynamic alloc is left as an exercise */
+} job, *jobPtr;
+
+/*
+ * And the code needed to parse it
+ */
+jobPtr parseJob(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur) {
+ jobPtr ret = NULL;
+
+DEBUG("parseJob\n");
+ /*
+ * allocate the struct
+ */
+ ret = (jobPtr) malloc(sizeof(job));
+ if (ret == NULL) {
+ fprintf(stderr,"out of memory\n");
+ return(NULL);
+ }
+ memset(ret, 0, sizeof(job));
+
+ /* We don't care what the top level element name is */
+ cur = cur-&gt;xmlChildrenNode;
+ while (cur != NULL) {
+
+ if ((!strcmp(cur-&gt;name, "Project")) &amp;&amp; (cur-&gt;ns == ns)) {
+ ret-&gt;projectID = xmlGetProp(cur, "ID");
+ if (ret-&gt;projectID == NULL) {
+ fprintf(stderr, "Project has no ID\n");
+ }
+ }
+ if ((!strcmp(cur-&gt;name, "Application")) &amp;&amp; (cur-&gt;ns == ns))
+ ret-&gt;application = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
+ if ((!strcmp(cur-&gt;name, "Category")) &amp;&amp; (cur-&gt;ns == ns))
+ ret-&gt;category = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
+ if ((!strcmp(cur-&gt;name, "Contact")) &amp;&amp; (cur-&gt;ns == ns))
+ ret-&gt;contact = parsePerson(doc, ns, cur);
+ cur = cur-&gt;next;
+ }
+
+ return(ret);
+}</pre>
+
+<p>Once you are used to it, writing this kind of code is quite simple, but
+boring. Ultimately, it could be possible to write stubbers taking either C
+data structure definitions, a set of XML examples or an XML DTD and produce
+the code needed to import and export the content between C data and XML
+storage. This is left as an exercise to the reader :-)</p>
+
+<p>Feel free to use <a href="example/gjobread.c">the code for the full C
+parsing example</a> as a template, it is also available with Makefile in the
+Gnome SVN base under libxml2/example</p>
+
+<h2><a name="Contributi">Contributions</a></h2>
+<ul>
+ <li>Bjorn Reese, William Brack and Thomas Broyer have provided a number of
+ patches, Gary Pennington worked on the validation API, threading support
+ and Solaris port.</li>
+ <li>John Fleck helps maintaining the documentation and man pages.</li>
+ <li><a href="mailto:igor@zlatkovic.com">Igor Zlatkovic</a> is now the
+ maintainer of the Windows port, <a
+ href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
+ 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">Matt
+ Sergeant</a> developed <a
+ href="http://axkit.org/download/">XML::LibXSLT</a>, a Perl wrapper for
+ libxml2/libxslt as part of the <a href="http://axkit.com/">AxKit XML
+ application server</a></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) functions
+ documentation</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 support
+ in OpenNSD/AOLServer</a></li>
+ <li><a href="mailto:dkuhlman@cutter.rexx.com">Dave Kuhlman</a> provided the
+ first 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 glue
+ libxml2</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 XML
+ Digital Signature</a> <a
+ href="http://www.aleksey.com/xmlsec/">implementations for libxml2</a></li>
+ <li><a href="mailto:Steve.Ball@explain.com.au">Steve Ball</a> and
+ contributors maintain <a href="http://tclxml.sourceforge.net/">tcl
+ bindings for libxml2 and libxslt</a>, as well as <a
+ href="http://tclxml.sf.net/tkxmllint.html">tkxmllint</a> a GUI for
+ xmllint and <a href="http://tclxml.sf.net/tkxsltproc.html">tkxsltproc</a>
+ a GUI for xsltproc.</li>
+</ul>
+
+<p></p>
+</body>
+</html>
diff --git a/libxml2-2.9.10/doc/xmlcatalog.1 b/libxml2-2.9.10/doc/xmlcatalog.1
new file mode 100644
index 0000000..2fbfaf2
--- /dev/null
+++ b/libxml2-2.9.10/doc/xmlcatalog.1
@@ -0,0 +1,350 @@
+'\" t
+.\" Title: xmlcatalog
+.\" Author: John Fleck <jfleck@inkstain.net>
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: $Date$
+.\" Manual: xmlcatalog Manual
+.\" Source: libxml2
+.\" Language: English
+.\"
+.TH "XMLCATALOG" "1" "$Date$" "libxml2" "xmlcatalog Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+xmlcatalog \- Command line tool to parse and manipulate XML or SGML catalog files\&.
+.SH "SYNOPSIS"
+.HP \w'\fBxmlcatalog\fR\ 'u
+\fBxmlcatalog\fR [\fB\-\-sgml\fR | \fB\-\-shell\fR | \fB\-\-create\fR | \fB\-\-del\ \fR\fB\fIVALUE(S)\fR\fR | [\ \fB\-\-add\ \fR\fB\fITYPE\fR\fR\fB\ \fR\fB\fIORIG\fR\fR\fB\ \fR\fB\fIREPLACE\fR\fR\fB\ \fR\ |\ \fB\-\-add\ \fR\fB\fIFILENAME\fR\fR] | \fB\-\-noout\fR | \fB\-\-no\-super\-update\fR | [\fB\-v\fR\ |\ \fB\-\-verbose\fR]] {\fICATALOGFILE\fR} {\fIENTITIES\fR...}
+.SH "DESCRIPTION"
+.PP
+\fBxmlcatalog\fR
+is a command line application allowing users to monitor and manipulate
+XML
+and
+SGML
+catalogs\&. It is included in
+\fBlibxml\fR(3)\&.
+.PP
+Its functions can be invoked from a single command from the command line, or it can perform multiple functions in interactive mode\&. It can operate on both
+XML
+and
+SGML
+files\&.
+.SH "OPTIONS"
+.PP
+\fBxmlcatalog\fR
+accepts the following options (in alphabetical order):
+.PP
+\fB\-\-add \fR\fB\fITYPE\fR\fR\fB \fR\fB\fIORIG\fR\fR\fB \fR\fB\fIREPLACE\fR\fR\fB \fR
+.RS 4
+Add an entry to
+CATALOGFILE\&.
+\fITYPE\fR
+indicates the type of entry\&. Possible types are:
+\fIpublic\fR, \fIsystem\fR, \fIuri\fR, \fIrewriteSystem\fR, \fIrewriteURI\fR, \fIdelegatePublic\fR, \fIdelegateSystem\fR, \fIdelegateURI\fR, \fInextCatalog\fR\&.
+\fIORIG\fR
+is the original reference to be replaced, and
+\fIREPLACE\fR
+is the
+URI
+of the replacement entity to be used\&. The
+\fB\-\-add\fR
+option will not overwrite
+CATALOGFILE, outputting to
+stdout, unless
+\fB\-\-noout\fR
+is used\&. The
+\fB\-\-add\fR
+will always take three parameters even if some of the
+XML
+catalog constructs will have only a single argument\&.
+.RE
+.PP
+\fB\-\-add \fR\fB\fIFILENAME\fR\fR
+.RS 4
+If the
+\fB\-\-add\fR
+option is used following the
+\fB\-\-sgml\fR
+option, only a single argument, a
+\fIFILENAME\fR, is used\&. This is used to add the name of a catalog file to an
+SGML
+supercatalog, a file that contains references to other included
+SGML
+catalog files\&.
+.RE
+.PP
+\fB\-\-create\fR
+.RS 4
+Create a new
+XML
+catalog\&. Outputs to
+stdout, ignoring
+\fIfilename\fR
+unless
+\fB\-\-noout\fR
+is used, in which case it creates a new catalog file
+\fIfilename\fR\&.
+.RE
+.PP
+\fB\-\-del \fR\fB\fIVALUE(S)\fR\fR
+.RS 4
+Remove entries from
+\fICATALOGFILE\fR
+matching
+\fIVALUE(S)\fR\&. The
+\fB\-\-del\fR
+option will not overwrite
+\fICATALOGFILE\fR, outputting to
+stdout, unless
+\fB\-\-noout\fR
+is used\&.
+.RE
+.PP
+\fB\-\-noout\fR
+.RS 4
+Save output to the named file rather than outputting to
+stdout\&.
+.RE
+.PP
+\fB\-\-no\-super\-update\fR
+.RS 4
+Do not update the
+SGML
+super catalog\&.
+.RE
+.PP
+\fB\-\-shell\fR
+.RS 4
+Run a shell allowing interactive queries on catalog file
+\fICATALOGFILE\fR\&. For the set of available commands see
+the section called \(lqSHELL COMMANDS\(rq\&.
+.RE
+.PP
+\fB\-\-sgml\fR
+.RS 4
+Uses
+SGML
+super catalogs for
+\fB\-\-add\fR
+and
+\fB\-\-del\fR
+options\&.
+.RE
+.PP
+\fB\-v\fR, \fB\-\-verbose\fR
+.RS 4
+Output debugging information\&.
+.RE
+.PP
+Invoking
+\fBxmlcatalog\fR
+non\-interactively without a designated action (imposed with options like
+\fB\-\-add\fR) will result in a lookup of the catalog entry for
+\fIENTITIES\fR
+in the catalog denoted with
+\fICATALOGFILE\fR\&. The corresponding entries will be output to the command line\&. This mode of operation, together with
+\fB\-\-shell\fR
+mode and non\-modifying (i\&.e\&. without
+\fB\-\-noout\fR) direct actions, allows for a special shortcut of the void
+\fICATALOGFILE\fR
+specification (possibly expressed as "" in the shell environment) appointing the default system catalog\&. That simplifies the handling when its exact location is irrelevant but the respective built\-in still needs to be consulted\&.
+.SH "SHELL COMMANDS"
+.PP
+Invoking
+\fBxmlcatalog\fR
+with the
+\fB\-\-shell \fR\fB\fICATALOGFILE\fR\fR
+option opens a command line shell allowing interactive access to the catalog file identified by
+\fICATALOGFILE\fR\&. Invoking the shell provides a command line prompt after which the following commands (described in alphabetical order) can be entered\&.
+.PP
+\fBadd \fR\fB\fITYPE\fR\fR\fB \fR\fB\fIORIG\fR\fR\fB \fR\fB\fIREPLACE\fR\fR\fB \fR
+.RS 4
+Add an entry to the catalog file\&.
+\fITYPE\fR
+indicates the type of entry\&. Possible types are:
+\fIpublic\fR, \fIsystem\fR, \fIuri\fR, \fIrewriteSystem\fR, \fIrewriteURI\fR, \fIdelegatePublic\fR, \fIdelegateSystem\fR, \fIdelegateURI\fR, \fInextCatalog\fR\&.
+\fIORIG\fR
+is the original reference to be replaced, and
+\fIREPLACE\fR
+is the
+URI
+of the replacement entity to be used\&. The
+\fB\-\-add\fR
+option will not overwrite
+CATALOGFILE, outputting to
+stdout, unless
+\fB\-\-noout\fR
+is used\&. The
+\fB\-\-add\fR
+will always take three parameters even if some of the
+XML
+catalog constructs will have only a single argument\&.
+.RE
+.PP
+\fBdebug\fR
+.RS 4
+Print debugging statements showing the steps
+\fBxmlcatalog\fR
+is executing\&.
+.RE
+.PP
+\fBdel \fR\fB\fIVALUE(S)\fR\fR
+.RS 4
+Remove the catalog entry corresponding to
+\fIVALUE(S)\fR\&.
+.RE
+.PP
+\fBdump\fR
+.RS 4
+Print the current catalog\&.
+.RE
+.PP
+\fBexit\fR
+.RS 4
+Quit the shell\&.
+.RE
+.PP
+\fBpublic \fR\fB\fIPUBLIC\-ID\fR\fR
+.RS 4
+Execute a Formal Public Identifier lookup of the catalog entry for
+\fIPUBLIC\-ID\fR\&. The corresponding entry will be output to the command line\&.
+.RE
+.PP
+\fBquiet\fR
+.RS 4
+Stop printing debugging statements\&.
+.RE
+.PP
+\fBsystem \fR\fB\fISYSTEM\-ID\fR\fR
+.RS 4
+Execute a Formal Public Identifier lookup of the catalog entry for
+\fISYSTEM\-ID\fR\&. The corresponding entry will be output to the command line\&.
+.RE
+.SH "ENVIRONMENT"
+.PP
+\fBXML_CATALOG_FILES\fR
+.RS 4
+XML
+catalog behavior can be changed by redirecting queries to the user\*(Aqs own set of catalogs\&. This can be done by setting the
+\fBXML_CATALOG_FILES\fR
+environment variable to a list of catalogs\&. An empty one should deactivate loading the default
+/etc/xml/catalog
+catalog\&.
+.RE
+.SH "DIAGNOSTICS"
+.PP
+\fBxmlcatalog\fR
+return codes provide information that can be used when calling it from scripts\&.
+.PP
+\fB0\fR
+.RS 4
+No error
+.RE
+.PP
+\fB1\fR
+.RS 4
+Failed to remove an entry from the catalog
+.RE
+.PP
+\fB2\fR
+.RS 4
+Failed to save to the catalog, check file permissions
+.RE
+.PP
+\fB3\fR
+.RS 4
+Failed to add an entry to the catalog
+.RE
+.PP
+\fB4\fR
+.RS 4
+Failed to look up an entry in the catalog
+.RE
+.SH "SEE ALSO"
+.PP
+\fBlibxml\fR(3)
+.PP
+More information can be found at
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBlibxml\fR(3)
+web page
+\m[blue]\fB\%http://www.xmlsoft.org/\fR\m[]
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBlibxml\fR(3)
+catalog support web page at
+\m[blue]\fB\%http://www.xmlsoft.org/catalog.html\fR\m[]
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+James Clark\*(Aqs
+SGML
+catalog page
+\m[blue]\fB\%http://www.jclark.com/sp/catalog.htm\fR\m[]
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+OASIS
+XML
+catalog specification
+\m[blue]\fB\%http://www.oasis-open.org/committees/entity/spec.html\fR\m[]
+.RE
+.sp
+.SH "AUTHOR"
+.PP
+\fBJohn Fleck\fR <\&jfleck@inkstain\&.net\&>
+.RS 4
+Author.
+.RE
+.SH "COPYRIGHT"
+.br
+Copyright \(co 2001, 2004
+.br
diff --git a/libxml2-2.9.10/doc/xmlcatalog_man.html b/libxml2-2.9.10/doc/xmlcatalog_man.html
new file mode 100644